bn_check_num(num);
assert(num >= 0);
BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w)	{	BN_ULONG carry=0;	BN_ULONG bl,bh;	bn_check_num(num);	if (num <= 0) return((BN_ULONG)0);	bl=LBITS(w);	bh=HBITS(w);	for (;;)		{		mul(rp[0],ap[0],bl,bh,carry);		if (--num == 0) break;		mul(rp[1],ap[1],bl,bh,carry);		if (--num == 0) break;		mul(rp[2],ap[2],bl,bh,carry);		if (--num == 0) break;		mul(rp[3],ap[3],bl,bh,carry);		if (--num == 0) break;		ap+=4;		rp+=4;		}	return(carry);	} 