// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/stx/stxtyper.cpp
// Function: (anonymous namespace)::Operon::saveTsvOut(Common_sp::TsvOut&, bool) const
void saveTsvOut (TsvOut& td,
                   bool verboseP) const 
    { ASSERT (al1);
      if (! td. live ())
        return;
      if (al2)
      {
        string stxType (getStxType (verboseP));
        const string standard ("COMPLETE");
        const bool novel =    al1->stxClass != al2->stxClass 
                           || getIdentity () < stxClass2identity [al1->stxClass]
                           || stxType. size () <= 1;

        const string quality =    al1->frameshift
                               || al2->frameshift
                                 ? "FRAMESHIFT"
                                 :    al1->stopCodon 
                                   || al2->stopCodon 
                                     ? "INTERNAL_STOP"
                                     :    al1->truncated () 
                                       || al2->truncated ()
                                         ? "PARTIAL_CONTIG_END"
                                         :    al1->c_extended ()
                                           || al2->c_extended ()
                                             ? "EXTENDED" 
                                             :    al1->partial ()
                                               || al2->partial ()
                                               ? "PARTIAL"  
                                               // complete operon types
                                               : novel
                                                 ? xs ()
                                                   ? "AMBIGUOUS"
                                                   : standard + "_NOVEL"
                                                 : standard;

        if (! verboseP)
        {
          ASSERT (stxType. size () <= 2);
          if (quality == standard)
            { ASSERT (stxType. size () == 2); }
          else
            if (stxType. size () == 2)
              stxType. erase (1);  
        }
        const string targetName (al1->targetName);
        const size_t start = al1->targetStart + 1;
        const size_t stop  = al2->targetEnd;
  	    const char strand (al1->targetStrand ? '+' : '-');
  	    const string stxType_reported (stxS + stxType);
  	    const double refIdentity = getIdentity () * 100.0;
  	    // td
        if (! input_name. empty ())
  	      td << input_name;
        if (amrfinder)
        {
          const string genesymbol (al1->stxType == al2->stxType ? stxS + al1->stxType : stxType_reported);
          string subclass (stxType_reported /*genesymbol*/);
          strUpper (subclass);
          const size_t targetAlign = al2->targetEnd - al1->targetStart;
        //const size_t refLen = al1->refLen + al2->refLen;
        //const double refCoverage = double (al1->getAbsCoverage () + al2->getAbsCoverage ()) / double (refLen) * 100.0;
          const size_t alignmentLen = al1->length + al2->length;
          const string refAccessions (al1->refAccession + "," + al2->refAccession);  // No space: PD-5205
          const string fam (al1->getGenesymbol () + fusion_infix + al2->getGenesymbol ());
          td << na                // 1 "Protein identifier"  
             << targetName        // 2 "Contig id"
             << start             // 3 "Start"
             << stop              // 4 "Stop"
             << strand            // 5 "Strand"
             << stxType_reported + "_operon"  // 6 "Element symbol"
             << stxType_reported_operon2elementName (stxType_reported, quality)    // 7 "Element name"
             << "plus"            // 8 "Scope"
             << "VIRULENCE"       // 9 "Element type"
             << "STX_TYPE"        //10 "Element subtype"
             << subclass. substr (0, 4)   //11 "Class"
             << subclass          //12 "Subclass"
             << quality           //13 "Method"  
             << targetAlign       //14 "Target length" 
             << na /*refLen*/     //15 "Reference sequence length"
             << na /*refCoverage*/ //16 "% Coverage of reference sequence"
             << refIdentity       //17 "% Identity to reference sequence"
             << alignmentLen      //18 "Alignment length"
             << refAccessions     //19 "Accession of closest sequence"        // PD-5209
             << "Shiga toxin " + genesymbol //20 "Name of closest sequence"   // PD-5209
             << na                //21 "HMM id"
             << na                //22 "HMM description"
             ;
          if (print_node)
            td << fam;
        }
        else
    	    td << targetName
             << stxType_reported
             << quality
             << refIdentity
             << start
             << stop
             << strand
             // Approximately if frameshift
             << getA () -> refAccession
             << getA () -> subClass
             << getA () -> getIdentity () * 100.0
             << getA () -> getRelCoverage () * 100.0
             << getB () -> refAccession
             << getB () -> subClass
             << getB () -> getIdentity () * 100.0
             << getB () -> getRelCoverage () * 100.0
             ;
        td. newLn ();
      }
      else
        al1->saveTsvOut (td, verboseP);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
movl %edx, %ebx
movq %rsi, %rbp
movq %rdi, %r14
callq 0xa060
andl $0x0, (%rax)
movq (%r14), %rdi
testq %rdi, %rdi
je 0x1657f
cmpq $0x0, (%rbp)
je 0x1645e
movq 0x8(%r14), %rsi
testq %rsi, %rsi
je 0x15911
movq %rax, %r15
movl $0x100, %eax            # imm = 0x100
addq %rax, %rdi
addq %rax, %rsi
callq 0x1bae9
movq (%r14), %rdi
testb %al, %al
je 0x1592d
movl $0x120, %r12d           # imm = 0x120
addq %r12, %rdi
movq 0x8(%r14), %rsi
addq %r12, %rsi
callq 0x1a320
testb %al, %al
je 0x1594e
addq (%r14), %r12
leaq 0x70(%rsp), %rdi
movq %r12, %rsi
jmp 0x1595a
movzbl %bl, %edx
movq %rbp, %rsi
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x12bc0
addq $0x100, %rdi            # imm = 0x100
leaq 0x3bab2(%rip), %rsi     # 0x513ed
callq 0x1bb2b
testb %al, %al
je 0x15964
movl $0xe0, %esi
addq (%r14), %rsi
jmp 0x15955
leaq 0x6118b(%rip), %rsi     # 0x76ae0
leaq 0x70(%rsp), %rdi
callq 0xa790
jmp 0x15b27
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
jne 0x15974
movq 0x8(%r14), %rsi
leaq 0x118(%rsp), %rdi
movl $0x140, %edx            # imm = 0x140
callq 0x183fe
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
je 0x15996
movq 0x8(%r14), %rsi
leaq 0x30(%rsp), %rdi
pushq $0x5a
popq %rdx
callq 0x183fe
movq 0x118(%rsp), %rax
movzbl 0x138(%rax), %ecx
cmpl $0x53, %ecx
je 0x159c0
cmpl $0x46, %ecx
jne 0x15a5c
movzbl 0x13e(%rax), %eax
cmpl $0x4b, %eax
je 0x159d1
cmpl $0x45, %eax
jne 0x159f7
movq 0x30(%rsp), %rdx
cmpb $0x44, 0x22(%rdx)
jne 0x159f7
leaq 0x3b0d7(%rip), %rsi     # 0x50aba
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15b10
cmpl $0x53, %ecx
je 0x15a31
cmpl $0x46, %ecx
jne 0x15a5c
cmpl $0x4b, %eax
je 0x15a0b
cmpl $0x45, %eax
jne 0x15a5c
movq 0x30(%rsp), %rax
cmpb $0x4e, 0x22(%rax)
jne 0x15a5c
leaq 0x3b0a0(%rip), %rsi     # 0x50abd
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15b10
cmpl $0x45, %eax
jne 0x15a5c
movq 0x30(%rsp), %rax
cmpb $0x4e, 0x22(%rax)
jne 0x15a5c
leaq 0x3b078(%rip), %rsi     # 0x50ac0
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15b10
testb %bl, %bl
je 0x15afa
leaq 0x3b989(%rip), %rsi     # 0x513f4
leaq 0x90(%rsp), %rdi
leaq 0xb0(%rsp), %rdx
callq 0x18af0
movq 0x118(%rsp), %rax
movsbl 0x138(%rax), %edx
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x1bb35
movq 0x118(%rsp), %rax
movsbl 0x13e(%rax), %edx
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x1bb35
movq 0x30(%rsp), %rax
movsbl 0x22(%rax), %edx
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x1bb35
leaq 0x10(%rsp), %rdi
callq 0xab28
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x90(%rsp), %rdi
callq 0xab28
jmp 0x15b10
leaq 0x3b8ec(%rip), %rsi     # 0x513ed
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0x118(%rsp), %rdi
callq 0xab28
movl %ebx, 0xf4(%rsp)
leaq 0x3b88a(%rip), %rsi     # 0x513bf
leaq 0x118(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x18af0
movl $0x100, %r12d           # imm = 0x100
movq (%r14), %rdi
addq %r12, %rdi
movq 0x8(%r14), %rsi
addq %r12, %rsi
callq 0x1bae9
movb $0x1, %bl
testb %al, %al
jne 0x15ba0
movq %r14, %rdi
callq 0x16a5e
movsd %xmm0, 0x1b0(%rsp)
addq (%r14), %r12
leaq 0x60ea8(%rip), %rdi     # 0x76a28
movq %r12, %rsi
callq 0x1b896
movsd (%rax), %xmm0
ucomisd 0x1b0(%rsp), %xmm0
ja 0x15ba0
cmpq $0x2, 0x78(%rsp)
setb %bl
movq (%r14), %r12
cmpb $0x0, 0x51(%r12)
jne 0x15bba
movq 0x8(%r14), %r13
cmpb $0x1, 0x51(%r13)
jne 0x15cfe
leaq 0x3b2c0(%rip), %rsi     # 0x50e81
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
cmpb $0x0, 0xf4(%rsp)
jne 0x15d44
andl $0x0, (%r15)
cmpq $0x3, 0x78(%rsp)
jae 0x16659
leaq 0x30(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x1a320
testb %al, %al
je 0x15d2c
andl $0x0, (%r15)
cmpq $0x2, 0x78(%rsp)
je 0x15d44
callq 0xa6a0
testl %eax, %eax
jne 0x1673f
leaq 0x3aabc(%rip), %rsi     # 0x506e8
leaq 0x158(%rsp), %rdi
leaq 0x190(%rsp), %rdx
callq 0x18af0
leaq 0xd0(%rsp), %rdi
movl $0x265, %esi            # imm = 0x265
callq 0x1a2c7
leaq 0xb0(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x19646
leaq 0x3aa87(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x19582
leaq 0x3b6e7(%rip), %rsi     # 0x5137a
leaq 0x138(%rsp), %rdi
leaq 0x1c8(%rsp), %rdx
callq 0x18af0
leaq 0x3bf1d(%rip), %rdx     # 0x51bcc
leaq 0xf8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x19646
leaq 0x3ad95(%rip), %rdx     # 0x50a7a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x19582
leaq 0x10(%rsp), %rdi
callq 0x1ccf0
cmpb $0x0, 0x50(%r12)
jne 0x15d11
cmpb $0x1, 0x50(%r13)
jne 0x16470
leaq 0x3b174(%rip), %rsi     # 0x50e8c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15bd0
cmpq $0x2, 0x78(%rsp)
jne 0x15d44
leaq 0x70(%rsp), %rdi
pushq $0x1
popq %rsi
pushq $-0x1
popq %rdx
callq 0xa100
movq (%r14), %rsi
addq $0x58, %rsi
leaq 0x10(%rsp), %rdi
callq 0xa790
movq (%r14), %rax
movq 0x30(%rax), %rcx
incq %rcx
movq %rcx, 0x188(%rsp)
movq 0x8(%r14), %rcx
movq 0x38(%rcx), %rcx
movq %rcx, 0x180(%rsp)
movb 0x98(%rax), %al
xorb $0x1, %al
addb %al, %al
addb $0x2b, %al
movb %al, 0xf(%rsp)
leaq 0x60cca(%rip), %rsi     # 0x76a58
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1baf3
movq %r14, %rdi
callq 0x16a5e
mulsd 0x3a26b(%rip), %xmm0    # 0x50018
movsd %xmm0, 0x178(%rsp)
cmpq $0x0, 0x60c52(%rip)     # 0x76a10
je 0x15dcf
leaq 0x60c41(%rip), %rsi     # 0x76a08
movq %rbp, %rdi
callq 0x1b386
cmpb $0x1, 0x60ca2(%rip)     # 0x76a78
jne 0x15e17
movl $0xe0, %r15d
movq (%r14), %rdi
addq %r15, %rdi
movq 0x8(%r14), %rsi
addq %r15, %rsi
callq 0x1a320
testb %al, %al
je 0x160c2
addq (%r14), %r15
leaq 0x60c56(%rip), %rsi     # 0x76a58
leaq 0x90(%rsp), %rdi
movq %r15, %rdx
callq 0x1baf3
jmp 0x160d4
leaq 0x10(%rsp), %rsi
movq %rbp, %rdi
callq 0x1b386
leaq 0x50(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
leaq 0x178(%rsp), %rsi
movq %rax, %rdi
callq 0x1b73e
leaq 0x188(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0x180(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0xf(%rsp), %rsi
movq %rax, %rdi
callq 0x1b562
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
jne 0x15e8b
movq 0x8(%r14), %rsi
addq $0xa0, %rsi
movq %rax, %rdi
callq 0x1b386
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
jne 0x15eaa
movq 0x8(%r14), %rsi
addq $0x148, %rsi            # imm = 0x148
movq %rax, %rdi
callq 0x1b386
movq (%r14), %rcx
cmpb $0x0, 0x98(%rcx)
jne 0x15ec9
movq 0x8(%r14), %rcx
movdqu (%rcx), %xmm0
movdqa 0x3a14b(%rip), %xmm1    # 0x50020
pand %xmm0, %xmm1
por 0x3a14f(%rip), %xmm1    # 0x50030
psrlq $0x20, %xmm0
por 0x3a152(%rip), %xmm0    # 0x50040
subpd 0x3a15a(%rip), %xmm0    # 0x50050
addpd %xmm1, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
divsd %xmm0, %xmm1
mulsd 0x3a10a(%rip), %xmm1    # 0x50018
leaq 0x90(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %rax, %rdi
callq 0x1b73e
movq (%r14), %rcx
cmpb $0x0, 0x98(%rcx)
jne 0x15f32
movq 0x8(%r14), %rcx
movq 0x20(%rcx), %rdx
subq 0x18(%rcx), %rdx
movq %rdx, %xmm0
movq 0x3a129(%rip), %xmm2    # 0x50070
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x3a12d(%rip), %xmm3    # 0x50080
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movq 0x28(%rcx), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm2
unpckhpd %xmm0, %xmm2            # xmm2 = xmm2[1],xmm0[1]
addsd %xmm0, %xmm2
divsd %xmm2, %xmm1
mulsd 0x3a090(%rip), %xmm1    # 0x50018
leaq 0xb0(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %rax, %rdi
callq 0x1b73e
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
je 0x15fac
movq 0x8(%r14), %rsi
addq $0xa0, %rsi
movq %rax, %rdi
callq 0x1b386
movq (%r14), %rsi
cmpb $0x0, 0x98(%rsi)
je 0x15fcb
movq 0x8(%r14), %rsi
addq $0x148, %rsi            # imm = 0x148
movq %rax, %rdi
callq 0x1b386
movq (%r14), %rcx
cmpb $0x0, 0x98(%rcx)
je 0x15fea
movq 0x8(%r14), %rcx
movdqu (%rcx), %xmm0
movdqa 0x3a02a(%rip), %xmm1    # 0x50020
pand %xmm0, %xmm1
por 0x3a02e(%rip), %xmm1    # 0x50030
psrlq $0x20, %xmm0
por 0x3a031(%rip), %xmm0    # 0x50040
subpd 0x3a039(%rip), %xmm0    # 0x50050
addpd %xmm1, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
divsd %xmm0, %xmm1
mulsd 0x39fe9(%rip), %xmm1    # 0x50018
leaq 0x158(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %rax, %rdi
callq 0x1b73e
movq (%r14), %rcx
cmpb $0x0, 0x98(%rcx)
je 0x16053
movq 0x8(%r14), %rcx
movq 0x20(%rcx), %rdx
subq 0x18(%rcx), %rdx
movq %rdx, %xmm0
movq 0x3a008(%rip), %xmm2    # 0x50070
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x3a00c(%rip), %xmm3    # 0x50080
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movq 0x28(%rcx), %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm2
unpckhpd %xmm0, %xmm2            # xmm2 = xmm2[1],xmm0[1]
addsd %xmm0, %xmm2
divsd %xmm2, %xmm1
mulsd 0x39f6f(%rip), %xmm1    # 0x50018
leaq 0xd0(%rsp), %rsi
movsd %xmm1, (%rsi)
movq %rax, %rdi
callq 0x1b73e
jmp 0x16421
leaq 0x90(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xa790
leaq 0xb0(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0xa790
leaq 0xb0(%rsp), %rdi
callq 0x1e70b
movq (%r14), %rsi
movq 0x8(%r14), %rax
movq 0x38(%rax), %rcx
subq 0x30(%rsi), %rcx
movq %rcx, 0x1c0(%rsp)
movq (%rax), %rax
addq (%rsi), %rax
movq %rax, 0x1b8(%rsp)
addq $0xa0, %rsi
leaq 0x3b2c9(%rip), %rdx     # 0x513ef
leaq 0xd0(%rsp), %rdi
callq 0x194be
movl $0xa0, %edx
addq 0x8(%r14), %rdx
leaq 0x158(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x195a1
leaq 0xd0(%rsp), %rdi
callq 0xab28
movq (%r14), %rsi
leaq 0x138(%rsp), %rdi
callq 0x17700
leaq 0x3b27c(%rip), %rdx     # 0x513f1
leaq 0xf8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x19582
movq 0x8(%r14), %rsi
leaq 0x190(%rsp), %rdi
callq 0x17700
leaq 0xd0(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0x190(%rsp), %rdx
callq 0x19646
leaq 0x190(%rsp), %rdi
callq 0xab28
leaq 0xf8(%rsp), %rdi
callq 0xab28
leaq 0x138(%rsp), %rdi
callq 0xab28
leaq 0x5e45a(%rip), %rsi     # 0x74640
movq %rbp, %rdi
callq 0x19976
leaq 0x10(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
leaq 0x188(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0x180(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0xf(%rsp), %rsi
movq %rax, %rdi
callq 0x1b562
movq %rax, %r14
leaq 0x3ac9d(%rip), %rdx     # 0x50ecf
leaq 0xf8(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x194be
leaq 0xf8(%rsp), %rsi
movq %r14, %rdi
callq 0x1b386
movq %rax, %r14
leaq 0x138(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %rdx
callq 0x17765
leaq 0x138(%rsp), %rsi
movq %r14, %rdi
callq 0x1b386
leaq 0x3ac52(%rip), %rsi     # 0x50ed7
movq %rax, %rdi
callq 0x19888
leaq 0x3ac48(%rip), %rsi     # 0x50edc
movq %rax, %rdi
callq 0x1b650
leaq 0x3ac43(%rip), %rsi     # 0x50ee6
movq %rax, %rdi
callq 0x19b52
movq %rax, %r14
leaq 0x190(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
pushq $0x4
popq %rcx
xorl %edx, %edx
callq 0xa5c0
leaq 0x190(%rsp), %rsi
movq %r14, %rdi
callq 0x1b386
leaq 0xb0(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
leaq 0x30(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
leaq 0x1c0(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0x5e334(%rip), %rsi     # 0x74640
movq %rax, %rdi
callq 0x19976
leaq 0x5e325(%rip), %rsi     # 0x74640
movq %rax, %rdi
callq 0x19976
leaq 0x178(%rsp), %rsi
movq %rax, %rdi
callq 0x1b73e
leaq 0x1b8(%rsp), %rsi
movq %rax, %rdi
callq 0x1b474
leaq 0x158(%rsp), %rsi
movq %rax, %rdi
callq 0x1b386
movq %rax, %r14
leaq 0x3ab92(%rip), %rsi     # 0x50eef
leaq 0x1c8(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x1a4be
leaq 0x1c8(%rsp), %rsi
movq %r14, %rdi
callq 0x1b386
leaq 0x5e2b7(%rip), %rsi     # 0x74640
movq %rax, %rdi
callq 0x19976
leaq 0x5e2a8(%rip), %rsi     # 0x74640
movq %rax, %rdi
callq 0x19976
leaq 0x1c8(%rsp), %rdi
callq 0xab28
leaq 0x190(%rsp), %rdi
callq 0xab28
leaq 0x138(%rsp), %rdi
callq 0xab28
leaq 0xf8(%rsp), %rdi
callq 0xab28
cmpb $0x1, 0x6069e(%rip)     # 0x76a79
jne 0x163ed
leaq 0xd0(%rsp), %rsi
movq %rbp, %rdi
callq 0x1b386
leaq 0xd0(%rsp), %rdi
callq 0xab28
leaq 0x158(%rsp), %rdi
callq 0xab28
leaq 0xb0(%rsp), %rdi
callq 0xab28
leaq 0x90(%rsp), %rdi
callq 0xab28
movq %rbp, %rdi
callq 0x1a0e6
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x10(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0x118(%rsp), %rdi
callq 0xab28
leaq 0x70(%rsp), %rdi
callq 0xab28
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rdi
callq 0x17314
testb %al, %al
jne 0x16488
movq %r13, %rdi
callq 0x17314
testb %al, %al
je 0x164a3
leaq 0x3aa0b(%rip), %rsi     # 0x50e9a
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15bd0
cmpq $0x0, 0x18(%r12)
jne 0x164ba
movq 0x20(%r12), %rax
incq %rax
cmpq 0x28(%r12), %rax
je 0x164ce
cmpq $0x0, 0x18(%r13)
jne 0x164e9
movq 0x20(%r13), %rax
incq %rax
cmpq 0x28(%r13), %rax
jne 0x164e9
leaq 0x3a9e9(%rip), %rsi     # 0x50ebe
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15bd0
movq %r12, %rdi
callq 0x1736e
testb %al, %al
jne 0x16501
movq %r13, %rdi
callq 0x1736e
testb %al, %al
je 0x1651c
leaq 0x3a9bf(%rip), %rsi     # 0x50ec7
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15bd0
testb %bl, %bl
je 0x1654d
andl $0x0, (%r15)
movq 0x10(%r13), %rax
addq 0x10(%r12), %rax
jne 0x16564
leaq 0x3ae9c(%rip), %rdx     # 0x513d2
leaq 0x30(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x194be
jmp 0x15bd0
leaq 0x30(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0xa790
jmp 0x15bd0
leaq 0x3ae5d(%rip), %rsi     # 0x513c8
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x18af0
jmp 0x15bd0
callq 0xa6a0
testl %eax, %eax
jne 0x1673f
leaq 0x3a155(%rip), %rsi     # 0x506e8
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x18af0
leaq 0x70(%rsp), %rdi
movl $0x240, %esi            # imm = 0x240
callq 0x1a2c7
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x70(%rsp), %rdx
callq 0x19646
leaq 0x3a129(%rip), %rdx     # 0x506fe
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x19582
leaq 0x3ad8f(%rip), %rsi     # 0x5137a
leaq 0x158(%rsp), %rdi
leaq 0xf8(%rsp), %rdx
callq 0x18af0
leaq 0x3b5c5(%rip), %rdx     # 0x51bcc
leaq 0xb0(%rsp), %rdi
leaq 0x158(%rsp), %rsi
callq 0x19582
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x19646
leaq 0x3ac28(%rip), %rdx     # 0x51262
leaq 0x118(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x19582
leaq 0x118(%rsp), %rdi
callq 0x1ccf0
callq 0xa6a0
testl %eax, %eax
jne 0x1673f
leaq 0x3a07b(%rip), %rsi     # 0x506e8
leaq 0x158(%rsp), %rdi
leaq 0x190(%rsp), %rdx
callq 0x18af0
leaq 0xd0(%rsp), %rdi
movl $0x263, %esi            # imm = 0x263
callq 0x1a2c7
leaq 0xb0(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x19646
leaq 0x3a046(%rip), %rdx     # 0x506fe
leaq 0x90(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x19582
leaq 0x3aca6(%rip), %rsi     # 0x5137a
leaq 0x138(%rsp), %rdi
leaq 0x1c8(%rsp), %rdx
callq 0x18af0
leaq 0x3b4dc(%rip), %rdx     # 0x51bcc
leaq 0xf8(%rsp), %rdi
leaq 0x138(%rsp), %rsi
callq 0x19582
leaq 0x50(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xf8(%rsp), %rdx
callq 0x19646
leaq 0x3acb3(%rip), %rdx     # 0x513d9
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x19582
leaq 0x10(%rsp), %rdi
callq 0x1ccf0
pushq $0x1
popq %rdi
callq 0xa6b0
jmp 0x16980
jmp 0x16757
jmp 0x16766
jmp 0x16980
jmp 0x16777
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xab28
jmp 0x16769
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
jmp 0x1677a
jmp 0x16790
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xab28
jmp 0x16793
jmp 0x16980
jmp 0x167c5
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0xab28
jmp 0x167c8
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0xab28
jmp 0x167b7
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xab28
jmp 0x167df
jmp 0x167fa
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xab28
jmp 0x167fd
jmp 0x1689e
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xab28
jmp 0x1680f
jmp 0x16980
jmp 0x1689e
jmp 0x16820
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xab28
jmp 0x16823
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0xab28
jmp 0x16835
jmp 0x1684d
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xab28
jmp 0x16850
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xab28
jmp 0x16860
jmp 0x16980
jmp 0x1689e
jmp 0x16990
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x16a30
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
jmp 0x168ba
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xab28
jmp 0x1687e
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
jmp 0x1688d
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xab28
jmp 0x168a1
jmp 0x1689e
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xab28
jmp 0x168ce
jmp 0x16990
jmp 0x16990
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xab28
jmp 0x168de
jmp 0x16980
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
jmp 0x16a51
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x16a51
jmp 0x169be
jmp 0x169b4
jmp 0x168f7
movq %rax, %rbx
jmp 0x169db
jmp 0x169b9
jmp 0x16a1e
jmp 0x16a1e
jmp 0x16a1e
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0xab28
jmp 0x16928
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xab28
jmp 0x1693a
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
jmp 0x169f0
movq %rax, %rbx
jmp 0x169f5
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
jmp 0x169fd
jmp 0x16961
movq %rax, %rbx
jmp 0x16a02
movq %rax, %rbx
jmp 0x16a0f
jmp 0x16a1e
jmp 0x16980
movq %rax, %rbx
jmp 0x16a56
movq %rax, %rbx
jmp 0x16a3f
movq %rax, %rbx
jmp 0x16a2b
movq %rax, %rbx
jmp 0x16a35
movq %rax, %rbx
jmp 0x16a4c
movq %rax, %rbx
leaq 0x1c8(%rsp), %rdi
callq 0xab28
jmp 0x169c1
jmp 0x16a1e
movq %rax, %rbx
jmp 0x169ce
movq %rax, %rbx
jmp 0x169e8
movq %rax, %rbx
leaq 0x190(%rsp), %rdi
callq 0xab28
leaq 0x138(%rsp), %rdi
callq 0xab28
leaq 0xf8(%rsp), %rdi
callq 0xab28
leaq 0xd0(%rsp), %rdi
callq 0xab28
leaq 0x158(%rsp), %rdi
callq 0xab28
leaq 0xb0(%rsp), %rdi
callq 0xab28
leaq 0x90(%rsp), %rdi
callq 0xab28
jmp 0x16a21
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xab28
leaq 0x10(%rsp), %rdi
callq 0xab28
leaq 0x30(%rsp), %rdi
callq 0xab28
leaq 0x118(%rsp), %rdi
callq 0xab28
leaq 0x70(%rsp), %rdi
callq 0xab28
movq %rbx, %rdi
callq 0xa9f0