Function at 0xa07db0
Capabilities:
Enumerate services
Query service status

Disassembly:
sub esp, 0x21c
push ebx
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
call fcn.00a04af0
xor ebx, ebx
cmp eax, ebx
jne 0xa07dd6
pop edi
xor eax, eax
pop ebx
add esp, 0x21c
ret 4
mov ecx, dword [edi + 4]
push ebp
mov ebp, dword [esp + 0x22c]
push esi
push ebp
push ecx
mov ecx, eax
call fcn.00a06400
test eax, eax
jne 0xa07fd5
mov eax, dword [edi]
xor esi, esi
cmp eax, ebx
je 0xa07e2d
mov ecx, dword [0xaf4214]
cmp ecx, ebx
je 0xa07e15
lea edx, [esp + 0x28]
push edx
push 0x24
push ebp
push ebx
push eax
call ecx
mov esi, eax
jmp 0xa07e25
push ebp
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
mov esi, eax
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
cmp esi, ebx
jne 0xa07fd5
mov eax, dword [0xaf4224]
mov dword [esp + 0x20], ebx
cmp eax, ebx
je 0xa07f09
mov eax, dword [edi + 0x38]
lea ecx, [esp + 0x20]
push 0
push ecx
mov eax, dword [eax + 4]
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x2c]
push edx
push ecx
mov ecx, dword [edi + 0x20]
lea edx, [esp + 0x3c]
push 0x200
push edx
push 3
push ecx
push 0
push eax
call fcn.00a09b50
mov ebx, eax
add esp, 0x28
test ebx, ebx
mov dword [esp + 0x18], ebx
jne 0xa07e87
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0xa07ee3
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x2c]
test eax, eax
mov dword [esp + 0x10], 0
jbe 0xa07edf
test esi, esi
jne 0xa07fd5
mov edx, dword [edi + 4]
mov eax, dword [ebx]
push edx
push eax
call fcn.00a886d0
add esp, 8
test eax, eax
jne 0xa07ecb
lea esi, [ebx + 8]
mov ecx, 9
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov esi, 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add ebx, 0x2c
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0xa07e9b
mov ebx, dword [esp + 0x18]
test esi, esi
jne 0xa07fd5
test ebx, ebx
jne 0xa07fc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0xa07e3e
jmp 0xa07fc3
mov ecx, dword [edi + 0x38]
lea edx, [esp + 0x20]
push edx
lea edx, [esp + 0x28]
mov eax, dword [ecx + 4]
lea ecx, [esp + 0x18]
push ecx
push edx
mov edx, dword [edi + 0x20]
lea ecx, [esp + 0x38]
push 0x200
push ecx
push 3
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_EnumServicesStatusW]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x18], ebx
jne 0xa07f4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0xa07faa
mov eax, dword [esp + 0x14]
lea ebx, [esp + 0x2c]
test eax, eax
mov dword [esp + 0x10], 0
jbe 0xa07fa6
test esi, esi
jne 0xa07fd5
mov eax, dword [edi + 4]
mov ecx, dword [ebx]
push eax
push ecx
call fcn.00a886d0
add esp, 8
test eax, eax
jne 0xa07f92
lea esi, [ebx + 8]
mov ecx, 9
mov edi, ebp
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x1c]
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x20], eax
mov esi, 1
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add ebx, 0x24
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jb 0xa07f60
mov ebx, dword [esp + 0x18]
test esi, esi
jne 0xa07fd5
test ebx, ebx
jne 0xa07fc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0xa07f09
mov ecx, 9
xor eax, eax
mov edi, ebp
rep stosd dword es:[edi], eax
mov dword [ebp + 4], 1
pop esi
pop ebp
pop edi
mov eax, 1
pop ebx
add esp, 0x21c
ret 4