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

Disassembly:
push rbp
push r14
lea rbp, [rsp - 0x198]
sub rsp, 0x298
mov rax, qword [0x1401f41c0]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov r14, rcx
call fcn.140065ba0
mov rcx, qword [r14 + 0x10]
lea r8, [rsp + 0x50]
xor eax, eax
xorps xmm0, xmm0
mov dword [rsp + 0x70], eax
mov r9d, 0x24
lea rax, [rsp + 0x30]
xor edx, edx
mov qword [rsp + 0x20], rax
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x14006609a
mov eax, dword [rsp + 0x54]
dec eax
test eax, 0xfffffffd
jne 0x140066080
mov qword [rsp + 0x2b8], rbx
mov qword [rsp + 0x2c8], rdi
mov qword [rsp + 0x290], r15
call qword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [rsp + 0x54], 3
mov r15d, 0x2710
mov ebx, dword [rsp + 0x64]
mov edi, eax
jne 0x140065f70
nop
mov eax, 0xcccccccd
mul dword [rsp + 0x68]
shr edx, 3
cmp edx, 0x3e8
jae 0x140065f0b
mov edx, 0x3e8
jmp 0x140065f12
cmp edx, r15d
cmova edx, r15d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [r14 + 0x10]
lea rax, [rsp + 0x30]
mov r9d, 0x24
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x140066166
cmp dword [rsp + 0x64], ebx
jbe 0x140065f57
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rsp + 0x64]
mov edi, eax
jmp 0x140065f69
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, dword [rsp + 0x68]
ja 0x140066068
cmp dword [rsp + 0x54], 3
je 0x140065ef0
mov rcx, qword [r14 + 0x10]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_StartServiceA]
xor edx, edx
test eax, eax
je 0x140066101
mov rcx, qword [r14 + 0x10]
lea rax, [rsp + 0x30]
mov r9d, 0x24
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x1400661cd
mov qword [rsp + 0x2c0], rsi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rsp + 0x54]
mov esi, eax
mov edi, dword [rsp + 0x64]
cmp ebx, 2
jne 0x14006604f
mov eax, 0xcccccccd
mul dword [rsp + 0x68]
shr edx, 3
cmp edx, 0x3e8
jae 0x140065fec
mov edx, 0x3e8
jmp 0x140065ff3
cmp edx, r15d
cmova edx, r15d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [r14 + 0x10]
lea rax, [rsp + 0x30]
mov r9d, 0x24
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x140066296
cmp dword [rsp + 0x64], edi
jbe 0x140066038
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [rsp + 0x64]
mov esi, eax
jmp 0x140066046
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, dword [rsp + 0x68]
ja 0x14006605a
mov ebx, dword [rsp + 0x54]
cmp ebx, 2
je 0x140065fd1
cmp ebx, 4
jne 0x140066234
jmp 0x140066060
mov ebx, dword [rsp + 0x54]
jmp 0x14006604f
mov rsi, qword [rsp + 0x2c0]
mov rdi, qword [rsp + 0x2c8]
mov rbx, qword [rsp + 0x2b8]
mov r15, qword [rsp + 0x290]
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.14016ab50
add rsp, 0x298
pop r14
pop rbp
ret
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x1401a4670]
mov edx, 0x100
lea r8, [0x1401a4660]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3
mov r8d, 0xff
mov byte [rbp - 0x80], 0
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x1401a46a8]
mov edx, 0x100
lea r8, [0x1401a4660]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x1401a4670]
mov edx, 0x100
lea r8, [0x1401a4660]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x1401a4670]
mov edx, 0x100
lea r8, [0x1401a4660]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0x1ff
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
lea rcx, [r14 + 0x18]
call fcn.1400405e0
mov r9, rax
lea r8, [0x1401a46c0]
mov eax, dword [rsp + 0x5c]
lea rcx, [rbp - 0x80]
mov dword [rsp + 0x28], eax
mov edx, 0x200
mov dword [rsp + 0x20], ebx
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140191ec0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x1401a4670]
mov edx, 0x100
lea r8, [0x1401a4660]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140040fd0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.140038230
lea rdx, [0x1401ec5c8]
lea rcx, [rsp + 0x38]
call fcn.14016bd70
int3