Function at 0x140042ba0
Capabilities:
Delete registry key

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
mov rbp, rsp
sub rsp, 0x80
mov qword [rbp - 8], 0xfffffffffffffffe
mov qword [rsp + 0xb0], rbx
mov r12, rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanUpRegistryEveryNetWorkPrinter
lea rcx, [rbp - 0x20]
call fcn.140001190
nop
mov r9, r12
lea r8, str.lpszPrinter___s
mov edx, 1
lea rcx, [rbp - 0x20]
call fcn.140001370
call fcn.140056384
mov rcx, rax
xor ebx, ebx
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x140042c12
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x40], rax
call fcn.140056384
mov rcx, rax
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x140042c3f
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x48], rax
call fcn.140056384
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x140042c6a
mov ecx, 0x80004005
call fcn.140004550
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x58], rax
mov rdx, r12
lea rcx, [rbp + 0x38]
call fcn.1400054e0
nop
mov edx, 0x5c
mov rcx, qword [rbp + 0x38]
call fcn.14019a074
or esi, 0xffffffff
test rax, rax
jne 0x140042c9f
mov eax, esi
jmp 0x140042ca6
sub rax, qword [rbp + 0x38]
sar rax, 1
lea r8d, [rax + 1]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x38]
call fcn.140012110
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x38]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140042d13
cmp dword [rbx + 0x10], 0
jl 0x140042d05
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140042d05
call fcn.140006db0
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x140042cfb
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rbp + 0x38], rax
jmp 0x140042d13
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x38]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042d31
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x38]
add rcx, 0xffffffffffffffe8
call fcn.140006db0
add rax, 0x18
mov qword [rbp - 0x28], rax
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x28]
call fcn.140025570
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.1400054e0
nop
call fcn.140059f20
mov r13, qword [rax + 8]
mov rax, qword [rbp - 0x60]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x60]
call fcn.140012140
nop
mov r8, rax
lea rdx, [r13 + 0x1d8]
lea rcx, [rbp - 0x38]
call fcn.140012280
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x40]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140042df1
cmp dword [rbx + 0x10], 0
jl 0x140042de3
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140042de3
call fcn.140006db0
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x140042dd9
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rbp + 0x40], rax
jmp 0x140042df1
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x40]
call fcn.1400059f0
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042e10
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042e2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [r13 + 0x1d8]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x48]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x140042e90
cmp dword [rdi + 0x10], 0
jl 0x140042e7f
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140042e7f
call fcn.140006db0
mov rbx, rax
mov eax, esi
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x140042e75
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rbx, 0x18
mov qword [rbp + 0x48], rbx
jmp 0x140042e90
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x48]
call fcn.1400059f0
mov rbx, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x40]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400222d0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.1400054e0
nop
mov edx, 0x5c
mov rcx, rdi
call fcn.14019a074
test rax, rax
jne 0x140042ed6
mov eax, esi
jmp 0x140042edc
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x40]
call fcn.1400121e0
nop
mov rdi, qword [rbp - 0x48]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400224a0
cmp eax, 1
jne 0x140042f15
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.1400224a0
cmp eax, 1
jne 0x140042f65
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.1400224a0
cmp eax, 1
jne 0x140042f65
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp - 0x58]
lea rcx, [rbx - 0x18]
call fcn.140006db0
add rax, 0x18
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x40]
call fcn.140026290
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp - 0x20]
call fcn.140001370
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042fb9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042fd8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140042ff7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140043016
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, esi
lock xadd dword [rbx - 8], eax
dec eax
test eax, eax
jg 0x140043032
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140043051
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14004306f
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
lea rcx, [rbp - 0x20]
call fcn.140001320
mov eax, 1
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret