// File: chhylp123[P]hifiasm/hic.cpp
// Function: print_bench_idx(bench_idx*, ma_ug_t*)
void print_bench_idx(bench_idx* idx, ma_ug_t *ug)
{
    uint64_t i, k, s_uID, s_hapID, d_uID, d_hapID;
    long long x[2] = {1, -1};
    for (i = 0; i < idx->link.a.n; i++)
    {
        for (k = 0; k < idx->link.a.a[i].e.n; k++)
        {
            if(idx->link.a.a[i].e.a[k].del) continue;
            hap_ID(idx, i, &s_hapID, &s_uID);
            hap_ID(idx, idx->link.a.a[i].e.a[k].uID, &d_hapID, &d_uID);
            fprintf(stderr, "s-hap%lu-utg%.6d\td-hap%lu-utg%.6d\t%c\t%lld\n", 
            s_hapID, (int)(s_uID+1), d_hapID, (int)(d_uID+1), 
            "+-"[!!(idx->link.a.a[i].e.a[k].dis&(uint64_t)2)], 
            ((long long)(idx->link.a.a[i].e.a[k].dis>>2))*x[idx->link.a.a[i].e.a[k].dis&(uint64_t)1]);
        }
    }
    
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq 0x17b989(%rip), %rax    # 0x38be70
movq %rax, -0x50(%rbp)
movq 0x17b986(%rip), %rax    # 0x38be78
movq %rax, -0x48(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x28(%rcx), %rax
jae 0x210699
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
movq 0x38(%rcx), %rcx
imulq $0x30, -0x18(%rbp), %rdx
addq %rdx, %rcx
cmpq (%rcx), %rax
jae 0x210686
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
imulq $0x30, -0x18(%rbp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
imulq $0x28, -0x20(%rbp), %rcx
addq %rcx, %rax
movb 0x18(%rax), %al
shrb $0x7, %al
cmpb $0x0, %al
je 0x210560
jmp 0x210675
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq -0x30(%rbp), %rdx
leaq -0x28(%rbp), %rcx
callq 0x210410
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
imulq $0x30, -0x18(%rbp), %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
imulq $0x28, -0x20(%rbp), %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdx
leaq -0x38(%rbp), %rcx
callq 0x210410
movq 0x1b3a32(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x30(%rbp), %rdx
movq -0x28(%rbp), %rax
addq $0x1, %rax
movl %eax, %ecx
movq -0x40(%rbp), %r8
movq -0x38(%rbp), %rax
addq $0x1, %rax
movl %eax, %r9d
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
imulq $0x30, -0x18(%rbp), %rsi
addq %rsi, %rax
movq 0x10(%rax), %rax
imulq $0x28, -0x20(%rbp), %rsi
addq %rsi, %rax
movq 0x10(%rax), %rax
andq $0x2, %rax
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, %esi
leaq 0x172890(%rip), %rax    # 0x382e9b
movsbl (%rax,%rsi), %r10d
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
imulq $0x30, -0x18(%rbp), %rsi
addq %rsi, %rax
movq 0x10(%rax), %rax
imulq $0x28, -0x20(%rbp), %rsi
addq %rsi, %rax
movq 0x10(%rax), %rax
shrq $0x2, %rax
movq -0x8(%rbp), %rsi
movq 0x38(%rsi), %rsi
imulq $0x30, -0x18(%rbp), %r11
addq %r11, %rsi
movq 0x10(%rsi), %rsi
imulq $0x28, -0x20(%rbp), %r11
addq %r11, %rsi
movq 0x10(%rsi), %rsi
andq $0x1, %rsi
imulq -0x50(%rbp,%rsi,8), %rax
leaq 0x17d1d3(%rip), %rsi    # 0x38d838
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x210518
jmp 0x210688
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x2104fe
addq $0x60, %rsp
popq %rbp
retq
nop