Function at 0x140004080
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.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
test rdi, rdi
je 0x140004310
mov rcx, rdi
call fcn.140001940
test eax, eax
jne 0x140004310
mov ecx, 0x42ea
call fcn.140002c30
test eax, eax
je 0x140004117
call fcn.140001a00
cmp word [rax], bx
jne 0x1400040e7
call fcn.140002710
mov rdx, rdi
mov rcx, rax
call fcn.140003db0
mov rcx, rax
mov rsi, rax
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000410b
test al, 0x50
je 0x1400042d4
mov rcx, rsi
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov rsi, r12
xor ecx, ecx
call fcn.140003ec0
mov rbp, rax
test rax, rax
je 0x1400042d4
mov rcx, rdi
call fcn.140003050
mov rbx, rax
test rax, rax
je 0x1400042d4
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 0x14000417a
mov edx, 0x5c
movzx eax, word [rcx]
cmp dx, ax
je 0x14000417a
cmp r8w, ax
je 0x14000417a
sub rcx, 2
cmp rbx, rcx
jb 0x140004163
cmp r8w, word [rcx]
lea rdx, str..dll
cmove rdi, rcx
mov rcx, rdi
call fcn.14001f8e0
test eax, eax
je 0x1400041ac
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jne 0x1400041ac
xor edx, edx
mov rcx, rbx
call fcn.140003370
mov rsi, rax
lea rdx, str..sys
mov rcx, rdi
call fcn.14001f8e0
test eax, eax
je 0x140004289
test rsi, rsi
jne 0x1400042d4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jne 0x14000424b
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.140003620
mov rsi, rax
test rax, rax
jne 0x1400042d4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jne 0x14000428e
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.140003830
mov rsi, rax
test rsi, rsi
jne 0x1400042d4
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jne 0x1400042d4
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.140003620
mov rsi, rax
mov rcx, rbp
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
mov rcx, rbx
call qword [sym.imp.api_ms_win_core_heap_l2_1_0.dll_LocalFree]
test rsi, rsi
je 0x1400042f8
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov rax, rsi
jmp 0x14000431d
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
test eax, eax
jne 0x14000430b
lea ecx, [rax + 0x7e]
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_SetLastError]
mov rax, rsi
jmp 0x14000431d
mov ecx, 0xa0
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.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