int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size)
{
    int len;
    len = s->buf_end - s->buf_ptr;
    if (len == 0) {
        fill_buffer(s);
        len = s->buf_end - s->buf_ptr;
    }
    if (len > size)
        len = size;
    memcpy(buf, s->buf_ptr, len);
    s->buf_ptr += len;
    return len;
}
int get_partial_buffer(ByteIOContext *s, unsigned char *buf, int size)
{
    int len;
    len = s->buf_end - s->buf_ptr;
    if (len == 0) {
        fill_buffer(s);
        len = s->buf_end - s->buf_ptr;
    }
    if (len > size)
        len = size;
    memcpy(buf, s->buf_ptr, len);
    s->buf_ptr += len;
    return len;
}
int FUNC_0(ByteIOContext *VAR_0, unsigned char *VAR_1, int VAR_2)
{
    int VAR_3;
    VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr;
    if (VAR_3 == 0) {
        fill_buffer(VAR_0);
        VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr;
    }
    if (VAR_3 > VAR_2)
        VAR_3 = VAR_2;
    memcpy(VAR_1, VAR_0->buf_ptr, VAR_3);
    VAR_0->buf_ptr += VAR_3;
    return VAR_3;
}
int FUNC_0(ByteIOContext *VAR_0, unsigned char *VAR_1, int VAR_2)
{ int VAR_3; VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr; if (VAR_3 == 0) { fill_buffer(VAR_0); VAR_3 = VAR_0->buf_end - VAR_0->buf_ptr; } if (VAR_3 > VAR_2)
VAR_3 = VAR_2; memcpy(VAR_1, VAR_0->buf_ptr, VAR_3); VAR_0->buf_ptr += VAR_3; return VAR_3; }