// File: /workspace/github_c_makefile_star2_O1/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:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movl 0xf599(%rip), %eax      # 0x26094
leal 0x2(%rax), %ecx
movl %ecx, 0xf590(%rip)      # 0x26094
cmpl $0x752f, %eax           # imm = 0x752F
jl 0x16b34
movl $0x2, 0xf57f(%rip)      # 0x26094
movl $0x30, %eax
leaq 0x22daff(%rip), %rcx    # 0x244620
movl $0x0, (%rax,%rcx)
addq $0x40, %rax
cmpq $0x46630, %rax          # imm = 0x46630
jne 0x16b21
movslq (%rbx), %rax
testq %rax, %rax
jle 0x16b56
movl 0xf552(%rip), %ecx      # 0x26094
incq %rax
movq -0x10(%r14,%rax,8), %rdx
movl %ecx, 0x30(%rdx)
decq %rax
cmpq $0x1, %rax
jg 0x16b45
movl 0xf53c(%rip), %eax      # 0x26098
leal 0x1(%rax), %ecx
movl %ecx, 0xf533(%rip)      # 0x26098
cmpl $0x7530, %eax           # imm = 0x7530
jl 0x16b89
movl $0x1, 0xf522(%rip)      # 0x26098
leaq 0x2740b3(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movslq (%r15), %rcx
leaq 0x1105d(%rip), %rax     # 0x27bf0
movl (%rax,%rcx,4), %edx
leaq 0x274093(%rip), %rcx    # 0x28ac30
cmpl $0x4, %edx
jl 0x16bca
movq 0x18(%r15), %rsi
movl 0xf4ec(%rip), %edi      # 0x26098
addl $-0x2, %edx
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
movl %edi, (%rcx,%r8,4)
movslq 0x4(%rsi), %r8
movq %rsi, (%rsp,%r8,8)
decl %edx
cmpl $0x1, %edx
jg 0x16baf
movl (%rbx), %edx
movslq 0x4(%r15), %rsi
movl (%rax,%rsi,4), %esi
cmpl $0x4, %esi
jl 0x16c9f
addl $-0x4, %esi
movq 0x20(%r15), %rdi
movq 0x18(%rdi), %rdi
movl 0xf4aa(%rip), %r8d      # 0x26098
movl 0xf49f(%rip), %r9d      # 0x26094
movq 0x18(%rdi), %rdi
movslq 0x4(%rdi), %r10
movl (%rax,%r10,4), %r10d
cmpl $0x4, %r10d
jl 0x16c90
movq 0x20(%rdi), %r11
movq 0x18(%r11), %r11
addl $-0x3, %r10d
movq 0x18(%r11), %r11
movslq 0x4(%r11), %r12
cmpl %r8d, (%rcx,%r12,4)
jne 0x16c88
movq 0x28(%r15), %r13
cmpl %r9d, 0x30(%r13)
je 0x16c3c
movslq %edx, %rbp
incl %edx
movq %r13, (%r14,%rbp,8)
movl %r9d, 0x30(%r13)
movq 0x28(%rdi), %r13
cmpl %r9d, 0x30(%r13)
je 0x16c53
movslq %edx, %rbp
incl %edx
movq %r13, (%r14,%rbp,8)
movl %r9d, 0x30(%r13)
movq 0x28(%r11), %r13
cmpl %r9d, 0x30(%r13)
je 0x16c6a
movslq %edx, %rbp
incl %edx
movq %r13, (%r14,%rbp,8)
movl %r9d, 0x30(%r13)
movq (%rsp,%r12,8), %r12
movq 0x28(%r12), %r12
cmpl %r9d, 0x30(%r12)
je 0x16c88
movslq %edx, %r13
incl %edx
movq %r12, (%r14,%r13,8)
movl %r9d, 0x30(%r12)
decl %r10d
testl %r10d, %r10d
jg 0x16c17
leal -0x1(%rsi), %r10d
testl %esi, %esi
movl %r10d, %esi
jg 0x16bf5
movl %edx, (%rbx)
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq