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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff8c
push ebx
push esi
push edi
mov byte [ebp - 5], cl
mov dword [ebp - 4], edx
mov esi, eax
mov eax, dword [ebp - 4]
call fcn.0040506c
xor eax, eax
push ebp
push 0x489f8c
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x24], 2
mov dword [ebp - 0x1c], 0xbf800000
mov dword [ebp - 0x20], 0xbf800000
mov eax, dword [0x4cca54]
mov eax, dword [eax]
movzx eax, byte [eax + 0x18]
test al, al
jbe 0x489d04
mov edx, dword [0x4cca54]
movzx eax, al
dec eax
test eax, eax
jl 0x489d04
inc eax
mov dword [ebp - 0x2c], eax
xor ebx, ebx
mov edi, ebx
add edi, edi
mov eax, dword [0x4cca54]
mov eax, dword [eax]
mov eax, dword [eax + edi*8 + 0x19]
mov dword [ebp - 0x14], eax
mov eax, dword [0x4cca54]
mov eax, dword [eax]
mov eax, dword [eax + edi*8 + 0x21]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
mov edx, dword [0x4cca54]
mov edx, dword [edx]
mov edx, dword [edx + edi*8 + 0x25]
call fcn.00405014
jne 0x489cfa
push 2
mov eax, dword [0x4cca54]
mov eax, dword [eax]
mov eax, dword [eax + edi*8 + 0x25]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0xb
fld dword [ebp - 0x14]
fstp xword [ebp - 0x50]
wait
lea eax, [ebp - 0x50]
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x38], 3
fld dword [ebp - 0x18]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x34], eax
mov byte [ebp - 0x30], 3
lea ecx, [ebp - 0x44]
mov edx, 0x489fa8
mov eax, esi
call fcn.004885c8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x20], eax
inc ebx
dec dword [ebp - 0x2c]
jne 0x489c73
fld dword [ebp - 0x1c]
fcomp dword [0x489fc8]
wait
fnstsw ax
sahf
jne 0x489d3b
fld dword [ebp - 0x20]
fcomp dword [0x489fc8]
wait
fnstsw ax
sahf
jne 0x489d3b
push 0xffffffffffffffff
lea ecx, [ebp - 0x5c]
mov edx, 0x489fd4
mov eax, esi
call fcn.004885c8
mov ebx, dword [ebp - 0x24]
jmp 0x489f76
fld dword [ebp + 0xc]
fadd dword [ebp - 0x1c]
fstp dword [ebp + 0xc]
wait
fld dword [ebp + 8]
fadd dword [ebp - 0x20]
fstp dword [ebp + 8]
wait
push 1
fld dword [ebp + 0xc]
fstp xword [ebp - 0x50]
wait
lea eax, [ebp - 0x50]
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x68], 3
fld dword [ebp + 8]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x60], 3
lea ecx, [ebp - 0x6c]
mov edx, 0x489ff0
mov eax, esi
call fcn.004885c8
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [0x4cc6c8]
mov eax, dword [eax]
call fcn.00485168
push 0x1388
call sub.kernel32.dll_Sleep_2
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x40]
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x44]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00427b9c
fstp dword [ebp - 0xc]
wait
xor ebx, ebx
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x10], eax
call sub.kernel32.dll_GetTickCount_1
mov edi, eax
jmp 0x489f60
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
cmp dword [eax + 0x8e8], 0
jne 0x489e2d
inc ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [0x4cc6c8]
mov eax, dword [eax]
call fcn.00485168
push 0xbb8
call sub.kernel32.dll_Sleep_2
push 1
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], 0
fld dword [ebp - 0xc]
fstp xword [ebp - 0x50]
wait
lea eax, [ebp - 0x50]
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x60], 3
lea ecx, [ebp - 0x6c]
mov edx, 0x48a010
mov eax, esi
call fcn.004885c8
cmp ebx, 3
ja 0x489f73
call sub.kernel32.dll_GetTickCount_1
sub eax, edi
cmp eax, 0x4e20
jbe 0x489e87
call sub.kernel32.dll_GetTickCount_1
mov edi, eax
inc ebx
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [0x4cc6c8]
mov eax, dword [eax]
call fcn.00485168
push 1
mov dword [ebp - 0x6c], ebx
mov byte [ebp - 0x68], 0
fld dword [ebp - 0xc]
fstp xword [ebp - 0x50]
wait
lea eax, [ebp - 0x50]
mov dword [ebp - 0x64], eax
mov byte [ebp - 0x60], 3
lea ecx, [ebp - 0x6c]
mov edx, 0x48a03c
mov eax, esi
call fcn.004885c8
cmp byte [ebp - 5], 0
je 0x489f31
push 0x4479c000
mov eax, dword [0x4cc54c]
mov eax, dword [eax]
xor edx, edx
call fcn.0042919c
cmp eax, 5
jbe 0x489f31
mov eax, dword [0x4cc54c]
mov eax, dword [eax]
xor edx, edx
call fcn.00428c40
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0
je 0x489ede
mov eax, dword [ebp - 0x28]
push dword [eax + 0x18]
mov eax, dword [ebp - 0x28]
push dword [eax + 0x1c]
mov eax, dword [0x4cc6c8]
mov eax, dword [eax]
call fcn.00485168
jmp 0x489efe
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x40]
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x44]
mov eax, dword [0x4cc6c8]
mov eax, dword [eax]
call fcn.00485168
push 0xbb8
call sub.kernel32.dll_Sleep_2
mov dword [ebp - 0x24], 1
push 0
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x70], 0
lea ecx, [ebp - 0x74]
mov edx, 0x48a068
mov eax, esi
call fcn.004885c8
jmp 0x489f73
mov edx, 0xc8
mov eax, esi
call fcn.0048ae94
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x40]
mov eax, dword [0x4cc9d4]
mov eax, dword [eax]
push dword [eax + 0x44]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00427b9c
fstp dword [ebp - 0xc]
wait
fld dword [ebp - 0xc]
fcomp dword [0x48a07c]
wait
fnstsw ax
sahf
ja 0x489dd7
mov ebx, dword [ebp - 0x24]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x489f93
lea eax, [ebp - 4]
call fcn.00404bec
ret