Function at 0x42d3d0
Capabilities:
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x4e7018]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
xor eax, eax
xor ebx, ebx
mov dword [ebp - 0x28], eax
test esi, esi
jne 0x42d411
push str.VNLStartService:_invalid_parameter
push 1
call fcn.004439a0
add esp, 8
xor eax, eax
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push edi
push esi
push str.VNLStartService:_Attempting_to_start_service:__S
push 0x20
call fcn.004439a0
add esp, 0xc
push 0xf003f
push 0x4ae7f8
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
mov dword [ebp - 0x24], edi
test edi, edi
jne 0x42d56e
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42d490
cmp eax, 0x57
je 0x42d47d
cmp eax, 0x429
je 0x42d46a
push eax
push str.VNLStartService:_Service_Manager_open_failed:_0x_08X
push 1
call fcn.004439a0
add esp, 0xc
jmp 0x42d4ab
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_DATABASE_DOES_NOT_EXIST
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x42d4a1
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_INVALID_PARAMETER
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x42d4a1
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_ACCESS_DENIED
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_you_must_be_an_administrator
push 1
call fcn.004439a0
add esp, 0x10
push str.VNLStartService:_service_uninstall_failed__attempting_open_with_less_access
push 1
call fcn.004439a0
add esp, 8
push SysReAllocString
push 0x4ae7f8
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov edi, eax
mov dword [ebp - 0x24], eax
test edi, edi
jne 0x42d565
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x42d528
cmp eax, 0x57
je 0x42d515
cmp eax, 0x429
je 0x42d502
push eax
push str.VNLStartService:_Service_Manager_open_failed:_0x_08X
push 1
call fcn.004439a0
add esp, 0xc
jmp 0x42d543
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_DATABASE_DOES_NOT_EXIST
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x42d539
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_INVALID_PARAMETER
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x42d539
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_ACCESS_DENIED
push 1
call fcn.004439a0
push str.VNLStartService:_Service_Manager_open_failed:_you_must_be_an_administrator
push 1
call fcn.004439a0
add esp, 0x10
push str.VNLStartService:_service_uninstall_failed_with_reduced_access
push 1
call fcn.004439a0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push str.VNLStartService:_Service_Manager_successfully_opened_with_reduced_access
push 2
jmp 0x42d575
push str.VNLStartService:_Service_Manager_successfully_opened
push 0x10
call fcn.004439a0
add esp, 8
push 0xf01ff
push esi
push edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x42d6af
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
ja 0x42d5c5
je 0x42d5bd
mov ecx, eax
sub ecx, 5
je 0x42d5b5
sub ecx, 1
jne 0x42d5cc
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_HANDLE
jmp 0x42d5e5
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_ACCESS_DENIED
jmp 0x42d5e5
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_NAME
jmp 0x42d5e5
cmp eax, 0x424
je 0x42d5df
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_0x_08x
push 1
call fcn.004439a0
add esp, 0x10
jmp 0x42d5ef
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_SERVICE_DOES_NOT_EXIST
push 1
call fcn.004439a0
add esp, 0xc
push str.VNLStartService:_Attempting_to_open_service_using_reduced_permissions
push 2
call fcn.004439a0
add esp, 8
push 0x14
push esi
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
test edi, edi
jne 0x42d6a5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
ja 0x42d645
je 0x42d63d
mov ecx, eax
sub ecx, 5
je 0x42d635
sub ecx, 1
jne 0x42d64c
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_HANDLE
jmp 0x42d67f
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_ACCESS_DENIED
jmp 0x42d67f
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_NAME
jmp 0x42d67f
cmp eax, 0x424
je 0x42d679
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_0x_08x
push 1
call fcn.004439a0
add esp, 0x10
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_SERVICE_DOES_NOT_EXIST
push 1
call fcn.004439a0
add esp, 0xc
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_successfully_opened_with_reduced_access
push 2
jmp 0x42d6b7
push esi
push str.VNLStartService:_Service__S_successfully_opened
push 0x10
call fcn.004439a0
add esp, 0xc
push 0
push 0
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
jne 0x42d77b
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x420
je 0x42d745
cmp eax, 0x433
jne 0x42d6f8
push esi
push str.VNLStartService:_Service__S_could_not_be_started:_a_required_service_is_not_present
push 1
call fcn.004439a0
add esp, 0xc
jmp 0x42d722
cmp eax, 0x422
jne 0x42d711
push esi
push str.VNLStartService:_Service__S_could_not_be_started_since_its_disabled
push 1
call fcn.004439a0
add esp, 0xc
jmp 0x42d722
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_started:_0x_08x
push 1
call fcn.004439a0
add esp, 0x10
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_is_already_running
push 0x10
call fcn.004439a0
add esp, 0xc
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_has_been_started
push 0x10
call fcn.004439a0
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
push edi
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x42d7d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.VNLStartService:_Could_not_query_service__S_status:_0x_08x
push 1
call fcn.004439a0
add esp, 0x10
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bf1
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx - 1]
cmp eax, 6
ja 0x42d7e8
mov eax, dword [ecx*4 + 0x4e9274]
jmp 0x42d7ed
mov eax, dword [str.INVALID]
push dword [ebp - 0xc]
push eax
push esi
push str.VNLStartService:_service__S_status:__s_cp0x_08x
push 0x20
call fcn.004439a0
mov eax, dword [ebp - 0xc]
add esp, 0x14
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x1c]
cmp eax, 2
jne 0x42d90f
nop dword [eax]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
add dword [ebp - 0x28], 0x1f4
lea eax, [ebp - 0x20]
push eax
push edi
add ebx, 0x1f4
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x42d8f5
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx - 1]
cmp eax, 6
ja 0x42d85f
mov eax, dword [ecx*4 + 0x4e9274]
jmp 0x42d864
mov eax, dword [str.INVALID]
push dword [ebp - 0xc]
push eax
push str.VNLStartService:_service_status:__s_cp0x_08x
push 0x20
call fcn.004439a0
mov eax, dword [ebp - 0xc]
add esp, 0x10
cmp eax, dword [ebp - 0x2c]
jbe 0x42d8a3
push dword [ebp - 8]
mov dword [ebp - 0x2c], eax
push str.VNLStartService:_Updating_sleep_hint:__d
push 0x20
call fcn.004439a0
mov eax, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0
jmp 0x42d8d4
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jbe 0x42d8d4
push str.VNLStartService:_Slept_hint_duration_without_any_progress
push 0x20
call fcn.004439a0
add esp, 8
cmp ebx, 0x7530
jae 0x42d8e2
push ebx
push 0x1e
push str.VNLStartService:_Not_giving_up_yet_since_havent_slept_for__i_seconds:__d
push 0x20
call fcn.004439a0
add esp, 0x10
mov eax, dword [ebp - 0x1c]
cmp eax, 2
je 0x42d820
jmp 0x42d90f
push 0x1e
push str.VNLStartService:_Slept_for__i_seconds__giving_up
push 2
call fcn.004439a0
add esp, 0xc
jmp 0x42d90c
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.VNLStartService:_Could_not_query_service__S_status:_0x_08x
push 1
call fcn.004439a0
add esp, 0x10
mov eax, dword [ebp - 0x1c]
cmp eax, 4
jne 0x42d925
push str.VNLStartService:_Service_is_running
push 0x20
call fcn.004439a0
add esp, 8
jmp 0x42d93c
push eax
call fcn.0042bee0
push eax
push esi
push str.VNLStartService:_Service__S_is_not_running:__s
push 1
call fcn.004439a0
add esp, 0x14
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 4]
xor eax, eax
cmp dword [ebp - 0x1c], 4
pop edi
sete al
xor ecx, ebp
pop esi
pop ebx
call fcn.00401bf1
mov esp, ebp
pop ebp
ret