Function at 0x7cd774
Capabilities:
Check for time delay via gettickcount
Print debug messages

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x7cdde3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a8], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x6a9], 0
mov eax, dword [ebp - 4]
call fcn.007c0448
mov al, 2
call fcn.00660038
mov eax, dword [ebp - 4]
mov byte [eax + 0x629], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x62a], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x62b], 0
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.007bb8c0
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.007bbc8c
lea eax, [ebp - 0xc]
push eax
mov eax, dword [0x806a24]
mov eax, dword [eax]
mov ecx, 0x7cde00
mov edx, 0x7cde40
call fcn.00584b34
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007c2a98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d0]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d4]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
xor edx, edx
call fcn.0055906c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
xor edx, edx
call fcn.005590d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
mov dl, 1
call fcn.0055906c
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x62e]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
call fcn.005590d0
mov eax, dword [0x807134]
mov eax, dword [eax]
call fcn.00428958
test al, al
je 0x7cd93a
mov eax, dword [0x807350]
cmp dword [eax], 0
je 0x7cd8bc
mov eax, dword [0x807350]
mov eax, dword [eax]
call sub.vcl120.bpl__Controls_TControl_BringToFront_qqrv
jmp 0x7cd93a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
call fcn.0056819c
push 1
mov ecx, dword [ebp - 4]
mov dl, 1
mov eax, dword [0x744138]
call fcn.007445a0
mov edx, dword [0x807350]
mov dword [edx], eax
mov eax, dword [0x807350]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov eax, dword [0x807350]
call sub.rtl120.bpl__Sysutils_FreeAndNil_qqrpv
xor eax, eax
push ebp
push 0x7cd922
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x428]
call fcn.00568d54
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x7cd92c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x380]
call fcn.0056828c
xor ebx, ebx
xor ecx, ecx
mov edx, 0x7cde68
mov eax, dword [ebp - 4]
call fcn.007d0a94
mov eax, dword [ebp - 4]
cmp byte [eax + 0x6a0], 0
je 0x7cd95c
mov ebx, 1
test ebx, ebx
jne 0x7cd987
cmp byte [0x806400], 0
jne 0x7cd987
mov eax, dword [ebp - 4]
call fcn.007d0454
mov ebx, eax
test ebx, ebx
je 0x7cd97e
mov byte [0x806400], 1
cmp ebx, 2
je 0x7cddc8
test ebx, ebx
jne 0x7cd9b2
cmp byte [0x806400], 0
jne 0x7cd9b2
mov eax, dword [ebp - 4]
call fcn.007d015c
mov ebx, eax
test ebx, ebx
je 0x7cd9a9
mov byte [0x806400], 1
cmp ebx, 2
je 0x7cddc8
test ebx, ebx
jne 0x7cd9d2
cmp byte [0x806400], 0
jne 0x7cd9d2
mov eax, dword [ebp - 4]
call fcn.007cfe1c
test al, al
je 0x7cd9d2
mov byte [0x806400], 1
mov eax, dword [0x8070e8]
cmp dword [eax], 0
je 0x7cd9e9
mov eax, dword [0x8070e8]
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
jne 0x7cda03
cmp byte [0x806400], 0
jne 0x7cda03
xor ecx, ecx
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.007ce830
mov byte [0x806400], al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e8]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e0]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e4]
xor edx, edx
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
lea ecx, [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4e4]
movzx eax, byte [eax + 0x57]
mov dl, 1
call sub.rtl120.bpl__Sysutils_BoolToStr_qqroo
lea eax, [ebp - 0x10]
mov edx, 0x7cde78
call sub.rtl120.bpl__System__UStrCat_qqrr20System_UnicodeStringx20System_UnicodeString
mov eax, dword [ebp - 0x10]
call sub.rtl120.bpl__System__UStrToPWChar_qqrx20System_UnicodeString
push eax
call sub.kernel32.dll_OutputDebugStringW
lea eax, [ebp - 0x14]
push eax
mov eax, dword [0x806a24]
mov eax, dword [eax]
mov ecx, 0x7cde8c
mov edx, 0x7cdeb8
call fcn.00584b34
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
call fcn.005665b8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4f8]
mov edx, dword [eax + 0x48]
sub edx, 0x41
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
mov ecx, 1
call fcn.005bf7ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
mov dl, 1
call sub.vcl120.bpl__Controls_TControl_SetVisible_qqro
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x806a24]
mov eax, dword [eax]
mov ecx, 0x7cdee0
mov edx, 0x7cdf34
call fcn.00584b34
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
call sub.vcl120.bpl__Controls_TControl_SetText_qqrx20System_UnicodeString
push 2
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4f0]
mov edx, dword [edx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c8]
sub edx, dword [eax + 0x40]
sub edx, 0xa
mov ecx, 1
call fcn.005bf358
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x604]
call sub.vcl120.bpl__Controls_TControl_GetBoundsRect_qqrv
mov edx, dword [ebp - 0x20]
add edx, 5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4cc]
call sub.vcl120.bpl__Controls_TControl_SetLeft_qqri
mov cl, 1
mov edx, 0x200
mov eax, dword [ebp - 4]
call fcn.007c22a0
call sub.kernel32.dll_GetTickCount
mov esi, eax
jmp 0x7cdb81
push 0x64
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 eax, dword [ebp - 4]
cmp byte [eax + 0x6a8], 0
jne 0x7cdb8d
call sub.kernel32.dll_GetTickCount
mov ebx, eax
sub ebx, esi
cmp ebx, 0x4e20
ja 0x7cdb8d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x6ab], 0
je 0x7cdb51
mov eax, dword [ebp - 4]
cmp byte [eax + 0x6a8], 0
je 0x7cdc23
mov eax, dword [0x806564]
mov eax, dword [eax]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x7cdbcb
inc esi
xor edi, edi
mov eax, dword [0x806564]
mov eax, dword [eax]
mov edx, edi
call fcn.0052bf78
mov ebx, eax
test ebx, ebx
je 0x7cdbc7
mov byte [ebx + 0x50], 0
inc edi
dec esi
jne 0x7cdbaf
xor ecx, ecx
mov edx, pe_nt_image_headers32
mov eax, dword [ebp - 4]
call fcn.007c22a0
mov eax, dword [ebp - 4]
call fcn.007c3c54
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bb8c0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bbc8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.0055906c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.005590d0
mov eax, dword [0x806a14]
mov byte [eax], 0x10
jmp 0x7cddc8
mov eax, dword [0x806564]
call fcn.00660ae8
test al, al
jne 0x7cddc8
mov eax, dword [0x806a14]
movzx eax, byte [eax]
sub al, 7
je 0x7cdc47
add al, 0xf9
sub al, 3
jae 0x7cdc9f
mov eax, dword [0x806a14]
mov byte [eax], 4
xor ecx, ecx
mov edx, pe_nt_image_headers32
mov eax, dword [ebp - 4]
call fcn.007c22a0
mov eax, dword [ebp - 4]
call fcn.007c3c54
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bb8c0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bbc8c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.0055906c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.005590d0
jmp 0x7cddc8
mov eax, dword [0x806a14]
mov byte [eax], 7
mov byte [ebp - 5], 0
mov eax, dword [0x806564]
mov eax, dword [eax]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x7cdcf9
inc esi
xor edi, edi
mov eax, dword [0x806564]
mov eax, dword [eax]
mov edx, edi
call fcn.0052bf78
mov ebx, eax
test ebx, ebx
je 0x7cdcf5
cmp byte [ebx + 0x51], 0
jne 0x7cdcf5
cmp byte [ebx + 0x50], 0
je 0x7cdcf5
cmp byte [ebx + 0x52], 0
je 0x7cdcf5
mov eax, dword [ebx + 0x34]
call sub.rtl120.bpl__Sysutils_FileExists_qqrx20System_UnicodeString
test al, al
je 0x7cdcf5
mov byte [ebp - 5], 1
jmp 0x7cdcf9
inc edi
dec esi
jne 0x7cdcbd
cmp byte [ebp - 5], 0
je 0x7cdd77
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007c2a98
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.0055906c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c4]
xor edx, edx
call fcn.005590d0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
mov dl, 1
call fcn.0055906c
mov eax, dword [ebp - 4]
movzx edx, byte [eax + 0x62e]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3c8]
call fcn.005590d0
mov eax, dword [0x806564]
call fcn.0052882c
test al, al
jne 0x7cddc8
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bb8c0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bbc8c
jmp 0x7cddc8
mov eax, dword [0x806564]
mov eax, dword [eax]
mov esi, dword [eax + 8]
dec esi
test esi, esi
jl 0x7cdda5
inc esi
xor edi, edi
mov eax, dword [0x806564]
mov eax, dword [eax]
mov edx, edi
call fcn.0052bf78
mov ebx, eax
test ebx, ebx
je 0x7cdda1
mov byte [ebx + 0x50], 0
inc edi
dec esi
jne 0x7cdd89
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bb8c0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.007bbc8c
mov cl, 1
mov edx, pe_nt_image_headers32
mov eax, dword [ebp - 4]
call fcn.007c22a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7cddea
lea eax, [ebp - 0x18]
mov edx, 4
call sub.rtl120.bpl__System__UStrArrayClr_qqrpvi
ret