Function at 0x6a569a20
Capabilities:
Read file on windows

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov edi, 7
cmp rdx, 7
mov rbp, rcx
mov rcx, qword [0x6a59e7c0]
mov rsi, rdx
cmovge rdi, rdx
lea rdx, [rdi + 0x21]
call fcn.6a55f100
lea r8, [rdi + 0x11]
xor edx, edx
lea r13, [rax + 0x10]
mov qword [rax + 8], 1
mov rbx, rax
mov rcx, r13
mov r12, r13
call sub.msvcrt.dll_memset
movq xmm2, rdi
mov r9, rbp
mov r8, rsi
lea rcx, [rbx + 0x20]
movq xmm0, rsi
mov edx, 1
punpcklqdq xmm0, xmm2
movups xmmword [rbx + 0x10], xmm0
call sub.msvcrt.dll_fread
mov rcx, rbp
cmp rsi, rax
mov rbx, rax
je 0x6a569af0
call sub.msvcrt.dll_ferror
mov rcx, rbp
test eax, eax
jne 0x6a569d45
call sub.msvcrt.dll_fgetc
mov rdx, rbp
mov edi, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test edi, edi
jns 0x6a569b09
cmp rsi, rbx
jle 0x6a569cee
mov rdx, rbx
mov rcx, r13
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp fcn.6a560ff0
call sub.msvcrt.dll_fgetc
mov rdx, rbp
mov ebx, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test ebx, ebx
js 0x6a569cee
mov rcx, rbp
call fcn.6a569210
test rax, rax
mov rbx, rax
je 0x6a569d00
mov rdx, qword [rax]
mov rcx, r13
call fcn.6a561380
mov rcx, qword [rbx]
lea r8, [rbx + 0x10]
mov r12, rax
mov rax, qword [rax]
test rcx, rcx
lea rdx, [r12 + rax + 0x10]
js 0x6a569ce7
lea rax, [r12 + rax + 0x20]
cmp r8, rax
lea rax, [rbx + 0x20]
setae r8b
cmp rdx, rax
setae al
or r8b, al
je 0x6a569d20
cmp rcx, 0xe
jbe 0x6a569d20
lea r9, [rcx + 1]
xor eax, eax
mov r8, r9
and r8, 0xfffffffffffffff0
nop dword [rax]
movdqu xmm1, xmmword [rbx + rax + 0x10]
movups xmmword [rdx + rax], xmm1
add rax, 0x10
cmp rax, r8
jne 0x6a569b80
mov rax, r9
and rax, 0xfffffffffffffff0
cmp r9, rax
je 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x10]
cmp rcx, rax
mov byte [rdx + rax], r8b
lea r8, [rax + 1]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x11]
cmp rcx, r8
mov byte [rdx + rax + 1], r9b
lea r9, [rax + 2]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x12]
cmp rcx, r9
mov byte [rdx + rax + 2], r8b
lea r8, [rax + 3]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x13]
cmp rcx, r8
mov byte [rdx + rax + 3], r9b
lea r9, [rax + 4]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x14]
cmp rcx, r9
mov byte [rdx + rax + 4], r8b
lea r8, [rax + 5]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x15]
cmp rcx, r8
mov byte [rdx + rax + 5], r9b
lea r9, [rax + 6]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x16]
cmp rcx, r9
mov byte [rdx + rax + 6], r8b
lea r8, [rax + 7]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x17]
cmp rcx, r8
mov byte [rdx + rax + 7], r9b
lea r9, [rax + 8]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x18]
cmp rcx, r9
mov byte [rdx + rax + 8], r8b
lea r8, [rax + 9]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x19]
cmp rcx, r8
mov byte [rdx + rax + 9], r9b
lea r9, [rax + 0xa]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x1a]
cmp rcx, r9
mov byte [rdx + rax + 0xa], r8b
lea r8, [rax + 0xb]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x1b]
cmp rcx, r8
mov byte [rdx + rax + 0xb], r9b
lea r9, [rax + 0xc]
jle 0x6a569ce0
movzx r8d, byte [rbx + rax + 0x1c]
cmp rcx, r9
mov byte [rdx + rax + 0xc], r8b
lea r8, [rax + 0xd]
jle 0x6a569ce0
movzx r9d, byte [rbx + rax + 0x1d]
cmp rcx, r8
mov byte [rdx + rax + 0xd], r9b
jle 0x6a569ce0
movzx ecx, byte [rbx + rax + 0x1e]
mov byte [rdx + rax + 0xe], cl
nop
mov rax, qword [r12]
mov rcx, qword [rbx]
add rcx, rax
mov qword [r12], rcx
mov rax, r12
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor edx, edx
mov rcx, r13
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp fcn.6a561380
add rcx, 1
xor eax, eax
nop word cs:[rax + rax]
movzx r8d, byte [rbx + rax + 0x10]
mov byte [rdx + rax], r8b
add rax, 1
cmp rax, rcx
jne 0x6a569d30
jmp 0x6a569ce0
call fcn.6a568a50
nop
nop dword [rax + rax]
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbx, rcx
xor ecx, ecx
call qword [fcn.6a56fb60]
cmp rax, rbx
je 0x6a569da0
mov rcx, rbx
call fcn.6a56f560
xor edx, edx
mov r8d, 2
mov rcx, rbx
mov rdi, rax
call fcn.6a56f7b0
mov rcx, rbx
call fcn.6a56f560
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
mov rsi, rax
call fcn.6a56f7b0
test rsi, rsi
jg 0x6a569db0
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.6a569210
mov rdx, rsi
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.6a569a20