// File: /workspace/github_cpp_makefile_star2_O2/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 $0x178, %rsp            # imm = 0x178
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, 0x20(%rsp)
callq 0xb060
movq %rax, 0x58(%rsp)
andl $0x0, (%rax)
movq %rbx, 0x10(%rsp)
movq %rbx, %rdi
callq 0x2caea
testb %al, %al
je 0x1f611
leaq 0x4a55d(%rip), %rsi     # 0x697b3
leaq 0x28(%rsp), %rdi
leaq 0x60(%rsp), %rdx
callq 0x27230
leaq 0x78c16(%rip), %rax     # 0x97e82
movzbl (%rax), %r8d
movq 0x77d71(%rip), %rdx     # 0x96fe8
leaq 0x140(%rsp), %rdi
leaq 0x28(%rsp), %rsi
xorl %ecx, %ecx
callq 0x2f7c4
leaq 0x28(%rsp), %rdi
callq 0xbb38
cmpq $0x0, 0x787c3(%rip)     # 0x97a60
je 0x1f2b0
leaq 0x4d87a(%rip), %rsi     # 0x6cb20
movq 0x10(%rsp), %rdi
callq 0x2cb00
leaq 0x76189(%rip), %rsi     # 0x95440
movq 0x10(%rsp), %rdi
callq 0x2cbee
cmpb $0x1, 0x78845(%rip)     # 0x97b0d
jne 0x1f308
leaq 0x76177(%rip), %rsi     # 0x95448
movq 0x10(%rsp), %rdi
callq 0x2cbee
leaq 0x7616e(%rip), %rsi     # 0x95450
movq %rax, %rdi
callq 0x2cbee
leaq 0x76167(%rip), %rsi     # 0x95458
movq %rax, %rdi
callq 0x2cbee
leaq 0x76160(%rip), %rsi     # 0x95460
movq %rax, %rdi
callq 0x2cbee
leaq 0x76159(%rip), %rsi     # 0x95468
movq 0x10(%rsp), %rdi
callq 0x2cbee
leaq 0x76150(%rip), %rsi     # 0x95470
movq %rax, %rdi
callq 0x2cbee
leaq 0x76149(%rip), %rsi     # 0x95478
movq %rax, %rdi
callq 0x2cbee
leaq 0x76142(%rip), %rsi     # 0x95480
movq %rax, %rdi
callq 0x2cbee
leaq 0x7613b(%rip), %rsi     # 0x95488
movq %rax, %rdi
callq 0x2cbee
leaq 0x76134(%rip), %rsi     # 0x95490
movq %rax, %rdi
callq 0x2cbee
leaq 0x7612d(%rip), %rsi     # 0x95498
movq %rax, %rdi
callq 0x2cbee
leaq 0x76126(%rip), %rsi     # 0x954a0
movq %rax, %rdi
callq 0x2cbee
leaq 0x7611f(%rip), %rsi     # 0x954a8
movq %rax, %rdi
callq 0x2cbee
leaq 0x76118(%rip), %rsi     # 0x954b0
movq %rax, %rdi
callq 0x2cbee
leaq 0x76111(%rip), %rsi     # 0x954b8
movq %rax, %rdi
callq 0x2cbee
leaq 0x7610a(%rip), %rsi     # 0x954c0
movq %rax, %rdi
callq 0x2cbee
leaq 0x76103(%rip), %rsi     # 0x954c8
movq %rax, %rdi
callq 0x2cbee
leaq 0x760fc(%rip), %rsi     # 0x954d0
movq %rax, %rdi
callq 0x2cbee
leaq 0x760f5(%rip), %rsi     # 0x954d8
movq %rax, %rdi
callq 0x2cbee
leaq 0x760ee(%rip), %rsi     # 0x954e0
movq %rax, %rdi
callq 0x2cbee
leaq 0x760e7(%rip), %rsi     # 0x954e8
movq %rax, %rdi
callq 0x2cbee
cmpb $0x1, 0x786f9(%rip)     # 0x97b09
jne 0x1f423
leaq 0x760d7(%rip), %rsi     # 0x954f0
movq 0x10(%rsp), %rdi
callq 0x2cbee
movq 0x10(%rsp), %rdi
callq 0x2ccdc
movq 0x20(%rsp), %rdx
movq 0x138(%rdx), %rax
leaq 0x128(%rdx), %rcx
movq %rcx, 0x48(%rsp)
leaq 0x38(%rdx), %r12
movzbl %bpl, %ebp
cmpq 0x48(%rsp), %rax
je 0x1f512
leaq 0x20(%rax), %rbx
movq 0x40(%rax), %r13
movq %rax, 0x50(%rsp)
movq 0x48(%rax), %r15
cmpq %r15, %r13
je 0x1f503
movq (%r13), %r14
movq 0x58(%rsp), %rax
andl $0x0, (%rax)
testq %r14, %r14
je 0x1f531
movq %r14, %rdi
callq 0x202a8
testb %al, %al
je 0x1f4a5
movq 0x218(%r14), %rax
cmpq 0x220(%r14), %rax
jne 0x1f4e0
jmp 0x1f4fa
movq %r14, %rdi
callq 0x26b90
movq 0x20(%rsp), %rcx
cmpb 0x30(%rcx), %al
jae 0x1f4c3
movq %r14, %rdi
callq 0x26d82
testb %al, %al
je 0x1f4fa
leaq 0x250(%r14), %rsi
movq %r12, %rdi
callq 0x2be42
testb %al, %al
jne 0x1f4fa
cmpb $0x0, 0x2a0(%r14)
jne 0x1f4fa
movq %r14, %rdi
movq 0x10(%rsp), %rsi
movq %rbx, %rdx
movl %ebp, %ecx
callq 0x24244
movq %r14, %rdi
callq 0x18638
addq $0x8, %r13
jmp 0x1f469
movq 0x50(%rsp), %rdi
callq 0xb620
jmp 0x1f44d
leaq 0x140(%rsp), %rdi
callq 0x2f806
addq $0x178, %rsp            # imm = 0x178
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb680
testl %eax, %eax
jne 0x1f6f4
leaq 0x4a3e2(%rip), %rsi     # 0x69927
leaq 0xc0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x27230
leaq 0xa0(%rsp), %rdi
movl $0x828, %esi            # imm = 0x828
callq 0x279bd
leaq 0xe0(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x27956
leaq 0x4a3b2(%rip), %rdx     # 0x6993f
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x273ec
leaq 0x4bbd5(%rip), %rsi     # 0x6b17e
leaq 0x120(%rsp), %rdi
leaq 0x1f(%rsp), %rdx
callq 0x27230
leaq 0x4a84e(%rip), %rdx     # 0x69e10
leaq 0x80(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0x273ec
leaq 0x60(%rsp), %rdi
leaq 0x100(%rsp), %rsi
leaq 0x80(%rsp), %rdx
callq 0x27956
leaq 0x4b40a(%rip), %rdx     # 0x6aa02
leaq 0x28(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x273ec
leaq 0x28(%rsp), %rdi
callq 0x2f08c
callq 0xb680
testl %eax, %eax
jne 0x1f6f4
leaq 0x4a302(%rip), %rsi     # 0x69927
leaq 0xe0(%rsp), %rdi
leaq 0x120(%rsp), %rdx
callq 0x27230
leaq 0xc0(%rsp), %rdi
movl $0x7f8, %esi            # imm = 0x7F8
callq 0x279bd
leaq 0x100(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
leaq 0xc0(%rsp), %rdx
callq 0x27956
leaq 0x4a2cf(%rip), %rdx     # 0x6993f
leaq 0x60(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x273ec
leaq 0x4baf5(%rip), %rsi     # 0x6b17e
leaq 0x80(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x27230
leaq 0x4a76e(%rip), %rdx     # 0x69e10
leaq 0xa0(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x273ec
leaq 0x28(%rsp), %rdi
leaq 0x60(%rsp), %rsi
leaq 0xa0(%rsp), %rdx
callq 0x27956
leaq 0x503dd(%rip), %rdx     # 0x6fab2
leaq 0x140(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x273ec
leaq 0x140(%rsp), %rdi
callq 0x2f08c
pushq $0x1
popq %rdi
callq 0xb690
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0xbb38
jmp 0x1f711
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x1f720
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xbb38
jmp 0x1f732
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xbb38
jmp 0x1f744
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xbb38
jmp 0x1f753
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0xbb38
jmp 0x1f765
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xbb38
jmp 0x1f777
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
jmp 0x1f78b
jmp 0x1f795
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x1f83b
movq %rax, %rbx
jmp 0x1f83b
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb38
jmp 0x1f7af
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xbb38
jmp 0x1f7be
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0xbb38
jmp 0x1f7d0
movq %rax, %rbx
leaq 0x120(%rsp), %rdi
callq 0xbb38
jmp 0x1f7e2
movq %rax, %rbx
leaq 0x100(%rsp), %rdi
callq 0xbb38
jmp 0x1f7f6
jmp 0x1f82b
movq %rax, %rbx
leaq 0xe0(%rsp), %rdi
callq 0xbb38
jmp 0x1f808
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xbb38
jmp 0x1f81a
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0xbb38
jmp 0x1f82e
jmp 0x1f82b
movq %rax, %rbx
leaq 0x140(%rsp), %rdi
callq 0x2f806
movq %rbx, %rdi
callq 0xb9f0
nop