Function at 0x1112af80
Capabilities:
Enumerate services

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc44
mov eax, dword [0x111ec774]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
call fcn.1112a880
call fcn.11145ef0
test eax, eax
jne 0x1112afb3
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
push ebx
push edi
push 4
xor edi, edi
push edi
push edi
call dword [sym.imp.aDvapi32.DLL_OpenSCManagerA]
mov ebx, eax
mov dword [ebp - 0xc30], ebx
cmp ebx, edi
jne 0x1112afe0
pop edi
pop ebx
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0xc20]
push eax
lea ecx, [ebp - 0xc14]
push ecx
lea edx, [ebp - 0xc1c]
push edx
push edi
push edi
push 3
push 0x30
push ebx
mov dword [ebp - 0xc1c], edi
mov dword [ebp - 0xc14], edi
mov dword [ebp - 0xc20], edi
call dword [sym.imp.aDvapi32.DLL_EnumServicesStatusA]
mov eax, dword [ebp - 0xc1c]
push eax
call fcn.11110230
add esp, 4
lea ecx, [ebp - 0xc20]
push ecx
mov ecx, dword [ebp - 0xc1c]
mov edi, eax
lea edx, [ebp - 0xc14]
push edx
lea eax, [ebp - 0xc1c]
push eax
push ecx
push edi
push 3
push 0x30
push ebx
mov dword [ebp - 0xc40], edi
mov dword [ebp - 0xc20], 0
call dword [sym.imp.aDvapi32.DLL_EnumServicesStatusA]
mov edx, dword [ebp - 0xc14]
push edx
push 0x111ba044
call fcn.11147060
mov ebx, dword [ebp - 0xc14]
shl ebx, 0xa
push ebx
mov dword [ebp - 0xc18], edi
call fcn.11110230
mov edi, eax
mov dword [esi + 8], eax
mov dword [edi], 3
add esp, 0xc
xor eax, eax
add edi, 0xc
push 0x111ba034
mov dword [ebp - 0xc0c], edi
mov dword [esi + 4], eax
mov dword [ebp - 0xc28], eax
call dword [sym.imp.KeRneL32.DLl_LoadLibraryA]
mov dword [ebp - 0xc38], eax
test eax, eax
je 0x1112b0cc
push 0x111ba01c
push eax
call dword [sym.imp.KeRneL32.DLl_GetProcAddress]
mov dword [ebp - 0xc28], eax
cmp dword [ebp - 0xc14], 0
mov dword [ebp - 0xc34], 0
jbe 0x1112b44d
cmp dword [ebp - 0xc28], 0
mov dword [ebp - 0xc10], edi
mov edi, dword [ebp - 0xc18]
mov dword [ebp - 0xc2c], 1
je 0x1112b2e5
mov eax, dword [edi]
mov ecx, dword [ebp - 0xc30]
push reloc.wsOcK32.dll_bind
push eax
push ecx
call dword [sym.imp.aDvapi32.DLL_OpenServiceA]
mov dword [ebp - 0xc3c], eax
test eax, eax
je 0x1112b2e5
lea edx, [ebp - 0xc44]
push edx
push 0x400
lea ecx, [ebp - 0xc08]
push ecx
push 1
push eax
mov dword [ebp - 0xc44], 0
call dword [ebp - 0xc28]
test eax, eax
je 0x1112b2cb
mov eax, dword [ebp - 0xc08]
mov byte [ebp - 0x404], 0
test eax, eax
je 0x1112b185
push 0
push 0
push 0x400
lea edx, [ebp - 0x404]
push edx
push 0xffffffffffffffff
push eax
push 0
push 0
call dword [sym.imp.KeRneL32.DLl_WideCharToMultiByte]
mov eax, dword [edi + 4]
lea edx, [eax + 1]
jmp 0x1112b190
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b190
sub eax, edx
mov edx, eax
mov eax, dword [edi]
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b1a0
sub eax, edi
push ebx
lea eax, [eax + edx + 1]
mov edx, dword [esi + 8]
push eax
lea ecx, [ebp - 0xc0c]
push ecx
push edx
mov ecx, esi
call fcn.1112a350
test eax, eax
je 0x1112b42d
mov edi, dword [ebp - 0xc18]
mov eax, dword [edi + 4]
mov edx, dword [esi + 8]
push ebx
push eax
lea ecx, [ebp - 0xc0c]
push ecx
push edx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b3cb
mov ecx, dword [esi + 8]
push ebx
push 0x1119f2e8
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b3e5
mov edx, dword [edi]
mov ecx, dword [esi + 8]
push ebx
push edx
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b42d
lea eax, [ebp - 0x404]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b235
sub eax, edx
cmp eax, 0x400
jbe 0x1112b248
mov byte [ebp - 5], cl
lea eax, [ebp - 0x404]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b251
sub eax, edx
push ebx
push eax
mov eax, dword [esi + 8]
lea edx, [ebp - 0xc0c]
push edx
push eax
mov ecx, esi
call fcn.1112a350
test eax, eax
je 0x1112b3cb
push 0
lea ecx, [ebp - 0x404]
push ecx
lea ecx, [ebp - 0xc24]
call fcn.11146a90
mov edx, dword [ebp - 0xc24]
mov ecx, dword [esi + 8]
push ebx
push edx
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b3ff
mov edx, dword [ebp - 0xc24]
push edx
mov dword [ebp - 0xc2c], 0
call fcn.11162777
mov edi, dword [ebp - 0xc18]
add esp, 4
mov eax, dword [ebp - 0xc3c]
push eax
call dword [sym.imp.aDvapi32.DLL_CloseServiceHandle]
cmp dword [ebp - 0xc2c], 0
je 0x1112b37c
mov eax, dword [edi]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b2f0
push ebx
sub eax, edx
mov edx, dword [esi + 8]
push eax
lea ecx, [ebp - 0xc0c]
push ecx
push edx
mov ecx, esi
call fcn.1112a350
test eax, eax
je 0x1112b3e5
mov eax, dword [edi]
mov edx, dword [esi + 8]
push ebx
push eax
lea ecx, [ebp - 0xc0c]
push ecx
push edx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b42d
mov eax, dword [edi + 4]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1112b340
mov ecx, dword [esi + 8]
push ebx
sub eax, edx
push eax
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a350
test eax, eax
je 0x1112b3cb
mov edx, dword [edi + 4]
mov ecx, dword [esi + 8]
push ebx
push edx
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a380
test eax, eax
je 0x1112b3e5
mov edx, dword [edi + 0xc]
mov ecx, dword [esi + 8]
push ebx
push edx
lea eax, [ebp - 0xc0c]
push eax
push ecx
mov ecx, esi
call fcn.1112a350
test eax, eax
je 0x1112b42d
mov eax, dword [ebp - 0xc34]
inc dword [esi + 4]
add edi, 0x24
inc eax
mov dword [ebp - 0xc18], edi
mov edi, dword [ebp - 0xc0c]
mov dword [ebp - 0xc34], eax
cmp eax, dword [ebp - 0xc14]
jb 0x1112b0e3
jmp 0x1112b44d
mov ecx, dword [ebp - 0xc10]
mov edi, dword [ebp - 0xc0c]
mov edx, dword [ebp - 0xc10]
sub ecx, edi
push ecx
push 0
push edx
jmp 0x1112b445
mov eax, dword [ebp - 0xc10]
mov edi, dword [ebp - 0xc0c]
mov ecx, dword [ebp - 0xc10]
sub eax, edi
push eax
push 0
push ecx
jmp 0x1112b445
mov eax, dword [ebp - 0xc10]
mov edi, dword [ebp - 0xc0c]
mov ecx, dword [ebp - 0xc10]
sub eax, edi
push eax
push 0
push ecx
call fcn.11162be0
mov edx, dword [ebp - 0xc24]
push edx
call fcn.11162777
add esp, 0x10
jmp 0x1112b44d
mov edi, dword [ebp - 0xc0c]
mov edx, dword [ebp - 0xc10]
mov eax, dword [ebp - 0xc10]
sub edx, edi
push edx
push 0
push eax
call fcn.11162be0
add esp, 0xc
mov ecx, dword [ebp - 0xc38]
push ecx
call dword [sym.imp.KeRneL32.DLl_FreeLibrary]
mov eax, dword [esi + 8]
sub edi, eax
mov dword [eax + 4], edi
mov edx, dword [esi + 4]
mov dword [eax + 8], edx
mov eax, dword [ebp - 0xc30]
push eax
call dword [sym.imp.aDvapi32.DLL_CloseServiceHandle]
mov ecx, dword [ebp - 0xc40]
push ecx
call fcn.11162bc6
mov ecx, dword [ebp - 4]
add esp, 4
pop edi
pop ebx
xor ecx, ebp
mov eax, 1
pop esi
call fcn.11162bb7
mov esp, ebp
pop ebp
ret