// File: chhylp123[P]hifiasm/Overlaps.cpp
// Function: prt_specific_overlap(ma_hit_t_alloc*, unsigned long, unsigned long, char const*)
void prt_specific_overlap(ma_hit_t_alloc *src, uint64_t qn, uint64_t tn, const char *cmd)
{
    ma_hit_t *h = NULL; int64_t idx = -1, k;
    if(tn != ((uint64_t)-1)) {
        idx = get_specific_overlap(&(src[qn]), qn, tn); h = &(src[qn].buffer[idx]);
        fprintf(stderr, "%s::idx::%ld[M::%s::] qn::%u, tn::%u, del::%u, bl::%u, ml::%u\n", cmd, idx, __func__, 
        Get_qn(*h), Get_tn(*h), h->del, h->bl, h->ml);
    } else {
        for (k = 0; k < src[qn].length; k++) {
            h = &(src[qn].buffer[k]);
            fprintf(stderr, "%s::idx::%ld[M::%s::] qn::%u, tn::%u, del::%u, bl::%u, ml::%u\n", cmd, idx, __func__, 
            Get_qn(*h), Get_tn(*h), h->del, h->bl, h->ml); 
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x58, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $-0x1, -0x38(%rbp)
cmpq $-0x1, -0x20(%rbp)
je 0xd41f6
movq -0x10(%rbp), %rdi
imulq $0x18, -0x18(%rbp), %rax
addq %rax, %rdi
movq -0x18(%rbp), %rax
movl %eax, %esi
movq -0x20(%rbp), %rax
movl %eax, %edx
callq 0xce1b0
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
imulq $0x18, -0x18(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
imulq $0x28, -0x38(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq 0x2efe69(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
movl %eax, %r9d
movq -0x30(%rbp), %rax
movl 0xc(%rax), %ebx
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x3f, %rax
movl %eax, %r11d
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, %r10d
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x1e, %rax
andq $0x1, %rax
leaq 0x2b293a(%rip), %rsi    # 0x386b0c
leaq 0x2b2972(%rip), %r8     # 0x386b4b
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x22a0
jmp 0xd42c9
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x10(%rbp), %rcx
imulq $0x18, -0x18(%rbp), %rdx
addq %rdx, %rcx
movl 0xc(%rcx), %ecx
cmpq %rcx, %rax
jge 0xd42c7
movq -0x10(%rbp), %rax
imulq $0x18, -0x18(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq 0x2efda4(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rdx
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq (%rax), %rax
shrq $0x20, %rax
movl %eax, %r9d
movq -0x30(%rbp), %rax
movl 0xc(%rax), %ebx
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x3f, %rax
movl %eax, %r11d
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x20, %rax
andq $0x7fffffff, %rax       # imm = 0x7FFFFFFF
movl %eax, %r10d
movq -0x30(%rbp), %rax
movq 0x18(%rax), %rax
shrq $0x1e, %rax
andq $0x1, %rax
leaq 0x2b2875(%rip), %rsi    # 0x386b0c
leaq 0x2b28ad(%rip), %r8     # 0x386b4b
movl %ebx, (%rsp)
movl %r11d, 0x8(%rsp)
movl %r10d, 0x10(%rsp)
movl %eax, 0x18(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0xd41fe
jmp 0xd42c9
addq $0x58, %rsp
popq %rbx
popq %rbp
retq