private static UndoPropertyModification[] FilterRotationModifications(IAnimationRecordingState state, ref Dictionary <object, AnimationRecording.RotationModification> rotationModifications) { AnimationClip activeAnimationClip = state.activeAnimationClip; GameObject activeRootGameObject = state.activeRootGameObject; List <object> list = new List <object>(); List <UndoPropertyModification> list2 = new List <UndoPropertyModification>(); foreach (KeyValuePair <object, AnimationRecording.RotationModification> current in rotationModifications) { AnimationRecording.RotationModification value = current.Value; if (state.DiscardModification(value.lastQuatModification.currentValue)) { AnimationRecording.DiscardRotationModification(value, ref list2); list.Add(current.Key); } else { EditorCurveBinding editorCurveBinding = default(EditorCurveBinding); if (AnimationUtility.PropertyModificationToEditorCurveBinding(value.lastQuatModification.currentValue, activeRootGameObject, out editorCurveBinding) == null) { AnimationRecording.DiscardRotationModification(value, ref list2); list.Add(current.Key); } } } foreach (object current2 in list) { rotationModifications.Remove(current2); } return(list2.ToArray()); }