// File: /workspace/github_cpp_makefile_star2_O3/chhylp123[P]hifiasm/gfa_ut.cpp
// Function: print_vw_edge(asg_t*, unsigned int, unsigned int, char const*)
void print_vw_edge(asg_t *sg, uint32_t vid, uint32_t wid, const char *cmd)
{
    asg_arc_t *av; uint32_t nv, i, sid, eid;
    if(vid >= sg->n_seq || wid >= sg->n_seq) return;

    sid = vid; eid = wid;
    av = asg_arc_a(sg, (sid<<1)); nv = asg_arc_n(sg, (sid<<1));
    for (i = 0; i < nv; i++) {
        if((av[i].v>>1) == eid) {
            fprintf(stderr, "[%s]\t%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", cmd, 
                (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);
            break;
        }
    }
    av = asg_arc_a(sg, ((sid<<1)+1)); nv = asg_arc_n(sg, ((sid<<1)+1));
    for (i = 0; i < nv; i++) {
        if((av[i].v>>1) == eid) {
            fprintf(stderr, "[%s]\t%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", cmd, 
                (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);
            break;
        }
    }

    sid = wid; eid = vid;
    av = asg_arc_a(sg, (sid<<1)); nv = asg_arc_n(sg, (sid<<1));
    for (i = 0; i < nv; i++) {
        if((av[i].v>>1) == eid) {
            fprintf(stderr, "[%s]\t%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", cmd, 
                (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);
            break;
        }
    }
    av = asg_arc_a(sg, ((sid<<1)+1)); nv = asg_arc_n(sg, ((sid<<1)+1));
    for (i = 0; i < nv; i++) {
        if((av[i].v>>1) == eid) {
            fprintf(stderr, "[%s]\t%.*s(%c)<id:%lu>\t%.*s(%c)<id:%u>\tol:%u\tou:%u\tdel:%u\n", cmd, 
                (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);
            break;
        }
    }
    // if(i >= nv) fprintf(stderr, "[%s]\tno edges\n", cmd);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rcx, %rbx
movl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
andl 0x14(%rdi), %eax
cmpl %esi, %eax
setbe %cl
cmpl %edx, %eax
setbe %al
orb %cl, %al
jne 0x1f8f86
movl %edx, %r15d
movq %rdi, %r12
movl %esi, %r14d
movq 0x8(%rdi), %rax
movq 0x28(%rdi), %rcx
leal (%r14,%r14), %ebp
movq (%rcx,%rbp,8), %rsi
movl $0xffffffff, %r13d      # imm = 0xFFFFFFFF
movq %rsi, %rdx
andq %r13, %rdx
je 0x1f8ec0
shrq $0x20, %rsi
leaq (%rsi,%rsi,2), %r8
leaq (%rax,%r8,8), %rdi
addq $0x10, %rdi
shlq $0x3, %rdx
leaq (%rdx,%rdx,2), %r9
xorl %edx, %edx
movl -0x8(%rdi,%rdx), %esi
movl %esi, %r10d
shrl %r10d
cmpl %r15d, %r10d
je 0x1f8f95
addq $0x18, %rdx
cmpq %rdx, %r9
jne 0x1f8ea4
movl %ebp, %edx
movq 0x8(%rcx,%rdx,8), %rdx
andq %rdx, %r13
je 0x1f8f09
shrq $0x20, %rdx
leaq (%rdx,%rdx,2), %r8
leaq (%rax,%r8,8), %rdi
addq $0x10, %rdi
shlq $0x3, %r13
leaq (,%r13,2), %r9
addq %r13, %r9
xorl %edx, %edx
movl -0x8(%rdi,%rdx), %esi
movl %esi, %r10d
shrl %r10d
cmpl %r15d, %r10d
je 0x1f908a
addq $0x18, %rdx
cmpq %rdx, %r9
jne 0x1f8eed
addl %r15d, %r15d
movq (%rcx,%r15,8), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
andq %rsi, %rdx
je 0x1f8f50
shrq $0x20, %rsi
leaq (%rsi,%rsi,2), %r8
leaq (%rax,%r8,8), %rdi
addq $0x10, %rdi
shlq $0x3, %rdx
leaq (%rdx,%rdx,2), %r9
xorl %edx, %edx
movl -0x8(%rdi,%rdx), %esi
movl %esi, %r10d
shrl %r10d
cmpl %r14d, %r10d
je 0x1f916e
addq $0x18, %rdx
cmpq %rdx, %r9
jne 0x1f8f34
movl %r15d, %edx
movq 0x8(%rcx,%rdx,8), %rcx
testl %ecx, %ecx
je 0x1f8f86
movq %rcx, %rdx
shrq $0x20, %rdx
leaq (%rdx,%rdx,2), %rdx
leaq (%rax,%rdx,8), %rdi
movl %ecx, %eax
movl 0x8(%rdi), %edx
movl %edx, %ecx
shrl %ecx
cmpl %r14d, %ecx
je 0x1f9252
addq $0x18, %rdi
decq %rax
jne 0x1f8f6d
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x9c044(%rip), %rcx     # 0x294fe0
movq (%rcx), %rcx
movq %rcx, 0x20(%rsp)
leaq 0x9d285(%rip), %rcx     # 0x296230
movq 0x8(%rcx), %r11
movq 0x40(%rcx), %rcx
leaq (%rax,%r8,8), %r9
movq (%rdx,%r9), %r10
movq %r10, %rdi
shrq $0x21, %rdi
movq %rdi, 0x28(%rsp)
movl 0x8(%rcx,%rdi,8), %eax
movq (%rcx,%rdi,8), %r8
subl %r8d, %eax
movl %eax, 0x8(%rsp)
addq %r11, %r8
leaq 0x392f3(%rip), %rdi     # 0x2322d3
btq $0x20, %r10
movq %rdi, %r10
adcq $0x0, %r10
movsbl (%r10), %eax
movl %eax, 0x34(%rsp)
movl %r15d, %r10d
movl 0x8(%rcx,%r10,8), %eax
movq (%rcx,%r10,8), %rcx
subl %ecx, %eax
movq %rax, 0x18(%rsp)
addq %rcx, %r11
movq %r11, 0x10(%rsp)
andl $0x1, %esi
movsbl (%rsi,%rdi), %eax
movq %rax, 0x40(%rsp)
movl 0xc(%rdx,%r9), %r10d
movl %r10d, %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, 0x38(%rsp)
movzwl 0x10(%rdx,%r9), %r11d
andl $0x3fff, %r11d          # imm = 0x3FFF
shrl $0x1f, %r10d
leaq 0x4cbdf(%rip), %rsi     # 0x245c24
movq 0x20(%rsp), %rdi
movq %rbx, %rdx
movl 0x8(%rsp), %ecx
movl 0x34(%rsp), %r9d
xorl %eax, %eax
pushq %r10
pushq %r11
pushq 0x48(%rsp)
pushq %r15
pushq 0x60(%rsp)
pushq 0x38(%rsp)
pushq 0x48(%rsp)
pushq 0x60(%rsp)
callq 0x22b0
addq $0x40, %rsp
movq 0x8(%r12), %rax
movq 0x28(%r12), %rcx
jmp 0x1f8ec0
movq 0x9bf4f(%rip), %rcx     # 0x294fe0
movq (%rcx), %rcx
movq %rcx, 0x28(%rsp)
leaq 0x9d190(%rip), %rcx     # 0x296230
movq 0x8(%rcx), %rdi
movq 0x40(%rcx), %rbp
leaq (%rax,%r8,8), %rcx
movq (%rdx,%rcx), %r9
movq %r9, %r13
shrq $0x21, %r13
movl 0x8(%rbp,%r13,8), %eax
movq (%rbp,%r13,8), %r8
subl %r8d, %eax
movl %eax, 0x10(%rsp)
addq %rdi, %r8
movq %rdi, %r10
leaq 0x391fe(%rip), %rdi     # 0x2322d3
btq $0x20, %r9
movq %rdi, %r9
adcq $0x0, %r9
movsbl (%r9), %r9d
movl %r15d, %eax
movl 0x8(%rbp,%rax,8), %r11d
movq (%rbp,%rax,8), %rax
subl %eax, %r11d
movq %r11, 0x20(%rsp)
addq %rax, %r10
movq %r10, 0x18(%rsp)
andl $0x1, %esi
movsbl (%rsi,%rdi), %eax
movq %rax, 0x8(%rsp)
movl 0xc(%rdx,%rcx), %ebp
movl %ebp, %r11d
andl $0x7fffffff, %r11d      # imm = 0x7FFFFFFF
movzwl 0x10(%rdx,%rcx), %r10d
andl $0x3fff, %r10d          # imm = 0x3FFF
shrl $0x1f, %ebp
leaq 0x4caf1(%rip), %rsi     # 0x245c24
movq 0x28(%rsp), %rdi
movq %rbx, %rdx
movl 0x10(%rsp), %ecx
xorl %eax, %eax
pushq %rbp
pushq %r10
pushq %r11
pushq %r15
pushq 0x28(%rsp)
pushq 0x40(%rsp)
pushq 0x50(%rsp)
pushq %r13
callq 0x22b0
addq $0x40, %rsp
movq 0x8(%r12), %rax
movq 0x28(%r12), %rcx
jmp 0x1f8f09
movq 0x9be6b(%rip), %rcx     # 0x294fe0
movq (%rcx), %rcx
movq %rcx, 0x28(%rsp)
leaq 0x9d0ac(%rip), %rcx     # 0x296230
movq 0x8(%rcx), %rdi
movq 0x40(%rcx), %rbp
leaq (%rax,%r8,8), %rcx
movq (%rdx,%rcx), %r9
movq %r9, %r13
shrq $0x21, %r13
movl 0x8(%rbp,%r13,8), %eax
movq (%rbp,%r13,8), %r8
subl %r8d, %eax
movl %eax, 0x10(%rsp)
addq %rdi, %r8
movq %rdi, %r10
leaq 0x3911a(%rip), %rdi     # 0x2322d3
btq $0x20, %r9
movq %rdi, %r9
adcq $0x0, %r9
movsbl (%r9), %r9d
movl %r14d, %eax
movl 0x8(%rbp,%rax,8), %r11d
movq (%rbp,%rax,8), %rax
subl %eax, %r11d
movq %r11, 0x20(%rsp)
addq %rax, %r10
movq %r10, 0x18(%rsp)
andl $0x1, %esi
movsbl (%rsi,%rdi), %eax
movq %rax, 0x8(%rsp)
movl 0xc(%rdx,%rcx), %ebp
movl %ebp, %r11d
andl $0x7fffffff, %r11d      # imm = 0x7FFFFFFF
movzwl 0x10(%rdx,%rcx), %r10d
andl $0x3fff, %r10d          # imm = 0x3FFF
shrl $0x1f, %ebp
leaq 0x4ca0d(%rip), %rsi     # 0x245c24
movq 0x28(%rsp), %rdi
movq %rbx, %rdx
movl 0x10(%rsp), %ecx
xorl %eax, %eax
pushq %rbp
pushq %r10
pushq %r11
pushq %r14
pushq 0x28(%rsp)
pushq 0x40(%rsp)
pushq 0x50(%rsp)
pushq %r13
callq 0x22b0
addq $0x40, %rsp
movq 0x8(%r12), %rax
movq 0x28(%r12), %rcx
jmp 0x1f8f50
movl %r14d, %esi
movq %rbx, %rcx
callq 0x2e9f2
jmp 0x1f8f86