// File: /workspace/github_c_makefile_star2_O3/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
leaq 0x2339d0(%rip), %rax    # 0x244620
xorl %ecx, %ecx
movl $0x2, %edx
movl $0x4, %esi
movq %rax, %rdi
movq %rax, %r8
leaq (,%rcx,8), %r9
movq %rcx, %r10
shlq $0x9, %r10
addq %rax, %r10
addq $0x240, %r10            # imm = 0x240
movl $0x1, %r11d
xorl %ebx, %ebx
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
leaq (%r8,%rbx), %r15
addq $0x180, %r15            # imm = 0x180
leaq 0x240(%r8,%rbx), %r12
movl %ecx, (%r12)
movl %ecx, 0x4(%r15)
movq %r12, 0x20(%r15)
movq %r15, 0x20(%r12)
movq %r15, 0x28(%r12)
movq %r15, 0x28(%r15)
cmpq $0x80, %rbx
movl $0x0, %r15d
cmovneq %r11, %r15
shlq $0x6, %r15
addq %r10, %r15
testq %rbx, %rbx
movl %r14d, %r13d
cmoveq %rdx, %r13
movq %r15, 0x18(%r12)
shlq $0x6, %r13
addq %r10, %r13
movq %r13, 0x10(%r12)
incq %r14
addq $0x40, %rbx
incq %r11
cmpq $0xc0, %rbx
jne 0x10c89
shlq $0x6, %r9
addq %rax, %r9
addq $0x8280, %r9            # imm = 0x8280
movl $0x3, %r10d
xorl %r11d, %r11d
leaq (%r8,%r11), %rbx
addq $0x8280, %rbx           # imm = 0x8280
movl %ecx, (%rbx)
leaq 0x8180(%r8,%r11), %r14
movl %ecx, 0x4(%r14)
movq %rbx, 0x20(%r14)
movq %r14, 0x20(%rbx)
movq %r14, 0x28(%rbx)
movq %r14, 0x28(%r14)
leal -0x2(%r10), %r14d
andl $0x3, %r14d
shll $0x6, %r14d
addq %r9, %r14
movq %r14, 0x18(%rbx)
movl %r10d, %r14d
andl $0x3, %r14d
shll $0x6, %r14d
addq %r9, %r14
movq %r14, 0x10(%rbx)
incq %r10
addq $0x40, %r11
cmpq $0x100, %r11            # imm = 0x100
jne 0x10d13
movq %rcx, %r9
shlq $0xa, %r9
addq %rax, %r9
addq $0x102c0, %r9           # imm = 0x102C0
movl $0x1, %r10d
xorl %r11d, %r11d
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
leaq (%rdi,%r11), %r14
addq $0x10180, %r14          # imm = 0x10180
leaq 0x102c0(%rdi,%r11), %r15
movl %ecx, (%r15)
movl %ecx, 0x4(%r14)
movq %r15, 0x20(%r14)
movq %r14, 0x20(%r15)
movq %r14, 0x28(%r15)
movq %r14, 0x28(%r14)
cmpq $0x100, %r11            # imm = 0x100
movl $0x0, %r14d
cmovneq %r10, %r14
shlq $0x6, %r14
addq %r9, %r14
testq %r11, %r11
movl %ebx, %r12d
cmoveq %rsi, %r12
movq %r14, 0x18(%r15)
shlq $0x6, %r12
addq %r9, %r12
movq %r12, 0x10(%r15)
incq %rbx
addq $0x40, %r11
incq %r10
cmpq $0x140, %r11            # imm = 0x140
jne 0x10d90
incq %rcx
addq $0x200, %r8             # imm = 0x200
addq $0x400, %rdi            # imm = 0x400
cmpq $0x40, %rcx
jne 0x10c62
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x2337f6(%rip)    # 0x244620
leaq 0x2337ef(%rip), %rdi    # 0x244620
leaq 0x233868(%rip), %rcx    # 0x2446a0
movq %rcx, 0x2337f1(%rip)    # 0x244630
movq %rcx, 0x2337f2(%rip)    # 0x244638
leaq 0x233813(%rip), %rax    # 0x244660
movq %rax, 0x2337ec(%rip)    # 0x244640
movq %rdi, 0x2337ed(%rip)    # 0x244648
movq $0x1, 0x2337fa(%rip) # 0x244660
leaq 0x2338b3(%rip), %rdx    # 0x244720
movq %rdx, 0x2337fc(%rip)    # 0x244670
movq %rdx, 0x2337fd(%rip)    # 0x244678
movq %rdi, 0x2337fe(%rip)    # 0x244680
movq %rdi, 0x2337ff(%rip)    # 0x244688
movabsq $0x200000000, %rsi      # imm = 0x200000000
movq %rsi, 0x233806(%rip)    # 0x2446a0
movq %rdi, 0x23380f(%rip)    # 0x2446b0
movq %rdi, 0x233810(%rip)    # 0x2446b8
leaq 0x233831(%rip), %rsi    # 0x2446e0
movq %rsi, 0x23380a(%rip)    # 0x2446c0
movq %rcx, 0x23380b(%rip)    # 0x2446c8
movq $0x2, 0x233818(%rip) # 0x2446e0
leaq 0x233891(%rip), %r8     # 0x244760
movq %r8, 0x23381a(%rip)     # 0x2446f0
movq %r8, 0x23381b(%rip)     # 0x2446f8
movq %rcx, 0x23381c(%rip)    # 0x244700
movq %rcx, 0x23381d(%rip)    # 0x244708
movabsq $0x200000001, %rcx      # imm = 0x200000001
movq %rcx, 0x233824(%rip)    # 0x244720
movq %rax, 0x23382d(%rip)    # 0x244730
movq %rax, 0x23382e(%rip)    # 0x244738
movq %r8, 0x23382f(%rip)     # 0x244740
movq %rdx, 0x233830(%rip)    # 0x244748
movabsq $0x100000002, %rcx      # imm = 0x100000002
movq %rcx, 0x233837(%rip)    # 0x244760
movq %rsi, 0x233840(%rip)    # 0x244770
movq %rsi, 0x233841(%rip)    # 0x244778
movq %rdx, 0x233842(%rip)    # 0x244780
movq %rdx, 0x233843(%rip)    # 0x244788
movl $0x3, 0x2336c1(%rip)    # 0x244610
movl $0x6, 0x2336bb(%rip)    # 0x244614
movl $0x2, 0x16c95(%rip)     # 0x27bf8
movabsq $0x200000002, %rcx      # imm = 0x200000002
movq %rcx, 0x16c7c(%rip)     # 0x27bf0
movq %rdi, 0x16a75(%rip)     # 0x279f0
movq %rax, 0x16a76(%rip)     # 0x279f8
movq %rsi, 0x16a77(%rip)     # 0x27a00
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x1a62d