// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/gfa_ut.cpp
// Function: print_node(asg_t*, unsigned int)
void print_node(asg_t *sg, uint32_t src)
{
    asg_arc_t *av; uint32_t nv, v, i;
    v = src<<1;
    av = asg_arc_a(sg, v); nv = asg_arc_n(sg, v);
    fprintf(stderr, "\n%.*s(%c)\tnv:%u\n", 
                (int32_t)Get_NAME_LENGTH(R_INF, v>>1), Get_NAME(R_INF, v>>1), "+-"[v&1], nv);
    for (i = 0; i < nv; i++) {
        fprintf(stderr, "++++++%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", 
                (int32_t)Get_NAME_LENGTH(R_INF, (av[i].ul>>33)), Get_NAME(R_INF, (av[i].ul>>33)), "+-"[(av[i].ul>>32)&1], av[i].ul>>33, 
                (int32_t)Get_NAME_LENGTH(R_INF, (av[i].v>>1)), Get_NAME(R_INF, (av[i].v>>1)), "+-"[av[i].v&1], av[i].v>>1, av[i].ol, av[i].ou, av[i].del);
    }

    v = (src<<1)+1;
    av = asg_arc_a(sg, v); nv = asg_arc_n(sg, v);
    fprintf(stderr, "\n%.*s(%c)\tnv:%u\n", 
                (int32_t)Get_NAME_LENGTH(R_INF, v>>1), Get_NAME(R_INF, v>>1), "+-"[v&1], nv);
    for (i = 0; i < nv; i++) {
        fprintf(stderr, "------%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", 
                (int32_t)Get_NAME_LENGTH(R_INF, (av[i].ul>>33)), Get_NAME(R_INF, (av[i].ul>>33)), "+-"[(av[i].ul>>32)&1], av[i].ul>>33, 
                (int32_t)Get_NAME_LENGTH(R_INF, (av[i].v>>1)), Get_NAME(R_INF, (av[i].v>>1)), "+-"[av[i].v&1], av[i].v>>1, av[i].ol, av[i].ou, av[i].del);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
leal (%rsi,%rsi), %ecx
movq 0x8(%rdi), %rbx
movq %rdi, 0x28(%rsp)
movq 0x28(%rdi), %rax
movq %rcx, 0x20(%rsp)
movq (%rax,%rcx,8), %r15
movq 0x26a3b2(%rip), %r12    # 0x294fe0
movq (%r12), %rdi
leaq 0x26b5f7(%rip), %r13    # 0x296230
movq 0x40(%r13), %rax
andl $0x7fffffff, %esi       # imm = 0x7FFFFFFF
leaq 0x1(%rsi), %rcx
movq %rcx, 0x18(%rsp)
movl 0x8(%rax,%rsi,8), %edx
movq %rsi, 0x30(%rsp)
movq (%rax,%rsi,8), %rcx
subl %ecx, %edx
addq 0x8(%r13), %rcx
leaq 0x21af37(%rip), %rsi    # 0x245b9d
pushq $0x2b
popq %r8
movl %r15d, %r9d
xorl %eax, %eax
callq 0x22b0
testl %r15d, %r15d
je 0x2ad63
movq %r15, %rax
shrq $0x20, %rax
movl %r15d, %ecx
imulq $0x18, %rax, %rax
addq %rbx, %rax
addq $0x10, %rax
movq %rax, 0x10(%rsp)
imulq $0x18, %rcx, %rax
movq %rax, 0x8(%rsp)
xorl %ebx, %ebx
movq (%r12), %rdi
movq 0x8(%r13), %r10
movq 0x40(%r13), %rax
movq 0x10(%rsp), %rbp
movq -0x10(%rbp,%rbx), %rsi
movq %rsi, %r9
shrq $0x21, %r9
movl 0x8(%rax,%r9,8), %edx
movq (%rax,%r9,8), %rcx
subl %ecx, %edx
addq %r10, %rcx
btq $0x20, %rsi
leaq 0x2075fa(%rip), %r14    # 0x2322d3
movq %r14, %rsi
adcq $0x0, %rsi
movsbl (%rsi), %r8d
movl -0x8(%rbp,%rbx), %esi
movl %esi, %r13d
shrl %r13d
movl 0x8(%rax,%r13,8), %r11d
movq (%rax,%r13,8), %rax
subl %eax, %r11d
addq %rax, %r10
andl $0x1, %esi
movsbl (%rsi,%r14), %r15d
movl -0x4(%rbp,%rbx), %r14d
movl %r14d, %r12d
andl $0x7fffffff, %r12d      # imm = 0x7FFFFFFF
movzwl (%rbp,%rbx), %ebp
andl $0x3fff, %ebp           # imm = 0x3FFF
shrl $0x1f, %r14d
subq $0x8, %rsp
leaq 0x21ae80(%rip), %rsi    # 0x245bae
xorl %eax, %eax
pushq %r14
pushq %rbp
pushq %r12
movq 0x26a2a4(%rip), %r12    # 0x294fe0
pushq %r13
leaq 0x26b4eb(%rip), %r13    # 0x296230
pushq %r15
pushq %r10
pushq %r11
callq 0x22b0
addq $0x40, %rsp
addq $0x18, %rbx
cmpq %rbx, 0x8(%rsp)
jne 0x2aca2
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rbx
movq 0x28(%rax), %rax
movl 0x20(%rsp), %ecx
movq 0x8(%rax,%rcx,8), %r14
movq (%r12), %rdi
movq 0x40(%r13), %rax
movq 0x18(%rsp), %rcx
movl (%rax,%rcx,8), %edx
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
subl %ecx, %edx
addq 0x8(%r13), %rcx
leaq 0x21adfe(%rip), %rsi    # 0x245b9d
pushq $0x2d
popq %r8
movl %r14d, %r9d
xorl %eax, %eax
callq 0x22b0
testl %r14d, %r14d
je 0x2ae9a
movq %r14, %rax
shrq $0x20, %rax
movl %r14d, %ecx
imulq $0x18, %rax, %rax
leaq (%rax,%rbx), %r14
addq $0x10, %r14
imulq $0x18, %rcx, %rax
movq %rax, 0x8(%rsp)
xorl %ebp, %ebp
movq (%r12), %rdi
movq 0x8(%r13), %r10
movq 0x40(%r13), %rax
movq -0x10(%r14,%rbp), %rsi
movq %rsi, %r9
shrq $0x21, %r9
movl 0x8(%rax,%r9,8), %edx
movq (%rax,%r9,8), %rcx
subl %ecx, %edx
addq %r10, %rcx
btq $0x20, %rsi
leaq 0x2074ca(%rip), %rbx    # 0x2322d3
movq %rbx, %rsi
adcq $0x0, %rsi
movsbl (%rsi), %r8d
movl -0x8(%r14,%rbp), %esi
movl %esi, %r13d
shrl %r13d
movl 0x8(%rax,%r13,8), %r11d
movq (%rax,%r13,8), %rax
subl %eax, %r11d
addq %rax, %r10
andl $0x1, %esi
movsbl (%rsi,%rbx), %eax
movq %rax, 0x10(%rsp)
movl -0x4(%r14,%rbp), %r12d
movl %r12d, %r15d
andl $0x7fffffff, %r15d      # imm = 0x7FFFFFFF
movzwl (%r14,%rbp), %ebx
andl $0x3fff, %ebx           # imm = 0x3FFF
shrl $0x1f, %r12d
subq $0x8, %rsp
leaq 0x21ad86(%rip), %rsi    # 0x245be9
xorl %eax, %eax
pushq %r12
movq 0x26a172(%rip), %r12    # 0x294fe0
pushq %rbx
pushq %r15
pushq %r13
leaq 0x26b3b6(%rip), %r13    # 0x296230
pushq 0x38(%rsp)
pushq %r10
pushq %r11
callq 0x22b0
addq $0x40, %rsp
addq $0x18, %rbp
cmpq %rbp, 0x8(%rsp)
jne 0x2add7
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq