BN_mod_mul_reciprocal
if (!BN_mod_mul_reciprocal(aa, val[0], val[0], &recp, ctx))
if (((val[i] = BN_CTX_get(ctx)) == NULL) || !BN_mod_mul_reciprocal(val[i], val[i - 1], aa, &recp, ctx))
if (!BN_mod_mul_reciprocal(r, r, r, &recp, ctx))
if (!BN_mod_mul_reciprocal(r, r, r, &recp, ctx))
if (!BN_mod_mul_reciprocal(r, r, val[wvalue >> 1], &recp, ctx))
int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y,