Function at 0x40c530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59d310
mov eax, dword fs:[0]
push eax
sub esp, 0x1dc
mov eax, dword [0x627a40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1e0], ecx
mov eax, dword [ebp + 8]
lea edx, [ecx + 1]
mov esi, dword [ebp + 0xc]
mov dword [ebp - 4], 0
mov dword [ebp - 0x1c8], eax
mov dword [ebp - 0x1e4], eax
mov dword [ebp - 0x1dc], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c590
push 2
sub ecx, edx
lea eax, [ebp - 0x1c0]
push 0
mov dword [ebp - 0x1d0], ecx
mov ecx, esi
push eax
call fcn.0040d260
mov dword [ebp - 4], 1
lea eax, [ebp - 0x1c0]
cmp dword [ebp - 0x1ac], 0x10
cmovae eax, dword [ebp - 0x1c0]
push eax
call fcn.0057e8b0
add esp, 4
mov dword [ebp - 0x1d8], eax
lea eax, [ebp - 0x190]
mov ecx, esi
push 2
push 2
push eax
call fcn.0040d260
mov byte [ebp - 4], 2
lea eax, [ebp - 0x190]
cmp dword [ebp - 0x17c], 0x10
cmovae eax, dword [ebp - 0x190]
push eax
call fcn.0057e8b0
add esp, 4
mov dword [ebp - 0x1cc], eax
lea eax, [ebp - 0x178]
mov ecx, esi
push 2
push 4
push eax
call fcn.0040d260
mov byte [ebp - 4], 3
lea eax, [ebp - 0x178]
cmp dword [ebp - 0x164], 0x10
add ecx, dword [ebp - 0x1777b]
inc dword [ebx - 0x16343]
call dword [eax]
cmovae eax, dword [ebp - 0x178]
push eax
call fcn.0057e8b0
add esp, 4
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x160]
mov ecx, esi
push 2
push 6
push eax
call fcn.0040d260
mov byte [ebp - 4], 4
lea eax, [ebp - 0x160]
cmp dword [ebp - 0x14c], 0x10
cmovae eax, dword [ebp - 0x160]
push eax
call fcn.0057e8b0
add esp, 4
mov dword [ebp - 0x1c4], eax
call fcn.004366a0
add byte [ebx - 0x7a76fb3c], al
cmp al, 0xfe
invalid
adc eax, 0x840002a0
sal byte [esp + edx + 0x31], 0x4c
not dword [edx]
add al, byte [eax]
test al, al
je 0x40c6a3
xor dword [edi + esi*8 + 0x12], ecx
jecxz 0x40c629
pop edi
cli
dec edi
stc
cmp byte [eax + esi], al
jae 0x40c689
push esi
pop esi
dec ebp
adc al, 0x48
call fcn.00436400
test al, al
je 0x40c6ca
jmp 0x900c0783
call fcn.004364e0
test al, al
je 0x40c6f2
mov dl, 0x80
movsd dword es:[edi], dword [esi]
inc edi
mov byte [eax - 0x30fb793f], dh
insb byte es:[edi], dx
mov ss, word [edx]
aad 0xf3
push ebx
cld
add ch, ah
push es
js 0x40c67c
test ebp, esi
xchg byte [eax - 0x2f], bl
jb 0x40c687
jle 0x40c704
push 0x104
lea eax, [ebp - 0x118]
push 0
push eax
call fcn.00576f50
add esp, 0xc
lea eax, [ebp - 0x118]
push dword [ebp - 0x1c4]
push dword [ebp - 0x1d4]
push dword [ebp - 0x1cc]
push dword [ebp - 0x1d8]
push str._02d_02d_02d_02d
push eax
call fcn.004017c0
mov eax, dword [ebp - 0x1c8]
add esp, 0x18
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x14], 0xf
cmp dword [eax + 0x14], 0x10
mov dword [eax + 0x10], 0
jb 0x40c760
add byte [ebx - 0x7a72f33c], al
call 0x40c70d
mov ch, 0x3c
invalid
mov ecx, dword [eax]
jmp 0x40c762
mov ecx, eax
push 0
mov byte [ecx], 0
mov ecx, eax
push 0x6195c8
call fcn.00407270
mov edx, dword [ebp - 0x1e0]
mov dword [ebp - 0x1dc], 1
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x120], 0
cmp byte [edx], 0
mov byte [ebp - 0x130], 0
jne 0x40c7a7
xor ecx, ecx
jmp 0x40c7b9
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40c7b0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x130]
call fcn.00407270
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x148]
push 0
push 0x6195c8
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
call fcn.00407270
mov byte [ebp - 4], 6
call fcn.00435f30
test al, al
je 0x40c815
mov esi, 0xb9d297c8
push esi
xchg esi, eax
xor bl, byte [0x54ae8c91]
xor bl, byte [edx + ebp*8]
call fcn.00436550
test al, al
je 0x40c83d
or al, byte [edi + 0x26bfa0fa]
lodsd eax, dword [esi]
xchg ecx, eax
out dx, al
xchg ecx, eax
enter 0x7b61, 0x49
imul esp, eax, 0x11667ac1
ret
call fcn.004362b0
test al, al
je 0x40c85c
and eax, 0xa019da88
jmp 0x7a8fa4c3
mov eax, dword [ebp - 0x1d0]
test eax, eax
jle 0x40ca17
nop word [eax + eax]
push 0
dec eax
lea ecx, [ebp - 0x148]
push 0x6195c8
mov dword [ebp - 0x1d0], eax
call fcn.00407270
xor ebx, ebx
xor edi, edi
xor esi, esi
cmp dword [ebp - 0x120], ebx
jbe 0x40c964
nop dword [eax + eax]
cmp esi, dword [ebp - 0x1cc]
je 0x40c905
test ebx, ebx
je 0x40c8b9
mov eax, edi
cdq
idiv dword [ebp - 0x1c4]
test edx, edx
je 0x40c905
push 1
push esi
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp - 0x130]
call fcn.0040d260
push 0xffffffffffffffff
push 0
push eax
lea ecx, [ebp - 0x148]
mov byte [ebp - 4], 8
call fcn.004075d0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x194]
cmp eax, 0x10
jb 0x40c956
inc eax
push 1
push eax
push dword [ebp - 0x1a8]
call fcn.004017e0
add esp, 0xc
jmp 0x40c956
push 1
push esi
lea eax, [ebp - 0x1a8]
push eax
lea ecx, [ebp - 0x130]
call fcn.0040d260
push 0xffffffffffffffff
push 0
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x1c8]
push eax
call fcn.004075d0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x194]
cmp eax, 0x10
jb 0x40c94f
inc eax
push 1
push eax
push dword [ebp - 0x1a8]
call fcn.004017e0
add esp, 0xc
mov ebx, 1
xor edi, edi
inc esi
inc edi
cmp esi, dword [ebp - 0x120]
jb 0x40c8a0
lea eax, [ebp - 0x148]
push eax
lea eax, [ebp - 0x1a8]
push eax
call fcn.0040cc70
mov esi, eax
lea eax, [ebp - 0x130]
cmp eax, esi
je 0x40c9c7
mov eax, dword [ebp - 0x11c]
cmp eax, 0x10
jb 0x40c9a0
inc eax
push 1
push eax
push dword [ebp - 0x130]
call fcn.004017e0
add esp, 0xc
push esi
lea ecx, [ebp - 0x130]
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x120], 0
mov byte [ebp - 0x130], 0
call fcn.004076d0
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x194]
cmp eax, 0x10
jb 0x40c9e8
push 1
inc eax
push eax
push dword [ebp - 0x1a8]
call fcn.004017e0
add esp, 0xc
mov eax, dword [ebp - 0x1c4]
mov ecx, 1
dec eax
mov dword [ebp - 0x1cc], 0
cmp eax, ecx
cmovg ecx, eax
mov eax, dword [ebp - 0x1d0]
mov dword [ebp - 0x1c4], ecx
test eax, eax
jg 0x40c870
mov eax, dword [ebp - 0x134]
cmp eax, 0x10
jb 0x40ca35
inc eax
lea ecx, [ebp - 0x148]
push eax
push dword [ebp - 0x148]
call fcn.00407760
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x134], 0xf
mov dword [ebp - 0x138], 0
mov byte [ebp - 0x148], 0
cmp eax, 0x10
jb 0x40ca6e
inc eax
lea ecx, [ebp - 0x130]
push eax
push dword [ebp - 0x130]
call fcn.00407760
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x11c], 0xf
mov dword [ebp - 0x120], 0
mov byte [ebp - 0x130], 0
cmp eax, 0x10
jb 0x40caa7
inc eax
lea ecx, [ebp - 0x160]
push eax
push dword [ebp - 0x160]
call fcn.00407760
mov eax, dword [ebp - 0x164]
mov dword [ebp - 0x14c], 0xf
mov dword [ebp - 0x150], 0
mov byte [ebp - 0x160], 0
cmp eax, 0x10
jb 0x40cae0
inc eax
lea ecx, [ebp - 0x178]
push eax
push dword [ebp - 0x178]
call fcn.00407760
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x164], 0xf
mov dword [ebp - 0x168], 0
mov byte [ebp - 0x178], 0
cmp eax, 0x10
jb 0x40cb19
inc eax
lea ecx, [ebp - 0x190]
push eax
push dword [ebp - 0x190]
call fcn.00407760
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x17c], 0xf
mov dword [ebp - 0x180], 0
mov byte [ebp - 0x190], 0
cmp ecx, 0x10
jb 0x40cb52
inc ecx
push ecx
push dword [ebp - 0x1c0]
lea ecx, [ebp - 0x1c0]
call fcn.00407760
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00570ea9
mov esp, ebp
pop ebp
ret 8