// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: make_3bangle_list
static void
make_3bangle_list(EDGE *list[], int* listlength, EDGE *nf3cycleedges[],
                   int numnf3cycleedges)
 
/* returns the list of legal 3-bangles, that is of (undirected) edges
   so that:

   (i) both endvertices have valency >=6
   (ii) it is not on an nf-3-cycle at the moment
   (iii) it is the center of a 3bangle
   (iv) after switching it is not in a double edge
 
   nf3cycleedges[] must be a list of all undirected edges -- that
   is: always containing edge->min lying on nf-3-cycles and
   numnf3cycleedges their number.
*/
 
{
  int i, counter;
  EDGE *run, *end;
 
  RESETMARKS;
  while (--numnf3cycleedges >=0) MARKLO(nf3cycleedges[numnf3cycleedges]);
 
  counter=0;
 
  for (i=0; i<nv; i++)
    if (degree[i]>=6)
      { run=end=firstedge[i];
        do
          { if (run==run->min && degree[run->end]>=6
                  && !ISMARKEDLO(run) && is_3banglecenter_notdouble(run))
              { list[counter]=run; counter++; }
            run=run->next;
          }
        while (run != end);
      }
 
  *listlength=counter;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl 0x15777(%rip), %eax     # 0x3c084
addl $0x2, %eax
movl %eax, 0x1576e(%rip)     # 0x3c084
cmpl $0x7530, %eax           # imm = 0x7530
jle 0x2695d
movl $0x2, 0x1575d(%rip)     # 0x3c084
movl $0x0, -0x3c(%rbp)
cmpl $0x1198, -0x3c(%rbp)    # imm = 0x1198
jge 0x2695b
movslq -0x3c(%rbp), %rcx
leaq 0x233cee(%rip), %rax    # 0x25a630
shlq $0x6, %rcx
addq %rcx, %rax
movl $0x0, 0x30(%rax)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x2692e
jmp 0x2695d
jmp 0x2695f
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, %eax
jl 0x26984
movl 0x15711(%rip), %ecx     # 0x3c084
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movl %ecx, 0x30(%rax)
jmp 0x2695f
movl $0x0, -0x24(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl 0x233c85(%rip), %eax    # 0x25a620
jge 0x26a4e
movslq -0x20(%rbp), %rcx
leaq 0x17254(%rip), %rax     # 0x3dc00
cmpl $0x6, (%rax,%rcx,4)
jl 0x26a3e
movslq -0x20(%rbp), %rcx
leaq 0x1703f(%rip), %rax     # 0x3da00
movq (%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x30(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jne 0x26a26
movq -0x30(%rbp), %rax
movslq 0x4(%rax), %rcx
leaq 0x17216(%rip), %rax     # 0x3dc00
cmpl $0x6, (%rax,%rcx,4)
jl 0x26a26
movq -0x30(%rbp), %rax
movl 0x30(%rax), %eax
cmpl 0x15687(%rip), %eax     # 0x3c084
je 0x26a26
movq -0x30(%rbp), %rdi
callq 0x26a60
cmpl $0x0, %eax
je 0x26a26
movq -0x30(%rbp), %rdx
movq -0x8(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x38(%rbp), %rax
jne 0x269cd
jmp 0x26a3e
jmp 0x26a40
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x26992
movl -0x24(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, (%rax)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)