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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x43c
mov eax, dword [0x449850]
mov dword [esp + 0x3c], 0x8a1e883a
mov dword [esp + 0x40], 0x76dc7411
mov dword [esp + 0x44], 0x72e570e3
mov dword [esp + 0x48], 0x7eaa7cd2
mov dword [esp + 0x4c], 0x7aaf78a2
mov dword [esp + 0x50], 0x668564ab
mov dword [esp + 0x54], 0x62de608f
mov dword [esp + 0x58], 0x6efb6cca
mov dword [esp + 0x5c], 0x6afe68c3
mov dword [esp + 0x60], 0x56c654f4
mov dword [esp + 0x64], 0x52e750b7
mov dword [esp + 0x68], 0x5ebd5cef
mov dword [esp + 0x6c], 0x5a89588e
mov dword [esp + 0x70], 0x4695448d
mov dword [esp + 0x74], 0x42a1409c
mov dword [esp + 0x78], 0x4ee44cfc
mov dword [esp + 0x7c], 0x4a9748d9
mov dword [esp + 0x80], 0x36ee3497
mov dword [esp + 0x84], 0x32a930d7
mov dword [esp + 0x88], 0x3ee13ced
mov dword [esp + 0x8c], 0x3ad938d6
mov dword [esp + 0x90], 0x26b524fa
mov dword [esp + 0x94], 0x22b520b7
mov dword [esp + 0x98], 0x2e922c8e
mov dword [esp + 0x9c], 0x2a8b2882
mov dword [esp + 0xa0], 0x16bc14e0
mov dword [esp + 0xa4], 0x12c6108b
mov dword [esp + 0xa8], 0x1ece1cce
mov dword [esp + 0xac], 0x1acf18c0
mov dword [esp + 0xb0], 0x6db04c8
mov dword [esp + 0xb4], 0x2e900e7
mov dword [esp + 0xb8], 0xec50cc8
mov dword [esp + 0xbc], 0xabc08b3
mov dword [esp + 0xc0], 0xf621f4bf
mov dword [esp + 0xc4], 0xf265f017
mov dword [esp + 0xc8], 0xfe56fc5a
mov dword [esp + 0xcc], 0xfa19f852
mov dword [esp + 0xd0], 0xe648e434
mov dword [esp + 0xd4], 0xe24ae044
mov dword [esp + 0xd8], 0xee04ec74
mov dword [esp + 0xdc], 0xea2ae80f
mov dword [esp + 0xe0], 0xd647d443
mov dword [esp + 0xe4], 0xd244d040
mov dword [esp + 0xe8], 0xde0adc7e
mov dword [esp + 0xec], 0xda08d80e
mov dword [esp + 0xf0], 0xc613c402
mov dword [esp + 0xf4], 0xc217c017
mov dword [esp + 0xf8], 0xce1bcc13
mov dword [esp + 0xfc], 0xca29c81f
mov dword [esp + 0x100], 0xb614b478
mov dword [esp + 0x104], 0xb210b019
mov dword [esp + 0x108], 0xbe14bc21
mov dword [esp + 0x10c], 0xba64b868
mov dword [esp + 0x110], 0xa67aa468
mov dword [esp + 0x114], 0xa272a071
mov dword [esp + 0x118], 0xaeadac7d
mov dword [esp + 0x11c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe3
ja 0x40c6e3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x3c]
add ecx, 0xa4a30bfb
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x8c
mov edx, dword [esp]
mov byte [esp + edx + 0x3c], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe4
jb 0x40c6b0
mov ebx, dword [esp + 0x468]
mov esi, dword [esp + 0x464]
lea ebp, [esp + 0x3c]
push 0
push 0
push 0
push 0
push ebp
call eax
xor edx, edx
test eax, eax
setne dl
jmp dword [edx*4 + 0x444b6c]
xor edi, edi
xor eax, eax
test esi, esi
setne al
xor ebp, ebp
jmp dword [eax*4 + 0x444bfc]
mov dword [esi], edi
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x444c0c]
mov dword [ebx], ebp
test edi, edi
setne al
add esp, 0x43c
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
mov esi, dword [esp + 0x450]
mov eax, dword [0x449854]
mov dword [esp + 0x3c], 0x6a6b6ba4
mov byte [esp + 0x40], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 4
ja 0x40c7a9
nop
nop
nop
nop
mov edx, dword [esp]
mov edi, dword [esp]
movzx edi, byte [esp + edi + 0x3c]
add edx, 0xca485270
xor edx, edi
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
mov edi, edx
xor edi, 0x19
and edx, 0x66
add edx, edx
sub edx, edi
mov edi, dword [esp]
mov byte [esp + edi + 0x3c], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 5
jb 0x40c770
movzx edx, word [esp + 0x3c]
push 0
push edx
push esi
mov esi, ecx
push ecx
call eax
xor ecx, ecx
mov dword [esp + 8], eax
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444b74]
xor ebp, ebp
xor edi, edi
jmp 0x40cb76
mov eax, dword [0x449858]
mov dword [esp + 0xc], 0x69ee6f6c
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 4
ja 0x40c830
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x6acdfb41
xor ecx, edx
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add cl, 0xd3
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 5
jb 0x40c800
mov ecx, dword [esp + 0x454]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x3c], 0x9f4d9d4a
mov dword [esp + 0x40], 0x63b4614b
mov dword [esp + 0x44], 0x6562
mov byte [esp + 0x48], 0
mov dword [esp + 4], 0
mov edi, dword [esp + 4]
cmp edi, 0xc
ja 0x40c8a3
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 4]
mov ebx, dword [esp + 4]
movzx ebx, byte [esp + ebx + 0x3c]
add edi, 0xe54b8fb
xor edi, ebx
mov dword [esp], edi
mov ebx, dword [esp]
add bl, 0x9f
mov edi, dword [esp + 4]
mov byte [esp + edi + 0x3c], bl
inc dword [esp + 4]
mov edi, dword [esp + 4]
cmp edi, 0xd
jb 0x40c870
push edx
push 0
push 0
push 0
push ecx
push ebp
push dword [esp + 0x20]
call eax
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x444b7c]
xor ebp, ebp
xor edi, edi
jmp 0x40cb65
mov edi, dword [esp + 0x460]
mov edx, dword [esp + 0x45c]
mov ecx, dword [esp + 0x458]
movzx eax, byte [0x449988]
jmp dword [eax*4 + 0x444b84]
mov dword [esp + 0xc], 0x2ebe2c50
mov dword [esp + 0x10], 0x2abe28b8
mov dword [esp + 0x14], 0x26b824be
mov dword [esp + 0x18], 0x2203206b
mov dword [esp + 0x1c], 0x5e3e5c3c
mov dword [esp + 0x20], 0x5ac558c4
mov dword [esp + 0x24], 0x56c05434
mov dword [esp + 0x28], 0x523250d8
mov dword [esp + 0x2c], 0x4ec44c2f
mov dword [esp + 0x30], 0x4a0c48d9
mov word [esp + 0x34], 0x4445
mov dword [esp + 0x36], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2d
ja 0x40c98e
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0xebcc9830
xor eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
add al, 0xe3
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2e
jb 0x40c960
movzx eax, word [esp + 0xc]
test ax, ax
je 0x40c9b2
lea ebp, [esp + 0x3c]
lea ecx, [esp + 0xe]
mov word [ebp], ax
add ebp, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x40c9a0
mov word [ebp], 0
movzx eax, word [0x44998a]
test ax, ax
je 0x40c9ea
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebp + ecx], ax
movzx eax, word [ecx + 0x44998c]
add ecx, 2
test ax, ax
jne 0x40c9d0
mov edi, edx
add ebp, ecx
jmp 0x40c9ec
mov edi, edx
mov word [ebp], 0
lea eax, [esp + 0x3c]
push 0x20000000
push 0xffffffffffffffff
push eax
push ebx
call dword [0x449864]
mov ecx, dword [esp + 0x458]
mov edx, edi
mov edi, dword [esp + 0x460]
xor ebp, ebp
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
push edi
push edi
push edx
push eax
push ecx
push ebx
call dword [0x449868]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x444b8c]
push 0
push ebx
call dword [0x44986c]
xor ecx, ecx
test eax, eax
setne cl
xor ebp, ebp
xor edi, edi
jmp dword [ecx*4 + 0x444b94]
mov dword [esp + 0x3c], 0
xor edi, edi
xor ebp, ebp
jmp dword [0x444b9c]
push edi
call fcn.0043aed0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x444c0c]
lea eax, [esp + 0x3c]
push eax
push ebx
call dword [0x449870]
lea eax, [esp + 0x3c]
push eax
push ebx
call dword [0x449870]
jmp dword [0x444ba8]
mov ecx, dword [esp + 0x3c]
test eax, eax
setne al
test ecx, ecx
setne dl
and dl, al
movzx eax, dl
jmp dword [eax*4 + 0x444bac]
add ecx, ebp
mov eax, ecx
and eax, 1
xor ecx, 1
lea eax, [ecx + eax*2]
push eax
push edi
call fcn.0043cc80
add esp, 8
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444bb4]
mov dword [esp + 0xc], 0
mov ecx, eax
add ecx, ebp
lea edx, [esp + 0xc]
push edx
push dword [esp + 0x40]
push ecx
push ebx
mov edi, eax
call dword [0x449874]
add ebp, dword [esp + 0xc]
xor eax, eax
jmp dword [eax*4 + 0x444bcc]
jmp dword [0x444bc4]
mov eax, 1
jmp dword [eax*4 + 0x444bcc]
jmp dword [0x444b9c]
mov eax, dword [case.0x40c707.29]
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444be4]
jmp dword [0x444bf0]
mov byte [edi + ebp], 0
jmp dword [0x444bf8]
mov byte [edi + ebp], 0
mov byte [edi + ebp], 0
jmp dword [0x444bf8]
push ebx
call dword [0x44987c]
push dword [esp + 8]
call dword [0x44987c]
mov ebx, dword [esp + 0x468]
push esi
call dword [0x44987c]
xor eax, eax
mov esi, dword [esp + 0x464]
test esi, esi
setne al
jmp dword [eax*4 + 0x444bfc]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444c04]
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x444c0c]
mov dword [eax], case.0x40c707.1
leave
mov dword [eax], case.0x40c7c2.1
ret 0x40c8