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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x50
mov esi, dword [esp + 0x68]
mov dword [esp + 0x1c], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x18], eax
mov word [esp + 8], 0x3b3d
mov byte [esp + 0xa], 0x22
mov word [esp + 0xb], 0
mov byte [esp + 0xd], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xc8
xor cl, byte [esp + eax + 8]
add cl, 0x18
mov byte [esp + eax + 8], cl
inc eax
cmp eax, 6
jne 0x409660
mov dword [esp + 0x10], 0x8a8488a2
mov dword [esp + 0x14], 0xbf86
xor ebp, ebp
mov ebx, ebp
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ebp + 0x10]
mov ecx, ebp
and ecx, 2
xor ecx, 0xe67454ca
mov edi, ebp
and edi, 5
sub edi, ecx
lea ecx, [edi + 0x4b056269]
mov edx, 0xb4fa9d96
sub edx, edi
and edx, 0x9a68b237
and ecx, 0x64000888
or ecx, edx
xor ecx, eax
xor ecx, 0x9af9b737
lea edx, [ecx + ecx]
not edx
add edx, ecx
lea ecx, [edi + 0x69]
and ecx, edx
add ecx, ecx
neg ecx
add ecx, edi
add ecx, 0x4b056269
add cl, al
add cl, 0xe5
mov byte [esp + ebp + 0x10], cl
and ebx, 1
not ebp
or ebp, 1
sub ebx, ebp
mov ebp, ebx
cmp ebx, 8
jb 0x409690
mov dword [esp + 0x20], 0x683f05f7
mov dword [esp + 0x24], 0x6f656b6a
mov dword [esp + 0x28], 0x6e362068
mov dword [esp + 0x2c], 0x60676765
mov dword [esp + 0x30], 0x78757f6b
mov dword [esp + 0x34], 0x770e217a
mov dword [esp + 0x38], 0x3271757d
mov dword [esp + 0x3c], 0x42724044
mov dword [esp + 0x40], 0x7e483b29
mov dword [esp + 0x44], 0x3b1d444b
mov byte [esp + 0x48], 0xdc
mov dword [esp + 0x49], 0
mov byte [esp + 0x4d], 0
xor eax, eax
mov bl, 0x80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x20]
xor cl, bl
mov dl, 0x84
sub dl, cl
mov byte [esp + eax + 0x20], dl
inc eax
dec bl
cmp eax, 0x2e
jne 0x409770
mov ebp, dword [esp + 0x64]
add ebp, dword [esp + 0x18]
mov word [esp], 0x383f
mov byte [esp + 2], 0xa
mov word [esp + 3], 0
mov byte [esp + 5], 0
mov eax, 0x9cbcda03
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x634325fd]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0xf1
mov byte [esp + eax + 0x634325fd], cl
inc eax
cmp eax, 0x9cbcda09
jne 0x4097b0
movzx eax, byte [esp]
mov edi, ebp
test al, al
je 0x4097fb
lea ebx, [esp + 1]
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 0x4097f0
mov byte [edi], 0
mov ecx, dword [esp + 0x1c]
movzx eax, byte [ecx + 0x60]
test al, al
mov edx, dword [esp + 0x6c]
je 0x40982b
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 0x409820
mov byte [edi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40984b
lea ebx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x409840
mov byte [edi], 0
movzx eax, byte [esi]
test al, al
je 0x40986b
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 0x409860
mov byte [edi], 0
movzx eax, byte [esp + 0x10]
test al, al
je 0x40988b
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 0x409880
mov byte [edi], 0
movzx eax, byte [edx]
test al, al
je 0x4098ab
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 0x4098a0
mov byte [edi], 0
movzx eax, byte [esp + 8]
test al, al
je 0x4098cb
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x4098c0
mov byte [edi], 0
sub edi, ebp
add dword [ecx + 0x80], edi
add esp, 0x50
pop esi
pop edi
pop ebx
pop ebp
ret 0xc