Function at 0x40d490
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, 0x9c
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x6c], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x70], 0x171c1e23
mov dword [esp + 0x74], 0xda121b01
mov dword [esp + 0x78], 0x1e0a702c
mov dword [esp + 0x7c], 0xb1fdd36
mov dword [esp + 0x80], 0xb111004
mov dword [esp + 0x84], 0x3081009
mov dword [esp + 0x88], 0x74b701b7
mov dword [esp + 0x8c], 0x6c6b776e
mov dword [esp + 0x90], 0x9e989c74
mov word [esp + 0x94], 0x859e
mov dword [esp + 0x96], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x29
ja 0x40d570
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x70]
mov edx, eax
xor edx, 0xd50ca7a8
and eax, 0xd50ca7a8
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0xb8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x70], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2a
jb 0x40d530
mov dword [esp], 0x33c8c4d2
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 6
ja 0x40d5f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx]
mov ecx, eax
xor ecx, 0xba60224c
and eax, 0x3a60224c
lea ecx, [ecx + eax*2]
lea eax, [ecx + edx]
and ecx, edx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
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]
add al, 0x84
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 7
jb 0x40d5a0
mov dword [esp + 0x10], 0x828cd8d7
mov dword [esp + 0x14], 0x868ad4d0
mov dword [esp + 0x18], 0x95829cd7
mov dword [esp + 0x1c], 0x9e999281
mov dword [esp + 0x20], 0xce918d82
mov dword [esp + 0x24], 0x8cfb312b
mov dword [esp + 0x28], 0xb3a9b78e
mov dword [esp + 0x2c], 0xaac2f4b4
mov dword [esp + 0x30], 0xbcbbbbb1
mov dword [esp + 0x34], 0xbca1bba7
mov dword [esp + 0x38], 0xbbf2edbe
mov dword [esp + 0x3c], 0xe6a5a1a1
mov dword [esp + 0x40], 0xbeaebcb0
mov dword [esp + 0x44], 0xbaacffe5
mov dword [esp + 0x48], 0x72148af
mov dword [esp + 0x4c], 0x4e4a484a
mov dword [esp + 0x50], 0x430a1602
mov dword [esp + 0x54], 0x5f454347
mov dword [esp + 0x58], 0x3259404b
mov word [esp + 0x5c], 0xf716
mov word [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x53
ja 0x40d717
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + ecx + 0x10]
mov ecx, eax
xor ecx, 0x11627047
and eax, 0x11627047
lea ecx, [ecx + eax*2]
lea eax, [ecx + edx]
and ecx, edx
mov edx, eax
not edx
and edx, ecx
mov esi, ecx
not esi
and eax, esi
sub eax, edx
xor ecx, eax
and eax, esi
add eax, eax
sub eax, ecx
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x9d
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x54
jb 0x40d6c0
mov eax, dword [esp + 0xb4]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40d73b
lea esi, [esp + 0x11]
mov edx, edi
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x40d730
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40d75b
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 0x40d750
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x40d77b
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 0x40d770
mov eax, dword [esp + 0xb8]
mov byte [edx], 0
movzx ecx, byte [esp + 0x70]
test cl, cl
mov dword [esp + 0x68], edi
je 0x40d7ab
lea esi, [esp + 0x71]
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 0x40d7a0
mov byte [edx], 0
mov ebx, dword [esp + 0xbc]
mov ecx, ebx
shr ecx, 2
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ebp, ebx
and ebp, 0xfffffffc
lea esi, [edx + ebp]
add ebp, dword [esp + 0xb8]
and ebx, 3
mov eax, ebx
not eax
or eax, 1
add eax, ebx
mov ecx, ebx
shr ecx, 1
mov ebx, ebp
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, eax
inc ebx
je 0x40d87e
mov ecx, dword [esp + 0xbc]
and ecx, 2
add ebp, ecx
add esi, ecx
mov ecx, ebx
and ecx, 7
je 0x40d827
mov dword [esp + 0x64], eax
xor edi, edi
nop
nop
movzx eax, byte [ebp + edi]
mov byte [esi + edi], al
inc edi
cmp ecx, edi
jne 0x40d810
add ebp, edi
add esi, edi
sub ebx, edi
mov eax, dword [esp + 0x64]
cmp eax, 7
jb 0x40d87e
xor edi, edi
nop
nop
movzx eax, byte [ebp + edi]
mov byte [esi + edi], al
movzx eax, byte [ebp + edi + 1]
mov byte [esi + edi + 1], al
movzx eax, byte [ebp + edi + 2]
mov byte [esi + edi + 2], al
movzx eax, byte [ebp + edi + 3]
mov byte [esi + edi + 3], al
movzx eax, byte [ebp + edi + 4]
mov byte [esi + edi + 4], al
movzx eax, byte [ebp + edi + 5]
mov byte [esi + edi + 5], al
movzx eax, byte [ebp + edi + 6]
mov byte [esi + edi + 6], al
movzx eax, byte [ebp + edi + 7]
mov byte [esi + edi + 7], al
add edi, 8
cmp ebx, edi
jne 0x40d830
mov dword [esp + 0x10], 0xfeff1b1d
mov dword [esp + 0x14], 0xf2eec0c6
mov dword [esp + 0x18], 0x420f3c3c
mov dword [esp + 0x1c], 0x3c41394c
mov dword [esp + 0x20], 0x41403449
mov dword [esp + 0x24], 0xedeb0431
mov word [esp + 0x28], 0xf3f5
mov byte [esp + 0x2a], 0xca
mov dword [esp + 0x2b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x1e
ja 0x40d919
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
mov esi, eax
xor esi, 0x93eee1f8
and eax, 0x13eee1f8
lea eax, [esi + eax*2]
xor eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
add al, 0x28
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x1f
jb 0x40d8e0
add edx, dword [esp + 0xbc]
movzx eax, byte [esp + 0x10]
test al, al
mov esi, dword [esp + 0x68]
je 0x40d94b
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40d940
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0x6c]
add dword [eax + 0x60], edx
add esp, 0x9c
pop esi
pop edi
pop ebx
pop ebp
ret 0x10