2828 {
2831 int num3 = 0;
2832 int num4 = 0;
2834 {
2837 {
2838 if (insertLineBreaks)
2839 {
2840 if (num4 == 76)
2841 {
2842 outChars[num3++] = '\r';
2843 outChars[num3++] = '\n';
2844 num4 = 0;
2845 }
2846 num4 += 4;
2847 }
2848 outChars[num3] = ptr[(inData[
i] & 0xFC) >> 2];
2849 outChars[num3 + 1] = ptr[((inData[
i] & 3) << 4) | ((inData[
i + 1] & 0xF0) >> 4)];
2850 outChars[num3 + 2] = ptr[((inData[
i + 1] & 0xF) << 2) | ((inData[
i + 2] & 0xC0) >> 6)];
2851 outChars[num3 + 3] = ptr[inData[
i + 2] & 0x3F];
2852 num3 += 4;
2853 }
2855 if (insertLineBreaks && num != 0 && num4 == 76)
2856 {
2857 outChars[num3++] = '\r';
2858 outChars[num3++] = '\n';
2859 }
2860 switch (num)
2861 {
2862 case 2:
2863 outChars[num3] = ptr[(inData[
i] & 0xFC) >> 2];
2864 outChars[num3 + 1] = ptr[((inData[
i] & 3) << 4) | ((inData[
i + 1] & 0xF0) >> 4)];
2865 outChars[num3 + 2] = ptr[(inData[
i + 1] & 0xF) << 2];
2866 outChars[num3 + 3] = ptr[64];
2867 num3 += 4;
2868 break;
2869 case 1:
2870 outChars[num3] = ptr[(inData[
i] & 0xFC) >> 2];
2871 outChars[num3 + 1] = ptr[(inData[
i] & 3) << 4];
2872 outChars[num3 + 2] = ptr[64];
2873 outChars[num3 + 3] = ptr[64];
2874 num3 += 4;
2875 break;
2876 }
2877 }
2878 return num3;
2879 }
static readonly char[] base64Table