Function at 0x140030e10
Capabilities:
Delete registry key

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x80
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rbx, rcx
call fcn.140069504
mov r13, qword [rax + 8]
call fcn.1400696cc
mov rcx, rax
xor r12d, r12d
mov edx, r12d
test rax, rax
setne dl
test edx, edx
jne 0x140030e5a
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
call fcn.1400696cc
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140030e89
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x20], rdi
or rbp, 0xffffffffffffffff
test rbx, rbx
je 0x140030ee7
test rbx, 0xffffffffffff0000
jne 0x140030ed3
movzx ebx, bx
mov ecx, ebx
call fcn.1400696b8
test rax, rax
je 0x140030eff
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.140003a40
mov rdi, qword [rsp + 0x20]
jmp 0x140030eff
xor eax, eax
mov rcx, rbp
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
jmp 0x140030eea
mov ecx, r12d
mov r8d, ecx
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140003c40
mov rdi, qword [rsp + 0x20]
mov r14d, dword [rdi - 0x10]
call fcn.1400696cc
mov r11, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140030f23
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xd0], rbx
call fcn.1400696cc
mov r11, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140030f58
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
mov rcx, r11
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0xc8], rsi
call fcn.1400696cc
mov rcx, rax
test rax, rax
setne r12b
test r12d, r12d
jne 0x140030f8c
mov ecx, 0x80004005
call fcn.140001000
int3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xd8], rax
lea r12, [rdi - 0x18]
mov rcx, qword [r12]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [r12 + 0x10], 0
jl 0x140030fd9
cmp rax, qword [r12]
jne 0x140030fd9
mov rdi, r12
lock add dword [r12 + 0x10], 1
mov rbx, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xc8]
jmp 0x14003101f
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r12 + 8]
call qword [rax]
mov rdi, rax
test rax, rax
jne 0x140030ff7
call fcn.1400019f0
int3
mov eax, dword [r12 + 8]
mov dword [rdi + 8], eax
mov eax, dword [r12 + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [r12 + 0x18]
add rdx, rdx
lea rcx, [rdi + 0x18]
call fcn.140080540
lea rax, [rdi + 0x18]
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x68]
call fcn.140027420
lea rdx, str.NONE
mov rcx, qword [rsp + 0x28]
call fcn.1400807e0
test eax, eax
je 0x140031328
lea rdx, [r13 + 0x5d8]
lea r8, [0x1400a81a8]
lea rcx, [rsp + 0x58]
call fcn.14000b5c0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400310c9
cmp dword [rbx + 0x10], 0
jl 0x1400310b7
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400310b7
call fcn.1400031e0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x1400310a9
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xd0], rax
jmp 0x1400310c9
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xd0]
call fcn.140003c40
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400310e9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r8d, [r14 - 1]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.140003710
nop
mov r8, rax
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0x48]
call fcn.140003ec0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0xc8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003117b
cmp dword [rdi + 0x10], 0
jl 0x140031169
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140031169
call fcn.1400031e0
mov rbx, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14003115b
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0xc8], rax
jmp 0x14003117b
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xc8]
call fcn.140003c40
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003119c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400311bc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dx, 0x5c
mov rdi, qword [rsp + 0xc8]
mov rcx, rdi
call fcn.140080890
test rax, rax
jne 0x1400311d9
mov eax, ebp
jmp 0x1400311df
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0xc8]
call fcn.1400038a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0xd8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14003125d
cmp dword [rdi + 0x10], 0
jl 0x14003124b
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14003124b
call fcn.1400031e0
mov rbx, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14003123d
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0xd8], rax
jmp 0x14003125d
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xd8]
call fcn.140003c40
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003127d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rsp + 0xc8]
mov rdx, rsi
mov rcx, 0xffffffff80000001
call fcn.1400222b0
mov rdx, rsi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdi, qword [rsp + 0xd8]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x1400312d0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rsp + 0xd0]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x140031328
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x140031328
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdx, qword [r13 + 0x5d8]
lea rcx, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x140031393
cmp dword [rbx + 0x10], 0
jl 0x140031382
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x140031382
call fcn.1400031e0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14003136c
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xd0], rax
mov rsi, qword [rsp + 0xc8]
jmp 0x140031393
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xd0]
call fcn.140003c40
lea r8d, [r14 - 1]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.140003710
nop
mov r8, rax
lea rdx, [r13 + 0x5d8]
lea rcx, [rsp + 0x40]
call fcn.140003ec0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x14003141c
cmp dword [rsi + 0x10], 0
jl 0x14003140a
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14003140a
call fcn.1400031e0
mov rdi, rax
mov ecx, ebp
lock xadd dword [rsi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x1400313fc
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0xc8], rax
jmp 0x14003141c
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xc8]
call fcn.140003c40
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003143d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003145d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dx, 0x5c
mov rdi, qword [rsp + 0xc8]
mov rcx, rdi
call fcn.140080890
test rax, rax
jne 0x14003147a
mov eax, ebp
jmp 0x140031480
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0xc8]
call fcn.1400038a0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0xd8]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x1400314fe
cmp dword [rdi + 0x10], 0
jl 0x1400314ec
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1400314ec
call fcn.1400031e0
mov rbx, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x1400314de
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0xd8], rax
jmp 0x1400314fe
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0xd8]
call fcn.140003c40
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003151e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0xc8]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400222b0
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rdi, qword [rsp + 0xd8]
mov rdx, rdi
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x140031571
mov rdx, rdi
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov rbx, qword [rsp + 0xd0]
mov rdx, rbx
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x1400315ca
mov rdx, rbx
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call fcn.1400223e0
cmp eax, 1
jne 0x1400315ca
lea rdx, str.SOFTWARECANON_
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
lea rdx, [rdi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400315e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003160a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003162e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, ebp
lock xadd dword [r12 + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003164c
mov rcx, qword [r12]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14003166a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
add rsp, 0x80
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret