Function at 0x40d500
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, 0x5c
mov esi, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
mov eax, dword [ecx + 0x60]
mov dword [esp + 0x14], eax
mov word [esp], 0xf7f5
mov byte [esp + 2], 0xce
mov word [esp + 3], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
mov ebx, eax
and ebx, 4
mov edx, ecx
xor edx, 0x22
add edx, ebx
add dl, 0xb0
xor dl, byte [esp + ecx]
add dl, 0xe6
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 5
jne 0x40d530
mov dword [esp + 8], 0xe2e0ec86
mov word [esp + 0xc], 0xf5e2
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
mov ebp, 0x28bd89d6
mov ecx, 0x57427629
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ebp - 0x28bd89ce]
mov eax, ecx
or eax, edi
lea ebx, [ecx - 0x57427600]
and ebx, edi
xor ebx, eax
and ebx, ebp
mov eax, ebx
or al, 0xfd
inc al
mov edx, ebx
and dl, 0xfd
mul dl
mov edx, eax
mov eax, edi
add dl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub dl, al
movzx eax, dl
add eax, ebp
add al, 0xd2
mov byte [esp + ebp - 0x28bd89ce], al
inc ebp
dec ecx
cmp ebp, 0x28bd89e1
jne 0x40d580
mov dword [esp + 0x1c], 0x2e247073
mov dword [esp + 0x20], 0x222e7c78
mov dword [esp + 0x24], 0x253e2473
mov dword [esp + 0x28], 0x3a212639
mov dword [esp + 0x2c], 0x62392526
mov dword [esp + 0x30], 0x2c5f9987
mov dword [esp + 0x34], 0x2f31232a
mov dword [esp + 0x38], 0xce566c24
mov dword [esp + 0x3c], 0xdcd7d7d9
mov dword [esp + 0x40], 0xdcc9dfcb
mov dword [esp + 0x44], 0xc78e95da
mov dword [esp + 0x48], 0x82ddd9d9
mov dword [esp + 0x4c], 0xd2cad4d8
mov dword [esp + 0x50], 0xdec493b5
mov dword [esp + 0x54], 0x9bb9d0cb
mov byte [esp + 0x58], pe_nt_image_headers32
mov word [esp + 0x59], 0
mov byte [esp + 0x5b], 0
mov eax, 0xe1
mov ecx, 0x1e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax - 0xc5]
mov ebx, edx
not ebx
or ebx, ecx
or edx, eax
and edx, ebx
add dl, 0x9b
mov byte [esp + eax - 0xc5], dl
inc eax
dec ecx
cmp eax, 0x121
jne 0x40d670
mov ebx, dword [esp + 0x70]
add ebx, dword [esp + 0x14]
movzx ecx, byte [esp + 0x1c]
mov eax, ebx
test cl, cl
je 0x40d6bb
lea edx, [esp + 0x1d]
mov eax, ebx
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d6b0
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40d6db
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d6d0
mov byte [eax], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x40d6fb
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d6f0
mov byte [eax], 0
mov edx, dword [esp + 0x78]
movzx ecx, byte [edx]
test cl, cl
je 0x40d71b
inc edx
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d710
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40d73b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40d730
mov byte [eax], 0
sub eax, ebx
mov ecx, dword [esp + 0x18]
add dword [ecx + 0x60], eax
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret 0xc