Function at 0x140159fc0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
movaps xmmword [rsp + 0x40], xmm6
mov r15, r9
mov r14, r8
mov rbx, rdx
mov rsi, rcx
mov rax, qword [0x140297028]
xor rax, rsp
mov qword [rsp + 0x38], rax
movabs rdi, 0xfffffffc00000000
mov eax, dword [r9]
mov dword [rcx], eax
mov rax, rdx
and rax, rdi
cmp rax, qword [0x1402a6e88]
je 0x14015a5dd
mov qword [rsi + 8], rbx
test rbx, rbx
mov qword [rsp + 0x28], r15
je 0x14015a676
mov rax, qword [rbx + 0x20]
mov qword [rsi + 0x10], rax
test rax, rax
je 0x14015a046
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x14015a66d
mov ecx, 0x28
call fcn.1401803a4
mov r15, rax
xor eax, eax
mov dword [r15], eax
mov dword [r15 + 8], eax
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [r15 + 0x10], 0
test rax, rax
je 0x14015a665
mov r12, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [r15 + 0x10]
inc rax
cmp rax, 2
jae 0x14015a62f
lea rax, [r12 + 1]
cmp rax, 2
jb 0x14015a0b0
mov qword [r15 + 0x10], r12
call fcn.1400e62c0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [r15 + 0x10]
mov byte [r15 + 0x18], 0
inc rax
cmp rax, 1
jbe 0x14015a66a
mov r12, rsi
and r12, rdi
cmp r12, qword [0x1402a6e88]
je 0x14015a52f
mov qword [r15 + 0x20], rsi
mov qword [rsi + 0x18], r15
test r15, r15
je 0x14015a103
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14015a670
xorps xmm6, xmm6
movups xmmword [rsi + 0x40], xmm6
movups xmmword [rsi + 0x30], xmm6
movups xmmword [rsi + 0x20], xmm6
mov word [rsi + 0x50], 0x101
xor eax, eax
mov byte [rsi + 0x52], al
movups xmmword [rsi + 0x60], xmm6
mov qword [rsi + 0x70], 0
mov byte [rsi + 0x78], 1
mov byte [rsi + 0x80], al
mov byte [rsi + 0x98], al
mov rax, r14
and rax, rdi
cmp rax, qword [0x1402a6e88]
je 0x14015a53c
mov qword [rsi + 0xa0], r14
mov qword [rsi + 0xa8], 0
mov ecx, 0x80
call fcn.1401803a4
mov r14, rax
movups xmmword [rax], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax + 0x20], xmm6
cmp r12, qword [0x1402a6e88]
je 0x14015a549
mov qword [r14 + 0x30], rsi
xor r13d, r13d
mov qword [r14 + 0x38], r13
mov qword [r14 + 0x40], 0xffffffffffffffff
lea rax, str.delayed
mov qword [r14 + 0x48], rax
mov byte [r14 + 0x50], 0
xorps xmm6, xmm6
movups xmmword [r14 + 0x58], xmm6
mov qword [r14 + 0x68], r13
mov dword [r14 + 0x78], 1
mov qword [rsi + 0xb0], r14
mov ecx, 0x80
call fcn.1401803a4
mov r15, rax
movups xmmword [rax], xmm6
movups xmmword [rax + 0x10], xmm6
movups xmmword [rax + 0x20], xmm6
cmp r12, qword [0x1402a6e88]
je 0x14015a556
lea rax, [rsi + 0x100]
lea rdi, [rsi + 0x1f0]
mov qword [r15 + 0x30], rsi
mov qword [r15 + 0x38], r13
mov rcx, 0xffffffffffffffff
mov qword [r15 + 0x40], rcx
lea rdx, str.immediate
mov qword [r15 + 0x48], rdx
mov byte [r15 + 0x50], r13b
movups xmmword [r15 + 0x58], xmm6
mov qword [r15 + 0x68], r13
mov dword [r15 + 0x78], r13d
mov qword [rsi + 0xb8], r15
movups xmmword [rsi + 0xc8], xmm6
movups xmmword [rsi + 0xd4], xmm6
movups xmmword [rsi + 0xe8], xmm6
mov qword [rsi + 0xf8], r13
mov qword [rsi + 0x100], rax
mov qword [rsi + 0x108], rax
mov qword [rsi + 0x110], r13
mov dword [rsi + 0x118], r13d
mov qword [rsi + 0x120], rcx
mov al, 1
mov byte [rsi + 0x128], al
mov byte [rsi + 0x130], r13b
movups xmmword [rsi + 0x138], xmm6
mov qword [rsi + 0x148], r13
mov byte [rsi + 0x158], r13b
movups xmmword [rsi + 0x1a0], xmm6
mov qword [rsi + 0x1b0], r13
movups xmmword [rsi + 0x189], xmm6
movups xmmword [rsi + 0x180], xmm6
movups xmmword [rsi + 0x170], xmm6
mov byte [rsi + 0x1c0], al
mov byte [rsi + 0x1c8], r13b
mov byte [rsi + 0x1e0], r13b
mov qword [rsi + 0x1e4], r13
test rbx, rbx
je 0x14015a5c2
cmp r12, qword [0x1402a6e88]
je 0x14015a508
lea r15, [rbx + 0x70]
mov ecx, 0x30
call fcn.1401803a4
mov r13, rax
mov dword [rax], 1
lea rax, [0x1401773b0]
mov qword [r13 + 8], rax
lea r14, [0x1401f5780]
mov qword [r13 + 0x10], r14
lea rax, [0x1401ee610]
mov qword [r13 + 0x18], rax
lea rax, [0x140179740]
mov qword [r13 + 0x20], rax
mov qword [r13 + 0x28], rsi
mov r12, qword [rbx + 0x80]
test r12, r12
je 0x14015a4c3
mov rax, qword [r12 + 8]
xor rax, 0xffffffffffffffff
je 0x14015a4b9
tzcnt rbx, rax
mov rbp, qword [r12 + rbx*8 + 0x10]
mov qword [r12 + rbx*8 + 0x10], r13
test rbp, rbp
movabs r13, 0xfffffffc00000000
jne 0x14015a563
mov r14d, 1
mov ecx, ebx
shl r14, cl
mov rax, qword [r12 + 8]
bts rax, rbx
mov qword [r12 + 8], rax
cmp rax, 0xffffffffffffffff
je 0x14015a584
mov rax, r15
and rax, r13
cmp rax, qword [0x1402a6e88]
je 0x14015a522
mov qword [rdi], r15
and r13, r12
cmp r13, qword [0x1402a6e88]
je 0x14015a515
mov qword [rsi + 0x1f8], r12
mov qword [rsi + 0x200], r14
mov rcx, qword [rsp + 0x28]
mov al, byte [rcx + 4]
mov byte [rsi + 0x208], al
mov al, byte [rcx + 5]
mov byte [rsi + 0x209], al
mov al, byte [rcx + 6]
mov byte [rsi + 0x20a], al
mov ecx, 8
call fcn.1401803a4
mov dword [rax], 0
mov byte [rax + 4], 0
mov qword [rsi + 0x210], rax
test rax, rax
je 0x14015a415
mov ecx, 1
lock xadd dword [rax], ecx
cmp ecx, 0x7fffffff
je 0x14015a673
mov qword [rsi + 0x218], rsi
mov rax, qword [rsi + 0xb8]
cmp qword [rax + 0x10], 0
sete byte [rsi + 0x50]
cmp qword [rsi + 0xa8], 0
mov al, byte [rsi + 0x128]
jne 0x14015a44c
test al, al
je 0x14015a5bb
mov al, byte [rsi + 0x130]
xor al, 1
mov byte [rsi + 0x51], al
cmp qword [rsi + 8], 0
je 0x14015a493
mov rcx, qword [rsi + 0x18]
mov eax, dword [rcx + 8]
nop dword [rax]
mov edx, eax
or edx, 0x40000000
lock cmpxchg dword [rcx + 8], edx
jne 0x14015a460
mov edx, 0x3fffffff
and eax, edx
mov r8d, eax
neg r8d
lock xadd dword [rcx + 8], r8d
test r8d, r8d
jns 0x14015a493
and r8d, edx
cmp r8d, eax
je 0x14015a5cf
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1401830b0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, 0x40
jmp 0x14015a34c
mov ecx, 0x230
call fcn.1401803a4
mov r12, rax
mov r8d, 0x230
mov rcx, rax
xor edx, edx
call fcn.1401851f0
lea rdx, [rsp + 0x30]
mov qword [rdx], r12
mov rcx, r15
call fcn.14001a210
mov rdx, qword [rbx + 0x78]
mov rcx, r15
call fcn.14001a120
mov r12, qword [rbx + 0x80]
jmp 0x14015a338
mov rcx, rsi
call fcn.1400d8270
jmp 0x14015a2e1
mov rcx, r12
call fcn.1400d8270
jmp 0x14015a3b2
mov rcx, r15
call fcn.1400d8270
jmp 0x14015a39f
mov rcx, rsi
call fcn.1400d8270
jmp 0x14015a0e1
mov rcx, r14
call fcn.1400d8270
jmp 0x14015a14c
mov rcx, rsi
call fcn.1400d8270
jmp 0x14015a183
mov rcx, rsi
call fcn.1400d8270
jmp 0x14015a1e6
lock dec dword [rbp]
jne 0x14015a369
mov rax, qword [rbp + 0x10]
cmp rax, r14
je 0x14015a594
mov rcx, rbp
call qword [case.0x1401e9be0.0]
jmp 0x14015a369
mov rcx, r15
mov rdx, r12
call fcn.140032a80
jmp 0x14015a38c
mov rcx, qword [rbp + 0x28]
mov rax, rcx
and rax, r13
cmp rax, qword [0x1402a6e88]
je 0x14015a5b4
mov rcx, rbp
call fcn.14018039c
jmp 0x14015a369
call fcn.1400db1b0
jmp 0x14015a5a7
xor eax, eax
jmp 0x14015a44c
mov rcx, rdi
call fcn.140203400
jmp 0x14015a3c0
add rcx, 0x10
call fcn.140122de0
jmp 0x14015a493
mov rcx, rbx
call fcn.1400d8270
jmp 0x14015a012
xor ecx, ecx
jmp 0x14015a626
xor ecx, ecx
mov dl, 1
jmp 0x14015a628
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea rdx, str.GetHandleVerifier
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x14015a5ea
lea rcx, [sym.chrome.exe_GetHandleVerifier]
cmp rax, rcx
je 0x14015a5ee
call qword [case.0x1401e9be0.0]
mov rcx, rax
xor edx, edx
call fcn.14003b960
jmp 0x14015a642
call fcn.1400e62c0
mov r13, qword [r15 + 0x10]
cmp qword [0x1402accf8], 0
je 0x14015a5f4
mov rcx, qword [0x1402accf8]
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r13
call qword [case.0x1401e9be0.0]
mov qword [r15 + 0x10], 0
jmp 0x14015a09c
mov byte [r15 + 0x18], 0
int3
int3
int3
int3
mov ecx, 8
call fcn.1401803a4
mov r15, rax
mov rcx, rax
call fcn.1400bcc00
test r15, r15
je 0x14015a6a1
mov eax, 1
lock xadd dword [r15], eax
cmp eax, 0x7fffffff
je 0x14015a6b2
mov rcx, r15
call fcn.1400bcc10
mov qword [rsi + 0x10], r15
jmp 0x14015a046
int3