Function at 0x14003e6c0
Capabilities:
Create service
Delete service
Start service

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x140214ba0]
xor rax, rsp
mov qword [rbp + 0xc8], rax
mov qword [rbp - 0x78], r9
mov r14, rdx
mov rbx, rcx
xorps xmm0, xmm0
movups xmmword [rbp + 0xb8], xmm0
xor edx, edx
xor ecx, ecx
mov r8d, 0xc0000000
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r15, rax
mov qword [rbp + 0xc0], rax
test rax, rax
jne 0x14003e7ad
call fcn.1400553d0
lea r8d, [r15 + 1]
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
lea r12, str.c:jenkinsworkspaceebAdvisor_WABinary_release_4.1.1_srcincludesone_time_service.h
mov qword [rbp - 0x78], r12
mov dword [rbp - 0x70], 0x90
lea rdx, [rbp - 0x78]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.OpenSCManager_failed:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0xa0], eax
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x68]
call fcn.140030540
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
lea r13, vtable.std::ios_base.0
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
xor bl, bl
jmp 0x14003ec9a
xorps xmm0, xmm0
movups xmmword [rbp + 0xa8], xmm0
lea r12, str.c:jenkinsworkspaceebAdvisor_WABinary_release_4.1.1_srcincludesone_time_service.h
lea r13, vtable.std::ios_base.0
xor esi, esi
mov rcx, r14
cmp qword [r14 + 0x18], 8
jb 0x14003e7d4
mov rcx, qword [r14]
mov r8, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003e7e3
mov r8, qword [rbx]
jmp 0x14003e7e8
mov rdx, rbx
jb 0x14003e7eb
mov rdx, qword [rbx]
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 0x10
mov r9d, 0xf01ff
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CreateServiceW]
mov rdi, rax
mov qword [rbp + 0xb0], rax
test rax, rax
jne 0x14003eb13
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x80], eax
cmp eax, 0x431
jne 0x14003ea89
xor r9d, r9d
lea r8, [rbp + 0xa0]
xor edx, edx
lea rcx, [0x140226460]
call qword [sym.imp.KERNEL32.dll_InitOnceBeginInitialize]
test eax, eax
je 0x14003ecd5
cmp dword [rbp + 0xa0], edi
je 0x14003e8bf
lea rax, [0x140226460]
mov qword [rbp + 0x90], rax
mov dword [rbp + 0x98], 4
xor ecx, ecx
call fcn.140055460
mov dword [rbp + 0x98], esi
xor r8d, r8d
xor edx, edx
lea rcx, [0x140226460]
call qword [sym.imp.KERNEL32.dll_InitOnceComplete]
test eax, eax
je 0x14003ecd5
mov r8d, 2
lea rdx, [rbp - 0x68]
lea rcx, [0x1402268e0]
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xaf
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Service_already_exists:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140024520
lea rdx, str.._Try_deleting_service.
lea rcx, [rbp - 0x68]
call fcn.1400244e0
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x14003e941
mov rdx, qword [rbx]
mov r8d, 0xf01ff
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov rsi, rax
mov rcx, rdi
mov rdi, rax
mov qword [rbp + 0xb0], rax
test rcx, rcx
je 0x14003e96b
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test rsi, rsi
je 0x14003ea0c
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
je 0x14003e98f
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14003e7c5
call fcn.1400553d0
mov r8d, 1
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xba
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Failed_to_delete_service:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0xa0], eax
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x68]
call fcn.140030540
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
xor bl, bl
jmp 0x14003ec8b
call fcn.1400553d0
mov r8d, 1
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], UnRegisterTypeLib
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Failed_to_open_service_for_deletion:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp + 0xa0], eax
lea rdx, [rbp + 0xa0]
lea rcx, [rbp - 0x68]
call fcn.140030540
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
xor bl, bl
jmp 0x14003ec8b
call fcn.1400553d0
mov r8d, 1
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xc3
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Failed_to_create_service:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140024520
lea rdx, [0x1401e8010]
lea rcx, [rbp - 0x68]
call fcn.1400244e0
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x68]
call fcn.140030540
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
xor bl, bl
jmp 0x14003ec8b
call fcn.1400553d0
mov r8d, 3
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xa8
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Service_created:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140024520
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
mov r8, qword [rbp - 0x78]
mov edx, 1
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x14003ec23
call fcn.1400553d0
mov r8d, 1
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xca
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.Failed_to_start_service:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140024520
lea rdx, [0x1401e8010]
lea rcx, [rbp - 0x68]
call fcn.1400244e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rbp - 0x80], eax
lea rdx, [rbp - 0x80]
lea rcx, [rbp - 0x68]
call fcn.140030540
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
xor bl, bl
jmp 0x14003ec8b
call fcn.1400553d0
mov r8d, 3
lea rdx, [rbp - 0x68]
mov rcx, rax
call fcn.140055290
mov qword [rsp + 0x70], r12
mov dword [rsp + 0x78], 0xce
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x68]
call fcn.1400244b0
lea rdx, str.One_time_service_started:
lea rcx, [rbp - 0x68]
call fcn.1400244e0
mov rdx, rbx
lea rcx, [rbp - 0x68]
call fcn.140024520
lea rcx, [rbp + 0x30]
call fcn.140058d50
nop
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x30]
call fcn.140128970
nop
mov bl, 1
test rdi, rdi
je 0x14003ec9a
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
nop
test r15, r15
je 0x14003eca8
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
movzx eax, bl
mov rcx, qword [rbp + 0xc8]
xor rcx, rsp
call fcn.14014f8e0
mov rbx, qword [rsp + 0x220]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14015fbac
nop
int3