Function at 0x140070f20
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 [0x1401c5538]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov r14, rcx
call fcn.140070c80
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 0x140071179
mov eax, dword [rsp + 0x54]
dec eax
test eax, 0xfffffffd
jne 0x14007115f
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 0x140071050
nop
mov eax, 0xcccccccd
mul dword [rsp + 0x68]
shr edx, 3
cmp edx, 0x3e8
jae 0x140070feb
mov edx, 0x3e8
jmp 0x140070ff2
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 0x140071245
cmp dword [rsp + 0x64], ebx
jbe 0x140071037
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, dword [rsp + 0x64]
mov edi, eax
jmp 0x140071049
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, dword [rsp + 0x68]
ja 0x140071147
cmp dword [rsp + 0x54], 3
je 0x140070fd0
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 0x1400711e0
mov rcx, qword [r14 + 0x10]
lea rax, [rsp + 0x30]
lea r9d, [rdx + 0x24]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x1400712ac
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 0x14007112e
nop
mov eax, 0xcccccccd
mul dword [rsp + 0x68]
shr edx, 3
cmp edx, 0x3e8
jae 0x1400710cb
mov edx, 0x3e8
jmp 0x1400710d2
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 0x140071375
cmp dword [rsp + 0x64], edi
jbe 0x140071117
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [rsp + 0x64]
mov esi, eax
jmp 0x140071125
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, esi
cmp eax, dword [rsp + 0x68]
ja 0x140071139
mov ebx, dword [rsp + 0x54]
cmp ebx, 2
je 0x1400710b0
cmp ebx, 4
jne 0x140071313
jmp 0x14007113f
mov ebx, dword [rsp + 0x54]
jmp 0x14007112e
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.1401453a0
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.140147800
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x14017f810]
mov edx, 0x100
lea r8, [0x14017f800]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3
mov r8d, 0xff
mov byte [rbp - 0x80], 0
lea rcx, [rbp - 0x7f]
call fcn.140147800
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x14017f848]
mov edx, 0x100
lea r8, [0x14017f800]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140147800
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x14017f810]
mov edx, 0x100
lea r8, [0x14017f800]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140147800
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x14017f810]
mov edx, 0x100
lea r8, [0x14017f800]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0x1ff
lea rcx, [rbp - 0x7f]
call fcn.140147800
lea rcx, [r14 + 0x18]
call fcn.1400707e0
mov r9, rax
lea r8, [0x14017f860]
mov eax, dword [rsp + 0x5c]
lea rcx, [rbp - 0x80]
mov dword [rsp + 0x28], eax
mov edx, 0x200
mov dword [rsp + 0x20], ebx
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3
xor edx, edx
mov byte [rbp - 0x80], 0
mov r8d, 0xff
lea rcx, [rbp - 0x7f]
call fcn.140147800
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x28], eax
lea r9, str.WinScCtrl::start
lea rax, [0x14017f810]
mov edx, 0x100
lea r8, [0x14017f800]
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x80]
call fcn.140017490
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x38]
call fcn.14001bb20
lea rdx, [0x1401bdee0]
lea rcx, [rsp + 0x38]
call fcn.1401463c0
int3