Function at 0x140003700
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push rbx
push rbp
push r15
sub rsp, 0x70
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rbx, rcx
test rcx, rcx
jne 0x140003739
mov r8d, 0x3f2
lea rdx, str.....IORequestGeneratorIORequestGenerator.cpp
lea rcx, str.NULL___p
call fcn.140027440
mov rax, qword [rbx + 8]
xor ebp, ebp
mov rcx, qword [rbx + 0x18]
xor r15d, r15d
sub rcx, qword [rbx + 0x10]
mov qword [rsp + 0x98], rsi
movzx r8d, byte [rax + 0x49]
movabs rax, 0xa3d70a3d70a3d70b
imul rcx
mov qword [rsp + 0xa0], rdi
add rdx, rcx
mov qword [rsp + 0xa8], r12
sar rdx, 7
mov rax, rdx
mov qword [rsp + 0x68], r13
shr rax, 0x3f
mov qword [rsp + 0x60], r14
mov byte [rsp + 0x30], r8b
add rdx, rax
je 0x140003932
xor r12d, r12d
mov qword [rsp + 0x40], r12
mov r14, qword [rbx + 0x10]
xor edi, edi
add r14, r12
cmp dword [r14 + 0x24], edi
jbe 0x1400038f4
mov rsi, rbp
shl rsi, 5
nop dword [rax]
test r8b, r8b
je 0x1400037e0
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbx + 0xd0]
mov rax, qword [rsp + 0x48]
mov qword [rcx + rbp*8], rax
mov eax, dword [r14 + 0x70]
mov dword [rsp + 0x34], eax
call fcn.14002560c
mov ecx, eax
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub ecx, eax
lea eax, [rcx + 1]
cdq
mov r13d, eax
mov rax, qword [rbx + 0xb8]
xor r13d, edx
sub r13d, edx
cmp dword [rsp + 0x34], r13d
mov dword [rsp + 0x38], r13d
sbb ecx, ecx
add ecx, 2
mov dword [rax + rbp*4], ecx
cmp r13d, dword [rsp + 0x34]
jbe 0x14000386e
mov rax, qword [rbx + 0x10]
lea rcx, [0x140003410]
mov r9, qword [rbx + 0x70]
mov r8d, dword [r14 + 0x20]
add r9, rsi
mov qword [rsp + 0x20], rcx
mov edx, dword [rax + r12 + 0x20]
mov rax, qword [rbx + 0x58]
imul rdx, rdi
add rdx, qword [rax + r15*8]
mov rax, qword [rbx + 0x28]
mov rcx, qword [rax + r15*8]
call qword [sym.imp.KERNEL32.dll_ReadFileEx]
jmp 0x1400038cf
mov rcx, qword [rsp + 0x40]
add rcx, qword [rbx + 0x10]
mov r12, qword [rbx + 0x70]
mov r13d, dword [r14 + 0x20]
add r12, rsi
cmp qword [rcx + 0x90], 0
jne 0x14000389d
mov edx, dword [rcx + 0x20]
mov rax, qword [rbx + 0x58]
imul rdx, rdi
add rdx, qword [rax + r15*8]
jmp 0x1400038a5
call fcn.140015bd0
mov rdx, rax
mov rax, qword [rbx + 0x28]
lea rcx, [0x140003410]
mov qword [rsp + 0x20], rcx
mov r9, r12
mov r8d, r13d
mov rcx, qword [rax + r15*8]
call qword [sym.imp.KERNEL32.dll_WriteFileEx]
mov r12, qword [rsp + 0x40]
mov r13d, dword [rsp + 0x38]
test eax, eax
je 0x1400039e4
mov eax, dword [r14 + 0x24]
inc rbp
movzx r8d, byte [rsp + 0x30]
add rsi, 0x20
inc rdi
cmp rdi, rax
jb 0x1400037c0
mov rcx, qword [rbx + 0x18]
add r12, 0xc8
sub rcx, qword [rbx + 0x10]
movabs rax, 0xa3d70a3d70a3d70b
imul rcx
inc r15
mov qword [rsp + 0x40], r12
add rdx, rcx
sar rdx, 7
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r15, rdx
jb 0x1400037a2
mov eax, dword [0x140051f08]
test eax, eax
je 0x1400039aa
nop dword [rax]
mov eax, dword [0x140051ddc]
test eax, eax
jne 0x1400039aa
mov rcx, qword [rbx + 0x150]
lea r8d, [rax + 1]
or edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObjectEx]
mov edi, eax
cmp eax, 0xc0
je 0x1400039a0
test eax, eax
jne 0x14000397f
mov eax, dword [0x140051f08]
test eax, eax
je 0x1400039a0
mov eax, dword [0x140051ddc]
test eax, eax
jne 0x1400039a0
mov r8d, 0x41f
lea rdx, str.....IORequestGeneratorIORequestGenerator.cpp
lea rcx, str.WAIT_IO_COMPLETION__dwWaitResult___WAIT_OBJECT_0__dwWaitResult____g_bRun__g_bThreadError__
call fcn.140027440
test edi, edi
jne 0x140003a1e
mov eax, dword [0x140051f08]
test eax, eax
jne 0x140003940
mov al, 1
mov r14, qword [rsp + 0x60]
mov r13, qword [rsp + 0x68]
mov r12, qword [rsp + 0xa8]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14001d3d0
add rsp, 0x70
pop r15
pop rbp
pop rbx
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp r13d, dword [rsp + 0x34]
lea rcx, str.read
mov edx, dword [rbx + 0x10c]
lea r9, str.write
cmova r9, rcx
mov dword [rsp + 0x20], eax
lea rcx, str.t__u:_u__error_during__s_error_code:__u__n
mov r8, r15
call fcn.140002900
xor al, al
jmp 0x1400039ac
mov edx, dword [rbx + 0x10c]
lea rcx, str.Error_in_thread__u_during_WaitForSingleObjectEx__in_completion_routines__n
call fcn.140002900
xor al, al
jmp 0x1400039ac