Function at 0x409480
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], 0x6f6668c3
mov dword [esp + 0x84], 0x2068635d
mov dword [esp + 0x88], 0x54607a4a
mov dword [esp + 0x8c], 0x63571538
mov dword [esp + 0x90], 0x734d4a62
mov dword [esp + 0x94], 0x7b724a75
mov dword [esp + 0x98], 0x723f693f
mov dword [esp + 0x9c], 0x42437f40
mov dword [esp + 0xa0], 0x24222672
mov word [esp + 0xa4], 0xdd20
mov dword [esp + 0xa6], 0
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb1], 0
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x34
ja 0x40958e
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 + 0x80]
lea eax, [ecx + edx]
add eax, 0x21f013ff
add ecx, 0x21f013ff
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 7
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x35
jb 0x409550
mov word [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0x8b9c9862
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x10]
cmp eax, 0x19
ja 0x409646
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
movzx ecx, byte [esp + ecx + 0xc0]
lea edx, [eax + ecx]
add edx, 0x654e02ea
add eax, 0x654e02ea
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov ecx, eax
xor ecx, 0x99
and eax, 0x19
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x10]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x10]
mov eax, dword [esp + 0x10]
cmp eax, 0x1a
jb 0x4095f0
mov dword [esp + 0x10], 0x686a3635
mov dword [esp + 0x14], 0x646c3a3a
mov dword [esp + 0x18], 0x677c7a35
mov dword [esp + 0x1c], 0x7c7f647b
mov dword [esp + 0x20], 0x2c7f6b68
mov dword [esp + 0x24], 0x6e5d0701
mov dword [esp + 0x28], 0x6977616c
mov dword [esp + 0x2c], 0x50542a66
mov dword [esp + 0x30], 0x5e55555b
mov dword [esp + 0x34], 0x5e575d55
mov dword [esp + 0x38], 0x410c6b5c
mov dword [esp + 0x3c], 0x45b575b
mov dword [esp + 0x40], 0x5c485a5a
mov dword [esp + 0x44], 0x50421177
mov dword [esp + 0x48], 0x157f564d
mov dword [esp + 0x4c], 0x2c4c4e50
mov dword [esp + 0x50], 0x29640068
mov dword [esp + 0x54], 0x3d2b3535
mov dword [esp + 0x58], 0x8273e21
mov word [esp + 0x5c], 0x4964
mov dword [esp + 0x5e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x51
ja 0x40972f
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x10]
lea edx, [eax + 1]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add al, 0xfa
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x52
jb 0x409700
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x10]
mov edx, edi
test cl, cl
je 0x40975b
lea esi, [esp + 0x11]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409750
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40977b
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 0x409770
mov byte [edx], 0
movzx eax, byte [esp + 0xc0]
test al, al
je 0x4097ab
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 0x4097a0
mov ebx, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x80]
test al, al
mov dword [esp + 0xc], edi
je 0x4097db
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 0x4097d0
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 + 0x78], eax
mov dword [esp + 0x74], esi
mov edi, esi
mov esi, dword [esp + 0x78]
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, dword [ebp + 0x14]
test cl, 1
je 0x409835
xor ebx, 1
and ebx, ecx
and ecx, 2
movzx eax, byte [eax + ebx]
mov esi, dword [esp + 0x74]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0x5e5f3331
mov dword [esp + 0x14], 0x526e8486
mov dword [esp + 0x18], 0x824f8080
mov dword [esp + 0x1c], 0x988d9d88
mov dword [esp + 0x20], 0x85849885
mov dword [esp + 0x24], 0x292b4095
mov word [esp + 0x28], 0x2b29
mov byte [esp + 0x2a], 0xa
mov dword [esp + 0x2b], 0
mov dword [esp + 0x2f], 0
mov dword [esp + 0x33], 0
mov dword [esp + 0x37], 0
mov byte [esp + 0x3b], 0
mov dword [esp + 0x80], 0
mov eax, dword [esp + 0x80]
cmp eax, 0x2b
ja 0x409911
nop
nop
nop
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x80]
movzx eax, byte [esp + eax + 0x10]
add esi, 0x34125a06
mov ecx, esi
mov edi, eax
not edi
or edi, esi
and esi, eax
xor ecx, eax
add eax, esi
add eax, edi
sub ecx, eax
lea eax, [ecx + esi*2]
mov edi, 0x171dc2c0
sub edi, eax
lea eax, [ecx + esi*2]
dec eax
and edi, 0x2a
and eax, 0xd5
sub eax, edi
mov ecx, dword [esp + 0x80]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x80]
mov eax, dword [esp + 0x80]
cmp eax, 0x2c
jb 0x4098b0
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x10]
test al, al
je 0x40993d
lea ecx, [esp + 0x11]
mov esi, dword [esp + 0xc]
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 0x409930
jmp 0x409941
mov esi, dword [esp + 0xc]
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