Function at 0x140009540
Capabilities:
Check if file exists

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x590
movaps xmmword [r11 - 0x38], xmm6
mov rax, qword [0x14005b060]
xor rax, rsp
mov qword [rsp + 0x570], rax
mov r15, rcx
mov qword [rsp + 0x60], rcx
xor edi, edi
mov dword [rsp + 0x370], edi
mov byte [rsp + 0x374], dil
mov qword [r11 - 0x240], rdi
mov qword [r11 - 0x230], rdi
mov qword [r11 - 0x228], 7
mov word [rsp + 0x378], di
lea rax, vtable.TaskList.0
mov qword [r11 - 0x258], rax
lea rax, vtable.TaskList.1.0
mov qword [r11 - 0x220], rax
xorps xmm0, xmm0
movdqa xmmword [rsp + 0x3a0], xmm0
mov qword [r11 - 0x208], rdi
mov dword [rsp + 0x3b8], 0xffffffff
mov byte [rsp + 0x3e8], dil
mov qword [r11 - 0x250], rcx
add rcx, 0x58
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor r8d, r8d
lea edx, [rdi + 1]
mov rcx, r15
call fcn.140008a60
call fcn.140005f10
cmp eax, 1
je 0x14000aca2
mov edx, 0x17
lea rcx, [rsp + 0x490]
call fcn.140010610
mov rdx, rax
lea rcx, [0x14005bc98]
call fcn.14000c1e0
mov rdx, qword [rsp + 0x4a8]
cmp rdx, 8
jb 0x140009684
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x490]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000967f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acbc
call fcn.14001c70c
lea r8, [0x14004fd98]
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x4b0]
call fcn.140006a40
mov rdx, rax
lea r14, [0x14005bcf8]
mov rcx, r14
call fcn.14000c1e0
mov rdx, qword [rsp + 0x4c8]
cmp rdx, 8
jb 0x1400096f9
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x4b0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400096f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acc2
call fcn.14001c70c
lea r8, str.pia_service.exe
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x550]
call fcn.140006a40
mov rdx, rax
lea rsi, [0x14005bd58]
mov rcx, rsi
call fcn.14000c1e0
mov rdx, qword [rsp + 0x568]
cmp rdx, 8
jb 0x14000976e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x550]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009769
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acc8
call fcn.14001c70c
lea r8, str.pia_wgservice.exe
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x4d0]
call fcn.140006a40
mov rdx, rax
lea rcx, [0x14005bd98]
call fcn.14000c1e0
mov rdx, qword [rsp + 0x4e8]
cmp rdx, 8
jb 0x1400097e0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x4d0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400097db
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acce
call fcn.14001c70c
lea r8, str.data
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x4f0]
call fcn.140006a40
mov rdx, rax
lea rcx, [0x14005bd18]
call fcn.14000c1e0
mov rdx, qword [rsp + 0x508]
cmp rdx, 8
jb 0x140009852
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x4f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000984d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acd4
call fcn.14001c70c
mov edx, 0x23
lea rcx, [rsp + 0x510]
call fcn.140010610
nop
mov r8d, 0x18
lea rdx, [0x14004fe18]
mov rcx, rax
call fcn.140006800
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x450], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x460], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
lea rdx, [rsp + 0x450]
lea r12, [0x14005bcb8]
mov rcx, r12
call fcn.14000c1e0
mov rdx, qword [rsp + 0x468]
cmp rdx, 8
jb 0x140009900
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x450]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400098fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acda
call fcn.14001c70c
nop
mov rdx, qword [rsp + 0x528]
cmp rdx, 8
jb 0x140009948
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x510]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009943
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000ace0
call fcn.14001c70c
mov edx, 0x1c
lea rcx, [rsp + 0x530]
call fcn.140010610
nop
mov r8d, 0x18
lea rdx, [0x14004fe18]
mov rcx, rax
call fcn.140006800
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x470], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x480], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
lea rdx, [rsp + 0x470]
lea rcx, [0x14005bd78]
call fcn.14000c1e0
mov rdx, qword [rsp + 0x488]
cmp rdx, 8
jb 0x1400099f3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x470]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400099ed
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000ace6
call fcn.14001c70c
nop
mov rdx, qword [rsp + 0x548]
cmp rdx, 8
jb 0x140009a3b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x530]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009a36
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acec
call fcn.14001c70c
lea rdx, [0x14005bd38]
cmp qword [0x14005bd50], 8
cmovae rdx, qword [0x14005bd38]
mov qword [rsp + 0x3f0], rdi
mov qword [rsp + 0x400], rdi
mov qword [rsp + 0x408], 7
mov word [rsp + 0x3f0], di
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140009a80
lea rcx, [rsp + 0x3f0]
call fcn.1400063f0
nop
mov r8d, 0x14
lea rdx, str.pia_install_msi.log
lea rcx, [rsp + 0x3f0]
call fcn.140006800
lea rdx, [rsp + 0x3f0]
cmp qword [rsp + 0x408], 8
cmovae rdx, qword [rsp + 0x3f0]
mov ecx, 0x1000
mov r8d, 1
call qword [sym.imp.msi.dll_MsiGetComponentPathW]
test eax, eax
je 0x140009b6f
mov rbx, qword [0x14005eb48]
mov r9d, eax
mov r8d, 1
lea rdx, str.Unable_to_configure_MSI_logging____u
lea rcx, [rsp + 0x410]
call fcn.14000edc0
lea rdx, [rsp + 0x410]
cmp qword [rsp + 0x428], 0x10
cmovae rdx, qword [rsp + 0x410]
mov rcx, rbx
call fcn.14000f340
mov rdx, qword [rsp + 0x428]
cmp rdx, 0x10
jb 0x140009b6f
inc rdx
mov rcx, qword [rsp + 0x410]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009b6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acf2
call fcn.14001c70c
xor edx, edx
lea ecx, [rdx + 2]
call qword [sym.imp.msi.dll_MsiSetPropertyW]
nop
mov rdx, qword [rsp + 0x408]
cmp rdx, 8
jb 0x140009bc3
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x3f0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009bbe
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acf8
call fcn.14001c70c
cmp qword [0x14005bd10], 8
cmovae r14, qword [0x14005bcf8]
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp qword [0x14005bd70], 8
cmovae rsi, qword [0x14005bd58]
mov rcx, rsi
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x2f8]
call fcn.14000c280
mov rbx, rax
mov qword [rsp + 0x50], rax
lea r8, str.uninstall.dat
mov rdx, rax
lea rcx, [rsp + 0x430]
call fcn.140006a40
nop
mov rdx, qword [rbx + 0x18]
cmp rdx, 8
jb 0x140009c68
mov rcx, qword [rbx]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140009c63
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000acfe
mov rcx, r8
call fcn.14001c70c
mov qword [rbx + 0x10], rdi
mov qword [rbx + 0x18], 7
mov word [rbx], di
lea rcx, [rsp + 0x430]
cmp qword [rsp + 0x448], 8
cmovae rcx, qword [rsp + 0x430]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
setne r14b
mov rdx, qword [rsp + 0x448]
cmp rdx, 8
jb 0x140009ce5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x430]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140009ce0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000acfe
call fcn.14001c70c
test r14b, r14b
jne 0x140009da8
mov dword [rsp + 0x240], edi
mov byte [rsp + 0x244], r14b
mov qword [rsp + 0x248], rdi
mov qword [rsp + 0x258], rdi
mov qword [rsp + 0x260], 7
mov dword [rsp + 0x150], 0x9c6
mov byte [rsp + 0x154], r14b
mov qword [rsp + 0x158], rdi
mov qword [rsp + 0x168], rdi
mov qword [rsp + 0x170], 7
mov dword [rsp + 0x128], 0x9c5
mov byte [rsp + 0x12c], r14b
mov qword [rsp + 0x130], rdi
mov qword [rsp + 0x140], rdi
mov qword [rsp + 0x148], 7
mov dword [rsp + 0x20], 0x34
lea r9, [rsp + 0x240]
lea r8, [rsp + 0x150]
lea rdx, [rsp + 0x128]
mov rcx, r15
call fcn.1400090f0
cmp eax, 6
jne 0x14000ad04
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_CreateRollbackDirectoryTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.CreateRollbackDirectoryTask.0
mov qword [rax], rcx
mov qword [rsp + 0x280], rax
mov qword [rsp + 0x288], rbx
movdqu xmmword [rsp + 0x68], xmm0
lock inc dword [rbx + 8]
mov rcx, qword [rsp + 0x280]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], rbx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x398]
call qword [rax + 8]
mov rdx, qword [rsp + 0x3a8]
cmp rdx, qword [rsp + 0x3b0]
je 0x140009e6f
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov rax, qword [rsp + 0x68]
mov qword [rdx], rax
mov rax, qword [rsp + 0x70]
mov qword [rdx + 8], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
add qword [rsp + 0x3a8], 0x10
jmp 0x140009e82
lea r8, [rsp + 0x68]
lea rcx, [rsp + 0x3a0]
call fcn.140012480
nop
mov rsi, qword [rsp + 0x70]
test rsi, rsi
je 0x140009ebc
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x140009ebc
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x140009ebc
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140009eeb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140009eeb
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_KillExistingClientsTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.KillExistingClientsTask.0
mov qword [rax], rcx
mov qword [rsp + 0x290], rax
mov qword [rsp + 0x298], rbx
movdqu xmmword [rsp + 0x78], xmm0
lock inc dword [rbx + 8]
mov rcx, qword [rsp + 0x290]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rbx
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x398]
call qword [rax + 8]
mov rdx, qword [rsp + 0x3a8]
cmp rdx, qword [rsp + 0x3b0]
je 0x140009fb8
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov rax, qword [rsp + 0x78]
mov qword [rdx], rax
mov rax, qword [rsp + 0x80]
mov qword [rdx + 8], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
add qword [rsp + 0x3a8], 0x10
jmp 0x140009fcb
lea r8, [rsp + 0x78]
lea rcx, [rsp + 0x3a0]
call fcn.140012480
nop
mov rsi, qword [rsp + 0x80]
test rsi, rsi
je 0x14000a008
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a008
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14000a008
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a037
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a037
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ecx, 0x30
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_StopExistingServiceTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
mov qword [rax + 8], rdi
lea rcx, vtable.StopExistingServiceTask.0
mov qword [rax], rcx
lea rcx, str.PrivateInternetAccessService
mov qword [rax + 0x10], rcx
mov word [rax + 0x18], 1
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1a8], rbx
movdqu xmmword [rsp + 0x88], xmm0
lock inc dword [rbx + 8]
mov rcx, qword [rsp + 0x1a0]
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0x90], rbx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x398]
call qword [rax + 8]
mov rdx, qword [rsp + 0x3a8]
cmp rdx, qword [rsp + 0x3b0]
je 0x14000a121
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov rax, qword [rsp + 0x88]
mov qword [rdx], rax
mov rax, qword [rsp + 0x90]
mov qword [rdx + 8], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x88], xmm0
add qword [rsp + 0x3a8], 0x10
jmp 0x14000a137
lea r8, [rsp + 0x88]
lea rcx, [rsp + 0x3a0]
call fcn.140012480
nop
mov rsi, qword [rsp + 0x90]
test rsi, rsi
je 0x14000a174
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a174
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14000a174
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a1a3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a1a3
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ecx, 0x30
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_StopExistingServiceTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
mov qword [rax + 8], rdi
lea rcx, vtable.StopExistingServiceTask.0
mov qword [rax], rcx
lea rcx, str.PrivateInternetAccessWireguard
mov qword [rax + 0x10], rcx
mov word [rax + 0x18], 0
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x1b8], rbx
movdqu xmmword [rsp + 0x98], xmm0
lock inc dword [rbx + 8]
mov rcx, qword [rsp + 0x1b0]
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rbx
lea rax, [rsp + 0x98]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x398]
call qword [rax + 8]
mov rdx, qword [rsp + 0x3a8]
cmp rdx, qword [rsp + 0x3b0]
je 0x14000a28d
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov rax, qword [rsp + 0x98]
mov qword [rdx], rax
mov rax, qword [rsp + 0xa0]
mov qword [rdx + 8], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x98], xmm0
add qword [rsp + 0x3a8], 0x10
jmp 0x14000a2a3
lea r8, [rsp + 0x98]
lea rcx, [rsp + 0x3a0]
call fcn.140012480
nop
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
je 0x14000a2e0
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a2e0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14000a2e0
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a30f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a30f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_UninstallExistingServiceTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.UninstallExistingServiceTask.0
mov qword [rax], rcx
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], rbx
movdqu xmmword [rsp + 0xa8], xmm0
lock inc dword [rbx + 8]
mov rcx, qword [rsp + 0x1c0]
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], rbx
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x30], rax
mov rax, qword [rcx]
lea rdx, [rsp + 0x398]
call qword [rax + 8]
mov rdx, qword [rsp + 0x3a8]
cmp rdx, qword [rsp + 0x3b0]
je 0x14000a3eb
mov qword [rdx], rdi
mov qword [rdx + 8], rdi
mov rax, qword [rsp + 0xa8]
mov qword [rdx], rax
mov rax, qword [rsp + 0xb0]
mov qword [rdx + 8], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xa8], xmm0
add qword [rsp + 0x3a8], 0x10
jmp 0x14000a401
lea r8, [rsp + 0xa8]
lea rcx, [rsp + 0x3a0]
call fcn.140012480
nop
mov rsi, qword [rsp + 0xb0]
test rsi, rsi
je 0x14000a43e
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x14000a43e
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rsi + 0xc], eax
cmp eax, 1
jne 0x14000a43e
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 8]
nop
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14000a46d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, 0xffffffff
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14000a46d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_UninstallCalloutDriverTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.UninstallCalloutDriverTask.0
mov qword [rax], rcx
mov qword [rsp + 0x1d0], rax
mov qword [rsp + 0x1d8], rbx
movdqu xmmword [rsp + 0xc8], xmm0
lock inc dword [rbx + 8]
mov rax, qword [rsp + 0x1d0]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0xd0], rbx
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rbx
call fcn.140007620
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_UninstallWgServiceTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.UninstallWgServiceTask.0
mov qword [rax], rcx
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rbx
movdqu xmmword [rsp + 0xd8], xmm0
lock inc dword [rbx + 8]
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbx
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rbx
call fcn.140007620
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_UninstallWintunTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.UninstallWintunTask.0
mov qword [rax], rcx
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x1f8], rbx
movdqu xmmword [rsp + 0xe8], xmm0
lock inc dword [rbx + 8]
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rbx
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rbx
call fcn.140007620
mov ecx, 0x20
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_UninstallTapDriverTask_.0
mov qword [rbx], rax
lea rax, [rbx + 0x10]
movups xmmword [rax], xmm0
mov qword [rax + 8], rdi
lea rcx, vtable.UninstallTapDriverTask.0
mov qword [rax], rcx
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], rbx
movdqu xmmword [rsp + 0xf8], xmm0
lock inc dword [rbx + 8]
mov rax, qword [rsp + 0x200]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rbx
call fcn.140007620
test r14b, r14b
je 0x14000a8f0
mov ecx, 0x48
call fcn.14001c480
mov rsi, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_CaptionTask_.0
mov qword [rsi], rax
lea rbx, [rsi + 0x10]
mov dword [rsp + 0x178], 0x97f
mov byte [rsp + 0x17c], 0
mov qword [rsp + 0x180], rdi
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x198], 7
mov qword [rbx + 8], rdi
lea rax, vtable.CaptionTask.0
mov qword [rbx], rax
mov dword [rbx + 0x10], 0x97f
mov byte [rbx + 0x14], 0
movups xmm0, xmmword [rsp + 0x180]
movups xmmword [rbx + 0x18], xmm0
movups xmm1, xmmword [rsp + 0x190]
movups xmmword [rbx + 0x28], xmm1
lea rcx, [rsp + 0x178]
call fcn.1400076a0
mov qword [rsp + 0x210], rbx
mov qword [rsp + 0x218], rsi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x108], xmm0
lock inc dword [rsi + 8]
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rsi
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rsi
call fcn.140007620
mov ecx, 0xc0
call fcn.14001c480
mov rbx, rax
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rax, vtable.std::_Ref_count_obj2_class_ExecuteUninstallDataTask_.0
mov qword [rbx], rax
lea rsi, [rbx + 0x10]
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x2d8]
call fcn.14000c280
mov qword [rsi + 8], rdi
mov dword [rsi + 0x10], edi
mov byte [rsi + 0x14], 0
mov qword [rsi + 0x18], rdi
mov qword [rsi + 0x28], rdi
mov qword [rsi + 0x30], 7
mov qword [rsi + 0x40], rdi
mov qword [rsi + 0x48], rdi
mov qword [rsi + 0x50], rdi
mov dword [rsi + 0x58], 0xffffffff
mov byte [rsi + 0x88], 0
lea rcx, vtable.ExecuteUninstallDataTask.0
mov qword [rsi], rcx
lea rcx, vtable.ExecuteUninstallDataTask.1.0
mov qword [rsi + 0x38], rcx
mov qword [rsi + 0x90], rdi
mov qword [rsi + 0xa0], rdi
mov qword [rsi + 0xa8], rdi
movups xmm0, xmmword [rax]
movups xmmword [rsi + 0x90], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsi + 0xa0], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
mov qword [rsp + 0x220], rsi
mov qword [rsp + 0x228], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x118], xmm0
lock inc dword [rbx + 8]
mov rax, qword [rsp + 0x220]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rbx
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rbx
call fcn.140007620
jmp 0x14000a90e
mov byte [rsp + 0x3a], 1
lea r8, [rsp + 0x3a]
lea rdx, [0x14005bcd8]
lea rcx, [rsp + 0x360]
call fcn.14000c330
mov byte [rsp + 0x38], 1
lea r8, [rsp + 0x38]
lea rdx, [0x14005bd18]
lea rcx, [rsp + 0x360]
call fcn.14000c330
mov byte [rsp + 0x39], 1
lea r8, [rsp + 0x39]
lea rdx, [0x14005bd78]
lea rcx, [rsp + 0x360]
call fcn.14000c330
cmp qword [0x14005bcd0], 8
cmovae r12, qword [0x14005bcb8]
mov rcx, r12
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14000aa29
mov ecx, 0xd8
call fcn.14001c480
mov rdi, rax
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
lea rsi, vtable.std::_Ref_count_obj2_class_FunctionTask_.0
mov qword [rax], rsi
lea rbx, [rax + 0x10]
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_3fb09071f6d353646bf594cb8907e243___void___.0
mov qword [rsp + 0x318], rax
lea rax, [rsp + 0x318]
mov qword [rsp + 0x350], rax
xorps xmm2, xmm2
lea rdx, [rsp + 0x318]
mov rcx, rbx
call fcn.140011b80
mov qword [rsp + 0x230], rbx
mov qword [rsp + 0x238], rdi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xb8], xmm0
lock inc dword [rdi + 8]
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rdi
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rdi
call fcn.140007620
jmp 0x14000aa30
lea rsi, vtable.std::_Ref_count_obj2_class_FunctionTask_.0
mov ecx, 0xd8
call fcn.14001c480
mov rdi, rax
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov dword [rax + 8], 1
mov dword [rax + 0xc], 1
mov qword [rax], rsi
lea rbx, [rax + 0x10]
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_20843ff13937d06d2187eca5776d036d___void___.0
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], r15
lea rax, [rsp + 0x240]
mov qword [rsp + 0x278], rax
xorps xmm2, xmm2
lea rdx, [rsp + 0x240]
mov rcx, rbx
call fcn.140011b80
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rdi
xorps xmm0, xmm0
movdqu xmmword [rsp + 0xb8], xmm0
lock inc dword [rdi + 8]
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rdi
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x360]
call fcn.140011ef0
nop
mov rcx, rdi
call fcn.140007620
mov dword [rsp + 0x48], 1
lea r8, [rsp + 0x48]
lea rcx, [rsp + 0x360]
call fcn.14000c420
lea rcx, [rsp + 0x360]
call fcn.14000c520
lea rcx, [rsp + 0x360]
call fcn.14000c5f0
movsd xmm0, qword [0x140051d48]
movsd qword [rsp + 0x48], xmm0
mov qword [rsp + 0x50], r15
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x360]
call fcn.14000c6c0
lea rcx, [rsp + 0x360]
call fcn.14000c7d0
lea rcx, [rsp + 0x360]
call fcn.140011fa0
xor r8d, r8d
lea edx, [r8 + 2]
mov rcx, r15
call fcn.140008a20
mov rcx, r15
call fcn.1400093f0
cmp eax, 4
jl 0x14000aba1
mov edx, 7
lea r8d, [rdx - 5]
mov rcx, r15
call fcn.140008a20
nop
lea rcx, [rsp + 0x360]
call fcn.14000ada0
mov eax, 2
jmp 0x14000ac70
lea rcx, [rsp + 0x360]
call fcn.140012020
lea rcx, [r15 + 0x58]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [r15 + 0xe8], 4
je 0x14000ad25
mov edx, 7
lea r8d, [rdx - 6]
mov rcx, r15
call fcn.140008a60
nop
lea rcx, [rsp + 0x360]
call fcn.14000ada0
xor eax, eax
jmp 0x14000ac70
mov rcx, qword [rsp + 0x570]
xor rcx, rsp
call fcn.14001c460
lea r11, [rsp + 0x590]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov edx, 0x9f1
lea rcx, [rsp + 0x128]
call fcn.140007680
mov rcx, rax
call fcn.14000e570
call fcn.140025138
int3
call fcn.140025138
int3
call fcn.140025138
int3
call fcn.140025138
int3
call fcn.140025138
nop
call fcn.140025138
nop
call fcn.140025138
nop
call fcn.140025138
nop
call fcn.140025138
nop
call fcn.140025138
nop
call fcn.140025138
int3
call fcn.140025138
int3
lea rcx, [rsp + 0x2a8]
call fcn.140007710
lea rdx, [0x1400592c0]
lea rcx, [rsp + 0x2a8]
call fcn.14001e34c
lea rcx, [r15 + 0x58]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsp + 0x2c0]
call fcn.140007710
lea rdx, [0x1400592c0]
lea rcx, [rsp + 0x2c0]
call fcn.14001e34c
int3