Function at 0x409250
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, 0xe0
mov edi, dword [ebp + 8]
mov dword [esp + 0x8c], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x90], 0x1f262413
mov dword [esp + 0x94], 0xdc1c1b11
mov dword [esp + 0x98], 0x181c623a
mov dword [esp + 0x9c], 0x1307c12c
mov dword [esp + 0xa0], 0x3010212
mov dword [esp + 0xa4], 0xb0a0209
mov dword [esp + 0xa8], 0x2cf75cf
mov dword [esp + 0xac], 0x120b0f14
mov dword [esp + 0xb0], 0x98eae602
mov word [esp + 0xb4], 0x8994
mov dword [esp + 0xb6], 0
mov dword [esp + 0xba], 0
mov dword [esp + 0xbe], 0
mov dword [esp + 0xc2], 0
mov dword [esp + 0xc6], 0
mov dword [esp + 0xc9], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x3c
ja 0x40936e
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x90]
lea eax, [ecx + edx]
add eax, 0xfa56cc9d
add ecx, 0xfa56cc9d
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xb5
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x90], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x3d
jb 0x409330
mov dword [esp + 0x70], 0x131a2634
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0xf
ja 0x4093e7
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x70]
lea eax, [ecx + edx]
add eax, 0x861cd603
add ecx, 0x861cd603
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0xeb
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x70], al
mov eax, dword [esp + 0x10]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jb 0x4093a0
mov dword [esp + 0x10], 0x6045051
mov dword [esp + 0x14], 0x2025468
mov dword [esp + 0x18], 0x1f0a1c51
mov dword [esp + 0x1c], 0x1a071e0b
mov dword [esp + 0x20], 0x42170b0a
mov dword [esp + 0x24], 0x471afad
mov dword [esp + 0x28], 0x392f0106
mov dword [esp + 0x2c], 0x364a743c
mov dword [esp + 0x30], 0x34313d3b
mov dword [esp + 0x34], 0x343f3539
mov dword [esp + 0x38], 0x217a4b36
mov dword [esp + 0x3c], 0x62232f2b
mov dword [esp + 0x40], 0x32263c38
mov dword [esp + 0x44], 0x3624715f
mov dword [esp + 0x48], 0x8da73029
mov dword [esp + 0x4c], 0xcad2d0d2
mov dword [esp + 0x50], 0xd982a28a
mov dword [esp + 0x54], 0xd5c3ddd9
mov dword [esp + 0x58], 0xb6dfd8c5
mov word [esp + 0x5c], 0x799e
mov word [esp + 0x66], 0
mov dword [esp + 0x62], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x57
ja 0x4094d5
nop
nop
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
add al, 0xc6
xor al, byte [esp + ecx + 0x10]
add al, 0x96
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x58
jb 0x4094b0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x4094fb
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x4094f0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40951b
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 0x409510
mov byte [edx], 0
movzx eax, byte [esp + 0x70]
test al, al
je 0x40953b
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409530
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov byte [edx], 0
movzx ecx, byte [esp + 0x90]
test cl, cl
mov dword [esp + 0x88], edi
je 0x40956b
lea esi, [esp + 0x91]
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409560
mov byte [edx], 0
mov ecx, eax
shr ecx, 2
mov esi, ebx
mov edi, edx
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
mov esi, eax
and esi, 0xfffffffc
add esi, edx
mov ecx, eax
not ecx
or ecx, 0xfffffffc
add ecx, eax
add ebx, ecx
inc ebx
mov ecx, eax
shr ecx, 1
and ecx, 1
mov dword [esp + 0x84], ebx
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, eax
test bl, 1
je 0x4095c1
mov ecx, ebx
and ecx, 2
mov eax, dword [esp + 0x84]
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x98876b65
mov dword [esp + 0x14], 0x8480d2ac
mov dword [esp + 0x18], 0xdc87d6aa
mov dword [esp + 0x1c], 0xa2d1a5d2
mov dword [esp + 0x20], 0xedd2ded9
mov dword [esp + 0x24], 0x414baee1
mov word [esp + 0x28], 0x434d
mov byte [esp + 0x2a], 0x7c
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 0x33], 0
mov byte [esp + 0x37], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x90]
cmp eax, 0x27
mov edi, dword [esp + 0x88]
ja 0x409693
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x90]
movzx eax, byte [esp + eax + 0x10]
lea esi, [ecx + eax]
add esi, 0x96e6a10d
add ecx, 0x96e6a10d
and ecx, eax
add ecx, ecx
mov eax, esi
not eax
and eax, ecx
not ecx
and ecx, esi
sub ecx, eax
add cl, 0xa5
mov eax, dword [esp + 0x90]
mov byte [esp + eax + 0x10], cl
inc dword [esp + 0x90]
mov eax, dword [esp + 0x90]
cmp eax, 0x28
jb 0x409640
add edx, ebx
movzx eax, byte [esp + 0x10]
test al, al
je 0x4096bb
lea ecx, [esp + 0x11]
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 0x4096b0
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x8c]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10