static uint32_t get_generic_seed(void)

{

    uint8_t tmp[120];

    struct AVSHA *sha = (void*)tmp;

    clock_t last_t  = 0;

    static uint64_t i = 0;

    static uint32_t buffer[512] = { 0 };

    unsigned char digest[20];

    uint64_t last_i = i;



    av_assert0(sizeof(tmp) >= av_sha_size);



    if(TEST){

        memset(buffer, 0, sizeof(buffer));

        last_i = i = 0;

    }else{

#ifdef AV_READ_TIME

        buffer[13] ^= AV_READ_TIME();

        buffer[41] ^= AV_READ_TIME()>>32;

#endif

    }



    for (;;) {

        clock_t t = clock();



        if (last_t == t) {

            buffer[i & 511]++;

        } else {

            buffer[++i & 511] += (t - last_t) % 3294638521U;

            if (last_i && i - last_i > 4 || i - last_i > 64 || TEST && i - last_i > 8)

                break;

        }

        last_t = t;

    }



    if(TEST)

        buffer[0] = buffer[1] = 0;



    av_sha_init(sha, 160);

    av_sha_update(sha, (const uint8_t *)buffer, sizeof(buffer));

    av_sha_final(sha, digest);

    return AV_RB32(digest) + AV_RB32(digest + 16);

}

static uint32_t get_generic_seed(void)

{

    uint8_t tmp[120];

    struct AVSHA *sha = (void*)tmp;

    clock_t last_t  = 0;

    static uint64_t i = 0;

    static uint32_t buffer[512] = { 0 };

    unsigned char digest[20];

    uint64_t last_i = i;



    av_assert0(sizeof(tmp) >= av_sha_size);



    if(TEST){

        memset(buffer, 0, sizeof(buffer));

        last_i = i = 0;

    }else{

#ifdef AV_READ_TIME

        buffer[13] ^= AV_READ_TIME();

        buffer[41] ^= AV_READ_TIME()>>32;

#endif

    }



    for (;;) {

        clock_t t = clock();



        if (last_t == t) {

            buffer[i & 511]++;

        } else {

            buffer[++i & 511] += (t - last_t) % 3294638521U;

            if (last_i && i - last_i > 4 || i - last_i > 64 || TEST && i - last_i > 8)

                break;

        }

        last_t = t;

    }



    if(TEST)

        buffer[0] = buffer[1] = 0;



    av_sha_init(sha, 160);

    av_sha_update(sha, (const uint8_t *)buffer, sizeof(buffer));

    av_sha_final(sha, digest);

    return AV_RB32(digest) + AV_RB32(digest + 16);

}

static uint32_t FUNC_0(void)

{

    uint8_t tmp[120];

    struct AVSHA *VAR_0 = (void*)tmp;

    clock_t last_t  = 0;

    static uint64_t VAR_1 = 0;

    static uint32_t VAR_2[512] = { 0 };

    unsigned char VAR_3[20];

    uint64_t last_i = VAR_1;



    av_assert0(sizeof(tmp) >= av_sha_size);



    if(TEST){

        memset(VAR_2, 0, sizeof(VAR_2));

        last_i = VAR_1 = 0;

    }else{

#ifdef AV_READ_TIME

        VAR_2[13] ^= AV_READ_TIME();

        VAR_2[41] ^= AV_READ_TIME()>>32;

#endif

    }



    for (;;) {

        clock_t t = clock();



        if (last_t == t) {

            VAR_2[VAR_1 & 511]++;

        } else {

            VAR_2[++VAR_1 & 511] += (t - last_t) % 3294638521U;

            if (last_i && VAR_1 - last_i > 4 || VAR_1 - last_i > 64 || TEST && VAR_1 - last_i > 8)

                break;

        }

        last_t = t;

    }



    if(TEST)

        VAR_2[0] = VAR_2[1] = 0;



    av_sha_init(VAR_0, 160);

    av_sha_update(VAR_0, (const uint8_t *)VAR_2, sizeof(VAR_2));

    av_sha_final(VAR_0, VAR_3);

    return AV_RB32(VAR_3) + AV_RB32(VAR_3 + 16);

}

static uint32_t FUNC_0(void)
{ uint8_t tmp[120]; struct AVSHA *VAR_0 = (void*)tmp; clock_t last_t  = 0; static uint64_t VAR_1 = 0; static uint32_t VAR_2[512] = { 0 }; unsigned char VAR_3[20]; uint64_t last_i = VAR_1; av_assert0(sizeof(tmp) >= av_sha_size); if(TEST){ memset(VAR_2, 0, sizeof(VAR_2)); last_i = VAR_1 = 0; }else{ #ifdef AV_READ_TIME
VAR_2[13] ^= AV_READ_TIME(); VAR_2[41] ^= AV_READ_TIME()>>32; #endif
} for (;;) { clock_t t = clock(); if (last_t == t) { VAR_2[VAR_1 & 511]++; } else { VAR_2[++VAR_1 & 511] += (t - last_t) % 3294638521U; if (last_i && VAR_1 - last_i > 4 || VAR_1 - last_i > 64 || TEST && VAR_1 - last_i > 8)
break; } last_t = t; } if(TEST)
VAR_2[0] = VAR_2[1] = 0; av_sha_init(VAR_0, 160); av_sha_update(VAR_0, (const uint8_t *)VAR_2, sizeof(VAR_2)); av_sha_final(VAR_0, VAR_3); return AV_RB32(VAR_3) + AV_RB32(VAR_3 + 16); }