You should modify this for-loop from:
for (int i = 0;i < SpectatingPlayers.Count();i++)
To:
for (int i = 0, e = SpectatingPlayers.Count();i < e;i++)
The latter is more efficient, the ::Count() function gets called for every iteration of the loop. This is the reason why this is done in the clang compiler source code.
Also you should use GetTickCount64(), it's a more efficient (the engine uses GetTickCount() in a few places, but that one rolls around every 45 days or so, GetTickCount64() rolls around every 5 million years).