static inline void rv34_decode_block(DCTELEM *dst, GetBitContext *gb, RV34VLC *rvlc, int fc, int sc, int q_dc, int q_ac1, int q_ac2)

{

    int code, pattern;



    code = get_vlc2(gb, rvlc->first_pattern[fc].table, 9, 2);



    pattern = code & 0x7;



    code >>= 3;

    decode_subblock3(dst, code, 0, gb, &rvlc->coefficient, q_dc, q_ac1, q_ac2);



    if(pattern & 4){

        code = get_vlc2(gb, rvlc->second_pattern[sc].table, 9, 2);

        decode_subblock(dst + 2, code, 0, gb, &rvlc->coefficient, q_ac2);

    }

    if(pattern & 2){ // Looks like coefficients 1 and 2 are swapped for this block

        code = get_vlc2(gb, rvlc->second_pattern[sc].table, 9, 2);

        decode_subblock(dst + 8*2, code, 1, gb, &rvlc->coefficient, q_ac2);

    }

    if(pattern & 1){

        code = get_vlc2(gb, rvlc->third_pattern[sc].table, 9, 2);

        decode_subblock(dst + 8*2+2, code, 0, gb, &rvlc->coefficient, q_ac2);

    }



}

static inline void rv34_decode_block(DCTELEM *dst, GetBitContext *gb, RV34VLC *rvlc, int fc, int sc, int q_dc, int q_ac1, int q_ac2)

{

    int code, pattern;



    code = get_vlc2(gb, rvlc->first_pattern[fc].table, 9, 2);



    pattern = code & 0x7;



    code >>= 3;

    decode_subblock3(dst, code, 0, gb, &rvlc->coefficient, q_dc, q_ac1, q_ac2);



    if(pattern & 4){

        code = get_vlc2(gb, rvlc->second_pattern[sc].table, 9, 2);

        decode_subblock(dst + 2, code, 0, gb, &rvlc->coefficient, q_ac2);

    }

    if(pattern & 2){ 

        code = get_vlc2(gb, rvlc->second_pattern[sc].table, 9, 2);

        decode_subblock(dst + 8*2, code, 1, gb, &rvlc->coefficient, q_ac2);

    }

    if(pattern & 1){

        code = get_vlc2(gb, rvlc->third_pattern[sc].table, 9, 2);

        decode_subblock(dst + 8*2+2, code, 0, gb, &rvlc->coefficient, q_ac2);

    }



}

static inline void FUNC_0(DCTELEM *VAR_0, GetBitContext *VAR_1, RV34VLC *VAR_2, int VAR_3, int VAR_4, int VAR_5, int VAR_6, int VAR_7)

{

    int VAR_8, VAR_9;



    VAR_8 = get_vlc2(VAR_1, VAR_2->first_pattern[VAR_3].table, 9, 2);



    VAR_9 = VAR_8 & 0x7;



    VAR_8 >>= 3;

    decode_subblock3(VAR_0, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_5, VAR_6, VAR_7);



    if(VAR_9 & 4){

        VAR_8 = get_vlc2(VAR_1, VAR_2->second_pattern[VAR_4].table, 9, 2);

        decode_subblock(VAR_0 + 2, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_7);

    }

    if(VAR_9 & 2){ 

        VAR_8 = get_vlc2(VAR_1, VAR_2->second_pattern[VAR_4].table, 9, 2);

        decode_subblock(VAR_0 + 8*2, VAR_8, 1, VAR_1, &VAR_2->coefficient, VAR_7);

    }

    if(VAR_9 & 1){

        VAR_8 = get_vlc2(VAR_1, VAR_2->third_pattern[VAR_4].table, 9, 2);

        decode_subblock(VAR_0 + 8*2+2, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_7);

    }



}

static inline void FUNC_0(DCTELEM *VAR_0, GetBitContext *VAR_1, RV34VLC *VAR_2, int VAR_3, int VAR_4, int VAR_5, int VAR_6, int VAR_7)
{ int VAR_8, VAR_9; VAR_8 = get_vlc2(VAR_1, VAR_2->first_pattern[VAR_3].table, 9, 2); VAR_9 = VAR_8 & 0x7; VAR_8 >>= 3; decode_subblock3(VAR_0, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_5, VAR_6, VAR_7); if(VAR_9 & 4){ VAR_8 = get_vlc2(VAR_1, VAR_2->second_pattern[VAR_4].table, 9, 2); decode_subblock(VAR_0 + 2, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_7); } if(VAR_9 & 2){ VAR_8 = get_vlc2(VAR_1, VAR_2->second_pattern[VAR_4].table, 9, 2); decode_subblock(VAR_0 + 8*2, VAR_8, 1, VAR_1, &VAR_2->coefficient, VAR_7); } if(VAR_9 & 1){ VAR_8 = get_vlc2(VAR_1, VAR_2->third_pattern[VAR_4].table, 9, 2); decode_subblock(VAR_0 + 8*2+2, VAR_8, 0, VAR_1, &VAR_2->coefficient, VAR_7); } }