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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xb0
cmp dword [ecx + 0x20], 0
je 0x40e057
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xac]
push 0xa
push 4
push ecx
push eax
call fcn.0040e070
add esp, 0x10
mov dword [esp + 0x18], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040a820
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c8e0
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x24], 0xfbfff2e0
mov byte [esp + 0x28], 0x54
mov dword [esp + 0x29], 0
mov eax, 0x700f226e
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x700f224a]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xda
mov byte [esp + eax - 0x700f224a], cl
inc eax
cmp eax, 0x700f2277
jne 0x40dbc0
lea ebp, [esp + 0x24]
mov dword [esp + 4], esi
mov ecx, esi
push 0x44d490
push ebp
push dword [esp + 8]
call fcn.0040d4d0
mov dword [esp + 0x24], 0xc1aaac54
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
mov eax, 0x392dbbd1
mov ecx, 0x2e
nop
nop
movzx esi, byte [esp + eax - 0x392dbbad]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 0xe8
mov ebx, edx
and ebx, 2
mov edi, ebx
xor edi, 2
imul edi, esi
or esi, 2
imul esi, ebx
xor edx, 0xea
add edx, edi
add edx, esi
inc dl
mov byte [esp + eax - 0x392dbbad], dl
inc eax
dec ecx
cmp eax, 0x392dbbd8
jne 0x40dc20
mov edi, dword [esp + 4]
mov ecx, edi
push dword [esp + 0x18]
push ebp
push dword [esp + 8]
call fcn.0040d4d0
mov eax, dword [str.LPnhqo__jewgyhpcostm]
mov dword [esp + 0x24], 0x3e6e8ec
mov dword [esp + 0x28], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x24]
mov esi, edx
and esi, 0xffffffe0
or esi, 0x18
and edx, 0x1f
xor edx, ecx
xor edx, esi
xor dl, 0x58
add dl, 0xc0
mov byte [esp + ecx + 0x24], dl
inc ecx
cmp ecx, 8
jne 0x40dca0
mov ecx, edi
push eax
push ebp
push dword [esp + 8]
call fcn.0040d4d0
mov dword [esp + 0x24], 0xcdf8c0f1
mov dword [esp + 0x28], 0xf8c5fcc9
mov dword [esp + 0x2c], 0xfafbf4f9
mov byte [esp + 0x30], 0x50
mov dword [esp + 0x31], 0
mov dword [esp + 0x34], 0
mov eax, 0x21336197
mov ecx, 0x68
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x21336173]
mov edx, ecx
xor edx, eax
and edx, esi
xor edx, eax
mov esi, edx
and esi, 1
or edx, 1
add edx, esi
add dl, 0xc
mov byte [esp + eax - 0x21336173], dl
inc eax
dec ecx
cmp eax, 0x213361ab
jne 0x40dd10
mov dword [esp + 8], 0x71cadadf
mov word [esp + 0xc], 0
mov byte [esp + 0xe], 0
mov eax, 0x9b11195
mov ecx, 0x564eee6a
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x9b1118d]
mov edi, ecx
and edi, 0x54484c4d
mov edx, eax
and edx, 0x9901082
or edx, edi
xor edx, esi
xor edx, 0x74694d5d
lea esi, [edx + edx]
and esi, 2
sub edx, esi
add edx, 0x2f8aa817
mov edi, edx
and edi, esi
xor edx, esi
lea edx, [edx + edi*2]
mov byte [esp + eax - 0x9b1118d], dl
inc eax
dec ecx
cmp eax, 0x9b1119c
jne 0x40dd60
lea eax, [esp + 8]
mov ecx, dword [esp + 4]
push ebp
push eax
push dword [esp + 8]
call fcn.0040d4d0
mov dword [esp + 0x24], 0xbaa2a0a2
mov byte [esp + 0x28], 0x54
mov dword [esp + 0x29], 0
mov dword [esp + 0x2c], 0
xor eax, eax
xor ebx, ebx
nop
nop
nop
movzx edx, byte [ebp]
mov esi, eax
and esi, 0x1a7c6fe4
mov ecx, ebx
xor ecx, 0xf2c1c80d
sub ecx, esi
inc ecx
mov esi, ecx
not esi
or esi, edx
lea edi, [edx + edx]
not edi
add edi, edx
and edx, 0xffffffa6
and edi, 0x59d3059
or edi, edx
xor edi, ecx
xor edi, 0xfa62cfa6
and edi, esi
lea ecx, [edi + edi]
not ecx
add ecx, edi
add cl, 0xba
mov byte [ebp], cl
inc ebp
dec ebx
add eax, 0xfffffffe
cmp ebx, 0xfffffff4
jne 0x40dde0
lea ebp, [esp + 0x24]
mov edi, dword [esp + 4]
mov ecx, edi
push dword [esp + 0x20]
push dword [esp + 0x20]
push ebp
push dword [esp + 0xc]
call fcn.0040d780
mov eax, dword [edi + 0x60]
mov dword [esp + 0x24], 0x3ed01c3
mov dword [esp + 0x28], 0x7f205ea
mov dword [esp + 0x2c], 0xbe409ed
mov dword [esp + 0x30], 0xf230df8
mov dword [esp + 0x34], 0x13eb11c4
mov dword [esp + 0x38], 0x17f315e4
mov dword [esp + 0x3c], 0x1b3a1922
mov dword [esp + 0x40], 0x1feb1df1
mov dword [esp + 0x44], 0x23d621cc
mov dword [esp + 0x48], 0x27d625cd
mov dword [esp + 0x4c], 0x2bd829c9
mov dword [esp + 0x50], 0x2f012dd8
mov dword [esp + 0x54], 0x33dd31d6
mov dword [esp + 0x58], 0x37db35c6
mov dword [esp + 0x5c], 0x3bde3915
mov dword [esp + 0x60], 0x3fca3ddd
mov dword [esp + 0x64], 0xc3f9c121
mov dword [esp + 0x68], 0xc724c5e4
mov dword [esp + 0x6c], 0xcb3fc927
mov dword [esp + 0x70], 0xcf2acd22
mov dword [esp + 0x74], 0xd320d131
mov dword [esp + 0x78], 0xd7ebd52d
mov dword [esp + 0x7c], 0xdb3fd93a
mov dword [esp + 0x80], 0xdfebdde4
mov dword [esp + 0x84], 0xe307e104
mov dword [esp + 0x88], 0xe70fe5d1
mov dword [esp + 0x8c], 0xeb0ee918
mov dword [esp + 0x90], 0xef0ded03
mov dword [esp + 0x94], 0xf317f119
mov dword [esp + 0x98], 0xf704f506
mov dword [esp + 0x9c], 0xfbcbf91d
mov dword [esp + 0xa0], 0xfff4fdf1
mov word [esp + 0xa4], 0x8180
mov byte [esp + 0xaa], 0
mov dword [esp + 0xa6], 0
mov ecx, 0x619387c0
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x6193879c]
lea esi, [ecx - 0x61938700]
and esi, edx
or edx, ecx
xor edx, esi
mov esi, 1
sub esi, edx
add edx, 0x5e
and esi, 0x1f
and edx, 0xe0
sub edx, esi
inc dl
mov byte [esp + ecx - 0x6193879c], dl
inc ecx
cmp ecx, 0x61938847
jne 0x40df90
mov dword [esp + 8], 0x913d9f4d
mov dword [esp + 0xc], 0x95099300
mov word [esp + 0x10], 0x9794
mov dword [esp + 0x12], 0
mov byte [esp + 0x16], 0
mov ecx, 0x65
mov edx, 0x9a
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x5d]
lea esi, [ebx + ebx]
not esi
add esi, ebx
and esi, ecx
and ebx, edx
or ebx, esi
add bl, 7
mov byte [esp + ecx - 0x5d], bl
inc ecx
dec edx
cmp ecx, 0x74
jne 0x40e000
push 0x493e0
push eax
mov esi, dword [esp + 8]
push esi
push 0
push 0
push ebp
lea eax, [esp + 0x20]
push eax
call fcn.004103c0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040c8f0
add esp, 4
mov eax, dword [edi + 0x60]
add dword [edi + 4], eax
mov dword [edi + 0x60], 0
jmp 0x40e059
mov bl, 1
mov eax, ebx
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret