// File: /workspace/github_c_makefile_star2_O2/mishun[P]plantri/plantri.c
// Function: add_new_nf4_cycles
static void
add_new_nf4_cycles(EDGE *e, EDGE **on4, int *non4)

/* The edge e has just been switched.  Previously it was not on any
   nf-4-cycles and on4[0..non4-1] was a list of all edges on nf-4-cycles.
   Add any new nf-4-cycles to on4[].  All edges are in min form. */

{
    int i,j,k,l,v1;
    EDGE *e1,*e2,*e3,*ee;
    EDGE *e0[MAXN];

    RESETMARKS;
    for (i = *non4; --i >= 0; ) MARKLO(on4[i]);
    
    RESETMARKS_V;
    v1 = e->start;
    for (e1 = e->next->next, k = degree[v1]-3; --k >= 0; e1 = e1->next)
    {
	MARK_V(e1->end);
	e0[e1->end] = e1;
    }

    j = *non4;
    for (e1 = e->invers->next->next, k = degree[e->end]-3;
						   --k >= 0; e1 = e1->next)
	for (e2 = e1->invers->next->next, l = degree[e1->end]-3;
                                                   --l >= 0; e2 = e2->next)
	    if (ISMARKED_V(e2->end))
	    {
		e3 = e0[e2->end];

		ee = e->min;
		if (!ISMARKEDLO(ee))
		{
		    on4[j++] = ee;
		    MARKLO(ee);
		}
		ee = e1->min;
		if (!ISMARKEDLO(ee))
		{
		    on4[j++] = ee;
		    MARKLO(ee);
		}
		ee = e2->min;
		if (!ISMARKEDLO(ee))
		{
		    on4[j++] = ee;
		    MARKLO(ee);
		}
		ee = e3->min;
		if (!ISMARKEDLO(ee))
		{
		    on4[j++] = ee;
		    MARKLO(ee);
		}
	    }
    *non4 = j;
}

// Assembly:
movl 0xea76(%rip), %ecx      # 0x2407c
leal 0x2(%rcx), %eax
movl %eax, 0xea6d(%rip)      # 0x2407c
cmpl $0x752f, %ecx           # imm = 0x752F
jl 0x1564b
movl $0x2, 0xea5b(%rip)      # 0x2407c
movabsq $0x30, %rcx
movl $0x2, %eax
leaq 0x22cfd9(%rip), %r8     # 0x242610
cmpq $0x46630, %rcx          # imm = 0x46630
je 0x1564b
andl $0x0, (%rcx,%r8)
addq $0x40, %rcx
jmp 0x15637
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x188, %rsp            # imm = 0x188
movl (%rdx), %ecx
testl %ecx, %ecx
jle 0x15670
movq -0x8(%rsi,%rcx,8), %r8
decq %rcx
movl %eax, 0x30(%r8)
jmp 0x1565e
movl 0xea09(%rip), %r8d      # 0x24080
leal 0x1(%r8), %ecx
movl %ecx, 0xe9ff(%rip)      # 0x24080
cmpl $0x7530, %r8d           # imm = 0x7530
jl 0x156b7
movl $0x1, 0xe9ec(%rip)      # 0x24080
xorl %r8d, %r8d
movl $0x1, %ecx
leaq 0x27357d(%rip), %r9     # 0x288c20
cmpq $0x100, %r8             # imm = 0x100
je 0x156b7
andl $0x0, (%r8,%r9)
addq $0x4, %r8
jmp 0x156a3
movslq (%rdi), %r9
movq 0x18(%rdi), %r10
leaq 0x1051b(%rip), %r8      # 0x25be0
movl (%r8,%r9,4), %r11d
addl $-0x3, %r11d
leaq 0x27354c(%rip), %r9     # 0x288c20
testl %r11d, %r11d
jle 0x156f3
decl %r11d
movq 0x18(%r10), %r10
movslq 0x4(%r10), %rbx
movl %ecx, (%r9,%rbx,4)
movslq 0x4(%r10), %rbx
movq %r10, -0x80(%rsp,%rbx,8)
jmp 0x156d4
movl (%rdx), %r10d
movq 0x20(%rdi), %r11
movq 0x18(%r11), %r11
movslq 0x4(%rdi), %rbx
movl (%r8,%rbx,4), %ebx
addl $-0x3, %ebx
testl %ebx, %ebx
jle 0x157b4
movq 0x18(%r11), %r11
decl %ebx
movq 0x20(%r11), %r14
movq 0x18(%r14), %r14
movslq 0x4(%r11), %r15
movl (%r8,%r15,4), %ebp
addl $-0x3, %ebp
movl %ebp, %r15d
leal -0x1(%r15), %ebp
testl %r15d, %r15d
jle 0x15709
movq 0x18(%r14), %r14
movslq 0x4(%r14), %r15
cmpl %ecx, (%r9,%r15,4)
jne 0x1572a
movq 0x28(%rdi), %r12
cmpl %eax, 0x30(%r12)
je 0x1575e
movslq %r10d, %r13
incl %r10d
movq %r12, (%rsi,%r13,8)
movl %eax, 0x30(%r12)
movq 0x28(%r11), %r12
cmpl %eax, 0x30(%r12)
je 0x15778
movslq %r10d, %r13
incl %r10d
movq %r12, (%rsi,%r13,8)
movl %eax, 0x30(%r12)
movq 0x28(%r14), %r12
cmpl %eax, 0x30(%r12)
je 0x15792
movslq %r10d, %r13
incl %r10d
movq %r12, (%rsi,%r13,8)
movl %eax, 0x30(%r12)
movq -0x80(%rsp,%r15,8), %r15
movq 0x28(%r15), %r15
cmpl %eax, 0x30(%r15)
je 0x1572a
movslq %r10d, %r12
incl %r10d
movq %r15, (%rsi,%r12,8)
movl %eax, 0x30(%r15)
jmp 0x1572a
movl %r10d, (%rdx)
addq $0x188, %rsp            # imm = 0x188
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq