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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x444
mov eax, dword [0x44962c]
mov dword [esp + 0x44], 0xc838ce18
mov dword [esp + 0x48], 0xd43eca31
mov dword [esp + 0x4c], 0xd025d623
mov dword [esp + 0x50], 0xdcecd230
mov dword [esp + 0x54], 0xd8efdee0
mov dword [esp + 0x58], 0xe4c5daeb
mov dword [esp + 0x5c], 0xe038e6cf
mov dword [esp + 0x60], 0xec1be208
mov dword [esp + 0x64], 0xe818ee03
mov dword [esp + 0x68], 0xf408ea12
mov dword [esp + 0x6c], 0xf027f6d7
mov dword [esp + 0x70], 0xfcddf22f
mov dword [esp + 0x74], 0xf8c9fecc
mov dword [esp + 0x78], 0x84b5facd
mov dword [esp + 0x7c], 0x80a18642
mov dword [esp + 0x80], 0x8c66825a
mov dword [esp + 0x84], 0x88b78e79
mov dword [esp + 0x88], 0x94508ab7
mov dword [esp + 0x8c], 0x906996b7
mov dword [esp + 0x90], 0x9ca192ad
mov dword [esp + 0x94], 0x98b99eb4
mov dword [esp + 0x98], 0xa4559a58
mov dword [esp + 0x9c], 0xa055a657
mov dword [esp + 0xa0], 0xac74a24c
mov dword [esp + 0xa4], 0xa84bae40
mov dword [esp + 0xa8], 0xb45eaa7e
mov dword [esp + 0xac], 0xb080b64b
mov dword [esp + 0xb0], 0xbc80b28c
mov dword [esp + 0xb4], 0xb88fbe86
mov dword [esp + 0xb8], 0x447bba86
mov dword [esp + 0xbc], 0x40694667
mov dword [esp + 0xc0], 0x4c854296
mov dword [esp + 0xc4], 0x489e4e93
mov dword [esp + 0xc8], 0x54614a9f
mov dword [esp + 0xcc], 0x50a55677
mov dword [esp + 0xd0], 0x5ca852b8
mov dword [esp + 0xd4], 0x58795eb0
mov dword [esp + 0xd8], 0x648a5a92
mov dword [esp + 0xdc], 0x6094668a
mov dword [esp + 0xe0], 0x6c466292
mov dword [esp + 0xe4], 0x68a46e4f
mov dword [esp + 0xe8], 0x74876a83
mov dword [esp + 0xec], 0x70867686
mov dword [esp + 0xf0], 0x7c4c729c
mov dword [esp + 0xf4], 0x784a7e4c
mov dword [esp + 0xf8], 0x4337a40
mov dword [esp + 0xfc], 0x370637
mov dword [esp + 0x100], 0xc3b0233
mov dword [esp + 0x104], 0x8290e3f
mov dword [esp + 0x108], 0x14f60ad6
mov dword [esp + 0x10c], 0x10f216f9
mov dword [esp + 0x110], 0x1cf612e1
mov dword [esp + 0x114], 0x18261e2e
mov dword [esp + 0x118], 0x241c1a26
mov dword [esp + 0x11c], 0x201c2611
mov dword [esp + 0x120], 0x2c2d221d
mov byte [esp + 0x126], 0
mov word [esp + 0x124], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xe2
ja 0x40c9c3
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x44]
add ecx, 0x2f378b8a
xor ecx, edx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xc]
add cl, 0xbb
mov edx, dword [esp]
mov byte [esp + edx + 0x44], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xe3
jb 0x40c990
mov edi, dword [esp + 0x470]
mov ebp, dword [esp + 0x46c]
lea ecx, [esp + 0x44]
push 0
push 0
push 0
push 0
push ecx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x444c04]
xor esi, esi
xor eax, eax
test ebp, ebp
setne al
mov dword [esp + 8], 0
jmp dword [eax*4 + 0x444c8c]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x458]
mov eax, dword [0x449630]
mov dword [esp + 0x44], 0xe2e3e324
mov word [esp + 0x48], 0
mov byte [esp + 0x4a], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 6
ja 0x40ca81
nop
nop
nop
nop
nop
nop
nop
mov ebx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x44]
add ebx, 0x297aa564
mov esi, ebx
and esi, edx
mov edi, ebx
xor edi, edx
not edx
or ebx, edx
sub edx, ebx
add edx, esi
lea edx, [edi + edx*2]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xc]
add dl, 0x7b
mov esi, dword [esp]
mov byte [esp + esi + 0x44], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 7
jb 0x40ca40
movzx edx, word [esp + 0x44]
push 0
push edx
push ecx
mov ebx, dword [esp + 0x4c]
push ebx
call eax
mov edi, eax
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444c0c]
mov dword [esp + 8], 0
xor esi, esi
mov edi, dword [esp + 0x470]
jmp 0x40cf8d
mov eax, dword [0x449634]
mov dword [esp + 0xc], 0xb435b6b7
mov word [esp + 0x10], 0
mov byte [esp + 0x12], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 6
ja 0x40cb10
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0xdfaab92c
xor ecx, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x44]
add cl, 0x65
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 7
jb 0x40cae0
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x44], 0xa612a40b
mov dword [esp + 0x48], 0xa21da014
mov word [esp + 0x4c], 0xaca3
mov dword [esp + 0x4e], 0
mov word [esp + 0x52], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0xf
ja 0x40cb83
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x44]
add edx, 0xa6ba3a4f
xor edx, esi
mov dword [esp], edx
mov edx, dword [esp]
add dl, 0xc
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x44], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x10
jb 0x40cb50
push ecx
push 0
push 0
push 0
push dword [esp + 0x46c]
lea esi, [esp + 0x58]
push esi
push edi
call eax
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x444c14]
mov dword [esp + 8], 0
xor esi, esi
jmp 0x40d022
movzx eax, byte [0x449764]
jmp dword [eax*4 + 0x444c1c]
jmp dword [0x444c28]
lea eax, [esp + 0x44]
push eax
push ebx
call dword [0x44964c]
test eax, eax
setne cl
mov eax, dword [esp + 0x44]
test eax, eax
setne dl
and dl, cl
movzx ecx, dl
jmp dword [ecx*4 + 0x444c54]
mov ecx, dword [esp + 8]
lea edi, [ecx + eax]
inc edi
jmp dword [0x444c60]
push edi
push esi
call fcn.0043d130
add esp, 8
nop
nop
push edi
push esi
call fcn.0043d130
add esp, 8
jmp dword [0x444c68]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x444c6c]
mov dword [esp + 0xc], 0
mov ecx, eax
mov edi, dword [esp + 8]
add ecx, edi
lea edx, [esp + 0xc]
push edx
push dword [esp + 0x48]
push ecx
push ebx
mov esi, eax
call dword [0x449650]
mov eax, dword [esp + 0xc]
mov ecx, eax
and ecx, edi
xor eax, edi
lea eax, [eax + ecx*2]
mov dword [esp + 8], eax
mov eax, 1
mov edi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x444c74]
xor eax, eax
mov edi, dword [esp + 0x3c]
jmp dword [eax*4 + 0x444c74]
jmp dword [eax*4 + 0x444c7c]
jmp 0x40cbd0
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x444c84]
mov eax, dword [esp + 8]
mov byte [esi + eax], 0
jmp case.0x40cba2.8
mov dword [esp + 0x44], 0
mov dword [esp + 8], 0
xor esi, esi
jmp 0x40cbd0
mov eax, dword [esp + 8]
mov dword [edi], eax
test esi, esi
setne al
add esp, 0x444
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0xc], 0xb9d0db3
mov dword [esp + 0x10], 0x79d099b
mov dword [esp + 0x14], 0x39f0591
mov dword [esp + 0x18], 0x7f600144
mov dword [esp + 0x1c], 0x7bdd7ddf
mov dword [esp + 0x20], 0x77e279e7
mov dword [esp + 0x24], 0x73e775d7
mov dword [esp + 0x28], 0x6fd171fb
mov dword [esp + 0x2c], 0x6beb6df0
mov dword [esp + 0x30], 0x672b69fa
mov word [esp + 0x34], 0x6566
mov dword [esp + 0x36], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x2d
ja 0x40cd91
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0xfd3d3231
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xc1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x2e
jb 0x40cd60
movzx ecx, word [esp + 0xc]
mov eax, esi
test cx, cx
je 0x40cdc1
lea eax, [esp + 0x44]
lea edx, [esp + 0xe]
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 0x40cdb0
mov word [eax], 0
movzx ecx, word [0x449766]
test cx, cx
je 0x40cdf5
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x449768]
add edx, 2
test cx, cx
jne 0x40cde0
add eax, edx
mov word [eax], 0
lea eax, [esp + 0x44]
push 0x20000000
push 0xffffffffffffffff
push eax
push ebx
call dword [0x449640]
jmp dword [0x444c2c]
mov dword [esp + 0xc], 0xb9d0db3
mov dword [esp + 0x10], 0x79d099b
mov dword [esp + 0x14], 0x39f0591
mov dword [esp + 0x18], 0x7f600144
mov dword [esp + 0x1c], 0x7bdd7ddf
mov dword [esp + 0x20], 0x77e279e7
mov dword [esp + 0x24], 0x73e775d7
mov dword [esp + 0x28], 0x6fd171fb
mov dword [esp + 0x2c], 0x6beb6df0
mov dword [esp + 0x30], 0x672b69fa
mov word [esp + 0x34], 0x6566
mov dword [esp + 0x36], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x2d
ja 0x40cec1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0xfd3d3231
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xc1
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xc], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x2e
jb 0x40ce90
movzx ecx, word [esp + 0xc]
lea eax, [esp + 0x44]
test cx, cx
je 0x40cef1
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 0x40cee0
mov word [eax], 0
movzx ecx, word [0x449766]
test cx, cx
je 0x40cf25
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [edx + 0x449768]
add edx, 2
test cx, cx
jne 0x40cf10
add eax, edx
mov word [eax], 0
lea eax, [esp + 0x44]
push 0x20000000
push 0xffffffffffffffff
push eax
push ebx
call dword [0x449640]
jmp case.0x40cba2.5
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x460]
mov eax, ecx
neg eax
mov eax, 0
sbb eax, eax
push 0
mov edx, dword [esp + 0x46c]
push edx
push edx
push dword [esp + 0x470]
push eax
push ecx
push ebx
call dword [0x449644]
xor ecx, ecx
test eax, eax
setne cl
xor esi, esi
jmp dword [ecx*4 + 0x444c34]
jmp dword [0x444c40]
push ebx
call dword [0x449658]
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x444c8c]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x444ca4]
push esi
call fcn.0043b3e0
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444cac]
mov dword [ebp], esi
jmp dword [0x444ca0]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x444cac]
push 0
push ebx
call dword [0x449648]
push 0
push ebx
call dword [0x449648]
jmp dword [0x444c48]
xor ecx, ecx
test eax, eax
setne cl
mov dword [esp + 8], 0
xor esi, esi
mov dword [esp + 0x3c], edi
jmp dword [ecx*4 + 0x444c4c]
push ebx
call dword [0x449658]
push edi
call dword [0x449658]
mov edi, dword [esp + 0x470]
mov ebx, dword [esp + 0x40]
jmp 0x40cf8d
leave
inc eax
add byte [esi], al
retf 0x40