// File: ncbi[P]amr/amr_report.cpp
// Function: (anonymous namespace)::BlastAlignment::insideEq((anonymous namespace)::BlastAlignment const&) const
bool insideEq (const BlastAlignment &other) const
    { ASSERT (targetProt == other. targetProt);
      ASSERT (targetName == other. targetName);
    #if 1
    	if (targetStrand != other. targetStrand)
    	  return false;
    	if (   targetStart + mismatchTailTarget () >= other. targetStart 
          && targetEnd                           <= other. targetEnd + mismatchTailTarget ()
         )
        return true;
      if (   ! partialPseudo ()
          || isMutationProt ()
          || other. isMutationProt ()
          || fusion2geneSymbols () != other. fusion2geneSymbols ()
        #if 0
          || refAccession. empty ()
          || other. refAccession. empty ()
          || refAccession != other. refAccession
        #endif
         )
        return false;
      // PD-4698
      // Most probably a repeat protein
      const size_t pseudoOverlap = mismatchTailTarget () * 2;  // PAR
      return    (targetStart < other. targetStart && targetEnd                   >= other. targetStart + pseudoOverlap)
             || (targetEnd   > other. targetEnd   && targetStart + pseudoOverlap <= other. targetEnd);
    #else
    	return    targetStrand                        == other. targetStrand
             && targetStart + mismatchTailTarget () >= other. targetStart 
             && targetEnd                           <= other. targetEnd + mismatchTailTarget ();
    #endif
    }

// Assembly:
subq $0x2e8, %rsp            # imm = 0x2E8
movq %rdi, 0x2d8(%rsp)
movq %rsi, 0x2d0(%rsp)
movq 0x2d8(%rsp), %rax
movq %rax, 0x40(%rsp)
callq 0xc090
movq %rax, %rcx
movq 0x40(%rsp), %rax
movl $0x0, (%rcx)
movb 0x8(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movq 0x2d0(%rsp), %rcx
movb 0x8(%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x45e7f
callq 0xc870
cmpl $0x0, %eax
jne 0x45e75
leaq 0x22f(%rsp), %rdi
movq %rdi, 0x38(%rsp)
callq 0xcca0
movq 0x38(%rsp), %rdx
leaq 0xb7ce3(%rip), %rsi     # 0xfd907
leaq 0x230(%rsp), %rdi
callq 0x50b50
jmp 0x45c33
leaq 0x1f8(%rsp), %rdi
movl $0x404, %esi            # imm = 0x404
callq 0x52760
jmp 0x45c47
leaq 0x250(%rsp), %rdi
leaq 0x230(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
callq 0x52670
jmp 0x45c66
leaq 0xb7cb2(%rip), %rdx     # 0xfd91f
leaq 0x270(%rsp), %rdi
leaq 0x250(%rsp), %rsi
callq 0x50db0
jmp 0x45c84
leaq 0x1b7(%rsp), %rdi
movq %rdi, 0x30(%rsp)
callq 0xcca0
movq 0x30(%rsp), %rdx
leaq 0xb9050(%rip), %rsi     # 0xfecf2
leaq 0x1b8(%rsp), %rdi
callq 0x50b50
jmp 0x45cb1
leaq 0xb8166(%rip), %rdx     # 0xfde1e
leaq 0x1d8(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
callq 0x50db0
jmp 0x45ccf
leaq 0x290(%rsp), %rdi
leaq 0x270(%rsp), %rsi
leaq 0x1d8(%rsp), %rdx
callq 0x52670
jmp 0x45cee
leaq 0xb9050(%rip), %rdx     # 0xfed45
leaq 0x2b0(%rsp), %rdi
leaq 0x290(%rsp), %rsi
callq 0x50db0
jmp 0x45d0c
leaq 0x2b0(%rsp), %rdi
callq 0x69f20
jmp 0x45d1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e49
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45e08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x45dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
leaq 0x2b0(%rsp), %rdi
callq 0xce58
leaq 0x290(%rsp), %rdi
callq 0xce58
leaq 0x1d8(%rsp), %rdi
callq 0xce58
leaq 0x1b8(%rsp), %rdi
callq 0xce58
leaq 0x1b7(%rsp), %rdi
callq 0xc750
leaq 0x270(%rsp), %rdi
callq 0xce58
leaq 0x250(%rsp), %rdi
callq 0xce58
leaq 0x1f8(%rsp), %rdi
callq 0xce58
leaq 0x230(%rsp), %rdi
callq 0xce58
leaq 0x22f(%rsp), %rdi
callq 0xc750
jmp 0x4639a
movl $0x1, %edi
callq 0xc880
callq 0xc090
movq 0x40(%rsp), %rdi
movl $0x0, (%rax)
addq $0x10, %rdi
movq 0x2d0(%rsp), %rsi
addq $0x10, %rsi
callq 0x52910
testb $0x1, %al
jne 0x46133
callq 0xc870
cmpl $0x0, %eax
jne 0x46129
leaq 0x10f(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0xcca0
movq 0x28(%rsp), %rdx
leaq 0xb7a2f(%rip), %rsi     # 0xfd907
leaq 0x110(%rsp), %rdi
callq 0x50b50
jmp 0x45ee7
leaq 0xe8(%rsp), %rdi
movl $0x405, %esi            # imm = 0x405
callq 0x52760
jmp 0x45efb
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x52670
jmp 0x45f1a
leaq 0xb79fe(%rip), %rdx     # 0xfd91f
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x50db0
jmp 0x45f38
leaq 0xa7(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xcca0
movq 0x20(%rsp), %rdx
leaq 0xb8d9c(%rip), %rsi     # 0xfecf2
leaq 0xa8(%rsp), %rdi
callq 0x50b50
jmp 0x45f65
leaq 0xb7eb2(%rip), %rdx     # 0xfde1e
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x50db0
jmp 0x45f83
leaq 0x170(%rsp), %rdi
leaq 0x150(%rsp), %rsi
leaq 0xc8(%rsp), %rdx
callq 0x52670
jmp 0x45fa2
leaq 0xb8dbc(%rip), %rdx     # 0xfed65
leaq 0x190(%rsp), %rdi
leaq 0x170(%rsp), %rsi
callq 0x50db0
jmp 0x45fc0
leaq 0x190(%rsp), %rdi
callq 0x69f20
jmp 0x45fcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x46117
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x4610a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460bc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
jmp 0x460af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
leaq 0x190(%rsp), %rdi
callq 0xce58
leaq 0x170(%rsp), %rdi
callq 0xce58
leaq 0xc8(%rsp), %rdi
callq 0xce58
leaq 0xa8(%rsp), %rdi
callq 0xce58
leaq 0xa7(%rsp), %rdi
callq 0xc750
leaq 0x150(%rsp), %rdi
callq 0xce58
leaq 0x130(%rsp), %rdi
callq 0xce58
leaq 0xe8(%rsp), %rdi
callq 0xce58
leaq 0x110(%rsp), %rdi
callq 0xce58
leaq 0x10f(%rsp), %rdi
callq 0xc750
jmp 0x4639a
movl $0x1, %edi
callq 0xc880
movq 0x40(%rsp), %rax
movb 0x68(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movq 0x2d0(%rsp), %rcx
movb 0x68(%rcx), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x46162
movb $0x0, 0x2e7(%rsp)
jmp 0x46389
movq 0x40(%rsp), %rdi
movq 0x50(%rdi), %rax
movq %rax, 0x18(%rsp)
callq 0x47df0
movq %rax, %rcx
movq 0x18(%rsp), %rax
addq %rcx, %rax
movq 0x2d0(%rsp), %rcx
cmpq 0x50(%rcx), %rax
jb 0x461d4
movq 0x40(%rsp), %rdi
movq 0x58(%rdi), %rax
movq %rax, 0x10(%rsp)
movq 0x2d0(%rsp), %rax
movq 0x58(%rax), %rax
movq %rax, 0x8(%rsp)
callq 0x47df0
movq 0x8(%rsp), %rcx
movq %rax, %rdx
movq 0x10(%rsp), %rax
addq %rdx, %rcx
cmpq %rcx, %rax
ja 0x461d4
movb $0x1, 0x2e7(%rsp)
jmp 0x46389
movq 0x40(%rsp), %rdi
callq 0x44df0
movb %al, %cl
movb $0x0, 0x7f(%rsp)
movb $0x0, 0x57(%rsp)
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x7(%rsp)
jne 0x461f7
jmp 0x4626e
movq 0x40(%rsp), %rdi
callq 0x37da0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x7(%rsp)
jne 0x4626e
movq 0x2d0(%rsp), %rdi
callq 0x37da0
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, 0x7(%rsp)
jne 0x4626e
movq 0x40(%rsp), %rsi
leaq 0x80(%rsp), %rdi
callq 0x463b0
movb $0x1, 0x7f(%rsp)
movq 0x2d0(%rsp), %rsi
leaq 0x58(%rsp), %rdi
callq 0x463b0
jmp 0x46253
movb $0x1, 0x57(%rsp)
leaq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5d640
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
movb %al, 0x6(%rsp)
testb $0x1, 0x57(%rsp)
jne 0x4627f
jmp 0x46289
leaq 0x58(%rsp), %rdi
callq 0xce58
testb $0x1, 0x7f(%rsp)
jne 0x46292
jmp 0x4629f
leaq 0x80(%rsp), %rdi
callq 0xce58
movb 0x6(%rsp), %al
testb $0x1, %al
jne 0x462a9
jmp 0x462e5
movb $0x0, 0x2e7(%rsp)
jmp 0x46389
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x220(%rsp)
movl %eax, 0x21c(%rsp)
testb $0x1, 0x7f(%rsp)
jne 0x462d3
jmp 0x462e0
leaq 0x80(%rsp), %rdi
callq 0xce58
jmp 0x4639a
movq 0x40(%rsp), %rdi
callq 0x47df0
movq %rax, %rcx
movq 0x40(%rsp), %rax
shlq %rcx
movq %rcx, 0x48(%rsp)
movq 0x50(%rax), %rax
movq 0x2d0(%rsp), %rcx
cmpq 0x50(%rcx), %rax
jae 0x46336
movq 0x40(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x2d0(%rsp), %rax
movq 0x50(%rax), %rdx
addq 0x48(%rsp), %rdx
movb $0x1, %al
cmpq %rdx, %rcx
movb %al, 0x5(%rsp)
jae 0x4637c
movq 0x40(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x2d0(%rsp), %rdx
xorl %eax, %eax
cmpq 0x58(%rdx), %rcx
movb %al, 0x4(%rsp)
jbe 0x46374
movq 0x40(%rsp), %rax
movq 0x50(%rax), %rax
addq 0x48(%rsp), %rax
movq 0x2d0(%rsp), %rcx
cmpq 0x58(%rcx), %rax
setbe %al
movb %al, 0x4(%rsp)
movb 0x4(%rsp), %al
movb %al, 0x5(%rsp)
movb 0x5(%rsp), %al
andb $0x1, %al
movb %al, 0x2e7(%rsp)
movb 0x2e7(%rsp), %al
andb $0x1, %al
addq $0x2e8, %rsp            # imm = 0x2E8
retq
movq 0x220(%rsp), %rdi
callq 0xcc90
nopw (%rax,%rax)