Function at 0x100aeaf
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 0x10063f4
push ebx
call fcn.010096fc
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 0x100b078
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 0x100b057
push ebx
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
je 0x100b012
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 0x100b003
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 0x100afde
mov eax, dword [ebp - 0x2c]
push 0xa
xor edx, edx
pop ecx
div ecx
mov ecx, 0x3e8
cmp eax, ecx
jb 0x100af74
mov ecx, 0x2710
cmp eax, ecx
jbe 0x100af76
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 0x100afbd
mov eax, dword [ebp - 0xc]
cmp dword [ebp - 0x30], eax
jbe 0x100afa6
call esi
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
jmp 0x100afd5
call esi
mov ecx, dword [ebp - 0x2c]
sub eax, dword [ebp - 0x10]
add ecx, 0x2710
cmp eax, ecx
jbe 0x100afd5
mov dword [ebp - 8], ebx
jmp 0x100afd5
mov dword [ebp - 8], ebx
call fcn.0100ae8c
push eax
push 0x10063a8
push 1
call fcn.010096fc
add esp, 0xc
cmp dword [ebp - 8], ebx
jne 0x100af4e
cmp dword [ebp - 0x40], 4
jne 0x100afee
push dword [ebp + 8]
push 0x1006368
jmp 0x100b027
mov eax, dword [ebp - 0x2c]
add eax, 0x2710
push eax
push dword [ebp + 8]
push 0x10062f8
push 2
jmp 0x100b044
call fcn.0100ae8c
push eax
push 0x10063a8
push 1
jmp 0x100b02f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x420
jne 0x100b039
push dword [ebp + 8]
push 0x10062b8
mov dword [ebp - 4], 1
push ebx
call fcn.010096fc
add esp, 0xc
jmp 0x100b04c
push eax
push dword [ebp + 8]
push 0x1006270
push 1
call fcn.010096fc
add esp, 0x10
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x100b06c
call fcn.0100ae8c
push eax
push 0x1006238
push 1
call fcn.010096fc
add esp, 0xc
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
jmp 0x100b08d
call fcn.0100ae8c
push eax
push 0x10061fc
push 1
call fcn.010096fc
add esp, 0xc
cmp dword [0x101042c], ebx
je 0x100b0ef
mov al, byte [0x1010430]
cmp al, 4
jae 0x100b0a2
cmp al, bl
jne 0x100b0ef
mov ecx, dword [0x101041c]
mov edx, 0x80000000
and ecx, edx
xor eax, eax
or eax, ecx
je 0x100b0ef
mov ecx, dword [0x1010424]
mov eax, ecx
and eax, edx
xor edx, edx
cmp edx, dword [0x1010420]
jne 0x100b0ef
cmp eax, ecx
jne 0x100b0ef
push dword [ebp - 4]
call esi
sub eax, dword [ebp - 0x20]
push eax
push dword [ebp + 8]
push 0x10061a0
push dword [0x1010404]
push dword [0x1010400]
call fcn.0100ad60
mov eax, dword [ebp - 4]
pop esi
pop ebx
leave
ret 4