static int ipvideo_decode_block_opcode_0x3(IpvideoContext *s)

{

    unsigned char B;

    int x, y;



    /* copy 8x8 block from current frame from an up/left block */



    /* need 1 more byte for motion */

    CHECK_STREAM_PTR(1);

    B = *s->stream_ptr++;



    if (B < 56) {

        x = -(8 + (B % 7));

        y = -(B / 7);

    } else {

        x = -(-14 + ((B - 56) % 29));

        y = -(  8 + ((B - 56) / 29));

    }



    debug_interplay ("    motion byte = %d, (x, y) = (%d, %d)\n", B, x, y);

    return copy_from(s, &s->current_frame, x, y);

}

static int ipvideo_decode_block_opcode_0x3(IpvideoContext *s)

{

    unsigned char B;

    int x, y;



    



    

    CHECK_STREAM_PTR(1);

    B = *s->stream_ptr++;



    if (B < 56) {

        x = -(8 + (B % 7));

        y = -(B / 7);

    } else {

        x = -(-14 + ((B - 56) % 29));

        y = -(  8 + ((B - 56) / 29));

    }



    debug_interplay ("    motion byte = %d, (x, y) = (%d, %d)\n", B, x, y);

    return copy_from(s, &s->current_frame, x, y);

}

static int FUNC_0(IpvideoContext *VAR_0)

{

    unsigned char VAR_1;

    int VAR_2, VAR_3;



    



    

    CHECK_STREAM_PTR(1);

    VAR_1 = *VAR_0->stream_ptr++;



    if (VAR_1 < 56) {

        VAR_2 = -(8 + (VAR_1 % 7));

        VAR_3 = -(VAR_1 / 7);

    } else {

        VAR_2 = -(-14 + ((VAR_1 - 56) % 29));

        VAR_3 = -(  8 + ((VAR_1 - 56) / 29));

    }



    debug_interplay ("    motion byte = %d, (VAR_2, VAR_3) = (%d, %d)\n", VAR_1, VAR_2, VAR_3);

    return copy_from(VAR_0, &VAR_0->current_frame, VAR_2, VAR_3);

}

static int FUNC_0(IpvideoContext *VAR_0)
{ unsigned char VAR_1; int VAR_2, VAR_3; CHECK_STREAM_PTR(1); VAR_1 = *VAR_0->stream_ptr++; if (VAR_1 < 56) { VAR_2 = -(8 + (VAR_1 % 7)); VAR_3 = -(VAR_1 / 7); } else { VAR_2 = -(-14 + ((VAR_1 - 56) % 29)); VAR_3 = -(  8 + ((VAR_1 - 56) / 29)); } debug_interplay ("    motion byte = %d, (VAR_2, VAR_3) = (%d, %d)\n", VAR_1, VAR_2, VAR_3); return copy_from(VAR_0, &VAR_0->current_frame, VAR_2, VAR_3); }