Function at 0x140017ce0
Capabilities:
Check for time delay via gettickcount
Query service status
Stop service

Disassembly:
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0xe0
mov r15, rdx
mov rbp, rcx
lea rcx, str.ssproiut
mov edx, 1
mov r14, r8
mov rax, qword [0x140024c20]
xor r12d, r12d
xor rax, rsp
mov qword [rsp + 0xd8], rax
call fcn.140011da0
mov r13, rax
mov rdi, r15
lea rsi, str.localnode
mov dl, byte [rdi]
cmp dl, byte [rsi]
jne 0x140017d50
test dl, dl
je 0x140017d4c
mov dl, byte [rdi + 1]
cmp dl, byte [rsi + 1]
jne 0x140017d50
add rdi, 2
add rsi, 2
test dl, dl
jne 0x140017d2e
xor eax, eax
jmp 0x140017d55
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140017d87
xor ecx, ecx
mov r8d, 0xf003f
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rdi, rax
mov rcx, r13
lea rdx, str._s_:_trying_to_open_SCManager_on_localnode_n
lea r8, str.oisdtts
call fcn.140010c10
jmp 0x140017ec4
lea rcx, str.ssproiut
mov edx, 1
call fcn.140011da0
mov rsi, rax
test r15, r15
je 0x140018215
mov rdx, r15
mov rcx, rdx
and rdx, 0xfffffffffffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [rdx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x140017dcf
mov rax, rdx
add rdx, rcx
call fcn.140018880
mov edx, eax
cmp edx, 2
jle 0x140017de0
cmp byte [r15], 0x5c
je 0x140018096
movsxd rax, eax
add rax, 2
cmp eax, 0x64
jl 0x140017e65
mov rcx, rsi
lea rdx, str._s_:_insufficient_buffer_for_unc_name_n
lea r8, str.getnodename
mov byte [rsp + 0x30], 0
call fcn.140010c10
test rsi, rsi
je 0x140017e15
mov rcx, rsi
call qword [sym.imp.MSVCR100.dll_fclose]
mov rcx, r13
lea rdx, str._s:_getnodename_failed_n
lea r8, str.oisdtts
mov dword [r14], 0xffffffff
call fcn.140010c10
test r13, r13
je 0x140017e40
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_fclose]
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.14001c150
xor eax, eax
add rsp, 0xe0
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
mov byte [rsp + 0x32], 0
mov word [rsp + 0x30], 0x5c5c
mov rdx, r15
lea rdi, [rsp + 0x30]
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte [rdi]
dec rdi
mov al, byte [rdx]
inc rdx
mov byte [rdi], al
inc rdi
test al, al
jne 0x140017e85
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov rdi, rax
mov rcx, r13
lea rdx, str._s:_trying_to_open_SCManager_on__s_n
lea r8, str.oisdtts
lea r9, [rsp + 0x30]
call fcn.140010c10
test rdi, rdi
je 0x1400181ed
mov rcx, rdi
mov rdx, rbp
mov r8d, 0x24
call qword [sym.imp.ADVAPI32.dll_OpenServiceA]
mov rsi, rax
test rsi, rsi
je 0x1400181c1
mov rcx, r13
lea rdx, str._s:open_service_for_stop_success_n
lea r8, str.oisdtts
call fcn.140010c10
mov rcx, rsi
mov edx, 1
lea r8, [rsp + 0x94]
call qword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
je 0x140018199
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov edx, dword [rsp + 0xa8]
cmp dword [rsp + 0x98], 3
jne 0x14001802f
mov eax, 0x2710
mov ebp, 0x3e8
mov qword [rsp + 0xc0], rdi
lea r15, [rsp + 0xd0]
mov qword [rsp + 0xb8], r14
mov r14d, edx
mov qword [rsp + 0xc8], rbx
mov ebx, eax
mov edi, ecx
mov eax, 0xcccccccd
mul dword [rsp + 0xac]
shr edx, 3
cmp edx, 0x2710
cmovae edx, ebx
cmp edx, 0x3e8
cmovbe edx, ebp
mov ecx, edx
call qword [sym.imp.orauts.dll_Sleep]
mov rcx, rsi
xor edx, edx
mov r9d, 0x24
lea r8, [rsp + 0x94]
mov qword [rsp + 0x20], r15
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x140018159
cmp dword [rsp + 0x98], 1
je 0x140018128
cmp r14d, dword [rsp + 0xa8]
jae 0x140017ffc
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov rcx, r13
lea rdx, str._s_:_stop_hint_updated_n
lea r8, str.oisdtts
mov r14d, dword [rsp + 0xa8]
call fcn.140010c10
jmp 0x140018011
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, dword [rsp + 0xac]
ja 0x1400180fa
cmp dword [rsp + 0x98], 3
je 0x140017f6d
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
mov rcx, r13
lea rdx, str._s_:_Stopped_service_successfully__n
lea r8, str.oisdtts
mov r12d, 1
call fcn.140010c10
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test rsi, rsi
je 0x140018062
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test r13, r13
je 0x140018070
mov rcx, r13
call qword [sym.imp.MSVCR100.dll_fclose]
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.14001c150
mov eax, r12d
add rsp, 0xe0
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
cmp byte [r15 + 1], 0x5c
jne 0x140017de0
cmp edx, 0x64
jl 0x1400180cf
mov rcx, rsi
lea rdx, str._s_:_insufficient_buffer_for_unc_name_n
lea r8, str.getnodename
mov byte [rsp + 0x30], 0
call fcn.140010c10
test rsi, rsi
jne 0x140017e0c
jmp 0x140017e15
mov rcx, r15
lea rdx, [rsp + 0x30]
test cl, 3
je 0x1400180ef
mov al, byte [rcx]
inc rcx
test al, al
mov byte [rdx], al
je 0x1400180f5
inc rdx
test cl, 3
jne 0x1400180dc
call fcn.1400188b0
nop
jmp 0x140017e93
mov rcx, r13
lea rdx, str._s:_Timeout_waiting_for_service_to_stop_n
lea r8, str.oisdtts
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
call fcn.140010c10
xor r12d, r12d
jmp 0x14001804b
mov rcx, r13
lea rdx, str._s_:_Service_stopped_successfully._n
lea r8, str.oisdtts
mov rdi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
call fcn.140010c10
mov r12d, 1
jmp 0x14001804b
mov rdi, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xc8]
call qword [sym.imp.orauts.dll_GetLastError]
mov rcx, r13
lea rdx, str._s_:_QueryServiceStatusEx_failed_err__d_n
lea r8, str.oisdtts
mov r9d, eax
mov dword [r14], eax
call fcn.140010c10
nop
jmp 0x14001804b
call qword [sym.imp.orauts.dll_GetLastError]
mov rcx, r13
lea rdx, str._s:stop_command_for_service_failed_with_error_d_n
lea r8, str.oisdtts
mov r9d, eax
mov dword [r14], eax
call fcn.140010c10
nop
jmp 0x14001804b
call qword [sym.imp.orauts.dll_GetLastError]
mov rcx, r13
lea rdx, str._s:open_service__s_for_stop_failed_with_error___d_n
lea r8, str.oisdtts
mov r9, rbp
mov dword [r14], eax
mov dword [rsp + 0x20], eax
call fcn.140010c10
nop
jmp 0x14001804b
call qword [sym.imp.orauts.dll_GetLastError]
mov rcx, r13
lea rdx, str._s:Service_manager_could_not_be_opened_error___d_n
lea r8, str.oisdtts
mov r9d, eax
mov dword [r14], eax
call fcn.140010c10
nop
jmp 0x140018054
mov rcx, rsi
lea rdx, str._s_:_null_node_name_n
lea r8, str.getnodename
mov byte [rsp + 0x30], 0
call fcn.140010c10
test rsi, rsi
jne 0x140017e0c
jmp 0x140017e15