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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov byte [ebp - 6], cl
mov byte [ebp - 5], dl
mov dword [ebp - 4], eax
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
xor eax, eax
push ebp
push 0x4a67ec
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x53e908]
mov byte [eax], 0
mov eax, dword [0x53e6d8]
cmp dword [eax], 0
je 0x4a67d6
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [0x53e520]
cmp eax, dword [edx]
jne 0x4a67d6
mov eax, dword [0x53e980]
cmp byte [eax], 0
ja 0x4a67d6
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.0051078c
mov edx, dword [0x53e788]
mov byte [edx], al
mov eax, dword [0x53f1a4]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.00510590
mov edi, eax
mov eax, dword [0x53f1a4]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
je 0x4a6668
mov eax, dword [0x53f1a4]
xor edx, edx
mov dword [eax], edx
test edi, edi
je 0x4a66aa
cmp dword [edi + 0x38], 0
jne 0x4a66a1
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [edi + 0x1d8]
cmp eax, 0x2710
jbe 0x4a66a1
call sub.kernel32.dll_GetTickCount_1
mov dword [edi + 0x1d8], eax
mov eax, dword [edi + 0xc]
push eax
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
mov eax, dword [ebp - 4]
call fcn.004abdec
mov eax, dword [0x53e830]
mov dword [eax], edi
jmp 0x4a66b3
mov eax, dword [0x53e830]
xor edx, edx
mov dword [eax], edx
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.0051087c
mov edx, dword [0x53ece4]
mov dword [edx], eax
mov eax, dword [0x53ece4]
cmp dword [eax], 0
je 0x4a672d
mov eax, dword [0x53e5e8]
mov byte [eax], 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [0x53ece4]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x53ece4]
mov eax, dword [eax]
mov edx, dword [eax]
mov eax, dword [0x53e520]
mov eax, dword [eax]
call fcn.00510228
mov eax, dword [ebp - 0x18]
push eax
push 0xffffff
push 1
mov ecx, dword [ebp - 0x10]
sub ecx, 0xa
mov edx, dword [ebp - 0xc]
sub edx, 0x14
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
call fcn.00531804
jmp 0x4a6757
mov eax, dword [0x53e5e8]
cmp byte [eax], 0
jne 0x4a674b
mov eax, dword [0x53e5e8]
mov byte [eax], 1
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
call fcn.00532004
mov eax, dword [0x53e9d0]
mov eax, dword [eax]
call fcn.00532004
mov eax, dword [0x53e578]
push eax
mov eax, dword [0x53e454]
push eax
mov eax, dword [0x53e520]
mov eax, dword [eax]
mov ecx, esi
mov edx, ebx
call fcn.0051030c
mov eax, dword [0x53ec6c]
mov dword [eax], ebx
mov eax, dword [0x53eb6c]
mov dword [eax], esi
mov eax, dword [0x53eb54]
mov byte [eax], 0
mov eax, dword [0x53ec30]
mov byte [eax], 0
mov eax, dword [0x53ed7c]
mov byte [eax], 0
mov eax, dword [0x53eb14]
mov byte [eax], 0
test byte [ebp - 6], 8
jne 0x4a67ad
test byte [ebp - 6], 0x10
je 0x4a67d6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x38c]
cmp eax, 0x12c
jbe 0x4a67d6
mov al, byte [ebp - 6]
push eax
push ebx
push esi
mov cl, byte [ebp - 5]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 4]
call fcn.004a82c4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a67f3
lea eax, [ebp - 0x18]
call fcn.00404d3c
ret