static const unsigned char *seq_unpack_rle_block(const unsigned char *src, unsigned char *dst, int dst_size)

{

    int i, len, sz;

    GetBitContext gb;

    int code_table[64];



    /* get the rle codes (at most 64 bytes) */

    init_get_bits(&gb, src, 64 * 8);

    for (i = 0, sz = 0; i < 64 && sz < dst_size; i++) {

        code_table[i] = get_sbits(&gb, 4);

        sz += FFABS(code_table[i]);

    }

    src += (get_bits_count(&gb) + 7) / 8;



    /* do the rle unpacking */

    for (i = 0; i < 64 && dst_size > 0; i++) {

        len = code_table[i];

        if (len < 0) {

            len = -len;

            memset(dst, *src++, FFMIN(len, dst_size));

        } else {

            memcpy(dst, src, FFMIN(len, dst_size));

            src += len;

        }

        dst += len;

        dst_size -= len;

    }

    return src;

}

static const unsigned char *seq_unpack_rle_block(const unsigned char *src, unsigned char *dst, int dst_size)

{

    int i, len, sz;

    GetBitContext gb;

    int code_table[64];



    

    init_get_bits(&gb, src, 64 * 8);

    for (i = 0, sz = 0; i < 64 && sz < dst_size; i++) {

        code_table[i] = get_sbits(&gb, 4);

        sz += FFABS(code_table[i]);

    }

    src += (get_bits_count(&gb) + 7) / 8;



    

    for (i = 0; i < 64 && dst_size > 0; i++) {

        len = code_table[i];

        if (len < 0) {

            len = -len;

            memset(dst, *src++, FFMIN(len, dst_size));

        } else {

            memcpy(dst, src, FFMIN(len, dst_size));

            src += len;

        }

        dst += len;

        dst_size -= len;

    }

    return src;

}

static const unsigned char *seq_unpack_rle_block(const unsigned char *src, unsigned char *dst, int dst_size)     init_get_bits(&gb, src, 64 * 8);
static const unsigned char *FUNC_0(const unsigned char *VAR_0, unsigned char *VAR_1, int VAR_2)

{

    int VAR_3, VAR_4, VAR_5;

    GetBitContext gb;

    int VAR_6[64];



    

    init_get_bits(&gb, VAR_0, 64 * 8);

    for (VAR_3 = 0, VAR_5 = 0; VAR_3 < 64 && VAR_5 < VAR_2; VAR_3++) {

        VAR_6[VAR_3] = get_sbits(&gb, 4);

        VAR_5 += FFABS(VAR_6[VAR_3]);

    }

    VAR_0 += (get_bits_count(&gb) + 7) / 8;



    

    for (VAR_3 = 0; VAR_3 < 64 && VAR_2 > 0; VAR_3++) {

        VAR_4 = VAR_6[VAR_3];

        if (VAR_4 < 0) {

            VAR_4 = -VAR_4;

            memset(VAR_1, *VAR_0++, FFMIN(VAR_4, VAR_2));

        } else {

            memcpy(VAR_1, VAR_0, FFMIN(VAR_4, VAR_2));

            VAR_0 += VAR_4;

        }

        VAR_1 += VAR_4;

        VAR_2 -= VAR_4;

    }

    return VAR_0;

}

static const unsigned char *FUNC_0(const unsigned char *VAR_0, unsigned char *VAR_1, int VAR_2)
{ int VAR_3, VAR_4, VAR_5; GetBitContext gb; int VAR_6[64]; init_get_bits(&gb, VAR_0, 64 * 8); for (VAR_3 = 0, VAR_5 = 0; VAR_3 < 64 && VAR_5 < VAR_2; VAR_3++) { VAR_6[VAR_3] = get_sbits(&gb, 4); VAR_5 += FFABS(VAR_6[VAR_3]); } VAR_0 += (get_bits_count(&gb) + 7) / 8; for (VAR_3 = 0; VAR_3 < 64 && VAR_2 > 0; VAR_3++) { VAR_4 = VAR_6[VAR_3]; if (VAR_4 < 0) { VAR_4 = -VAR_4; memset(VAR_1, *VAR_0++, FFMIN(VAR_4, VAR_2)); } else { memcpy(VAR_1, VAR_0, FFMIN(VAR_4, VAR_2)); VAR_0 += VAR_4; } VAR_1 += VAR_4; VAR_2 -= VAR_4; } return VAR_0; }