// File: /workspace/github_c_makefile_star2_O2/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:
movq 0x18(%rdi), %rdx
movslq 0x4(%rdx), %rsi
leaq 0xedc6(%rip), %rcx      # 0x25be0
pushq $0x1
popq %rax
cmpl $0x5, (%rcx,%rsi,4)
je 0x16fbc
movq 0x10(%rdi), %rsi
movslq 0x4(%rsi), %r8
cmpl $0x5, (%rcx,%r8,4)
je 0x16fbc
movl 0xd23f(%rip), %r8d      # 0x24080
leal 0x1(%r8), %ecx
movl %ecx, 0xd235(%rip)      # 0x24080
cmpl $0x7530, %r8d           # imm = 0x7530
jl 0x16e7f
movl $0x1, 0xd222(%rip)      # 0x24080
xorl %r8d, %r8d
pushq $0x1
popq %rcx
leaq 0x271db5(%rip), %r9     # 0x288c20
cmpq $0x100, %r8             # imm = 0x100
je 0x16e7f
andl $0x0, (%r8,%r9)
addq $0x4, %r8
jmp 0x16e6b
movq 0x10(%rsi), %rsi
movq 0x18(%rdx), %r8
movq 0x20(%r8), %rdx
movq 0x10(%rdx), %r9
movq 0x18(%rdx), %rdx
movq 0x10(%r9), %r9
movq 0x18(%rdx), %r10
movslq 0x4(%r10), %r11
leaq 0x271d7a(%rip), %rdx    # 0x288c20
movl %ecx, (%rdx,%r11,4)
movq 0x18(%r10), %r10
movslq 0x4(%r10), %r11
movl %ecx, (%rdx,%r11,4)
cmpq %r9, %r10
jne 0x16eaa
movq 0x18(%r8), %r8
movq 0x20(%r8), %r9
movq 0x10(%r9), %r10
movq 0x18(%r9), %r11
movq 0x10(%r10), %r9
movq 0x18(%r11), %r10
movslq 0x4(%r10), %r11
movl %ecx, (%rdx,%r11,4)
movq 0x18(%r10), %r10
movslq 0x4(%r10), %r11
movl %ecx, (%rdx,%r11,4)
cmpq %r9, %r10
jne 0x16edb
jmp 0x16f1f
movq 0x18(%r8), %r8
movq 0x20(%r8), %r9
movq 0x10(%r9), %r10
movq 0x18(%r9), %r11
movq 0x10(%r10), %r9
movq 0x18(%r11), %r10
movslq 0x4(%r10), %r11
movl %ecx, (%rdx,%r11,4)
movq 0x18(%r10), %r10
movslq 0x4(%r10), %r11
movl %ecx, (%rdx,%r11,4)
cmpq %r9, %r10
jne 0x16f0e
cmpq %rsi, %r8
jne 0x16eee
movq 0x20(%rdi), %rsi
movq 0x18(%rsi), %rdi
movq 0x18(%rdi), %rdi
movq 0x20(%rdi), %r9
movq 0x18(%r9), %r8
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x10(%rsi), %rsi
movq 0x10(%rsi), %rsi
movq 0x10(%r9), %r9
movq 0x10(%r9), %r9
cmpq %r9, %r8
je 0x16f79
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
jne 0x16f64
jmp 0x16fbc
movq 0x18(%rdi), %rdi
movq 0x20(%rdi), %r9
movq 0x18(%r9), %r8
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x10(%r9), %r9
movq 0x10(%r9), %r9
cmpq %r9, %r8
je 0x17002
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
jne 0x16fa9
retq
movq 0x18(%rdi), %rdi
movq 0x20(%rdi), %r9
movq 0x18(%r9), %r8
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
je 0x16fbc
movq 0x10(%r9), %r9
movq 0x10(%r9), %r9
cmpq %r9, %r8
je 0x17002
movq 0x18(%r8), %r8
movslq 0x4(%r8), %r10
cmpl %ecx, (%rdx,%r10,4)
jne 0x16fed
jmp 0x16fbc
cmpq %rsi, %rdi
jne 0x16fbd
xorl %eax, %eax
retq