// File: ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::BlastAlignment::getMethod[abi:cxx11](GFF_sp::Locus const&) const
string getMethod (const Locus &cds) const
	  { //IMPLY (refExactlyMatched () && ! mutation_all. get (), ! isMutationProt ())
	    string method (fromHmm
	                     ? "HMM"
	                     : isMutationProt ()
    	                   ? "POINT"
    	                   : refProtExactlyMatched (true) 
            	             ? alleleMatch () 
            	               ? "ALLELE"
            	               : "EXACT"  // PD-776
        	                 : partial ()
          	                 ? truncated (cds)
          	                   ? "PARTIAL_CONTIG_END"  // PD-2267
          	                   : "PARTIAL"
        	                   : "BLAST"
        	           );
      // PD-2088, PD-2320
      bool suffix = true;
	    if (   (   method == "BLAST" 
    	        || method == "PARTIAL"
    	        || method == "PARTIAL_CONTIG_END"
    	       ) 
	      //&& ! targetProt
	       )
	    {
	      if (stopCodon)
	      {
	        method = "INTERNAL_STOP";	
  	      suffix = false;
	      }
	    #if 0
	      else if (frameShift)
	      {
	        method = "FRAME_SHIFT";
	        suffix = false;
	      }
	    #endif
	    }
	    if (suffix && method != "HMM")
	      method += (targetProt ? "P" : "X");	  
	    return method;
	  }

// Assembly:
subq $0x88, %rsp
movq %rdi, 0x40(%rsp)
movq %rdi, %rax
movq %rax, 0x48(%rsp)
movq %rdi, 0x80(%rsp)
movq %rsi, 0x78(%rsp)
movq %rdx, 0x70(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x50(%rsp)
movb $0x0, 0x6f(%rsp)
testb $0x1, 0x24a(%rax)
je 0x4e20f
leaq 0xb127c(%rip), %rax     # 0xff481
movq %rax, 0x38(%rsp)
jmp 0x4e2d6
movq 0x50(%rsp), %rdi
callq 0x37da0
testb $0x1, %al
jne 0x4e21f
jmp 0x4e230
leaq 0xb1255(%rip), %rax     # 0xff47b
movq %rax, 0x30(%rsp)
jmp 0x4e2cc
movq 0x50(%rsp), %rdi
movl $0x1, %esi
callq 0x623a0
testb $0x1, %al
jne 0x4e245
jmp 0x4e26d
movq 0x50(%rsp), %rdi
callq 0x47c20
movb %al, %dl
leaq 0xb1262(%rip), %rax     # 0xff4ba
leaq 0xb1254(%rip), %rcx     # 0xff4b3
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, 0x28(%rsp)
jmp 0x4e2c2
movq 0x50(%rsp), %rdi
callq 0x38260
testb $0x1, %al
jne 0x4e27d
jmp 0x4e2aa
movq 0x50(%rsp), %rdi
movq 0x70(%rsp), %rsi
callq 0x44e50
movb %al, %dl
leaq 0xb123e(%rip), %rax     # 0xff4d3
leaq 0xb1224(%rip), %rcx     # 0xff4c0
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, 0x20(%rsp)
jmp 0x4e2b8
leaq 0xb0836(%rip), %rax     # 0xfeae7
movq %rax, 0x20(%rsp)
jmp 0x4e2b8
movq 0x20(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
leaq 0x6e(%rsp), %rdi
movq %rdi, 0x18(%rsp)
callq 0xcca0
movq 0x40(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
callq 0x50b50
jmp 0x4e305
leaq 0x6e(%rsp), %rdi
callq 0xc750
movq 0x40(%rsp), %rdi
movb $0x1, 0x5b(%rsp)
leaq 0xb07c7(%rip), %rsi     # 0xfeae7
callq 0x543a0
testb $0x1, %al
jne 0x4e355
movq 0x40(%rsp), %rdi
leaq 0xb119e(%rip), %rsi     # 0xff4d3
callq 0x543a0
testb $0x1, %al
jne 0x4e355
movq 0x40(%rsp), %rdi
leaq 0xb1176(%rip), %rsi     # 0xff4c0
callq 0x543a0
testb $0x1, %al
jne 0x4e355
jmp 0x4e3b9
movq 0x50(%rsp), %rax
testb $0x1, 0x249(%rax)
je 0x4e3b7
movq 0x40(%rsp), %rdi
leaq 0xaf32c(%rip), %rsi     # 0xfd69b
callq 0xc9a0
jmp 0x4e376
movb $0x0, 0x5b(%rsp)
jmp 0x4e3b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x60(%rsp)
movl %eax, 0x5c(%rsp)
leaq 0x6e(%rsp), %rdi
callq 0xc750
jmp 0x4e43b
movq 0x40(%rsp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x60(%rsp)
movl %eax, 0x5c(%rsp)
callq 0xce58
jmp 0x4e43b
jmp 0x4e3b9
testb $0x1, 0x5b(%rsp)
je 0x4e418
movq 0x40(%rsp), %rdi
leaq 0xb10b5(%rip), %rsi     # 0xff481
callq 0x64ec0
movb %al, 0xf(%rsp)
jmp 0x4e3d7
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x4e3e1
jmp 0x4e418
movq 0x50(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x4e3f9
leaq 0xb3906(%rip), %rax     # 0x101cf9
movq %rax, (%rsp)
jmp 0x4e406
leaq 0xb45e5(%rip), %rax     # 0x1029e5
movq %rax, (%rsp)
jmp 0x4e406
movq 0x40(%rsp), %rdi
movq (%rsp), %rsi
callq 0xc690
jmp 0x4e416
jmp 0x4e418
movb $0x1, 0x6f(%rsp)
testb $0x1, 0x6f(%rsp)
jne 0x4e42e
movq 0x40(%rsp), %rdi
callq 0xce58
movq 0x48(%rsp), %rax
addq $0x88, %rsp
retq
movq 0x60(%rsp), %rdi
callq 0xcc90
nopw %cs:(%rax,%rax)