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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
cmp dword [ecx + 0x20], 0
je 0x40e6ed
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa4]
push 0xa
push 4
push ecx
push eax
call fcn.0040e700
add esp, 0x10
mov ebx, eax
lea eax, [esi + 0x10]
push eax
call fcn.0040ab80
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 + 0xa0], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040ccd0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x10], 0x9d9dae9c
mov byte [esp + 0x14], 0x20
mov dword [esp + 0x15], 0
mov word [esp + 0x19], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x10]
mov edi, eax
and edi, 9
mov edx, eax
xor edx, 0x48696449
add edx, edi
mov edi, eax
and edi, 0xfffffff9
lea ebp, [edi + edx]
and ebp, ecx
add ebp, ebp
sub edx, ebp
add edx, edi
add dl, cl
add dl, 0x93
mov byte [esp + eax + 0x10], dl
inc eax
cmp eax, 0xb
jne 0x40e260
lea eax, [esp + 0x10]
mov ecx, esi
push 0x44e664
push eax
push dword [esp + 8]
call fcn.0040dbc0
mov dword [esp + 0x10], 0x63c6f8f0
mov word [esp + 0x14], 0
mov byte [esp + 0x16], 0
xor eax, eax
mov ecx, 0xe7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x10]
mov edi, eax
or edi, edx
or edi, 0x875d9618
not edx
or edx, ecx
and edx, edi
mov edi, edx
and edi, 7
xor edx, 0x87
lea edx, [edx + edi*2]
inc dl
mov byte [esp + eax + 0x10], dl
inc eax
dec ecx
cmp eax, 7
jne 0x40e2d0
mov ecx, esi
push ebx
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.0040dbc0
mov eax, dword [str.LPnhqo__fpdqxpsliktm]
mov dword [esp + 0x98], eax
mov dword [esp + 0x10], 0xc9565c58
mov byte [esp + 0x14], 0
mov ecx, 0x68c632ac
mov edi, 0x52
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x42]
lea edx, [edi - 0x68c632ff]
mov ebp, edx
and ebp, ebx
add ebp, ebp
sub ebp, ebx
add ebp, ecx
and ebp, edx
mov edx, ebp
and edx, 0x9739cd5d
mov eax, ebp
and eax, 2
or ebp, 2
imul ebp, eax
xor eax, 2
imul eax, edx
add ebp, eax
lea eax, [ecx + ebp]
add eax, 0x9739ce01
xor eax, ebx
mov edx, edi
sub edx, ebp
and edx, ebx
add edx, edx
sub edx, eax
add dl, 0x61
mov byte [esp + edi - 0x42], dl
dec ecx
inc edi
cmp edi, 0x57
jne 0x40e340
mov ecx, esi
push dword [esp + 0x98]
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
call fcn.0040dbc0
mov dword [esp + 0x10], 0x35003809
mov dword [esp + 0x14], 0x350c31
mov dword [esp + 0x18], 0x2e0f3401
mov byte [esp + 0x1c], 0x88
mov word [esp + 0x1d], 0
mov byte [esp + 0x1f], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xe5
xor cl, byte [esp + eax + 0x10]
add cl, 0x87
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x10
jne 0x40e3e0
mov dword [esp + 4], 0xb11a6a6f
mov byte [esp + 8], 0
mov eax, 0xc1a126dd
mov ecx, 0x1e5ed922
nop
nop
nop
movzx ebx, byte [esp + eax + 0x3e5ed927]
mov ebp, ebx
xor ebp, 0xc1012659
mov edi, eax
and edi, 0xc1012659
or edi, 0x12100000
mov edx, ecx
and edx, 0x16104026
or edx, 0xe007bc09
xor edx, edi
mov edi, edx
xor edi, 0x4a040f6
xor ebx, 0x16b040a6
and ebx, edi
xor edx, 0xf217bc09
and edx, ebp
or edx, ebx
mov ebx, edx
and ebx, 0xac
mov edi, edx
and edi, 2
mov ebp, edi
xor ebp, 2
imul ebp, ebx
or ebx, 2
imul ebx, edi
xor edx, 0xae
add edx, ebp
add edx, ebx
inc dl
mov byte [esp + eax + 0x3e5ed927], dl
inc eax
dec ecx
cmp eax, 0xc1a126e2
jne 0x40e410
lea ebx, [esp + 4]
mov ecx, esi
lea eax, [esp + 0x10]
push eax
push ebx
push dword [esp + 8]
call fcn.0040dbc0
mov dword [esp + 0x10], 0x6266649e
mov byte [esp + 0x14], 0xf8
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
nop
movzx ecx, byte [esp + eax + 0x10]
mov edx, eax
and edx, 1
xor edx, 0x737fbd01
mov edi, eax
and edi, 0xe
sub edi, edx
xor edi, ecx
mov ecx, edi
and ecx, 4
xor edi, 4
lea ecx, [edi + ecx*2]
inc cl
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0xc
jne 0x40e4d0
mov ecx, esi
push dword [esp + 0xa0]
push dword [esp + 0xa0]
lea eax, [esp + 0x18]
push eax
push dword [esp + 0xc]
call fcn.0040de10
mov eax, dword [esi + 0x60]
mov dword [esp + 0x10], 0x39ab3bf1
mov dword [esp + 0x14], 0x25ba27aa
mov dword [esp + 0x18], 0x21b0238f
mov dword [esp + 0x1c], 0x2dfd2fbc
mov dword [esp + 0x20], 0x29ad2b90
mov dword [esp + 0x24], 0x15bd17b8
mov dword [esp + 0x28], 0x11f213d2
mov dword [esp + 0x2c], 0x1d851f83
mov dword [esp + 0x30], 0x19861b88
mov dword [esp + 0x34], 0x596078f
mov dword [esp + 0x38], 0x19c03ab
mov dword [esp + 0x3c], 0xddf0f9c
mov dword [esp + 0x40], 0x99b0ba6
mov dword [esp + 0x44], 0xf565f796
mov dword [esp + 0x48], 0xf15ef327
mov dword [esp + 0x4c], 0xfd62ff5f
mov dword [esp + 0x50], 0xf93ffb53
mov dword [esp + 0x54], 0xe548e718
mov dword [esp + 0x58], 0xe179e375
mov dword [esp + 0x5c], 0xed42ef72
mov dword [esp + 0x60], 0xe974eb43
mov dword [esp + 0x64], 0xd515d76f
mov dword [esp + 0x68], 0xd179d37a
mov dword [esp + 0x6c], 0xdd05df08
mov dword [esp + 0x70], 0xd971db70
mov dword [esp + 0x74], 0xc551c703
mov dword [esp + 0x78], 0xc16ec354
mov dword [esp + 0x7c], 0xcd63cf51
mov dword [esp + 0x80], 0xc961cb5b
mov dword [esp + 0x84], 0xb528b756
mov dword [esp + 0x88], 0xb16db31f
mov dword [esp + 0x8c], 0xbd48bf43
mov word [esp + 0x90], 0xbbbc
mov dword [esp + 0x92], 0
mov ebp, 0x4b
mov edx, 0xf0aba5b4
nop
nop
nop
nop
movzx edi, byte [esp + ebp - 0x3b]
mov ecx, ebp
xor ecx, edx
and ecx, edi
xor ecx, edx
mov edi, ecx
xor edi, 0x87
not ecx
and ecx, 7
add ecx, ecx
sub ecx, edi
inc cl
mov byte [esp + ebp - 0x3b], cl
inc ebp
dec edx
cmp ebp, 0xd1
jne 0x40e650
mov dword [esp + 4], 0x9f50b3d
mov dword [esp + 8], 0x5f107f8
mov dword [esp + 0xc], 0x304
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x43
xor dl, byte [esp + ecx + 4]
add dl, 0xb1
mov byte [esp + ecx + 4], dl
inc ecx
cmp ecx, 0xc
jne 0x40e6a0
push 0x493e0
push eax
mov edi, dword [esp + 8]
push edi
push 0
push 0
lea eax, [esp + 0x24]
push eax
push ebx
call fcn.00410ea0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.0040cce0
add esp, 4
mov eax, dword [esi + 0x60]
add dword [esi + 4], eax
mov dword [esi + 0x60], 0
jmp 0x40e6ef
mov bl, 1
mov eax, ebx
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret