Function at 0x10645b2
Capabilities:
Enumerate services

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
xor ebx, ebx
push 6
pop ecx
xor eax, eax
lea edi, [ebp - 0x2c]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 4], ebx
rep stosd dword es:[edi], eax
mov dword [ebp - 8], ebx
mov eax, dword [0x1075004]
mov esi, 0x1075004
cmp eax, esi
je 0x1064604
test byte [eax + 0x1c], 2
je 0x1064604
cmp byte [eax + 0x19], 5
jb 0x1064604
push 0x1005ccc
push 0x20
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010090c5
lea eax, [ebp - 0x2c]
push eax
push 0x2c
xor edi, edi
inc edi
push edi
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.01063ef2
cmp eax, ebx
jne 0x106481f
cmp dword [ebp - 0x2c], edi
jne 0x1064666
mov eax, dword [0x1075004]
cmp eax, esi
je 0x106480a
test byte [eax + 0x1c], 2
je 0x106480a
cmp byte [eax + 0x19], 5
jb 0x106480a
push 0x1005ccc
push 0x21
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010090c5
jmp 0x106480a
cmp dword [ebp + 0x10], ebx
je 0x10647be
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
push ebx
push ebx
push edi
push dword [ebp - 4]
mov edi, dword [sym.imp.ADVAPI32.dll_EnumDependentServicesW]
mov dword [ebp + 0x10], ebx
mov dword [ebp + 0xc], ebx
call edi
test eax, eax
jne 0x1064734
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
je 0x10646d5
mov ecx, dword [0x1075004]
cmp ecx, esi
je 0x1064826
test byte [ecx + 0x1c], 2
je 0x1064826
cmp byte [ecx + 0x19], 5
jb 0x1064826
push eax
push 0x1005ccc
push 0x22
push dword [ecx + 0x14]
push dword [ecx + 0x10]
jmp 0x1064787
cmp dword [ebp + 0xc], ebx
je 0x10647bb
push dword [ebp + 0xc]
call fcn.0105c544
mov dword [ebp - 8], eax
cmp eax, ebx
jne 0x1064734
mov eax, dword [0x1075004]
cmp eax, esi
je 0x1064826
test byte [eax + 0x1c], 2
je 0x1064826
cmp byte [eax + 0x19], 5
jb 0x1064826
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push dword [ebp + 0xc]
mov eax, dword [0x1075004]
push 0x1005ccc
push 0x23
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010148b3
jmp 0x1064826
lea eax, [ebp + 0x10]
push eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp + 0xc]
push dword [ebp - 8]
push 1
push dword [ebp - 4]
call edi
test eax, eax
jne 0x1064791
mov eax, dword [0x1075004]
cmp eax, esi
je 0x1064826
test byte [eax + 0x1c], 2
je 0x1064826
cmp byte [eax + 0x19], 5
jb 0x1064826
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x1075004]
push 0x1005ccc
push 0x24
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ca9d
jmp 0x1064826
mov dword [ebp - 0x10], ebx
cmp dword [ebp + 0x10], ebx
jbe 0x10647bb
mov edi, dword [ebp - 8]
push 0xffffffffffffffff
push ebx
push dword [edi]
push dword [ebp + 8]
call fcn.010645b2
test eax, eax
je 0x1064826
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
add edi, 0x24
cmp eax, dword [ebp + 0x10]
jb 0x106479c
xor edi, edi
inc edi
lea eax, [ebp - 0x30]
push eax
push edi
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x1064805
mov eax, dword [0x1075004]
cmp eax, esi
je 0x1064826
test byte [eax + 0x1c], 2
je 0x1064826
cmp byte [eax + 0x19], 2
jb 0x1064826
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x1075004]
push 0x1005ccc
push 0x25
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ca9d
jmp 0x1064826
cmp dword [ebp + 0x14], ebx
jne 0x106480f
mov dword [ebp - 0xc], edi
jmp 0x1064826
push dword [ebp + 0x14]
push edi
push dword [ebp - 4]
call fcn.01063d54
cmp eax, ebx
je 0x106480a
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
push dword [ebp - 8]
call fcn.0105c5dc
push dword [ebp - 4]
push dword [ebp - 0x14]
call fcn.01063479
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret 0x10