Function at 0x409ce0
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, 0xb8
mov edi, dword [ebp + 8]
mov dword [esp + 0x7c], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x80], 0x7787e53
mov dword [esp + 0x84], 0xb20a7b75
mov dword [esp + 0x88], 0x7e720c68
mov dword [esp + 0x8c], 0x137fa146
mov dword [esp + 0x90], 0x63657c10
mov dword [esp + 0x94], 0x1b64646d
mov dword [esp + 0x98], 0x60a71da7
mov dword [esp + 0x9c], 0x5053676e
mov dword [esp + 0xa0], 0xbebcb820
mov word [esp + 0xa4], 0xa9be
mov dword [esp + 0xa6], 0
mov word [esp + 0xaa], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x2b
ja 0x409ddf
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x80]
lea edx, [eax + 0x17d645c2]
lea esi, [eax + 0xc2]
or edx, esi
and esi, ecx
and edx, ecx
add edx, esi
add eax, ecx
add eax, 0x17d645c2
sub eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xb2
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x80], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2c
jb 0x409d90
mov dword [esp + 8], 0xdbd0ccfa
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov word [esp + 0x14], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x409e52
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x1c]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x8e17b41c
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
mov ecx, eax
xor ecx, 0x3b
and eax, 0x3b
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x409e10
mov dword [esp + 0x20], 0x7c724641
mov dword [esp + 0x24], 0x7070424a
mov dword [esp + 0x28], 0x77087241
mov dword [esp + 0x2c], 0x686f680b
mov dword [esp + 0x30], 0x506f1314
mov dword [esp + 0x34], 0x1e4187b5
mov dword [esp + 0x38], 0x1d671518
mov dword [esp + 0x3c], 0x5c786216
mov dword [esp + 0x40], 0x2e21212b
mov dword [esp + 0x44], 0x2e572159
mov dword [esp + 0x48], 0x55986328
mov dword [esp + 0x4c], 0x7033372b
mov dword [esp + 0x50], 0x403c424a
mov dword [esp + 0x54], 0x4c3a8d67
mov dword [esp + 0x58], 0x896f4639
mov dword [esp + 0x5c], 0xb8c0be44
mov dword [esp + 0x60], 0xbd709474
mov dword [esp + 0x64], 0xc9b3c9b9
mov dword [esp + 0x68], 0x9cb7cebd
mov word [esp + 0x6c], 0x4578
mov byte [esp + 0x76], 0
mov dword [esp + 0x72], 0
mov dword [esp + 0x6e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x56
ja 0x409f63
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
lea edx, [eax - 0x5975b2bd]
add eax, 0x43
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
mov ecx, eax
or ecx, 0x2a
and eax, 0x2a
add eax, ecx
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x57
jb 0x409f20
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x20]
mov edx, edi
test cl, cl
je 0x409f8b
lea esi, [esp + 0x21]
mov edx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409f80
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409fab
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x409fa0
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x409fcb
lea ecx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409fc0
mov ebx, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
mov byte [edx], 0
movzx ecx, byte [esp + 0x80]
test cl, cl
mov dword [esp + 0x1c], edi
je 0x409ffb
lea eax, [esp + 0x81]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x409ff0
mov byte [edx], 0
mov ecx, ebx
shr ecx, 2
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
not eax
or eax, 0xfffffffc
add eax, ebx
mov ecx, esi
lea esi, [edx + eax]
inc esi
mov eax, ebx
and eax, 0xfffffffc
add eax, ecx
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov ebx, eax
mov edi, esi
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, dword [ebp + 0x14]
test bl, 1
je 0x40a047
mov ecx, ebx
and ecx, 2
movzx eax, byte [eax + ecx]
mov byte [esi + ecx], al
mov dword [esp + 0x20], 0xd8e7cbc5
mov dword [esp + 0x24], 0xa4a0928c
mov dword [esp + 0x28], 0x9ca7968a
mov dword [esp + 0x2c], 0x82918592
mov dword [esp + 0x30], 0x8d929e99
mov dword [esp + 0x34], 0xe1ebce81
mov word [esp + 0x38], 0xe3ed
mov byte [esp + 0x3a], 0xfc
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x21
ja 0x40a117
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edi, byte [esp + eax + 0x20]
lea eax, [esi - 0x11bc3323]
lea ecx, [esi + edi]
add ecx, 0xee43ccdd
add esi, 0xdd
and esi, edi
and eax, edi
add eax, esi
mov esi, eax
xor esi, ecx
not eax
and eax, ecx
add eax, eax
sub eax, esi
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
mov ecx, eax
xor ecx, 0xf4
and eax, 0x74
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x22
jb 0x40a0b0
add edx, ebx
movzx eax, byte [esp + 0x20]
test al, al
je 0x40a13d
lea ecx, [esp + 0x21]
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a130
jmp 0x40a141
mov esi, dword [esp + 0x1c]
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0x7c]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10