if (!BN_lshift(dv,d,nm-nd)) return(0);
if (!BN_lshift(dv,d,nm-nd)) goto err;
int BN_mod(BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx)	{#if 0 /* The old slow way */	int i,nm,nd;	BIGNUM *dv;	if (BN_ucmp(m,d) < 0)		return((BN_copy(rem,m) == NULL)?0:1);	dv= &(ctx->bn[ctx->tos]);	if (!BN_copy(rem,m)) return(0);	nm=BN_num_bits(rem);	nd=BN_num_bits(d);	if (!BN_lshift(dv,d,nm-nd)) return(0);	for (i=nm-nd; i>=0; i--)		{		if (BN_cmp(rem,dv) >= 0)			{			if (!BN_sub(rem,rem,dv)) return(0);			}		if (!BN_rshift1(dv,dv)) return(0);		}	return(1);#else	return(BN_div(NULL,rem,m,d,ctx));#endif	}