// File: /workspace/github_c_makefile_star2_O3/mishun[P]plantri/plantri.c
// Function: add_new_nf3_cycles
static void
add_new_nf3_cycles(EDGE *e, EDGE **on3, int *non3)
 
/* The edge e has just been switched.  Previously it was not on any
   nf-3-cycles and on3[0..non3-1] was a list of all edges on nf-3-cycles.
   Add any new nf-3-cycles to on3[].  All edges are in min form. */
 
{
    int i,j,k,v1;
    EDGE *e1,*e2,*ee;
    EDGE *e0[MAXN];
 
    RESETMARKS;
    for (i = *non3; --i >= 0; ) MARKLO(on3[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 = *non3;
    for (e1 = e->invers->next->next, k = degree[e->end]-3;
                                                   --k >= 0; e1 = e1->next)
        if (ISMARKED_V(e1->end))
        {
            e2 = e0[e1->end];
 
            ee = e->min;
            if (!ISMARKEDLO(ee))
            {
                on3[j++] = ee;
                MARKLO(ee);
            }
            ee = e1->min;
            if (!ISMARKEDLO(ee))
            {
                on3[j++] = ee;
                MARKLO(ee);
            }
            ee = e2->min;
            if (!ISMARKEDLO(ee))
            {
                on3[j++] = ee;
                MARKLO(ee);
            }
        }
    *non3 = j;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movl 0xe3d3(%rip), %eax      # 0x2608c
leal 0x2(%rax), %ebp
movl %ebp, 0xe3ca(%rip)      # 0x2608c
cmpl $0x752f, %eax           # imm = 0x752F
jl 0x17cf7
movl $0x2, 0xe3b9(%rip)      # 0x2608c
movl $0x30, %eax
leaq 0x22c941(%rip), %rcx    # 0x244620
movl $0x0, (%rax,%rcx)
addq $0x40, %rax
cmpq $0x46630, %rax          # imm = 0x46630
jne 0x17cdf
movl $0x2, %ebp
movslq (%rbx), %rax
testq %rax, %rax
jle 0x17d13
incq %rax
movq -0x10(%r14,%rax,8), %rcx
movl %ebp, 0x30(%rcx)
decq %rax
cmpq $0x1, %rax
ja 0x17d02
movl 0xe377(%rip), %ecx      # 0x26090
leal 0x1(%rcx), %eax
movl %eax, 0xe36e(%rip)      # 0x26090
cmpl $0x7530, %ecx           # imm = 0x7530
jl 0x17d4c
movl $0x1, 0xe35c(%rip)      # 0x26090
leaq 0x272ef5(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movl $0x1, %eax
movslq (%r15), %rcx
leaq 0xfe9a(%rip), %rdx      # 0x27bf0
movl (%rdx,%rcx,4), %ecx
cmpl $0x4, %ecx
jl 0x17d87
movq 0x18(%r15), %rsi
addl $-0x2, %ecx
leaq 0x272ec4(%rip), %rdi    # 0x28ac30
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
movl %eax, (%rdi,%r8,4)
movslq 0x4(%rsi), %r8
movq %rsi, (%rsp,%r8,8)
decl %ecx
cmpl $0x1, %ecx
ja 0x17d6c
movl (%rbx), %ecx
movslq 0x4(%r15), %rsi
movl (%rdx,%rsi,4), %edx
cmpl $0x4, %edx
jl 0x17e04
movq 0x20(%r15), %rsi
movq 0x18(%rsi), %rsi
addl $-0x3, %edx
leaq 0x272e89(%rip), %rdi    # 0x28ac30
movq 0x18(%rsi), %rsi
movslq 0x4(%rsi), %r8
cmpl %eax, (%rdi,%r8,4)
jne 0x17dfe
movq 0x28(%r15), %r9
cmpl %ebp, 0x30(%r9)
je 0x17dcc
movslq %ecx, %r10
incl %ecx
movq %r9, (%r14,%r10,8)
movl %ebp, 0x30(%r9)
movq 0x28(%rsi), %r9
cmpl %ebp, 0x30(%r9)
je 0x17de3
movslq %ecx, %r10
incl %ecx
movq %r9, (%r14,%r10,8)
movl %ebp, 0x30(%r9)
movq (%rsp,%r8,8), %r8
movq 0x28(%r8), %r8
cmpl %ebp, 0x30(%r8)
je 0x17dfe
movslq %ecx, %r9
incl %ecx
movq %r8, (%r14,%r9,8)
movl %ebp, 0x30(%r8)
decl %edx
testl %edx, %edx
jg 0x17da7
movl %ecx, (%rbx)
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r14
popq %r15
popq %rbp
retq