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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x440
mov eax, dword [0x448a30]
mov dword [esp + 0x40], 0x5ace58ea
mov dword [esp + 0x44], 0x56cc54d1
mov dword [esp + 0x48], 0x52c550c3
mov dword [esp + 0x4c], 0x4e9a4cf2
mov dword [esp + 0x50], 0x4a9f4882
mov dword [esp + 0x54], 0x46a5449b
mov dword [esp + 0x58], 0x42ee409f
mov dword [esp + 0x5c], 0x3eab3cda
mov dword [esp + 0x60], 0x3aae38a3
mov dword [esp + 0x64], 0x36a634b4
mov dword [esp + 0x68], 0x328730d7
mov dword [esp + 0x6c], 0x2ecd2c9f
mov dword [esp + 0x70], 0x2af928fe
mov dword [esp + 0x74], 0x26f524fd
mov dword [esp + 0x78], 0x22c120ec
mov dword [esp + 0x7c], 0x1e841c8c
mov dword [esp + 0x80], 0x1ad71889
mov dword [esp + 0x84], 0x16de14d7
mov dword [esp + 0x88], 0x129910f7
mov dword [esp + 0x8c], 0xec10cdd
mov dword [esp + 0x90], 0xae908d6
mov dword [esp + 0x94], 0x69504ca
mov dword [esp + 0x98], 0x2950097
mov dword [esp + 0x9c], 0xfe52fc9e
mov dword [esp + 0xa0], 0xfa5bf862
mov dword [esp + 0xa4], 0xf66cf440
mov dword [esp + 0xa8], 0xf226f07b
mov dword [esp + 0xac], 0xee3eec3e
mov dword [esp + 0xb0], 0xea3fe820
mov dword [esp + 0xb4], 0xe62be438
mov dword [esp + 0xb8], 0xe239e007
mov dword [esp + 0xbc], 0xde65dc58
mov dword [esp + 0xc0], 0xda6cd873
mov dword [esp + 0xc4], 0xd601d46f
mov dword [esp + 0xc8], 0xd245d037
mov dword [esp + 0xcc], 0xce56cc4a
mov dword [esp + 0xd0], 0xca29c852
mov dword [esp + 0xd4], 0xc658c474
mov dword [esp + 0xd8], 0xc25ac064
mov dword [esp + 0xdc], 0xbe64bc54
mov dword [esp + 0xe0], 0xba7ab85f
mov dword [esp + 0xe4], 0xb627b423
mov dword [esp + 0xe8], 0xb224b020
mov dword [esp + 0xec], 0xae7aac2e
mov dword [esp + 0xf0], 0xaa78a87e
mov dword [esp + 0xf4], 0xa673a462
mov dword [esp + 0xf8], 0xa277a077
mov dword [esp + 0xfc], 0x9e4b9c73
mov dword [esp + 0x100], 0x9a79984f
mov dword [esp + 0x104], 0x96349428
mov dword [esp + 0x108], 0x92309009
mov dword [esp + 0x10c], 0x8e148c01
mov dword [esp + 0x110], 0x8a448858
mov dword [esp + 0x114], 0x864a8458
mov dword [esp + 0x118], 0x82528051
mov dword [esp + 0x11c], 0x7e7d7c4d
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xdf
ja 0x40c623
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x40]
add ecx, 0xe2c81223
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0x84
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe0
jb 0x40c5f0
mov ebx, dword [esp + 0x468]
lea ecx, [esp + 0x40]
push 0
push 0
push 0
push 0
push ecx
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443bfc]
xor edi, edi
xor eax, eax
test ebx, ebx
setne al
xor ebp, ebp
jmp dword [eax*4 + 0x443cbc]
mov dword [ebx], edi
xor eax, eax
mov ecx, dword [esp + 0x46c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443ccc]
mov dword [ecx], ebp
test edi, edi
setne al
add esp, 0x440
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, dword [esp + 0x454]
mov edi, dword [0x448a34]
mov dword [esp], 0x9f9e9c27
jmp dword [0x443c04]
mov edx, ebp
xor ebp, ebp
mov eax, ebx
neg eax
mov eax, 0
sbb eax, eax
push 0
mov ecx, dword [esp + 0x468]
push ecx
push ecx
push dword [esp + 0x46c]
push eax
push ebx
mov dword [esp + 0x20], edx
push edx
call dword [0x448a48]
xor ecx, ecx
test eax, eax
setne cl
xor edi, edi
jmp dword [ecx*4 + 0x443c4c]
push 0
push dword [esp + 0xc]
call dword [0x448a4c]
xor ecx, ecx
test eax, eax
setne cl
xor ebp, ebp
xor edi, edi
jmp dword [ecx*4 + 0x443c54]
mov dword [esp + 0x40], 0
xor ebp, ebp
xor edi, edi
jmp 0x40c720
mov ebx, edi
mov eax, 1
jmp dword [eax*4 + 0x443c8c]
mov edi, ebx
lea eax, [esp + 0x40]
push eax
push dword [esp + 0xc]
call dword [0x448a50]
test eax, eax
setne cl
mov eax, dword [esp + 0x40]
test eax, eax
setne dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x443c5c]
add eax, ebp
inc eax
push eax
push edi
call fcn.0043c730
add esp, 8
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443c64]
mov eax, dword [case.0x40c642.31]
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0xc], 0
mov eax, ebx
add eax, ebp
lea ecx, [esp + 0xc]
push ecx
push dword [esp + 0x44]
push eax
push dword [esp + 0x14]
call dword [0x448a54]
mov eax, dword [esp + 0xc]
jmp dword [0x443c7c]
nop
nop
nop
nop
jmp dword [0x443c88]
add ebp, eax
mov edi, ebx
xor eax, eax
jmp dword [eax*4 + 0x443c8c]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443ca4]
mov byte [edi + ebp], 0
mov eax, dword [case.0x40c9b0.12]
nop
nop
nop
nop
nop
nop
jmp eax
push dword [esp + 8]
call dword [0x448a5c]
jmp 0x40c9bb
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40c831
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0xfa1c
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x80
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40c800
movzx eax, word [esp]
push 0
push eax
push ebp
push esi
call edi
jmp dword [0x443c10]
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 3
ja 0x40c891
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx]
add eax, 0xfa1c
xor eax, ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x80
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 4
jb 0x40c860
movzx eax, word [esp]
push 0
push eax
push ebp
push esi
call edi
jmp case.0x40c642.2
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443c14]
xor ebp, ebp
xor edi, edi
jmp 0x40c9c5
mov ecx, dword [0x448a38]
mov dword [esp + 4], 0xe160dfde
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc]
cmp edx, 3
ja 0x40c915
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0xc]
movzx edi, byte [esp + edi + 4]
add edx, 0xfa1e
xor edx, edi
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x40]
add dl, 0x40
mov edi, dword [esp + 0xc]
mov byte [esp + edi + 4], dl
inc dword [esp + 0xc]
mov edx, dword [esp + 0xc]
cmp edx, 4
jb 0x40c8e0
mov edx, dword [esp + 4]
mov dword [esp + 0x40], 0xe030e637
mov dword [esp + 0x44], 0xec31e23e
mov word [esp + 0x48], 0xeeef
mov dword [esp + 0x4a], 0
mov dword [esp], 0
mov edi, dword [esp]
cmp edi, 0xd
ja 0x40c98d
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp]
mov ebp, dword [esp]
movzx ebp, byte [esp + ebp + 0x40]
lea ebx, [edi + ebp]
add edi, 0xa2
and edi, ebp
add edi, edi
sub ebx, edi
add ebx, 0x2b5b44a2
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0xc]
add bl, 0xbb
mov edi, dword [esp]
mov byte [esp + edi + 0x40], bl
inc dword [esp]
mov edi, dword [esp]
cmp edi, 0xe
jb 0x40c950
push edx
push 0
push 0
push 0
push dword [esp + 0x468]
lea edi, [esp + 0x54]
push edi
mov dword [esp + 0x54], eax
push eax
call ecx
mov ebp, eax
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x443c1c]
xor ebp, ebp
xor edi, edi
push dword [esp + 0x3c]
call dword [0x448a5c]
push esi
call dword [0x448a5c]
xor eax, eax
mov ebx, dword [esp + 0x468]
test ebx, ebx
setne al
jmp dword [eax*4 + 0x443cbc]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x443cc4]
xor eax, eax
mov ecx, dword [esp + 0x46c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443ccc]
push edi
call fcn.0043a910
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x46c]
test ecx, ecx
setne al
jmp dword [eax*4 + 0x443ccc]
movzx eax, byte [0x448b68]
mov ebx, dword [esp + 0x45c]
jmp dword [eax*4 + 0x443c24]
jmp dword [0x443c44]
jmp dword [0x443c30]
mov dword [esp + 0xc], 0x43cd5d1b
mov dword [esp + 0x10], 0x47ed41d3
mov dword [esp + 0x14], 0x4bef45e9
mov dword [esp + 0x18], 0x4f284914
mov dword [esp + 0x1c], 0xb3ed4def
mov dword [esp + 0x20], 0xb71ab117
mov dword [esp + 0x24], 0xbb27b517
mov dword [esp + 0x28], 0xbf19b923
mov dword [esp + 0x2c], 0xa323bd18
mov dword [esp + 0x30], 0xa7e3a132
mov word [esp + 0x34], 0xa5a6
mov dword [esp + 0x36], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x2d
ja 0x40caf1
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0x9d05aaed
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x4d
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x2e
jb 0x40cac0
movzx ecx, word [esp + 0xc]
lea eax, [esp + 0x40]
test cx, cx
je 0x40cb21
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40cb10
mov word [eax], 0
movzx ecx, word [0x448b6a]
test cx, cx
je 0x40cb55
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x448b6c]
add edx, 2
test cx, cx
jne 0x40cb40
add eax, edx
mov word [eax], 0
lea eax, [esp + 0x40]
push 0x20000000
push 0xffffffffffffffff
push eax
push ebp
call dword [0x448a44]
jmp case.0x40c9b0.5
mov word [eax], 0
lea eax, [esp + 0x40]
push 0x20000000
push 0xffffffffffffffff
push eax
push ebp
call dword [0x448a44]
jmp dword [0x443c34]
mov dword [esp + 0xc], 0x43cd5d1b
mov dword [esp + 0x10], 0x47ed41d3
mov dword [esp + 0x14], 0x4bef45e9
mov dword [esp + 0x18], 0x4f284914
mov dword [esp + 0x1c], 0xb3ed4def
mov dword [esp + 0x20], 0xb71ab117
mov dword [esp + 0x24], 0xbb27b517
mov dword [esp + 0x28], 0xbf19b923
mov dword [esp + 0x2c], 0xa323bd18
mov dword [esp + 0x30], 0xa7e3a132
mov word [esp + 0x34], 0xa5a6
mov dword [esp + 0x36], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x2d
ja 0x40cc31
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0x9d05aaed
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x4d
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x2e
jb 0x40cc00
movzx ecx, word [esp + 0xc]
mov eax, edi
test cx, cx
je 0x40cc61
lea edx, [esp + 0xe]
lea eax, [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40cc50
mov word [eax], 0
movzx ecx, word [0x448b6a]
test cx, cx
je 0x40cb70
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x448b6c]
add edx, 2
test cx, cx
jne 0x40cc80
add eax, edx
jmp 0x40cb70
mov byte [eax], 0x84
mov byte [eax], 0xe1
mov dword [eax], case.0x40c642.3
inc edx
enter 64, 0xffffffffffffffa1
enter 0x40, 0xffffffffffffffaf
enter 0x40, 0xffffffffffffffb8
enter 0x40, 0xffffffffffffffb7
leave
inc eax
add byte [edx], ah
retf 0x40