Function at 0x4290a0
Capabilities:
Accept command line arguments
Create process on windows
Terminate process

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x100
mov r12, qword [rsp + 0x160]
cmp r9d, 1
mov rbp, rcx
mov r14, rdx
mov r13, r8
mov ebx, r9d
jle 0x429190
mov r8, qword [r12 + 8]
lea rdi, str.status
mov ecx, 7
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
jne 0x429140
cmp r9d, 2
jne 0x429161
lea rcx, str.Checking_for__s:
mov rdx, rbp
call fcn.0045e790
call qword [sym.imp.msvcrt.dll___iob_func]
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, 0x64
call fcn.00428410
lea rdx, str._running
lea rcx, str._not_running
test eax, eax
mov ebx, eax
cmovne rcx, rdx
call sub.msvcrt.dll_puts
xor eax, eax
test ebx, ebx
sete al
jmp 0x429175
lea rdi, str.stop
mov ecx, 5
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
jne 0x4293f0
cmp r9d, 2
je 0x429270
lea rcx, str._s:_no_arguments_allowed_for_command__s_n
mov rdx, rbp
call fcn.0045e790
mov eax, 1
add rsp, 0x100
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
test r14, r14
je 0x4292d1
mov r9, r12
mov r8d, ebx
mov rdx, r14
mov rcx, rbp
call fcn.00427970
test eax, eax
jns 0x429175
cmp ebx, 1
jle 0x4292d1
mov rcx, qword [r12 + 8]
mov rdx, qword [r14]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x4292d1
lea rax, [0x00427700]
mov dword [0x005015c8], 1
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [0x00501458], r13
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x98], rax
add byte [rax], al
mov rax, qword [r14 + 8]
mov dword [0x00501450], ebx
mov qword [0x00501448], r12
mov qword [rsp + 0x90], rax
call qword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherA]
test eax, eax
jne 0x429810
mov rbx, qword [r14]
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str._s:_cannot_dispatch_service__Error_ld_nOption___s__cannot_be_used_to_start__s_as_a_service_from_console._nUse___s_install_...__to_install_the_service_nand__net_start__s__to_start_it._n
mov r8d, eax
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rbp
mov r9, rbx
mov rdx, rbp
call fcn.0045e790
mov eax, 0x64
jmp 0x429175
lea rcx, str.Stopping__s:
mov rdx, rbp
call fcn.0045e790
call qword [sym.imp.msvcrt.dll___iob_func]
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, 0xf
call fcn.00428370
cmp eax, 0
mov ebx, eax
jle 0x429470
xor ecx, ecx
call fcn.00428460
lea rcx, str._timeout
mov ebx, eax
test eax, eax
lea rdx, str._done
cmove rcx, rdx
call sub.msvcrt.dll_puts
xor eax, eax
test ebx, ebx
setne al
jmp 0x429175
lea r9, [rsp + 0x58]
mov r8d, 1
mov edx, 1
mov ecx, 0x64
mov dword [0x005015c8], 0
call fcn.00428250
test rax, rax
mov rsi, rax
je 0x429260
mov eax, dword [rsp + 0x58]
test eax, eax
jne 0x429493
mov edx, 1
lea rcx, [0x004275a0]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
xor r9d, r9d
xor edx, edx
mov r8d, 1
mov ecx, 0x65
call fcn.00428250
test rax, rax
mov rbx, rax
je 0x429520
call qword [sym.imp.KERNEL32.dll_GetCommandLineA]
lea r9, [rsp + 0x90]
mov rbp, rax
mov ecx, 0xd
xor eax, eax
xor r8d, r8d
mov rdx, rbp
mov rdi, r9
rep stosq qword [rdi], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x90], 0x68
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x429590
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.CreateProcess_.___s__.__failed__Error_ld_n
lea rcx, [rax + 0x60]
mov r9d, edi
mov r8, rbp
call fcn.0045e7f0
mov rcx, rsi
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rsi
mov rcx, rbx
call rsi
mov eax, 0x65
jmp 0x429175
lea rdi, str.reload
mov ecx, 7
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
jne 0x429533
cmp r9d, 2
jne 0x429161
lea rcx, str.Reloading__s:
mov rdx, rbp
call fcn.0045e790
call qword [sym.imp.msvcrt.dll___iob_func]
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, 0x18
call fcn.00428370
cmp eax, 0
mov ebx, eax
lea rcx, str._done
jg 0x429459
lea rcx, str._not_running
lea rdx, str._error
cmove rcx, rdx
call sub.msvcrt.dll_puts
xor eax, eax
test ebx, ebx
setle al
jmp 0x429175
lea rax, str._not_running
lea rcx, str._error
cmovne rcx, rax
call sub.msvcrt.dll_puts
mov eax, ebx
not eax
shr eax, 0x1f
jmp 0x429175
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4294d4
mov edx, 1
mov qword [0x00501498], rsi
lea rcx, [0x004275b0]
call qword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
lea rcx, [0x004284e0]
call fcn.0044dcc0
mov rdx, r12
mov ecx, ebx
call r13
jmp 0x429175
call qword [sym.imp.msvcrt.dll___iob_func]
lea rbx, [rax + 0x30]
lea r9, str.already_running
lea rdx, str._s:__s._nUse___s_statusstopreloadrestartsigusr1sigusr2__to_control_daemon._n
mov r8, rbp
mov qword [rsp + 0x20], rbp
mov rcx, rbx
call fcn.0045e7f0
mov rcx, rbx
call sub.msvcrt.dll_fflush
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x429175
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 0x65
jmp 0x429175
lea rdi, str.sigusr1
mov rsi, r8
mov ecx, 8
repe cmpsb byte [rsi], byte [rdi]
mov esi, 0x19
seta dl
setb al
cmp dl, al
jne 0x429630
cmp ebx, 2
jne 0x429161
lea edx, [rsi - 0x18]
lea rcx, str.Sending_SIGUSR_d_to__s:
mov r8, rbp
call fcn.0045e790
call qword [sym.imp.msvcrt.dll___iob_func]
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, esi
jmp 0x429434
mov rcx, qword [rsp + 0x78]
mov rdi, qword [sym.imp.KERNEL32.dll_CloseHandle]
call rdi
mov rax, qword [rsp + 0x70]
xor r8d, r8d
mov qword [rsp + 0x60], rbx
lea rdx, [rsp + 0x60]
mov r9d, 0xffffffff
mov ecx, 2
mov qword [rsp + 0x68], rax
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
cmp eax, 1
mov ebp, eax
jbe 0x4295f6
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.WaitForMultipleObjects_returns__lX_n
lea rcx, [rax + 0x60]
mov r8d, ebp
call fcn.0045e7f0
mov edx, 0xc8
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, rsi
call rdi
mov rcx, rbx
call rdi
lea rdx, [rsp + 0x5c]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x4297f5
mov dword [rsp + 0x5c], 0xc9
mov rcx, qword [rsp + 0x70]
call rdi
mov eax, dword [rsp + 0x5c]
jmp 0x429175
lea rdi, str.sigusr2
mov rsi, r8
mov ecx, 8
repe cmpsb byte [rsi], byte [rdi]
mov esi, 0x1a
seta dl
setb al
cmp dl, al
je 0x429557
lea rdi, str.restart
mov ecx, 8
mov rsi, r8
repe cmpsb byte [rsi], byte [rdi]
jne 0x429190
cmp r9d, 2
jne 0x429161
lea rcx, str.Stopping__s:
mov rdx, rbp
call fcn.0045e790
mov rsi, qword [sym.imp.msvcrt.dll___iob_func]
call rsi
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, 0x65
call fcn.00428410
test eax, eax
jne 0x429771
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x66
call fcn.00428250
test rax, rax
mov rdi, rax
je 0x4297df
mov ecx, 0xf
call fcn.00428370
cmp eax, 0
jle 0x429790
mov ebx, 0xa
mov r12, qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x42970e
sub ebx, 1
je 0x4297c0
mov ecx, 0x2e
call sub.msvcrt.dll__fputchar
call rsi
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov edx, 0x3e8
mov rcx, rdi
call r12
test eax, eax
jne 0x4296f0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str._done
call sub.msvcrt.dll_puts
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
lea rcx, str.Starting__s:
mov rdx, rbp
call fcn.0045e790
call rsi
lea rcx, [rax + 0x30]
call sub.msvcrt.dll_fflush
mov ecx, 1
call fcn.00428460
lea rcx, str._error
mov ebx, eax
test eax, eax
jmp 0x4292b5
lea rcx, str._not_detached__cannot_restart
call sub.msvcrt.dll_puts
mov eax, 1
jmp 0x429175
lea rax, str._not_running
lea rcx, str._error
cmovne rcx, rax
call sub.msvcrt.dll_puts
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x429175
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str._timeout
call sub.msvcrt.dll_puts
mov eax, 1
jmp 0x429175
lea rcx, str._error
call sub.msvcrt.dll_puts
mov eax, 1
jmp 0x429175
cmp dword [rsp + 0x5c], 0x103
jne 0x429620
mov dword [rsp + 0x5c], 0
jmp 0x429620
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitThread]