Function at 0x140280610
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
cmp qword [rcx], 0xffffffffffffffff
mov r12, r9
mov edi, r8d
mov r14, rdx
mov rsi, rcx
jne 0x14028064f
lea r8, str.BIsOpen__
mov edx, 0x13d3
jmp 0x14028070c
mov ebx, 0x7fffffff
sub ebx, dword [rcx + 0x10]
cmp edi, ebx
jbe 0x1402806c6
xor ebp, ebp
test r12, r12
je 0x140280665
mov dword [r9], ebp
mov r15d, ebp
test r8d, r8d
je 0x1402806a7
nop dword [rax]
mov r8d, edi
mov dword [rsp + 0x70], ebp
cmp ebx, edi
lea r9, [rsp + 0x70]
mov rdx, r14
mov rcx, rsi
cmovb r8d, ebx
call fcn.140280610
test al, al
je 0x14028071d
mov ecx, dword [rsp + 0x70]
test ecx, ecx
je 0x1402806a7
add r15d, ecx
add r14, rcx
sub edi, ecx
jne 0x140280670
test r12, r12
jne 0x1402806bb
test edi, edi
je 0x14028080c
xor al, al
jmp 0x140280910
mov dword [r12], r15d
mov al, 1
jmp 0x140280910
cmp edi, 0x7fffffff
jb 0x1402806eb
lea r8, str.cubBytesToRead___INT32_MAX
mov edx, 0x13f3
lea rcx, str.c:_buildslave_steam_rel_client_hotfix_win64_build_src_tier1_fileio.cpp
call fcn.14029bf90
test al, al
jne 0x1402806eb
int3
cmp byte [rsi + 0x30], 0
je 0x14028078f
xor edx, edx
mov eax, edi
div dword [rsi + 0x34]
test edx, edx
je 0x140280724
lea r8, str.CFileReader::Read_must_be_called_with_a_cubData_value_that_is_a_multiple_of_the_sector_size_when_using_unbuffered_IO
mov edx, 0x13fa
lea rcx, str.c:_buildslave_steam_rel_client_hotfix_win64_build_src_tier1_fileio.cpp
call fcn.14029bf90
test al, al
jne 0x14028071d
int3
xor al, al
jmp 0x140280910
cmp byte [0x1405de6f9], 0
jne 0x14028075a
test r14, 0xfff
je 0x14028075a
lea r8, str.Unbuffered_read_should_be_called_with_pvData_buffer_that_is_aligned_to_system_page_size__4kb_
mov byte [0x1405de6f9], 1
mov edx, 0x13ff
lea rcx, str.c:_buildslave_steam_rel_client_hotfix_win64_build_src_tier1_fileio.cpp
call fcn.14029bf90
test al, al
jne 0x14028075a
int3
cmp byte [0x1405de6fa], 0
jne 0x14028078f
test edi, 0xfff
je 0x14028078f
lea r8, str.Unbuffered_read_should_be_called_with_cubData_length_that_is_aligned_to_system_page_size__4kb_
mov byte [0x1405de6fa], 1
mov edx, 0x1400
lea rcx, str.c:_buildslave_steam_rel_client_hotfix_win64_build_src_tier1_fileio.cpp
call fcn.14029bf90
test al, al
jne 0x14028078f
int3
mov r10, qword [rsi + 0x28]
xor ebp, ebp
mov rdx, qword [rsi + 8]
mov r13d, edi
mov dword [rsp + 0x70], ebp
mov r9d, ebp
test r10, r10
je 0x1402807fe
mov r8, qword [rsi + 0x18]
cmp rdx, r8
jb 0x1402807fe
mov r11, qword [rsi + 0x20]
lea rax, [r11 + r8]
cmp rdx, rax
jae 0x1402807fe
mov r15d, r8d
mov rcx, r11
sub rcx, rdx
sub r15d, edx
add rcx, r8
add r15d, r11d
cmp rdi, rcx
mov rcx, r14
cmovb r15d, edi
sub r10, r8
add rdx, r10
mov r8d, r15d
mov dword [rsp + 0x70], r15d
mov ebx, r15d
call fcn.140320ff0
add qword [rsi + 8], rbx
mov r9d, r15d
mov rdx, qword [rsi + 8]
sub r13d, r15d
test r13d, r13d
jne 0x140280813
test r12, r12
je 0x14028080c
mov dword [r12], edi
mov al, 1
jmp 0x140280910
mov r10, qword [rsi + 0x28]
mov r8d, r13d
test r10, r10
je 0x14028082d
mov rcx, qword [rsi + 0x10]
mov eax, r13d
cmp rcx, rax
cmova r8d, ecx
mov rcx, qword [rsi + 0x10]
test rcx, rcx
je 0x14028089e
mov eax, r8d
cmp rax, rcx
jne 0x14028089e
mov rcx, qword [rsi]
lea r9, [rsp + 0x30]
mov qword [rsi + 0x18], rdx
mov rdx, r10
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140280874
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov r15d, ebp
sete bl
test eax, eax
jne 0x1402808da
jmp 0x14028087b
mov r15d, dword [rsp + 0x30]
mov bl, 1
mov ecx, dword [rsp + 0x70]
cmp r15d, r13d
mov rdx, qword [rsi + 0x28]
mov r8d, r13d
cmovb r8d, r15d
movsxd rax, r15d
add rcx, r14
mov qword [rsi + 0x20], rax
call fcn.140320ff0
jmp 0x1402808da
mov rcx, qword [rsi]
mov r15d, ebp
mov edx, r9d
lea r9, [rsp + 0x30]
add rdx, r14
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x20], rbp
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1402808ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x1402808d1
mov r15d, dword [rsp + 0x30]
mov eax, ebp
test eax, eax
mov qword [rsi + 0x20], rbp
sete bl
test bl, bl
mov ecx, ebp
cmovne ecx, r15d
cmp r13d, ecx
mov eax, ecx
cmovb eax, r13d
add qword [rsi + 8], rax
mov eax, dword [rsp + 0x70]
add eax, ecx
test r12, r12
je 0x140280905
cmp edi, eax
cmovb eax, edi
mov dword [r12], eax
jmp 0x14028090d
cmp edi, eax
movzx ebx, bl
cmova ebx, ebp
movzx eax, bl
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret