// File: zeeev[P]DASVC/bamtools/src/api/internal/bam/BamMultiReader_p.cpp
// Function: BamTools::Internal::BamMultiReaderPrivate::ValidateReaders() const
bool BamMultiReaderPrivate::ValidateReaders(void) const {

    m_errorString.clear();

    // skip if 0 or 1 readers opened
    if ( m_readers.empty() || (m_readers.size() == 1) )
        return true;

    // retrieve first reader
    const MergeItem& firstItem = m_readers.front();
    const BamReader* firstReader = firstItem.Reader;
    if ( firstReader == 0 ) return false;

    // retrieve first reader's header data
    const SamHeader& firstReaderHeader = firstReader->GetHeader();
    const string& firstReaderSortOrder = firstReaderHeader.SortOrder;

    // retrieve first reader's reference data
    const RefVector& firstReaderRefData = firstReader->GetReferenceData();
    const int firstReaderRefCount = firstReader->GetReferenceCount();
    const int firstReaderRefSize = firstReaderRefData.size();

    // iterate over all readers
    vector<MergeItem>::const_iterator readerIter = m_readers.begin();
    vector<MergeItem>::const_iterator readerEnd  = m_readers.end();
    for ( ; readerIter != readerEnd; ++readerIter ) {
        const MergeItem& item = (*readerIter);
        BamReader* reader = item.Reader;
        if ( reader == 0 ) continue;

        // get current reader's header data
        const SamHeader& currentReaderHeader = reader->GetHeader();
        const string& currentReaderSortOrder = currentReaderHeader.SortOrder;

        // check compatible sort order
        if ( currentReaderSortOrder != firstReaderSortOrder ) {
            const string message = string("mismatched sort order in ") + reader->GetFilename() +
                                   ", expected " + firstReaderSortOrder +
                                   ", but found " + currentReaderSortOrder;
            SetErrorString("BamMultiReader::ValidateReaders", message);
            return false;
        }

        // get current reader's reference data
        const RefVector currentReaderRefData = reader->GetReferenceData();
        const int currentReaderRefCount = reader->GetReferenceCount();
        const int currentReaderRefSize  = currentReaderRefData.size();

        // init reference data iterators
        RefVector::const_iterator firstRefIter   = firstReaderRefData.begin();
        RefVector::const_iterator firstRefEnd    = firstReaderRefData.end();
        RefVector::const_iterator currentRefIter = currentReaderRefData.begin();

        // compare reference counts from BamReader ( & container size, in case of BR error)
        if ( (currentReaderRefCount != firstReaderRefCount) ||
             (firstReaderRefSize    != currentReaderRefSize) )
        {
            stringstream s("");
            s << "mismatched reference count in " << reader->GetFilename()
              << ", expected " << firstReaderRefCount
              << ", but found " << currentReaderRefCount;
            SetErrorString("BamMultiReader::ValidateReaders", s.str());
            return false;
        }

        // this will be ok; we just checked above that we have identically-sized sets of references
        // here we simply check if they are all, in fact, equal in content
        while ( firstRefIter != firstRefEnd ) {
            const RefData& firstRef   = (*firstRefIter);
            const RefData& currentRef = (*currentRefIter);

            // compare reference name & length
            if ( (firstRef.RefName   != currentRef.RefName) ||
                 (firstRef.RefLength != currentRef.RefLength) )
            {
                stringstream s("");
                s << "mismatched references found in" << reader->GetFilename()
                  << "expected: " << endl;

                // print first reader's reference data
                RefVector::const_iterator refIter = firstReaderRefData.begin();
                RefVector::const_iterator refEnd  = firstReaderRefData.end();
                for ( ; refIter != refEnd; ++refIter ) {
                    const RefData& entry = (*refIter);
                    stringstream s("");
                    s << entry.RefName << " " << endl;
                }

                s << "but found: " << endl;

                // print current reader's reference data
                refIter = currentReaderRefData.begin();
                refEnd  = currentReaderRefData.end();
                for ( ; refIter != refEnd; ++refIter ) {
                    const RefData& entry = (*refIter);
                    s << entry.RefName << " " << entry.RefLength << endl;
                }

                SetErrorString("BamMultiReader::ValidateReaders", s.str());
                return false;
            }

            // update iterators
            ++firstRefIter;
            ++currentRefIter;
        }
    }

    // if we get here, everything checks out
    return true;
}

// Assembly:
subq $0xc38, %rsp            # imm = 0xC38
movq %rdi, 0xc28(%rsp)
movq 0xc28(%rsp), %rdi
movq %rdi, 0x198(%rsp)
addq $0x28, %rdi
callq 0x78800
movq 0x198(%rsp), %rdi
callq 0x764e0
testb $0x1, %al
jne 0xa09fc
movq 0x198(%rsp), %rdi
callq 0x79560
cmpq $0x1, %rax
jne 0xa0a09
movb $0x1, 0xc37(%rsp)
jmp 0xa1ba7
movq 0x198(%rsp), %rdi
callq 0x74af0
movq %rax, 0xc20(%rsp)
movq 0xc20(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xc18(%rsp)
cmpq $0x0, 0xc18(%rsp)
jne 0xa0a49
movb $0x0, 0xc37(%rsp)
jmp 0xa1ba7
movq 0xc18(%rsp), %rsi
leaq 0xab8(%rsp), %rdi
movq %rdi, 0x188(%rsp)
callq 0x78a30
movq 0x188(%rsp), %rax
movq %rax, 0xc10(%rsp)
movq 0xc10(%rsp), %rax
addq $0x20, %rax
movq %rax, 0xab0(%rsp)
movq 0xc18(%rsp), %rdi
callq 0x713d0
movq %rax, 0x190(%rsp)
jmp 0xa0aa1
movq 0x190(%rsp), %rax
movq %rax, 0xaa8(%rsp)
movq 0xc18(%rsp), %rdi
callq 0x73420
movl %eax, 0x184(%rsp)
jmp 0xa0ac7
movl 0x184(%rsp), %eax
movl %eax, 0xa98(%rsp)
movq 0xaa8(%rsp), %rdi
callq 0x71440
movq %rax, 0x178(%rsp)
jmp 0xa0aec
movq 0x198(%rsp), %rdi
movq 0x178(%rsp), %rax
movl %eax, 0xa94(%rsp)
callq 0x7c190
movq %rax, 0x170(%rsp)
jmp 0xa0b12
movq 0x198(%rsp), %rdi
movq 0x170(%rsp), %rax
movq %rax, 0xa88(%rsp)
callq 0x7a500
movq %rax, 0x168(%rsp)
jmp 0xa0b39
movq 0x168(%rsp), %rax
movq %rax, 0xa80(%rsp)
leaq 0xa88(%rsp), %rdi
leaq 0xa80(%rsp), %rsi
callq 0x732a0
movb %al, 0x167(%rsp)
jmp 0xa0b67
movb 0x167(%rsp), %al
testb $0x1, %al
jne 0xa0b77
jmp 0xa1b74
leaq 0xa88(%rsp), %rdi
callq 0x7aa50
movq %rax, 0x158(%rsp)
jmp 0xa0b8e
movq 0x158(%rsp), %rax
movq %rax, 0xa78(%rsp)
movq 0xa78(%rsp), %rax
movq (%rax), %rax
movq %rax, 0xa70(%rsp)
cmpq $0x0, 0xa70(%rsp)
jne 0xa0bda
jmp 0xa1b3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1b96
movq 0xa70(%rsp), %rsi
leaq 0x910(%rsp), %rdi
callq 0x78a30
jmp 0xa0bf1
leaq 0x910(%rsp), %rax
movq %rax, 0xa68(%rsp)
movq 0xa68(%rsp), %rax
addq $0x20, %rax
movq %rax, 0x908(%rsp)
movq 0x908(%rsp), %rdi
movq 0xab0(%rsp), %rsi
callq 0x7ba70
movb %al, 0x157(%rsp)
jmp 0xa0c33
movb 0x157(%rsp), %al
testb $0x1, %al
jne 0xa0c43
jmp 0xa0fb3
leaq 0x847(%rsp), %rdi
movq %rdi, 0x148(%rsp)
callq 0x7b5f0
movq 0x148(%rsp), %rdx
leaq 0x49cc4(%rip), %rsi     # 0xea92b
leaq 0x848(%rsp), %rdi
callq 0x78e70
jmp 0xa0c76
movq 0xa70(%rsp), %rsi
leaq 0x820(%rsp), %rdi
callq 0x741b0
jmp 0xa0c8d
leaq 0x868(%rsp), %rdi
leaq 0x848(%rsp), %rsi
leaq 0x820(%rsp), %rdx
callq 0x7c720
jmp 0xa0cac
leaq 0x49c92(%rip), %rdx     # 0xea945
leaq 0x888(%rsp), %rdi
leaq 0x868(%rsp), %rsi
callq 0x785a0
jmp 0xa0cca
movq 0xab0(%rsp), %rdx
leaq 0x8a8(%rsp), %rdi
leaq 0x888(%rsp), %rsi
callq 0x7c720
jmp 0xa0ce9
leaq 0x49c61(%rip), %rdx     # 0xea951
leaq 0x8c8(%rsp), %rdi
leaq 0x8a8(%rsp), %rsi
callq 0x785a0
jmp 0xa0d07
movq 0x908(%rsp), %rdx
leaq 0x8e8(%rsp), %rdi
leaq 0x8c8(%rsp), %rsi
callq 0x7c720
jmp 0xa0d26
leaq 0x8c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d35
leaq 0x8a8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d44
leaq 0x888(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d53
leaq 0x868(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d62
leaq 0x820(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d71
leaq 0x848(%rsp), %rdi
callq 0x7cce8
jmp 0xa0d80
leaq 0x847(%rsp), %rdi
callq 0x76f80
leaq 0x7ff(%rsp), %rdi
movq %rdi, 0x140(%rsp)
callq 0x7b5f0
movq 0x140(%rsp), %rdx
leaq 0x49bad(%rip), %rsi     # 0xea95e
leaq 0x800(%rsp), %rdi
callq 0x78e70
jmp 0xa0dc0
movq 0x198(%rsp), %rdi
leaq 0x800(%rsp), %rsi
leaq 0x8e8(%rsp), %rdx
callq 0x77c30
jmp 0xa0ddf
leaq 0x800(%rsp), %rdi
callq 0x7cce8
jmp 0xa0dee
leaq 0x7ff(%rsp), %rdi
callq 0x76f80
movb $0x0, 0xc37(%rsp)
movl $0x1, 0x7f8(%rsp)
leaq 0x8e8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0fa9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1b63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0f40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0f2f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0f0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0efc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0eeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x8c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0ee9
jmp 0xa0eeb
leaq 0x8a8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0efa
jmp 0xa0efc
leaq 0x888(%rsp), %rdi
callq 0x7cce8
jmp 0xa0f0b
jmp 0xa0f0d
leaq 0x868(%rsp), %rdi
callq 0x7cce8
jmp 0xa0f1c
jmp 0xa0f1e
leaq 0x820(%rsp), %rdi
callq 0x7cce8
jmp 0xa0f2d
jmp 0xa0f2f
leaq 0x848(%rsp), %rdi
callq 0x7cce8
jmp 0xa0f3e
jmp 0xa0f40
leaq 0x847(%rsp), %rdi
callq 0x76f80
jmp 0xa1b63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa0f8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x800(%rsp), %rdi
callq 0x7cce8
jmp 0xa0f8b
jmp 0xa0f8d
leaq 0x7ff(%rsp), %rdi
callq 0x76f80
leaq 0x8e8(%rsp), %rdi
callq 0x7cce8
jmp 0xa0fae
jmp 0xa1b20
jmp 0xa1b63
movq 0xa70(%rsp), %rdi
callq 0x713d0
movq %rax, 0x138(%rsp)
jmp 0xa0fca
movq 0x138(%rsp), %rsi
leaq 0x7e0(%rsp), %rdi
callq 0x7ae00
jmp 0xa0fe1
movq 0xa70(%rsp), %rdi
callq 0x73420
movl %eax, 0x134(%rsp)
jmp 0xa0ff7
movl 0x134(%rsp), %eax
movl %eax, 0x7dc(%rsp)
leaq 0x7e0(%rsp), %rdi
callq 0x71440
movq %rax, 0x128(%rsp)
jmp 0xa101c
movq 0x128(%rsp), %rax
movl %eax, 0x7d8(%rsp)
movq 0xaa8(%rsp), %rdi
callq 0x71f60
movq %rax, 0x120(%rsp)
jmp 0xa1042
movq 0x120(%rsp), %rax
movq %rax, 0x7d0(%rsp)
movq 0xaa8(%rsp), %rdi
callq 0x77310
movq %rax, 0x118(%rsp)
jmp 0xa1069
movq 0x118(%rsp), %rax
movq %rax, 0x7c8(%rsp)
leaq 0x7e0(%rsp), %rdi
callq 0x71f60
movq %rax, 0x110(%rsp)
jmp 0xa1090
movq 0x110(%rsp), %rax
movq %rax, 0x7c0(%rsp)
movl 0x7dc(%rsp), %eax
cmpl 0xa98(%rsp), %eax
jne 0xa10c4
movl 0xa94(%rsp), %eax
cmpl 0x7d8(%rsp), %eax
je 0xa1403
leaq 0x617(%rsp), %rdi
movq %rdi, 0x108(%rsp)
callq 0x7b5f0
movq 0x108(%rsp), %rdx
leaq 0x49ff4(%rip), %rsi     # 0xeb0dc
leaq 0x618(%rsp), %rdi
callq 0x78e70
jmp 0xa10f7
movl $0x10, %edi
movl $0x8, %esi
callq 0x7b8d0
movl %eax, 0x104(%rsp)
jmp 0xa110f
movl 0x104(%rsp), %edx
leaq 0x638(%rsp), %rdi
leaq 0x618(%rsp), %rsi
callq 0x7a4b0
jmp 0xa112d
leaq 0x618(%rsp), %rdi
callq 0x7cce8
jmp 0xa113c
leaq 0x617(%rsp), %rdi
callq 0x76f80
leaq 0x648(%rsp), %rdi
leaq 0x49826(%rip), %rsi     # 0xea97e
callq 0x768e0
movq %rax, 0xf8(%rsp)
jmp 0xa1167
movq 0xa70(%rsp), %rsi
leaq 0x5f0(%rsp), %rdi
callq 0x741b0
jmp 0xa117e
movq 0xf8(%rsp), %rdi
leaq 0x5f0(%rsp), %rsi
callq 0x75e40
movq %rax, 0xf0(%rsp)
jmp 0xa119d
movq 0xf0(%rsp), %rdi
leaq 0x49799(%rip), %rsi     # 0xea945
callq 0x768e0
movq %rax, 0xe8(%rsp)
jmp 0xa11bb
movq 0xe8(%rsp), %rdi
movl 0xa98(%rsp), %esi
callq 0x7b150
movq %rax, 0xe0(%rsp)
jmp 0xa11d9
movq 0xe0(%rsp), %rdi
leaq 0x49769(%rip), %rsi     # 0xea951
callq 0x768e0
movq %rax, 0xd8(%rsp)
jmp 0xa11f7
movq 0xd8(%rsp), %rdi
movl 0x7dc(%rsp), %esi
callq 0x7b150
jmp 0xa120d
leaq 0x5f0(%rsp), %rdi
callq 0x7cce8
jmp 0xa121c
leaq 0x5cf(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x7b5f0
movq 0xd0(%rsp), %rdx
leaq 0x4971e(%rip), %rsi     # 0xea95e
leaq 0x5d0(%rsp), %rdi
callq 0x78e70
jmp 0xa124f
leaq 0x5a8(%rsp), %rdi
leaq 0x638(%rsp), %rsi
callq 0x76880
jmp 0xa1266
movq 0x198(%rsp), %rdi
leaq 0x5d0(%rsp), %rsi
leaq 0x5a8(%rsp), %rdx
callq 0x77c30
jmp 0xa1285
leaq 0x5a8(%rsp), %rdi
callq 0x7cce8
jmp 0xa1294
leaq 0x5d0(%rsp), %rdi
callq 0x7cce8
jmp 0xa12a3
leaq 0x5cf(%rsp), %rdi
callq 0x76f80
movb $0x0, 0xc37(%rsp)
movl $0x1, 0x7f8(%rsp)
leaq 0x638(%rsp), %rdi
callq 0x74f60
jmp 0xa13ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1b52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1329
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x618(%rsp), %rdi
callq 0x7cce8
jmp 0xa1327
jmp 0xa1329
leaq 0x617(%rsp), %rdi
callq 0x76f80
jmp 0xa1b52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa13ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x5f0(%rsp), %rdi
callq 0x7cce8
jmp 0xa1377
jmp 0xa13ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa13db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa13ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x5a8(%rsp), %rdi
callq 0x7cce8
jmp 0xa13c8
jmp 0xa13ca
leaq 0x5d0(%rsp), %rdi
callq 0x7cce8
jmp 0xa13d9
jmp 0xa13db
leaq 0x5cf(%rsp), %rdi
callq 0x76f80
jmp 0xa13ef
jmp 0xa1b0f
leaq 0x638(%rsp), %rdi
callq 0x74f60
jmp 0xa13fe
jmp 0xa1b52
jmp 0xa1405
leaq 0x7d0(%rsp), %rdi
leaq 0x7c8(%rsp), %rsi
callq 0x78c70
movb %al, 0xcf(%rsp)
jmp 0xa1423
movb 0xcf(%rsp), %al
testb $0x1, %al
jne 0xa1433
jmp 0xa1b04
leaq 0x7d0(%rsp), %rdi
callq 0x74b80
movq %rax, 0xc0(%rsp)
jmp 0xa144a
movq 0xc0(%rsp), %rax
movq %rax, 0x5a0(%rsp)
leaq 0x7c0(%rsp), %rdi
callq 0x74b80
movq %rax, 0xb8(%rsp)
jmp 0xa1471
movq 0xb8(%rsp), %rax
movq %rax, 0x598(%rsp)
movq 0x5a0(%rsp), %rdi
movq 0x598(%rsp), %rsi
callq 0x7ba70
movb %al, 0xb7(%rsp)
jmp 0xa149f
movb 0xb7(%rsp), %al
testb $0x1, %al
jne 0xa14c8
jmp 0xa14ac
movq 0x5a0(%rsp), %rax
movl 0x20(%rax), %eax
movq 0x598(%rsp), %rcx
cmpl 0x20(%rcx), %eax
je 0xa1ae1
leaq 0x3ef(%rsp), %rdi
movq %rdi, 0xa8(%rsp)
callq 0x7b5f0
movq 0xa8(%rsp), %rdx
leaq 0x49bf0(%rip), %rsi     # 0xeb0dc
leaq 0x3f0(%rsp), %rdi
callq 0x78e70
jmp 0xa14fb
movl $0x10, %edi
movl $0x8, %esi
callq 0x7b8d0
movl %eax, 0xa4(%rsp)
jmp 0xa1513
movl 0xa4(%rsp), %edx
leaq 0x410(%rsp), %rdi
leaq 0x3f0(%rsp), %rsi
callq 0x7a4b0
jmp 0xa1531
leaq 0x3f0(%rsp), %rdi
callq 0x7cce8
jmp 0xa1540
leaq 0x3ef(%rsp), %rdi
callq 0x76f80
leaq 0x420(%rsp), %rdi
leaq 0x49441(%rip), %rsi     # 0xea99d
callq 0x768e0
movq %rax, 0x98(%rsp)
jmp 0xa156b
movq 0xa70(%rsp), %rsi
leaq 0x3c8(%rsp), %rdi
callq 0x741b0
jmp 0xa1582
movq 0x98(%rsp), %rdi
leaq 0x3c8(%rsp), %rsi
callq 0x75e40
movq %rax, 0x90(%rsp)
jmp 0xa15a1
movq 0x90(%rsp), %rdi
leaq 0x4940c(%rip), %rsi     # 0xea9bc
callq 0x768e0
movq %rax, 0x88(%rsp)
jmp 0xa15bf
movq 0x88(%rsp), %rdi
movq 0x7094a(%rip), %rsi     # 0x111f18
callq 0x76cc0
jmp 0xa15d5
leaq 0x3c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa15e4
movq 0xaa8(%rsp), %rdi
callq 0x71f60
movq %rax, 0x80(%rsp)
jmp 0xa15fb
movq 0x80(%rsp), %rax
movq %rax, 0x3c0(%rsp)
movq 0xaa8(%rsp), %rdi
callq 0x77310
movq %rax, 0x78(%rsp)
jmp 0xa161f
movq 0x78(%rsp), %rax
movq %rax, 0x3b8(%rsp)
leaq 0x3c0(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0x78c70
movb %al, 0x77(%rsp)
jmp 0xa1647
movb 0x77(%rsp), %al
testb $0x1, %al
jne 0xa1654
jmp 0xa185d
leaq 0x3c0(%rsp), %rdi
callq 0x74b80
movq %rax, 0x68(%rsp)
jmp 0xa1668
movq 0x68(%rsp), %rax
movq %rax, 0x3b0(%rsp)
leaq 0x207(%rsp), %rdi
movq %rdi, 0x60(%rsp)
callq 0x7b5f0
movq 0x60(%rsp), %rdx
leaq 0x49a49(%rip), %rsi     # 0xeb0dc
leaq 0x208(%rsp), %rdi
callq 0x78e70
jmp 0xa16a2
movl $0x10, %edi
movl $0x8, %esi
callq 0x7b8d0
movl %eax, 0x5c(%rsp)
jmp 0xa16b7
movl 0x5c(%rsp), %edx
leaq 0x228(%rsp), %rdi
leaq 0x208(%rsp), %rsi
callq 0x7a4b0
jmp 0xa16d2
leaq 0x208(%rsp), %rdi
callq 0x7cce8
jmp 0xa16e1
leaq 0x207(%rsp), %rdi
callq 0x76f80
leaq 0x238(%rsp), %rdi
movq 0x3b0(%rsp), %rsi
callq 0x75e40
movq %rax, 0x50(%rsp)
jmp 0xa170a
movq 0x50(%rsp), %rdi
leaq 0x49c5a(%rip), %rsi     # 0xeb370
callq 0x768e0
movq %rax, 0x48(%rsp)
jmp 0xa1722
movq 0x48(%rsp), %rdi
movq 0x707ea(%rip), %rsi     # 0x111f18
callq 0x76cc0
jmp 0xa1735
leaq 0x228(%rsp), %rdi
callq 0x74f60
jmp 0xa1744
jmp 0xa1746
leaq 0x3c0(%rsp), %rdi
callq 0x74d20
jmp 0xa1755
jmp 0xa162c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1795
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x3f0(%rsp), %rdi
callq 0x7cce8
jmp 0xa1793
jmp 0xa1795
leaq 0x3ef(%rsp), %rdi
callq 0x76f80
jmp 0xa1b52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1ad0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x3c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa17e3
jmp 0xa1ad0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1823
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x208(%rsp), %rdi
callq 0x7cce8
jmp 0xa1821
jmp 0xa1823
leaq 0x207(%rsp), %rdi
callq 0x76f80
jmp 0xa1ad0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x228(%rsp), %rdi
callq 0x74f60
jmp 0xa1858
jmp 0xa1ad0
leaq 0x420(%rsp), %rdi
leaq 0x4915b(%rip), %rsi     # 0xea9c7
callq 0x768e0
movq %rax, 0x40(%rsp)
jmp 0xa1878
movq 0x40(%rsp), %rdi
movq 0x70694(%rip), %rsi     # 0x111f18
callq 0x76cc0
jmp 0xa188b
leaq 0x7e0(%rsp), %rdi
callq 0x71f60
movq %rax, 0x38(%rsp)
jmp 0xa189f
movq 0x38(%rsp), %rax
movq %rax, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
movq %rax, 0x3c0(%rsp)
leaq 0x7e0(%rsp), %rdi
callq 0x77310
movq %rax, 0x30(%rsp)
jmp 0xa18d0
movq 0x30(%rsp), %rax
movq %rax, 0x1f0(%rsp)
movq 0x1f0(%rsp), %rax
movq %rax, 0x3b8(%rsp)
leaq 0x3c0(%rsp), %rdi
leaq 0x3b8(%rsp), %rsi
callq 0x78c70
movb %al, 0x2f(%rsp)
jmp 0xa1908
movb 0x2f(%rsp), %al
testb $0x1, %al
jne 0xa1915
jmp 0xa19af
leaq 0x3c0(%rsp), %rdi
callq 0x74b80
movq %rax, 0x20(%rsp)
jmp 0xa1929
movq 0x20(%rsp), %rax
movq %rax, 0x1e8(%rsp)
leaq 0x420(%rsp), %rdi
movq 0x1e8(%rsp), %rsi
callq 0x75e40
movq %rax, 0x18(%rsp)
jmp 0xa1952
movq 0x18(%rsp), %rdi
leaq 0x49a12(%rip), %rsi     # 0xeb370
callq 0x768e0
movq %rax, 0x10(%rsp)
jmp 0xa196a
movq 0x10(%rsp), %rdi
movq 0x1e8(%rsp), %rax
movl 0x20(%rax), %esi
callq 0x7b150
movq %rax, 0x8(%rsp)
jmp 0xa1986
movq 0x8(%rsp), %rdi
movq 0x70586(%rip), %rsi     # 0x111f18
callq 0x76cc0
jmp 0xa1999
jmp 0xa199b
leaq 0x3c0(%rsp), %rdi
callq 0x74d20
jmp 0xa19aa
jmp 0xa18ed
leaq 0x1c7(%rsp), %rdi
movq %rdi, (%rsp)
callq 0x7b5f0
movq (%rsp), %rdx
leaq 0x48f93(%rip), %rsi     # 0xea95e
leaq 0x1c8(%rsp), %rdi
callq 0x78e70
jmp 0xa19da
leaq 0x1a0(%rsp), %rdi
leaq 0x410(%rsp), %rsi
callq 0x76880
jmp 0xa19f1
movq 0x198(%rsp), %rdi
leaq 0x1c8(%rsp), %rsi
leaq 0x1a0(%rsp), %rdx
callq 0x77c30
jmp 0xa1a10
leaq 0x1a0(%rsp), %rdi
callq 0x7cce8
jmp 0xa1a1f
leaq 0x1c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa1a2e
leaq 0x1c7(%rsp), %rdi
callq 0x76f80
movb $0x0, 0xc37(%rsp)
movl $0x1, 0x7f8(%rsp)
leaq 0x410(%rsp), %rdi
callq 0x74f60
jmp 0xa1ace
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1abf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
jmp 0xa1aae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xaa0(%rsp)
movl %eax, 0xa9c(%rsp)
leaq 0x1a0(%rsp), %rdi
callq 0x7cce8
jmp 0xa1aac
jmp 0xa1aae
leaq 0x1c8(%rsp), %rdi
callq 0x7cce8
jmp 0xa1abd
jmp 0xa1abf
leaq 0x1c7(%rsp), %rdi
callq 0x76f80
jmp 0xa1ad0
jmp 0xa1b0f
leaq 0x410(%rsp), %rdi
callq 0x74f60
jmp 0xa1adf
jmp 0xa1b52
leaq 0x7d0(%rsp), %rdi
callq 0x74d20
jmp 0xa1af0
leaq 0x7c0(%rsp), %rdi
callq 0x74d20
jmp 0xa1aff
jmp 0xa1405
movl $0x0, 0x7f8(%rsp)
leaq 0x7e0(%rsp), %rdi
callq 0x72b30
jmp 0xa1b1e
jmp 0xa1b20
leaq 0x910(%rsp), %rdi
callq 0x766b0
jmp 0xa1b2f
movl 0x7f8(%rsp), %eax
testl %eax, %eax
jne 0xa1b87
jmp 0xa1b3c
jmp 0xa1b3e
leaq 0xa88(%rsp), %rdi
callq 0x717c0
jmp 0xa1b4d
jmp 0xa0b49
leaq 0x7e0(%rsp), %rdi
callq 0x72b30
jmp 0xa1b61
jmp 0xa1b63
leaq 0x910(%rsp), %rdi
callq 0x766b0
jmp 0xa1b72
jmp 0xa1b96
movb $0x1, 0xc37(%rsp)
movl $0x1, 0x7f8(%rsp)
leaq 0xab8(%rsp), %rdi
callq 0x766b0
jmp 0xa1ba7
leaq 0xab8(%rsp), %rdi
callq 0x766b0
jmp 0xa1ba5
jmp 0xa1bb8
movb 0xc37(%rsp), %al
andb $0x1, %al
addq $0xc38, %rsp            # imm = 0xC38
retq
movq 0xaa0(%rsp), %rdi
callq 0x7b550
movq %rax, %rdi
callq 0x88ef0
nopl (%rax)