Function at 0x10025026
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1005b2eb
mov eax, dword fs:[0]
push eax
mov eax, 0x2128
call fcn.10050050
mov eax, dword [0x10071118]
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.1002fa07
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 0x1002580f
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 0x10025803
push dword [ebp - 0x201c]
call fcn.1003f76f
mov edi, eax
pop ecx
mov dword [ebp - 0x203c], edi
cmp edi, ebx
je 0x10025803
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 0x100257f7
mov dword [ebp - 0x2030], ebx
cmp dword [ebp - 0x2028], ebx
jbe 0x100257f7
mov dword [ebp - 0x2024], edi
push ebx
push ebx
lea eax, [ebp - 0x208c]
call fcn.10030a94
mov eax, dword [ebp - 0x2024]
mov byte [ebp - 4], 4
push dword [eax]
lea esi, [ebp - 0x2074]
call fcn.100048d8
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.1002fb85
lea eax, [ebp - 0x208c]
push eax
mov edx, str.name
mov byte [ebp - 4], 7
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 6
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x2058]
call fcn.10004d05
push ebx
push 1
lea esi, [ebp - 0x2074]
mov byte [ebp - 4], 4
call fcn.10004dfd
mov eax, dword [ebp - 0x2024]
push dword [eax + 4]
lea esi, [ebp - 0x2074]
call fcn.100048d8
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.1002fb85
lea eax, [ebp - 0x208c]
push eax
mov edx, str.dispName
mov byte [ebp - 4], 0xa
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 9
call fcn.1002fdd8
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x2058]
call fcn.10004d05
push ebx
push edi
lea esi, [ebp - 0x2074]
mov byte [ebp - 4], 4
call fcn.10004dfd
mov eax, dword [ebp - 0x2024]
mov eax, dword [eax + 0xc]
cmp eax, 7
je 0x10025301
cmp eax, 6
je 0x10025301
cmp eax, 4
je 0x100252c2
cmp eax, 2
je 0x100252c2
cmp eax, 3
je 0x10025283
cmp eax, edi
je 0x10025283
push 0x10063414
lea ecx, [ebp - 0x20c4]
call fcn.10004842
mov byte [ebp - 4], 0xb
or dword [ebp - 0x2018], edi
jmp 0x1002533e
push 0x10063710
lea esi, [ebp - 0x2058]
call fcn.100048d8
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 0x1002533e
push str.ck_WL
lea esi, [ebp - 0x20a8]
call fcn.100048d8
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 0x1002533e
push 0x100636fc
lea esi, [ebp - 0x2074]
call fcn.100048d8
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.1002fb85
lea eax, [ebp - 0x208c]
push eax
mov edx, str.state
mov dword [ebp - 4], 0x12
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x11
call fcn.1002fdd8
test byte [ebp - 0x2018], 0x40
je 0x10025391
and dword [ebp - 0x2018], 0xffffffbf
push ebx
push 1
lea ecx, [ebp - 0x20f8]
call fcn.10004d05
test byte [ebp - 0x2018], 0x20
je 0x100253af
and dword [ebp - 0x2018], 0xffffffdf
push ebx
push 1
lea esi, [ebp - 0x2074]
call fcn.10004dfd
test byte [ebp - 0x2018], 0x10
je 0x100253cd
and dword [ebp - 0x2018], 0xffffffef
push ebx
push 1
lea ecx, [ebp - 0x2114]
call fcn.10004d05
test byte [ebp - 0x2018], 8
je 0x100253eb
and dword [ebp - 0x2018], 0xfffffff7
push ebx
push 1
lea esi, [ebp - 0x20a8]
call fcn.10004dfd
test byte [ebp - 0x2018], 4
je 0x10025409
and dword [ebp - 0x2018], 0xfffffffb
push ebx
push 1
lea ecx, [ebp - 0x2130]
call fcn.10004d05
test byte [ebp - 0x2018], 2
je 0x10025427
and dword [ebp - 0x2018], 0xfffffffd
push ebx
push 1
lea esi, [ebp - 0x2058]
call fcn.10004dfd
push 4
pop edi
mov dword [ebp - 4], edi
test byte [ebp - 0x2018], 1
je 0x1002544b
and dword [ebp - 0x2018], 0xfffffffe
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d05
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 0x100257b6
push 0x1fff
lea eax, [ebp - 0x2013]
push ebx
push eax
mov byte [ebp - 0x2014], bl
call fcn.10044e90
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 0x100256f2
cmp dword [ebp - 0x2010], 2
jne 0x10025500
push 0x10063724
lea esi, [ebp - 0x2074]
call fcn.100048d8
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 0x100255b8
cmp dword [ebp - 0x2010], 3
jne 0x1002554e
push 0x1006372c
lea esi, [ebp - 0x20a8]
call fcn.100048d8
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 0x100255b8
cmp dword [ebp - 0x2010], edi
jne 0x1002559b
push 0x10063734
lea esi, [ebp - 0x2058]
call fcn.100048d8
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 0x100255b8
push 0x10063414
lea ecx, [ebp - 0x20c4]
call fcn.10004842
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.1002fb85
lea eax, [ebp - 0x208c]
push eax
mov edx, str.startType
mov dword [ebp - 4], 0x1a
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x19
call fcn.1002fdd8
test dword [ebp - 0x2018], 0x2000
je 0x10025611
and dword [ebp - 0x2018], 0xffffdfff
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d05
test dword [ebp - 0x2018], 0x1000
je 0x10025635
and dword [ebp - 0x2018], 0xffffefff
push ebx
push 1
lea ecx, [ebp - 0x2130]
call fcn.10004d05
test dword [ebp - 0x2018], 0x800
je 0x10025659
and dword [ebp - 0x2018], 0xfffff7ff
push ebx
push 1
lea esi, [ebp - 0x2058]
call fcn.10004dfd
test dword [ebp - 0x2018], 0x400
je 0x1002567d
and dword [ebp - 0x2018], 0xfffffbff
push ebx
push 1
lea ecx, [ebp - 0x2114]
call fcn.10004d05
test dword [ebp - 0x2018], 0x200
je 0x100256a1
and dword [ebp - 0x2018], 0xfffffdff
push ebx
push 1
lea esi, [ebp - 0x20a8]
call fcn.10004dfd
test dword [ebp - 0x2018], 0x100
je 0x100256c5
and dword [ebp - 0x2018], 0xfffffeff
push ebx
push 1
lea ecx, [ebp - 0x20f8]
call fcn.10004d05
mov dword [ebp - 4], 4
test byte [ebp - 0x2018], 0x80
je 0x100256ed
and dword [ebp - 0x2018], 0xffffff7f
push ebx
push 1
lea esi, [ebp - 0x2074]
call fcn.10004dfd
mov esi, 0x2000
push esi
lea eax, [ebp - 0x2014]
push ebx
push eax
call fcn.10044e90
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 0x100257aa
cmp dword [ebp - 0x2014], ebx
je 0x100257aa
push dword [ebp - 0x2014]
lea esi, [ebp - 0x2058]
call fcn.100048d8
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.1002fb85
lea eax, [ebp - 0x208c]
push eax
mov edx, str.desc
mov byte [ebp - 4], 0x1d
call fcn.10030dc9
mov edi, eax
mov byte [ebp - 4], 0x1c
call fcn.1002fdd8
push ebx
push 1
lea ecx, [ebp - 0x20c4]
call fcn.10004d05
push ebx
push 1
lea esi, [ebp - 0x2058]
mov byte [ebp - 4], 4
call fcn.10004dfd
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.10030e1a
lea esi, [ebp - 0x208c]
mov byte [ebp - 4], 1
call fcn.1002fd55
inc dword [ebp - 0x2030]
mov eax, dword [ebp - 0x2030]
add dword [ebp - 0x2024], 0x24
cmp eax, dword [ebp - 0x2028]
jb 0x1002512b
push dword [ebp - 0x203c]
call fcn.1003f692
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.1003125d
or dword [ebp - 0x2018], 0x4000
lea esi, [ebp - 0x20dc]
mov byte [ebp - 4], bl
call fcn.1002fd55
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.1003f03d
leave
ret