Function at 0x4480e8
Capabilities:
Create service

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff84
push ebx
push esi
push edi
mov dword [ebp - 0x54], eax
mov eax, 0x5ba9f4
call fcn.0057c5c8
mov word [ebp - 0x40], 8
lea eax, [ebp - 4]
call fcn.004025f4
inc dword [ebp - 0x34]
mov word [ebp - 0x40], 0x14
mov word [ebp - 0x40], 0x20
lea eax, [ebp - 0xc]
call fcn.004025f4
mov edx, eax
inc dword [ebp - 0x34]
mov ecx, dword [sym.imp.vcl60.bpl__Forms_Application]
mov eax, dword [ecx]
call sub.vcl60.bpl__Forms_TApplication_GetExeName_qqrv
lea edx, [ebp - 0xc]
push dword [edx]
lea eax, [ebp - 8]
call fcn.004025f4
mov edx, eax
inc dword [ebp - 0x34]
pop eax
call sub.rtl60.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
dec dword [ebp - 0x34]
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0058fb04
mov word [ebp - 0x40], 0x14
mov word [ebp - 0x40], 0x2c
lea eax, [ebp - 0x10]
call fcn.004025f4
mov ecx, eax
inc dword [ebp - 0x34]
mov edx, 1
mov eax, dword [ebp - 8]
call sub.rtl60.bpl__Strutils_RightStr_qqrx17System_AnsiStringxi
lea edx, [ebp - 0x10]
push edx
mov edx, 0x5b65b5
lea eax, [ebp - 0x14]
call fcn.0058f82c
inc dword [ebp - 0x34]
lea edx, [ebp - 0x14]
pop eax
call fcn.0058fc00
push eax
dec dword [ebp - 0x34]
lea eax, [ebp - 0x14]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.0058fb04
pop ecx
test cl, cl
je 0x4481f7
mov word [ebp - 0x40], 0x38
mov edx, 0x5b65b7
lea eax, [ebp - 0x18]
call fcn.0058f82c
inc dword [ebp - 0x34]
lea edx, [ebp - 0x18]
lea eax, [ebp - 8]
call fcn.0058fb48
dec dword [ebp - 0x34]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.0058fb04
mov word [ebp - 0x40], 0x44
lea eax, [ebp - 0x20]
call fcn.004025f4
push eax
inc dword [ebp - 0x34]
mov edx, 0x5b65b9
lea eax, [ebp - 0x1c]
call fcn.0058f82c
inc dword [ebp - 0x34]
lea edx, [ebp - 0x1c]
lea eax, [ebp - 8]
pop ecx
call fcn.0058fb5c
lea edx, [ebp - 0x20]
lea eax, [ebp - 4]
call fcn.0058fb34
dec dword [ebp - 0x34]
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.0058fb04
mov eax, dword [ebp - 4]
call sub.rtl60.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
jne 0x448336
mov word [ebp - 0x40], 0x5c
lea eax, [ebp - 0x28]
call fcn.004025f4
mov ecx, eax
inc dword [ebp - 0x34]
lea edx, [ebp - 4]
mov eax, 0x5b65ca
call fcn.0059021c
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x24]
call fcn.004025f4
push eax
inc dword [ebp - 0x34]
mov edx, 0x5b65d8
lea eax, [ebp - 0x2c]
call fcn.0058f82c
inc dword [ebp - 0x34]
lea edx, [ebp - 0x2c]
pop ecx
pop eax
call fcn.0058fb5c
dec dword [ebp - 0x34]
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.0058fb04
mov word [ebp - 0x40], 0x50
push 0x10
lea eax, [ebp - 0x24]
call fcn.00404af8
mov edx, eax
mov ecx, 0x5b65e1
mov eax, dword [sym.imp.vcl60.bpl__Forms_Application]
mov eax, dword [eax]
call fcn.0058f760
xor eax, eax
push eax
dec dword [ebp - 0x34]
lea eax, [ebp - 0x24]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0058fb04
pop eax
mov edx, dword [ebp - 0x50]
mov dword fs:[0], edx
jmp 0x448494
mov byte [ebp - 0x55], 0
mov word [ebp - 0x40], 0x14
xor ecx, ecx
mov dword [ebp - 0x5c], ecx
xor eax, eax
mov dword [ebp - 0x60], eax
mov word [ebp - 0x40], 0x68
push 0xf003f
push 0
push 0
call sub.advapi32.dll_OpenSCManagerA
mov dword [ebp - 0x5c], eax
call fcn.0042e0fc
test al, al
je 0x4483b4
call fcn.0042e37c
test al, al
jne 0x44837c
call fcn.0042e42c
test al, al
je 0x4483b4
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 4]
call fcn.00404af8
push eax
push 1
push 3
push 0x10
push 0xf01ff
push 0x5b65f4
push 0x5b65e6
push dword [ebp - 0x5c]
call sub.advapi32.dll_CreateServiceA
mov dword [ebp - 0x60], eax
jmp 0x448437
call fcn.0042e0fc
test al, al
je 0x448404
call fcn.0042e3d4
test al, al
jne 0x4483cf
call fcn.0042e484
test al, al
je 0x448404
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 4]
call fcn.00404af8
push eax
push 1
push 3
push 0x10
push 0xf01ff
push 0x5b6615
push 0x5b6606
push dword [ebp - 0x5c]
call sub.advapi32.dll_CreateServiceA
mov dword [ebp - 0x60], eax
jmp 0x448437
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 4]
call fcn.00404af8
push eax
push 1
push 3
push 0x10
push 0xf01ff
push 0x5b6635
push 0x5b6628
push dword [ebp - 0x5c]
call sub.advapi32.dll_CreateServiceA
mov dword [ebp - 0x60], eax
mov word [ebp - 0x40], 0x14
cmp dword [ebp - 0x60], 0
je 0x44844f
push dword [ebp - 0x60]
call sub.advapi32.dll_CloseServiceHandle
mov byte [ebp - 0x55], 1
cmp dword [ebp - 0x5c], 0
je 0x44845d
push dword [ebp - 0x5c]
call sub.advapi32.dll_CloseServiceHandle
cmp word [ebp - 0x3e], 0
je 0x448465
ret
mov al, byte [ebp - 0x55]
push eax
dec dword [ebp - 0x34]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0058fb04
dec dword [ebp - 0x34]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0058fb04
pop eax
mov edx, dword [ebp - 0x50]
mov dword fs:[0], edx
mov edi, dword [ebp - 0x88]
mov esi, dword [ebp - 0x84]
mov ebx, dword [ebp - 0x80]
mov esp, ebp
pop ebp
ret