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

Disassembly:
push ebx
add esp, 0xfffffff8
mov ebx, eax
cmp byte [ebx + 0x54], 0
je 0x531a4d
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c74
sub al, 1
je 0x531a44
sub al, 3
jne 0x531a4d
xor edx, edx
mov eax, ebx
call fcn.0052f51c
cmp byte [ebx + 0x76], 0
je 0x531a82
cmp byte [ebx + 0x75], 0
je 0x531a82
call fcn.004b9988
sub eax, dword [ebx + 0x90]
cmp eax, 0x1388
jbe 0x531a82
mov eax, ebx
call fcn.00531d78
call fcn.004b9988
mov dword [ebx + 0x90], eax
jmp 0x531d0a
cmp byte [ebx + 0x75], 0
jne 0x531b82
fild dword [ebx + 0x98]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebx + 0x9c]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov dword [esp + 8], eax
fild dword [esp + 8]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
add esp, 0xfffffffc
fstp dword [esp]
wait
call fcn.004b7ec4
fild dword [ebx + 0x60]
fcompp
wait
fnstsw ax
sahf
jae 0x531b82
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511c88
mov dword [esp], eax
fild dword [esp]
add esp, 0xfffffffc
fstp dword [esp]
wait
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.00511cb0
mov dword [esp + 8], eax
fild dword [esp + 8]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebx + 0x98]
add esp, 0xfffffffc
fstp dword [esp]
wait
fild dword [ebx + 0x9c]
add esp, 0xfffffffc
fstp dword [esp]
wait
call fcn.004b8060
mov dword [ebx + 0xa0], eax
call fcn.0040339c
mov eax, 5
call fcn.004033c4
dec eax
je 0x531b60
dec eax
je 0x531b68
jmp 0x531b6e
inc dword [ebx + 0xa0]
jmp 0x531b6e
dec dword [ebx + 0xa0]
mov ecx, 8
mov eax, dword [ebx + 0xa0]
cdq
idiv ecx
mov dword [ebx + 0xa0], edx
mov cl, 1
mov edx, dword [ebx + 0xa0]
mov eax, ebx
call fcn.00530dbc
test al, al
jne 0x531c25
movzx eax, byte [0x586120]
mov ecx, 3
xor edx, edx
div ecx
mov byte [0x586120], dl
cmp byte [0x586120], 0
jne 0x531bc2
mov eax, dword [0x58611c]
mov dword [0x58611c], eax
mov eax, dword [ebx + 0xa0]
add eax, 8
sub eax, dword [0x58611c]
mov dword [ebx + 0xa0], eax
call fcn.0040339c
mov eax, 3
call fcn.004033c4
dec eax
je 0x531bee
dec eax
je 0x531bf6
jmp 0x531bfc
inc dword [ebx + 0xa0]
jmp 0x531bfc
dec dword [ebx + 0xa0]
mov ecx, 8
mov eax, dword [ebx + 0xa0]
cdq
idiv ecx
mov dword [ebx + 0xa0], edx
inc byte [0x586120]
xor ecx, ecx
mov edx, dword [ebx + 0xa0]
mov eax, ebx
call fcn.00530dbc
mov eax, dword [ebx + 0xa0]
cmp eax, dword [ebx + 0xa4]
jne 0x531cfc
inc dword [ebx + 0xa8]
mov eax, dword [ebx + 0xa8]
cmp eax, 0x1e
jle 0x531c74
call fcn.0040339c
mov eax, 0x64
call fcn.004033c4
and eax, 0x80000007
jns 0x531c63
dec eax
or eax, 0xfffffff8
inc eax
mov dword [ebx + 0xa0], eax
inc byte [0x586120]
jmp 0x531d0a
cmp eax, 0x14
jle 0x531d0a
movzx eax, byte [0x586120]
mov ecx, 3
xor edx, edx
div ecx
mov byte [0x586120], dl
cmp byte [0x586120], 0
jne 0x531ca6
mov eax, dword [0x58611c]
mov dword [0x58611c], eax
mov eax, dword [ebx + 0xa0]
add eax, 8
sub eax, dword [0x58611c]
mov dword [ebx + 0xa0], eax
call fcn.0040339c
mov eax, 3
call fcn.004033c4
dec eax
je 0x531cd2
dec eax
je 0x531cda
jmp 0x531ce0
inc dword [ebx + 0xa0]
jmp 0x531ce0
dec dword [ebx + 0xa0]
mov ecx, 8
mov eax, dword [ebx + 0xa0]
cdq
idiv ecx
mov dword [ebx + 0xa0], edx
inc byte [0x586120]
jmp 0x531d0a
mov dword [ebx + 0xa4], eax
xor eax, eax
mov dword [ebx + 0xa8], eax
pop ecx
pop edx
pop ebx
ret