// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/compressed_bitsequence.c
// Function: gt_compressed_bitsequence_unit_test_block_identical
static int gt_compressed_bitsequence_unit_test_block_identical(
                                            GtError *err,
                                            GtBitsequence *bitseq,
                                            const unsigned int sample_testratio,
                                            const GtUword cbs_testsize)
{
  int had_err = 0;
  unsigned int class, len, block_len;
  GtUword block_offset = 0,
          offsets_bitpos, sample, block,
          idx, jdx;
  GtBitsequence orig_block;
  GtCompressedBitsequence *cbs;

  gt_error_check(err);

  cbs = gt_compressed_bitsequence_new(bitseq, sample_testratio, cbs_testsize);
  gt_ensure(cbs != NULL);
  if (cbs != NULL) {
    block_len = cbs->blocksize;
  }

  for (idx = 0;
       !had_err && cbs!=NULL && idx < cbs->num_of_blocks;
       idx++) {
    if (idx == cbs->num_of_blocks -1) {
      block_len = cbs->last_block_len;
    }
    sample = idx / cbs->superblocksize;
    if (sample==0)
      offsets_bitpos = 0;
    else {
      offsets_bitpos = (GtUword)
        gt_compressed_bitsequence_get_variable_field(
                                     cbs->superblockoffsets,
                                     (sample - 1) * cbs->superblockoffsets_bits,
                                     cbs->superblockoffsets_bits);
    }
    for (jdx = sample * cbs->superblocksize; jdx < idx; jdx++) {
      class = gt_compressed_bitsequence_get_class(cbs, jdx);
      offsets_bitpos += gt_popcount_tab_offset_bits(cbs->popcount_tab, class);
    }
    class = gt_compressed_bitsequence_get_class(cbs, idx);
    len = gt_popcount_tab_offset_bits(cbs->popcount_tab, class);
    block_offset = (GtUword)
      gt_compressed_bitsequence_get_variable_field(cbs->c_offsets,
                                                   offsets_bitpos, len);
    block = gt_popcount_tab_get(cbs->popcount_tab, class, block_offset);
    orig_block = gt_compressed_bitsequence_get_variable_field(
                                                         bitseq,
                                                         idx * cbs->blocksize,
                                                         block_len);
    gt_ensure(block == (GtUword) orig_block);
  }
  gt_compressed_bitsequence_delete(cbs);
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movq %rsi, 0x68(%rsp)
movl %edx, 0x64(%rsp)
movq %rcx, 0x58(%rsp)
movl $0x0, 0x54(%rsp)
movq $0x0, 0x40(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x13dee8
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x13deb0
jmp 0x13dee8
movq 0x4fe0e9(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3d8152(%rip), %rsi    # 0x516013
leaq 0x3d82f7(%rip), %rdx    # 0x5161bf
leaq 0x40cff8(%rip), %rcx    # 0x54aec7
leaq 0x40c930(%rip), %r8     # 0x54a806
movl $0x475, %r9d            # imm = 0x475
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x13deea
movq 0x68(%rsp), %rdi
movl 0x64(%rsp), %esi
movq 0x58(%rsp), %rdx
callq 0x13a230
movq %rax, 0x8(%rsp)
cmpl $0x0, 0x54(%rsp)
jne 0x13df49
cmpq $0x0, 0x8(%rsp)
jne 0x13df47
movq 0x70(%rsp), %rdi
leaq 0x3f16dd(%rip), %rsi    # 0x52f5fa
leaq 0x40c94c(%rip), %rdx    # 0x54a870
leaq 0x40cf9c(%rip), %rcx    # 0x54aec7
leaq 0x40c8d4(%rip), %r8     # 0x54a806
movl $0x478, %r9d            # imm = 0x478
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x13df49
jmp 0x13df4b
cmpq $0x0, 0x8(%rsp)
je 0x13df62
movq 0x8(%rsp), %rax
movl 0xd8(%rax), %eax
movl %eax, 0x48(%rsp)
movq $0x0, 0x20(%rsp)
xorl %eax, %eax
cmpl $0x0, 0x54(%rsp)
movb %al, 0x7(%rsp)
jne 0x13df9e
xorl %eax, %eax
cmpq $0x0, 0x8(%rsp)
movb %al, 0x7(%rsp)
je 0x13df9e
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq 0xb8(%rcx), %rax
setb %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
testb $0x1, %al
jne 0x13dfab
jmp 0x13e18a
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movq 0xb8(%rcx), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x13dfd4
movq 0x8(%rsp), %rax
movl 0xe0(%rax), %eax
movl %eax, 0x48(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rsp), %rcx
movl 0xec(%rcx), %ecx
xorl %edx, %edx
divq %rcx
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x13e001
movq $0x0, 0x38(%rsp)
jmp 0x13e03a
movq 0x8(%rsp), %rax
movq 0x80(%rax), %rdi
movq 0x30(%rsp), %rsi
subq $0x1, %rsi
movq 0x8(%rsp), %rax
movl 0xe4(%rax), %eax
imulq %rax, %rsi
movq 0x8(%rsp), %rax
movl 0xe4(%rax), %edx
callq 0x13bb30
movq %rax, 0x38(%rsp)
movq 0x30(%rsp), %rax
movq 0x8(%rsp), %rcx
movl 0xec(%rcx), %ecx
imulq %rcx, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x20(%rsp), %rax
jae 0x13e0a0
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0x13bc30
movl %eax, 0x50(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rdi
movl 0x50(%rsp), %esi
callq 0x1b4bc0
movl %eax, %eax
addq 0x38(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x13e053
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x13bc30
movl %eax, 0x50(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rdi
movl 0x50(%rsp), %esi
callq 0x1b4bc0
movl %eax, 0x4c(%rsp)
movq 0x8(%rsp), %rax
movq 0x70(%rax), %rdi
movq 0x38(%rsp), %rsi
movl 0x4c(%rsp), %edx
callq 0x13bb30
movq %rax, 0x40(%rsp)
movq 0x8(%rsp), %rax
movq 0x68(%rax), %rdi
movl 0x50(%rsp), %esi
movq 0x40(%rsp), %rdx
callq 0x1b4820
movq %rax, 0x28(%rsp)
movq 0x68(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x8(%rsp), %rax
movl 0xd8(%rax), %eax
imulq %rax, %rsi
movl 0x48(%rsp), %edx
callq 0x13bb30
movq %rax, 0x10(%rsp)
cmpl $0x0, 0x54(%rsp)
jne 0x13e173
movq 0x28(%rsp), %rax
cmpq 0x10(%rsp), %rax
je 0x13e171
movq 0x70(%rsp), %rdi
leaq 0x3f14b3(%rip), %rsi    # 0x52f5fa
leaq 0x40cdad(%rip), %rdx    # 0x54aefb
leaq 0x40cd72(%rip), %rcx    # 0x54aec7
leaq 0x40c6aa(%rip), %r8     # 0x54a806
movl $0x49b, %r9d            # imm = 0x49B
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x54(%rsp) # imm = 0xFFFFFFFF
jmp 0x13e173
jmp 0x13e175
jmp 0x13e177
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x13df6b
movq 0x8(%rsp), %rdi
callq 0x13d090
movl 0x54(%rsp), %eax
addq $0x78, %rsp
retq
nopl (%rax)