// File: /workspace/github_c_makefile_star2_O0/c-zhou[P]oatk/hmmannot.c
// Function: hmm_annot_formatted_print_index_list
void hmm_annot_formatted_print_index_list(hmm_annot_db_t *annot_db, uint64_t *index_list, size_t n, FILE *fo,
        OG_TYPE_t og_type, double max_evalue, int header)
{
    uint32_t i, j, n_annot;
    int score;
    hmm_annot_t *annot;
    hmm_annot_db_sort(annot_db, ORDER_SID_CO);
    if (header)
        print_hmm_annot_bed6_header(fo);
    for (i = 0; i < n; ++i) {
        annot = hmm_annot_db_index_query(annot_db, index_list[i], &n_annot);
        for (j = 0; j < n_annot; ++j) {
            if (annot[j].og_type != (uint32_t) og_type || 
                    annot[j].evalue > max_evalue) continue;
            score = lround(annot[j].score);
            score = MIN(score, MAX_BED_SCORE);
            fprintf(fo, "%s\t%u\t%u\t%s\t%d\t%c\n", annot[j].sname, annot[j].alifrom, 
                    annot[j].alito, annot[j].gname, score, annot[j].strand? '-' : '+');
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movsd %xmm0, -0x30(%rbp)
movl %r9d, -0x34(%rbp)
movq -0x8(%rbp), %rdi
movl $0x6, %esi
callq 0x5130
cmpl $0x0, -0x34(%rbp)
je 0x5832
movq -0x20(%rbp), %rdi
callq 0x59a0
movl $0x0, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpq -0x18(%rbp), %rax
jae 0x5997
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movl -0x38(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movl %eax, %esi
leaq -0x40(%rbp), %rdx
callq 0x5700
movq %rax, -0x50(%rbp)
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x40(%rbp), %eax
jae 0x5987
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %ecx
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movl 0x48(%rax), %eax
shrl $0x1d, %eax
andl $0x3, %eax
cmpl -0x24(%rbp), %eax
jne 0x58ad
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %ecx
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movsd 0x30(%rax), %xmm0
ucomisd -0x30(%rbp), %xmm0
jbe 0x58b2
jmp 0x5979
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %ecx
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movsd 0x38(%rax), %xmm0
callq 0x20e0
movl %eax, -0x44(%rbp)
cmpl $0x3e8, -0x44(%rbp)     # imm = 0x3E8
jge 0x58de
movl -0x44(%rbp), %eax
movl %eax, -0x54(%rbp)
jmp 0x58e8
movl $0x3e8, %eax            # imm = 0x3E8
movl %eax, -0x54(%rbp)
jmp 0x58e8
movl -0x54(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x20(%rbp), %rdi
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %ecx
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdx
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %ecx
imulq $0x50, %rcx, %rcx
addq %rcx, %rax
movl 0x18(%rax), %ecx
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %esi
imulq $0x50, %rsi, %rsi
addq %rsi, %rax
movl 0x1c(%rax), %r8d
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %esi
imulq $0x50, %rsi, %rsi
addq %rsi, %rax
movq (%rax), %r9
movl -0x44(%rbp), %r10d
movq -0x50(%rbp), %rax
movl -0x3c(%rbp), %esi
imulq $0x50, %rsi, %rsi
addq %rsi, %rax
movl 0x48(%rax), %r11d
shrl $0x1f, %r11d
movl $0x2b, %eax
movl $0x2d, %esi
cmpl $0x0, %r11d
cmovnel %esi, %eax
leaq 0x3cf7(%rip), %rsi      # 0x9661
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
movb $0x0, %al
callq 0x2220
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x586b
jmp 0x5989
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x5839
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)