// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: extend_S
static void
extend_S(EDGE *ref)

/* This routine is the implementation of the S-operation in Batagelj's paper.
   It inserts 3 new vertices in triangular form into a triangle on the right
   hand side of ref */

{
    register EDGE *a,*b,*start;
    int dummy;

    start=S_op(nv);

    a=ref->invers->prev;
    b=a->invers->prev;

    degree[nv]=degree[nv+1]=degree[nv+2]=4;
    
    dummy=ref->start;
    degree[dummy]+=2; 
    (start+10)->start=(start+11)->end=(start+8)->start=(start+9)->end=dummy;

    dummy=ref->end;
    degree[dummy]+=2; 
    (start+12)->start=(start+13)->end=(start+14)->start=(start+15)->end=dummy;

    dummy=a->end;
    degree[dummy]+=2; 
    (start+6)->start=(start+7)->end=(start+16)->start=(start+17)->end=dummy;

    firstedge[nv]=start+1;
    firstedge[nv+1]=start;
    firstedge[nv+2]=start+2;

    ref->next=start+10; (start+10)->prev=ref;
    a->next=start+14; (start+14)->prev=a;
    b->next=start+6; (start+6)->prev=b;

    ref=ref->invers;
    ref->prev=start+12; (start+12)->next=ref;
    a=a->invers;
    a->prev=start+16; (start+16)->next=a;
    b=b->invers;
    b->prev=start+8; (start+8)->next=b;

    nv+=3;
    ne+=18;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
imull $0x12, 0x230271(%rip), %eax # 0x25a620
movslq %eax, %rcx
leaq 0x230277(%rip), %rax    # 0x25a630
addq $0xc000, %rax           # imm = 0xC000
shlq $0x6, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movl 0x230230(%rip), %eax    # 0x25a620
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x13803(%rip), %rax     # 0x3dc00
movl $0x4, (%rax,%rcx,4)
movl 0x230216(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x137e9(%rip), %rax     # 0x3dc00
movl $0x4, (%rax,%rcx,4)
movslq 0x2301fb(%rip), %rcx    # 0x25a620
leaq 0x137d4(%rip), %rax     # 0x3dc00
movl $0x4, (%rax,%rcx,4)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0x137b9(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x2, %edx
leaq 0x137ac(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x244(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x200(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x2c4(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x280(%rax)
movq -0x8(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0x13769(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x2, %edx
leaq 0x1375c(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x3c4(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x380(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x344(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x300(%rax)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x24(%rbp)
movslq -0x24(%rbp), %rcx
leaq 0x13719(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %edx
addl $0x2, %edx
leaq 0x1370c(%rip), %rax     # 0x3dc00
movl %edx, (%rax,%rcx,4)
movl -0x24(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x444(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x400(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x1c4(%rax)
movq -0x20(%rbp), %rax
movl %ecx, 0x180(%rax)
movq -0x20(%rbp), %rdx
addq $0x40, %rdx
movslq 0x2300ef(%rip), %rcx    # 0x25a620
leaq 0x134c8(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x20(%rbp), %rdx
movl 0x2300da(%rip), %eax    # 0x25a620
addl $0x1, %eax
movslq %eax, %rcx
leaq 0x134ad(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x20(%rbp), %rdx
addq $0x80, %rdx
movl 0x2300b8(%rip), %eax    # 0x25a620
addl $0x2, %eax
movslq %eax, %rcx
leaq 0x1348b(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movq -0x20(%rbp), %rcx
addq $0x280, %rcx            # imm = 0x280
movq -0x8(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x290(%rax)
movq -0x20(%rbp), %rcx
addq $0x380, %rcx            # imm = 0x380
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x390(%rax)
movq -0x20(%rbp), %rcx
addq $0x180, %rcx            # imm = 0x180
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x190(%rax)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
movq -0x20(%rbp), %rcx
addq $0x300, %rcx            # imm = 0x300
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x318(%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x20(%rbp), %rcx
addq $0x400, %rcx            # imm = 0x400
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x418(%rax)
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x20(%rbp), %rcx
addq $0x200, %rcx            # imm = 0x200
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x218(%rax)
movl 0x22ffb1(%rip), %eax    # 0x25a620
addl $0x3, %eax
movl %eax, 0x22ffa8(%rip)    # 0x25a620
movl 0x22ffa6(%rip), %eax    # 0x25a624
addl $0x12, %eax
movl %eax, 0x22ff9d(%rip)    # 0x25a624
popq %rbp
retq
nopl (%rax)