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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x280
mov rax, qword [0x14072a340]
xor rax, rsp
mov qword [rsp + 0x270], rax
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 0x140004b53
mov rcx, rdi
call fcn.140001dc0
test eax, eax
jne 0x140004b53
mov ecx, 0x42ea
call fcn.140003000
test eax, eax
je 0x14000495a
lea rcx, [rsp + 0x62]
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0x60], r12w
call sub.VCRUNTIME140.dll_memset
lea rcx, [rsp + 0x60]
call fcn.140001e80
cmp word [rsp + 0x60], bx
jne 0x140004928
lea rcx, [rsp + 0x60]
call fcn.140003fc0
lea rcx, [rsp + 0x60]
mov rdx, rdi
call fcn.140003eb0
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000494e
test al, 0x50
je 0x140004b17
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rsi, r12
xor ecx, ecx
call fcn.140004360
mov rbp, rax
test rax, rax
je 0x140004b17
mov rcx, rdi
call fcn.140003420
mov rbx, rax
test rax, rax
je 0x140004b17
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 0x1400049bd
mov edx, 0x5c
movzx eax, word [rcx]
cmp dx, ax
je 0x1400049bd
cmp r8w, ax
je 0x1400049bd
sub rcx, 2
cmp rbx, rcx
jb 0x1400049a6
cmp r8w, word [rcx]
lea rdx, str..dll
cmove rdi, rcx
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll__wcsicmp
test eax, eax
je 0x1400049ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400049ef
xor edx, edx
mov rcx, rbx
call fcn.140003740
mov rsi, rax
lea rdx, str..sys
mov rcx, rdi
call sub.api_ms_win_crt_string_l1_1_0.dll__wcsicmp
test eax, eax
je 0x140004acc
test rsi, rsi
jne 0x140004b17
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140004a8e
lea rax, str.UserModeDriverNameWow
lea r9, [rsp + 0x20]
mov r8, rbp
mov qword [rsp + 0x40], rax
lea rax, str.OpenGLDriverNameWow
mov rdx, 0xffffffff80000002
mov qword [rsp + 0x48], rax
lea rax, str.UserModeDListDriverNameWow
mov rcx, rbx
mov qword [rsp + 0x50], rax
lea rax, str.UserModeDriverName
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x20], rax
lea rax, str.OpenGLDriverName
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x28], rax
lea rax, str.UserModeDListDriverName
mov qword [rsp + 0x30], rax
call fcn.1400039f0
mov rsi, rax
test rax, rax
jne 0x140004b17
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140004ad1
lea rax, str.SOFTWAREKhronosVulkanDrivers
lea r8, [rsp + 0x20]
mov rdx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
lea rax, str.SOFTWAREKhronosOpenCLVendors
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r12
call fcn.140003c00
mov rsi, rax
test rsi, rsi
jne 0x140004b17
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140004b17
lea rax, str.DriverSupportModulesWow
lea r9, [rsp + 0x40]
mov r8, rbp
mov qword [rsp + 0x20], rax
lea rax, str.DriverSupportModules
mov rdx, 0xffffffff80000002
mov rcx, rbx
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], rax
call fcn.1400039f0
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 0x140004b3b
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
jmp 0x140004b60
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x140004b4e
lea ecx, [rax + 0x7e]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
jmp 0x140004b60
mov ecx, 0xa0
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.1402cf370
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret