Function at 0x766621d7
Capabilities:
Continue service
Query service configuration
Query service status
Start service

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x440
mov eax, dword [0x76666130]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0xc]
xor esi, esi
mov dword [ebp - 4], eax
mov dword [ebp - 0x40c], ebx
mov dword [ebp - 0x424], edi
mov dword [ebp - 0x418], 1
mov dword [ebp - 0x420], esi
call fcn.765e448a
test eax, eax
jne 0x76662220
inc eax
jmp 0x7666250a
cmp dword [edi], esi
jne 0x76662505
push 1
push esi
push esi
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, esi
mov dword [ebp - 0x414], eax
jne 0x76662258
cmp dword [ebp + 0x10], esi
je 0x76662251
push esi
push esi
push esi
push 0x17d
push 4
push esi
call fcn.76663357
xor eax, eax
jmp 0x7666250a
mov edi, dword [sym.imp.ADVAPI32.dll_OpenServiceW]
push 5
push ebx
push eax
call edi
cmp eax, esi
mov dword [ebp - 0x410], eax
jne 0x766622bc
cmp dword [ebp + 0x10], esi
je 0x76662283
push esi
push esi
push esi
push 0x189
push 4
push esi
call fcn.76663357
push 4
push ebx
push dword [ebp - 0x414]
mov dword [ebp - 0x418], esi
call edi
cmp eax, esi
mov dword [ebp - 0x410], eax
jne 0x766622bc
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x190
push 4
push esi
call fcn.76663357
jmp 0x766624d6
push dword [ebp + 0x10]
call fcn.76661ed9
cmp eax, esi
mov dword [ebp - 0x41c], eax
je 0x766624ca
cmp dword [ebp - 0x418], esi
je 0x76662368
lea ecx, [ebp - 0x408]
push ecx
mov eax, 0x400
push eax
mov dword [ebp - 0x408], eax
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x410]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigA]
test eax, eax
je 0x76662548
cmp dword [ebp - 0x400], 4
jne 0x76662368
mov ebx, 0x7666266c
push ebx
push dword [ebp - 0x40c]
call sub.msvcrt.dll__se___X8U1
test eax, eax
pop ecx
pop ecx
jne 0x7666252b
call fcn.76661dc8
cmp eax, esi
je 0x7666252b
xor ecx, ecx
cmp eax, 2
setne cl
push 1
inc ecx
inc ecx
push ecx
push ebx
call fcn.76661ffa
test eax, eax
je 0x76662519
mov dword [ebp - 0x418], esi
mov dword [ebp - 0x420], 1
lea eax, [ebp - 0x440]
push eax
push dword [ebp - 0x410]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x7666255a
mov eax, dword [ebp - 0x43c]
cmp eax, 4
je 0x76662578
cmp eax, 3
je 0x766624ad
cmp eax, 6
je 0x766624ad
cmp eax, 2
je 0x766624ad
cmp eax, 1
jne 0x7666244e
push 0x10
push dword [ebp - 0x40c]
mov dword [ebp - 0x408], esi
push dword [ebp - 0x414]
call edi
mov ebx, eax
cmp ebx, esi
je 0x766625a2
push 1
push dword [ebp - 0x40c]
push 0x76662628
push esi
call fcn.7666349d
push esi
push esi
push ebx
mov dword [ebp - 0x420], 1
call dword [sym.imp.ADVAPI32.dll_StartServiceA]
test eax, eax
jne 0x76662419
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x420
mov dword [ebp - 0x408], eax
jne 0x76662419
mov dword [ebp - 0x408], esi
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp dword [ebp - 0x408], esi
je 0x766624ad
push dword [ebp - 0x408]
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x22b
jmp 0x766622af
cmp eax, 7
jne 0x766624ca
push 0x40
push dword [ebp - 0x40c]
xor ebx, ebx
push dword [ebp - 0x414]
call edi
cmp eax, esi
mov dword [ebp - 0x408], eax
je 0x766625b8
lea ecx, [ebp - 0x440]
push ecx
push 3
push eax
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x76662499
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, 0x420
jne 0x76662499
xor ebx, ebx
push dword [ebp - 0x408]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp ebx, esi
jne 0x766625ce
dec dword [ebp - 0x41c]
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebp - 0x41c], esi
jne 0x766622d2
mov eax, dword [ebp - 0x424]
mov dword [eax], 1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [ebp - 0x410], esi
mov edi, eax
je 0x766624f2
push dword [ebp - 0x410]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push dword [ebp - 0x414]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [0x766683d8]
mov ecx, dword [ebp - 4]
pop edi
pop esi
pop ebx
call fcn.765e4260
leave
ret 0xc
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x1b8
jmp 0x766622af
push 0x422
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x1c2
jmp 0x766622af
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x1c9
jmp 0x766622af
cmp dword [ebp + 0x10], esi
je 0x766624ca
push esi
push esi
push esi
push 0x1d4
push 4
push esi
call fcn.76663357
jmp 0x766624ca
cmp dword [ebp - 0x420], esi
je 0x76662593
push 1
push dword [ebp - 0x40c]
push 0x766625ec
push esi
call fcn.7666349d
mov dword [0x766683d8], 1
jmp 0x766624ca
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x211
jmp 0x766622af
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x242
jmp 0x766622af
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [ebp + 0x10], esi
je 0x766624d6
push esi
push esi
push esi
push 0x255
jmp 0x766622af