Function at 0x1401bf7d0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
movaps xmmword [rsp + 0xf0], xmm6
mov esi, r9d
mov rdi, r8
mov r14, rdx
mov rbx, rcx
mov rax, qword [0x1402cb038]
xor rax, rsp
mov qword [rsp + 0xe8], rax
movapd xmm6, xmmword [0x14029ca60]
movapd xmmword [rsp + 0x70], xmm6
movapd xmmword [rsp + 0x60], xmm6
movapd xmmword [rsp + 0x50], xmm6
movapd xmmword [rsp + 0x40], xmm6
lea rdx, str.Read
lea r8, str.file_win.cc
lea r13, [rsp + 0xc0]
mov rcx, r13
mov r9d, 0x42
call fcn.140158eb0
mov eax, dword [0x1402db110]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r12, qword [rax + 0x180]
mov rax, qword [0x1402cbde0]
and rax, r12
cmp rax, qword [0x1402cbdc8]
je 0x1401bfc57
mov qword [rsp + 0x40], r12
mov eax, dword [0x1402db110]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x188]
mov r12, qword [r15]
mov rax, qword [0x1402cbde0]
and rax, r12
cmp rax, qword [0x1402cbdc8]
je 0x1401c0289
lea rax, [rsp + 0x40]
mov qword [rax + 8], r12
mov qword [rax + 0x10], r15
mov rcx, qword [r15]
mov qword [r15], rax
mov qword [rax + 0x18], rcx
mov rax, qword [rax + 8]
test rax, rax
jne 0x1401bfccc
xor ecx, ecx
mov byte [rsp + 0x60], cl
xor edx, edx
mov byte [rsp + 0x68], dl
mov byte [rsp + 0x78], dl
mov r8d, dword [0x1402db110]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
cmp byte [r8 + 0x208], dl
je 0x1401bfcee
test cl, cl
jne 0x1401bfd2e
test rax, rax
jne 0x1401bf9e2
lea r12, [rsp + 0x68]
cmp byte [r12 + 0x10], 0
jne 0x1401c029e
test r12, r12
je 0x1401c02d9
mov rax, qword [fcn.1401c9410]
mov rcx, r12
call qword [0x1402f5008]
mov r15, qword [rsp + 0x68]
mov eax, dword [0x1402e5c18]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401bfdbc
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401c0277
mov eax, dword [0x1402e5c38]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401bfdf1
cmp qword [0x1402e5c30], 0
jne 0x1401bfbd4
mov qword [rsp + 0x70], 0
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r12, qword [rsp + 0x70]
test r12, r12
jne 0x1401bfbb5
mov byte [rsp + 0x78], 1
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1401bf9fb
cmp qword [rsp + 0x48], 0
jne 0x1401bf9fb
xor edx, edx
call fcn.1401c6f60
test byte [0x1402d90d0], 0x19
jne 0x1401c02b0
mov ebp, 0xffffffff
test r14, r14
js 0x1401bfa69
test esi, esi
js 0x1401bfa69
xorpd xmm0, xmm0
lea rax, [rsp + 0x90]
movapd xmmword [rax + 0x10], xmm0
movapd xmmword [rax], xmm0
mov qword [rax + 0x10], r14
lea r9, [rsp + 0xc0]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rax
mov rdx, rdi
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401bfe6f
mov ebp, dword [rsp + 0xc0]
test ebp, ebp
js 0x1401c0296
test byte [0x1402d90d0], 0x19
jne 0x1401c0305
call fcn.1401cbc78
mov ebx, dword [rax]
call fcn.1401cbc78
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsp + 0x40]
test r14, r14
je 0x1401bfb14
cmp qword [rsp + 0x48], 0
jne 0x1401bfb14
cmp byte [r14 + 0x19], 0
je 0x1401bfb14
mov rdi, qword [r14 + 0x28]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401bfd46
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3b], 0
jne 0x1401bfb04
cmp byte [r14 + 0x39], 0
mov rax, qword [r14 + 0x28]
jne 0x1401bfd54
dec dword [rax + 0x140]
cmp byte [r14 + 0x19], 0
je 0x1401c039d
cmp byte [r14 + 0x18], 0
je 0x1401bfcd4
mov word [r14 + 0x39], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.1401cbc78
mov dword [rax], ebx
cmp byte [rsp + 0x78], 0
je 0x1401bfb38
mov rbx, qword [rsp + 0x70]
test rbx, rbx
jne 0x1401bfc64
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1401bfb4a
mov rcx, qword [rsp + 0x58]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401bfe85
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x40]
mov rax, qword [0x1402cbde0]
and rax, rcx
cmp rax, qword [0x1402cbdc8]
je 0x1401bfbcd
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.1401ce5b0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [r12 + 0x1f0]
cmp qword [rsp + 0x68], rax
jge 0x1401bf9dd
jmp 0x1401c02cc
call fcn.1401509f0
jmp 0x1401bfb87
mov eax, dword [0x1402e5c28]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401bfd87
mov r13, qword [0x1402e5c20]
mov rbp, r15
test r13, r13
je 0x1401bffc1
mov eax, 0x3938700
add rax, qword [r13 + 0x1f0]
movabs rbp, 0x7fffffffffffffff
cmovno rbp, rax
cmp rbp, r15
jle 0x1401bffc1
mov qword [rsp + 0x70], r13
mov eax, 1
lock xadd dword [r13], eax
cmp eax, 0x7fffffff
lea r13, [rsp + 0xc0]
jne 0x1401bf9c2
jmp 0x1401c02d6
mov rcx, r12
call fcn.1401508a0
jmp 0x1401bf87e
mov rax, qword [fcn.1401c9410]
lea rsi, [rsp + 0xc0]
mov rcx, rsi
call qword [0x1402f5008]
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsi]
xor eax, eax
cmp rsi, r14
setns al
movabs r12, 0x7fffffffffffffff
add rax, r12
mov r15, rsi
sub r15, r14
cmovo r15, rax
cmp r15, 0xf4240
jge 0x1401bfe9c
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x1401bfb38
lock dec dword [rsi]
jne 0x1401bfb38
jmp 0x1401c0388
mov cl, byte [rax + 0x20]
jmp 0x1401bf8dd
cmp byte [r14 + 0x3a], 0
mov rcx, qword [r14 + 0x28]
jne 0x1401bffb0
dec dword [rcx + 0x144]
jmp 0x1401bfb04
mov eax, dword [0x1402e6028]
mov ecx, dword [0x1402db110]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1401bfe26
cmp byte [0x1402e6024], 0
jne 0x1401bf9e2
mov cl, byte [rsp + 0x60]
mov rax, qword [rsp + 0x48]
jmp 0x1401bf90c
test rax, rax
je 0x1401bf9e2
cmp byte [rax + 0x38], 0
je 0x1401bf9e2
jmp 0x1401c0428
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401bfaca
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x120]
dec rdx
mov qword [rax + 0x120], rdx
cmp rcx, qword [rax + 0x48]
je 0x1401bfd7c
cmp qword [rax + 0x130], rdx
jae 0x1401bfe8f
mov word [rax + 0x78], 0
jmp 0x1401bfaee
lea rcx, [0x1402e5c28]
call fcn.1401cc16c
cmp dword [0x1402e5c28], 0xffffffff
jne 0x1401bfbf9
mov qword [0x1402e5c20], 0
lea rcx, [0x1402e5c28]
call fcn.1401cc1d4
jmp 0x1401bfbf9
lea rcx, [0x1402e5c18]
call fcn.1401cc16c
cmp dword [0x1402e5c18], 0xffffffff
jne 0x1401bf971
mov qword [0x1402e5c10], 0
lea rcx, [0x1402e5c18]
call fcn.1401cc1d4
jmp 0x1401bf971
lea rcx, [0x1402e5c38]
call fcn.1401cc16c
cmp dword [0x1402e5c38], 0xffffffff
jne 0x1401bf9ab
mov qword [0x1402e5c30], 0
lea rcx, [0x1402e5c38]
call fcn.1401cc1d4
jmp 0x1401bf9ab
lea rcx, [0x1402e6028]
call fcn.1401cc16c
cmp dword [0x1402e6028], 0xffffffff
jne 0x1401bfd13
mov rcx, qword [0x1402e5ab0]
test rcx, rcx
je 0x1401bfe57
lea rdx, str.enable_background_thread_pool
call fcn.1401a49f0
mov byte [0x1402e6024], 1
lea rcx, [0x1402e6028]
call fcn.1401cc1d4
jmp 0x1401bfd13
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ebp, ebp
cmp eax, 0x26
setne bpl
neg ebp
jmp 0x1401bfa69
call fcn.1401509f0
jmp 0x1401bfb66
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x1401bfaee
mov eax, 0x3938700
add rax, qword [rbx + 0x1f0]
cmovo rax, r12
cmp rax, rsi
jle 0x1401c03eb
mov rax, qword [rbx + 0x1f0]
xor edx, edx
cmp r14, rax
setns dl
add rdx, r12
mov rcx, r14
sub rcx, rax
movabs r12, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r12]
cmp rdx, 2
jb 0x1401c03d2
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1402a8c80]
call fcn.140206160
movsd xmm6, qword [0x1402909c0]
ucomisd xmm6, xmm0
jb 0x1401c01f0
maxsd xmm0, qword [0x1402909d8]
cvttsd2si edi, xmm0
add r12, r15
cmp r12, 2
jb 0x1401c01d7
xorps xmm0, xmm0
cvtsi2sd xmm0, r15
divsd xmm0, qword [0x1402a8c80]
call fcn.140206210
ucomisd xmm6, xmm0
jb 0x1401c01be
maxsd xmm0, qword [0x1402909d8]
cvttsd2si r14d, xmm0
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r14d, edi
cmp r14d, 0x3c
mov r13d, 0x3c
cmovl r13d, r14d
lea rsi, [rbx + 8]
mov rcx, rsi
call r15
test al, al
je 0x1401c0221
cmp edi, r13d
jge 0x1401bff9b
movsxd rax, edi
movsxd rcx, r13d
inc qword [rbx + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x1401bff8e
mov rcx, rsi
call r12
cmp r14d, 0x3d
jl 0x1401bfcb0
jmp 0x1401c0207
dec qword [rcx + 0x128]
call fcn.140207030
jmp 0x1401bfb04
xor eax, eax
cmp r15, rbp
setns al
movabs rcx, 0x7fffffffffffffff
add rax, rcx
mov rcx, r15
sub rcx, rbp
cmovo rcx, rax
cmp rcx, 0x989680
jge 0x1401c022f
mov ecx, 0x208
call fcn.1401cbbc4
mov r12, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.1401d06e0
mov qword [r12 + 0x1f0], rbp
mov qword [r12 + 0x1f8], 0
mov byte [r12 + 0x200], 0
test r12, r12
je 0x1401c0049
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c03c9
test r13, r13
je 0x1401c008a
cmp byte [r13 + 0x200], 0
jne 0x1401c008a
test r12, r12
je 0x1401c0073
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c03cf
mov rbp, qword [r13 + 0x1f8]
mov qword [r13 + 0x1f8], r12
test rbp, rbp
jne 0x1401c0258
test r12, r12
je 0x1401c00a5
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
je 0x1401c03cc
mov r13, qword [0x1402e5c20]
mov qword [0x1402e5c20], r12
test r13, r13
je 0x1401c00cf
lock dec dword [r13]
jne 0x1401c00cf
mov rcx, r13
call fcn.140016cb0
mov rcx, r13
call fcn.1401cbbbc
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r12 + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
movabs r8, 0x7fffffffffffffff
add rdx, r8
mov rcx, r15
sub rcx, rax
movabs r10, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r10]
cmp rdx, 2
jb 0x1401c023f
mov r15d, 0x3938700
xor eax, eax
cmp r15, rcx
setns al
add rax, r8
sub r15, rcx
cmovo r15, rax
mov ecx, 0x28
call fcn.1401cbbc4
mov r13, rax
mov dword [rax], 1
lea rax, [0x140058660]
mov qword [r13 + 8], rax
lea rax, [0x14005e8f0]
mov qword [r13 + 0x10], rax
lea rax, [0x1401ca7d0]
mov qword [r13 + 0x18], rax
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str.scoped_blocking_call_internal.cc
lea rbp, [rsp + 0x90]
mov rcx, rbp
mov r9d, 0xca
call fcn.140158eb0
lea r9, [rsp + 0x88]
mov qword [r9], r13
mov qword [rsp + 0x20], r15
lea r8, [0x1402a955e]
xor ecx, ecx
mov rdx, rbp
call fcn.140016070
mov qword [rsp + 0x70], r12
lea r13, [rsp + 0xc0]
jmp 0x1401bf9d4
xor eax, eax
ucomisd xmm0, qword [0x1402909d8]
mov r14d, 0x7fffffff
cmovb r14d, eax
jmp 0x1401bff52
xor eax, eax
cmp rsi, r14
setl al
lea rcx, [0x1402a70d0]
movsd xmm0, qword [rcx + rax*8]
jmp 0x1401bff2e
xor eax, eax
ucomisd xmm0, qword [0x1402909d8]
mov edi, 0x7fffffff
cmovb edi, eax
jmp 0x1401bff19
mov rbx, qword [rbx + 0x1f8]
sub r14d, r13d
xor edi, edi
test rbx, rbx
jne 0x1401bff60
jmp 0x1401bfcb0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401bff83
mov byte [r13 + 0x200], 1
mov rbp, r15
jmp 0x1401bffed
mov r9, r10
xor ecx, ecx
cmp rax, r15
setg cl
not rcx
mov r15, r10
add r15, rcx
jmp 0x1401c0133
lock dec dword [rbp]
jne 0x1401c008a
mov rcx, rbp
call fcn.140016cb0
mov rcx, rbp
call fcn.1401cbbbc
jmp 0x1401c008a
lea rcx, [0x1402e5c10]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401bf986
mov rcx, r12
call fcn.1401508a0
jmp 0x1401bf8b7
int3
mov rcx, r12
call fcn.1402495d0
mov byte [rsp + 0x78], 0
jmp 0x1401bf92e
lea rdx, [rsp + 0x90]
mov qword [rdx], r13
lea rcx, str.ScopedBlockingCall
call fcn.1402380c0
jmp 0x1401bfa08
mov qword [rsp + 0x68], rax
jmp 0x1401bf9dd
int3
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x28
call fcn.140207060
lea rsi, [rsp + 0xc0]
movapd xmmword [rsi + 0x10], xmm6
movapd xmmword [rsi], xmm6
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x1402d90d0]
lea r9, [0x1402a4a7e]
mov rcx, rsi
mov dl, 0x45
call fcn.140206a10
mov rax, qword [rsi]
test rax, rax
je 0x1401c0376
mov dl, byte [rsp + 0xd8]
mov r8, qword [rsp + 0xc8]
xor r9d, r9d
lea rcx, [rsp + 0x90]
mov qword [rcx], r9
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], r8
mov qword [rcx + 0x18], r9
mov byte [rcx + 0x20], dl
call fcn.140206a20
lea rcx, [rsp + 0xc0]
call fcn.1402308a0
jmp 0x1401bfa76
mov rcx, rsi
call fcn.140016cb0
mov rcx, rsi
call fcn.1401cbbbc
jmp 0x1401bfb38
lea rax, str.optional_operator_called_on_a_disengaged_value
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s_n
lea rdx, str....._third_partylibc_srcincludeoptional
lea r9, str.this__has_value__
mov r8d, 0x3fd
call fcn.140207060
int3
int3
int3
xor ecx, ecx
cmp rax, r14
setg cl
lea rax, [0x1402a70d0]
movsd xmm0, qword [rax + rcx*8]
jmp 0x1401bfeee
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov rdx, rsi
call fcn.1400586d0
mov rdi, qword [rdi]
test rdi, rdi
je 0x1401bfeb5
lock dec dword [rdi]
jne 0x1401bfeb5
mov rcx, rdi
call fcn.140016cb0
mov rcx, rdi
call fcn.1401cbbbc
jmp 0x1401bfeb5
mov r12, qword [rax + 0x30]
mov qword [rax + 0x30], 0
test r12, r12
je 0x1401bf9e2
lock dec dword [r12]
jne 0x1401bf9e2
mov rcx, r12
call fcn.140016cb0
mov rcx, r12
call fcn.1401cbbbc
jmp 0x1401bf9e2