int avio_get_str(AVIOContext *s, int maxlen, char *buf, int buflen)

{

    int i;



    // reserve 1 byte for terminating 0

    buflen = FFMIN(buflen - 1, maxlen);

    for (i = 0; i < buflen; i++)

        if (!(buf[i] = avio_r8(s)))

            return i + 1;

    if (buflen)

        buf[i] = 0;

    for (; i < maxlen; i++)

        if (!avio_r8(s))

            return i + 1;

    return maxlen;

}

int avio_get_str(AVIOContext *s, int maxlen, char *buf, int buflen)

{

    int i;



    

    buflen = FFMIN(buflen - 1, maxlen);

    for (i = 0; i < buflen; i++)

        if (!(buf[i] = avio_r8(s)))

            return i + 1;

    if (buflen)

        buf[i] = 0;

    for (; i < maxlen; i++)

        if (!avio_r8(s))

            return i + 1;

    return maxlen;

}

int FUNC_0(AVIOContext *VAR_0, int VAR_1, char *VAR_2, int VAR_3)

{

    int VAR_4;



    

    VAR_3 = FFMIN(VAR_3 - 1, VAR_1);

    for (VAR_4 = 0; VAR_4 < VAR_3; VAR_4++)

        if (!(VAR_2[VAR_4] = avio_r8(VAR_0)))

            return VAR_4 + 1;

    if (VAR_3)

        VAR_2[VAR_4] = 0;

    for (; VAR_4 < VAR_1; VAR_4++)

        if (!avio_r8(VAR_0))

            return VAR_4 + 1;

    return VAR_1;

}

int FUNC_0(AVIOContext *VAR_0, int VAR_1, char *VAR_2, int VAR_3)
{ int VAR_4; VAR_3 = FFMIN(VAR_3 - 1, VAR_1); for (VAR_4 = 0; VAR_4 < VAR_3; VAR_4++) if (!(VAR_2[VAR_4] = avio_r8(VAR_0)))
return VAR_4 + 1; if (VAR_3)
VAR_2[VAR_4] = 0; for (; VAR_4 < VAR_1; VAR_4++) if (!avio_r8(VAR_0))
return VAR_4 + 1; return VAR_1; }