Function at 0x406810
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
push esi
mov dword [esp - 0x30], ebp
push edi
push dword [ebp + 0xc]
lea ecx, [ebp - 8]
mov edx, edx
call fcn.00405a10
or edi, 0xffffffff
mov dword [ebp + 0xc], edi
mov dword [esp - 0x34], esp
mov esi, dword [eax]
cmp byte [esi], 0
je 0x406896
xchg ebx, ebx
nop
mov dword [esp - 4], 0x31ce601
xor dword [esp - 4], 0x30839ce6
mov esp, esp
xor dword [esp - 4], 0x48b5c647
sub dword [esp - 4], 0x7aff4df0
add dword [esp - 4], 0x2b3546ed
sub dword [esp - 4], 0x2b60b59c
mov dword [esp - 0x10], 0x139eca29
sub esp, 4
push esi
lea ecx, [ebp + 0xc]
mov ecx, ecx
call fcn.00485de0
inc esi
cmp byte [esi], 0
mov dword [esp - 0x2c], 0x6d73e567
jne 0x40683c
mov edi, dword [ebp + 0xc]
cmp byte [ebp - 4], 0
not edi
mov esi, esi
je 0x4068af
push dword [ebp - 8]
call fcn.00490c60
mov dword [esp - 0x18], edi
add esp, 4
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x18]
mov dword [esp - 0x18], 0x550c6742
nop
sub esp, 4
mov dword [esp], 0x798be01c
sub dword [esp], 0x5608ddb9
xchg edx, edx
add dword [esp], 0x351a1220
xor dword [esp], 0x433a064c
add dword [esp], 0xac80ae6
xor dword [esp], 0x3742ab07
mov dword [esp - 0x1c], ebx
sub dword [esp], 0x112db6b1
mov dword [esi], 0x54288ca2
xor dword [esi], 0x1210b745
xchg ecx, ecx
add dword [esi], 0x7aa7c87
sub dword [esi], 0x31e5f6b3
xor dword [esi], 0x54dd4acd
mov dword [esp - 0x3c], edi
sub dword [esi], 0x4f218b76
mov dword [esi + 4], 0x3d4d481b
sub dword [esi + 4], 0x32ec4115
mov dword [esp - 0x2c], 0x1d1c5df
xor dword [esi + 4], 0x4b48b735
xor dword [esi + 4], 0xa297468
xor dword [esi + 4], 0x609221b8
sub dword [esi + 4], 0x2b92e5e3
xchg esp, esp
push dword [0x4c08f8]
nop
mov dword [esp - 4], 0x76b35fe4
mov dword [esp - 0x20], 0x3feca0ef
sub dword [esp - 4], 0x14f7d26a
add dword [esp - 4], 0x5ba45b7
sub dword [esp - 4], 0x20c59aa7
add dword [esp - 4], 0x1206f277
mov dword [esp - 0x34], ebp
xor dword [esp - 4], 0x61d8be50
sub dword [esp - 4], 0x396f94f5
sub esp, 4
mov dword [esp - 0x3c], 0x1c78bbc3
push eax
call fcn.004871a0
add esp, 4
push eax
mov dword [esp - 0x30], esi
lea eax, [ebp - 0x10]
push eax
call fcn.00485310
add esp, 0xc
mov dword [esp - 0x1c], ecx
push eax
lea eax, [ebp - 8]
push eax
mov dword [esp - 0x24], 0x66beb4f3
call fcn.00484df0
add esp, 0xc
lea ecx, [ebp - 0x30]
mov dword [esp - 0x20], ecx
push eax
call fcn.00487830
cmp dword [ebp - 4], 2
jbe 0x406a01
xchg edi, edi
push dword [ebp - 8]
call fcn.00490c60
add esp, 4
mov edx, edx
cmp dword [ebp - 0xc], 2
jbe 0x406a16
push dword [ebp - 0x10]
mov dword [esp - 0x30], edi
call fcn.00490c60
add esp, 4
cmp dword [ebp - 0x14], 2
jbe 0x406a2f
mov dword [esp - 0x28], esi
push dword [ebp - 0x18]
call fcn.00490c60
add esp, 4
mov dword [esp - 0x28], esp
push ebx
lea ecx, [ebp - 0x30]
call fcn.00487c90
mov ebp, ebp
nop
sub esp, 4
mov dword [esp], 0x722cd021
mov dword [esp - 0x24], esp
sub dword [esp], 0x46e261f4
add dword [esp], 0x45f9de56
xor dword [esp], 0x3b504bf5
mov ecx, ecx
xor dword [esp], 0x4a140776
push edi
nop
mov ebp, ebp
mov dword [esp - 4], 0x6c272af3
add dword [esp - 4], 0x99b565e
sub dword [esp - 4], 0x355be492
mov dword [esp - 0x28], edi
xor dword [esp - 4], 0x7b73d81a
sub dword [esp - 4], 0x1347b783
xor dword [esp - 4], 0x1584590b
mov dword [esp - 0x10], edi
xor dword [esp - 4], 0xf6c01250
sub esp, 4
lea ecx, [ebp - 0x30]
mov dword [esp - 0x28], esi
call fcn.00488750
mov ebx, eax
test ebx, ebx
xchg ebx, ebx
je 0x406b3d
nop
mov dword [esp - 4], 0x49552f31
sub dword [esp - 4], 0x366d34be
mov dword [esp - 0x24], ebx
xor dword [esp - 4], 0x729b9312
add dword [esp - 4], 0x14848940
xor dword [esp - 4], 0x2c441512
xchg edi, edi
sub dword [esp - 4], 0x5944e7b4
sub esp, 4
push ebx
lea ecx, [ebp - 0x18]
mov dword [esp - 0x10], 0x73e928
call fcn.00405d30
mov ecx, esi
push dword [eax]
call fcn.00484cb0
mov ecx, ecx
cmp byte [ebp - 0x14], 0
je 0x406b2d
push dword [ebp - 0x18]
call fcn.00490c60
mov dword [esp - 0x38], ebx
add esp, 4
push ebx
call fcn.00490c60
xchg ecx, ecx
add esp, 4
jmp 0x406c5f
nop
sub esp, 4
mov dword [esp], 0x3c8a2bd5
add dword [esp], 0x4137ee16
xchg edi, edi
xor dword [esp], 0x60c3d5d8
xor dword [esp], 0x15ffd4b4
xor dword [esp], 0x4790b1b2
mov dword [esp - 0x34], ebx
sub dword [esp], 0x4f6ea92b
nop
mov dword [esp - 4], 0x7f1c9378
xor dword [esp - 4], 0x66762c94
mov dword [esp - 0x30], ebp
add dword [esp - 4], 0x5c3ebb74
sub dword [esp - 4], 0x27536416
xor dword [esp - 4], 0x85f4e46
mov dword [esp - 0x2c], 0xcb7ae62
sub dword [esp - 4], 0x46095907
sub esp, 4
lea eax, [ebp - 0x18]
mov dword [esp - 0x2c], 0x1d35f86b
mov ecx, 0x4c15b8
push eax
call fcn.0048a3b0
mov ecx, ecx
push eax
mov ecx, esi
call fcn.00484bc0
cmp dword [ebp - 0x14], 2
mov edx, edx
jbe 0x406be6
push dword [ebp - 0x18]
call fcn.00490c60
add esp, 4
mov esi, esi
push esi
lea ecx, [ebp - 0x18]
call fcn.00405a10
mov dword [esp - 0x1c], 0x10ecc632
lea ecx, [ebp - 0x30]
push dword [eax]
push edi
mov dword [esp - 0xc], edi
nop
mov dword [esp - 4], 0x3aaa6ee0
add dword [esp - 4], 0x2090dd0c
mov dword [esp - 0x18], esi
xor dword [esp - 4], 0x24679b5b
sub dword [esp - 4], 0x6ab997cd
add dword [esp - 4], 0xf72b87f
mov edx, edx
xor dword [esp - 4], 0xe09c3710
sub esp, 4
call fcn.00488e80
cmp byte [ebp - 0x14], 0
xchg edi, edi
je 0x406c55
push dword [ebp - 0x18]
call fcn.00490c60
xchg ecx, ecx
add esp, 4
lea ecx, [ebp - 0x30]
call fcn.00488880
xchg ebx, ebx
nop
mov dword [esp - 4], 0x2274fa41
add dword [esp - 4], 0x4486f033
mov dword [esp - 0x1c], 0x73c37b93
sub dword [esp - 4], 0x2207f0dc
xor dword [esp - 4], 0x732f685
add dword [esp - 4], 0x3b6aaaf8
sub dword [esp - 4], 0x7f2bba15
mov dword [esp - 0x24], ecx
sub esp, 4
push esi
lea eax, [ebp - 8]
nop
mov dword [esp - 0x28], 0x3d244c43
mov dword [esp - 4], 0x4d653394
sub dword [esp - 4], 0xa2a6df9
add dword [esp - 4], 0x2283033b
mov edx, edx
sub dword [esp - 4], 0x308e76f9
xor dword [esp - 4], 0x352f5181
sub esp, 4
push eax
mov dword [esp - 0x20], 0x155a0bb2
call fcn.004871a0
add esp, 4
push eax
xchg edx, edx
lea eax, [ebp - 0x10]
push eax
call fcn.00485310
add esp, 0xc
mov ecx, ecx
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00484df0
xchg ebx, ebx
add esp, 0xc
push eax
call fcn.00486ff0
add esp, 8
mov dword [esp - 0x24], 0x540b270b
cmp dword [ebp - 0x14], 2
pop ebx
jbe 0x406d2f
push dword [ebp - 0x18]
xchg edx, edx
call fcn.00490c60
add esp, 4
cmp dword [ebp - 0xc], 2
mov dword [esp - 0x14], 0x3a883274
jbe 0x406d4a
push dword [ebp - 0x10]
call fcn.00490c60
add esp, 4
xchg ecx, ecx
cmp dword [ebp - 4], 2
jbe 0x406d63
push dword [ebp - 8]
call fcn.00490c60
mov dword [esp - 0x18], 0x7f5c370
add esp, 4
lea ecx, [ebp - 0x30]
call fcn.00487a70
mov dword [esp - 0x1c], edi
pop edi
mov eax, esi
pop esi
xchg esi, esi
mov esp, ebp
pop ebp
ret 8