Function at 0x40dc10
Capabilities:
Contain obfuscated stackstrings
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 0x40e0e2
mov ebp, ecx
movzx eax, byte [ecx]
lea ecx, [esp + 0xa8]
push 0xa
push 4
push ecx
push eax
call fcn.0040e100
add esp, 0x10
mov ebx, eax
lea eax, [ebp + 0x10]
push eax
call fcn.0040a740
add esp, 4
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
lea eax, [ecx + 0x400]
push eax
call fcn.0040c9c0
add esp, 4
mov edi, eax
mov dword [esp + 0x20], 0xd5ddc2d4
mov byte [esp + 0x24], 0x48
mov dword [esp + 0x25], 0
mov byte [esp + 0x29], 0
mov eax, 0x73
nop
nop
nop
movzx ecx, byte [esp + eax - 0x53]
mov edx, eax
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
add ecx, 0xdbe6e432
mov edx, ecx
and edx, 0x40
xor ecx, 0xc0
lea ecx, [ecx + edx*2]
add cl, 0xcf
mov byte [esp + eax - 0x53], cl
inc eax
cmp eax, 0x7d
jne 0x40dc90
lea eax, [esp + 0x20]
mov ecx, ebp
push 0x44d104
push eax
push edi
call fcn.0040d5c0
mov dword [esp + 0x20], 0xe11a1c14
mov dword [esp + 0x24], 0
mov eax, 0x29
mov ecx, 0x56
nop
nop
nop
nop
mov esi, ecx
and esi, 0x45
mov edx, eax
and edx, 0x3a
or edx, esi
xor dl, byte [esp + eax - 9]
xor dl, 0x45
add dl, 0x33
mov byte [esp + eax - 9], dl
inc eax
dec ecx
cmp eax, 0x31
jne 0x40dcf0
mov ecx, ebp
push ebx
lea eax, [esp + 0x24]
push eax
push edi
call fcn.0040d5c0
mov eax, dword [str.MeHdy4__pl10vs02]
mov dword [esp + 0x20], 0xb7dae01c
mov ecx, 0x6f19161e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x6f1915fe]
mov ebx, edx
and ebx, ecx
add bl, bl
sub dl, bl
movzx edx, dl
add edx, ecx
add dl, 0x6a
mov byte [esp + ecx - 0x6f1915fe], dl
inc ecx
cmp ecx, 0x6f191622
jne 0x40dd40
mov ecx, ebp
push eax
lea ebx, [esp + 0x24]
push ebx
mov dword [esp + 8], edi
push edi
call fcn.0040d5c0
mov dword [esp + 0x20], 0xb5a0a8b9
mov dword [esp + 0x24], 0xa0b5bcb1
mov dword [esp + 0x28], 0xbebfb4a1
mov byte [esp + 0x2c], 0x58
mov word [esp + 0x2d], 0
mov byte [esp + 0x2f], 0
mov eax, 0xaa19a18d
mov ecx, 0x55e65e72
nop
nop
nop
movzx edx, byte [esp + eax + 0x55e65e93]
mov esi, edx
and esi, 0x5b
xor esi, 0x501285b
mov edi, edx
xor edi, 0x501285b
or edx, 0xa4
and edx, edi
or edx, esi
mov esi, ecx
and esi, 0x45060a5b
mov edi, eax
and edi, 0x8a188184
or edi, esi
xor edi, edx
mov edx, edi
and edx, 0x3e
xor edi, 0x3e
lea edx, [edi + edx*2]
inc dl
mov byte [esp + eax + 0x55e65e93], dl
inc eax
dec ecx
cmp eax, 0xaa19a19d
jne 0x40ddb0
mov dword [esp + 8], 0x29becec3
xor eax, eax
mov ecx, eax
add cl, 0xf7
xor cl, byte [esp + eax + 8]
add cl, 0x2d
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 4
jne 0x40de10
lea eax, [esp + 8]
mov dword [esp + 4], ebp
mov ecx, ebp
push ebx
push eax
push dword [esp + 8]
call fcn.0040d5c0
mov dword [esp + 0x20], 0x7a626062
mov byte [esp + 0x24], 0xd4
mov word [esp + 0x25], 0
mov byte [esp + 0x27], 0
mov edi, 0x516b0d01
mov ecx, 0x2e94f2fe
nop
nop
movzx ebx, byte [esp + edi - 0x516b0ce1]
mov edx, ecx
and edx, 0x2490a0d3
mov eax, edi
and eax, 0x41090c0c
sub eax, edx
mov edx, eax
and edx, ebx
mov ebp, edx
and ebp, 0x3d
mov esi, edx
or esi, 0xfd
inc esi
imul esi, ebp
mov ebp, edx
and ebp, 2
or edx, 2
imul edx, ebp
sub esi, edx
add eax, ebx
add eax, esi
add al, 0x1a
mov byte [esp + edi - 0x516b0ce1], al
inc edi
dec ecx
cmp edi, 0x516b0d09
jne 0x40de60
mov esi, dword [esp + 4]
mov ecx, esi
push dword [esp + 0x1c]
push dword [esp + 0x1c]
lea ebx, [esp + 0x28]
push ebx
push dword [esp + 0xc]
call fcn.0040d7f0
mov edi, dword [esi + 0x60]
mov dword [esp + 0x20], 0x13851153
mov dword [esp + 0x24], 0x1f821d8a
mov dword [esp + 0x28], 0x1b8c1975
mov dword [esp + 0x2c], 0x7530598
mov dword [esp + 0x30], 0x39b017c
mov dword [esp + 0x34], 0xf630d9c
mov dword [esp + 0x38], 0xb2a0952
mov dword [esp + 0x3c], 0x37ab35a1
mov dword [esp + 0x40], 0x33ae31a4
mov dword [esp + 0x44], 0x3fae3d55
mov dword [esp + 0x48], 0x3ba83959
mov dword [esp + 0x4c], 0x277125b8
mov dword [esp + 0x50], 0x23b5214e
mov dword [esp + 0x54], 0x2fbb2dbe
mov dword [esp + 0x58], 0x2b46297d
mov dword [esp + 0x5c], 0x57ca5535
mov dword [esp + 0x60], 0x53095131
mov dword [esp + 0x64], 0x5f3c5d7c
mov dword [esp + 0x68], 0x5bc759cf
mov dword [esp + 0x6c], 0x472a45d2
mov dword [esp + 0x70], 0x43d04121
mov dword [esp + 0x74], 0x4f0b4dd5
mov dword [esp + 0x78], 0x4b27492a
mov dword [esp + 0x7c], 0x772b752c
mov dword [esp + 0x80], 0x731f711c
mov dword [esp + 0x84], 0x7f177d21
mov dword [esp + 0x88], 0x7b1679e8
mov dword [esp + 0x8c], 0x670565f3
mov dword [esp + 0x90], 0x630f6109
mov dword [esp + 0x94], 0x6ffc6dfe
mov dword [esp + 0x98], 0x6b3b6905
mov dword [esp + 0x9c], 0x979c95a1
mov word [esp + 0xa0], 0x9190
mov word [esp + 0xa6], 0
mov dword [esp + 0xa2], 0
mov eax, 0xfb
nop
nop
nop
movzx edx, byte [ebx]
mov esi, eax
or esi, edx
and edx, eax
lea ecx, [edx + edx]
not ecx
add ecx, edx
and ecx, esi
mov dl, 0xeb
sub dl, cl
mov byte [ebx], dl
inc ebx
dec eax
cmp eax, 0x73
jne 0x40e010
mov dword [esp + 8], 0x17f719cb
mov dword [esp + 0xc], 0x138b1584
mov word [esp + 0x10], 0x1110
mov dword [esp + 0x12], 0
mov word [esp + 0x16], 0
mov ebp, 0xc6
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ebp - 0xbe]
mov ebx, edx
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xdd
mul cl
mov ecx, eax
add cl, dl
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, ebp
add al, 0x22
mov byte [esp + ebp - 0xbe], al
inc ebp
cmp ebp, 0xd6
jne 0x40e060
lea eax, [esp + 0x20]
push 0x493e0
push edi
mov esi, dword [esp + 8]
push esi
push 0
push 0
push eax
lea eax, [esp + 0x20]
push eax
call fcn.004101c0
add esp, 0x1c
mov ebx, eax
push esi
call fcn.0040c9d0
add esp, 4
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x60]
add dword [ecx + 4], eax
mov dword [ecx + 0x60], 0
jmp 0x40e0e4
mov bl, 1
mov eax, ebx
add esp, 0xac
pop esi
pop edi
pop ebx
pop ebp
ret