private int Compare(SortCompareData lp, SortCompareData rp)
    {
        QuestSortData questSortData  = lp as QuestSortData;
        QuestSortData questSortData2 = rp as QuestSortData;

        if (questSortData == null || questSortData2 == null)
        {
            return(0);
        }
        float num   = questSortData.itemData.remainTimes.Min();
        float num2  = questSortData2.itemData.remainTimes.Min();
        bool  flag  = num < SHOW_QUEST_REMAIN_LIMIT_SECOND;
        bool  flag2 = num2 < SHOW_QUEST_REMAIN_LIMIT_SECOND;

        if (lp.IsAbsFirst() != rp.IsAbsFirst())
        {
            return((!lp.IsAbsFirst()) ? 1 : (-1));
        }
        if (flag != flag2)
        {
            return((!flag) ? 1 : (-1));
        }
        int num3 = questSortData2.GetRarity() - questSortData.GetRarity();

        if (num3 == 0)
        {
            return((int)(questSortData2.GetUniqID() - questSortData.GetUniqID()));
        }
        return(num3);
    }