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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x80
mov eax, dword [ecx + 0x80]
mov dword [esp], eax
mov dword [esp + 0x14], 0xede8ea01
mov dword [esp + 0x18], 0x2eeaede3
mov dword [esp + 0x1c], 0xeae2dc08
mov dword [esp + 0x20], 0xe1f1371e
mov dword [esp + 0x24], 0x110f0ce0
mov dword [esp + 0x28], 0x191c141b
mov dword [esp + 0x2c], 0x10d12bdd
mov dword [esp + 0x30], 0x1d1906
mov dword [esp + 0x34], 0xaaa4a810
mov word [esp + 0x38], 0xbfa6
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edi + 0x14]
lea ebx, [edi + 0x681803ef]
xor ebx, eax
mov eax, ebx
and eax, 1
or ebx, 1
add ebx, eax
add bl, 0x54
mov byte [esp + edi + 0x14], bl
mov eax, edi
and eax, 1
xor edi, 1
lea edi, [edi + eax*2]
cmp edi, 0x2c
jb 0x409960
mov dword [esp + 0xc], 0x33484452
mov byte [esp + 0x10], 0
xor ebx, ebx
nop
nop
nop
mov eax, ebx
add al, 0x8c
xor al, byte [esp + ebx + 0xc]
add al, 0x44
mov byte [esp + ebx + 0xc], al
inc ebx
cmp ebx, 5
jne 0x4099a0
mov dword [esp + 0x40], 0x44b1fbe5
mov dword [esp + 0x44], 0x4953414a
mov dword [esp + 0x48], 0x52b68c44
mov dword [esp + 0x4c], 0x74717577
mov dword [esp + 0x50], 0x746b7d69
mov dword [esp + 0x54], 0x61aeb77a
mov dword [esp + 0x58], 0xbe7f7b7f
mov dword [esp + 0x5c], 0x766a7478
mov dword [esp + 0x60], 0x7264b1ab
mov dword [esp + 0x64], 0xbd9b7069
mov dword [esp + 0x68], 0x766e7076
mov dword [esp + 0x6c], 0x89465e46
mov dword [esp + 0x70], 0x958f9589
mov dword [esp + 0x74], 0x6a83988d
mov word [esp + 0x78], 0x294a
mov dword [esp + 0x7a], 0
mov word [esp + 0x7e], 0
lea edi, [esp + 0x40]
mov ebp, 0x41829a2b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi]
mov esi, ebp
or esi, eax
lea ebx, [ebp - 0x41829a00]
and ebx, eax
lea eax, [esi + esi]
not eax
add eax, esi
mov esi, eax
xor esi, ebx
not ebx
and ebx, eax
add esi, eax
sub esi, ebx
mov eax, esi
not eax
and eax, 0xf37173bc
and esi, 0xc8e8c43
sub esi, eax
lea ebx, [esi + 0x97]
mov eax, 0xc5018968
sub eax, esi
or eax, 1
add esi, eax
add esi, 0x3afe7698
mov eax, esi
and eax, 0xfd
mov edx, esi
and edx, 2
or esi, 2
imul esi, edx
xor edx, 2
imul edx, eax
xor ebx, 1
add ebx, esi
add ebx, edx
mov byte [edi], bl
inc edi
dec ebp
cmp ebp, 0x418299eb
jne 0x409a50
mov esi, dword [esp + 0x94]
add esi, dword [esp]
mov word [esp + 4], 0x405
mov byte [esp + 6], 0x32
mov dword [esp + 7], 0
mov edx, 0x23425774
mov edi, 0x5cbda88b
mov ebp, ecx
movzx eax, byte [esp + edx - 0x23425770]
mov ebx, eax
xor ebx, edx
or ebx, edi
add bl, bl
add bl, al
movzx eax, bl
add eax, edx
add al, 0xbe
mov byte [esp + edx - 0x23425770], al
inc edx
dec edi
cmp edx, 0x2342577b
jne 0x409af0
movzx ebx, byte [esp + 4]
mov dword [esp], esi
mov edx, esi
test bl, bl
je 0x409b3b
lea esi, [esp + 5]
mov edx, dword [esp]
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409b30
mov byte [edx], 0
movzx ebx, byte [ebp + 0x60]
test bl, bl
mov eax, dword [esp + 0x98]
je 0x409b5b
lea esi, [ebp + 0x61]
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409b50
mov byte [edx], 0
movzx ebx, byte [esp + 0x40]
test bl, bl
je 0x409b7b
lea esi, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x409b70
mov byte [edx], 0
movzx ebx, byte [eax]
test bl, bl
je 0x409b9b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], bl
inc edx
movzx ebx, byte [eax]
inc eax
test bl, bl
jne 0x409b90
mov byte [edx], 0
movzx ecx, byte [esp + 0xc]
test cl, cl
je 0x409bbb
lea esi, [esp + 0xd]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409bb0
mov byte [edx], 0
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x409bdb
lea esi, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409bd0
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 ebx, 0xfffffffc
add edx, ebx
add ebx, esi
mov ecx, eax
mov esi, eax
shr ecx, 1
and ecx, 1
mov eax, ebx
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov ecx, esi
mov eax, esi
and eax, 2
add edx, eax
test cl, 1
je 0x409c29
movzx eax, byte [ebx + eax]
mov byte [edx], al
inc edx
mov dword [esp + 0x40], 0xc9c7cbc5
mov byte [esp + 0x44], 0x2c
mov dword [esp + 0x45], 0
mov word [esp + 0x49], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x4c
xor al, byte [esp + ecx + 0x40]
add al, 0x84
mov byte [esp + ecx + 0x40], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 0xb
jb 0x409c50
mov dword [esp + 0x14], 0x2032f2d
mov byte [esp + 0x18], 0x34
mov dword [esp + 0x19], 0
mov word [esp + 0x1d], 0
xor ecx, ecx
nop
nop
nop
nop
mov eax, ecx
add al, 0xf6
xor al, byte [esp + ecx + 0x14]
add al, 0x32
mov byte [esp + ecx + 0x14], al
inc ecx
cmp ecx, 0xb
jne 0x409c90
movzx ecx, byte [esp + 0x14]
test cl, cl
je 0x409ccb
lea esi, [esp + 0x15]
nop
nop
nop
nop
nop
nop
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 0x409cc0
mov byte [edx], 0
movzx ecx, byte [ebp + 0x60]
test cl, cl
je 0x409ceb
lea esi, [ebp + 0x61]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409ce0
mov byte [edx], 0
movzx ecx, byte [esp + 0x40]
test cl, cl
je 0x409d0b
lea esi, [esp + 0x41]
nop
nop
nop
nop
nop
mov byte [edx], cl
inc edx
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x409d00
mov byte [edx], 0
sub edx, dword [esp]
add dword [ebp + 0x80], edx
add esp, 0x80
pop esi
pop edi
pop ebx
pop ebp
ret 0x10