Function at 0x4099a0
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, 0xfffffff8
sub esp, 0xb0
mov edi, dword [ebp + 8]
mov dword [esp + 0x74], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x78], 0x272c2e73
mov dword [esp + 0x7c], 0x6a222b51
mov dword [esp + 0x80], 0x4e3a205c
mov dword [esp + 0x84], 0x3b4f8d66
mov dword [esp + 0x88], 0x3b414034
mov dword [esp + 0x8c], 0x33384039
mov dword [esp + 0x90], 0xc487d187
mov dword [esp + 0x94], 0xbcbbc7be
mov dword [esp + 0x98], 0x6e686cc4
mov word [esp + 0x9c], 0x556e
mov dword [esp + 0x9e], 0
mov byte [esp + 0xa2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x2a
ja 0x409a9e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x78]
lea eax, [edx + 0x6eb911e8]
lea ecx, [edx + esi]
add ecx, 0x6eb911e8
add edx, 0xe8
and edx, esi
and eax, esi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
add al, 0xa8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x78], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x2b
jb 0x409a50
mov dword [esp], 0x5b506c7a
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x409b0d
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x641f9a0c
add eax, 0x641f9a0c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
add al, 0xac
mov ecx, dword [esp + 8]
mov byte [esp + ecx], al
mov eax, dword [esp + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x409ac0
mov dword [esp + 0x10], 0x7c720601
mov dword [esp + 0x14], 0x7070020a
mov dword [esp + 0x18], 0x77487201
mov dword [esp + 0x1c], 0x686f684b
mov dword [esp + 0x20], 0x106f5354
mov dword [esp + 0x24], 0x5e01c735
mov dword [esp + 0x28], 0x5d675558
mov dword [esp + 0x2c], 0x1c786256
mov dword [esp + 0x30], 0x2e21212b
mov dword [esp + 0x34], 0x2e172119
mov dword [esp + 0x38], 0x15586328
mov dword [esp + 0x3c], 0x7033372b
mov dword [esp + 0x40], 0x3c020a
mov dword [esp + 0x44], 0xc3a4d67
mov dword [esp + 0x48], 0x496f0639
mov dword [esp + 0x4c], 0x38003e04
mov dword [esp + 0x50], 0x3d705474
mov dword [esp + 0x54], 0x9330939
mov dword [esp + 0x58], 0x5c370e3d
mov word [esp + 0x5c], 0x8578
mov byte [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, 0x56
ja 0x409c26
nop
nop
nop
nop
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 + 0x2f598923]
add eax, 0x23
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
mov ecx, eax
xor ecx, 0xa
and eax, 0xa
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xc]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0xc]
mov eax, dword [esp + 0xc]
cmp eax, 0x57
jb 0x409be0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x409c4b
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 0x409c40
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409c6b
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 0x409c60
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x409c8b
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 0x409c80
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x78]
test al, al
mov dword [esp + 0x70], edi
je 0x409cbb
lea ecx, [esp + 0x79]
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 0x409cb0
mov byte [edx], 0
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
not ecx
mov eax, esi
and eax, 0xfffffffc
lea edi, [edx + eax]
add eax, ebx
or ecx, 3
lea ebx, [esi + ecx]
inc ebx
mov ecx, ebx
shr ecx, 1
mov esi, eax
mov dword [esp + 0x6c], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x409d04
and ebx, 0xfffffffe
movzx eax, byte [eax + ebx]
mov ecx, dword [esp + 0x6c]
mov byte [ecx + ebx], al
mov dword [esp + 0x10], 0x74775b51
mov dword [esp + 0x14], 0x9094a2a0
mov dword [esp + 0x18], 0xa097a6a2
mov dword [esp + 0x1c], 0xaaa5a9aa
mov dword [esp + 0x20], 0xa1a2aead
mov dword [esp + 0x24], 0x757b5ead
mov word [esp + 0x28], 0x7379
mov byte [esp + 0x2a], 0x68
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 0x32], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x25
mov edi, dword [esp + 0x70]
ja 0x409db8
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x10]
lea esi, [eax + 0x2cb9e20b]
and esi, ecx
add eax, ecx
add eax, 0x2cb9e20b
add esi, esi
sub eax, esi
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
mov ecx, eax
xor ecx, 0xb2
and eax, 0x32
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x26
jb 0x409d70
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x409ddb
lea ecx, [esp + 0x11]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409dd0
mov byte [edx], 0
sub edx, edi
mov eax, dword [esp + 0x74]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10