// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: scansimple
static void
scansimple(int nbtot, int nbop)

/* The main node of the recursion for triangulations without double 
   edges or loops.  As this procedure is entered,
   nv,ne,degree etc are set for some graph, and nbtot/nbop are the
   values returned by canon() for that graph. */
{
    EDGE *ext3[MAXE/3],*ext4[MAXE/2],*ext5[MAXE];
    int next3,next4,next5;
    EDGE *save_list[4];
    register int i;
    register EDGE *e1,*e2,**nb,**nblim;
    EDGE *e,*ex;
    int nc,xnbtot,xnbop,v,needed_deg;
    int colour[MAXN];
    EDGE *firstedge_save[MAXE];

    if (nv == maxnv)
    {
        if (pswitch)               startpolyscan(nbtot,nbop);
	else if (polygonsize >= 0) polygon_triang(nbtot,nbop);
        else if (minconnec == 3)   got_one(nbtot,nbop,3);
        else                       scandouble(nbtot,nbop,0,NULL,NULL,0,NULL);
        return;
    }

    if (nv == splitlevel)
    {
#ifdef SPLITTEST
	ADDBIG(splitcases,1);
	return;
#endif
        if (splitcount-- != 0) return;
        splitcount = mod - 1;
    
        for (i = 0; i < nv; ++i) firstedge_save[i] = firstedge[i];
    }

   /* The following could be improved significantly by avoiding
      extensions that can't lead to success here. */
    if (polygonsize >= 9)
    {
	needed_deg = polygonsize + nv - maxnv;
	for (i = 0; i < nv; ++i)
	    if (degree[i] >= needed_deg) break;
	if (i == nv) return;
    }

#ifdef PRE_FILTER_SIMPLE
    if (!(PRE_FILTER_SIMPLE)) return;
#endif

#ifndef FIND_EXTENSIONS_SIMPLE
#define FIND_EXTENSIONS_SIMPLE find_extensions
#endif

    FIND_EXTENSIONS_SIMPLE(nbtot,nbop,ext3,&next3,ext4,&next4,ext5,&next5);

    for (i = 0; i < next3; ++i)
    {
        nc = make_colours(colour,ext3[i]);
        if (nc)
        {
            extend3(ext3[i]);
#ifdef FAST_FILTER_SIMPLE
            if (FAST_FILTER_SIMPLE)
#endif 
            {
                if (nc == 1 && nv == maxnv && !needgroup)
                    got_one(1,1,3);
                else if (canon(colour,numbering,&xnbtot,&xnbop))
                    scansimple(xnbtot,xnbop);
	    }
            reduce3(ext3[i]);
        }
    }

    for (i = 0; i < next4; ++i)
    {
        extend4(ext4[i],save_list);
#ifdef FAST_FILTER_SIMPLE
        if (FAST_FILTER_SIMPLE)
#endif
        { 
            if (canon(degree,numbering,&xnbtot,&xnbop))   
            {
                e = numbering[0][0];
                v = e->next->next->end;
                ex = e->invers;
                for (e = ex->next; e != ex; e = e->next) if (e->end == v) break;
    
                e1 = ext4[i]->next->invers;
                if (e != ex) e1 = e1->next;
        
                e2 = e1->next->next;
                nblim = (EDGE**)numbering[xnbtot];
                for (nb = (EDGE**)numbering[0]; nb < nblim; nb += MAXE)
                    if (*nb == e1 || *nb == e2) break;
    
                if (nb < nblim) scansimple(xnbtot,xnbop); 
            }
        }
        reduce4(ext4[i],save_list); 
    }

    for (i = 0; i < next5; ++i) 
    { 
        extend5(ext5[i],save_list); 
#ifdef FAST_FILTER_SIMPLE
        if (FAST_FILTER_SIMPLE)
#endif 
        {
            if (canon(degree,numbering,&xnbtot,&xnbop))    
            {
                e1 = ext5[i]->next->invers;
                e2 = numbering[0][0];
                if (xnbtot == 1)
                {
                    if (!valid5edge(e2))
                    {
                        if (xnbop == 1)
                            if (valid5edge(e2->prev)) e2 = e2->prev;
                            else                      e2 = e2->next;
                        else
                            if (valid5edge(e2->next)) e2 = e2->next;
                            else                      e2 = e2->prev;
                    }
                    if (e2 == e1) scansimple(xnbtot,xnbop);
                }
                else
                {
                    for (nb = (EDGE**)numbering[0]; !valid5edge(*nb); ++nb) {}
    
                    nblim = (EDGE**)numbering[xnbtot]; 
                    for ( ; nb < nblim; nb += MAXE) 
                        if (*nb == e1) break; 
         
                    if (nb < nblim) scansimple(xnbtot,xnbop);  
                }
            }
	}
        reduce5(ext5[i],save_list);  
    }

    if (nv == splitlevel)
        for (i = 0; i < nv; ++i) firstedge[i] = firstedge_save[i];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2290, %rsp           # imm = 0x2290
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl 0x23fc99(%rip), %eax    # 0x25a620
cmpl 0x218f3(%rip), %eax     # 0x3c280
jne 0x1aa00
cmpl $0x0, 0x21812(%rip)     # 0x3c1a8
je 0x1a9a5
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0x1c350
jmp 0x1a9fb
cmpl $0x0, 0x21804(%rip)     # 0x3c1b0
jl 0x1a9bb
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
callq 0x2ba10
jmp 0x1a9f9
cmpl $0x3, 0x216ee(%rip)     # 0x3c0b0
jne 0x1a9d6
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
movl $0x3, %edx
callq 0x8080
jmp 0x1a9f7
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
xorl %r9d, %r9d
xorl %eax, %eax
movl %eax, %r8d
movl %r9d, %edx
movq %r8, %rcx
movq $0x0, (%rsp)
callq 0x2bec0
jmp 0x1a9f9
jmp 0x1a9fb
jmp 0x1b0e1
movl 0x23fc1a(%rip), %eax    # 0x25a620
cmpl 0x22fe8(%rip), %eax     # 0x3d9f4
jne 0x1aa84
movl 0x28621c(%rip), %eax    # 0x2a0c30
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x286211(%rip)    # 0x2a0c30
cmpl $0x0, %eax
je 0x1aa29
jmp 0x1b0e1
movl 0x2184d(%rip), %eax     # 0x3c27c
subl $0x1, %eax
movl %eax, 0x2861f8(%rip)    # 0x2a0c30
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl 0x23fbd2(%rip), %eax    # 0x25a620
jge 0x1aa82
movslq -0x1594(%rbp), %rcx
leaq 0x22fa2(%rip), %rax     # 0x3da00
movq (%rax,%rcx,8), %rcx
movslq -0x1594(%rbp), %rax
movq %rcx, -0x2280(%rbp,%rax,8)
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1aa42
jmp 0x1aa84
cmpl $0x9, 0x21725(%rip)     # 0x3c1b0
jl 0x1ab00
movl 0x2171d(%rip), %eax     # 0x3c1b0
addl 0x23fb87(%rip), %eax    # 0x25a620
subl 0x217e1(%rip), %eax     # 0x3c280
movl %eax, -0x15dc(%rbp)
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl 0x23fb65(%rip), %eax    # 0x25a620
jge 0x1aaeb
movslq -0x1594(%rbp), %rcx
leaq 0x23135(%rip), %rax     # 0x3dc00
movl (%rax,%rcx,4), %eax
cmpl -0x15dc(%rbp), %eax
jl 0x1aad8
jmp 0x1aaeb
jmp 0x1aada
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1aaaf
movl -0x1594(%rbp), %eax
cmpl 0x23fb29(%rip), %eax    # 0x25a620
jne 0x1aafe
jmp 0x1b0e1
jmp 0x1ab00
movl -0x4(%rbp), %edi
movl -0x8(%rbp), %esi
leaq -0x3f0(%rbp), %rdx
leaq -0x9c0(%rbp), %r8
leaq -0x1560(%rbp), %r10
leaq -0x1564(%rbp), %rcx
leaq -0x1568(%rbp), %r9
leaq -0x156c(%rbp), %rax
movq %r10, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x2c2e0
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl -0x1564(%rbp), %eax
jge 0x1ac32
leaq -0x16e0(%rbp), %rdi
movslq -0x1594(%rbp), %rax
movq -0x3f0(%rbp,%rax,8), %rsi
callq 0x2cd10
movl %eax, -0x15cc(%rbp)
cmpl $0x0, -0x15cc(%rbp)
je 0x1ac1c
movslq -0x1594(%rbp), %rax
movq -0x3f0(%rbp,%rax,8), %rdi
callq 0x2b810
cmpl $0x1, -0x15cc(%rbp)
jne 0x1abcf
movl 0x23fa75(%rip), %eax    # 0x25a620
cmpl 0x216cf(%rip), %eax     # 0x3c280
jne 0x1abcf
cmpl $0x0, 0x22e36(%rip)     # 0x3d9f0
jne 0x1abcf
movl $0x1, %esi
movl $0x3, %edx
movl %esi, %edi
callq 0x8080
jmp 0x1ac08
leaq -0x16e0(%rbp), %rdi
leaq 0x23123(%rip), %rsi     # 0x3dd00
leaq -0x15d0(%rbp), %rdx
leaq -0x15d4(%rbp), %rcx
callq 0x7410
cmpl $0x0, %eax
je 0x1ac06
movl -0x15d0(%rbp), %edi
movl -0x15d4(%rbp), %esi
callq 0x1a970
jmp 0x1ac08
movslq -0x1594(%rbp), %rax
movq -0x3f0(%rbp,%rax,8), %rdi
callq 0x2cfa0
jmp 0x1ac1e
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1ab48
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl -0x1568(%rbp), %eax
jge 0x1ae3c
movslq -0x1594(%rbp), %rax
movq -0x9c0(%rbp,%rax,8), %rdi
leaq -0x1590(%rbp), %rsi
callq 0x2d0f0
leaq 0x22f90(%rip), %rdi     # 0x3dc00
leaq 0x23089(%rip), %rsi     # 0x3dd00
leaq -0x15d0(%rbp), %rdx
leaq -0x15d4(%rbp), %rcx
callq 0x7410
cmpl $0x0, %eax
je 0x1ae0d
movq 0x23066(%rip), %rax     # 0x3dd00
movq %rax, -0x15c0(%rbp)
movq -0x15c0(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %eax
movl %eax, -0x15d8(%rbp)
movq -0x15c0(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x15c8(%rbp)
movq -0x15c8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15c0(%rbp)
movq -0x15c0(%rbp), %rax
cmpq -0x15c8(%rbp), %rax
je 0x1ad17
movq -0x15c0(%rbp), %rax
movl 0x4(%rax), %eax
cmpl -0x15d8(%rbp), %eax
jne 0x1ad01
jmp 0x1ad17
jmp 0x1ad03
movq -0x15c0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15c0(%rbp)
jmp 0x1acdd
movslq -0x1594(%rbp), %rax
movq -0x9c0(%rbp,%rax,8), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x15a0(%rbp)
movq -0x15c0(%rbp), %rax
cmpq -0x15c8(%rbp), %rax
je 0x1ad57
movq -0x15a0(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15a0(%rbp)
movq -0x15a0(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15a8(%rbp)
movslq -0x15d0(%rbp), %rcx
leaq 0x22f85(%rip), %rax     # 0x3dd00
imulq $0xba0, %rcx, %rcx      # imm = 0xBA0
addq %rcx, %rax
movq %rax, -0x15b8(%rbp)
leaq 0x22f6d(%rip), %rax     # 0x3dd00
movq %rax, -0x15b0(%rbp)
movq -0x15b0(%rbp), %rax
cmpq -0x15b8(%rbp), %rax
jae 0x1adea
movq -0x15b0(%rbp), %rax
movq (%rax), %rax
cmpq -0x15a0(%rbp), %rax
je 0x1add0
movq -0x15b0(%rbp), %rax
movq (%rax), %rax
cmpq -0x15a8(%rbp), %rax
jne 0x1add2
jmp 0x1adea
jmp 0x1add4
movq -0x15b0(%rbp), %rax
addq $0xba0, %rax            # imm = 0xBA0
movq %rax, -0x15b0(%rbp)
jmp 0x1ad9a
movq -0x15b0(%rbp), %rax
cmpq -0x15b8(%rbp), %rax
jae 0x1ae0b
movl -0x15d0(%rbp), %edi
movl -0x15d4(%rbp), %esi
callq 0x1a970
jmp 0x1ae0d
movslq -0x1594(%rbp), %rax
movq -0x9c0(%rbp,%rax,8), %rdi
leaq -0x1590(%rbp), %rsi
callq 0x2d3a0
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1ac3c
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl -0x156c(%rbp), %eax
jge 0x1b087
movslq -0x1594(%rbp), %rax
movq -0x1560(%rbp,%rax,8), %rdi
leaq -0x1590(%rbp), %rsi
callq 0x2d530
leaq 0x22d86(%rip), %rdi     # 0x3dc00
leaq 0x22e7f(%rip), %rsi     # 0x3dd00
leaq -0x15d0(%rbp), %rdx
leaq -0x15d4(%rbp), %rcx
callq 0x7410
cmpl $0x0, %eax
je 0x1b058
movslq -0x1594(%rbp), %rax
movq -0x1560(%rbp,%rax,8), %rax
movq 0x18(%rax), %rax
movq 0x20(%rax), %rax
movq %rax, -0x15a0(%rbp)
movq 0x22e3e(%rip), %rax     # 0x3dd00
movq %rax, -0x15a8(%rbp)
cmpl $0x1, -0x15d0(%rbp)
jne 0x1af96
movq -0x15a8(%rbp), %rdi
callq 0x2d8b0
cmpl $0x0, %eax
jne 0x1af70
cmpl $0x1, -0x15d4(%rbp)
jne 0x1af31
movq -0x15a8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2d8b0
cmpl $0x0, %eax
je 0x1af1d
movq -0x15a8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x15a8(%rbp)
jmp 0x1af2f
movq -0x15a8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15a8(%rbp)
jmp 0x1af6e
movq -0x15a8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x2d8b0
cmpl $0x0, %eax
je 0x1af5a
movq -0x15a8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x15a8(%rbp)
jmp 0x1af6c
movq -0x15a8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x15a8(%rbp)
jmp 0x1af6e
jmp 0x1af70
movq -0x15a8(%rbp), %rax
cmpq -0x15a0(%rbp), %rax
jne 0x1af91
movl -0x15d0(%rbp), %edi
movl -0x15d4(%rbp), %esi
callq 0x1a970
jmp 0x1b056
leaq 0x22d63(%rip), %rax     # 0x3dd00
movq %rax, -0x15b0(%rbp)
movq -0x15b0(%rbp), %rax
movq (%rax), %rdi
callq 0x2d8b0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1afc1
jmp 0x1afd7
jmp 0x1afc3
movq -0x15b0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x15b0(%rbp)
jmp 0x1afa4
movslq -0x15d0(%rbp), %rcx
leaq 0x22d1b(%rip), %rax     # 0x3dd00
imulq $0xba0, %rcx, %rcx      # imm = 0xBA0
addq %rcx, %rax
movq %rax, -0x15b8(%rbp)
movq -0x15b0(%rbp), %rax
cmpq -0x15b8(%rbp), %rax
jae 0x1b033
movq -0x15b0(%rbp), %rax
movq (%rax), %rax
cmpq -0x15a0(%rbp), %rax
jne 0x1b01b
jmp 0x1b033
jmp 0x1b01d
movq -0x15b0(%rbp), %rax
addq $0xba0, %rax            # imm = 0xBA0
movq %rax, -0x15b0(%rbp)
jmp 0x1aff6
movq -0x15b0(%rbp), %rax
cmpq -0x15b8(%rbp), %rax
jae 0x1b054
movl -0x15d0(%rbp), %edi
movl -0x15d4(%rbp), %esi
callq 0x1a970
jmp 0x1b056
jmp 0x1b058
movslq -0x1594(%rbp), %rax
movq -0x1560(%rbp,%rax,8), %rdi
leaq -0x1590(%rbp), %rsi
callq 0x2d940
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1ae46
movl 0x23f593(%rip), %eax    # 0x25a620
cmpl 0x22961(%rip), %eax     # 0x3d9f4
jne 0x1b0e1
movl $0x0, -0x1594(%rbp)
movl -0x1594(%rbp), %eax
cmpl 0x23f575(%rip), %eax    # 0x25a620
jge 0x1b0df
movslq -0x1594(%rbp), %rax
movq -0x2280(%rbp,%rax,8), %rdx
movslq -0x1594(%rbp), %rcx
leaq 0x22936(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl -0x1594(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1594(%rbp)
jmp 0x1b09f
jmp 0x1b0e1
addq $0x2290, %rsp           # imm = 0x2290
popq %rbp
retq
nopw (%rax,%rax)