// Token: 0x060001B6 RID: 438 RVA: 0x00008E74 File Offset: 0x00007074
        private static void CollectParts(ICollection <string> parts, ref int number, int divisor, GrammaticalGender gender, params string[] forms)
        {
            if (number < divisor)
            {
                return;
            }
            int result = number / divisor;

            number %= divisor;
            RussianNumberToWordsConverter.CollectPartsUnderOneThousand(parts, result, gender);
            parts.Add(RussianNumberToWordsConverter.ChooseOneForGrammaticalNumber(result, forms));
        }
        // Token: 0x060001B2 RID: 434 RVA: 0x00008AC8 File Offset: 0x00006CC8
        public override string Convert(long input, GrammaticalGender gender)
        {
            if (input > 2147483647L || input < -2147483648L)
            {
                throw new NotImplementedException();
            }
            int number = (int)input;

            if (number == 0)
            {
                return("ноль");
            }
            List <string> parts = new List <string>();

            if (number < 0)
            {
                parts.Add("минус");
                number = -number;
            }
            RussianNumberToWordsConverter.CollectParts(parts, ref number, 1000000000, GrammaticalGender.Masculine, new string[]
            {
                "миллиард",
                "миллиарда",
                "миллиардов"
            });
            RussianNumberToWordsConverter.CollectParts(parts, ref number, 1000000, GrammaticalGender.Masculine, new string[]
            {
                "миллион",
                "миллиона",
                "миллионов"
            });
            RussianNumberToWordsConverter.CollectParts(parts, ref number, 1000, GrammaticalGender.Feminine, new string[]
            {
                "тысяча",
                "тысячи",
                "тысяч"
            });
            if (number > 0)
            {
                RussianNumberToWordsConverter.CollectPartsUnderOneThousand(parts, number, gender);
            }
            return(string.Join(" ", parts));
        }
        // Token: 0x060001B7 RID: 439 RVA: 0x00008EA8 File Offset: 0x000070A8
        private static void CollectOrdinalParts(ICollection <string> parts, ref int number, int divisor, GrammaticalGender gender, string prefixedForm, params string[] forms)
        {
            if (number < divisor)
            {
                return;
            }
            int result = number / divisor;

            number %= divisor;
            if (number != 0)
            {
                RussianNumberToWordsConverter.CollectPartsUnderOneThousand(parts, result, gender);
                parts.Add(RussianNumberToWordsConverter.ChooseOneForGrammaticalNumber(result, forms));
                return;
            }
            if (result == 1)
            {
                parts.Add(prefixedForm);
                return;
            }
            parts.Add(RussianNumberToWordsConverter.GetPrefix(result) + prefixedForm);
        }