Function at 0x4ddb60
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4de032
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x16], 0
push 5
push 0x4de040
push 0
call sub.advapi32.dll_OpenSCManagerW
mov ebx, eax
test ebx, ebx
jne 0x4ddbdf
call sub.kernel32.dll_GetLastError
mov esi, eax
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [0x4efd08]
mov edx, 0x4de06c
call fcn.00408668
call fcn.0040d2e4
mov edx, 0x4de0b8
call fcn.00408668
call main
call fcn.00406f90
mov eax, esi
call fcn.0040a994
xor eax, eax
mov dword [ebp - 0x14], eax
push 0x5d1
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4ddb38]
call fcn.0040db60
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4ddc09
mov eax, dword [eax - 4]
imul edx, eax, 0x2c
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.00407fa4
mov esi, dword [ebp - 4]
test esi, esi
je 0x4ddc20
mov esi, dword [esi - 4]
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
imul eax, esi, 0x2c
push eax
mov eax, dword [ebp - 4]
push eax
push 3
push 0x30
push 0
push ebx
call sub.advapi32.dll_EnumServicesStatusExW
test eax, eax
jne 0x4ddd3d
call sub.kernel32.dll_GetLastError
mov esi, eax
cmp esi, 0xea
je 0x4ddc99
push ebx
call sub.advapi32.dll_CloseServiceHandle
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [0x4efd08]
mov edx, 0x4de0cc
call fcn.00408668
call fcn.0040d2e4
mov edx, 0x4de0b8
call fcn.00408668
call main
call fcn.00406f90
mov eax, esi
call fcn.0040a994
jmp 0x4ddd3d
push 0x1745
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x4ddb38]
call fcn.0040db60
add esp, 4
mov eax, dword [ebp - 4]
test eax, eax
je 0x4ddcbe
mov eax, dword [eax - 4]
imul edx, eax, 0x2c
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.00407fa4
mov esi, dword [ebp - 4]
test esi, esi
je 0x4ddcd5
mov esi, dword [esi - 4]
push 0
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
imul eax, esi, 0x2c
push eax
mov eax, dword [ebp - 4]
push eax
push 3
push 0x30
push 0
push ebx
call sub.advapi32.dll_EnumServicesStatusExW
test eax, eax
jne 0x4ddd3d
push ebx
call sub.advapi32.dll_CloseServiceHandle
call sub.kernel32.dll_GetLastError
mov esi, eax
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [0x4efd08]
mov edx, 0x4de0cc
call fcn.00408668
call fcn.0040d2e4
mov edx, 0x4de0b8
call fcn.00408668
call main
call fcn.00406f90
mov eax, esi
call fcn.0040a994
push ebx
call sub.advapi32.dll_CloseServiceHandle
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 4]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je 0x4ddd5c
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax - 4]
mov dword [ebp - 0x1c], eax
mov esi, dword [ebp - 0x1c]
dec esi
test esi, esi
jl 0x4dddcc
inc esi
xor ebx, ebx
imul edi, ebx, 0xb
mov eax, dword [ebp - 4]
cmp dword [eax + edi*4], 0
je 0x4dddcc
lea eax, [ebp - 0x30]
mov edx, dword [ebp - 4]
mov edx, dword [edx + edi*4]
call fcn.0040b650
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x2c]
call fcn.00421b30
mov eax, dword [ebp - 0x2c]
push eax
lea edx, [ebp - 0x34]
mov eax, 0x4de124
call fcn.00421b30
mov edx, dword [ebp - 0x34]
pop eax
call fcn.0040b978
jne 0x4dddc8
mov byte [ebp - 0x15], 1
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + edi*4]
call fcn.0040b650
mov eax, dword [ebp - 4]
mov eax, dword [eax + edi*4 + 0x24]
mov dword [0x4f78f4], eax
jmp 0x4dddcc
inc ebx
dec esi
jne 0x4ddd67
cmp byte [ebp - 0x15], 0
jne 0x4dddf5
mov eax, dword [0x4efd08]
mov edx, 0x4de148
call fcn.00408668
call main
call fcn.00406f90
mov eax, 0x424
call fcn.0040a994
cmp dword [0x4f78f4], 0
jne 0x4dde49
cmp byte [ebp - 0x16], 0
je 0x4dde27
mov eax, dword [0x4efd08]
mov edx, 0x4de18c
call fcn.00408668
call main
call fcn.00406f90
mov eax, 0x426
call fcn.0040a994
mov edx, 2
mov eax, 0x4de124
call fcn.004dd424
mov eax, 0x4de124
call fcn.004dd708
mov byte [ebp - 0x16], 1
jmp 0x4ddb8f
mov eax, dword [0x4f78f4]
xor edx, edx
push edx
push eax
mov eax, dword [0x4efd08]
mov edx, 0x4de1fc
call fcn.00408668
call fcn.0040d2e4
mov edx, 0x4de0b8
call fcn.00408668
call main
call fcn.00406f90
mov eax, 0x4f78f8
mov edx, dword [0x4dc864]
call fcn.0040dc84
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4dde9f
mov eax, dword [ebp - 0x20]
mov eax, dword [eax - 4]
mov dword [ebp - 0x20], eax
mov esi, dword [ebp - 0x20]
dec esi
test esi, esi
jl 0x4ddf52
inc esi
xor ebx, ebx
imul edi, ebx, 0xb
mov eax, dword [ebp - 4]
cmp dword [eax + edi*4], 0
je 0x4ddf52
mov eax, dword [ebp - 4]
mov eax, dword [eax + edi*4 + 0x24]
cmp eax, dword [0x4f78f4]
jne 0x4ddf4a
lea eax, [ebp - 0x38]
mov edx, dword [ebp - 4]
mov edx, dword [edx + edi*4]
call fcn.0040b650
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp - 8]
call fcn.0040b978
je 0x4ddf4a
mov eax, dword [0x4f78f8]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x4ddeff
mov eax, dword [ebp - 0x24]
mov eax, dword [eax - 4]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
inc eax
push eax
mov eax, 0x4f78f8
mov ecx, 1
mov edx, dword [0x4dc864]
call fcn.0040db60
add esp, 4
mov eax, dword [0x4f78f8]
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x4ddf33
mov eax, dword [ebp - 0x28]
mov eax, dword [eax - 4]
mov dword [ebp - 0x28], eax
mov eax, dword [0x4f78f8]
mov edx, dword [ebp - 0x28]
lea eax, [eax + edx*4 - 4]
mov edx, dword [ebp - 4]
mov edx, dword [edx + edi*4]
call fcn.0040b650
inc ebx
dec esi
jne 0x4ddeae
mov eax, 0x4f78fc
call fcn.0040ab34
mov edi, dword [0x4f78f8]
test edi, edi
je 0x4ddf69
mov edi, dword [edi - 4]
mov esi, edi
dec esi
test esi, esi
jl 0x4ddfb7
inc esi
xor ebx, ebx
cmp dword [0x4f78fc], 0
jne 0x4ddf91
mov eax, 0x4f78fc
mov edx, dword [0x4f78f8]
mov edx, dword [edx + ebx*4]
call fcn.0040af24
jmp 0x4ddfb3
push dword [0x4f78fc]
push 0x4de240
mov eax, dword [0x4f78f8]
push dword [eax + ebx*4]
mov eax, 0x4f78fc
mov edx, 3
call fcn.0040b8c8
inc ebx
dec esi
jne 0x4ddf73
cmp dword [0x4f78fc], 0
je 0x4ddfe6
mov eax, dword [0x4efd08]
mov edx, 0x4de254
call fcn.00408668
mov edx, dword [0x4f78fc]
call fcn.00408668
call main
call fcn.00406f90
jmp 0x4ddfff
mov eax, dword [0x4efd08]
mov edx, 0x4de298
call fcn.00408668
call main
call fcn.00406f90
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4de039
lea eax, [ebp - 0x38]
mov edx, 4
call fcn.0040ab94
lea eax, [ebp - 8]
call fcn.0040ab34
lea eax, [ebp - 4]
mov edx, dword [0x4ddb38]
call fcn.0040dc84
pop eax
jmp eax