Function at 0x40d850
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, 0x90
mov dword [esp + 0xc], ecx
mov esi, dword [ecx + 0x60]
mov dword [esp + 0x64], 0x9fa4a6d3
mov dword [esp + 0x68], 0x1a625b51
mov dword [esp + 0x6c], 0x565a6044
mov dword [esp + 0x70], 0x6b47052e
mov dword [esp + 0x74], 0x5b41406c
mov dword [esp + 0x78], 0x73484049
mov dword [esp + 0x7c], 0x4c0f710f
mov dword [esp + 0x80], 0x544b4f56
mov dword [esp + 0x84], 0xe6e8e47c
mov dword [esp + 0x88], 0xcdd6
mov byte [esp + 0x8c], 0
mov eax, 0xfc331fc
mov edx, 0xe0799d03
nop
nop
nop
nop
movzx edi, byte [esp + eax - 0xfc33198]
lea ecx, [edx + 0x1f866300]
mov ebp, ecx
or ebp, edi
and ecx, 0x35
mov ebx, eax
and ebx, 0xca
or ebx, ecx
xor ebx, 0xca
or ebx, edx
not ebp
and ebx, edi
or ebx, ebp
add bl, 0x14
mov byte [esp + eax - 0xfc33198], bl
inc eax
dec edx
cmp eax, 0xfc33225
jne 0x40d8d0
mov dword [esp], 0x57405c26
mov dword [esp + 4], 0
mov edi, 0x9795f06e
mov ebp, 0x686a0f91
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0x686a0f92]
mov eax, edi
and eax, ebx
add eax, eax
mov edx, ebx
sub edx, eax
add edx, edi
or edx, ebp
mov eax, edx
shr al, 1
and al, 1
mov ecx, edx
not cl
mov ah, cl
and ah, 0x7d
mul ah
add al, al
sub bl, al
test dl, 2
sete al
or cl, 2
mul cl
add al, al
sub bl, al
movzx eax, bl
add eax, edi
add al, 0xda
mov byte [esp + edi + 0x686a0f92], al
inc edi
dec ebp
cmp edi, 0x9795f076
jne 0x40d930
mov dword [esp + 0x10], 0x66602c2d
mov dword [esp + 0x14], 0x6262101c
mov dword [esp + 0x18], 0x6f5a601d
mov dword [esp + 0x1c], 0x6a676e63
mov dword [esp + 0x20], 0x62172322
mov dword [esp + 0x24], 0x1875bfb9
mov dword [esp + 0x28], 0x151f2d16
mov dword [esp + 0x2c], 0x167a5028
mov dword [esp + 0x30], 0x300d3133
mov dword [esp + 0x34], 0x80f310d
mov dword [esp + 0x38], 0xd4a7306
mov dword [esp + 0x3c], 0x42033f03
mov dword [esp + 0x40], 0x32063034
mov dword [esp + 0x44], 0x3638754f
mov dword [esp + 0x48], 0x79473c35
mov dword [esp + 0x4c], 0x3a32343a
mov dword [esp + 0x50], 0x25625a62
mov dword [esp + 0x54], 0x2923292d
mov dword [esp + 0x58], 0x562f2429
mov word [esp + 0x5c], 0x8d6e
mov byte [esp + 0x60], 0
mov word [esp + 0x5e], 0
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0x10]
mov edi, eax
and edi, 0x60
mov ecx, edx
xor ecx, 0x40149c30
add ecx, edi
mov edi, ebx
and edi, ecx
add edi, edi
sub ecx, edi
add cl, bl
add cl, 0x10
mov byte [esp + edx + 0x10], cl
inc edx
add eax, 2
cmp edx, 0x51
jne 0x40da40
mov ebp, dword [esp + 0xa4]
add ebp, esi
movzx edx, byte [esp + 0x10]
mov eax, ebp
test dl, dl
je 0x40da9b
lea esi, [esp + 0x11]
mov eax, ebp
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40da90
mov dword [esp + 8], ebp
mov byte [eax], 0
mov ecx, dword [esp + 0xa8]
movzx edx, byte [ecx]
test dl, dl
je 0x40dacb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dac0
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40daeb
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 0x40dae0
mov byte [eax], 0
movzx ecx, byte [esp + 0x64]
test cl, cl
je 0x40db0b
lea edx, [esp + 0x65]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40db00
mov byte [eax], 0
mov ebp, dword [esp + 0xb0]
mov ecx, ebp
shr ecx, 2
mov ebx, dword [esp + 0xac]
mov edx, ebx
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebp
and edx, 0xfffffffc
lea esi, [eax + edx]
add edx, ebx
mov ecx, ebp
shr ecx, 1
and ecx, 1
mov ebx, edx
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ecx, ebp
test cl, 1
je 0x40db5f
mov ecx, dword [esp + 0xb0]
and ecx, 2
movzx edx, byte [edx + ecx]
mov byte [esi + ecx], dl
mov dword [esp + 0x10], 0xc2c3efed
mov dword [esp + 0x14], 0xdeda080a
mov dword [esp + 0x18], 0x16c30c0c
mov dword [esp + 0x1c], 0x1419111c
mov dword [esp + 0x20], 0x9081411
mov dword [esp + 0x24], 0xf5f7d419
mov word [esp + 0x28], 0xf7f5
mov byte [esp + 0x2a], 0xfe
mov word [esp + 0x2b], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x26
xor dl, byte [esp + ecx + 0x10]
add dl, 0x42
mov byte [esp + ecx + 0x10], dl
inc ecx
cmp ecx, 0x1d
jne 0x40dbb0
add eax, dword [esp + 0xb0]
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40dbeb
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dbe0
mov byte [eax], 0
sub eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
add dword [ecx + 0x60], eax
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret 0x10