// File: /workspace/github_c_makefile_star2_O0/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:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x19c0, %rsp           # imm = 0x19C0
movl %edi, -0x14(%rbp)
movl %esi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movl 0x23de8f(%rip), %eax    # 0x25a620
cmpl 0x2125d(%rip), %eax     # 0x3d9f4
jge 0x1c7a7
cmpl $0x0, 0x1fad8(%rip)     # 0x3c278
jle 0x1c7a7
jmp 0x1c9b3
cmpl $0x0, 0x21246(%rip)     # 0x3d9f4
jle 0x1c7fc
movl $0x0, -0x178c(%rbp)
movl -0x178c(%rbp), %eax
cmpl 0x23de5a(%rip), %eax    # 0x25a620
jge 0x1c7fa
movslq -0x178c(%rbp), %rcx
leaq 0x2122a(%rip), %rax     # 0x3da00
movq (%rax,%rcx,8), %rcx
movslq -0x178c(%rbp), %rax
movq %rcx, -0x19a0(%rbp,%rax,8)
movl -0x178c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x178c(%rbp)
jmp 0x1c7ba
jmp 0x1c7fc
movl -0x14(%rbp), %edi
movl -0x18(%rbp), %esi
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
leaq -0x1770(%rbp), %r14
leaq -0x1778(%rbp), %r11
leaq -0x1780(%rbp), %r10
xorl %eax, %eax
movl %eax, %r8d
xorl %r9d, %r9d
leaq -0x1784(%rbp), %rbx
leaq -0x1788(%rbp), %rax
movq %r14, (%rsp)
movq %rbx, 0x8(%rsp)
movq %r11, 0x10(%rsp)
movq %r10, 0x18(%rsp)
movq %rax, 0x20(%rsp)
callq 0x23910
movl $0x0, -0x178c(%rbp)
movl -0x178c(%rbp), %eax
cmpl -0x1784(%rbp), %eax
jge 0x1c95e
movslq -0x178c(%rbp), %rax
movq -0x1770(%rbp,%rax,8), %rdi
callq 0x23c60
movl $0x0, -0x179c(%rbp)
movslq -0x178c(%rbp), %rax
movq -0x1770(%rbp,%rax,8), %rdi
leaq -0x11a0(%rbp), %rsi
leaq -0x179c(%rbp), %rdx
callq 0x23e50
movslq -0x178c(%rbp), %rax
movq -0x1770(%rbp,%rax,8), %rdi
leaq -0x11a0(%rbp), %rsi
movl -0x179c(%rbp), %edx
leaq -0xbd0(%rbp), %rcx
leaq -0x1798(%rbp), %r8
callq 0x241d0
cmpl $0x0, -0x1798(%rbp)
jle 0x1c936
leaq -0xbd0(%rbp), %rdi
movl -0x1798(%rbp), %esi
leaq 0x21307(%rip), %rdx     # 0x3dc00
leaq 0x21400(%rip), %rcx     # 0x3dd00
leaq -0x1790(%rbp), %r8
leaq -0x1794(%rbp), %r9
callq 0x244e0
cmpl $0x0, %eax
je 0x1c936
movl -0x1790(%rbp), %edi
movl -0x1794(%rbp), %esi
leaq -0x11a0(%rbp), %rdx
movl -0x179c(%rbp), %ecx
callq 0x248c0
movslq -0x178c(%rbp), %rax
movq -0x1770(%rbp,%rax,8), %rdi
callq 0x24c40
movl -0x178c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x178c(%rbp)
jmp 0x1c85b
cmpl $0x0, 0x2108f(%rip)     # 0x3d9f4
jle 0x1c9b3
movl $0x0, -0x178c(%rbp)
movl -0x178c(%rbp), %eax
cmpl 0x23dca3(%rip), %eax    # 0x25a620
jge 0x1c9b1
movslq -0x178c(%rbp), %rax
movq -0x19a0(%rbp,%rax,8), %rdx
movslq -0x178c(%rbp), %rcx
leaq 0x21064(%rip), %rax     # 0x3da00
movq %rdx, (%rax,%rcx,8)
movl -0x178c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x178c(%rbp)
jmp 0x1c971
jmp 0x1c9b3
addq $0x19c0, %rsp           # imm = 0x19C0
popq %rbx
popq %r14
popq %rbp
retq
nop