// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq 0x200(%rsp), %r12
movq 0x1a0(%rsp), %rax
movq %rax, 0x30(%rsp)
testl %edi, %edi
movl %esi, 0x3c(%rsp)
je 0x301ab1
testb %cl, %cl
je 0x301c97
cmpq 0x208(%rsp), %r12
jge 0x301f38
movq $0x0, 0x28(%rsp)
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r12,8), %r14
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%r12,8), %r15
movq %r12, (%rsp)
movslq 0x4(%rax,%r12,8), %rdx
movq 0x1d0(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r15,8), %rbp
movq 0x1d8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%r15,8), %rbx
movq (%rax,%rdx,8), %r13
movq %rdx, 0x18(%rsp)
movq (%rcx,%rdx,8), %rax
movq %rax, 0x10(%rsp)
movl %r15d, %r12d
movq 0x1a0(%rsp), %rax
subl %eax, %r12d
cmpb $0x0, 0x198(%rsp)
movl %r15d, %eax
cmovnel %r12d, %eax
movl %eax, 0x20(%rsp)
movq %r14, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x301a61
subq %rbp, %rbx
movq %r14, %rdi
callq 0x3109d0
movl %eax, 0x8(%rsp)
movq %r14, %rdi
callq 0x310a11
movl %eax, %r12d
movq %r14, %rdi
callq 0x310a5a
xorl %ecx, %ecx
movl $0x0, %edx
movq %rbx, %r15
testl %ebx, %ebx
movq 0x1c8(%rsp), %r14
jle 0x301979
addq 0x1a8(%rsp), %rbp
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdi
movl 0x18(%r14), %r8d
incl %r8d
movl %r15d, %r9d
andl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
xorl %r10d, %r10d
xorl %edx, %edx
movzbl (%rbp,%r10), %r11d
movzbl (%rdi,%r11,4), %r11d
imull %r8d, %r11d
movslq %r11d, %r11
addl (%rsi,%r11,4), %edx
incq %r10
cmpq %r10, %r9
jne 0x30195b
movq 0x10(%rsp), %rbx
subq %r13, %rbx
testl %ebx, %ebx
jle 0x3019c9
addq 0x1a8(%rsp), %r13
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdi
movl 0x18(%r14), %r8d
incl %r8d
movl %ebx, %r9d
andl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
xorl %r10d, %r10d
xorl %ecx, %ecx
movzbl (%r13,%r10), %r11d
movzbl (%rdi,%r11,4), %r11d
imull %r8d, %r11d
movslq %r11d, %r11
addl (%rsi,%r11,4), %ecx
incq %r10
cmpq %r10, %r9
jne 0x3019ab
cmpq %rbx, %r15
cmovgl %edx, %ecx
cmovgq %r15, %rbx
imull $0x64, %eax, %edx
movl %ebx, %esi
imull 0x1b0(%rsp), %esi
cmpl %esi, %edx
jl 0x301a97
imull $0x64, %r12d, %edx
movl %eax, %esi
imull 0x1b8(%rsp), %esi
cmpl %esi, %edx
jl 0x301a97
movl 0x8(%rsp), %edi
imull $0x64, %edi, %edx
movl %ecx, %esi
imull 0x1c0(%rsp), %esi
cmpl %esi, %edx
jl 0x301a97
cvtsi2sd %eax, %xmm0
cvtsi2sd %ebx, %xmm3
cvtsi2sd %r12d, %xmm1
incq 0x28(%rsp)
divsd %xmm0, %xmm1
cvtsi2sd %edi, %xmm2
divsd %xmm3, %xmm0
xorps %xmm3, %xmm3
cvtsi2sd %ecx, %xmm3
divsd %xmm3, %xmm2
movq 0x190(%rsp), %rdi
leaq 0x3d4dfe(%rip), %rsi    # 0x6d684d
movl 0x20(%rsp), %edx
movq 0x18(%rsp), %rcx
movb $0x3, %al
callq 0x29e380
jmp 0x301a97
movq 0x60e578(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
cmpb $0x0, 0x198(%rsp)
je 0x301a81
leaq 0x3d4db2(%rip), %rsi    # 0x6d682e
movl %r12d, %edx
jmp 0x301a8b
leaq 0x3d4d50(%rip), %rsi    # 0x6d67d8
movl %r15d, %edx
movq 0x18(%rsp), %rcx
xorl %eax, %eax
callq 0x29e380
movq (%rsp), %r12
incq %r12
cmpq 0x208(%rsp), %r12
jne 0x301875
jmp 0x301f41
testb %dl, %dl
je 0x301e02
movb 0x210(%rsp), %cl
movq 0x1f0(%rsp), %rbp
testb %r8b, %r8b
je 0x302193
cmpq 0x208(%rsp), %r12
jge 0x301f65
movq 0x1c8(%rsp), %rax
leaq 0x40(%rax), %r14
movzbl %cl, %r15d
movq 0x200(%rsp), %rbp
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rbx
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%rbp,8), %r13
movslq 0x4(%rax,%rbp,8), %r12
cmpb $0x0, 0x198(%rsp)
je 0x301bad
movq 0x1a0(%rsp), %rax
subl %eax, %r13d
movq %rbx, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x301c65
movq 0x1e8(%rsp), %rax
movq (%rax), %rax
movslq %r13d, %r8
shlq $0x6, %r8
movq 0x28(%rax,%r8), %rdi
movl 0x20(%rax,%r8), %esi
movq 0x1f0(%rsp), %rcx
movq (%rcx), %r9
shlq $0x6, %r12
movq 0x28(%r9,%r12), %rdx
movl 0x20(%r9,%r12), %ecx
movq 0x8(%rax,%r8), %r8
movq 0x8(%r9,%r12), %r9
pushq 0x218(%rsp)
pushq %r15
pushq 0x1a0(%rsp)
pushq $0x7
pushq $0x1
pushq $0xe
pushq $0x32
pushq $0x2e
pushq $0x3a
pushq $0x7c
pushq %rbx
pushq 0x220(%rsp)
jmp 0x301c46
movq %rbx, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x301c82
movq 0x1c8(%rsp), %r10
movl 0x30(%r10), %ecx
testl %ecx, %ecx
je 0x301be1
movl 0x34(%r10), %esi
movq 0x1f0(%rsp), %rax
movq (%rax), %rax
movq %r14, %rdx
jmp 0x301bfd
movq 0x1f0(%rsp), %rax
movq (%rax), %rax
movq %r13, %rdx
shlq $0x6, %rdx
addq %rax, %rdx
addq $0x28, %rdx
movl -0x8(%rdx), %esi
shlq $0x6, %r12
shlq $0x6, %r13
testl %ecx, %ecx
movq (%rdx), %rdi
movq 0x28(%rax,%r12), %rdx
movl 0x20(%rax,%r12), %ecx
leaq 0x8(%rax,%r13), %r8
cmovneq %r10, %r8
movq (%r8), %r8
movq 0x8(%rax,%r12), %r9
pushq 0x218(%rsp)
pushq %r15
pushq 0x1a0(%rsp)
pushq $0x7
pushq $0x1
pushq $0xe
pushq $0x32
pushq $0x2e
pushq $0x3a
pushq $0x7c
pushq %rbx
pushq %r10
callq 0x3a1d3a
addq $0x60, %rsp
incq %rbp
cmpq %rbp, 0x208(%rsp)
jne 0x301af7
jmp 0x301f65
movq 0x1e8(%rsp), %rdi
movl %r13d, %esi
movq 0x1f0(%rsp), %rdx
movl %r12d, %ecx
callq 0x29ecf8
jmp 0x301c4f
movq 0x1f0(%rsp), %rdi
movl %r13d, %esi
movl %r12d, %edx
callq 0x29ecba
jmp 0x301c4f
cmpq 0x208(%rsp), %r12
jge 0x301f65
movq 0x200(%rsp), %r13
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r13,8), %r15
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%r13,8), %rbx
movslq 0x4(%rax,%r13,8), %rdx
movq 0x1d0(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rcx
movq %rcx, 0x10(%rsp)
movq 0x1d8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rbx,8), %r14
movq (%rax,%rdx,8), %rax
movq %rax, 0x8(%rsp)
movq %rdx, (%rsp)
movq (%rcx,%rdx,8), %r12
movl %ebx, %ebp
movq 0x1a0(%rsp), %rax
subl %eax, %ebp
movq %r15, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x301dcd
cmpb $0x0, 0x198(%rsp)
cmovel %ebx, %ebp
subq 0x8(%rsp), %r12
subq 0x10(%rsp), %r14
movq %r15, %rdi
callq 0x3109d0
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x3109e5
movq %rax, 0x8(%rsp)
movq %r15, %rdi
callq 0x3109fb
movq %rax, 0x18(%rsp)
movq %r15, %rdi
callq 0x310a11
movq %rax, 0x20(%rsp)
movq %r15, %rdi
callq 0x310a35
movl %eax, %ebx
movq %r15, %rdi
callq 0x310a5a
movl %eax, %r10d
movq 0x190(%rsp), %rdi
leaq 0x3d4ad0(%rip), %rsi    # 0x6d685d
movl %ebp, %edx
movq (%rsp), %rcx
movq %r14, %r8
movq %r12, %r9
xorl %eax, %eax
pushq %r10
pushq %rbx
pushq 0x30(%rsp)
pushq 0x30(%rsp)
pushq 0x28(%rsp)
pushq 0x38(%rsp)
callq 0x29e380
addq $0x30, %rsp
incq %r13
cmpq %r13, 0x208(%rsp)
jne 0x301cad
jmp 0x301f65
movq (%rsp), %rcx
movq 0x60e208(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
cmpb $0x0, 0x198(%rsp)
je 0x301df0
leaq 0x3d4a42(%rip), %rsi    # 0x6d682e
movl %ebp, %edx
jmp 0x301df9
leaq 0x3d49e1(%rip), %rsi    # 0x6d67d8
movl %ebx, %edx
xorl %eax, %eax
callq 0x29e380
jmp 0x301db7
cmpq 0x208(%rsp), %r12
jge 0x301f65
movq 0x200(%rsp), %r14
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r14,8), %r15
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%r14,8), %rbx
movslq 0x4(%rax,%r14,8), %rdx
movq 0x1d0(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %rcx
movq %rcx, 0x10(%rsp)
movq 0x1d8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%rbx,8), %r13
movq (%rax,%rdx,8), %rax
movq %rax, 0x8(%rsp)
movq %rdx, (%rsp)
movq (%rcx,%rdx,8), %r12
movl %ebx, %ebp
movq 0x1a0(%rsp), %rax
subl %eax, %ebp
movq %r15, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x301f03
cmpb $0x0, 0x198(%rsp)
cmovel %ebx, %ebp
subq 0x8(%rsp), %r12
subq 0x10(%rsp), %r13
movq %r15, %rdi
callq 0x3109d0
movq %rax, 0x10(%rsp)
movq %r15, %rdi
callq 0x3109e5
movl %eax, %ebx
movq %r15, %rdi
callq 0x3109fb
movl %eax, %r10d
subq $0x8, %rsp
movq 0x198(%rsp), %rdi
leaq 0x3d4b21(%rip), %rsi    # 0x6d69f2
movl %ebp, %edx
movq 0x8(%rsp), %rcx
movq %r13, %r8
movq %r12, %r9
xorl %eax, %eax
pushq %r10
pushq %rbx
pushq 0x28(%rsp)
callq 0x29e380
addq $0x20, %rsp
incq %r14
cmpq %r14, 0x208(%rsp)
jne 0x301e18
jmp 0x301f65
movq (%rsp), %rcx
movq 0x60e0d2(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
cmpb $0x0, 0x198(%rsp)
je 0x301f26
leaq 0x3d490c(%rip), %rsi    # 0x6d682e
movl %ebp, %edx
jmp 0x301f2f
leaq 0x3d48ab(%rip), %rsi    # 0x6d67d8
movl %ebx, %edx
xorl %eax, %eax
callq 0x29e380
jmp 0x301ef0
movq $0x0, 0x28(%rsp)
movq 0x60e060(%rip), %rax    # 0x90ffa8
movq (%rax), %rdi
leaq 0x3d3b64(%rip), %rsi    # 0x6d5ab6
leaq 0x3d48af(%rip), %rdx    # 0x6d6808
movq 0x28(%rsp), %rcx
xorl %eax, %eax
callq 0x29e380
movq 0x200(%rsp), %rcx
cmpq 0x208(%rsp), %rcx
setge %al
movl 0x3c(%rsp), %edx
xorb $0x1, %dl
orb %al, %dl
jne 0x302181
xorl %eax, %eax
cmpb $0x0, 0x198(%rsp)
movq 0x30(%rsp), %rdx
cmovel %eax, %edx
movq %rdx, 0x30(%rsp)
leaq 0x3d4a93(%rip), %r13    # 0x6d6a38
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rcx,8), %rdi
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%rcx,8), %r14
movq %rcx, 0x20(%rsp)
movslq 0x4(%rax,%rcx,8), %rbx
movq 0x1d0(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r14,8), %rcx
movq %rcx, 0x10(%rsp)
movq 0x1d8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%r14,8), %rdx
movq %rdx, (%rsp)
movq (%rax,%rbx,8), %rax
movq %rax, 0x8(%rsp)
movq (%rcx,%rbx,8), %r12
callq 0x310a7f
movq %rax, %rbp
subl 0x30(%rsp), %r14d
movl $0x100, %edx            # imm = 0x100
leaq 0x40(%rsp), %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x29e140
movq %r15, %rdi
leaq 0x3d49de(%rip), %rsi    # 0x6d6a0a
movl %r14d, %edx
movl %ebx, %ecx
xorl %eax, %eax
callq 0x29e070
movq %r15, %rdi
leaq 0x45ac6b(%rip), %rsi    # 0x75ccad
callq 0x29e2d0
testq %rax, %rax
je 0x302a34
movq %rax, %r14
subq 0x8(%rsp), %r12
movl $0x20, %edi
movq %rax, %rsi
callq 0x29e300
movq %r12, 0x18(%rsp)
testl %r12d, %r12d
leaq 0x3d49c0(%rip), %rbx    # 0x6d6a34
jle 0x3020b6
movq 0x8(%rsp), %rax
addq 0x1a8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %r15
andl $0x7fffffff, %r15d      # imm = 0x7FFFFFFF
xorl %r12d, %r12d
movq 0x8(%rsp), %rax
movsbl (%rax,%r12), %edx
movq %r14, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x29e380
incq %r12
cmpq %r12, %r15
jne 0x302097
movq (%rsp), %rbx
subq 0x10(%rsp), %rbx
movl $0xa, %edi
movq %r14, %rsi
callq 0x29e300
movq %rbx, (%rsp)
testl %ebx, %ebx
movq 0x18(%rsp), %r12
jle 0x302163
movq 0x10(%rsp), %rax
addq 0x1a8(%rsp), %rax
movq %rax, 0x10(%rsp)
movl %r12d, %ebx
movq (%rsp), %rax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movq %rax, (%rsp)
leaq (,%rbx,4), %rax
movq %rax, 0x8(%rsp)
xorl %r15d, %r15d
movq 0x10(%rsp), %rax
movsbl (%rax,%r15), %edi
movq %r14, %rsi
callq 0x29e300
testl %r12d, %r12d
jle 0x302143
xorl %r12d, %r12d
movl (%rbp,%r12,4), %edx
movq %r14, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x29e380
incq %r12
cmpq %r12, %rbx
jne 0x302129
movl $0xa, %edi
movq %r14, %rsi
callq 0x29e300
incq %r15
addq 0x8(%rsp), %rbp
cmpq (%rsp), %r15
movq 0x18(%rsp), %r12
jne 0x30210f
movq %r14, %rdi
callq 0x29e240
movq 0x20(%rsp), %rcx
incq %rcx
cmpq 0x208(%rsp), %rcx
jne 0x301fa5
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testb %r9b, %r9b
je 0x302457
cmpq 0x208(%rsp), %r12
jge 0x301f65
movzbl %cl, %eax
movq %rax, 0x8(%rsp)
movq 0x200(%rsp), %rbx
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx,8), %r13
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%rbx,8), %r12
movslq 0x4(%rax,%rbx,8), %r14
cmpb $0x0, 0x198(%rsp)
movq %rbx, (%rsp)
movq %r14, 0x10(%rsp)
je 0x30227e
movq 0x1a0(%rsp), %rax
subl %eax, %r12d
movq %r13, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x30242f
movq (%rbp), %rax
movq %r14, %rbx
shlq $0x6, %rbx
movq 0x8(%rax,%rbx), %rdx
movq 0x190(%rsp), %r15
movq %r15, %rdi
leaq 0x3d469d(%rip), %rsi    # 0x6d68ce
xorl %eax, %eax
callq 0x29e380
movq 0x1e8(%rsp), %rax
movq (%rax), %rax
movslq %r12d, %r12
movq %r12, %r14
shlq $0x6, %r14
movq 0x8(%rax,%r14), %rdx
movq %r15, %rdi
leaq 0x3d4683(%rip), %rsi    # 0x6d68df
xorl %eax, %eax
callq 0x29e380
movq 0x1e8(%rsp), %rax
movq (%rax), %rax
movq 0x28(%rax,%r14), %rsi
movl 0x20(%rax,%r14), %edx
movq (%rbp), %rax
jmp 0x3022e6
movq %r13, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x302447
movq (%rbp), %rax
movq %r14, %rbx
shlq $0x6, %rbx
movq 0x8(%rax,%rbx), %rdx
movq 0x190(%rsp), %r15
movq %r15, %rdi
leaq 0x3d461e(%rip), %rsi    # 0x6d68ce
xorl %eax, %eax
callq 0x29e380
movq (%rbp), %rax
movq %r12, %r14
shlq $0x6, %r14
movq 0x8(%rax,%r14), %rdx
movq %r15, %rdi
leaq 0x3d460e(%rip), %rsi    # 0x6d68df
xorl %eax, %eax
callq 0x29e380
movq (%rbp), %rax
movq 0x28(%rax,%r14), %rsi
movl 0x20(%rax,%r14), %edx
movq 0x28(%rax,%rbx), %rcx
movl 0x20(%rax,%rbx), %r8d
movq %r13, %rdi
movq 0x1c8(%rsp), %r9
pushq 0x218(%rsp)
pushq 0x10(%rsp)
callq 0x308d92
addq $0x10, %rsp
movq %rax, %r14
movl (%r13), %r15d
movl 0x10(%rax), %ebp
incl %ebp
movq %r13, %rdi
callq 0x3109fb
movq %r13, %rdi
leal 0x1(%rax), %r13d
movl 0xc(%r14), %ebx
incl %ebx
movq %rdi, 0x18(%rsp)
callq 0x3109e5
movl %eax, %r10d
incl %r10d
subq $0x8, %rsp
movq 0x198(%rsp), %rdi
leaq 0x3d459c(%rip), %rsi    # 0x6d68ef
movl %r15d, %edx
movl %ebp, %ecx
movl %r13d, %r8d
movl %ebx, %r9d
xorl %eax, %eax
pushq %r10
callq 0x29e380
addq $0x10, %rsp
movq %r14, %rdi
callq 0x308c8d
cmpb $0x0, 0x198(%rsp)
je 0x3023a4
movq 0x1e8(%rsp), %rax
movq (%rax), %rax
shlq $0x6, %r12
movq 0x28(%rax,%r12), %rdi
movl 0x20(%rax,%r12), %esi
movq 0x1f0(%rsp), %rbp
movq (%rbp), %rax
jmp 0x3023be
movq 0x1f0(%rsp), %rbp
movq (%rbp), %rax
shlq $0x6, %r12
movq 0x28(%rax,%r12), %rdi
movl 0x20(%rax,%r12), %esi
movq 0x10(%rsp), %rcx
shlq $0x6, %rcx
movq 0x28(%rax,%rcx), %rdx
movl 0x20(%rax,%rcx), %ecx
leaq 0x3d457d(%rip), %r8     # 0x6d6954
leaq 0x3d457d(%rip), %r9     # 0x6d695b
pushq 0x218(%rsp)
pushq 0x10(%rsp)
pushq 0x1a0(%rsp)
pushq $0x7
pushq $0x0
pushq $0xa
pushq $0x3c
movl $0x2a, %eax
pushq %rax
pushq %rax
pushq $0x7c
pushq 0x68(%rsp)
pushq 0x220(%rsp)
callq 0x3a1d3a
addq $0x60, %rsp
movq (%rsp), %rbx
incq %rbx
cmpq %rbx, 0x208(%rsp)
jne 0x3021ba
jmp 0x301f65
movq 0x1e8(%rsp), %rdi
movl %r12d, %esi
movq %rbp, %rdx
movl %r14d, %ecx
callq 0x29ec76
jmp 0x302419
movq %rbp, %rdi
movl %r12d, %esi
movl %r14d, %edx
callq 0x29ec38
jmp 0x302419
cmpb $0x0, 0x180(%rsp)
je 0x30288a
testq %r12, %r12
sete %al
movb 0x188(%rsp), %cl
andb 0x198(%rsp), %cl
andb %al, %cl
cmpb $0x1, %cl
movq 0x190(%rsp), %r13
jne 0x3024df
leaq 0x3d44d4(%rip), %rdi    # 0x6d6963
movl $0x18, %esi
movl $0x1, %edx
movq %r13, %rcx
callq 0x29e4d0
cmpq $0x0, 0x8(%rbp)
je 0x3024df
movl $0x20, %r14d
leaq 0x3d44c7(%rip), %rbx    # 0x6d697c
xorl %r15d, %r15d
movq (%rbp), %rax
movq -0x18(%rax,%r14), %rdx
movl (%rax,%r14), %ecx
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x29e380
incq %r15
addq $0x40, %r14
cmpq 0x8(%rbp), %r15
jb 0x3024b8
cmpq 0x208(%rsp), %r12
movb 0x210(%rsp), %al
jge 0x301f65
movq %rbp, %r13
movzbl %al, %eax
movq %rax, 0x28(%rsp)
movq 0x200(%rsp), %rbp
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbp,8), %rdi
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movl (%rax,%rbp,8), %r15d
movslq 0x4(%rax,%rbp,8), %rbx
movq (%r13), %rax
movq %rbx, %r13
shlq $0x6, %r13
movq 0x8(%rax,%r13), %r14
movq 0x20(%rax,%r13), %rcx
movq %rcx, 0x8(%rsp)
movq 0x28(%rax,%r13), %r12
cmpb $0x0, 0x198(%rsp)
movq %rdi, (%rsp)
movq %r14, 0x10(%rsp)
je 0x302586
movq 0x1a0(%rsp), %rax
subl %eax, %r15d
callq 0x31087e
testl %eax, %eax
jne 0x302808
movq 0x1e8(%rsp), %rax
movq 0x1f0(%rsp), %r14
jmp 0x30259e
callq 0x31087e
testl %eax, %eax
jne 0x302848
movq 0x1f0(%rsp), %rax
movq %rax, %r14
movq (%rax), %rax
movslq %r15d, %rcx
shlq $0x6, %rcx
movq 0x8(%rax,%rcx), %rdx
movq 0x20(%rax,%rcx), %r13
movq 0x28(%rax,%rcx), %rbx
movq 0x38(%rax,%rcx), %rax
movq %rax, 0x18(%rsp)
movq 0x190(%rsp), %r15
movq %r15, %rdi
leaq 0x3d43ba(%rip), %rsi    # 0x6d698d
xorl %eax, %eax
callq 0x29e380
movq (%rsp), %rdi
cmpl $0x0, (%rdi)
je 0x3026f3
movq %rbx, 0x20(%rsp)
movq %rbx, %rsi
movl %r13d, %edx
movq %r12, %rcx
movq 0x8(%rsp), %r8
movq 0x1c8(%rsp), %r9
pushq 0x218(%rsp)
pushq 0x30(%rsp)
movq %rdi, %r14
callq 0x308d92
addq $0x10, %rsp
movq %rax, %rbx
movl $0x2, %esi
movl $0x1, %edx
leaq 0x3d4394(%rip), %rdi    # 0x6d69c1
movq %r15, %rcx
callq 0x29e4d0
movl 0x10(%rbx), %ecx
incl %ecx
movq %r15, %rdi
leaq 0x3d4364(%rip), %rsi    # 0x6d69a8
movq 0x10(%rsp), %rdx
movl $0xff, %r8d
xorl %eax, %eax
callq 0x29e380
movq %r14, %rdi
callq 0x310865
testl %eax, %eax
je 0x30267a
movl 0xc(%rbx), %edx
testl %edx, %edx
jle 0x30267a
movq %r15, %rdi
leaq 0x3d433f(%rip), %rsi    # 0x6d69b2
xorl %eax, %eax
callq 0x29e380
movq %r13, 0x10(%rsp)
cmpl $0x0, 0x8(%rbx)
jle 0x302714
xorl %r13d, %r13d
xorl %r12d, %r12d
movq (%rbx), %rax
movl (%rax,%r13,4), %edi
callq 0x308ca2
movl %eax, %r15d
movq (%rbx), %rax
movl (%rax,%r13,4), %edi
callq 0x308cb7
movl %eax, %r14d
movl %eax, %edx
movsbl %r15b, %r15d
movq 0x190(%rsp), %rdi
leaq 0x3d42f4(%rip), %rsi    # 0x6d69b6
movl %r15d, %ecx
xorl %eax, %eax
callq 0x29e380
movzbl %r15b, %eax
addl $-0x44, %eax
cmpl $0x14, %eax
ja 0x3026e5
movl $0x100021, %ecx         # imm = 0x100021
btl %eax, %ecx
jae 0x3026e5
addl %r14d, %r12d
incq %r13
movslq 0x8(%rbx), %rax
cmpq %rax, %r13
jl 0x30268f
jmp 0x302717
movl $0x16, %esi
movl $0x1, %edx
leaq 0x3d428d(%rip), %rdi    # 0x6d6991
movq %r15, %rcx
callq 0x29e4d0
movq %r14, %r13
jmp 0x3027f2
xorl %r12d, %r12d
movq (%rsp), %rdi
movl 0x4(%rdi), %r14d
callq 0x310865
testl %eax, %eax
je 0x30274e
notl %r14d
addl 0x10(%rsp), %r14d
testl %r14d, %r14d
jle 0x30274e
movq 0x190(%rsp), %rdi
leaq 0x3d426e(%rip), %rsi    # 0x6d69b2
movl %r14d, %edx
xorl %eax, %eax
callq 0x29e380
movl $0x7, %esi
movl $0x1, %edx
leaq 0x3d425d(%rip), %rdi    # 0x6d69bc
movq 0x190(%rsp), %r14
movq %r14, %rcx
callq 0x29e4d0
movq 0x20(%rsp), %rdi
movq %r14, %rsi
callq 0x29e2a0
movl $0x9, %edi
movq %r14, %rsi
callq 0x29e300
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
movq 0x1f0(%rsp), %r13
je 0x3027a5
movq %r14, %rsi
callq 0x29e2a0
jmp 0x3027b2
movl $0x2a, %edi
movq %r14, %rsi
callq 0x29e300
movq (%rsp), %rax
movl (%rax), %edx
movq %r14, %rdi
leaq 0x3d4202(%rip), %rsi    # 0x6d69c4
xorl %eax, %eax
callq 0x29e380
movq %r14, %rdi
leaq 0x3d41fa(%rip), %rsi    # 0x6d69cd
movl %r12d, %edx
xorl %eax, %eax
callq 0x29e380
movl $0xa, %edi
movq %r14, %rsi
callq 0x29e300
movq %rbx, %rdi
callq 0x308c8d
incq %rbp
cmpq 0x208(%rsp), %rbp
jne 0x302507
jmp 0x301f65
movq 0x60d7d1(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
movq 0x1e8(%rsp), %rax
movq (%rax), %rax
movslq %r15d, %rdx
movq %rdx, %rcx
shlq $0x6, %rcx
movq 0x8(%rax,%rcx), %rcx
movq 0x1f0(%rsp), %rsi
movq (%rsi), %rax
movq 0x8(%rax,%r13), %r9
movq %rsi, %r13
leaq 0x3d4038(%rip), %rsi    # 0x6d687e
jmp 0x30287b
movslq %r15d, %rdx
movq 0x60d78e(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
movq 0x1f0(%rsp), %rsi
movq (%rsi), %rax
movq %rdx, %rcx
shlq $0x6, %rcx
movq 0x8(%rax,%rcx), %rcx
movq 0x8(%rax,%r13), %r9
movq %rsi, %r13
leaq 0x3d402c(%rip), %rsi    # 0x6d68a7
movl %ebx, %r8d
xorl %eax, %eax
callq 0x29e380
jmp 0x3027f2
cmpq 0x208(%rsp), %r12
jge 0x301f65
movzbl %cl, %eax
movq %rax, 0x20(%rsp)
movq 0x200(%rsp), %r14
movq 0x1f8(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r14,8), %rbx
movq 0x1e0(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%r14,8), %r15
movq %r14, 0x10(%rsp)
movslq 0x4(%rax,%r14,8), %rdx
movq 0x1d0(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r15,8), %rbp
movq 0x1d8(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx,%r15,8), %rsi
movq %rsi, 0x8(%rsp)
movq (%rax,%rdx,8), %r13
movq %rdx, (%rsp)
movq (%rcx,%rdx,8), %r12
movl %r15d, %r14d
movq 0x1a0(%rsp), %rax
subl %eax, %r14d
movq %rbx, %rdi
callq 0x31087e
testl %eax, %eax
jne 0x3029fd
cmpb $0x0, 0x198(%rsp)
cmovel %r15d, %r14d
subq %r13, %r12
movq 0x8(%rsp), %r15
subq %rbp, %r15
movq 0x1a8(%rsp), %rax
addq %rax, %rbp
addq %rax, %r13
movq %rbx, %rdi
movq %rbp, %rsi
movl %r15d, %edx
movq %r13, %rcx
movl %r12d, %r8d
movq 0x1c8(%rsp), %r9
pushq 0x218(%rsp)
pushq 0x28(%rsp)
callq 0x308d92
addq $0x10, %rsp
movq %rax, 0x8(%rsp)
movq %rax, %rdi
callq 0x308cbd
movq %rax, %rbp
movq %rbx, %rdi
callq 0x3109d0
movq %rax, 0x18(%rsp)
movq %rbx, %rdi
callq 0x3109e5
movl %eax, %r13d
movq %rbx, %rdi
callq 0x3109fb
movl %eax, %r10d
movq 0x190(%rsp), %rdi
leaq 0x3d4028(%rip), %rsi    # 0x6d69d7
movl %r14d, %edx
movq (%rsp), %rcx
movq %r15, %r8
movq %r12, %r9
xorl %eax, %eax
pushq %rbp
pushq %r10
pushq %r13
pushq 0x30(%rsp)
callq 0x29e380
addq $0x20, %rsp
movq 0x8(%rsp), %rdi
callq 0x308c8d
movq %rbp, %rdi
callq 0x29e2e0
movq 0x10(%rsp), %r14
incq %r14
cmpq %r14, 0x208(%rsp)
jne 0x3028a8
jmp 0x301f65
movq (%rsp), %rcx
movq 0x60d5d8(%rip), %rax    # 0x90ffe0
movq (%rax), %rdi
cmpb $0x0, 0x198(%rsp)
je 0x302a21
leaq 0x3d3e12(%rip), %rsi    # 0x6d682e
movl %r14d, %edx
jmp 0x302a2b
leaq 0x3d3db0(%rip), %rsi    # 0x6d67d8
movl %r15d, %edx
xorl %eax, %eax
callq 0x29e380
jmp 0x3029e2
leaq 0x40(%rsp), %rdi
callq 0x29ed3c