Function at 0x14011dd20
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, r9d
mov r12, r8
mov r14, 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.Read
lea r8, str....._base_files_file_win.cc
lea rcx, [rsp + 0x30]
mov r9d, 0x42
call fcn.1400bab70
mov eax, dword [0x140228d28]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r15, qword [rax + 0x180]
mov rax, r15
and rax, r13
cmp rax, qword [0x140219dc8]
je 0x14011e1a7
mov qword [rsp + 0x50], r15
mov eax, dword [0x140228d28]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rdi, [rax + 0x188]
mov r15, qword [rdi]
mov rax, r15
and rax, r13
cmp rax, qword [0x140219dc8]
je 0x14011e6fb
lea rax, [rsp + 0x50]
mov qword [rax + 8], r15
mov qword [rax + 0x10], rdi
mov rcx, qword [rdi]
mov qword [rdi], rax
mov qword [rax + 0x18], rcx
mov rax, qword [rax + 8]
test rax, rax
jne 0x14011e1b4
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 0x14011e170
test cl, cl
jne 0x14011e245
test rax, rax
jne 0x14011df4b
lea r15, [rsp + 0x78]
cmp byte [r15 + 0x10], 0
jne 0x14011e710
test r15, r15
je 0x14011e732
mov rax, qword [fcn.140109860]
mov rcx, r15
call qword [0x140243008]
mov rdi, 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 0x14011e2dc
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011e38f
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 0x14011e311
cmp qword [0x140231d50], 0
jne 0x14011e1bc
mov qword [rsp + 0x80], 0
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15, qword [rsp + 0x80]
test r15, r15
je 0x14011df43
mov rax, qword [r15 + 0x1f0]
cmp qword [rsp + 0x78], rax
jl 0x14011e725
mov byte [rsp + 0x88], 1
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14011df64
cmp qword [rsp + 0x58], 0
jne 0x14011df64
xor edx, edx
call fcn.140127da0
mov ebp, 0xffffffff
test r14, r14
js 0x14011dfbf
test esi, esi
js 0x14011dfbf
xorpd xmm0, xmm0
lea rax, [rsp + 0x90]
movapd xmmword [rax + 0x10], xmm0
movapd xmmword [rax], xmm0
mov qword [rax + 0x10], r14
lea r9, [rsp + 0x30]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rax
mov rdx, r12
mov r8d, esi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14011e3af
mov ebp, dword [rsp + 0x30]
test ebp, ebp
js 0x14011e708
call fcn.14012ce10
mov ebx, dword [rax]
call fcn.14012ce10
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 + 0x50]
test r14, r14
je 0x14011e072
cmp qword [rsp + 0x58], 0
jne 0x14011e072
cmp byte [r14 + 0x19], 0
je 0x14011e072
mov rdi, qword [r14 + 0x28]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011e28c
mov qword [r14 + 0x20], 0
cmp byte [r14 + 0x3b], 0
jne 0x14011e062
cmp byte [r14 + 0x39], 0
mov rax, qword [r14 + 0x28]
jne 0x14011e25d
dec dword [rax + 0x140]
cmp byte [r14 + 0x19], 0
je 0x14011e76f
cmp byte [r14 + 0x18], 0
jne 0x14011e062
cmp byte [r14 + 0x3a], 0
mov rcx, qword [r14 + 0x28]
jne 0x14011e75e
dec dword [rcx + 0x144]
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.14012ce10
mov dword [rax], ebx
cmp byte [rsp + 0x88], 0
je 0x14011e0f7
mov rbx, qword [rsp + 0x80]
test rbx, rbx
je 0x14011e0f7
mov rax, qword [fcn.140109860]
lea rsi, [rsp + 0x30]
mov rcx, rsi
call qword [0x140243008]
mov r14, qword [rsp + 0x78]
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 0x14011e3c5
mov rsi, qword [rsp + 0x80]
test rsi, rsi
je 0x14011e0f7
lock dec dword [rsi]
je 0x14011e79b
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14011e109
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 0x14011e6f1
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x50]
and r13, rcx
cmp r13, qword [0x140219dc8]
je 0x14011e169
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.14012f6f0
mov eax, ebp
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 0x14011e13b
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 0x14011e346
cmp byte [0x140233934], 0
jne 0x14011df4b
jmp 0x14011e3a1
mov rcx, r15
call fcn.1400ad040
jmp 0x14011ddd2
mov cl, byte [rax + 0x20]
jmp 0x14011de2d
mov qword [rsp + 0x28], r12
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 0x14011e2a7
mov r12, qword [0x140231d40]
mov rbp, rdi
test r12, r12
je 0x14011e523
mov eax, 0x3938700
add rax, qword [r12 + 0x1f0]
movabs rbp, 0x7fffffffffffffff
cmovno rbp, rax
cmp rbp, rdi
jle 0x14011e523
mov qword [rsp + 0x80], r12
mov eax, 1
lock xadd dword [r12], eax
cmp eax, 0x7fffffff
mov r12, qword [rsp + 0x28]
jne 0x14011df17
jmp 0x14011e72f
test rax, rax
je 0x14011df4b
cmp byte [rax + 0x38], 0
je 0x14011df4b
jmp 0x14011e880
mov rcx, qword [rax + 0x40]
mov rdx, qword [rax + 0x120]
dec rdx
mov qword [rax + 0x120], rdx
cmp rcx, qword [rax + 0x48]
je 0x14011e281
cmp qword [rax + 0x130], rdx
jae 0x14011e29a
mov word [rax + 0x78], 0
jmp 0x14011e03b
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011e017
movzx ecx, word [rcx + 0x10]
mov word [rax + 0x78], cx
jmp 0x14011e03b
lea rcx, [0x140231d48]
call fcn.14012ce30
cmp dword [0x140231d48], 0xffffffff
jne 0x14011e1e6
mov qword [0x140231d40], 0
lea rcx, [0x140231d48]
call fcn.14012ce98
jmp 0x14011e1e6
lea rcx, [0x140231d38]
call fcn.14012ce30
cmp dword [0x140231d38], 0xffffffff
jne 0x14011dec3
mov qword [0x140231d30], 0
lea rcx, [0x140231d38]
call fcn.14012ce98
jmp 0x14011dec3
lea rcx, [0x140231d58]
call fcn.14012ce30
cmp dword [0x140231d58], 0xffffffff
jne 0x14011defd
mov qword [0x140231d50], 0
lea rcx, [0x140231d58]
call fcn.14012ce98
jmp 0x14011defd
lea rcx, [0x140233938]
call fcn.14012ce30
cmp dword [0x140233938], 0xffffffff
jne 0x14011e195
mov rcx, qword [0x140231be8]
test rcx, rcx
je 0x14011e377
lea rdx, str.enable_background_thread_pool
call fcn.140111ee0
mov byte [0x140233934], 1
lea rcx, [0x140233938]
call fcn.14012ce98
jmp 0x14011e195
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011ded8
mov cl, byte [rsp + 0x70]
mov rax, qword [rsp + 0x58]
jmp 0x14011de5f
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ebp, ebp
cmp eax, 0x26
setne bpl
neg ebp
jmp 0x14011dfbf
mov eax, 0x3938700
add rax, qword [rbx + 0x1f0]
cmovo rax, r12
cmp rax, rsi
jle 0x14011e832
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 0x14011e7fa
cvtsi2sd xmm0, rcx
divsd xmm0, qword [0x1401f7d88]
call fcn.140166fd0
movsd xmm6, qword [0x1401e2300]
ucomisd xmm6, xmm0
jb 0x14011e7b0
maxsd xmm0, qword [0x1401e2318]
cvttsd2si edi, xmm0
add r12, r15
cmp r12, 2
jb 0x14011e813
xorps xmm0, xmm0
cvtsi2sd xmm0, r15
divsd xmm0, qword [0x1401f7d88]
call fcn.140167080
ucomisd xmm6, xmm0
jb 0x14011e7c7
maxsd xmm0, qword [0x1401e2318]
cvttsd2si r14d, xmm0
mov r12, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
add r14d, edi
cmp r14d, 0x3c
mov r15d, 0x3c
cmovl r15d, r14d
lea rsi, [rbx + 8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14011e4d1
cmp edi, r15d
jge 0x14011e4bc
movsxd rax, edi
movsxd rcx, r15d
inc qword [rbx + rax*8 + 0x10]
inc rax
cmp rcx, rax
jne 0x14011e4af
mov rcx, rsi
call r12
cmp r14d, 0x3d
jl 0x14011e0e1
jmp 0x14011e7e0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14011e4a4
cmp byte [r12 + 0x200], 0
jne 0x14011e5b0
test r15, r15
je 0x14011e505
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14011e8cd
mov rbp, qword [r12 + 0x1f8]
mov qword [r12 + 0x1f8], r15
test rbp, rbp
je 0x14011e5b0
jmp 0x14011e8d0
xor eax, eax
cmp rdi, rbp
setns al
movabs rcx, 0x7fffffffffffffff
add rax, rcx
mov rcx, rdi
sub rcx, rbp
cmovo rcx, rax
cmp rcx, 0x989680
jge 0x14011e86f
mov ecx, 0x208
call fcn.14012cd5c
mov r15, rax
mov dword [rax], 0
lea rcx, [rax + 8]
mov r8d, 0x1e8
xor edx, edx
call fcn.140131830
mov qword [r15 + 0x1f0], rbp
mov qword [r15 + 0x1f8], 0
mov byte [r15 + 0x200], 0
test r15, r15
je 0x14011e5a7
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14011e82c
test r12, r12
jne 0x14011e4dc
test r15, r15
je 0x14011e5ca
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14011e82f
mov r12, qword [0x140231d40]
mov qword [0x140231d40], r15
test r12, r12
jne 0x14011e6d1
lea rcx, [0x140231d30]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [r15 + 0x1f0]
xor edx, edx
cmp rdi, rax
setns dl
movabs r8, 0x7fffffffffffffff
add rdx, r8
mov rcx, rdi
sub rcx, rax
movabs r10, 0x8000000000000001
cmovo rcx, rdx
lea rdx, [rcx + r10]
cmp rdx, 2
jb 0x14011e8b4
mov edi, 0x3938700
xor eax, eax
cmp rdi, rcx
setns al
add rax, r8
sub rdi, rcx
cmovo rdi, rax
mov ecx, 0x28
call fcn.14012cd5c
mov r12, rax
mov dword [rax], 1
lea rax, [0x140169bd0]
mov qword [r12 + 8], rax
lea rax, [0x140169eb0]
mov qword [r12 + 0x10], rax
lea rax, [0x140193540]
mov qword [r12 + 0x18], rax
lea rdx, str.MonitorNextJankWindowIfNecessary
lea r8, str....._base_threading_scoped_blocking_call_internal.cc
lea rbp, [rsp + 0x90]
mov rcx, rbp
mov r9d, 0xca
call fcn.1400bab70
lea r9, [rsp + 0xb0]
mov qword [r9], r12
mov qword [rsp + 0x20], rdi
lea r8, [0x1401f9aea]
xor ecx, ecx
mov rdx, rbp
call fcn.14000ec00
mov qword [rsp + 0x80], r15
mov r12, qword [rsp + 0x28]
jmp 0x14011df2c
lock dec dword [r12]
jne 0x14011e5e1
mov rcx, r12
call fcn.14000baa0
mov rcx, r12
call fcn.14012cd4c
jmp 0x14011e5e1
call fcn.1400ad190
jmp 0x14011e121
mov rcx, r15
call fcn.1400ad040
jmp 0x14011de07
int3
mov rcx, r15
call fcn.14019a890
mov byte [rsp + 0x88], 0
jmp 0x14011de80
mov qword [rsp + 0x78], rax
jmp 0x14011df43
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 0x14011e062
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, rsi
call fcn.14000baa0
mov rcx, rsi
call fcn.14012cd4c
jmp 0x14011e0f7
xor eax, eax
ucomisd xmm0, qword [0x1401e2318]
mov edi, 0x7fffffff
cmovb edi, eax
jmp 0x14011e442
xor eax, eax
ucomisd xmm0, qword [0x1401e2318]
mov r14d, 0x7fffffff
cmovb r14d, eax
jmp 0x14011e47b
mov rbx, qword [rbx + 0x1f8]
sub r14d, r15d
xor edi, edi
test rbx, rbx
jne 0x14011e482
jmp 0x14011e0e1
xor ecx, ecx
cmp rax, r14
setg cl
lea rax, [0x1401f7d70]
movsd xmm0, qword [rax + rcx*8]
jmp 0x14011e417
xor eax, eax
cmp rsi, r14
setl al
lea rcx, [0x1401f7d70]
movsd xmm0, qword [rcx + rax*8]
jmp 0x14011e457
int3
int3
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov rdx, rsi
call fcn.1400567a0
mov rdi, qword [rdi]
test rdi, rdi
je 0x14011e3de
lock dec dword [rdi]
jne 0x14011e3de
mov rcx, rdi
call fcn.14000baa0
mov rcx, rdi
call fcn.14012cd4c
jmp 0x14011e3de
mov byte [r12 + 0x200], 1
mov rbp, rdi
jmp 0x14011e54f
mov r15, qword [rax + 0x30]
mov qword [rax + 0x30], 0
test r15, r15
je 0x14011df4b
lock dec dword [r15]
jne 0x14011df4b
mov rcx, r15
call fcn.14000baa0
mov rcx, r15
call fcn.14012cd4c
jmp 0x14011df4b
mov r9, r10
xor ecx, ecx
cmp rax, rdi
setg cl
not rcx
mov rdi, r10
add rdi, rcx
jmp 0x14011e643
int3
lock dec dword [rbp]
jne 0x14011e5b0
mov rcx, rbp
call fcn.14000baa0
mov rcx, rbp
call fcn.14012cd4c
jmp 0x14011e5b0