Function at 0x409b30
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, 0xc0
mov edi, dword [ebp + 8]
mov dword [esp + 0x84], ecx
add edi, dword [ecx + 0x60]
mov dword [esp + 0x88], 0xb7b8bee3
mov dword [esp + 0x8c], 0x24abbc5
mov dword [esp + 0x90], 0x3e424c28
mov dword [esp + 0x94], 0x433ff116
mov dword [esp + 0x98], 0x33353c40
mov dword [esp + 0x9c], 0x5b54344d
mov dword [esp + 0xa0], 0x50175d17
mov dword [esp + 0xa4], 0x2023572e
mov dword [esp + 0xa8], 0xfefcf850
mov word [esp + 0xac], 0xc9fe
mov dword [esp + 0xae], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x29
ja 0x409c2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x88]
lea edx, [eax + 0x67c7c7fa]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x67c7c7f9
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0x2a
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x88], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x2a
jb 0x409be0
mov dword [esp + 8], 0x33424668
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x409c88
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x4d50f289]
add eax, 0x89
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x41
mov ecx, dword [esp]
mov byte [esp + ecx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x409c50
mov dword [esp + 0x28], 0x888ab6b5
mov dword [esp + 0x2c], 0x848cbaba
mov dword [esp + 0x30], 0x87fcfab5
mov dword [esp + 0x34], 0xfcff84fb
mov dword [esp + 0x38], 0xccff8b88
mov dword [esp + 0x3c], 0x8edd2721
mov dword [esp + 0x40], 0x89f7818c
mov dword [esp + 0x44], 0x90d4ca86
mov dword [esp + 0x48], 0x9e95959b
mov dword [esp + 0x4c], 0x9e979d95
mov dword [esp + 0x50], 0xe12ccb9c
mov dword [esp + 0x54], 0xe49b979b
mov dword [esp + 0x58], 0xdca8dada
mov dword [esp + 0x5c], 0xd0a211f7
mov dword [esp + 0x60], 0x15ffd6ad
mov dword [esp + 0x64], 0xccacaed0
mov dword [esp + 0x68], 0xc904e008
mov dword [esp + 0x6c], 0xbdcbb5b5
mov dword [esp + 0x70], 0xe8c7bec1
mov word [esp + 0x74], 0x2904
mov dword [esp + 0x7a], 0
mov dword [esp + 0x76], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x55
ja 0x409da3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + ecx]
add edx, 0x9a70bab1
add eax, 0xb1
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
mov ecx, eax
xor ecx, 0x28
and eax, 0x28
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x56
jb 0x409d50
mov eax, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x28]
mov edx, edi
test cl, cl
je 0x409dcb
lea esi, [esp + 0x29]
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 0x409dc0
mov byte [edx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x409deb
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 0x409de0
mov byte [edx], 0
movzx eax, byte [esp + 8]
test al, al
je 0x409e0b
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 0x409e00
mov ebx, dword [ebp + 0x10]
mov byte [edx], 0
movzx eax, byte [esp + 0x88]
test al, al
mov dword [esp + 0x80], edi
je 0x409e3b
lea ecx, [esp + 0x89]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409e30
mov byte [edx], 0
mov esi, dword [ebp + 0x14]
mov ecx, esi
shr ecx, 2
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, esi
and eax, 0xfffffffc
lea edi, [edx + eax]
add eax, ebx
mov ebx, esi
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov esi, eax
mov dword [esp + 0x24], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, dword [ebp + 0x14]
xor ecx, 2
and ecx, ebx
je 0x409edc
mov edi, dword [ebp + 0x14]
and edi, 2
mov dword [esp + 0x20], edi
mov esi, ecx
not esi
mov dword [esp + 0x1c], esi
movzx ebx, byte [eax + edi]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov byte [edi + esi], bl
lea ebx, [ecx + ecx]
mov esi, dword [esp + 0x1c]
add esi, ebx
je 0x409edc
add esi, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
movzx ebx, byte [edi + eax + 1]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov byte [edi + eax + 1], bl
mov eax, dword [esp + 0x1c]
cmp esi, ecx
je 0x409edc
mov esi, dword [esp + 0x20]
movzx eax, byte [eax + esi + 2]
mov ecx, dword [esp + 0x24]
mov byte [ecx + esi + 2], al
mov dword [esp + 0x28], 0x4e4f6b6d
mov dword [esp + 0x2c], 0x323e0006
mov dword [esp + 0x30], 0x23f0c0c
mov dword [esp + 0x34], 0xc0109fc
mov dword [esp + 0x38], 0x100f4f9
mov dword [esp + 0x3c], 0x9d9bc4f1
mov word [esp + 0x40], 0x9395
mov byte [esp + 0x42], 0x9a
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x21
ja 0x409f85
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x28]
lea esi, [eax - 0x36e99e10]
and esi, ecx
add eax, ecx
add eax, 0xc91661f0
add esi, esi
sub eax, esi
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
add al, 0x70
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x22
jb 0x409f40
add edx, dword [ebp + 0x14]
movzx eax, byte [esp + 0x28]
test al, al
mov esi, dword [esp + 0x80]
je 0x409fab
lea ecx, [esp + 0x29]
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x409fa0
mov byte [edx], 0
sub edx, esi
mov eax, dword [esp + 0x84]
add dword [eax + 0x60], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10