Function at 0x1400cb510
Capabilities:
Check if file exists

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x60
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x98], rbx
mov rdi, rcx
lea rsi, [rcx + 8]
mov rcx, qword [rsi]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ebp, ebp
test eax, eax
je 0x1400cb662
call fcn.14000b190
mov rcx, rax
test rax, rax
je 0x1400cb762
mov rax, qword [rax]
call qword [rax + SafeArrayCopy]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x80], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x1400cb594
mov edx, 0x104
lea rcx, [rsp + 0x80]
call fcn.14000bdf0
mov rbx, qword [rsp + 0x80]
mov r8d, 0x104
mov rdx, rbx
mov rcx, qword [rsi]
call fcn.1400e43e0
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.14028c900
test eax, eax
js 0x1400cb751
cmp eax, dword [rbx - 0xc]
jg 0x1400cb751
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], bp
mov rdx, qword [rdi + 0x40]
test rdx, rdx
je 0x1400cb76d
mov rcx, rbx
call fcn.140299718
test eax, eax
jne 0x1400cb646
mov rcx, rsi
call fcn.1400cf3f0
mov r9, rax
mov edx, 0x43e
mov r8d, 0x64
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_PostMessageW]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x440
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.USER32.dll_PostMessageW]
nop
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cb636
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x98]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400cb662
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebp
xchg byte [rdi + 0x68], al
cmp qword [rdi + 0x60], 0
jne 0x1400cb682
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rdi + 0x60], rax
cmp dword [rdi + 0x58], 0
je 0x1400cb6ee
mov rcx, qword [rdi + 0x60]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [rdi + 0x58]
test eax, eax
jne 0x1400cb6b0
lea ecx, [rax + 1]
call fcn.1400df23c
mov eax, dword [rdi + 0x58]
test eax, eax
jne 0x1400cb6b0
lea ecx, [rax + 1]
call fcn.1400df23c
call sub.KERNEL32.dll_GetCurrentThreadId
cmp dword [rdi + 0x58], eax
jne 0x1400cb6c4
mov ecx, 5
call fcn.1400df23c
movups xmm0, xmmword [rdi + 0x50]
movaps xmmword [rsp + 0x40], xmm0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.1400de76c
test eax, eax
je 0x1400cb6e7
mov ecx, 2
call fcn.1400df23c
mov qword [rdi + 0x50], rbp
mov dword [rdi + 0x58], ebp
mov rcx, qword [rdi + 0x60]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov qword [rsp + 0x88], rdi
lea rax, [0x1400cad20]
mov qword [rsp + 0x90], rax
lea r9, [rdi + 0x18]
mov qword [rsp + 0x20], rsi
lea r8, [rsp + 0x88]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x50]
call fcn.1400c9c00
cmp dword [rdi + 0x58], 0
jne 0x1400cb778
movups xmm0, xmmword [rax]
movups xmmword [rdi + 0x50], xmm0
mov qword [rax], rbp
mov dword [rax + 8], ebp
cmp dword [rsp + 0x58], 0
jne 0x1400cb75c
jmp 0x1400cb636
mov ecx, 0x80070057
call fcn.14000adf0
nop
call fcn.14028ff34
int3
mov ecx, 0x80004005
call fcn.14000adf0
nop
mov ecx, 0x80004005
call fcn.14000adf0
nop
call fcn.14028ff34
int3