// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %rbx
subq $0x200, %rsp            # imm = 0x200
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movl 0xe49f(%rip), %eax      # 0x26094
leal 0x2(%rax), %ecx
movl %ecx, 0xe496(%rip)      # 0x26094
cmpl $0x752f, %eax           # imm = 0x752F
jl 0x17c2e
movl $0x2, 0xe485(%rip)      # 0x26094
movl $0x30, %eax
leaq 0x22ca05(%rip), %rcx    # 0x244620
movl $0x0, (%rax,%rcx)
addq $0x40, %rax
cmpq $0x46630, %rax          # imm = 0x46630
jne 0x17c1b
movslq (%rbx), %rax
testq %rax, %rax
jle 0x17c50
movl 0xe458(%rip), %ecx      # 0x26094
incq %rax
movq -0x10(%r14,%rax,8), %rdx
movl %ecx, 0x30(%rdx)
decq %rax
cmpq $0x1, %rax
jg 0x17c3f
movl 0xe442(%rip), %eax      # 0x26098
leal 0x1(%rax), %ecx
movl %ecx, 0xe439(%rip)      # 0x26098
cmpl $0x7530, %eax           # imm = 0x7530
jl 0x17c83
movl $0x1, 0xe428(%rip)      # 0x26098
leaq 0x272fb9(%rip), %rdi    # 0x28ac30
movl $0x100, %edx            # imm = 0x100
xorl %esi, %esi
callq 0x1030
movslq (%r15), %rax
leaq 0xff63(%rip), %rcx      # 0x27bf0
movl (%rcx,%rax,4), %eax
cmpl $0x4, %eax
jl 0x17cc4
movq 0x18(%r15), %rdx
movl 0xe3f9(%rip), %esi      # 0x26098
addl $-0x2, %eax
leaq 0x272f87(%rip), %rdi    # 0x28ac30
movq 0x18(%rdx), %rdx
movslq 0x4(%rdx), %r8
movl %esi, (%rdi,%r8,4)
movslq 0x4(%rdx), %r8
movq %rdx, (%rsp,%r8,8)
decl %eax
cmpl $0x1, %eax
jg 0x17ca9
movl (%rbx), %eax
movslq 0x4(%r15), %rdx
movl (%rcx,%rdx,4), %ecx
cmpl $0x4, %ecx
jl 0x17d4d
movq 0x20(%r15), %rdx
movq 0x18(%rdx), %rdx
movl 0xe3b8(%rip), %esi      # 0x26098
movl 0xe3ae(%rip), %edi      # 0x26094
addl $-0x3, %ecx
leaq 0x272f40(%rip), %r8     # 0x28ac30
movq 0x18(%rdx), %rdx
movslq 0x4(%rdx), %r9
cmpl %esi, (%r8,%r9,4)
jne 0x17d47
movq 0x28(%r15), %r10
cmpl %edi, 0x30(%r10)
je 0x17d15
movslq %eax, %r11
incl %eax
movq %r10, (%r14,%r11,8)
movl %edi, 0x30(%r10)
movq 0x28(%rdx), %r10
cmpl %edi, 0x30(%r10)
je 0x17d2c
movslq %eax, %r11
incl %eax
movq %r10, (%r14,%r11,8)
movl %edi, 0x30(%r10)
movq (%rsp,%r9,8), %r9
movq 0x28(%r9), %r9
cmpl %edi, 0x30(%r9)
je 0x17d47
movslq %eax, %r10
incl %eax
movq %r9, (%r14,%r10,8)
movl %edi, 0x30(%r9)
decl %ecx
testl %ecx, %ecx
jg 0x17cf0
movl %eax, (%rbx)
addq $0x200, %rsp            # imm = 0x200
popq %rbx
popq %r14
popq %r15
retq