// File: ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::BlastAlignment::good() const
bool good () const
    { ASSERT (! fromHmm);
      if (refAccession. empty ())
        return true;
    //if (! refMutation. empty ())   // PD-4981: drop
      //return true;
      if (! reportPseudo && pseudo ())
        return false;
      if (isMutationProt () && seqChanges. empty ())  // PD-4981
        return false;
      if (isSusceptibleProt () && ! susceptible)  // Alien organism
        return false;
		  if (susceptible && pIdentity () > susceptible->cutoff + frac_delta)
		    return false;
  	  // PD-1032
	    if (   partial ()
	        && (   parts > 1 
    	        || (! truncatedCds () && refEnd - refStart <= 35)  // PAR  // PD-3287
    	       )
    	   )
  	    return false;
  	  if (brFam)
  	    return true;  	  
  	  if (inFam ())
  	    return false;
	    if (partial ())
        return passBlastRule (partialBR);
      return passBlastRule (completeBR);
    }

// Assembly:
subq $0x148, %rsp            # imm = 0x148
movq %rdi, 0x138(%rsp)
movq 0x138(%rsp), %rax
movq %rax, 0x10(%rsp)
callq 0xc090
movq %rax, %rcx
movq 0x10(%rsp), %rax
movl $0x0, (%rcx)
testb $0x1, 0x24a(%rax)
je 0x3e800
callq 0xc870
cmpl $0x0, %eax
jne 0x3e7f6
leaq 0x97(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xcca0
movq 0x8(%rsp), %rdx
leaq 0xbf33f(%rip), %rsi     # 0xfd907
leaq 0x98(%rsp), %rdi
callq 0x50b50
jmp 0x3e5d7
leaq 0x60(%rsp), %rdi
movl $0x3e4, %esi            # imm = 0x3E4
callq 0x52760
jmp 0x3e5e8
leaq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
leaq 0x60(%rsp), %rdx
callq 0x52670
jmp 0x3e604
leaq 0xbf314(%rip), %rdx     # 0xfd91f
leaq 0xd8(%rsp), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x50db0
jmp 0x3e622
leaq 0x1f(%rsp), %rdi
movq %rdi, (%rsp)
callq 0xcca0
movq (%rsp), %rdx
leaq 0xc061d(%rip), %rsi     # 0xfec58
leaq 0x20(%rsp), %rdi
callq 0x50b50
jmp 0x3e647
leaq 0xbf7d0(%rip), %rdx     # 0xfde1e
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
callq 0x50db0
jmp 0x3e65f
leaq 0xf8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
leaq 0x40(%rsp), %rdx
callq 0x52670
jmp 0x3e67b
leaq 0xc060f(%rip), %rdx     # 0xfec91
leaq 0x118(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
callq 0x50db0
jmp 0x3e699
leaq 0x118(%rsp), %rdi
callq 0x69f20
jmp 0x3e6a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e7e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e7d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e7cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e7c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e7a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e79f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e795
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
jmp 0x3e788
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x88(%rsp)
movl %eax, 0x84(%rsp)
leaq 0x118(%rsp), %rdi
callq 0xce58
leaq 0xf8(%rsp), %rdi
callq 0xce58
leaq 0x40(%rsp), %rdi
callq 0xce58
leaq 0x20(%rsp), %rdi
callq 0xce58
leaq 0x1f(%rsp), %rdi
callq 0xc750
leaq 0xd8(%rsp), %rdi
callq 0xce58
leaq 0xb8(%rsp), %rdi
callq 0xce58
leaq 0x60(%rsp), %rdi
callq 0xce58
leaq 0x98(%rsp), %rdi
callq 0xce58
leaq 0x97(%rsp), %rdi
callq 0xc750
jmp 0x3e9cf
movl $0x1, %edi
callq 0xc880
movq 0x10(%rsp), %rdi
addq $0x250, %rdi            # imm = 0x250
callq 0xcbb0
testb $0x1, %al
jne 0x3e817
jmp 0x3e824
movb $0x1, 0x147(%rsp)
jmp 0x3e9be
testb $0x1, 0x103480(%rip)    # 0x141cab
jne 0x3e84a
movq 0x10(%rsp), %rdi
callq 0x44d10
testb $0x1, %al
jne 0x3e83d
jmp 0x3e84a
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
callq 0x37da0
testb $0x1, %al
jne 0x3e85a
jmp 0x3e87e
movq 0x10(%rsp), %rdi
addq $0x218, %rdi            # imm = 0x218
callq 0x5cee0
testb $0x1, %al
jne 0x3e871
jmp 0x3e87e
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
callq 0x38660
testb $0x1, %al
jne 0x3e88e
jmp 0x3e8aa
movq 0x10(%rsp), %rax
cmpq $0x0, 0x3d8(%rax)
jne 0x3e8aa
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rax
cmpq $0x0, 0x3d8(%rax)
je 0x3e8ef
movq 0x10(%rsp), %rdi
callq 0x5be80
movq 0x10(%rsp), %rax
movq 0x3d8(%rax), %rax
movsd 0xbe761(%rip), %xmm1    # 0xfd038
addsd 0x28(%rax), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x3e8ef
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
callq 0x38260
testb $0x1, %al
jne 0x3e8ff
jmp 0x3e93f
movq 0x10(%rsp), %rax
cmpq $0x1, 0x278(%rax)
ja 0x3e935
movq 0x10(%rsp), %rdi
callq 0x44d50
testb $0x1, %al
jne 0x3e93f
movq 0x10(%rsp), %rcx
movq 0xc0(%rcx), %rax
subq 0xb8(%rcx), %rax
cmpq $0x23, %rax
ja 0x3e93f
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rax
cmpq $0x0, 0x350(%rax)
je 0x3e958
movb $0x1, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
callq 0x37dc0
testb $0x1, %al
jne 0x3e968
jmp 0x3e972
movb $0x0, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
callq 0x38260
testb $0x1, %al
jne 0x3e982
jmp 0x3e9a1
movq 0x10(%rsp), %rdi
movq %rdi, %rsi
addq $0x378, %rsi            # imm = 0x378
callq 0x38290
andb $0x1, %al
movb %al, 0x147(%rsp)
jmp 0x3e9be
movq 0x10(%rsp), %rdi
movq %rdi, %rsi
addq $0x358, %rsi            # imm = 0x358
callq 0x38290
andb $0x1, %al
movb %al, 0x147(%rsp)
movb 0x147(%rsp), %al
andb $0x1, %al
addq $0x148, %rsp            # imm = 0x148
retq
movq 0x88(%rsp), %rdi
callq 0xcc90
nopl (%rax)