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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
sub rsp, 0x60
xor r12d, r12d
mov rdi, rcx
xor ecx, ecx
mov rbp, r12
mov rbx, r12
mov rsi, r12
call qword [sym.imp.KERNEL32.DLL_SetLastError]
test rdi, rdi
je 0x140034950
mov rcx, rdi
call fcn.14002c070
test eax, eax
jne 0x140034950
mov ecx, 0x42ea
call fcn.14002e940
test eax, eax
je 0x140034757
call fcn.14002d090
cmp word [rax], bx
jne 0x140034727
call fcn.14002e300
mov rdx, rdi
mov rcx, rax
call fcn.1400337a0
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14003474b
test al, 0x50
je 0x140034914
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_LocalFree]
mov rsi, r12
xor ecx, ecx
call fcn.1400344f0
mov rbp, rax
test rax, rax
je 0x140034914
mov rcx, rdi
call fcn.14002ed60
mov rbx, rax
test rax, rax
je 0x140034914
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rbx
repne scasw ax, word [rdi]
lea r8d, [rax + 0x2e]
not rcx
lea rdi, [rbx + rcx*2 - 2]
mov rcx, rdi
cmp rbx, rdi
jae 0x1400347ba
mov edx, 0x5c
movzx eax, word [rcx]
cmp dx, ax
je 0x1400347ba
cmp r8w, ax
je 0x1400347ba
sub rcx, 2
cmp rbx, rcx
jb 0x1400347a3
cmp r8w, word [rcx]
lea rdx, str..dll
cmove rdi, rcx
mov rcx, rdi
call fcn.140148500
test eax, eax
je 0x1400347ec
call qword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x1400347ec
xor edx, edx
mov rcx, rbx
call fcn.14002f080
mov rsi, rax
lea rdx, str..sys
mov rcx, rdi
call fcn.140148500
test eax, eax
je 0x1400348c9
test rsi, rsi
jne 0x140034914
call qword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x14003488b
lea rax, str.UserModeDriverNameWow
lea r9, [rsp + 0x40]
mov r8, rbp
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], r12
mov qword [rsp + 0x40], rax
lea rax, str.OpenGLDriverName
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x48], rax
lea rax, str.UserModeDListDriverName
mov qword [rsp + 0x50], rax
call fcn.14002f330
mov rsi, rax
test rax, rax
jne 0x140034914
call qword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x1400348ce
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], r12
call fcn.14002f540
mov rsi, rax
test rsi, rsi
jne 0x140034914
call qword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x140034914
lea rax, str.DriverSupportModulesWow
lea r9, [rsp + 0x20]
mov r8, rbp
mov qword [rsp + 0x40], rax
lea rax, str.DriverSupportModules
mov rdx, 0xffffffff80000002
mov rcx, rbx
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rax
call fcn.14002f330
mov rsi, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_LocalFree]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_LocalFree]
test rsi, rsi
je 0x140034938
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_SetLastError]
mov rax, rsi
jmp 0x14003495d
call qword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
jne 0x14003494b
lea ecx, [rax + 0x7e]
call qword [sym.imp.KERNEL32.DLL_SetLastError]
mov rax, rsi
jmp 0x14003495d
mov ecx, 0xa0
call qword [sym.imp.KERNEL32.DLL_SetLastError]
xor eax, eax
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret