Function at 0x140164340
Capabilities:
Check if file exists

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x88
mov rax, qword [0x1402b4040]
xor rax, rsp
mov qword [rsp + 0x80], rax
cmp qword [rcx + 0x30], 0
je 0x1401645c5
mov rsi, rcx
lea rdx, str.StopWatching
lea r8, str....._basewinobject_watcher.cc
lea rdi, [rsp + 0x40]
mov rcx, rdi
mov r9d, 0x30
call fcn.14012d160
mov qword [rsp + 0x68], 0xa
mov al, byte [0x1402c68da]
test al, al
jne 0x1401647de
mov eax, dword [0x1402c36f0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x160]
test rdi, rdi
je 0x1401643dd
cmp qword [rdi + 0x18], 0
jne 0x140164807
movabs rax, 0x4000000000000000
lock or qword [rdi + 0x10], rax
movaps xmm0, xmmword [0x140270080]
movaps xmmword [rsp + 0x40], xmm0
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsp + 0x40], 0
test rax, rax
je 0x1401647c9
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsp + 0x40]
inc rax
cmp rax, 2
jae 0x14016460a
lea rax, [rdi + 1]
cmp rax, 2
jb 0x14016443f
mov qword [rsp + 0x40], rdi
call fcn.140119350
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rdx, qword [rsp + 0x40]
mov byte [rsp + 0x48], 0
lea rax, [rdx + 1]
cmp rax, 1
jbe 0x1401647ce
mov rcx, qword [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_UnregisterWaitEx]
test eax, eax
je 0x14016466d
lea rcx, [rsp + 0x40]
call fcn.140164940
mov rdi, qword [rsi + 0x20]
mov qword [rsi + 0x20], 0
test rdi, rdi
je 0x1401644ba
lock dec dword [rdi]
jne 0x1401644ba
mov rax, qword [rdi + 0x10]
lea rcx, [0x14018cb50]
cmp rax, rcx
jne 0x1401645c9
mov rbx, qword [rdi + 0x28]
test rbx, rbx
jne 0x140164646
mov rcx, rdi
call fcn.14018fb90
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
mov dword [rsi + 0x10], 0xffffffff
xor eax, eax
mov qword [rsi + 0x18], rax
movups xmmword [rsi + 0x28], xmm0
mov rcx, qword [rsi + 0x38]
mov qword [rsi + 0x38], rax
test rcx, rcx
je 0x1401644e8
lock dec dword [rcx + 8]
je 0x1401647d1
mov byte [rsi + 0x40], 1
mov rax, qword [rsi + 0x48]
mov byte [rax + 4], 1
mov ecx, 8
call fcn.14018fb98
mov dword [rax], 0
mov byte [rax + 4], 0
test rax, rax
je 0x140164522
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x1401647db
mov rcx, qword [rsi + 0x48]
mov qword [rsi + 0x48], rax
mov sil, 1
test rcx, rcx
je 0x14016453b
lock dec dword [rcx]
je 0x1401645bb
cmp byte [rsp + 0x48], 0
jne 0x140164577
mov eax, dword [0x1402c6de0]
mov ecx, dword [0x1402c36f0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14016469d
mov rax, qword [0x1402c6dd8]
cmp byte [rax], 0
jne 0x14016486d
mov rax, qword [rsp + 0x40]
inc rax
cmp rax, 2
jae 0x1401645d7
mov qword [rsp + 0x78], 0xa
mov al, byte [0x1402c68da]
test al, al
jne 0x14016482d
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140192360
mov eax, esi
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r14
ret
call fcn.14018fb90
jmp 0x14016453b
xor esi, esi
jmp 0x14016459c
mov rcx, rdi
call qword [0x1402a4f40]
jmp 0x1401644ba
call fcn.140119350
mov rdi, qword [rsp + 0x40]
cmp qword [0x1402c6cc0], 0
je 0x140164781
mov rcx, qword [0x1402c6cc0]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, rdi
call qword [0x1402a4f40]
jmp 0x140164585
call fcn.140119350
mov r14, qword [rsp + 0x40]
cmp qword [0x1402c6cc0], 0
je 0x140164739
mov rcx, qword [0x1402c6cc0]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r14
call qword [0x1402a4f40]
mov qword [rsp + 0x40], 0
jmp 0x14016442b
lock dec dword [rbx]
jne 0x1401644b2
mov rax, qword [rbx + 0x10]
lea rcx, [0x14025da60]
cmp rax, rcx
je 0x140164683
mov rcx, rbx
call qword [0x1402a4f40]
jmp 0x1401644b2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
je 0x140164471
jmp 0x140164926
mov rcx, qword [rbx + 0x28]
test rcx, rcx
jne 0x140164726
mov rcx, rbx
call fcn.14018fb90
jmp 0x1401644b2
lea rcx, [0x1402c6de0]
call fcn.14018fd10
cmp dword [0x1402c6de0], 0xffffffff
jne 0x140164567
xor eax, eax
lea rcx, str.tracing_categories_exhausted._must_increase_kMaxCategories
lea rdx, str.wakeup.flow_toplevel.flow
jmp 0x1401646e8
mov r10b, byte [r8 + r9]
lea r11, [r9 + 1]
cmp r10b, byte [r9 + rdx]
mov r9, r11
je 0x1401646ff
inc rax
cmp rax, 0x16b
je 0x1401648d4
imul r8, rax, 0x38
mov r8, qword [r8 + rcx]
cmp byte [r8], 0x77
jne 0x1401646d9
mov r10b, 0x77
mov r9d, 1
test r10b, r10b
jne 0x1401646c8
lea rcx, [0x1402c68d0]
add rcx, rax
mov qword [0x1402c6dd8], rcx
lea rcx, [0x1402c6de0]
call fcn.14018fca4
jmp 0x140164567
lock dec dword [rcx]
jne 0x140164690
call fcn.14018fb90
jmp 0x140164690
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [0x140289f9f]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14016492d
lea rcx, [sym.chrome.exe_GetHandleVerifier]
cmp rax, rcx
je 0x14016477b
call qword [0x1402a4f40]
mov rcx, rax
xor edx, edx
call fcn.1400445d0
jmp 0x140164622
xor ecx, ecx
mov dl, 1
jmp 0x140164771
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, [0x140289f9f]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x140164934
lea rcx, [sym.chrome.exe_GetHandleVerifier]
cmp rax, rcx
je 0x1401647c3
call qword [0x1402a4f40]
mov rcx, rax
xor edx, edx
call fcn.1400445d0
jmp 0x1401645ef
xor ecx, ecx
mov dl, 1
jmp 0x1401647b9
mov byte [rsp + 0x48], 0
int3
call fcn.140143b00
jmp 0x1401644e8
int3
movzx ecx, al
lea r9, [rsp + 0x78]
mov qword [r9], rdi
lea rax, str.ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
lea r8, [rsp + 0x70]
mov qword [r8], rax
lea rdx, [rsp + 0x68]
call fcn.1401f63e0
jmp 0x1401643a4
lea rcx, [rdi + 0x18]
mov rbx, qword [rdi + 0x10]
call fcn.140200a40
movabs rcx, 0xff00000000000000
and rcx, rbx
or rcx, rax
mov qword [rdi + 0x10], rcx
jmp 0x1401643ce
movzx ecx, al
lea rax, str.ScopedAllowBaseSyncPrimitivesOutsideBlockingScope
lea r8, [rsp + 0x40]
mov qword [r8], rax
lea rax, [0x140277520]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 0
mov byte [rsp + 0x28], Ordinal_73
lea rdx, [rsp + 0x78]
mov r9d, 2
call fcn.14002e260
jmp 0x14016459c
lea rdi, [rsp + 0x40]
mov rcx, rdi
call fcn.1400a2940
test al, al
je 0x140164577
mov qword [rsp + 0x68], 0x166
mov al, byte [0x1402c6a36]
test al, al
je 0x140164577
movzx ecx, al
xor rdi, qword [0x1402c4e48]
lea rax, [rsp + 0x78]
mov qword [rax], rdi
lea rdx, str.WaitableEvent_while_Signaled
lea r8, [rsp + 0x70]
mov qword [r8], rdx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x68]
mov r9d, 3
call fcn.140017980
jmp 0x140164577
call fcn.14018fbdc
mov ecx, dword [rax]
call fcn.1401b399c
mov rsi, rax
call fcn.14018fbdc
mov edi, dword [rax]
lea rcx, str....._third_partyperfettoincludeperfetto_tracing_track_event_category_registry.h
call fcn.1401d5d60
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], edi
lea rcx, str.PERFETTO_CHECK_false___A_track_event_used_an_unknown_category._Please_add_it_to____PERFETTO_DEFINE_CATEGORIES__.__
mov qword [rsp + 0x20], rcx
lea r9, str._s__errno:__d___s_
mov ecx, 3
mov rdx, rax
mov r8d, 0x11f
call fcn.1401d6070
int3
xor esi, esi
jmp 0x14016453b
xor ecx, ecx
jmp 0x14016476f
xor ecx, ecx
jmp 0x1401647b7