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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x78
mov eax, dword [ebp + 8]
add eax, dword [ecx + 0x60]
mov word [esp + 0x18], 0xa3a5
mov byte [esp + 0x1a], 0xb4
mov dword [esp + 0x1b], 0
mov dword [esp + 0x1f], 0
mov dword [esp + 0x22], 0
mov dword [esp + 8], 0
mov edx, dword [esp + 8]
cmp edx, 0xd
ja 0x409766
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 8]
mov esi, dword [esp + 8]
movzx esi, byte [esp + esi + 0x18]
mov edi, edx
and edi, 0x254f7e19
xor edx, 0xa54f7e19
lea edx, [edx + edi*2]
lea edi, [edx + esi]
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0x51
mov esi, dword [esp + 8]
mov byte [esp + esi + 0x18], dl
mov edx, dword [esp + 8]
mov esi, edx
and esi, 1
xor edx, 1
lea edx, [edx + esi*2]
mov dword [esp + 8], edx
mov edx, dword [esp + 8]
cmp edx, 0xe
jb 0x409710
mov dword [esp + 8], 0xf8cac6f0
mov word [esp + 0xc], 0xe9f4
mov dword [esp + 0xe], 0
mov word [esp + 0x12], 0
mov dword [esp], 0
mov edx, dword [esp]
cmp edx, 0xb
ja 0x4097ec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov esi, dword [esp]
movzx edi, byte [esp + esi + 8]
lea ebx, [edx - 0x5b99f0e3]
lea esi, [edx + edi]
add esi, 0xa4660f1d
and ebx, edi
add edx, 0x1d
and edx, edi
add edx, ebx
mov edi, esi
not edi
and edi, edx
not edx
and edx, esi
sub edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x28]
add dl, 0x35
mov esi, dword [esp]
mov byte [esp + esi + 8], dl
inc dword [esp]
mov edx, dword [esp]
cmp edx, 0xc
jb 0x4097a0
mov dword [esp + 0x28], 0x7674b8b9
mov dword [esp + 0x2c], 0x7a7a8480
mov dword [esp + 0x30], 0x7f727c89
mov dword [esp + 0x34], 0x62677e73
mov dword [esp + 0x38], 0xaa675352
mov dword [esp + 0x3c], 0x6489cfcd
mov dword [esp + 0x40], 0x616f5966
mov dword [esp + 0x44], 0x9672a45c
mov dword [esp + 0x48], 0xa4999da3
mov dword [esp + 0x4c], 0x949fa591
mov dword [esp + 0x50], 0x99426396
mov dword [esp + 0x54], 0x4a8baf93
mov dword [esp + 0x58], 0x9ab69c80
mov dword [esp + 0x5c], 0x9684597f
mov dword [esp + 0x60], 0x4d778881
mov byte [esp + 0x64], 0x30
mov dword [esp + 0x65], 0
mov dword [esp + 0x69], 0
mov byte [esp + 0x6d], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x45
ja 0x4098d2
nop
mov edx, dword [esp + 4]
mov esi, dword [esp + 4]
movzx esi, byte [esp + esi + 0x28]
lea edi, [edx + 0xe2]
and edi, esi
mov ebx, 0xdaf68e1d
sub ebx, edx
or ebx, esi
not ebx
add ebx, esi
sub ebx, edi
mov dword [esp], ebx
mov edx, dword [esp]
add dl, 0xd2
mov esi, dword [esp + 4]
mov byte [esp + esi + 0x28], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x46
jb 0x409890
mov esi, dword [ebp + 0xc]
movzx ebx, byte [esp + 0x28]
mov edx, eax
test bl, bl
je 0x4098fb
lea edi, [esp + 0x29]
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x4098f0
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40991b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409910
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ebx, byte [esp + 8]
test bl, bl
je 0x40993b
lea edi, [esp + 9]
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x409930
mov byte [edx], 0
movzx ebx, byte [esi]
test bl, bl
je 0x40995b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409950
mov byte [edx], 0
movzx ebx, byte [esp + 0x18]
test bl, bl
je 0x40997b
lea esi, [esp + 0x19]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409970
mov byte [edx], 0
mov esi, edx
xor esi, eax
not eax
and eax, edx
add eax, eax
sub eax, esi
add dword [ecx + 0x60], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc