// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: update_nft_Q
static void
update_nft_Q(triangle nft[], int numnft, EDGE *ref,
                triangle newnft[], int *newnumnft)

/* Make new list of non-facial triangles after a Q-extension. */
{
    EDGE *refmin1,*refmin2,*e,*elast,*f,*flast;
    int i,k,v,w;

    refmin1 = ref->min;
    refmin2 = ref->next->min;

  /* Remove triangles that include ref or ref->next */
    k = 0;
    for (i = 0; i < numnft; ++i)
        if (nft[i].e1 != refmin1 && nft[i].e2 != refmin1
		&& nft[i].e3 != refmin1 && nft[i].e1 != refmin2
		&& nft[i].e2 != refmin2 && nft[i].e3 != refmin2)
            newnft[k++] = nft[i];

  /* Add new nft through ref if present */

    w = ref->end;
    elast = ref->next->next->invers->prev->prev;
    for (e = elast->next->next->next->next; e != elast; e = e->next)
        if (e->end == w) break;
    if (e != elast)
    {
        newnft[k].e1 = e->min;
        newnft[k].e2 = ref->min;
        newnft[k].e3 = ref->next->next->min;
        ++k;
    }

  /* Add new nft through ref->next if present */

    w = ref->next->end;
    elast = ref->invers->next->invers;
    for (e = elast->next->next->next->next; e != elast; e = e->next)
        if (e->end == w) break;
    if (e != elast)
    {
        newnft[k].e1 = e->min;
        newnft[k].e2 = ref->next->min;
        newnft[k].e3 = ref->prev->min;
        ++k;
    }

  /* Add all new nft's through the shortcut.  This is the only place
     an nft can be made where there was none before.  This code can
     also add extra nfts through ref or ref->next, since v can be
     ref->end or ref->next->end. */

    w = ref->prev->end;
    elast = ref->next->next->invers->prev->prev;
    for (e = elast->next->next->next; e != elast; e = e->next)
    {
	v = e->end;
	flast = e->invers;
	for (f = flast->next; f != flast; f = f->next)
	    if (f->end == w) break;
	if (f != flast)
	{
	    newnft[k].e1 = elast->next->min;
	    newnft[k].e2 = e->min;
	    newnft[k].e3 = f->min;
	    ++k;
	}
    }

    *newnumnft = k;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x60(%rbp)
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x3440b
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
cmpq -0x30(%rbp), %rax
je 0x343fb
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
cmpq -0x30(%rbp), %rax
je 0x343fb
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
cmpq -0x30(%rbp), %rax
je 0x343fb
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rax
cmpq -0x38(%rbp), %rax
je 0x343fb
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
cmpq -0x38(%rbp), %rax
je 0x343fb
movq -0x8(%rbp), %rax
movslq -0x5c(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
cmpq -0x38(%rbp), %rax
je 0x343fb
movq -0x20(%rbp), %rax
movl -0x60(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0x60(%rbp)
movslq %ecx, %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq -0x8(%rbp), %rcx
movslq -0x5c(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rcx
movq %rcx, 0x10(%rax)
jmp 0x343fd
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x34311
movq -0x18(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x34471
movq -0x40(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x68(%rbp), %eax
jne 0x34461
jmp 0x34471
jmp 0x34463
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x34449
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x344dc
movq -0x40(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x3453e
movq -0x40(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x68(%rbp), %eax
jne 0x3452e
jmp 0x3453e
jmp 0x34530
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x34516
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x345a9
movq -0x40(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpq -0x48(%rbp), %rax
je 0x346b9
movq -0x40(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, -0x64(%rbp)
movq -0x40(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq -0x58(%rbp), %rax
je 0x3463f
movq -0x50(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x68(%rbp), %eax
jne 0x3462f
jmp 0x3463f
jmp 0x34631
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x34617
movq -0x50(%rbp), %rax
cmpq -0x58(%rbp), %rax
je 0x346a6
movq -0x48(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x8(%rax)
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x20(%rbp), %rax
movslq -0x60(%rbp), %rdx
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, 0x10(%rax)
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x346a8
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x345e7
movl -0x60(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, (%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)