Function at 0x446ac4
Capabilities:
Continue service
Pause service
Start service
Stop service

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0x48], ebx
mov ebx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
call sub.rtl160.bpl__System__UStrAddRef_qqrpv
xor eax, eax
push ebp
push 0x446f2b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
mov eax, ebx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x48]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 0x11
lea eax, [ebp - 0x44]
push eax
push 1
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x446f44
mov dl, 3
call fcn.00405f38
xor edx, edx
push ebp
push 0x446f06
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x446f78
mov dl, 3
call fcn.00405c78
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x446b83
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
xor edx, edx
push ebp
push 0x446ed2
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x446f9c
mov dl, 3
call fcn.00405c78
push 0x77
mov eax, dword [ebp - 4]
call sub.rtl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_OpenServiceW
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x446bd9
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
xor edx, edx
push ebp
push 0x446eb4
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x446fc8
mov dl, 3
call fcn.00405c78
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.004496ec
test al, al
jne 0x446c21
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.004490d8
mov esi, eax
cmp ebx, esi
je 0x446e9d
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.00449280
cmp eax, 4
jne 0x446c4b
cmp esi, 1
je 0x446c4f
xor eax, eax
jmp 0x446c51
mov al, 1
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x446c6a
mov ecx, 3
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004466a4
xor eax, eax
push ebp
push 0x446e96
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x44700c
mov dword [ebp - 0xc], eax
mov eax, ebx
dec eax
je 0x446d2f
sub eax, 3
je 0x446c9c
sub eax, 3
je 0x446d76
jmp 0x446e36
cmp esi, 7
jne 0x446ce8
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x44701c
mov dl, 3
call fcn.00405c78
lea eax, [ebp - 0x34]
push eax
push 3
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_ControlService
test eax, eax
jne 0x446e36
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
jmp 0x446e36
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x447050
mov dl, 3
call fcn.00405c78
lea eax, [ebp - 0xc]
push eax
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_StartServiceW
test eax, eax
jne 0x446e36
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
jmp 0x446e36
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x447080
mov dl, 3
call fcn.00405c78
lea eax, [ebp - 0x34]
push eax
push 1
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_ControlService
test eax, eax
jne 0x446e36
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
jmp 0x446e36
cmp esi, 1
jne 0x446df8
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x447050
mov dl, 3
call fcn.00405c78
lea eax, [ebp - 0xc]
push eax
push 0
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_StartServiceW
test eax, eax
jne 0x446db9
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x4470ac
mov dl, 3
call fcn.00405c78
mov ecx, 4
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.00449748
test al, al
jne 0x446df8
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x4470ec
mov dl, 3
call fcn.00405c78
lea eax, [ebp - 0x34]
push eax
push 2
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_ControlService
test eax, eax
jne 0x446e36
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x461c8c]
mov eax, dword [eax]
mov ecx, 0x4470ac
mov dl, 3
call fcn.00405c78
mov ecx, ebx
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 8]
call fcn.00449748
test al, al
jne 0x446e72
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.0044617c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x446e9d
cmp byte [ebp - 0x15], 0
je 0x446e95
mov ecx, 4
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 8]
call fcn.004466a4
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x446ebb
mov eax, dword [ebp - 0x14]
push eax
call sub.advapi32.dll_CloseServiceHandle
ret