// File: /workspace/github_cpp_makefile_star2_O3/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 0xa070
movq %rax, 0x108(%rsp)
movl $0x0, (%rax)
cmpq $0x0, 0x10(%rbx)
jne 0x2b7d6
cmpq $0x0, 0x18(%rbx)
jne 0x2b7d6
cmpq $0x0, 0x20(%rbx)
jne 0x2b7d6
leaq 0x10(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x7748b(%rip), %rsi     # 0xa27b3
leaq 0x7748a(%rip), %rdx     # 0xa27b9
movq %rsp, %rdi
callq 0x3880a
leaq 0xa0b14(%rip), %rax     # 0xcbe52
movzbl (%rax), %r8d
movq 0x9fc9f(%rip), %rdx     # 0xcafe8
leaq 0x110(%rsp), %rdi
movq %rsp, %rsi
xorl %ecx, %ecx
callq 0x43dd0
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2b371
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xa550
cmpq $0x0, 0xa06b7(%rip)     # 0xcba30
je 0x2b38a
leaq 0x7a783(%rip), %rsi     # 0xa5b05
movq %rbx, %rdi
callq 0x3f5a6
leaq 0x9e27f(%rip), %rsi     # 0xc9610
movq %rbx, %rdi
callq 0x3f6f6
cmpb $0x1, 0xa073d(%rip)     # 0xcbadd
jne 0x2b3de
leaq 0x9e26f(%rip), %rsi     # 0xc9618
movq %rbx, %rdi
callq 0x3f6f6
leaq 0x9e268(%rip), %rsi     # 0xc9620
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e261(%rip), %rsi     # 0xc9628
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e25a(%rip), %rsi     # 0xc9630
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e253(%rip), %rsi     # 0xc9638
movq %rbx, %rdi
callq 0x3f6f6
leaq 0x9e24c(%rip), %rsi     # 0xc9640
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e245(%rip), %rsi     # 0xc9648
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e23e(%rip), %rsi     # 0xc9650
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e237(%rip), %rsi     # 0xc9658
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e230(%rip), %rsi     # 0xc9660
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e229(%rip), %rsi     # 0xc9668
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e222(%rip), %rsi     # 0xc9670
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e21b(%rip), %rsi     # 0xc9678
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e214(%rip), %rsi     # 0xc9680
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e20d(%rip), %rsi     # 0xc9688
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e206(%rip), %rsi     # 0xc9690
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e1ff(%rip), %rsi     # 0xc9698
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e1f8(%rip), %rsi     # 0xc96a0
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e1f1(%rip), %rsi     # 0xc96a8
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e1ea(%rip), %rsi     # 0xc96b0
movq %rax, %rdi
callq 0x3f6f6
leaq 0x9e1e3(%rip), %rsi     # 0xc96b8
movq %rax, %rdi
callq 0x3f6f6
cmpb $0x1, 0xa05f5(%rip)     # 0xcbad9
jne 0x2b4f5
leaq 0x9e1d3(%rip), %rsi     # 0xc96c0
movq %rbx, %rdi
callq 0x3f6f6
movq %rbx, %rdi
callq 0x3f868
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 0x2b627
movq 0x20(%rsp), %rax
leaq 0x38(%rax), %r13
leaq 0x76ed6(%rip), %rbp     # 0xa240e
movzbl %r15b, %eax
movl %eax, 0x2c(%rsp)
movq 0x40(%rcx), %rbx
movq %rcx, 0x30(%rsp)
movq 0x48(%rcx), %r12
cmpq %r12, %rbx
je 0x2b60c
movq 0x30(%rsp), %rax
leaq 0x20(%rax), %r14
movq (%rbx), %r15
movq 0x108(%rsp), %rax
movl $0x0, (%rax)
testq %r15, %r15
je 0x2b646
leaq 0x2e8(%r15), %rdi
movq %rbp, %rsi
callq 0xa150
testl %eax, %eax
je 0x2b5d0
movq %r15, %rdi
callq 0x37abc
movq 0x20(%rsp), %rcx
cmpb 0x30(%rcx), %al
jae 0x2b5aa
movq %r15, %rdi
callq 0x37e2a
testb %al, %al
je 0x2b5ff
leaq 0x250(%r15), %rsi
movq %r13, %rdi
movl $0x1, %edx
callq 0x3ec32
cmpq $-0x1, %rax
jne 0x2b5ff
cmpb $0x0, 0x2a0(%r15)
je 0x2b5e0
jmp 0x2b5ff
movq 0x218(%r15), %rax
cmpq 0x220(%r15), %rax
je 0x2b5ff
movq %r15, %rdi
movq 0x100(%rsp), %rsi
movq %r14, %rdx
movl 0x2c(%rsp), %ecx
callq 0x33154
movq %r15, %rdi
callq 0x1dc70
addq $0x8, %rbx
cmpq %r12, %rbx
jne 0x2b55f
movq 0x30(%rsp), %rdi
callq 0xa610
movq %rax, %rcx
cmpq 0xf8(%rsp), %rax
jne 0x2b540
leaq 0x110(%rsp), %rdi
callq 0x43e26
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xa660
testl %eax, %eax
jne 0x2b86b
leaq 0xc8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x772c1(%rip), %rsi     # 0xa2927
leaq 0x772d1(%rip), %rdx     # 0xa293e
leaq 0xb8(%rsp), %rdi
callq 0x3880a
leaq 0x98(%rsp), %rdi
movl $0x828, %esi            # imm = 0x828
callq 0x38eb1
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x38e09
leaq 0x7728f(%rip), %rsi     # 0xa293f
leaq 0xd8(%rsp), %rdi
callq 0xaa70
leaq 0x68(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b6de
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x2b6eb
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 0x78a67(%rip), %rsi     # 0xa417e
leaq 0x78a9f(%rip), %rdx     # 0xa41bd
leaq 0x148(%rsp), %rdi
callq 0x3880a
leaq 0x776de(%rip), %rsi     # 0xa2e10
leaq 0x148(%rsp), %rdi
callq 0xaa70
leaq 0x48(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b761
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x2b76e
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 0x38e09
leaq 0x78262(%rip), %rsi     # 0xa3a02
leaq 0x78(%rsp), %rdi
callq 0xaa70
leaq 0x10(%rsp), %rcx
movq %rcx, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b875
movups (%rcx), %xmm0
leaq 0x10(%rsp), %rdx
movups %xmm0, (%rdx)
jmp 0x2b881
callq 0xa660
testl %eax, %eax
jne 0x2b86b
leaq 0xe8(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x77131(%rip), %rsi     # 0xa2927
leaq 0x77141(%rip), %rdx     # 0xa293e
leaq 0xd8(%rsp), %rdi
callq 0x3880a
leaq 0xb8(%rsp), %rdi
movl $0x7f8, %esi            # imm = 0x7F8
callq 0x38eb1
leaq 0x58(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0xb8(%rsp), %rdx
callq 0x38e09
leaq 0x77102(%rip), %rsi     # 0xa293f
leaq 0x58(%rsp), %rdi
callq 0xaa70
leaq 0x88(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b8a0
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x2b8b0
movl $0x1, %edi
callq 0xa670
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 0x42fc6
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 0x788a2(%rip), %rsi     # 0xa417e
leaq 0x788da(%rip), %rdx     # 0xa41bd
leaq 0x38(%rsp), %rdi
callq 0x3880a
leaq 0x7751c(%rip), %rsi     # 0xa2e10
leaq 0x38(%rsp), %rdi
callq 0xaa70
leaq 0xa8(%rsp), %r13
movq %r13, -0x10(%r13)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b923
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x2b936
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 0x38e09
leaq 0x7d199(%rip), %rsi     # 0xa8b02
movq %rsp, %rdi
callq 0xaa70
leaq 0x120(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x2b995
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
jmp 0x2b9a8
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 0x42fc6
movq %rax, %rbx
movq 0x110(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2b9f1
movq 0x120(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2b9f1
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ba11
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2ba11
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %r13, %rdi
je 0x2ba33
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2ba33
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ba4f
movq 0x48(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2ba4f
movq %rax, %rbx
movq 0x78(%rsp), %rdi
cmpq %r15, %rdi
je 0x2ba6e
movq 0x88(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2ba6e
movq %rax, %rbx
leaq 0x68(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2ba8e
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2ba8e
movq %rax, %rbx
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bab4
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bab4
movq %rax, %rbx
movq 0xd8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2bc1d
movq 0xe8(%rsp), %rsi
jmp 0x2bb2c
jmp 0x2bb39
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x2baf4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2baf4
movq %rax, %rbx
leaq 0x88(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bb44
movq 0x88(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bb44
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0x2bc1d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bc1d
movq %rax, %rbx
jmp 0x2bc1d
movq %rax, %rbx
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x2bb60
movq 0x48(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bb60
movq %rax, %rbx
movq 0x148(%rsp), %rdi
cmpq %r12, %rdi
je 0x2bb82
movq 0x158(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bb82
movq %rax, %rbx
movq 0x58(%rsp), %rdi
cmpq %r15, %rdi
je 0x2bb9e
movq 0x68(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bb9e
movq %rax, %rbx
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bbc6
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bbc6
jmp 0x2bc0d
movq %rax, %rbx
leaq 0xa8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2bbec
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bbec
movq %rax, %rbx
movq 0xb8(%rsp), %rdi
cmpq %r14, %rdi
je 0x2bc10
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0xa550
jmp 0x2bc10
jmp 0x2bc0d
movq %rax, %rbx
leaq 0x110(%rsp), %rdi
callq 0x43e26
movq %rbx, %rdi
callq 0xa9c0
nop