// File: zeeev[P]DASVC/bamtools/src/toolkit/bamtools_convert.cpp
// Function: BamTools::ConvertTool::ConvertToolPrivate::PrintYaml(BamTools::BamAlignment const&)
void ConvertTool::ConvertToolPrivate::PrintYaml(const BamAlignment& a) {

    // write alignment name
    m_out << "---" << endl;
    m_out << a.Name << ":" << endl;

    // write alignment data
    m_out << "   " << "AlndBases: "     << a.AlignedBases << endl;
    m_out << "   " << "Qualities: "     << a.Qualities << endl;
    m_out << "   " << "Name: "          << a.Name << endl;
    m_out << "   " << "Length: "        << a.Length << endl;
    m_out << "   " << "TagData: "       << a.TagData << endl;
    m_out << "   " << "RefID: "         << a.RefID << endl;
    m_out << "   " << "RefName: "       << m_references[a.RefID].RefName << endl;
    m_out << "   " << "Position: "      << a.Position << endl;
    m_out << "   " << "Bin: "           << a.Bin << endl;
    m_out << "   " << "MapQuality: "    << a.MapQuality << endl;
    m_out << "   " << "AlignmentFlag: " << a.AlignmentFlag << endl;
    m_out << "   " << "MateRefID: "     << a.MateRefID << endl;
    m_out << "   " << "MatePosition: "  << a.MatePosition << endl;
    m_out << "   " << "InsertSize: "    << a.InsertSize << endl;
    m_out << "   " << "Filename: "      << a.Filename << endl;

    // write Cigar data
    const vector<CigarOp>& cigarData = a.CigarData;
    if ( !cigarData.empty() ) {
        m_out << "   " <<  "Cigar: ";
        vector<CigarOp>::const_iterator cigarBegin = cigarData.begin();
        vector<CigarOp>::const_iterator cigarIter  = cigarBegin;
        vector<CigarOp>::const_iterator cigarEnd   = cigarData.end();
        for ( ; cigarIter != cigarEnd; ++cigarIter ) {
            const CigarOp& op = (*cigarIter);
            m_out << op.Length << op.Type;
        }
        m_out << endl;
    }
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq %rdi, 0x8(%rsp)
addq $0x20, %rdi
leaq 0xa03af(%rip), %rsi     # 0x12e512
callq 0x86700
movq %rax, %rdi
movq 0xd6dfe(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
movq 0x38(%rsp), %rsi
callq 0x86640
movq %rax, %rdi
leaq 0xa032d(%rip), %rsi     # 0x12e4c1
callq 0x86700
movq %rax, %rdi
movq 0xd6dcd(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa54a9(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa034f(%rip), %rsi     # 0x12e516
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rsi
addq $0x48, %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd6d89(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5465(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0317(%rip), %rsi     # 0x12e522
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rsi
addq $0x68, %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd6d45(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5421(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa02f5(%rip), %rsi     # 0x12e544
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd6d05(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa53e1(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa029f(%rip), %rsi     # 0x12e52e
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0x20(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd6cc2(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa539e(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0265(%rip), %rsi     # 0x12e537
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rsi
addq $0x88, %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd6c7b(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5357(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0259(%rip), %rsi     # 0x12e572
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xa8(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd6c35(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5311(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa01e2(%rip), %rsi     # 0x12e541
callq 0x86700
movq 0x8(%rsp), %rdi
movq %rax, (%rsp)
addq $0x8, %rdi
movq 0x38(%rsp), %rax
movslq 0xa8(%rax), %rsi
callq 0x91720
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd6bd8(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa52b4(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa01c2(%rip), %rsi     # 0x12e57e
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xac(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd6b92(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa526e(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0149(%rip), %rsi     # 0x12e54b
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movzwl 0xb0(%rax), %esi
callq 0x86cb0
movq %rax, %rdi
movq 0xd6b4b(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5227(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0108(%rip), %rsi     # 0x12e551
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movzwl 0xb2(%rax), %esi
callq 0x86cb0
movq %rax, %rdi
movq 0xd6b04(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa51e0(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa00ce(%rip), %rsi     # 0x12e55e
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xb4(%rax), %esi
callq 0x869c0
movq %rax, %rdi
movq 0xd6abe(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa519a(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0098(%rip), %rsi     # 0x12e56e
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xd0(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd6a78(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa5154(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa005e(%rip), %rsi     # 0x12e57a
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xd4(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd6a32(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa510e(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0xa0027(%rip), %rsi     # 0x12e589
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rax
movl 0xd8(%rax), %esi
callq 0x86d40
movq %rax, %rdi
movq 0xd69ec(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa50c8(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0x9ffee(%rip), %rsi     # 0x12e596
callq 0x86700
movq %rax, %rdi
movq 0x38(%rsp), %rsi
addq $0xe0, %rsi
callq 0x86640
movq %rax, %rdi
movq 0xd69a5(%rip), %rsi     # 0x164f70
callq 0x86770
movq 0x38(%rsp), %rax
addq $0xb8, %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
callq 0x91740
testb $0x1, %al
jne 0x8e6a9
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
leaq 0xa505f(%rip), %rsi     # 0x133661
callq 0x86700
movq %rax, %rdi
leaq 0x9ff90(%rip), %rsi     # 0x12e5a1
callq 0x86700
movq 0x30(%rsp), %rdi
callq 0x91790
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rdi
callq 0x917c0
movq %rax, 0x18(%rsp)
leaq 0x20(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x917f0
testb $0x1, %al
jne 0x8e653
jmp 0x8e694
leaq 0x20(%rsp), %rdi
callq 0x91830
movq 0x8(%rsp), %rdi
movq %rax, 0x10(%rsp)
addq $0x20, %rdi
movq 0x10(%rsp), %rax
movl 0x4(%rax), %esi
callq 0x869c0
movq %rax, %rdi
movq 0x10(%rsp), %rax
movsbl (%rax), %esi
callq 0x86890
leaq 0x20(%rsp), %rdi
callq 0x91840
jmp 0x8e63e
movq 0x8(%rsp), %rdi
addq $0x20, %rdi
movq 0xd68cc(%rip), %rsi     # 0x164f70
callq 0x86770
addq $0x48, %rsp
retq
nop