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

Disassembly:
sub esp, 0x240
mov eax, dword [0x4d57fc]
xor eax, esp
mov dword [esp + 0x23c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x24c]
xor ebx, ebx
push edi
xor edi, edi
mov dword [esp + 0x1c], ebp
push edi
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebp, ebp
je 0x418183
push ebp
call fcn.00412fb0
add esp, 4
test eax, eax
jne 0x418183
push esi
cmp dword [0x4d7968], ebx
jne 0x417cc4
push 0x4bb300
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test eax, eax
jne 0x417c87
push 0
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0
call dword [sym.imp.KERNEL32.dll_LocalFree]
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x417c6c
push 0x7e
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
mov eax, edi
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x23c]
xor ecx, esp
call fcn.00461564
add esp, 0x240
ret
cmp dword [0x4d7968], ebx
jne 0x417ca4
push str.IsWow64Process
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4d7968], eax
test eax, eax
je 0x417c4a
push 0x4d7964
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov esi, dword [0x4d7968]
mov ecx, esi
push eax
call dword [0x4b9328]
call esi
test eax, eax
je 0x417c4a
mov eax, dword [0x4d7964]
push 0x42ea
mov dword [esp + 0x18], eax
call fcn.004160d0
add esp, 4
test eax, eax
je 0x417e81
push 0x208
lea eax, [esp + 0x46]
push 0
push eax
call fcn.004638a0
xor eax, eax
add esp, 0xc
mov word [esp + 0x40], ax
xor edi, edi
mov eax, dword [str.nvldumdx.dll]
test eax, eax
je 0x417d9b
nop dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test eax, eax
je 0x417d6c
push 0x104
lea ecx, [esp + 0x44]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov esi, eax
test esi, esi
je 0x417d6c
mov ax, word [esp + 0x40]
cmp ax, 0x5c
je 0x417d80
cmp ax, 0x2f
je 0x417d80
movzx eax, ax
push eax
call fcn.00480be0
add esp, 4
test eax, eax
je 0x417d6c
cmp word [esp + 0x42], 0x3a
jne 0x417d6c
mov ax, word [esp + 0x44]
cmp ax, 0x5c
je 0x417d80
cmp ax, 0x2f
je 0x417d80
mov eax, dword [edi*4 + 0x4d5044]
inc edi
test eax, eax
jne 0x417d10
jmp 0x417d94
cmp word [esp + esi*2 + 0x40], 0x5c
je 0x417d8d
sub esi, 1
jne 0x417d80
xor eax, eax
mov word [esp + esi*2 + 0x40], ax
cmp word [esp + 0x40], bx
jne 0x417da8
lea eax, [esp + 0x40]
push eax
call fcn.004140f0
add esp, 4
lea ecx, [esp + 0x40]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417db0
sub ecx, edx
mov edx, ebp
sar ecx, 1
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x417dc4
sub edx, esi
sar edx, 1
test ecx, ecx
je 0x417df1
cmp word [esp + ecx*2 + 0x3e], 0x5c
je 0x417df1
test edx, edx
je 0x417df1
cmp word [ebp], 0x5c
je 0x417df1
mov ebp, 1
jmp 0x417df3
xor ebp, ebp
lea eax, [edx + ebp]
add eax, ecx
lea esi, [eax*2 + 2]
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
je 0x417e62
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.004168e0
test eax, eax
js 0x417e56
test ebp, ebp
je 0x417e35
push 0x4bcc74
push esi
push edi
lfence
call fcn.00416840
test eax, eax
js 0x417e56
lfence
mov ebp, dword [esp + 0x20]
push ebp
push esi
push edi
call fcn.00416840
test eax, eax
jns 0x417e66
push edi
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
jmp 0x417e66
push edi
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor edi, edi
mov ebp, dword [esp + 0x20]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x417e7a
test al, 0x50
je 0x418163
push edi
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0
call fcn.004181d0
add esp, 4
mov dword [esp + 0x10], eax
xor edi, edi
cmp eax, ebx
je 0x418163
mov esi, ebp
lea ecx, [esi + 2]
nop
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x417ea0
sub esi, ecx
push ebp
sar esi, 1
call fcn.00413d80
add esp, 4
lea edx, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x417ec0
sub eax, edx
sar eax, 1
sub eax, 0
je 0x4180b3
sub eax, 1
je 0x418031
mov ecx, ebp
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417ee6
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 1]
lea eax, [esi + esi]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x417f15
push dword [esp + 0x10]
xor edi, edi
jmp 0x417c4c
push ebp
push esi
push ebx
call fcn.00416a40
test eax, eax
jns 0x417f2d
push ebx
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor ebx, ebx
xor edi, edi
test ebx, ebx
je 0x418163
push ebx
call fcn.00413d80
mov esi, eax
push str..dll
push esi
call fcn.004812ea
add esp, 0xc
test eax, eax
je 0x417f67
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x417f67
push eax
push ebx
call fcn.00413620
add esp, 8
mov edi, eax
push str..sys
push esi
call fcn.004812ea
add esp, 8
test eax, eax
je 0x418117
test edi, edi
jne 0x418163
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x417ff5
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x3c], eax
test esi, esi
lea eax, [esp + 0x20]
mov dword [esp + 0x20], str.UserModeDriverNameWow
cmove eax, ecx
mov dword [esp + 0x24], str.OpenGLDriverNameWow
push eax
push dword [esp + 0x14]
mov dword [esp + 0x30], str.UserModeDListDriverNameWow
push 0x80000002
push ebx
mov dword [esp + 0x40], str.UserModeDriverName
mov dword [esp + 0x44], str.OpenGLDriverName
mov dword [esp + 0x48], str.UserModeDListDriverName
call fcn.00413a60
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x418163
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x41811f
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
push eax
push 0x80000002
push ebx
mov dword [esp + 0x20], str.SOFTWAREKhronosVulkanDrivers
mov dword [esp + 0x24], str.SOFTWAREKhronosOpenCLVendors
call fcn.00413860
add esp, 0xc
mov edi, eax
jmp 0x41811b
lea edi, [esi - 1]
test edi, edi
js 0x417f2b
mov esi, ebp
lfence
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x418044
sub esi, ecx
sar esi, 1
cmp edi, esi
cmovb esi, edi
inc esi
lea eax, [esi + esi]
push eax
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x418076
push dword [esp + 0x10]
xor edi, edi
jmp 0x417c4c
test esi, esi
je 0x417f21
cmp esi, 0x7fffffff
ja 0x4180a1
cmp edi, 0x7ffffffe
ja 0x4180a9
push edi
push ebp
push 0
push esi
push ebx
lfence
call fcn.00416ab0
jmp 0x417f1d
test esi, esi
je 0x417f21
xor eax, eax
mov word [ebx], ax
jmp 0x417f21
lea esi, [esi*2 + 0xa]
push esi
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov ebx, eax
test ebx, ebx
je 0x417f2d
push ebp
push esi
push ebx
call fcn.004168e0
lfence
test eax, eax
jns 0x4180ee
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [esp + 0x10]
xor edi, edi
jmp 0x417c4c
push str..dll
push esi
push ebx
call fcn.00416840
test eax, eax
jns 0x417f2d
push ebx
lfence
call dword [sym.imp.KERNEL32.dll_LocalFree]
push dword [esp + 0x10]
xor edi, edi
jmp 0x417c4c
mov esi, dword [esp + 0x14]
test edi, edi
jne 0x418163
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x418163
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x24], eax
test esi, esi
lea eax, [esp + 0x14]
mov dword [esp + 0x14], str.DriverSupportModulesWow
cmove eax, ecx
mov dword [esp + 0x20], str.DriverSupportModules
push eax
push dword [esp + 0x14]
push 0x80000002
push ebx
call fcn.00413a60
add esp, 0x10
mov edi, eax
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_LocalFree]
push ebx
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
je 0x417c5a
push 0
jmp 0x417c66
push 0xa0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [esp + 0x248]
xor eax, eax
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.00461564
add esp, 0x240
ret