static void sha256_transform(uint32_t *state, const uint8_t buffer[64])

{

    unsigned int i, a, b, c, d, e, f, g, h;

    uint32_t block[64];

    uint32_t T1;



    a = state[0];

    b = state[1];

    c = state[2];

    d = state[3];

    e = state[4];

    f = state[5];

    g = state[6];

    h = state[7];

#if CONFIG_SMALL

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

        uint32_t T2;

        if (i < 16)

            T1 = blk0(i);

        else

            T1 = blk(i);

        T1 += h + Sigma1_256(e) + Ch(e, f, g) + K256[i];

        T2 = Sigma0_256(a) + Maj(a, b, c);

        h = g;

        g = f;

        f = e;

        e = d + T1;

        d = c;

        c = b;

        b = a;

        a = T1 + T2;

    }

#else

    for (i = 0; i < 16;) {

        ROUND256_0_TO_15(a, b, c, d, e, f, g, h);

        ROUND256_0_TO_15(h, a, b, c, d, e, f, g);

        ROUND256_0_TO_15(g, h, a, b, c, d, e, f);

        ROUND256_0_TO_15(f, g, h, a, b, c, d, e);

        ROUND256_0_TO_15(e, f, g, h, a, b, c, d);

        ROUND256_0_TO_15(d, e, f, g, h, a, b, c);

        ROUND256_0_TO_15(c, d, e, f, g, h, a, b);

        ROUND256_0_TO_15(b, c, d, e, f, g, h, a);

    }



    for (; i < 64;) {

        ROUND256_16_TO_63(a, b, c, d, e, f, g, h);

        ROUND256_16_TO_63(h, a, b, c, d, e, f, g);

        ROUND256_16_TO_63(g, h, a, b, c, d, e, f);

        ROUND256_16_TO_63(f, g, h, a, b, c, d, e);

        ROUND256_16_TO_63(e, f, g, h, a, b, c, d);

        ROUND256_16_TO_63(d, e, f, g, h, a, b, c);

        ROUND256_16_TO_63(c, d, e, f, g, h, a, b);

        ROUND256_16_TO_63(b, c, d, e, f, g, h, a);

    }

#endif

    state[0] += a;

    state[1] += b;

    state[2] += c;

    state[3] += d;

    state[4] += e;

    state[5] += f;

    state[6] += g;

    state[7] += h;

}

static void sha256_transform(uint32_t *state, const uint8_t buffer[64])

{

    unsigned int i, a, b, c, d, e, f, g, h;

    uint32_t block[64];

    uint32_t T1;



    a = state[0];

    b = state[1];

    c = state[2];

    d = state[3];

    e = state[4];

    f = state[5];

    g = state[6];

    h = state[7];

#if CONFIG_SMALL

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

        uint32_t T2;

        if (i < 16)

            T1 = blk0(i);

        else

            T1 = blk(i);

        T1 += h + Sigma1_256(e) + Ch(e, f, g) + K256[i];

        T2 = Sigma0_256(a) + Maj(a, b, c);

        h = g;

        g = f;

        f = e;

        e = d + T1;

        d = c;

        c = b;

        b = a;

        a = T1 + T2;

    }

#else

    for (i = 0; i < 16;) {

        ROUND256_0_TO_15(a, b, c, d, e, f, g, h);

        ROUND256_0_TO_15(h, a, b, c, d, e, f, g);

        ROUND256_0_TO_15(g, h, a, b, c, d, e, f);

        ROUND256_0_TO_15(f, g, h, a, b, c, d, e);

        ROUND256_0_TO_15(e, f, g, h, a, b, c, d);

        ROUND256_0_TO_15(d, e, f, g, h, a, b, c);

        ROUND256_0_TO_15(c, d, e, f, g, h, a, b);

        ROUND256_0_TO_15(b, c, d, e, f, g, h, a);

    }



    for (; i < 64;) {

        ROUND256_16_TO_63(a, b, c, d, e, f, g, h);

        ROUND256_16_TO_63(h, a, b, c, d, e, f, g);

        ROUND256_16_TO_63(g, h, a, b, c, d, e, f);

        ROUND256_16_TO_63(f, g, h, a, b, c, d, e);

        ROUND256_16_TO_63(e, f, g, h, a, b, c, d);

        ROUND256_16_TO_63(d, e, f, g, h, a, b, c);

        ROUND256_16_TO_63(c, d, e, f, g, h, a, b);

        ROUND256_16_TO_63(b, c, d, e, f, g, h, a);

    }

#endif

    state[0] += a;

    state[1] += b;

    state[2] += c;

    state[3] += d;

    state[4] += e;

    state[5] += f;

    state[6] += g;

    state[7] += h;

}

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

{

    unsigned int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10;

    uint32_t block[64];

    uint32_t T1;



    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];

    VAR_8 = VAR_0[5];

    VAR_9 = VAR_0[6];

    VAR_10 = VAR_0[7];

#if CONFIG_SMALL

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

        uint32_t T2;

        if (VAR_2 < 16)

            T1 = blk0(VAR_2);

        else

            T1 = blk(VAR_2);

        T1 += VAR_10 + Sigma1_256(VAR_7) + Ch(VAR_7, VAR_8, VAR_9) + K256[VAR_2];

        T2 = Sigma0_256(VAR_3) + Maj(VAR_3, VAR_4, VAR_5);

        VAR_10 = VAR_9;

        VAR_9 = VAR_8;

        VAR_8 = VAR_7;

        VAR_7 = VAR_6 + T1;

        VAR_6 = VAR_5;

        VAR_5 = VAR_4;

        VAR_4 = VAR_3;

        VAR_3 = T1 + T2;

    }

#else

    for (VAR_2 = 0; VAR_2 < 16;) {

        ROUND256_0_TO_15(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10);

        ROUND256_0_TO_15(VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9);

        ROUND256_0_TO_15(VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8);

        ROUND256_0_TO_15(VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7);

        ROUND256_0_TO_15(VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6);

        ROUND256_0_TO_15(VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5);

        ROUND256_0_TO_15(VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4);

        ROUND256_0_TO_15(VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3);

    }



    for (; VAR_2 < 64;) {

        ROUND256_16_TO_63(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10);

        ROUND256_16_TO_63(VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9);

        ROUND256_16_TO_63(VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8);

        ROUND256_16_TO_63(VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7);

        ROUND256_16_TO_63(VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6);

        ROUND256_16_TO_63(VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5);

        ROUND256_16_TO_63(VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4);

        ROUND256_16_TO_63(VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3);

    }

#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;

    VAR_0[5] += VAR_8;

    VAR_0[6] += VAR_9;

    VAR_0[7] += VAR_10;

}

static void FUNC_0(uint32_t *VAR_0, const uint8_t VAR_1[64])
{ unsigned int VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10; uint32_t block[64]; uint32_t T1; 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]; VAR_8 = VAR_0[5]; VAR_9 = VAR_0[6]; VAR_10 = VAR_0[7]; #if CONFIG_SMALL
for (VAR_2 = 0; VAR_2 < 64; VAR_2++) { uint32_t T2; if (VAR_2 < 16)
T1 = blk0(VAR_2); else
T1 = blk(VAR_2); T1 += VAR_10 + Sigma1_256(VAR_7) + Ch(VAR_7, VAR_8, VAR_9) + K256[VAR_2]; T2 = Sigma0_256(VAR_3) + Maj(VAR_3, VAR_4, VAR_5); VAR_10 = VAR_9; VAR_9 = VAR_8; VAR_8 = VAR_7; VAR_7 = VAR_6 + T1; VAR_6 = VAR_5; VAR_5 = VAR_4; VAR_4 = VAR_3; VAR_3 = T1 + T2; } #else
for (VAR_2 = 0; VAR_2 < 16;) { ROUND256_0_TO_15(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10); ROUND256_0_TO_15(VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9); ROUND256_0_TO_15(VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8); ROUND256_0_TO_15(VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7); ROUND256_0_TO_15(VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6); ROUND256_0_TO_15(VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5); ROUND256_0_TO_15(VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4); ROUND256_0_TO_15(VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3); } for (; VAR_2 < 64;) { ROUND256_16_TO_63(VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10); ROUND256_16_TO_63(VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9); ROUND256_16_TO_63(VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8); ROUND256_16_TO_63(VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7); ROUND256_16_TO_63(VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5, VAR_6); ROUND256_16_TO_63(VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4, VAR_5); ROUND256_16_TO_63(VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3, VAR_4); ROUND256_16_TO_63(VAR_4, VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_3); } #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; VAR_0[5] += VAR_8; VAR_0[6] += VAR_9; VAR_0[7] += VAR_10; }