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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe4
xor eax, eax
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x34], 0x42646155
mov ecx, 0x3d090c
mov dword [ebp - 0x30], 0x23583c32
mov dword [ebp - 0x2c], 0x55444343
mov dword [ebp - 0x28], 0x5e51772b
mov byte [ebp - 0x24], 0
mov dword [ebp - 0x68], 0x65006b
mov dword [ebp - 0x64], 0x6e0072
mov dword [ebp - 0x60], 0x6c0065
mov dword [ebp - 0x5c], 0x320033
mov dword [ebp - 0x58], 0x64002e
mov dword [ebp - 0x54], 0x6c006c
mov word [ebp - 0x50], ax
xor eax, eax
mov byte [ebp + eax - 0xe4], al
inc eax
cmp eax, 0x6a
jb 0x401083
dec ecx
jne 0x401081
cmp byte [ebp - 0xb4], 0x30
push ebx
push esi
push edi
jne 0x4010ab
lea ecx, [ebp - 0x68]
call fcn.00401500
mov esi, eax
jmp 0x4010ae
mov esi, dword [ebp - 0x44]
mov edx, 0xe3142
mov ecx, esi
call fcn.004015d0
mov ebx, eax
mov edx, 0xd5786
mov ecx, esi
mov dword [ebp - 0x18], ebx
call fcn.004015d0
mov edx, 0x348bfa
mov dword [ebp - 0x74], eax
mov ecx, esi
call fcn.004015d0
push 4
push 0x3000
push 0x51000
push 0
mov dword [ebp - 0x40], eax
call ebx
movsx edx, byte [ebp - 0x8c]
mov esi, eax
movsx ecx, byte [ebp - 0xe4]
xor ebx, ebx
imul edx, ecx
mov edi, esi
mov dword [ebp - 0xc], esi
imul eax, edx, 0x16
mov dword [ebp - 4], eax
mov eax, section.8_tdca
sub eax, esi
mov dword [ebp - 0x38], eax
mov eax, 1
sub eax, esi
mov dword [ebp - 0x10], eax
mov eax, 0x608001
sub eax, esi
mov dword [ebp - 0x1c], eax
mov eax, 2
sub eax, esi
mov dword [ebp - 0x14], eax
mov eax, 0x608002
sub eax, esi
mov dword [ebp - 8], eax
mov eax, 3
sub eax, esi
mov dword [ebp - 0x78], eax
mov eax, 0x608003
sub eax, esi
mov dword [ebp - 0x6c], eax
mov eax, 4
sub eax, esi
mov dword [ebp - 0x70], eax
mov eax, 0x608004
sub eax, esi
mov dword [ebp - 0x3c], eax
mov eax, 5
sub eax, esi
mov dword [ebp - 0x48], eax
mov eax, 0x608005
sub eax, esi
mov esi, dword [ebp - 4]
mov dword [ebp - 0x20], eax
mov edi, edi
mov eax, 0xf0f0f0f1
mul ebx
mov eax, esi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x38]
add eax, ebx
movzx eax, byte [ebp + eax - 0x34]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x10]
mov byte [edi], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + edi]
mul ecx
mov eax, esi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x1c]
add eax, ebx
movzx eax, byte [ebp + eax - 0x33]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x14]
mov byte [edi + 1], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + edi]
mul ecx
mov eax, esi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 8]
add eax, ebx
movzx eax, byte [ebp + eax - 0x32]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x78]
mov byte [edi + 2], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + edi]
mul ecx
mov eax, esi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x6c]
add eax, ebx
movzx eax, byte [ebp + eax - 0x31]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x70]
mov byte [edi + 3], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + edi]
mul ecx
mov eax, esi
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
sub eax, ecx
mov ecx, dword [ebp - 0x3c]
add eax, ebx
movzx eax, byte [ebp + eax - 0x30]
xor al, byte [ecx + edi]
mov ecx, dword [ebp - 0x48]
mov byte [edi + 4], al
mov eax, 0xf0f0f0f1
lea ecx, [ecx + edi]
mul ecx
shr edx, 4
mov ecx, edx
shl ecx, 4
add ecx, edx
mov eax, esi
lea edi, [edi + 6]
sub eax, ecx
mov ecx, dword [ebp - 0x20]
add eax, ebx
add ebx, 6
movzx eax, byte [ebp + eax - 0x2f]
xor al, byte [ecx + edi - 6]
mov byte [edi - 1], al
cmp ebx, 0x51000
jb 0x401180
mov esi, dword [ebp - 0xc]
mov eax, dword [esi + 0x3c]
mov ecx, dword [eax + esi + 0x50]
movsx eax, byte [ebp - 0xdc]
shl eax, 3
push eax
push 0x3000
push ecx
push 0
call dword [ebp - 0x18]
mov edi, eax
mov dword [ebp - 0x10], edi
test edi, edi
je 0x4014d1
mov edx, dword [esi + 0x3c]
add edx, esi
mov dword [ebp - 0x1c], edx
movzx eax, word [edx + 0x14]
lea ecx, [edx + 0x18]
mov ebx, dword [edx + 0x54]
add ecx, eax
mov eax, edi
mov dword [ebp - 0x20], ecx
sub eax, dword [edx + 0x34]
mov dword [ebp - 0x3c], eax
mov dword [edx + 0x34], edi
test ebx, ebx
je 0x401302
mov eax, esi
mov ecx, edi
sub eax, edi
mov dword [ebp - 0x18], eax
mov edi, eax
lea esp, [esp]
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
dec ebx
jne 0x4012f0
mov edi, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x20]
mov eax, dword [edx + 0xa0]
mov dword [ebp - 0x18], eax
mov eax, dword [edx + 0xa4]
mov dword [ebp - 0x14], eax
mov eax, dword [edx + 0x80]
mov dword [ebp - 0x20], eax
mov eax, dword [edx + 0x84]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 8], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x38], eax
cmp ax, word [edx + 6]
jae 0x4014d1
lea ebx, [ecx + 0xc]
mov edi, edi
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x18]
cmp edx, ecx
jb 0x401358
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x401358
lea eax, [ebx - 0xc]
mov dword [ebp - 8], eax
mov edx, dword [ebp - 0x20]
cmp edx, ecx
jb 0x40136e
mov eax, dword [ebx - 4]
add eax, ecx
cmp edx, eax
jae 0x40136e
lea eax, [ebx - 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
add ecx, edi
mov edx, dword [ebx + 4]
add eax, esi
mov dword [ebp - 0x48], eax
test edx, edx
je 0x401392
mov edi, eax
sub edi, ecx
mov al, byte [edi + ecx]
lea ecx, [ecx + 1]
mov byte [ecx - 1], al
dec edx
jne 0x401383
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 0x1c]
add ebx, 0x28
mov ecx, dword [ebp - 0x38]
inc ecx
mov dword [ebp - 0x38], ecx
movzx eax, word [eax + 6]
cmp ecx, eax
jl 0x401340
mov eax, dword [ebp - 4]
test eax, eax
je 0x4014d1
xor edx, edx
cmp dword [ebp - 0x14], edx
jbe 0x401413
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x14]
jmp 0x4013c4
mov esi, dword [ebp - 0xc]
mov ebx, dword [eax + 0x14]
add ebx, edx
add edx, 8
add ebx, esi
mov esi, dword [ebx + 4]
sub esi, 8
shr esi, 1
je 0x40140f
mov ecx, dword [ebp - 0xc]
jmp 0x4013e0
mov eax, dword [eax + 0x14]
add eax, edx
add edx, 2
movzx eax, word [eax + ecx]
test eax, 0xf000
je 0x401406
and eax, 0xfff
add eax, dword [ebx]
mov ecx, dword [eax + edi]
add ecx, dword [ebp - 0x3c]
mov dword [eax + edi], ecx
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
dec esi
jne 0x4013e0
mov ecx, dword [ebp - 0x14]
cmp edx, ecx
jb 0x4013c1
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebx + 0x80]
add esi, edi
je 0x4014d1
add esi, 0xc
mov dword [ebp - 4], esi
cmp dword [esi], 0
je 0x401480
nop
mov eax, dword [esi]
add eax, edi
push eax
call dword [ebp - 0x74]
mov ebx, eax
test ebx, ebx
je 0x4014d1
mov esi, dword [esi + 4]
add esi, edi
cmp dword [esi], 0
je 0x40146f
lea esp, [esp]
mov eax, dword [esi]
test eax, eax
jns 0x40145b
movzx eax, ax
jmp 0x401460
add eax, 2
add eax, edi
push eax
push ebx
call dword [ebp - 0x40]
mov dword [esi], eax
add esi, 4
cmp dword [esi], 0
jne 0x401450
mov esi, dword [ebp - 4]
add esi, 0x14
mov dword [ebp - 4], esi
cmp dword [esi], 0
jne 0x401430
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ecx + 0x3c]
cmp dword [eax + ecx + 0xc0], 0
je 0x4014b6
mov eax, dword [ebx + 0xc0]
mov esi, dword [eax + edi + 0xc]
mov eax, dword [esi]
test eax, eax
je 0x4014b6
mov edi, ecx
push 0
push 1
push edi
call eax
mov eax, dword [esi + 4]
lea esi, [esi + 4]
test eax, eax
jne 0x4014a2
mov edi, dword [ebp - 0x10]
mov eax, dword [ebx + 0x28]
push 0
push 1
push dword [ebp - 0x44]
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