// File: /workspace/github_c_makefile_star2_O2/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
movl 0x20765(%rip), %ecx     # 0x241a8
testl %ecx, %ecx
jg 0x3a54
movl $0x3, 0x20757(%rip)     # 0x241a8
pushq $0x3
popq %rcx
movl 0x20646(%rip), %eax     # 0x240a0
testl %eax, %eax
jg 0x3a6b
pushq $0x3
popq %rax
movl $0x3, 0x20635(%rip)     # 0x240a0
cmpl $0x2, %ecx
setne %dl
cmpl $0x3, %eax
setb %sil
orb %dl, %sil
jne 0x3a8e
movl $0x3, 0x20721(%rip)     # 0x241a8
pushq $0x8
popq %rbx
xorl %ecx, %ecx
jmp 0x3aa6
xorl %edx, %edx
cmpl $0x2, %ecx
setne %dl
leal 0x4(,%rdx,4), %ebx
addl $-0x4, %ecx
cmpl $-0x2, %ecx
setb %cl
movl 0x207b4(%rip), %edx     # 0x24260
cmpl $0x40, %edx
jg 0x3cc6
cmpl %ebx, %edx
jl 0x3cc6
addl $-0x5, %eax
cmpl $-0x4, %eax
jbe 0x3cfd
testb %cl, %cl
jne 0x3d34
cmpb $0x1, 0x206c0(%rip)     # 0x24198
je 0x3d76
cmpb $0x1, 0x206b7(%rip)     # 0x2419c
je 0x3da1
cmpl $0x0, 0x206ae(%rip)     # 0x241a0
jns 0x3dcc
cmpb $0x1, 0x205a5(%rip)     # 0x240a4
je 0x3df4
cmpl $0x0, 0x20740(%rip)     # 0x2424c
jns 0x3e1c
cmpl $0x0, 0x2073b(%rip)     # 0x24254
jns 0x3e44
cmpb $0x1, 0x20716(%rip)     # 0x2423c
jne 0x3b4c
movabsq $0x73687061726720, %rax # imm = 0x73687061726720
movq %rax, 0x206ae(%rip)     # 0x241e7
movabsq $0x2063697472617571, %rax # imm = 0x2063697472617571
movq %rax, 0x20696(%rip)     # 0x241e0
jmp 0x3b61
movups 0x1ab38(%rip), %xmm0    # 0x1e68b
movaps %xmm0, 0x20686(%rip)    # 0x241e0
movb $0x0, 0x2068f(%rip)     # 0x241f0
callq 0x4ca5
movzbl 0x206c7(%rip), %eax     # 0x24234
movl %eax, 0x21e5d(%rip)     # 0x259d0
cmpl $0x2, 0x2062e(%rip)     # 0x241a8
movl 0x206e0(%rip), %edx     # 0x24260
jne 0x3c13
xorl %eax, %eax
cmpl $0x11, %edx
setl %al
addl %edx, %eax
addl $-0x6, %eax
xorl %esi, %esi
cmpl $0x19, %edx
setge %sil
addl $0x11, %esi
cmpl %esi, %eax
cmovll %eax, %esi
decl %edx
movl %ebx, %edi
callq 0x5017
cmpl $0x0, 0x21e20(%rip)     # 0x259d4
jne 0x3bc3
cmpl $0x0, 0x2069b(%rip)     # 0x24258
jg 0x3cb8
callq 0x5055
movq 0x21e19(%rip), %rdi     # 0x259e8
callq 0x5242
movl 0x204c6(%rip), %eax     # 0x240a0
movl %eax, 0x20684(%rip)     # 0x24264
leaq 0x21ff9(%rip), %rdi     # 0x25be0
leaq 0xc(%rsp), %rbx
leaq 0x8(%rsp), %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x52ed
movl (%rbx), %edi
movl (%r14), %esi
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x565d
xorl %eax, %eax
cmpl $0x18, %edx
setl %al
addl %edx, %eax
addl $-0x6, %eax
xorl %esi, %esi
cmpl $0x1e, %edx
setge %sil
addl $0x17, %esi
cmpl %esi, %eax
cmovll %eax, %esi
addl $-0x2, %edx
movl %ebx, %edi
callq 0x5017
movl 0x21d93(%rip), %ebp     # 0x259d4
testl %ebp, %ebp
jne 0x3c4e
cmpl $0x0, 0x2060c(%rip)     # 0x24258
jg 0x3cb8
callq 0x6812
movl 0x20446(%rip), %r15d    # 0x240a0
movl %r15d, 0x20603(%rip)    # 0x24264
leaq 0x21f78(%rip), %rdi     # 0x25be0
leaq 0xc(%rsp), %rbx
leaq 0x8(%rsp), %r14
movq %rbx, %rsi
movq %r14, %rdx
callq 0x52ed
movl (%rbx), %edi
movl (%r14), %esi
movq 0x21d57(%rip), %rdx     # 0x259e0
xorl %ecx, %ecx
cmpl $0x8, %ebp
sete %cl
leaq 0x10(%rsp), %r8
xorl %r9d, %r9d
cmpl $0x4, %r15d
je 0x3cac
cmpl $0x3, %r15d
jne 0x3cb3
callq 0x6eed
jmp 0x3cb8
callq 0x1c50c
jmp 0x3cb8
callq 0x8331
addq $0x218, %rsp            # imm = 0x218
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x2032b(%rip), %r14     # 0x23ff8
movq (%r14), %rdi
movq 0x203d9(%rip), %rdx     # 0x240b0
leaq 0x1a5d7(%rip), %rsi     # 0x1e2b5
leaq 0x1a6e7(%rip), %rcx     # 0x1e3cc
xorl %eax, %eax
callq 0x1050
movq (%r14), %rdi
leaq 0x1a5df(%rip), %rsi     # 0x1e2d5
pushq $0x40
popq %rcx
movl %ebx, %edx
jmp 0x3d6a
movq 0x202f4(%rip), %rbx     # 0x23ff8
movq (%rbx), %rdi
movq 0x203a2(%rip), %rdx     # 0x240b0
leaq 0x1a5a0(%rip), %rsi     # 0x1e2b5
leaq 0x1a5c1(%rip), %rcx     # 0x1e2dd
xorl %eax, %eax
callq 0x1050
movq (%rbx), %rdi
leaq 0x1a5a8(%rip), %rsi     # 0x1e2d5
pushq $0x2
popq %rdx
pushq $0x4
jmp 0x3d69
movq 0x202bd(%rip), %rbx     # 0x23ff8
movq (%rbx), %rdi
movq 0x2036b(%rip), %rdx     # 0x240b0
leaq 0x1a569(%rip), %rsi     # 0x1e2b5
leaq 0x1a58d(%rip), %rcx     # 0x1e2e0
xorl %eax, %eax
callq 0x1050
movq (%rbx), %rdi
leaq 0x1a571(%rip), %rsi     # 0x1e2d5
pushq $0x2
popq %rdx
pushq $0x3
popq %rcx
xorl %eax, %eax
callq 0x1050
jmp 0x3e71
movq 0x2027b(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x20329(%rip), %rdx     # 0x240b0
leaq 0x1a555(%rip), %rsi     # 0x1e2e3
leaq 0x1a578(%rip), %rcx     # 0x1e30d
leaq 0x1a986(%rip), %r8      # 0x1e722
jmp 0x3e6a
movq 0x20250(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x202fe(%rip), %rdx     # 0x240b0
leaq 0x1a52a(%rip), %rsi     # 0x1e2e3
leaq 0x1a54d(%rip), %rcx     # 0x1e30d
leaq 0x1a7f3(%rip), %r8      # 0x1e5ba
jmp 0x3e6a
movq 0x20225(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x202d3(%rip), %rdx     # 0x240b0
leaq 0x1a4ff(%rip), %rsi     # 0x1e2e3
leaq 0x1a522(%rip), %rcx     # 0x1e30d
leaq 0x1a518(%rip), %r8      # 0x1e30a
jmp 0x3e6a
movq 0x201fd(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x202ab(%rip), %rdx     # 0x240b0
leaq 0x1a4d7(%rip), %rsi     # 0x1e2e3
leaq 0x1a4fa(%rip), %rcx     # 0x1e30d
leaq 0x1a4f6(%rip), %r8      # 0x1e310
jmp 0x3e6a
movq 0x201d5(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x20283(%rip), %rdx     # 0x240b0
leaq 0x1a4af(%rip), %rsi     # 0x1e2e3
leaq 0x1a4d2(%rip), %rcx     # 0x1e30d
leaq 0x1a4d8(%rip), %r8      # 0x1e31a
jmp 0x3e6a
movq 0x201ad(%rip), %rax     # 0x23ff8
movq (%rax), %rdi
movq 0x2025b(%rip), %rdx     # 0x240b0
leaq 0x1a487(%rip), %rsi     # 0x1e2e3
leaq 0x1a4aa(%rip), %rcx     # 0x1e30d
leaq 0x1a4f5(%rip), %r8      # 0x1e35f
xorl %eax, %eax
callq 0x1050
pushq $0x1
popq %rdi
callq 0x10b0