Function at 0x140001f00
Capabilities:
Create service
Delete file
Delete service
Get common file path
Modify service
Start service

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0xb0
mov rsi, r8
mov rbp, rdx
mov r14d, ecx
lea rdx, str.ServicesActive
mov r8d, 3
xor ecx, ecx
mov rbx, r9
xor r15b, r15b
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rdi, rax
test rax, rax
je 0x14000219b
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov qword [rsp + 0x58], rbx
lea r8, [0x1400033a0]
mov r9d, eax
lea rcx, [0x140004230]
mov rax, qword [sym.imp.KERNEL32.dll_RtlAddFunctionTable]
mov edx, 0x104
mov qword [rsp + 0x50], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rax
mov rax, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov qword [rsp + 0x38], rax
lea rax, [0x140001dc0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], r14d
call qword [sym.imp.msvcrt.dll_swprintf_s]
movsd xmm0, qword [str.___]
lea rdx, [0x140004028]
movzx eax, word [0x140003280]
mov ecx, 0x104
movsd qword [0x140004020], xmm0
mov word [0x140004028], ax
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rcx, [0x140004018]
movsxd rbx, eax
call qword [sym.imp.ntdll.dll_RtlRandomEx]
mov edx, 0x100
lea rsi, [0x140004020]
sub rdx, rbx
lea r8, [0x1400033f0]
add rbx, 4
mov r9d, eax
lea rcx, [rsi + rbx*2]
call qword [sym.imp.msvcrt.dll_swprintf_s]
mov r8, rsi
lea rdx, [0x1400033f8]
mov ecx, 0x68
call fcn.140001a90
xor ebx, ebx
lea ebp, [rbx + 1]
test al, al
je 0x1400020fb
mov qword [rsp + 0x60], rbx
lea rdx, [0x140004230]
mov qword [rsp + 0x58], rbx
mov r9d, 0x10030
mov qword [rsp + 0x50], rbx
xor r8d, r8d
mov qword [rsp + 0x48], rbx
mov rcx, rdi
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], ebp
call qword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov qword [0x140004228], rax
test rax, rax
jne 0x1400020ed
mov r8d, 0x10012
lea rdx, [0x140004230]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov qword [rsp + 0x50], rbx
lea r8d, [rbx + 3]
mov qword [rsp + 0x48], rbx
mov r9d, 0xffffffff
mov qword [rsp + 0x40], rbx
mov edx, ebp
mov qword [rsp + 0x38], rbx
mov rcx, rax
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rsi
mov qword [0x140004228], rax
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov rax, qword [0x140004228]
test rax, rax
je 0x1400020fb
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, qword [0x140004228]
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
je 0x14000219b
mov rcx, qword [0x140004228]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
je 0x14000219b
mov qword [rsp + 0x78], rsi
mov rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bx
jne 0x140002136
add ax, ax
mov dword [rsp + 0x80], 0x30
mov word [rsp + 0x72], ax
lea rcx, [rsp + 0x80]
mov word [rsp + 0x70], ax
xorps xmm0, xmm0
lea rax, [rsp + 0x70]
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x98], ebx
movdqu xmmword [rsp + 0xa0], xmm0
call qword [sym.imp.ntdll.dll_NtDeleteFile]
test eax, eax
movzx ecx, r15b
cmove ecx, ebp
movzx eax, cl
jmp 0x14000219f
movzx eax, r15b
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret