// File: /workspace/github_cpp_makefile_star2_O2/chhylp123[P]hifiasm/Correct.cpp
// Function: debug_DAGCon(Graph*)
void debug_DAGCon(Graph* DAGCon)
{
    uint64_t i = 0;
    for (i = 0; i < DAGCon->g_nodes.length; i++)
    {
        Node* currentStartNode = &(G_Node(*DAGCon, i));
        RSet iter_out;

        if(If_Node_Exist(*currentStartNode))
        {
            clear_RSet(&iter_out);
            Edge* e_self;
            Edge* e_reverse;
            while(getOutputEdges(&iter_out, DAGCon, currentStartNode, &e_self))
            {

                get_bi_direction_edges(DAGCon, e_self, &e_self, &e_reverse);


                if(Visit(*e_self) == 0)
                {
                    fprintf(stderr, "Visit(*e_self): %lu, error visit flag: in_node: %lu, out_node: %lu\n", 
                    (unsigned long)Visit(*e_self), (unsigned long)(*e_self).in_node, (unsigned long)(*e_self).out_node);
                }


                if(Visit(*e_reverse) == 0)
                {
                    fprintf(stderr, "Visit(*e_reverse): %lu, error visit flag: in_node: %lu, out_node: %lu\n", 
                    (unsigned long)Visit(*e_reverse), (unsigned long)(*e_reverse).in_node, (unsigned long)(*e_reverse).out_node);
                }


                if(e_self->in_node != e_reverse->in_node)
                {
                    fprintf(stderr, "different in-node\n");
                }
                if(e_self->out_node != e_reverse->out_node)
                {
                    fprintf(stderr, "different out-node\n");
                }
                if(e_self->weight != e_reverse->weight)
                {
                    fprintf(stderr, "different weight\n");
                }
            }

            clear_RSet(&iter_out);
            while(getInputEdges(&iter_out, DAGCon, currentStartNode, &e_self))
            {

                get_bi_direction_edges(DAGCon, e_self, &e_self, &e_reverse);


                if(Visit(*e_self) == 0)
                {
                    fprintf(stderr, "Visit(*e_self): %lu, error visit flag: in_node: %lu, out_node: %lu\n", 
                    (unsigned long)Visit(*e_self), (unsigned long)(*e_self).in_node, (unsigned long)(*e_self).out_node);
                }


                if(Visit(*e_reverse) == 0)
                {
                    fprintf(stderr, "Visit(*e_reverse): %lu, error visit flag: in_node: %lu, out_node: %lu\n", 
                    (unsigned long)Visit(*e_reverse), (unsigned long)(*e_reverse).in_node, (unsigned long)(*e_reverse).out_node);
                }


                if(e_self->in_node != e_reverse->in_node)
                {
                    fprintf(stderr, "different in-node\n");
                }
                if(e_self->out_node != e_reverse->out_node)
                {
                    fprintf(stderr, "different out-node\n");
                }
                if(e_self->weight != e_reverse->weight)
                {
                    fprintf(stderr, "different weight\n");
                }
            }
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
leaq 0x18(%rsp), %r14
leaq 0x8(%rsp), %r15
leaq 0x10(%rsp), %r12
movq 0x234086(%rip), %r13    # 0x252fe0
xorl %ecx, %ecx
cmpq 0x60(%rbx), %rcx
jae 0x1f1b7
movq 0x18(%rbx), %rbp
movq %rcx, %rax
shlq $0x7, %rax
cmpb $0x44, 0x18(%rbp,%rax)
je 0x1f1af
movq %rcx, 0x20(%rsp)
addq %rax, %rbp
andq $0x0, 0x18(%rsp)
movq %r14, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
movq %r15, %rcx
callq 0x52a35
testl %eax, %eax
je 0x1f097
movq 0x8(%rsp), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x187aa
movq 0x8(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1f00e
movq 0x10(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1f02b
movq 0x8(%rsp), %rcx
movq (%rcx), %rdx
cmpq (%rax), %rdx
jne 0x1f04d
movq 0x8(%rcx), %rdx
cmpq 0x8(%rax), %rdx
jne 0x1f072
movq 0x10(%rcx), %rcx
cmpq 0x10(%rax), %rcx
je 0x1ef8a
movq (%r13), %rcx
leaq 0x1c4a5c(%rip), %rdi    # 0x1e3a5a
pushq $0x11
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
jmp 0x1ef8a
movq (%r13), %rdi
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq 0x1c4988(%rip), %rsi    # 0x1e39a8
xorl %edx, %edx
xorl %eax, %eax
callq 0x22b0
jmp 0x1efc2
movq (%r13), %rdi
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq 0x1c49af(%rip), %rsi    # 0x1e39ec
xorl %edx, %edx
xorl %eax, %eax
callq 0x22b0
movq 0x10(%rsp), %rax
jmp 0x1efce
movq (%r13), %rcx
leaq 0x1c49db(%rip), %rdi    # 0x1e3a33
pushq $0x12
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
jmp 0x1efdb
movq (%r13), %rcx
leaq 0x1c49c9(%rip), %rdi    # 0x1e3a46
pushq $0x13
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
jmp 0x1efe9
andq $0x0, 0x18(%rsp)
movq %r14, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
movq %r15, %rcx
callq 0x18a44
testl %eax, %eax
je 0x1f1aa
movq 0x8(%rsp), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r12, %rcx
callq 0x187aa
movq 0x8(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1f121
movq 0x10(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1f13e
movq 0x8(%rsp), %rcx
movq (%rcx), %rdx
cmpq (%rax), %rdx
jne 0x1f160
movq 0x8(%rcx), %rdx
cmpq 0x8(%rax), %rdx
jne 0x1f185
movq 0x10(%rcx), %rcx
cmpq 0x10(%rax), %rcx
je 0x1f09d
movq (%r13), %rcx
leaq 0x1c4949(%rip), %rdi    # 0x1e3a5a
pushq $0x11
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
jmp 0x1f09d
movq (%r13), %rdi
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq 0x1c4875(%rip), %rsi    # 0x1e39a8
xorl %edx, %edx
xorl %eax, %eax
callq 0x22b0
jmp 0x1f0d5
movq (%r13), %rdi
movq (%rax), %rcx
movq 0x8(%rax), %r8
leaq 0x1c489c(%rip), %rsi    # 0x1e39ec
xorl %edx, %edx
xorl %eax, %eax
callq 0x22b0
movq 0x10(%rsp), %rax
jmp 0x1f0e1
movq (%r13), %rcx
leaq 0x1c48c8(%rip), %rdi    # 0x1e3a33
pushq $0x12
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
jmp 0x1f0ee
movq (%r13), %rcx
leaq 0x1c48b6(%rip), %rdi    # 0x1e3a46
pushq $0x13
popq %rsi
pushq $0x1
popq %rdx
callq 0x2410
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
jmp 0x1f0fc
movq 0x20(%rsp), %rcx
incq %rcx
jmp 0x1ef5c
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq