Function at 0x100afb1
Capabilities:
Check for time delay via gettickcount
Query service status
Start service

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x44
push ebx
push esi
push dword [ebp + 8]
xor ebx, ebx
push 0x10064b4
push ebx
call fcn.010097fc
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
add esp, 0xc
mov dword [ebp - 4], ebx
call esi
push 0xf003f
push ebx
push ebx
mov dword [ebp - 0x20], eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x1c], eax
cmp eax, ebx
je 0x100b17a
push edi
push 0xf01ff
push dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
mov dword [ebp - 0x14], edi
cmp edi, ebx
je 0x100b159
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
je 0x100b114
lea eax, [ebp - 0x18]
push eax
push 0x24
lea eax, [ebp - 0x44]
push eax
push ebx
push edi
mov edi, dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
call edi
test eax, eax
je 0x100b105
call esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], 1
cmp dword [ebp - 0x40], 2
jne 0x100b0e0
mov eax, dword [ebp - 0x2c]
push 0xa
xor edx, edx
pop ecx
div ecx
mov ecx, 0x3e8
cmp eax, ecx
jb 0x100b076
mov ecx, 0x2710
cmp eax, ecx
jbe 0x100b078
mov eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x18]
push eax
push 0x24
lea eax, [ebp - 0x44]
push eax
push ebx
push dword [ebp - 0x14]
call edi
test eax, eax
je 0x100b0bf
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x30], eax
jbe 0x100b0a8
call esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
jmp 0x100b0d7
call esi
mov ecx, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x10]
add ecx, 0x2710
cmp eax, ecx
jbe 0x100b0d7
mov dword [ebp - 8], ebx
jmp 0x100b0d7
mov dword [ebp - 8], ebx
call fcn.0100af8c
push eax
push 0x1006468
push 1
call fcn.010097fc
add esp, 0xc
cmp dword [ebp - 8], ebx
jne 0x100b050
cmp dword [ebp - 0x40], 4
jne 0x100b0f0
push dword [ebp + 8]
push 0x1006428
jmp 0x100b129
mov eax, dword [ebp - 0x2c]
add eax, 0x2710
push eax
push dword [ebp + 8]
push 0x10063b8
push 2
jmp 0x100b146
call fcn.0100af8c
push eax
push 0x1006468
push 1
jmp 0x100b131
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x420
jne 0x100b13b
push dword [ebp + 8]
push 0x1006378
mov dword [ebp - 4], 1
push ebx
call fcn.010097fc
add esp, 0xc
jmp 0x100b14e
push eax
push dword [ebp + 8]
push 0x1006330
push 1
call fcn.010097fc
add esp, 0x10
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x100b16e
call fcn.0100af8c
push eax
push 0x10062f8
push 1
call fcn.010097fc
add esp, 0xc
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
jmp 0x100b18f
call fcn.0100af8c
push eax
push 0x10062bc
push 1
call fcn.010097fc
add esp, 0xc
cmp dword [0x101042c], ebx
je 0x100b1f1
mov al, byte [0x1010430]
cmp al, 4
jae 0x100b1a4
cmp al, bl
jne 0x100b1f1
mov ecx, dword [0x101041c]
mov edx, 0x80000000
and ecx, edx
xor eax, eax
or eax, ecx
je 0x100b1f1
mov ecx, dword [0x1010424]
mov eax, ecx
and eax, edx
xor edx, edx
cmp edx, dword [0x1010420]
jne 0x100b1f1
cmp eax, ecx
jne 0x100b1f1
push dword [ebp - 4]
call esi
sub eax, dword [ebp - 0x20]
push eax
push dword [ebp + 8]
push 0x1006260
push dword [0x1010404]
push dword [0x1010400]
call fcn.0100ae60
mov eax, dword [ebp - 4]
pop esi
pop ebx
leave
ret 4