Function at 0x423728
Capabilities:
Start service

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x423730
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x423adf
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
je 0x42381d
mov eax, dword [ebp + 8]
test byte [eax - 0xc], 1
je 0x4237a9
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov esi, eax
test esi, esi
je 0x4237a9
push 0xf01ff
push 0x423af0
push esi
call sub.advapi32.dll_OpenServiceA
mov edi, eax
test edi, edi
je 0x4237a3
mov eax, 0x423b00
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
push 0
push edi
call sub.advapi32.dll_StartServiceA
push edi
call sub.advapi32.dll_CloseServiceHandle
push esi
call sub.advapi32.dll_CloseServiceHandle
mov eax, dword [ebp + 8]
test byte [eax - 0xc], 4
je 0x423abc
call fcn.004229a4
mov ebx, eax
mov edx, 0x423b0c
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jne 0x423811
push 0
push 0
push 0x423b20
lea edx, [ebp - 0x14]
mov eax, dword [0x42a710]
call fcn.0040becc
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
call fcn.00407de4
push dword [ebp - 0x10]
push 0x423b2c
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.004045c0
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov edx, 0xbb8
call fcn.00421be8
mov eax, ebx
call fcn.0040348c
jmp 0x423abc
lea eax, [ebp - 0x18]
call fcn.00421e24
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 4]
mov ecx, 0x423b44
call fcn.0040454c
call fcn.004225d4
mov ebx, eax
call fcn.00421ee4
call fcn.0042230c
call fcn.00421ee4
call fcn.00421fa4
test eax, eax
jne 0x423860
mov eax, ebx
call fcn.0040348c
jmp 0x423abc
mov eax, dword [ebp + 8]
test byte [eax - 0xc], 1
je 0x4239ac
call fcn.00421ee4
call fcn.00422268
mov edx, eax
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov esi, eax
mov eax, dword [ebp + 8]
cmp dword [eax - 8], 0
je 0x42390f
cmp esi, 0xffffffff
je 0x4238bc
lea ecx, [ebp - 0x20]
mov edx, esi
mov eax, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x20]
lea edx, [ebp - 0x1c]
call fcn.00407e18
mov eax, dword [ebp - 0x1c]
mov edx, 0x423b58
call fcn.004077b4
test eax, eax
je 0x42390f
call fcn.00421ee4
lea edx, [ebp - 0x24]
call fcn.00422194
mov eax, dword [ebp - 0x24]
call fcn.00407d6c
test al, al
je 0x42390f
push 0
push 0
push 0x423b70
call fcn.00421ee4
lea edx, [ebp - 0x2c]
call fcn.00422194
push dword [ebp - 0x2c]
push 0x423b88
lea eax, [ebp - 0x28]
mov edx, 3
call fcn.004045c0
mov eax, dword [ebp - 0x28]
xor ecx, ecx
mov edx, 0xbb8
call fcn.00421be8
mov eax, dword [ebp + 8]
cmp dword [eax - 4], 0
je 0x4239ac
cmp esi, 0xffffffff
je 0x423949
lea ecx, [ebp - 0x34]
mov edx, esi
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0x30]
call fcn.00407e18
mov eax, dword [ebp - 0x30]
mov edx, 0x423b44
call fcn.004077b4
test eax, eax
je 0x4239ac
call fcn.00421ee4
lea edx, [ebp - 0x38]
call fcn.00422194
mov eax, dword [ebp - 0x38]
call fcn.00407d6c
test al, al
je 0x4239ac
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov esi, eax
test esi, esi
je 0x4239ac
push 0xf01ff
push 0x423af0
push esi
call sub.advapi32.dll_OpenServiceA
mov edi, eax
test edi, edi
je 0x4239a6
mov eax, 0x423b00
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
push 0
push edi
call sub.advapi32.dll_StartServiceA
push edi
call sub.advapi32.dll_CloseServiceHandle
push esi
call sub.advapi32.dll_CloseServiceHandle
mov eax, dword [ebp + 8]
test byte [eax - 0xc], 2
je 0x423a4e
call fcn.00421ee4
call fcn.004221c0
mov edx, eax
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov esi, eax
cmp esi, 0xffffffff
je 0x4239fb
lea ecx, [ebp - 0x40]
mov edx, esi
mov eax, ebx
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.00407e18
mov eax, dword [ebp - 0x3c]
mov edx, 0x423b58
call fcn.004077b4
test eax, eax
je 0x423a4e
call fcn.00421ee4
lea edx, [ebp - 0x44]
call fcn.0042213c
mov eax, dword [ebp - 0x44]
call fcn.00407d6c
test al, al
je 0x423a4e
push 0
push 0
push 0x423b70
call fcn.00421ee4
lea edx, [ebp - 0x4c]
call fcn.0042213c
push dword [ebp - 0x4c]
push 0x423b98
lea eax, [ebp - 0x48]
mov edx, 3
call fcn.004045c0
mov eax, dword [ebp - 0x48]
xor ecx, ecx
mov edx, 0xbb8
call fcn.00421be8
mov eax, dword [ebp + 8]
test byte [eax - 0xc], 4
je 0x423ab5
call fcn.00421ee4
lea edx, [ebp - 0x54]
call fcn.00422168
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x50]
call fcn.00407758
mov edx, dword [ebp - 0x50]
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x54]
inc eax
jne 0x423ab5
call fcn.00421ee4
lea edx, [ebp - 0x58]
call fcn.00422168
mov eax, dword [ebp - 0x58]
call fcn.00407d6c
test al, al
je 0x423ab5
push 0
push 0
call fcn.00421ee4
lea edx, [ebp - 0x5c]
call fcn.00422168
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov edx, 0xbb8
call fcn.00421be8
mov eax, ebx
call fcn.0040348c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x423ae6
lea eax, [ebp - 0x5c]
mov edx, 0x15
call fcn.0040426c
lea eax, [ebp - 4]
call fcn.00404248
ret