Function at 0x1400688f0
Capabilities:
Delete service
Query service status
Stop service

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0xa30]
sub rsp, 0xb30
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0xb70], rbx
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
mov r8d, shutdown
lea rdx, str.ServiceDeregistrator
lea rcx, [rbp - 0x50]
call fcn.14001e6d0
nop
mov rcx, qword [0x14028ae30]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x60], xmm0
mov rax, qword [rcx + 0x208]
test rax, rax
je 0x14006895e
lock inc dword [rax + 8]
mov rax, qword [rcx + 0x200]
mov qword [rbp - 0x60], rax
mov rax, qword [rcx + 0x208]
mov qword [rbp - 0x58], rax
lea r8, [rbp - 0x50]
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x30]
call fcn.1400fdd70
nop
mov rdx, qword [rbp - 0x38]
cmp rdx, 0x10
jb 0x1400689c1
inc rdx
mov rcx, qword [rbp - 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400689bc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140068ffb
call fcn.14014f740
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rbp - 0x40], xmm0
mov byte [rbp - 0x50], 0
xor eax, eax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov dword [rbp - 0x68], eax
xor r14d, r14d
xor edx, edx
xor ecx, ecx
lea r8d, [rax + 1]
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov r15, rax
test rax, rax
jne 0x140068b35
lea r9, [0x14027b5a0]
xor r8d, r8d
lea rdx, [rbp + 0x28]
lea rcx, [rbp - 0x30]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.OpenSCManager_failed_with_error:
mov rcx, rbx
call fcn.14001abc0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rbp + 0xa60], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rcx, [rbp + 0xa60]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r8d, eax
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], r15b
mov rdx, qword [rbp + 0xa60]
lea rcx, [rsp + 0x40]
call fcn.14001e6d0
mov rcx, qword [rbp + 0xa60]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rdx, qword [rsp + 0x40]
mov r8, qword [rsp + 0x50]
mov rcx, rbx
call fcn.14001b330
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x140068af2
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140068aed
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140069001
call fcn.14014f740
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], 0
lea rcx, [rbp + 0x28]
call fcn.1400fd530
nop
lea rdi, vtable.std::ios_base.0
mov qword [rbp + 0x108], rdi
lea rcx, [rbp + 0x108]
call fcn.14012f920
nop
mov r14d, 1
jmp 0x140068fd2
mov r8d, 0x10024
lea rdx, str.Turtle_Service
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov rsi, rax
test rax, rax
jne 0x140068c92
lea r9, [0x14027b5a0]
xor r8d, r8d
lea rdx, [rbp + 0x168]
lea rcx, [rbp - 0x30]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.OpenService_failed_with_error:
mov rcx, rbx
call fcn.14001abc0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rbp + 0xa68], r14
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea rcx, [rbp + 0xa68]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov r8d, eax
xor edx, edx
mov ecx, 0x1300
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov r8d, eax
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], sil
mov rdx, qword [rbp + 0xa68]
lea rcx, [rsp + 0x60]
call fcn.14001e6d0
mov rcx, qword [rbp + 0xa68]
call qword [sym.imp.KERNEL32.dll_LocalFree]
nop
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x70]
mov rcx, rbx
call fcn.14001b330
nop
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x140068c4c
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140068c47
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140069007
call fcn.14014f740
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rsp + 0x70], xmm0
mov byte [rsp + 0x60], 0
lea rcx, [rbp + 0x168]
call fcn.1400fd530
nop
lea rdi, vtable.std::ios_base.0
mov qword [rbp + 0x248], rdi
lea rcx, [rbp + 0x248]
call fcn.14012f920
nop
mov r14d, 1
jmp 0x140068fba
lea r8, [rbp - 0x80]
mov edx, 1
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_ControlService]
lea rdi, vtable.std::ios_base.0
test eax, eax
je 0x140068e7c
lea r9, [0x14027b640]
mov r8d, 3
lea rdx, [rbp + 0x2a8]
lea rcx, [rbp - 0x30]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.Stopping
mov rcx, rbx
call fcn.14001abc0
lea rdx, str.Turtle_Service
mov rcx, rbx
call fcn.14001abc0
nop
lea rcx, [rbp + 0x2a8]
call fcn.1400fd530
nop
mov qword [rbp + 0x388], rdi
lea rcx, [rbp + 0x388]
call fcn.14012f920
nop
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rbp - 0x80]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x140068da3
cmp dword [rbp - 0x7c], 3
jne 0x140068da3
lea r9, [0x14027b640]
mov r8d, 3
lea rdx, [rbp + 0x3e8]
lea rcx, [rbp - 0x30]
call fcn.1400fde20
nop
lea rcx, [rax + 0x68]
lea rdx, str.Waiting...
call fcn.14001abc0
nop
lea rcx, [rbp + 0x3e8]
call fcn.1400fd530
nop
mov qword [rbp + 0x4c8], rdi
lea rcx, [rbp + 0x4c8]
call fcn.14012f920
nop
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rdx, [rbp - 0x80]
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x140068d31
lea rcx, [0x14028c8b0]
call fcn.14001bb10
lea rcx, [rbp - 0x30]
cmp dword [rbp - 0x7c], 1
jne 0x140068e19
lea r9, [0x14027b640]
mov r8d, 3
lea rdx, [rbp + 0x528]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.Turtle_Service
mov rcx, rbx
call fcn.14001abc0
lea rdx, str._is_stopped
mov rcx, rbx
call fcn.14001abc0
nop
lea rcx, [rbp + 0x528]
call fcn.1400fd530
nop
mov qword [rbp + 0x608], rdi
lea rcx, [rbp + 0x608]
call fcn.14012f920
nop
jmp 0x140068e7c
lea r9, [0x14027b5a0]
xor r8d, r8d
lea rdx, [rbp + 0x668]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.Turtle_Service
mov rcx, rbx
call fcn.14001abc0
lea rdx, str._failed_to_stop
mov rcx, rbx
call fcn.14001abc0
mov rcx, rbx
call fcn.14001bb10
nop
lea rcx, [rbp + 0x668]
call fcn.1400fd530
nop
mov qword [rbp + 0x748], rdi
lea rcx, [rbp + 0x748]
call fcn.14012f920
nop
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_DeleteService]
lea rcx, [rbp - 0x30]
test eax, eax
jne 0x140068f5c
lea r9, [0x14027b5a0]
xor r8d, r8d
lea rdx, [rbp + 0x7a8]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.DeleteService_failed_with_error:
mov rcx, rbx
call fcn.14001abc0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp]
call fcn.140067090
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x140068edb
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14001b330
nop
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x140068f22
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140068f1d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140068ff5
call fcn.14014f740
movdqa xmm0, xmmword [0x1401b6b30]
movdqu xmmword [rbp + 0x10], xmm0
mov byte [rbp], 0
lea rcx, [rbp + 0x7a8]
call fcn.1400fd530
nop
mov qword [rbp + 0x888], rdi
lea rcx, [rbp + 0x888]
call fcn.14012f920
nop
mov r14d, 1
jmp 0x140068fba
lea r9, [0x14027b640]
mov r8d, 3
lea rdx, [rbp + 0x8e8]
call fcn.1400fde20
nop
lea rbx, [rax + 0x68]
lea rdx, str.Turtle_Service
mov rcx, rbx
call fcn.14001abc0
lea rdx, str._is_removed
mov rcx, rbx
call fcn.14001abc0
nop
lea rcx, [rbp + 0x8e8]
call fcn.1400fd530
nop
mov qword [rbp + 0x9c8], rdi
lea rcx, [rbp + 0x9c8]
call fcn.14012f920
nop
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test rsi, rsi
je 0x140068fd2
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
nop
lea rcx, [rbp - 0x30]
call fcn.1400242f0
mov eax, r14d
mov rbx, qword [rsp + 0xb70]
add rsp, 0xb30
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
call fcn.1401705dc
nop
call fcn.1401705dc
nop
call fcn.1401705dc
nop
call fcn.1401705dc
int3