// File: chhylp123[P]hifiasm/Overlaps.cpp
// Function: print_specfic_read_ovlp(unsigned int, ma_hit_t_alloc*, ma_hit_t_alloc*, char const*)
void print_specfic_read_ovlp(uint32_t Rid,  ma_hit_t_alloc* sources, ma_hit_t_alloc* reverse_sources, 
const char* command)
{
    long long j, i = Rid;
    uint32_t tn;


    fprintf(stderr, "\n\n\nafter %s\n", command);

    fprintf(stderr, "****************ma_hit_t (%lld)ref_read: %.*s****************\n", 
    i, (int)Get_NAME_LENGTH(R_INF, i), Get_NAME(R_INF, i));


    fprintf(stderr, "sources Len: %d, is_fully_corrected: %d\n", 
    sources[i].length, sources[i].is_fully_corrected);

    for (j = 0; j < sources[i].length; j++)
    {
        tn = Get_tn(sources[i].buffer[j]);
        fprintf(stderr, "target: %.*s, qs: %u, qe: %u, ts: %u, te: %u, ml: %u, rev: %u, el: %u, del: %u\n", 
        (int)Get_NAME_LENGTH(R_INF, tn), Get_NAME(R_INF, tn),
        Get_qs(sources[i].buffer[j]),
        Get_qe(sources[i].buffer[j]),
        Get_ts(sources[i].buffer[j]),
        Get_te(sources[i].buffer[j]),
        sources[i].buffer[j].ml,
        sources[i].buffer[j].rev,
        sources[i].buffer[j].el,
        (uint32_t)sources[i].buffer[j].del);
    }


    
    fprintf(stderr, "######reverse_query_read Len: %d\n", reverse_sources[i].length);



    for (j = 0; j < reverse_sources[i].length; j++)
    {
        tn = Get_tn(reverse_sources[i].buffer[j]);
        fprintf(stderr, "target: %.*s, qs: %u, qe: %u, ts: %u, te: %u, del: %u\n", 
        (int)Get_NAME_LENGTH(R_INF, tn), Get_NAME(R_INF, tn),
        Get_qs(reverse_sources[i].buffer[j]),
        Get_qe(reverse_sources[i].buffer[j]),
        Get_ts(reverse_sources[i].buffer[j]),
        Get_te(reverse_sources[i].buffer[j]),
        (uint32_t)sources[i].buffer[j].del);
    }

    
        

    fflush(stderr);

    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x68, %rsp
movl %edi, -0x1c(%rbp)
movq %rsi, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
movq %rcx, -0x38(%rbp)
movl -0x1c(%rbp), %eax
movq %rax, -0x48(%rbp)
movq 0x2aead6(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x38(%rbp), %rdx
leaq 0x271b6d(%rip), %rsi    # 0x387085
movb $0x0, %al
callq 0x22a0
movq 0x2aeaba(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x48(%rbp), %rdx
leaq 0x2afd9c(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movq -0x48(%rbp), %rcx
movq 0x8(%rax,%rcx,8), %rax
leaq 0x2afd88(%rip), %rcx    # 0x3c52d0
movq 0x40(%rcx), %rcx
movq -0x48(%rbp), %rsi
subq (%rcx,%rsi,8), %rax
movl %eax, %ecx
leaq 0x2afd73(%rip), %rax    # 0x3c52d0
movq 0x8(%rax), %r8
leaq 0x2afd68(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movq -0x48(%rbp), %rsi
addq (%rax,%rsi,8), %r8
leaq 0x272780(%rip), %rsi    # 0x387cfb
movb $0x0, %al
callq 0x22a0
movq 0x2aea57(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %edx
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movzbl 0x10(%rax), %ecx
leaq 0x271b29(%rip), %rsi    # 0x3870db
movb $0x0, %al
callq 0x22a0
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x28(%rbp), %rcx
imulq $0x18, -0x48(%rbp), %rdx
addq %rdx, %rcx
movl 0xc(%rcx), %ecx
cmpq %rcx, %rax
jge 0x11577a
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, -0x4c(%rbp)
movq 0x2ae9df(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x2afcc5(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movl -0x4c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
leaq 0x2afcae(%rip), %rcx    # 0x3c52d0
movq 0x40(%rcx), %rcx
movl -0x4c(%rbp), %edx
subq (%rcx,%rdx,8), %rax
movl %eax, %edx
leaq 0x2afc9a(%rip), %rax    # 0x3c52d0
movq 0x8(%rax), %rcx
leaq 0x2afc8f(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movl -0x4c(%rbp), %esi
addq (%rax,%rsi,8), %rcx
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
movl %eax, %r8d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x8(%rax), %r9d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x10(%rax), %r15d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x14(%rax), %r14d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq 0x18(%rax), %rax
shrq $0x1e, %rax
andq $0x1, %rax
movl %eax, %ebx
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq 0x18(%rax), %rax
shrq $0x1f, %rax
andq $0x1, %rax
movl %eax, %r11d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movzbl 0x20(%rax), %r10d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq 0x18(%rax), %rax
shrq $0x3f, %rax
leaq 0x2719bd(%rip), %rsi    # 0x387104
movl %r15d, (%rsp)
movl %r14d, 0x8(%rsp)
movl %ebx, 0x10(%rsp)
movl %r11d, 0x18(%rsp)
movl %r10d, 0x20(%rsp)
movl %eax, 0x28(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1155c1
movq 0x2ae85f(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %edx
leaq 0x2719ba(%rip), %rsi    # 0x387154
movb $0x0, %al
callq 0x22a0
movq $0x0, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq -0x30(%rbp), %rcx
imulq $0x18, -0x48(%rbp), %rdx
addq %rdx, %rcx
movl 0xc(%rcx), %ecx
cmpq %rcx, %rax
jge 0x1158ed
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rcx
addq %rcx, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rcx
addq %rcx, %rax
movl 0xc(%rax), %eax
movl %eax, -0x4c(%rbp)
movq 0x2ae7f7(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
leaq 0x2afadd(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movl -0x4c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
leaq 0x2afac6(%rip), %rcx    # 0x3c52d0
movq 0x40(%rcx), %rcx
movl -0x4c(%rbp), %edx
subq (%rcx,%rdx,8), %rax
movl %eax, %edx
leaq 0x2afab2(%rip), %rax    # 0x3c52d0
movq 0x8(%rax), %rcx
leaq 0x2afaa7(%rip), %rax    # 0x3c52d0
movq 0x40(%rax), %rax
movl -0x4c(%rbp), %esi
addq (%rax,%rsi,8), %rcx
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
movl %eax, %r8d
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x8(%rax), %r9d
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x10(%rax), %r11d
movq -0x30(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movl 0x14(%rax), %r10d
movq -0x28(%rbp), %rax
imulq $0x18, -0x48(%rbp), %rsi
addq %rsi, %rax
movq (%rax), %rax
imulq $0x28, -0x40(%rbp), %rsi
addq %rsi, %rax
movq 0x18(%rax), %rax
shrq $0x3f, %rax
leaq 0x272472(%rip), %rsi    # 0x387d3a
movl %r11d, (%rsp)
movl %r10d, 0x8(%rsp)
movl %eax, 0x10(%rsp)
movb $0x0, %al
callq 0x22a0
movq -0x40(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0x1157a9
movq 0x2ae6ec(%rip), %rax    # 0x3c3fe0
movq (%rax), %rdi
callq 0x21f0
addq $0x68, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nopw (%rax,%rax)