// File: ncbi[P]amr/seq.cpp
// Function: Seq_sp::Cds::coexists(Seq_sp::Cds const&) const
bool Cds::coexists (const Cds &next) const
{ 
  ASSERT (left () <= next. left ());
  if (! strand () && next. strand ())
    return right () + promoter_min <= next. left ();
  const size_t overlap_min = min ( size_min - 3/*PAR*/
				    	                   , (size_t) ((double) min (size (), next. size ()) * 0.2/*PAR*/)
                                 );
  return getOverlap (next) <= overlap_min;
}

// Assembly:
subq $0x188, %rsp            # imm = 0x188
movq %rdi, 0x178(%rsp)
movq %rsi, 0x170(%rsp)
movq 0x178(%rsp), %rax
movq %rax, 0x18(%rsp)
callq 0xd0a0
movq 0x18(%rsp), %rdi
movl $0x0, (%rax)
callq 0xd88d0
movq %rax, 0x20(%rsp)
movq 0x170(%rsp), %rdi
callq 0xd88d0
movq %rax, %rcx
movq 0x20(%rsp), %rax
cmpq %rcx, %rax
jbe 0xc0bcb
callq 0xd8c0
cmpl $0x0, %eax
jne 0xc0bc1
leaq 0xcf(%rsp), %rdi
movq %rdi, 0x10(%rsp)
callq 0xdd50
movq 0x10(%rsp), %rdx
leaq 0x27abe(%rip), %rsi     # 0xe8446
leaq 0xd0(%rsp), %rdi
callq 0xfae0
jmp 0xc0997
leaq 0x98(%rsp), %rdi
movl $0xf5c, %esi            # imm = 0xF5C
callq 0x11600
jmp 0xc09ab
leaq 0xf0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
leaq 0x98(%rsp), %rdx
callq 0x11510
jmp 0xc09ca
leaq 0x22800(%rip), %rdx     # 0xe31d1
leaq 0x110(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x114c0
jmp 0xc09e8
leaq 0x57(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xdd50
movq 0x8(%rsp), %rdx
leaq 0x2893d(%rip), %rsi     # 0xe9340
leaq 0x58(%rsp), %rdi
callq 0xfae0
jmp 0xc0a0f
leaq 0x22f8e(%rip), %rdx     # 0xe39a4
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x114c0
jmp 0xc0a27
leaq 0x130(%rsp), %rdi
leaq 0x110(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x11510
jmp 0xc0a43
leaq 0x28924(%rip), %rdx     # 0xe936e
leaq 0x150(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x114c0
jmp 0xc0a61
leaq 0x150(%rsp), %rdi
callq 0x173d0
jmp 0xc0a70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0baf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0ba2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b95
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
jmp 0xc0b50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xc0(%rsp)
movl %eax, 0xbc(%rsp)
leaq 0x150(%rsp), %rdi
callq 0xdf08
leaq 0x130(%rsp), %rdi
callq 0xdf08
leaq 0x78(%rsp), %rdi
callq 0xdf08
leaq 0x58(%rsp), %rdi
callq 0xdf08
leaq 0x57(%rsp), %rdi
callq 0xd7a0
leaq 0x110(%rsp), %rdi
callq 0xdf08
leaq 0xf0(%rsp), %rdi
callq 0xdf08
leaq 0x98(%rsp), %rdi
callq 0xdf08
leaq 0xd0(%rsp), %rdi
callq 0xdf08
leaq 0xcf(%rsp), %rdi
callq 0xd7a0
jmp 0xc0d07
movl $0x1, %edi
callq 0xd8e0
movq 0x18(%rsp), %rdi
callq 0xd8910
testb $0x1, %al
jne 0xc0c26
movq 0x170(%rsp), %rdi
callq 0xd8910
testb $0x1, %al
jne 0xc0bec
jmp 0xc0c26
movq 0x18(%rsp), %rdi
callq 0xd88f0
addq $0x3c, %rax
movq %rax, (%rsp)
movq 0x170(%rsp), %rdi
callq 0xd88d0
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
setbe %al
andb $0x1, %al
movb %al, 0x187(%rsp)
jmp 0xc0cf6
movq 0x18(%rsp), %rdi
movq $0x3c, 0x40(%rsp)
callq 0xd8870
movq %rax, 0x30(%rsp)
movq 0x170(%rsp), %rdi
callq 0xd8870
movq %rax, 0x28(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x14880
movq (%rax), %xmm0
movaps 0x26426(%rip), %xmm1    # 0xe7090
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2642a(%rip), %xmm1    # 0xe70a0
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x2770b(%rip), %xmm1    # 0xe8398
mulsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rax
movq %rax, %rdx
sarq $0x3f, %rdx
movsd 0x27710(%rip), %xmm1    # 0xe83b8
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rcx
andq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x38(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x14880
movq 0x18(%rsp), %rdi
movq (%rax), %rax
movq %rax, 0x48(%rsp)
movq 0x170(%rsp), %rsi
callq 0xd8930
cmpq 0x48(%rsp), %rax
setbe %al
andb $0x1, %al
movb %al, 0x187(%rsp)
movb 0x187(%rsp), %al
andb $0x1, %al
addq $0x188, %rsp            # imm = 0x188
retq
movq 0xc0(%rsp), %rdi
callq 0xdd40
nopw %cs:(%rax,%rax)