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

/* The main node of the recursion for general simple quadrangulations.
   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 *firstedge_save[MAXN];
    EDGE *extP0[MAXE],*extP1[MAXE];
    EDGE *good_or[MAXE],*good_mir[MAXE];
    int ngood_or,ngood_mir,ngood_ref,ngood_mir_ref;
    int nextP0,nextP1,i;
    int xnbtot,xnbop,conn;
    EDGE *rededge;

    if (nv == maxnv)
    {
	if (pswitch || xswitch) conn = con_quad();
	else                    conn = 2;           /* really 2 or 3 */

	if (pswitch) startbipscan(nbtot,nbop,conn);
	else         got_one(nbtot,nbop,conn); 
	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];
    }

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

#ifndef FIND_EXTENSIONS_QUAD_ALL
#define FIND_EXTENSIONS_QUAD_ALL find_extensions_quad_all
#endif

    FIND_EXTENSIONS_QUAD_ALL(nbtot,nbop,extP0,&nextP0,extP1,&nextP1);

    for (i = 0; i < nextP0; ++i)
    {
        rededge = extend_quadr_P0(extP0[i]);
#ifdef FAST_FILTER_QUAD_ALL
        if (FAST_FILTER_QUAD_ALL)
#endif  
        {
	    quadr_P0_legal_all(rededge,good_or,&ngood_or,&ngood_ref,good_mir,
                                &ngood_mir,&ngood_mir_ref);
            if (ngood_ref+ngood_mir_ref > 0)
	    {
	        if (nv == maxnv && !needgroup && ngood_or == ngood_ref
                                                  && ngood_mir == ngood_mir_ref)
		    got_one(1,1,2);
	        else if (ngood_or+ngood_mir==1)
    		    scanquadrangulations_all(1,1);
	        else if (canon_edge_oriented(good_or,ngood_or,ngood_ref,
                                             good_mir,ngood_mir,ngood_mir_ref,
                                             degree,numbering,&xnbtot,&xnbop))
	            scanquadrangulations_all(xnbtot,xnbop);
	    }
	}
	reduce_quadr_P0(rededge);
    }

    for (i = 0; i < nextP1; ++i)
    {   
        rededge = extend_quadr_P1(extP1[i]);
#ifdef FAST_FILTER_QUAD_ALL
        if (FAST_FILTER_QUAD_ALL)
#endif  
        {
            if (!has_quadr_P0())
            {   
                quadr_P1_legal_all(rededge,good_or,&ngood_or,&ngood_ref,
                               good_mir,&ngood_mir,&ngood_mir_ref);
                if (ngood_ref+ngood_mir_ref > 0
                    && canon_edge_oriented(good_or,ngood_or,ngood_ref,
                                           good_mir,ngood_mir,ngood_mir_ref,
                                           degree,numbering,&xnbtot,&xnbop))
                    scanquadrangulations_all(xnbtot,xnbop);
            }
        } reduce_quadr_P1(rededge);
    }

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x30d8, %rsp           # imm = 0x30D8
movl %edi, -0xc(%rbp)
movl %esi, -0x10(%rbp)
movl 0x252be8(%rip), %eax    # 0x25a620
cmpl 0x34842(%rip), %eax     # 0x3c280
jne 0x7a9b
cmpl $0x0, 0x34761(%rip)     # 0x3c1a8
jne 0x7a52
cmpl $0x0, 0x34668(%rip)     # 0x3c0b8
je 0x7a5f
callq 0xe110
movl %eax, -0x30b8(%rbp)
jmp 0x7a69
movl $0x2, -0x30b8(%rbp)
cmpl $0x0, 0x34738(%rip)     # 0x3c1a8
je 0x7a85
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x30b8(%rbp), %edx
callq 0xe410
jmp 0x7a96
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x30b8(%rbp), %edx
callq 0x8080
jmp 0x7e4a
movl 0x252b7f(%rip), %eax    # 0x25a620
cmpl 0x35f4d(%rip), %eax     # 0x3d9f4
jne 0x7b1f
movl 0x299181(%rip), %eax    # 0x2a0c30
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, 0x299176(%rip)    # 0x2a0c30
cmpl $0x0, %eax
je 0x7ac4
jmp 0x7e4a
movl 0x347b2(%rip), %eax     # 0x3c27c
subl $0x1, %eax
movl %eax, 0x29915d(%rip)    # 0x2a0c30
movl $0x0, -0x30ac(%rbp)
movl -0x30ac(%rbp), %eax
cmpl 0x252b37(%rip), %eax    # 0x25a620
jge 0x7b1d
movslq -0x30ac(%rbp), %rcx
leaq 0x35f07(%rip), %rax     # 0x3da00
movq (%rax,%rcx,8), %rcx
movslq -0x30ac(%rbp), %rax
movq %rcx, -0x210(%rbp,%rax,8)
movl -0x30ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30ac(%rbp)
jmp 0x7add
jmp 0x7b1f
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
leaq -0xdb0(%rbp), %rdx
leaq -0x1950(%rbp), %r8
leaq -0x30a4(%rbp), %rcx
leaq -0x30a8(%rbp), %r9
callq 0xe640
movl $0x0, -0x30ac(%rbp)
movl -0x30ac(%rbp), %eax
cmpl -0x30a4(%rbp), %eax
jge 0x7ccc
movslq -0x30ac(%rbp), %rax
movq -0xdb0(%rbp,%rax,8), %rdi
callq 0x7260
movq %rax, -0x30c0(%rbp)
movq -0x30c0(%rbp), %rdi
leaq -0x24f0(%rbp), %rsi
leaq -0x3090(%rbp), %r8
leaq -0x3094(%rbp), %rdx
leaq -0x309c(%rbp), %rcx
leaq -0x3098(%rbp), %r9
leaq -0x30a0(%rbp), %rax
movq %rax, (%rsp)
callq 0xf0b0
movl -0x309c(%rbp), %eax
addl -0x30a0(%rbp), %eax
cmpl $0x0, %eax
jle 0x7cac
movl 0x252a4e(%rip), %eax    # 0x25a620
cmpl 0x346a8(%rip), %eax     # 0x3c280
jne 0x7c15
cmpl $0x0, 0x35e0f(%rip)     # 0x3d9f0
jne 0x7c15
movl -0x3094(%rbp), %eax
cmpl -0x309c(%rbp), %eax
jne 0x7c15
movl -0x3098(%rbp), %eax
cmpl -0x30a0(%rbp), %eax
jne 0x7c15
movl $0x1, %esi
movl $0x2, %edx
movl %esi, %edi
callq 0x8080
jmp 0x7caa
movl -0x3094(%rbp), %eax
addl -0x3098(%rbp), %eax
cmpl $0x1, %eax
jne 0x7c34
movl $0x1, %esi
movl %esi, %edi
callq 0x7a20
jmp 0x7ca8
leaq -0x24f0(%rbp), %rdi
movl -0x3094(%rbp), %esi
movl -0x309c(%rbp), %edx
leaq -0x3090(%rbp), %rcx
movl -0x3098(%rbp), %r8d
movl -0x30a0(%rbp), %r9d
leaq 0x35f9d(%rip), %rbx     # 0x3dc00
leaq 0x36096(%rip), %r11     # 0x3dd00
leaq -0x30b0(%rbp), %r10
leaq -0x30b4(%rbp), %rax
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xf4b0
cmpl $0x0, %eax
je 0x7ca6
movl -0x30b0(%rbp), %edi
movl -0x30b4(%rbp), %esi
callq 0x7a20
jmp 0x7ca8
jmp 0x7caa
jmp 0x7cac
movq -0x30c0(%rbp), %rdi
callq 0xf8c0
movl -0x30ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30ac(%rbp)
jmp 0x7b50
movl $0x0, -0x30ac(%rbp)
movl -0x30ac(%rbp), %eax
cmpl -0x30a8(%rbp), %eax
jge 0x7df0
movslq -0x30ac(%rbp), %rax
movq -0x1950(%rbp,%rax,8), %rdi
callq 0xf9e0
movq %rax, -0x30c0(%rbp)
callq 0xfc40
cmpl $0x0, %eax
jne 0x7dd0
movq -0x30c0(%rbp), %rdi
leaq -0x24f0(%rbp), %rsi
leaq -0x3090(%rbp), %r8
leaq -0x3094(%rbp), %rdx
leaq -0x309c(%rbp), %rcx
leaq -0x3098(%rbp), %r9
leaq -0x30a0(%rbp), %rax
movq %rax, (%rsp)
callq 0xfc90
movl -0x309c(%rbp), %eax
addl -0x30a0(%rbp), %eax
cmpl $0x0, %eax
jle 0x7dce
leaq -0x24f0(%rbp), %rdi
movl -0x3094(%rbp), %esi
movl -0x309c(%rbp), %edx
leaq -0x3090(%rbp), %rcx
movl -0x3098(%rbp), %r8d
movl -0x30a0(%rbp), %r9d
leaq 0x35e75(%rip), %rbx     # 0x3dc00
leaq 0x35f6e(%rip), %r11     # 0x3dd00
leaq -0x30b0(%rbp), %r10
leaq -0x30b4(%rbp), %rax
movq %rbx, (%rsp)
movq %r11, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq %rax, 0x18(%rsp)
callq 0xf4b0
cmpl $0x0, %eax
je 0x7dce
movl -0x30b0(%rbp), %edi
movl -0x30b4(%rbp), %esi
callq 0x7a20
jmp 0x7dd0
movq -0x30c0(%rbp), %rdi
callq 0x10150
movl -0x30ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30ac(%rbp)
jmp 0x7cd6
movl 0x25282a(%rip), %eax    # 0x25a620
cmpl 0x35bf8(%rip), %eax     # 0x3d9f4
jne 0x7e4a
movl $0x0, -0x30ac(%rbp)
movl -0x30ac(%rbp), %eax
cmpl 0x25280c(%rip), %eax    # 0x25a620
jge 0x7e48
movslq -0x30ac(%rbp), %rax
movq -0x210(%rbp,%rax,8), %rdx
movslq -0x30ac(%rbp), %rcx
leaq 0x35bcd(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl -0x30ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30ac(%rbp)
jmp 0x7e08
jmp 0x7e4a
addq $0x30d8, %rsp           # imm = 0x30D8
popq %rbx
popq %rbp
retq
nopw %cs:(%rax,%rax)