bn_check_top(r);
int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y,	BN_RECP_CTX *recp, BN_CTX *ctx)	{	int ret=0;	BIGNUM *a;	const BIGNUM *ca;	BN_CTX_start(ctx);	if ((a = BN_CTX_get(ctx)) == NULL) goto err;	if (y != NULL)		{		if (x == y)			{ if (!BN_sqr(a,x,ctx)) goto err; }		else			{ if (!BN_mul(a,x,y,ctx)) goto err; }		ca = a;		}	else		ca=x; /* Just do the mod */	ret = BN_div_recp(NULL,r,ca,recp,ctx);err:	BN_CTX_end(ctx);	return(ret);	}