// File: /workspace/github_c_makefile_star2_O3/mishun[P]plantri/plantri.c
// Function: on_nf_5_cycle
static int
on_nf_5_cycle(EDGE *e)
/* nf means that there are vertices inside both parts of the
   triangulation separated by the cycle. 

   Assumes that there are no nf-4-cycles in the graph. This means that
   at ANY vertex of the cycle there is an edge pointing into EACH of the
   two components. 

   Assumes further that the valency of all vertices involved is at least 5.

   Returns TRUE, if edge e is on an nf-5cycle, FALSE otherwise
*/

{
  EDGE *run, *run1, *last, *last1, *dummy;

  if ((degree[e->next->end]==5) || (degree[e->prev->end]==5)) return TRUE;

  RESETMARKS_V;
  last=e->prev->prev;
  run=e->next->next;
    dummy=run->invers;
    last1=dummy->prev->prev;
    run1=dummy->next->next;
    MARK_V(run1->end);
    run1=run1->next;
    MARK_V(run1->end);
    while (run1!=last1) { run1=run1->next; MARK_V(run1->end); }
  run=run->next;
    dummy=run->invers;
    last1=dummy->prev->prev;
    run1=dummy->next->next;
    MARK_V(run1->end);
    run1=run1->next;
    MARK_V(run1->end);
    while (run1!=last1) { run1=run1->next; MARK_V(run1->end); }
  while (run!=last)
    { run=run->next;
      dummy=run->invers;
      last1=dummy->prev->prev;
      run1=dummy->next->next;
      MARK_V(run1->end);
      run1=run1->next;
      MARK_V(run1->end);
      while (run1!=last1) { run1=run1->next; MARK_V(run1->end); }
    }

  e=e->invers;

  last=e->prev->prev;
  run=e->next->next;
    dummy=run->invers;
    last1=dummy->prev->prev;
    run1=dummy->next->next;
    if (ISMARKED_V(run1->end)) return TRUE;
    run1=run1->next;
    if (ISMARKED_V(run1->end)) return TRUE;
    while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return TRUE; }
  run=run->next;
    dummy=run->invers;
    last1=dummy->prev->prev;
    run1=dummy->next->next;
    if (ISMARKED_V(run1->end)) return TRUE;
    run1=run1->next;
    if (ISMARKED_V(run1->end)) return TRUE;
    while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return TRUE; }
  while (run!=last)
    { run=run->next;
      dummy=run->invers;
      last1=dummy->prev->prev;
      run1=dummy->next->next;
      if (ISMARKED_V(run1->end)) return TRUE;
      run1=run1->next;
      if (ISMARKED_V(run1->end)) return TRUE;
      while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return TRUE; }
    }

  return FALSE;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq 0x18(%rdi), %r15
movslq 0x4(%r15), %rcx
leaq 0xf70a(%rip), %rax      # 0x27bf0
movl $0x1, %ebx
cmpl $0x5, (%rax,%rcx,4)
je 0x186db
movq %rdi, %r14
movq 0x10(%rdi), %r12
movslq 0x4(%r12), %rcx
cmpl $0x5, (%rax,%rcx,4)
je 0x186db
movl 0xdb7f(%rip), %ecx      # 0x26090
leal 0x1(%rcx), %eax
movl %eax, 0xdb76(%rip)      # 0x26090
cmpl $0x7530, %ecx           # imm = 0x7530
jl 0x18544
movl $0x1, 0xdb64(%rip)      # 0x26090
leaq 0x2726fd(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movl $0x1, %eax
movq 0x10(%r12), %rdx
movq 0x18(%r15), %rsi
movq 0x20(%rsi), %rcx
movq 0x10(%rcx), %rdi
movq 0x18(%rcx), %rcx
movq 0x10(%rdi), %rdi
movq 0x18(%rcx), %r8
movslq 0x4(%r8), %r9
leaq 0x2726c4(%rip), %rcx    # 0x28ac30
movl %eax, (%rcx,%r9,4)
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r9
movl %eax, (%rcx,%r9,4)
cmpq %rdi, %r8
jne 0x18570
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %rdi
movq 0x10(%rdi), %r8
movq 0x18(%rdi), %r9
movq 0x10(%r8), %rdi
movq 0x18(%r9), %r8
movslq 0x4(%r8), %r9
movl %eax, (%rcx,%r9,4)
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r9
movl %eax, (%rcx,%r9,4)
cmpq %rdi, %r8
jne 0x185a1
jmp 0x185e5
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %rdi
movq 0x10(%rdi), %r8
movq 0x18(%rdi), %r9
movq 0x10(%r8), %rdi
movq 0x18(%r9), %r8
movslq 0x4(%r8), %r9
movl %eax, (%rcx,%r9,4)
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r9
movl %eax, (%rcx,%r9,4)
cmpq %rdi, %r8
jne 0x185d4
cmpq %rdx, %rsi
jne 0x185b4
movq 0x20(%r14), %rdx
movq 0x18(%rdx), %rsi
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %r8
movq 0x18(%r8), %rdi
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x10(%rdx), %rdx
movq 0x10(%rdx), %rdx
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x1864a
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x18632
jmp 0x186db
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %r8
movq 0x18(%r8), %rdi
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x186d4
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x1867a
jmp 0x186db
movq 0x18(%rsi), %rsi
movq 0x20(%rsi), %r8
movq 0x18(%r8), %rdi
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x186db
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x186d4
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x186bf
jmp 0x186db
cmpq %rdx, %rsi
jne 0x1868f
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq