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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov dword [esp + 0x40], ecx
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x14], 0x5b5c5a8f
mov dword [esp + 0x18], 0x9e565fa9
mov dword [esp + 0x1c], 0xa25648b4
mov dword [esp + 0x20], 0x6f9be58a
mov dword [esp + 0x24], 0x6799986c
mov dword [esp + 0x28], 0x67609861
mov dword [esp + 0x2c], 0x64ab79a3
mov dword [esp + 0x30], 0x8c8f6b92
mov dword [esp + 0x34], 0xd2d0d47c
mov word [esp + 0x38], 0xedd2
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
lea edi, [esp + 0x14]
mov ebp, 0xad
nop
nop
movzx eax, byte [edi]
mov esi, eax
not esi
mov ebx, esi
and ebx, 0xb8
or esi, 0x47
add esi, eax
inc esi
or esi, ebx
mov ebx, ebp
and ebx, 0xb8
lea eax, [ebp - 0x80]
and eax, 0x47
or eax, ebx
xor eax, esi
xor al, 0x47
add al, 0x66
mov byte [edi], al
inc edi
dec ebp
cmp ebp, 0x81
jne 0x409ec0
mov dword [esp + 0xc], 0xd1c4c02e
mov word [esp + 0x10], 0
mov esi, 0xa868b4ad
nop
nop
nop
movzx eax, byte [esp + esi + 0x57974b5f]
mov ebx, eax
and ebx, esi
add bl, bl
sub al, bl
movzx eax, al
add eax, esi
add al, 0x9f
mov byte [esp + esi + 0x57974b5f], al
inc esi
cmp esi, 0xa868b4b3
jne 0x409f10
mov dword [esp + 0x44], 0x68578d8f
mov dword [esp + 0x48], 0x574d5b6a
mov dword [esp + 0x4c], 0x566e9058
mov dword [esp + 0x50], 0x505f5f5d
mov dword [esp + 0x54], 0x585d575b
mov dword [esp + 0x58], 0x5f96715a
mov dword [esp + 0x5c], 0x82414d45
mov dword [esp + 0x60], 0x5242505c
mov dword [esp + 0x64], 0x56489b79
mov dword [esp + 0x68], 0x6b85ac4b
mov dword [esp + 0x6c], 0xaab6b4ae
mov dword [esp + 0x70], 0xa76e8a6e
mov dword [esp + 0x74], 0xbba1bfbb
mov dword [esp + 0x78], 0x96bda4a7
mov dword [esp + 0x7c], 0x537a
xor esi, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + esi + 0x44]
lea ebp, [esi + esi]
mov ebx, ebp
and ebx, 0x36
mov edi, esi
xor edi, 0x3f71355b
add edi, ebx
mov ebx, edi
and ebx, eax
mov edx, ebx
and edx, 0xfffffffd
mov ecx, ebx
and ecx, 2
or ebx, 2
imul ebx, ecx
xor ecx, 2
imul ecx, edx
add ebx, ecx
add edi, eax
mov eax, edi
not eax
and eax, ebx
not ebx
and ebx, edi
sub ebx, eax
add bl, 0x39
mov byte [esp + esi + 0x44], bl
and ebp, 2
mov eax, ebp
and eax, esi
xor ebp, esi
xor ebp, 1
lea esi, [eax*2]
add esi, ebp
cmp esi, 0x3c
jb 0x409fc0
mov edi, dword [esp + 0x94]
add edi, dword [esp]
mov word [esp + 4], 0x1415
mov byte [esp + 6], 0xce
mov word [esp + 7], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea eax, [edx + 2]
mov ecx, 1
sub ecx, edx
and ecx, 1
and eax, 0xe
or eax, ecx
xor al, byte [esp + edx + 4]
xor al, 0xb1
add al, 0x86
mov byte [esp + edx + 4], al
mov eax, edx
and eax, 1
xor edx, 1
lea edx, [edx + eax*2]
cmp edx, 5
jb 0x40a050
movzx eax, byte [esp + 4]
mov edx, edi
test al, al
mov ebp, dword [esp + 0x40]
je 0x40a0ab
lea esi, [esp + 5]
mov edx, edi
nop
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 0x40a0a0
mov byte [edx], 0
movzx eax, byte [ebp + 0x60]
test al, al
mov ecx, dword [esp + 0x98]
je 0x40a0cb
lea esi, [ebp + 0x61]
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40a0c0
mov byte [edx], 0
movzx eax, byte [esp + 0x44]
test al, al
je 0x40a0eb
lea esi, [esp + 0x45]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [esi]
inc esi
test al, al
jne 0x40a0e0
mov byte [edx], 0
movzx eax, byte [ecx]
test al, al
je 0x40a10b
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 0x40a100
mov byte [edx], 0
movzx eax, byte [esp + 0xc]
test al, al
je 0x40a12b
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 0x40a120
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
mov dword [esp], edi
je 0x40a14b
lea ecx, [esp + 0x15]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a140
mov byte [edx], 0
mov ebx, dword [esp + 0xa0]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0x9c]
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 0x40a197
movzx eax, byte [eax + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], 0xebe1e5e3
mov byte [esp + 0x18], 0xf0
mov word [esp + 0x19], 0
mov byte [esp + 0x1b], 0
xor edi, edi
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x14]
lea esi, [edi - 0x524b92ab]
and esi, eax
add esi, esi
neg esi
add esi, edi
add esi, 0xadb46d55
add esi, eax
mov ebx, 0xa9
sub ebx, esi
or ebx, 1
mov eax, esi
or eax, 1
add eax, esi
add eax, ebx
add al, 0xad
mov byte [esp + edi + 0x14], al
mov eax, edi
xor ecx, 1
add ecx, edi
and edi, 1
and eax, 6
sub ecx, eax
add ecx, edi
mov edi, ecx
cmp ecx, 8
jb 0x40a1c0
mov dword [esp + 0x44], 0x2a294557
mov byte [esp + 0x48], 0x58
mov dword [esp + 0x49], 0
mov byte [esp + 0x4d], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
and eax, 0xd
mov esi, ecx
and esi, 2
mov edi, ecx
or edi, 2
imul edi, esi
xor esi, 2
imul esi, eax
mov eax, ecx
xor eax, 0xef
add eax, edi
add eax, esi
xor al, byte [esp + ecx + 0x44]
add al, 0x55
mov byte [esp + ecx + 0x44], al
inc ecx
cmp ecx, 0xa
jne 0x40a230
movzx eax, byte [esp + 0x44]
test al, al
je 0x40a28d
lea ecx, [esp + 0x45]
mov esi, dword [esp]
nop
nop
nop
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 0x40a280
jmp 0x40a290
mov esi, dword [esp]
mov byte [edx], 0
movzx eax, byte [ebp + 0x60]
test al, al
je 0x40a2ab
lea ecx, [ebp + 0x61]
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40a2a0
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x40a2cb
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 0x40a2c0
mov byte [edx], 0
sub edx, esi
add dword [ebp + 0x80], edx
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 0x10