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

/* Polytopes.  Main options are -m4, -m5 and neither. */
{
    int startingsize,nbtot,nbop,i,hint,nbangles,maxundir;
    EDGE *prevA[MAXN],*bangle[MAXE/2];

  /* Polytopes are made by first making 3-connected triangulations,
     then deleting edges in a second phase.  minconn and minimumdeg
     are used in the first phase; minpolyconn and minpolydeg in the
     second phase.  Since simple triangulations are 3-connected and
     have minimum degree at least 3, minconn and minimumdeg are at
     least 3.  However, minpolyconn and minpolydeg can be anything
     from 1 to minconn and minimumdeg. */

    if (minconnec <= 0) minconnec = 3;
    if (minconnec < 3)
    {
	minpolyconnec = minconnec;
	minconnec = 3;
    }
    else
	minpolyconnec = minconnec;

    if (minimumdeg <= 0)
    {
	minimumdeg = minconnec;
	minpolydeg = minpolyconnec;
    }
    else
    {
	minpolydeg = minimumdeg;
	minimumdeg = MAX(minimumdeg,3);
    }

    if (minconnec > minimumdeg) minimumdeg = minconnec;
    if (minpolyconnec > minpolydeg) minpolydeg = minpolyconnec;

    startingsize = (minimumdeg == 4 ? 6 : (minimumdeg == 5 ? 12 : 4));

    CHECKRANGE(maxnv,"n",2,MAXN);
    CHECKRANGE(maxnv,"n",2,64);
    CHECKRANGE(minpolyconnec,"-c",1,3);
    CHECKRANGE(minpolydeg,"-m",1,5);

    INCOMPAT(polygonsize>=0,"-p","-P");
    INCOMPAT(bswitch,"-p","-b");
    INCOMPAT(qswitch,"-p","-q");
    INCOMPAT(tswitch,"-p","-t");
/* INCOMPAT(minconnec == 3 && xswitch,"-c3","-x");  changed 19/2/08 */
    INCOMPAT(minpolyconnec == 3 && xswitch,"-c3","-x");
    
    maxundir = (maxnv == 2 ? 1 : 3*maxnv-6);
    if (edgebound[0] < 0) edgebound[0] = 0;
    if (edgebound[1] < 0) edgebound[1] = maxundir;
    if (edgebound[1] > maxundir) edgebound[1] = maxundir;
    if (maxfacesize <= 0) maxfacesize = MAXE;

    CHECKRANGE(edgebound[0],"-e",0,maxundir);
    CHECKRANGE(edgebound[1],"-e",0,maxundir);
    PERROR(edgebound[0] > edgebound[1],
	   "The first value of -e can't be greater than the second");
    PERROR(maxnv*minpolydeg > 2*edgebound[1],
	   "The upper bound for -e is impossibly low");
    CHECKRANGE(maxfacesize,"-f",3,MAXE);

    xconnec = minpolyconnec;

    if (maxnv >= 4 && (edgebound[0] == maxundir || maxfacesize == 3))
    {
	pswitch = FALSE;
	edgebound[0] = edgebound[1] = maxfacesize = -1;
        if      (minimumdeg == 4) min4_dispatch();
	else if (minimumdeg == 5) min5_dispatch();
        else                      simple_dispatch();
	return;
    }

    edgebound[0] *= 2;
    edgebound[1] *= 2;

    strcpy(outtypename,"polytopes");

    open_output_file();

    for (i = 0; i <= maxundir; ++i)
    {
	ZEROBIG(nout_e[i]);
	ZEROBIG(nout_e_op[i]);
#ifdef STATS
	ZEROBIG(numrooted_e[i]);
#endif
    }

    needgroup = TRUE;

    if (minimumdeg == 5)
    {
	hint = MIN(maxnv-5, 27);
	initialize_splitting(startingsize,hint,maxnv-5);
        if (splitlevel == 0 && res > 0) return;
        initialize_min5();
        canon(degree,numbering,&nbtot,&nbop);
        all_5_bangles(bangle,&nbangles);
        scanmin5(nbtot,nbop,splitlevel==12,prevA,0,bangle,nbangles);
    }
    else if (minimumdeg == 4)
    {
	hint = MIN(maxnv <= 19 ? maxnv-3 : maxnv-4, 17);
	initialize_splitting(startingsize,hint,maxnv-3);
        if (splitlevel == 0 && res > 0) return;
        initialize_min4();
        canon(degree,numbering,&nbtot,&nbop);
        scanmin4(nbtot,nbop,splitlevel==6,NULL);
    }
    else if (maxnv >= 4)
    {
        hint = MIN(maxnv <= 13 ? maxnv-1 : maxnv-2, 14);
	initialize_splitting(startingsize,hint,maxnv-1);
        if (splitlevel == 0 && res > 0) return;
	initialize_triang();
	canon(degree,numbering,&nbtot,&nbop);
	scansimple(nbtot,nbop);
    }
    else
    {
        if (maxnv <= 3 && minpolydeg == 1  && minpolyconnec == 1
                            && edgebound[0] <= 2*maxnv-2
                            && edgebound[1] >= 2*maxnv-2
                            && maxfacesize >= 2*maxnv-2)
        {
            make_me_a_star(maxnv);
            canon(degree,numbering,&nbtot,&nbop);
            xconnec = minconnec;
            got_one(nbtot,nbop,1);
        }
        if (maxnv == 3 && minpolydeg <= 2 && minpolyconnec <= 2
                            && edgebound[0] <= 6
                            && edgebound[1] >= 6)
        {   
            make_cycle(maxnv);
            canon(degree,numbering,&nbtot,&nbop);
            xconnec = minconnec;
            got_one(nbtot,nbop,2);
        }   
    }

    if (vswitch)
    {
        for (i = 0; i <= maxundir; ++i)
        if (!ISZEROBIG(nout_e[i]))
        {
            fprintf(msgfile," With %2d edges and %2d faces: ",i,2+i-maxnv);
	    if (oswitch)
	    {
		PRINTBIG(msgfile,nout_e_op[i]);
		fprintf(msgfile," (");
                PRINTBIG(msgfile,nout_e[i]);
		fprintf(msgfile," classes)");
#ifdef STATS
		fprintf(msgfile," ");
		PRINTBIG(msgfile,numrooted_e[i]);
		fprintf(msgfile," rooted");
#endif
		fprintf(msgfile,"\n");
	    }
	    else
	    {
                PRINTBIG(msgfile,nout_e[i]);
	        fprintf(msgfile,"\n");
	    }
        }
        if (!xswitch && minpolyconnec < 3)
        {
            fprintf(msgfile,"By connectivity: ");
            for (i = minpolyconnec; i <= 3; ++i)
            {
                if (i > minpolyconnec) fprintf(msgfile," ");
                PRINTBIG(msgfile,nout[i]);
                if (i == 3) fprintf(msgfile," (3-5)-conn");
	        else        fprintf(msgfile," %d-conn",i);
                if (i < 3) fprintf(msgfile,";");
            }
            fprintf(msgfile,"\n");
    
	    if (oswitch)
	    {
                fprintf(msgfile,"By connectivity (O-P): ");
                for (i = minpolyconnec; i <= 3; ++i)
                {
                    if (i > minpolyconnec) fprintf(msgfile," ");
                    PRINTBIG(msgfile,nout_op[i]);
                    if (i == 3) fprintf(msgfile," (3-5)-conn");
	            else        fprintf(msgfile," %d-conn",i);
                    if (i < 3) fprintf(msgfile,";");
                }
                fprintf(msgfile,"\n");
	    }
	}
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x820, %rsp            # imm = 0x820
cmpl $0x0, 0x38cfe(%rip)     # 0x3c0b0
jg 0x33be
movl $0x3, 0x38cf2(%rip)     # 0x3c0b0
cmpl $0x3, 0x38ceb(%rip)     # 0x3c0b0
jge 0x33df
movl 0x38ce3(%rip), %eax     # 0x3c0b0
movl %eax, 0x38dd1(%rip)     # 0x3c1a4
movl $0x3, 0x38cd3(%rip)     # 0x3c0b0
jmp 0x33eb
movl 0x38ccb(%rip), %eax     # 0x3c0b0
movl %eax, 0x38db9(%rip)     # 0x3c1a4
cmpl $0x0, 0x38dc6(%rip)     # 0x3c1b8
jg 0x340e
movl 0x38cb6(%rip), %eax     # 0x3c0b0
movl %eax, 0x38db8(%rip)     # 0x3c1b8
movl 0x38d9e(%rip), %eax     # 0x3c1a4
movl %eax, 0x38d94(%rip)     # 0x3c1a0
jmp 0x3448
movl 0x38da4(%rip), %eax     # 0x3c1b8
movl %eax, 0x38d86(%rip)     # 0x3c1a0
cmpl $0x3, 0x38d97(%rip)     # 0x3c1b8
jge 0x3430
movl $0x3, %eax
movl %eax, -0x7f4(%rbp)
jmp 0x343c
movl 0x38d82(%rip), %eax     # 0x3c1b8
movl %eax, -0x7f4(%rbp)
movl -0x7f4(%rbp), %eax
movl %eax, 0x38d70(%rip)     # 0x3c1b8
movl 0x38c62(%rip), %eax     # 0x3c0b0
cmpl 0x38d64(%rip), %eax     # 0x3c1b8
jle 0x3462
movl 0x38c54(%rip), %eax     # 0x3c0b0
movl %eax, 0x38d56(%rip)     # 0x3c1b8
movl 0x38d3c(%rip), %eax     # 0x3c1a4
cmpl 0x38d32(%rip), %eax     # 0x3c1a0
jle 0x347c
movl 0x38d2e(%rip), %eax     # 0x3c1a4
movl %eax, 0x38d24(%rip)     # 0x3c1a0
cmpl $0x4, 0x38d35(%rip)     # 0x3c1b8
jne 0x3492
movl $0x6, %eax
movl %eax, -0x7f8(%rbp)
jmp 0x34ae
movl 0x38d20(%rip), %edx     # 0x3c1b8
movl $0x4, %eax
movl $0xc, %ecx
cmpl $0x5, %edx
cmovel %ecx, %eax
movl %eax, -0x7f8(%rbp)
movl -0x7f8(%rbp), %eax
movl %eax, -0x4(%rbp)
cmpl $0x2, 0x38dc2(%rip)     # 0x3c280
jl 0x34c9
cmpl $0x40, 0x38db9(%rip)    # 0x3c280
jle 0x351b
movq 0x38b28(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38be6(%rip), %rdx     # 0x3c0c0
leaq 0x34d01(%rip), %rsi     # 0x381e2
leaq 0x34e11(%rip), %rcx     # 0x382f9
movb $0x0, %al
callq 0x1060
movq 0x38b02(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34d02(%rip), %rsi     # 0x38202
movl $0x2, %edx
movl $0x40, %ecx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x2, 0x38d5e(%rip)     # 0x3c280
jl 0x352d
cmpl $0x40, 0x38d55(%rip)    # 0x3c280
jle 0x357f
movq 0x38ac4(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38b82(%rip), %rdx     # 0x3c0c0
leaq 0x34c9d(%rip), %rsi     # 0x381e2
leaq 0x34dad(%rip), %rcx     # 0x382f9
movb $0x0, %al
callq 0x1060
movq 0x38a9e(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34c9e(%rip), %rsi     # 0x38202
movl $0x2, %edx
movl $0x40, %ecx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x1, 0x38c1e(%rip)     # 0x3c1a4
jl 0x3591
cmpl $0x3, 0x38c15(%rip)     # 0x3c1a4
jle 0x35e3
movq 0x38a60(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38b1e(%rip), %rdx     # 0x3c0c0
leaq 0x34c39(%rip), %rsi     # 0x381e2
leaq 0x34c5a(%rip), %rcx     # 0x3820a
movb $0x0, %al
callq 0x1060
movq 0x38a3a(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34c3a(%rip), %rsi     # 0x38202
movl $0x1, %edx
movl $0x3, %ecx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x1, 0x38bb6(%rip)     # 0x3c1a0
jl 0x35f5
cmpl $0x5, 0x38bad(%rip)     # 0x3c1a0
jle 0x3647
movq 0x389fc(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38aba(%rip), %rdx     # 0x3c0c0
leaq 0x34bd5(%rip), %rsi     # 0x381e2
leaq 0x34bf9(%rip), %rcx     # 0x3820d
movb $0x0, %al
callq 0x1060
movq 0x389d6(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34bd6(%rip), %rsi     # 0x38202
movl $0x1, %edx
movl $0x5, %ecx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x0, 0x38b62(%rip)     # 0x3c1b0
jl 0x3687
movq 0x389a1(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38a5f(%rip), %rdx     # 0x3c0c0
leaq 0x34ba8(%rip), %rsi     # 0x38210
leaq 0x34fe2(%rip), %rcx     # 0x38651
leaq 0x34bc1(%rip), %r8      # 0x38237
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x0, 0x38b1e(%rip)     # 0x3c1ac
je 0x36c7
movq 0x38961(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38a1f(%rip), %rdx     # 0x3c0c0
leaq 0x34b68(%rip), %rsi     # 0x38210
leaq 0x34fa2(%rip), %rcx     # 0x38651
leaq 0x34e33(%rip), %r8      # 0x384e9
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x0, 0x38ae6(%rip)     # 0x3c1b4
je 0x3707
movq 0x38921(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x389df(%rip), %rdx     # 0x3c0c0
leaq 0x34b28(%rip), %rsi     # 0x38210
leaq 0x34f62(%rip), %rcx     # 0x38651
leaq 0x34b44(%rip), %r8      # 0x3823a
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x0, 0x389a6(%rip)     # 0x3c0b4
je 0x3747
movq 0x388e1(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x3899f(%rip), %rdx     # 0x3c0c0
leaq 0x34ae8(%rip), %rsi     # 0x38210
leaq 0x34f22(%rip), %rcx     # 0x38651
leaq 0x34b07(%rip), %r8      # 0x3823d
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x3, 0x38a56(%rip)     # 0x3c1a4
jne 0x3790
cmpl $0x0, 0x38961(%rip)     # 0x3c0b8
je 0x3790
movq 0x38898(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38956(%rip), %rdx     # 0x3c0c0
leaq 0x34a9f(%rip), %rsi     # 0x38210
leaq 0x34ac8(%rip), %rcx     # 0x38240
leaq 0x34ac5(%rip), %r8      # 0x38244
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x2, 0x38ae9(%rip)     # 0x3c280
jne 0x37a6
movl $0x1, %eax
movl %eax, -0x7fc(%rbp)
jmp 0x37b6
imull $0x3, 0x38ad3(%rip), %eax # 0x3c280
subl $0x6, %eax
movl %eax, -0x7fc(%rbp)
movl -0x7fc(%rbp), %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, 0x38aa6(%rip)     # 0x3c26c
jge 0x37d2
movl $0x0, 0x38a9a(%rip)     # 0x3c26c
cmpl $0x0, 0x38a97(%rip)     # 0x3c270
jge 0x37e4
movl -0x1c(%rbp), %eax
movl %eax, 0x38a8c(%rip)     # 0x3c270
movl 0x38a86(%rip), %eax     # 0x3c270
cmpl -0x1c(%rbp), %eax
jle 0x37f8
movl -0x1c(%rbp), %eax
movl %eax, 0x38a78(%rip)     # 0x3c270
cmpl $0x0, 0x38a75(%rip)     # 0x3c274
jg 0x380b
movl $0x174, 0x38a69(%rip)   # imm = 0x174
cmpl $0x0, 0x38a5a(%rip)     # 0x3c26c
jl 0x381f
movl 0x38a52(%rip), %eax     # 0x3c26c
cmpl -0x1c(%rbp), %eax
jle 0x388f
movq 0x387d2(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38890(%rip), %rdx     # 0x3c0c0
leaq 0x349ab(%rip), %rsi     # 0x381e2
leaq 0x34a09(%rip), %rcx     # 0x38247
movb $0x0, %al
callq 0x1060
xorl %eax, %eax
cmpl -0x1c(%rbp), %eax
jne 0x3868
movq 0x387a5(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34e24(%rip), %rsi     # 0x38681
xorl %edx, %edx
movb $0x0, %al
callq 0x1060
jmp 0x3885
movq 0x38789(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movl -0x1c(%rbp), %ecx
leaq 0x34986(%rip), %rsi     # 0x38202
xorl %edx, %edx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x0, 0x389da(%rip)     # 0x3c270
jl 0x38a3
movl 0x389d2(%rip), %eax     # 0x3c270
cmpl -0x1c(%rbp), %eax
jle 0x3913
movq 0x3874e(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x3880c(%rip), %rdx     # 0x3c0c0
leaq 0x34927(%rip), %rsi     # 0x381e2
leaq 0x34985(%rip), %rcx     # 0x38247
movb $0x0, %al
callq 0x1060
xorl %eax, %eax
cmpl -0x1c(%rbp), %eax
jne 0x38ec
movq 0x38721(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x34da0(%rip), %rsi     # 0x38681
xorl %edx, %edx
movb $0x0, %al
callq 0x1060
jmp 0x3909
movq 0x38705(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movl -0x1c(%rbp), %ecx
leaq 0x34902(%rip), %rsi     # 0x38202
xorl %edx, %edx
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
movl 0x38953(%rip), %eax     # 0x3c26c
cmpl 0x38951(%rip), %eax     # 0x3c270
jle 0x3951
movq 0x386d0(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x3878e(%rip), %rdx     # 0x3c0c0
leaq 0x34911(%rip), %rsi     # 0x3824a
leaq 0x34915(%rip), %rcx     # 0x38255
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
movl 0x38929(%rip), %eax     # 0x3c280
imull 0x38842(%rip), %eax     # 0x3c1a0
movl 0x3890c(%rip), %ecx     # 0x3c270
shll %ecx
cmpl %ecx, %eax
jle 0x399a
movq 0x38687(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38745(%rip), %rdx     # 0x3c0c0
leaq 0x348c8(%rip), %rsi     # 0x3824a
leaq 0x34b63(%rip), %rcx     # 0x384ec
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
cmpl $0x3, 0x388d3(%rip)     # 0x3c274
jl 0x39af
cmpl $0x174, 0x388c7(%rip)   # imm = 0x174
jle 0x3a01
movq 0x38642(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x38700(%rip), %rdx     # 0x3c0c0
leaq 0x3481b(%rip), %rsi     # 0x381e2
leaq 0x348be(%rip), %rcx     # 0x3828c
movb $0x0, %al
callq 0x1060
movq 0x3861c(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x3481c(%rip), %rsi     # 0x38202
movl $0x3, %edx
movl $0x174, %ecx            # imm = 0x174
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
movl 0x3879d(%rip), %eax     # 0x3c1a4
movl %eax, 0x38877(%rip)     # 0x3c284
cmpl $0x4, 0x3886c(%rip)     # 0x3c280
jl 0x3a7e
movl 0x38850(%rip), %eax     # 0x3c26c
cmpl -0x1c(%rbp), %eax
je 0x3a2a
cmpl $0x3, 0x3884c(%rip)     # 0x3c274
jne 0x3a7e
movl $0x0, 0x38774(%rip)     # 0x3c1a8
movl $0xffffffff, 0x38836(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x38828(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3881a(%rip) # imm = 0xFFFFFFFF
cmpl $0x4, 0x3875f(%rip)     # 0x3c1b8
jne 0x3a62
callq 0x5d50
jmp 0x3a79
cmpl $0x5, 0x3874f(%rip)     # 0x3c1b8
jne 0x3a72
callq 0x56e0
jmp 0x3a77
callq 0x6160
jmp 0x3a79
jmp 0x443a
movl 0x387e8(%rip), %eax     # 0x3c26c
shll %eax
movl %eax, 0x387e0(%rip)     # 0x3c26c
movl 0x387de(%rip), %eax     # 0x3c270
shll %eax
movl %eax, 0x387d6(%rip)     # 0x3c270
leaq 0x3875f(%rip), %rdi     # 0x3c200
leaq 0x34a6d(%rip), %rsi     # 0x38515
callq 0x1030
callq 0x6af0
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jg 0x3b32
movslq -0x10(%rbp), %rcx
leaq 0x387c4(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movslq -0x10(%rbp), %rcx
leaq 0x387aa(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movslq -0x10(%rbp), %rcx
leaq 0x39341(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movslq -0x10(%rbp), %rcx
leaq 0x39327(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x3ab9
movl $0x1, 0x39eb4(%rip)     # 0x3d9f0
cmpl $0x5, 0x38675(%rip)     # 0x3c1b8
jne 0x3c0d
movl 0x38731(%rip), %eax     # 0x3c280
subl $0x5, %eax
cmpl $0x1b, %eax
jle 0x3b64
movl $0x1b, %eax
movl %eax, -0x800(%rbp)
jmp 0x3b73
movl 0x38716(%rip), %eax     # 0x3c280
subl $0x5, %eax
movl %eax, -0x800(%rbp)
movl -0x800(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x4(%rbp), %edi
movl -0x14(%rbp), %esi
movl 0x386f8(%rip), %edx     # 0x3c280
subl $0x5, %edx
callq 0x6f50
cmpl $0x0, 0x39e5d(%rip)     # 0x3d9f4
jne 0x3ba7
cmpl $0x0, 0x386d8(%rip)     # 0x3c278
jle 0x3ba7
jmp 0x443a
callq 0x17530
leaq 0x3a04d(%rip), %rdi     # 0x3dc00
leaq 0x3a146(%rip), %rsi     # 0x3dd00
leaq -0x8(%rbp), %rdx
leaq -0xc(%rbp), %rcx
callq 0x7410
leaq -0x7f0(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x18aa0
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
cmpl $0xc, 0x39e10(%rip)     # 0x3d9f4
sete %al
andb $0x1, %al
movzbl %al, %edx
leaq -0x220(%rbp), %rcx
leaq -0x7f0(%rbp), %r9
movl -0x18(%rbp), %eax
xorl %r8d, %r8d
movl %eax, (%rsp)
callq 0x18b50
jmp 0x3f0b
cmpl $0x4, 0x385a4(%rip)     # 0x3c1b8
jne 0x3d07
cmpl $0x13, 0x3865f(%rip)    # 0x3c280
jg 0x3c34
movl 0x38657(%rip), %eax     # 0x3c280
subl $0x3, %eax
movl %eax, -0x804(%rbp)
jmp 0x3c43
movl 0x38646(%rip), %eax     # 0x3c280
subl $0x4, %eax
movl %eax, -0x804(%rbp)
movl -0x804(%rbp), %eax
cmpl $0x11, %eax
jle 0x3c5b
movl $0x11, %eax
movl %eax, -0x808(%rbp)
jmp 0x3c90
cmpl $0x13, 0x3861e(%rip)    # 0x3c280
jg 0x3c75
movl 0x38616(%rip), %eax     # 0x3c280
subl $0x3, %eax
movl %eax, -0x80c(%rbp)
jmp 0x3c84
movl 0x38605(%rip), %eax     # 0x3c280
subl $0x4, %eax
movl %eax, -0x80c(%rbp)
movl -0x80c(%rbp), %eax
movl %eax, -0x808(%rbp)
movl -0x808(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x4(%rbp), %edi
movl -0x14(%rbp), %esi
movl 0x385db(%rip), %edx     # 0x3c280
subl $0x3, %edx
callq 0x6f50
cmpl $0x0, 0x39d40(%rip)     # 0x3d9f4
jne 0x3cc4
cmpl $0x0, 0x385bb(%rip)     # 0x3c278
jle 0x3cc4
jmp 0x443a
callq 0x19500
leaq 0x39f30(%rip), %rdi     # 0x3dc00
leaq 0x3a029(%rip), %rsi     # 0x3dd00
leaq -0x8(%rbp), %rdx
leaq -0xc(%rbp), %rcx
callq 0x7410
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
cmpl $0x6, 0x39d03(%rip)     # 0x3d9f4
sete %al
andb $0x1, %al
movzbl %al, %edx
xorl %eax, %eax
movl %eax, %ecx
callq 0x19be0
jmp 0x3f09
cmpl $0x4, 0x38572(%rip)     # 0x3c280
jl 0x3dee
cmpl $0xd, 0x38565(%rip)     # 0x3c280
jg 0x3d2e
movl 0x3855d(%rip), %eax     # 0x3c280
subl $0x1, %eax
movl %eax, -0x810(%rbp)
jmp 0x3d3d
movl 0x3854c(%rip), %eax     # 0x3c280
subl $0x2, %eax
movl %eax, -0x810(%rbp)
movl -0x810(%rbp), %eax
cmpl $0xe, %eax
jle 0x3d55
movl $0xe, %eax
movl %eax, -0x814(%rbp)
jmp 0x3d8a
cmpl $0xd, 0x38524(%rip)     # 0x3c280
jg 0x3d6f
movl 0x3851c(%rip), %eax     # 0x3c280
subl $0x1, %eax
movl %eax, -0x818(%rbp)
jmp 0x3d7e
movl 0x3850b(%rip), %eax     # 0x3c280
subl $0x2, %eax
movl %eax, -0x818(%rbp)
movl -0x818(%rbp), %eax
movl %eax, -0x814(%rbp)
movl -0x814(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x4(%rbp), %edi
movl -0x14(%rbp), %esi
movl 0x384e1(%rip), %edx     # 0x3c280
subl $0x1, %edx
callq 0x6f50
cmpl $0x0, 0x39c46(%rip)     # 0x3d9f4
jne 0x3dbe
cmpl $0x0, 0x384c1(%rip)     # 0x3c278
jle 0x3dbe
jmp 0x443a
callq 0x1a240
leaq 0x39e36(%rip), %rdi     # 0x3dc00
leaq 0x39f2f(%rip), %rsi     # 0x3dd00
leaq -0x8(%rbp), %rdx
leaq -0xc(%rbp), %rcx
callq 0x7410
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
callq 0x1a970
jmp 0x3f07
cmpl $0x3, 0x3848b(%rip)     # 0x3c280
jg 0x3e96
cmpl $0x1, 0x3839e(%rip)     # 0x3c1a0
jne 0x3e96
cmpl $0x1, 0x38395(%rip)     # 0x3c1a4
jne 0x3e96
movl 0x38451(%rip), %eax     # 0x3c26c
movl 0x3845f(%rip), %ecx     # 0x3c280
shll %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jg 0x3e96
movl 0x38440(%rip), %eax     # 0x3c270
movl 0x3844a(%rip), %ecx     # 0x3c280
shll %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x3e96
movl 0x3842f(%rip), %eax     # 0x3c274
movl 0x38435(%rip), %ecx     # 0x3c280
shll %ecx
subl $0x2, %ecx
cmpl %ecx, %eax
jl 0x3e96
movl 0x38426(%rip), %edi     # 0x3c280
callq 0x7e60
leaq 0x39d9a(%rip), %rdi     # 0x3dc00
leaq 0x39e93(%rip), %rsi     # 0x3dd00
leaq -0x8(%rbp), %rdx
leaq -0xc(%rbp), %rcx
callq 0x7410
movl 0x38230(%rip), %eax     # 0x3c0b0
movl %eax, 0x383fe(%rip)     # 0x3c284
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movl $0x1, %edx
callq 0x8080
cmpl $0x3, 0x383e3(%rip)     # 0x3c280
jne 0x3f05
cmpl $0x2, 0x382fa(%rip)     # 0x3c1a0
jg 0x3f05
cmpl $0x2, 0x382f5(%rip)     # 0x3c1a4
jg 0x3f05
cmpl $0x6, 0x383b4(%rip)     # 0x3c26c
jg 0x3f05
cmpl $0x6, 0x383af(%rip)     # 0x3c270
jl 0x3f05
movl 0x383b7(%rip), %edi     # 0x3c280
callq 0x1b0f0
leaq 0x39d2b(%rip), %rdi     # 0x3dc00
leaq 0x39e24(%rip), %rsi     # 0x3dd00
leaq -0x8(%rbp), %rdx
leaq -0xc(%rbp), %rcx
callq 0x7410
movl 0x381c1(%rip), %eax     # 0x3c0b0
movl %eax, 0x3838f(%rip)     # 0x3c284
movl -0x8(%rbp), %edi
movl -0xc(%rbp), %esi
movl $0x2, %edx
callq 0x8080
jmp 0x3f07
jmp 0x3f09
jmp 0x3f0b
cmpl $0x0, 0x382d6(%rip)     # 0x3c1e8
je 0x443a
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jg 0x418b
movslq -0x10(%rbp), %rcx
leaq 0x3835a(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
jne 0x3f60
movslq -0x10(%rbp), %rcx
leaq 0x38341(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x417b
movq 0x38289(%rip), %rdi     # 0x3c1f0
movl -0x10(%rbp), %edx
movl -0x10(%rbp), %ecx
addl $0x2, %ecx
subl 0x3830a(%rip), %ecx     # 0x3c280
leaq 0x34333(%rip), %rsi     # 0x382b0
movb $0x0, %al
callq 0x1060
cmpl $0x0, 0x38255(%rip)     # 0x3c1e0
je 0x40df
movslq -0x10(%rbp), %rcx
leaq 0x38ea4(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x3fd6
movq 0x38240(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x38e85(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x340ef(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x4016
movq 0x38213(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x38e58(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq -0x10(%rbp), %rcx
leaq 0x38e43(%rip), %rax     # 0x3ce40
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x340b1(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x381d3(%rip), %rdi     # 0x3c1f0
leaq 0x342ac(%rip), %rsi     # 0x382d0
movb $0x0, %al
callq 0x1060
movslq -0x10(%rbp), %rcx
leaq 0x3825a(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x4070
movq 0x381a6(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x3823b(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x34055(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x40b0
movq 0x38179(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x3820e(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq -0x10(%rbp), %rcx
leaq 0x381f9(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x34017(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x38139(%rip), %rdi     # 0x3c1f0
leaq 0x34215(%rip), %rsi     # 0x382d3
movb $0x0, %al
callq 0x1060
movq 0x38124(%rip), %rdi     # 0x3c1f0
leaq 0x344a7(%rip), %rsi     # 0x3857a
movb $0x0, %al
callq 0x1060
jmp 0x4179
movslq -0x10(%rbp), %rcx
leaq 0x381a6(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x4124
movq 0x380f2(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x38187(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x33fa1(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x4164
movq 0x380c5(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x3815a(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq -0x10(%rbp), %rcx
leaq 0x38145(%rip), %rax     # 0x3c290
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x33f63(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x38085(%rip), %rdi     # 0x3c1f0
leaq 0x34408(%rip), %rsi     # 0x3857a
movb $0x0, %al
callq 0x1060
jmp 0x417b
jmp 0x417d
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x3f1f
cmpl $0x0, 0x37f26(%rip)     # 0x3c0b8
jne 0x4438
cmpl $0x3, 0x38005(%rip)     # 0x3c1a4
jge 0x4438
movq 0x38044(%rip), %rdi     # 0x3c1f0
leaq 0x3412a(%rip), %rsi     # 0x382dd
movb $0x0, %al
callq 0x1060
movl 0x37fe4(%rip), %eax     # 0x3c1a4
movl %eax, -0x10(%rbp)
cmpl $0x3, -0x10(%rbp)
jg 0x42d2
movl -0x10(%rbp), %eax
cmpl 0x37fce(%rip), %eax     # 0x3c1a4
jle 0x41ed
movq 0x38011(%rip), %rdi     # 0x3c1f0
leaq 0x34136(%rip), %rsi     # 0x3831c
movb $0x0, %al
callq 0x1060
movslq -0x10(%rbp), %rcx
leaq 0x37ed8(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x4232
movq 0x37fe4(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x37eb9(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x33e93(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x4272
movq 0x37fb7(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x37e8c(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq -0x10(%rbp), %rcx
leaq 0x37e77(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x33e55(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
cmpl $0x3, -0x10(%rbp)
jne 0x428f
movq 0x37f71(%rip), %rdi     # 0x3c1f0
leaq 0x34069(%rip), %rsi     # 0x382ef
movb $0x0, %al
callq 0x1060
jmp 0x42a7
movq 0x37f5a(%rip), %rdi     # 0x3c1f0
movl -0x10(%rbp), %edx
leaq 0x3405b(%rip), %rsi     # 0x382fb
movb $0x0, %al
callq 0x1060
cmpl $0x3, -0x10(%rbp)
jge 0x42c2
movq 0x37f3c(%rip), %rdi     # 0x3c1f0
leaq 0x34049(%rip), %rsi     # 0x38304
movb $0x0, %al
callq 0x1060
jmp 0x42c4
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x41c3
movq 0x37f17(%rip), %rdi     # 0x3c1f0
leaq 0x3429a(%rip), %rsi     # 0x3857a
movb $0x0, %al
callq 0x1060
cmpl $0x0, 0x37ef2(%rip)     # 0x3c1e0
je 0x4436
movq 0x37ef5(%rip), %rdi     # 0x3c1f0
leaq 0x34004(%rip), %rsi     # 0x38306
movb $0x0, %al
callq 0x1060
movl 0x37e95(%rip), %eax     # 0x3c1a4
movl %eax, -0x10(%rbp)
cmpl $0x3, -0x10(%rbp)
jg 0x4421
movl -0x10(%rbp), %eax
cmpl 0x37e7f(%rip), %eax     # 0x3c1a4
jle 0x433c
movq 0x37ec2(%rip), %rdi     # 0x3c1f0
leaq 0x33fe7(%rip), %rsi     # 0x3831c
movb $0x0, %al
callq 0x1060
movslq -0x10(%rbp), %rcx
leaq 0x37de9(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x4381
movq 0x37e95(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x37dca(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
leaq 0x33d44(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x43c1
movq 0x37e68(%rip), %rdi     # 0x3c1f0
movslq -0x10(%rbp), %rcx
leaq 0x37d9d(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
movslq -0x10(%rbp), %rcx
leaq 0x37d88(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rcx
leaq 0x33d06(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
cmpl $0x3, -0x10(%rbp)
jne 0x43de
movq 0x37e22(%rip), %rdi     # 0x3c1f0
leaq 0x33f1a(%rip), %rsi     # 0x382ef
movb $0x0, %al
callq 0x1060
jmp 0x43f6
movq 0x37e0b(%rip), %rdi     # 0x3c1f0
movl -0x10(%rbp), %edx
leaq 0x33f0c(%rip), %rsi     # 0x382fb
movb $0x0, %al
callq 0x1060
cmpl $0x3, -0x10(%rbp)
jge 0x4411
movq 0x37ded(%rip), %rdi     # 0x3c1f0
leaq 0x33efa(%rip), %rsi     # 0x38304
movb $0x0, %al
callq 0x1060
jmp 0x4413
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x4312
movq 0x37dc8(%rip), %rdi     # 0x3c1f0
leaq 0x3414b(%rip), %rsi     # 0x3857a
movb $0x0, %al
callq 0x1060
jmp 0x4438
jmp 0x443a
addq $0x820, %rsp            # imm = 0x820
popq %rbp
retq
nopw %cs:(%rax,%rax)