while ((b_msd & mask) == 0) {
while (!(b_msd & mask)) {
mp_err   s_mp_norm(mp_int *a, mp_int *b, mp_digit *pd){  mp_digit  d;  mp_digit  mask;  mp_digit  b_msd;  mp_err    res    = MP_OKAY;  d = 0;  mask  = DIGIT_MAX & ~(DIGIT_MAX >> 1);	/* mask is msb of digit */  b_msd = DIGIT(b, USED(b) - 1);  while ((b_msd & mask) == 0) {    b_msd <<= 1;    ++d;  }  if (d) {    MP_CHECKOK( s_mp_mul_2d(a, d) );    MP_CHECKOK( s_mp_mul_2d(b, d) );  }  *pd = d;CLEANUP:  return res;} /* end s_mp_norm() */