Function at 0x414792
Capabilities:
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x439336
mov eax, dword fs:[0]
push eax
sub esp, 0x18c
mov eax, dword [0x4444c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x178], ecx
mov dword [ebp - 0xf8], str.YSDrv
push 0x14
push 0
push 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x100], eax
cmp dword [ebp - 0x100], 0
jne 0x414889
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x104], eax
push str.DoInstall.cpp
lea ecx, [ebp - 0x48]
call fcn.00408211
and dword [ebp - 4], 0
push dword [ebp - 0x104]
push str.couldnt_open_service_manager_in_SERVICE_QUERY_CONFIG__SERVICE_QUERY_STATUS_mode___dwErr_d__n
lea eax, [ebp - 0x2c]
push eax
call fcn.00419558
add esp, 0xc
mov dword [ebp - 0x17c], eax
mov eax, dword [ebp - 0x17c]
mov dword [ebp - 0x180], eax
mov byte [ebp - 4], 1
push 1
push dword [ebp - 0x180]
push 3
push 0x701
lea eax, [ebp - 0x48]
push eax
mov ecx, 0x44621c
call fcn.0041952f
mov byte [ebp - 4], 2
push 0
push 1
lea ecx, [ebp - 0x2c]
call fcn.00402ad2
mov byte [ebp - 4], 0
mov dword [ebp - 4], 3
push 0
push 1
lea ecx, [ebp - 0x48]
call fcn.00402ad2
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x104]
jmp 0x414c0e
push 0x14
push dword [ebp - 0xf8]
push dword [ebp - 0x100]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0
jne 0x4148ea
mov ecx, dword [ebp - 0x178]
call fcn.00413889
mov dword [ebp - 0x108], eax
cmp dword [ebp - 0x108], 0
je 0x4148d1
mov eax, dword [ebp - 0x108]
jmp 0x414c0e
push 0x14
push str.YSDrv
push dword [ebp - 0x100]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0xfc], eax
cmp dword [ebp - 0xfc], 0
je 0x414b4c
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0xfc]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x124], 4
jne 0x414925
and dword [ebp - 0xf4], 0
jmp 0x414b3b
cmp dword [ebp - 0x124], 2
jne 0x41493a
and dword [ebp - 0xf4], 0
jmp 0x414a0a
push 0
push 0
push dword [ebp - 0xfc]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
je 0x41495a
and dword [ebp - 0xf4], 0
jmp 0x414a0a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x12c], eax
push str.DoInstall.cpp
lea ecx, [ebp - 0x80]
call fcn.00408211
mov dword [ebp - 4], 4
push dword [ebp - 0x12c]
push str.StartService_failed_with_dwErr_d_n
lea eax, [ebp - 0x64]
push eax
call fcn.00419558
add esp, 0xc
mov dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dword [ebp - 0x188], eax
mov byte [ebp - 4], 5
push 1
push dword [ebp - 0x188]
push 3
push 0x735
lea eax, [ebp - 0x80]
push eax
mov ecx, 0x44621c
call fcn.0041952f
mov byte [ebp - 4], 6
push 0
push 1
lea ecx, [ebp - 0x64]
call fcn.00402ad2
mov byte [ebp - 4], 4
mov dword [ebp - 4], 7
push 0
push 1
lea ecx, [ebp - 0x80]
call fcn.00402ad2
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x12c]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x12c]
mov dword [ebp - 0xf4], eax
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0xfc]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
cmp dword [ebp - 0x124], 2
jne 0x414b22
mov dword [ebp - 0x130], 0x64
jmp 0x414a43
mov eax, dword [ebp - 0x130]
dec eax
mov dword [ebp - 0x130], eax
cmp dword [ebp - 0x130], 0
jle 0x414a72
cmp dword [ebp - 0x124], 2
jne 0x414a72
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x128]
push eax
push dword [ebp - 0xfc]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
jmp 0x414a36
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x134], eax
push str.DoInstall.cpp
lea ecx, [ebp - 0xb8]
call fcn.00408211
mov dword [ebp - 4], 8
push dword [ebp - 0x124]
push dword [ebp - 0x130]
push dword [ebp - 0x134]
push str.Failed_to_start._dwErr_d_iWait_d_status_d_n
lea eax, [ebp - 0x9c]
push eax
call fcn.00419558
add esp, 0x14
mov dword [ebp - 0x18c], eax
mov eax, dword [ebp - 0x18c]
mov dword [ebp - 0x190], eax
mov byte [ebp - 4], 9
push 1
push dword [ebp - 0x190]
push 3
push 0x749
lea eax, [ebp - 0xb8]
push eax
mov ecx, 0x44621c
call fcn.0041952f
mov byte [ebp - 4], 0xa
push 0
push 1
lea ecx, [ebp - 0x9c]
call fcn.00402ad2
mov byte [ebp - 4], 8
mov dword [ebp - 4], 0xb
push 0
push 1
lea ecx, [ebp - 0xb8]
call fcn.00402ad2
or dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x124], 4
jne 0x414b34
and dword [ebp - 0xf4], 0
jmp 0x414b3b
or dword [ebp - 0xf4], 0xffffffff
push dword [ebp - 0xfc]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x414bfc
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x138], eax
push str.DoInstall.cpp
lea ecx, [ebp - 0xf0]
call fcn.00408211
mov dword [ebp - 4], 0xc
push dword [ebp - 0x138]
push str.OpenService_failed__LastError_d_n
lea eax, [ebp - 0xd4]
push eax
call fcn.00419558
add esp, 0xc
mov dword [ebp - 0x194], eax
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x198], eax
mov byte [ebp - 4], 0xd
push 1
push dword [ebp - 0x198]
push 3
push 0x75a
lea eax, [ebp - 0xf0]
push eax
mov ecx, 0x44621c
call fcn.0041952f
mov byte [ebp - 4], 0xe
push 0
push 1
lea ecx, [ebp - 0xd4]
call fcn.00402ad2
mov byte [ebp - 4], 0xc
mov dword [ebp - 4], 0xf
push 0
push 1
lea ecx, [ebp - 0xf0]
call fcn.00402ad2
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0xf4], eax
push dword [ebp - 0x100]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041c438
leave
ret