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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
call fcn.0051b857
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x20
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
je 0x51be08
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x20
mov dword [ebp - 4], ebx
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 8], ebx
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x18
mov dword [ebp - 0xc], ebx
push 0
mov ebx, dword [ebp - 0xc]
push dword [ebx]
mov ebx, dword [ebp - 8]
push dword [ebx]
push 0x10
mov ebx, dword [ebp - 4]
push dword [ebx]
call fcn.004ba3b8
mov dword [0x8e6dd4], eax
cmp dword [0x8e6dd4], 0
jne 0x51bd1c
mov dword [0x8e6dd4], 0
mov dword [0x8e6dcc], 1
push 0
mov ebx, 0x2dc
call fcn.006d0830
add esp, 4
mov dword [ebp - 4], eax
push 0
mov ebx, 0x2e0
call fcn.006d0850
add esp, 4
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fadd qword [0x8ab73b]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
call fcn.004b4fbe
push eax
push dword [ebp - 4]
push dword [0x8e6dbc]
call fcn.0051bedc
mov dword [0x8e6dc4], 0
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x14
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
je 0x51bd03
push 0
mov ebx, 0x308
call sub.kernel32.dll_GetTickCount
add esp, 4
mov dword [0x8e6dd0], eax
jmp 0x51bd17
mov dword [0x8e6dc4], 0
mov dword [0x8e6dd0], 0xffffffff
jmp 0x51be03
cmp dword [0x8e6dd4], 1
jne 0x51bd56
mov dword [0x8e6dd4], 0xffffffff
mov dword [0x8e6dc4], 0
mov dword [0x8e6dd0], 0xffffffff
mov eax, 1
jmp 0x51bed8
cmp dword [0x8e6dd4], 2
jne 0x51bde5
mov dword [0x8e6dd4], 0xfffffffe
mov dword [0x8e6dcc], 1
mov dword [0x8e6dc4], 0
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x14
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
je 0x51bdcc
push 0
mov ebx, 0x308
call sub.kernel32.dll_GetTickCount
add esp, 4
mov dword [0x8e6dd0], eax
jmp 0x51bdd6
mov dword [0x8e6dd0], 0xffffffff
mov eax, 2
jmp 0x51bed8
mov dword [0x8e6dd4], 0xffffffff
mov dword [0x8e6dc4], 0
mov dword [0x8e6dd0], 0xffffffff
jmp 0x51bece
mov dword [0x8e6dd4], 0
mov dword [0x8e6dcc], 1
push 0
mov ebx, 0x2dc
call fcn.006d0830
add esp, 4
mov dword [ebp - 4], eax
push 0
mov ebx, 0x2e0
call fcn.006d0850
add esp, 4
mov dword [ebp - 0x10], eax
fild dword [ebp - 0x10]
fstp qword [ebp - 0x10]
fld qword [ebp - 0x10]
fadd qword [0x8ab73b]
fstp qword [ebp - 0x18]
fld qword [ebp - 0x18]
call fcn.004b4fbe
push eax
push dword [ebp - 4]
push dword [0x8e6dbc]
call fcn.0051bedc
mov dword [0x8e6dc4], 0
mov ebx, dword [0x8e6db0]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [0x8e6dbc]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x14
mov dword [ebp - 4], ebx
mov ebx, dword [ebp - 4]
cmp dword [ebx], 0
je 0x51bec4
push 0
mov ebx, 0x308
call sub.kernel32.dll_GetTickCount
add esp, 4
mov dword [0x8e6dd0], eax
jmp 0x51bece
mov dword [0x8e6dd0], 0xffffffff
mov eax, 0
jmp 0x51bed8
mov esp, ebp
pop ebp
ret