// Token: 0x0600014F RID: 335 RVA: 0x00005A28 File Offset: 0x00003C28
        public override string ConvertToOrdinal(int number, GrammaticalGender gender)
        {
            if (number == 0)
            {
                return("zero");
            }
            List <string> parts = new List <string>();

            if (number / 1000000000 > 0)
            {
                parts.Add((number / 1000000000 == 1) ? BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("bilionésimo", gender) : string.Format("{0} " + BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("bilionésimo", gender), new object[]
                {
                    this.ConvertToOrdinal(number / 1000000000, gender)
                }));
                number %= 1000000000;
            }
            if (number / 1000000 > 0)
            {
                parts.Add((number / 1000000 == 1) ? BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("milionésimo", gender) : string.Format("{0}" + BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("milionésimo", gender), new object[]
                {
                    this.ConvertToOrdinal(number / 1000000000, gender)
                }));
                number %= 1000000;
            }
            if (number / 1000 > 0)
            {
                parts.Add((number / 1000 == 1) ? BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("milésimo", gender) : string.Format("{0} " + BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender("milésimo", gender), new object[]
                {
                    this.ConvertToOrdinal(number / 1000, gender)
                }));
                number %= 1000;
            }
            if (number / 100 > 0)
            {
                parts.Add(BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender(BrazilianPortugueseNumberToWordsConverter.PortugueseOrdinalHundredsMap[number / 100], gender));
                number %= 100;
            }
            if (number / 10 > 0)
            {
                parts.Add(BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender(BrazilianPortugueseNumberToWordsConverter.PortugueseOrdinalTensMap[number / 10], gender));
                number %= 10;
            }
            if (number > 0)
            {
                parts.Add(BrazilianPortugueseNumberToWordsConverter.ApplyOrdinalGender(BrazilianPortugueseNumberToWordsConverter.PortugueseOrdinalUnitsMap[number], gender));
            }
            return(string.Join(" ", parts.ToArray()));
        }
        // Token: 0x0600014E RID: 334 RVA: 0x000057E8 File Offset: 0x000039E8
        public override string Convert(long input, GrammaticalGender gender)
        {
            if (input > 2147483647L || input < -2147483648L)
            {
                throw new NotImplementedException();
            }
            int number = (int)input;

            if (number == 0)
            {
                return("zero");
            }
            if (number < 0)
            {
                return(string.Format("menos {0}", new object[]
                {
                    this.Convert((long)Math.Abs(number), gender)
                }));
            }
            List <string> parts = new List <string>();

            if (number / 1000000000 > 0)
            {
                parts.Add((number / 1000000000 > 2) ? string.Format("{0} bilhões", new object[]
                {
                    this.Convert((long)(number / 1000000000), GrammaticalGender.Masculine)
                }) : string.Format("{0} bilhão", new object[]
                {
                    this.Convert((long)(number / 1000000000), GrammaticalGender.Masculine)
                }));
                number %= 1000000000;
            }
            if (number / 1000000 > 0)
            {
                parts.Add((number / 1000000 > 2) ? string.Format("{0} milhões", new object[]
                {
                    this.Convert((long)(number / 1000000), GrammaticalGender.Masculine)
                }) : string.Format("{0} milhão", new object[]
                {
                    this.Convert((long)(number / 1000000), GrammaticalGender.Masculine)
                }));
                number %= 1000000;
            }
            if (number / 1000 > 0)
            {
                parts.Add((number / 1000 == 1) ? "mil" : string.Format("{0} mil", new object[]
                {
                    this.Convert((long)(number / 1000), GrammaticalGender.Masculine)
                }));
                number %= 1000;
            }
            if (number / 100 > 0)
            {
                if (number == 100)
                {
                    parts.Add((parts.Count > 0) ? "e cem" : "cem");
                }
                else
                {
                    parts.Add(BrazilianPortugueseNumberToWordsConverter.ApplyGender(BrazilianPortugueseNumberToWordsConverter.PortugueseHundredsMap[number / 100], gender));
                }
                number %= 100;
            }
            if (number > 0)
            {
                if (parts.Count != 0)
                {
                    parts.Add("e");
                }
                if (number < 20)
                {
                    parts.Add(BrazilianPortugueseNumberToWordsConverter.ApplyGender(BrazilianPortugueseNumberToWordsConverter.PortugueseUnitsMap[number], gender));
                }
                else
                {
                    string lastPart = BrazilianPortugueseNumberToWordsConverter.PortugueseTensMap[number / 10];
                    if (number % 10 > 0)
                    {
                        lastPart += string.Format(" e {0}", new object[]
                        {
                            BrazilianPortugueseNumberToWordsConverter.ApplyGender(BrazilianPortugueseNumberToWordsConverter.PortugueseUnitsMap[number % 10], gender)
                        });
                    }
                    parts.Add(lastPart);
                }
            }
            return(string.Join(" ", parts.ToArray()));
        }