// File: /workspace/github_c_makefile_star2_O0/mishun[P]plantri/plantri.c
// Function: scanmin5c4_1
static void
scanmin5c4_1(int nbtot, int nbop, EDGE **on4, int non4)

/* This is the recursive procedure that creates nf-4-cycles for mindeg=5
   triangulations.  The first call is with a 4-connected triangulation
   made by a single switching from a 5-connected triangulation.
   on4[0..non4-1] are all edges on nf-4-cycles (min form).
*/

{
    EDGE *good[MAXE],*extAred; 
    EDGE *ext5_sw[MAXE/2],*ext5_51[MAXE],*ext5_52[MAXE];
    int next5_sw,next5_5;
    int newnon4,i,xnbtot,xnbop,ngood;

#ifdef PRE_FILTER_MIN5c4
    if (!(PRE_FILTER_MIN5c4)) return;
#endif

#ifndef FIND_EXTENSIONS_MIN5c4
#define FIND_EXTENSIONS_MIN5c4 find_extensions_min5c4
#endif

    FIND_EXTENSIONS_MIN5c4(nbtot,nbop,NULL,0,on4,non4,
	       		   ext5_sw,&next5_sw,ext5_51,ext5_52,&next5_5);

    if (nv == maxnv)
    {
	if (pswitch) startpolyscan(nbtot,nbop);   /* Saves the group! */
        else         got_one(nbtot,nbop,4);
 
	if (minconnec < 4 && non4 >= 6) scanmin5c3_0(nbtot,nbop,on4,non4);
    }

    for (i = 0; i < next5_sw; ++i)
    {
	switch_edge(ext5_sw[i]);
#ifdef FAST_FILTER_MIN5c4
        if (FAST_FILTER_MIN5c4)
#endif  
        {
	    newnon4 = non4;
	    add_new_nf4_cycles(ext5_sw[i],on4,&newnon4);

	    min5c4_sw_legal(ext5_sw[i],on4,newnon4,good,&ngood);
	    if (ngood > 0
		      && canon_edge(good,ngood,degree,numbering,&xnbtot,&xnbop))
	        scanmin5c4_1(xnbtot,xnbop,on4,newnon4);
	}
	switch_edge_back(ext5_sw[i]);
    }

    for (i = 0; i < next5_5; ++i)
    {
	extAred = extend_min5_a(ext5_51[i],ext5_52[i]);
#ifdef FAST_FILTER_MIN5c4
        if (FAST_FILTER_MIN5c4)
#endif  
        {
	    if (extAred->start == nv-1)
	    {
	        on4[non4] = extAred->next->min;
	        on4[non4+1] = extAred->prev->min;
	        newnon4 = non4 + 2;
	    }
	    else
	    {
	        on4[non4] = extAred->invers->next->min;
	        on4[non4+1] = extAred->invers->prev->min;
	        newnon4 = non4 + 2;
	    }
    
	    if (!has_min5c4_sw(on4,newnon4))
	    {
	        min5c4_5_legal(extAred,on4,newnon4,good,&ngood);
	        if (ngood > 0
                     && canon_edge(good,ngood,degree,numbering,&xnbtot,&xnbop))
	            scanmin5c4_1(xnbtot,xnbop,on4,newnon4);
	    }
	}
	reduce_min5_a(extAred);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x2930, %rsp           # imm = 0x2930
movl %edi, -0x14(%rbp)
movl %esi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
movq -0x20(%rbp), %r8
movl -0x24(%rbp), %r9d
leaq -0x11b0(%rbp), %r14
leaq -0x1d50(%rbp), %r11
leaq -0x28f0(%rbp), %r10
xorl %eax, %eax
movl %eax, %edx
xorl %ecx, %ecx
leaq -0x28f4(%rbp), %rbx
leaq -0x28f8(%rbp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x23910
movl 0x235ceb(%rip), %eax    # 0x25a620
cmpl 0x17945(%rip), %eax     # 0x3c280
jne 0x24986
cmpl $0x0, 0x17864(%rip)     # 0x3c1a8
je 0x24953
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
callq 0x1c350
jmp 0x24963
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
movl $0x4, %edx
callq 0x8080
cmpl $0x4, 0x17746(%rip)     # 0x3c0b0
jge 0x24984
cmpl $0x6, -0x24(%rbp)
jl 0x24984
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
callq 0x25de0
jmp 0x24986
movl $0x0, -0x2900(%rbp)
movl -0x2900(%rbp), %eax
cmpl -0x28f4(%rbp), %eax
jge 0x24a89
movslq -0x2900(%rbp), %rax
movq -0x11b0(%rbp,%rax,8), %rdi
callq 0x23c60
movl -0x24(%rbp), %eax
movl %eax, -0x28fc(%rbp)
movslq -0x2900(%rbp), %rax
movq -0x11b0(%rbp,%rax,8), %rdi
movq -0x20(%rbp), %rsi
leaq -0x28fc(%rbp), %rdx
callq 0x23e50
movslq -0x2900(%rbp), %rax
movq -0x11b0(%rbp,%rax,8), %rdi
movq -0x20(%rbp), %rsi
movl -0x28fc(%rbp), %edx
leaq -0xbd0(%rbp), %rcx
leaq -0x290c(%rbp), %r8
callq 0x241d0
cmpl $0x0, -0x290c(%rbp)
jle 0x24a61
leaq -0xbd0(%rbp), %rdi
movl -0x290c(%rbp), %esi
leaq 0x191d9(%rip), %rdx     # 0x3dc00
leaq 0x192d2(%rip), %rcx     # 0x3dd00
leaq -0x2904(%rbp), %r8
leaq -0x2908(%rbp), %r9
callq 0x244e0
cmpl $0x0, %eax
je 0x24a61
movl -0x2904(%rbp), %edi
movl -0x2908(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x28fc(%rbp), %ecx
callq 0x248c0
movslq -0x2900(%rbp), %rax
movq -0x11b0(%rbp,%rax,8), %rdi
callq 0x24c40
movl -0x2900(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2900(%rbp)
jmp 0x24990
movl $0x0, -0x2900(%rbp)
movl -0x2900(%rbp), %eax
cmpl -0x28f8(%rbp), %eax
jge 0x24c2e
movslq -0x2900(%rbp), %rax
movq -0x1d50(%rbp,%rax,8), %rdi
movslq -0x2900(%rbp), %rax
movq -0x28f0(%rbp,%rax,8), %rsi
callq 0x1d700
movq %rax, -0xbd8(%rbp)
movq -0xbd8(%rbp), %rax
movl (%rax), %eax
movl 0x235b42(%rip), %ecx    # 0x25a620
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x24b2e
movq -0xbd8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rdx
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0xbd8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdx
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x24(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x28fc(%rbp)
jmp 0x24b7d
movq -0xbd8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rax
movq 0x28(%rax), %rdx
movq -0x20(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0xbd8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rdx
movq -0x20(%rbp), %rax
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x24(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x28fc(%rbp)
movq -0x20(%rbp), %rdi
movl -0x28fc(%rbp), %esi
callq 0x25f40
cmpl $0x0, %eax
jne 0x24c0e
movq -0xbd8(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x28fc(%rbp), %edx
leaq -0xbd0(%rbp), %rcx
leaq -0x290c(%rbp), %r8
callq 0x25fd0
cmpl $0x0, -0x290c(%rbp)
jle 0x24c0c
leaq -0xbd0(%rbp), %rdi
movl -0x290c(%rbp), %esi
leaq 0x1902e(%rip), %rdx     # 0x3dc00
leaq 0x19127(%rip), %rcx     # 0x3dd00
leaq -0x2904(%rbp), %r8
leaq -0x2908(%rbp), %r9
callq 0x244e0
cmpl $0x0, %eax
je 0x24c0c
movl -0x2904(%rbp), %edi
movl -0x2908(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x28fc(%rbp), %ecx
callq 0x248c0
jmp 0x24c0e
movq -0xbd8(%rbp), %rdi
callq 0x1e3d0
movl -0x2900(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2900(%rbp)
jmp 0x24a93
addq $0x2930, %rsp           # imm = 0x2930
popq %rbx
popq %r14
popq %rbp
retq
nopw (%rax,%rax)