Function at 0x1004bf0
Capabilities:
Delete service
Enumerate services
Query service status
Start service

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push ebx
mov ebx, dword [ebp + 8]
xor eax, eax
push esi
cmp ebx, 2
push edi
mov dword [ebp - 0x30], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x3c], eax
jb 0x1004c45
mov esi, dword [ebp + 0xc]
push esi
push ebx
call fcn.010071ea
test eax, eax
je 0x1005ef0
push 1
and dword [ebp + 0xc], 0
pop edi
push 2
push 0x1002254
push dword [esi + 4]
call fcn.01007e60
add esp, 0xc
test eax, eax
jne 0x1004c55
push 2
pop edi
cmp ebx, edi
jne 0x1004c4f
call fcn.0100795a
jmp 0x1005ef0
mov eax, dword [esi + 4]
mov dword [ebp + 0xc], eax
push 0x1002248
push dword [esi + edi*4]
call fcn.01007db0
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
mov dword [ebp - 0x24], eax
jne 0x1005988
push 0x1002238
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
je 0x1005988
lea eax, [edi + 1]
cmp ebx, eax
mov dword [ebp - 8], eax
jae 0x1004c9d
push 0x1002210
jmp 0x1005f19
push 0x1002204
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004db3
lea eax, [edi + 2]
cmp ebx, eax
jae 0x1004ce6
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x10021d8
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1002198
jmp 0x1005df4
mov eax, dword [ebp - 8]
push 0x80000000
push 0
mov eax, dword [esi + eax*4]
push dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
push 0x14
push dword [ebp - 0x28]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x1004d37
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1002168
jmp 0x1005e54
lea eax, [edi + 2]
xor ecx, ecx
cmp ebx, eax
jbe 0x1004d43
lea ecx, [esi + eax*4]
sub ebx, edi
push ecx
dec ebx
dec ebx
push ebx
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x1004d70
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1002144
jmp 0x1005e54
lea eax, [ebp - 0x58]
xor esi, esi
push eax
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
jne 0x1004d8b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
lea eax, [ebp - 0x58]
test esi, esi
mov dword [ebp - 0x14], eax
jne 0x1004da1
lea eax, [ebp - 0x14]
push 1
push eax
push esi
jmp 0x1005e9a
push esi
call fcn.010072bf
push eax
push esi
push 0x100210c
jmp 0x1005e54
push 0x1002100
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004e1e
add edi, 2
cmp ebx, edi
jae 0x1004df8
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x10020d0
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x10020ac
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
push 2
jmp 0x1005046
push 0x1002094
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004e89
add edi, 2
cmp ebx, edi
jae 0x1004e63
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x100205c
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1002030
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
push 4
jmp 0x1005046
push 0x1002020
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004f78
lea eax, [edi + 3]
cmp ebx, eax
jae 0x1004ed2
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001ff8
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001f08
jmp 0x1005df4
push dword [esi + edi*4 + 8]
lea edi, [esi + edi*4 + 8]
call fcn.01007d40
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x1004f53
push 0x1001ef0
push dword [edi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004efc
push 6
jmp 0x1004f52
push 0x1001ed8
push dword [edi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004f12
push 7
jmp 0x1004f52
push 0x1001ebc
push dword [edi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004f28
push 8
jmp 0x1004f52
push 0x1001ea0
push dword [edi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004f3e
push 9
jmp 0x1004f52
push 0x1001e80
push dword [edi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004f53
push 0xa
pop ebx
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
push ebx
jmp 0x1005046
push 0x1001e6c
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1004fe0
add edi, 2
cmp ebx, edi
jae 0x1004fbd
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001e38
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001e10
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
push 3
jmp 0x1005046
push 0x1001e04
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005057
add edi, 2
cmp ebx, edi
jae 0x1005025
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001dd4
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001db0
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
push 1
mov ecx, dword [ebp - 8]
push dword [esi + ecx*4]
push eax
call fcn.01005f26
jmp 0x1005ec9
push 0x1001da0
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x10050b7
lea eax, [edi + 3]
cmp ebx, eax
jae 0x100507b
call fcn.01007a99
jmp 0x1005ec9
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
sub ebx, edi
lea eax, [ebp - 0x10]
dec ebx
push eax
dec ebx
lea eax, [esi + edi*4 + 8]
push ebx
push eax
mov eax, dword [ebp - 8]
push dword [esi + eax*4]
push dword [ebp - 4]
call fcn.01005ffd
jmp 0x1005ec9
push 0x1001d88
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100512f
add edi, 2
cmp ebx, edi
jae 0x10050fc
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001d58
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001d28
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 8]
push dword [esi + edi*4]
push dword [esi + ecx*4]
push eax
call fcn.0100653a
jmp 0x1005ec9
push 0x1001d18
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005194
lea eax, [edi + 2]
cmp ebx, eax
mov dword [ebp - 0x3c], eax
jae 0x1005156
call fcn.01007af3
jmp 0x1005ec9
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea eax, [ebp - 0x10]
sub ebx, edi
push eax
mov eax, dword [ebp - 0x3c]
dec ebx
dec ebx
lea eax, [esi + eax*4]
push ebx
push eax
mov eax, dword [ebp - 8]
push dword [esi + eax*4]
push dword [ebp - 4]
call fcn.010065ba
jmp 0x1005ec9
push 0x1001d10
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005223
lea eax, [edi + 2]
cmp ebx, eax
jae 0x10051d9
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001cd8
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001ca8
jmp 0x1005df4
cmp ebx, eax
mov dword [ebp + 8], 0x1f4
jbe 0x10051f0
push dword [esi + eax*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
lea ecx, [ebp - 0x10]
push ecx
mov ecx, dword [ebp - 8]
push dword [ebp + 8]
push dword [esi + ecx*4]
push eax
call fcn.010074e7
jmp 0x1005ec9
push 0x1001c8c
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100529e
add edi, 2
cmp ebx, edi
jae 0x1005268
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001c58
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001c28
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
cmp ebx, edi
mov dword [ebp + 8], 0x1f4
jbe 0x100529a
push dword [esi + edi*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
push 1
jmp 0x100531b
push 0x1001c14
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005335
add edi, 2
cmp ebx, edi
jae 0x10052e7
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001bdc
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001bb0
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
cmp ebx, edi
mov dword [ebp + 8], 0x1f4
jbe 0x1005319
push dword [esi + edi*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
push 2
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 8]
push dword [ebp + 8]
push dword [esi + eax*4]
push dword [ebp - 4]
call fcn.01007768
jmp 0x1005ec9
push 0x1001b9c
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005389
push 0x10
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov eax, dword [ebp - 8]
mov dword [ebp + 8], 0x1f4
cmp ebx, eax
jbe 0x1005379
push dword [esi + eax*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
push dword [ebp + 8]
push dword [ebp - 4]
call fcn.010070a3
jmp 0x1005ec9
push 0x1001b90
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x10053be
push 8
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
push eax
call fcn.01007163
jmp 0x1005ec9
push 0x1001b84
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005444
push 0x80000000
push eax
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov ecx, dword [ebp - 8]
push 0x14
push dword [esi + ecx*4]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x100541b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001b60
jmp 0x1005e54
push eax
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
test eax, eax
jne 0x1005ec9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001b34
jmp 0x1005e54
push 0x1001b24
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005512
add edi, 2
cmp ebx, edi
jae 0x100548d
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001a78
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001a54
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov ecx, dword [ebp - 8]
push 0x10000
push dword [esi + ecx*4]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
test eax, eax
mov dword [ebp - 0x10], eax
jne 0x10054e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001b60
call fcn.01007d70
add esp, 0xc
jmp 0x1005ef0
push eax
call dword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
jne 0x1005508
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001a30
jmp 0x1005e54
push 0x1001a14
jmp 0x1005df4
push 0x1001a04
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100556f
lea eax, [edi + 3]
cmp ebx, eax
jae 0x1005536
call fcn.01007ac6
jmp 0x1005ec9
push 2
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
sub ebx, edi
lea eax, [ebp - 0x10]
dec ebx
push eax
dec ebx
lea eax, [esi + edi*4 + 8]
push ebx
push eax
mov eax, dword [ebp - 8]
push dword [esi + eax*4]
push dword [ebp - 4]
call fcn.010068f0
jmp 0x1005ec9
push 0x10019f8
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005626
add edi, 2
mov dword [ebp + 0xc], 1
cmp ebx, edi
jb 0x10055ed
mov eax, dword [ebp - 8]
push 0x10019f0
push dword [esi + eax*4]
lea esi, [esi + eax*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x10055b1
push 1
jmp 0x10055c4
push 0x10019e8
push dword [esi]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x10055ed
push eax
call dword [sym.imp.ADVAPI32.dll_NotifyBootConfigStatus]
test eax, eax
jne 0x10055f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x10019c0
call fcn.01007d70
add esp, 0xc
jmp 0x10055f1
and dword [ebp + 0xc], 0
cmp dword [ebp + 0xc], 0
jne 0x1005ec9
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001960
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001944
jmp 0x1005df4
push 0x1001924
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100570f
add edi, 2
cmp ebx, edi
jae 0x100566f
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x10018e4
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x10018a8
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov eax, 0x1f4
cmp ebx, edi
mov dword [ebp + 8], eax
jbe 0x10056a2
push dword [esi + edi*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
xor edi, edi
cmp eax, edi
je 0x10056d2
add eax, eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
jne 0x10056d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001870
jmp 0x1005e54
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp - 8]
push edi
push dword [esi + eax*4]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_GetServiceDisplayNameW]
test eax, eax
jne 0x1005704
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001844
jmp 0x10057e8
push edi
push 0x1001814
jmp 0x1005800
push 0x10017fc
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100580b
add edi, 2
cmp ebx, edi
jae 0x1005758
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x10017a0
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001764
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov eax, 0x1f4
cmp ebx, edi
mov dword [ebp + 8], eax
jbe 0x100578b
push dword [esi + edi*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
xor edi, edi
cmp eax, edi
je 0x10057bb
add eax, eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
test edi, edi
jne 0x10057bb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001730
jmp 0x1005e54
lea eax, [ebp + 8]
push eax
mov eax, dword [ebp - 8]
push edi
push dword [esi + eax*4]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_GetServiceKeyNameW]
test eax, eax
jne 0x10057fa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001708
call fcn.01007d70
add esp, 0xc
push dword [ebp + 8]
push 0x10016f0
jmp 0x1005800
push edi
push 0x10016c4
call fcn.01007d70
pop ecx
jmp 0x1005df9
push 0x10016ac
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005898
add edi, 2
cmp ebx, edi
jae 0x1005850
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001670
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x100163c
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
cmp ebx, edi
mov dword [ebp + 8], 0x1f4
jbe 0x1005882
push dword [esi + edi*4]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
push dword [ebp + 8]
mov eax, dword [ebp - 8]
push dword [esi + eax*4]
push dword [ebp - 4]
call fcn.01006e01
jmp 0x1005ec9
push 0x100162c
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x1005909
add edi, 2
cmp ebx, edi
jae 0x10058dd
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x10015f0
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x10015cc
jmp 0x1005df4
push 0x80000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
mov ecx, dword [ebp - 8]
push dword [esi + ecx*4]
push eax
call fcn.01006f34
jmp 0x1005ec9
push 0x10015c0
push dword [esi + edi*4]
call fcn.01007db0
pop ecx
test eax, eax
pop ecx
jne 0x100597e
lea eax, [edi + 3]
cmp ebx, eax
jae 0x100594e
push 0x10021f4
call fcn.01007d70
pop ecx
push 0x1001598
call fcn.01007d70
pop ecx
push 0x10021d0
call fcn.01007d70
pop ecx
push 0x1001560
jmp 0x1005df4
push 0x40000000
push 0
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
mov dword [ebp - 4], eax
je 0x1005e15
push dword [esi + edi*4 + 8]
mov ecx, dword [ebp - 8]
push dword [esi + ecx*4]
push eax
call fcn.01006ff5
jmp 0x1005ec9
push 0x1001540
jmp 0x1005f19
xor ecx, ecx
push 1
inc edi
pop eax
cmp ebx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], ecx
mov dword [ebp + 8], 0x400
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 8], edi
jbe 0x1005c16
lea esi, [esi + edi*4]
push 0x1001538
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x10059e0
inc edi
add esi, 4
cmp ebx, edi
jbe 0x1005c08
push dword [esi]
call fcn.01007d40
pop ecx
mov dword [ebp - 0x20], eax
jmp 0x1005c08
push 0x100152c
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005b37
inc edi
add esi, 4
cmp ebx, edi
jbe 0x1005c08
push 0x100151c
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005a1d
or dword [ebp - 0xc], 0xb
jmp 0x1005c08
push 0x100150c
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005a38
or dword [ebp - 0xc], 0x30
jmp 0x1005c08
push 0x1001504
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005a55
or word [ebp - 0xc], 0x13f
jmp 0x1005c08
push 0x10014f0
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005a70
or byte [ebp - 0xb], 1
jmp 0x1005c08
push 0x10014e4
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005a8b
or dword [ebp - 0xc], 0xffffffff
jmp 0x1005c08
push 0x10014d8
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005aac
and dword [ebp - 0xc], eax
mov dword [ebp - 0x3c], 1
jmp 0x1005c08
push 0x10014c8
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005ac7
or dword [ebp - 0xc], 1
jmp 0x1005c08
push 0x10014b8
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005ae2
or dword [ebp - 0xc], 2
jmp 0x1005c08
push 0x10014a8
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005afd
or dword [ebp - 0xc], 4
jmp 0x1005c08
push 0x10014a0
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005b18
or dword [ebp - 0xc], 0x10
jmp 0x1005c08
push 0x1001494
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005ef5
or dword [ebp - 0xc], 0x20
jmp 0x1005c08
push 0x1001484
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005baa
inc edi
add esi, 4
cmp ebx, edi
jbe 0x1005c08
push 0x1001470
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005b73
mov dword [ebp - 0x1c], 2
jmp 0x1005c08
push 0x1001504
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005b8e
mov dword [ebp - 0x1c], 3
jmp 0x1005c08
push 0x10014e4
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005eff
or dword [ebp - 0x1c], 0xffffffff
jmp 0x1005c08
push 0x1001460
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005bcb
inc edi
add esi, 4
cmp ebx, edi
jbe 0x1005c08
mov eax, dword [esi]
mov dword [ebp - 0x2c], eax
jmp 0x1005c08
push 0x100144c
push dword [esi]
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005bf2
inc edi
add esi, 4
cmp ebx, edi
jbe 0x1005c08
push dword [esi]
call fcn.01007d40
pop ecx
mov dword [ebp + 8], eax
jmp 0x1005c08
cmp edi, dword [ebp - 8]
jne 0x1005f14
mov eax, dword [esi]
and dword [ebp - 0x38], 0
inc edi
mov dword [ebp - 0x28], eax
add esi, 4
inc edi
add esi, 4
cmp ebx, edi
ja 0x10059b2
xor ecx, ecx
cmp dword [ebp + 8], ecx
je 0x1005c4a
push dword [ebp + 8]
xor edi, edi
push edi
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov esi, eax
cmp esi, edi
mov dword [ebp - 0x30], esi
jne 0x1005c51
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001410
jmp 0x1005e54
mov dword [ebp - 0x30], ecx
mov esi, ecx
xor edi, edi
cmp dword [ebp - 0x38], edi
je 0x1005dea
push 4
push edi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, edi
mov dword [ebp - 4], eax
je 0x1005e15
mov ebx, dword [ebp - 0xc]
mov dword [ebp + 0xc], edi
cmp ebx, edi
jne 0x1005c83
cmp dword [ebp - 0x3c], edi
jne 0x1005c83
push 0x30
pop ebx
cmp dword [ebp - 0x24], edi
je 0x1005cef
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], esi
test edi, edi
jne 0x1005cb1
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
push esi
push dword [ebp - 0x1c]
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_EnumServicesStatusW]
jmp 0x1005d11
push 0x1001400
push edi
call fcn.01007ce0
pop ecx
test eax, eax
pop ecx
jne 0x1005ccf
push 0x10013cc
call fcn.01007d70
pop ecx
xor edi, edi
lea eax, [ebp - 0x20]
push edi
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
push esi
push dword [ebp - 0x1c]
push ebx
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_EnumServiceGroupW]
jmp 0x1005d11
push dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x3c], esi
push ecx
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x34]
push ecx
push dword [ebp + 8]
push esi
push dword [ebp - 0x1c]
push ebx
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_EnumServicesStatusExW]
test eax, eax
jne 0x1005d1e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0xc], eax
xor esi, esi
mov ebx, 0xea
cmp dword [ebp + 0xc], esi
je 0x1005d55
cmp dword [ebp + 0xc], ebx
je 0x1005d55
cmp dword [ebp - 0x24], esi
mov esi, 0x10013c8
jne 0x1005d3e
mov esi, 0x10013c4
push dword [ebp + 0xc]
call fcn.010072bf
push eax
push dword [ebp + 0xc]
push esi
push 0x1001398
jmp 0x1005ec1
push dword [ebp - 0x18]
push 0x100137c
call fcn.01007d70
pop ecx
pop ecx
push dword [ebp - 0x20]
push 0x1001360
call fcn.01007d70
cmp dword [ebp - 0x18], esi
pop ecx
pop ecx
jbe 0x1005dd4
mov edi, dword [ebp - 0x28]
xor esi, esi
cmp dword [ebp - 0x18], esi
jbe 0x1005dce
cmp dword [ebp - 0x24], 0
je 0x1005da6
lea eax, [edi + 8]
push 1
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.010072e5
add edi, 0x24
mov dword [ebp - 0x28], edi
jmp 0x1005dc8
mov edi, dword [ebp - 0x3c]
push 0
lea eax, [edi + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.010072e5
add edi, 0x2c
mov dword [ebp - 0x3c], edi
mov edi, dword [ebp - 0x28]
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x1005d82
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x1005d7b
cmp dword [ebp + 0xc], ebx
jne 0x1005ec9
push dword [ebp - 0x20]
push dword [ebp - 0x34]
push 0x1001324
jmp 0x1005e54
cmp dword [ebp - 0x2c], edi
je 0x1005dff
push 0x10012e4
call fcn.01007d70
pop ecx
jmp 0x1005ec9
push 0x80000000
push edi
push dword [ebp + 0xc]
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
cmp eax, edi
mov dword [ebp - 4], eax
jne 0x1005e2c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x10012c0
jmp 0x1005e54
push 4
push dword [ebp - 0x28]
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
cmp eax, edi
mov dword [ebp - 0x10], eax
jne 0x1005e5e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
call fcn.010072bf
push eax
push esi
push 0x1001284
call fcn.01007d70
add esp, 0xc
jmp 0x1005ec9
xor ebx, ebx
cmp dword [ebp - 0x24], edi
mov dword [ebp - 0x14], esi
je 0x1005e72
push esi
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
jmp 0x1005e82
lea ecx, [ebp + 0xc]
push ecx
push dword [ebp + 8]
push esi
push edi
push eax
call dword [sym.imp.ADVAPI32.dll_QueryServiceStatusEx]
test eax, eax
jne 0x1005e8e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp ebx, edi
jne 0x1005ea4
push dword [ebp - 0x24]
lea eax, [ebp - 0x14]
push eax
push edi
push dword [ebp - 0x28]
call fcn.010072e5
jmp 0x1005ec9
cmp dword [ebp - 0x24], edi
mov esi, 0x10013c8
jne 0x1005eb3
mov esi, 0x10013c4
push ebx
call fcn.010072bf
push eax
push ebx
push esi
push 0x1001258
call fcn.01007d70
add esp, 0x10
push dword [ebp - 0x30]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x10], 0
je 0x1005ee1
push dword [ebp - 0x10]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
cmp dword [ebp - 4], 0
je 0x1005ef0
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
pop edi
pop esi
pop ebx
leave
ret
push 0x100121c
jmp 0x1005df4
push 0x1001200
call fcn.01007d70
pop ecx
push 0x10011c8
jmp 0x1005df4
push 0x10011b0
call fcn.01007d70
pop ecx
call fcn.0100795a
jmp 0x1005ec9