static void decode_mb(MadContext *t, int inter)

{

    MpegEncContext *s = &t->s;

    int mv_map = 0;

    int mv_x, mv_y;

    int j;



    if (inter) {

        int v = decode210(&s->gb);

        if (v < 2) {

            mv_map = v ? get_bits(&s->gb, 6) : 63;

            mv_x = decode_motion(&s->gb);

            mv_y = decode_motion(&s->gb);

        } else {

            mv_map = 0;

        }

    }



    for (j=0; j<6; j++) {

        if (mv_map & (1<<j)) {  // mv_x and mv_y are guarded by mv_map

            int add = 2*decode_motion(&s->gb);

            if (t->last_frame.data[0])

                comp_block(t, s->mb_x, s->mb_y, j, mv_x, mv_y, add);

        } else {

            s->dsp.clear_block(t->block);

            decode_block_intra(t, t->block);

            idct_put(t, t->block, s->mb_x, s->mb_y, j);

        }

    }

}

static void decode_mb(MadContext *t, int inter)

{

    MpegEncContext *s = &t->s;

    int mv_map = 0;

    int mv_x, mv_y;

    int j;



    if (inter) {

        int v = decode210(&s->gb);

        if (v < 2) {

            mv_map = v ? get_bits(&s->gb, 6) : 63;

            mv_x = decode_motion(&s->gb);

            mv_y = decode_motion(&s->gb);

        } else {

            mv_map = 0;

        }

    }



    for (j=0; j<6; j++) {

        if (mv_map & (1<<j)) {  

            int add = 2*decode_motion(&s->gb);

            if (t->last_frame.data[0])

                comp_block(t, s->mb_x, s->mb_y, j, mv_x, mv_y, add);

        } else {

            s->dsp.clear_block(t->block);

            decode_block_intra(t, t->block);

            idct_put(t, t->block, s->mb_x, s->mb_y, j);

        }

    }

}

static void FUNC_0(MadContext *VAR_0, int VAR_1)

{

    MpegEncContext *s = &VAR_0->s;

    int VAR_2 = 0;

    int VAR_3, VAR_4;

    int VAR_5;



    if (VAR_1) {

        int VAR_6 = decode210(&s->gb);

        if (VAR_6 < 2) {

            VAR_2 = VAR_6 ? get_bits(&s->gb, 6) : 63;

            VAR_3 = decode_motion(&s->gb);

            VAR_4 = decode_motion(&s->gb);

        } else {

            VAR_2 = 0;

        }

    }



    for (VAR_5=0; VAR_5<6; VAR_5++) {

        if (VAR_2 & (1<<VAR_5)) {  

            int VAR_7 = 2*decode_motion(&s->gb);

            if (VAR_0->last_frame.data[0])

                comp_block(VAR_0, s->mb_x, s->mb_y, VAR_5, VAR_3, VAR_4, VAR_7);

        } else {

            s->dsp.clear_block(VAR_0->block);

            decode_block_intra(VAR_0, VAR_0->block);

            idct_put(VAR_0, VAR_0->block, s->mb_x, s->mb_y, VAR_5);

        }

    }

}

static void FUNC_0(MadContext *VAR_0, int VAR_1)
{ MpegEncContext *s = &VAR_0->s; int VAR_2 = 0; int VAR_3, VAR_4; int VAR_5; if (VAR_1) { int VAR_6 = decode210(&s->gb); if (VAR_6 < 2) { VAR_2 = VAR_6 ? get_bits(&s->gb, 6) : 63; VAR_3 = decode_motion(&s->gb); VAR_4 = decode_motion(&s->gb); } else { VAR_2 = 0; } } for (VAR_5=0; VAR_5<6; VAR_5++) { if (VAR_2 & (1<<VAR_5)) { int VAR_7 = 2*decode_motion(&s->gb); if (VAR_0->last_frame.data[0])
comp_block(VAR_0, s->mb_x, s->mb_y, VAR_5, VAR_3, VAR_4, VAR_7); } else { s->dsp.clear_block(VAR_0->block); decode_block_intra(VAR_0, VAR_0->block); idct_put(VAR_0, VAR_0->block, s->mb_x, s->mb_y, VAR_5); } } }