Function at 0x403a90
Capabilities:
Create a process with modified i/o handles and window
Create directory
Create process on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x26
push 0
push 0
dec ecx
jne 0x403a98
push ebx
push esi
mov esi, dword [sym.imp.vcl70.bpl__Forms_Application]
xor eax, eax
push ebp
push 0x403d6f
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
push 0
lea edx, [ebp - 0xf8]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0xf8]
lea edx, [ebp - 0xf4]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0xf4]
mov edx, 0x403d88
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0xf4]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
call sub.kernel32.dll_CreateDirectoryA
lea eax, [ebp - 0xf0]
call fcn.004039b8
test al, al
je 0x403b3a
cmp dword [ebp - 0xec], 6
jb 0x403b26
mov ecx, 0x403d9c
mov edx, 0x403dbc
mov eax, 0x403dd0
call fcn.004039e8
jmp 0x403b3a
mov ecx, 0x403de0
mov edx, 0x403dec
mov eax, 0x403e04
call fcn.004039e8
lea edx, [ebp - 0x100]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x100]
lea edx, [ebp - 0xfc]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0xfc]
mov edx, 0x403e14
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0xfc]
call sub.rtl70.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
jne 0x403b88
mov eax, 0x403e28
call sub.vcl70.bpl__Dialogs_ShowMessage_qqrx17System_AnsiString
mov bl, 1
jmp 0x403d51
lea edx, [ebp - 0x108]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x108]
lea edx, [ebp - 0x104]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0x104]
mov edx, 0x403e44
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0x104]
call sub.rtl70.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
jne 0x403bd6
mov eax, 0x403e28
call sub.vcl70.bpl__Dialogs_ShowMessage_qqrx17System_AnsiString
mov bl, 1
jmp 0x403d51
lea edx, [ebp - 0x110]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x110]
lea edx, [ebp - 0x10c]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0x10c]
mov edx, 0x403e58
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0x10c]
call sub.rtl70.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
jne 0x403c24
mov eax, 0x403e28
call sub.vcl70.bpl__Dialogs_ShowMessage_qqrx17System_AnsiString
mov bl, 1
jmp 0x403d51
lea edx, [ebp - 0x118]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x118]
lea edx, [ebp - 0x114]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0x114]
mov edx, 0x403e6c
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0x114]
call sub.rtl70.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
je 0x403d51
lea edx, [ebp - 0x120]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0x11c]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0x11c]
mov edx, 0x403e14
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0x11c]
call sub.rtl70.bpl__Sysutils_FileExists_qqrx17System_AnsiString
test al, al
je 0x403d51
lea eax, [ebp - 0x44]
xor ecx, ecx
mov edx, 0x44
call sub.rtl70.bpl__System__FillChar_qqrpvic
mov dword [ebp - 0x44], 0x44
mov dword [ebp - 0x18], 0x101
xor eax, eax
mov dword [ebp - 0x38], eax
mov word [ebp - 0x14], 5
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x44]
push eax
lea edx, [ebp - 0x128]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x128]
lea edx, [ebp - 0x124]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
mov eax, dword [ebp - 0x124]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
push 0
push 0x30
push 0
push 0
push 0
push 0
lea edx, [ebp - 0x130]
mov eax, dword [esi]
call sub.vcl70.bpl__Forms_TApplication_GetExeName_qqrv
mov eax, dword [ebp - 0x130]
lea edx, [ebp - 0x12c]
call sub.rtl70.bpl__Sysutils_ExtractFilePath_qqrx17System_AnsiString
lea eax, [ebp - 0x12c]
mov edx, 0x403e14
call sub.rtl70.bpl__System__LStrCat_qqrv
mov eax, dword [ebp - 0x12c]
call sub.rtl70.bpl__System__LStrToPChar_qqrx17System_AnsiString
push eax
call sub.kernel32.dll_CreateProcessA
test eax, eax
je 0x403d51
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x403d76
lea eax, [ebp - 0x130]
mov edx, 0x10
call sub.rtl70.bpl__System__LStrArrayClr_qqrpvi
ret