Function at 0x42a5a0
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b7fe0
mov eax, dword fs:[0]
push eax
sub esp, 0x58
mov eax, dword [0x4faee4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, edx
mov dword [ebp - 0x54], eax
mov ebx, ecx
mov dword [ebp - 0x64], ebx
push 4
push 0
push 0
mov byte [eax], 0
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerA]
mov edi, eax
mov dword [ebp - 0x5c], edi
test edi, edi
jne 0x42a640
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea ecx, [ebp - 0x40]
mov edx, esi
call fcn.0042aa30
push eax
push str.failed_to_open_service_control_manager._error:
push 0x500960
mov dword [ebp - 4], edi
call fcn.00428450
add esp, 8
push eax
call fcn.004286f0
push eax
call fcn.00428960
mov eax, dword [ebp - 0x2c]
add esp, 0xc
cmp eax, 0x10
jb 0x42a639
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004046a0
mov eax, esi
jmp 0x42a7ec
push 0x1568
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x60], 0
call fcn.00493961
mov esi, eax
add esp, 4
mov dword [ebp - 0x58], esi
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x50]
push eax
push 0x1568
push esi
push 3
push 0x30
push edi
call dword [sym.imp.ADVAPI32.dll_EnumServicesStatusA]
test eax, eax
jne 0x42a699
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x42a77a
cmp dword [ebp - 0x44], 0
mov dword [ebp - 0x48], 0
jbe 0x42a766
mov eax, esi
mov dword [ebp - 0x4c], esi
nop
mov edx, dword [eax]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x42a6cd
xor eax, eax
jmp 0x42a6db
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42a6d2
sub eax, esi
push eax
push edx
lea ecx, [ebp - 0x28]
call fcn.00404290
cmp dword [ebx + 0x14], 0x10
jb 0x42a6ef
mov edx, dword [ebx]
jmp 0x42a6f1
mov edx, ebx
cmp dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x28]
mov edi, dword [ebx + 0x10]
mov eax, edi
cmovae ecx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x18]
cmp ebx, edi
cmovb eax, ebx
push eax
push edx
push ecx
call fcn.004030d0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42a727
cmp edi, ebx
jbe 0x42a723
or esi, 0xffffffff
jmp 0x42a727
sbb esi, esi
neg esi
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x42a73c
inc eax
lea ecx, [ebp - 0x28]
push eax
push dword [ebp - 0x28]
call fcn.004046a0
test esi, esi
je 0x42a7cc
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x4c]
inc ecx
mov ebx, dword [ebp - 0x64]
add eax, 0x24
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x4c], eax
cmp ecx, dword [ebp - 0x44]
jb 0x42a6b0
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x54]
cmp byte [eax], 0
jne 0x42a7d2
cmp dword [ebp - 0x50], 0
ja 0x42a667
jmp 0x42a7d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea ecx, [ebp - 0x40]
mov edx, ebx
call fcn.0042aa30
push eax
push str.failed_to_enumerate_service_status._error:
push 0x500960
mov dword [ebp - 4], 1
call fcn.00428450
add esp, 8
push eax
call fcn.004286f0
push eax
call fcn.00428960
mov eax, dword [ebp - 0x2c]
add esp, 0xc
cmp eax, 0x10
jb 0x42a7da
inc eax
lea ecx, [ebp - 0x40]
push eax
push dword [ebp - 0x40]
call fcn.004046a0
jmp 0x42a7d4
mov eax, dword [ebp - 0x54]
mov byte [eax], 1
xor ebx, ebx
mov esi, dword [ebp - 0x58]
mov edi, dword [ebp - 0x5c]
push esi
call fcn.00483b69
add esp, 4
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00464228
mov esp, ebp
pop ebp
ret