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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0x2c], 0x26516370
mov ecx, 0x3d0924
mov dword [ebp - 0x28], 0x53556e4b
mov dword [ebp - 0x24], 0x59303773
mov dword [ebp - 0x20], 0x61553449
mov byte [ebp - 0x1c], 0
mov dword [ebp - 0x64], 0x65006b
mov dword [ebp - 0x60], 0x6e0072
mov dword [ebp - 0x5c], 0x6c0065
mov dword [ebp - 0x58], 0x320033
mov dword [ebp - 0x54], 0x64002e
mov dword [ebp - 0x50], 0x6c006c
mov word [ebp - 0x4c], ax
xor eax, eax
mov byte [ebp + eax - 0xd8], al
inc eax
cmp eax, 0x72
jb 0x401083
dec ecx
jne 0x401081
cmp byte [ebp - 0x97], 0x41
push ebx
push esi
push edi
jne 0x4010ab
lea ecx, [ebp - 0x64]
call fcn.004014e0
mov esi, eax
jmp 0x4010ae
mov esi, dword [ebp - 0x3c]
mov edx, 0xec122
mov ecx, esi
call fcn.004015b0
mov ebx, eax
mov edx, 0xf54a6
mov ecx, esi
mov dword [ebp - 0xc], ebx
call fcn.004015b0
mov edx, 0x3aca7a
mov dword [ebp - 0x3c], eax
mov ecx, esi
call fcn.004015b0
push 4
push 0x3000
push 0x12600
push 0
mov dword [ebp - 0x48], eax
call ebx
movsx ecx, byte [ebp - 0x7f]
mov ebx, eax
xor ecx, 0x3e5
mov dword [ebp - 0x18], ebx
mov eax, 0x3bd
xor edi, edi
sub eax, ecx
mov esi, ebx
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x40], eax
mov eax, ecx
sub eax, ebx
mov dword [ebp - 8], eax
mov eax, 1
sub eax, ebx
mov dword [ebp - 0x30], eax
mov eax, 2
sub eax, ebx
mov dword [ebp - 0x10], eax
mov eax, 3
sub eax, ebx
mov dword [ebp - 0x34], eax
mov eax, 4
sub eax, ebx
mov dword [ebp - 0x38], eax
mov eax, 5
sub eax, ebx
mov ebx, dword [ebp - 0x40]
mov dword [ebp - 0x14], eax
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
nop
mov eax, 0xf0f0f0f1
mul edi
mov eax, edi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 8]
imul eax, ebx
movzx eax, byte [ebp + eax - 0x2c]
xor al, byte [ecx + esi]
mov ecx, dword [ebp - 0x30]
mov byte [esi], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + esi]
mul ecx
mov ecx, edi
shr edx, 4
mov eax, edx
shl eax, 4
add eax, edx
sub ecx, eax
inc ecx
imul ecx, ebx
movzx eax, byte [ebp + ecx - 0x2c]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edi - 1]
mov ecx, dword [ebp - 0x10]
mov byte [esi + 1], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + esi]
mul ecx
mov ecx, edi
shr edx, 4
mov eax, edx
shl eax, 4
add eax, edx
sub ecx, eax
add ecx, 2
imul ecx, ebx
movzx eax, byte [ebp + ecx - 0x2c]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x34]
mov byte [esi + 2], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + esi]
mul ecx
mov ecx, edi
shr edx, 4
mov eax, edx
shl eax, 4
add eax, edx
sub ecx, eax
add ecx, 3
imul ecx, ebx
movzx eax, byte [ebp + ecx - 0x2c]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edi + 1]
mov ecx, dword [ebp - 0x38]
mov byte [esi + 3], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + esi]
mul ecx
mov ecx, edi
shr edx, 4
mov eax, edx
shl eax, 4
add eax, edx
sub ecx, eax
add ecx, 4
imul ecx, ebx
movzx eax, byte [ebp + ecx - 0x2c]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edi + 2]
mov ecx, dword [ebp - 0x14]
mov byte [esi + 4], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + esi]
mul ecx
shr edx, 4
lea esi, [esi + 6]
mov eax, edx
mov ecx, edi
shl eax, 4
add eax, edx
sub ecx, eax
add ecx, 5
imul ecx, ebx
movzx eax, byte [ebp + ecx - 0x2c]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edi + 3]
add edi, 6
mov byte [esi - 1], al
cmp edi, 0x12600
jb 0x401150
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebx + 0x3c]
add esi, ebx
mov dword [ebp - 0x10], esi
movzx eax, word [esi + 0x14]
mov ecx, dword [esi + 0x50]
add eax, 0x18
add eax, esi
mov dword [ebp - 0x14], eax
movsx eax, byte [ebp - 0xd0]
shl eax, 3
push eax
push 0x3000
lea eax, [ecx + 0x1c9c380]
push eax
push 0
call dword [ebp - 0xc]
mov edi, eax
test edi, edi
je 0x4014ad
sub eax, dword [esi + 0x34]
mov edx, dword [esi + 0x54]
mov dword [ebp - 0x34], eax
mov dword [esi + 0x34], edi
test edx, edx
je 0x4012df
mov ecx, edi
sub ebx, edi
jmp 0x4012d0
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
dec edx
jne 0x4012d0
mov ebx, dword [ebp - 0x18]
mov eax, dword [esi + 0xa4]
mov edx, dword [esi + 0xa0]
mov dword [ebp - 8], eax
mov eax, dword [esi + 0x80]
mov dword [ebp - 0xc], eax
mov eax, dword [esi + 0x84]
mov dword [ebp - 0x40], eax
xor eax, eax
mov dword [ebp - 0x38], edx
mov dword [ebp - 4], 0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x30], eax
cmp ax, word [esi + 6]
jae 0x4014ad
mov esi, dword [ebp - 0x14]
add esi, 0xc
mov ecx, dword [esi]
cmp edx, ecx
jb 0x401337
mov eax, dword [esi - 4]
add eax, ecx
cmp edx, eax
jae 0x401337
lea eax, [esi - 0xc]
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0xc]
cmp edx, ecx
jb 0x40134d
mov eax, dword [esi - 4]
add eax, ecx
cmp edx, eax
jae 0x40134d
lea eax, [esi - 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 8]
add ecx, edi
mov edx, dword [esi + 4]
add eax, ebx
mov dword [ebp - 0x14], eax
test edx, edx
je 0x401371
mov ebx, eax
sub ebx, ecx
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
dec edx
jne 0x401362
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add esi, 0x28
mov edx, dword [ebp - 0x30]
inc edx
mov dword [ebp - 0x30], edx
movzx eax, word [ecx + 6]
cmp edx, eax
mov edx, dword [ebp - 0x38]
jl 0x401322
mov eax, dword [ebp - 0x40]
test eax, eax
je 0x4014ad
xor edx, edx
cmp dword [ebp - 8], edx
jbe 0x4013f0
mov eax, dword [ebp - 4]
mov edi, edi
lea ecx, [edx + ebx]
add edx, 8
add ecx, dword [eax + 0x14]
mov dword [ebp - 0xc], ecx
mov esi, dword [ecx + 4]
sub esi, 8
shr esi, 1
je 0x4013e8
lea eax, [edx + ebx]
mov ebx, dword [ebp - 4]
add edx, 2
add eax, dword [ebx + 0x14]
mov ebx, dword [ebp - 0x18]
movzx eax, word [eax]
test eax, 0xf000
je 0x4013e2
and eax, 0xfff
add eax, dword [ecx]
mov ecx, dword [eax + edi]
add ecx, dword [ebp - 0x34]
mov dword [eax + edi], ecx
mov ecx, dword [ebp - 0xc]
dec esi
jne 0x4013b6
mov eax, dword [ebp - 4]
cmp edx, dword [ebp - 8]
jb 0x4013a0
mov ecx, dword [ebp - 0x10]
mov esi, dword [ecx + 0x80]
add esi, edi
je 0x4014ad
add esi, 0xc
mov dword [ebp - 8], esi
cmp dword [esi], 0
je 0x401463
lea esp, [esp]
mov eax, dword [esi]
add eax, edi
push eax
call dword [ebp - 0x3c]
mov ebx, eax
test ebx, ebx
je 0x4014ad
mov esi, dword [esi + 4]
add esi, edi
cmp dword [esi], 0
je 0x40144f
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
jns 0x40143b
movzx eax, ax
jmp 0x401440
add eax, 2
add eax, edi
push eax
push ebx
call dword [ebp - 0x48]
mov dword [esi], eax
add esi, 4
cmp dword [esi], 0
jne 0x401430
mov esi, dword [ebp - 8]
add esi, 0x14
mov dword [ebp - 8], esi
cmp dword [esi], 0
jne 0x401410
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x3c]
cmp dword [ebx + eax + 0xc0], 0
je 0x401491
mov eax, dword [ecx + 0xc0]
mov esi, dword [eax + edi + 0xc]
mov eax, dword [esi]
test eax, eax
je 0x401491
push 0
push 1
push ebx
call eax
mov eax, dword [esi + 4]
lea esi, [esi + 4]
test eax, eax
jne 0x401480
mov eax, dword [ebp - 0x10]
push 0
push 1
push edi
mov eax, dword [eax + 0x28]
add eax, edi
call eax
neg eax
sbb eax, eax
and eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret