internal void CompressApplicableMethodList(IntegerList a, IntegerList applicable_list) { while (applicable_list.Count >= 2) { int id = applicable_list[0]; FunctionObject functionObject = base.Scripter.GetFunctionObject(id); bool flag = true; for (int i = 1; i < applicable_list.Count; i++) { int num3 = applicable_list[i]; FunctionObject obj3 = base.Scripter.GetFunctionObject(num3); int num4 = 0; int num5 = 0; for (int j = 0; j < a.Count; j++) { int num7 = a[j]; int paramId = functionObject.GetParamId(j); int num9 = obj3.GetParamId(j); int num10 = base.Scripter.conversion.CompareConversions(base.Scripter, num7, paramId, num9); if (num10 > 0) { num4++; } else if (num10 < 0) { num5++; } } if ((num4 > 0) && (num5 == 0)) { flag = false; applicable_list.DeleteValue(num3); break; } if ((num5 > 0) && (num4 == 0)) { flag = false; applicable_list.DeleteValue(id); break; } } if (flag) { break; } } }