Function at 0x433bb0
Capabilities:
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
mov eax, dword [0x4ed018]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
xor eax, eax
push edi
xor edi, edi
mov dword [ebp - 0x28], eax
test esi, esi
jne 0x433bf1
push str.VNLStartService:_invalid_parameter
push 1
call fcn.00446b80
add esp, 8
xor eax, eax
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
push ebx
push esi
push str.VNLStartService:_Attempting_to_start_service:__S
push 0x20
call fcn.00446b80
add esp, 0xc
push 0xf003f
push 0x4b9210
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov ebx, eax
mov dword [ebp - 0x24], ebx
test ebx, ebx
jne 0x433d51
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x433c70
cmp eax, 0x57
je 0x433c5d
cmp eax, 0x429
je 0x433c4a
push eax
push str.VNLStartService:_Service_Manager_open_failed:_0x_08X
push 1
call fcn.00446b80
add esp, 0xc
jmp 0x433c8b
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_DATABASE_DOES_NOT_EXIST
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x433c81
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_INVALID_PARAMETER
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x433c81
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_ACCESS_DENIED
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_you_must_be_an_administrator
push 1
call fcn.00446b80
add esp, 0x10
push str.VNLStartService:_service_uninstall_failed__attempting_open_with_less_access
push 1
call fcn.00446b80
add esp, 8
push closesocket
push 0x4b9210
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov ebx, eax
mov dword [ebp - 0x24], eax
test ebx, ebx
jne 0x433d45
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 5
je 0x433d08
cmp eax, 0x57
je 0x433cf5
cmp eax, 0x429
je 0x433ce2
push eax
push str.VNLStartService:_Service_Manager_open_failed:_0x_08X
push 1
call fcn.00446b80
add esp, 0xc
jmp 0x433d23
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_DATABASE_DOES_NOT_EXIST
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x433d19
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_INVALID_PARAMETER
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_system_config_appears_to_be_corrupt
jmp 0x433d19
push str.VNLStartService:_Service_Manager_open_failed:_ERROR_ACCESS_DENIED
push 1
call fcn.00446b80
push str.VNLStartService:_Service_Manager_open_failed:_you_must_be_an_administrator
push 1
call fcn.00446b80
add esp, 0x10
push str.VNLStartService:_service_uninstall_failed_with_reduced_access
push 1
call fcn.00446b80
add esp, 8
xor eax, eax
pop ebx
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
mov eax, 2
mov ecx, str.VNLStartService:_Service_Manager_successfully_opened_with_reduced_access
jmp 0x433d5b
mov eax, 0x10
mov ecx, str.VNLStartService:_Service_Manager_successfully_opened
push ecx
push eax
call fcn.00446b80
add esp, 8
push 0xf01ff
push esi
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
test ebx, ebx
jne 0x433e99
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
ja 0x433dad
je 0x433da5
mov ecx, eax
sub ecx, 5
je 0x433d9d
sub ecx, 1
jne 0x433db4
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_HANDLE
jmp 0x433dcd
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_ACCESS_DENIED
jmp 0x433dcd
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_NAME
jmp 0x433dcd
cmp eax, 0x424
je 0x433dc7
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_0x_08x
push 1
call fcn.00446b80
add esp, 0x10
jmp 0x433dd7
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_SERVICE_DOES_NOT_EXIST
push 1
call fcn.00446b80
add esp, 0xc
push str.VNLStartService:_Attempting_to_open_service_using_reduced_permissions
push 2
call fcn.00446b80
add esp, 8
push 0x14
push esi
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
test ebx, ebx
jne 0x433e8d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7b
ja 0x433e2d
je 0x433e25
mov ecx, eax
sub ecx, 5
je 0x433e1d
sub ecx, 1
jne 0x433e34
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_HANDLE
jmp 0x433e67
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_ACCESS_DENIED
jmp 0x433e67
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_ERROR_INVALID_NAME
jmp 0x433e67
cmp eax, 0x424
je 0x433e61
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_opened:_0x_08x
push 1
call fcn.00446b80
add esp, 0x10
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
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.00446b80
add esp, 0xc
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
mov eax, 2
mov ecx, str.VNLStartService:_Service__S_successfully_opened_with_reduced_access
jmp 0x433ea3
mov eax, 0x10
mov ecx, str.VNLStartService:_Service__S_successfully_opened
push esi
push ecx
push eax
call fcn.00446b80
add esp, 0xc
push 0
push 0
push ebx
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
jne 0x433f6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x420
je 0x433f34
cmp eax, 0x433
jne 0x433ee7
push esi
push str.VNLStartService:_Service__S_could_not_be_started:_a_required_service_is_not_present
push 1
call fcn.00446b80
add esp, 0xc
jmp 0x433f11
cmp eax, 0x422
jne 0x433f00
push esi
push str.VNLStartService:_Service__S_could_not_be_started_since_its_disabled
push 1
call fcn.00446b80
add esp, 0xc
jmp 0x433f11
push eax
push esi
push str.VNLStartService:_Service__S_could_not_be_started:_0x_08x
push 1
call fcn.00446b80
add esp, 0x10
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_is_already_running
push 0x10
call fcn.00446b80
add esp, 0xc
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop ebx
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
push esi
push str.VNLStartService:_Service__S_has_been_started
push 0x10
call fcn.00446b80
add esp, 0xc
lea eax, [ebp - 0x20]
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x433fc3
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.00446b80
add esp, 0x10
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x24]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00401bd5
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx - 1]
cmp eax, 6
ja 0x433fd7
mov eax, dword [ecx*4 + 0x4ef2a4]
jmp 0x433fdc
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.00446b80
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 0x434102
nop dword [eax + eax]
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
add dword [ebp - 0x28], 0x1f4
lea eax, [ebp - 0x20]
push eax
push ebx
add edi, 0x1f4
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x4340e8
mov ecx, dword [ebp - 0x1c]
lea eax, [ecx - 1]
cmp eax, 6
ja 0x43404f
mov eax, dword [ecx*4 + 0x4ef2a4]
jmp 0x434054
mov eax, dword [str.INVALID]
push dword [ebp - 0xc]
push eax
push str.VNLStartService:_service_status:__s_cp0x_08x
push 0x20
call fcn.00446b80
mov eax, dword [ebp - 0xc]
add esp, 0x10
cmp eax, dword [ebp - 0x2c]
jbe 0x434093
push dword [ebp - 8]
mov dword [ebp - 0x2c], eax
push str.VNLStartService:_Updating_sleep_hint:__d
push 0x20
call fcn.00446b80
mov eax, dword [ebp - 8]
add esp, 0xc
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0
jmp 0x4340c7
mov eax, dword [ebp - 0x28]
cmp eax, dword [ebp - 0x30]
jbe 0x4340c7
push str.VNLStartService:_Slept_hint_duration_without_any_progress
push 0x20
call fcn.00446b80
add esp, 8
cmp edi, 0x7530
jae 0x4340d5
push edi
push 0x1e
push str.VNLStartService:_Not_giving_up_yet_since_havent_slept_for__i_seconds:__d
push 0x20
lfence
call fcn.00446b80
add esp, 0x10
mov eax, dword [ebp - 0x1c]
cmp eax, 2
je 0x434010
jmp 0x434102
push 0x1e
push str.VNLStartService:_Slept_for__i_seconds__giving_up
push 2
call fcn.00446b80
add esp, 0xc
jmp 0x4340ff
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.00446b80
add esp, 0x10
mov eax, dword [ebp - 0x1c]
cmp eax, 4
jne 0x434118
push str.VNLStartService:_Service_is_running
push 0x20
call fcn.00446b80
add esp, 8
jmp 0x43412f
push eax
call fcn.004326d0
push eax
push esi
push str.VNLStartService:_Service__S_is_not_running:__s
push 1
call fcn.00446b80
add esp, 0x14
push ebx
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 ebx
sete al
xor ecx, ebp
pop edi
pop esi
call fcn.00401bd5
mov esp, ebp
pop ebp
ret