// File: /workspace/github_c_makefile_star2_O0/nh13[P]ksw/src/parasail/apps/parasail_aligner.cpp
// Function: output(bool, bool, bool, bool, bool, bool, bool, bool, _IO_FILE*, bool, long, unsigned char*, int, int, int, parasail_matrix const*, std::vector<long, std::allocator<long>> const&, std::vector<long, std::allocator<long>> const&, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int>>> const&, parasail_sequences*, parasail_sequences*, std::vector<parasail_result*, std::allocator<parasail_result*>> const&, long long, long long, bool, char const*)
inline static void output(
        bool is_stats,
        bool is_table,
        bool is_trace,
        bool edge_output,
        bool use_emboss_format,
        bool use_ssw_format,
        bool use_sam_format,
        bool use_sam_header,
        FILE *fop,
        bool has_query,
        long sid_crossover,
        unsigned char *T,
        int AOL,
        int SIM,
        int OS,
        const parasail_matrix_t *matrix,
        const vector<long> &BEG,
        const vector<long> &END,
        const PairVec &vpairs,
        parasail_sequences_t *queries,
        parasail_sequences_t *sequences,
        const vector<parasail_result_t*> &results,
        long long start,
        long long stop,
        bool case_sensitive,
        const char *alphabet_aliases)
{
    if (is_stats) {
        if (edge_output) {
            output_edges(fop, has_query, sid_crossover, T, AOL, SIM, OS, matrix, BEG, END, vpairs, results, start, stop);
        }
        else {
            output_stats(fop, has_query, sid_crossover, BEG, END, vpairs, results, start, stop);
        }
    }
    else if (is_trace) {
        if (use_emboss_format) {
            output_emboss(fop, has_query, sid_crossover, matrix, vpairs, queries, sequences, results, start, stop, case_sensitive, alphabet_aliases);
        }
        else if (use_ssw_format) {
            output_ssw(fop, has_query, sid_crossover, matrix, vpairs, queries, sequences, results, start, stop, case_sensitive, alphabet_aliases);
        }
        else if (use_sam_format) {
            output_sam(fop, use_sam_header, has_query, sid_crossover, matrix, vpairs, queries, sequences, results, start, stop, case_sensitive, alphabet_aliases);
        }
        else {
            output_trace(fop, has_query, sid_crossover, T, matrix, BEG, END, vpairs, results, start, stop, case_sensitive, alphabet_aliases);
        }
    }
    else {
        output_basic(fop, has_query, sid_crossover, BEG, END, vpairs, results, start, stop);
    }
    if (is_table) {
        output_tables(has_query, sid_crossover, T, BEG, END, vpairs, results, start, stop);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movl %edi, %eax
movb %r9b, %dil
movb %cl, %r9b
movb %dl, %r10b
movb %sil, %r11b
movb %al, %bl
movq 0xa8(%rbp), %rax
movb 0xa0(%rbp), %al
movq 0x98(%rbp), %rcx
movq 0x90(%rbp), %rcx
movq 0x88(%rbp), %rcx
movq 0x80(%rbp), %rcx
movq 0x78(%rbp), %rcx
movq 0x70(%rbp), %rcx
movq 0x68(%rbp), %rcx
movq 0x60(%rbp), %rcx
movq 0x58(%rbp), %rcx
movl 0x50(%rbp), %ecx
movl 0x48(%rbp), %ecx
movl 0x40(%rbp), %ecx
movq 0x38(%rbp), %rcx
movq 0x30(%rbp), %rcx
movb 0x28(%rbp), %cl
movq 0x20(%rbp), %rdx
movb 0x18(%rbp), %dl
movb 0x10(%rbp), %sil
andb $0x1, %bl
movb %bl, -0x29(%rbp)
andb $0x1, %r11b
movb %r11b, -0x2a(%rbp)
andb $0x1, %r10b
movb %r10b, -0x2b(%rbp)
andb $0x1, %r9b
movb %r9b, -0x2c(%rbp)
andb $0x1, %r8b
movb %r8b, -0x2d(%rbp)
andb $0x1, %dil
movb %dil, -0x2e(%rbp)
andb $0x1, %sil
movb %sil, -0x2f(%rbp)
andb $0x1, %dl
movb %dl, -0x30(%rbp)
andb $0x1, %cl
movb %cl, -0x31(%rbp)
andb $0x1, %al
movb %al, -0x32(%rbp)
testb $0x1, -0x29(%rbp)
je 0x2b5ce8
testb $0x1, -0x2c(%rbp)
je 0x2b5c9b
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x38(%rbp), %rcx
movl 0x40(%rbp), %r8d
movl 0x48(%rbp), %r9d
movl 0x50(%rbp), %r13d
movq 0x58(%rbp), %r12
movq 0x60(%rbp), %r15
movq 0x68(%rbp), %r14
movq 0x70(%rbp), %rbx
movq 0x88(%rbp), %r11
movq 0x90(%rbp), %r10
movq 0x98(%rbp), %rax
andb $0x1, %sil
movzbl %sil, %esi
movl %r13d, (%rsp)
movq %r12, 0x8(%rsp)
movq %r15, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movq %r11, 0x28(%rsp)
movq %r10, 0x30(%rsp)
movq %rax, 0x38(%rsp)
callq 0x2b6550
jmp 0x2b5ce3
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x60(%rbp), %rcx
movq 0x68(%rbp), %r8
movq 0x70(%rbp), %r9
movq 0x88(%rbp), %r11
movq 0x90(%rbp), %r10
movq 0x98(%rbp), %rax
andb $0x1, %sil
movzbl %sil, %esi
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x2b6870
jmp 0x2b5f3c
testb $0x1, -0x2b(%rbp)
je 0x2b5ef2
testb $0x1, -0x2d(%rbp)
je 0x2b5d6e
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x58(%rbp), %rcx
movq 0x70(%rbp), %r8
movq 0x78(%rbp), %r9
movq 0x80(%rbp), %r15
movq 0x88(%rbp), %r14
movq 0x90(%rbp), %rbx
movq 0x98(%rbp), %r11
movb -0x32(%rbp), %r10b
movq 0xa8(%rbp), %rax
andb $0x1, %sil
andb $0x1, %r10b
movzbl %sil, %esi
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movq %r11, 0x18(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x20(%rsp)
movq %rax, 0x28(%rsp)
callq 0x2b6ad0
jmp 0x2b5ef0
testb $0x1, -0x2e(%rbp)
je 0x2b5dea
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x58(%rbp), %rcx
movq 0x70(%rbp), %r8
movq 0x78(%rbp), %r9
movq 0x80(%rbp), %r15
movq 0x88(%rbp), %r14
movq 0x90(%rbp), %rbx
movq 0x98(%rbp), %r11
movb -0x32(%rbp), %r10b
movq 0xa8(%rbp), %rax
andb $0x1, %sil
andb $0x1, %r10b
movzbl %sil, %esi
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
movq %rbx, 0x10(%rsp)
movq %r11, 0x18(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x20(%rsp)
movq %rax, 0x28(%rsp)
callq 0x2b6ee0
jmp 0x2b5eee
testb $0x1, -0x2f(%rbp)
je 0x2b5e75
movq 0x20(%rbp), %rdi
movb -0x30(%rbp), %sil
movb -0x31(%rbp), %dl
movq 0x30(%rbp), %rcx
movq 0x58(%rbp), %r8
movq 0x70(%rbp), %r9
movq 0x78(%rbp), %r12
movq 0x80(%rbp), %r15
movq 0x88(%rbp), %r14
movq 0x90(%rbp), %rbx
movq 0x98(%rbp), %r11
movb -0x32(%rbp), %r10b
movq 0xa8(%rbp), %rax
andb $0x1, %sil
andb $0x1, %dl
andb $0x1, %r10b
movzbl %sil, %esi
movzbl %dl, %edx
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x2b7460
jmp 0x2b5eec
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x38(%rbp), %rcx
movq 0x58(%rbp), %r8
movq 0x60(%rbp), %r9
movq 0x68(%rbp), %r12
movq 0x70(%rbp), %r15
movq 0x88(%rbp), %r14
movq 0x90(%rbp), %rbx
movq 0x98(%rbp), %r11
movb -0x32(%rbp), %r10b
movq 0xa8(%rbp), %rax
andb $0x1, %sil
andb $0x1, %r10b
movzbl %sil, %esi
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x28(%rsp)
movq %rax, 0x30(%rsp)
callq 0x2b7a40
jmp 0x2b5eee
jmp 0x2b5ef0
jmp 0x2b5f3a
movq 0x20(%rbp), %rdi
movb -0x31(%rbp), %sil
movq 0x30(%rbp), %rdx
movq 0x60(%rbp), %rcx
movq 0x68(%rbp), %r8
movq 0x70(%rbp), %r9
movq 0x88(%rbp), %r11
movq 0x90(%rbp), %r10
movq 0x98(%rbp), %rax
andb $0x1, %sil
movzbl %sil, %esi
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x2b7d00
jmp 0x2b5f3c
testb $0x1, -0x2a(%rbp)
je 0x2b5f8a
movb -0x31(%rbp), %dil
movq 0x30(%rbp), %rsi
movq 0x38(%rbp), %rdx
movq 0x60(%rbp), %rcx
movq 0x68(%rbp), %r8
movq 0x70(%rbp), %r9
movq 0x88(%rbp), %r11
movq 0x90(%rbp), %r10
movq 0x98(%rbp), %rax
andb $0x1, %dil
movzbl %dil, %edi
movq %r11, (%rsp)
movq %r10, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x2b7f10
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)