Function at 0x140009620
Capabilities:
Delete service
Query or enumerate registry value
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x9f0
mov rax, qword [0x14005bed0]
xor rax, rsp
mov qword [rsp + 0x9e0], rax
mov rbx, rcx
xor edx, edx
mov r8d, 0xf003f
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rsi, rax
test rax, rax
jne 0x140009673
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.OpenSCManager:__d
mov edx, eax
call fcn.140008040
jmp 0x140009877
mov r8d, 0xf01ff
mov rdx, rbx
mov rcx, rax
mov qword [rsp + 0xa08], rdi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
jne 0x1400096ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.OpenService:__d
mov edx, eax
call fcn.140008040
jmp 0x14000986f
lea r9, [rsp + 0x30]
lea rdx, [rsp + 0x1e0]
mov r8d, 0x800
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
jne 0x1400096e7
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.QueryServiceConfig_tcpip_:__d
mov edx, eax
call fcn.140008040
jmp 0x14000986f
mov ebx, dword [rsp + 0x200]
lea r8, [rsp + 0x38]
lea rdx, str.SYSTEMCurrentControlSetControlGroupOrderList
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
je 0x14000971e
lea rcx, str.RegOpenKey:__d
mov edx, eax
call fcn.140008040
jmp 0x14000986f
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, str.PNP_TDI
xor r8d, r8d
mov dword [rsp + 0x30], 0x190
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x14000976b
lea rcx, str.RegQueryValueEx:__d
mov edx, eax
call fcn.140008040
jmp 0x14000986f
mov ecx, dword [rsp + 0x30]
mov r9d, 1
shr ecx, 2
mov dword [rsp + 0x30], ecx
cmp ecx, r9d
jbe 0x1400097c3
lea rax, [rsp + 0x54]
cmp dword [rax], ebx
je 0x140009798
inc r9d
add rax, 4
cmp r9d, ecx
jb 0x140009786
jmp 0x1400097c3
lea eax, [r9 + 1]
sub ecx, r9d
lea r8d, [rcx - 1]
lea rdx, [rsp + rax*4 + 0x50]
mov eax, r9d
lea rcx, [rsp + rax*4 + 0x50]
shl r8, 2
call fcn.14001cd80
mov ecx, dword [rsp + 0x30]
dec ecx
mov dword [rsp + 0x30], ecx
mov r9d, dword [rsp + 0x40]
lea eax, [rcx - 1]
lea rdx, str.PNP_TDI
mov dword [rsp + 0x50], eax
lea eax, [rcx*4]
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x14000980d
lea rcx, str.RegSetValueEx:__d
mov edx, eax
call fcn.140008040
jmp 0x14000986f
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x140009851
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x430
je 0x140009848
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.FAILED_DeleteService:__d
mov edx, eax
call fcn.140008040
jmp 0x14000985d
lea rcx, str.Deleting_TDI_driver:_already_marked_for_deletion___reboot__
jmp 0x140009858
lea rcx, str.success
call fcn.140008040
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rdi, qword [rsp + 0xa08]
mov rcx, qword [rsp + 0x9e0]
xor rcx, rsp
call fcn.14001d550
mov rbx, qword [rsp + 0xa10]
add rsp, 0x9f0
pop rsi
ret