Function at 0x4488cc
Capabilities:
Modify service

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov esi, 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 0x448b73
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0x11
mov eax, esi
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x24]
call sub.rtl160.bpl__System_Sysutils_IntToStr_qqrj
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0x11
lea eax, [ebp - 0x20]
push eax
push 1
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448b90
mov dl, 3
call fcn.004082b8
xor eax, eax
push ebp
push 0x448b4e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448bcc
mov dl, 3
call fcn.00407ff8
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x44898c
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004483a4
xor eax, eax
push ebp
push 0x448b1a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448bf0
mov dl, 3
call fcn.00407ff8
push 0x77
mov eax, dword [ebp - 4]
call sub.rtl160.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.advapi32.dll_OpenServiceW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x4489e2
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004483a4
xor eax, eax
push ebp
push 0x448afc
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0044b4a8
cmp esi, eax
je 0x448ae5
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448c1c
mov dl, 3
call fcn.00407ff8
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_ChangeServiceConfigW
test eax, eax
jne 0x448a4e
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004483a4
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448c5c
mov dl, 3
call fcn.00407ff8
call sub.kernel32.dll_GetTickCount
mov edi, eax
xor ebx, ebx
jmp 0x448a85
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0044b4a8
cmp esi, eax
sete bl
call sub.kernel32.dll_GetTickCount
lea edx, [edi + 0xea60]
cmp eax, edx
ja 0x448a98
test bl, bl
je 0x448a75
test bl, bl
jne 0x448aab
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004483a4
mov eax, dword [ebp - 8]
call sub.rtl160.bpl__System_TObject_ClassType_qqrv
push eax
mov eax, dword [0x463cbc]
mov eax, dword [eax]
mov ecx, 0x448ca8
mov dl, 3
call fcn.00407ff8
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.0044b914
test al, al
jne 0x448ae5
call sub.kernel32.dll_GetLastError_1
mov edx, eax
mov eax, dword [ebp - 4]
call fcn.004483a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x448b03
mov eax, dword [ebp - 0x10]
push eax
call sub.advapi32.dll_CloseServiceHandle
ret