md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
md5_process_block (ctx->buffer, ctx->buflen & ~63, ctx);  ctx->buflen &= 63;
md5_process_bytes (buffer, len, ctx)     const void *buffer;     size_t len;     struct md5_ctx *ctx;{  /* When we already have some bits in our internal buffer concatenate     both inputs first.  */  if (ctx->buflen != 0)    {      size_t left_over = ctx->buflen;      size_t add = 128 - left_over > len ? len : 128 - left_over;      memcpy (&ctx->buffer[left_over], buffer, add);      ctx->buflen += add;      if (left_over + add > 64)	{	  md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);	  /* The regions in the following copy operation cannot overlap.  */	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],		  (left_over + add) & 63);	  ctx->buflen = (left_over + add) & 63;	}      buffer = (const char *) buffer + add;      len -= add;    }  /* Process available complete blocks.  */  if (len > 64)    {      md5_process_block (buffer, len & ~63, ctx);      buffer = (const char *) buffer + (len & ~63);      len &= 63;    }  /* Move remaining bytes in internal buffer.  */  if (len > 0)    {      memcpy (ctx->buffer, buffer, len);      ctx->buflen = len;    }}