internal static int CalcAnimClipHash(TimelineAsset asset)
        {
            int num = 0;

            foreach (TrackAsset current in asset.tracks)
            {
                num ^= KeyTraverser.CalcAnimClipHash(current);
            }
            return(num);
        }
        private void CheckCache(int dirtyStamp)
        {
            int num = KeyTraverser.CalcAnimClipHash(this.m_Asset);

            if (dirtyStamp != this.m_DirtyStamp || num != this.m_LastHash)
            {
                this.RebuildKeyCache();
                this.m_DirtyStamp = dirtyStamp;
                this.m_LastHash   = num;
            }
        }
        private static int CalcAnimClipHash(TrackAsset asset)
        {
            int num = 0;

            if (asset != null)
            {
                AnimationTrack animationTrack = asset as AnimationTrack;
                if (animationTrack != null)
                {
                    for (int num2 = 0; num2 != animationTrack.clips.Length; num2++)
                    {
                        num ^= ((ITimelineItem)animationTrack.clips[num2]).Hash();
                    }
                }
                for (int num3 = 0; num3 != asset.subTracks.Count; num3++)
                {
                    num ^= KeyTraverser.CalcAnimClipHash(asset.subTracks[num3]);
                }
            }
            return(num);
        }