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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa4
cmp dword [ecx + 0x20], 0
je 0x40e51c
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa0]
push 0xa
push 4
push ecx
push eax
call fcn.0040e530
add esp, 0x10
mov dword [esp + 0x98], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040ac20
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x9c], eax
mov dword [esp], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040cda0
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0x272b3628
mov byte [esp + 0x14], 0x84
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa0
xor cl, byte [esp + eax + 0x10]
add cl, 0xe0
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xc
jne 0x40e090
lea eax, [esp + 0x10]
mov ecx, esi
push 0x44e840
push eax
push edi
call fcn.0040d9c0
mov dword [esp + 0x10], 0x3666870
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor edx, edx
nop
nop
movzx ebp, byte [esp + edx + 0x10]
mov ebx, ebp
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 5
mul cl
mov ecx, eax
mov eax, ebp
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
mov byte [esp + edx + 0x10], al
inc edx
cmp edx, 7
jne 0x40e0d0
mov ecx, esi
push dword [esp + 0x98]
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d9c0
mov eax, dword [str.tLYMe5__6]
mov dword [esp + 0x10], 0x3e6e8ec
mov byte [esp + 0x14], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x10]
lea ebx, [ecx + 0x40]
and ebx, edx
and edx, 0xffffffbf
or edx, ecx
xor edx, 0x36b903bf
or edx, ebx
lea ebx, [edx + edx]
not ebx
add ebx, edx
and ebx, 0xbf
not edx
or edx, 0xbf
add edx, ebx
inc dl
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 5
jne 0x40e140
mov ecx, esi
push eax
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040d9c0
mov dword [esp + 0x10], 0xd5c0d8c9
mov dword [esp + 0x14], 0xc0d5ccd1
mov dword [esp + 0x18], 0xeecfd4c1
mov byte [esp + 0x1c], 0x48
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
mov ecx, 0xa94aaf6a
sub ecx, eax
or ecx, edx
mov ebx, 0x6a
sub ebx, eax
and ebx, edx
not ecx
or ecx, ebx
add ecx, 0xe39abb2b
mov edx, ecx
xor edx, 0x15
and ecx, 0x6a
add ecx, ecx
sub ecx, edx
inc cl
mov byte [esp + eax + 0x10], cl
mov ecx, eax
xor ecx, 1
and eax, 1
lea eax, [ecx + eax*2]
cmp eax, 0x10
jb 0x40e1c0
mov dword [esp + 4], 0x23968281
mov byte [esp + 8], 0
xor eax, eax
mov ecx, 0x5779a9f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 4]
mov ebp, ecx
and ebp, 0x523988f3
mov edx, eax
and edx, 4
or edx, ebp
xor edx, ebx
xor edx, 0xfabfdefb
add edx, 0xb56051d7
mov ebx, edx
xor ebx, 0x1c
and edx, 0x63
add edx, edx
sub edx, ebx
add dl, 0x1d
mov byte [esp + eax + 4], dl
inc eax
dec ecx
cmp eax, 5
jne 0x40e220
lea edx, [esp + 4]
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push edx
push edi
call fcn.0040d9c0
mov dword [esp + 0x10], 0xaea6a8ae
mov byte [esp + 0x14], 0x2c
mov word [esp + 0x15], 0
mov byte [esp + 0x17], 0
mov edx, 0x8c
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x7c]
mov ebx, eax
mov ebp, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x9d
mul cl
mov ecx, eax
mov eax, ebp
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x44
mov byte [esp + edx - 0x7c], al
inc edx
cmp edx, 0x94
jne 0x40e290
mov ecx, esi
push dword [esp]
push dword [esp + 0xa0]
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0040dc60
mov eax, dword [esi + 0x60]
mov dword [esp], eax
mov dword [esp + 0x10], 0x73e57133
mov dword [esp + 0x14], 0x6fe26dfa
mov dword [esp + 0x18], 0x6bfc69f5
mov dword [esp + 0x1c], 0x673365e8
mov dword [esp + 0x20], 0x63eb610c
mov dword [esp + 0x24], 0x9f039d0c
mov dword [esp + 0x28], 0x9bba99d2
mov dword [esp + 0x2c], 0x971b9501
mov dword [esp + 0x30], 0x931e9104
mov dword [esp + 0x34], 0x8f1e8d15
mov dword [esp + 0x38], 0x8b1889e9
mov dword [esp + 0x3c], 0x87d18508
mov dword [esp + 0x40], 0x8315811e
mov dword [esp + 0x44], 0xbf2bbd2e
mov dword [esp + 0x48], 0xbb26b9ed
mov dword [esp + 0x4c], 0xb73ab5d5
mov dword [esp + 0x50], 0xb3f9b1d1
mov dword [esp + 0x54], 0xafccad8c
mov dword [esp + 0x58], 0xab27a93f
mov dword [esp + 0x5c], 0xa73aa532
mov dword [esp + 0x60], 0xa330a1c1
mov dword [esp + 0x64], 0xdf9bdd55
mov dword [esp + 0x68], 0xdb47d9ba
mov dword [esp + 0x6c], 0xd79bd59c
mov dword [esp + 0x70], 0xd34fd14c
mov dword [esp + 0x74], 0xcf57cd81
mov dword [esp + 0x78], 0xcb56c958
mov dword [esp + 0x7c], 0xc7a5c553
mov dword [esp + 0x80], 0xc35fc159
mov dword [esp + 0x84], 0xff6cfd6e
mov dword [esp + 0x88], 0xfbabf965
mov dword [esp + 0x8c], 0xf7ccf5c1
mov word [esp + 0x90], 0xf1f0
mov word [esp + 0x96], 0
mov dword [esp + 0x92], 0
xor ecx, ecx
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x10]
lea edx, [ecx - 0xaa5bf94]
lea eax, [ebx + ebx]
not eax
add eax, ebx
and eax, 0x11093a3
and ebx, 0x5c
or ebx, eax
mov eax, 0xbf93
sub eax, ecx
and eax, 0x93a3
and edx, 0xf44a405c
or edx, eax
xor edx, ebx
mov eax, edx
and eax, 0x63
xor edx, 0xe3
lea eax, [edx + eax*2]
inc al
mov byte [esp + ecx + 0x10], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0x88
jb 0x40e420
mov dword [esp + 4], 0x13731147
mov dword [esp + 8], 0x1f771d8c
mov dword [esp + 0xc], 0x1918
mov ebp, 0x66122104
mov edx, 0x19eddefb
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp - 0x66122100]
mov ecx, ebp
and ecx, eax
add ecx, ecx
mov ebx, eax
sub ebx, ecx
sub ecx, eax
add ecx, edx
add ecx, 0x80000000
and ecx, ebp
add ebx, ebp
or ebx, edx
not ebx
or ebx, ecx
add bl, bl
sub al, bl
movzx eax, al
add eax, ebp
add al, 0xec
mov byte [esp + ebp - 0x66122100], al
inc ebp
dec edx
cmp ebp, 0x66122110
jne 0x40e4a0
push 0x493e0
push dword [esp + 4]
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00410e00
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cdb0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e51e
mov bl, 1
mov eax, ebx
add esp, 0xa4
pop esi
pop edi
pop ebx
pop ebp
ret