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

Disassembly:
mov rax, rsp
push r12
push r14
push r15
sub rsp, 0x70
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1400490b0]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov r15d, 1
mov eax, dword [0x14004aef0]
test r15b, al
jne 0x140008262
or eax, r15d
mov dword [0x14004aef0], eax
lea rcx, [0x14004aeb8]
call fcn.1400022a0
lea rcx, [0x140035990]
call fcn.1400091d0
lea rdx, str.StartReadSpoolService___Begin
lea rcx, [0x14004aeb8]
call fcn.140003ee0
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov rsi, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x1400082a7
mov dword [rsp + 0x24], eax
lea rdx, [0x1400470e8]
lea rcx, [rsp + 0x24]
call fcn.14000a654
mov eax, dword [0x14004aef0]
test al, 1
jne 0x1400082d2
or eax, 1
mov dword [0x14004aef0], eax
lea rcx, [0x14004aeb8]
call fcn.1400022a0
lea rcx, [0x140035990]
call fcn.1400091d0
lea rdx, str.StartReadSpoolService___OpenSCManager
lea rcx, [0x14004aeb8]
call fcn.140003ee0
mov r8d, 0xf01ff
mov rdx, qword [str.NitroDriverReadSpool10]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov r14, rax
test rax, rax
jne 0x140008318
mov dword [rsp + 0x30], eax
lea rdx, [0x1400470e8]
lea rcx, [rsp + 0x30]
call fcn.14000a654
mov eax, dword [0x14004aef0]
test al, 1
jne 0x140008343
or eax, 1
mov dword [0x14004aef0], eax
lea rcx, [0x14004aeb8]
call fcn.1400022a0
lea rcx, [0x140035990]
call fcn.1400091d0
lea rdx, str.StartReadSpoolService___OpenService
lea rcx, [0x14004aeb8]
call fcn.140003ee0
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x140008387
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x2c], 0
lea rdx, [0x1400470e8]
lea rcx, [rsp + 0x2c]
call fcn.14000a654
call fcn.140003ce0
mov rcx, rax
lea rdx, str.StartReadSpoolService___StartService
call fcn.140003ee0
lea rdx, [rsp + 0x48]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x1400083c2
mov dword [rsp + 0x34], eax
lea rdx, [0x1400470e8]
lea rcx, [rsp + 0x34]
call fcn.14000a654
call fcn.140003ce0
mov rcx, rax
lea rdx, str.StartReadSpoolService___QueryServiceStatus
call fcn.140003ee0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov edi, dword [rsp + 0x5c]
cmp dword [rsp + 0x4c], 2
jne 0x1400084a2
mov r12d, 0x3e8
nop dword [rax]
nop word [rax + rax]
mov eax, 0xcccccccd
mul dword [rsp + 0x60]
shr edx, 3
cmp edx, r12d
cmovb edx, r12d
cmp edx, 0x2710
cmova edx, r12d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rsp + 0x48]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x1400084a2
mov eax, dword [0x14004aef0]
test al, 1
jne 0x140008462
or eax, 1
mov dword [0x14004aef0], eax
lea rcx, [0x14004aeb8]
call fcn.1400022a0
lea rcx, [0x140035990]
call fcn.1400091d0
lea rdx, str.StartReadSpoolService___while___QueryServiceStatus
lea rcx, [0x14004aeb8]
call fcn.140003ee0
cmp dword [rsp + 0x5c], edi
jbe 0x140008489
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov edi, dword [rsp + 0x5c]
jmp 0x140008497
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
cmp eax, dword [rsp + 0x60]
ja 0x1400084a2
cmp dword [rsp + 0x4c], 2
je 0x140008400
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call fcn.140003ce0
mov rcx, rax
lea rdx, str.StartReadSpoolService___while___QueryServiceStatus
call fcn.140003ee0
cmp dword [rsp + 0x4c], 4
je 0x1400084e0
mov dword [rsp + 0x20], 0
lea rdx, [0x1400470e8]
lea rcx, [rsp + 0x20]
call fcn.14000a654
nop
jmp 0x1400084ec
test rsi, rsi
je 0x1400084fa
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, r15d
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140008de0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop r12
ret