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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xac
cmp dword [ecx + 0x20], 0
je 0x40e116
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa8]
push 0xa
push 4
push ecx
push eax
call fcn.0040e130
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a5d0
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c770
add esp, 4
mov edi, eax
mov dword [esp + 0x18], 0x1b17e210
mov byte [esp + 0x1c], 0x7c
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40dc3a
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, eax
xor edx, 0x75c2df6a
and eax, 0xf5c2df6a
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0x12
and eax, 0x6d
add eax, eax
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40dbf0
lea eax, [esp + 0x18]
mov ecx, esi
push 0x44d138
push eax
push edi
call fcn.0040d4c0
mov dword [esp + 0x18], 0xd7baa0b8
mov dword [esp + 0x1c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40dcd1
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x18]
mov ecx, eax
not ecx
or ecx, 0x28fb8bce
add ecx, eax
xor eax, 0x28fb8bce
lea ebp, [eax + ecx*2]
lea ecx, [eax + ecx*2]
add ecx, 2
lea eax, [edx + ebp]
add eax, 2
and ecx, edx
mov edx, eax
xor edx, ecx
mov ebp, ecx
not ebp
and eax, ebp
add eax, eax
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, ebp
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xfa
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40dc70
mov ecx, esi
push ebx
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.0040d4c0
mov eax, dword [str.VXGDR__J888]
mov dword [esp + 0x18], 0x13fef884
mov dword [esp + 0x1c], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 7
ja 0x40dd62
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
mov ebx, edx
not ebx
or ebx, 0x2be3c944
add ebx, edx
xor edx, 0x2be3c944
lea ebp, [edx + ebx*2]
lea edx, [edx + ebx*2]
add edx, 2
lea ebx, [ecx + ebp]
add ebx, 2
not ecx
or edx, ecx
sub ecx, edx
lea ecx, [ebx + ecx*2]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0xac
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 8
jb 0x40dd10
mov ecx, esi
push eax
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.0040d4c0
mov dword [esp + 0x18], 0xedd0e8d9
mov dword [esp + 0x1c], 0xd0edd4e1
mov dword [esp + 0x20], 0xe6e7ecd1
mov byte [esp + 0x24], 0x48
mov dword [esp + 0x25], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x10
ja 0x40ddf1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, eax
xor edx, 0xb12539f1
and eax, 0x312539f1
lea eax, [edx + eax*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x4b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x11
jb 0x40ddb0
mov dword [esp + 8], 0x83362221
mov word [esp + 0xc], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40de5c
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 + 8]
mov edx, eax
xor edx, 0xdffae0e0
and eax, 0xdffae0e0
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xa0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40de20
lea ebx, [esp + 8]
mov ecx, esi
lea eax, [esp + 0x18]
push eax
push ebx
push edi
call fcn.0040d4c0
mov dword [esp + 0x18], 0xf68284fa
mov byte [esp + 0x1c], 0x10
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40dece
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x18]
add eax, 0xbf47b145
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xa7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40dea0
mov ecx, esi
push dword [esp + 0xa4]
push dword [esp + 0xa4]
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0040d760
mov eax, dword [esi + 0x60]
mov dword [esp + 0x18], 0x832d81c3
mov dword [esp + 0x1c], 0x8732852a
mov dword [esp + 0x20], 0x8b24892d
mov dword [esp + 0x24], 0x8fe38d38
mov dword [esp + 0x28], 0x932b91c4
mov dword [esp + 0x2c], 0x97339524
mov dword [esp + 0x30], 0x9bfa99e2
mov dword [esp + 0x34], 0x9f2b9d31
mov dword [esp + 0x38], 0xe356e14c
mov dword [esp + 0x3c], 0xe756e54d
mov dword [esp + 0x40], 0xeb58e949
mov dword [esp + 0x44], 0xef81ed58
mov dword [esp + 0x48], 0xf35df156
mov dword [esp + 0x4c], 0xf75bf546
mov dword [esp + 0x50], 0xfb5ef995
mov dword [esp + 0x54], 0xff4afd5d
mov dword [esp + 0x58], 0xc3b9c161
mov dword [esp + 0x5c], 0xc764c5a4
mov dword [esp + 0x60], 0xcb7fc967
mov dword [esp + 0x64], 0xcf6acd62
mov dword [esp + 0x68], 0xd360d171
mov dword [esp + 0x6c], 0xd7abd56d
mov dword [esp + 0x70], 0xdb7fd97a
mov dword [esp + 0x74], 0xdfabdda4
mov dword [esp + 0x78], 0x23872184
mov dword [esp + 0x7c], 0x278f2551
mov dword [esp + 0x80], 0x2b8e2998
mov dword [esp + 0x84], 0x2f8d2d83
mov dword [esp + 0x88], 0x33973199
mov dword [esp + 0x8c], 0x37843586
mov dword [esp + 0x90], 0x3b4b399d
mov dword [esp + 0x94], 0x3f343d31
mov word [esp + 0x98], 0x100
mov byte [esp + 0x9c], 0
mov word [esp + 0x9a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x84
ja 0x40e074
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x18]
mov ebp, ecx
xor ebp, 0xbc887e20
and ecx, 0x3c887e20
lea ecx, [ecx*2]
add ecx, ebp
xor ecx, edx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
add cl, 0x60
mov edx, dword [esp]
mov byte [esp + edx + 0x18], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x85
jb 0x40e030
mov dword [esp + 8], 0x57b7497b
mov dword [esp + 0xc], 0x53bb55a4
mov word [esp + 0x10], 0x5150
mov dword [esp + 0x12], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xd
ja 0x40e0e3
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 + 8]
add ecx, 0xe8e4468e
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x3a
mov edx, dword [esp + 4]
mov byte [esp + edx + 8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xe
jb 0x40e0b0
push 0x493e0
push eax
push edi
push 0
push 0
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.00410680
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040c780
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e118
mov bl, 1
mov eax, ebx
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret