Function at 0x601cc0
Capabilities:
Encode data using xor
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov ebx, ecx
call fcn.006023c0
push 0x138
call fcn.006df8c3
mov edi, eax
add esp, 4
mov dword [ebp - 4], edi
test edi, edi
je 0x601cfa
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
jmp 0x601cfc
xor edi, edi
mov dword [ebx + 0x14], edi
mov eax, dword [edi]
test eax, eax
je 0x601d14
push eax
call fcn.006dfeff
add esp, 4
mov dword [edi], 0
mov esi, dword [ebp + 8]
push 0x7062c4
mov dword [edi + 4], 0
mov dword [edi + 8], 0
push esi
mov byte [edi + 0xc], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fopen]
add esp, 8
mov dword [ebp + 8], eax
test eax, eax
je 0x601d69
push 2
push 0
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
add esp, 0x10
mov dword [ebp - 4], eax
test eax, eax
jne 0x601da5
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
add esp, 4
mov esi, dword [ebx + 0x14]
test esi, esi
je 0x601d9a
mov eax, dword [esi]
test eax, eax
je 0x601d85
push eax
call fcn.006dfeff
add esp, 4
mov dword [esi], 0
push 0x138
push esi
call fcn.006df8f3
add esp, 8
mov dword [ebx + 0x14], 0
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
push dword [ebp - 4]
call fcn.006dff04
push dword [ebp + 8]
mov dword [edi], eax
push 1
push dword [ebp - 4]
push eax
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
push dword [ebp + 8]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, dword [ebp - 4]
push 0x12c
mov dword [edi + 4], eax
lea eax, [edi + 0xc]
push esi
push eax
mov dword [edi + 8], 0
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strncpy]
mov ecx, esi
mov byte [edi + 0x137], 0
add esp, 0x30
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x601e00
sub ecx, edx
lea eax, [ecx + 1]
push eax
call fcn.006dff04
add esp, 4
mov dword [ebx + 0x10], eax
mov cl, byte [esi]
lea esi, [esi + 1]
mov byte [eax], cl
lea eax, [eax + 1]
test cl, cl
jne 0x601e18
mov esi, dword [ebp + 0xc]
test esi, esi
je 0x601efb
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x601e36
sub ecx, edx
mov dword [ebx + 8], ecx
lea eax, [ecx + 1]
push eax
call fcn.006dff04
mov ecx, eax
lea edi, [ebx + 4]
add esp, 4
mov dword [edi], ecx
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x601e55
mov dword [ebx + 0xc], 0
mov ebx, dword [edi]
mov edx, ebx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x601e71
sub edx, ecx
xor ecx, ecx
test edx, edx
jle 0x601efb
cmp edx, 0x40
jb 0x601ef0
lea eax, [ebx - 1]
add eax, edx
cmp ebx, edi
ja 0x601e92
cmp eax, edi
jae 0x601ef0
mov eax, edx
and eax, 0x8000003f
jns 0x601ea0
dec eax
or eax, 0xffffffc0
inc eax
movaps xmm1, xmmword [0x711e00]
mov esi, edx
sub esi, eax
nop dword [eax + eax]
movups xmm0, xmmword [ebx + ecx]
xorps xmm0, xmm1
movups xmmword [ebx + ecx], xmm0
movups xmm0, xmmword [ebx + ecx + 0x10]
xorps xmm0, xmm1
movups xmmword [ebx + ecx + 0x10], xmm0
movups xmm0, xmmword [ebx + ecx + 0x20]
xorps xmm0, xmm1
movups xmmword [ebx + ecx + 0x20], xmm0
movups xmm0, xmmword [ebx + ecx + 0x30]
xorps xmm0, xmm1
movups xmmword [ebx + ecx + 0x30], xmm0
add ecx, 0x40
mov eax, ecx
cmp ecx, esi
jl 0x601eb0
cmp eax, edx
jge 0x601efb
nop
mov eax, dword [edi]
xor byte [ecx + eax], 0xc8
inc ecx
cmp ecx, edx
jl 0x601ef0
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8