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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x10], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r14, rcx
xor ecx, ecx
mov dword [rbp + 0x58], ecx
mov dword [rbp + 0x50], ecx
mov r12d, ecx
mov qword [rbp - 0x30], rcx
mov r13d, ecx
mov qword [rbp - 0x28], rcx
mov edi, ecx
mov qword [rbp - 0x20], rcx
mov ebx, ecx
mov qword [rbp - 0x18], rcx
lea esi, [rcx + 1]
mov r15d, ecx
cmp dword [r14 + 0x128], ecx
jne 0x14001204c
mov r15d, 0x8000000a
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012043
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0xac2
lea r9, str.CSetupHost::IsDiagnosticAnalysisEnabled
lea r8, str._s__d_:_Result__0x_X
lea edx, [rbx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x140012043
call fcn.140025d30
call fcn.140025d50
xor esi, esi
jmp 0x1400120b3
cmp dword [r14 + 0x144c], ecx
je 0x1400120b3
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x1400120ac
lea rax, str.ENABLED
lea rsi, str.DISABLED
cmp dword [r14 + 0x1450], ecx
cmovne rsi, rax
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, rsi
lea r8, str.SetupManager:_Diagnostic_Analysis___s__via_override.
mov edx, 2
call fcn.14002374c
mov esi, dword [r14 + 0x1450]
mov ecx, r15d
call fcn.140025d50
test r15d, r15d
jns 0x1400120ed
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012670
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x5f7
jmp 0x14001264a
test esi, esi
jne 0x140012130
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x140012128
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
lea r8, str.SetupHost:_Diagnostic_Analysis_not_requested.
lea edx, [rsi + 2]
call fcn.14002374c
xor r15d, r15d
jmp 0x140012675
mov eax, 0x15f90
xor r15d, r15d
cmp dword [r14 + 0x128], r15d
jne 0x140012197
mov esi, 0x8000000a
mov r15d, esi
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012190
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 0xafa
lea r9, str.CSetupHost::GetDiagnosticAnalysisTimeout
lea r8, str._s__d_:_Result__0x_X
lea edx, [rcx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x140012190
call fcn.140025d30
call fcn.140025d50
jmp 0x1400121ea
cmp dword [r14 + 0x1454], r15d
je 0x1400121e7
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x1400121e0
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9d, dword [r14 + 0x1458]
lea r8, str.SetupManager:_Diagnostic_Analysis_Timeout___d_ms__via_override.
mov edx, 2
call fcn.14002374c
mov eax, dword [r14 + 0x1458]
mov dword [rbp + 0x50], eax
mov ecx, r15d
call fcn.140025d50
mov rcx, r14
test r15d, r15d
jns 0x140012224
mov rax, qword [r14]
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012670
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x5fe
jmp 0x14001264a
lea rdx, [rbp - 0x30]
call fcn.140016c08
mov r15d, eax
test eax, eax
jns 0x14001228a
mov rcx, qword [r14]
mov rax, qword [rcx + 0x18]
mov rcx, r14
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14001227c
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x5ff
lea r9, str.CSetupHost::ExecuteDiagnosticAnalysis
lea r8, str._s__d_:_Result__0x_X
lea edx, [rcx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x14001227c
call fcn.140025d30
call fcn.140025d50
mov r12, qword [rbp - 0x30]
jmp 0x140012675
mov r12, qword [rbp - 0x30]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
mov esi, eax
cmp eax, 0xffffffff
je 0x1400122ae
shr esi, 4
not esi
and esi, 1
jmp 0x1400122b0
xor esi, esi
xor ecx, ecx
call fcn.140025d50
xor ecx, ecx
call fcn.140025d50
test esi, esi
jne 0x14001232f
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x1400122fc
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, r12
lea r8, str.SetupHost:_Diagnostic_tool_does_not_exist___s_
lea edx, [rsi + 4]
call fcn.14002374c
mov r15d, 0x80070003
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012670
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x605
jmp 0x14001264a
lea rdx, [rbp - 0x28]
lea rcx, str._windir_logsSetupDiag
call fcn.140024a30
mov r15d, eax
test eax, eax
jns 0x14001239c
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x14001238e
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x608
lea r9, str.CSetupHost::ExecuteDiagnosticAnalysis
lea r8, str._s__d_:_Result__0x_X
lea edx, [rcx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x14001238e
call fcn.140025d30
call fcn.140025d50
mov r13, qword [rbp - 0x28]
jmp 0x140012675
mov r13, qword [rbp - 0x28]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop dword [rax + rax]
mov esi, eax
cmp eax, 0xffffffff
je 0x1400123be
shr esi, 4
and esi, 1
jmp 0x1400123c0
xor esi, esi
xor ecx, ecx
call fcn.140025d50
xor ecx, ecx
call fcn.140025d50
test esi, esi
jne 0x140012448
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x14001240c
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, r13
lea r8, str.SetupHost:_Creating_directory:___s_
lea edx, [rsi + 2]
call fcn.14002374c
mov rcx, r13
call fcn.14002436c
mov r15d, eax
test eax, eax
jns 0x140012448
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012670
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x60d
jmp 0x14001264a
lea r9, [rbp - 0x20]
lea rdx, str.SetupDiagResults.xml
mov rcx, r13
call fcn.140024234
mov r15d, eax
test eax, eax
jns 0x1400124b8
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x1400124aa
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x610
lea r9, str.CSetupHost::ExecuteDiagnosticAnalysis
lea r8, str._s__d_:_Result__0x_X
lea edx, [rcx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x1400124aa
call fcn.140025d30
call fcn.140025d50
mov rdi, qword [rbp - 0x20]
jmp 0x140012675
mov rdi, qword [rbp - 0x20]
lea rax, str.HKEY_LOCAL_MACHINESYSTEMSetupSetupDiagResults
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [0x1400a1098]
mov r8, r12
lea rdx, str.__s___Scenario:Upgrade__ZipLogs:False__Format:_s__Output:_s__RegPath:_s
lea rcx, [rbp - 0x18]
call fcn.140002c14
mov r15d, eax
mov rax, qword [r14]
mov rax, qword [rax + 0x18]
mov rcx, r14
call qword [str.PN_t_]
test r15d, r15d
jns 0x140012545
xor ecx, ecx
test rax, rax
je 0x140012537
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x611
lea r9, str.CSetupHost::ExecuteDiagnosticAnalysis
lea r8, str._s__d_:_Result__0x_X
lea edx, [rcx + 4]
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x140012537
call fcn.140025d30
call fcn.140025d50
mov rbx, qword [rbp - 0x18]
jmp 0x140012675
mov rbx, qword [rbp - 0x18]
test rax, rax
je 0x140012575
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, rbx
lea r8, str.SetupHost:_Using_Diagnostic_tool:___s_
mov edx, 2
call fcn.14002374c
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x1400125b1
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov r9, rdi
lea r8, str.SetupHost:_Diagnostic_results_location:___s_
mov edx, 2
call fcn.14002374c
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
test rax, rax
je 0x1400125f2
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
mov rcx, rax
mov esi, dword [rbp + 0x50]
mov r9d, esi
lea r8, str.SetupHost:_Diagnostic_Analysis_timeout_value:___d__ms
mov edx, 2
call fcn.14002374c
jmp 0x1400125f5
mov esi, dword [rbp + 0x50]
mov rcx, r14
call fcn.140016de8
lea r9, [rbp + 0x58]
mov r8d, esi
mov rcx, rbx
call fcn.1400233a4
mov r15d, eax
test eax, eax
cmovns r15d, dword [rbp + 0x58]
mov edx, r15d
mov rcx, r14
call fcn.140016f18
test r15d, r15d
jns 0x140012675
mov rax, qword [r14]
mov rcx, r14
mov rax, qword [rax + 0x18]
call qword [str.PN_t_]
xor ecx, ecx
test rax, rax
je 0x140012670
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x61f
lea r9, str.CSetupHost::ExecuteDiagnosticAnalysis
lea r8, str._s__d_:_Result__0x_X
mov edx, 4
mov rcx, rax
call fcn.14002374c
mov ecx, eax
test eax, eax
jns 0x140012670
call fcn.140025d30
call fcn.140025d50
mov ecx, r15d
call fcn.140025d50
nop
test rbx, rbx
je 0x1400126ac
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
lea r8, [rbx - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.140025d50
nop
test rdi, rdi
je 0x1400126da
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
lea r8, [rdi - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.140025d50
nop
test r13, r13
je 0x140012708
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
lea r8, [r13 - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.140025d50
nop
test r12, r12
je 0x140012736
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
lea r8, [r12 - 4]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.140025d50
mov eax, r15d
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret