Function at 0x14005a5e0
Capabilities:
Query service status
Start service

Disassembly:
push rbp
push rbx
push r12
push r15
mov rbp, rsp
sub rsp, 0x78
mov rax, qword [0x14010b010]
xor rax, rsp
mov qword [rbp - 0x18], rax
mov r12, rdx
lea rbx, str.C:Userspaul1_leeDesktopAsusAppServiceAsusAppServiceAsusAppServiceStartServiceHelper.cpp
mov rcx, rbx
mov edx, 0x5c
call fcn.14008d398
test rax, rax
je 0x14005a62a
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
inc rax
jmp 0x14005a62d
mov rax, rbx
lea r9, str.Start___s_
mov qword [rsp + 0x20], r12
lea r8, str.LaunchService
mov edx, 0xd
mov rcx, rax
call fcn.140015b90
xor edx, edx
xor ecx, ecx
mov r8d, 0xf003f
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov r15, rax
test rax, rax
jne 0x14005a6af
lea edx, [rax + 0x5c]
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a685
lea edx, [r15 + 0x5c]
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.OpenSCManager_failed___d__n
mov edx, 0x21
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
jmp 0x14005ad09
mov r8d, 0xf01ff
mov qword [rsp + 0x70], r14
mov rdx, r12
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov r14, rax
test rax, rax
jne 0x14005a721
lea edx, [rax + 0x5c]
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a6ee
lea edx, [r14 + 0x5c]
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.OpenService_failed___d__n
mov edx, 0x2e
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14005ad04
lea rax, [rbp - 0x48]
mov r9d, 0x24
lea r8, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x14005a78b
lea edx, [rax + 0x5c]
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a764
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.QueryServiceStatusEx_failed___d__n
mov edx, 0x3c
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
jmp 0x14005a7d5
mov eax, dword [rbp - 0x3c]
dec eax
test eax, 0xfffffffd
je 0x14005a7ec
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a7ba
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
lea r9, str.Cannot_start_the_service_because_it_is_already_running_n
mov edx, 0x47
lea r8, str.LaunchService
mov rcx, rbx
call fcn.140015b90
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14005ad04
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xb8], r13
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
cmp dword [rbp - 0x3c], 3
mov r13d, 0x2710
mov edi, dword [rbp - 0x2c]
mov rsi, rax
jne 0x14005a894
nop dword [rax]
mov eax, 0xcccccccd
mul dword [rbp - 0x28]
shr edx, 3
cmp edx, 0x3e8
jae 0x14005a83a
mov edx, 0x3e8
jmp 0x14005a841
cmp edx, r13d
cmova edx, r13d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rax, [rbp - 0x48]
mov r9d, 0x24
lea r8, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x14005a94a
cmp dword [rbp - 0x2c], edi
jbe 0x14005a881
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov edi, dword [rbp - 0x2c]
mov esi, eax
jmp 0x14005a88e
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, esi
cmp eax, dword [rbp - 0x28]
ja 0x14005a907
cmp dword [rbp - 0x3c], 3
je 0x14005a820
xor r8d, r8d
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x14005a9a9
lea edx, [rax + 0x5c]
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a8cb
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.StartService_failed___d__n
mov edx, 0x8c
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14005acec
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a92a
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
lea r9, str.Timeout_waiting_for_service_to_stop_n
mov edx, 0x7d
lea r8, str.LaunchService
mov rcx, rbx
call fcn.140015b90
jmp 0x14005aa1d
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a96d
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.QueryServiceStatusEx_failed___d__n
mov edx, 0x6c
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14005acec
lea rcx, str.Service_start_pending..._n
call fcn.14005a580
lea rax, [rbp - 0x48]
mov r9d, 0x24
lea r8, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x14005aa34
lea edx, [rax + 0x5c]
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005a9f8
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.QueryServiceStatusEx_failed___d__n
mov edx, 0x9c
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rbx
call fcn.140015b90
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14005acec
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
cmp dword [rbp - 0x3c], 2
mov rsi, rax
mov edi, dword [rbp - 0x2c]
jne 0x14005ab0f
nop word [rax + rax]
mov eax, 0xcccccccd
mul dword [rbp - 0x28]
shr edx, 3
cmp edx, 0x3e8
jae 0x14005aa6a
mov edx, 0x3e8
jmp 0x14005aa71
cmp edx, r13d
cmova edx, r13d
mov ecx, edx
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rax, [rbp - 0x48]
mov r9d, 0x24
lea r8, [rbp - 0x40]
mov qword [rsp + 0x20], rax
xor edx, edx
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
je 0x14005aac2
cmp dword [rbp - 0x2c], edi
jbe 0x14005aaad
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov edi, dword [rbp - 0x2c]
mov esi, eax
jmp 0x14005aaba
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
sub eax, esi
cmp eax, dword [rbp - 0x28]
ja 0x14005ab0f
cmp dword [rbp - 0x3c], 2
je 0x14005aa50
jmp 0x14005ab0f
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005aae7
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rdi, [rax + 1]
jmp 0x14005aaea
mov rdi, rbx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, str.QueryServiceStatusEx_failed___d__n
mov edx, 0xbf
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov rcx, rdi
call fcn.140015b90
cmp dword [rbp - 0x3c], 4
mov edx, 0x5c
mov rcx, rbx
jne 0x14005ab55
call fcn.14008d398
test rax, rax
je 0x14005ab39
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
inc rax
jmp 0x14005ab3c
mov rax, rbx
mov qword [rsp + 0x20], r12
lea r9, str.__s__Service_started_successfully.
mov edx, 0xd8
mov rcx, rax
jmp 0x14005ac90
call fcn.14008d398
test rax, rax
je 0x14005ab71
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
inc rax
jmp 0x14005ab74
mov rax, rbx
lea r9, str.__s__Service_not_started.
mov qword [rsp + 0x20], r12
lea r8, str.LaunchService
mov edx, 0xdc
mov rcx, rax
call fcn.140015b90
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
mov rcx, rbx
test rax, rax
je 0x14005abb7
mov edx, 0x5c
call fcn.14008d398
lea rcx, [rax + 1]
mov eax, dword [rbp - 0x3c]
lea r9, str.__Current_State:__d
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov edx, 0xdd
call fcn.140015b90
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
mov rcx, rbx
test rax, rax
je 0x14005abf9
mov edx, 0x5c
call fcn.14008d398
lea rcx, [rax + 1]
mov eax, dword [rbp - 0x34]
lea r9, str.__Exit_Code:__d
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov edx, 0xde
call fcn.140015b90
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
mov rcx, rbx
test rax, rax
je 0x14005ac3b
mov edx, 0x5c
call fcn.14008d398
lea rcx, [rax + 1]
mov eax, dword [rbp - 0x2c]
lea r9, str.__Check_Point:__d
lea r8, str.LaunchService
mov dword [rsp + 0x20], eax
mov edx, 0xdf
call fcn.140015b90
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
mov rcx, rbx
test rax, rax
je 0x14005ac7d
mov edx, 0x5c
call fcn.14008d398
lea rcx, [rax + 1]
mov eax, dword [rbp - 0x28]
lea r9, str.__Wait_Hint:__d
mov dword [rsp + 0x20], eax
mov edx, 0xe0
lea r8, str.LaunchService
call fcn.140015b90
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
test rax, rax
je 0x14005acd1
mov edx, 0x5c
mov rcx, rbx
call fcn.14008d398
lea rbx, [rax + 1]
lea r9, [0x1400db980]
mov edx, 0xe6
lea r8, str.LaunchService
mov rcx, rbx
call fcn.140015b90
mov r13, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x70]
mov rcx, qword [rbp - 0x18]
xor rcx, rsp
call fcn.1400612f0
add rsp, 0x78
pop r15
pop r12
pop rbx
pop rbp
ret