// File: /workspace/github_c_makefile_star2_O2/mishun[P]plantri/plantri.c
// Function: scanmin5c4_0
static void
scanmin5c4_0(int nbtot, int nbop, EDGE **bang, int nbang)

/* This is the first procedure that creates nf-4-cycles for mindeg=5
   triangulations.  It is called with a 5-connected triangulation.
   bang[0..nbang-1] are all proper bangles and possibly some improper
   bangles (degree 5 at one or both ends).  For this first step, only
   a switching operation is possible.
*/

{
    EDGE *good[MAXE],*on4[MAXE/2]; 
    EDGE *ext5_sw[MAXE/2],*ext5_51[1],*ext5_52[1]; /* 5-expansion impossible */
    int next5_sw,next5_5;
    int i,xnbtot,xnbop,ngood,non4;
    EDGE *firstedge_save[MAXN];
    
    if (nv < splitlevel && res > 0) return;

    if (splitlevel > 0)
	for (i = 0; i < nv; ++i) firstedge_save[i] = firstedge[i];

#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,bang,nbang,NULL,0,
			          ext5_sw,&next5_sw,ext5_51,ext5_52,&next5_5);

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

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

    if (splitlevel > 0)
	for (i = 0; i < nv; ++i) firstedge[i] = firstedge_save[i];
}

// Assembly:
movl 0x23121f(%rip), %eax    # 0x242600
movl 0x145ed(%rip), %ecx     # 0x259d4
cmpl %ecx, %eax
jge 0x113f5
cmpl $0x0, 0x12e66(%rip)     # 0x24258
jle 0x113f5
retq
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1978, %rsp           # imm = 0x1978
testl %ecx, %ecx
jle 0x11430
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
shlq $0x3, %rax
leaq 0x145c4(%rip), %r8      # 0x259e0
cmpq %rcx, %rax
je 0x11430
movq (%rcx,%r8), %r9
movq %r9, 0x30(%rsp,%rcx)
addq $0x8, %rcx
jmp 0x1141c
leaq 0x18(%rsp), %rax
leaq 0x20(%rsp), %r10
leaq 0x28(%rsp), %r11
leaq 0x1c(%rsp), %rbx
xorl %r14d, %r14d
leaq 0x230(%rsp), %r9
xorl %ecx, %ecx
xorl %r8d, %r8d
pushq %rax
pushq %r10
pushq %r11
pushq %rbx
callq 0x14f06
addq $0x20, %rsp
movl (%rbx), %eax
testl %eax, %eax
movl $0x0, %r12d
cmovgl %eax, %r12d
leaq 0x800(%rsp), %rbx
leaq 0xdd0(%rsp), %r15
cmpq %r14, %r12
je 0x11501
movq 0x230(%rsp,%r14,8), %r13
movq %r13, %rdi
callq 0x15561
andl $0x0, 0x8(%rsp)
movq %r13, %rdi
movq %rbx, %rsi
leaq 0x8(%rsp), %rdx
callq 0x15600
movl 0x8(%rsp), %ebp
movq %r13, %rdi
movq %rbx, %rsi
movl %ebp, %edx
movq %r15, %rcx
leaq 0xc(%rsp), %r8
callq 0x157c9
movl 0xc(%rsp), %esi
testl %esi, %esi
jle 0x114f4
movq %r15, %rdi
leaq 0x14(%rsp), %rdx
leaq 0x10(%rsp), %rcx
callq 0x15978
testl %eax, %eax
je 0x114f4
movl 0x14(%rsp), %edi
movl 0x10(%rsp), %esi
movq %rbx, %rdx
movl %ebp, %ecx
callq 0x15c26
movq %r13, %rdi
callq 0x15fb3
incq %r14
jmp 0x11481
cmpl $0x0, 0x144cc(%rip)     # 0x259d4
jle 0x11536
movl 0x2310f0(%rip), %eax    # 0x242600
xorl %ecx, %ecx
testl %eax, %eax
cmovlel %ecx, %eax
shlq $0x3, %rax
leaq 0x144be(%rip), %rdx     # 0x259e0
cmpq %rcx, %rax
je 0x11536
movq 0x30(%rsp,%rcx), %rsi
movq %rsi, (%rcx,%rdx)
addq $0x8, %rcx
jmp 0x11522
addq $0x1978, %rsp           # imm = 0x1978
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq