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

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x690
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x6c8], rbx
mov rax, qword [0x14012ce40]
xor rax, rsp
mov qword [rsp + 0x680], rax
mov rsi, r8
mov qword [rsp + 0x50], r8
mov rdi, rdx
mov rbp, rcx
mov qword [rsp + 0x58], rcx
mov word [rsp + 0x480], 0
xor edx, edx
mov r8d, 0x1fe
lea rcx, [rsp + 0x482]
call fcn.1400b57e0
mov dword [rsp + 0x40], 0x100
mov word [rsp + 0x280], 0
xor edx, edx
mov r8d, 0x1fe
lea rcx, [rsp + 0x282]
call fcn.1400b57e0
mov word [rsp + 0x80], 0
xor edx, edx
mov r8d, 0x1fe
lea rcx, [rsp + 0x82]
call fcn.1400b57e0
lea r11, [rsp + 0x48]
mov qword [rsp + 0x20], r11
mov r9d, 0xf003f
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov edi, eax
test eax, eax
je 0x140048af5
cmp eax, 2
jne 0x140048aa7
xor eax, eax
jmp 0x140048e52
mov rbx, qword [0x1401370f0]
test rbx, rbx
jne 0x140048add
mov ecx, 0x310
call fcn.140084d88
mov qword [rsp + 0x50], rax
test rax, rax
je 0x140048ad4
mov rcx, rax
call fcn.140050830
mov rbx, rax
jmp 0x140048ad6
xor ebx, ebx
mov qword [0x1401370f0], rbx
lea r8, str.RegOpenKeyEx_Failed
mov edx, edi
mov rcx, rbx
call fcn.140050e40
mov eax, edi
jmp 0x140048e52
xor ebx, ebx
nop
nop
nop
mov dword [rsp + 0x40], 0x104
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x280]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
je 0x140048c86
test eax, eax
jne 0x140048c81
lea rdx, [rsp + 0x280]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov ebp, eax
test eax, eax
jne 0x140048ba9
mov dword [rsp + 0x40], 0x104
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x280]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp eax, 0x103
jne 0x140048b41
mov rbp, qword [rsp + 0x58]
jmp 0x140048c86
mov rsi, qword [0x1401370f0]
test rsi, rsi
jne 0x140048c63
mov ecx, 0x310
call fcn.140084d88
mov rsi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140048c59
call fcn.140087bd0
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
je 0x140048e2d
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsi], rax
mov word [rsi + 0x64], 0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [0x1400f5b5c]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x1400f5b5c]
mov rcx, rsi
call fcn.140006070
lea rcx, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x26c]
mov word [rcx], 0
lea r8, [0x1400f6478]
mov edx, 0x50
call fcn.1400b1b70
nop
jmp 0x140048c5c
mov rsi, rbx
mov qword [0x1401370f0], rsi
mov r8d, ebp
lea rdx, str.__RegDeleteValue_failed__err_d_
mov rcx, rsi
call fcn.140050c00
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x50]
jmp 0x140048c86
mov rbp, qword [rsp + 0x58]
mov dword [rsp + 0x60], 0x100
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x480]
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
mov edi, eax
cmp eax, 0x103
je 0x140048e43
test eax, eax
jne 0x140048e45
lea rax, [rsp + 0x480]
mov qword [rsp + 0x20], rax
mov r9, rsi
lea r8, [0x1400ecb00]
mov edx, 0x100
lea rcx, [rsp + 0x80]
call fcn.1400b1010
lea r8, [rsp + 0x80]
mov rdx, 0xffffffff80000002
mov rcx, rbp
call fcn.140048f20
mov rsi, qword [0x1401370f0]
test rsi, rsi
jne 0x140048dc9
mov ecx, 0x310
call fcn.140084d88
mov rsi, rax
mov qword [rsp + 0x68], rax
test rax, rax
je 0x140048dbf
call fcn.140087bd0
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
je 0x140048e38
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsi], rax
mov word [rsi + 0x64], di
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [0x1400f5b5c]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x1400f5b5c]
mov rcx, rsi
call fcn.140006070
lea rcx, [rsi + 8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x30]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsi + 0x26c]
mov word [rcx], 0
lea r8, [0x1400f6478]
mov edx, 0x50
call fcn.1400b1b70
nop
jmp 0x140048dc2
mov rsi, rbx
mov qword [0x1401370f0], rsi
lea r8, [rsp + 0x80]
lea rdx, str.CReg::DeleteSecureKeyFromHKLM__s_
mov rcx, rsi
call fcn.140050c00
lea r8, [rsp + 0x80]
mov rdx, 0xffffffff80000002
mov rcx, rbp
call fcn.140048f20
lea r8, [rsp + 0x80]
mov rdx, 0xffffffff80000002
mov rcx, rbp
call fcn.1400489d0
lea rdx, [rsp + 0x80]
mov rcx, 0xffffffff80000002
call qword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
mov rsi, qword [rsp + 0x50]
jmp 0x140048b00
mov ecx, 0x80004005
call fcn.140006300
nop
mov ecx, 0x80004005
call fcn.140006300
nop
mov edi, ebx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, edi
mov rcx, qword [rsp + 0x680]
xor rcx, rsp
call fcn.1400b09d0
mov rbx, qword [rsp + 0x6c8]
add rsp, 0x690
pop rdi
pop rsi
pop rbp
ret