Function at 0x47edac
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0xfffffffc
xor ebx, ebx
mov eax, dword [edi]
cmp dword [eax + 0x3b0], 0
je 0x47eede
call sub.kernel32.dll_GetTickCount
mov edx, dword [edi]
sub eax, dword [edx + 0x3b0]
mov edx, dword [edi]
mov edx, dword [edx + 0x29c]
cmp eax, dword [edx + 0x44]
jbe 0x47eede
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x47ee23
mov eax, dword [edi]
mov esi, dword [eax + 0x290]
mov eax, dword [esi + 0x228]
push eax
mov ecx, dword [esi + 0x22c]
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b4]
call fcn.0047ed5c
test al, al
jne 0x47ee68
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x47eede
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x228]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov ecx, dword [eax + 0x22c]
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
call fcn.0047ed5c
test al, al
je 0x47eede
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x47eea3
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.00464a58
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3bc], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
call fcn.00462148
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x47eede
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.00464a58
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3c0], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
call fcn.00462148
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x47efa1
mov eax, dword [edi]
mov edx, dword [eax + 0x290]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c4]
je 0x47efa1
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3bc]
xor ecx, ecx
xchg edx, eax
call fcn.00464a58
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jle 0x47ef3e
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jge 0x47ef71
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jge 0x47ef61
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jle 0x47ef71
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
cmp ebx, dword [eax + 0x22c]
jne 0x47ef92
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.00464a58
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3bc], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
call fcn.00462148
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x47f064
mov eax, dword [edi]
mov edx, dword [eax + 0x28c]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c8]
je 0x47f064
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3c0]
xor ecx, ecx
xchg edx, eax
call fcn.00464a58
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jle 0x47f001
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jge 0x47f034
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jge 0x47f024
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jle 0x47f034
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
cmp ebx, dword [eax + 0x22c]
jne 0x47f055
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.00464a58
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3c0], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
call fcn.00462148
test bl, bl
je 0x47f072
mov eax, dword [edi]
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [edi]
cmp dword [eax + 0x3b0], 0
jne 0x47f08b
call sub.kernel32.dll_GetTickCount
inc eax
mov edx, dword [edi]
mov dword [edx + 0x3b0], eax
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jne 0x47f146
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jne 0x47f146
push 1
mov eax, dword [edi]
mov eax, dword [eax + 0x24c]
push eax
call sub.user32.dll_KillTimer
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3b0], edx
lea edx, [ebp - 8]
mov eax, dword [sym.imp.vcl120.bpl__Controls_Mouse]
mov eax, dword [eax]
call sub.vcl120.bpl__Controls_TMouse_GetCursorPos_qqrv
lea ecx, [ebp - 0x10]
lea edx, [ebp - 8]
mov eax, dword [edi]
call sub.vcl120.bpl__Controls_TControl_ScreenToClient_qqrrx12Types_TPoint
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 8]
movzx edx, byte [0x47f150]
mov si, 0xffd4
call sub.rtl120.bpl__System__CallDynaInst_qqrv
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f0]
test ebx, ebx
je 0x47f125
push 0xffffffffffffffff
mov eax, ebx
call fcn.004739bc
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.0047d360
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f4]
test ebx, ebx
je 0x47f146
push 0xffffffffffffffff
mov eax, ebx
call fcn.004739bc
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.0047d360
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret