Function at 0x1400457a0
Capabilities:
Shutdown system

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x6b0
mov qword [rsp + 0x88], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x14010bfc0]
xor rax, rsp
mov qword [rsp + 0x6a0], rax
mov rdi, rcx
xor r15d, r15d
cmp dword [rcx + 0x204], r15d
je 0x140045803
call fcn.1400450e8
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 0xd0]
jmp 0x14004602a
mov r14d, 1
lea rsi, [0x14010f570]
cmp dword [rcx + 0x7b4], r15d
je 0x140045dc7
call fcn.14003ff04
cmp eax, r15d
jne 0x140045dc7
cmp dword [rdi + 0x7c0], r15d
jne 0x140045dc7
mov r12d, r15d
cmp dword [rdi + 0x7d0], r15d
jne 0x140045c40
lea ecx, [r14 + 7]
call fcn.140061238
cmp rax, r15
je 0x140045860
lea rcx, [rsp + 0x50]
mov qword [rax], rcx
jmp 0x140045863
mov rax, r15
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.140005ed4
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x538], 0xf
mov qword [rsp + 0x530], r15
mov byte [rsp + 0x520], r15b
lea rcx, str.Scrubber.LaunchUnInstallStrings
call fcn.1400980d0
mov r8, rax
lea rdx, str.Scrubber.LaunchUnInstallStrings
lea rcx, [rsp + 0x518]
call fcn.14000352c
nop
mov byte [rsp + 0x590], r15b
xor edx, edx
mov r8d, 0x103
lea rcx, [rsp + 0x591]
call fcn.1400988d0
mov edx, 0x104
lea rcx, [rsp + 0x590]
call fcn.14005b9f4
lea r11, [rsp + 0x590]
cmp r11, r15
je 0x14004592f
lea rcx, [rsp + 0x590]
call fcn.1400980d0
cmp rax, r15
jbe 0x14004592f
cmp byte [rsp + rax + 0x58f], 0x5c
je 0x14004592f
lea rdx, [rax + 2]
lea r8, [0x1400c55c0]
lea rcx, [rsp + 0x590]
call fcn.140098ed8
mov qword [rsp + 0x510], 0xf
mov qword [rsp + 0x508], r15
mov byte [rsp + 0x4f8], r15b
lea rcx, [rsp + 0x590]
call fcn.1400980d0
mov r8, rax
lea rdx, [rsp + 0x590]
lea rcx, [rsp + 0x4f0]
call fcn.14000352c
nop
mov rbx, qword [rdi + 0x1c8]
mov rcx, rbx
call fcn.1400980d0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x4f0]
call fcn.14000627c
lea r8, [rsp + 0x520]
cmp qword [rsp + 0x538], 0x10
cmovae r8, qword [rsp + 0x520]
lea rdx, [rsp + 0x4f8]
cmp qword [rsp + 0x510], 0x10
cmovae rdx, qword [rsp + 0x4f8]
mov dword [rsp + 0x30], r14d
mov word [rsp + 0x28], r15w
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov rcx, rdi
call fcn.14001ddcc
mov r13, qword [rsp + 0x78]
mov rax, qword [r13]
mov qword [rsp + 0x48], rax
mov r14, qword [rsp + 0x50]
mov qword [rsp + 0x40], r14
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
cmp rbx, r15
je 0x140045a1e
cmp rbx, r14
je 0x140045a23
call fcn.14009861c
cmp rbp, r13
je 0x140045b73
cmp rbx, r15
jne 0x140045a3b
call fcn.14009861c
mov r11, r15
jmp 0x140045a3e
mov r11, qword [rbx]
cmp rbp, qword [r11 + 0x28]
jne 0x140045a49
call fcn.14009861c
lea rdx, [rbp + 0x10]
mov qword [rsp + 0x560], 0xf
mov qword [rsp + 0x558], r15
mov byte [rsp + 0x548], r15b
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x540]
call fcn.140002458
nop
lea rcx, [rsp + 0x548]
cmp qword [rsp + 0x560], 0x10
cmovae rcx, qword [rsp + 0x548]
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rdi
lea r9, [0x14003ec6c]
or r8d, 0xffffffff
mov edx, 1
call fcn.14005cbfc
mov dword [rdi + 0x168], eax
lea r9, [rsp + 0x548]
cmp qword [rsp + 0x560], 0x10
cmovae r9, qword [rsp + 0x548]
mov dword [rsp + 0x20], eax
lea r8, str.launching_uninstall_string__s_and_return_code_is__d_n
mov edx, 1
mov rcx, rsi
call fcn.140001000
mov r8d, dword [rdi + 0x168]
lea rdx, str._exitCode_d_n
mov rcx, rsi
call fcn.14004b9f0
mov r11d, dword [rdi + 0x168]
cmp r11d, 0xbc2
jne 0x140045b22
mov r12d, 1
jmp 0x140045b35
cmp r11d, 0xa
jne 0x140045b35
lea eax, [r11 - 9]
mov r12d, eax
mov dword [rdi + 0x7cc], eax
cmp qword [rsp + 0x560], 0x10
jb 0x140045b4d
mov rcx, qword [rsp + 0x548]
call fcn.14006127c
cmp rbx, r15
jne 0x140045b5c
call fcn.14009861c
mov r11, r15
jmp 0x140045b5f
mov r11, qword [rbx]
cmp rbp, qword [r11 + 0x28]
jne 0x140045b6a
call fcn.14009861c
mov rbp, qword [rbp]
jmp 0x140045a14
cmp r12d, r15d
je 0x140045baa
mov eax, dword [rdi + 0x7cc]
neg eax
sbb ecx, ecx
and ecx, 0xfffff448
add ecx, 0xbc2
mov dword [rdi + 0x168], ecx
mov r14d, 1
mov dword [rdi + 0x7c8], r14d
mov dword [rdi + 0x7cc], r14d
jmp 0x140045bb0
mov r14d, 1
cmp qword [rsp + 0x510], 0x10
jb 0x140045bc8
mov rcx, qword [rsp + 0x4f8]
call fcn.14006127c
mov qword [rsp + 0x510], 0xf
mov qword [rsp + 0x508], r15
mov byte [rsp + 0x4f8], r15b
cmp qword [rsp + 0x538], 0x10
jb 0x140045bfc
mov rcx, qword [rsp + 0x520]
call fcn.14006127c
mov qword [rsp + 0x538], 0xf
mov qword [rsp + 0x530], r15
mov byte [rsp + 0x520], r15b
lea rcx, [rsp + 0x50]
call fcn.140007328
mov rcx, qword [rsp + 0x78]
call fcn.14006127c
mov qword [rsp + 0x78], r15
mov rcx, qword [rsp + 0x50]
call fcn.14006127c
jmp 0x140045e5e
mov rax, qword [rdi + 0x878]
mov rcx, qword [rax]
mov qword [rsp + 0x48], rcx
mov rax, qword [rdi + 0x850]
mov qword [rsp + 0x40], rax
movaps xmm0, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
mov rbp, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov r13, qword [rdi + 0x878]
cmp rbp, r15
je 0x140045c85
cmp rbp, qword [rdi + 0x850]
je 0x140045c8a
call fcn.14009861c
cmp rbx, r13
je 0x140045d96
cmp rbp, r15
jne 0x140045ca2
call fcn.14009861c
mov r11, r15
jmp 0x140045ca6
mov r11, qword [rbp]
cmp rbx, qword [r11 + 0x28]
jne 0x140045cb1
call fcn.14009861c
cmp qword [rbx + 0x30], 0x10
jb 0x140045cbe
mov rcx, qword [rbx + 0x18]
jmp 0x140045cc2
lea rcx, [rbx + 0x18]
mov dword [rsp + 0x30], r15d
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rdi
lea r9, [0x14003ec6c]
or r8d, 0xffffffff
mov edx, r14d
call fcn.14005cbfc
mov dword [rdi + 0x168], eax
cmp rbp, r15
jne 0x140045cf9
call fcn.14009861c
mov r11, r15
jmp 0x140045cfd
mov r11, qword [rbp]
cmp rbx, qword [r11 + 0x28]
jne 0x140045d08
call fcn.14009861c
cmp qword [rbx + 0x30], 0x10
jb 0x140045d15
mov r9, qword [rbx + 0x18]
jmp 0x140045d19
lea r9, [rbx + 0x18]
mov eax, dword [rdi + 0x168]
mov dword [rsp + 0x20], eax
lea r8, str.launching_uninstall_string__s_and_return_code_is__d_n
mov edx, r14d
mov rcx, rsi
call fcn.140001000
mov r8d, dword [rdi + 0x168]
lea rdx, str._exitCode_d_n
mov rcx, rsi
call fcn.14004b9f0
mov r11d, dword [rdi + 0x168]
cmp r11d, 0xbc2
jne 0x140045d60
mov r12d, r14d
jmp 0x140045d70
cmp r11d, 0xa
jne 0x140045d70
mov r12d, r14d
mov dword [rdi + 0x7cc], r14d
cmp rbp, r15
jne 0x140045d7f
call fcn.14009861c
mov r11, r15
jmp 0x140045d83
mov r11, qword [rbp]
cmp rbx, qword [r11 + 0x28]
jne 0x140045d8e
call fcn.14009861c
mov rbx, qword [rbx]
jmp 0x140045c70
cmp r12d, r15d
je 0x140045e5e
mov eax, dword [rdi + 0x7cc]
neg eax
sbb ecx, ecx
and ecx, 0xfffff448
add ecx, 0xbc2
mov dword [rdi + 0x168], ecx
mov dword [rdi + 0x7c8], r14d
jmp 0x140045e5e
mov ecx, 0xb00
call fcn.140061238
mov rbx, rax
mov qword [rsp + 0x40], rax
cmp rax, r15
je 0x140045e01
mov rcx, qword [rdi + 0x268]
call fcn.14006775c
xor r9d, r9d
mov r8, rax
movzx edx, word [rdi + 0x200]
mov rcx, rbx
call fcn.14002d8a4
jmp 0x140045e04
mov rax, r15
mov qword [rdi + 0x750], rax
mov rax, qword [rdi + 0x750]
cmp rax, r15
jne 0x140045e52
mov ebx, 0x80030008
mov ecx, ebx
call fcn.14004d8f0
mov r9, rax
lea r8, str.Cannot_allocate_CUninstallerProgress
lea rdx, str._s_failed_returning__s_n
lea rcx, [0x14010f570]
call fcn.14004b7ec
mov ecx, 0x80030008
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, ebx
jmp 0x14004602a
mov rcx, qword [rdi + 0x750]
call fcn.14002f740
cmp dword [rdi + 0x7c8], r15d
je 0x140046001
lea r8, str.Reboot_is_required_n
mov edx, r14d
mov rcx, rsi
call fcn.140001000
cmp dword [rdi + 0x7c4], r15d
je 0x140045fcc
mov rcx, rdi
call fcn.14003ff04
cmp eax, r15d
jne 0x140045f1c
mov r9d, r14d
lea r8, str.ShowRestartScreen
lea rdx, str.Scrubber
mov rcx, rdi
call fcn.14001dd2c
cmp eax, r15d
je 0x140045f1c
mov r9d, dword [rdi + 0x7cc]
lea r8, str.Showing_reboot_screen_with__bForceRebootRequired___d_n
mov edx, r14d
mov rcx, rsi
call fcn.140001000
mov rcx, qword [rdi + 0x268]
call fcn.14006775c
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.1400052e0
nop
mov eax, dword [rdi + 0x7cc]
mov dword [rsp + 0x4e4], eax
lea rcx, [rsp + 0x90]
call fcn.1400012c4
nop
lea rcx, [rsp + 0x90]
call fcn.1400053a4
jmp 0x140045fa9
lea r8, str.We_are_silent__triggering_reboot__n
mov edx, r14d
mov rcx, rsi
call fcn.140001000
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_ExitWindowsEx]
cmp eax, r15d
jne 0x140045fa9
mov qword [rsp + 0x588], 0xf
mov qword [rsp + 0x580], r15
mov byte [rsp + 0x570], r15b
lea rcx, [rsp + 0x568]
call fcn.14004d614
lea r8, [rsp + 0x570]
cmp qword [rsp + 0x588], 0x10
cmovae r8, qword [rsp + 0x570]
lea rdx, str.ExitWindowsEx_failed_with__s_n
mov rcx, rsi
call fcn.14004b7ec
nop
cmp qword [rsp + 0x588], 0x10
jb 0x140045fa9
mov rcx, qword [rsp + 0x570]
call fcn.14006127c
cmp dword [rdi + 0x7cc], r15d
je 0x140045fbf
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140046009
mov ecx, 0xbc2
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140046009
lea r8, str.Not_allowed_to_reboot__exiting_n
mov edx, r14d
mov rcx, rsi
call fcn.140001000
cmp dword [rdi + 0x7cc], r15d
je 0x140045ff4
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140046009
mov ecx, 0xbc2
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140046009
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea r8, str.Exiting_Run___returns_ERROR_SUCCESS_n
mov edx, 0x20
mov rcx, rsi
call fcn.140001000
mov r11, qword [rdi]
mov rcx, rdi
call qword [r11 + 0xd0]
mov rcx, qword [rsp + 0x6a0]
xor rcx, rsp
call fcn.140061100
lea r11, [rsp + 0x6b0]
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