Function at 0x100619d
Capabilities:
Enumerate services

Disassembly:
push 0x90
mov eax, 0x10208e6
call fcn.01013512
mov dword [ebp - 0x38], ecx
push 4
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov dword [ebp - 0x40], eax
cmp eax, ebx
je 0x1006625
mov esi, dword [sym.imp.ADVAPI32.dll_EnumServicesStatusW]
lea ecx, [ebp - 0x50]
push ecx
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [ebp - 0x54]
push ecx
push ebx
push ebx
push 3
push 0x30
push eax
mov dword [ebp - 0x50], ebx
call esi
test eax, eax
jne 0x100661c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xea
jne 0x100661c
mov edi, dword [ebp - 0x54]
push 0x1025788
push edi
mov dword [ebp - 0x50], ebx
call fcn.0101363f
pop ecx
pop ecx
mov ecx, eax
mov dword [ebp - 0x58], ecx
cmp ecx, ebx
je 0x100661c
mov edx, edi
cmp edi, ebx
je 0x1006229
mov byte [eax], bl
inc eax
dec edx
jne 0x1006223
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x54]
push eax
push edi
push ecx
push 3
push 0x30
push dword [ebp - 0x40]
call esi
test eax, eax
je 0x1006613
mov esi, dword [ebp - 0x58]
lea ecx, [ebp - 0x1c]
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], ebx
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call sub.MFC42u.dll_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call sub.MFC42u.dll_CString::CString
push 0x74
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 7
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x75
lea ecx, [ebp - 0x14]
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x76
lea ecx, [ebp - 0x10]
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x77
lea ecx, [ebp - 0x20]
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x78
lea ecx, [ebp - 0x24]
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x79
lea ecx, [ebp - 0x18]
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
push 0x7a
lea ecx, [ebp - 0x28]
call sub.MFC42u.dll_CString::LoadStringW
lea ecx, [ebp - 0x2c]
test eax, eax
jle 0x10065b7
push 0x80
call sub.MFC42u.dll_CString::LoadStringW
test eax, eax
jle 0x10065b4
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x44], ebx
cmp dword [ebp - 0x48], ebx
jbe 0x10065b4
push dword [esi]
mov ecx, dword [ebp - 0x38]
call fcn.01005203
cmp eax, 1
jne 0x1006363
add esi, 0x24
jmp 0x100658b
lea ecx, [ebp - 0x30]
call sub.MFC42u.dll_CString::CString
push 1
push dword [esi]
mov byte [ebp - 4], 8
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov edi, eax
cmp edi, ebx
jne 0x100638a
add esi, 0x24
jmp 0x100657f
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x5c]
push eax
push edi
call fcn.010045c4
push edi
test eax, eax
jge 0x10063a8
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x1006382
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp dword [ebp - 0x5c], 4
jne 0x10063da
mov ecx, dword [ebp - 0x38]
push 0x20019
push dword [esi]
add ecx, 0x90
mov eax, dword [ecx]
call dword [eax + 0x14]
push eax
call fcn.01004ff8
cmp eax, ebx
je 0x1006382
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x34]
call sub.MFC42u.dll_CString::CString
push ebx
push ebx
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x30]
mov byte [ebp - 4], 9
call fcn.0100598f
test eax, eax
jl 0x1006570
mov eax, dword [ebp - 0x38]
cmp dword [eax + 0xb0], ebx
je 0x100644a
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x3c]
call sub.MFC42u.dll_CString::CString_2
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0xa
call sub.MFC42u.dll_CString::MakeLower
push 0x1001c98
lea ecx, [ebp - 0x3c]
call sub.MFC42u.dll_CString::Find
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x3c]
cmp eax, 0xffffffff
je 0x1006445
add esi, 0x24
call fcn.01012a9e
jmp 0x1006573
call fcn.01012a9e
push 0x28
call sub.MFC42u.dll_operatornew
pop ecx
mov dword [ebp - 0x9c], eax
mov byte [ebp - 4], 0xb
cmp eax, ebx
je 0x1006477
push dword [esi + 4]
mov ecx, eax
push dword [ebp - 0x34]
push dword [ebp - 0x5c]
push ebx
push dword [esi]
call fcn.01004ab1
mov edi, eax
jmp 0x1006479
xor edi, edi
mov byte [ebp - 4], 9
cmp edi, ebx
je 0x100659c
mov eax, dword [esi + 4]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x4c]
inc dword [ebp - 0x4c]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x38]
push ebx
push 0x104d
push dword [eax + 0xa0]
mov dword [ebp - 0x90], ebx
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x98], 5
call dword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
inc eax
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x84], eax
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x38]
push ebx
push 0x104c
push dword [eax + 0xa0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esi + 0xc]
dec eax
je 0x1006533
dec eax
je 0x100652e
dec eax
je 0x1006529
dec eax
je 0x1006524
dec eax
je 0x100651f
dec eax
je 0x100651a
dec eax
jne 0x100653c
mov eax, dword [ebp - 0x28]
jmp 0x1006536
mov eax, dword [ebp - 0x18]
jmp 0x1006536
mov eax, dword [ebp - 0x24]
jmp 0x1006536
mov eax, dword [ebp - 0x20]
jmp 0x1006536
mov eax, dword [ebp - 0x10]
jmp 0x1006536
mov eax, dword [ebp - 0x14]
jmp 0x1006536
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x84], eax
push dword [ebp - 0x84]
lea ecx, [edi + 0x1c]
mov dword [ebp - 0x90], 2
call fcn.01012aaa
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x38]
push ebx
push 0x104c
push dword [eax + 0xa0]
call dword [sym.imp.USER32.dll_SendMessageW]
add esi, 0x24
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call fcn.01012a9e
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
call fcn.01012a9e
inc dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x48]
jb 0x100634c
jmp 0x10065b4
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 8
call fcn.01012a9e
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
call fcn.01012a9e
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 6
call fcn.01012a9e
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.01012a9e
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.01012a9e
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call fcn.01012a9e
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 2
call fcn.01012a9e
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.01012a9e
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], bl
call fcn.01012a9e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1c]
call fcn.01012a9e
push dword [ebp - 0x58]
call fcn.0101302e
pop ecx
push dword [ebp - 0x40]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
call fcn.010135fe
ret