// File: /workspace/github_cpp_makefile_star2_O1/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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
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 0x1ee17f
movl %edx, %r12d
movq %rdi, %r15
movl %esi, %r14d
movq 0x28(%rdi), %rax
leal (%r14,%r14), %r13d
movq (%rax,%r13,8), %rax
testl %eax, %eax
je 0x1ee0d7
movq %rax, %rcx
shrq $0x20, %rcx
leaq (%rcx,%rcx,2), %rdi
shlq $0x3, %rdi
addq 0x8(%r15), %rdi
movl 0x8(%rdi), %edx
movl %edx, %esi
shrl %esi
cmpl %r12d, %esi
je 0x1ee189
addq $0x18, %rdi
decl %eax
jne 0x1ee0bf
movq 0x28(%r15), %rax
movl %r13d, %ecx
movq 0x8(%rax,%rcx,8), %rax
testl %eax, %eax
je 0x1ee112
movq %rax, %rcx
shrq $0x20, %rcx
leaq (%rcx,%rcx,2), %rdi
shlq $0x3, %rdi
addq 0x8(%r15), %rdi
movl 0x8(%rdi), %edx
movl %edx, %esi
shrl %esi
cmpl %r12d, %esi
je 0x1ee196
addq $0x18, %rdi
decl %eax
jne 0x1ee0fa
movq 0x28(%r15), %rax
addl %r12d, %r12d
movq (%rax,%r12,8), %rax
testl %eax, %eax
je 0x1ee148
movq %rax, %rcx
shrq $0x20, %rcx
leaq (%rcx,%rcx,2), %rdi
shlq $0x3, %rdi
addq 0x8(%r15), %rdi
movl 0x8(%rdi), %edx
movl %edx, %esi
shrl %esi
cmpl %r14d, %esi
je 0x1ee1a3
addq $0x18, %rdi
decl %eax
jne 0x1ee134
movq 0x28(%r15), %rax
movl %r12d, %ecx
movq 0x8(%rax,%rcx,8), %rax
testl %eax, %eax
je 0x1ee17f
movq %rax, %rcx
shrq $0x20, %rcx
leaq (%rcx,%rcx,2), %rdi
shlq $0x3, %rdi
addq 0x8(%r15), %rdi
movl 0x8(%rdi), %edx
movl %edx, %esi
shrl %esi
cmpl %r14d, %esi
je 0x1ee1ad
addq $0x18, %rdi
decl %eax
jne 0x1ee16b
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq %rbx, %rcx
callq 0x2f458
jmp 0x1ee0d7
movq %rbx, %rcx
callq 0x2f518
jmp 0x1ee112
movq %rbx, %rcx
callq 0x2f5d8
jmp 0x1ee148
movq %rbx, %rcx
callq 0x2f698
jmp 0x1ee17f