Function at 0x40dfb0
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 0x40e4c6
mov esi, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xac]
push 0xa
push 4
push ecx
push eax
call fcn.0040e4e0
add esp, 0x10
mov dword [esp + 0x1c], eax
lea eax, [esi + 0x10]
push eax
call fcn.0040ac80
add esp, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 4], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040ce10
add esp, 4
mov dword [esp], eax
mov dword [esp + 0x24], 0x1b17e210
mov byte [esp + 0x28], 0x7c
mov dword [esp + 0x29], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
and ecx, 8
mov edx, eax
and edx, 2
mov edi, edx
xor edi, 2
imul edi, ecx
or ecx, 2
imul ecx, edx
mov edx, eax
xor edx, 0x6a
add edx, edi
add edx, ecx
xor dl, byte [esp + eax + 0x24]
add dl, 0xee
mov byte [esp + eax + 0x24], dl
inc eax
cmp eax, 9
jne 0x40e030
lea ebp, [esp + 0x24]
mov dword [esp + 8], esi
mov ecx, esi
push 0x44e1c0
push ebp
push dword [esp + 8]
call fcn.0040d9e0
mov dword [esp + 0x24], 0x933e3800
mov byte [esp + 0x28], 0
mov eax, 0x23
mov ecx, 0x9b4d43db
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 1]
lea edi, [eax - 0x4da6a1ff]
lea ebx, [ecx + 0x64b2bd00]
and ebx, ecx
or edi, edx
not edx
or edx, ebx
and edx, edi
mov ebx, edx
and ebx, 0x49
mov esi, edx
and esi, 2
mov edi, esi
xor edi, 2
imul edi, ebx
or ebx, 2
imul ebx, esi
xor edx, 0x4b
add edx, edi
add edx, ebx
inc dl
mov byte [esp + eax + 1], dl
inc eax
dec ecx
cmp eax, 0x28
jne 0x40e0a0
mov esi, dword [esp + 8]
mov ecx, esi
push dword [esp + 0x1c]
push ebp
push dword [esp + 8]
call fcn.0040d9e0
mov eax, dword [str.MeHdy4__pl8vs1]
mov dword [esp + 0x24], 0xd77a607c
mov word [esp + 0x28], 0
mov ecx, 0x2f51342e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x2f51340a]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x1a
mov byte [esp + ecx - 0x2f51340a], dl
inc ecx
cmp ecx, 0x2f513434
jne 0x40e120
mov ecx, esi
push eax
push ebp
push dword [esp + 8]
call fcn.0040d9e0
mov dword [esp + 0x24], 0xf5e0e8f9
mov dword [esp + 0x28], 0xe0f5fcf1
mov dword [esp + 0x2c], 0xfefff4e1
mov byte [esp + 0x30], 0x58
mov dword [esp + 0x31], 0
mov byte [esp + 0x35], 0
mov eax, 0x6d
mov ecx, 0x92
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0x49]
mov esi, edx
not esi
and esi, 0x8a
mov edi, edx
xor edi, 0x8a
or edx, 0x75
and edx, edi
or edx, esi
mov esi, ecx
and esi, 0x8a
mov ebx, eax
and ebx, 0x75
or ebx, esi
xor ebx, edx
add bl, 0xdf
mov byte [esp + eax - 0x49], bl
inc eax
dec ecx
cmp eax, 0x7f
jne 0x40e190
mov dword [esp + 0xc], 0xf34e5251
mov word [esp + 0x10], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xd4
xor cl, byte [esp + eax + 0xc]
add cl, 0xdc
mov byte [esp + eax + 0xc], cl
inc eax
cmp eax, 6
jne 0x40e1e0
lea eax, [esp + 0xc]
mov esi, dword [esp + 8]
mov ecx, esi
push ebp
push eax
push dword [esp + 8]
call fcn.0040d9e0
mov dword [esp + 0x24], 0xfaf2f0f2
mov byte [esp + 0x28], 0x9c
mov dword [esp + 0x29], 0
mov dword [esp + 0x2c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0x9a
xor cl, byte [esp + eax + 0x24]
add cl, 0xfe
mov byte [esp + eax + 0x24], cl
inc eax
cmp eax, 0xc
jne 0x40e230
mov ecx, esi
push dword [esp + 4]
push dword [esp + 0x24]
push ebp
push dword [esp + 0xc]
call fcn.0040dc40
mov eax, dword [esi + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 0x24], 0x19ab1b51
mov dword [esp + 0x28], 0x65da67aa
mov dword [esp + 0x2c], 0x61d063cf
mov dword [esp + 0x30], 0x6d1d6fdc
mov dword [esp + 0x34], 0x69ed6b30
mov dword [esp + 0x38], 0x75dd77d8
mov dword [esp + 0x3c], 0x71127332
mov dword [esp + 0x40], 0x7dc57fc3
mov dword [esp + 0x44], 0x79c67bc8
mov dword [esp + 0x48], 0x45f647cf
mov dword [esp + 0x4c], 0x41fc43eb
mov dword [esp + 0x50], 0x4d3f4ffc
mov dword [esp + 0x54], 0x49fb4be6
mov dword [esp + 0x58], 0x55e557f6
mov dword [esp + 0x5c], 0x51fe5327
mov dword [esp + 0x60], 0x5de25fff
mov dword [esp + 0x64], 0x591f5bf3
mov dword [esp + 0x68], 0xa508a738
mov dword [esp + 0x6c], 0xa119a315
mov dword [esp + 0x70], 0xad02af12
mov dword [esp + 0x74], 0xa914ab03
mov dword [esp + 0x78], 0xb5f5b72f
mov dword [esp + 0x7c], 0xb119b31a
mov dword [esp + 0x80], 0xbdc5bfc8
mov dword [esp + 0x84], 0xb911bb10
mov dword [esp + 0x88], 0x853187c3
mov dword [esp + 0x8c], 0x812e8334
mov dword [esp + 0x90], 0x8d238f31
mov dword [esp + 0x94], 0x89218b3b
mov dword [esp + 0x98], 0x95289736
mov dword [esp + 0x9c], 0x91ed933f
mov dword [esp + 0xa0], 0x9d889f83
mov word [esp + 0xa4], 0x9b9c
mov word [esp + 0xaa], 0
mov dword [esp + 0xa6], 0
mov ecx, 0xd16fb1c4
movzx edx, byte [ebp]
mov ebx, edx
xor ebx, 0xbf
or edx, 0x40
and ebx, edx
mov eax, ecx
xor eax, 0x40
mov esi, ecx
or esi, 0xbf
and esi, eax
lea eax, [ecx + 0x2e904e80]
not eax
and eax, 0x40
or eax, esi
not edx
or edx, ebx
xor edx, eax
add dl, 0xd9
mov byte [ebp], dl
inc ebp
dec ecx
cmp ecx, 0xd16fb13c
jne 0x40e3a0
mov dword [esp + 0xc], 0xf915fb2d
mov dword [esp + 0x10], 0xe571e768
mov word [esp + 0x14], 0xe3e4
mov dword [esp + 0x16], 0
mov byte [esp + 0x1a], 0
mov ebp, 0x73d9fcaa
mov ecx, 0x8c260354
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0x73d9fc9e]
lea edi, [ebp + 1]
mov esi, ecx
or esi, edi
mov eax, edx
not eax
lea edx, [edx + eax*2]
mov ebx, 0xfffffffe
sub ebx, edx
mov edx, ebp
sub edx, esi
and edx, ebx
mov esi, ecx
and esi, 0x88260358
mov ebx, edi
and ebx, 0xd96ca7
or ebx, esi
xor ebx, 0x4d96ca7
and ebx, eax
or ebx, edx
mov eax, 0xbcbe10a7
sub eax, ebx
not ebx
or ebx, eax
and ebx, 1
or eax, 1
add eax, ebx
mov byte [esp + ebp - 0x73d9fc9e], al
dec ecx
mov ebp, edi
cmp edi, 0x73d9fcb9
jne 0x40e420
lea eax, [esp + 0x24]
push 0x493e0
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
push 0
push 0
push eax
lea eax, [esp + 0x24]
push eax
call fcn.004108e0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040ce20
add esp, 4
mov ecx, dword [esp + 8]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40e4c8
mov bl, 1
mov eax, ebx
add esp, 0xb0
pop esi
pop edi
pop ebx
pop ebp
ret