// File: /workspace/github_c_makefile_star2_O1/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 0x233d98(%rip), %rsi    # 0x2448e0
leaq 0x243e91(%rip), %rdi    # 0x2549e0
leaq 0x233aca(%rip), %rbp    # 0x244620
xorl %r9d, %r9d
movabsq $-0x5555555555555555, %r10 # imm = 0xAAAAAAAAAAAAAAAB
movabsq $-0x3333333333333333, %r11 # imm = 0xCCCCCCCCCCCCCCCD
movq %rbp, %r15
movq %rbp, %r12
leaq (,%r9,8), %r13
movq %r9, %rax
shlq $0x9, %rax
addq %rax, %rbp
addq $0x240, %rbp            # imm = 0x240
movl $0x2, %ecx
movl $0x1, %ebx
xorl %r14d, %r14d
movq %rcx, %rax
mulq %r10
shlq $0x5, %rdx
andq $-0x40, %rdx
leaq (%rdx,%rdx,2), %rax
movq %rsi, %rdx
subq %rax, %rdx
leaq (%r12,%r14), %rax
addq $0x180, %rax            # imm = 0x180
leaq 0x240(%r12,%r14), %r8
movl %r9d, (%r8)
movl %r9d, 0x4(%rax)
movq %r8, 0x20(%rax)
movq %rax, 0x20(%r8)
movq %rax, 0x28(%r8)
movq %rax, 0x28(%rax)
cmpq $0x80, %r14
movl $0x0, %eax
cmovneq %rbx, %rax
shlq $0x6, %rax
addq %rbp, %rax
movq %rax, 0x18(%r8)
addq %r14, %rdx
movq %rdx, 0x10(%r8)
incq %rcx
addq $0x40, %r14
incq %rbx
cmpq $0xc0, %r14
jne 0x10b99
shlq $0x6, %r13
leaq 0x233a06(%rip), %rbp    # 0x244620
leaq 0x8280(,%rbp), %rax
addq %r13, %rax
movl $0x3, %ecx
xorl %edx, %edx
leaq (%r12,%rdx), %r8
addq $0x8280, %r8            # imm = 0x8280
movl %r9d, (%r8)
leaq 0x8180(%r12,%rdx), %rbx
movl %r9d, 0x4(%rbx)
movq %r8, 0x20(%rbx)
movq %rbx, 0x20(%r8)
movq %rbx, 0x28(%r8)
movq %rbx, 0x28(%rbx)
leal -0x2(%rcx), %ebx
andl $0x3, %ebx
shll $0x6, %ebx
addq %rax, %rbx
movq %rbx, 0x18(%r8)
movl %ecx, %ebx
andl $0x3, %ebx
shll $0x6, %ebx
addq %rax, %rbx
movq %rbx, 0x10(%r8)
incq %rcx
addq $0x40, %rdx
cmpq $0x100, %rdx            # imm = 0x100
jne 0x10c2c
movq %r9, %rax
shlq $0xa, %rax
leaq (%rax,%rbp), %r13
addq $0x102c0, %r13          # imm = 0x102C0
movl $0x4, %ecx
movl $0x1, %ebx
xorl %r14d, %r14d
movq %rcx, %rax
mulq %r11
shlq $0x4, %rdx
andq $-0x40, %rdx
leaq (%rdx,%rdx,4), %rax
movq %rdi, %rdx
subq %rax, %rdx
leaq (%r15,%r14), %rax
addq $0x10180, %rax          # imm = 0x10180
leaq 0x102c0(%r15,%r14), %r8
movl %r9d, (%r8)
movl %r9d, 0x4(%rax)
movq %r8, 0x20(%rax)
movq %rax, 0x20(%r8)
movq %rax, 0x28(%r8)
movq %rax, 0x28(%rax)
cmpq $0x100, %r14            # imm = 0x100
movl $0x0, %eax
cmovneq %rbx, %rax
shlq $0x6, %rax
addq %r13, %rax
movq %rax, 0x18(%r8)
addq %r14, %rdx
movq %rdx, 0x10(%r8)
incq %rcx
addq $0x40, %r14
incq %rbx
cmpq $0x140, %r14            # imm = 0x140
jne 0x10ca4
incq %r9
movl $0x200, %eax            # imm = 0x200
addq %rax, %rsi
addq %rax, %r12
movl $0x400, %eax            # imm = 0x400
addq %rax, %rdi
addq %rax, %r15
cmpq $0x40, %r9
jne 0x10b73
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x2338d2(%rip)    # 0x244620
leaq 0x2338cb(%rip), %rdi    # 0x244620
leaq 0x233944(%rip), %rcx    # 0x2446a0
movq %rcx, 0x2338cd(%rip)    # 0x244630
movq %rcx, 0x2338ce(%rip)    # 0x244638
leaq 0x2338ef(%rip), %rax    # 0x244660
movq %rax, 0x2338c8(%rip)    # 0x244640
movq %rdi, 0x2338c9(%rip)    # 0x244648
movq $0x1, 0x2338d6(%rip) # 0x244660
leaq 0x23398f(%rip), %rdx    # 0x244720
movq %rdx, 0x2338d8(%rip)    # 0x244670
movq %rdx, 0x2338d9(%rip)    # 0x244678
movq %rdi, 0x2338da(%rip)    # 0x244680
movq %rdi, 0x2338db(%rip)    # 0x244688
movabsq $0x200000000, %rsi      # imm = 0x200000000
movq %rsi, 0x2338e2(%rip)    # 0x2446a0
movq %rdi, 0x2338eb(%rip)    # 0x2446b0
movq %rdi, 0x2338ec(%rip)    # 0x2446b8
leaq 0x23390d(%rip), %rsi    # 0x2446e0
movq %rsi, 0x2338e6(%rip)    # 0x2446c0
movq %rcx, 0x2338e7(%rip)    # 0x2446c8
movq $0x2, 0x2338f4(%rip) # 0x2446e0
leaq 0x23396d(%rip), %r8     # 0x244760
movq %r8, 0x2338f6(%rip)     # 0x2446f0
movq %r8, 0x2338f7(%rip)     # 0x2446f8
movq %rcx, 0x2338f8(%rip)    # 0x244700
movq %rcx, 0x2338f9(%rip)    # 0x244708
movabsq $0x200000001, %rcx      # imm = 0x200000001
movq %rcx, 0x233900(%rip)    # 0x244720
movq %rax, 0x233909(%rip)    # 0x244730
movq %rax, 0x23390a(%rip)    # 0x244738
movq %r8, 0x23390b(%rip)     # 0x244740
movq %rdx, 0x23390c(%rip)    # 0x244748
movabsq $0x100000002, %rcx      # imm = 0x100000002
movq %rcx, 0x233913(%rip)    # 0x244760
movq %rsi, 0x23391c(%rip)    # 0x244770
movq %rsi, 0x23391d(%rip)    # 0x244778
movq %rdx, 0x23391e(%rip)    # 0x244780
movq %rdx, 0x23391f(%rip)    # 0x244788
movl $0x3, 0x23379d(%rip)    # 0x244610
movl $0x6, 0x233797(%rip)    # 0x244614
movl $0x2, 0x16d71(%rip)     # 0x27bf8
movabsq $0x200000002, %rcx      # imm = 0x200000002
movq %rcx, 0x16d58(%rip)     # 0x27bf0
movq %rdi, 0x16b51(%rip)     # 0x279f0
movq %rax, 0x16b52(%rip)     # 0x279f8
movq %rsi, 0x16b53(%rip)     # 0x27a00
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1a54f