Function at 0x1400047b0
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 rsi, rcx
mov rax, qword [rcx + 0x48]
test rax, rax
mov qword [rsp + 0x20], rcx
je 0x140004a7f
mov qword [rsp + 0x28], rax
mov r14, qword [rsi + 0x58]
test r14, r14
je 0x140004a4a
mov rax, qword [rsp + 0x20]
mov r15, qword [rax + 0x40]
movdqa xmm0, xmmword [r15]
pmovmskb eax, xmm0
not eax
lea r12, [r15 + 0x10]
mov r13, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140004823
mov rcx, qword [rsp + 0x30]
lea eax, [rcx - 1]
and eax, ecx
dec r14
je 0x140004a4a
test ax, ax
jne 0x14000484e
nop dword [rax + rax]
movdqa xmm0, xmmword [r12]
pmovmskb eax, xmm0
add r15, 0xffffffffffffea00
add r12, 0x10
cmp eax, 0xffff
je 0x140004830
not eax
mov qword [rsp + 0x30], rax
tzcnt eax, eax
neg rax
imul rax, rax, 0x160
lea rbx, [r15 + rax]
cmp qword [r15 + rax - 0x148], 0
je 0x140004883
mov r8, qword [rbx - 0x140]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
mov rdi, qword [rbx - 0x120]
mov rsi, qword [rbx - 0x118]
test rsi, rsi
je 0x1400048d0
lea rbp, [rdi + 8]
jmp 0x1400048a9
add rbp, 0x20
dec rsi
je 0x1400048d0
cmp qword [rbp - 8], 0
je 0x1400048a0
mov r8, qword [rbp]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
jmp 0x1400048a0
cmp qword [rbx - 0x128], 0
je 0x1400048e9
mov rcx, qword [0x1400ec9d0]
xor edx, edx
mov r8, rdi
call r13
mov rax, qword [rbx - 0xf8]
shl rax, 1
test rax, rax
jne 0x140004920
mov rax, qword [rbx - 0xd8]
shl rax, 1
test rax, rax
jne 0x140004942
mov rdi, qword [rbx - 0x108]
mov rsi, qword [rbx - 0x100]
test rsi, rsi
jne 0x140004968
jmp 0x1400049a0
mov r8, qword [rbx - 0xf0]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
mov rax, qword [rbx - 0xd8]
shl rax, 1
test rax, rax
je 0x140004907
mov r8, qword [rbx - 0xd0]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
mov rdi, qword [rbx - 0x108]
mov rsi, qword [rbx - 0x100]
test rsi, rsi
je 0x1400049a0
lea rbp, [rdi + 8]
jmp 0x140004979
add rbp, 0x20
dec rsi
je 0x1400049a0
cmp qword [rbp - 8], 0
je 0x140004970
mov r8, qword [rbp]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
jmp 0x140004970
cmp qword [rbx - 0x110], 0
je 0x1400049b9
mov rcx, qword [0x1400ec9d0]
xor edx, edx
mov r8, rdi
call r13
mov rax, qword [rbx - 0xc0]
shl rax, 1
test rax, rax
jne 0x1400049f0
mov rax, qword [rbx - 0xa0]
shl rax, 1
test rax, rax
jne 0x140004a12
mov rax, qword [rbx - 0x60]
test rax, rax
jne 0x140004a32
jmp 0x140004810
mov r8, qword [rbx - 0xb8]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
mov rax, qword [rbx - 0xa0]
shl rax, 1
test rax, rax
je 0x1400049d7
mov r8, qword [rbx - 0x98]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r13
mov rax, qword [rbx - 0x60]
test rax, rax
je 0x140004810
lock dec qword [rax]
jne 0x140004810
mov rcx, qword [rbx - 0x60]
call fcn.140005c20
jmp 0x140004810
mov r8, qword [rsp + 0x28]
lea rax, [r8 + 1]
mov ecx, 0x160
mul rcx
add r8, rax
cmp r8, 0xffffffffffffffef
mov rsi, qword [rsp + 0x20]
je 0x140004a7f
mov r8, qword [rsi + 0x40]
sub r8, rax
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsi + 0x18]
shl rax, 1
test rax, rax
jne 0x140004a9d
mov rdi, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
test rbx, rbx
jne 0x140004ac1
jmp 0x140004b48
mov r8, qword [rsi + 0x20]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x140004b48
lea r14, [rdi + 0x50]
mov r15, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140004ad9
add r14, 0x70
dec rbx
je 0x140004b48
cmp qword [r14 - 0x50], 0
je 0x140004af0
mov r8, qword [r14 - 0x48]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r15
cmp qword [r14 - 0x38], 0
je 0x140004b07
mov r8, qword [r14 - 0x30]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r15
mov rax, qword [r14 - 8]
shl rax, 1
test rax, rax
jne 0x140004b20
cmp qword [r14 - 0x20], 0
jne 0x140004b36
jmp 0x140004ad0
mov r8, qword [r14]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r15
cmp qword [r14 - 0x20], 0
je 0x140004ad0
mov r8, qword [r14 - 0x18]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r15
jmp 0x140004ad0
cmp qword [rsi], 0
je 0x140004b60
mov rcx, qword [0x1400ec9d0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdi, qword [rsi + 0x90]
test rdi, rdi
je 0x140004d0c
mov rbx, qword [rsi + 0xa8]
test rbx, rbx
je 0x140004bfa
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 0x140004bc0
lea ebp, [rax - 1]
and ebp, eax
tzcnt eax, eax
shl eax, 5
mov rcx, r12
sub rcx, rax
mov rcx, qword [rcx - 8]
call r15
mov eax, ebp
dec r13
je 0x140004bfa
test ax, ax
jne 0x140004ba0
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r14]
pmovmskb eax, xmm0
add r12, 0xfffffffffffffe00
add r14, 0x10
cmp eax, 0xffff
je 0x140004bd0
mov ecx, 0xfffffffe
sub ecx, eax
not eax
mov ebp, eax
and ebp, ecx
jmp 0x140004ba5
mov rsi, qword [rsp + 0x20]
mov rcx, qword [rsi + 0xc8]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x140004c1a
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x140004c3c
mov rcx, qword [rsi + 0xc0]
lea rax, [rcx + 1]
cmp rax, 2
jae 0x140004c53
mov r14, qword [rsi + 0x98]
test r14, r14
jne 0x140004c69
jmp 0x140004d0c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsi + 0xc0]
lea rax, [rcx + 1]
cmp rax, 2
jb 0x140004c2b
call qword [sym.imp.pdh.dll_PdhCloseQuery]
mov r14, qword [rsi + 0x98]
test r14, r14
je 0x140004d0c
test rbx, rbx
je 0x140004cf8
movdqa xmm0, xmmword [rdi]
pmovmskb r13d, xmm0
not r13d
lea r15, [rdi + 0x10]
mov r12, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140004c9f
lea eax, [r13 - 1]
and eax, r13d
mov r13d, eax
dec rbx
je 0x140004cf8
test r13w, r13w
jne 0x140004cd1
nop word cs:[rax + rax]
movdqa xmm0, xmmword [r15]
pmovmskb r13d, xmm0
add rdi, 0xfffffffffffffe00
add r15, 0x10
cmp r13d, 0xffff
je 0x140004cb0
not r13d
tzcnt ecx, r13d
shl ecx, 5
mov rax, rdi
sub rax, rcx
cmp qword [rax - 0x20], 0
je 0x140004c90
mov r8, qword [rax - 0x18]
mov rcx, qword [0x1400ec9d0]
xor edx, edx
call r12
jmp 0x140004c90
movabs rax, 0x7c1f07c1f07c1ef
cmp r14, rax
mov rax, qword [rsp + 0x20]
jne 0x140004d1d
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
shl r14, 5
mov rax, qword [rax + 0x90]
neg r14
lea r8, [rax + r14]
add r8, 0xffffffffffffffe0
mov rcx, qword [0x1400ec9d0]
xor edx, edx
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]