Function at 0x4091c0
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 + 0xac], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x70], 0xfff6f4ab
mov dword [esp + 0x74], 0xbcfcf389
mov dword [esp + 0x78], 0x80fcea92
mov dword [esp + 0x7c], 0x8b8749ac
mov dword [esp + 0x80], 0xfbf9fa8a
mov dword [esp + 0x84], 0x8382fa81
mov dword [esp + 0x88], 0x8acf85cf
mov dword [esp + 0x8c], 0xeaf38ff4
mov dword [esp + 0x90], 0x3032369a
mov word [esp + 0x94], 0x134
mov dword [esp + 0x96], 0
mov dword [esp + 0x9a], 0
mov word [esp + 0x9e], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x2f
ja 0x4092c5
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0x70]
lea esi, [ecx + 0x31]
and esi, edx
mov eax, 0x588aa3ce
sub eax, ecx
or eax, edx
not eax
add eax, edx
sub eax, esi
mov ecx, eax
xor ecx, 0xa8
and eax, 0x28
lea eax, [ecx + eax*2]
inc al
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, 0x30
jb 0x409270
mov dword [esp + 0xc7], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0x33282cd2
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x1a
ja 0x40936e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x10]
movzx edx, byte [esp + eax + 0xb0]
lea eax, [ecx + edx]
add eax, 0x80c6aad8
add ecx, 0x80c6aad8
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x18
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1b
jb 0x409330
mov dword [esp + 0x10], 0x66602c2d
mov dword [esp + 0x14], 0x6262303c
mov dword [esp + 0x18], 0x6f7a603d
mov dword [esp + 0x1c], 0x6a676e63
mov dword [esp + 0x20], 0x22776362
mov dword [esp + 0x24], 0x7815dfd9
mov dword [esp + 0x28], 0x757f6d76
mov dword [esp + 0x2c], 0x761a3068
mov dword [esp + 0x30], 0x100d1113
mov dword [esp + 0x34], 0x80f110d
mov dword [esp + 0x38], 0xd4a5306
mov dword [esp + 0x3c], 0x42031f03
mov dword [esp + 0x40], 0x12061014
mov dword [esp + 0x44], 0x1618554f
mov dword [esp + 0x48], 0x59471c15
mov dword [esp + 0x4c], 0x1a12141a
mov dword [esp + 0x50], 0x25627a62
mov dword [esp + 0x54], 0x2923292d
mov dword [esp + 0x58], 0x762f2429
mov word [esp + 0x5c], 0x8d6e
mov dword [esp + 0x5e], 0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
cmp eax, 0x51
ja 0x409466
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]
lea edx, [eax + 0x6d746ba0]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
sub eax, edx
add al, 0x3f
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x52
jb 0x409430
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40948b
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409480
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x4094ab
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 0x4094a0
mov byte [edx], 0
movzx eax, byte [esp + 0xb0]
test al, al
je 0x4094db
lea ecx, [esp + 0xb1]
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 0x4094d0
mov ebx, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x70]
test al, al
mov dword [esp + 0xa8], edi
je 0x40950b
lea ecx, [esp + 0x71]
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 0x409500
mov byte [edx], 0
mov esi, dword [ebp + 0x14]
mov ecx, esi
shr ecx, 2
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 0xfffffffc
lea esi, [edx + eax]
add eax, ebx
mov ebx, ecx
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov edi, eax
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], esi
mov edi, esi
mov esi, dword [esp + 0xa4]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x40957b
mov edi, dword [ebp + 0x14]
mov ecx, edi
not ecx
or ecx, 0xfffffffe
add ecx, ebx
xor ebx, 1
and ebx, edi
movzx eax, byte [eax + ecx + 1]
mov ecx, dword [esp + 0xa0]
mov byte [ecx + ebx], al
mov dword [esp + 0x10], 0xbebf5b59
mov dword [esp + 0x14], 0xaaaef4f6
mov dword [esp + 0x18], 0xfaaff8f8
mov dword [esp + 0x1c], 0x808dfdf0
mov dword [esp + 0x20], 0x95948085
mov dword [esp + 0x24], 0x2123c885
mov word [esp + 0x28], 0x2321
mov byte [esp + 0x2a], 0x12
mov dword [esp + 0x2b], 0
mov byte [esp + 0x2f], 0
mov dword [esp + 0x70], 0
mov eax, dword [esp + 0x70]
cmp eax, 0x1f
mov edi, dword [esp + 0xa8]
ja 0x409631
nop
nop
nop
nop
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [eax + ecx]
add esi, 0xd8b1b332
add eax, 0xd8b1b332
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, esi
not eax
and eax, esi
add eax, eax
sub eax, ecx
add al, 0xa2
mov ecx, dword [esp + 0x70]
mov byte [esp + ecx + 0x10], al
mov eax, dword [esp + 0x70]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
cmp eax, 0x20
jb 0x4095e0
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40965b
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 0x409650
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0xac]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10