Function at 0x140012af0
Capabilities:
Query service status
Start service

Disassembly:
push rbp
push rsi
push r12
sub rsp, 0x270
mov rax, qword [0x140029c30]
xor rax, rsp
mov qword [rsp + 0x250], rax
cmp edx, 1
mov rbp, r8
mov r12d, edx
mov esi, ecx
jge 0x140012b2a
mov ecx, 1
call fcn.14000c580
jmp 0x140012e96
mov qword [rsp + 0x2a8], rbx
mov ecx, 5
mov qword [rsp + 0x268], rdi
mov rdi, qword [r8]
call fcn.14000ff30
mov rbx, rax
test rax, rax
jne 0x140012b6a
call fcn.140016bd0
mov edx, 0x400001fb
lea rcx, [rax + 0x60]
call fcn.140007220
lea eax, [rbx + 2]
jmp 0x140012e86
mov r8d, 4
test esi, esi
je 0x140012ba3
cmp esi, 1
je 0x140012b9b
cmp esi, 1
jbe 0x140012ba9
cmp esi, 3
jbe 0x140012b93
cmp esi, 0x80
jne 0x140012ba9
mov r8d, 0x104
jmp 0x140012ba9
mov r8d, 0x44
jmp 0x140012ba9
mov r8d, 0x24
jmp 0x140012ba9
mov r8d, 0x14
lea r9, [rsp + 0x50]
mov rdx, rdi
mov rcx, rax
mov dword [rsp + 0x20], 0x100
call fcn.14000ff70
mov rdi, rax
test rax, rax
jne 0x140012bda
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
lea eax, [rdi + 3]
jmp 0x140012e86
test esi, esi
jne 0x140012cf1
mov r8, rbp
mov edx, r12d
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
mov esi, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
mov ebp, eax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp ebp, 0x3e5
jne 0x140012c10
xor ebp, ebp
jmp 0x140012c18
test esi, esi
je 0x140012ca8
lea r8, [rsp + 0x30]
mov r9d, 1
mov rdx, rdi
xor ecx, ecx
call fcn.14000f980
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test ebx, ebx
je 0x140012c7c
xor ecx, ecx
call fcn.140011e20
mov ecx, dword [rsp + 0x34]
mov rdi, rax
call fcn.140011f30
mov rbx, rax
call fcn.140016bd0
lea r8, [rsp + 0x50]
lea rcx, [rax + 0x60]
mov r9, rbx
mov edx, 0x40000227
mov qword [rsp + 0x20], rdi
call fcn.140007220
mov eax, 1
jmp 0x140012e86
mov ecx, ebp
call fcn.140006fa0
xor ecx, ecx
mov r9, rax
call fcn.140011e20
lea rdx, [rsp + 0x50]
lea rcx, str._s:__s:__s
mov r8, rax
call fcn.14001874c
xor eax, eax
jmp 0x140012e86
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, ebp
call fcn.140006fa0
xor ecx, ecx
mov rdi, rax
call fcn.140011e20
mov rbx, rax
call fcn.140016bd0
lea r8, [rsp + 0x50]
lea rdx, str._s:__s:__s
lea rcx, [rax + 0x60]
mov r9, rbx
mov qword [rsp + 0x20], rdi
call fcn.140018684
mov eax, 1
jmp 0x140012e86
cmp esi, 4
jne 0x140012d60
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
je 0x140012d2f
mov ecx, dword [rsp + 0x34]
call fcn.140011f30
lea rcx, [0x140023d40]
mov rdx, rax
call fcn.14001874c
xor eax, eax
jmp 0x140012e86
mov ecx, eax
call fcn.140006fa0
mov rbx, rax
call fcn.140016bd0
lea r8, [rsp + 0x50]
lea rdx, str._s:__s_n
lea rcx, [rax + 0x60]
mov r9, rbx
call fcn.140018684
mov eax, 1
jmp 0x140012e86
lea r8, [rsp + 0x30]
mov edx, esi
mov rcx, rax
mov qword [rsp + 0x260], r13
call qword [sym.imp.ADVAPI32.dll_ControlService]
mov r13d, dword [rsp + 0x34]
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
mov ebp, eax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp ebp, 0x3e5
jne 0x140012d9d
xor ebp, ebp
jmp 0x140012da6
test r12d, r12d
je 0x140012e28
lea r8, [rsp + 0x30]
mov r9d, r13d
mov rdx, rdi
mov ecx, esi
call fcn.14000f980
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test ebx, ebx
je 0x140012dff
mov ecx, esi
call fcn.140011e20
mov ecx, dword [rsp + 0x34]
mov rdi, rax
call fcn.140011f30
mov rbx, rax
call fcn.140016bd0
lea r8, [rsp + 0x50]
lea rcx, [rax + 0x60]
mov r9, rbx
mov edx, 0x40000227
mov qword [rsp + 0x20], rdi
call fcn.140007220
jmp 0x140012e79
mov ecx, ebp
call fcn.140006fa0
mov ecx, esi
mov r9, rax
call fcn.140011e20
lea rdx, [rsp + 0x50]
lea rcx, str._s:__s:__s
mov r8, rax
call fcn.14001874c
xor eax, eax
jmp 0x140012e7e
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, ebp
call fcn.140006fa0
mov ecx, esi
mov rdi, rax
call fcn.140011e20
mov rbx, rax
call fcn.140016bd0
lea r8, [rsp + 0x50]
lea rdx, str._s:__s:__s
lea rcx, [rax + 0x60]
mov r9, rbx
mov qword [rsp + 0x20], rdi
call fcn.140018684
cmp ebp, 0x426
jne 0x140012e79
cmp esi, 5
je 0x140012e24
cmp esi, 1
je 0x140012e24
mov eax, 1
mov r13, qword [rsp + 0x260]
mov rbx, qword [rsp + 0x2a8]
mov rdi, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.140017480
add rsp, 0x270
pop r12
pop rsi
pop rbp
ret