static void sha1_transform(uint32_t state[5], const uint8_t buffer[64])

{

    uint32_t block[80];

    unsigned int i, a, b, c, d, e;



    a = state[0];

    b = state[1];

    c = state[2];

    d = state[3];

    e = state[4];

#if CONFIG_SMALL

    for (i = 0; i < 80; i++) {

        int t;

        if (i < 16)

            t = AV_RB32(buffer + 4 * i);

        else

            t = rol(block[i-3] ^ block[i-8] ^ block[i-14] ^ block[i-16], 1);

        block[i] = t;

        t += e + rol(a, 5);

        if (i < 40) {

            if (i < 20)

                t += ((b&(c^d))^d)     + 0x5A827999;

            else

                t += ( b^c     ^d)     + 0x6ED9EBA1;

        } else {

            if (i < 60)

                t += (((b|c)&d)|(b&c)) + 0x8F1BBCDC;

            else

                t += ( b^c     ^d)     + 0xCA62C1D6;

        }

        e = d;

        d = c;

        c = rol(b, 30);

        b = a;

        a = t;

    }

#else

    for (i = 0; i < 15; i += 5) {

        R0(a, b, c, d, e, 0 + i);

        R0(e, a, b, c, d, 1 + i);

        R0(d, e, a, b, c, 2 + i);

        R0(c, d, e, a, b, 3 + i);

        R0(b, c, d, e, a, 4 + i);

    }

    R0(a, b, c, d, e, 15);

    R1(e, a, b, c, d, 16);

    R1(d, e, a, b, c, 17);

    R1(c, d, e, a, b, 18);

    R1(b, c, d, e, a, 19);

    for (i = 20; i < 40; i += 5) {

        R2(a, b, c, d, e, 0 + i);

        R2(e, a, b, c, d, 1 + i);

        R2(d, e, a, b, c, 2 + i);

        R2(c, d, e, a, b, 3 + i);

        R2(b, c, d, e, a, 4 + i);

    }

    for (; i < 60; i += 5) {

        R3(a, b, c, d, e, 0 + i);

        R3(e, a, b, c, d, 1 + i);

        R3(d, e, a, b, c, 2 + i);

        R3(c, d, e, a, b, 3 + i);

        R3(b, c, d, e, a, 4 + i);

    }

    for (; i < 80; i += 5) {

        R4(a, b, c, d, e, 0 + i);

        R4(e, a, b, c, d, 1 + i);

        R4(d, e, a, b, c, 2 + i);

        R4(c, d, e, a, b, 3 + i);

        R4(b, c, d, e, a, 4 + i);

    }

#endif

    state[0] += a;

    state[1] += b;

    state[2] += c;

    state[3] += d;

    state[4] += e;

}

static void sha1_transform(uint32_t state[5], const uint8_t buffer[64])

{

    uint32_t block[80];

    unsigned int i, a, b, c, d, e;



    a = state[0];

    b = state[1];

    c = state[2];

    d = state[3];

    e = state[4];

#if CONFIG_SMALL

    for (i = 0; i < 80; i++) {

        int t;

        if (i < 16)

            t = AV_RB32(buffer + 4 * i);

        else

            t = rol(block[i-3] ^ block[i-8] ^ block[i-14] ^ block[i-16], 1);

        block[i] = t;

        t += e + rol(a, 5);

        if (i < 40) {

            if (i < 20)

                t += ((b&(c^d))^d)     + 0x5A827999;

            else

                t += ( b^c     ^d)     + 0x6ED9EBA1;

        } else {

            if (i < 60)

                t += (((b|c)&d)|(b&c)) + 0x8F1BBCDC;

            else

                t += ( b^c     ^d)     + 0xCA62C1D6;

        }

        e = d;

        d = c;

        c = rol(b, 30);

        b = a;

        a = t;

    }

#else

    for (i = 0; i < 15; i += 5) {

        R0(a, b, c, d, e, 0 + i);

        R0(e, a, b, c, d, 1 + i);

        R0(d, e, a, b, c, 2 + i);

        R0(c, d, e, a, b, 3 + i);

        R0(b, c, d, e, a, 4 + i);

    }

    R0(a, b, c, d, e, 15);

    R1(e, a, b, c, d, 16);

    R1(d, e, a, b, c, 17);

    R1(c, d, e, a, b, 18);

    R1(b, c, d, e, a, 19);

    for (i = 20; i < 40; i += 5) {

        R2(a, b, c, d, e, 0 + i);

        R2(e, a, b, c, d, 1 + i);

        R2(d, e, a, b, c, 2 + i);

        R2(c, d, e, a, b, 3 + i);

        R2(b, c, d, e, a, 4 + i);

    }

    for (; i < 60; i += 5) {

        R3(a, b, c, d, e, 0 + i);

        R3(e, a, b, c, d, 1 + i);

        R3(d, e, a, b, c, 2 + i);

        R3(c, d, e, a, b, 3 + i);

        R3(b, c, d, e, a, 4 + i);

    }

    for (; i < 80; i += 5) {

        R4(a, b, c, d, e, 0 + i);

        R4(e, a, b, c, d, 1 + i);

        R4(d, e, a, b, c, 2 + i);

        R4(c, d, e, a, b, 3 + i);

        R4(b, c, d, e, a, 4 + i);

    }

#endif

    state[0] += a;

    state[1] += b;

    state[2] += c;

    state[3] += d;

    state[4] += e;

}

static void FUNC_0(uint32_t VAR_0[5], const uint8_t VAR_1[64])

{

    uint32_t block[80];

    unsigned int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7;



    VAR_3 = VAR_0[0];

    VAR_4 = VAR_0[1];

    VAR_5 = VAR_0[2];

    VAR_6 = VAR_0[3];

    VAR_7 = VAR_0[4];

#if CONFIG_SMALL

    for (VAR_2 = 0; VAR_2 < 80; VAR_2++) {

        int t;

        if (VAR_2 < 16)

            t = AV_RB32(VAR_1 + 4 * VAR_2);

        else

            t = rol(block[VAR_2-3] ^ block[VAR_2-8] ^ block[VAR_2-14] ^ block[VAR_2-16], 1);

        block[VAR_2] = t;

        t += VAR_7 + rol(VAR_3, 5);

        if (VAR_2 < 40) {

            if (VAR_2 < 20)

                t += ((VAR_4&(VAR_5^VAR_6))^VAR_6)     + 0x5A827999;

            else

                t += ( VAR_4^VAR_5     ^VAR_6)     + 0x6ED9EBA1;

        } else {

            if (VAR_2 < 60)

                t += (((VAR_4|VAR_5)&VAR_6)|(VAR_4&VAR_5)) + 0x8F1BBCDC;

            else

                t += ( VAR_4^VAR_5     ^VAR_6)     + 0xCA62C1D6;

        }

        VAR_7 = VAR_6;

        VAR_6 = VAR_5;

        VAR_5 = rol(VAR_4, 30);

        VAR_4 = VAR_3;

        VAR_3 = t;

    }

#else

    for (VAR_2 = 0; VAR_2 < 15; VAR_2 += 5) {

        R0(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2);

        R0(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2);

        R0(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2);

        R0(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2);

        R0(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2);

    }

    R0(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 15);

    R1(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 16);

    R1(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 17);

    R1(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 18);

    R1(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 19);

    for (VAR_2 = 20; VAR_2 < 40; VAR_2 += 5) {

        R2(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2);

        R2(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2);

        R2(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2);

        R2(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2);

        R2(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2);

    }

    for (; VAR_2 < 60; VAR_2 += 5) {

        R3(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2);

        R3(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2);

        R3(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2);

        R3(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2);

        R3(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2);

    }

    for (; VAR_2 < 80; VAR_2 += 5) {

        R4(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2);

        R4(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2);

        R4(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2);

        R4(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2);

        R4(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2);

    }

#endif

    VAR_0[0] += VAR_3;

    VAR_0[1] += VAR_4;

    VAR_0[2] += VAR_5;

    VAR_0[3] += VAR_6;

    VAR_0[4] += VAR_7;

}

static void FUNC_0(uint32_t VAR_0[5], const uint8_t VAR_1[64])
{ uint32_t block[80]; unsigned int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7; VAR_3 = VAR_0[0]; VAR_4 = VAR_0[1]; VAR_5 = VAR_0[2]; VAR_6 = VAR_0[3]; VAR_7 = VAR_0[4]; #if CONFIG_SMALL
for (VAR_2 = 0; VAR_2 < 80; VAR_2++) { int t; if (VAR_2 < 16)
t = AV_RB32(VAR_1 + 4 * VAR_2); else
t = rol(block[VAR_2-3] ^ block[VAR_2-8] ^ block[VAR_2-14] ^ block[VAR_2-16], 1); block[VAR_2] = t; t += VAR_7 + rol(VAR_3, 5); if (VAR_2 < 40) { if (VAR_2 < 20)
t += ((VAR_4&(VAR_5^VAR_6))^VAR_6)     + 0x5A827999; else
t += ( VAR_4^VAR_5     ^VAR_6)     + 0x6ED9EBA1; } else { if (VAR_2 < 60)
t += (((VAR_4|VAR_5)&VAR_6)|(VAR_4&VAR_5)) + 0x8F1BBCDC; else
t += ( VAR_4^VAR_5     ^VAR_6)     + 0xCA62C1D6; } VAR_7 = VAR_6; VAR_6 = VAR_5; VAR_5 = rol(VAR_4, 30); VAR_4 = VAR_3; VAR_3 = t; } #else
for (VAR_2 = 0; VAR_2 < 15; VAR_2 += 5) { R0(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2); R0(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2); R0(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2); R0(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2); R0(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2); } R0(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 15); R1(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 16); R1(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 17); R1(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 18); R1(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 19); for (VAR_2 = 20; VAR_2 < 40; VAR_2 += 5) { R2(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2); R2(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2); R2(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2); R2(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2); R2(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2); } for (; VAR_2 < 60; VAR_2 += 5) { R3(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2); R3(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2); R3(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2); R3(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2); R3(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2); } for (; VAR_2 < 80; VAR_2 += 5) { R4(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, 0 + VAR_2); R4(VAR_7, VAR_3, VAR_4, VAR_5, VAR_6, 1 + VAR_2); R4(VAR_6, VAR_7, VAR_3, VAR_4, VAR_5, 2 + VAR_2); R4(VAR_5, VAR_6, VAR_7, VAR_3, VAR_4, 3 + VAR_2); R4(VAR_4, VAR_5, VAR_6, VAR_7, VAR_3, 4 + VAR_2); } #endif
VAR_0[0] += VAR_3; VAR_0[1] += VAR_4; VAR_0[2] += VAR_5; VAR_0[3] += VAR_6; VAR_0[4] += VAR_7; }