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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
cmp dword [0x102bc2dc], 0
je 0x10010bcb
push esi
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
sub eax, dword [0x1083d510]
cmp eax, 0x3d4
jbe 0x10010726
call esi
mov dword [0x1083d510], eax
mov ecx, 0x1082d374
cmp dword [ecx - 4], 0
je 0x100106e5
mov eax, dword [ecx]
cmp eax, 1
jle 0x100106e5
dec eax
mov dword [ecx], eax
cmp dword [ecx + 8], 0
je 0x100106f7
mov eax, dword [ecx + 0xc]
cmp eax, 1
jle 0x100106f7
dec eax
mov dword [ecx + 0xc], eax
cmp dword [ecx + 0x14], 0
je 0x10010709
mov eax, dword [ecx + 0x18]
cmp eax, 1
jle 0x10010709
dec eax
mov dword [ecx + 0x18], eax
cmp dword [ecx + 0x20], 0
je 0x1001071b
mov eax, dword [ecx + 0x24]
cmp eax, 1
jle 0x1001071b
dec eax
mov dword [ecx + 0x24], eax
add ecx, 0x30
cmp ecx, 0x1082d4f4
jl 0x100106d5
push edi
push 0x41
mov edi, 0x861110
call edi
mov esi, 0x85ec20
mov ecx, eax
call esi
test al, al
jne 0x10010bc9
push 0x39
call edi
mov ecx, eax
call esi
test al, al
jne 0x10010bc9
push 0x48
call edi
mov ecx, eax
call esi
test al, al
jne 0x10010bc9
call fcn.1006ed10
test al, al
jne 0x10010bc9
or esi, 0xffffffff
push ebx
mov dword [ebp - 0x24], esi
call edi
mov esi, dword [sym.imp.OPENGL32.dll_glColor4f]
xor edx, edx
xorps xmm3, xmm3
mov dword [ebp - 0x18], edx
xor ebx, ebx
movss dword [ebp - 0x28], xmm3
mov eax, dword [eax + 0xc8]
xorps xmm2, xmm2
movsd xmm3, qword [0x100e6d90]
mov edi, 0x1082d370
movss dword [ebp - 0x2c], xmm2
movd xmm6, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
add eax, 4
cvtdq2ps xmm6, xmm6
movd xmm7, eax
mov eax, dword [0x102bc2e8]
cvtdq2ps xmm7, xmm7
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [ebp - 0x38], xmm6
addsd xmm0, qword [eax*8 + 0x100e7c60]
xor eax, eax
movss dword [ebp - 0x3c], xmm7
mov dword [ebp - 0x30], eax
mov eax, dword [0x102bc2e4]
cvtpd2ps xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm5, xmm4
mulss xmm4, dword [0x100e6d24]
addsd xmm0, qword [eax*8 + 0x100e7c60]
mulss xmm5, dword [0x100e6d2c]
xor eax, eax
mov dword [ebp - 0x1c], eax
movss dword [ebp - 4], xmm4
divsd xmm0, qword [0x100e71e0]
movss dword [ebp - 8], xmm5
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
mov ecx, dword [edi]
test ecx, ecx
je 0x10010b60
mov eax, dword [0x102bc2f0]
push 1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100e7c60]
lea eax, [ecx - 1]
mov ecx, 0x50
cvtpd2ps xmm2, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm2
addss xmm2, xmm5
addss xmm1, xmm4
mulss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
cvtps2pd xmm1, xmm1
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x10], xmm0
movd xmm0, edx
cdq
idiv ecx
cvtdq2ps xmm0, xmm0
mov esi, edx
mov eax, 0x66666667
imul esi
mulss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm7
sar edx, 2
mov ecx, edx
cvtps2pd xmm1, xmm2
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
addsd xmm1, xmm0
add eax, eax
sub esi, eax
mov eax, 0x635fd0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0xc], xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100e70b8]
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x34], xmm0
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100e70e0]
mulsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x20], xmm0
call eax
cvttss2si eax, dword [ebp - 8]
push eax
cvttss2si eax, dword [ebp - 4]
push eax
cvttss2si eax, dword [ebp - 0xc]
push eax
cvttss2si eax, dword [ebp - 0x10]
push eax
mov eax, 0x790b10
call eax
mov esi, dword [sym.imp.OPENGL32.dll_glColor4f]
add esp, 0x14
sub esp, 0x10
test al, al
je 0x10010992
movss xmm1, dword [ebp - 4]
movss xmm0, dword [ebp - 0x10]
cvtps2pd xmm1, xmm1
mov eax, dword [edi]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x30], eax
mov dword [esp + 0xc], 0x3f800000
cvtps2pd xmm0, xmm0
mulsd xmm1, qword [0x100e6f60]
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
movss xmm0, dword [ebp - 0xc]
addss xmm0, dword [ebp - 8]
addss xmm0, dword [0x100e73c4]
movss dword [ebp - 0x28], xmm0
jmp 0x1001099d
movss xmm0, dword [ebp - 0x14]
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call esi
movss xmm0, dword [ebp - 0x20]
mov eax, 0x66666667
push ecx
mov ecx, dword [edi]
mov dword [esp], 0
dec ecx
push 1
push 1
sub esp, 0x20
imul ecx
mov dword [esp + 0x1c], 0x3de00000
mov dword [esp + 0x18], 0x3da00000
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ebp - 0x34]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [ebp - 8]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [ebp - 4]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0xc]
sar edx, 5
mov eax, edx
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x10]
add edx, 0x7bed
shr eax, 0x1f
add eax, edx
movss dword [esp], xmm0
push eax
mov eax, 0x637c60
call eax
add esp, 0x30
cmp dword [0x102bc2e0], 1
jne 0x10010b1d
cmp dword [edi], 0x1c
je 0x10010b1d
mov ecx, dword [edi + 8]
mov dword [ebp - 0x20], 0x64
test ecx, ecx
jle 0x10010a6f
mov eax, dword [edi + 4]
test eax, eax
jle 0x10010a6f
imul eax, eax, 0x64
cdq
idiv ecx
mov dword [ebp - 0x20], eax
push 1
mov eax, 0x635fd0
call eax
movss xmm0, dword [ebp - 0x14]
movss dword [esp], xmm0
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0
call esi
movd xmm0, dword [ebp - 0x20]
mov eax, 0x6378a0
cvtdq2ps xmm0, xmm0
push 0
sub esp, 0x14
mulss xmm0, dword [ebp - 4]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x40000000
divss xmm0, dword [0x100e752c]
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0xc]
addss xmm0, dword [ebp - 8]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x10]
movss dword [esp], xmm0
call eax
mov eax, 0x635f50
call eax
movss xmm0, dword [ebp - 0x14]
add esp, 8
movss dword [esp + 0xc], xmm0
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call esi
inc ebx
cmp ebx, dword [0x102bc2ec]
jl 0x10010b2b
xor ebx, ebx
inc dword [ebp - 0x18]
mov eax, 0x635f50
call eax
push 0
mov eax, 0x635fd0
call eax
movss xmm4, dword [ebp - 4]
add esp, 4
movss xmm5, dword [ebp - 8]
movsd xmm3, qword [0x100e6d90]
movss xmm6, dword [ebp - 0x38]
movss xmm7, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
inc eax
add edi, 0xc
mov dword [ebp - 0x1c], eax
cmp edi, 0x1082d4f0
jl 0x10010834
sub esp, 0x10
mov dword [esp + 0xc], 0x3f800000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0x3f800000
mov dword [esp], 0x3f800000
call esi
mov esi, dword [ebp - 0x24]
cmp esi, 0xffffffff
je 0x10010bc8
push 1
mov ebx, 0x635fd0
call ebx
movss xmm3, dword [ebp - 0x28]
mov ecx, esi
movss xmm2, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x30]
call fcn.10010180
lea eax, [ebx - 0x80]
call eax
push 0
call ebx
add esp, 8
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret