Function at 0x14002cfb0
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.140059d48
movzx eax, word [r15]
test ax, ax
je 0x14002d0c1
cmp word [r15 + 2], 0x3a
je 0x14002cfff
cmp ax, 0x5c
jne 0x14002d0c1
mov qword [rsp + 0x20], r15
xor r9d, r9d
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x38]
lea rcx, [0x1400a65b0]
call fcn.14001afd0
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x14002d02c
mov rcx, qword [rbx]
jmp 0x14002d02f
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
mov rdi, qword [r13]
lea rcx, [0x14007a7c4]
test r15, r15
cmovne rcx, r15
call fcn.140059d48
mov qword [r13], rax
mov rcx, rdi
call fcn.140059d2c
cmp esi, 0xffffffff
je 0x14002d06a
test sil, 0x10
jne 0x14002d06a
mov dil, 1
jmp 0x14002d06d
xor dil, dil
test rbx, rbx
je 0x14002d0b8
mov rbp, 0xffffffffffffffff
lock xadd dword [rbx + 0x10], ebp
cmp ebp, 1
jne 0x14002d0b8
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002d099
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], r14
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14002d0ab
call fcn.14004bd8c
mov qword [rbx + 8], r14
mov edx, 0x18
mov rcx, rbx
call fcn.14004bd8c
movzx eax, dil
jmp 0x14002d29c
lea r12, [0x14007a7c4]
mov rcx, r12
test rbx, rbx
cmovne rcx, rbx
call fcn.140059d48
mov rdi, rax
mov qword [rsp + 0x38], rax
xor ecx, ecx
call fcn.140059d2c
nop
cmp word [rdi], 0
je 0x14002d28f
mov rbp, 0xffffffffffffffff
mov eax, 0x3b
mov edx, eax
mov rcx, rdi
call fcn.14004eb30
mov rsi, rax
test rax, rax
je 0x14002d113
mov word [rax], r14w
mov rcx, rbp
inc rcx
cmp word [rdi + rcx*2], 0
jne 0x14002d116
mov rax, rbp
lea rax, [rax + 1]
cmp word [r15 + rax*2], 0
jne 0x14002d123
lea rbx, [rax + 2]
add rbx, rcx
mov ebx, ebx
lea rcx, [rbx + rbx]
call fcn.140059d40
mov r14, rax
mov qword [rsp + 0x20], r15
mov r9, rdi
lea r8, str._s_s
mov edx, ebx
mov rcx, rax
call fcn.140005c50
test rsi, rsi
je 0x14002d16d
mov word [rsi], 0x3b
lea rdi, [rsi + 2]
jmp 0x14002d170
mov rdi, r12
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x30]
lea rcx, [0x1400a65b0]
call fcn.14001afd0
mov rbx, qword [rsp + 0x30]
xor esi, esi
test rbx, rbx
je 0x14002d19f
mov rcx, qword [rbx]
jmp 0x14002d1a2
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002d1b1
test al, 0x10
je 0x14002d216
mov rcx, r14
call fcn.140059d2c
test rbx, rbx
je 0x14002d204
mov eax, ebp
lock xadd dword [rbx + 0x10], eax
cmp eax, 1
jne 0x14002d1ff
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002d1e0
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rsi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14002d1f2
call fcn.14004bd8c
mov qword [rbx + 8], rsi
mov edx, 0x18
mov rcx, rbx
call fcn.14004bd8c
mov qword [rsp + 0x30], rsi
cmp word [rdi], 0
je 0x14002d28a
xor r14d, r14d
jmp 0x14002d0f8
mov rdi, qword [r13]
test r14, r14
cmovne r12, r14
mov rcx, r12
call fcn.140059d48
mov qword [r13], rax
mov rcx, rdi
call fcn.140059d2c
mov rcx, r14
call fcn.140059d2c
test rbx, rbx
je 0x14002d281
lock xadd dword [rbx + 0x10], ebp
cmp ebp, 1
jne 0x14002d281
mov rbx, qword [rsp + 0x30]
mov rcx, qword [rbx]
test rcx, rcx
je 0x14002d262
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rsi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14002d274
call fcn.14004bd8c
mov qword [rbx + 8], rsi
mov edx, 0x18
mov rcx, rbx
call fcn.14004bd8c
mov bl, 1
mov rdi, qword [rsp + 0x38]
jmp 0x14002d291
mov rdi, qword [rsp + 0x38]
xor bl, bl
mov rcx, rdi
call fcn.140059d2c
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