Function at 0x409c80
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], 0xf36305b
mov dword [esp + 0x7c], 0x68102b3d
mov dword [esp + 0x80], 0x24281232
mov dword [esp + 0x84], 0x1b377550
mov dword [esp + 0x88], 0x2b2d321a
mov dword [esp + 0x8c], 0xe3dad225
mov dword [esp + 0x90], 0xda9fe19f
mov dword [esp + 0x94], 0xdadbdfc8
mov dword [esp + 0x98], 0x747a76ea
mov word [esp + 0x9c], 0x7d78
mov dword [esp + 0x9e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x29
ja 0x409d5b
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x78]
lea edx, [eax - 0x1a1f5695]
add eax, 0x6b
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x13
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x78], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2a
jb 0x409d20
mov dword [esp + 8], 0xa3bcb04a
mov dword [esp + 0xc], 0
mov dword [esp + 0xf], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x409de7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x3ba1d3a]
and edx, ecx
add eax, ecx
add eax, 0xfc45e2c6
add edx, edx
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov ecx, eax
or ecx, 0x95
and eax, 0x95
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xb
jb 0x409d90
mov dword [esp + 0x18], 0x66602c2d
mov dword [esp + 0x1c], 0x6262303c
mov dword [esp + 0x20], 0x6f7a603d
mov dword [esp + 0x24], 0x6a676e63
mov dword [esp + 0x28], 0x22776362
mov dword [esp + 0x2c], 0x7815dfd9
mov dword [esp + 0x30], 0x757f6d76
mov dword [esp + 0x34], 0x761a3068
mov dword [esp + 0x38], 0x100d1113
mov dword [esp + 0x3c], 0x80f110d
mov dword [esp + 0x40], 0xd4a5306
mov dword [esp + 0x44], 0x42031f03
mov dword [esp + 0x48], 0x12061014
mov dword [esp + 0x4c], 0x1618554f
mov dword [esp + 0x50], 0x59471c15
mov dword [esp + 0x54], 0x1a12141a
mov dword [esp + 0x58], 0x25627a62
mov dword [esp + 0x5c], 0x2923292d
mov dword [esp + 0x60], 0x762f2429
mov word [esp + 0x64], 0x8d6e
mov byte [esp + 0x68], 0
mov word [esp + 0x66], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x50
ja 0x409ef8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + ecx]
add edx, 0xea40d4a0
add eax, 0xea40d4a0
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xa0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x51
jb 0x409eb0
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x18]
mov edx, edi
test cl, cl
je 0x409f1b
lea esi, [esp + 0x19]
mov edx, edi
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409f10
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409f3b
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 0x409f30
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x409f5b
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409f50
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x78]
test al, al
mov dword [esp + 0x70], edi
je 0x409f8b
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 0x409f80
mov byte [edx], 0
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
mov ecx, esi
lea esi, [edx + eax]
add eax, ecx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, dword [ebp + 0x14]
test bl, 1
je 0x409fcd
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x18], 0xf4f7dbd1
mov dword [esp + 0x1c], 0xd0d48280
mov dword [esp + 0x20], 0x80d78682
mov dword [esp + 0x24], 0x8a85898a
mov dword [esp + 0x28], 0x81828e8d
mov dword [esp + 0x2c], 0xf5fbde8d
mov word [esp + 0x30], 0xf3f9
mov byte [esp + 0x32], 8
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov word [esp + 0x3b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x24
mov edi, dword [esp + 0x70]
ja 0x40a07c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x18]
lea esi, [eax + 0x5b]
and esi, ecx
add eax, ecx
add esi, esi
sub eax, esi
add eax, 0x27e47e5b
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
add al, 0x83
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x25
jb 0x40a040
add edx, ebx
movzx eax, byte [esp + 0x18]
test al, al
je 0x40a09b
lea ecx, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a090
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