// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: main
int
main(int argc, char *argv[])
{
    int i;
#if CPUTIME
    struct tms timestruct0,timestruct1;

    times(&timestruct0);
#endif
 
    if (argc > 1
        && (strcmp(argv[1],"-help") == 0 || (strcmp(argv[1],"--help") == 0)))
    {
	fprintf(stderr,"Plantri version %s\n",VERSION);
	fprintf(stderr,
            "Usage: %s %s n [res/mod] [outfile]\n",argv[0],SWITCHES);
#ifdef HELPMESSAGE
	HELPMESSAGE;
#endif
        fprintf(stderr,"See plantri-guide.txt for more information.\n");
	return 0;
    }

    decode_command_line(argc,argv);

#ifdef SPLITTEST
    if (mod == 1) mod = 2;
    uswitch = TRUE;
    aswitch = gswitch = sswitch = Eswitch = FALSE;
#endif

    if (minconnec < 0 && (tswitch || xswitch))
    {
	fprintf(stderr, 
	 ">E %s: -t and -x can only be used in conjunction with -c\n",cmdname);
	exit(1);
    }

    for (i = 0; i < 6; ++i)
    {
        ZEROBIG(nout[i]);
        ZEROBIG(nout_op[i]);
    }
    ZEROBIG(nout_V);

#ifdef STATS
    ZEROBIG(ntriv);
    ZEROBIG(numrooted);
    ZEROBIG(nummindeg[1]);
    ZEROBIG(nummindeg[2]);
    ZEROBIG(nummindeg[3]);
    ZEROBIG(nummindeg[4]);
    ZEROBIG(nummindeg[5]);
#endif

#ifdef SPLITTEST
    ZEROBIG(splitcases);
#endif

#ifdef PLUGIN_INIT
    PLUGIN_INIT;
#endif

    minpolydeg = -1;
    minpolyconnec = -1;

    if (pswitch && bswitch)                     bipartite_dispatch();
    else if (pswitch)                           polytope_dispatch();
    else if (polygonsize>=0)                    polygon_dispatch();
    else if (bswitch)                           eulerian_dispatch();
    else if (qswitch)                           quadrangulation_dispatch();
    else if (minconnec >= 5 || minimumdeg >= 5) min5_dispatch();
    else if (minconnec >= 4 || minimumdeg >= 4) min4_dispatch();
    else                                        simple_dispatch();

#if CPUTIME
    times(&timestruct1);
#endif

    ZEROBIG(totalout);
    ZEROBIG(totalout_op);
    for (i = 0; i < 6; ++i)
    {
	SUMBIGS(totalout,nout[i]);
	if (oswitch) SUMBIGS(totalout_op,nout_op[i]);
    }

    dosummary = 1;
#ifdef SUMMARY
    nv = maxnv;
    SUMMARY();
#endif

#ifdef SPLITTEST
    PRINTBIG(msgfile,splitcases);
    fprintf(msgfile," splitting cases at level=%d",splitlevel);
#if CPUTIME
    fprintf(msgfile,"; cpu=%.2f sec\n",
	(double)(timestruct1.tms_utime+timestruct1.tms_stime
              -timestruct0.tms_utime-timestruct0.tms_stime) / (double)CLK_TCK);
#else
    fprintf(msgfile,"\n");
#endif
    return 0;
#endif

    if (!dosummary) return 0;

    if (oswitch && vswitch)
    {
	PRINTBIG(msgfile,totalout);
	fprintf(msgfile," isomorphism classes\n");
    }

    PRINTBIG(msgfile,(oswitch ? totalout_op : totalout));
    fprintf(msgfile," %s",outtypename);
    if (uswitch) fprintf(msgfile," generated");
    else         fprintf(msgfile," written to %s",outfilename);
#if CPUTIME
    fprintf(msgfile,"; cpu=%.2f sec\n",
	    (double)(timestruct1.tms_utime+timestruct1.tms_stime
	      -timestruct0.tms_utime+timestruct0.tms_stime) / (double)CLK_TCK);
#else
    fprintf(msgfile,"\n");
#endif
    if (Vswitch)
    {
	fprintf(msgfile,"Suppressed ");
	PRINTBIG(msgfile,nout_V);
	fprintf(msgfile," with trivial group.\n");
    }

#ifdef STATS
    if (Gswitch)
    {
        PRINTBIG(msgfile,numrooted);
        fprintf(msgfile," rooted maps\n");
        fprintf(msgfile,"Number with trivial group: ");
        PRINTBIG(msgfile,ntriv);
        fprintf(msgfile,"\n");
    }
    else if (polygonsize == 0)
    {
        fprintf(msgfile,"Rooted counts by outside face:\n");
        for (i = 3; i < maxnv; ++i)
            if (!ISZEROBIG(numbigface[i]))
            {
                fprintf(msgfile,"%2d: ",i);
                PRINTBIG(msgfile,numbigface[i]);
                fprintf(msgfile,"\n");
            }
    }       
#ifdef STATS2
    fprintf(msgfile,"Counts by number of twos:");
    for (i = 0; i < maxnv; ++i)
	if (!ISZEROBIG(numtwos[i]))
            {   
                fprintf(msgfile," %d:",i);
                PRINTBIG(msgfile,numtwos[i]);
            }
    fprintf(msgfile,"\n");
#endif
#endif

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x1080
cmpl $0x1, -0x8(%rbp)
jle 0x12a7
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x36dea(%rip), %rsi     # 0x38005
callq 0x1050
cmpl $0x0, %eax
je 0x123e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x36dd0(%rip), %rsi     # 0x38004
callq 0x1050
cmpl $0x0, %eax
jne 0x12a7
movq 0x3adb3(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x36dbc(%rip), %rsi     # 0x3800b
leaq 0x36dc9(%rip), %rdx     # 0x3801f
movb $0x0, %al
callq 0x1060
movq 0x3ad94(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x36eea(%rip), %rsi     # 0x3815f
leaq 0x36db5(%rip), %rcx     # 0x38031
movb $0x0, %al
callq 0x1060
movq 0x3ad6e(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
leaq 0x36dc1(%rip), %rsi     # 0x38055
movb $0x0, %al
callq 0x1060
movl $0x0, -0x4(%rbp)
jmp 0x18e4
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
callq 0x18f0
cmpl $0x0, 0x3adf6(%rip)     # 0x3c0b0
jge 0x12f7
cmpl $0x0, 0x3adf1(%rip)     # 0x3c0b4
jne 0x12ce
cmpl $0x0, 0x3adec(%rip)     # 0x3c0b8
je 0x12f7
movq 0x3ad23(%rip), %rax     # 0x3bff8
movq (%rax), %rdi
movq 0x3ade1(%rip), %rdx     # 0x3c0c0
leaq 0x36d9c(%rip), %rsi     # 0x38082
movb $0x0, %al
callq 0x1060
movl $0x1, %edi
callq 0x10c0
movl $0x0, -0x14(%rbp)
cmpl $0x6, -0x14(%rbp)
jge 0x1375
movslq -0x14(%rbp), %rcx
leaq 0x3adc1(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movslq -0x14(%rbp), %rcx
leaq 0x3ada7(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movslq -0x14(%rbp), %rcx
leaq 0x3adee(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, 0x8(%rax)
movslq -0x14(%rbp), %rcx
leaq 0x3add4(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq $0x0, (%rax)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x12fe
movq $0x0, 0x3ae18(%rip) # 0x3c198
movq $0x0, 0x3ae05(%rip) # 0x3c190
movl $0xffffffff, 0x3ae0b(%rip) # imm = 0xFFFFFFFF
movl $0xffffffff, 0x3ae05(%rip) # imm = 0xFFFFFFFF
cmpl $0x0, 0x3ae02(%rip)     # 0x3c1a8
je 0x13bb
cmpl $0x0, 0x3adfd(%rip)     # 0x3c1ac
je 0x13bb
callq 0x2350
jmp 0x143e
cmpl $0x0, 0x3ade6(%rip)     # 0x3c1a8
je 0x13cb
callq 0x33a0
jmp 0x143c
cmpl $0x0, 0x3adde(%rip)     # 0x3c1b0
jl 0x13db
callq 0x4450
jmp 0x143a
cmpl $0x0, 0x3adca(%rip)     # 0x3c1ac
je 0x13eb
callq 0x4c00
jmp 0x1438
cmpl $0x0, 0x3adc2(%rip)     # 0x3c1b4
je 0x13fb
callq 0x50a0
jmp 0x1436
cmpl $0x5, 0x3acae(%rip)     # 0x3c0b0
jge 0x140d
cmpl $0x5, 0x3adad(%rip)     # 0x3c1b8
jl 0x1414
callq 0x56e0
jmp 0x1434
cmpl $0x4, 0x3ac95(%rip)     # 0x3c0b0
jge 0x1426
cmpl $0x4, 0x3ad94(%rip)     # 0x3c1b8
jl 0x142d
callq 0x5d50
jmp 0x1432
callq 0x6160
jmp 0x1434
jmp 0x1436
jmp 0x1438
jmp 0x143a
jmp 0x143c
jmp 0x143e
leaq -0x58(%rbp), %rdi
callq 0x1080
movq $0x0, 0x3ad76(%rip) # 0x3c1c8
movq $0x0, 0x3ad63(%rip) # 0x3c1c0
movq $0x0, 0x3ad70(%rip) # 0x3c1d8
movq $0x0, 0x3ad5d(%rip) # 0x3c1d0
movl $0x0, -0x14(%rbp)
cmpl $0x6, -0x14(%rbp)
jge 0x15bb
movslq -0x14(%rbp), %rcx
leaq 0x3ac41(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
addq 0x3ad27(%rip), %rax     # 0x3c1c8
movq %rax, 0x3ad20(%rip)     # 0x3c1c8
cmpq $0x3b9aca00, %rax       # imm = 0x3B9ACA00
jl 0x14ed
movq 0x3ad11(%rip), %rax     # 0x3c1c8
subq $0x3b9aca00, %rax       # imm = 0x3B9ACA00
movq %rax, 0x3ad04(%rip)     # 0x3c1c8
movslq -0x14(%rbp), %rcx
leaq 0x3ac01(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
addq $0x1, %rax
addq 0x3acdc(%rip), %rax     # 0x3c1c0
movq %rax, 0x3acd5(%rip)     # 0x3c1c0
jmp 0x1510
movslq -0x14(%rbp), %rcx
leaq 0x3abd8(%rip), %rax     # 0x3c0d0
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
addq 0x3acb7(%rip), %rax     # 0x3c1c0
movq %rax, 0x3acb0(%rip)     # 0x3c1c0
cmpl $0x0, 0x3acc9(%rip)     # 0x3c1e0
je 0x15ab
movslq -0x14(%rbp), %rcx
leaq 0x3ac08(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
addq 0x3ac9e(%rip), %rax     # 0x3c1d8
movq %rax, 0x3ac97(%rip)     # 0x3c1d8
cmpq $0x3b9aca00, %rax       # imm = 0x3B9ACA00
jl 0x1586
movq 0x3ac88(%rip), %rax     # 0x3c1d8
subq $0x3b9aca00, %rax       # imm = 0x3B9ACA00
movq %rax, 0x3ac7b(%rip)     # 0x3c1d8
movslq -0x14(%rbp), %rcx
leaq 0x3abc8(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
addq $0x1, %rax
addq 0x3ac53(%rip), %rax     # 0x3c1d0
movq %rax, 0x3ac4c(%rip)     # 0x3c1d0
jmp 0x15a9
movslq -0x14(%rbp), %rcx
leaq 0x3ab9f(%rip), %rax     # 0x3c130
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
addq 0x3ac2e(%rip), %rax     # 0x3c1d0
movq %rax, 0x3ac27(%rip)     # 0x3c1d0
jmp 0x15ab
jmp 0x15ad
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x147a
movl $0x1, 0x3ac1f(%rip)     # 0x3c1e4
cmpl $0x0, 0x3ac18(%rip)     # 0x3c1e4
jne 0x15da
movl $0x0, -0x4(%rbp)
jmp 0x18e4
cmpl $0x0, 0x3abff(%rip)     # 0x3c1e0
je 0x164c
cmpl $0x0, 0x3abfe(%rip)     # 0x3c1e8
je 0x164c
cmpq $0x0, 0x3abcc(%rip)     # 0x3c1c0
jne 0x1614
movq 0x3abf3(%rip), %rdi     # 0x3c1f0
movq 0x3abc4(%rip), %rdx     # 0x3c1c8
leaq 0x36ab1(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x1637
movq 0x3abd5(%rip), %rdi     # 0x3c1f0
movq 0x3ab9e(%rip), %rdx     # 0x3c1c0
movq 0x3ab9f(%rip), %rcx     # 0x3c1c8
leaq 0x36a90(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x3abb2(%rip), %rdi     # 0x3c1f0
leaq 0x36a84(%rip), %rsi     # 0x380c9
movb $0x0, %al
callq 0x1060
cmpl $0x0, 0x3ab8d(%rip)     # 0x3c1e0
je 0x166d
movq 0x3ab74(%rip), %rax     # 0x3c1d0
movq %rax, -0x68(%rbp)
movq 0x3ab71(%rip), %rax     # 0x3c1d8
movq %rax, -0x60(%rbp)
jmp 0x1683
movq 0x3ab4c(%rip), %rax     # 0x3c1c0
movq %rax, -0x68(%rbp)
movq 0x3ab49(%rip), %rax     # 0x3c1c8
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x16ed
movq 0x3ab5f(%rip), %rax     # 0x3c1f0
movq %rax, -0xa0(%rbp)
cmpl $0x0, 0x3ab41(%rip)     # 0x3c1e0
je 0x16b9
movq 0x3ab28(%rip), %rax     # 0x3c1d0
movq %rax, -0x78(%rbp)
movq 0x3ab25(%rip), %rax     # 0x3c1d8
movq %rax, -0x70(%rbp)
jmp 0x16cf
movq 0x3ab00(%rip), %rax     # 0x3c1c0
movq %rax, -0x78(%rbp)
movq 0x3aafd(%rip), %rax     # 0x3c1c8
movq %rax, -0x70(%rbp)
movq -0xa0(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x369db(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x17ac
movq 0x3aafc(%rip), %rax     # 0x3c1f0
movq %rax, -0xa8(%rbp)
cmpl $0x0, 0x3aade(%rip)     # 0x3c1e0
je 0x171f
movq 0x3aac5(%rip), %rax     # 0x3c1d0
movq %rax, -0x88(%rbp)
movq 0x3aabf(%rip), %rax     # 0x3c1d8
movq %rax, -0x80(%rbp)
jmp 0x1738
movq 0x3aa9a(%rip), %rax     # 0x3c1c0
movq %rax, -0x88(%rbp)
movq 0x3aa94(%rip), %rax     # 0x3c1c8
movq %rax, -0x80(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0xb0(%rbp)
cmpl $0x0, 0x3aa93(%rip)     # 0x3c1e0
je 0x176d
movq 0x3aa7a(%rip), %rax     # 0x3c1d0
movq %rax, -0x98(%rbp)
movq 0x3aa74(%rip), %rax     # 0x3c1d8
movq %rax, -0x90(%rbp)
jmp 0x1789
movq 0x3aa4c(%rip), %rax     # 0x3c1c0
movq %rax, -0x98(%rbp)
movq 0x3aa46(%rip), %rax     # 0x3c1c8
movq %rax, -0x90(%rbp)
movq -0xb0(%rbp), %rdx
movq -0xa8(%rbp), %rdi
movq -0x90(%rbp), %rcx
leaq 0x3691b(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x3aa3d(%rip), %rdi     # 0x3c1f0
leaq 0x3693b(%rip), %rsi     # 0x380f5
leaq 0x3aa3f(%rip), %rdx     # 0x3c200
movb $0x0, %al
callq 0x1060
cmpl $0x0, 0x3aa65(%rip)     # 0x3c234
je 0x17e8
movq 0x3aa18(%rip), %rdi     # 0x3c1f0
leaq 0x36900(%rip), %rsi     # 0x380df
movb $0x0, %al
callq 0x1060
jmp 0x1804
movq 0x3aa01(%rip), %rdi     # 0x3c1f0
movq 0x3aa42(%rip), %rdx     # 0x3c238
leaq 0x368ed(%rip), %rsi     # 0x380ea
movb $0x0, %al
callq 0x1060
movq 0x3a9e5(%rip), %rax     # 0x3c1f0
movq %rax, -0xb8(%rbp)
movq -0x58(%rbp), %rax
addq -0x50(%rbp), %rax
subq -0x38(%rbp), %rax
addq -0x30(%rbp), %rax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0xc0(%rbp)
movl $0x2, %edi
callq 0x10b0
movsd -0xc0(%rbp), %xmm0
movq -0xb8(%rbp), %rdi
cvtsi2sd %rax, %xmm1
divsd %xmm1, %xmm0
leaq 0x368a1(%rip), %rsi     # 0x380f9
movb $0x1, %al
callq 0x1060
cmpl $0x0, 0x3a9da(%rip)     # 0x3c240
je 0x18dd
movq 0x3a981(%rip), %rdi     # 0x3c1f0
leaq 0x36893(%rip), %rsi     # 0x38109
movb $0x0, %al
callq 0x1060
cmpq $0x0, 0x3a90b(%rip)     # 0x3c190
jne 0x18a5
movq 0x3a962(%rip), %rdi     # 0x3c1f0
movq 0x3a903(%rip), %rdx     # 0x3c198
leaq 0x36820(%rip), %rsi     # 0x380bc
movb $0x0, %al
callq 0x1060
jmp 0x18c8
movq 0x3a944(%rip), %rdi     # 0x3c1f0
movq 0x3a8dd(%rip), %rdx     # 0x3c190
movq 0x3a8de(%rip), %rcx     # 0x3c198
leaq 0x367ff(%rip), %rsi     # 0x380c0
movb $0x0, %al
callq 0x1060
movq 0x3a921(%rip), %rdi     # 0x3c1f0
leaq 0x3683f(%rip), %rsi     # 0x38115
movb $0x0, %al
callq 0x1060
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq