Function at 0x7393bc
Capabilities:
Check for time delay via gettickcount
Create process on windows
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff24
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0x94], ecx
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], ecx
mov byte [ebp - 0x11], dl
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x739d82
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 0x11], 0
je 0x7394e3
mov eax, dword [ebp - 0x10]
call fcn.0073b684
cmp eax, 5
jne 0x7394d4
mov eax, dword [0x80721c]
mov eax, dword [eax]
call fcn.007c690c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x66f2a4]
call sub.vcl120.bpl__Forms_TCustomForm__bctr_qqrp18Classes_TComponent
mov edx, dword [0x806ad0]
mov dword [edx], eax
mov eax, dword [0x806ad0]
mov eax, dword [eax]
add eax, 0x4fc
mov edx, 0x739d9c
call sub.rtl120.bpl__System__UStrAsg_qqrr20System_UnicodeStringx20System_UnicodeString
mov eax, dword [0x806ad0]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov eax, dword [0x806ad0]
call sub.rtl120.bpl__Sysutils_FreeAndNil_qqrpv
mov eax, dword [0x80721c]
mov eax, dword [eax]
call fcn.007c693c
mov eax, dword [0x807260]
mov eax, dword [eax]
test eax, eax
jle 0x739d31
mov edx, dword [0x807260]
cmp eax, 4
jge 0x739d31
mov eax, dword [0x807260]
cmp byte [eax + 0x20], 0
jne 0x739d31
mov eax, dword [0x807260]
cmp byte [eax + 0x28], 0
jne 0x739d31
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.007393bc
jmp 0x739d31
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.007393bc
jmp 0x739d31
cmp byte [0x83ad44], 0
jne 0x739d31
mov eax, dword [0x807260]
cmp dword [eax], 0
jg 0x7395cb
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
cmp dword [eax + 0xc], 1
jne 0x7395cb
xor edx, edx
mov eax, 0x739dc0
call fcn.005465f0
push 0xffffffffffffffff
xor ecx, ecx
xor edx, edx
mov eax, 0x8016
call fcn.00410e48
mov eax, dword [0x80721c]
mov eax, dword [eax]
call fcn.007c690c
mov eax, dword [0x806c40]
cmp dword [eax], 0
jne 0x73955c
push 0
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x64def0]
call fcn.0064e624
mov edx, dword [0x806c40]
mov dword [edx], eax
mov eax, dword [0x806c40]
mov eax, dword [eax]
mov byte [eax + 0x420], 1
mov eax, dword [0x806c40]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov eax, dword [0x806c40]
call sub.rtl120.bpl__Sysutils_FreeAndNil_qqrpv
mov eax, dword [0x80721c]
mov eax, dword [eax]
call fcn.007c693c
push 0xffffffffffffffff
xor ecx, ecx
xor edx, edx
mov eax, 0x5f4
call fcn.00410e48
mov eax, dword [0x807260]
cmp dword [eax], 0
jle 0x739d31
mov eax, dword [0x807260]
cmp byte [eax + 0x20], 0
jne 0x739d31
mov eax, dword [0x807260]
cmp byte [eax + 0x28], 0
jne 0x739d31
mov eax, dword [0x806b08]
mov eax, dword [eax]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
mov byte [0x83ad44], 1
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x294]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x34d], 1
push 0xffffffffffffffff
xor ecx, ecx
mov edx, 1
mov eax, 0x47b
call fcn.00410e48
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x294]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
xor edx, edx
push ebp
push 0x739d2a
push dword fs:[edx]
mov dword fs:[edx], esp
mov dl, 3
mov eax, dword [ebp - 0x10]
call fcn.0073e07c
lea edx, [ebp - 0x90]
xor eax, eax
call sub.rtl120.bpl__System_ParamStr_qqri
mov eax, dword [ebp - 0x90]
lea edx, [ebp - 0x8c]
call sub.rtl120.bpl__Sysutils_ExtractFilePath_qqrx20System_UnicodeString
mov edx, dword [ebp - 0x8c]
lea eax, [ebp - 8]
mov ecx, 0x739de0
call sub.rtl120.bpl__System__UStrCat3_qqrr20System_UnicodeStringx20System_UnicodeStringt2
push dword [ebp - 0xc]
push 0x739e00
lea edx, [ebp - 0x94]
mov eax, 0x7530
call sub.rtl120.bpl__Sysutils_IntToStr_qqri
push dword [ebp - 0x94]
lea eax, [ebp - 0xc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0xc]
dec eax
je 0x7396a8
dec eax
je 0x7396ef
jmp 0x739729
push dword [ebp - 0xc]
push 0x739e24
push 0x739e34
lea eax, [ebp - 0xc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
cmp byte [ebp - 0x11], 0
jne 0x7396e3
xor edx, edx
mov eax, 0x739e50
call fcn.00517b0c
mov edx, 7
mov eax, 0x739e68
call fcn.00517b0c
mov eax, 0x739e80
call fcn.005c2458
jmp 0x739729
push dword [ebp - 0xc]
push 0x739e24
push 0x739e9c
lea eax, [ebp - 0xc]
mov edx, 3
call sub.rtl120.bpl__System__UStrCatN_qqrv
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x28c]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x290]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0xa0], 0x11
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0x11
lea edx, [ebp - 0xa4]
mov ecx, 1
mov eax, 0x739ebc
call fcn.00411984
mov eax, dword [ebp - 4]
call sub.rtl120.bpl__System__UStrLen_qqrx20System_UnicodeString
mov ebx, eax
inc ebx
mov eax, ebx
call sub.rtl120.bpl__Sysutils_StrAlloc_qqrui
mov dword [ebp - 0x18], eax
mov edx, ebx
add edx, edx
mov eax, dword [ebp - 0x18]
call fcn.00402518
mov ecx, ebx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x18]
call sub.rtl120.bpl__Sysutils_StrPLCopy_qqrpbx20System_UnicodeStringui
lea eax, [ebp - 0x78]
mov edx, 0x44
call fcn.00402518
lea eax, [ebp - 0x88]
mov edx, 0x10
call fcn.00402518
mov dword [ebp - 0x78], 0x44
mov dword [ebp - 0x4c], 1
mov word [ebp - 0x48], 0
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x78]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
push 0
call sub.kernel32.dll_CreateProcessW
mov byte [ebp - 0x31], 0
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
call sub.kernel32.dll_GetTickCount
mov edi, eax
cmp byte [0x83ad44], 0
je 0x739974
push 0
mov eax, dword [ebp - 0x88]
push eax
call sub.kernel32.dll_WaitForSingleObject
mov esi, eax
cmp esi, 0x102
je 0x739830
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x739974
call sub.kernel32.dll_GetTickCount
mov ebx, eax
sub ebx, edi
cmp ebx, 0x7530
jb 0x739864
mov byte [ebp - 0x31], 1
push 0x739ecc
call sub.kernel32.dll_OutputDebugStringW
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
jmp 0x739974
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [sym.imp.vcl120.bpl__Forms_Application]
mov eax, dword [eax]
call sub.vcl120.bpl__Forms_TApplication_ProcessMessages_qqrv
mov dword [ebp - 0xac], ebx
xor eax, eax
mov dword [ebp - 0xa8], eax
fild qword [ebp - 0xac]
fdiv dword [0x739ee0]
add esp, 0xfffffff4
fstp xword [esp]
wait
push 0x3fff
push 0x80000000
push 0
call sub.rtl120.bpl__Math_Min_qqrxgxg
fstp qword [ebp - 0x20]
wait
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov eax, dword [0x806b44]
mov cl, 1
mov edx, 3
call fcn.00555080
fstp qword [ebp - 0x28]
wait
lea eax, [ebp - 0xb0]
push eax
fld qword [ebp - 0x20]
fstp xword [ebp - 0xbc]
wait
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0xa0], 3
fld qword [ebp - 0x28]
fstp xword [ebp - 0xc8]
wait
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 3
lea edx, [ebp - 0xa4]
mov ecx, 1
mov eax, 0x739ef0
call fcn.00411984
mov eax, dword [ebp - 0xb0]
call fcn.007386e4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0xc]
dec eax
je 0x739940
dec eax
je 0x739957
jmp 0x7397f6
fld qword [ebp - 0x28]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.0073d180
jmp 0x7397f6
fld dword [0x739f0c]
fsub qword [ebp - 0x28]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.0073d180
jmp 0x7397f6
mov bl, 1
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0xc]
dec eax
je 0x73998a
dec eax
je 0x7399c8
jmp 0x739a04
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x33c]
fld dword [eax + 0xac]
fcomp dword [0x739f10]
wait
fnstsw ax
sahf
jne 0x7399c4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x340]
fld dword [eax + 0x9c]
fcomp dword [0x739f10]
wait
fnstsw ax
sahf
jne 0x7399c4
xor ebx, ebx
jmp 0x739a04
mov bl, 1
jmp 0x739a04
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x33c]
fld dword [eax + 0xac]
fcomp dword [0x739f14]
wait
fnstsw ax
sahf
jne 0x739a02
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x340]
fld dword [eax + 0x9c]
fcomp dword [0x739f14]
wait
fnstsw ax
sahf
jne 0x739a02
xor ebx, ebx
jmp 0x739a04
mov bl, 1
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x33c]
fld dword [eax + 0xac]
fstp xword [ebp - 0xbc]
wait
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0xa0], 3
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x340]
fld dword [eax + 0x9c]
fstp xword [ebp - 0xc8]
wait
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 3
lea edx, [ebp - 0xa4]
mov ecx, 1
mov eax, 0x739f24
call fcn.00411984
mov eax, dword [ebp - 0xcc]
call fcn.007386e4
test bl, bl
je 0x739bdd
fld qword [ebp - 0x28]
fcomp dword [0x739f0c]
wait
fnstsw ax
sahf
jae 0x739bdd
mov esi, 0x7d0
call sub.kernel32.dll_GetTickCount
mov edi, eax
call sub.kernel32.dll_GetTickCount
mov ebx, eax
sub ebx, edi
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [sym.imp.vcl120.bpl__Forms_Application]
mov eax, dword [eax]
call sub.vcl120.bpl__Forms_TApplication_ProcessMessages_qqrv
mov dword [ebp - 0xac], ebx
xor eax, eax
mov dword [ebp - 0xa8], eax
fild qword [ebp - 0xac]
mov dword [ebp - 0xd4], esi
xor eax, eax
mov dword [ebp - 0xd0], eax
fild qword [ebp - 0xd4]
fdivp st(1)
add esp, 0xfffffff4
fstp xword [esp]
wait
push 0x3fff
push 0x80000000
push 0
call sub.rtl120.bpl__Math_Min_qqrxgxg
fstp qword [ebp - 0x20]
wait
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov eax, dword [0x8073dc]
mov cl, 1
mov edx, 3
call fcn.00555080
fstp qword [ebp - 0x30]
wait
fld dword [0x739f0c]
fsub qword [ebp - 0x28]
fmul qword [ebp - 0x30]
fadd qword [ebp - 0x28]
fstp qword [ebp - 0x30]
wait
lea eax, [ebp - 0xd8]
push eax
fld qword [ebp - 0x20]
fstp xword [ebp - 0xbc]
wait
lea eax, [ebp - 0xbc]
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0xa0], 3
fld qword [ebp - 0x30]
fstp xword [ebp - 0xc8]
wait
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 3
lea edx, [ebp - 0xa4]
mov ecx, 1
mov eax, 0x739f64
call fcn.00411984
mov eax, dword [ebp - 0xd8]
call fcn.007386e4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0xc]
dec eax
je 0x739ba9
dec eax
je 0x739bbd
jmp 0x739bd5
fld qword [ebp - 0x30]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.0073d180
jmp 0x739bd5
fld dword [0x739f0c]
fsub qword [ebp - 0x30]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [ebp - 0x10]
call fcn.0073d180
cmp esi, ebx
ja 0x739aa4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x2c8]
mov eax, dword [eax + 0xc]
dec eax
je 0x739bf8
dec eax
je 0x739cb1
jmp 0x739cbb
movzx eax, byte [ebp - 0x31]
call fcn.007052c0
test al, al
je 0x739c77
call fcn.00704f1c
cmp edx, 0
jne 0x739c12
cmp eax, 0
ja 0x739c28
lea eax, [ebp - 0xdc]
call fcn.0070510c
cmp dword [ebp - 0xdc], 0
je 0x739c77
mov dl, 2
mov eax, dword [ebp - 0x10]
call fcn.0073e07c
cmp byte [ebp - 0x11], 0
jne 0x739c62
call fcn.00704f1c
cmp edx, 0
jne 0x739c45
cmp eax, 0
jbe 0x739c62
xor edx, edx
mov eax, 0x739f8c
call fcn.00517b0c
mov edx, 7
mov eax, 0x739fa4
call fcn.00517b0c
xor eax, eax
call fcn.00544b2c
test al, al
je 0x739cbb
mov eax, dword [ebp - 0x10]
call fcn.0073d690
jmp 0x739cbb
mov dl, 4
mov eax, dword [ebp - 0x10]
call fcn.0073e07c
xor eax, eax
call fcn.00544b2c
test al, al
je 0x739c94
mov eax, dword [ebp - 0x10]
call fcn.0073d690
xor edx, edx
mov eax, 0x739fbc
call fcn.00517b0c
mov edx, 7
mov eax, 0x739fd4
call fcn.00517b0c
jmp 0x739cbb
mov dl, 1
mov eax, dword [ebp - 0x10]
call fcn.0073e07c
mov eax, dword [ebp - 0x88]
test eax, eax
je 0x739ccb
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 0x84]
test eax, eax
je 0x739cdb
push eax
call sub.kernel32.dll_CloseHandle
mov eax, dword [ebp - 0x18]
call sub.rtl120.bpl__Sysutils_StrDispose_qqrpb
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x739d31
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x34c], 0
jne 0x739d0f
push 0xffffffffffffffff
xor ecx, ecx
mov edx, 2
mov eax, 0x47b
call fcn.00410e48
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x294]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x34d], 0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x739d89
lea eax, [ebp - 0xdc]
mov edx, 2
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0xcc]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0xb0]
call sub.rtl120.bpl__System__UStrClr_qqrpv
lea eax, [ebp - 0x94]
mov edx, 3
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
lea eax, [ebp - 0xc]
mov edx, 3
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
ret