Function at 0x140002c00
Capabilities:
Check for time delay via gettickcount
Read file on windows
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov qword [rbp - 0x39], 0xfffffffffffffffe
mov qword [rsp + 0x140], rbx
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1f], rax
mov rbx, rdx
mov qword [rbp - 0x41], rdx
mov rdi, rcx
test rcx, rcx
jne 0x140002c5e
mov r8d, 0x2d3
lea rdx, str.....IORequestGeneratorIORequestGenerator.cpp
lea rcx, str.nullptr__p
call fcn.140027440
test rbx, rbx
jne 0x140002c7c
mov r8d, 0x2d4
lea rdx, str.....IORequestGeneratorIORequestGenerator.cpp
lea rcx, str.nullptr___hCompletionPort
call fcn.140027440
xor eax, eax
mov dword [rsp + 0x48], eax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x29], xmm0
xor r12d, r12d
mov qword [rbp - 0x19], r12
mov r13, qword [rdi + 0x78]
sub r13, qword [rdi + 0x70]
sar r13, 5
mov qword [rbp - 0x69], r13
mov rax, qword [rdi + 8]
movzx eax, byte [rax + 0x49]
mov byte [rsp + 0x41], al
mov rcx, qword [rdi + 0x18]
sub rcx, qword [rdi + 0x10]
movabs rax, 0xa3d70a3d70a3d70b
imul rcx
lea r14, [rcx + rdx]
sar r14, 7
mov rax, r14
shr rax, 0x3f
add r14, rax
xor eax, eax
mov qword [rbp - 9], rax
mov qword [rbp - 1], rax
mov qword [rbp + 7], rax
mov rdx, r14
lea rcx, [rbp - 9]
call fcn.140007cc0
nop
mov byte [rsp + 0x40], r12b
test r14, r14
je 0x140002dc8
xor r10d, r10d
mov r15d, r10d
mov rbx, qword [rbp - 9]
add rbx, 0x30
nop dword [rax + rax]
mov rcx, qword [rdi + 0x10]
add rcx, r15
mov r9d, dword [rcx + 0x78]
mov rax, qword [rdi + 8]
mov r8d, dword [rax + 0x28]
xor edx, edx
mov eax, r9d
test r8d, r8d
je 0x140002d32
div r8d
jmp 0x140002d35
div dword [rcx + 0x48]
mov r13d, eax
mov esi, dword [rcx + 0x84]
test esi, esi
jne 0x140002d47
cmp dword [rcx + 0x7c], esi
jbe 0x140002dab
mov byte [rsp + 0x40], 1
mov r12d, dword [rcx + 0x7c]
mov eax, dword [rcx + 0x20]
mov qword [rbx - 0x28], r10
mov qword [rbx - 4], 0
mov dword [rbx - 0x20], eax
mov word [rbx - 0x2f], 0
mov dword [rbx - 0x1c], r10d
mov qword [rbx - 0x10], r10
mov dword [rbx - 8], r10d
mov byte [rbx - 0x30], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, eax
mov qword [rbx - 0x18], rax
test esi, esi
je 0x140002d93
mov word [rbx - 0x30], 0x101
mov dword [rbx - 0x1c], esi
jmp 0x140002da8
test r12d, r12d
je 0x140002da8
mov byte [rbx - 0x2e], 1
mov dword [rbx - 8], r12d
mov dword [rbx - 4], r13d
mov byte [rbx - 0x30], 1
xor r10d, r10d
add r15, 0xc8
add rbx, 0x38
sub r14, 1
jne 0x140002d10
mov r12, qword [rbp - 0x19]
mov r13, qword [rbp - 0x69]
test r13, r13
je 0x140002e4f
xor r15d, r15d
mov rbx, qword [rbp - 0x21]
mov r14, qword [rbp - 0x29]
nop dword [rax]
mov rsi, qword [rdi + 0x70]
add rsi, r15
mov qword [rsi], 0
test r14, r14
jne 0x140002e14
test rbx, rbx
je 0x140002e0f
lea r8d, [r14 + 0x2d]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail__nullptr
call fcn.140027440
mov r14, rsi
jmp 0x140002e33
test rbx, rbx
jne 0x140002e30
lea r8d, [rbx + 0x32]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail___nullptr
call fcn.140027440
mov qword [rbx], rsi
mov rbx, rsi
inc r12
add r15, 0x20
sub r13, 1
jne 0x140002de0
mov qword [rbp - 0x29], r14
mov qword [rbp - 0x19], r12
mov qword [rbp - 0x21], rbx
mov eax, dword [0x140051f08]
test eax, eax
je 0x14000334c
mov eax, dword [0x140051ddc]
test eax, eax
jne 0x14000334c
or ebx, 0xffffffff
mov dword [rsp + 0x44], ebx
xor r13d, r13d
mov qword [rbp - 0x69], r13
mov r12, qword [rbp - 0x19]
test r12, r12
je 0x140003100
mov rsi, qword [rbp - 0x21]
mov r15, qword [rbp - 0x29]
nop
test r15, r15
jne 0x140002eac
lea r8d, [r15 + 0x40]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._IsEmpty__
call fcn.140027440
mov r14, r15
mov r15, qword [r15]
mov qword [rbp - 0x29], r15
test r15, r15
cmove rsi, r13
mov qword [rbp - 0x21], rsi
dec r12
mov qword [rbp - 0x19], r12
mov rax, r14
sub rax, qword [rdi + 0x70]
sar rax, 5
mov qword [rbp - 0x59], rax
mov edx, eax
mov rax, qword [rdi + 0x88]
mov rcx, qword [rax + rdx*8]
lea r13, [rcx*8]
mov rax, qword [rdi + 0xa0]
sub rdx, qword [rax + r13]
mov qword [rbp - 0x49], rdx
imul rdx, rcx, 0xc8
mov qword [rbp - 0x51], rdx
mov rax, qword [rdi + 0x10]
add rax, rdx
mov qword [rbp - 0x79], rax
imul rbx, rcx, 0x38
add rbx, qword [rbp - 9]
mov rcx, rbx
call fcn.14000ddd0
cmp byte [rbx], 0
je 0x140002f9b
test eax, eax
je 0x140002f9b
cmp dword [rsp + 0x44], eax
cmovb eax, dword [rsp + 0x44]
mov ebx, eax
mov dword [rsp + 0x44], eax
xor r13d, r13d
mov qword [r14], r13
test r15, r15
jne 0x140002f69
test rsi, rsi
je 0x140002f60
lea r8d, [r15 + 0x2d]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail__nullptr
call fcn.140027440
mov r15, r14
mov qword [rbp - 0x29], r14
jmp 0x140002f88
test rsi, rsi
jne 0x140002f85
lea r8d, [rsi + 0x32]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail___nullptr
call fcn.140027440
mov qword [rsi], r14
mov rsi, r14
mov qword [rbp - 0x21], r14
inc r12
mov qword [rbp - 0x19], r12
jmp 0x1400030ec
cmp byte [rsp + 0x41], 0
je 0x140002fc1
lea rcx, [rbp + 0xf]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rdi + 0xd0]
mov rax, qword [rbp + 0xf]
mov rdx, qword [rbp - 0x59]
mov edx, edx
mov qword [rcx + rdx*8], rax
mov rax, qword [rbp - 0x79]
mov eax, dword [rax + 0x70]
mov dword [rbp - 0x7d], 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 r9d, eax
xor r9d, edx
sub r9d, edx
mov dword [rbp - 0x5d], r9d
cmp dword [rbp - 0x7d], r9d
sbb ecx, ecx
add ecx, 2
mov rax, qword [rdi + 0xb8]
mov rdx, qword [rbp - 0x59]
mov edx, edx
mov dword [rax + rdx*4], ecx
mov rcx, qword [rbp - 0x51]
cmp r9d, dword [rbp - 0x7d]
jbe 0x140003051
mov rax, qword [rdi + 0x10]
mov edx, dword [rcx + rax + 0x20]
imul rdx, qword [rbp - 0x49]
mov rax, qword [rdi + 0x58]
add rdx, qword [rax + r13]
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
xor r9d, r9d
mov r14, qword [rbp - 0x79]
mov r8d, dword [r14 + 0x20]
mov rcx, qword [rax + r13]
call qword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x1400030a1
mov rax, qword [rbp - 0x79]
mov eax, dword [rax + 0x20]
mov dword [rbp - 0x61], eax
add rcx, qword [rdi + 0x10]
cmp qword [rcx + 0x90], 0
jne 0x14000307b
mov edx, dword [rcx + 0x20]
imul rdx, qword [rbp - 0x49]
mov rax, qword [rdi + 0x58]
add rdx, qword [rax + r13]
jmp 0x140003083
call fcn.140015bd0
mov rdx, rax
mov rax, qword [rdi + 0x28]
mov qword [rsp + 0x20], r14
xor r9d, r9d
mov r8d, dword [rbp - 0x61]
mov rcx, qword [rax + r13]
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov r14, qword [rbp - 0x79]
test eax, eax
jne 0x1400030b6
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x140003306
xor r13d, r13d
cmp byte [rbx], r13b
je 0x1400030e8
mov eax, dword [r14 + 0x20]
add qword [rbx + 8], rax
inc dword [rbx + 0x30]
mov eax, dword [rbx + 0x30]
cmp byte [rbx + 2], r13b
je 0x1400030e8
cmp eax, dword [rbx + 0x2c]
jb 0x1400030e8
mov dword [rbx + 0x30], r13d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, dword [rbx + 0x28]
mov qword [rbx + 0x20], rax
mov ebx, dword [rsp + 0x44]
mov rax, qword [rbp - 0x69]
inc rax
mov qword [rbp - 0x69], rax
cmp rax, r12
jb 0x140002e90
cmp byte [rsp + 0x40], 0
je 0x140003125
mov rax, qword [rdi + 0x78]
sub rax, qword [rdi + 0x70]
sar rax, 5
cmp r12, rax
jne 0x140003125
cmp ebx, 0xffffffff
je 0x140003125
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rsp + 0x20], 1
lea r9, [rbp - 0x31]
lea r8, [rbp + 0x17]
lea rdx, [rbp - 0x11]
mov rcx, qword [rbp - 0x41]
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
test eax, eax
je 0x1400032f4
mov rcx, qword [rbp - 0x31]
mov r14, rcx
sub r14, qword [rdi + 0x70]
sar r14, 5
mov r14d, r14d
mov rax, qword [rdi + 0x88]
mov rsi, qword [rax + r14*8]
imul rbx, rsi, 0xc8
add rbx, qword [rdi + 0x10]
mov r9d, dword [rbx + 0x20]
mov r8d, dword [rbp - 0x11]
cmp r8d, r9d
je 0x140003196
mov edx, dword [rdi + 0x10c]
lea rcx, str.Warning:_thread__u_transferred__u_bytes_instead_of__u_bytes_n
call fcn.140002900
mov rcx, qword [rbp - 0x31]
mov eax, dword [rcx + 0x14]
mov dword [rbp - 0x6d], eax
mov eax, dword [rcx + 0x10]
mov dword [rbp - 0x71], eax
mov rax, qword [rdi + 0x118]
movzx ecx, byte [rax]
test cl, cl
je 0x140003202
mov rax, qword [rdi + 8]
movzx r10d, byte [rax + 0x4a]
mov rdx, qword [rdi + 0x128]
mov rax, qword [rdi + 0xd0]
lea r9, [rax + r14*8]
mov r8, qword [rdi + 0xb8]
imul rcx, rsi, 0x138
add rcx, qword [rdx]
mov byte [rsp + 0x30], r10b
movzx eax, byte [rsp + 0x41]
mov byte [rsp + 0x28], al
mov rax, qword [rdi + 0x120]
mov qword [rsp + 0x20], rax
mov r8d, dword [r8 + r14*4]
mov edx, dword [rbp - 0x11]
call fcn.140001e10
mov rax, qword [rdi]
mov ecx, dword [rax + 0x1c]
test ecx, ecx
je 0x14000322f
mov r14d, dword [rsp + 0x48]
inc r14d
mov dword [rsp + 0x48], r14d
cmp r14d, ecx
jne 0x14000322f
lea rcx, [0x14003ffa8]
call fcn.1400028a0
mov dword [rsp + 0x48], r13d
mov r8, qword [rbp - 0x71]
mov rdx, rsi
mov rcx, rdi
call fcn.1400029c0
mov rcx, rax
mov qword [rbp - 0x71], rax
mov rdx, qword [rbp - 0x31]
mov eax, dword [rbp - 0x71]
mov dword [rdx + 0x10], eax
mov rdx, rcx
shr rdx, 0x20
mov rax, qword [rbp - 0x31]
mov dword [rax + 0x14], edx
mov rax, qword [rdi]
movzx r10d, byte [rax + 0x18]
mov r8d, dword [rbx + 0x20]
mov rax, rcx
cqo
idiv r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov r9, rsi
mov r8d, dword [rdi + 0x10c]
lea rdx, str.t__u:_u__new_I_O_op_at__I64u__starting_in_block:__I64u__n
mov ecx, r10d
call fcn.140002960
mov rbx, qword [rbp - 0x31]
mov qword [rbx], r13
cmp qword [rbp - 0x29], 0
jne 0x1400032c8
cmp qword [rbp - 0x21], 0
je 0x1400032c2
mov r8d, 0x2d
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail__nullptr
call fcn.140027440
mov qword [rbp - 0x29], rbx
jmp 0x1400032eb
mov rsi, qword [rbp - 0x21]
test rsi, rsi
jne 0x1400032e8
lea r8d, [rsi + 0x32]
lea rdx, str.....IORequestGeneratorOverlappedQueue.cpp
lea rcx, str._pTail___nullptr
call fcn.140027440
mov qword [rsi], rbx
inc qword [rbp - 0x19]
jmp 0x140002e4b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x102
jne 0x14000333a
jmp 0x140002e4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea rcx, str.read
lea r8, str.write
mov eax, dword [rbp - 0x7d]
cmp dword [rbp - 0x5d], eax
cmova r8, rcx
mov edx, dword [rbp - 0x59]
lea rcx, str.t__u__error_during__s_error_code:__u__n
call fcn.140002900
xor bl, bl
jmp 0x14000334e
mov edx, eax
lea rcx, str.error_during_overlapped_IO_operation__error_code:__u__n
call fcn.140002900
xor bl, bl
jmp 0x14000334e
mov bl, 1
mov r8, qword [rbp - 9]
test r8, r8
je 0x1400033df
mov rcx, qword [rbp + 7]
sub rcx, r8
movabs rax, 0x4924924924924925
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movabs rax, 0x492492492492492
cmp rdx, rax
jbe 0x140003392
call fcn.140025594
int3
imul rax, rdx, 0x38
cmp rax, 0x1000
jb 0x1400033d7
test r8b, 0x1f
je 0x1400033aa
call fcn.140025594
int3
mov rax, qword [r8 - 8]
cmp rax, r8
jb 0x1400033b9
call fcn.140025594
int3
sub r8, rax
cmp r8, 8
jae 0x1400033c8
call fcn.140025594
int3
cmp r8, 0x27
jbe 0x1400033d4
call fcn.140025594
int3
mov r8, rax
mov rcx, r8
call fcn.14001d3f4
movzx eax, bl
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.14001d3d0
mov rbx, qword [rsp + 0x140]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret