// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: isminset
static int
isminset(EDGE **ed, int ned, int nbtot, int nbop,
	 EDGE *old_numbering[][MAXE], EDGE *new_numbering[][MAXE],
	 int *xnbtot, int *xnbop)

/* Test if the set ed[0..ned-1] is minimal under the group given by
   old_numbering.  These are assumed to be undirected edges matching
   their min fields.  If it is, *xnbtot and *xnbop are counts for the
   stabiliser.  In the case that the stabiliser is not trivial, it is
   placed in new_numbering. 
   (This represents the group, but not a canonical labelling.) */
{
    EDGE **nb,**nbnew;
    EDGE *image[MAXE];
    register int i,j,jnew;
    int instabiliser[2*MAXE];

    *xnbtot = 1;
    if (nbop > 0) *xnbop = 1; else *xnbop = 0;

    instabiliser[0] = TRUE;

    nb = (EDGE**)old_numbering[0];
    for (i = 0; i < ne; ++i) nb[i]->index = i;

    for (j = 1; j < nbtot; ++j)
    {
        nb = (EDGE**)old_numbering[j];
        for (i = 0; i < ned; ++i) image[i] = nb[ed[i]->index]->min;

        sortedges(image,ned);
        for (i = 0; i < ned; ++i) if (image[i] != ed[i]) break;
        if (i == ned)
        {
            if (j < nbop) ++*xnbop;
            ++*xnbtot;
	    instabiliser[j] = TRUE;
        }
        else if (image[i] < ed[i])
            return FALSE;
	else
	    instabiliser[j] = FALSE;
    }

    if (*xnbtot > 1)
    {
        jnew = 0;
        for (j = 0; j < nbtot; ++j)
            if (instabiliser[j])
	    {
	        nb = (EDGE**)old_numbering[j];
	        nbnew = (EDGE**)new_numbering[jnew++];
	        for (i = 0; i < ne; ++i) nbnew[i] = nb[i];
	    }
    }

    return TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1790, %rsp           # imm = 0x1790
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq 0x10(%rbp), %rax
movl $0x1, (%rax)
cmpl $0x0, -0x1c(%rbp)
jle 0x2fca4
movq 0x18(%rbp), %rax
movl $0x1, (%rax)
jmp 0x2fcae
movq 0x18(%rbp), %rax
movl $0x0, (%rax)
movl $0x1, -0x1790(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0xbe4(%rbp)
movl -0xbe4(%rbp), %eax
cmpl 0x22a94e(%rip), %eax    # 0x25a624
jge 0x2fd01
movl -0xbe4(%rbp), %ecx
movq -0x38(%rbp), %rax
movslq -0xbe4(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movl %ecx, 0x34(%rax)
movl -0xbe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe4(%rbp)
jmp 0x2fcca
movl $0x1, -0xbe8(%rbp)
movl -0xbe8(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x2fe76
movq -0x28(%rbp), %rax
movslq -0xbe8(%rbp), %rcx
imulq $0xba0, %rcx, %rcx      # imm = 0xBA0
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0xbe4(%rbp)
movl -0xbe4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x2fd87
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
movslq -0xbe4(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq 0x34(%rcx), %rcx
movq (%rax,%rcx,8), %rax
movq 0x28(%rax), %rcx
movslq -0xbe4(%rbp), %rax
movq %rcx, -0xbe0(%rbp,%rax,8)
movl -0xbe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe4(%rbp)
jmp 0x2fd3d
leaq -0xbe0(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x2fbc0
movl $0x0, -0xbe4(%rbp)
movl -0xbe4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x2fde0
movslq -0xbe4(%rbp), %rax
movq -0xbe0(%rbp,%rax,8), %rax
movq -0x10(%rbp), %rcx
movslq -0xbe4(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x2fdcd
jmp 0x2fde0
jmp 0x2fdcf
movl -0xbe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe4(%rbp)
jmp 0x2fda0
movl -0xbe4(%rbp), %eax
cmpl -0x14(%rbp), %eax
jne 0x2fe20
movl -0xbe8(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jge 0x2fe01
movq 0x18(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movq 0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movslq -0xbe8(%rbp), %rax
movl $0x1, -0x1790(%rbp,%rax,4)
jmp 0x2fe60
movslq -0xbe4(%rbp), %rax
movq -0xbe0(%rbp,%rax,8), %rax
movq -0x10(%rbp), %rcx
movslq -0xbe4(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jae 0x2fe4c
movl $0x0, -0x4(%rbp)
jmp 0x2ff62
movslq -0xbe8(%rbp), %rax
movl $0x0, -0x1790(%rbp,%rax,4)
jmp 0x2fe60
jmp 0x2fe62
movl -0xbe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe8(%rbp)
jmp 0x2fd0b
movq 0x10(%rbp), %rax
cmpl $0x1, (%rax)
jle 0x2ff5b
movl $0x0, -0xbec(%rbp)
movl $0x0, -0xbe8(%rbp)
movl -0xbe8(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x2ff59
movslq -0xbe8(%rbp), %rax
cmpl $0x0, -0x1790(%rbp,%rax,4)
je 0x2ff43
movq -0x28(%rbp), %rax
movslq -0xbe8(%rbp), %rcx
imulq $0xba0, %rcx, %rcx      # imm = 0xBA0
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movl -0xbec(%rbp), %ecx
movl %ecx, %edx
addl $0x1, %edx
movl %edx, -0xbec(%rbp)
movslq %ecx, %rcx
imulq $0xba0, %rcx, %rcx      # imm = 0xBA0
addq %rcx, %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0xbe4(%rbp)
movl -0xbe4(%rbp), %eax
cmpl 0x22a714(%rip), %eax    # 0x25a624
jge 0x2ff41
movq -0x38(%rbp), %rax
movslq -0xbe4(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x40(%rbp), %rax
movslq -0xbe4(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0xbe4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe4(%rbp)
jmp 0x2ff04
jmp 0x2ff43
jmp 0x2ff45
movl -0xbe8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbe8(%rbp)
jmp 0x2fe97
jmp 0x2ff5b
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x1790, %rsp           # imm = 0x1790
popq %rbp
retq
nop