Function at 0x1800013d0
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rsi, rcx
xor r14d, r14d
mov rbx, qword [0x18010ab48]
test rbx, rbx
jne 0x180001430
mov ecx, 0x1b8
call fcn.1800564d0
mov qword [rsp + 0x80], rax
test rax, rax
je 0x180001426
mov rcx, rax
call fcn.1800102c0
mov rbx, rax
jmp 0x180001429
mov rbx, r14
mov qword [0x18010ab48], rbx
mov rcx, rbx
call fcn.180010e60
mov rcx, rbx
call fcn.180010b40
test al, al
je 0x18000145a
mov rcx, rbx
call fcn.180010d20
test al, al
je 0x18000145a
mov rcx, rbx
call fcn.180010470
jmp 0x180001486
cmp qword [rbx + 0x1b0], 0x10
jb 0x18000146d
mov rcx, qword [rbx + 0x198]
jmp 0x180001474
lea rcx, [rbx + 0x198]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x180001486
mov rcx, rbx
call fcn.180010470
mov rcx, rsi
call fcn.180001810
mov eax, dword [rsi + 8]
test eax, eax
je 0x18000160b
nop dword [rax]
or edx, 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp qword [rsi + 0x78], 0
sete bl
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
je 0x180001532
mov eax, dword [rsi + 8]
test eax, eax
je 0x180001532
or edx, 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lock add dword [rsi + 0x30], 1
xor r9d, r9d
mov r8d, 0x1f4
mov rdx, qword [rsi + 0x38]
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_SignalObjectAndWait]
or edx, 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lock add dword [rsi + 0x30], 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
or edx, 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp qword [rsi + 0x78], 0
sete bl
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
jne 0x1800014c3
or edx, 0xffffffff
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp qword [rsi + 0x78], 0
sete bl
mov rcx, qword [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
test bl, bl
jne 0x180001600
mov eax, dword [rsi + 8]
test eax, eax
je 0x180001600
lea rdx, [rsp + 0x38]
lea rcx, [rsi + 0x28]
call fcn.180001a50
nop
mov r12, qword [rsi + 0x18]
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x30], r14
mov rbp, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
test rbp, rbp
je 0x1800015be
lock add dword [rbp + 0x10], 1
mov rbx, qword [rsp + 0x30]
test rbx, rbx
je 0x1800015be
lock add dword [rbx + 0x10], 0xffffffff
jne 0x1800015be
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock add dword [rbx + 0x14], 0xffffffff
jne 0x1800015be
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], r13
mov rax, qword [r12]
lea rdx, [rsp + 0x28]
mov rcx, r12
call qword [rax]
nop
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x180001600
lock add dword [rbx + 0x10], 0xffffffff
jne 0x180001600
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock add dword [rbx + 0x14], 0xffffffff
jne 0x180001600
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + VariantCopy]
mov eax, dword [rsi + 8]
test eax, eax
jne 0x1800014a0
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret