// File: /workspace/github_c_makefile_star2_O1/mishun[P]plantri/plantri.c
// Function: will_be_on_nf4_5red
static int
will_be_on_nf4_5red(EDGE *e)

/* Checks whether performing a 5-reduction at e (e starting at the
   vertex with valency 5) will produce a configuration with 
   one of the diagonals being on an nf-4-cycle. It is assumed
   that it is already assured that a 5-reduction here is possible
   (e.g. degree[e->start]=5).

   It somehow simulates the situation after the switch. This is
   a bit ugly, since after the switch on ONE side there will be
   an additional edge and on the other there won't.
*/

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

  /* It is important for the correctness, that we go ONE step from e and
     two from e1, resp e2 */

  e1=e->prev->prev->invers; e2=e->next->next->invers;
  e=e->invers;

  RESETMARKS_V;
  last=e->prev; /* there will be an edge in between */
  run=e->next->next;
  MARK_V(run->end);
  while (run!=last)
    { run=run->next;
      MARK_V(run->end);
    }

  last=e1->prev->prev; /* I cannot reach the edges that will be
			  missing after the reduction in two steps, so
			  here I can proceed "as usual" */
  run=e1->next->next;
  dummy=run->invers;
  last1=dummy->prev->prev;
  run1=dummy->next->next;
  if (ISMARKED_V(run1->end)) return 1;
  run1=run1->next;
  if (ISMARKED_V(run1->end)) return 1;
  while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
  run=run->next;
  dummy=run->invers;
  last1=dummy->prev->prev;
  run1=dummy->next->next;
  if (ISMARKED_V(run1->end)) return 1;
  run1=run1->next;
  if (ISMARKED_V(run1->end)) return 1;
  while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
  while (run!=last)
    { run=run->next;
      dummy=run->invers;
      last1=dummy->prev->prev;
      run1=dummy->next->next;
      if (ISMARKED_V(run1->end)) return 1;
      run1=run1->next;
      if (ISMARKED_V(run1->end)) return 1;
      while (run1!=last1)
        { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
    }

  RESETMARKS_V;
  last=e->prev->prev;
  run=e->next; /* there will be an edge in between */
  MARK_V(run->end);
  while (run!=last)
    { run=run->next;
      MARK_V(run->end);
    }

  last=e2->prev->prev; /* I cannot reach the edges that will be
                          missing after the reduction in two steps, 
			  so here I can proceed "as usual" */
  run=e2->next->next;
  dummy=run->invers;
  last1=dummy->prev->prev;
  run1=dummy->next->next;
  if (ISMARKED_V(run1->end)) return 1;
  run1=run1->next;
  if (ISMARKED_V(run1->end)) return 1;
  while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
  run=run->next;
  dummy=run->invers;
  last1=dummy->prev->prev;
  run1=dummy->next->next;
  if (ISMARKED_V(run1->end)) return 1;
  run1=run1->next;
  if (ISMARKED_V(run1->end)) return 1;
  while (run1!=last1) { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
  while (run!=last)
    { run=run->next;
      dummy=run->invers;
      last1=dummy->prev->prev;
      run1=dummy->next->next;
      if (ISMARKED_V(run1->end)) return 1;
      run1=run1->next;
      if (ISMARKED_V(run1->end)) return 1;
      while (run1!=last1)
        { run1=run1->next; if (ISMARKED_V(run1->end)) return 1; }
    }

  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rcx
movq 0x10(%rax), %rax
movq 0x20(%rax), %rbp
movq 0x18(%rcx), %rax
movq 0x20(%rax), %r15
movq 0x20(%rdi), %rbx
movl 0xdf20(%rip), %eax      # 0x26098
leal 0x1(%rax), %ecx
movl %ecx, 0xdf17(%rip)      # 0x26098
cmpl $0x7530, %eax           # imm = 0x7530
jl 0x181a5
movl $0x1, 0xdf06(%rip)      # 0x26098
leaq 0x272a97(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movq 0x10(%rbx), %r13
movq 0x18(%rbx), %r12
movq 0x18(%r12), %rcx
movl 0xdee0(%rip), %eax      # 0x26098
movslq 0x4(%rcx), %rdx
leaq 0x272a6d(%rip), %r14    # 0x28ac30
movl %eax, (%r14,%rdx,4)
cmpq %r13, %rcx
je 0x181d6
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rdx
jmp 0x181c3
movq 0x18(%rbp), %rcx
movq 0x18(%rcx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rsi
movl $0x1, %ebx
cmpl %eax, (%r14,%rsi,4)
je 0x1826f
movq 0x18(%rcx), %rsi
movslq 0x4(%rsi), %rcx
cmpl %eax, (%r14,%rcx,4)
je 0x1826f
movq 0x10(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x1822c
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x18217
jmp 0x1826f
movq 0x18(%rdx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rsi
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x182c5
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x1825c
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x18(%rdx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rsi
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x182c5
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x182b0
jmp 0x1826f
cmpq %rcx, %rdx
jne 0x18280
leal 0x1(%rax), %ecx
movl %ecx, 0xddc5(%rip)      # 0x26098
cmpl $0x7530, %eax           # imm = 0x7530
jl 0x182f7
movl $0x1, 0xddb4(%rip)      # 0x26098
leaq 0x272945(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movq 0x10(%r13), %rcx
movl 0xdd97(%rip), %eax      # 0x26098
movslq 0x4(%r12), %rdx
movl %eax, (%r14,%rdx,4)
cmpq %rcx, %r12
je 0x18316
movq 0x18(%r12), %r12
jmp 0x18301
movq 0x18(%r15), %rcx
movq 0x18(%rcx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rcx
movq 0x18(%rcx), %rcx
movslq 0x4(%rcx), %rsi
cmpl %eax, (%r14,%rsi,4)
je 0x1826f
movq 0x18(%rcx), %rsi
movslq 0x4(%rsi), %rcx
cmpl %eax, (%r14,%rcx,4)
je 0x1826f
movq 0x10(%r15), %rcx
movq 0x10(%rcx), %rcx
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x18372
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x1835a
jmp 0x1826f
movq 0x18(%rdx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rsi
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x18412
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x183aa
jmp 0x1826f
movq 0x18(%rdx), %rdx
movq 0x20(%rdx), %rdi
movq 0x18(%rdi), %rsi
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
je 0x1826f
movq 0x10(%rdi), %rdi
movq 0x10(%rdi), %rdi
cmpq %rdi, %rsi
je 0x18412
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%r14,%r8,4)
jne 0x183fa
jmp 0x1826f
cmpq %rcx, %rdx
jne 0x183c2
xorl %ebx, %ebx
jmp 0x1826f