static int drbg_bytes(unsigned char *out, int count)
{
    DRBG_CTX *dctx = RAND_DRBG_get_default();
    int ret = 0;
    CRYPTO_THREAD_write_lock(dctx->lock);
    do {
        size_t rcnt;
        if (count > (int)dctx->max_request)
            rcnt = dctx->max_request;
        else
            rcnt = count;
        ret = RAND_DRBG_generate(dctx, out, rcnt, 0, NULL, 0);
        if (!ret)
            goto err;
        out += rcnt;
        count -= rcnt;
    } while (count);
    ret = 1;
err:
    CRYPTO_THREAD_unlock(dctx->lock);
    return ret;
}
['static int drbg_bytes(unsigned char *out, int count)\n{\n    DRBG_CTX *dctx = RAND_DRBG_get_default();\n    int ret = 0;\n    CRYPTO_THREAD_write_lock(dctx->lock);\n    do {\n        size_t rcnt;\n        if (count > (int)dctx->max_request)\n            rcnt = dctx->max_request;\n        else\n            rcnt = count;\n        ret = RAND_DRBG_generate(dctx, out, rcnt, 0, NULL, 0);\n        if (!ret)\n            goto err;\n        out += rcnt;\n        count -= rcnt;\n    } while (count);\n    ret = 1;\nerr:\n    CRYPTO_THREAD_unlock(dctx->lock);\n    return ret;\n}', 'DRBG_CTX *RAND_DRBG_get_default(void)\n{\n    if (!RUN_ONCE(&ossl_drbg_init, do_ossl_drbg_init))\n        return NULL;\n    return &ossl_drbg;\n}', 'int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void))\n{\n    if (pthread_once(once, init) != 0)\n        return 0;\n    return 1;\n}']