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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x84
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 0x44], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], 0xffe4e633
mov dword [esp + 0x18], 0x3ae2fbf1
mov dword [esp + 0x1c], 0xf6fae004
mov dword [esp + 0x20], 0xeb07452e
mov dword [esp + 0x24], 0xfb0100ec
mov dword [esp + 0x28], 0x13080009
mov dword [esp + 0x2c], 0xccf11cf
mov dword [esp + 0x30], 0xf40b0ff6
mov dword [esp + 0x34], 0xa6a8a41c
mov word [esp + 0x38], 0x8db6
mov dword [esp + 0x3a], 0
mov byte [esp + 0x3e], 0
xor eax, eax
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
and esi, 0x58
mov ecx, edx
xor ecx, 0xec
add ecx, esi
xor cl, byte [esp + edx + 0x14]
add cl, 0x64
mov byte [esp + edx + 0x14], cl
inc edx
add eax, 2
cmp edx, 0x2b
jne 0x4096e0
mov dword [esp + 0xc], 0xc9fcf892
mov dword [esp + 0x10], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edi + 0xc]
mov edx, edi
and edx, 1
mov eax, edi
and eax, 2
mov ecx, eax
xor ecx, 2
imul ecx, edx
or edx, 2
imul edx, eax
mov eax, edi
xor eax, 0x7a2ac5d3
add eax, ecx
add eax, edx
mov ebp, eax
and ebp, ebx
mov esi, ebp
mov edx, ebp
mov ecx, ebp
xor eax, ebx
lea eax, [eax + ebp*2]
and ebp, 2
or esi, 0xfd
inc esi
and edx, 0xfffffffd
imul edx, esi
or ecx, 2
imul ecx, ebp
sub edx, ecx
add eax, edx
add al, 0xe1
mov byte [esp + edi + 0xc], al
inc edi
cmp edi, 8
jne 0x409720
mov dword [esp + 0x48], 0x2cc18b8d
mov dword [esp + 0x4c], 0x2923312a
mov dword [esp + 0x50], 0x22cee43c
mov dword [esp + 0x54], 0x3c213d3f
mov dword [esp + 0x58], 0x3c3b2539
mov dword [esp + 0x5c], 0x31f6ef3a
mov dword [esp + 0x60], 0xf6372b37
mov dword [esp + 0x64], 0x3e2a3c38
mov dword [esp + 0x68], 0x424c819b
mov dword [esp + 0x6c], 0x859b4049
mov dword [esp + 0x70], 0x4e46404e
mov dword [esp + 0x74], 0x498e968e
mov dword [esp + 0x78], 0x5d575d59
mov dword [esp + 0x7c], 0x8a535855
mov dword [esp + 0x80], 0xf99a
mov eax, 0xa760b920
mov ebp, 0x189f46df
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax + 0x589f4728]
mov ecx, esi
xor ecx, 0xb3cd94f0
mov edx, esi
or edx, 0xf
and edx, ecx
mov ecx, ebp
and ecx, 0x108d04f0
mov ebx, eax
xor ebx, 0xb3cd94f0
mov edi, eax
or edi, 0x420290f
and edi, ebx
add edi, ecx
mov ebx, edx
not ebx
mov ecx, ebx
and ecx, 0x523ae307
and edx, 0xfffffff8
or edx, ecx
or ebx, esi
and esi, 0xfffffff0
xor edx, esi
xor edx, 0xe1f777f7
not ebx
and ebx, 0xfffffff0
or ebx, edx
xor ebx, edi
mov edx, ebx
lea ecx, [ebx + ebx]
and ecx, 0x7638c4be
neg ecx
add ecx, ebx
add ecx, 0xbb1c625f
and ebx, 0xbb1c625d
and edx, 2
mov esi, edx
xor esi, 2
imul esi, ebx
or ebx, 2
imul ebx, edx
add ebx, esi
mov edx, ebx
and edx, ecx
xor ebx, ecx
lea ecx, [ebx + edx*2]
inc cl
mov byte [esp + eax + 0x589f4728], cl
inc eax
dec ebp
cmp eax, 0xa760b95c
jne 0x409810
mov eax, dword [esp + 0x40]
add dword [esp], eax
mov word [esp + 4], 0xc0d
mov byte [esp + 6], 0x36
mov word [esp + 7], 0
xor edx, edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
and ebx, 0xfffffffc
movzx eax, byte [esp + edi + 4]
mov esi, edi
and esi, 4
mov ecx, edi
and ecx, 2
mov ebp, ecx
xor ebp, 2
imul ebp, esi
or esi, 2
imul esi, ecx
add esi, ebp
neg ebx
lea ecx, [edi + ebx]
add ecx, 0xedb71576
mov ebx, esi
and ebx, ecx
xor esi, ecx
lea ecx, [esi + ebx*2]
xor ecx, eax
mov eax, ecx
and eax, 0x31
xor ecx, 0xb1
lea eax, [ecx + eax*2]
inc al
mov byte [esp + edi + 4], al
inc edi
add edx, 2
cmp edi, 5
jne 0x4098e0
movzx eax, byte [esp + 4]
mov edx, dword [esp]
test al, al
je 0x40995b
lea esi, [esp + 5]
mov edx, dword [esp]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409950
mov byte [edx], 0
mov ebp, dword [esp + 0x44]
movzx eax, byte [ebp + 0x60]
test al, al
mov ecx, dword [esp + 0x9c]
je 0x40998b
lea esi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x409980
mov byte [edx], 0
movzx eax, byte [esp + 0x48]
test al, al
je 0x4099ab
lea esi, [esp + 0x49]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x4099a0
mov byte [edx], 0
movzx eax, byte [ecx]
test al, al
je 0x4099cb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4099c0
mov byte [edx], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x4099eb
lea ecx, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4099e0
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x409a0b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409a00
mov byte [edx], 0
mov ebx, dword [esp + 0xa4]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0xa0]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
add edx, eax
add eax, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, eax
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, ebx
and ecx, 2
add edx, ecx
test bl, 1
je 0x409a57
movzx eax, byte [eax + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x48], 0xf9fffbfd
mov byte [esp + 0x4c], 0xe4
mov dword [esp + 0x4d], 0
mov dword [esp + 0x50], 0
mov ecx, 0xe64467a8
mov edi, 0x57
nop
nop
movzx eax, byte [esp + ecx + 0x19bb98a0]
mov esi, edi
xor esi, ecx
and esi, eax
xor esi, ecx
add esi, 0x60e45209
mov eax, esi
and eax, 1
xor esi, 1
lea eax, [esi + eax*2]
add al, 0xae
mov byte [esp + ecx + 0x19bb98a0], al
inc ecx
dec edi
cmp ecx, 0xe64467b4
jne 0x409a80
mov dword [esp + 0x14], 0x3a391d1f
mov byte [esp + 0x18], 8
mov dword [esp + 0x19], 0
mov eax, 0x5026023f
mov ecx, 0xa04c047e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x86
mov ebx, eax
xor ebx, 0x43
add ebx, esi
add bl, 0xc1
xor bl, byte [esp + eax - 0x5026022b]
add bl, 0xb1
mov byte [esp + eax - 0x5026022b], bl
inc eax
add ecx, 2
cmp eax, 0x50260248
jne 0x409ae0
movzx eax, byte [esp + 0x14]
test al, al
je 0x409b2b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b20
mov byte [edx], 0
movzx eax, byte [ebp + 0x60]
test al, al
je 0x409b4b
lea ecx, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b40
mov byte [edx], 0
movzx eax, byte [esp + 0x48]
test al, al
je 0x409b6b
lea ecx, [esp + 0x49]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409b60
mov byte [edx], 0
sub edx, dword [esp]
mov eax, dword [ebp + 0x80]
mov ecx, eax
and ecx, edx
xor edx, eax
lea eax, [edx + ecx*2]
mov dword [ebp + 0x80], eax
add esp, 0x84
pop esi
pop edi
pop ebx
pop ebp
ret 0x10