internal Class721 method_27(Dictionary <int, Class713> A_0, float A_1)
    {
        Class721 class2 = new Class721();
        Dictionary <int, Class713> dictionary = new Dictionary <int, Class713>();
        float num  = 0f;
        float num2 = A_1 / ((float)A_0.Count);

        foreach (KeyValuePair <int, Class713> pair in A_0)
        {
            Class713 class3 = pair.Value;
            if (class3.method_35() <= num2)
            {
                class3.method_1(class3.method_37());
                A_1 -= class3.method_37();
            }
            else if ((A_0.Count == 1) && (class3.method_37() > num2))
            {
                class3.method_1(num2);
                class2.method_9(new ushort?((ushort)pair.Value.method_10()));
                class2.method_3(num2);
                class2.method_5(class3.method_19());
                class2.method_7(class3.method_40());
                class2.float_4 = class3.method_31();
                class2.method_11(true);
            }
            else
            {
                dictionary.Add(pair.Key, pair.Value);
                num += class3.method_19();
            }
        }
        if (dictionary.Count > 0)
        {
            if (dictionary.Count < A_0.Count)
            {
                return(this.method_27(dictionary, A_1));
            }
            foreach (KeyValuePair <int, Class713> pair2 in dictionary)
            {
                Class713 class4 = pair2.Value;
                if (num != 0f)
                {
                    class4.method_1(A_1 * (class4.method_19() / num));
                }
                else
                {
                    class4.method_1(num2);
                }
            }
        }
        return(class2);
    }