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

Disassembly:
mov qword [rsp + 0x20], rsi
push rbp
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x190]
sub rsp, 0x290
mov rax, qword [0x140103a28]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov rdi, rcx
xor r15d, r15d
xor ecx, ecx
mov r13d, r15d
mov esi, r15d
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rdi, rdi
je 0x14002d2f0
mov r12, 0xffffffffffffffff
mov edx, r15d
mov rax, r12
inc rax
cmp word [rdi + rax*2], dx
jne 0x14002cd07
test rax, rax
je 0x14002cd44
mov rcx, r15
nop dword [rax + rax]
movzx r8d, word [rdi + rcx*2]
cmp r8w, 0x5c
je 0x14002d2f0
cmp r8w, 0x2f
je 0x14002d2f0
inc edx
mov ecx, edx
cmp rcx, rax
jb 0x14002cd20
mov qword [rsp + 0x2c8], rbx
mov ecx, 0x42ea
mov qword [rsp + 0x2d0], r14
call fcn.14002a8f0
test eax, eax
je 0x14002cf1e
xor edx, edx
lea rcx, [rsp + 0x72]
mov r8d, 0x208
call fcn.14006b9a0
mov rax, qword [str.nvldumdx.dll]
mov word [rsp + 0x70], r15w
test rax, rax
je 0x14002ce2c
mov r14, r15
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002cdec
mov r8d, 0x104
lea rdx, [rsp + 0x70]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov ebx, eax
test eax, eax
je 0x14002cdec
movzx eax, word [rsp + 0x70]
cmp eax, 0x5c
je 0x14002ce01
cmp eax, 0x2f
je 0x14002ce01
mov ecx, eax
call fcn.1400a8cd0
test eax, eax
je 0x14002cdec
cmp word [rsp + 0x72], 0x3a
jne 0x14002cdec
movzx eax, word [rsp + 0x74]
cmp ax, 0x5c
je 0x14002ce01
cmp ax, 0x2f
je 0x14002ce01
inc r14
lea rax, str.nvldumdx.dll
mov rax, qword [rax + r14*8]
test rax, rax
jne 0x14002cd91
jmp 0x14002ce25
lea rcx, [rsp + 0x70]
lea rcx, [rcx + rbx*2]
nop word [rax + rax]
cmp word [rcx], 0x5c
je 0x14002ce1f
sub rcx, 2
add ebx, 0xffffffff
jne 0x14002ce10
mov word [rsp + rbx*2 + 0x70], r15w
cmp word [rsp + 0x70], si
jne 0x14002ce36
lea rcx, [rsp + 0x70]
call fcn.140028b40
lea rax, [rsp + 0x70]
mov rcx, r12
nop
inc rcx
cmp word [rax + rcx*2], si
jne 0x14002ce40
mov rdx, r12
nop dword [rax]
inc rdx
cmp word [rdi + rdx*2], si
jne 0x14002ce50
test rcx, rcx
je 0x14002ce77
cmp word [rsp + rcx*2 + 0x6e], 0x5c
je 0x14002ce77
test rdx, rdx
je 0x14002ce77
cmp word [rdi], 0x5c
mov r14d, 1
jne 0x14002ce7a
mov r14d, r15d
mov eax, r14d
add rax, rdx
add rax, rcx
mov ecx, 0x40
lea r15, [rax*2 + 2]
mov rdx, r15
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rbx, rax
test rax, rax
je 0x14002cefc
lea r8, [rsp + 0x70]
mov rdx, r15
mov rcx, rax
call fcn.14002b2e0
test eax, eax
js 0x14002ced3
test r14d, r14d
je 0x14002cee7
lfence
lea r8, [0x1400da2b0]
mov rdx, r15
mov rcx, rbx
call fcn.14002b220
test eax, eax
jns 0x14002cee7
lfence
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor r15d, r15d
mov ebx, r15d
jmp 0x14002ceff
lfence
mov r8, rdi
mov rdx, r15
mov rcx, rbx
call fcn.14002b220
test eax, eax
js 0x14002ced3
xor r15d, r15d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002cf15
test al, 0x50
je 0x14002d1a4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor ecx, ecx
call fcn.14002d350
mov r13, rax
mov rbx, r15
test rax, rax
je 0x14002d1a4
mov rcx, r12
nop word [rax + rax]
cmp word [rdi + rcx*2 + 2], si
lea rcx, [rcx + 1]
jne 0x14002cf40
mov rax, r12
nop
cmp word [rdi + rax*2 + 2], si
lea rax, [rax + 1]
jne 0x14002cf50
lea r8, [rdi + rax*2]
mov r10d, 0x5c
mov rax, r8
lea r9d, [r10 - 0x2e]
cmp rdi, r8
jae 0x14002cf89
movzx edx, word [rax]
cmp r10w, dx
je 0x14002cf89
cmp r9w, dx
je 0x14002cf89
sub rax, 2
cmp rdi, rax
jb 0x14002cf71
cmp r9w, word [rax]
cmove r8, rax
mov rax, r12
inc rax
cmp word [r8 + rax*2], si
jne 0x14002cf94
test rax, rax
je 0x14002d283
cmp rax, 1
je 0x14002d1c6
mov rbx, r12
inc rbx
cmp word [rdi + rbx*2], si
jne 0x14002cfb4
inc rbx
mov ecx, 0x40
lea rdx, [rbx + rbx]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
jne 0x14002d016
mov rcx, r13
mov rbx, r15
call qword [sym.imp.KERNEL32.dll_LocalFree]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_LocalFree]
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002cffe
lea ecx, [rax + 0x7e]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [rsp + 0x2d0]
mov rax, rbx
mov rbx, qword [rsp + 0x2c8]
jmp 0x14002d2fd
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.14002b4a0
test eax, eax
jns 0x14002d037
lfence
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rsi, r15
mov r10d, 0x5c
lea r9d, [r10 - 0x2e]
mov rbx, r15
test rsi, rsi
je 0x14002d1a4
nop dword [rax]
cmp word [rsi + r12*2 + 2], 0
lea r12, [r12 + 1]
jne 0x14002d050
lea rdi, [rsi + r12*2]
mov rax, rdi
cmp rsi, rdi
jae 0x14002d088
nop word [rax + rax]
movzx ecx, word [rax]
cmp r10w, cx
je 0x14002d088
cmp r9w, cx
je 0x14002d088
sub rax, 2
cmp rsi, rax
jb 0x14002d070
cmp r9w, word [rax]
lea rdx, str..dll
cmove rdi, rax
mov rcx, rdi
call fcn.140093894
test eax, eax
je 0x14002d0ba
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002d0ba
xor edx, edx
mov rcx, rsi
call fcn.140027ec0
mov rbx, rax
lea rdx, str..sys
mov rcx, rdi
call fcn.140093894
test eax, eax
je 0x14002d16a
test rbx, rbx
jne 0x14002d1a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002d12c
lea rax, str.UserModeDriverName
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x48], rax
lea r9, [rsp + 0x48]
lea rax, str.OpenGLDriverName
mov r8, r13
mov qword [rsp + 0x50], rax
mov rdx, 0xffffffff80000002
lea rax, str.UserModeDListDriverName
mov rcx, rsi
mov qword [rsp + 0x58], rax
call fcn.1400283f0
mov rbx, rax
test rax, rax
jne 0x14002d1a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002d16f
lea rax, str.SOFTWAREKhronosVulkanDrivers
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x30]
lea rax, str.SOFTWAREKhronosOpenCLVendors
mov rdx, 0xffffffff80000002
mov rcx, rsi
mov qword [rsp + 0x38], rax
call fcn.140028170
mov rbx, rax
test rbx, rbx
jne 0x14002d1a4
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002d1a4
lea rax, str.DriverSupportModules
mov qword [rsp + 0x28], r15
lea r9, [rsp + 0x20]
mov qword [rsp + 0x20], rax
mov r8, r13
mov rdx, 0xffffffff80000002
mov rcx, rsi
call fcn.1400283f0
mov rbx, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
test rbx, rbx
je 0x14002cfeb
xor ecx, ecx
jmp 0x14002cff8
lea r14, [rcx - 1]
test r14, r14
js 0x14002d27b
lfence
mov rbx, r12
nop dword [rax]
inc rbx
cmp word [rdi + rbx*2], si
jne 0x14002d1e0
cmp r14, rbx
mov ecx, 0x40
cmovb rbx, r14
inc rbx
lea rdx, [rbx + rbx]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x14002cfd7
lea rax, [rbx - 1]
cmp rax, 0x7ffffffe
ja 0x14002d269
cmp r14, 0x7ffffffe
ja 0x14002d272
sub r14, rbx
mov rcx, rsi
sub rdi, rsi
nop dword [rax]
lea rax, [rbx + r14]
test rax, rax
je 0x14002d24f
movzx eax, word [rcx + rdi]
test ax, ax
je 0x14002d24f
mov word [rcx], ax
add rcx, 2
sub rbx, 1
jne 0x14002d230
test rbx, rbx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], r15w
jne 0x14002d037
jmp 0x14002d028
test rbx, rbx
je 0x14002d028
mov word [rsi], r15w
jmp 0x14002d028
mov rsi, r15
jmp 0x14002d041
lea rbx, [rcx*2 + 0xa]
mov ecx, 0x40
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rsi, rax
test rax, rax
je 0x14002d037
mov r8, rdi
mov rdx, rbx
mov rcx, rax
call fcn.14002b2e0
lfence
mov rcx, rsi
test eax, eax
jns 0x14002d2c8
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x14002cfd7
lea r8, str..dll
mov rdx, rbx
call fcn.14002b220
test eax, eax
jns 0x14002d037
lfence
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LocalFree]
jmp 0x14002cfd7
mov ecx, 0xa0
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.140069d50
mov rsi, qword [rsp + 0x2d8]
add rsp, 0x290
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret