Function at 0x409500
Capabilities:
Contain obfuscated stackstrings
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x1c], eax
mov word [esp], 0x8b85
mov byte [esp + 2], 0x92
mov dword [esp + 3], 0
mov byte [esp + 7], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xdc
xor cl, byte [esp + eax]
add cl, 0xb4
mov byte [esp + eax], cl
inc eax
cmp eax, 8
jne 0x409540
mov dword [esp + 0x10], 0x4e484c62
mov dword [esp + 0x14], 0x454e
mov byte [esp + 0x18], 0
xor ebp, ebp
mov ebx, ebp
nop
nop
nop
movzx edi, byte [esp + ebp + 0x10]
mov edx, ebp
or edx, 0x10f7d790
mov ecx, 0xef08286f
sub ecx, ebp
and ecx, 0xe7080069
mov eax, edx
and eax, 0x10550416
or eax, ecx
xor eax, edi
xor eax, 0xe7aad3e9
mov ecx, ebp
or ecx, 0x90
and ecx, edi
or ecx, eax
and edx, edi
mov eax, ecx
not eax
and eax, edx
not edx
and edx, ecx
sub edx, eax
add dl, 0x30
mov byte [esp + ebp + 0x10], dl
and ebx, 1
not ebp
or ebp, 1
sub ebx, ebp
mov ebp, ebx
cmp ebx, 9
jb 0x409570
mov dword [esp + 0x24], 0xc0fb2523
mov dword [esp + 0x28], 0xcbd5c7ce
mov dword [esp + 0x2c], 0x32f208c0
mov dword [esp + 0x30], 0x383b3b3d
mov dword [esp + 0x34], 0x30353b37
mov dword [esp + 0x38], 0x23e2093e
mov dword [esp + 0x3c], 0xe6393535
mov dword [esp + 0x40], 0x3e2e383c
mov dword [esp + 0x44], 0x3220ff11
mov dword [esp + 0x48], 0xf71d342f
mov byte [esp + 0x4c], 0xd4
mov dword [esp + 0x4d], 0
mov dword [esp + 0x50], 0
xor eax, eax
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + ebx + 0x24]
mov edx, eax
and edx, 0x6a
mov edi, ebx
xor edi, 0x77e95175
add edi, edx
mov edx, edi
not edx
add edi, ecx
or ecx, edx
sub edx, ecx
lea ecx, [edi + edx*2]
add cl, 0xb7
mov byte [esp + ebx + 0x24], cl
inc ebx
add eax, 2
cmp ebx, 0x30
jne 0x409640
mov ebp, dword [esp + 0x68]
add ebp, dword [esp + 0x1c]
mov word [esp + 8], 0x5c5d
mov byte [esp + 0xa], 0x22
mov dword [esp + 0xb], 0
xor eax, eax
nop
mov ecx, eax
add cl, 8
xor cl, byte [esp + eax + 8]
add cl, 0xd8
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 7
jne 0x409690
movzx eax, byte [esp + 8]
mov edi, ebp
test al, al
je 0x4096cb
lea ebx, [esp + 9]
mov edi, ebp
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4096c0
mov byte [edi], 0
mov ecx, dword [esp + 0x20]
movzx eax, byte [ecx + 0x60]
test al, al
mov edx, dword [esp + 0x70]
je 0x4096fb
lea ebx, [ecx + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x4096f0
mov byte [edi], 0
movzx eax, byte [esp + 0x24]
test al, al
je 0x40971b
lea ebx, [esp + 0x25]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x409710
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40973b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409730
mov byte [edi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40975b
lea esi, [esp + 0x11]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409750
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x40977b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409770
mov byte [edi], 0
movzx eax, byte [esp]
test al, al
je 0x40979b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x409790
mov byte [edi], 0
mov eax, edi
xor eax, ebp
not ebp
and ebp, edi
add ebp, ebp
sub ebp, eax
add dword [ecx + 0x80], ebp
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret 0xc