Function at 0x100251bc
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005ceba
mov eax, dword fs:[0]
push eax
mov eax, 0x2128
call fcn.10051950
mov eax, dword [0x10074118]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x2018], 0
push 6
pop edx
lea ebx, [ebp - 0x20dc]
mov dword [ebp - 0x2034], eax
call fcn.10030df6
push 4
xor ebx, ebx
push ebx
push ebx
mov dword [ebp - 4], 1
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x202c], eax
cmp eax, ebx
je 0x100259a5
mov esi, dword [sym.imp.ADVAPI32.dll_EnumServicesStatusW]
push ebx
lea ecx, [ebp - 0x2028]
push ecx
lea ecx, [ebp - 0x201c]
push ecx
push ebx
push ebx
push 3
push 0x30
push eax
mov dword [ebp - 0x201c], ebx
mov dword [ebp - 0x2028], ebx
call esi
cmp dword [ebp - 0x201c], ebx
jbe 0x10025999
push dword [ebp - 0x201c]
call fcn.1004100b
mov edi, eax
pop ecx
mov dword [ebp - 0x203c], edi
cmp edi, ebx
je 0x10025999
push ebx
lea eax, [ebp - 0x2028]
push eax
lea eax, [ebp - 0x201c]
push eax
push dword [ebp - 0x201c]
push edi
push 3
push 0x30
push dword [ebp - 0x202c]
call esi
test eax, eax
je 0x1002598d
mov dword [ebp - 0x2030], ebx
cmp dword [ebp - 0x2028], ebx
jbe 0x1002598d
mov dword [ebp - 0x2024], edi
push ebx
push ebx
lea eax, [ebp - 0x208c]
call fcn.10031e83
mov eax, dword [ebp - 0x2024]
mov byte [ebp - 4], 4
push dword [eax]
lea esi, [ebp - 0x2074]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2058]
push eax
mov byte [ebp - 4], 5
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 6
mov edx, eax
mov esi, esp
mov dword [ebp - 0x2020], esp
call fcn.10030f74
lea eax, [ebp - 0x208c]
push eax
mov edx, str.name
mov byte [ebp - 4], 7
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 6
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x2058]
call fcn.10004d1a
push ebx
push 1
lea esi, [ebp - 0x2074]
mov byte [ebp - 4], 4
call fcn.10004e12
mov eax, dword [ebp - 0x2024]
push dword [eax + 4]
lea esi, [ebp - 0x2074]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2058]
push eax
mov byte [ebp - 4], 8
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 9
mov edx, eax
mov esi, esp
mov dword [ebp - 0x2020], esp
call fcn.10030f74
lea eax, [ebp - 0x208c]
push eax
mov edx, str.dispName
mov byte [ebp - 4], 0xa
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 9
call fcn.100311c7
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x2058]
call fcn.10004d1a
push ebx
push edi
lea esi, [ebp - 0x2074]
mov byte [ebp - 4], 4
call fcn.10004e12
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0xc]
cmp eax, 7
je 0x10025497
cmp eax, 6
je 0x10025497
cmp eax, 4
je 0x10025458
cmp eax, 2
je 0x10025458
cmp eax, 3
je 0x10025419
cmp eax, edi
je 0x10025419
push 0x100654fc
lea ecx, [ebp - 0x20c4]
call fcn.1000485d
mov byte [ebp - 4], 0xb
or dword [ebp - 0x2018], edi
jmp 0x100254d4
push 0x100657f8
lea esi, [ebp - 0x2058]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2130]
mov dword [ebp - 4], 0xc
or dword [ebp - 0x2018], 2
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0xd
or dword [ebp - 0x2018], 4
jmp 0x100254d4
push str.ck_WL
lea esi, [ebp - 0x20a8]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2114]
mov dword [ebp - 4], 0xe
or dword [ebp - 0x2018], 8
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0xf
or dword [ebp - 0x2018], 0x10
jmp 0x100254d4
push 0x100657e4
lea esi, [ebp - 0x2074]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x20f8]
mov dword [ebp - 4], 0x10
or dword [ebp - 0x2018], 0x20
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0x11
or dword [ebp - 0x2018], 0x40
sub esp, 0x18
mov edx, eax
mov esi, esp
mov dword [ebp - 0x2020], esp
call fcn.10030f74
lea eax, [ebp - 0x208c]
push eax
mov edx, str.state
mov dword [ebp - 4], 0x12
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x11
call fcn.100311c7
test byte [ebp - 0x2018], 0x40
je 0x10025527
and dword [ebp - 0x2018], 0xffffffbf
push ebx
push 1
lea ecx, [ebp - 0x20f8]
call fcn.10004d1a
test byte [ebp - 0x2018], 0x20
je 0x10025545
and dword [ebp - 0x2018], 0xffffffdf
push ebx
push 1
lea esi, [ebp - 0x2074]
call fcn.10004e12
test byte [ebp - 0x2018], 0x10
je 0x10025563
and dword [ebp - 0x2018], 0xffffffef
push ebx
push 1
lea ecx, [ebp - 0x2114]
call fcn.10004d1a
test byte [ebp - 0x2018], 8
je 0x10025581
and dword [ebp - 0x2018], 0xfffffff7
push ebx
push 1
lea esi, [ebp - 0x20a8]
call fcn.10004e12
test byte [ebp - 0x2018], 4
je 0x1002559f
and dword [ebp - 0x2018], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x2130]
call fcn.10004d1a
test byte [ebp - 0x2018], 2
je 0x100255bd
and dword [ebp - 0x2018], 0xfffffffd
push ebx
push 1
lea esi, [ebp - 0x2058]
call fcn.10004e12
push 4
pop edi
mov dword [ebp - 4], edi
test byte [ebp - 0x2018], 1
je 0x100255e1
and dword [ebp - 0x2018], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d1a
mov eax, dword [ebp - 0x2024]
push 1
push dword [eax]
push dword [ebp - 0x202c]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov dword [ebp - 0x2020], eax
cmp eax, ebx
je 0x1002594c
push 0x1fff
lea eax, [ebp - 0x2013]
push ebx
push eax
mov byte [ebp - 0x2014], bl
call fcn.10046720
add esp, 0xc
lea eax, [ebp - 0x201c]
push eax
mov esi, 0x2000
push esi
lea eax, [ebp - 0x2014]
push eax
push dword [ebp - 0x2020]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
je 0x10025888
cmp dword [ebp - 0x2010], 2
jne 0x10025696
push 0x1006580c
lea esi, [ebp - 0x2074]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x20f8]
mov byte [ebp - 4], 0x13
or dword [ebp - 0x2018], 0x80
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0x14
or dword [ebp - 0x2018], 0x100
jmp 0x1002574e
cmp dword [ebp - 0x2010], 3
jne 0x100256e4
push 0x10065814
lea esi, [ebp - 0x20a8]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2114]
mov dword [ebp - 4], 0x15
or dword [ebp - 0x2018], 0x200
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0x16
or dword [ebp - 0x2018], 0x400
jmp 0x1002574e
cmp dword [ebp - 0x2010], edi
jne 0x10025731
push 0x1006581c
lea esi, [ebp - 0x2058]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x2130]
mov dword [ebp - 4], 0x17
or dword [ebp - 0x2018], 0x800
push eax
call fcn.10001246
pop ecx
pop ecx
mov dword [ebp - 4], 0x18
or dword [ebp - 0x2018], 0x1000
jmp 0x1002574e
push 0x100654fc
lea ecx, [ebp - 0x20c4]
call fcn.1000485d
mov dword [ebp - 4], 0x19
or dword [ebp - 0x2018], esi
sub esp, 0x18
mov edx, eax
mov esi, esp
mov dword [ebp - 0x2038], esp
call fcn.10030f74
lea eax, [ebp - 0x208c]
push eax
mov edx, str.startType
mov dword [ebp - 4], 0x1a
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x19
call fcn.100311c7
test dword [ebp - 0x2018], 0x2000
je 0x100257a7
and dword [ebp - 0x2018], 0xffffdfff
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d1a
test dword [ebp - 0x2018], 0x1000
je 0x100257cb
and dword [ebp - 0x2018], 0xffffefff
push ebx
push 1
lea ecx, [ebp - 0x2130]
call fcn.10004d1a
test dword [ebp - 0x2018], 0x800
je 0x100257ef
and dword [ebp - 0x2018], 0xfffff7ff
push ebx
push 1
lea esi, [ebp - 0x2058]
call fcn.10004e12
test dword [ebp - 0x2018], 0x400
je 0x10025813
and dword [ebp - 0x2018], 0xfffffbff
push ebx
push 1
lea ecx, [ebp - 0x2114]
call fcn.10004d1a
test dword [ebp - 0x2018], 0x200
je 0x10025837
and dword [ebp - 0x2018], 0xfffffdff
push ebx
push 1
lea esi, [ebp - 0x20a8]
call fcn.10004e12
test dword [ebp - 0x2018], 0x100
je 0x1002585b
and dword [ebp - 0x2018], 0xfffffeff
push ebx
push 1
lea ecx, [ebp - 0x20f8]
call fcn.10004d1a
mov dword [ebp - 4], 4
test byte [ebp - 0x2018], 0x80
je 0x10025883
and dword [ebp - 0x2018], 0xffffff7f
push ebx
push 1
lea esi, [ebp - 0x2074]
call fcn.10004e12
mov esi, 0x2000
push esi
lea eax, [ebp - 0x2014]
push ebx
push eax
call fcn.10046720
add esp, 0xc
lea eax, [ebp - 0x201c]
push eax
push esi
lea eax, [ebp - 0x2014]
push eax
push 1
push dword [ebp - 0x2020]
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfig2W]
test eax, eax
je 0x10025940
cmp dword [ebp - 0x2014], ebx
je 0x10025940
push dword [ebp - 0x2014]
lea esi, [ebp - 0x2058]
call fcn.100048dd
mov eax, esi
push eax
lea eax, [ebp - 0x20c4]
push eax
mov byte [ebp - 4], 0x1b
call fcn.10001246
sub esp, 0x10
mov byte [ebp - 4], 0x1c
mov edx, eax
mov esi, esp
mov dword [ebp - 0x2038], esp
call fcn.10030f74
lea eax, [ebp - 0x208c]
push eax
mov edx, str.desc
mov byte [ebp - 4], 0x1d
call fcn.100321b8
mov edi, eax
mov byte [ebp - 4], 0x1c
call fcn.100311c7
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d1a
push ebx
push 1
lea esi, [ebp - 0x2058]
mov byte [ebp - 4], 4
call fcn.10004e12
push dword [ebp - 0x2020]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
lea eax, [ebp - 0x208c]
push eax
lea eax, [ebp - 0x20dc]
push eax
call fcn.10032209
lea esi, [ebp - 0x208c]
mov byte [ebp - 4], 1
call fcn.10031144
inc dword [ebp - 0x2030]
mov eax, dword [ebp - 0x2030]
add dword [ebp - 0x2024], 0x24
cmp eax, dword [ebp - 0x2028]
jb 0x100252c1
push dword [ebp - 0x203c]
call fcn.10040f2e
pop ecx
push dword [ebp - 0x202c]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 0x2034]
lea eax, [ebp - 0x20dc]
push eax
call fcn.1003264a
or dword [ebp - 0x2018], 0x4000
lea esi, [ebp - 0x20dc]
mov byte [ebp - 4], bl
call fcn.10031144
mov eax, dword [ebp - 0x2034]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100408d9
leave
ret