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

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x11f0
call fcn.14006c5a0
sub rsp, rax
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x1228], rbx
mov qword [rsp + 0x1230], rbp
mov qword [rsp + 0x1238], rsi
mov rax, qword [0x140099938]
xor rax, rsp
mov qword [rsp + 0x11e0], rax
mov rbx, rcx
mov qword [rsp + 0xc8], 7
xor r14d, r14d
mov qword [rsp + 0xc0], r14
mov word [rsp + 0xb0], r14w
mov qword [rsp + 0xa0], 7
mov qword [rsp + 0x98], r14
mov word [rsp + 0x88], r14w
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r14
mov word [rsp + 0x60], r14w
lea r8, [0x14007f570]
lea r15, str.CModels::GetList
mov rdx, r15
lea ebp, [r14 + 5]
mov ecx, ebp
call fcn.140009480
cmp dword [rbx + 0xe8], r14d
jne 0x14003fd0f
mov ecx, 0x3e9
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14003fe92
cmp qword [rbx + 0x88], 8
jb 0x14003fd1f
mov rcx, qword [rbx + 0x70]
jmp 0x14003fd23
lea rcx, [rbx + 0x70]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14003fd3e
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14003fe92
lea r8, str.clear_m_vstrKeys_and_m_vstrValues._n
mov rdx, r15
mov esi, 4
mov ecx, esi
call fcn.140009480
lea rcx, [rbx + 8]
call fcn.1400078cc
lea rcx, [rbx + 0x38]
call fcn.1400078cc
lea r8, str.Windows_2000_XP_n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov r9d, esi
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14003fda7
lea r8, str.SetupDiGetClassDevs_failed._n
mov rdx, r15
lea ecx, [rsi - 2]
call fcn.140009480
jmp 0x14003fe92
lea r8, str.SetupDiGetClassDevs_succeeded._n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov esi, 0x248
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0xe0]
call fcn.14005bb90
mov dword [rsp + 0xe0], esi
cmp qword [rbx + 0x88], 8
jb 0x14003fde6
mov r8, qword [rbx + 0x70]
jmp 0x14003fdea
lea r8, [rbx + 0x70]
or r9, 0xffffffffffffffff
mov edx, 0x104
lea rcx, [rsp + 0x11c]
call fcn.14005dbac
bts dword [rsp + 0xe4], 0x10
bts dword [rsp + 0xe8], 0xb
lea r8, [rsp + 0xe0]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsW]
cmp eax, r14d
jne 0x14003fe49
lea r8, str.SetupDiSetDeviceInstallParams_failed._n
mov rdx, r15
mov ecx, 2
call fcn.140009480
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
jmp 0x14003fe92
lea r8, str.SetupDiSetDeviceInstallParams_succeeded._n
mov rdx, r15
mov esi, 4
mov ecx, esi
call fcn.140009480
xor edx, edx
lea r8d, [rsi - 3]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
cmp eax, r14d
jne 0x14003ff1e
lea r8, str.SetupDiBuildDriverInfoList_failed._n
mov rdx, r15
lea ecx, [rsi - 2]
call fcn.140009480
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
lea r8, [0x14007f590]
mov rdx, r15
mov ecx, ebp
call fcn.140009480
nop
cmp qword [rsp + 0x78], 8
jb 0x14003feb6
mov rcx, qword [rsp + 0x60]
call fcn.14005ab0c
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r14
mov word [rsp + 0x60], r14w
cmp qword [rsp + 0xa0], 8
jb 0x14003fee2
mov rcx, qword [rsp + 0x88]
call fcn.14005ab0c
mov qword [rsp + 0xa0], 7
mov qword [rsp + 0x98], r14
mov word [rsp + 0x88], r14w
cmp qword [rsp + 0xc8], 8
jb 0x14003ff17
mov rcx, qword [rsp + 0xb0]
call fcn.14005ab0c
xor eax, eax
jmp 0x14004042e
lea r8, str.SetupDiBuildDriverInfoList_succeeded._n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov dword [rsp + 0x960], 0x620
mov ebp, r14d
lea rax, [rsp + 0x960]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor edx, edx
lea r8d, [r9 + 1]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
cmp eax, r14d
je 0x14004038c
mov dword [rsp + 0x330], 0x630
cmp ebp, r14d
jne 0x14003ffa1
lea rcx, [rbx + 0x3a0]
mov r9d, 8
lea r8, [rsp + 0xf70]
mov rdx, r9
call fcn.14005aed8
mov r11, qword [rsp + 0xf78]
mov qword [rbx + 0x3a8], r11
lea r9, [rsp + 0xb70]
lea r8, str.SetupDiEnumDriverInfo_DriverInfoData.MfgName__1_s__._n
mov rdx, r15
mov ecx, esi
call fcn.140009480
cmp qword [rbx + 0x3c8], r14
je 0x14003fff4
cmp qword [rbx + 0x3d0], 8
jb 0x14003ffd6
mov rcx, qword [rbx + 0x3b8]
jmp 0x14003ffdd
lea rcx, [rbx + 0x3b8]
lea rdx, [rsp + 0xb70]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
cmp eax, r14d
jne 0x140040362
lea r8, str.SetupDiEnumDriverInfo_DriverInfoData.MfgName_is_same_as_m_strMfgName._n
mov rdx, r15
mov ecx, esi
call fcn.140009480
xor edx, edx
lea r8d, [rdx + 0x20]
lea rcx, [rsp + 0x30]
call fcn.14005bb90
mov dword [rsp + 0x30], 0x20
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x960]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInstallParamsW]
cmp eax, r14d
jne 0x14004005c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str.SetupDiGetDriverInstallParams_failed.__0x_1_lX___n
mov rdx, r15
mov ecx, 2
call fcn.140009480
jmp 0x140040362
mov r9d, dword [rsp + 0x38]
lea r8, str.DriverInstallParams.Flags__0x_1_lX__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
test byte [rsp + 0x38], sil
je 0x140040097
lea r8, str.This_driver_is_listed_in_ExcludeFromSelect._n
mov rdx, r15
mov ecx, esi
call fcn.140009480
cmp dword [rbx + 0x3d8], r14d
je 0x140040362
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], 0x630
lea r9, [rsp + 0x330]
lea r8, [rsp + 0x960]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInfoDetailW]
cmp eax, r14d
jne 0x1400400d3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140040362
lea r9, [rsp + 0x758]
lea r8, str.DrvDescription___1_s__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
lea r9, [rsp + 0x350]
lea r8, str.SectionName___1_s__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov r9d, dword [rsp + 0x33c]
lea r8, str.CompatIDsOffset___1_lu__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov r9d, dword [rsp + 0x340]
lea r8, str.CompatIDsLength___1_lu__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
lea r9, [rsp + 0x958]
lea r8, str.HardwareID___1_s__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov qword [rsp + 0xfa0], 7
mov qword [rsp + 0xf98], r14
mov word [rsp + 0xf88], r14w
lea rcx, [rsp + 0x758]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x758]
lea rcx, [rsp + 0xf80]
call fcn.140002280
nop
lea rdx, [rsp + 0xf80]
lea rcx, [rbx + 8]
call fcn.14001a3a4
nop
cmp qword [rsp + 0xfa0], 8
jb 0x1400401bd
mov rcx, qword [rsp + 0xf88]
call fcn.14005ab0c
xor edx, edx
mov r8d, 0x202
lea rcx, [rsp + 0xfd0]
call fcn.14005bb90
cmp qword [rbx + 0x88], 8
jb 0x1400401e2
mov rcx, qword [rbx + 0x70]
jmp 0x1400401e6
lea rcx, [rbx + 0x70]
mov qword [rsp + 0x20], r14
mov r9d, 0x20
lea r8, [rsp + 0xf80]
lea rdx, [rsp + 0xd0]
call qword [sym.imp.SETUPAPI.dll_SetupDiGetINFClassW]
cmp eax, r14d
je 0x14004027c
cmp qword [rbx + 0x88], 8
jb 0x14004021c
mov rcx, qword [rbx + 0x70]
jmp 0x140040220
lea rcx, [rbx + 0x70]
xor r9d, r9d
lea r8d, [r9 + 2]
lea rdx, [rsp + 0xf80]
call qword [sym.imp.SETUPAPI.dll_SetupOpenInfFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140040277
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r14
mov r9d, 0x100
lea r8, [rsp + 0xfd0]
lea rdx, [rsp + 0x350]
mov rcx, rax
call qword [sym.imp.SETUPAPI.dll_SetupDiGetActualSectionToInstallW]
mov rcx, rsi
call qword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov esi, 4
jmp 0x14004027c
mov esi, 4
mov edx, 0x101
lea rcx, [rsp + 0xfd0]
call fcn.14005ca00
cmp rax, r14
je 0x1400402b7
lea rcx, [rsp + 0xfd0]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0xfd0]
lea rcx, [rsp + 0x58]
call fcn.140002280
jmp 0x1400402d9
lea rcx, [rsp + 0x350]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x350]
lea rcx, [rsp + 0x58]
call fcn.140002280
lea r9, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae r9, qword [rsp + 0x60]
lea r8, str.ActualInstallSection___1_s__n
mov rdx, r15
mov ecx, esi
call fcn.140009480
mov edx, 1
lea rcx, [rsp + 0x958]
call fcn.14005ca00
cmp rax, r14
je 0x140040354
lea rcx, [0x140079954]
call fcn.14005b1c0
mov r8, rax
lea rdx, [0x140079954]
lea rcx, [rsp + 0x58]
call fcn.14000362c
lea rcx, [rsp + 0x958]
call fcn.14005b1c0
mov r8, rax
lea rdx, [rsp + 0x958]
lea rcx, [rsp + 0x58]
call fcn.14000362c
lea rdx, [rsp + 0x58]
lea rcx, [rbx + 0x38]
call fcn.14001a3a4
inc ebp
lea rax, [rsp + 0x960]
mov qword [rsp + 0x20], rax
mov r9d, ebp
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
cmp eax, r14d
jne 0x14003ff65
xor edx, edx
lea r8d, [rdx + 1]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
mov rcx, rdi
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
lea r8, [0x14007f590]
mov rdx, r15
mov ecx, 5
call fcn.140009480
nop
cmp qword [rsp + 0x78], 8
jb 0x1400403cb
mov rcx, qword [rsp + 0x60]
call fcn.14005ab0c
mov ebx, 7
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x70], r14
mov word [rsp + 0x60], r14w
cmp qword [rsp + 0xa0], 8
jb 0x1400403f8
mov rcx, qword [rsp + 0x88]
call fcn.14005ab0c
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x98], r14
mov word [rsp + 0x88], r14w
cmp qword [rsp + 0xc8], 8
jb 0x140040429
mov rcx, qword [rsp + 0xb0]
call fcn.14005ab0c
mov eax, 1
mov rcx, qword [rsp + 0x11e0]
xor rcx, rsp
call fcn.14005bad0
lea r11, [rsp + 0x11f0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret