Function at 0x1400648c0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
test r8, r8
jle 0x14006495b
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
cmp qword [rcx + 0x68], 0
je 0x140064962
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
cmp dword [0x1400c53c8], 0xa
jl 0x140064cd8
mov ecx, dword [0x1400c53cc]
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
je 0x140064cd8
mov r14, qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
nop
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call r14
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call r14
cmp dword [0x1400c53c8], 0xa
jl 0x140064cd8
mov ecx, dword [0x1400c53cc]
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
jne 0x140064920
jmp 0x140064cd8
xor eax, eax
jmp 0x140064cd8
mov edx, dword [0x1400c53cc]
mov eax, dword [0x1400c53c8]
lea ecx, [rdx + 1]
imul ecx, edx
and ecx, 1
mov rdx, qword [rbx + 0x38]
mov r14, qword [rdx]
test r14, r14
je 0x140064a57
mov rdx, qword [rbx + 0x50]
movsxd r15, dword [rdx]
test r15, r15
je 0x140064a57
cmp r15, rsi
cmovae r15, rsi
cmp dword [0x1400c3680], 0xa
jl 0x140064a0f
nop word [rax + rax]
mov eax, dword [0x1400c3684]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
je 0x140064a0f
mov rcx, rdi
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
cmp dword [0x1400c3680], 0xa
jge 0x1400649b0
jmp 0x140064a0f
mov eax, dword [0x1400c3684]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
je 0x140064a26
mov rcx, rdi
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov rcx, rdi
mov rdx, r14
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
cmp dword [0x1400c3680], 0xa
jge 0x1400649f0
add rdi, r15
mov rax, qword [rbx + 0x50]
sub dword [rax], r15d
mov r14, rsi
sub r14, r15
mov rax, qword [rbx + 0x38]
movsxd rcx, r15d
add qword [rax], rcx
mov edx, dword [0x1400c53cc]
mov eax, dword [0x1400c53c8]
lea ecx, [rdx + 1]
imul ecx, edx
and ecx, 1
jmp 0x140064a5a
mov r14, rsi
test ecx, ecx
sete cl
cmp eax, 0xa
setl al
or al, cl
nop word [rax + rax]
test al, al
je 0x140064a70
cmp qword [rbx + 0x80], 0
je 0x140064cd2
mov rax, qword [rbx + 0x18]
lea rcx, [rbx + 0x70]
cmp qword [rax], rcx
je 0x140064c14
cmp r14, 0x1000
setb bpl
jb 0x140064b63
mov r12, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
nop dword [rax + rax]
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, rdi
call r12
add rdi, rax
sub r14, rax
cmp dword [0x1400c53c8], 0xa
jl 0x140064b46
mov ecx, dword [0x1400c53cc]
lea edx, [rcx + 1]
imul edx, ecx
and edx, 1
je 0x140064b46
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, rdi
call r12
mov r15, rax
add rdi, rax
mov r9, qword [rbx + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, rdi
call r12
add rdi, rax
add r15, rax
sub r14, r15
cmp dword [0x1400c53c8], 0xa
jl 0x140064ab0
mov eax, dword [0x1400c53cc]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
jne 0x140064ae8
jmp 0x140064ab0
cmp rax, 0xfff
jne 0x140064ce7
cmp r14, 0x1000
setb bpl
jae 0x140064ab0
test r14, r14
je 0x140064cc9
mov r9, qword [rbx + 0x80]
mov edx, 1
mov rcx, rdi
mov r8, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub r14, rax
cmp dword [0x1400c53c8], 0xa
jl 0x140064ccc
mov eax, dword [0x1400c53cc]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
je 0x140064ccc
mov r15, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov r9, qword [rbx + 0x80]
mov edx, 1
mov rcx, rdi
mov r8, r14
call r15
sub r14, rax
mov r9, qword [rbx + 0x80]
mov edx, 1
mov rcx, rdi
mov r8, r14
call r15
sub r14, rax
cmp dword [0x1400c53c8], 0xa
jl 0x140064ccc
mov eax, dword [0x1400c53cc]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
jne 0x140064bb0
jmp 0x140064ccc
mov rax, qword [rbx + 0x18]
mov ecx, dword [rbx + 0x90]
mov rdx, qword [rbx + 0x88]
mov qword [rax], rdx
mov rax, qword [rbx + 0x38]
mov qword [rax], rdx
sub ecx, edx
mov rax, qword [rbx + 0x50]
mov dword [rax], ecx
cmp dword [0x1400c5370], 0xa
jl 0x140064a93
mov eax, dword [0x1400c5374]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
je 0x140064a93
nop word cs:[rax + rax]
mov eax, dword [rbx + 0x90]
mov rcx, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x88]
mov qword [rcx], rdx
mov rcx, qword [rbx + 0x38]
mov qword [rcx], rdx
sub eax, edx
mov rcx, qword [rbx + 0x50]
mov dword [rcx], eax
mov eax, dword [rbx + 0x90]
mov rcx, qword [rbx + 0x18]
mov rdx, qword [rbx + 0x88]
mov qword [rcx], rdx
mov rcx, qword [rbx + 0x38]
mov qword [rcx], rdx
sub eax, edx
mov rcx, qword [rbx + 0x50]
mov dword [rcx], eax
cmp dword [0x1400c5370], 0xa
jl 0x140064c10
mov eax, dword [0x1400c5374]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
jne 0x140064c60
jmp 0x140064c10
xor r14d, r14d
test bpl, 1
je 0x140064cd8
sub rsi, r14
mov rax, rsi
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rax, rsi
sub rax, r14
test bpl, 1
jne 0x140064cd2
jmp 0x140064cd8