// File: /workspace/github_c_makefile_star2_O1/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 0xf7bb(%rip), %rax      # 0x27bf0
movl $0x1, %ebx
cmpl $0x5, (%rax,%rcx,4)
je 0x1862a
movq %rdi, %r14
movq 0x10(%rdi), %r12
movslq 0x4(%r12), %rcx
cmpl $0x5, (%rax,%rcx,4)
je 0x1862a
movl 0xdc38(%rip), %eax      # 0x26098
leal 0x1(%rax), %ecx
movl %ecx, 0xdc2f(%rip)      # 0x26098
cmpl $0x7530, %eax           # imm = 0x7530
jl 0x1848d
movl $0x1, 0xdc1e(%rip)      # 0x26098
leaq 0x2727af(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movq 0x10(%r12), %rdx
movq 0x18(%r15), %rsi
movq 0x20(%rsi), %rax
movq 0x10(%rax), %rcx
movq 0x18(%rax), %rax
movq 0x10(%rcx), %rdi
movq 0x18(%rax), %r8
movl 0xdbe8(%rip), %eax      # 0x26098
movslq 0x4(%r8), %r9
leaq 0x272775(%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 0x184bf
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 0x184f0
jmp 0x18534
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 0x18523
cmpq %rdx, %rsi
jne 0x18503
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 0x1862a
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x1862a
movq 0x10(%rdx), %rdx
movq 0x10(%rdx), %rdx
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x18599
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x18581
jmp 0x1862a
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 0x1862a
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x1862a
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x18623
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x185c9
jmp 0x1862a
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 0x1862a
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
je 0x1862a
movq 0x10(%r8), %r8
movq 0x10(%r8), %r8
cmpq %r8, %rdi
je 0x18623
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r9
cmpl %eax, (%rcx,%r9,4)
jne 0x1860e
jmp 0x1862a
cmpq %rdx, %rsi
jne 0x185de
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq