// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/extended/compressed_bitsequence.c
// Function: gt_compressed_bitsequence_new
GtCompressedBitsequence *
gt_compressed_bitsequence_new(GtBitsequence *bitseq,
                              unsigned int samplerate,
                              GtUword num_of_bits)
{
  GtCompressedBitsequence *cbs;

  gt_assert(samplerate != 0);

  cbs = gt_compressed_bitsequence_new_empty();
  gt_compressed_bitsequence_init(cbs, samplerate, num_of_bits);

  gt_compressed_bitsequence_init_c_tab(cbs);
  gt_compressed_bitsequence_fill_c_tab_init_o_tab(cbs, bitseq);
  gt_compressed_bitsequence_init_s_tabs(cbs);
  gt_compressed_bitsequence_fill_tabs(cbs, bitseq);
  cbs->from_file = false;
  gt_log_log("new cbs:\n"
             "blzise: %u\n"
             "offsize: " GT_WU "\n"
             "cbits: %u\n"
             "csize: " GT_WU "\n"
             "lastblen: %u\n",
             cbs->blocksize,
             cbs->c_offsets_size,
             cbs->class_bits,
             cbs->classes_size,
             cbs->last_block_len);
  return cbs;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
testl %esi, %esi
je 0x12fb60
movq %rdx, %r13
movl %esi, %ebp
leaq 0x2525af(%rip), %r12    # 0x381806
movl $0x1, %r14d
movl $0x1, %edi
movl $0xf8, %esi
movq %r12, %rdx
movl $0x192, %ecx            # imm = 0x192
callq 0x1093ef
movq %rax, %rbx
movl $0xf, 0xd8(%rax)
movq $0x0, 0x98(%rax)
movl %ebp, 0xec(%rax)
movl $0xf, %edi
callq 0x16be7c
movq %rax, 0x68(%rbx)
movq %r13, 0xb0(%rbx)
movl 0xd8(%rbx), %edi
movq %r13, %rax
xorl %edx, %edx
divq %rdi
xorl %r15d, %r15d
testq %rdx, %rdx
cmovel %edi, %edx
movl %edx, 0xe0(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x98(%rbx)
setne %cl
cmpq %r13, %rdi
seta %dl
orb %cl, %dl
movzbl %dl, %ecx
addq %rax, %rcx
movq %rcx, 0xb8(%rbx)
callq 0x10af48
movl %eax, 0xdc(%rbx)
movl %eax, %eax
imulq 0xb8(%rbx), %rax
leaq -0x1(%rax), %r13
shrq $0x6, %r13
incq %r13
cmpq $0x40, %rax
cmovbq %r14, %r13
movq %r13, 0xa8(%rbx)
shlq $0x3, %r13
xorl %edi, %edi
movq %r13, %rsi
movq %r12, %rdx
movl $0x169, %ecx            # imm = 0x169
callq 0x1094e6
movq %rax, 0x78(%rbx)
movq %rax, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x173a0
movq 0xb8(%rbx), %rax
movl $0x0, %r12d
testq %rax, %rax
je 0x12f4b7
movl 0xd8(%rbx), %r14d
xorl %ebp, %ebp
xorl %r12d, %r12d
xorl %r15d, %r15d
decq %rax
cmpq %rax, %rbp
jne 0x12f370
movl 0xe0(%rbx), %r14d
cmpl $0x41, %r14d
movq 0x18(%rsp), %rsi
jae 0x12fb2e
testl %r14d, %r14d
je 0x12f3bf
movl 0xd8(%rbx), %ecx
imulq %rbp, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rsi,%rax,8), %r13
shlq %cl, %r13
andl $0x3f, %ecx
leal (%rcx,%r14), %edx
cmpl $0x41, %edx
jb 0x12f3b5
movq 0x8(%rsi,%rax,8), %rax
negb %cl
shrq %cl, %rax
orq %rax, %r13
movl %r14d, %ecx
negb %cl
shrq %cl, %r13
jmp 0x12f3c2
xorl %r13d, %r13d
movq 0x68(%rbx), %rdi
movq %r13, %rsi
callq 0x16c1bb
movq 0x78(%rbx), %r9
movq 0xa8(%rbx), %r11
movl 0xdc(%rbx), %r8d
movq %r8, %r10
imulq %rbp, %r10
movl %eax, %esi
movl %r10d, %edi
andl $0x3f, %edi
shrq $0x6, %r10
movl %edi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %ecx
subl %edi, %ecx
testl %edi, %edi
movl $0x0, %eax
cmovneq %rdx, %rax
movl %ecx, %edx
subl %r8d, %edx
jae 0x12f457
leaq 0x1(%r10), %rdx
cmpq %r11, %rdx
jae 0x12fb38
subl %ecx, %r8d
andq (%r9,%r10,8), %rax
movq %rsi, %rdi
movl %r8d, %ecx
shrq %cl, %rdi
orq %rax, %rdi
movq %rdi, (%r9,%r10,8)
movq 0x8(%r9,%r10,8), %rax
shlq %cl, %rax
shrq %cl, %rax
leaq (%r9,%rdx,8), %rdi
movl $0x40, %edx
subl %r8d, %edx
jmp 0x12f485
cmpq %r11, %r10
jae 0x12fb3d
addl %r8d, %edi
movq $-0x1, %r8
movl %edi, %ecx
shrq %cl, %r8
cmpl $0x40, %edi
movl $0x0, %ecx
cmovneq %r8, %rcx
orq %rcx, %rax
leaq (%r9,%r10,8), %rdi
andq (%rdi), %rax
movq %rsi, %r8
movl %edx, %ecx
shlq %cl, %r8
orq %rax, %r8
movq %r8, (%rdi)
movq 0x68(%rbx), %rdi
callq 0x16c234
movl %eax, %eax
addq %rax, %r15
addq %r13, %r12
incq %rbp
movq 0xb8(%rbx), %rax
cmpq %rax, %rbp
jb 0x12f361
leaq -0x1(%r15), %r13
shrq $0x6, %r13
incq %r13
cmpq $0x40, %r15
movl $0x1, %eax
cmovbq %rax, %r13
movl $0x1, %r14d
movq %r13, 0xa0(%rbx)
movq %r15, %rdi
callq 0x10af48
movl %eax, 0xe4(%rbx)
movq %r12, %rdi
callq 0x10af48
movl %eax, 0xe8(%rbx)
shlq $0x3, %r13
leaq 0x252303(%rip), %r15    # 0x381806
xorl %ebp, %ebp
xorl %edi, %edi
movq %r13, %rsi
movq %r15, %rdx
movl $0x18b, %ecx            # imm = 0x18B
callq 0x1094e6
movq %rax, 0x70(%rbx)
movq %rax, %rdi
xorl %esi, %esi
movq %r13, %rdx
callq 0x173a0
movq 0xb8(%rbx), %rax
movl 0xec(%rbx), %ecx
xorl %edx, %edx
divq %rcx
cmpq %r14, %rdx
sbbq $-0x1, %rax
movq %rax, 0xc0(%rbx)
movl 0xe4(%rbx), %ecx
imulq %rax, %rcx
leaq -0x1(%rcx), %r12
movq %r12, %rdx
shrq $0x6, %rdx
incq %rdx
movl 0xe8(%rbx), %esi
imulq %rax, %rsi
leaq -0x1(%rsi), %rax
shrq $0x6, %rax
incq %rax
cmpq $0x40, %rsi
movl $0x1, %esi
cmovbq %rsi, %rax
shrq $0x3, %r12
andq $-0x8, %r12
movl $0x8, %r14d
addq %r14, %r12
cmpq $0x40, %rcx
cmovbq %rsi, %rdx
movq %rdx, 0xc8(%rbx)
movq %rax, 0xd0(%rbx)
cmovbq %r14, %r12
xorl %edi, %edi
movq %r12, %rsi
movq %r15, %rdx
movl $0x156, %ecx            # imm = 0x156
callq 0x1094e6
movq %rax, 0x80(%rbx)
movq %rax, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x173a0
movl 0xe8(%rbx), %eax
imulq 0xc0(%rbx), %rax
leaq -0x1(%rax), %rcx
shrq $0x6, %rcx
cmpq $0x40, %rax
leaq 0x8(,%rcx,8), %r12
cmovbq %r14, %r12
xorl %edi, %edi
movq %r12, %rsi
movq %r15, %rdx
movl $0x158, %ecx            # imm = 0x158
callq 0x1094e6
movq %rax, 0x88(%rbx)
movq %rax, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x173a0
movq 0xb8(%rbx), %rax
testq %rax, %rax
je 0x12f96a
movl 0xd8(%rbx), %ecx
movq %rcx, 0x10(%rsp)
xorl %r13d, %r13d
xorl %r12d, %r12d
movq $0x0, 0x8(%rsp)
xorl %r15d, %r15d
movq %rbp, 0x20(%rsp)
movq %r12, %r14
decq %rax
cmpq %rax, %r15
jne 0x12f667
movl 0xe0(%rbx), %eax
movq %rax, 0x10(%rsp)
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1303a3
movl %eax, %ebp
movq 0x68(%rbx), %rdi
movl %eax, %esi
callq 0x16c234
movq 0x10(%rsp), %r8
cmpl $0x41, %r8d
jae 0x12fb33
movl %eax, %r12d
testl %r8d, %r8d
movq 0x18(%rsp), %rdi
je 0x12f6d6
movl 0xd8(%rbx), %ecx
imulq %r15, %rcx
movq %rcx, %rax
shrq $0x6, %rax
movq (%rdi,%rax,8), %rsi
shlq %cl, %rsi
andl $0x3f, %ecx
leal (%rcx,%r8), %edx
cmpl $0x41, %edx
jb 0x12f6cc
movq 0x8(%rdi,%rax,8), %rax
negb %cl
shrq %cl, %rax
orq %rax, %rsi
movl %r8d, %ecx
negb %cl
shrq %cl, %rsi
jmp 0x12f6d8
xorl %esi, %esi
movq 0x68(%rbx), %rdi
callq 0x16c418
movq 0x70(%rbx), %rdi
movq 0xa0(%rbx), %r10
movq %r14, %r8
movl %r8d, %esi
andl $0x3f, %esi
shrq $0x6, %r8
movl %esi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %r11d
subl %esi, %r11d
testl %esi, %esi
movl $0x0, %r9d
cmovneq %rdx, %r9
movl %r11d, %edx
subl %r12d, %edx
jae 0x12f760
leaq 0x1(%r8), %rdx
cmpq %r10, %rdx
jae 0x12fb42
movl %r12d, %ecx
subl %r11d, %ecx
andq (%rdi,%r8,8), %r9
movq %rax, %rsi
shrq %cl, %rsi
orq %r9, %rsi
movq %rsi, (%rdi,%r8,8)
movq 0x8(%rdi,%r8,8), %rsi
shlq %cl, %rsi
shrq %cl, %rsi
leaq (%rdi,%rdx,8), %rdi
movl $0x40, %edx
subl %ecx, %edx
jmp 0x12f78e
cmpq %r10, %r8
jae 0x12fb47
addl %r12d, %esi
movq $-0x1, %r10
movl %esi, %ecx
shrq %cl, %r10
cmpl $0x40, %esi
movl $0x0, %esi
cmovneq %r10, %rsi
orq %r9, %rsi
leaq (%rdi,%r8,8), %rdi
andq (%rdi), %rsi
movl %edx, %ecx
shlq %cl, %rax
orq %rsi, %rax
movq %rax, (%rdi)
movl %ebp, %eax
addq %rax, %r13
movl %r12d, %eax
movq %r14, %r12
addq %rax, %r12
movq 0x20(%rsp), %rbp
incl %ebp
cmpl %ebp, 0xec(%rbx)
jne 0x12f94b
movq 0x80(%rbx), %rdi
movq 0xc8(%rbx), %r10
movl 0xe4(%rbx), %eax
movq %rax, %r9
movq 0x8(%rsp), %r14
imulq %r14, %r9
movl %r9d, %esi
andl $0x3f, %esi
shrq $0x6, %r9
movl %esi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %ecx
subl %esi, %ecx
testl %esi, %esi
movl $0x0, %r8d
cmovneq %rdx, %r8
movl %ecx, %edx
subl %eax, %edx
jae 0x12f845
leaq 0x1(%r9), %rdx
cmpq %r10, %rdx
jae 0x12fb51
subl %ecx, %eax
andq (%rdi,%r9,8), %r8
movq %r12, %rsi
movl %eax, %ecx
shrq %cl, %rsi
orq %r8, %rsi
movq %rsi, (%rdi,%r9,8)
movq 0x8(%rdi,%r9,8), %r8
shlq %cl, %r8
shrq %cl, %r8
leaq (%rdi,%rdx,8), %rsi
movl $0x40, %edx
subl %eax, %edx
jmp 0x12f872
cmpq %r10, %r9
jae 0x12fb4c
addl %eax, %esi
movq $-0x1, %rax
movl %esi, %ecx
shrq %cl, %rax
cmpl $0x40, %esi
movl $0x0, %ecx
cmovneq %rax, %rcx
orq %rcx, %r8
leaq (%rdi,%r9,8), %rsi
andq (%rsi), %r8
movq %r12, %rax
movl %edx, %ecx
shlq %cl, %rax
orq %r8, %rax
movq %rax, (%rsi)
movq 0x88(%rbx), %rdi
movq 0xd0(%rbx), %r10
movl 0xe8(%rbx), %eax
movq %rax, %r9
imulq %r14, %r9
movl %r9d, %esi
andl $0x3f, %esi
shrq $0x6, %r9
movl %esi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %ecx
subl %esi, %ecx
testl %esi, %esi
movl $0x0, %r8d
cmovneq %rdx, %r8
movl %ecx, %edx
subl %eax, %edx
jae 0x12f906
leaq 0x1(%r9), %rdx
cmpq %r10, %rdx
jae 0x12fb5b
subl %ecx, %eax
andq (%rdi,%r9,8), %r8
movq %r13, %rsi
movl %eax, %ecx
shrq %cl, %rsi
orq %r8, %rsi
movq %rsi, (%rdi,%r9,8)
movq 0x8(%rdi,%r9,8), %r8
shlq %cl, %r8
shrq %cl, %r8
leaq (%rdi,%rdx,8), %rsi
movl $0x40, %edx
subl %eax, %edx
jmp 0x12f933
cmpq %r10, %r9
jae 0x12fb56
addl %eax, %esi
movq $-0x1, %rax
movl %esi, %ecx
shrq %cl, %rax
cmpl $0x40, %esi
movl $0x0, %ecx
cmovneq %rax, %rcx
orq %rcx, %r8
leaq (%rdi,%r9,8), %rsi
andq (%rsi), %r8
movq %r13, %rax
movl %edx, %ecx
shlq %cl, %rax
orq %r8, %rax
movq %rax, (%rsi)
incq %r14
movq %r14, 0x8(%rsp)
xorl %ebp, %ebp
incq %r15
movq 0xb8(%rbx), %rax
cmpq %rax, %r15
jb 0x12f64c
testl %ebp, %ebp
sete %al
movq 0x8(%rsp), %rbp
jmp 0x12f972
movb $0x1, %al
xorl %r12d, %r12d
xorl %r13d, %r13d
testb %al, %al
jne 0x12fae6
movq 0x80(%rbx), %rdi
movq 0xc8(%rbx), %r10
movl 0xe4(%rbx), %eax
movq %rax, %r9
imulq %rbp, %r9
movl %r9d, %esi
andl $0x3f, %esi
shrq $0x6, %r9
movl %esi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %ecx
subl %esi, %ecx
xorl %r8d, %r8d
testl %esi, %esi
cmovneq %rdx, %r8
movl %ecx, %edx
subl %eax, %edx
jae 0x12f9fd
leaq 0x1(%r9), %rdx
cmpq %r10, %rdx
jae 0x12fb65
subl %ecx, %eax
andq (%rdi,%r9,8), %r8
movq %r12, %rsi
movl %eax, %ecx
shrq %cl, %rsi
orq %r8, %rsi
movq %rsi, (%rdi,%r9,8)
movq 0x8(%rdi,%r9,8), %r8
shlq %cl, %r8
shrq %cl, %r8
leaq (%rdi,%rdx,8), %rsi
movl $0x40, %edx
subl %eax, %edx
jmp 0x12fa27
cmpq %r10, %r9
jae 0x12fb6a
addl %eax, %esi
movq $-0x1, %rax
movl %esi, %ecx
shrq %cl, %rax
xorl %ecx, %ecx
cmpl $0x40, %esi
cmovneq %rax, %rcx
orq %rcx, %r8
leaq (%rdi,%r9,8), %rsi
andq (%rsi), %r8
movl %edx, %ecx
shlq %cl, %r12
orq %r8, %r12
movq %r12, (%rsi)
movq 0x88(%rbx), %rdi
movq 0xd0(%rbx), %r9
movl 0xe8(%rbx), %eax
imulq %rax, %rbp
movl %ebp, %esi
andl $0x3f, %esi
shrq $0x6, %rbp
movl %esi, %ecx
negl %ecx
movq $-0x1, %rdx
shlq %cl, %rdx
movl $0x40, %ecx
subl %esi, %ecx
xorl %r8d, %r8d
testl %esi, %esi
cmovneq %rdx, %r8
movl %ecx, %edx
subl %eax, %edx
jae 0x12fab1
leaq 0x1(%rbp), %rdx
cmpq %r9, %rdx
jae 0x12fb6f
subl %ecx, %eax
andq (%rdi,%rbp,8), %r8
movq %r13, %rsi
movl %eax, %ecx
shrq %cl, %rsi
orq %r8, %rsi
movq %rsi, (%rdi,%rbp,8)
movq 0x8(%rdi,%rbp,8), %r8
shlq %cl, %r8
shrq %cl, %r8
leaq (%rdi,%rdx,8), %rsi
movl $0x40, %edx
subl %eax, %edx
jmp 0x12fadb
cmpq %r9, %rbp
jae 0x12fb74
addl %eax, %esi
movq $-0x1, %rax
movl %esi, %ecx
shrq %cl, %rax
xorl %ecx, %ecx
cmpl $0x40, %esi
cmovneq %rax, %rcx
orq %rcx, %r8
leaq (%rdi,%rbp,8), %rsi
andq (%rsi), %r8
movl %edx, %ecx
shlq %cl, %r13
orq %r8, %r13
movq %r13, (%rsi)
movb $0x0, 0xf0(%rbx)
movl 0xd8(%rbx), %esi
movl 0xdc(%rbx), %ecx
movq 0xa0(%rbx), %rdx
movq 0xa8(%rbx), %r8
movl 0xe0(%rbx), %r9d
leaq 0x251d17(%rip), %rdi    # 0x38182c
xorl %eax, %eax
callq 0x108e02
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x3cbe9
callq 0x3cc94
callq 0x3cc5b
callq 0x3cc22
callq 0x3cd06
callq 0x3cccd
callq 0x3cd3f
callq 0x3cd78
callq 0x3cdb1
callq 0x3cdea
callq 0x3cf07
callq 0x3ce5c
callq 0x3ce23
callq 0x3cece
callq 0x3ce95