// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: extend_quadr_P3
static EDGE
*extend_quadr_P3(EDGE *e)

/* extends a graph in the way given by the type P3 extension for
   3-connected quadrangulations. That is: It inserts a square on the
   right hand side of e.

   It returns the directed edge characterizing this operation.
*/

{
  register EDGE *run, *start, *dummy;
  int vertex;

  start=quadr_P3(nv);

  run=e->next;
  vertex=e->start;
  dummy=start+12;
  start->end=dummy->start=vertex; degree[vertex]++;
  e->next=run->prev=dummy; dummy->next=run; dummy->prev=e;

  e=run->invers;
  run=e->next;
  vertex=e->start;
  dummy=start+15;
  (start+10)->end=dummy->start=vertex; degree[vertex]++;
  e->next=run->prev=dummy; dummy->next=run; dummy->prev=e;

  e=run->invers;
  run=e->next;
  vertex=e->start;
  dummy--;
  (start+7)->end=dummy->start=vertex; degree[vertex]++;
  e->next=run->prev=dummy; dummy->next=run; dummy->prev=e;

  e=run->invers;
  run=e->next;
  vertex=e->start;
  dummy--;
  (start+4)->end=dummy->start=vertex; degree[vertex]++;
  e->next=run->prev=dummy; dummy->next=run; dummy->prev=e;

  firstedge[nv]=start;     degree[nv]=3;
  firstedge[nv+1]=start+3; degree[nv+1]=3;
  firstedge[nv+2]=start+6; degree[nv+2]=3;
  firstedge[nv+3]=start+9; degree[nv+3]=3;

  nv+=4; ne+=16;

  return (run->invers);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl 0x245912(%rip), %eax    # 0x25a620
shll $0x4, %eax
movslq %eax, %rcx
leaq 0x245915(%rip), %rax    # 0x25a630
addq $-0x2f00, %rax          # imm = 0xD100
addq $0xc000, %rax           # imm = 0xC000
shlq $0x6, %rcx
addq %rcx, %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rax
addq $0x300, %rax            # imm = 0x300
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x4(%rax)
movslq -0x24(%rbp), %rcx
leaq 0x28e90(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x28e83(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x18(%rbp), %rax
addq $0x3c0, %rax            # imm = 0x3C0
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x284(%rax)
movslq -0x24(%rbp), %rcx
leaq 0x28e07(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x28dfa(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
addq $-0x40, %rax
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x1c4(%rax)
movslq -0x24(%rbp), %rcx
leaq 0x28d80(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x28d73(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
addq $-0x40, %rax
movq %rax, -0x20(%rbp)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movl %ecx, 0x104(%rax)
movslq -0x24(%rbp), %rcx
leaq 0x28cf9(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
leaq 0x28cec(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rdx
movslq 0x2456d2(%rip), %rcx    # 0x25a620
leaq 0x28aab(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movslq 0x2456c0(%rip), %rcx    # 0x25a620
leaq 0x28c99(%rip), %rax     # 0x3dc00
movl $0x3, (%rax,%rcx,4)
movq -0x18(%rbp), %rdx
addq $0xc0, %rdx
movl 0x2456a1(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x28a74(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x24568a(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x28c5d(%rip), %rax     # 0x3dc00
movl $0x3, (%rax,%rcx,4)
movq -0x18(%rbp), %rdx
addq $0x180, %rdx            # imm = 0x180
movl 0x245665(%rip), %eax    # 0x25a620
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x28a38(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x24564e(%rip), %eax    # 0x25a620
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x28c21(%rip), %rax     # 0x3dc00
movl $0x3, (%rax,%rcx,4)
movq -0x18(%rbp), %rdx
addq $0x240, %rdx            # imm = 0x240
movl 0x245629(%rip), %eax    # 0x25a620
addl $0x3, %eax
movslq %eax, %rcx
leaq 0x289fc(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl 0x245612(%rip), %eax    # 0x25a620
addl $0x3, %eax
movslq %eax, %rcx
leaq 0x28be5(%rip), %rax     # 0x3dc00
movl $0x3, (%rax,%rcx,4)
movl 0x2455f8(%rip), %eax    # 0x25a620
addl $0x4, %eax
movl %eax, 0x2455ef(%rip)    # 0x25a620
movl 0x2455ed(%rip), %eax    # 0x25a624
addl $0x10, %eax
movl %eax, 0x2455e4(%rip)    # 0x25a624
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
popq %rbp
retq
nopw (%rax,%rax)