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

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x20], rbp
mov rbp, r9
mov r12, r8
mov rbx, rdx
mov rsi, rcx
and qword [rax - 0x40], 0
lea rcx, [rax - 0x48]
call fcn.100020360
nop
lea rcx, [rsp + 0x90]
call fcn.100020360
nop
test r12, r12
je 0x1000446dc
test rbp, rbp
je 0x1000446dc
and qword [r12], 0
mov r13d, 0x80000000
mov r8d, r13d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r14, rax
test rax, rax
jne 0x100044492
xor edi, edi
jmp 0x100044694
mov rax, qword [rsi]
mov edi, 1
cmp dword [rax - 8], edi
jle 0x1000444aa
mov edx, dword [rax - 0x10]
mov rcx, rsi
call fcn.10002009c
mov r8d, r13d
mov rdx, qword [rsi]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov r13, rax
test rax, rax
jne 0x10004467a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x424
jne 0x100044676
mov dword [rbx], edi
lea rdx, [0x100010400]
lea rcx, [rsp + 0x40]
call fcn.100020428
nop
lea r8, [rsp + 0x30]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.100032a84
nop
lea rcx, [rsp + 0x40]
call fcn.10002006c
lea rdx, [0x100010330]
lea rcx, [rsp + 0x40]
call fcn.100020428
nop
lea r8, [rsp + 0x90]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.100032a84
nop
lea rcx, [rsp + 0x40]
call fcn.10002006c
mov rbx, qword [rsp + 0x90]
cmp dword [rbx - 8], edi
jle 0x100044560
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x90]
call fcn.10002009c
mov rbx, qword [rsp + 0x90]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x10004458e
xor edi, edi
jmp 0x10004467d
mov qword [rsp + 0x28], rbp
and qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x10000e598]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x1000445bc
xor edi, edi
jmp 0x10004467d
mov ecx, dword [rbp]
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__
mov qword [r12], rax
test rax, rax
jne 0x1000445d4
xor edi, edi
jmp 0x10004467d
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x10000e598]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x1000445fe
xor edi, edi
jmp 0x10004467d
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
and qword [rsp + 0x38], 0
cmp dword [rbx - 8], edi
jle 0x10004462c
mov edx, dword [rbx - 0x10]
lea rcx, [rsp + 0x90]
call fcn.10002009c
mov rbx, qword [rsp + 0x90]
mov rdx, rbx
mov rbx, 0xffffffff80000002
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
test eax, eax
je 0x100044647
xor edi, edi
jmp 0x10004467d
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 8], edi
jle 0x100044663
mov edx, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.10002009c
mov rdx, qword [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
xor edi, edi
test eax, eax
sete dil
jmp 0x10004467d
xor edi, edi
jmp 0x10004467d
and dword [rbx], 0
test r13, r13
je 0x10004468b
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1000446a4
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
jne 0x1000446b7
mov rcx, qword [r12]
test rcx, rcx
je 0x1000446b7
call sub.msvcrt.dll_void___cdecl_operator_delete_void____ptr64_
nop
lea rcx, [rsp + 0x90]
call fcn.10002006c
nop
lea rcx, [rsp + 0x30]
call fcn.10002006c
nop
mov rcx, rsi
call fcn.10002006c
mov eax, edi
jmp 0x1000446ff
lea rcx, [rsp + 0x90]
call fcn.10002006c
nop
lea rcx, [rsp + 0x30]
call fcn.10002006c
nop
mov rcx, rsi
call fcn.10002006c
xor eax, eax
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret