public Dictionary <float, string> GetDescriptions()
        {
            Dictionary <float, string> dictionary = new Dictionary <float, string>();
            AnimationClipCurveInfo     curveInfo  = AnimationClipCurveCache.Instance.GetCurveInfo(this.m_Track.animClip);
            HashSet <string>           hashSet    = new HashSet <string>();

            EditorCurveBinding[] bindings = curveInfo.bindings;
            for (int i = 0; i < bindings.Length; i++)
            {
                EditorCurveBinding binding = bindings[i];
                string             groupID = binding.GetGroupID();
                if (!hashSet.Contains(groupID))
                {
                    CurveBindingGroup groupBinding = curveInfo.GetGroupBinding(groupID);
                    string            nicePropertyGroupDisplayName = AnimationWindowUtility.GetNicePropertyGroupDisplayName(binding.get_type(), binding.propertyName);
                    float[]           keyTimes = curveInfo.keyTimes;
                    for (int j = 0; j < keyTimes.Length; j++)
                    {
                        float  num  = keyTimes[j];
                        float  num2 = num + (float)this.m_Track.openClipTimeOffset;
                        string text = nicePropertyGroupDisplayName + " : " + groupBinding.GetDescription(num2);
                        if (dictionary.ContainsKey(num2))
                        {
                            Dictionary <float, string> dictionary2;
                            float key;
                            (dictionary2 = dictionary)[key = num2] = dictionary2[key] + '\n' + text;
                        }
                        else
                        {
                            dictionary.Add(num2, text);
                        }
                    }
                    hashSet.Add(groupID);
                }
            }
            return(dictionary);
        }