bn_isqrt
return bn_isqrt(NULL, out_perfect, n, ctx);
int bn_isqrt(BIGNUM *out_sqrt, int *out_perfect, const BIGNUM *n, BN_CTX *ctx);
if (!bn_isqrt(isqrt, &is_perfect_square, n_sqr, ctx))
if (!bn_isqrt(isqrt, &is_perfect_square, upper, ctx))
if (!bn_isqrt(isqrt, &is_perfect_square, testcase, ctx))
if (!bn_isqrt(isqrt, &is_perfect_square, testcase, ctx))