Function at 0x140039ee0
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.14000b870
nop
mov r9, r12
lea r8, str.lpszPrinter___s
mov edx, 1
lea rcx, [rbp - 0x20]
call fcn.14000ba50
call fcn.14004cde4
mov rcx, rax
xor ebx, ebx
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x140039f52
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x40], rax
call fcn.14004cde4
mov rcx, rax
mov eax, ebx
test rcx, rcx
setne al
test eax, eax
jne 0x140039f7f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x48], rax
call fcn.14004cde4
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x140039faa
mov ecx, 0x80004005
call fcn.140001000
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.140001110
nop
mov edx, 0x5c
mov rcx, qword [rbp + 0x38]
call fcn.14018f7cc
or esi, 0xffffffff
test rax, rax
jne 0x140039fdf
mov eax, esi
jmp 0x140039fe6
sub rax, qword [rbp + 0x38]
sar rax, 1
lea r8d, [rax + 1]
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x38]
call fcn.140016680
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x38]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003a053
cmp dword [rbx + 0x10], 0
jl 0x14003a045
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003a045
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a03b
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 0x14003a053
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x38]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a071
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.140001620
add rax, 0x18
mov qword [rbp - 0x28], rax
lea rdx, [rbp - 0x58]
lea rcx, [rbp - 0x28]
call fcn.14001b680
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.140001110
nop
call fcn.140050920
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.1400166b0
nop
mov r8, rax
lea rdx, [r13 + 0x1d8]
lea rcx, [rbp - 0x38]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x40]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14003a131
cmp dword [rbx + 0x10], 0
jl 0x14003a123
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14003a123
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a119
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 0x14003a131
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x40]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a150
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 0x14003a16e
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 0x14003a1d0
cmp dword [rdi + 0x10], 0
jl 0x14003a1bf
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003a1bf
call fcn.140001620
mov rbx, rax
mov eax, esi
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x14003a1b5
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 0x14003a1d0
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x48]
call fcn.1400014d0
mov rbx, qword [rbp + 0x48]
mov rdi, qword [rbp + 0x40]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400184c0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, r12
lea rcx, [rbp - 0x30]
call fcn.140001110
nop
mov edx, 0x5c
mov rcx, rdi
call fcn.14018f7cc
test rax, rax
jne 0x14003a216
mov eax, esi
jmp 0x14003a21c
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x48]
lea rcx, [rbp + 0x40]
call fcn.140016750
nop
mov rdi, qword [rbp - 0x48]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14003a255
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14003a2a5
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x14003a2a5
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.140001620
add rax, 0x18
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x40]
call fcn.14001c3a0
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp - 0x20]
call fcn.14000ba50
nop
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14003a2f9
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 0x14003a318
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 0x14003a337
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 0x14003a356
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 0x14003a372
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 0x14003a391
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 0x14003a3af
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
lea rcx, [rbp - 0x20]
call fcn.14000ba00
mov eax, 1
mov rbx, qword [rsp + 0xb0]
add rsp, 0x80
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret