// File: /workspace/github_c_makefile_star2_O2/mishun[P]plantri/plantri.c
// Function: initialize_triang
static void
initialize_triang(void) 

/* initialize stars and create initial K4, for ordinary triangulations */
{
    register int i,j;
    register EDGE *si;

    for (i = 0; i < MAXN; ++i)
    {
        si = STAR3(i);

        for (j = 0; j < 3; ++j)
        {
            si[j].end = si[j+3].start = i;
            si[j].invers = si + 3 + j;
            si[j+3].invers = si + j;
            si[j].min = si[j+3].min = si + j;
            si[j+3].next = si + 3 + (j+1) % 3;
            si[j+3].prev = si + 3 + (j+2) % 3;
        }

        si = STAR4(i);
 
        for (j = 0; j < 4; ++j) 
        { 
            si[j].end = si[j+4].start = i;
            si[j].invers = si + 4 + j; 
            si[j+4].invers = si + j; 
            si[j].min = si[j+4].min = si + j;
            si[j+4].next = si + 4 + (j+1) % 4; 
            si[j+4].prev = si + 4 + (j+3) % 4;
        }

        si = STAR5(i);
  
        for (j = 0; j < 5; ++j)  
        {  
            si[j].end = si[j+5].start = i; 
            si[j].invers = si + 5 + j;  
            si[j+5].invers = si + j;  
            si[j].min = si[j+5].min = si + j;
            si[j+5].next = si + 5 + (j+1) % 5;  
            si[j+5].prev = si + 5 + (j+4) % 5; 
        }
    }

    init_edge[0].start = 0; init_edge[0].end = 1;
    init_edge[0].next = init_edge[0].prev = init_edge+2;
    init_edge[0].invers = init_edge+1;
    init_edge[0].min = init_edge;

    init_edge[1].start = 1; init_edge[1].end = 0;
    init_edge[1].next = init_edge[1].prev = init_edge+4;
    init_edge[1].invers = init_edge+0;
    init_edge[1].min = init_edge;

    init_edge[2].start = 0; init_edge[2].end = 2;
    init_edge[2].next = init_edge[2].prev = init_edge+0;
    init_edge[2].invers = init_edge+3;
    init_edge[2].min = init_edge+2;

    init_edge[3].start = 2; init_edge[3].end = 0;
    init_edge[3].next = init_edge[3].prev = init_edge+5;
    init_edge[3].invers = init_edge+2;
    init_edge[3].min = init_edge+2;

    init_edge[4].start = 1; init_edge[4].end = 2;
    init_edge[4].next = init_edge[4].prev = init_edge+1;
    init_edge[4].invers = init_edge+5;
    init_edge[4].min = init_edge+4;

    init_edge[5].start = 2; init_edge[5].end = 1;
    init_edge[5].next = init_edge[5].prev = init_edge+3;
    init_edge[5].invers = init_edge+4;
    init_edge[5].min = init_edge+4;

    nv = 3;
    ne = 6;

    degree[0] = degree[1] = degree[2] = 2;
    firstedge[0] = init_edge;
    firstedge[1] = init_edge+1;
    firstedge[2] = init_edge+3;

    extend3(init_edge);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
leaq 0x232d3a(%rip), %rax    # 0x242790
leaq 0x232bb3(%rip), %rcx    # 0x242610
leaq 0x242d2c(%rip), %rdx    # 0x252790
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
xorl %edi, %edi
movl $0x200, %r9d            # imm = 0x200
movabsq $0x4, %r10
movabsq $0x2, %r11
movq %rcx, %rbx
cmpq $0x40, %rdi
je 0xfc45
leaq (,%rdi,8), %r14
movq %rdi, %r15
shlq $0x9, %r15
addq %rcx, %r15
addq $0x240, %r15            # imm = 0x240
movq %rax, %r12
xorl %r13d, %r13d
cmpq $0x3, %r13
je 0xfb2a
leaq 0xc0(%r12), %rbp
movl %edi, 0xc0(%r12)
movl %edi, 0x4(%r12)
movq %rbp, 0x20(%r12)
movq %r12, 0xe0(%r12)
movq %r12, 0xe8(%r12)
movq %r12, 0x28(%r12)
leaq 0x1(%r13), %rbp
cmpq $0x3, %rbp
movl $0x0, %r8d
cmovneq %rbp, %r8
shlq $0x6, %r8
addq %r15, %r8
movq %r8, 0xd8(%r12)
addl %esi, %r13d
cmpq $0x1, %rbp
cmoveq %r11, %r13
shlq $0x6, %r13
addq %r15, %r13
movq %r13, 0xd0(%r12)
addq $0x40, %r12
movq %rbp, %r13
jmp 0xfab1
shlq $0x6, %r14
addq %rcx, %r14
addq $0x8280, %r14           # imm = 0x8280
xorl %r15d, %r15d
movabsq $0x3, %r12
cmpq $0x100, %r15            # imm = 0x100
je 0xfba7
leaq (%rbx,%r15), %r8
addq $0x8280, %r8            # imm = 0x8280
movl %edi, (%r8)
leaq 0x8180(%rbx,%r15), %r13
movl %edi, 0x4(%r13)
movq %r8, 0x20(%r13)
movq %r13, 0x20(%r8)
movq %r13, 0x28(%r8)
movq %r13, 0x28(%r13)
leal -0x2(%r12), %r13d
andl $0x3, %r13d
shll $0x6, %r13d
addq %r14, %r13
movq %r13, 0x18(%r8)
movl %r12d, %r13d
andl $0x3, %r13d
shll $0x6, %r13d
addq %r14, %r13
movq %r13, 0x10(%r8)
incq %r12
addq $0x40, %r15
jmp 0xfb45
movq %rdi, %r8
shlq $0xa, %r8
leaq (%r8,%rcx), %r14
addq $0x102c0, %r14          # imm = 0x102C0
movq %rdx, %r15
xorl %r12d, %r12d
cmpq $0x5, %r12
je 0xfc30
leaq 0x140(%r15), %r8
movl %edi, 0x140(%r15)
movl %edi, 0x4(%r15)
movq %r8, 0x20(%r15)
movq %r15, 0x160(%r15)
movq %r15, 0x168(%r15)
movq %r15, 0x28(%r15)
leaq 0x1(%r12), %r8
cmpq $0x5, %r8
movl $0x0, %r13d
cmovneq %r8, %r13
shlq $0x6, %r13
addq %r14, %r13
movq %r13, 0x158(%r15)
addl %esi, %r12d
cmpq $0x1, %r8
cmoveq %r10, %r12
shlq $0x6, %r12
addq %r14, %r12
movq %r12, 0x150(%r15)
addq $0x40, %r15
movq %r8, %r12
jmp 0xfbbf
incq %rdi
addq %r9, %rax
addq %r9, %rbx
addq $0x400, %rdx            # imm = 0x400
jmp 0xfa88
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x2329ba(%rip)    # 0x242610
leaq 0x2329b3(%rip), %rdi    # 0x242610
leaq 0x232a2c(%rip), %rcx    # 0x242690
movq %rcx, 0x2329b5(%rip)    # 0x242620
movq %rcx, 0x2329b6(%rip)    # 0x242628
leaq 0x2329d7(%rip), %rax    # 0x242650
movq %rax, 0x2329b0(%rip)    # 0x242630
movq %rdi, 0x2329b1(%rip)    # 0x242638
movq $0x1, 0x2329be(%rip) # 0x242650
leaq 0x232a77(%rip), %rdx    # 0x242710
movq %rdx, 0x2329c0(%rip)    # 0x242660
movq %rdx, 0x2329c1(%rip)    # 0x242668
movq %rdi, 0x2329c2(%rip)    # 0x242670
movq %rdi, 0x2329c3(%rip)    # 0x242678
movabsq $0x200000000, %rsi      # imm = 0x200000000
movq %rsi, 0x2329ca(%rip)    # 0x242690
movq %rdi, 0x2329d3(%rip)    # 0x2426a0
movq %rdi, 0x2329d4(%rip)    # 0x2426a8
leaq 0x2329f5(%rip), %rsi    # 0x2426d0
movq %rsi, 0x2329ce(%rip)    # 0x2426b0
movq %rcx, 0x2329cf(%rip)    # 0x2426b8
movq $0x2, 0x2329dc(%rip) # 0x2426d0
leaq 0x232a55(%rip), %r8     # 0x242750
movq %r8, 0x2329de(%rip)     # 0x2426e0
movq %r8, 0x2329df(%rip)     # 0x2426e8
movq %rcx, 0x2329e0(%rip)    # 0x2426f0
movq %rcx, 0x2329e1(%rip)    # 0x2426f8
movabsq $0x200000001, %rcx      # imm = 0x200000001
movq %rcx, 0x2329e8(%rip)    # 0x242710
movq %rax, 0x2329f1(%rip)    # 0x242720
movq %rax, 0x2329f2(%rip)    # 0x242728
movq %r8, 0x2329f3(%rip)     # 0x242730
movq %rdx, 0x2329f4(%rip)    # 0x242738
movabsq $0x100000002, %rcx      # imm = 0x100000002
movq %rcx, 0x2329fb(%rip)    # 0x242750
movq %rsi, 0x232a04(%rip)    # 0x242760
movq %rsi, 0x232a05(%rip)    # 0x242768
movq %rdx, 0x232a06(%rip)    # 0x242770
movq %rdx, 0x232a07(%rip)    # 0x242778
movl $0x3, 0x232885(%rip)    # 0x242600
movl $0x6, 0x23287f(%rip)    # 0x242604
movl $0x2, 0x15e59(%rip)     # 0x25be8
movabsq $0x200000002, %rcx      # imm = 0x200000002
movq %rcx, 0x15e40(%rip)     # 0x25be0
movq %rdi, 0x15c39(%rip)     # 0x259e0
movq %rax, 0x15c3a(%rip)     # 0x259e8
movq %rsi, 0x15c3b(%rip)     # 0x259f0
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18e8b