Function at 0x1800029c0
Capabilities:
Delete service
Query service status
Stop service

Disassembly:
mov qword [rsp + 0x20], rbp
push rdi
sub rsp, 0x50
mov rax, qword [0x180045020]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor edx, edx
mov edi, ecx
xor ecx, ecx
lea r8d, [rdx + 0x26]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rbp, rax
test rax, rax
je 0x180002bd4
mov r8d, 0x10024
mov qword [rsp + 0x70], rsi
lea rdx, str.VBoxDrv
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
test rax, rax
je 0x180002b8a
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rsi
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], eax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov r8d, dword [rsp + 0x24]
mov ecx, edi
cmp r8d, 1
jne 0x180002a5d
lea rdx, str.VBoxDrv:_The_service_old_service_was_already_stopped
call fcn.1800040a0
jmp 0x180002b23
lea rdx, str.VBoxDrv:_Stopping_the_service__state__u_
call fcn.1800040a0
lea r8, [rsp + 0x20]
mov edx, 1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
je 0x180002aea
mov r8d, dword [rsp + 0x24]
mov qword [rsp + 0x68], rbx
mov ebx, MsiProvideComponentW
cmp r8d, 3
jne 0x180002ac1
mov eax, ebx
dec ebx
test eax, eax
jle 0x180002ac1
mov ecx, MsiProvideComponentW
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov r8d, dword [rsp + 0x24]
cmp r8d, 3
je 0x180002a95
mov rbx, qword [rsp + 0x68]
mov ecx, edi
cmp r8d, 1
jne 0x180002adc
lea rdx, str.VBoxDrv:_Stopped_service
call fcn.1800040a0
jmp 0x180002b23
lea rdx, str.VBoxDrv:_Failed_to_stop_the_service__status:__u
call fcn.1800040a0
jmp 0x180002b23
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, dword [rsp + 0x24]
cmp r9d, 3
jne 0x180002b12
cmp eax, 0x425
jne 0x180002b12
lea rdx, str.VBoxDrv:_Failed_to_stop_the_service:_stop_pending__not_accepting_control_messages
mov ecx, edi
call fcn.1800040a0
jmp 0x180002b23
mov r8d, eax
lea rdx, str.VBoxDrv:_Failed_to_stop_the_service:_dwErr_u_status_u
mov ecx, edi
call fcn.1800040a0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
je 0x180002b5a
lea rdx, str.VBoxDrv:_Successfully_delete_service
mov ecx, edi
call fcn.1800040a0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x70]
jmp 0x180002beb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.VBoxDrv:_Failed_to_delete_the_service:__u
mov ecx, edi
mov r8d, eax
call fcn.1800040a0
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x70]
jmp 0x180002beb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, edi
cmp eax, 0x424
jne 0x180002bb5
lea rdx, str.VBoxDrv:_Nothing_to_do__the_old_service_does_not_exist
call fcn.1800040a0
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x70]
jmp 0x180002beb
mov r8d, eax
lea rdx, str.VBoxDrv:_Failed_to_open_the_service:__u
call fcn.1800040a0
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rsi, qword [rsp + 0x70]
jmp 0x180002beb
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.VBoxDrv:_Failed_to_open_service_manager___u_.
mov ecx, edi
mov r8d, eax
call fcn.1800040a0
xor eax, eax
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180001140
mov rbp, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret