Function at 0x6a5d7810
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 [0x6a68bbb0]
mov rsi, rdx
cmovge rdi, rdx
lea rdx, [rdi + 0x21]
call fcn.6a5cddb0
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 0x6a5d78e0
call sub.msvcrt.dll_ferror
mov rcx, rbp
test eax, eax
jne 0x6a5d7b35
call sub.msvcrt.dll_fgetc
mov rdx, rbp
mov edi, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test edi, edi
jns 0x6a5d78f9
cmp rsi, rbx
jle 0x6a5d7ade
mov rdx, rbx
mov rcx, r13
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp fcn.6a5cf9a0
call sub.msvcrt.dll_fgetc
mov rdx, rbp
mov ebx, eax
mov ecx, eax
call sub.msvcrt.dll_ungetc
test ebx, ebx
js 0x6a5d7ade
mov rcx, rbp
call fcn.6a5d7000
test rax, rax
mov rbx, rax
je 0x6a5d7af0
mov rdx, qword [rax]
mov rcx, r13
call fcn.6a5cfd30
mov rcx, qword [rbx]
lea r8, [rbx + 0x10]
mov r12, rax
mov rax, qword [rax]
test rcx, rcx
lea rdx, [r12 + rax + 0x10]
js 0x6a5d7ad7
lea rax, [r12 + rax + 0x20]
cmp r8, rax
lea rax, [rbx + 0x20]
setae r8b
cmp rdx, rax
setae al
or r8b, al
je 0x6a5d7b10
cmp rcx, 0xe
jbe 0x6a5d7b10
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 0x6a5d7970
mov rax, r9
and rax, 0xfffffffffffffff0
cmp r9, rax
je 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x10]
cmp rcx, rax
mov byte [rdx + rax], r8b
lea r8, [rax + 1]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x11]
cmp rcx, r8
mov byte [rdx + rax + 1], r9b
lea r9, [rax + 2]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x12]
cmp rcx, r9
mov byte [rdx + rax + 2], r8b
lea r8, [rax + 3]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x13]
cmp rcx, r8
mov byte [rdx + rax + 3], r9b
lea r9, [rax + 4]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x14]
cmp rcx, r9
mov byte [rdx + rax + 4], r8b
lea r8, [rax + 5]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x15]
cmp rcx, r8
mov byte [rdx + rax + 5], r9b
lea r9, [rax + 6]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x16]
cmp rcx, r9
mov byte [rdx + rax + 6], r8b
lea r8, [rax + 7]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x17]
cmp rcx, r8
mov byte [rdx + rax + 7], r9b
lea r9, [rax + 8]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x18]
cmp rcx, r9
mov byte [rdx + rax + 8], r8b
lea r8, [rax + 9]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x19]
cmp rcx, r8
mov byte [rdx + rax + 9], r9b
lea r9, [rax + 0xa]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x1a]
cmp rcx, r9
mov byte [rdx + rax + 0xa], r8b
lea r8, [rax + 0xb]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x1b]
cmp rcx, r8
mov byte [rdx + rax + 0xb], r9b
lea r9, [rax + 0xc]
jle 0x6a5d7ad0
movzx r8d, byte [rbx + rax + 0x1c]
cmp rcx, r9
mov byte [rdx + rax + 0xc], r8b
lea r8, [rax + 0xd]
jle 0x6a5d7ad0
movzx r9d, byte [rbx + rax + 0x1d]
cmp rcx, r8
mov byte [rdx + rax + 0xd], r9b
jle 0x6a5d7ad0
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.6a5cfd30
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 0x6a5d7b20
jmp 0x6a5d7ad0
call fcn.6a5d6840
nop
nop dword [rax + rax]
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbx, rcx
xor ecx, ecx
call qword [fcn.6a5dd780]
cmp rax, rbx
je 0x6a5d7b90
mov rcx, rbx
call fcn.6a5dd180
xor edx, edx
mov r8d, 2
mov rcx, rbx
mov rdi, rax
call fcn.6a5dd3d0
mov rcx, rbx
call fcn.6a5dd180
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
mov rsi, rax
call fcn.6a5dd3d0
test rsi, rsi
jg 0x6a5d7ba0
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.6a5d7000
mov rdx, rsi
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp fcn.6a5d7810