Function at 0x140119d00
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
movapd xmmword [rsp + 0xc0], xmm6
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x140219028]
xor rax, rsp
mov qword [rsp + 0xb8], rax
movabs r13, 0xfffffffc00000000
movapd xmm0, xmmword [0x1401ee3a0]
movapd xmmword [rsp + 0x80], xmm0
movapd xmmword [rsp + 0x70], xmm0
movapd xmmword [rsp + 0x60], xmm0
movapd xmmword [rsp + 0x50], xmm0
lea rdx, str.ReadAtCurrentPos
lea r8, str....._base_files_file_win.cc
lea rcx, [rsp + 0x30]
mov r9d, 0x5f
call fcn.1400bab70
mov eax, dword [0x140228d28]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r14, qword [rax + 0x180]
mov rax, r14
and rax, r13
cmp rax, qword [0x140219dc8]
je 0x14011a16f
mov qword [rsp + 0x50], r14
mov eax, dword [0x140228d28]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x188]
mov r14, qword [r15]
mov rax, r14
and rax, r13
cmp rax, qword [0x140219dc8]
je 0x14011a69b
lea rax, [rsp + 0x50]
mov qword [rax + 8], r14
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 0x14011a17c
xor ecx, ecx
mov byte [rsp + 0x70], cl
xor edx, edx
mov byte [rsp + 0x78], dl
mov byte [rsp + 0x88], dl
mov r8d, dword [0x140228d28]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
cmp byte [r8 + 0x1a0], dl
je 0x14011a138
test cl, cl
jne 0x14011a201
test rax, rax
jne 0x140119f28
lea r14, [rsp + 0x78]
cmp byte [r14 + 0x10], 0
jne 0x14011a6b0
test r14, r14
je 0x14011a6e8
mov rax, qword [fcn.140109860]
mov rcx, r14
call qword [0x140243008]
mov r12, qword [rsp + 0x78]
mov eax, dword [0x140231d38]
mov ecx, dword [0x140228d28]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14011a298
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011a34b
mov eax, dword [0x140231d58]
mov ecx, dword [0x140228d28]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14011a2cd
cmp qword [0x140231d50], 0
jne 0x14011a184
mov qword [rsp + 0x80], 0
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r14, qword [rsp + 0x80]
test r14, r14
je 0x140119f20
mov rax, qword [r14 + 0x1f0]
cmp qword [rsp + 0x78], rax
jl 0x14011a6db
mov byte [rsp + 0x88], 1
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140119f41
cmp qword [rsp + 0x58], 0
jne 0x140119f41
xor edx, edx
call fcn.140127da0
test esi, esi
js 0x14011a687
lea r9, [rsp + 0x90]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rbx]
mov qword [rsp + 0x20], 0
mov rdx, rdi
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14011a6c5
mov esi, dword [rsp + 0x90]
test esi, esi
js 0x14011a6a8
call fcn.14012ce10
mov ebp, dword [rax]
call fcn.14012ce10
mov dword [rax], 0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsp + 0x50]
test r14, r14
je 0x14011a03a
cmp qword [rsp + 0x58], 0
jne 0x14011a03a
cmp byte [r14 + 0x19], 0
je 0x14011a03a
mov rbx, qword [r14 + 0x28]
add rbx, 0x28
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011a248
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3b], 0
jne 0x14011a02a
cmp byte [r14 + 0x39], 0
mov rax, qword [r14 + 0x28]
jne 0x14011a219
dec dword [rax + 0x140]
cmp byte [r14 + 0x19], 0
je 0x14011a725
cmp byte [r14 + 0x18], 0
jne 0x14011a02a
cmp byte [r14 + 0x3a], 0
mov rcx, qword [r14 + 0x28]
jne 0x14011a714
dec dword [rcx + 0x144]
mov word [r14 + 0x39], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.14012ce10
mov dword [rax], ebp
cmp byte [rsp + 0x88], 0
je 0x14011a0bf
mov r14, qword [rsp + 0x80]
test r14, r14
je 0x14011a0bf
mov rax, qword [fcn.140109860]
lea rdi, [rsp + 0x30]
mov rcx, rdi
call qword [0x140243008]
mov r15, qword [rsp + 0x78]
mov rdi, qword [rdi]
xor eax, eax
cmp rdi, r15
setns al
movabs rbp, 0x7fffffffffffffff
add rax, rbp
mov r12, rdi
sub r12, r15
cmovo r12, rax
cmp r12, 0xf4240
jge 0x14011a36b
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x14011a0bf
lock dec dword [rdi]
je 0x14011a751
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14011a0d1
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
and rax, r13
cmp rax, qword [0x140219dc8]
je 0x14011a691
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x50]
and r13, rcx
cmp r13, qword [0x140219dc8]
je 0x14011a131
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.14012f6f0
mov eax, esi
movaps xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400ad190
jmp 0x14011a103
mov eax, dword [0x140233938]
mov ecx, dword [0x140228d28]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14011a302
cmp byte [0x140233934], 0
jne 0x140119f28
jmp 0x14011a35d
mov rcx, r14
call fcn.1400ad040
jmp 0x140119daf
mov cl, byte [rax + 0x20]
jmp 0x140119e0a
mov eax, dword [0x140231d48]
mov ecx, dword [0x140228d28]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14011a263
mov r15, qword [0x140231d40]
mov rbp, r12
test r15, r15
je 0x14011a4c2
mov eax, 0x3938700
add rax, qword [r15 + 0x1f0]
movabs rbp, 0x7fffffffffffffff
cmovno rbp, rax
cmp rbp, r12
jle 0x14011a4c2
mov qword [rsp + 0x80], r15
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
jne 0x140119ef4
jmp 0x14011a6e5
test rax, rax
je 0x140119f28
cmp byte [rax + 0x38], 0
je 0x140119f28
jmp 0x14011a846
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x120]
dec rdx
mov qword [rax + 0x120], rdx
cmp rcx, qword [rax + 0x48]
je 0x14011a23d
cmp qword [rax + 0x130], rdx
jae 0x14011a256
mov word [rax + 0x78], 0
jmp 0x14011a003
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140119fdf
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x14011a003
lea rcx, [0x140231d48]
call fcn.14012ce30
cmp dword [0x140231d48], 0xffffffff
jne 0x14011a1a9
mov qword [0x140231d40], 0
lea rcx, [0x140231d48]
call fcn.14012ce98
jmp 0x14011a1a9
lea rcx, [0x140231d38]
call fcn.14012ce30
cmp dword [0x140231d38], 0xffffffff
jne 0x140119ea0
mov qword [0x140231d30], 0
lea rcx, [0x140231d38]
call fcn.14012ce98
jmp 0x140119ea0
lea rcx, [0x140231d58]
call fcn.14012ce30
cmp dword [0x140231d58], 0xffffffff
jne 0x140119eda
mov qword [0x140231d50], 0
lea rcx, [0x140231d58]
call fcn.14012ce98
jmp 0x140119eda
lea rcx, [0x140233938]
call fcn.14012ce30
cmp dword [0x140233938], 0xffffffff
jne 0x14011a15d
mov rcx, qword [0x140231be8]
test rcx, rcx
je 0x14011a333
lea rdx, str.enable_background_thread_pool
call fcn.140111ee0
mov byte [0x140233934], 1
lea rcx, [0x140233938]
call fcn.14012ce98
jmp 0x14011a15d
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140119eb5
mov cl, byte [rsp + 0x70]
mov rax, qword [rsp + 0x58]
jmp 0x140119e3c
mov eax, 0x3938700
add rax, qword [r14 + 0x1f0]
cmovo rax, rbp
cmp rax, rdi
jle 0x14011a7e6
mov rax, qword [r14 + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
add rdx, rbp
mov rcx, r15
sub rcx, rax
movabs rbp, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + rbp]
cmp rdx, 2
jb 0x14011a7ae
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1401f7d88]
call fcn.140166fd0
movsd xmm6, qword [0x1401e2300]
ucomisd xmm6, xmm0
jb 0x14011a766
maxsd xmm0, qword [0x1401e2318]
cvttsd2si ebx, xmm0
add rbp, r12
cmp rbp, 2
jb 0x14011a7c7
xorps xmm0, xmm0
cvtsi2sd xmm0, r12
divsd xmm0, qword [0x1401f7d88]
call fcn.140167080
ucomisd xmm6, xmm0
jb 0x14011a77d
maxsd xmm0, qword [0x1401e2318]
cvttsd2si ebp, xmm0
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add ebp, ebx
cmp ebp, 0x3c
mov r15d, 0x3c
cmovl r15d, ebp
lea rdi, [r14 + 8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011a473
cmp ebx, r15d
jge 0x14011a45f
movsxd rax, ebx
movsxd rcx, r15d
inc qword [r14 + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x14011a452
mov rcx, rdi
call r12
cmp ebp, 0x3d
jl 0x14011a0a9
jmp 0x14011a794
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011a447
cmp byte [r15 + 0x200], 0
jne 0x14011a54f
test r14, r14
je 0x14011a4a6
mov eax, 1
lock xadd dword [r14], eax
cmp eax, 0x7fffffff
je 0x14011a87a
mov rbp, qword [r15 + 0x1f8]
mov qword [r15 + 0x1f8], r14
test rbp, rbp
je 0x14011a54f
jmp 0x14011a87d
xor eax, eax
cmp r12, rbp
setns al
movabs rcx, 0x7fffffffffffffff
add rax, rcx
mov rcx, r12
sub rcx, rbp
cmovo rcx, rax
cmp rcx, 0x989680
jge 0x14011a823
mov ecx, 0x208
call fcn.14012cd5c
mov r14, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.140131830
mov qword [r14 + 0x1f0], rbp
mov qword [r14 + 0x1f8], 0
mov byte [r14 + 0x200], 0
test r14, r14
je 0x14011a546
mov eax, 1
lock xadd dword [r14], eax
cmp eax, 0x7fffffff
je 0x14011a7e0
test r15, r15
jne 0x14011a47e
test r14, r14
je 0x14011a569
mov eax, 1
lock xadd dword [r14], eax
cmp eax, 0x7fffffff
je 0x14011a7e3
mov r15, qword [0x140231d40]
mov qword [0x140231d40], r14
test r15, r15
jne 0x14011a668
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r14 + 0x1f0]
xor edx, edx
cmp r12, rax
setns dl
movabs r8, 0x7fffffffffffffff
add rdx, r8
mov rcx, r12
sub rcx, rax
movabs rbp, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + rbp]
cmp rdx, 2
jb 0x14011a833
mov ebp, 0x3938700
xor eax, eax
cmp rbp, rcx
setns al
add rax, r8
sub rbp, rcx
cmovo rbp, rax
mov ecx, 0x28
call fcn.14012cd5c
mov r15, rax
mov dword [rax], 1
lea rax, [0x140169bd0]
mov qword [r15 + 8], rax
lea rax, [0x140169eb0]
mov qword [r15 + 0x10], rax
lea rax, [0x140193540]
mov qword [r15 + 0x18], rax
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str....._base_threading_scoped_blocking_call_internal.cc
lea r12, [rsp + 0x90]
mov rcx, r12
mov r9d, 0xca
call fcn.1400bab70
lea r9, [rsp + 0xb0]
mov qword [r9], r15
mov qword [rsp + 0x20], rbp
lea r8, [0x1401f9aea]
xor ecx, ecx
mov rdx, r12
call fcn.14000ec00
mov qword [rsp + 0x80], r14
jmp 0x140119f09
lock dec dword [r15]
jne 0x14011a580
mov rcx, r15
call fcn.14000baa0
mov rcx, r15
call fcn.14012cd4c
jmp 0x14011a580
mov esi, 0xffffffff
jmp 0x140119f87
call fcn.1400ad190
jmp 0x14011a0e9
mov rcx, r14
call fcn.1400ad040
jmp 0x140119de4
int3
mov rcx, r14
call fcn.14019a890
mov byte [rsp + 0x88], 0
jmp 0x140119e5d
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
cmp eax, 0x26
setne sil
neg esi
jmp 0x140119f87
mov qword [rsp + 0x78], rax
jmp 0x140119f20
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.140167fb0
dec qword [rcx + 0x128]
call fcn.1401a4170
jmp 0x14011a02a
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.140167fb0
mov rcx, rdi
call fcn.14000baa0
mov rcx, rdi
call fcn.14012cd4c
jmp 0x14011a0bf
xor eax, eax
ucomisd xmm0, qword [0x1401e2318]
mov ebx, 0x7fffffff
cmovb ebx, eax
jmp 0x14011a3e8
xor eax, eax
ucomisd xmm0, qword [0x1401e2318]
mov ebp, 0x7fffffff
cmovb ebp, eax
jmp 0x14011a420
mov r14, qword [r14 + 0x1f8]
sub ebp, r15d
xor ebx, ebx
test r14, r14
jne 0x14011a427
jmp 0x14011a0a9
xor ecx, ecx
cmp rax, r15
setg cl
lea rax, [0x1401f7d70]
movsd xmm0, qword [rax + rcx*8]
jmp 0x14011a3bd
xor eax, eax
cmp rdi, r15
setl al
lea rcx, [0x1401f7d70]
movsd xmm0, qword [rcx + rax*8]
jmp 0x14011a3fd
int3
int3
lea rbx, [rsp + 0x90]
mov rcx, rbx
mov rdx, rdi
call fcn.1400567a0
mov rbx, qword [rbx]
test rbx, rbx
je 0x14011a384
lock dec dword [rbx]
jne 0x14011a384
mov rcx, rbx
call fcn.14000baa0
mov rcx, rbx
call fcn.14012cd4c
jmp 0x14011a384
mov byte [r15 + 0x200], 1
mov rbp, r12
jmp 0x14011a4ee
xor ecx, ecx
cmp rax, r12
setg cl
not rcx
add rbp, rcx
jmp 0x14011a5e2
mov r14, qword [rax + 0x30]
mov qword [rax + 0x30], 0
test r14, r14
je 0x140119f28
lock dec dword [r14]
jne 0x140119f28
mov rcx, r14
call fcn.14000baa0
mov rcx, r14
call fcn.14012cd4c
jmp 0x140119f28
int3
lock dec dword [rbp]
jne 0x14011a54f
mov rcx, rbp
call fcn.14000baa0
mov rcx, rbp
call fcn.14012cd4c
jmp 0x14011a54f