static av_always_inline void decode_bgr_1(HYuvContext *s, int count,

                                          int decorrelate, int alpha)

{

    int i;

    OPEN_READER(re, &s->gb);



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

        unsigned int index;

        int code, n;



        UPDATE_CACHE(re, &s->gb);

        index = SHOW_UBITS(re, &s->gb, VLC_BITS);

        code  = s->vlc[4].table[index][0];

        n     = s->vlc[4].table[index][1];



        if (code != -1) {

            *(uint32_t*)&s->temp[0][4 * i] = s->pix_bgr_map[code];

            LAST_SKIP_BITS(re, &s->gb, n);

        } else {

            int nb_bits;

            if(decorrelate) {

                VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(code, s->vlc[0].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * i + B] = code + s->temp[0][4 * i + G];



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(code, s->vlc[2].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * i + R] = code + s->temp[0][4 * i + G];

            } else {

                VLC_INTERN(s->temp[0][4 * i + B], s->vlc[0].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + R], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

            if (alpha) {

                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + A], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

        }

    }

    CLOSE_READER(re, &s->gb);

}

static av_always_inline void decode_bgr_1(HYuvContext *s, int count,

                                          int decorrelate, int alpha)

{

    int i;

    OPEN_READER(re, &s->gb);



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

        unsigned int index;

        int code, n;



        UPDATE_CACHE(re, &s->gb);

        index = SHOW_UBITS(re, &s->gb, VLC_BITS);

        code  = s->vlc[4].table[index][0];

        n     = s->vlc[4].table[index][1];



        if (code != -1) {

            *(uint32_t*)&s->temp[0][4 * i] = s->pix_bgr_map[code];

            LAST_SKIP_BITS(re, &s->gb, n);

        } else {

            int nb_bits;

            if(decorrelate) {

                VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(code, s->vlc[0].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * i + B] = code + s->temp[0][4 * i + G];



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(code, s->vlc[2].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * i + R] = code + s->temp[0][4 * i + G];

            } else {

                VLC_INTERN(s->temp[0][4 * i + B], s->vlc[0].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + R], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

            if (alpha) {

                UPDATE_CACHE(re, &s->gb);

                index = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * i + A], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

        }

    }

    CLOSE_READER(re, &s->gb);

}

static av_always_inline void FUNC_0(HYuvContext *s, int count,

                                          int decorrelate, int alpha)

{

    int VAR_0;

    OPEN_READER(re, &s->gb);



    for (VAR_0 = 0; VAR_0 < count; VAR_0++) {

        unsigned int VAR_1;

        int VAR_2, VAR_3;



        UPDATE_CACHE(re, &s->gb);

        VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

        VAR_2  = s->vlc[4].table[VAR_1][0];

        VAR_3     = s->vlc[4].table[VAR_1][1];



        if (VAR_2 != -1) {

            *(uint32_t*)&s->temp[0][4 * VAR_0] = s->pix_bgr_map[VAR_2];

            LAST_SKIP_BITS(re, &s->gb, VAR_3);

        } else {

            int VAR_4;

            if(decorrelate) {

                VLC_INTERN(s->temp[0][4 * VAR_0 + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(VAR_2, s->vlc[0].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * VAR_0 + B] = VAR_2 + s->temp[0][4 * VAR_0 + G];



                UPDATE_CACHE(re, &s->gb);

                VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(VAR_2, s->vlc[2].table, &s->gb, re, VLC_BITS, 3);

                s->temp[0][4 * VAR_0 + R] = VAR_2 + s->temp[0][4 * VAR_0 + G];

            } else {

                VLC_INTERN(s->temp[0][4 * VAR_0 + B], s->vlc[0].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * VAR_0 + G], s->vlc[1].table,

                           &s->gb, re, VLC_BITS, 3);



                UPDATE_CACHE(re, &s->gb);

                VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * VAR_0 + R], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

            if (alpha) {

                UPDATE_CACHE(re, &s->gb);

                VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS);

                VLC_INTERN(s->temp[0][4 * VAR_0 + A], s->vlc[2].table,

                           &s->gb, re, VLC_BITS, 3);

            }

        }

    }

    CLOSE_READER(re, &s->gb);

}

static av_always_inline void FUNC_0(HYuvContext *s, int count,
int decorrelate, int alpha)
{ int VAR_0; OPEN_READER(re, &s->gb); for (VAR_0 = 0; VAR_0 < count; VAR_0++) { unsigned int VAR_1; int VAR_2, VAR_3; UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VAR_2  = s->vlc[4].table[VAR_1][0]; VAR_3     = s->vlc[4].table[VAR_1][1]; if (VAR_2 != -1) { *(uint32_t*)&s->temp[0][4 * VAR_0] = s->pix_bgr_map[VAR_2]; LAST_SKIP_BITS(re, &s->gb, VAR_3); } else { int VAR_4; if(decorrelate) { VLC_INTERN(s->temp[0][4 * VAR_0 + G], s->vlc[1].table,
&s->gb, re, VLC_BITS, 3); UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VLC_INTERN(VAR_2, s->vlc[0].table, &s->gb, re, VLC_BITS, 3); s->temp[0][4 * VAR_0 + B] = VAR_2 + s->temp[0][4 * VAR_0 + G]; UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VLC_INTERN(VAR_2, s->vlc[2].table, &s->gb, re, VLC_BITS, 3); s->temp[0][4 * VAR_0 + R] = VAR_2 + s->temp[0][4 * VAR_0 + G]; } else { VLC_INTERN(s->temp[0][4 * VAR_0 + B], s->vlc[0].table,
&s->gb, re, VLC_BITS, 3); UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VLC_INTERN(s->temp[0][4 * VAR_0 + G], s->vlc[1].table,
&s->gb, re, VLC_BITS, 3); UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VLC_INTERN(s->temp[0][4 * VAR_0 + R], s->vlc[2].table,
&s->gb, re, VLC_BITS, 3); } if (alpha) { UPDATE_CACHE(re, &s->gb); VAR_1 = SHOW_UBITS(re, &s->gb, VLC_BITS); VLC_INTERN(s->temp[0][4 * VAR_0 + A], s->vlc[2].table,
&s->gb, re, VLC_BITS, 3); } } } CLOSE_READER(re, &s->gb); }