Function at 0x140021a80
Capabilities:
Persist via run registry key

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x360
mov qword [rax - 0x300], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x1401730f8]
xor rax, rsp
mov qword [rsp + 0x350], rax
mov r14, rcx
mov qword [rsp + 0x38], rcx
cmp byte [0x140173b48], 0
jne 0x140021aec
cmp byte [0x14017bbb1], 0
jne 0x140021aec
lea r12, [0x140102478]
lea r13, [0x1401025f8]
lea rsi, str.SetupEngine.cpp
jmp 0x140021bda
lea r12, [0x140102478]
mov qword [rsp + 0x1a0], r12
lea r13, [0x1401025f8]
mov qword [rsp + 0x1e0], r13
xor r9d, r9d
lea rsi, str.SetupEngine.cpp
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.140006ab0
nop
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x140], r13
xor r9d, r9d
lea rdx, str.Engine:_setting_parcel_states_as_determined_by_feature_selections
lea rcx, [rsp + 0x100]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x140021b76
cmp byte [0x14017bbb1], 0
jne 0x140021b68
call fcn.140099320
test al, al
je 0x140021b6f
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x140021bbf
lea rdx, [rsp + 0x1a8]
cmp qword [rsp + 0x1c0], 8
cmovae rdx, qword [rsp + 0x1a8]
lea rcx, [rsp + 0x108]
cmp qword [rsp + reloc.OLEAUT32.dll_VARIANT_UserUnmarshal], 8
cmovae rcx, qword [rsp + 0x108]
mov r8d, 0x55e
call fcn.140099810
nop
lea rcx, [rsp + 0x100]
call fcn.140004280
nop
lea rcx, [rsp + 0x1a0]
call fcn.140004280
mov rax, qword [r14 + 0x5a0]
mov rbx, qword [rax + 0x48]
xor r15d, r15d
cmp rbx, qword [rax + 0x50]
je 0x140021c70
mov rax, qword [rbx]
lea rdi, [rax - 0x20]
test rax, rax
cmove rdi, r15
cmp byte [r14 + 0xb79], 0
je 0x140021c52
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], r15
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], r15
lea r9, [rsp + 0x68]
lea r8, [rsp + 0x50]
mov edx, dword [r14 + 0x654]
mov rcx, rdi
call fcn.14005e1f0
nop
lea rcx, [rsp + 0x68]
call fcn.140008af0
nop
lea rcx, [rsp + 0x50]
call fcn.140008af0
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14005dd00
add rbx, 8
mov rax, qword [r14 + 0x5a0]
cmp rbx, qword [rax + 0x50]
jne 0x140021bf2
mov rax, qword [r14 + 0x5a0]
mov rbx, qword [rax + 0x30]
cmp rbx, qword [rax + 0x38]
je 0x140021ca5
mov rax, qword [rbx]
lea rcx, [rax - 0x40]
test rax, rax
cmove rcx, r15
call fcn.140065020
add rbx, 8
mov rax, qword [r14 + 0x5a0]
cmp rbx, qword [rax + 0x38]
jne 0x140021c81
cmp dword [r14 + 0x654], 6
je 0x140021cc6
mov rcx, r14
call fcn.140024ad0
cmp word [r14 + 0x650], 0xffff
je 0x14002214a
cmp byte [r14 + 0x710], 0
jne 0x140021ebf
mov eax, dword [r14 + 0x654]
test eax, eax
je 0x140021ce8
cmp eax, 5
jne 0x140021ebf
cmp byte [0x140173b48], 0
jne 0x140021cfe
cmp byte [0x14017bbb1], 0
je 0x140021dd7
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x1e0], r13
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.140006ab0
nop
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x140], r13
xor r9d, r9d
lea rdx, str.Engine:_a_password_is_required_by_the_setup_but_no_valid_password_was_provided
lea rcx, [rsp + 0x100]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x140021d73
cmp byte [0x14017bbb1], 0
jne 0x140021d65
call fcn.140099320
test al, al
je 0x140021d6c
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x140021dbc
lea rdx, [rsp + 0x1a8]
cmp qword [rsp + 0x1c0], 8
cmovae rdx, qword [rsp + 0x1a8]
lea rcx, [rsp + 0x108]
cmp qword [rsp + reloc.OLEAUT32.dll_VARIANT_UserUnmarshal], 8
cmovae rcx, qword [rsp + 0x108]
mov r8d, 0x584
call fcn.140099810
nop
lea rcx, [rsp + 0x100]
call fcn.140004280
nop
lea rcx, [rsp + 0x1a0]
call fcn.140004280
mov dword [r14 + 0x6b4], 0x8004070a
lea r12, [0x140102478]
mov qword [rsp + 0xb0], r12
lea r13, [0x1401025f8]
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [0x1400fc414]
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
mov edi, dword [r14 + 0x6b4]
mov qword [rsp + 0x38], r15
lea rcx, [rsp + 0x38]
call fcn.1400344b0
test eax, eax
js 0x140021ead
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x40], rbx
test rbx, rbx
je 0x140021e50
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0xb0]
mov r8d, edi
mov edx, 4
mov rcx, rbx
call fcn.140002570
lea rcx, [r14 + 0x2b8]
mov rdx, rbx
call fcn.14002df00
mov qword [rsp + 0x50], rsi
mov dword [rsp + 0x58], 0x8e4
mov r8d, edi
lea rdx, str.Error_code:_0x_08x
lea rcx, [rsp + 0x50]
call fcn.14000b8a0
nop
test rbx, rbx
je 0x140021ead
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
jmp 0x140023229
cmp byte [r14 + 0x7a8], 0
jne 0x14002267c
cmp byte [0x140173b48], 0
jne 0x140021ee3
cmp byte [0x14017bbb1], 0
je 0x140021fbc
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x1e0], r13
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.140006ab0
nop
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x140], r13
xor r9d, r9d
lea rdx, str.Engine:_staging_parcels
lea rcx, [rsp + 0x100]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x140021f58
cmp byte [0x14017bbb1], 0
jne 0x140021f4a
call fcn.140099320
test al, al
je 0x140021f51
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x140021fa1
lea rdx, [rsp + 0x1a8]
cmp qword [rsp + 0x1c0], 8
cmovae rdx, qword [rsp + 0x1a8]
lea rcx, [rsp + 0x108]
cmp qword [rsp + reloc.OLEAUT32.dll_VARIANT_UserUnmarshal], 8
cmovae rcx, qword [rsp + 0x108]
mov r8d, 0x58e
call fcn.140099810
nop
lea rcx, [rsp + 0x100]
call fcn.140004280
nop
lea rcx, [rsp + 0x1a0]
call fcn.140004280
cmp dword [r14 + 0x654], 5
je 0x140022154
xor dl, dl
mov rax, qword [r14 + 0x5a0]
mov rbx, qword [rax + 0x18]
cmp rbx, qword [rax + 0x20]
je 0x140022001
nop dword [rax]
mov rcx, qword [rbx + 8]
call fcn.14006df80
movzx edx, al
test al, al
jne 0x140022001
add rbx, 0x10
mov rcx, qword [r14 + 0x5a0]
cmp rbx, qword [rcx + 0x20]
jne 0x140021fe0
test dl, dl
je 0x140022154
mov ecx, r15d
movzx eax, dl
cmp byte [r14 + 0x6b1], 0
cmove ecx, eax
movzx ebx, cl
mov qword [rsp + 0x50], rsi
mov dword [rsp + 0x58], 0x8c2
mov r8d, ebx
xor r9d, r9d
lea rdx, str.Engine:_request_for_proxy_handler___d___d
lea rcx, [rsp + 0x50]
call fcn.14000b8a0
mov rcx, r14
test bl, bl
je 0x14002204f
call fcn.140025730
jmp 0x140022054
call fcn.140025970
test rax, rax
jne 0x140022154
cmp byte [0x140173b48], al
jne 0x140022071
cmp byte [0x14017bbb1], al
je 0x14002214a
mov qword [rsp + 0x1a0], r12
mov qword [rsp + 0x1e0], r13
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.140006ab0
nop
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x140], r13
xor r9d, r9d
lea rdx, str.Engine:_failed_to_obtain_elevated_privileges__proxy_launch_canceled
lea rcx, [rsp + 0x100]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x1400220e6
cmp byte [0x14017bbb1], 0
jne 0x1400220d8
call fcn.140099320
test al, al
je 0x1400220df
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14002212f
lea rdx, [rsp + 0x1a8]
cmp qword [rsp + 0x1c0], 8
cmovae rdx, qword [rsp + 0x1a8]
lea rcx, [rsp + 0x108]
cmp qword [rsp + reloc.OLEAUT32.dll_VARIANT_UserUnmarshal], 8
cmovae rcx, qword [rsp + 0x108]
mov r8d, 0x5a3
call fcn.140099810
nop
lea rcx, [rsp + 0x100]
call fcn.140004280
nop
lea rcx, [rsp + 0x1a0]
call fcn.140004280
mov eax, 0x80070642
jmp 0x140023230
lea rcx, [r14 + 0x2b8]
lea r8, [r14 + 0x650]
mov edx, 2
call fcn.14002e0e0
cmp word [r14 + 0x650], 0xffff
je 0x14002214a
mov edx, 2
mov rcx, r14
call fcn.14002a2e0
test eax, eax
js 0x140023230
lea r12, [0x140102478]
mov qword [rsp + 0x1f0], r12
lea r13, [0x1401025f8]
mov qword [rsp + 0x230], r13
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x238], eax
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x210], r15
mov qword [rsp + 0x210], 7
mov qword [rsp + 0x208], r15
mov word [rsp + 0x1f8], r15w
mov qword [rsp + 0x218], r15
mov qword [rsp + 0x220], r15
mov qword [rsp + 0x228], r15
mov rax, qword [rsp + 0x230]
movsxd rcx, dword [rax + 4]
mov ecx, dword [rsp + rcx + 0x230]
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
cmp dword [r14 + 0x654], 5
jne 0x14002239e
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ISRootStagePath
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x150]
call fcn.140019cb0
nop
test rax, rax
je 0x14002227f
lea rdx, [rax + 8]
lea rax, [rsp + 0x1f8]
cmp rax, rdx
jne 0x140022282
jmp 0x140022297
mov rdx, r15
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x1f8]
call fcn.140004680
nop
lea rcx, [rsp + 0x150]
call fcn.1400048d0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
lea r8, [rsp + 0x1f8]
cmp qword [rsp + 0x210], 8
cmovae r8, qword [rsp + 0x1f8]
mov qword [rsp + 0x50], rsi
mov dword [rsp + 0x58], 0x5b2
lea rdx, str.Admin_stage_only_mode__staging_path_is__s
lea rcx, [rsp + 0x50]
call fcn.14000b8a0
cmp qword [rsp + 0x208], 0
jne 0x140022338
mov dword [r14 + 0x6b4], 0x8004070d
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x1f0]
xor edx, edx
mov r8d, 0x8004070d
mov rcx, r14
call fcn.140026590
mov ebx, dword [r14 + 0x6b4]
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
mov eax, ebx
jmp 0x140023230
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x1f0]
call fcn.14003c1a0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0xb0]
call fcn.140006eb0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400a65c4
mov rdi, qword [r14 + 0x5a0]
mov rdi, qword [rdi + 0x18]
mov qword [rsp + 0x40], rdi
mov rax, qword [r14 + 0x5a0]
cmp rdi, qword [rax + 0x20]
je 0x14002250d
mov rsi, qword [rdi + 8]
mov rbx, qword [rsi + 0x28]
mov qword [rsp + 0x80], rbx
mov rsi, qword [rsi + 0x30]
cmp rbx, rsi
je 0x140022432
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0xb0]
call fcn.140006eb0
nop
lea rdx, [rsp + 0xb0]
mov rcx, qword [rbx]
call fcn.140065760
test eax, eax
jns 0x140022424
jmp 0x140022435
add rbx, 8
mov qword [rsp + 0x80], rbx
jmp 0x1400223d3
mov eax, r15d
mov dword [r14 + 0x6b4], eax
test eax, eax
jns 0x1400224ca
lea rcx, str.SetupEngine.cpp
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x58], 0x5cf
mov r8d, eax
lea rdx, str.Engine:_error__x_while_staging_parcels
lea rcx, [rsp + 0x50]
call fcn.14000b8a0
mov qword [rsp + 0x150], r12
mov qword [rsp + 0x190], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [0x1400fc414]
lea rcx, [rsp + 0x150]
call fcn.140003cb0
nop
lea r8, [rsp + 0x150]
mov edx, dword [r14 + 0x6b4]
lea rcx, [rsp + 0x2e0]
call fcn.14003a940
lea rdx, [0x14016fe10]
lea rcx, [rsp + 0x2e0]
call fcn.1400b5470
nop
jmp 0x1400224fd
lea rsi, str.SetupEngine.cpp
add rdi, 0x10
jmp 0x1400223a9
mov edx, 3
mov rcx, r14
call fcn.14002a2e0
mov ebx, eax
test eax, eax
jns 0x140022534
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
mov eax, ebx
jmp 0x140023230
cmp dword [r14 + 0x654], 5
jne 0x14002266d
cmp byte [0x140173b48], 0
jne 0x140022558
cmp byte [0x14017bbb1], 0
je 0x14002263f
lea rbx, [0x140102478]
mov qword [rsp + 0x1a0], rbx
lea rdi, [0x1401025f8]
mov qword [rsp + 0x1e0], rdi
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x1a0]
call fcn.140006ab0
nop
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x140], rdi
xor r9d, r9d
lea rdx, str.Engine:_stage_only_sending_completed_event
lea rcx, [rsp + 0x100]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x1400225db
cmp byte [0x14017bbb1], 0
jne 0x1400225cd
call fcn.140099320
test al, al
je 0x1400225d4
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x140022624
lea rdx, [rsp + 0x1a8]
cmp qword [rsp + 0x1c0], 8
cmovae rdx, qword [rsp + 0x1a8]
lea rcx, [rsp + 0x108]
cmp qword [rsp + reloc.OLEAUT32.dll_VARIANT_UserUnmarshal], 8
cmovae rcx, qword [rsp + 0x108]
mov r8d, 0x5e9
call fcn.140099810
nop
lea rcx, [rsp + 0x100]
call fcn.140004280
nop
lea rcx, [rsp + 0x1a0]
call fcn.140004280
lea rcx, [r14 + 0x2b8]
xor r8d, r8d
lea edx, [r8 + 4]
call fcn.14002e0e0
mov ebx, dword [r14 + 0x6b4]
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
mov eax, ebx
jmp 0x140023230
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
jmp 0x14002268a
lea r12, [0x140102478]
lea r13, [0x1401025f8]
mov rcx, r14
call fcn.140026c50
mov edx, 0xa
mov rcx, r14
call fcn.14002a2e0
test eax, eax
js 0x140023230
mov rcx, r14
call fcn.14002a930
mov dword [r14 + 0x6b4], eax
test eax, eax
js 0x140023230
mov edx, VariantTimeToDosDateTime
mov rcx, r14
call fcn.14002a2e0
test eax, eax
js 0x140023230
cmp dword [r14 + 0x6b4], 0
jl 0x140022f22
cmp byte [0x140173b48], 0
jne 0x1400226f7
cmp byte [0x14017bbb1], 0
je 0x1400227de
lea rbx, [0x140102478]
mov qword [rsp + 0xb0], rbx
lea rdi, [0x1401025f8]
mov qword [rsp + 0xf0], rdi
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0xb0]
call fcn.140006ab0
nop
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x190], rdi
xor r9d, r9d
lea rdx, str.Engine:_starting_parcel_operations
lea rcx, [rsp + 0x150]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x14002277a
cmp byte [0x14017bbb1], 0
jne 0x14002276c
call fcn.140099320
test al, al
je 0x140022773
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x1400227c3
lea rdx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rcx, qword [rsp + 0x158]
mov r8d, 0x600
call fcn.140099810
nop
lea rcx, [rsp + 0x150]
call fcn.140004280
nop
lea rcx, [rsp + 0xb0]
call fcn.140004280
lea rcx, [r14 + 0x2b8]
lea r8, [r14 + 0x650]
mov edx, 3
call fcn.14002e0e0
cmp word [r14 + 0x650], 0xffff
je 0x14002214a
mov edx, 4
mov rcx, r14
call fcn.14002a2e0
test eax, eax
js 0x140023230
mov qword [rsp + 0x150], r12
mov qword [rsp + 0x190], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ORIGINALSETUPEXENAME
lea rcx, [rsp + 0x150]
call fcn.140003cb0
nop
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ORIGINALSETUPEXEDIR
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
mov rax, qword [r14 + 0x460]
lea r8, [rsp + 0x150]
lea rdx, [rsp + 0x240]
lea rcx, [r14 + 0x460]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rbx, rax
mov r9, qword [r14 + 0x460]
lea r8, [rsp + 0xb0]
lea rdx, [rsp + 0x290]
lea rcx, [r14 + 0x460]
call qword [r9 + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
mov r8, rbx
lea rdx, [rsp + 0x1a0]
mov rcx, rax
call fcn.14000e500
nop
lea rcx, [rsp + 0x290]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x240]
call fcn.1400048d0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x150]
call fcn.1400048d0
cmp qword [rsp + 0x1b8], 0
jne 0x140022944
lea rax, [r14 + 0x6c0]
lea rdx, [rax + 8]
test rax, rax
cmove rdx, r15
lea rax, [rsp + 0x1a8]
cmp rax, rdx
je 0x140022944
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x1a8]
call fcn.140004680
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x140], r13
xor r8d, r8d
lea rdx, [rsp + 0x1a0]
lea rcx, [rsp + 0x100]
call fcn.140006eb0
nop
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x100]
call fcn.14002edc0
nop
cmp qword [r14 + 0x808], 0
je 0x140022a6f
mov r9d, 1
lea r8, [rsp + 0x30]
lea rdx, [0x140106fa8]
lea rcx, [rsp + 0x150]
call fcn.140009b30
mov rbx, rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.__debuglog_
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea r8, [r14 + 0x7f0]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x290]
call fcn.14000cf90
nop
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x240]
call fcn.14000cf90
nop
test rax, rax
lea rdx, [rax + 8]
jne 0x140022a23
mov rdx, r15
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x1f8]
call fcn.1400039a0
nop
lea rcx, [rsp + 0x240]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x290]
call fcn.1400048d0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x150]
call fcn.1400048d0
cmp byte [r14 + 0x7aa], 0
je 0x140022a93
mov r8d, 8
lea rdx, str.__silent
lea rcx, [rsp + 0x1f8]
call fcn.14000a020
cmp byte [r14 + 0x7ab], 0
je 0x140022ab7
mov r8d, 9
lea rdx, str.__passive
lea rcx, [rsp + 0x1f8]
call fcn.14000a020
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rdx, [rsp + 0xb0]
mov rcx, 0xffffffff80000001
call fcn.1400a7c8c
test al, al
jne 0x140022b57
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rdx, [rsp + 0xb0]
mov rcx, 0xffffffff80000001
call fcn.1400a7b6c
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.Reboot
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rdx, [rsp + 0x240]
mov rcx, r14
call fcn.140044e40
nop
mov r9d, 1
lea r8, [rsp + 0xb0]
mov rdx, rax
mov rcx, 0xffffffff80000001
call fcn.1400a8160
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x150]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0xb0]
call fcn.140006eb0
nop
mov rax, qword [r14]
lea rdx, [rsp + 0x240]
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, rax
mov qword [rsp + 0x150], r12
mov qword [rsp + 0x190], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
lea rcx, [rsp + 0x150]
call fcn.140003cb0
nop
lea r9, [rsp + 0xb0]
mov r8, rbx
lea rdx, [rsp + 0x150]
mov rcx, 0xffffffff80000001
call fcn.1400a8218
mov rax, qword [r14 + 0x5a0]
mov rcx, qword [rax + 0x20]
sub rcx, qword [rax + 0x18]
sar rcx, 4
cmp qword [r14 + 0x7b8], rcx
jbe 0x140022c9f
mov qword [r14 + 0x7b8], r15
mov rcx, r14
call fcn.1400232e0
mov rax, qword [r14 + 0x5a0]
mov rbx, qword [r14 + 0x7b8]
shl rbx, 4
add rbx, qword [rax + 0x18]
nop dword [rax]
mov rcx, qword [r14 + 0x5a0]
cmp rbx, qword [rcx + 0x20]
je 0x140022dc3
mov rdi, qword [rbx + 8]
mov rdx, rbx
sub rdx, qword [rcx + 0x18]
sar rdx, 4
mov rcx, r14
call fcn.1400463d0
nop
mov rcx, rdi
call fcn.14006d6d0
mov dword [r14 + 0x6b4], eax
mov r8d, dword [r14 + 0x6b4]
test r8d, r8d
jns 0x140022d27
mov qword [rsp + 0x68], rsi
mov dword [rsp + 0x70], 0x65b
lea rdx, str.Engine:_error__x_while_running_parcel_operations
lea rcx, [rsp + 0x68]
call fcn.14000b8a0
jmp 0x140022dc3
add rbx, 0x10
jmp 0x140022cc0
lea rax, [rsp + 0x240]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x48], rax
mov rax, qword [r14]
lea rdx, [rsp + 0x240]
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
mov r8, rbx
lea rdx, [rsp + 0xb0]
mov rcx, 0xffffffff80000001
call fcn.1400a7bf4
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x240]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.Reboot
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rdx, [rsp + 0x240]
mov rcx, r14
call fcn.140044e40
nop
lea r8, [rsp + 0xb0]
mov rdx, rax
mov rcx, 0xffffffff80000001
call fcn.1400a7bf4
mov edx, 5
mov rcx, r14
call fcn.14002a2e0
mov ebx, eax
test eax, eax
jns 0x140022ee7
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x100]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x1a0]
call fcn.1400048d0
mov eax, ebx
jmp 0x140023230
lea rcx, [rsp + 0x1f0]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x100]
call fcn.1400048d0
nop
lea rcx, [rsp + 0x1a0]
call fcn.1400048d0
cmp dword [r14 + 0x6b4], 0
jl 0x140022f22
mov rcx, r14
call fcn.140027990
mov rcx, r14
call fcn.140045920
cmp byte [0x140173b48], 0
jne 0x140022f40
cmp byte [0x14017bbb1], 0
je 0x140023029
lea rbx, [0x140102478]
mov qword [rsp + 0x150], rbx
lea rdi, [0x1401025f8]
mov qword [rsp + 0x190], rdi
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x150]
call fcn.140006ab0
nop
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xf0], rdi
xor r9d, r9d
lea rdx, str.Engine:_parcel_operations_completed__sending_completed_event_to_UI
lea rcx, [rsp + 0xb0]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x140022fc3
cmp byte [0x14017bbb1], 0
jne 0x140022fb5
call fcn.140099320
test al, al
je 0x140022fbc
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14002300c
lea rdx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rdx, qword [rsp + 0x158]
lea rcx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rcx, qword [rsp + 0xb8]
mov r8d, 0x679
call fcn.140099810
nop
lea rcx, [rsp + 0xb0]
call fcn.140004280
nop
lea rcx, [rsp + 0x150]
call fcn.140004280
jmp 0x140023037
lea rbx, [0x140102478]
lea rdi, [0x1401025f8]
lea rcx, [r14 + 0x2b8]
xor r8d, r8d
lea edx, [r8 + 4]
call fcn.14002e0e0
cmp dword [r14 + 0x6b4], 0
jl 0x1400231f7
cmp byte [r14 + 0x7a9], 0
je 0x1400231f7
cmp byte [0x140173b48], 0
jne 0x14002307c
cmp byte [0x14017bbb1], 0
je 0x140023155
mov qword [rsp + 0x150], rbx
mov qword [rsp + 0x190], rdi
xor r9d, r9d
mov rdx, rsi
lea rcx, [rsp + 0x150]
call fcn.140006ab0
nop
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xf0], rdi
xor r9d, r9d
lea rdx, str.Engine:_parcel_operations_successful_with_a_pending_reboot
lea rcx, [rsp + 0xb0]
call fcn.140006ab0
nop
cmp byte [0x140173b48], 0
je 0x1400230f1
cmp byte [0x14017bbb1], 0
jne 0x1400230e3
call fcn.140099320
test al, al
je 0x1400230ea
mov byte [0x14017bbb1], 1
mov byte [0x140173b48], 0
cmp byte [0x14017bbb1], 0
je 0x14002313a
lea rdx, [rsp + 0x158]
cmp qword [rsp + 0x170], 8
cmovae rdx, qword [rsp + 0x158]
lea rcx, [rsp + 0xb8]
cmp qword [rsp + 0xd0], 8
cmovae rcx, qword [rsp + 0xb8]
mov r8d, 0x67e
call fcn.140099810
nop
lea rcx, [rsp + 0xb0]
call fcn.140004280
nop
lea rcx, [rsp + 0x150]
call fcn.140004280
mov dword [r14 + 0x6b4], 0xbc2
mov qword [rsp + 0xb0], r12
mov qword [rsp + 0xf0], r13
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, str.ISPerformDelayedReboot
lea rcx, [rsp + 0xb0]
call fcn.140003cb0
nop
lea rcx, [r14 + 0x460]
mov rax, qword [rcx]
lea r8, [rsp + 0xb0]
lea rdx, [rsp + 0x240]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
nop
test rax, rax
je 0x1400231b4
lea r15, [rax + 8]
lea rdx, str.true
mov rcx, r15
call fcn.14000e920
test eax, eax
sete bl
lea rcx, [rsp + 0x240]
call fcn.1400048d0
nop
lea rcx, [rsp + 0xb0]
call fcn.1400048d0
test bl, bl
je 0x1400231f7
mov dword [r14 + 0x6b4], 0x669
call fcn.1400a718c
mov edx, 7
mov rcx, r14
call fcn.14002a2e0
mov qword [rsp + 0x68], rsi
mov dword [rsp + 0x70], 0x694
mov r8d, dword [r14 + 0x6b4]
lea rdx, str.Engine:_all_operations_completed__final_status:__x
lea rcx, [rsp + 0x68]
call fcn.14000b8a0
mov eax, dword [r14 + 0x6b4]
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.1400b31f0
lea r11, [rsp + 0x360]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret