// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: extend_min5_b
static EDGE*
extend_min5_b(EDGE *e, int do_mirror)

/* extends a graph in the way given by the type b extension for
   5-connected triangulations. The edge e must start and end at
   a vertex of degree 5.

   It returns the edge characterizing this operation.

*/

{

  EDGE *ei, *e2, *e2i, *e3, *e3i, *e4, *e5i;
  EDGE *start, *run, *work1, *work2, *work3;
  int end2, center1, center2, start3;


if (!do_mirror)
  {
  ei=e->invers;
  work2=e->next;
  work3=work2->next;
  e3i=work3->next;
  e3=e3i->invers;
  e5i=e3->next;
  work1=ei->prev;
  e2=work1->prev;
  e2i=e2->invers;
  e4=e2i->prev;

  center1=e->end;
  center2=e->start;
  start3=e3->start;
  end2=e2->end;

  start=min5_b0(nv);

  work1->start=work1->invers->end=nv;
  firstedge[nv]=work1;
  degree[nv]=5;

  work2->start=work2->invers->end=work3->start=work3->invers->end=nv+1;
  firstedge[nv+1]=work2;
  degree[nv+1]=5;

  firstedge[center1]=ei;
  firstedge[center2]=e;

  /* The degree at center1 and center2 remains unchanged */


  start->start=end2;
  start->prev=e4; e4->next=start;
  start->next=e2i; e2i->prev=start;
  (degree[end2])++;

  run=start+1; 
  run->end=end2; run->next=work1; work1->prev=run;

  run++; /*2*/
  run->start=(run+1)->end=center1; 
  run->prev=e2; e2->next=run;
  run->next=ei; ei->prev=run;

  run+=2; /*4*/
  run->start=(run+1)->end=center2;
  run->prev=e; e->next=run;

  run+=2; /*6*/
  run->next=work2; work2->prev=run;

  run++; /*7*/ 
  run->prev=work1; work1->next=run;

  run++; /*8*/
  run->start=(run+1)->end=center2;
  run->next=e3i; e3i->prev=run;

  run+=2; /*10*/
  run->start=start3;
  run->next=e5i; e5i->prev=run;
  run->prev=e3; e3->next=run;

  run++; /*11*/
  run->end=start3;
  run->prev=work3; work3->next=run;
  degree[start3]++;

  nv+=2; ne+=12;

  return (start+4); /* is the smaller one */
  }

 else /* do_mirror=1*/
  {
  ei=e->invers;
  work2=e->prev;
  work3=work2->prev;
  e3i=work3->prev;
  e3=e3i->invers;
  e5i=e3->prev;
  work1=ei->next;
  e2=work1->next;
  e2i=e2->invers;
  e4=e2i->next;

  center1=e->end;
  center2=e->start;
  start3=e3->start;
  end2=e2->end;

  start=min5_b1(nv);

  work1->start=work1->invers->end=nv;
  firstedge[nv]=work1;
  degree[nv]=5;

  work2->start=work2->invers->end=work3->start=work3->invers->end=nv+1;
  firstedge[nv+1]=work2;
  degree[nv+1]=5;

  firstedge[center1]=ei;
  firstedge[center2]=e;

  /* The degree at center1 and center2 remains unchanged */


  start->start=end2;
  start->next=e4; e4->prev=start;
  start->prev=e2i; e2i->next=start;
  (degree[end2])++;

  run=start+1; 
  run->end=end2; run->prev=work1; work1->next=run;

  run++; /*2*/
  run->start=(run+1)->end=center1; 
  run->next=e2; e2->prev=run;
  run->prev=ei; ei->next=run;

  run+=2; /*4*/
  run->start=(run+1)->end=center2;
  run->next=e; e->prev=run;

  run+=2; /*6*/
  run->prev=work2; work2->next=run;

  run++; /*7*/ 
  run->next=work1; work1->prev=run;

  run++; /*8*/
  run->start=(run+1)->end=center2;
  run->prev=e3i; e3i->next=run;

  run+=2; /*10*/
  run->start=start3;
  run->prev=e5i; e5i->next=run;
  run->next=e3; e3->prev=run;

  run++; /*11*/
  run->end=start3;
  run->next=work3; work3->prev=run;
  degree[start3]++;

  nv+=2; ne+=12;

  return (start+4); /* is the smaller one */
  }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x1e9df
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x84(%rbp)
movq -0x38(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x88(%rbp)
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x7c(%rbp)
imull $0xc, 0x23bf7f(%rip), %eax # 0x25a620
movslq %eax, %rcx
leaq 0x23bf85(%rip), %rax    # 0x25a630
addq $-0x2700, %rax          # imm = 0xD900
addq $0x6000, %rax           # imm = 0x6000
shlq $0x6, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movl 0x23bf58(%rip), %ecx    # 0x25a620
movq -0x68(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x68(%rbp), %rax
movl %ecx, (%rax)
movq -0x68(%rbp), %rdx
movslq 0x23bf3c(%rip), %rcx    # 0x25a620
leaq 0x1f315(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movslq 0x23bf2a(%rip), %rcx    # 0x25a620
leaq 0x1f503(%rip), %rax     # 0x3dc00
movl $0x5, (%rax,%rcx,4)
movl 0x23bf16(%rip), %ecx    # 0x25a620
addl $0x1, %ecx
movq -0x78(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x78(%rbp), %rax
movl %ecx, (%rax)
movq -0x70(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x70(%rbp), %rax
movl %ecx, (%rax)
movq -0x70(%rbp), %rdx
movl 0x23bee7(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x1f2ba(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x23bed0(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x1f4a3(%rip), %rax     # 0x3dc00
movl $0x5, (%rax,%rcx,4)
movq -0x20(%rbp), %rdx
movslq -0x80(%rbp), %rcx
leaq 0x1f28d(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rdx
movslq -0x84(%rbp), %rcx
leaq 0x1f277(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl -0x7c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x48(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x58(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x58(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x10(%rax)
movslq -0x7c(%rbp), %rcx
leaq 0x1f42f(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1f422(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x58(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x7c(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x80(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x20(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movl -0x84(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movq -0x70(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x84(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x40(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movl -0x88(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x50(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x38(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x88(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x78(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x18(%rax)
movslq -0x88(%rbp), %rcx
leaq 0x1f262(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1f255(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl 0x23bc6c(%rip), %eax    # 0x25a620
addl $0x2, %eax
movl %eax, 0x23bc63(%rip)    # 0x25a620
movl 0x23bc61(%rip), %eax    # 0x25a624
addl $0xc, %eax
movl %eax, 0x23bc58(%rip)    # 0x25a624
movq -0x58(%rbp), %rax
addq $0x100, %rax            # imm = 0x100
movq %rax, -0x8(%rbp)
jmp 0x1edc3
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x84(%rbp)
movq -0x38(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x88(%rbp)
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x7c(%rbp)
imull $0xc, 0x23bb96(%rip), %eax # 0x25a620
movslq %eax, %rcx
leaq 0x23bb9c(%rip), %rax    # 0x25a630
addq $-0x4b00, %rax          # imm = 0xB500
addq $0x12000, %rax          # imm = 0x12000
shlq $0x6, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movl 0x23bb6f(%rip), %ecx    # 0x25a620
movq -0x68(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x68(%rbp), %rax
movl %ecx, (%rax)
movq -0x68(%rbp), %rdx
movslq 0x23bb53(%rip), %rcx    # 0x25a620
leaq 0x1ef2c(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movslq 0x23bb41(%rip), %rcx    # 0x25a620
leaq 0x1f11a(%rip), %rax     # 0x3dc00
movl $0x5, (%rax,%rcx,4)
movl 0x23bb2d(%rip), %ecx    # 0x25a620
addl $0x1, %ecx
movq -0x78(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x78(%rbp), %rax
movl %ecx, (%rax)
movq -0x70(%rbp), %rax
movq 0x20(%rax), %rax
movl %ecx, 0x4(%rax)
movq -0x70(%rbp), %rax
movl %ecx, (%rax)
movq -0x70(%rbp), %rdx
movl 0x23bafe(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x1eed1(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x23bae7(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x1f0ba(%rip), %rax     # 0x3dc00
movl $0x5, (%rax,%rcx,4)
movq -0x20(%rbp), %rdx
movslq -0x80(%rbp), %rcx
leaq 0x1eea4(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rdx
movslq -0x84(%rbp), %rcx
leaq 0x1ee8e(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl -0x7c(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x48(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x58(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x30(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x58(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x18(%rax)
movslq -0x7c(%rbp), %rcx
leaq 0x1f046(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1f039(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x58(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x7c(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x80(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movl -0x84(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movq -0x70(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x70(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movq -0x68(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x84(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x40(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x40(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x60(%rbp)
movl -0x88(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, (%rax)
movq -0x50(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x38(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x60(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x60(%rbp)
movl -0x88(%rbp), %ecx
movq -0x60(%rbp), %rax
movl %ecx, 0x4(%rax)
movq -0x78(%rbp), %rcx
movq -0x60(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x60(%rbp), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x10(%rax)
movslq -0x88(%rbp), %rcx
leaq 0x1ee79(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x1ee6c(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl 0x23b883(%rip), %eax    # 0x25a620
addl $0x2, %eax
movl %eax, 0x23b87a(%rip)    # 0x25a620
movl 0x23b878(%rip), %eax    # 0x25a624
addl $0xc, %eax
movl %eax, 0x23b86f(%rip)    # 0x25a624
movq -0x58(%rbp), %rax
addq $0x100, %rax            # imm = 0x100
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x8, %rsp
popq %rbp
retq
nopl (%rax)