Function at 0x140010f00
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r13
push r14
sub rsp, 0x48
mov r14, qword [rdx + 0x10]
xor ebx, ebx
mov r13d, dword [rdx]
mov rsi, rdx
imul r13, r8
mov rdi, rcx
mov ebp, 0xffffbad2
cmp dword [r14 + 0x60], ebx
jne 0x140010f62
mov rcx, qword [r14]
lea r8, [rsp + 0x98]
xor r9d, r9d
mov rdx, r13
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x140010f5e
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov ebx, eax
cmove ebx, ebp
jmp 0x140010f62
mov qword [r14 + 0x58], r13
mov eax, dword [r14 + 0x60]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r15
test eax, eax
jne 0x140010f7c
test ebx, ebx
je 0x1400111b6
mov r8, qword [r14 + 0x58]
cmp r8, r13
jbe 0x140010fba
cmp dword [0x140027a7c], 0
jne 0x140010f9d
mov rdx, r13
lea rcx, str.xdelta3:_source_cant_seek_backwards__requested_block_offset__I64u_source_position_is__I64u_n
call fcn.140010bb0
lea rax, str.non_seekable_source:_copy_is_too_far_back__try_raising__B_
mov dword [r14 + 0x60], 1
mov qword [rdi + 0x38], rax
mov eax, 0xffffbad3
jmp 0x1400111b8
test eax, eax
jne 0x140010ff8
cmp dword [0x1400288c4], eax
je 0x140010ff8
mov rdx, qword [r14 + 0x10]
lea rcx, str.xdelta3:_source_cant_seek__will_use_FIFO_for__s_n
call fcn.140010bb0
cmp dword [0x1400288c4], 1
jle 0x140010ff8
mov ecx, ebx
call fcn.140010560
mov r8, rax
lea rcx, str.xdelta3:_seek_error_at_offset__I64u:__s_n
mov rdx, r13
call fcn.140010bb0
cmp dword [0x1400288c4], 1
mov dword [r14 + 0x60], 1
jle 0x140011024
mov r8, qword [r14 + 0x58]
cmp r13, r8
je 0x140011024
mov rdx, r13
lea rcx, str.xdelta3:_non_seekable_source_skipping__I64u_bytes____I64u_n
sub rdx, r8
call fcn.140010bb0
mov r8, qword [r14 + 0x58]
cmp r8, r13
jae 0x1400111b6
mov r9d, dword [0x1400271d8]
mov ecx, dword [rsi + 0x48]
lea r10, [0x1400288d8]
shr r8, cl
cmp dword [0x1400288f4], 0
je 0x140011086
mov ecx, r9d
xor edx, edx
mov rax, r8
div rcx
movsxd rax, edx
lea rcx, [rax + rax*4]
mov rax, qword [0x140027a70]
lea rdi, [rax + rcx*8]
mov rax, qword [rax + rcx*8 + 8]
cmp rax, r8
je 0x1400110e0
cmp rax, 0xffffffffffffffff
je 0x1400110da
cmp rax, r8
ja 0x140010fb0
jmp 0x1400110da
xor eax, eax
test r9d, r9d
je 0x1400110a9
mov rdi, qword [0x140027a70]
cmp qword [rdi + 8], r8
je 0x1400111cf
inc eax
add rdi, 0x28
cmp eax, r9d
jb 0x140011094
mov rdx, qword [0x1400288d8]
mov rax, qword [rdx]
lea rdi, [rdx - 0x18]
mov rcx, qword [rdx + 8]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov rax, qword [0x1400288e0]
mov qword [0x1400288e0], rdx
mov qword [rax], rdx
mov qword [rdx], r10
mov qword [rdx + 8], rax
inc dword [0x1400288ec]
mov r15, qword [rdi]
xor eax, eax
mov qword [rdi + 8], r8
mov ebx, eax
mov ebp, dword [rsi]
mov r12, qword [r14]
test rbp, rbp
je 0x140011170
nop word [rax + rax]
mov r8d, ebp
mov dword [rsp + 0x90], eax
sub r8d, ebx
mov qword [rsp + 0x20], rax
lea rdx, [rbx + r15]
mov rcx, r12
lea r9, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140011149
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test eax, eax
je 0x1400111ff
cmp eax, 0x26
je 0x140011149
cmp eax, 0x6d
jne 0x140011204
mov ecx, dword [rsp + 0x90]
add rbx, rcx
test ecx, ecx
je 0x140011161
mov eax, 0
cmp rbx, rbp
jb 0x140011100
mov r9d, dword [0x1400271d8]
mov rsi, qword [rsp + 0x88]
cmp dword [0x1400288c4], 4
jle 0x140011193
mov rdx, qword [r14 + 0x10]
lea rcx, str.xdelta3:_read__s:__I64u_bytes_n
mov r8, rbx
call fcn.140010bb0
mov r9d, dword [0x1400271d8]
add qword [r14 + 0x38], rbx
mov eax, dword [rsi]
cmp rbx, rax
jne 0x140011229
add qword [r14 + 0x58], rbx
mov dword [rdi + 0x10], ebx
mov r8, qword [r14 + 0x58]
cmp r8, r13
jb 0x140011038
xor eax, eax
mov r15, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
add rsp, 0x48
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rdi + 0x18]
lea rdx, [rdi + 0x18]
mov rcx, qword [rdi + 0x20]
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov rax, qword [0x1400288e0]
mov qword [0x1400288e0], rdx
mov qword [rax], rdx
mov qword [rdx], r10
mov qword [rdx + 8], rax
jmp 0x1400110e0
mov esi, 0xffffbad2
mov ecx, esi
call fcn.140010560
mov r8, qword [r14 + 0x10]
lea rdx, str.input_read_failed
mov r9, rax
lea rcx, str.xdelta3:__s:__s:__s_n
call fcn.140010bb0
mov eax, esi
jmp 0x1400111b8
mov rax, qword [rsp + 0x80]
lea rcx, str.non_seekable_input_is_short
mov qword [rax + 0x38], rcx
mov eax, 0xffffbad0
jmp 0x1400111b8