static void rv34_pred_mv_rv3(RV34DecContext *r, int block_type, int dir)

{

    MpegEncContext *s = &r->s;

    int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride;

    int A[2] = {0}, B[2], C[2];

    int i, j, k;

    int mx, my;

    int avail_index = avail_indexes[0];



    if(r->avail_cache[avail_index - 1]){

        A[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - 1][0];

        A[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - 1][1];

    }

    if(r->avail_cache[avail_index - 4]){

        B[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride][0];

        B[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride][1];

    }else{

        B[0] = A[0];

        B[1] = A[1];

    }

    if(!r->avail_cache[avail_index - 4 + 2]){

        if(r->avail_cache[avail_index - 4] && (r->avail_cache[avail_index - 1])){

            C[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride - 1][0];

            C[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride - 1][1];

        }else{

            C[0] = A[0];

            C[1] = A[1];

        }

    }else{

        C[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride + 2][0];

        C[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride + 2][1];

    }

    mx = mid_pred(A[0], B[0], C[0]);

    my = mid_pred(A[1], B[1], C[1]);

    mx += r->dmv[0][0];

    my += r->dmv[0][1];

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

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

            for(k = 0; k < 2; k++){

                s->current_picture_ptr->f.motion_val[k][mv_pos + i + j*s->b8_stride][0] = mx;

                s->current_picture_ptr->f.motion_val[k][mv_pos + i + j*s->b8_stride][1] = my;

            }

        }

    }

}

static void rv34_pred_mv_rv3(RV34DecContext *r, int block_type, int dir)

{

    MpegEncContext *s = &r->s;

    int mv_pos = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride;

    int A[2] = {0}, B[2], C[2];

    int i, j, k;

    int mx, my;

    int avail_index = avail_indexes[0];



    if(r->avail_cache[avail_index - 1]){

        A[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - 1][0];

        A[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - 1][1];

    }

    if(r->avail_cache[avail_index - 4]){

        B[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride][0];

        B[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride][1];

    }else{

        B[0] = A[0];

        B[1] = A[1];

    }

    if(!r->avail_cache[avail_index - 4 + 2]){

        if(r->avail_cache[avail_index - 4] && (r->avail_cache[avail_index - 1])){

            C[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride - 1][0];

            C[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride - 1][1];

        }else{

            C[0] = A[0];

            C[1] = A[1];

        }

    }else{

        C[0] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride + 2][0];

        C[1] = s->current_picture_ptr->f.motion_val[0][mv_pos - s->b8_stride + 2][1];

    }

    mx = mid_pred(A[0], B[0], C[0]);

    my = mid_pred(A[1], B[1], C[1]);

    mx += r->dmv[0][0];

    my += r->dmv[0][1];

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

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

            for(k = 0; k < 2; k++){

                s->current_picture_ptr->f.motion_val[k][mv_pos + i + j*s->b8_stride][0] = mx;

                s->current_picture_ptr->f.motion_val[k][mv_pos + i + j*s->b8_stride][1] = my;

            }

        }

    }

}

static void FUNC_0(RV34DecContext *VAR_0, int VAR_1, int VAR_2)

{

    MpegEncContext *s = &VAR_0->s;

    int VAR_3 = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride;

    int VAR_4[2] = {0}, VAR_5[2], VAR_6[2];

    int VAR_7, VAR_8, VAR_9;

    int VAR_10, VAR_11;

    int VAR_12 = avail_indexes[0];



    if(VAR_0->avail_cache[VAR_12 - 1]){

        VAR_4[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - 1][0];

        VAR_4[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - 1][1];

    }

    if(VAR_0->avail_cache[VAR_12 - 4]){

        VAR_5[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride][0];

        VAR_5[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride][1];

    }else{

        VAR_5[0] = VAR_4[0];

        VAR_5[1] = VAR_4[1];

    }

    if(!VAR_0->avail_cache[VAR_12 - 4 + 2]){

        if(VAR_0->avail_cache[VAR_12 - 4] && (VAR_0->avail_cache[VAR_12 - 1])){

            VAR_6[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride - 1][0];

            VAR_6[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride - 1][1];

        }else{

            VAR_6[0] = VAR_4[0];

            VAR_6[1] = VAR_4[1];

        }

    }else{

        VAR_6[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride + 2][0];

        VAR_6[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride + 2][1];

    }

    VAR_10 = mid_pred(VAR_4[0], VAR_5[0], VAR_6[0]);

    VAR_11 = mid_pred(VAR_4[1], VAR_5[1], VAR_6[1]);

    VAR_10 += VAR_0->dmv[0][0];

    VAR_11 += VAR_0->dmv[0][1];

    for(VAR_8 = 0; VAR_8 < 2; VAR_8++){

        for(VAR_7 = 0; VAR_7 < 2; VAR_7++){

            for(VAR_9 = 0; VAR_9 < 2; VAR_9++){

                s->current_picture_ptr->f.motion_val[VAR_9][VAR_3 + VAR_7 + VAR_8*s->b8_stride][0] = VAR_10;

                s->current_picture_ptr->f.motion_val[VAR_9][VAR_3 + VAR_7 + VAR_8*s->b8_stride][1] = VAR_11;

            }

        }

    }

}

static void FUNC_0(RV34DecContext *VAR_0, int VAR_1, int VAR_2)
{ MpegEncContext *s = &VAR_0->s; int VAR_3 = s->mb_x * 2 + s->mb_y * 2 * s->b8_stride; int VAR_4[2] = {0}, VAR_5[2], VAR_6[2]; int VAR_7, VAR_8, VAR_9; int VAR_10, VAR_11; int VAR_12 = avail_indexes[0]; if(VAR_0->avail_cache[VAR_12 - 1]){ VAR_4[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - 1][0]; VAR_4[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - 1][1]; } if(VAR_0->avail_cache[VAR_12 - 4]){ VAR_5[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride][0]; VAR_5[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride][1]; }else{ VAR_5[0] = VAR_4[0]; VAR_5[1] = VAR_4[1]; } if(!VAR_0->avail_cache[VAR_12 - 4 + 2]){ if(VAR_0->avail_cache[VAR_12 - 4] && (VAR_0->avail_cache[VAR_12 - 1])){ VAR_6[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride - 1][0]; VAR_6[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride - 1][1]; }else{ VAR_6[0] = VAR_4[0]; VAR_6[1] = VAR_4[1]; } }else{ VAR_6[0] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride + 2][0]; VAR_6[1] = s->current_picture_ptr->f.motion_val[0][VAR_3 - s->b8_stride + 2][1]; } VAR_10 = mid_pred(VAR_4[0], VAR_5[0], VAR_6[0]); VAR_11 = mid_pred(VAR_4[1], VAR_5[1], VAR_6[1]); VAR_10 += VAR_0->dmv[0][0]; VAR_11 += VAR_0->dmv[0][1]; for(VAR_8 = 0; VAR_8 < 2; VAR_8++){ for(VAR_7 = 0; VAR_7 < 2; VAR_7++){ for(VAR_9 = 0; VAR_9 < 2; VAR_9++){ s->current_picture_ptr->f.motion_val[VAR_9][VAR_3 + VAR_7 + VAR_8*s->b8_stride][0] = VAR_10; s->current_picture_ptr->f.motion_val[VAR_9][VAR_3 + VAR_7 + VAR_8*s->b8_stride][1] = VAR_11; } } } }