Function at 0x1400015b0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rbp, rcx
mov rcx, qword [rcx + 0x98]
test rcx, rcx
je 0x14000188f
mov rdi, qword [rbp + 0x90]
mov r14, qword [rbp + 0xa8]
test r14, r14
je 0x14000185d
mov qword [rsp + 0x28], rbp
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
not eax
lea r15, [rdi + 0x10]
mov r12, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140001623
mov rcx, qword [rsp + 0x30]
lea eax, [rcx - 1]
and eax, ecx
dec r14
je 0x14000184a
test ax, ax
jne 0x14000164d
nop dword [rax + rax]
movdqa xmm0, xmmword [r15]
pmovmskb eax, xmm0
add rdi, 0xffffffffffffea80
add r15, 0x10
cmp eax, 0xffff
je 0x140001630
not eax
mov qword [rsp + 0x30], rax
tzcnt eax, eax
neg rax
imul rax, rax, 0x158
lea rbp, [rdi + rax]
cmp qword [rdi + rax - 0x140], 0
je 0x140001682
mov r8, qword [rbp - 0x138]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
mov rbx, qword [rbp - 0x120]
mov rsi, qword [rbp - 0x118]
test rsi, rsi
je 0x1400016d0
lea r13, [rbx + 8]
jmp 0x1400016a9
add r13, 0x18
dec rsi
je 0x1400016d0
cmp qword [r13 - 8], 0
je 0x1400016a0
mov r8, qword [r13]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
jmp 0x1400016a0
cmp qword [rbp - 0x128], 0
je 0x1400016e9
mov rcx, qword [0x14006ebc8]
xor edx, edx
mov r8, rbx
call r12
mov rax, qword [rbp - 0xf8]
shl rax, 1
test rax, rax
jne 0x140001720
mov rax, qword [rbp - 0xd8]
shl rax, 1
test rax, rax
jne 0x140001742
mov rbx, qword [rbp - 0x108]
mov rsi, qword [rbp - 0x100]
test rsi, rsi
jne 0x140001768
jmp 0x1400017a0
mov r8, qword [rbp - 0xf0]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
mov rax, qword [rbp - 0xd8]
shl rax, 1
test rax, rax
je 0x140001707
mov r8, qword [rbp - 0xd0]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
mov rbx, qword [rbp - 0x108]
mov rsi, qword [rbp - 0x100]
test rsi, rsi
je 0x1400017a0
lea r13, [rbx + 8]
jmp 0x140001779
add r13, 0x18
dec rsi
je 0x1400017a0
cmp qword [r13 - 8], 0
je 0x140001770
mov r8, qword [r13]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
jmp 0x140001770
cmp qword [rbp - 0x110], 0
je 0x1400017b9
mov rcx, qword [0x14006ebc8]
xor edx, edx
mov r8, rbx
call r12
mov rax, qword [rbp - 0xc0]
shl rax, 1
test rax, rax
jne 0x1400017f0
mov rax, qword [rbp - 0xa0]
shl rax, 1
test rax, rax
jne 0x140001812
mov rax, qword [rbp - 0x60]
test rax, rax
jne 0x140001832
jmp 0x140001610
mov r8, qword [rbp - 0xb8]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
mov rax, qword [rbp - 0xa0]
shl rax, 1
test rax, rax
je 0x1400017d7
mov r8, qword [rbp - 0x98]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r12
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x140001610
lock dec qword [rax]
jne 0x140001610
mov rcx, qword [rbp - 0x60]
call fcn.140001dc0
jmp 0x140001610
mov rbp, qword [rsp + 0x28]
mov rdi, qword [rbp + 0x90]
mov rcx, qword [rbp + 0x98]
lea rax, [rcx + 1]
mov edx, 0x158
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
add rcx, rax
cmp rcx, 0xffffffffffffffef
je 0x14000188f
sub rdi, rax
mov rcx, qword [0x14006ebc8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rbp], 0
je 0x1400018a9
mov r8, qword [rbp + 8]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rbp + 0x48]
shl rax, 1
test rax, rax
jne 0x140001a6c
cmp qword [rbp + 0x18], 0
je 0x1400018d3
mov r8, qword [rbp + 0x20]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rbp + 0x30], 0
je 0x1400018ed
mov r8, qword [rbp + 0x38]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rbp + 0x78]
mov rbx, qword [rbp + 0x80]
test rbx, rbx
je 0x140001988
lea r14, [rdi + 0x50]
mov r15, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140001919
add r14, 0x70
dec rbx
je 0x140001988
cmp qword [r14 - 0x50], 0
je 0x140001930
mov r8, qword [r14 - 0x48]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r15
mov rax, qword [r14 - 8]
shl rax, 1
test rax, rax
jne 0x140001970
cmp qword [r14 - 0x38], 0
je 0x140001953
mov r8, qword [r14 - 0x30]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r15
cmp qword [r14 - 0x20], 0
je 0x140001910
mov r8, qword [r14 - 0x18]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r15
jmp 0x140001910
mov r8, qword [r14]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r15
cmp qword [r14 - 0x38], 0
jne 0x140001943
jmp 0x140001953
cmp qword [rbp + 0x70], 0
je 0x1400019a1
mov rcx, qword [0x14006ebc8]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rbp + 0xe0]
test rdi, rdi
je 0x140001b93
mov rbx, qword [rbp + 0xf8]
test rbx, rbx
je 0x140001a2f
lea r14, [rdi + 0x10]
movdqa xmm0, xmmword [rdi]
pmovmskb eax, xmm0
not eax
mov r15, qword [sym.imp.pdh.dll_PdhRemoveCounter]
mov r12, rdi
mov r13, rbx
jmp 0x140001a01
tzcnt ecx, eax
shl rcx, 5
mov rdx, r12
sub rdx, rcx
lea esi, [rax - 1]
and esi, eax
mov rcx, qword [rdx - 8]
call r15
mov eax, esi
dec r13
je 0x140001a2f
test ax, ax
jne 0x1400019e0
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
add r12, 0xfffffffffffffe00
add r14, 0x10
cmp eax, 0xffff
je 0x140001a10
not eax
jmp 0x1400019e0
mov rcx, qword [rbp + 0x118]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x140001a4a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140001a8f
mov rcx, qword [rbp + 0x110]
lea rax, [rcx + 1]
cmp rax, 2
jae 0x140001aa6
mov rsi, qword [rbp + 0xe8]
test rsi, rsi
jne 0x140001abc
jmp 0x140001b93
mov r8, qword [rbp + 0x50]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rbp + 0x18], 0
jne 0x1400018c0
jmp 0x1400018d3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rbp + 0x110]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x140001a5b
call qword [sym.imp.pdh.dll_PdhCloseQuery]
mov rsi, qword [rbp + 0xe8]
test rsi, rsi
je 0x140001b93
test rbx, rbx
je 0x140001b59
movdqa xmm0, xmmword [rdi]
pmovmskb r13d, xmm0
not r13d
lea r14, [rdi + 0x10]
mov r15, qword [sym.imp.KERNEL32.dll_HeapFree]
mov r12, rdi
jmp 0x140001aff
lea eax, [r13 - 1]
and eax, r13d
mov r13d, eax
dec rbx
je 0x140001b59
test r13w, r13w
jne 0x140001b31
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r14]
pmovmskb r13d, xmm0
add r12, 0xfffffffffffffe00
add r14, 0x10
cmp r13d, 0xffff
je 0x140001b10
not r13d
tzcnt ecx, r13d
shl rcx, 5
mov rax, r12
sub rax, rcx
cmp qword [rax - 0x20], 0
je 0x140001af0
mov r8, qword [rax - 0x18]
mov rcx, qword [0x14006ebc8]
xor edx, edx
call r15
jmp 0x140001af0
mov rax, rsi
shl rax, 5
add rsi, rax
cmp rsi, 0xffffffffffffffcf
je 0x140001b93
sub rdi, rax
add rdi, 0xffffffffffffffe0
mov rcx, qword [0x14006ebc8]
xor edx, edx
mov r8, rdi
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
nop
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret