Function at 0x409220
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov edi, dword [ebp + 8]
mov dword [esp + 0x7c], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x80], 0x3fc6c4eb
mov dword [esp + 0x84], 0xfc3cc3c9
mov dword [esp + 0x88], 0xb0bc4aa2
mov dword [esp + 0x8c], 0x4bb7e98c
mov dword [esp + 0x90], 0xbbb9ba4a
mov dword [esp + 0x94], 0x53b2bab1
mov dword [esp + 0x98], 0xaaef55ef
mov dword [esp + 0x9c], 0xaaa3afa4
mov dword [esp + 0xa0], 0xc0c2c65a
mov word [esp + 0xa4], 0xd1c4
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x39
ja 0x409333
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0x80]
mov edx, eax
xor edx, 0x46b0339
and eax, 0x46b0339
lea edx, [edx + eax*2]
lea eax, [edx + ecx]
and edx, ecx
add edx, edx
sub eax, edx
add al, 0x71
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x3a
jb 0x4092f0
mov word [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0xb3484c52
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x11
ja 0x4093cd
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0xc0]
lea eax, [ecx + edx]
add eax, 0xcc54e4c8
add ecx, 0xcc54e4c8
and ecx, edx
add ecx, ecx
sub eax, ecx
mov ecx, eax
or ecx, 0x87
and eax, 0x87
add eax, ecx
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x12
jb 0x409380
mov dword [esp + 0x10], 0xfcf22621
mov dword [esp + 0x14], 0xf0f0222a
mov dword [esp + 0x18], 0xf7e8f221
mov dword [esp + 0x1c], 0xc8cfc8eb
mov dword [esp + 0x20], 0x10cfd3d4
mov dword [esp + 0x24], 0xdee12735
mov dword [esp + 0x28], 0xddc7d5d8
mov dword [esp + 0x2c], 0xdcf802d6
mov dword [esp + 0x30], 0xcec1c1cb
mov dword [esp + 0x34], 0xced7c1d9
mov dword [esp + 0x38], 0xd51803c8
mov dword [esp + 0x3c], 0xf03337cb
mov dword [esp + 0x40], 0x203c222a
mov dword [esp + 0x44], 0x2c3aed07
mov dword [esp + 0x48], 0xe90f2639
mov dword [esp + 0x4c], 0x38203e24
mov dword [esp + 0x50], 0x3df014f4
mov dword [esp + 0x54], 0x29332939
mov dword [esp + 0x58], 0x1c372e3d
mov word [esp + 0x5c], 0xe5f8
mov byte [esp + 0x6e], 0
mov dword [esp + 0x6a], 0
mov dword [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x5e
ja 0x4094f8
nop
nop
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 + 0x10]
lea esi, [eax + 0x6db1d053]
and esi, edx
lea ecx, [eax + edx]
add ecx, 0x6db1d053
add eax, 0x53
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
add al, 0xbb
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x5f
jb 0x4094b0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40951b
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409510
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40953b
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 0x409530
mov byte [edx], 0
movzx eax, byte [esp + 0xc0]
test al, al
je 0x40956b
lea ecx, [esp + 0xc1]
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 0x409560
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0x78], edi
je 0x40959b
lea ecx, [esp + 0x81]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409590
mov byte [edx], 0
mov ebx, dword [ebp + 0x14]
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
lea edi, [edx + eax]
mov dword [esp + 0xc], edi
add eax, esi
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov esi, eax
mov edi, dword [esp + 0xc]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov esi, dword [esp + 0xc]
mov ecx, dword [ebp + 0x14]
xor ecx, 2
and ecx, ebx
je 0x409607
mov edi, dword [ebp + 0x14]
and edi, 2
movzx ebx, byte [eax + edi]
mov byte [esi + edi], bl
cmp ecx, 1
je 0x409607
movzx ebx, byte [eax + edi + 1]
mov byte [esi + edi + 1], bl
cmp ecx, 2
je 0x409607
movzx eax, byte [eax + edi + 2]
mov byte [esi + edi + 2], al
mov dword [esp + 0x10], 0x44479ba1
mov dword [esp + 0x14], 0x40447270
mov dword [esp + 0x18], 0x70477672
mov dword [esp + 0x1c], 0x6a15690a
mov dword [esp + 0x20], 0x11126e6d
mov dword [esp + 0x24], 0x85bb5e6d
mov word [esp + 0x28], 0x83b9
mov byte [esp + 0x2a], 0x88
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov dword [esp + 0x3b], 0
mov byte [esp + 0x3f], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x80]
cmp eax, 0x2f
ja 0x4096d7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x80]
movzx esi, byte [esp + eax + 0x10]
lea eax, [ecx + esi]
add eax, 0xe7800b43
add ecx, 0xe7800b43
and ecx, esi
add ecx, ecx
sub eax, ecx
add al, 0x2b
mov ecx, dword [esp + 0x80]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x80]
mov eax, dword [esp + 0x80]
cmp eax, 0x30
jb 0x409690
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
mov esi, dword [esp + 0x78]
je 0x4096fb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4096f0
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0x7c]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10