Function at 0x14003c8c0
Capabilities:
Delete registry key

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov qword [rbp + 0x27], 0xfffffffffffffffe
mov qword [rsp + 0xc0], rbx
mov r12, rdx
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanUpRegistryEveryNetWorkPrinter
lea rcx, [rbp + 0xf]
call fcn.140017fc0
nop
mov r9, r12
lea r8, str.lpszPrinter___s
mov edx, 1
lea rcx, [rbp + 0xf]
call fcn.140017c80
call fcn.140051e58
mov rcx, rax
xor ebx, ebx
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x14003c934
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x7f], rax
call fcn.140051e58
mov rcx, rax
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x14003c961
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x39], rax
call fcn.140051e58
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x14003c98c
mov ecx, 0x80004005
call fcn.140001010
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x29], rax
mov rdx, r12
lea rcx, [rbp + 0x77]
call fcn.1400020c0
nop
mov edx, 0x5c
mov rcx, qword [rbp + 0x77]
call fcn.140193dc0
or esi, 0xffffffff
test rax, rax
jne 0x14003c9c1
mov eax, esi
jmp 0x14003c9c8
sub rax, qword [rbp + 0x77]
sar rax, 1
lea r8d, [rax + 1]
lea rdx, [rbp - 9]
lea rcx, [rbp + 0x77]
call fcn.140018290
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x77]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003ca35
cmp dword [rbx + 0x10], 0
jl 0x14003ca27
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003ca27
call fcn.140001950
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ca1d
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 + 0x77], rax
jmp 0x14003ca35
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x77]
call fcn.140001c20
nop
mov rdx, qword [rbp - 9]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ca53
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0x77]
add rcx, 0xffffffffffffffe8
call fcn.140001950
add rax, 0x18
mov qword [rbp + 7], rax
lea rdx, [rbp - 0x29]
lea rcx, [rbp + 7]
call fcn.14001de40
mov rdx, r12
lea rcx, [rbp - 0x31]
call fcn.1400020c0
nop
call fcn.140054cb8
mov r13, qword [rax + 8]
mov rax, qword [rbp - 0x31]
mov r8d, dword [rax - 0x10]
dec r8d
lea rdx, [rbp + 0x1f]
lea rcx, [rbp - 0x31]
call fcn.140017e80
nop
mov r8, rax
lea rdx, [r13 + 0x1d8]
lea rcx, [rbp - 0x21]
call fcn.1400182c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x7f]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003cb13
cmp dword [rbx + 0x10], 0
jl 0x14003cb05
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003cb05
call fcn.140001950
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cafb
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 + 0x7f], rax
jmp 0x14003cb13
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x7f]
call fcn.140001c20
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cb32
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x1f]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cb50
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 - 0x39]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x14003cbb2
cmp dword [rdi + 0x10], 0
jl 0x14003cba1
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003cba1
call fcn.140001950
mov rbx, rax
mov eax, esi
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14003cb97
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rbx, 0x18
mov qword [rbp - 0x39], rbx
jmp 0x14003cbb2
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x39]
call fcn.140001c20
mov rbx, qword [rbp - 0x39]
mov rdi, qword [rbp + 0x7f]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018e80
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, r12
lea rcx, [rbp - 1]
call fcn.1400020c0
nop
mov edx, 0x5c
mov rcx, rdi
call fcn.140193dc0
test rax, rax
jne 0x14003cbf8
mov eax, esi
jmp 0x14003cbfe
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x19]
lea rcx, [rbp + 0x7f]
call fcn.140017f20
nop
mov rdi, qword [rbp - 0x19]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14003cc37
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14003cc87
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.140019030
cmp eax, 1
jne 0x14003cc87
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rcx, qword [rbp - 0x29]
add rcx, 0xffffffffffffffe8
call fcn.140001950
add rax, 0x18
mov qword [rbp - 0x11], rax
lea rcx, [rbp - 0x11]
call fcn.14001ce10
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp + 0xf]
call fcn.140017c80
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ccdb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003ccfa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd19
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x77]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd38
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x29]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd57
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003cd76
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x14003cd94
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
lea rcx, [rbp + 0xf]
call fcn.140018150
mov eax, 1
mov rbx, qword [rsp + 0xc0]
add rsp, 0x90
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret