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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x20], eax
mov word [esp + 8], 0x3735
mov byte [esp + 0xa], 0x3e
mov word [esp + 0xb], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
mov ecx, ebx
add cl, 0x8a
xor cl, byte [esp + ebx + 8]
add cl, 0x4e
mov byte [esp + ebx + 8], cl
inc ebx
cmp ebx, 5
jne 0x409380
mov dword [esp + 0x14], 0xf2f0f4de
mov word [esp + 0x18], 0xfdf2
mov dword [esp + 0x1a], 0
xor ebx, ebx
nop
movzx ecx, byte [esp + ebx + 0x14]
lea edi, [ebx - 0x795b756]
and edi, ecx
add ecx, ebx
add ecx, 0xf86a48aa
add edi, edi
sub ecx, edi
add cl, 0xae
mov byte [esp + ebx + 0x14], cl
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ebx, [ebx + ecx*2]
cmp ebx, 0xa
jb 0x4093b0
mov dword [esp + 0x28], 0x683f05f7
mov dword [esp + 0x2c], 0x6f656b6a
mov dword [esp + 0x30], 0x6e362068
mov dword [esp + 0x34], 0x60676765
mov dword [esp + 0x38], 0x78757f6b
mov dword [esp + 0x3c], 0x770e217a
mov dword [esp + 0x40], 0x3271757d
mov dword [esp + 0x44], 0x42724044
mov dword [esp + 0x48], 0x7e483b29
mov dword [esp + 0x4c], 0x3b1d444b
mov byte [esp + 0x50], 0xdc
mov dword [esp + 0x51], 0
mov dword [esp + 0x54], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
shr eax, 1
and eax, 1
movzx ebp, byte [esp + edi + 0x28]
mov ecx, edi
and ecx, 0x3d
mov ebx, edi
or ebx, 0xfffffffd
inc ebx
imul ebx, ecx
mov ecx, edi
or ecx, 2
imul ecx, eax
add ecx, ecx
sub ebx, ecx
lea eax, [edi + ebx]
add eax, 0x446b6700
xor eax, ebp
lea ecx, [eax + eax]
not ecx
add ecx, eax
mov eax, ecx
and eax, 0xd6190304
xor ecx, 0x56190304
lea eax, [ecx + eax*2]
add eax, 0xf30b889
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
add al, 0x77
mov byte [esp + edi + 0x28], al
inc edi
cmp edi, 0x30
jne 0x409450
mov eax, dword [esp + 0x20]
add dword [esp + 0x10], eax
mov word [esp], 0x5455
mov byte [esp + 2], 0x3e
mov dword [esp + 3], 0
xor edi, edi
lea ebx, [edi + edi]
mov eax, ebx
and eax, 4
mov ecx, edi
xor ecx, 0x8a
add ecx, eax
xor cl, byte [esp + edi]
add cl, 0x4e
mov byte [esp + edi], cl
and ebx, 2
xor edi, 1
add edi, ebx
cmp edi, 7
jb 0x4094d0
movzx ebx, byte [esp]
mov ecx, dword [esp + 0x10]
mov edi, ecx
test bl, bl
je 0x40951c
lea ebp, [esp + 1]
mov edi, ecx
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409510
mov byte [edi], 0
mov eax, dword [esp + 0x24]
movzx ebx, byte [eax + 0x60]
test bl, bl
je 0x40953c
lea ebp, [eax + 0x61]
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409530
mov byte [edi], 0
movzx ebx, byte [esp + 0x28]
test bl, bl
je 0x40955c
lea ebp, [esp + 0x29]
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [ebp]
inc ebp
test bl, bl
jne 0x409550
mov byte [edi], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40957b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409570
mov byte [edi], 0
movzx ebx, byte [esp + 0x14]
test bl, bl
je 0x40959b
lea esi, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409590
mov byte [edi], 0
movzx ebx, byte [edx]
test bl, bl
je 0x4095bb
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], bl
inc edi
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x4095b0
mov byte [edi], 0
movzx edx, byte [esp + 8]
test dl, dl
je 0x4095db
lea esi, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x4095d0
mov byte [edi], 0
sub edi, ecx
add dword [eax + 0x80], edi
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret 0xc