// File: karel-brinda[P]ococo/src/stats.h
// Function: ococo::stats_t<unsigned short, 3, 4>::stats_t(ococo::params_t*, bam_hdr_t&)
stats_t<T, counter_size, refbase_size>::stats_t(ococo::params_t *params,
                                                bam_hdr_t &h)
    : n_seqs(h.n_targets),
      seq_active(new (std::nothrow) bool[n_seqs]()),
      seq_len(new (std::nothrow) int64_t[n_seqs]()),
      seq_name(new (std::nothrow) std::string[n_seqs]()),
      seq_comment(new (std::nothrow) std::string[n_seqs]()),
      seq_stats(new (std::nothrow) T *[n_seqs]()),
      params(params) {
    for (int seqid = 0; seqid < n_seqs; seqid++) {
        seq_len[seqid]    = h.target_len[seqid];
        seq_active[seqid] = true;
        seq_name[seqid]   = std::string(h.target_name[seqid]);

        seq_stats[seqid] = new (std::nothrow) T[seq_len[seqid]]();
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x220, %rsp            # imm = 0x220
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x18(%rbp), %rcx
movl (%rcx), %ecx
movl %ecx, (%rax)
movq %rax, %rcx
addq $0x8, %rcx
movq %rcx, -0x120(%rbp)
movslq (%rax), %rdi
movq %rdi, -0x118(%rbp)
movq 0x81187(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x110(%rbp)
movb $0x0, -0x19(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x108(%rbp)
je 0x8e62
movq -0x110(%rbp), %rdi
movq -0x118(%rbp), %rdx
movb $0x1, -0x19(%rbp)
xorl %esi, %esi
callq 0x42d0
movq -0x110(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x128(%rbp), %rax
movq -0x120(%rbp), %rcx
movq -0x108(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x10, %rcx
movq %rcx, -0x148(%rbp)
movslq (%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
movq %rdi, -0x140(%rbp)
movq 0x810eb(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x138(%rbp)
movb $0x0, -0x31(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x130(%rbp)
je 0x8f06
movq -0x138(%rbp), %rdi
movq -0x140(%rbp), %rdx
movq %rdi, -0x28(%rbp)
movq %rdx, -0x30(%rbp)
movb $0x1, -0x31(%rbp)
xorl %esi, %esi
callq 0x42d0
movq -0x138(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x128(%rbp), %rax
movq -0x148(%rbp), %rcx
movq -0x130(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x18, %rcx
movq %rcx, -0x170(%rbp)
movslq (%rax), %rax
movq %rax, -0x168(%rbp)
movl $0x20, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
addq $0x8, %rdi
setb %al
orb %al, %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
movq %rdi, -0x160(%rbp)
movq 0x81037(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x158(%rbp)
movb $0x0, -0x49(%rbp)
movb $0x0, -0x61(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x150(%rbp)
je 0x9042
movq -0x168(%rbp), %rax
movq -0x158(%rbp), %rcx
movq -0x160(%rbp), %rdx
movq %rcx, -0x40(%rbp)
movq %rdx, -0x48(%rbp)
movb $0x1, -0x49(%rbp)
movq %rax, (%rcx)
addq $0x8, %rcx
movq %rcx, -0x178(%rbp)
cmpq $0x0, %rax
je 0x9032
movq -0x178(%rbp), %rax
movq -0x168(%rbp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x188(%rbp)
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rdi
movq -0x178(%rbp), %rax
movq %rdi, -0x190(%rbp)
movq %rax, -0x58(%rbp)
movq %rdi, -0x60(%rbp)
movb $0x1, -0x61(%rbp)
callq 0x47e0
movq -0x190(%rbp), %rax
movq -0x188(%rbp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x180(%rbp)
jne 0x8fee
movq -0x178(%rbp), %rax
movq %rax, -0x150(%rbp)
jmp 0x9042
movq -0x128(%rbp), %rax
movq -0x170(%rbp), %rcx
movq -0x150(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x20, %rcx
movq %rcx, -0x1b8(%rbp)
movslq (%rax), %rax
movq %rax, -0x1b0(%rbp)
movl $0x20, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
addq $0x8, %rdi
setb %al
orb %al, %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
movq %rdi, -0x1a8(%rbp)
movq 0x80efb(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x1a0(%rbp)
movb $0x0, -0x79(%rbp)
movb $0x0, -0x91(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x198(%rbp)
je 0x918a
movq -0x1b0(%rbp), %rax
movq -0x1a0(%rbp), %rcx
movq -0x1a8(%rbp), %rdx
movq %rcx, -0x70(%rbp)
movq %rdx, -0x78(%rbp)
movb $0x1, -0x79(%rbp)
movq %rax, (%rcx)
addq $0x8, %rcx
movq %rcx, -0x1c0(%rbp)
cmpq $0x0, %rax
je 0x917a
movq -0x1c0(%rbp), %rax
movq -0x1b0(%rbp), %rdx
shlq $0x5, %rdx
movq %rax, %rcx
addq %rdx, %rcx
movq %rcx, -0x1d0(%rbp)
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rdi
movq -0x1c0(%rbp), %rax
movq %rdi, -0x1d8(%rbp)
movq %rax, -0x88(%rbp)
movq %rdi, -0x90(%rbp)
movb $0x1, -0x91(%rbp)
callq 0x47e0
movq -0x1d8(%rbp), %rax
movq -0x1d0(%rbp), %rcx
addq $0x20, %rax
cmpq %rcx, %rax
movq %rax, -0x1c8(%rbp)
jne 0x912d
movq -0x1c0(%rbp), %rax
movq %rax, -0x198(%rbp)
jmp 0x918a
movq -0x128(%rbp), %rax
movq -0x1b8(%rbp), %rcx
movq -0x198(%rbp), %rdx
movq %rdx, (%rcx)
movq %rax, %rcx
addq $0x28, %rcx
movq %rcx, -0x1f8(%rbp)
movslq (%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
movq %rdi, -0x1f0(%rbp)
movq 0x80dc3(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x1e8(%rbp)
movb $0x0, -0xa9(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x1e0(%rbp)
je 0x923a
movq -0x1e8(%rbp), %rdi
movq -0x1f0(%rbp), %rdx
movq %rdi, -0xa0(%rbp)
movq %rdx, -0xa8(%rbp)
movb $0x1, -0xa9(%rbp)
xorl %esi, %esi
callq 0x42d0
movq -0x1e8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x128(%rbp), %rax
movq -0x1f8(%rbp), %rcx
movq -0x1e0(%rbp), %rdx
movq %rdx, (%rcx)
movq -0x10(%rbp), %rcx
movq %rcx, 0x30(%rax)
movl $0x0, -0xb0(%rbp)
movq -0x128(%rbp), %rcx
movl -0xb0(%rbp), %eax
cmpl (%rcx), %eax
jge 0x941f
movq -0x128(%rbp), %rax
movq -0x18(%rbp), %rcx
movq 0x10(%rcx), %rcx
movslq -0xb0(%rbp), %rdx
movl (%rcx,%rdx,4), %ecx
movl %ecx, %esi
movq 0x10(%rax), %rcx
movq %rsi, (%rcx,%rdx,8)
movq 0x8(%rax), %rax
movslq -0xb0(%rbp), %rcx
movb $0x1, (%rax,%rcx)
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rax
movslq -0xb0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x208(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x4a50
movq -0x208(%rbp), %rsi
movq -0x200(%rbp), %rdx
leaq -0xd0(%rbp), %rdi
callq 0x9bf0
jmp 0x92f4
movq -0x128(%rbp), %rax
movq 0x18(%rax), %rdi
movslq -0xb0(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq -0xd0(%rbp), %rsi
callq 0x46f0
leaq -0xd0(%rbp), %rdi
callq 0x4340
leaq -0xd1(%rbp), %rdi
callq 0x45f0
movq -0x128(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0xb0(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl $0x2, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
movq %rdi, -0x220(%rbp)
movq 0x80c2f(%rip), %rsi     # 0x89fa0
callq 0x49a0
movq %rax, %rcx
movq %rcx, -0x218(%rbp)
movb $0x0, -0xf9(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movq %rax, -0x210(%rbp)
je 0x93ce
movq -0x218(%rbp), %rdi
movq -0x220(%rbp), %rdx
movq %rdi, -0xf0(%rbp)
movq %rdx, -0xf8(%rbp)
movb $0x1, -0xf9(%rbp)
xorl %esi, %esi
callq 0x42d0
movq -0x218(%rbp), %rax
movq %rax, -0x210(%rbp)
movq -0x128(%rbp), %rax
movq -0x210(%rbp), %rdx
movq 0x28(%rax), %rax
movslq -0xb0(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0xb0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb0(%rbp)
jmp 0x9264
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xd1(%rbp), %rdi
callq 0x45f0
jmp 0x9428
addq $0x220, %rsp            # imm = 0x220
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0x4a30
nopw %cs:(%rax,%rax)
nop