Function at 0x4e521c
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 0x4e534e
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 0x4e534e
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x4e5293
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.004e51cc
test al, al
jne 0x4e52d8
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x4e534e
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.004e51cc
test al, al
je 0x4e534e
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x4e5313
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.004a5f5c
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.004a3620
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x4e534e
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.004a5f5c
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.004a3620
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x4e5411
mov eax, dword [edi]
mov edx, dword [eax + 0x290]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c4]
je 0x4e5411
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3bc]
xor ecx, ecx
xchg edx, eax
call fcn.004a5f5c
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jle 0x4e53ae
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jge 0x4e53e1
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jge 0x4e53d1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jle 0x4e53e1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
cmp ebx, dword [eax + 0x22c]
jne 0x4e5402
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.004a5f5c
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.004a3620
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x4e54d4
mov eax, dword [edi]
mov edx, dword [eax + 0x28c]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c8]
je 0x4e54d4
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3c0]
xor ecx, ecx
xchg edx, eax
call fcn.004a5f5c
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jle 0x4e5471
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jge 0x4e54a4
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jge 0x4e5494
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jle 0x4e54a4
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
cmp ebx, dword [eax + 0x22c]
jne 0x4e54c5
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.004a5f5c
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.004a3620
test bl, bl
je 0x4e54e2
mov eax, dword [edi]
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [edi]
cmp dword [eax + 0x3b0], 0
jne 0x4e54fb
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 0x4e55b6
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jne 0x4e55b6
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 [0x4e55c0]
mov si, 0xffd4
call sub.rtl120.bpl__System__CallDynaInst_qqrv
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f0]
test ebx, ebx
je 0x4e5595
push 0xffffffffffffffff
mov eax, ebx
call fcn.004d9e70
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.004e3898
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f4]
test ebx, ebx
je 0x4e55b6
push 0xffffffffffffffff
mov eax, ebx
call fcn.004d9e70
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.004e3898
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret