Function at 0x40c580
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x240
mov eax, dword [0x44a888]
mov dword [esp + 0x40], 0xf96bfbb7
mov dword [esp + 0x44], 0xfd61ff76
mov dword [esp + 0x48], 0xf16ef360
mov dword [esp + 0x4c], 0xf527f757
mov dword [esp + 0x50], 0xe938eb3f
mov dword [esp + 0x54], 0xed0eef38
mov dword [esp + 0x58], 0xe14be334
mov dword [esp + 0x5c], 0xe574e77f
mov dword [esp + 0x60], 0xd94bdb40
mov dword [esp + 0x64], 0xdd4bdf51
mov dword [esp + 0x68], 0xd160d33c
mov dword [esp + 0x6c], 0xd536d764
mov dword [esp + 0x70], 0xc91acb03
mov dword [esp + 0x74], 0xcd1ecf1a
mov dword [esp + 0x78], 0xc122c301
mov dword [esp + 0x7c], 0xc559c769
mov dword [esp + 0x80], 0xb970bb56
mov dword [esp + 0x84], 0xbd73bf6c
mov dword [esp + 0x88], 0xb13ab35c
mov dword [esp + 0x8c], 0xb562b77a
mov dword [esp + 0x90], 0xa94aab6b
mov dword [esp + 0x94], 0xad3eaf6f
mov dword [esp + 0x98], 0xa13ea33c
mov dword [esp + 0x9c], 0xa50fa73b
mov dword [esp + 0xa0], 0x993c9b3f
mov dword [esp + 0xa4], 0x9d019f25
mov dword [esp + 0xa8], 0x91439308
mov dword [esp + 0xac], 0x9543975b
mov dword [esp + 0xb0], 0x89588b5d
mov dword [esp + 0xb4], 0x8d448f5d
mov dword [esp + 0xb8], 0x815a836c
mov dword [esp + 0xbc], 0x853e873d
mov dword [esp + 0xc0], 0x79c97b30
mov dword [esp + 0xc4], 0x7da27fc4
mov dword [esp + 0xc8], 0x71ee739c
mov dword [esp + 0xcc], 0x75eb77ef
mov dword [esp + 0xd0], 0x698a6bef
mov dword [esp + 0xd4], 0x6df56fd1
mov dword [esp + 0xd8], 0x61ff63c9
mov dword [esp + 0xdc], 0x65b967f1
mov dword [esp + 0xe0], 0x599f5b84
mov dword [esp + 0xe4], 0x5dc85fc0
mov dword [esp + 0xe8], 0x51c153cd
mov dword [esp + 0xec], 0x558757cb
mov dword [esp + 0xf0], 0x499d4b83
mov dword [esp + 0xf4], 0x4d9c4f87
mov dword [esp + 0xf8], 0x4190439c
mov dword [esp + 0xfc], 0x45944790
mov dword [esp + 0x100], 0x39da3b94
mov dword [esp + 0x104], 0x3d993f8d
mov dword [esp + 0x108], 0x319533a6
mov dword [esp + 0x10c], 0x35a937a6
mov dword [esp + 0x110], 0x29e12be5
mov dword [esp + 0x114], 0x2de72ffd
mov dword [esp + 0x118], 0x21f723fe
mov dword [esp + 0x11c], 0x252627ea
mov byte [esp + 0x122], 0
mov word [esp + 0x120], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe2
ja 0x40c823
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x40]
add ecx, 0x65ac82ff
xor ecx, edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 5
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe3
jb 0x40c7f0
lea ebp, [esp + 0x40]
push 0
push 0
push 0
push 0
push ebp
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x445034]
xor ebx, ebx
jmp 0x40cc98
mov eax, dword [0x44a88c]
mov dword [esp + 0x40], 0xc9ca3489
mov byte [esp + 0x44], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40c8bf
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edi, byte [esp + edx + 0x40]
lea ebx, [ecx - 0x7aca9d4d]
lea edx, [ecx + edi]
add edx, 0x853562b3
add ecx, 0xb3
or ecx, ebx
and ecx, edi
mov edi, edx
not edi
and edi, ecx
add edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x10]
add cl, 0x81
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40c870
movzx ecx, word [esp + 0x40]
push 0
push ecx
push 0x44a8bc
push esi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44503c]
xor ebx, ebx
jmp 0x40cc91
mov dword [esp + 0xc], eax
mov eax, dword [0x44a890]
mov dword [esp + 0x10], 0xcf4ec9c8
mov byte [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40c956
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x10]
lea edi, [ecx + edx]
add ecx, 0x32
and ecx, edx
add ecx, ecx
sub edi, ecx
add edi, 0x21d0dc32
mov dword [esp + 0x40], edi
mov ecx, dword [esp + 0x40]
mov edx, ecx
not edx
and edx, 0xfa
and ecx, 5
sub ecx, edx
mov edx, dword [esp]
mov byte [esp + edx + 0x10], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40c910
mov ecx, dword [esp + 0x254]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x40], 0x1fcd19c8
mov dword [esp + 0x44], 0xe3361dcb
mov word [esp + 0x48], 0xe1e0
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp + 4], 0
mov edi, dword [esp + 4]
cmp edi, 0xe
ja 0x40c9d3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 4]
mov ebx, dword [esp + 4]
movzx ebx, byte [esp + ebx + 0x40]
add edi, 0xd2502dfa
xor edi, ebx
mov dword [esp], edi
mov ebx, dword [esp]
add bl, 0x1e
mov edi, dword [esp + 4]
mov byte [esp + edi + 0x40], bl
inc dword [esp + 4]
mov edi, dword [esp + 4]
cmp edi, 0xf
jb 0x40c9a0
push edx
push 0
push 0
push 0
push ecx
push ebp
mov edi, dword [esp + 0x24]
push edi
call eax
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x445044]
mov edi, dword [esp + 0x26c]
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x44504c]
jmp dword [0x445054]
push edi
push edi
push edi
push edi
push ebx
call dword [0x44a898]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push edi
push edi
push edi
push edi
push ebx
call dword [0x44a898]
jmp dword [0x445060]
mov edi, dword [esp + 0x25c]
mov edx, dword [esp + 0x258]
movzx eax, byte [0x44a9c0]
jmp dword [eax*4 + 0x445074]
mov dword [esp + 0x10], 0x299b2be1
mov dword [esp + 0x14], 0x2d832f99
mov dword [esp + 0x18], 0x31993383
mov dword [esp + 0x1c], 0x35d637ce
mov dword [esp + 0x20], 0x399b3b95
mov dword [esp + 0x24], 0x3d943f9d
mov dword [esp + 0x28], 0x1b1039d
mov dword [esp + 0x2c], 0x5a707b9
mov dword [esp + 0x30], 0x9b50ba2
mov dword [esp + 0x34], 0xdcd0fb8
mov dword [esp + 0x38], 0x130c
mov byte [esp + 0x3c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2c
ja 0x40cafe
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
add eax, 0x32ee8047
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x9d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2d
jb 0x40cad0
movzx eax, word [esp + 0x10]
test ax, ax
je 0x40cb22
lea ebp, [esp + 0x40]
lea ecx, [esp + 0x12]
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40cb10
mov word [ebp], 0
movzx eax, word [0x44a9c2]
test ax, ax
je 0x40cb56
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp + ecx], ax
movzx eax, word [ecx + 0x44a9c4]
add ecx, 2
test ax, ax
jne 0x40cb40
add ebp, ecx
mov word [ebp], 0
mov eax, dword [0x44a89c]
mov dword [esp + 0x10], 0x23c2c1c0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 7
ja 0x40cbce
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x10]
mov edi, ecx
and edi, 0x20d126b0
xor ecx, 0xa0d126b0
lea ecx, [ecx + edi*2]
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x90
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 8
jb 0x40cb90
lea ecx, [esp + 0x40]
push dword [esp + 0x10]
push 0xffffffffffffffff
push ecx
push ebx
call eax
mov edx, dword [esp + 0x258]
mov edi, dword [esp + 0x25c]
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, eax
push 0
mov ebp, dword [esp + 0x26c]
push ebp
push dword [esp + 0x268]
push edi
push eax
push edx
push ebx
call dword [0x44a8a0]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0xc]
jmp dword [ecx*4 + 0x44508c]
mov dword [esp + 8], 0
jmp dword [0x4450a4]
mov eax, dword [esp + 0x264]
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x40]
push ecx
push ebp
push eax
push ebx
call dword [0x44a8b0]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 8], 0
jmp dword [ecx*4 + 0x445094]
push 0
push ebx
call dword [0x44a8a4]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 8], 0
jmp dword [ecx*4 + 0x44509c]
jmp dword [0x4450a4]
mov al, 1
mov dword [esp + 8], eax
jmp dword [0x4450a4]
push esi
call dword [0x44a8b4]
mov eax, ebx
add esp, 0x240
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call dword [0x44a8b4]
push ebx
call dword [0x44a8b4]
jmp dword [0x4450ac]
push edi
call dword [0x44a8b4]
mov ebx, dword [esp + 8]
jmp 0x40cc91
int3
enter 0x40, 0x49
enter 0x40, 0xffffffffffffffdd
enter 0x40, 0xffffffffffffffe4
enter 0x40, 0xffffffffffffffb9
int3