Function at 0x10001b460
Capabilities:
Check for time delay via gettickcount
Query service status
Start service

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r14
sub rsp, 0x60
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
xor ebx, ebx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r12, rax
test rax, rax
jne 0x10001b4c1
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [0x100013520]
lea rcx, [0x1000144d0]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov r8d, ebx
call fcn.10001e3a8
jmp 0x10001b7dc
lea rdx, [0x100013520]
mov r8d, 0xf01ff
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rdi, rax
test rax, rax
jne 0x10001b50e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, [0x100013520]
lea rcx, [0x100014510]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov r8d, ebx
call fcn.10001e3a8
jmp 0x10001b7c5
lea rax, [rsp + 0x88]
lea r8, [rsp + 0x30]
mov r9d, 0x24
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x10001b557
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x100014580]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov edx, ebx
jmp 0x10001b7c0
cmp dword [rsp + 0x34], 1
je 0x10001b576
cmp dword [rsp + 0x34], 3
je 0x10001b576
lea rcx, [0x100014600]
call fcn.10001e3a8
jmp 0x10001b7c5
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [rsp + 0x44]
mov r14d, 0x2710
mov ebp, eax
jmp 0x10001b5fd
mov eax, 0xcccccccd
mul dword [rsp + 0x48]
shr edx, 3
cmp edx, 0x3e8
jae 0x10001b5a5
mov edx, 0x3e8
jmp 0x10001b5ac
cmp edx, r14d
cmova edx, r14d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea r11, [rsp + 0x88]
lea r8, [rsp + 0x30]
mov r9d, 0x24
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x10001b649
cmp dword [rsp + 0x44], esi
jbe 0x10001b5ef
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [rsp + 0x44]
mov ebp, eax
jmp 0x10001b5fd
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebp
cmp eax, dword [rsp + 0x48]
ja 0x10001b638
cmp dword [rsp + 0x34], 3
je 0x10001b58a
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x10001b66b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x100014710]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov edx, ebx
jmp 0x10001b7c0
mov ebx, 0x800705b4
lea rcx, [0x1000146c0]
jmp 0x10001b56c
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x100014670]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov edx, ebx
jmp 0x10001b7c0
lea rcx, [0x100014748]
call fcn.10001e3a8
lea r11, [rsp + 0x88]
lea r8, [rsp + 0x30]
mov r9d, 0x24
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x10001b649
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [rsp + 0x44]
mov ebp, eax
jmp 0x10001b72b
mov eax, 0xcccccccd
mul dword [rsp + 0x48]
shr edx, 3
cmp edx, 0x3e8
jae 0x10001b6c7
mov edx, 0x3e8
jmp 0x10001b6ce
cmp edx, r14d
cmova edx, r14d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea r11, [rsp + 0x88]
lea r8, [rsp + 0x30]
mov r9d, 0x24
xor edx, edx
mov rcx, rdi
mov qword [rsp + 0x20], r11
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x10001b738
cmp dword [rsp + 0x44], esi
jbe 0x10001b71d
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [rsp + 0x44]
lea rcx, [0x10001407c]
mov ebp, eax
call fcn.10001e3a8
jmp 0x10001b72b
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebp
cmp eax, dword [rsp + 0x48]
ja 0x10001b75a
cmp dword [rsp + 0x34], 2
je 0x10001b6ac
jmp 0x10001b75a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x100014780]
movzx ebx, ax
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov edx, ebx
call fcn.10001e3a8
lea rcx, [0x1000147cc]
call fcn.10001e3a8
cmp dword [rsp + 0x34], 4
jne 0x10001b779
lea rcx, [0x1000147d0]
jmp 0x10001b56c
lea rcx, [0x100014810]
call fcn.10001e3a8
mov edx, dword [rsp + 0x34]
lea rcx, [0x100014840]
call fcn.10001e3a8
mov edx, dword [rsp + 0x3c]
lea rcx, [0x100014870]
call fcn.10001e3a8
mov edx, dword [rsp + 0x44]
lea rcx, [0x100014898]
call fcn.10001e3a8
mov edx, dword [rsp + 0x48]
lea rcx, [0x1000148c0]
call fcn.10001e3a8
test rdi, rdi
je 0x10001b7d3
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
lea r11, [rsp + 0x60]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r12
pop rdi
ret