static int read_motion_values(AVCodecContext *avctx, GetBitContext *gb, Bundle *b)

{

    int t, sign, v;

    const uint8_t *dec_end;



    CHECK_READ_VAL(gb, b, t);

    dec_end = b->cur_dec + t;

    if (dec_end > b->data_end) {

        av_log(avctx, AV_LOG_ERROR, "Too many motion values\n");

        return -1;

    }

    if (get_bits1(gb)) {

        v = get_bits(gb, 4);

        if (v) {

            sign = -get_bits1(gb);

            v = (v ^ sign) - sign;

        }

        memset(b->cur_dec, v, t);

        b->cur_dec += t;

    } else {

        do {

            v = GET_HUFF(gb, b->tree);

            if (v) {

                sign = -get_bits1(gb);

                v = (v ^ sign) - sign;

            }

            *b->cur_dec++ = v;

        } while (b->cur_dec < dec_end);

    }

    return 0;

}

static int read_motion_values(AVCodecContext *avctx, GetBitContext *gb, Bundle *b)

{

    int t, sign, v;

    const uint8_t *dec_end;



    CHECK_READ_VAL(gb, b, t);

    dec_end = b->cur_dec + t;

    if (dec_end > b->data_end) {

        av_log(avctx, AV_LOG_ERROR, "Too many motion values\n");

        return -1;

    }

    if (get_bits1(gb)) {

        v = get_bits(gb, 4);

        if (v) {

            sign = -get_bits1(gb);

            v = (v ^ sign) - sign;

        }

        memset(b->cur_dec, v, t);

        b->cur_dec += t;

    } else {

        do {

            v = GET_HUFF(gb, b->tree);

            if (v) {

                sign = -get_bits1(gb);

                v = (v ^ sign) - sign;

            }

            *b->cur_dec++ = v;

        } while (b->cur_dec < dec_end);

    }

    return 0;

}

        do {         } while (b->cur_dec < dec_end);         do {         } while (b->cur_dec < dec_end);
static int FUNC_0(AVCodecContext *VAR_0, GetBitContext *VAR_1, Bundle *VAR_2)

{

    int VAR_3, VAR_4, VAR_5;

    const uint8_t *VAR_6;



    CHECK_READ_VAL(VAR_1, VAR_2, VAR_3);

    VAR_6 = VAR_2->cur_dec + VAR_3;

    if (VAR_6 > VAR_2->data_end) {

        av_log(VAR_0, AV_LOG_ERROR, "Too many motion values\n");

        return -1;

    }

    if (get_bits1(VAR_1)) {

        VAR_5 = get_bits(VAR_1, 4);

        if (VAR_5) {

            VAR_4 = -get_bits1(VAR_1);

            VAR_5 = (VAR_5 ^ VAR_4) - VAR_4;

        }

        memset(VAR_2->cur_dec, VAR_5, VAR_3);

        VAR_2->cur_dec += VAR_3;

    } else {

        do {

            VAR_5 = GET_HUFF(VAR_1, VAR_2->tree);

            if (VAR_5) {

                VAR_4 = -get_bits1(VAR_1);

                VAR_5 = (VAR_5 ^ VAR_4) - VAR_4;

            }

            *VAR_2->cur_dec++ = VAR_5;

        } while (VAR_2->cur_dec < VAR_6);

    }

    return 0;

}

static int FUNC_0(AVCodecContext *VAR_0, GetBitContext *VAR_1, Bundle *VAR_2)
{ int VAR_3, VAR_4, VAR_5; const uint8_t *VAR_6; CHECK_READ_VAL(VAR_1, VAR_2, VAR_3); VAR_6 = VAR_2->cur_dec + VAR_3; if (VAR_6 > VAR_2->data_end) { av_log(VAR_0, AV_LOG_ERROR, "Too many motion values\n"); return -1; } if (get_bits1(VAR_1)) { VAR_5 = get_bits(VAR_1, 4); if (VAR_5) { VAR_4 = -get_bits1(VAR_1); VAR_5 = (VAR_5 ^ VAR_4) - VAR_4; } memset(VAR_2->cur_dec, VAR_5, VAR_3); VAR_2->cur_dec += VAR_3; } else { do { VAR_5 = GET_HUFF(VAR_1, VAR_2->tree); if (VAR_5) { VAR_4 = -get_bits1(VAR_1); VAR_5 = (VAR_5 ^ VAR_4) - VAR_4; } *VAR_2->cur_dec++ = VAR_5; } while (VAR_2->cur_dec < VAR_6); } return 0; }