Function at 0x424170
Capabilities:
Start service
Stop service

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0x47900c]
xor eax, esp
mov dword [esp + 0x2c], eax
push esi
mov esi, dword [ebp + 0xc]
push edi
push str.install
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4241b1
call fcn.004248d0
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.uninstall
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4241d9
call fcn.00424ba0
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.start
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x424379
push 1
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov esi, eax
test esi, esi
jne 0x424251
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
jne 0x42422d
push str.ACCESS_DENIED:_administrative_privileges_required._n
call fcn.0041c910
add esp, 4
mov eax, 2
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push eax
push str.OpenSCManager_failed___d__n
call fcn.0041c910
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push 0x10
push str.jhi_service
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x4242cb
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42420a
cmp eax, 0x424
jne 0x4242a1
push str.Error:_the_service_does_not_exist._n
call fcn.0041c910
add esp, 4
mov eax, 4
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Open_Service_failed:___d__n
call fcn.0041c910
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push 0
push 0
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x42434b
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42420a
cmp eax, 0x420
jne 0x424321
push str.Error:_JHI_service_already_running._n
call fcn.0041c910
add esp, 4
mov eax, 5
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Start_Service_failed:___d__n
call fcn.0041c910
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.JHI_Service_started_successfully_n
call fcn.0041c910
add esp, 4
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.stop
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x424468
push 1
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov esi, eax
test esi, esi
je 0x4241ff
push 0x20000000
push str.jhi_service
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x424405
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42420a
cmp eax, 0x424
je 0x42427e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Stop_Service_failed:___d__n
call fcn.0041c910
add esp, 8
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
lea eax, [esp + 8]
push eax
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x42445e
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42420a
cmp eax, 0x426
jne 0x4243db
push str.Error:_JHI_service_has_not_been_started._n
call fcn.0041c910
add esp, 4
mov eax, 6
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.JHI_Service_terminated_successfully_n
jmp 0x424350
push 0x46ffdc
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4244a5
mov edx, 0x46df70
mov ecx, 0x47acf0
call fcn.004067c0
push eax
call fcn.00406a50
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
push str.console
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x4244da
push str.Running_JHI_in_console_is_only_supported_in_debug_or_emulation_mode._n
call fcn.0041c910
add esp, 4
mov eax, 1
pop edi
pop esi
mov ecx, dword [esp + 0x2c]
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x24]
mov dword [esp + 0x24], str.jhi_service
push eax
mov dword [esp + 0x2c], 0x424ca0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call dword [sym.imp.ADVAPI32.dll_StartServiceCtrlDispatcherW]
mov ecx, dword [esp + 0x34]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.00434098
mov esp, ebp
pop ebp
ret