Function at 0x1400400d0
Capabilities:
Delete registry key

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x27]
sub rsp, 0xa0
mov qword [rbp + 0x1f], 0xfffffffffffffffe
mov rbx, rcx
xor r8d, r8d
lea rdx, str.CUNINSTALLERDlg::CleanUpRegistryEveryNetWorkPrinterForFax
lea rcx, [rbp + 7]
call fcn.14000b870
nop
mov r9, rbx
lea r8, str.lpszPrinter___s
mov edx, 1
lea rcx, [rbp + 7]
call fcn.14000ba50
call fcn.14004cde4
mov rcx, rax
xor edi, edi
mov eax, edi
test rcx, rcx
setne al
test eax, eax
jne 0x14004013f
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x6f], rax
call fcn.14004cde4
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
jne 0x14004016c
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x77], rax
call fcn.14004cde4
mov rcx, rax
mov eax, edi
test rcx, rcx
setne al
test eax, eax
jne 0x140040199
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x7f], rax
call fcn.140050920
mov r13, qword [rax + 8]
mov rdx, rbx
lea rcx, [rbp - 0x51]
call fcn.140001110
nop
mov rax, qword [rbp - 0x51]
mov r14d, dword [rax - 0x10]
mov rdx, rbx
lea rcx, [rbp - 0x59]
call fcn.140001110
nop
mov edx, 0x5c
mov rcx, qword [rbp - 0x59]
call fcn.14018f7cc
or esi, 0xffffffff
test rax, rax
jne 0x1400401ec
mov eax, esi
jmp 0x1400401f3
sub rax, qword [rbp - 0x59]
sar rax, 1
lea r8d, [rax + 1]
lea rdx, [rbp - 1]
lea rcx, [rbp - 0x59]
call fcn.140016680
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp - 0x59]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140040261
cmp dword [rbx + 0x10], 0
jl 0x140040253
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140040253
call fcn.140001620
mov r12, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x140040248
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [r12 + 0x18]
mov qword [rbp - 0x59], rax
jmp 0x140040261
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp - 0x59]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 1]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004027f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
call fcn.14004cde4
mov rcx, rax
test rax, rax
setne dil
test edi, edi
jne 0x14004029d
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x49], rax
mov rcx, qword [rbp - 0x59]
add rcx, 0xffffffffffffffe8
call fcn.140001620
add rax, 0x18
mov qword [rbp - 0x31], rax
lea rdx, [rbp - 0x49]
lea rcx, [rbp - 0x31]
call fcn.14001b680
lea rdx, str.NONE
mov rcx, qword [rbp - 0x49]
call fcn.14018ea5c
test eax, eax
je 0x14004057c
lea rdx, [r13 + 0x1d8]
lea r8, str._FAX
lea rcx, [rbp + 0x17]
call fcn.140006ef0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x77]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140040358
cmp dword [rbx + 0x10], 0
jl 0x14004034a
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14004034a
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x140040340
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 0x140040358
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x77]
call fcn.1400014d0
nop
mov rdx, qword [rbp + 0x17]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040376
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8d, [r14 - 1]
lea rdx, [rbp - 0x41]
lea rcx, [rbp - 0x51]
call fcn.1400166b0
nop
mov r8, rax
lea rdx, [rbp + 0x77]
lea rcx, [rbp - 0x21]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x6f]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400403f4
cmp dword [rbx + 0x10], 0
jl 0x1400403e6
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400403e6
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x1400403dc
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 + 0x6f], rax
jmp 0x1400403f4
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x6f]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040413
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x41]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040431
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 0x5c
mov rbx, qword [rbp + 0x6f]
mov rcx, rbx
call fcn.14018f7cc
test rax, rax
jne 0x14004044b
mov eax, esi
jmp 0x140040451
sub rax, rbx
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x11]
lea rcx, [rbp + 0x6f]
call fcn.140016750
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x7f]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400404bd
cmp dword [rbx + 0x10], 0
jl 0x1400404af
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400404af
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x1400404a5
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 0x1400404bd
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x7f]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x11]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400404db
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbp + 0x6f]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400184c0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp + 0x7f]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x140040526
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp + 0x77]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x140040584
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 0x140040584
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
jmp 0x140040584
mov rdi, qword [rbp + 0x6f]
mov rbx, qword [rbp + 0x77]
mov rdx, qword [r13 + 0x1d8]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400405e2
cmp dword [rbx + 0x10], 0
jl 0x1400405d5
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400405d5
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x1400405c7
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
mov rdi, qword [rbp + 0x6f]
jmp 0x1400405e2
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x77]
call fcn.1400014d0
lea r8d, [r14 - 1]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x51]
call fcn.1400166b0
nop
mov r8, rax
lea rdx, [r13 + 0x1d8]
lea rcx, [rbp - 0x39]
call fcn.1400167f0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14004065f
cmp dword [rdi + 0x10], 0
jl 0x140040651
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140040651
call fcn.140001620
mov rbx, rax
mov eax, esi
lock xadd dword [rdi + 0x10], eax
dec eax
test eax, eax
jg 0x140040647
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rbp + 0x6f], rax
jmp 0x14004065f
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x6f]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x39]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14004067e
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 0x14004069c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, 0x5c
mov rbx, qword [rbp + 0x6f]
mov rcx, rbx
call fcn.14018f7cc
test rax, rax
jne 0x1400406b6
mov eax, esi
jmp 0x1400406bc
sub rax, rbx
sar rax, 1
mov r8d, eax
lea rdx, [rbp - 0x19]
lea rcx, [rbp + 0x6f]
call fcn.140016750
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rbx, qword [rbp + 0x7f]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140040728
cmp dword [rbx + 0x10], 0
jl 0x14004071a
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14004071a
call fcn.140001620
mov rdi, rax
mov eax, esi
lock xadd dword [rbx + 0x10], eax
dec eax
test eax, eax
jg 0x140040710
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 0x140040728
mov r8d, dword [rdx - 0x10]
lea rcx, [rbp + 0x7f]
call fcn.1400014d0
nop
mov rdx, qword [rbp - 0x19]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040746
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rbp + 0x6f]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.1400184c0
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp + 0x7f]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x140040791
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp + 0x77]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.140018670
cmp eax, 1
jne 0x1400407e5
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 0x1400407e5
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rbp - 0x49]
lea rcx, [rbx - 0x18]
call fcn.140001620
add rax, 0x18
mov qword [rbp - 9], rax
lea rcx, [rbp - 9]
call fcn.14001c3a0
mov r9d, 1
lea r8, str.return___08x
lea edx, [r9 + 1]
lea rcx, [rbp + 7]
call fcn.14000ba50
nop
mov eax, esi
lock xadd dword [rbx - 8], eax
dec eax
test eax, eax
jg 0x14004083a
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 - 0x59]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040859
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x51]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040878
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x7f]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140040897
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 0x1400408b6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp + 0x6f]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400408d4
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
lea rcx, [rbp + 7]
call fcn.14000ba00
mov eax, 1
add rsp, 0xa0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret