Function at 0x14007e2e0
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movapd xmmword [rsp + 0xd0], xmm6
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x14013b028]
xor rax, rsp
mov qword [rsp + 0xc8], rax
movabs rbp, 0xfffffffc00000000
movapd xmm0, xmmword [0x14011bb10]
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 r12, [rsp + 0x30]
mov rcx, r12
mov r9d, 0x5f
call fcn.14007ef40
mov eax, dword [0x140149910]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r15, qword [rax + 0x168]
mov rax, r15
and rax, rbp
cmp rax, qword [0x14013d508]
je 0x14007e783
mov qword [rsp + 0x50], r15
mov eax, dword [0x140149910]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r14, [rax + 0x170]
mov r15, qword [r14]
mov rax, r15
and rax, rbp
cmp rax, qword [0x14013d508]
je 0x14007ed67
lea rax, [rsp + 0x50]
mov qword [rax + 8], r15
mov qword [rax + 0x10], r14
mov rcx, qword [r14]
mov qword [r14], rax
mov qword [rax + 0x18], rcx
mov rax, qword [rax + 8]
test rax, rax
jne 0x14007e790
xor ecx, ecx
mov byte [rsp + 0x70], cl
xor edx, edx
mov byte [rsp + 0x78], dl
mov byte [rsp + 0x88], dl
mov r8d, dword [0x140149910]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
cmp byte [r8 + 0x180], dl
je 0x14007e71a
test cl, cl
jne 0x14007e884
test rax, rax
jne 0x14007e50b
lea r15, [rsp + 0x78]
cmp byte [r15 + 0x10], 0
jne 0x14007ed7c
test r15, r15
je 0x14007edb4
mov rax, qword [fcn.14009f310]
mov rcx, r15
call qword [0x140163008]
mov r14, qword [rsp + 0x78]
mov eax, dword [0x140155138]
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007e8d3
lea rcx, [0x140155130]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007e9c8
mov eax, dword [0x140155158]
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007e908
cmp qword [0x140155150], 0
jne 0x14007e800
mov qword [rsp + 0x80], 0
lea rcx, [0x140155130]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15, qword [rsp + 0x80]
test r15, r15
je 0x14007e503
mov rax, qword [r15 + 0x1f0]
cmp qword [rsp + 0x78], rax
jl 0x14007eda7
mov byte [rsp + 0x88], 1
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14007e524
cmp qword [rsp + 0x58], 0
jne 0x14007e524
xor edx, edx
call fcn.14009d230
mov qword [rsp + 0x98], 0xa
mov al, byte [0x14014c82a]
test al, al
jne 0x14007e751
test esi, esi
js 0x14007ed53
lea r9, [rsp + 0xa0]
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 0x14007ed91
mov esi, dword [rsp + 0xa0]
test esi, esi
js 0x14007ed74
mov qword [rsp + 0x30], 0xa
mov al, byte [0x14014c82a]
test al, al
jne 0x14007e6f3
call fcn.14009fdf0
mov r14d, dword [rax]
call fcn.14009fdf0
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 r15, qword [rsp + 0x50]
test r15, r15
je 0x14007e64f
cmp qword [rsp + 0x58], 0
jne 0x14007e64f
cmp byte [r15 + 0x19], 0
je 0x14007e64f
mov rbx, qword [r15 + 0x28]
add rbx, 0x28
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007e8c5
mov qword [r15 + 0x20], 0
cmp byte [r15 + 0x3b], 0
jne 0x14007e63f
cmp byte [r15 + 0x39], 0
mov rax, qword [r15 + 0x28]
jne 0x14007e892
dec dword [rax + 0x148]
cmp byte [r15 + 0x19], 0
je 0x14007ede0
cmp byte [r15 + 0x18], 0
jne 0x14007e63f
cmp byte [r15 + 0x3a], 0
mov rcx, qword [r15 + 0x28]
jne 0x14007ee0c
dec dword [rcx + 0x14c]
mov word [r15 + 0x39], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
call fcn.14009fdf0
mov dword [rax], r14d
cmp byte [rsp + 0x88], 0
je 0x14007e67a
mov r14, qword [rsp + 0x80]
test r14, r14
jne 0x14007e798
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14007e68c
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x14013d508]
je 0x14007ed5d
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x50]
and rbp, rcx
cmp rbp, qword [0x14013d508]
je 0x14007e6ec
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.1400a1ff0
mov eax, esi
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14005a320
jmp 0x14007e6be
movzx ecx, al
lea r8, [rsp + 0xa0]
mov qword [r8], 0
lea rdx, [rsp + 0x30]
mov r9d, 2
call fcn.140067990
jmp 0x14007e59b
mov eax, dword [0x14015a48c]
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007e93d
cmp byte [0x14015a488], 0
jne 0x14007e50b
jmp 0x14007eaf1
movzx ecx, al
lea r9, [rsp + 0xa0]
mov qword [r9], r12
lea rax, str.ScopedBlockingCall
lea r8, [rsp + 0xc0]
mov qword [r8], rax
lea rdx, [rsp + 0x98]
call fcn.140061e70
jmp 0x14007e53e
mov rcx, r15
call fcn.14005a1e0
jmp 0x14007e392
mov cl, byte [rax + 0x20]
jmp 0x14007e3ed
mov rax, qword [fcn.14009f310]
lea rdi, [rsp + 0x30]
mov rcx, rdi
call qword [0x140163008]
mov r15, qword [rsp + 0x78]
mov rdi, qword [rdi]
xor eax, eax
cmp rdi, r15
setns al
movabs r13, 0x7fffffffffffffff
add rax, r13
mov r12, rdi
sub r12, r15
cmovo r12, rax
cmp r12, 0xf4240
jge 0x14007e9da
mov rdi, qword [rsp + 0x80]
test rdi, rdi
je 0x14007e67a
lock dec dword [rdi]
jne 0x14007e67a
jmp 0x14007ee1d
mov eax, dword [0x140155148]
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007e993
mov r12, qword [0x140155140]
mov r13, r14
test r12, r12
je 0x14007eb66
mov eax, 0x3938700
add rax, qword [r12 + 0x1f0]
movabs r13, 0x7fffffffffffffff
cmovno r13, rax
cmp r13, r14
jle 0x14007eb66
mov qword [rsp + 0x80], r12
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
lea r12, [rsp + 0x30]
jne 0x14007e4d7
jmp 0x14007edb1
test rax, rax
je 0x14007e50b
jmp 0x14007ed15
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x128]
dec rdx
mov qword [rax + 0x128], rdx
cmp rcx, qword [rax + 0x48]
je 0x14007e8ba
cmp qword [rax + 0x138], rdx
jae 0x14007e986
mov word [rax + 0x78], 0
jmp 0x14007e618
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007e5f4
lea rcx, [0x140155138]
call fcn.14009fe10
cmp dword [0x140155138], 0xffffffff
jne 0x14007e483
mov qword [0x140155130], 0
lea rcx, [0x140155138]
call fcn.14009ff10
jmp 0x14007e483
lea rcx, [0x140155158]
call fcn.14009fe10
cmp dword [0x140155158], 0xffffffff
jne 0x14007e4bd
mov qword [0x140155150], 0
lea rcx, [0x140155158]
call fcn.14009ff10
jmp 0x14007e4bd
lea rcx, [0x14015a48c]
call fcn.14009fe10
cmp dword [0x14015a48c], 0xffffffff
jne 0x14007e73f
mov rcx, qword [0x14014cad8]
test rcx, rcx
je 0x14007e96e
lea rdx, str.enable_background_thread_pool
call fcn.14005e540
mov byte [0x14015a488], 1
lea rcx, [0x14015a48c]
call fcn.14009ff10
jmp 0x14007e73f
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x14007e618
lea rcx, [0x140155148]
call fcn.14009fe10
cmp dword [0x140155148], 0xffffffff
jne 0x14007e825
mov qword [0x140155140], 0
lea rcx, [0x140155148]
call fcn.14009ff10
jmp 0x14007e825
lea rcx, [0x140155130]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007e498
mov eax, 0x3938700
add rax, qword [r14 + 0x1f0]
cmovo rax, r13
cmp rax, rdi
jle 0x14007eeae
mov rax, qword [r14 + 0x1f0]
xor edx, edx
cmp r15, rax
setns dl
add rdx, r13
mov rcx, r15
sub rcx, rax
movabs r13, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r13]
cmp rdx, 2
jb 0x14007ee7c
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1401285a0]
call fcn.1400d0928
movsd xmm6, qword [0x1401285a8]
ucomisd xmm6, xmm0
jb 0x14007ee32
maxsd xmm0, qword [0x1401285b0]
cvttsd2si ebx, xmm0
add r13, r12
cmp r13, 2
jb 0x14007ee95
xorps xmm0, xmm0
cvtsi2sd xmm0, r12
divsd xmm0, qword [0x1401285a0]
call fcn.1400d09d8
ucomisd xmm6, xmm0
jb 0x14007ee49
maxsd xmm0, qword [0x1401285b0]
cvttsd2si r15d, xmm0
mov r13, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r15d, ebx
cmp r15d, 0x3c
mov r12d, 0x3c
cmovl r12d, r15d
lea rdi, [r14 + 8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007eae6
cmp ebx, r12d
jge 0x14007ead1
movsxd rax, ebx
movsxd rcx, r12d
inc qword [r14 + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x14007eac4
mov rcx, rdi
call r13
cmp r15d, 0x3d
jl 0x14007e7e1
jmp 0x14007ee62
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007eab9
mov cl, byte [rsp + 0x70]
mov rax, qword [rsp + 0x58]
jmp 0x14007e41f
cmp byte [r12 + 0x200], 0
jne 0x14007ebf3
test r15, r15
je 0x14007eb28
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14007ef1b
mov r13, qword [r12 + 0x1f8]
mov qword [r12 + 0x1f8], r15
test r13, r13
je 0x14007ebf3
jmp 0x14007ef1e
lock dec dword [r12]
jne 0x14007ec24
mov rcx, r12
call fcn.1400022d0
mov rcx, r12
call fcn.14009fde8
jmp 0x14007ec24
xor eax, eax
cmp r14, r13
setns al
movabs rcx, 0x7fffffffffffffff
add rax, rcx
mov rcx, r14
sub rcx, r13
cmovo rcx, rax
cmp rcx, 0x989680
jge 0x14007eef1
mov ecx, 0x208
call fcn.14009fd48
mov r15, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.1400a4130
mov qword [r15 + 0x1f0], r13
mov qword [r15 + 0x1f8], 0
mov byte [r15 + 0x200], 0
test r15, r15
je 0x14007ebea
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14007eeeb
test r12, r12
jne 0x14007eaff
test r15, r15
je 0x14007ec0d
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14007eeee
mov r12, qword [0x140155140]
mov qword [0x140155140], r15
test r12, r12
jne 0x14007eb46
lea rcx, [0x140155130]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r15 + 0x1f0]
xor edx, edx
cmp r14, rax
setns dl
movabs r8, 0x7fffffffffffffff
add rdx, r8
mov rcx, r14
sub rcx, rax
movabs r10, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r10]
cmp rdx, 2
jb 0x14007ef02
mov r14d, 0x3938700
xor eax, eax
cmp r14, rcx
setns al
add rax, r8
sub r14, rcx
cmovo r14, rax
mov ecx, 0x28
call fcn.14009fd48
mov r12, rax
mov dword [rax], 1
lea rax, [0x1400d5e10]
mov qword [r12 + 8], rax
lea rax, [0x1400d5f30]
mov qword [r12 + 0x10], rax
lea rax, [0x14009efd0]
mov qword [r12 + 0x18], rax
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str....._base_threading_scoped_blocking_call_internal.cc
lea r13, [rsp + 0xa0]
mov rcx, r13
mov r9d, 0xca
call fcn.14007ef40
lea r9, [rsp + 0xc0]
mov qword [r9], r12
mov qword [rsp + 0x20], r14
lea r8, [0x1401291bd]
xor ecx, ecx
mov rdx, r13
call fcn.1400020d0
mov qword [rsp + 0x80], r15
lea r12, [rsp + 0x30]
jmp 0x14007e4ec
cmp byte [rax + 0x38], 0
je 0x14007e50b
mov r15, qword [rax + 0x30]
mov qword [rax + 0x30], 0
test r15, r15
je 0x14007e50b
lock dec dword [r15]
jne 0x14007e50b
mov rcx, r15
call fcn.1400022d0
mov rcx, r15
call fcn.14009fde8
jmp 0x14007e50b
mov esi, 0xffffffff
jmp 0x14007e584
call fcn.14005a320
jmp 0x14007e6a4
mov rcx, r15
call fcn.14005a1e0
jmp 0x14007e3c7
int3
mov rcx, r15
call fcn.1400f76d0
mov byte [rsp + 0x88], 0
jmp 0x14007e440
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor esi, esi
cmp eax, 0x26
setne sil
neg esi
jmp 0x14007e584
mov qword [rsp + 0x78], rax
jmp 0x14007e503
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.1400d6560
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, 0x3f9
call fcn.1400d6560
dec qword [rcx + 0x130]
call fcn.1401050c0
jmp 0x14007e63f
mov rcx, rdi
call fcn.1400022d0
mov rcx, rdi
call fcn.14009fde8
jmp 0x14007e67a
xor eax, eax
ucomisd xmm0, qword [0x1401285b0]
mov ebx, 0x7fffffff
cmovb ebx, eax
jmp 0x14007ea57
xor eax, eax
ucomisd xmm0, qword [0x1401285b0]
mov r15d, 0x7fffffff
cmovb r15d, eax
jmp 0x14007ea90
mov r14, qword [r14 + 0x1f8]
sub r15d, r12d
xor ebx, ebx
test r14, r14
jne 0x14007ea97
jmp 0x14007e7e1
xor ecx, ecx
cmp rax, r15
setg cl
lea rax, [0x140128590]
movsd xmm0, qword [rax + rcx*8]
jmp 0x14007ea2c
xor eax, eax
cmp rdi, r15
setl al
lea rcx, [0x140128590]
movsd xmm0, qword [rcx + rax*8]
jmp 0x14007ea6c
lea rbx, [rsp + 0xa0]
mov rcx, rbx
mov rdx, rdi
call fcn.140035b90
mov rbx, qword [rbx]
test rbx, rbx
je 0x14007e9f3
lock dec dword [rbx]
jne 0x14007e9f3
mov rcx, rbx
call fcn.1400022d0
mov rcx, rbx
call fcn.14009fde8
jmp 0x14007e9f3
int3
int3
mov byte [r12 + 0x200], 1
mov r13, r14
jmp 0x14007eb92
mov r9, r10
xor ecx, ecx
cmp rax, r14
setg cl
not rcx
mov r14, r10
add r14, rcx
jmp 0x14007ec87
int3
lock dec dword [r13]
jne 0x14007ebf3
mov rcx, r13
call fcn.1400022d0
mov rcx, r13
call fcn.14009fde8
jmp 0x14007ebf3