static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)

{

    int64_t total_size = 0;

    MOVAtom a;

    int i;



    if (atom.size < 0)

        atom.size = INT64_MAX;

    while (total_size + 8 <= atom.size && !url_feof(pb)) {

        int (*parse)(MOVContext*, AVIOContext*, MOVAtom) = NULL;

        a.size = atom.size;

        a.type=0;

        if (atom.size >= 8) {

            a.size = avio_rb32(pb);

            a.type = avio_rl32(pb);

            total_size += 8;

            if (a.size == 1) { /* 64 bit extended size */

                a.size = avio_rb64(pb) - 8;

                total_size += 8;

            }

        }

        av_dlog(c->fc, "type: %08x '%.4s' parent:'%.4s' sz: %"PRId64" %"PRId64" %"PRId64"\n",

                a.type, (char*)&a.type, (char*)&atom.type, a.size, total_size, atom.size);

        if (a.size == 0) {

            a.size = atom.size - total_size + 8;

            if (a.size <= 8)

                break;

        }

        a.size -= 8;

        if (a.size < 0)

            break;

        a.size = FFMIN(a.size, atom.size - total_size);



        for (i = 0; mov_default_parse_table[i].type; i++)

            if (mov_default_parse_table[i].type == a.type) {

                parse = mov_default_parse_table[i].parse;

                break;

            }



        // container is user data

        if (!parse && (atom.type == MKTAG('u','d','t','a') ||

                       atom.type == MKTAG('i','l','s','t')))

            parse = mov_read_udta_string;



        if (!parse) { /* skip leaf atoms data */

            avio_skip(pb, a.size);

        } else {

            int64_t start_pos = avio_tell(pb);

            int64_t left;

            int err = parse(c, pb, a);

            if (err < 0)

                return err;

            if (c->found_moov && c->found_mdat &&

                (!pb->seekable || start_pos + a.size == avio_size(pb)))

                return 0;

            left = a.size - avio_tell(pb) + start_pos;

            if (left > 0) /* skip garbage at atom end */

                avio_skip(pb, left);

        }



        total_size += a.size;

    }



    if (total_size < atom.size && atom.size < 0x7ffff)

        avio_skip(pb, atom.size - total_size);



    return 0;

}

static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)

{

    int64_t total_size = 0;

    MOVAtom a;

    int i;



    if (atom.size < 0)

        atom.size = INT64_MAX;

    while (total_size + 8 <= atom.size && !url_feof(pb)) {

        int (*parse)(MOVContext*, AVIOContext*, MOVAtom) = NULL;

        a.size = atom.size;

        a.type=0;

        if (atom.size >= 8) {

            a.size = avio_rb32(pb);

            a.type = avio_rl32(pb);

            total_size += 8;

            if (a.size == 1) { 

                a.size = avio_rb64(pb) - 8;

                total_size += 8;

            }

        }

        av_dlog(c->fc, "type: %08x '%.4s' parent:'%.4s' sz: %"PRId64" %"PRId64" %"PRId64"\n",

                a.type, (char*)&a.type, (char*)&atom.type, a.size, total_size, atom.size);

        if (a.size == 0) {

            a.size = atom.size - total_size + 8;

            if (a.size <= 8)

                break;

        }

        a.size -= 8;

        if (a.size < 0)

            break;

        a.size = FFMIN(a.size, atom.size - total_size);



        for (i = 0; mov_default_parse_table[i].type; i++)

            if (mov_default_parse_table[i].type == a.type) {

                parse = mov_default_parse_table[i].parse;

                break;

            }



        

        if (!parse && (atom.type == MKTAG('u','d','t','a') ||

                       atom.type == MKTAG('i','l','s','t')))

            parse = mov_read_udta_string;



        if (!parse) { 

            avio_skip(pb, a.size);

        } else {

            int64_t start_pos = avio_tell(pb);

            int64_t left;

            int err = parse(c, pb, a);

            if (err < 0)

                return err;

            if (c->found_moov && c->found_mdat &&

                (!pb->seekable || start_pos + a.size == avio_size(pb)))

                return 0;

            left = a.size - avio_tell(pb) + start_pos;

            if (left > 0) 

                avio_skip(pb, left);

        }



        total_size += a.size;

    }



    if (total_size < atom.size && atom.size < 0x7ffff)

        avio_skip(pb, atom.size - total_size);



    return 0;

}

VAR_6staticVAR_6 VAR_6intVAR_6 VAR_6mov_read_defaultVAR_6(VAR_6MOVContextVAR_6 *VAR_6VAR_0VAR_6, VAR_6AVIOContextVAR_6 *VAR_6VAR_1VAR_6, VAR_6MOVAtomVAR_6 VAR_6VAR_2VAR_6)

{

    VAR_6int64_tVAR_6 VAR_6total_sizeVAR_6 = VAR_60VAR_6;

    VAR_6MOVAtomVAR_6 VAR_6aVAR_6;

    VAR_6intVAR_6 VAR_6VAR_3VAR_6;



    VAR_6ifVAR_6 (VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 < VAR_60VAR_6)

        VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 = VAR_6INT64_MAXVAR_6;

    VAR_6whileVAR_6 (VAR_6total_sizeVAR_6 + VAR_68VAR_6 <= VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 && !VAR_6url_feofVAR_6(VAR_6VAR_1VAR_6)) {

        VAR_6intVAR_6 (*VAR_6VAR_4VAR_6)(VAR_6MOVContextVAR_6*, VAR_6AVIOContextVAR_6*, VAR_6MOVAtomVAR_6) = VAR_6NULLVAR_6;

        VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6VAR_2VAR_6.VAR_6sizeVAR_6;

        VAR_6aVAR_6.VAR_6typeVAR_6=VAR_60VAR_6;

        VAR_6ifVAR_6 (VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 >= VAR_68VAR_6) {

            VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6avio_rb32VAR_6(VAR_6VAR_1VAR_6);

            VAR_6aVAR_6.VAR_6typeVAR_6 = VAR_6avio_rl32VAR_6(VAR_6VAR_1VAR_6);

            VAR_6total_sizeVAR_6 += VAR_68VAR_6;

            VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_61VAR_6) { 

                VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6avio_rb64VAR_6(VAR_6VAR_1VAR_6) - VAR_68VAR_6;

                VAR_6total_sizeVAR_6 += VAR_68VAR_6;

            }

        }

        VAR_6av_dlogVAR_6(VAR_6VAR_0VAR_6->VAR_6fcVAR_6, "VAR_6typeVAR_6: %VAR_608xVAR_6 '%.VAR_64sVAR_6' VAR_6parentVAR_6:'%.VAR_64sVAR_6' VAR_6szVAR_6: %"VAR_6PRId64VAR_6" %"VAR_6PRId64VAR_6" %"VAR_6PRId64VAR_6"\VAR_6nVAR_6",

                VAR_6aVAR_6.VAR_6typeVAR_6, (VAR_6charVAR_6*)&VAR_6aVAR_6.VAR_6typeVAR_6, (VAR_6charVAR_6*)&VAR_6VAR_2VAR_6.VAR_6typeVAR_6, VAR_6aVAR_6.VAR_6sizeVAR_6, VAR_6total_sizeVAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6);

        VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_60VAR_6) {

            VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6 + VAR_68VAR_6;

            VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 <= VAR_68VAR_6)

                VAR_6breakVAR_6;

        }

        VAR_6aVAR_6.VAR_6sizeVAR_6 -= VAR_68VAR_6;

        VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 < VAR_60VAR_6)

            VAR_6breakVAR_6;

        VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6FFMINVAR_6(VAR_6aVAR_6.VAR_6sizeVAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6);



        VAR_6forVAR_6 (VAR_6VAR_3VAR_6 = VAR_60VAR_6; VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6typeVAR_6; VAR_6VAR_3VAR_6++)

            VAR_6ifVAR_6 (VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6typeVAR_6 == VAR_6aVAR_6.VAR_6typeVAR_6) {

                VAR_6VAR_4VAR_6 = VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6VAR_4VAR_6;

                VAR_6breakVAR_6;

            }



        

        VAR_6ifVAR_6 (!VAR_6VAR_4VAR_6 && (VAR_6VAR_2VAR_6.VAR_6typeVAR_6 == VAR_6MKTAGVAR_6('VAR_6uVAR_6','VAR_6dVAR_6','VAR_6tVAR_6','VAR_6aVAR_6') ||

                       VAR_6VAR_2VAR_6.VAR_6typeVAR_6 == VAR_6MKTAGVAR_6('VAR_6VAR_3VAR_6','VAR_6lVAR_6','VAR_6sVAR_6','VAR_6tVAR_6')))

            VAR_6VAR_4VAR_6 = VAR_6mov_read_udta_stringVAR_6;



        VAR_6ifVAR_6 (!VAR_6VAR_4VAR_6) { 

            VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6aVAR_6.VAR_6sizeVAR_6);

        } VAR_6elseVAR_6 {

            VAR_6int64_tVAR_6 VAR_6start_posVAR_6 = VAR_6avio_tellVAR_6(VAR_6VAR_1VAR_6);

            VAR_6int64_tVAR_6 VAR_6leftVAR_6;

            VAR_6intVAR_6 VAR_6errVAR_6 = VAR_6VAR_4VAR_6(VAR_6VAR_0VAR_6, VAR_6VAR_1VAR_6, VAR_6aVAR_6);

            VAR_6ifVAR_6 (VAR_6errVAR_6 < VAR_60VAR_6)

                VAR_6returnVAR_6 VAR_6errVAR_6;

            VAR_6ifVAR_6 (VAR_6VAR_0VAR_6->VAR_6found_moovVAR_6 && VAR_6VAR_0VAR_6->VAR_6found_mdatVAR_6 &&

                (!VAR_6VAR_1VAR_6->VAR_6seekableVAR_6 || VAR_6start_posVAR_6 + VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_6avio_sizeVAR_6(VAR_6VAR_1VAR_6)))

                VAR_6returnVAR_6 VAR_60VAR_6;

            VAR_6leftVAR_6 = VAR_6aVAR_6.VAR_6sizeVAR_6 - VAR_6avio_tellVAR_6(VAR_6VAR_1VAR_6) + VAR_6start_posVAR_6;

            VAR_6ifVAR_6 (VAR_6leftVAR_6 > VAR_60VAR_6) 

                VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6leftVAR_6);

        }



        VAR_6total_sizeVAR_6 += VAR_6aVAR_6.VAR_6sizeVAR_6;

    }



    VAR_6ifVAR_6 (VAR_6total_sizeVAR_6 < VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 && VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 < VAR_60x7ffffVAR_6)

        VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6);



    VAR_6returnVAR_6 VAR_60VAR_6;

}

VAR_6staticVAR_6 VAR_6intVAR_6 VAR_6mov_read_defaultVAR_6(VAR_6MOVContextVAR_6 *VAR_6VAR_0VAR_6, VAR_6AVIOContextVAR_6 *VAR_6VAR_1VAR_6, VAR_6MOVAtomVAR_6 VAR_6VAR_2VAR_6)
{ VAR_6int64_tVAR_6 VAR_6total_sizeVAR_6 = VAR_60VAR_6; VAR_6MOVAtomVAR_6 VAR_6aVAR_6; VAR_6intVAR_6 VAR_6VAR_3VAR_6; VAR_6ifVAR_6 (VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 < VAR_60VAR_6)
VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 = VAR_6INT64_MAXVAR_6; VAR_6whileVAR_6 (VAR_6total_sizeVAR_6 + VAR_68VAR_6 <= VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 && !VAR_6url_feofVAR_6(VAR_6VAR_1VAR_6)) { VAR_6intVAR_6 (*VAR_6VAR_4VAR_6)(VAR_6MOVContextVAR_6*, VAR_6AVIOContextVAR_6*, VAR_6MOVAtomVAR_6) = VAR_6NULLVAR_6; VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6VAR_2VAR_6.VAR_6sizeVAR_6; VAR_6aVAR_6.VAR_6typeVAR_6=VAR_60VAR_6; VAR_6ifVAR_6 (VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 >= VAR_68VAR_6) { VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6avio_rb32VAR_6(VAR_6VAR_1VAR_6); VAR_6aVAR_6.VAR_6typeVAR_6 = VAR_6avio_rl32VAR_6(VAR_6VAR_1VAR_6); VAR_6total_sizeVAR_6 += VAR_68VAR_6; VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_61VAR_6) { VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6avio_rb64VAR_6(VAR_6VAR_1VAR_6) - VAR_68VAR_6; VAR_6total_sizeVAR_6 += VAR_68VAR_6; } } VAR_6av_dlogVAR_6(VAR_6VAR_0VAR_6->VAR_6fcVAR_6, "VAR_6typeVAR_6: %VAR_608xVAR_6 '%.VAR_64sVAR_6' VAR_6parentVAR_6:'%.VAR_64sVAR_6' VAR_6szVAR_6: %"VAR_6PRId64VAR_6" %"VAR_6PRId64VAR_6" %"VAR_6PRId64VAR_6"\VAR_6nVAR_6",
VAR_6aVAR_6.VAR_6typeVAR_6, (VAR_6charVAR_6*)&VAR_6aVAR_6.VAR_6typeVAR_6, (VAR_6charVAR_6*)&VAR_6VAR_2VAR_6.VAR_6typeVAR_6, VAR_6aVAR_6.VAR_6sizeVAR_6, VAR_6total_sizeVAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6); VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_60VAR_6) { VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6 + VAR_68VAR_6; VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 <= VAR_68VAR_6)
VAR_6breakVAR_6; } VAR_6aVAR_6.VAR_6sizeVAR_6 -= VAR_68VAR_6; VAR_6ifVAR_6 (VAR_6aVAR_6.VAR_6sizeVAR_6 < VAR_60VAR_6)
VAR_6breakVAR_6; VAR_6aVAR_6.VAR_6sizeVAR_6 = VAR_6FFMINVAR_6(VAR_6aVAR_6.VAR_6sizeVAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6); VAR_6forVAR_6 (VAR_6VAR_3VAR_6 = VAR_60VAR_6; VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6typeVAR_6; VAR_6VAR_3VAR_6++) VAR_6ifVAR_6 (VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6typeVAR_6 == VAR_6aVAR_6.VAR_6typeVAR_6) { VAR_6VAR_4VAR_6 = VAR_6mov_default_parse_tableVAR_6[VAR_6VAR_3VAR_6].VAR_6VAR_4VAR_6; VAR_6breakVAR_6; } VAR_6ifVAR_6 (!VAR_6VAR_4VAR_6 && (VAR_6VAR_2VAR_6.VAR_6typeVAR_6 == VAR_6MKTAGVAR_6('VAR_6uVAR_6','VAR_6dVAR_6','VAR_6tVAR_6','VAR_6aVAR_6') ||
VAR_6VAR_2VAR_6.VAR_6typeVAR_6 == VAR_6MKTAGVAR_6('VAR_6VAR_3VAR_6','VAR_6lVAR_6','VAR_6sVAR_6','VAR_6tVAR_6')))
VAR_6VAR_4VAR_6 = VAR_6mov_read_udta_stringVAR_6; VAR_6ifVAR_6 (!VAR_6VAR_4VAR_6) { VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6aVAR_6.VAR_6sizeVAR_6); } VAR_6elseVAR_6 { VAR_6int64_tVAR_6 VAR_6start_posVAR_6 = VAR_6avio_tellVAR_6(VAR_6VAR_1VAR_6); VAR_6int64_tVAR_6 VAR_6leftVAR_6; VAR_6intVAR_6 VAR_6errVAR_6 = VAR_6VAR_4VAR_6(VAR_6VAR_0VAR_6, VAR_6VAR_1VAR_6, VAR_6aVAR_6); VAR_6ifVAR_6 (VAR_6errVAR_6 < VAR_60VAR_6)
VAR_6returnVAR_6 VAR_6errVAR_6; VAR_6ifVAR_6 (VAR_6VAR_0VAR_6->VAR_6found_moovVAR_6 && VAR_6VAR_0VAR_6->VAR_6found_mdatVAR_6 &&
(!VAR_6VAR_1VAR_6->VAR_6seekableVAR_6 || VAR_6start_posVAR_6 + VAR_6aVAR_6.VAR_6sizeVAR_6 == VAR_6avio_sizeVAR_6(VAR_6VAR_1VAR_6)))
VAR_6returnVAR_6 VAR_60VAR_6; VAR_6leftVAR_6 = VAR_6aVAR_6.VAR_6sizeVAR_6 - VAR_6avio_tellVAR_6(VAR_6VAR_1VAR_6) + VAR_6start_posVAR_6; VAR_6ifVAR_6 (VAR_6leftVAR_6 > VAR_60VAR_6)
VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6leftVAR_6); } VAR_6total_sizeVAR_6 += VAR_6aVAR_6.VAR_6sizeVAR_6; } VAR_6ifVAR_6 (VAR_6total_sizeVAR_6 < VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 && VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 < VAR_60x7ffffVAR_6)
VAR_6avio_skipVAR_6(VAR_6VAR_1VAR_6, VAR_6VAR_2VAR_6.VAR_6sizeVAR_6 - VAR_6total_sizeVAR_6); VAR_6returnVAR_6 VAR_60VAR_6; }