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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
mov eax, 0x60
call fcn.140177de0
sub rsp, rax
xor r15d, r15d
mov rsi, rcx
xor ecx, ecx
mov r14d, r15d
mov ebx, r15d
mov ebp, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rsi, rsi
je 0x140012f98
or rdi, 0xffffffffffffffff
mov r8d, r15d
mov rax, rdi
nop dword [rax + rax]
inc rax
cmp word [rsi + rax*2], bx
jne 0x140012d20
test rax, rax
je 0x140012d54
mov rcx, r15
movzx edx, word [rsi + rcx*2]
cmp dx, 0x5c
je 0x140012f98
cmp dx, 0x2f
je 0x140012f98
inc r8d
mov ecx, r8d
cmp rcx, rax
jb 0x140012d31
mov ecx, 0x42ea
call fcn.140011fc0
test eax, eax
je 0x140012d97
call fcn.140011990
mov rdx, rsi
mov rcx, rax
call fcn.140012480
mov rcx, rax
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140012d8b
test al, 0x50
je 0x140012f5c
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rbp, r15
lea rcx, [0x1402108d8]
call fcn.140012fc0
mov r14, rax
test rax, rax
je 0x140012f5c
mov rcx, rsi
call fcn.140010840
mov rbx, rax
test rax, rax
je 0x140012f5c
cmp word [rax + rdi*2 + 2], r15w
lea rdi, [rdi + 1]
jne 0x140012dc3
lea rdi, [rax + rdi*2]
mov r8d, 0x2e
mov rax, rdi
cmp rbx, rdi
jae 0x140012dfd
mov edx, 0x5c
movzx ecx, word [rax]
cmp dx, cx
je 0x140012dfd
cmp r8w, cx
je 0x140012dfd
sub rax, 2
cmp rbx, rax
jb 0x140012de6
cmp r8w, word [rax]
lea rdx, str..dll
cmove rdi, rax
mov rcx, rdi
call fcn.1401a8e44
test eax, eax
je 0x140012e34
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140012e34
lea rdx, [0x1402108d8]
mov rcx, rbx
call fcn.140010f70
mov rbp, rax
lea rdx, str..sys
mov rcx, rdi
call fcn.1401a8e44
test eax, eax
je 0x140012f11
test rbp, rbp
jne 0x140012f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140012ed3
lea rax, str.UserModeDriverNameWow
lea r9, [rsp + 0x40]
mov r8, r14
mov qword [rsp + 0x20], rax
lea rax, str.OpenGLDriverNameWow
mov rdx, 0xffffffff80000002
mov qword [rsp + 0x28], rax
lea rax, str.UserModeDListDriverNameWow
mov rcx, rbx
mov qword [rsp + 0x30], rax
lea rax, str.UserModeDriverName
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rax
lea rax, str.OpenGLDriverName
mov qword [rsp + 0x58], r15
mov qword [rsp + 0x48], rax
lea rax, str.UserModeDListDriverName
mov qword [rsp + 0x50], rax
call fcn.140011430
mov rbp, rax
test rax, rax
jne 0x140012f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140012f16
lea rax, str.SOFTWAREKhronosVulkanDrivers
lea r8, [rsp + 0x40]
mov rdx, 0xffffffff80000002
mov qword [rsp + 0x40], rax
lea rax, str.SOFTWAREKhronosOpenCLVendors
mov rcx, rbx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], r15
call fcn.140011210
mov rbp, rax
test rbp, rbp
jne 0x140012f5c
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140012f5c
lea rax, str.DriverSupportModulesWow
lea r9, [rsp + 0x20]
mov r8, r14
mov qword [rsp + 0x40], rax
lea rax, str.DriverSupportModules
mov rdx, 0xffffffff80000002
mov rcx, rbx
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rax
call fcn.140011430
mov rbp, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rbp, rbp
je 0x140012f80
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rbp
jmp 0x140012fa5
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140012f93
lea ecx, [rax + 0x7e]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rbp
jmp 0x140012fa5
mov ecx, 0xa0
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret