Function at 0x1400b8740
Capabilities:
Check for time delay via queryperformancecounter
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1b8
mov qword [rbp - 0x18], 0xfffffffffffffffe
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rax - 0xa8], xmm11
movaps xmmword [rax - 0xb8], xmm12
movaps xmmword [rax - 0xc8], xmm13
lea rax, [0x14011cf48]
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x50], 0x104
mov dword [rbp - 0x4c], 1
mov rsi, qword [rbp + 0x100]
mov r8, qword [rsi]
lea rdx, str.Measure_read_speed_for_file__s
lea rcx, [rbp - 0x58]
call fcn.14000b5d0
mov bl, 1
mov ecx, 0x4000
call fcn.140057728
mov qword [rsp + 0x60], rax
xor r15d, r15d
xorps xmm10, xmm10
movaps xmm11, xmm10
mov eax, dword [0x140178818]
test bl, al
jne 0x1400b881e
or eax, 1
mov dword [0x140178818], eax
call fcn.140056e10
lea rcx, [0x140109670]
call fcn.14005f2e8
nop
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x20000000
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b8899
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [0x14011cfb8]
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], 0x114
mov dword [rsp + 0x7c], 1
mov r9, qword [rsi]
mov r8d, ebx
lea rdx, str.CreateFile_failed_with_error_code:_0x_08x__path:__s_
lea rcx, [rsp + 0x70]
call fcn.14000b5d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
xor edi, edi
test bl, bl
je 0x1400b88ed
lea rdx, [rbp - 0x70]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x1400b88e9
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x14011d090]
mov qword [rbp - 0x80], rcx
mov dword [rbp - 0x78], 0x121
mov dword [rbp - 0x74], 1
mov r9, qword [rsi]
mov r8d, eax
lea rdx, str.GetFileSizeEx_failed_with_error_code:_0x_08x__path:__s_
lea rcx, [rbp - 0x80]
call fcn.14000b5d0
xor bl, bl
jmp 0x1400b88ed
mov rdi, qword [rbp - 0x70]
mov r13, rdi
shr r13, 0xe
mov dword [rsp + 0x40], 0x4000
test r13d, r13d
jne 0x1400b890b
mov dword [rsp + 0x40], edi
mov r13d, 1
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xor ecx, ecx
call fcn.140062bf8
mov rcx, rax
call fcn.140062bb4
movsd xmm9, qword [rbp + 0x128]
movsd xmm8, qword [rbp + 0x120]
subsd xmm9, xmm8
divsd xmm9, qword [0x1401352f8]
xorpd xmm7, xmm7
xor edi, edi
mov r14, qword [rbp + 0x118]
movsd xmm13, qword [0x14012fbf8]
movsd xmm12, qword [0x14012fd48]
lea rax, str.COperationTimeCalculator::Start
test bl, bl
je 0x1400b8cc7
mov rcx, qword [0x1401786e8]
test rcx, rcx
jne 0x1400b89a3
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x60], 0x18a
mov dword [rbp - 0x5c], 2
lea rdx, [0x140115cc0]
lea rcx, [rbp - 0x68]
call fcn.14000b5d0
jmp 0x1400b89a9
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd xmm1, qword [0x140178728]
addsd xmm1, xmm13
lea rcx, [0x140178690]
call fcn.1400a99a0
call fcn.140062bcc
xor edx, edx
div r13d
imul edx, dword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x1400b8a24
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, [0x14011d130]
mov qword [rbp - 0x38], rax
mov dword [rbp - 0x30], 0x142
mov dword [rbp - 0x2c], 1
mov r9, qword [rsi]
mov r8d, ebx
lea rdx, str.SetFilePointer_failed_with_error_code:_0x_08x__path:__s_
lea rcx, [rbp - 0x38]
call fcn.14000b5d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
mov dword [rsp + 0x44], ebx
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x44]
mov r8d, 0x4000
mov rdx, qword [rsp + 0x60]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, eax
mov eax, dword [0x1401785a4]
test al, 1
jne 0x1400b8a8a
or eax, 1
mov dword [0x1401785a4], eax
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov r11, qword [rsp + 0x48]
mov qword [0x1401785a8], r11
jmp 0x1400b8a91
mov r11, qword [0x1401785a8]
test r11, r11
jne 0x1400b8a9c
movaps xmm6, xmm10
jmp 0x1400b8b08
lea rcx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r11d, dword [0x1401785a4]
test r11b, 1
jne 0x1400b8ae1
or r11d, 1
mov dword [0x1401785a4], r11d
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov r11, qword [rsp + 0x50]
mov qword [0x1401785a8], r11
jmp 0x1400b8ae8
mov r11, qword [0x1401785a8]
mov rax, qword [rsp + 0x68]
sub rax, qword [rsp + 0x58]
pxor xmm6, xmm6
cvtsi2ss xmm6, rax
pxor xmm0, xmm0
cvtsi2ss xmm0, r11
divss xmm6, xmm0
addsd xmm8, xmm9
test r14, r14
je 0x1400b8c23
movapd xmm0, xmm8
subsd xmm0, xmm7
comisd xmm0, xmm12
jb 0x1400b8c23
mov eax, dword [0x140178818]
test al, 1
jne 0x1400b8b4f
or eax, 1
mov dword [0x140178818], eax
call fcn.140056e10
lea rcx, [0x140109670]
call fcn.14005f2e8
nop
lea rcx, [0x140178690]
call fcn.1400a92a0
test al, al
je 0x1400b8b7a
lea rcx, [0x140178690]
call fcn.1400a97c0
movss dword [0x14017871c], xmm0
mov byte [0x140178718], 1
mov eax, dword [0x140178818]
test al, 1
jne 0x1400b8b9f
or eax, 1
mov dword [0x140178818], eax
call fcn.140056e10
lea rcx, [0x140109670]
call fcn.14005f2e8
nop
lea rdx, [rbp - 0x10]
lea rcx, [0x140178690]
call fcn.1400a9b70
mov rcx, qword [rsi]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
movapd xmm3, xmm8
mov edx, 0xa
lea r8d, [rdx - 8]
lea rcx, [rbp - 8]
call fcn.140031bc0
nop
mov rdx, rax
mov rcx, r14
call fcn.140022750
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b8bff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400b8c1e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
movapd xmm7, xmm8
test ebx, ebx
je 0x1400b8c72
mov eax, dword [rsp + 0x44]
add r15, rax
addss xmm11, xmm6
mov bl, 1
mov rcx, qword [r14 + 0x28]
xor eax, eax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov rax, qword [rcx]
call qword [rax + 0x28]
mov edx, eax
lea r9, [rbp - 0x28]
movzx r8d, bl
mov rcx, r14
call fcn.1400c7cc0
test al, al
sete al
test al, al
jne 0x1400b8cc2
lea rcx, [0x140178690]
call fcn.1400a9610
jmp 0x1400b8cb3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rax, str.CDiskPerformanceMonitor::MeasureFileReadSpeed
mov qword [rbp - 0x48], rax
mov dword [rbp - 0x40], 0x160
mov dword [rbp - 0x3c], 1
mov r9, qword [rsi]
mov r8d, ebx
lea rdx, str.ReadFile_failed_with_error_code:_0x_08x__path:__s_
lea rcx, [rbp - 0x48]
call fcn.14000b5d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor bl, bl
inc edi
cmp edi, 0x3e8
jge 0x1400b8cc7
jmp 0x1400b8964
mov dil, 1
jmp 0x1400b8cca
xor dil, dil
cmp r12, 0xffffffffffffffff
je 0x1400b8cd9
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rbp + 0x108]
test rax, rax
je 0x1400b8ce8
mov qword [rax], r15
mov rcx, qword [rbp + 0x110]
test rcx, rcx
je 0x1400b8cf9
movss dword [rcx], xmm11
mov rcx, qword [rbp + 0x130]
test rcx, rcx
je 0x1400b8d08
mov byte [rcx], dil
mov rcx, qword [rsp + 0x60]
call fcn.14005e57c
movzx eax, bl
lea r11, [rsp + 0x1b8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
movaps xmm13, xmmword [r11 - 0x88]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret