int get_buffer(ByteIOContext *s, unsigned char *buf, int size)

{

    int len, size1;



    size1 = size;

    while (size > 0) {

        len = s->buf_end - s->buf_ptr;

        if (len > size)

            len = size;

        if (len == 0) {

            fill_buffer(s);

            len = s->buf_end - s->buf_ptr;

            if (len == 0)

                break;

        } else {

            memcpy(buf, s->buf_ptr, len);

            buf += len;

            s->buf_ptr += len;

            size -= len;

        }

    }

    return size1 - size;

}

int get_buffer(ByteIOContext *s, unsigned char *buf, int size)

{

    int len, size1;



    size1 = size;

    while (size > 0) {

        len = s->buf_end - s->buf_ptr;

        if (len > size)

            len = size;

        if (len == 0) {

            fill_buffer(s);

            len = s->buf_end - s->buf_ptr;

            if (len == 0)

                break;

        } else {

            memcpy(buf, s->buf_ptr, len);

            buf += len;

            s->buf_ptr += len;

            size -= len;

        }

    }

    return size1 - size;

}

int FUNC_0(ByteIOContext *VAR_0, unsigned char *VAR_1, int VAR_2)

{

    int VAR_3, VAR_4;



    VAR_4 = VAR_2;

    while (VAR_2 > 0) {

        VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr;

        if (VAR_3 > VAR_2)

            VAR_3 = VAR_2;

        if (VAR_3 == 0) {

            fill_buffer(VAR_0);

            VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr;

            if (VAR_3 == 0)

                break;

        } else {

            memcpy(VAR_1, VAR_0->buf_ptr, VAR_3);

            VAR_1 += VAR_3;

            VAR_0->buf_ptr += VAR_3;

            VAR_2 -= VAR_3;

        }

    }

    return VAR_4 - VAR_2;

}

int FUNC_0(ByteIOContext *VAR_0, unsigned char *VAR_1, int VAR_2)
{ int VAR_3, VAR_4; VAR_4 = VAR_2; while (VAR_2 > 0) { VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr; if (VAR_3 > VAR_2)
VAR_3 = VAR_2; if (VAR_3 == 0) { fill_buffer(VAR_0); VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr; if (VAR_3 == 0)
break; } else { memcpy(VAR_1, VAR_0->buf_ptr, VAR_3); VAR_1 += VAR_3; VAR_0->buf_ptr += VAR_3; VAR_2 -= VAR_3; } } return VAR_4 - VAR_2; }