CHAR64
c1 = CHAR64(c1);
c2 = CHAR64(c2);
c3 = CHAR64(c3);
c4 = CHAR64(c4);
c1 = CHAR64(*p);
c2 = CHAR64(*(p + 1));
c3 = CHAR64(*(p + 2));
c4 = CHAR64(*(p + 3));
if (CHAR64(c1) == -1) return SASL_BADPROT;
if (CHAR64(c2) == -1) return SASL_BADPROT;
if (c3 != '=' && CHAR64(c3) == -1) return SASL_BADPROT;
if (c4 != '=' && CHAR64(c4) == -1) return SASL_BADPROT;
*out++ = (CHAR64(c1) << 2) | (CHAR64(c2) >> 4);
*out++ = ((CHAR64(c2) << 4) & 0xf0) | (CHAR64(c3) >> 2);
*out++ = ((CHAR64(c3) << 6) & 0xc0) | CHAR64(c4);