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

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x140121108]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov r14, rcx
xor r15d, r15d
xor ecx, ecx
mov ebp, r15d
mov edi, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test r14, r14
je 0x1400bc477
or rsi, 0xffffffffffffffff
mov edx, r15d
mov rax, rsi
nop dword [rax]
inc rax
cmp word [r14 + rax*2], dx
jne 0x1400bc1e0
test rax, rax
je 0x1400bc224
mov rcx, r15
nop dword [rax]
nop word [rax + rax]
movzx r8d, word [r14 + rcx*2]
cmp r8w, 0x5c
je 0x1400bc477
cmp r8w, 0x2f
je 0x1400bc477
inc edx
mov ecx, edx
cmp rcx, rax
jb 0x1400bc200
mov ecx, 0x42ea
mov qword [rsp + 0x98], rbx
call fcn.1400bb4f0
test eax, eax
je 0x1400bc276
call fcn.1400bae10
cmp word [rax], di
jne 0x1400bc249
call fcn.1400baf10
mov rdx, r14
mov rcx, rax
call fcn.1400bb940
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400bc26d
test al, 0x50
je 0x1400bc43c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea rcx, [0x1400e28a8]
call fcn.1400bc4b0
mov rbp, rax
mov rbx, r15
test rax, rax
je 0x1400bc43c
mov rcx, r14
call fcn.1400b9ea0
mov rdi, rax
test rax, rax
je 0x1400bc43c
cmp word [rax + rsi*2 + 2], bx
lea rsi, [rsi + 1]
jne 0x1400bc2a5
lea rsi, [rax + rsi*2]
mov edx, 0x2e
mov rax, rsi
cmp rdi, rsi
jae 0x1400bc2de
mov r8d, 0x5c
movzx ecx, word [rax]
cmp r8w, cx
je 0x1400bc2de
cmp dx, cx
je 0x1400bc2de
sub rax, 2
cmp rdi, rax
jb 0x1400bc2c7
cmp dx, word [rax]
lea rdx, str..dll
cmove rsi, rax
mov rcx, rsi
call fcn.14008a920
test eax, eax
je 0x1400bc314
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400bc314
lea rdx, [0x1400e28a8]
mov rcx, rdi
call fcn.1400ba490
mov rbx, rax
lea rdx, str..sys
mov rcx, rsi
call fcn.14008a920
test eax, eax
je 0x1400bc3f1
test rbx, rbx
jne 0x1400bc43c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400bc3b3
lea rax, str.UserModeDriverNameWow
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x40], rax
lea r9, [rsp + 0x20]
lea rax, str.OpenGLDriverNameWow
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x48], rax
mov r8, rbp
lea rax, str.UserModeDListDriverNameWow
mov rdx, 0xffffffff80000002
mov qword [rsp + 0x50], rax
mov rcx, rdi
lea rax, str.UserModeDriverName
mov qword [rsp + 0x20], rax
lea rax, str.OpenGLDriverName
mov qword [rsp + 0x28], rax
lea rax, str.UserModeDListDriverName
mov qword [rsp + 0x30], rax
call fcn.1400ba910
mov rbx, rax
test rax, rax
jne 0x1400bc43c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400bc3f6
lea rax, str.SOFTWAREKhronosVulkanDrivers
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x20]
lea rax, str.SOFTWAREKhronosOpenCLVendors
mov rdx, 0xffffffff80000002
mov rcx, rdi
mov qword [rsp + 0x28], rax
call fcn.1400ba710
mov rbx, rax
test rbx, rbx
jne 0x1400bc43c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400bc43c
lea rax, str.DriverSupportModulesWow
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x40]
lea rax, str.DriverSupportModules
mov qword [rsp + 0x48], r15
mov r8, rbp
mov qword [rsp + 0x40], rax
mov rdx, 0xffffffff80000002
mov rcx, rdi
call fcn.1400ba910
mov rbx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rbx, rbx
je 0x1400bc457
xor ecx, ecx
jmp 0x1400bc464
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400bc46a
lea ecx, [rax + 0x7e]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rbx
mov rbx, qword [rsp + 0x98]
jmp 0x1400bc484
mov ecx, 0xa0
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1400683e0
lea r11, [rsp + 0x70]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret