// File: /workspace/github_c_makefile_star2_O1/mishun[P]plantri/plantri.c
// Function: quadrangulation_dispatch
static void
quadrangulation_dispatch(void)

/* Simple quadrangulations. */
{
    int startingsize,nbtot,nbop,hint;
    EDGE *P1edges[MAXN];

    if (minimumdeg <= 0) minimumdeg = 3;
    if (minconnec <= 0) minconnec = 3;
    if (minimumdeg==2 && minconnec>=3) minimumdeg = 3;
    startingsize = (minimumdeg == 2 ? 4 : 8);

    CHECKRANGE(maxnv,"n",startingsize,MAXN);
    CHECKRANGE(minconnec,"-c",2,4);
    CHECKRANGE(minimumdeg,"-m",2,3);

    INCOMPAT(pswitch,"-q","-p");
    INCOMPAT(bswitch,"-q","-b");
    INCOMPAT(polygonsize>=0,"-q","-P");
    INCOMPAT(tswitch,"-q","-t");
    INCOMPAT(edgebound[0]>=0,"-q","-e");
    INCOMPAT(maxfacesize>=0,"-q","-f");
    
    if (dswitch) strcpy(outtypename,"quartic graphs");
    else         strcpy(outtypename,"quadrangulations");

    open_output_file();

    needgroup = Gswitch;

    if (minimumdeg == 2)
    {
        hint = MIN(maxnv <= 16 ? maxnv-5 : maxnv-6, maxnv < 25 ? 17 : 18);
        initialize_splitting(startingsize,hint,maxnv-1);
        if (splitlevel == 0 && res > 0) return;
        initialize_quadrangulations();
	extend_quadr_P0(firstedge[1]);   /* make square */
        xconnec = minconnec;
        canon(degree,numbering,&nbtot,&nbop);
	scanquadrangulations_all(nbtot,nbop);
#ifdef STATS
        fprintf(msgfile,"Counts by min degree: ");
        PRINTBIG(msgfile,nummindeg[2]);
        fprintf(msgfile," ");
        PRINTBIG(msgfile,nummindeg[3]);
        fprintf(msgfile,"\n");
#endif
    }
    else
    {
        hint = MIN(maxnv <= 23 ? maxnv-5 : maxnv-6, maxnv < 30 ? 23 : 24);
        initialize_splitting(startingsize,hint,maxnv-2);
        if (splitlevel == 0 && res > 0) return;
        initialize_min3_quadrangulations();
        xconnec = minconnec;
        canon(degree,numbering,&nbtot,&nbop);
        if (minconnec == 3)
            scanquadrangulations(nbtot,nbop,firstedge[0],
						splitlevel==8,P1edges,0);
        else if (minconnec == 4)
            scanquadrangulations_nf4(nbtot,nbop,firstedge[0],
					        splitlevel==8,P1edges,0);
        else
            scanquadrangulations_min3(nbtot,nbop,firstedge[0],
					        splitlevel==8,P1edges,0);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x218, %rsp            # imm = 0x218
cmpl $0x0, 0x2116d(%rip)     # 0x261b8
jg 0x5057
movl $0x3, 0x21161(%rip)     # 0x261b8
cmpl $0x0, 0x21052(%rip)     # 0x260b0
jg 0x506a
movl $0x3, 0x21046(%rip)     # 0x260b0
cmpl $0x2, 0x21147(%rip)     # 0x261b8
sete %cl
movl 0x21036(%rip), %eax     # 0x260b0
cmpl $0x3, %eax
setge %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x5091
movl $0x3, 0x21127(%rip)     # 0x261b8
movl 0x21121(%rip), %ecx     # 0x261b8
xorl %edx, %edx
cmpl $0x2, %ecx
setne %dl
leal 0x4(,%rdx,4), %ebx
movl 0x211c4(%rip), %edx     # 0x26270
cmpl $0x40, %edx
jg 0x532a
cmpl %ebx, %edx
jl 0x532a
addl $-0x5, %eax
cmpl $-0x4, %eax
jbe 0x5331
addl $-0x4, %ecx
cmpl $-0x3, %ecx
jbe 0x5336
cmpb $0x1, 0x210cc(%rip)     # 0x261a8
je 0x533b
cmpb $0x1, 0x210c3(%rip)     # 0x261ac
je 0x5340
cmpl $0x0, 0x210ba(%rip)     # 0x261b0
jns 0x5345
cmpb $0x1, 0x20fb1(%rip)     # 0x260b4
je 0x534a
cmpl $0x0, 0x2114c(%rip)     # 0x2625c
jns 0x534f
cmpl $0x0, 0x21147(%rip)     # 0x26264
jns 0x5354
cmpb $0x1, 0x21122(%rip)     # 0x2624c
jne 0x5150
movabsq $0x73687061726720, %rax # imm = 0x73687061726720
movq %rax, 0x210ba(%rip)     # 0x261f7
movabsq $0x2063697472617571, %rax # imm = 0x2063697472617571
movq %rax, 0x210a2(%rip)     # 0x261f0
jmp 0x5165
movups 0x1b537(%rip), %xmm0    # 0x2068e
movaps %xmm0, 0x21092(%rip)    # 0x261f0
movb $0x0, 0x2109b(%rip)     # 0x26200
callq 0x5e7f
movzbl 0x210d3(%rip), %eax     # 0x26244
movl %eax, 0x22869(%rip)     # 0x279e0
cmpl $0x2, 0x2103a(%rip)     # 0x261b8
movl 0x210ec(%rip), %eax     # 0x26270
movzbl 0x210cd(%rip), %ecx     # 0x26258
jne 0x524d
xorl %edx, %edx
cmpl $0x11, %eax
setl %dl
addl %eax, %edx
addl $-0x6, %edx
xorl %esi, %esi
cmpl $0x19, %eax
setge %sil
addl $0x11, %esi
cmpl %esi, %edx
cmovll %edx, %esi
leal -0x1(%rax), %edx
addl %ecx, %esi
cmpl %edx, %esi
cmovgel %edx, %esi
xorl %ecx, %ecx
cmpl %eax, %ebx
movl $0x0, %eax
cmovll %ebx, %eax
testl %esi, %esi
cmovlel %esi, %eax
cmpl %ebx, %esi
cmovgel %esi, %eax
cmpl $0x1, 0x21096(%rip)     # 0x2626c
cmovel %ecx, %eax
movl %eax, 0x22805(%rip)     # 0x279e4
movl 0x21083(%rip), %ecx     # 0x26268
movl %ecx, 0x285a35(%rip)    # 0x28ac20
testl %eax, %eax
sete %al
testl %ecx, %ecx
setg %cl
testb %cl, %al
jne 0x531c
callq 0x6170
movq 0x227ef(%rip), %rdi     # 0x279f8
callq 0x635d
movl 0x20e9c(%rip), %eax     # 0x260b0
movl %eax, 0x2105a(%rip)     # 0x26274
leaq 0x229cf(%rip), %rdi     # 0x27bf0
leaq 0xc(%rsp), %rbx
leaq 0x8(%rsp), %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x6408
movl (%rbx), %edi
movl (%r14), %esi
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x676a
xorl %edx, %edx
cmpl $0x18, %eax
setl %dl
addl %eax, %edx
addl $-0x6, %edx
xorl %esi, %esi
cmpl $0x1e, %eax
setge %sil
addl $0x17, %esi
cmpl %esi, %edx
cmovll %edx, %esi
addl $-0x2, %eax
addl %ecx, %esi
cmpl %eax, %esi
cmovgel %eax, %esi
xorl %ecx, %ecx
cmpl %eax, %ebx
movl %ebx, %ebp
cmovgl %ecx, %ebp
testl %esi, %esi
cmovlel %esi, %ebp
cmpl %ebx, %esi
cmovgel %esi, %ebp
cmpl $0x1, 0x20fdd(%rip)     # 0x2626c
cmovel %ecx, %ebp
movl %ebp, 0x2274c(%rip)     # 0x279e4
movl 0x20fca(%rip), %eax     # 0x26268
movl %eax, 0x28597c(%rip)    # 0x28ac20
testl %ebp, %ebp
sete %cl
testl %eax, %eax
setg %al
testb %al, %cl
jne 0x531c
callq 0x7956
movl 0x20df2(%rip), %r15d    # 0x260b0
movl %r15d, 0x20faf(%rip)    # 0x26274
leaq 0x22924(%rip), %rdi     # 0x27bf0
leaq 0xc(%rsp), %rbx
leaq 0x8(%rsp), %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x6408
movl (%rbx), %edi
movl (%r14), %esi
movq 0x22703(%rip), %rdx     # 0x279f0
xorl %ecx, %ecx
cmpl $0x8, %ebp
sete %cl
leaq 0x10(%rsp), %r8
xorl %r9d, %r9d
cmpl $0x4, %r15d
je 0x5310
cmpl $0x3, %r15d
jne 0x5317
callq 0x8013
jmp 0x531c
callq 0x1de1d
jmp 0x531c
callq 0x92fd
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl %ebx, %edi
callq 0x1eb0
callq 0x1e6a
callq 0x1e24
callq 0x1dee
callq 0x1db8
callq 0x1d82
callq 0x1d4c
callq 0x1d16
callq 0x1ce0