Function at 0x40d760
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, 0x98
mov edi, dword [esp + 0xac]
mov dword [esp + 0x68], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x6c], 0xfbc4caa7
mov dword [esp + 0x70], 0x86fec7c9
mov dword [esp + 0x74], 0xf2fef8dc
mov dword [esp + 0x78], 0xc7ebad8a
mov dword [esp + 0x7c], 0xfff9e8c4
mov dword [esp + 0x80], 0xcff0f8f1
mov dword [esp + 0x84], 0xecabc9b3
mov dword [esp + 0x88], 0xe4e7ebe2
mov dword [esp + 0x8c], 0x42404cd4
mov dword [esp + 0x90], 0x5542
mov byte [esp + 0x94], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x28
ja 0x40d84b
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x6c]
lea eax, [ecx + edx]
add eax, 0xfadf8216
add ecx, 0xfadf8216
and ecx, edx
mov edx, eax
xor edx, ecx
mov esi, ecx
not esi
and eax, esi
add eax, eax
sub eax, edx
mov edx, eax
not edx
and edx, ecx
and eax, esi
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ecx, eax
not ecx
and ecx, 0x6e
and eax, 0x91
sub eax, ecx
mov ecx, dword [esp]
mov byte [esp + ecx + 0x6c], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x29
jb 0x40d7f0
mov dword [esp], 0x3080c22
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x40d8a7
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xb2b8ee00
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x40d870
mov dword [esp + 0x10], 0xb6ace0e3
mov dword [esp + 0x14], 0xb2b6e4e8
mov dword [esp + 0x18], 0xbda6bce3
mov dword [esp + 0x1c], 0xbab1bea9
mov dword [esp + 0x20], 0xd2b9adae
mov dword [esp + 0x24], 0x94a7e9ef
mov dword [esp + 0x28], 0x8781938a
mov dword [esp + 0x2c], 0x86aec49c
mov dword [esp + 0x30], 0x849f9f99
mov dword [esp + 0x34], 0x8499879b
mov dword [esp + 0x38], 0x9fd6cd9a
mov dword [esp + 0x3c], 0xd2958989
mov dword [esp + 0x40], 0x628a9c98
mov dword [esp + 0x44], 0x666c233d
mov dword [esp + 0x48], 0x2b39606b
mov dword [esp + 0x4c], 0x6a66606e
mov dword [esp + 0x50], 0x772e322e
mov dword [esp + 0x54], 0x7b757f7b
mov dword [esp + 0x58], 0x26717877
mov word [esp + 0x5c], 0x1b3a
mov byte [esp + 0x60], 0
mov word [esp + 0x5e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x50
ja 0x40d9ae
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx ecx, byte [esp + ecx + 0x10]
mov edx, eax
xor edx, 0xc64b624d
and eax, 0xc64b624d
lea eax, [edx + eax*2]
xor eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x7f
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x51
jb 0x40d970
mov eax, dword [esp + 0xb0]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40d9db
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d9d0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40d9fb
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40d9f0
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x40da1b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da10
mov ebx, dword [esp + 0xb8]
mov ebp, dword [esp + 0xb4]
mov byte [edx], 0
movzx eax, byte [esp + 0x6c]
test al, al
mov dword [esp + 0x64], edi
je 0x40da4b
lea ecx, [esp + 0x6d]
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40da40
mov byte [edx], 0
mov ecx, ebx
shr ecx, 2
mov eax, ebp
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebp
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebp, eax
mov edi, esi
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
test bl, 1
je 0x40da88
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0xeae90d0f
mov dword [esp + 0x14], 0x1e1e4cb6
mov dword [esp + 0x18], 0x56194848
mov dword [esp + 0x1c], 0x405f4350
mov dword [esp + 0x20], 0x5754405b
mov dword [esp + 0x24], 0xe3e50843
mov word [esp + 0x28], 0xe5e7
mov byte [esp + 0x2a], 0xf2
mov word [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1c
mov edi, dword [esp + 0x64]
ja 0x40db20
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov esi, eax
xor esi, 0x91c76d7b
and eax, 0x11c76d7b
lea eax, [esi + eax*2]
lea esi, [eax + ecx]
and eax, ecx
add eax, eax
sub esi, eax
mov dword [esp + 0x6c], esi
mov eax, dword [esp + 0x6c]
add al, 0x99
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1d
jb 0x40dae0
add edx, ebx
movzx eax, byte [esp + 0x10]
test al, al
je 0x40db3b
lea ecx, [esp + 0x11]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40db30
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x68]
add dword [eax + 0x60], edx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret 0x10