Function at 0x40dc50
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, 0x84
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xc], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x18], 0x3b3c3a4f
mov dword [esp + 0x1c], 0x7e363f29
mov dword [esp + 0x20], 0x22360854
mov dword [esp + 0x24], 0x2f3b654a
mov dword [esp + 0x28], 0x2739382c
mov dword [esp + 0x2c], 0x27203821
mov dword [esp + 0x30], 0x246b1963
mov dword [esp + 0x34], 0xcccf2b32
mov dword [esp + 0x38], 0x727074dc
mov word [esp + 0x3c], 0x6d72
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov ecx, 0xcdf2f2e2
mov edi, 0x320d0d1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x320d0d36]
mov ebp, edi
and ebp, 0x200004a1
mov edx, ecx
and edx, 0x8830b35e
or edx, ebp
xor edx, ebx
mov ebx, edx
and ebx, 0x95
xor ebx, 0x81
xor edx, 0x34
or edx, ebx
add edx, ebx
inc dl
mov byte [esp + ecx + 0x320d0d36], dl
inc ecx
dec edi
cmp ecx, 0xcdf2f30d
jne 0x40dce0
mov dword [esp + 0x10], 0x63787c42
mov dword [esp + 0x14], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x10]
mov ebx, ecx
or ebx, 0x68
mov edx, 0x17
sub edx, ecx
xor edx, edi
and edx, ebx
mov ebx, edx
and ebx, 0x6d
mov ebp, edx
and ebp, 2
mov eax, edx
or eax, 0xfd
inc eax
imul eax, ebx
or edx, 2
imul edx, ebp
sub eax, edx
lea edx, [ecx + edi]
add edx, 0x68
add edx, eax
add dl, 0xf8
mov byte [esp + ecx + 0x10], dl
mov eax, ecx
and eax, 4
lea ecx, [ecx + eax*2]
xor ecx, 0x1274e1c4
add ecx, 0xed8b1e3d
cmp ecx, 8
jb 0x40dd40
mov dword [esp + 0x44], 0x6c39f7f5
mov dword [esp + 0x48], 0x7107696e
mov dword [esp + 0x4c], 0xe22cc74
mov dword [esp + 0x50], 0x7c797573
mov dword [esp + 0x54], 0x7c077d01
mov dword [esp + 0x58], 0x79b2337e
mov dword [esp + 0x5c], 0xba7b0703
mov dword [esp + 0x60], 0x7a0e7470
mov dword [esp + 0x64], 0x7e0cb947
mov dword [esp + 0x68], 0xa55f7871
mov dword [esp + 0x6c], 0x626a686a
mov dword [esp + 0x70], 0x61aa5aa2
mov dword [esp + 0x74], 0x1d6b6561
mov dword [esp + 0x78], 0x6e57606d
mov word [esp + 0x7c], 0xb196
mov dword [esp + 0x7e], 0
mov word [esp + 0x82], 0
mov ecx, 0xd5690aa
mov edi, 0xe2a96f55
mov ebp, dword [esp + 0x98]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0xd569066]
mov ebx, edi
and ebx, 0x82892624
mov edx, ecx
and edx, 0x912005b
or edx, ebx
xor edx, eax
mov ebx, edx
xor ebx, 0x5b
mov eax, edx
not eax
and eax, 1
and edx, 1
add ebx, 0x53
and ebx, 0xfe
or ebx, edx
xor ebx, 0xfe
lea eax, [ebx + eax*2]
mov byte [esp + ecx - 0xd569066], al
inc ecx
dec edi
cmp ecx, 0xd5690ea
jne 0x40de40
add ebp, dword [esp]
mov word [esp + 4], 0x282f
mov byte [esp + 6], 0x7a
mov dword [esp + 7], 0
mov edi, 0x43640b6b
nop
nop
nop
nop
movzx ebx, byte [esp + edi - 0x43640b67]
mov edx, ebx
and edx, edi
mov eax, edx
or al, 0xfd
inc al
mov ecx, edx
and cl, 0x7d
mul cl
mov ecx, eax
add cl, bl
mov eax, edx
shr al, 1
and al, 1
or dl, 2
mul dl
add al, al
sub cl, al
movzx eax, cl
add eax, edi
add al, 0xe9
mov byte [esp + edi - 0x43640b67], al
inc edi
cmp edi, 0x43640b72
jne 0x40deb0
movzx ecx, byte [esp + 4]
mov eax, ebp
test cl, cl
je 0x40df1b
lea edx, [esp + 5]
mov eax, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40df10
mov byte [eax], 0
mov edi, dword [esp + 0xc]
movzx ecx, byte [edi + 0x60]
test cl, cl
je 0x40df3b
lea edx, [edi + 0x61]
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40df30
mov byte [eax], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x40df5b
lea edx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40df50
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x40df7b
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 0x40df70
mov byte [eax], 0
movzx ecx, byte [esp + 0x10]
test cl, cl
je 0x40df9b
lea edx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40df90
mov byte [eax], 0
movzx ecx, byte [esp + 0x18]
test cl, cl
mov dword [esp], ebp
je 0x40dfbb
lea edx, [esp + 0x19]
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40dfb0
mov byte [eax], 0
mov ebx, dword [esp + 0xa4]
mov ecx, ebx
shr ecx, 2
mov edx, dword [esp + 0xa0]
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ebp, ebx
and ebp, 0xfffffffc
lea esi, [eax + ebp]
add ebp, dword [esp + 0xa0]
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov edx, ebp
mov edi, esi
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
test bl, 1
je 0x40e011
mov ecx, dword [esp + 0xa4]
and ecx, 2
movzx edx, byte [ebp + ecx]
mov byte [esi + ecx], dl
mov dword [esp + 0x44], 0x31333735
mov byte [esp + 0x48], 0x4c
mov dword [esp + 0x49], 0
mov word [esp + 0x4d], 0
mov ecx, 0xf2
mov esi, 0xd
mov ebx, dword [esp + 0xc]
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0xae]
mov edx, esi
xor edx, ecx
and edx, edi
xor edx, ecx
add dl, 0x46
mov byte [esp + ecx - 0xae], dl
inc ecx
dec esi
cmp ecx, 0xfd
jne 0x40e040
mov dword [esp + 0x18], 0xaaa98d8f
mov byte [esp + 0x1c], 0x98
mov dword [esp + 0x1d], 0
mov word [esp + 0x21], 0
mov ecx, 0xe12d499b
mov edi, dword [esp]
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx + 0x1ed2b67d]
mov edx, ecx
or edx, esi
and esi, ecx
sub edx, esi
add dl, 0xf9
mov byte [esp + ecx + 0x1ed2b67d], dl
inc ecx
cmp ecx, 0xe12d49a6
jne 0x40e090
add eax, dword [esp + 0xa4]
movzx ecx, byte [esp + 0x18]
test cl, cl
je 0x40e0db
lea edx, [esp + 0x19]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e0d0
mov byte [eax], 0
movzx ecx, byte [ebx + 0x60]
test cl, cl
je 0x40e0fb
lea edx, [ebx + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e0f0
mov byte [eax], 0
movzx ecx, byte [esp + 0x44]
test cl, cl
je 0x40e11b
lea edx, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e110
mov byte [eax], 0
mov ecx, eax
not ecx
and ecx, edi
not edi
and edi, eax
sub edi, ecx
add dword [ebx + 0x80], edi
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10