Function at 0x140018c40
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r13, r9
mov r15, r8
mov rbx, rdx
xor r14d, r14d
mov rcx, rdx
call fcn.1400e81d8
movzx eax, word [r15]
test ax, ax
je 0x140018d46
cmp word [r15 + 2], 0x3a
je 0x140018c8f
cmp ax, 0x5c
jne 0x140018d46
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x38]
lea rcx, [0x1401791c0]
call fcn.140008c40
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x140018cbc
mov rcx, qword [rbx]
jmp 0x140018cbf
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov rdi, qword [r13]
mov rcx, r15
call fcn.1400e81d8
mov qword [r13], rax
mov rcx, rdi
call fcn.1400e825c
cmp esi, 0xffffffff
je 0x140018cef
test sil, 0x10
jne 0x140018cef
mov dil, 1
jmp 0x140018cf2
xor dil, dil
test rbx, rbx
je 0x140018d3d
mov rbp, 0xffffffffffffffff
lock xadd dword [rbx + 0x10], ebp
cmp ebp, 1
jne 0x140018d3d
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140018d1e
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140018d30
call fcn.1400e0fb8
mov qword [rbx + 8], r14
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.1400e0fb8
movzx eax, dil
jmp 0x140018f28
lea r12, [0x14011eaa0]
mov rcx, r12
test rbx, rbx
cmovne rcx, rbx
call fcn.1400e81d8
mov rdi, rax
mov qword [rsp + 0x38], rax
xor ecx, ecx
call fcn.1400e825c
nop
cmp word [rdi], 0
je 0x140018f1b
mov rbp, 0xffffffffffffffff
mov eax, 0x3b
mov edx, eax
mov rcx, rdi
call fcn.1400e3bac
mov rsi, rax
test rax, rax
je 0x140018d98
mov word [rax], r14w
mov rcx, rbp
nop dword [rax + rax]
inc rcx
cmp word [rdi + rcx*2], 0
jne 0x140018da0
mov rax, rbp
nop dword [rax]
lea rax, [rax + 1]
cmp word [r15 + rax*2], 0
jne 0x140018db0
lea rbx, [rax + 2]
add rbx, rcx
mov ebx, ebx
lea rcx, [rbx + rbx]
call fcn.1400e8270
mov r14, rax
mov qword [rsp + 0x20], r15
mov r9, rdi
lea r8, [0x140124790]
mov edx, ebx
mov rcx, rax
call fcn.1400192b0
test rsi, rsi
je 0x140018dfd
mov eax, 0x3b
mov word [rsi], ax
lea rdi, [rsi + 2]
jmp 0x140018e00
mov rdi, r12
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x30]
lea rcx, [0x1401791c0]
call fcn.140008c40
mov rbx, qword [rsp + 0x30]
xor esi, esi
test rbx, rbx
je 0x140018e2f
mov rcx, qword [rbx]
jmp 0x140018e32
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140018e41
test al, 0x10
je 0x140018ea2
mov rcx, r14
call fcn.1400e825c
test rbx, rbx
je 0x140018e94
mov eax, ebp
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x140018e8f
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140018e70
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rsi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140018e82
call fcn.1400e0fb8
mov qword [rbx + 8], rsi
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.1400e0fb8
mov qword [rsp + 0x30], rsi
cmp word [rdi], 0
je 0x140018f16
xor r14d, r14d
jmp 0x140018d7d
mov rdi, qword [r13]
test r14, r14
cmovne r12, r14
mov rcx, r12
call fcn.1400e81d8
mov qword [r13], rax
mov rcx, rdi
call fcn.1400e825c
mov rcx, r14
call fcn.1400e825c
test rbx, rbx
je 0x140018f0d
lock xadd dword [rbx + 0x10], ebp
cmp ebp, 1
jne 0x140018f0d
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx]
test rcx, rcx
je 0x140018eee
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rsi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140018f00
call fcn.1400e0fb8
mov qword [rbx + 8], rsi
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, rbx
call fcn.1400e0fb8
mov bl, 1
mov rdi, qword [rsp + 0x38]
jmp 0x140018f1d
mov rdi, qword [rsp + 0x38]
xor bl, bl
mov rcx, rdi
call fcn.1400e825c
movzx eax, bl
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret