Function at 0x14003c030
Capabilities:
Query service status
Start service

Disassembly:
mov rax, rsp
push rsi
push r14
sub rsp, 0x88
mov qword [rax + 8], rbx
or r14d, 0xffffffff
mov qword [rax - 0x20], r12
mov rbx, r8
xor r12d, r12d
mov rsi, rcx
mov qword [rax + 0x20], r12
mov qword [rax - 0x60], r12
mov qword [rax - 0x68], r12
test r8, r8
je 0x14003c066
mov dword [r8], r12d
lea rcx, [rsp + 0xb8]
call fcn.14004b4d0
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
je 0x14003c08a
lea rcx, [rsp + 0x30]
call fcn.14004b9c0
cmp qword [0x140279320], r12
mov qword [rsp + 0x70], r15
je 0x14003c2c8
lea rcx, [rsp + 0x98]
mov rdx, rsi
sub rcx, 8
call fcn.1400294d0
mov rcx, qword [0x140279320]
mov r8d, 0xf01ff
mov rdx, qword [rax]
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rcx, rax
call fcn.1401710c0
mov r15, rax
test rax, rax
je 0x14003c2c8
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x80], rdi
call fcn.14004b940
mov r8, qword [rsp + 0x30]
mov edx, eax
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
movsxd rcx, eax
call fcn.140171070
test rax, rax
jne 0x14003c19c
mov rax, qword gs:[0x58]
mov edi, 0x2f80
add rdi, qword [rax]
mov rax, qword [rdi]
test rax, rax
jne 0x14003c12b
call fcn.1401760e4
cmp dword [rax], 0x420
jne 0x14003c158
cmp dword [0x14027e48c], 6
jl 0x14003c150
mov r8, rsi
lea rdx, str.service__s_already_running
mov ecx, 0x5b0006
call fcn.14002d250
mov r14d, r12d
jmp 0x14003c297
test rbx, rbx
je 0x14003c16e
mov rax, qword [rdi]
test rax, rax
jne 0x14003c16a
call fcn.1401760e4
mov eax, dword [rax]
mov dword [rbx], eax
mov rdx, qword [rsp + 0xb8]
lea rcx, [rsp + 0x38]
call fcn.14004b8a0
mov r8, rsi
lea rdx, str.failed_start_service__s__s:__m
mov ecx, 0x5b0003
mov r9, qword [rax]
call fcn.14002d250
jmp 0x14003c297
lea rax, [rsp + 0xb0]
mov r9d, 0x24
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
movsxd rcx, eax
call fcn.140171070
test rax, rax
jne 0x14003c1e8
mov r8, rsi
lea rdx, str.failed_query_service_status__s:__m
mov ecx, 0x5b0003
call fcn.14002d250
test eax, eax
jne 0x14003c297
mov eax, dword [rsp + 0x44]
mov ebx, r12d
mov qword [rsp + 0xa8], rbp
mov edi, r12d
mov ebp, dword [rsp + 0x54]
cmp eax, 4
je 0x14003c28c
cmp ebx, 0xea60
jge 0x14003c287
cmp edi, 0x1d4c0
jge 0x14003c287
lea rax, [rsp + 0xb0]
mov r9d, 0x24
lea r8, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
movsxd rcx, eax
call fcn.140171070
test rax, rax
jne 0x14003c25f
mov r8, rsi
lea rdx, str.failed_query_service_status__s:__m
mov ecx, 0x5b0003
call fcn.14002d250
test eax, eax
jne 0x14003c28f
mov eax, dword [rsp + 0x54]
cmp eax, ebp
jbe 0x14003c26c
mov ebx, r12d
mov ebp, eax
mov ecx, 0x64
call fcn.14002f1f0
mov eax, dword [rsp + 0x44]
add ebx, 0x64
add edi, 0x64
cmp eax, 4
jne 0x14003c207
jmp 0x14003c28c
cmp eax, 4
jne 0x14003c28f
mov r14d, r12d
mov rbp, qword [rsp + 0xa8]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
movsxd rcx, eax
call fcn.140171070
mov rdi, qword [rsp + 0x80]
test rax, rax
jne 0x14003c2dc
lea rdx, str.Failed_close_service_handle:__m
mov ecx, 0x5b0003
call fcn.14002d250
jmp 0x14003c2dc
mov r8, rsi
lea rdx, str.service__s_doesnt_exist
mov ecx, 0x5b0005
call fcn.14002d250
lea rcx, [rsp + 0xb8]
call fcn.14004b690
mov rcx, qword [rsp + 0x38]
mov r15, qword [rsp + 0x70]
mov rbx, qword [rsp + 0xa0]
test rcx, rcx
je 0x14003c30a
call fcn.14017610c
mov qword [rsp + 0x38], r12
lea rcx, [rsp + 0x30]
call fcn.14004b960
mov r12, qword [rsp + 0x78]
test r14d, r14d
je 0x14003c332
mov r8, rsi
lea rdx, str.error_starting_service__s
mov ecx, 0x5b0003
call fcn.14002d250
mov eax, r14d
add rsp, 0x88
pop r14
pop rsi
ret