Function at 0x1003acc
Capabilities:
Enumerate services
Query service status

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [0x1006074]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
push edi
xor edi, edi
mov dword [ebp - 0x44], ecx
push edi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x34], edi
call dword [sym.imp.IISUTIL.dll_public:_void___thiscall_BUFFER::constructor_unsigned_int_]
push 0xf01ff
push ebx
push esi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x40], edi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x3c], eax
cmp eax, edi
jne 0x1003b34
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jg 0x1003b28
mov dword [ebp - 0x34], eax
jmp 0x1003c77
and eax, 0xffff
or eax, 0x80070000
jmp 0x1003b20
mov esi, dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
lea ecx, [ebp - 0x38]
push ecx
push edi
push edi
push eax
call esi
test eax, eax
je 0x1003b53
mov dword [ebp - 0x34], 0x8000ffff
jmp 0x1003c6e
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0xc]
jbe 0x1003b75
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.IISUTIL.dll_private:_int___thiscall_BUFFER::ReallocStorage_unsigned_int_]
cmp eax, edi
jne 0x1003b75
mov dword [ebp - 0x34], 0x80070008
jmp 0x1003c6e
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push dword [ebp - 0x3c]
call esi
test eax, eax
je 0x1003b9c
mov esi, dword [ebp - 0x10]
lea eax, [ebp - 0x64]
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x1003bb8
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x1003bb0
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 0x34], eax
jmp 0x1003c6e
cmp dword [ebp + 0x10], edi
je 0x1003bc3
cmp dword [esi + 4], 3
je 0x1003bda
mov esi, dword [esi + 4]
cmp esi, edi
je 0x1003bda
cmp esi, 1
je 0x1003bda
cmp esi, 2
je 0x1003bda
cmp dword [ebp - 0x60], 1
je 0x1003bee
mov ecx, dword [ebp - 0x44]
push ebx
call fcn.0100387c
cmp eax, edi
mov dword [ebp - 0x34], eax
jl 0x1003c6e
mov esi, dword [sym.imp.ADVAPI32.dll_EnumDependentServicesW]
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
push edi
push edi
push 3
push dword [ebp - 0x3c]
call esi
test eax, eax
jne 0x1003c6e
mov eax, dword [ebp - 0x38]
cmp eax, dword [ebp - 0xc]
jbe 0x1003c23
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.IISUTIL.dll_private:_int___thiscall_BUFFER::ReallocStorage_unsigned_int_]
cmp eax, edi
je 0x1003b69
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push 3
push dword [ebp - 0x3c]
call esi
test eax, eax
je 0x1003b9c
mov ebx, dword [ebp - 0x40]
dec ebx
cmp ebx, edi
jl 0x1003c6e
mov esi, ebx
imul esi, esi, 0x24
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x44]
push edi
push dword [esi + eax]
push dword [ebp - 0x48]
call fcn.01003acc
cmp eax, edi
mov dword [ebp - 0x34], eax
jl 0x1003c6e
dec ebx
sub esi, 0x24
cmp ebx, edi
jge 0x1003c4d
push dword [ebp - 0x3c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test byte [ebp - 8], 1
pop edi
pop esi
pop ebx
je 0x1003c89
lea ecx, [ebp - 0x30]
call dword [sym.imp.IISUTIL.dll_public:_void___thiscall_BUFFER::FreeMemory_void_]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x34]
xor ecx, ebp
call fcn.010033bb
leave
ret 0xc