// File: /workspace/github_cpp_makefile_star2_O1/ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::Batch::report(Common_sp::TsvOut&, bool) const
void report (TsvOut &td,
	             bool mutationAll) const
	// Input: target2goodBlastAls
	{
	  ASSERT (td. empty ());
	  	  
		const Chronometer_OnePass cop ("report", cerr, false, Chronometer::enabled);  

    // PD-283, PD-780
  	// Cf. BlastAlignment::report()
    if (! input_name. empty ())
      td << "Name";
    // Target
    td << prot_colName;                          //  1  // targetName 
    if (cdsExist)  
      // Contig (target)
      td << contig_colName                       //  2
         << start_colName                        //  3
         << stop_colName                         //  4
         << strand_colName;                      //  5
    // Reference
    td << genesymbol_colName                     //  6 or 2  
       << elemName_colName                       //  7 or 3
       << scope_colName                          //  8 or 4       
       << type_colName                           //  9 or 5
       << subtype_colName                        // 10 or 6
       << class_colName                          // 11 or 7
       << subclass_colName                       // 12 or 8
       << method_colName                         // 13 or 9
       // target
       << targetLen_colName                      // 14 or 10       
       //
       << refLen_colName                         // 15 or 11  // refLen
       << refCov_colName                         // 16 or 12  // queryCoverage
       << refIdent_colName                       // 17 or 13 
       << alignLen_colName                       // 18 or 14  // targetSeq.size()
       << closestRefAccession_colName            // 19 or 15  // refAccession
       << closestRefName_colName                 // 20 or 16
       //
       << hmmAccession_colName                   // 21 or 17
       << hmmDescr_colName                       // 22 or 18
       ;
    if (cdsExist)
    	if (useCrossOrigin)
      	 td << "Cross-origin length";
    if (print_node)
      td << hierarchyNode_colName; 
    td. newLn ();

 	  for (const auto& it : target2goodBlastAls)
    	for (const BlastAlignment* blastAl : it. second)
    	{
    	  ASSERT (blastAl);
     	  if (blastAl->isMutationProt ())
    	  	if (blastAl->seqChanges. empty ())
    	  	  ;
    	  	else
    	  	{
        	  blastAl->report (td, it. first, mutationAll);
         	  blastAl->qc ();
        	}
     	  else if (   (   blastAl->fusion2reportable () >= reportable_min
     	               || blastAl->alleleReportable ()
     	              )
     	           && ! suppress_prots. containsFast (blastAl->refAccession)
     	           && ! blastAl->fusionRedundant
     	         //&& ! blastAl->stxtyper  // PD-4926
     	          )
     	  {
      	  blastAl->report (td, it. first, mutationAll);
       	  blastAl->qc ();
      	}
      }
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, 0x20(%rsp)
callq 0xb070
movq %rax, 0x108(%rsp)
movl $0x0, (%rax)
cmpq $0x0, 0x10(%rbx)
jne 0x2c49a
cmpq $0x0, 0x18(%rbx)
jne 0x2c49a
cmpq $0x0, 0x20(%rbx)
jne 0x2c49a
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x777c7(%rip), %rsi     # 0xa37b3
leaq 0x777c6(%rip), %rdx     # 0xa37b9
movq %rsp, %rdi
callq 0x39720
leaq 0xa0e50(%rip), %rax     # 0xcce52
movzbl (%rax), %r8d
movq 0x9ffdb(%rip), %rdx     # 0xcbfe8
leaq 0x110(%rsp), %rdi
movq %rsp, %rsi
xorl %ecx, %ecx
callq 0x44c8c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2c035
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb550
cmpq $0x0, 0xa09f3(%rip)     # 0xcca30
je 0x2c04e
leaq 0x7aad5(%rip), %rsi     # 0xa6b1b
movq %rbx, %rdi
callq 0x4055c
leaq 0x9e58b(%rip), %rsi     # 0xca5e0
movq %rbx, %rdi
callq 0x4069a
cmpb $0x1, 0xa0a79(%rip)     # 0xccadd
jne 0x2c0a2
leaq 0x9e57b(%rip), %rsi     # 0xca5e8
movq %rbx, %rdi
callq 0x4069a
leaq 0x9e574(%rip), %rsi     # 0xca5f0
movq %rax, %rdi
callq 0x4069a
leaq 0x9e56d(%rip), %rsi     # 0xca5f8
movq %rax, %rdi
callq 0x4069a
leaq 0x9e566(%rip), %rsi     # 0xca600
movq %rax, %rdi
callq 0x4069a
leaq 0x9e55f(%rip), %rsi     # 0xca608
movq %rbx, %rdi
callq 0x4069a
leaq 0x9e558(%rip), %rsi     # 0xca610
movq %rax, %rdi
callq 0x4069a
leaq 0x9e551(%rip), %rsi     # 0xca618
movq %rax, %rdi
callq 0x4069a
leaq 0x9e54a(%rip), %rsi     # 0xca620
movq %rax, %rdi
callq 0x4069a
leaq 0x9e543(%rip), %rsi     # 0xca628
movq %rax, %rdi
callq 0x4069a
leaq 0x9e53c(%rip), %rsi     # 0xca630
movq %rax, %rdi
callq 0x4069a
leaq 0x9e535(%rip), %rsi     # 0xca638
movq %rax, %rdi
callq 0x4069a
leaq 0x9e52e(%rip), %rsi     # 0xca640
movq %rax, %rdi
callq 0x4069a
leaq 0x9e527(%rip), %rsi     # 0xca648
movq %rax, %rdi
callq 0x4069a
leaq 0x9e520(%rip), %rsi     # 0xca650
movq %rax, %rdi
callq 0x4069a
leaq 0x9e519(%rip), %rsi     # 0xca658
movq %rax, %rdi
callq 0x4069a
leaq 0x9e512(%rip), %rsi     # 0xca660
movq %rax, %rdi
callq 0x4069a
leaq 0x9e50b(%rip), %rsi     # 0xca668
movq %rax, %rdi
callq 0x4069a
leaq 0x9e504(%rip), %rsi     # 0xca670
movq %rax, %rdi
callq 0x4069a
leaq 0x9e4fd(%rip), %rsi     # 0xca678
movq %rax, %rdi
callq 0x4069a
leaq 0x9e4f6(%rip), %rsi     # 0xca680
movq %rax, %rdi
callq 0x4069a
leaq 0x9e4ef(%rip), %rsi     # 0xca688
movq %rax, %rdi
callq 0x4069a
cmpb $0x1, 0xa0931(%rip)     # 0xccad9
jne 0x2c1b9
leaq 0x9e4df(%rip), %rsi     # 0xca690
movq %rbx, %rdi
callq 0x4069a
movq %rbx, %rdi
callq 0x407fe
movq %rbx, 0x100(%rsp)
movq 0x20(%rsp), %rax
movq 0x138(%rax), %rcx
addq $0x128, %rax            # imm = 0x128
movq %rax, 0xf8(%rsp)
cmpq %rax, %rcx
je 0x2c2eb
movq 0x20(%rsp), %rax
leaq 0x38(%rax), %r13
leaq 0x77212(%rip), %rbp     # 0xa340e
movzbl %r15b, %eax
movl %eax, 0x2c(%rsp)
movq 0x40(%rcx), %rbx
movq %rcx, 0x30(%rsp)
movq 0x48(%rcx), %r12
cmpq %r12, %rbx
je 0x2c2d0
movq 0x30(%rsp), %rax
leaq 0x20(%rax), %r14
movq (%rbx), %r15
movq 0x108(%rsp), %rax
movl $0x0, (%rax)
testq %r15, %r15
je 0x2c30a
leaq 0x2e8(%r15), %rdi
movq %rbp, %rsi
callq 0xb150
testl %eax, %eax
je 0x2c294
movq %r15, %rdi
callq 0x389c8
movq 0x20(%rsp), %rcx
cmpb 0x30(%rcx), %al
jae 0x2c26e
movq %r15, %rdi
callq 0x38d36
testb %al, %al
je 0x2c2c3
leaq 0x250(%r15), %rsi
movq %r13, %rdi
movl $0x1, %edx
callq 0x3fb20
cmpq $-0x1, %rax
jne 0x2c2c3
cmpb $0x0, 0x2a0(%r15)
je 0x2c2a4
jmp 0x2c2c3
movq 0x218(%r15), %rax
cmpq 0x220(%r15), %rax
je 0x2c2c3
movq %r15, %rdi
movq 0x100(%rsp), %rsi
movq %r14, %rdx
movl 0x2c(%rsp), %ecx
callq 0x33e9c
movq %r15, %rdi
callq 0x1ea6a
addq $0x8, %rbx
cmpq %r12, %rbx
jne 0x2c223
movq 0x30(%rsp), %rdi
callq 0xb610
movq %rax, %rcx
cmpq 0xf8(%rsp), %rax
jne 0x2c204
leaq 0x110(%rsp), %rdi
callq 0x44ce2
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb660
testl %eax, %eax
jne 0x2c52f
leaq 0xc8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x775fd(%rip), %rsi     # 0xa3927
leaq 0x7760d(%rip), %rdx     # 0xa393e
leaq 0xb8(%rsp), %rdi
callq 0x39720
leaq 0x98(%rsp), %rdi
movl $0x828, %esi            # imm = 0x828
callq 0x39da6
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x39cfe
leaq 0x775cb(%rip), %rsi     # 0xa393f
leaq 0xd8(%rsp), %rdi
callq 0xba70
leaq 0x68(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c3a2
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x2c3af
movq %rdx, 0x58(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x68(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x60(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x158(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x78da3(%rip), %rsi     # 0xa517e
leaq 0x78ddb(%rip), %rdx     # 0xa51bd
leaq 0x148(%rsp), %rdi
callq 0x39720
leaq 0x77a1a(%rip), %rsi     # 0xa3e10
leaq 0x148(%rsp), %rdi
callq 0xba70
leaq 0x48(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c425
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x2c432
movq %rdx, 0x38(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x48(%rsp)
movq 0x8(%rax), %rsi
leaq 0x38(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x39cfe
leaq 0x7859e(%rip), %rsi     # 0xa4a02
leaq 0x78(%rsp), %rdi
callq 0xba70
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c539
movups (%rcx), %xmm0
leaq 0x10(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x2c545
callq 0xb660
testl %eax, %eax
jne 0x2c52f
leaq 0xe8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7746d(%rip), %rsi     # 0xa3927
leaq 0x7747d(%rip), %rdx     # 0xa393e
leaq 0xd8(%rsp), %rdi
callq 0x39720
leaq 0xb8(%rsp), %rdi
movl $0x7f8, %esi            # imm = 0x7F8
callq 0x39da6
leaq 0x58(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x39cfe
leaq 0x7743e(%rip), %rsi     # 0xa393f
leaq 0x58(%rsp), %rdi
callq 0xba70
leaq 0x88(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c564
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x2c574
movl $0x1, %edi
callq 0xb670
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
movq 0x8(%rax), %rdx
movq %rsp, %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x43ebb
movq %rdx, 0x78(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x88(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x80(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x48(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x78bde(%rip), %rsi     # 0xa517e
leaq 0x78c16(%rip), %rdx     # 0xa51bd
leaq 0x38(%rsp), %rdi
callq 0x39720
leaq 0x77858(%rip), %rsi     # 0xa3e10
leaq 0x38(%rsp), %rdi
callq 0xba70
leaq 0xa8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c5e7
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x2c5fa
movq %rdx, 0x98(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xa8(%rsp)
movq 0x8(%rax), %rsi
leaq 0x98(%rsp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rsp, %rdi
leaq 0x78(%rsp), %rsi
callq 0x39cfe
leaq 0x7d4d5(%rip), %rsi     # 0xa9b02
movq %rsp, %rdi
callq 0xba70
leaq 0x120(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2c659
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x2c66c
movq %rdx, 0x110(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x120(%rsp)
movq 0x8(%rax), %rdx
leaq 0x110(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
callq 0x43ebb
movq %rax, %rbx
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2c6b5
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c6b5
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c6d5
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c6d5
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c6f7
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c6f7
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x2c713
movq 0x48(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c713
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x2c732
movq 0x88(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c732
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c752
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c752
movq %rax, %rbx
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c778
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c778
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2c8e1
movq 0xe8(%rsp), %rsi
jmp 0x2c7f0
jmp 0x2c7fd
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2c7b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c7b8
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c808
movq 0x88(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c808
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2c8e1
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c8e1
movq %rax, %rbx
jmp 0x2c8e1
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x2c824
movq 0x48(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c824
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r12, %rdi
je 0x2c846
movq 0x158(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c846
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x2c862
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c862
movq %rax, %rbx
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c88a
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c88a
jmp 0x2c8d1
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2c8b0
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c8b0
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2c8d4
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xb550
jmp 0x2c8d4
jmp 0x2c8d1
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x44ce2
movq %rbx, %rdi
callq 0xb9c0
nop