Function at 0x1400023c0
Capabilities:
Delete registry key
Delete registry value
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rbx, rdx
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x58]
mov esi, ecx
mov rcx, qword [rbx + 0x10]
call sym.parse_registry_key
mov r10d, 1
test eax, eax
je 0x140002482
cmp esi, 3
jle 0x140002700
mov dword [rsp + 0x48], 0
mov edi, 3
xor r13d, r13d
xor r12d, r12d
mov dword [rsp + 0x4c], 0
mov rbp, qword [sym.imp.kernel32.dll_lstrcmpiW]
mov qword [rsp + 0x40], 0
movsxd rax, edi
mov r15, qword [rbx + rax*8]
movzx eax, word [r15]
and eax, 0xfffffffd
cmp ax, 0x2d
jne 0x14000245b
lea r14, [r15 + 2]
lea rdx, [0x140009110]
mov rcx, r14
call rbp
test eax, eax
jne 0x140002618
test r12d, r12d
je 0x1400024a0
mov ecx, 0x69
call sym.output_message
mov rcx, qword [rbx + 8]
call qword [sym.imp.ucrtbase.dll__wcsupr]
mov ecx, 0x6a
mov rdx, rax
call sym.output_message
mov r10d, 1
mov eax, r10d
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r12d, 1
inc edi
cmp esi, edi
jg 0x14000242a
cmp qword [rsp + 0x40], 0
mov eax, r12d
setne dil
or al, r13b
je 0x1400024c7
test dil, dil
jne 0x14000245b
mov esi, r13d
and esi, 1
cmp dword [rsp + 0x48], 0x300
je 0x14000245b
test r12b, r13b
jne 0x14000245b
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sym.get_long_key
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
mov r15, rax
mov eax, dword [rsp + 0x4c]
test eax, eax
je 0x14000282d
mov r9d, dword [rsp + 0x48]
lea rax, [rsp + 0x68]
xor r8d, r8d
mov rdx, rbp
mov qword [rsp + 0x20], rax
mov rcx, rbx
or r9d, 0x2001b
call qword [sym.imp.advapi32.dll_RegOpenKeyExW]
mov r10d, eax
test eax, eax
jne 0x14000286c
cmp qword [rsp + 0x40], 0
mov rcx, qword [rsp + 0x68]
jne 0x1400027e9
test r13d, r13d
jne 0x1400027e9
test r12d, r12d
je 0x140002893
mov dword [section..data], 0
mov dword [rsp + 0x48], r10d
mov ecx, 0x200
mov ebx, 0x100
lea rdi, [rsp + 0x54]
call qword [sym.imp.ucrtbase.dll_malloc]
mov rsi, qword [sym.imp.advapi32.dll_RegEnumValueW]
mov r10d, dword [rsp + 0x48]
mov rbp, qword [sym.imp.ucrtbase.dll_realloc]
mov r12, qword [sym.imp.advapi32.dll_RegDeleteValueW]
mov r13, rax
nop dword [rax]
mov dword [rsp + 0x48], r10d
xor edx, edx
mov rcx, qword [rsp + 0x68]
mov r9, rdi
mov dword [rsp + 0x54], ebx
mov r8, r13
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
call rsi
mov r10d, dword [rsp + 0x48]
test eax, eax
je 0x140002769
mov dword [rsp + 0x48], r10d
cmp eax, 0xea
jne 0x1400028ed
lea edx, [rbx + rbx]
mov rcx, r13
mov rbx, rdx
add rdx, rdx
call rbp
mov r10d, dword [rsp + 0x48]
mov r13, rax
jmp 0x1400025a0
lea rdx, [0x140009116]
mov rcx, r14
call rbp
test eax, eax
jne 0x140002640
test r13d, r13d
jne 0x14000245b
mov r13d, 1
jmp 0x1400024a6
lea rdx, [0x14000911c]
mov rcx, r14
call rbp
test eax, eax
jne 0x140002670
mov eax, dword [rsp + 0x48]
test ah, 2
jne 0x14000245b
or ah, 2
mov dword [rsp + 0x48], eax
jmp 0x1400024a6
lea rdx, [0x14000912a]
mov rcx, r14
call rbp
test eax, eax
jne 0x1400026a0
mov eax, dword [rsp + 0x48]
test ah, 1
jne 0x14000245b
or ah, 1
mov dword [rsp + 0x48], eax
jmp 0x1400024a6
movzx ecx, word [r15 + 2]
test cx, cx
je 0x14000245b
cmp word [r15 + 4], 0
jne 0x14000245b
call qword [sym.imp.ucrtbase.dll_towlower]
cmp ax, 0x66
je 0x1400027d0
cmp ax, 0x76
jne 0x14000245b
cmp qword [rsp + 0x40], 0
jne 0x14000245b
inc edi
movsxd rax, edi
mov rax, qword [rbx + rax*8]
mov qword [rsp + 0x40], rax
test rax, rax
jne 0x1400024a6
jmp 0x14000245b
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
xor edi, edi
xor r13d, r13d
xor esi, esi
xor r12d, r12d
call sym.get_long_key
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
mov r15, rax
mov rdx, r15
mov ecx, 0x12e
call sym.ask_confirm
mov r10d, eax
test r10d, r10d
jne 0x140002508
mov ecx, 0x6d
mov dword [rsp + 0x48], r10d
call sym.output_message
mov r10d, dword [rsp + 0x48]
jmp 0x140002482
mov rcx, qword [rsp + 0x68]
mov rdx, r13
call r12
mov r10d, dword [rsp + 0x48]
test eax, eax
mov r14d, eax
je 0x1400025a0
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov rdx, r15
mov ecx, 0x12f
call sym.output_message
cmp r14d, 2
jne 0x1400028b9
cmp dword [section..data], 0
je 0x14000295f
mov ecx, 0x6e
call sym.output_message
jmp 0x14000247c
mov edx, dword [rsp + 0x4c]
test edx, edx
jne 0x14000245b
mov dword [rsp + 0x4c], 1
jmp 0x1400024a6
mov dword [section..data], 0
test r12d, r12d
jne 0x140002565
test sil, sil
jne 0x1400028c8
test dil, dil
jne 0x1400028c8
mov dword [rsp + 0x48], r10d
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov ecx, 0x6c
call sym.output_message
mov r10d, dword [rsp + 0x48]
jmp 0x140002482
test dil, dil
jne 0x140002837
test sil, sil
je 0x14000284e
mov rdx, qword [rsp + 0x40]
mov ecx, 0x12c
call sym.ask_confirm
mov r10d, eax
jmp 0x140002747
test r12d, r12d
je 0x140002737
mov rdx, r15
mov ecx, 0x12d
call sym.ask_confirm
mov r10d, eax
jmp 0x140002747
cmp eax, 2
jne 0x1400028b9
cmp dword [section..data], 0
je 0x140002905
mov ecx, 0x6e
call sym.output_message
mov r10d, 1
jmp 0x140002482
xor edx, edx
call qword [sym.imp.advapi32.dll_RegDeleteTreeW]
mov dword [rsp + 0x48], eax
test eax, eax
je 0x14000291a
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov r10d, dword [rsp + 0x48]
cmp r10d, 2
je 0x140002871
mov ecx, 0x6b
call sym.output_message
jmp 0x14000247c
mov dword [rsp + 0x48], r10d
mov rdx, qword [rsp + 0x40]
call qword [sym.imp.advapi32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x68]
mov ebx, eax
test eax, eax
jne 0x14000294b
mov r10d, dword [rsp + 0x48]
jmp 0x14000280e
mov rcx, r13
call qword [sym.imp.ucrtbase.dll_free]
mov rcx, qword [rsp + 0x68]
mov r10d, dword [rsp + 0x48]
jmp 0x14000280e
mov ecx, 0x6f
call sym.output_message
mov r10d, 1
jmp 0x140002482
lea rdx, [0x140009138]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.advapi32.dll_RegDeleteKeyW]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.advapi32.dll_RegCloseKey]
mov ecx, 0x6c
call sym.output_message
mov r10d, dword [rsp + 0x48]
jmp 0x140002482
call qword [sym.imp.advapi32.dll_RegCloseKey]
cmp ebx, 2
je 0x140002871
jmp 0x1400028b9
mov ecx, 0x6f
call sym.output_message
jmp 0x14000247c