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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x14], eax
mov word [esp + 8], 0xcfc9
mov byte [esp + 0xa], 0xc6
mov word [esp + 0xb], 0
mov byte [esp + 0xd], 0
mov edi, 0x4216d4e4
mov ebx, 0x1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi - 0x4216d4dc]
lea edx, [eax + eax]
not edx
add edx, eax
mov ebp, ebx
and ebp, eax
not eax
or eax, edx
and eax, edi
or eax, ebp
mov edx, eax
and edx, 0xdf
add edx, eax
or eax, 0x20
sub edx, eax
mov byte [esp + edi - 0x4216d4dc], dl
inc edi
dec ebx
cmp edi, 0x4216d4ea
jne 0x4095a0
mov dword [esp + 0x18], ecx
mov dword [esp + 0xe], 0x69696f53
mov word [esp + 0x12], 0x766f
mov eax, 0xf16fab9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0xf16faab]
xor ecx, eax
mov edi, ecx
xor edi, 0xc9
and ecx, 0x36
add ecx, ecx
sub ecx, edi
inc cl
mov byte [esp + eax - 0xf16faab], cl
inc eax
cmp eax, 0xf16fabf
jne 0x409600
mov dword [esp + 0x1c], 0x5a77393f
mov dword [esp + 0x20], 0x575da358
mov dword [esp + 0x24], 0x547816ae
mov dword [esp + 0x28], 0xb24fafad
mov dword [esp + 0x2c], 0x4a4db74b
mov dword [esp + 0x30], 0x4f087d48
mov dword [esp + 0x34], 0x41b945
mov dword [esp + 0x38], 0x30c44e4a
mov dword [esp + 0x3c], 0x343a7309
mov dword [esp + 0x40], 0x7b05323b
mov byte [esp + 0x44], 0x5a
mov word [esp + 0x45], 0
mov byte [esp + 0x47], 0
xor ebx, ebx
xor edx, edx
nop
movzx edi, byte [esp + edx + 0x1c]
mov eax, edx
and eax, 0x20
mov ebp, edx
and ebp, 2
mov ecx, ebp
xor ecx, 2
imul ecx, eax
or eax, 2
imul eax, ebp
add eax, ecx
mov ecx, ebx
and ecx, 0x44
neg ecx
add ecx, edx
add ecx, 0x2589db22
mov ebp, eax
and ebp, ecx
xor eax, ecx
lea ecx, [eax + ebp*2]
mov eax, ecx
and eax, edi
mov ebp, eax
and ebp, 2
mov esi, eax
or eax, 2
imul eax, ebp
xor ebp, 2
and esi, 0xfffffffd
imul esi, ebp
add eax, esi
add ecx, edi
mov esi, ecx
not esi
and esi, eax
not eax
and eax, ecx
sub eax, esi
add al, 0xf0
mov byte [esp + edx + 0x1c], al
inc edx
add ebx, 2
cmp edx, 0x2c
jne 0x409690
mov word [esp + 2], 0x2627
mov byte [esp + 4], 0xc
mov word [esp + 5], 0
mov byte [esp + 7], 0
xor eax, eax
mov edi, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0xda
xor cl, byte [esp + eax + 2]
add cl, 0x30
mov byte [esp + eax + 2], cl
mov ecx, eax
mov edx, eax
xor edi, 1
add edi, eax
xor eax, 0xfffffffe
or ecx, 1
and ecx, eax
and edx, 6
sub edi, edx
add edi, ecx
mov eax, edi
cmp edi, 6
jb 0x409720
mov esi, dword [esp + 0x5c]
add esi, dword [esp + 0x14]
movzx eax, byte [esp + 2]
mov edi, esi
test al, al
je 0x40977b
lea ecx, [esp + 3]
mov edi, esi
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409770
mov byte [edi], 0
mov edx, dword [esp + 0x18]
movzx eax, byte [edx + 0x60]
test al, al
je 0x40979b
lea ecx, [edx + 0x61]
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409790
mov byte [edi], 0
movzx eax, byte [esp + 0x1c]
test al, al
je 0x4097bb
lea ecx, [esp + 0x1d]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4097b0
mov byte [edi], 0
mov ecx, dword [esp + 0x60]
movzx eax, byte [ecx]
test al, al
je 0x4097db
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4097d0
mov byte [edi], 0
movzx eax, byte [esp + 0xe]
test al, al
je 0x4097fb
lea ecx, [esp + 0xf]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4097f0
mov byte [edi], 0
mov ecx, dword [esp + 0x64]
movzx eax, byte [ecx]
test al, al
je 0x40981b
inc ecx
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409810
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x40983b
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409830
mov byte [edi], 0
sub edi, esi
add dword [edx + 0x80], edi
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret 0xc