LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/coin_hmm.c
// Function: gt_coin_hmm_fair
GtHMM* gt_coin_hmm_fair(void)
{
  GtHMM *hmm;

  /* create the GtHMM */
  hmm = gt_hmm_new(COIN_NUM_OF_STATES, COIN_NUM_OF_SYMBOLS);

  /* set emmission probabilities */
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, HEAD, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_FAIR, TAIL, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, HEAD, 0.5);
  gt_hmm_set_emission_probability(hmm, COIN_LOADED, TAIL, 0.5);

  /* set transition probabilities */
  gt_hmm_set_transition_probability(hmm, COIN_FAIR, COIN_LOADED, 0.5);
  gt_hmm_set_transition_probability(hmm, COIN_LOADED, COIN_FAIR, 0.5);
  gt_hmm_set_missing_transition_probabilities(hmm);
  gt_assert(gt_hmm_is_valid(hmm));

  return hmm;
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
pushq $0x2
popq %rdi
movl %edi, %esi
callq 0xec1d4
movq %rax, %rbx
movsd 0x5cc99(%rip), %xmm0    # 0x2f5e58
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0xec5aa
pushq $0x1
popq %rbp
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
movsd 0x5cc7b(%rip), %xmm0    # 0x2f5e58
callq 0xec5aa
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movsd 0x5cc67(%rip), %xmm0    # 0x2f5e58
callq 0xec5aa
movq %rbx, %rdi
movl %ebp, %esi
movl %ebp, %edx
movsd 0x5cc53(%rip), %xmm0    # 0x2f5e58
callq 0xec5aa
movq %rbx, %rdi
xorl %esi, %esi
movl %ebp, %edx
movsd 0x5cc3f(%rip), %xmm0    # 0x2f5e58
callq 0xec487
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
movsd 0x5cc2b(%rip), %xmm0    # 0x2f5e58
callq 0xec487
movq %rbx, %rdi
callq 0xec842
movq %rbx, %rdi
callq 0xeca3c
testb %al, %al
je 0x299250
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movq 0x19ed11(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4bdb2(%rip), %rsi     # 0x2e5013
leaq 0x8a112(%rip), %rdx     # 0x32337a
leaq 0xe43de(%rip), %rcx     # 0x37d64d
leaq 0xe43bf(%rip), %r8      # 0x37d635
pushq $0x3c
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/coin_hmm.c
// Function: gt_coin_hmm_alphabet
GtAlphabet* gt_coin_hmm_alphabet(void)
{
  GtAlphabet *a = gt_alphabet_new_empty();
  gt_alphabet_add_mapping(a, "Hh");
  gt_alphabet_add_mapping(a, "Tt");
  gt_assert(gt_alphabet_size(a) == 2);
  return a;
}

// Assembly:
pushq %rbx
callq 0x5685b
movq %rax, %rbx
leaq 0xe43c8(%rip), %rsi     # 0x37d65e
movq %rax, %rdi
callq 0x56586
leaq 0x79d19(%rip), %rsi     # 0x312fbe
movq %rbx, %rdi
callq 0x56586
movq %rbx, %rdi
callq 0x56cd2
cmpl $0x2, %eax
jne 0x2992bf
movq %rbx, %rax
popq %rbx
retq
movq 0x19eca2(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4bd43(%rip), %rsi     # 0x2e5013
leaq 0xe438a(%rip), %rdx     # 0x37d661
leaq 0xe439c(%rip), %rcx     # 0x37d67a
leaq 0xe4350(%rip), %r8      # 0x37d635
pushq $0x46
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_reset
int gt_cstr_iterator_reset(GtCstrIterator *cstr_iterator,
                           GtError *err)
{
  gt_error_check(err);
  gt_assert(cstr_iterator && cstr_iterator->c_class);
  if (cstr_iterator->c_class->reset_func != NULL)
    return cstr_iterator->c_class->reset_func(cstr_iterator, err);
  return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
testq %rsi, %rsi
je 0x29a02b
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x29a084
testq %r14, %r14
je 0x29a05a
movq (%r14), %rax
testq %rax, %rax
je 0x29a05a
movq 0x8(%rax), %rax
testq %rax, %rax
je 0x29a050
movq %r14, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19df07(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4afa8(%rip), %rsi     # 0x2e5013
leaq 0xe3ae2(%rip), %rdx     # 0x37db54
leaq 0xe3aa7(%rip), %rcx     # 0x37db20
leaq 0xe3ab7(%rip), %r8      # 0x37db37
pushq $0x1d
jmp 0x29a0ac
movq 0x19dedd(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4af7e(%rip), %rsi     # 0x2e5013
leaq 0x4b123(%rip), %rdx     # 0x2e51bf
leaq 0xe3a7d(%rip), %rcx     # 0x37db20
leaq 0xe3a8d(%rip), %r8      # 0x37db37
pushq $0x1c
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_next
int gt_cstr_iterator_next(GtCstrIterator *cstr_iterator,
                          const char **string,
                          GtError *err)
{
  gt_error_check(err);
  gt_assert(cstr_iterator && cstr_iterator->c_class);
  if (cstr_iterator->c_class->next_func != NULL)
    return cstr_iterator->c_class->next_func(cstr_iterator,
                                             string,
                                             err);
  return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
testq %rdx, %rdx
je 0x29a0d9
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x29a130
testq %r15, %r15
je 0x29a106
movq (%r15), %rax
testq %rax, %rax
je 0x29a106
movq (%rax), %rax
testq %rax, %rax
je 0x29a0fe
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %r15
jmpq *%rax
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
movq 0x19de5b(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4aefc(%rip), %rsi     # 0x2e5013
leaq 0xe3a36(%rip), %rdx     # 0x37db54
leaq 0xe3a57(%rip), %rcx     # 0x37db7c
leaq 0xe3a0b(%rip), %r8      # 0x37db37
pushq $0x28
jmp 0x29a158
movq 0x19de31(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4aed2(%rip), %rsi     # 0x2e5013
leaq 0x4b077(%rip), %rdx     # 0x2e51bf
leaq 0xe3a2d(%rip), %rcx     # 0x37db7c
leaq 0xe39e1(%rip), %r8      # 0x37db37
pushq $0x27
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_delete
void gt_cstr_iterator_delete(GtCstrIterator *cstr_iterator)
{
  if (cstr_iterator != NULL) {
    gt_assert(cstr_iterator->c_class != NULL);
    if (cstr_iterator->c_class->delete_func != NULL)
      cstr_iterator->c_class->delete_func(cstr_iterator);
    gt_free(cstr_iterator);
  }
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x29a198
movq %rdi, %rbx
movq (%rdi), %rax
testq %rax, %rax
je 0x29a19a
movq 0x10(%rax), %rax
testq %rax, %rax
je 0x29a185
movq %rbx, %rdi
callq *%rax
leaq 0xe39ab(%rip), %rsi     # 0x37db37
pushq $0x36
popq %rdx
movq %rbx, %rdi
popq %rbx
jmp 0x936f9
popq %rbx
retq
movq 0x19ddc7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4ae68(%rip), %rsi     # 0x2e5013
leaq 0xe39e0(%rip), %rdx     # 0x37db92
leaq 0xe39f8(%rip), %rcx     # 0x37dbb1
leaq 0xe3977(%rip), %r8      # 0x37db37
pushq $0x33
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_class_new
GtCstrIteratorClass *
gt_cstr_iterator_class_new(size_t size,
                           GtCstrIteratorNextFunc next,
                           GtCstrIteratorResetFunc reset,
                           GtCstrIteratorDeleteFunc delete)
{
  GtCstrIteratorClass *cstr_iterator_c;
  gt_assert(size != 0);
  cstr_iterator_c = gt_class_alloc(sizeof (*cstr_iterator_c));
  cstr_iterator_c->size = size;
  cstr_iterator_c->next_func = next;
  cstr_iterator_c->reset_func = reset;
  cstr_iterator_c->delete_func = delete;
  return cstr_iterator_c;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x29a20c
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
pushq $0x20
popq %rdi
callq 0x292a70
movq %r12, 0x18(%rax)
movq %r15, (%rax)
movq %r14, 0x8(%rax)
movq %rbx, 0x10(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x19dd55(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4adf6(%rip), %rsi     # 0x2e5013
leaq 0xe39a5(%rip), %rdx     # 0x37dbc9
leaq 0xe39a8(%rip), %rcx     # 0x37dbd3
leaq 0xe3905(%rip), %r8      # 0x37db37
pushq $0x41
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/cstr_iterator.c
// Function: gt_cstr_iterator_create
GtCstrIterator *
gt_cstr_iterator_create(const GtCstrIteratorClass *cstr_iterator_c)
{
  GtCstrIterator *cstr_iterator;
  gt_assert(cstr_iterator_c && cstr_iterator_c->size);
  cstr_iterator = gt_calloc((size_t) 1, cstr_iterator_c->size);
  cstr_iterator->c_class = cstr_iterator_c;
  return cstr_iterator;
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x29a26b
movq %rdi, %rbx
movq 0x18(%rdi), %rsi
testq %rsi, %rsi
je 0x29a26b
leaq 0xe38dc(%rip), %rdx     # 0x37db37
pushq $0x1
popq %rdi
pushq $0x4f
popq %rcx
callq 0x9334a
movq %rbx, (%rax)
popq %rbx
retq
movq 0x19dcf6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4ad97(%rip), %rsi     # 0x2e5013
leaq 0xe396b(%rip), %rdx     # 0x37dbee
leaq 0xe398d(%rip), %rcx     # 0x37dc17
leaq 0xe38a6(%rip), %r8      # 0x37db37
pushq $0x4e
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/dice_hmm.c
// Function: gt_dice_hmm_alphabet
GtAlphabet* gt_dice_hmm_alphabet(void)
{
  GtAlphabet *a = gt_alphabet_new_empty();
  gt_alphabet_add_mapping(a, "1");
  gt_alphabet_add_mapping(a, "2");
  gt_alphabet_add_mapping(a, "3");
  gt_alphabet_add_mapping(a, "4");
  gt_alphabet_add_mapping(a, "5");
  gt_alphabet_add_mapping(a, "6");
  gt_assert(gt_alphabet_size(a) == 6);
  return a;
}

// Assembly:
pushq %rbx
callq 0x5685b
movq %rax, %rbx
leaq 0x7465a(%rip), %rsi     # 0x30ed12
movq %rax, %rdi
callq 0x56586
leaq 0x92c0e(%rip), %rsi     # 0x32d2d5
movq %rbx, %rdi
callq 0x56586
leaq 0x92d6d(%rip), %rsi     # 0x32d443
movq %rbx, %rdi
callq 0x56586
leaq 0x6d3bb(%rip), %rsi     # 0x307aa0
movq %rbx, %rdi
callq 0x56586
leaq 0x92e2b(%rip), %rsi     # 0x32d51f
movq %rbx, %rdi
callq 0x56586
leaq 0xb4c09(%rip), %rsi     # 0x34f30c
movq %rbx, %rdi
callq 0x56586
movq %rbx, %rdi
callq 0x56cd2
cmpl $0x6, %eax
jne 0x29a71d
movq %rbx, %rax
popq %rbx
retq
movq 0x19d844(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4a8e5(%rip), %rsi     # 0x2e5013
leaq 0xe35a7(%rip), %rdx     # 0x37dcdc
leaq 0xe35b9(%rip), %rcx     # 0x37dcf5
leaq 0xe3570(%rip), %r8      # 0x37dcb3
pushq $0x5c
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nop
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_class
const GtCstrIteratorClass* gt_fasta_header_iterator_class(void)
{
  static const GtCstrIteratorClass *sic = NULL;
  gt_class_alloc_lock_enter();
  if (sic == NULL) {
    sic = gt_cstr_iterator_class_new(sizeof (GtFastaHeaderIterator),
                                     gt_fasta_header_iterator_next,
                                     gt_fasta_header_iterator_reset,
                                     gt_fasta_header_iterator_delete);
  }
  gt_class_alloc_lock_leave();
  return sic;
}

// Assembly:
pushq %rax
callq 0x69e97
cmpq $0x0, 0x1a2f7e(%rip)    # 0x43df90
jne 0x29b038
leaq 0x2b(%rip), %rsi        # 0x29b046
leaq 0x66(%rip), %rdx        # 0x29b088
leaq 0xfc(%rip), %rcx        # 0x29b125
pushq $0x20
popq %rdi
callq 0x29a1d0
movq %rax, 0x1a2f58(%rip)    # 0x43df90
callq 0x69ede
movq 0x1a2f4c(%rip), %rax    # 0x43df90
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_reset
static int gt_fasta_header_iterator_reset(GtCstrIterator *cstr_iterator,
                                    GtError *err)
{
  GtFastaHeaderIterator *fhi = gt_fasta_header_iterator_cast(cstr_iterator);
  gt_error_check(err);
  gt_seq_iterator_delete(fhi->seq_iter);
  fhi->seq_iter = gt_seq_iterator_sequence_buffer_new(fhi->filenametab, err);
  if (fhi->seq_iter == NULL)
    return -1;
  gt_seq_iterator_set_sequence_output(fhi->seq_iter, false);
  return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29b004
movq %rax, %rdi
movq %r14, %rsi
callq 0x29a2a1
movq %rax, %r14
testq %rbx, %rbx
je 0x29b0b6
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x29b0ef
movq 0x10(%r14), %rdi
callq 0xa6389
movq 0x18(%r14), %rdi
movq %rbx, %rsi
callq 0xa70d0
movq %rax, 0x10(%r14)
testq %rax, %rax
je 0x29b0e2
xorl %ebx, %ebx
movq %rax, %rdi
xorl %esi, %esi
callq 0xa628f
jmp 0x29b0e5
pushq $-0x1
popq %rbx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19ce72(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x49f13(%rip), %rsi     # 0x2e5013
leaq 0x4a0b8(%rip), %rdx     # 0x2e51bf
leaq 0xe2cf3(%rip), %rcx     # 0x37de01
leaq 0xe2d0b(%rip), %r8      # 0x37de20
pushq $0x30
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/fasta_header_iterator.c
// Function: gt_fasta_header_iterator_new
GtCstrIterator* gt_fasta_header_iterator_new(GtStrArray *filenametab,
                                               GtError *err)
{
  GtCstrIterator *cstr_iterator =
    gt_cstr_iterator_create(gt_fasta_header_iterator_class());
  GtFastaHeaderIterator *fhi = gt_fasta_header_iterator_cast(cstr_iterator);
  fhi->filenametab = gt_str_array_ref(filenametab);
  if (gt_fasta_header_iterator_reset(cstr_iterator, err) != 0)
    return NULL;
  return cstr_iterator;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29b004
movq %rax, %rdi
callq 0x29a242
movq %rax, %r15
callq 0x29b004
movq %rax, %rdi
movq %r15, %rsi
callq 0x29a2a1
movq %rax, %r12
movq %r14, %rdi
callq 0xae17e
movq %rax, 0x18(%r12)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x29b088
xorl %ecx, %ecx
testl %eax, %eax
cmoveq %r15, %rcx
movq %rcx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nop
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/globalchaining.c
// Function: isrightmaximallocalchain
static bool isrightmaximallocalchain(GtChaininfo *chaininfo,
                                     GtUword num_of_fragments,
                                     GtUword currentfrag)
{
  if (currentfrag == num_of_fragments - 1)
    return true;
  if (chaininfo[currentfrag+1].previousinchain != currentfrag)
    return true;
  if (chaininfo[currentfrag+1].score < chaininfo[currentfrag].score)
    return true;
  return false;
}

// Assembly:
decq %rsi
movb $0x1, %al
cmpq %rdx, %rsi
je 0x29c682
movq %rdx, %rcx
shlq $0x4, %rcx
cmpq %rdx, 0x10(%rdi,%rcx)
jne 0x29c682
leaq (%rdi,%rcx), %rax
movq 0x18(%rax), %rax
cmpq 0x8(%rdi,%rcx), %rax
setl %al
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/globalchaining.c
// Function: retracepreviousinchain
static void retracepreviousinchain(GtChain *chain, GtChaininfo *chaininfo,
                                   GtUword num_of_fragments,
                                   GtUword retracestart)
{
  GtUword fragnum, idx, lengthofchain;

  for (lengthofchain = 0, fragnum = retracestart;
       fragnum != UNDEFPREVIOUS; lengthofchain++) {
    gt_chain_add_fragnum(chain, UNDEFPREVIOUS); /* add dummy */
    fragnum = chaininfo[fragnum].previousinchain;
  }
  fragnum = retracestart;
  idx = lengthofchain;
  while (fragnum != UNDEFPREVIOUS) {
    gt_assert(idx != 0);
    idx--;
    gt_chain_set_fragnum(chain, idx, fragnum); /* set dummy */
    fragnum = chaininfo[fragnum].previousinchain;
  }
  gt_assert(idx == 0);
  gt_assert(gt_chain_size(chain) == lengthofchain);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
pushq $0x1
popq %rbp
movq %rcx, %r13
cmpq %r15, %r13
je 0x29c6bd
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2981ec
shlq $0x4, %r13
movq (%r12,%r13), %r13
decq %rbp
jmp 0x29c6a0
movq %rbp, %r13
negq %r13
cmpq %r15, %r14
je 0x29c6e9
cmpq $-0x1, %r13
je 0x29c70f
movq %rbx, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x29823c
shlq $0x4, %r14
movq (%r12,%r14), %r14
decq %r13
jmp 0x29c6c3
cmpq $-0x1, %r13
jne 0x29c747
movq %rbx, %rdi
callq 0x298360
addq %rbp, %rax
cmpq $0x1, %rax
jne 0x29c775
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x19b852(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x488f3(%rip), %rsi     # 0x2e5013
leaq 0xe1c45(%rip), %rdx     # 0x37e36c
leaq 0xe1c47(%rip), %rcx     # 0x37e375
leaq 0xe1ba5(%rip), %r8      # 0x37e2da
movl $0x87, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
movq 0x19b81a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x488bb(%rip), %rsi     # 0x2e5013
leaq 0xbed1a(%rip), %rdx     # 0x35b479
leaq 0xe1c0f(%rip), %rcx     # 0x37e375
leaq 0xe1b6d(%rip), %r8      # 0x37e2da
movl $0x8c, %r9d
jmp 0x29c73b
movq 0x19b7ec(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4888d(%rip), %rsi     # 0x2e5013
leaq 0xe1bff(%rip), %rdx     # 0x37e38c
leaq 0xe1be1(%rip), %rcx     # 0x37e375
leaq 0xe1b3f(%rip), %r8      # 0x37e2da
movl $0x8d, %r9d
jmp 0x29c73b
nop
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_new
GtIntset* gt_intset_16_new(GtUword maxelement, GtUword num_of_elems)
{
  GtIntset *intset;
  GtIntset16 *intset_16;
  GtIntsetMembers *members;
  GtUword idx;

  gt_assert(num_of_elems != 0);

  intset = gt_intset_create(gt_intset_16_class());
  intset_16 = gt_intset_16_cast(intset);
  members = intset->members;

  members->currentsectionnum = 0;
  members->maxelement = maxelement;
  members->nextfree = 0;
  members->num_of_elems = num_of_elems;
  members->previouselem = ULONG_MAX;
  members->refcount = 0;

  members->logsectionsize = GT_BITS_FOR_TYPE(uint16_t);
  members->numofsections = GT_ELEM2SECTION_M(maxelement) + 1;

  intset_16->elements =
    gt_malloc(sizeof (*intset_16->elements) * num_of_elems);

  members->sectionstart = gt_malloc(sizeof (*members->sectionstart) *
                                    (members->numofsections + 1));

  members->sectionstart[0] = 0;
  for (idx = (GtUword) 1; idx <= members->numofsections; idx++) {
    members->sectionstart[idx] = num_of_elems;
  }
  return intset;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rsi, %rsi
je 0x29c86b
movq %rsi, %rbx
movq %rdi, %r15
callq 0x29c8a1
movq %rax, %rdi
callq 0xf349c
movq %rax, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq %rax, %r12
movq 0x8(%r14), %r13
andq $0x0, 0x10(%r13)
movq %r15, 0x18(%r13)
andq $0x0, 0x20(%r13)
movq %rbx, 0x28(%r13)
orq $-0x1, 0x38(%r13)
andq $0x0, 0x40(%r13)
movq $0x10, 0x8(%r13)
shrq $0x10, %r15
incq %r15
movq %r15, 0x30(%r13)
leaq (%rbx,%rbx), %rdi
leaq 0xe1c43(%rip), %r15     # 0x37e460
pushq $0x4c
popq %rdx
movq %r15, %rsi
callq 0x93160
movq %rax, 0x10(%r12)
movq 0x30(%r13), %rax
leaq 0x8(,%rax,8), %rdi
pushq $0x4f
popq %rdx
movq %r15, %rsi
callq 0x93160
movq %rax, (%r13)
andq $0x0, (%rax)
pushq $0x1
popq %rcx
cmpq 0x30(%r13), %rcx
ja 0x29c85e
movq %rbx, (%rax,%rcx,8)
incq %rcx
jmp 0x29c84f
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq 0x19b6f6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48797(%rip), %rsi     # 0x2e5013
leaq 0xe1bba(%rip), %rdx     # 0x37e43d
leaq 0xe1bc5(%rip), %rcx     # 0x37e44f
leaq 0xe1bcf(%rip), %r8      # 0x37e460
pushq $0x3b
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_class
const GtIntsetClass* gt_intset_16_class(void)
{
  static const GtIntsetClass *this_c = NULL;
  if (this_c == NULL) {
    this_c = gt_intset_class_new(sizeof (GtIntset16),
                                 gt_intset_16_add,
                                 gt_intset_16_file_is_type,
                                 gt_intset_16_get,
                                 gt_intset_16_io,
                                 gt_intset_16_get_idx_smallest_geq,
                                 gt_intset_16_is_member,
                                 gt_intset_16_size_of_rep,
                                 gt_intset_16_size,
                                 gt_intset_16_size_of_struct,
                                 gt_intset_16_write,
                                 gt_intset_16_delete);
  }
  return this_c;
}

// Assembly:
movq 0x1a16f0(%rip), %rax    # 0x43df98
testq %rax, %rax
je 0x29c8ae
retq
pushq %r15
pushq %r14
pushq %rbx
leaq 0x264(%rip), %rax       # 0x29cb1e
leaq 0x38d(%rip), %r10       # 0x29cc4e
leaq 0x8f3(%rip), %r11       # 0x29d1bb
leaq 0x715(%rip), %rbx       # 0x29cfe4
leaq 0x8d5(%rip), %r14       # 0x29d1ab
leaq 0x725(%rip), %r15       # 0x29d002
leaq 0x43a(%rip), %rsi       # 0x29cd1e
leaq 0x8d6(%rip), %rdx       # 0x29d1c1
leaq 0x5dc(%rip), %rcx       # 0x29cece
leaq 0x256(%rip), %r8        # 0x29cb4f
leaq 0x783(%rip), %r9        # 0x29d083
pushq $0x18
popq %rdi
pushq %rax
pushq %r10
pushq %r11
pushq %rbx
pushq %r14
pushq %r15
callq 0xf39c3
addq $0x30, %rsp
movq %rax, 0x1a167b(%rip)    # 0x43df98
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_io
GtIntset *gt_intset_16_io(GtIntset *intset, FILE *fp, GtError *err)
{
  GtIntset16 *intset_16;
  if (intset == NULL) {
    intset = gt_intset_create(gt_intset_16_class());
    intset->members->sectionstart = NULL;
    intset->members->refcount = 0;
    intset_16 = gt_intset_16_cast(intset);
    intset_16->elements = NULL;
    intset = gt_intset_16_io_fp(intset, fp, err, gt_io_error_fread);
  }
  else {
    intset = gt_intset_16_io_fp(intset, fp, err, gt_io_error_fwrite);
  }
  return intset;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
testq %rdi, %rdi
je 0x29cb68
leaq -0x1a8cb6(%rip), %rcx   # 0xf3eb0
jmp 0x29cba4
callq 0x29c8a1
movq %rax, %rdi
callq 0xf349c
movq %rax, %r15
movq 0x8(%rax), %rax
andq $0x0, (%rax)
andq $0x0, 0x40(%rax)
callq 0x29c8a1
movq %rax, %rdi
movq %r15, %rsi
callq 0xf3576
andq $0x0, 0x10(%rax)
leaq -0x1a8cb4(%rip), %rcx   # 0xf3eed
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x29c923
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_write
GtIntset *gt_intset_16_write(GtIntset *intset, FILE *fp, GtError *err)
{
  gt_assert(intset != NULL);
  gt_assert(fp != NULL);
  gt_error_check(err);
  return gt_intset_16_io(intset, fp, err);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x29cc8a
movq %rsi, %r14
testq %rsi, %rsi
je 0x29ccb8
movq %rdx, %rbx
movq %rdi, %r15
testq %rdx, %rdx
je 0x29cc77
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x29cce6
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x29cb4f
movq 0x19b2d7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48378(%rip), %rsi     # 0x2e5013
leaq 0x8848f(%rip), %rdx     # 0x325131
leaq 0xe186d(%rip), %rcx     # 0x37e516
leaq 0xe17b0(%rip), %r8      # 0x37e460
movl $0xcd, %r9d
jmp 0x29cd12
movq 0x19b2a9(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4834a(%rip), %rsi     # 0x2e5013
leaq 0x7c5e0(%rip), %rdx     # 0x3192b0
leaq 0xe183f(%rip), %rcx     # 0x37e516
leaq 0xe1782(%rip), %r8      # 0x37e460
movl $0xce, %r9d
jmp 0x29cd12
movq 0x19b27b(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x4831c(%rip), %rsi     # 0x2e5013
leaq 0x484c1(%rip), %rdx     # 0x2e51bf
leaq 0xe1811(%rip), %rcx     # 0x37e516
leaq 0xe1754(%rip), %r8      # 0x37e460
movl $0xcf, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_get
GtUword gt_intset_16_get(GtIntset *intset, GtUword idx)
{
  GtUword quotient;
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  gt_assert(idx < members->nextfree);

  quotient = gt_intset_16_binarysearch_sec_idx_largest_leq(
                                      sectionstart,
                                      sectionstart + members->numofsections - 1,
                                      idx);
  return (quotient << members->logsectionsize) +
         intset_16->elements[idx];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rcx
cmpq %rbx, 0x20(%rcx)
jbe 0x29cf7e
movq (%rcx), %rsi
movq 0x30(%rcx), %rdx
leaq (%rsi,%rdx,8), %rdi
addq $-0x8, %rdi
xorl %edx, %edx
cmpq %rbx, (%rsi)
cmovbeq %rsi, %rdx
movq %rsi, %r8
cmpq %rdi, %r8
jae 0x29cf3e
movq %rdi, %r9
subq %r8, %r9
sarq $0x4, %r9
cmpq %rbx, (%r8,%r9,8)
jb 0x29cf30
leaq (%r8,%r9,8), %rdi
addq $-0x8, %rdi
jmp 0x29cf11
leaq (%r8,%r9,8), %rdx
leaq (%r8,%r9,8), %r8
addq $0x8, %r8
jmp 0x29cf11
testq %rdx, %rdx
je 0x29cfac
movq %rdx, %rdi
subq %rsi, %rdi
addq $-0x8, %rdi
addq $0x8, %rdx
addq $0x8, %rdi
leaq 0x8(%rdx), %rsi
cmpq %rbx, (%rdx)
movq %rsi, %rdx
jbe 0x29cf51
sarq $0x3, %rdi
movb 0x8(%rcx), %cl
shlq %cl, %rdi
movq 0x10(%rax), %rax
movzwl (%rax,%rbx,2), %eax
addq %rdi, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19afe3(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48084(%rip), %rsi     # 0x2e5013
leaq 0xe170a(%rip), %rdx     # 0x37e6a0
leaq 0xe171b(%rip), %rcx     # 0x37e6b8
leaq 0xe14bc(%rip), %r8      # 0x37e460
movl $0x11d, %r9d            # imm = 0x11D
jmp 0x29cfd8
movq 0x19afb5(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x48056(%rip), %rsi     # 0x2e5013
leaq 0xa9984(%rip), %rdx     # 0x346948
leaq 0xe1a17(%rip), %rcx     # 0x37e9e2
leaq 0xe148e(%rip), %r8      # 0x37e460
movl $0x106, %r9d            # imm = 0x106
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_is_member
bool gt_intset_16_is_member(GtIntset *intset, GtUword elem)
{
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  if (elem <= members->maxelement)
  {
    const GtUword sectionnum = GT_ELEM2SECTION_M(elem);

    if (sectionstart[sectionnum] < sectionstart[sectionnum+1]) {
      return gt_intset_16_binarysearch_is_member(
                           intset_16->elements + sectionstart[sectionnum],
                           intset_16->elements + sectionstart[sectionnum+1] - 1,
                           (uint64_t) elem);
    }
  }
  return false;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
cmpq %rbx, 0x18(%rdx)
jb 0x29d079
movb 0x8(%rdx), %cl
movq %rbx, %rsi
shrq %cl, %rsi
movq (%rdx), %rdx
movq (%rdx,%rsi,8), %rcx
movq 0x8(%rdx,%rsi,8), %rdx
cmpq %rdx, %rcx
jae 0x29d079
movq 0x10(%rax), %rax
leaq (%rax,%rcx,2), %rcx
leaq (%rax,%rdx,2), %rsi
movq %rsi, %rdx
addq $-0x2, %rdx
cmpq %rdx, %rcx
setbe %al
ja 0x29d07b
movq %rdx, %rsi
subq %rcx, %rsi
sarq $0x2, %rsi
leaq (%rcx,%rsi,2), %rsi
cmpw %bx, (%rsi)
ja 0x29d04c
jae 0x29d07b
addq $0x2, %rsi
movq %rsi, %rcx
jmp 0x29d053
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_get_idx_smallest_geq
GtUword gt_intset_16_get_idx_smallest_geq(GtIntset *intset, GtUword value)
{
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;

  GtUword sectionnum = GT_ELEM2SECTION_M(value);

  if (value > members->previouselem)
    return members->num_of_elems;

  gt_assert(value <= members->maxelement);

  if (members->sectionstart[sectionnum] < members->sectionstart[sectionnum+1]) {
    return members->sectionstart[sectionnum] +
           gt_intset_16_binarysearch_idx_sm_geq(
                  intset_16->elements + members->sectionstart[sectionnum],
                  intset_16->elements + members->sectionstart[sectionnum+1] - 1,
                  (uint16_t) value);
  }
  return members->sectionstart[sectionnum];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
movb 0x8(%rdx), %cl
movq %rbx, %rsi
shrq %cl, %rsi
cmpq %rbx, 0x38(%rdx)
jae 0x29d0b9
movq 0x28(%rdx), %rax
jmp 0x29d13d
cmpq %rbx, 0x18(%rdx)
jb 0x29d145
movq %rax, %rcx
movq (%rdx), %rdx
movq (%rdx,%rsi,8), %rax
movq 0x8(%rdx,%rsi,8), %rsi
cmpq %rsi, %rax
jae 0x29d13d
movq 0x10(%rcx), %rcx
leaq (%rcx,%rax,2), %rdx
leaq (%rcx,%rsi,2), %rcx
addq $-0x2, %rcx
cmpq %rcx, %rdx
ja 0x29d173
cmpw %bx, (%rdx)
jae 0x29d105
cmpw %bx, (%rcx)
jae 0x29d109
subq %rdx, %rcx
sarq %rcx
incq %rcx
jmp 0x29d13a
xorl %ecx, %ecx
jmp 0x29d13a
movq %rdx, %rsi
cmpq %rcx, %rsi
jae 0x29d131
movq %rcx, %rdi
subq %rsi, %rdi
sarq $0x2, %rdi
cmpw %bx, (%rsi,%rdi,2)
jb 0x29d127
leaq (%rsi,%rdi,2), %rcx
jmp 0x29d10c
leaq (%rsi,%rdi,2), %rsi
addq $0x2, %rsi
jmp 0x29d10c
subq %rdx, %rsi
sarq %rsi
movq %rsi, %rcx
addq %rcx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19ae1c(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47ebd(%rip), %rsi     # 0x2e5013
leaq 0xe156c(%rip), %rdx     # 0x37e6c9
leaq 0xe1582(%rip), %rcx     # 0x37e6e6
leaq 0xe12f5(%rip), %r8      # 0x37e460
movl $0x19b, %r9d            # imm = 0x19B
jmp 0x29d19f
movq 0x19adee(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47e8f(%rip), %rsi     # 0x2e5013
leaq 0xe1885(%rip), %rdx     # 0x37ea10
leaq 0xe1892(%rip), %rcx     # 0x37ea24
leaq 0xe12c7(%rip), %r8      # 0x37e460
movl $0x16b, %r9d            # imm = 0x16B
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_get_test
static GtUword gt_intset_16_get_test(GtIntset *intset, GtUword idx)
{
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  gt_assert(idx < members->nextfree);

  return (gt_intset_16_sec_idx_largest_leq(sectionstart, idx) <<
         members->logsectionsize) + intset_16->elements[idx];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rcx
cmpq %rbx, 0x20(%rcx)
jbe 0x29d7bd
movq (%rcx), %rsi
pushq $-0x2
popq %rdx
movq %rdx, %rdi
incq %rdx
cmpq %rbx, 0x10(%rsi,%rdi,8)
jbe 0x29d797
movb 0x8(%rcx), %cl
shlq %cl, %rdx
movq 0x10(%rax), %rax
movzwl (%rax,%rbx,2), %eax
addq %rdx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19a7a4(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47845(%rip), %rsi     # 0x2e5013
leaq 0xe0ecb(%rip), %rdx     # 0x37e6a0
leaq 0xe126d(%rip), %rcx     # 0x37ea49
leaq 0xe0c7d(%rip), %r8      # 0x37e460
movl $0x111, %r9d            # imm = 0x111
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_16.c
// Function: gt_intset_16_get_idx_smallest_geq_test
static GtUword gt_intset_16_get_idx_smallest_geq_test(GtIntset *intset,
                                                     GtUword value)
{
  GtIntset16 *intset_16 = gt_intset_16_cast(intset);
  GtIntsetMembers *members = intset->members;

  GtUword sectionnum = GT_ELEM2SECTION_M(value);

  if (value > members->previouselem)
    return members->num_of_elems;

  gt_assert(value <= members->maxelement);
  if (members->sectionstart[sectionnum] < members->sectionstart[sectionnum+1]) {
    return members->sectionstart[sectionnum] +
           gt_intset_16_idx_sm_geq(
                  intset_16->elements + members->sectionstart[sectionnum],
                  intset_16->elements + members->sectionstart[sectionnum+1] - 1,
                  (uint16_t) value);
  }
  return members->sectionstart[sectionnum];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29c8a1
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
movb 0x8(%rdx), %cl
movq %rbx, %rsi
shrq %cl, %rsi
cmpq %rbx, 0x38(%rdx)
jae 0x29d828
movq 0x28(%rdx), %rax
jmp 0x29d883
cmpq %rbx, 0x18(%rdx)
jb 0x29d88b
movq %rax, %rcx
movq (%rdx), %rdx
movq (%rdx,%rsi,8), %rax
movq 0x8(%rdx,%rsi,8), %rsi
cmpq %rsi, %rax
jae 0x29d883
movq 0x10(%rcx), %rcx
cmpw %bx, (%rcx,%rax,2)
jbe 0x29d850
xorl %ecx, %ecx
jmp 0x29d880
leaq (%rcx,%rax,2), %rdx
leaq (%rcx,%rsi,2), %rcx
addq $-0x2, %rcx
cmpw %bx, (%rcx)
jae 0x29d86c
subq %rdx, %rcx
sarq %rcx
incq %rcx
jmp 0x29d880
pushq $-0x2
popq %rcx
movq %rcx, %rsi
addq $0x2, %rcx
cmpw %bx, 0x2(%rdx,%rsi)
jb 0x29d86f
sarq %rcx
addq %rcx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x19a6d6(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47777(%rip), %rsi     # 0x2e5013
leaq 0xe0e26(%rip), %rdx     # 0x37e6c9
leaq 0xe11b5(%rip), %rcx     # 0x37ea5f
leaq 0xe0baf(%rip), %r8      # 0x37e460
movl $0x186, %r9d            # imm = 0x186
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nop
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_new
GtIntset* gt_intset_32_new(GtUword maxelement, GtUword num_of_elems)
{
  GtIntset *intset;
  GtIntset32 *intset_32;
  GtIntsetMembers *members;
  GtUword idx;

  gt_assert(num_of_elems != 0);

  intset = gt_intset_create(gt_intset_32_class());
  intset_32 = gt_intset_32_cast(intset);
  members = intset->members;

  members->currentsectionnum = 0;
  members->maxelement = maxelement;
  members->nextfree = 0;
  members->num_of_elems = num_of_elems;
  members->previouselem = ULONG_MAX;
  members->refcount = 0;

  members->logsectionsize = GT_BITS_FOR_TYPE(uint32_t);
  members->numofsections = GT_ELEM2SECTION_M(maxelement) + 1;

  intset_32->elements =
    gt_malloc(sizeof (*intset_32->elements) * num_of_elems);

  members->sectionstart = gt_malloc(sizeof (*members->sectionstart) *
                                    (members->numofsections + 1));

  members->sectionstart[0] = 0;
  for (idx = (GtUword) 1; idx <= members->numofsections; idx++) {
    members->sectionstart[idx] = num_of_elems;
  }
  return intset;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
testq %rsi, %rsi
je 0x29d98f
movq %rsi, %rbx
movq %rdi, %r15
callq 0x29d9c5
movq %rax, %rdi
callq 0xf349c
movq %rax, %r14
callq 0x29d9c5
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq %rax, %r12
movq 0x8(%r14), %r13
andq $0x0, 0x10(%r13)
movq %r15, 0x18(%r13)
andq $0x0, 0x20(%r13)
movq %rbx, 0x28(%r13)
orq $-0x1, 0x38(%r13)
andq $0x0, 0x40(%r13)
movq $0x20, 0x8(%r13)
shrq $0x20, %r15
incq %r15
movq %r15, 0x30(%r13)
leaq (,%rbx,4), %rdi
leaq 0xe1156(%rip), %r15     # 0x37ea97
pushq $0x4c
popq %rdx
movq %r15, %rsi
callq 0x93160
movq %rax, 0x10(%r12)
movq 0x30(%r13), %rax
leaq 0x8(,%rax,8), %rdi
pushq $0x4f
popq %rdx
movq %r15, %rsi
callq 0x93160
movq %rax, (%r13)
andq $0x0, (%rax)
pushq $0x1
popq %rcx
cmpq 0x30(%r13), %rcx
ja 0x29d982
movq %rbx, (%rax,%rcx,8)
incq %rcx
jmp 0x29d973
movq %r14, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
movq 0x19a5d2(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47673(%rip), %rsi     # 0x2e5013
leaq 0xe0a96(%rip), %rdx     # 0x37e43d
leaq 0xe10d8(%rip), %rcx     # 0x37ea86
leaq 0xe10e2(%rip), %r8      # 0x37ea97
pushq $0x3b
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_class
const GtIntsetClass* gt_intset_32_class(void)
{
  static const GtIntsetClass *this_c = NULL;
  if (this_c == NULL) {
    this_c = gt_intset_class_new(sizeof (GtIntset32),
                                 gt_intset_32_add,
                                 gt_intset_32_file_is_type,
                                 gt_intset_32_get,
                                 gt_intset_32_io,
                                 gt_intset_32_get_idx_smallest_geq,
                                 gt_intset_32_is_member,
                                 gt_intset_32_size_of_rep,
                                 gt_intset_32_size,
                                 gt_intset_32_size_of_struct,
                                 gt_intset_32_write,
                                 gt_intset_32_delete);
  }
  return this_c;
}

// Assembly:
movq 0x1a05d4(%rip), %rax    # 0x43dfa0
testq %rax, %rax
je 0x29d9d2
retq
pushq %r15
pushq %r14
pushq %rbx
leaq 0x265(%rip), %rax       # 0x29dc43
leaq 0x38e(%rip), %r10       # 0x29dd73
leaq 0x8f1(%rip), %r11       # 0x29e2dd
leaq 0x714(%rip), %rbx       # 0x29e107
leaq 0x8d2(%rip), %r14       # 0x29e2cc
leaq 0x724(%rip), %r15       # 0x29e125
leaq 0x43b(%rip), %rsi       # 0x29de43
leaq 0x8d4(%rip), %rdx       # 0x29e2e3
leaq 0x5dc(%rip), %rcx       # 0x29dff2
leaq 0x257(%rip), %r8        # 0x29dc74
leaq 0x781(%rip), %r9        # 0x29e1a5
pushq $0x18
popq %rdi
pushq %rax
pushq %r10
pushq %r11
pushq %rbx
pushq %r14
pushq %r15
callq 0xf39c3
addq $0x30, %rsp
movq %rax, 0x1a055f(%rip)    # 0x43dfa0
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_io
GtIntset *gt_intset_32_io(GtIntset *intset, FILE *fp, GtError *err)
{
  GtIntset32 *intset_32;
  if (intset == NULL) {
    intset = gt_intset_create(gt_intset_32_class());
    intset->members->sectionstart = NULL;
    intset->members->refcount = 0;
    intset_32 = gt_intset_32_cast(intset);
    intset_32->elements = NULL;
    intset = gt_intset_32_io_fp(intset, fp, err, gt_io_error_fread);
  }
  else {
    intset = gt_intset_32_io_fp(intset, fp, err, gt_io_error_fwrite);
  }
  return intset;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
testq %rdi, %rdi
je 0x29dc8d
leaq -0x1a9ddb(%rip), %rcx   # 0xf3eb0
jmp 0x29dcc9
callq 0x29d9c5
movq %rax, %rdi
callq 0xf349c
movq %rax, %r15
movq 0x8(%rax), %rax
andq $0x0, (%rax)
andq $0x0, 0x40(%rax)
callq 0x29d9c5
movq %rax, %rdi
movq %r15, %rsi
callq 0xf3576
andq $0x0, 0x10(%rax)
leaq -0x1a9dd9(%rip), %rcx   # 0xf3eed
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x29da47
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_write
GtIntset *gt_intset_32_write(GtIntset *intset, FILE *fp, GtError *err)
{
  gt_assert(intset != NULL);
  gt_assert(fp != NULL);
  gt_error_check(err);
  return gt_intset_32_io(intset, fp, err);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x29ddaf
movq %rsi, %r14
testq %rsi, %rsi
je 0x29dddd
movq %rdx, %rbx
movq %rdi, %r15
testq %rdx, %rdx
je 0x29dd9c
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x29de0b
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x29dc74
movq 0x19a1b2(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47253(%rip), %rsi     # 0x2e5013
leaq 0x8736a(%rip), %rdx     # 0x325131
leaq 0xe0d4a(%rip), %rcx     # 0x37eb18
leaq 0xe0cc2(%rip), %r8      # 0x37ea97
movl $0xcd, %r9d
jmp 0x29de37
movq 0x19a184(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x47225(%rip), %rsi     # 0x2e5013
leaq 0x7b4bb(%rip), %rdx     # 0x3192b0
leaq 0xe0d1c(%rip), %rcx     # 0x37eb18
leaq 0xe0c94(%rip), %r8      # 0x37ea97
movl $0xce, %r9d
jmp 0x29de37
movq 0x19a156(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x471f7(%rip), %rsi     # 0x2e5013
leaq 0x4739c(%rip), %rdx     # 0x2e51bf
leaq 0xe0cee(%rip), %rcx     # 0x37eb18
leaq 0xe0c66(%rip), %r8      # 0x37ea97
movl $0xcf, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_get
GtUword gt_intset_32_get(GtIntset *intset, GtUword idx)
{
  GtUword quotient;
  GtIntset32 *intset_32 = gt_intset_32_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  gt_assert(idx < members->nextfree);

  quotient = gt_intset_32_binarysearch_sec_idx_largest_leq(
                                      sectionstart,
                                      sectionstart + members->numofsections - 1,
                                      idx);
  return (quotient << members->logsectionsize) +
         intset_32->elements[idx];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29d9c5
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rcx
cmpq %rbx, 0x20(%rcx)
jbe 0x29e0a1
movq (%rcx), %rsi
movq 0x30(%rcx), %rdx
leaq (%rsi,%rdx,8), %rdi
addq $-0x8, %rdi
xorl %edx, %edx
cmpq %rbx, (%rsi)
cmovbeq %rsi, %rdx
movq %rsi, %r8
cmpq %rdi, %r8
jae 0x29e062
movq %rdi, %r9
subq %r8, %r9
sarq $0x4, %r9
cmpq %rbx, (%r8,%r9,8)
jb 0x29e054
leaq (%r8,%r9,8), %rdi
addq $-0x8, %rdi
jmp 0x29e035
leaq (%r8,%r9,8), %rdx
leaq (%r8,%r9,8), %r8
addq $0x8, %r8
jmp 0x29e035
testq %rdx, %rdx
je 0x29e0cf
movq %rdx, %rdi
subq %rsi, %rdi
addq $-0x8, %rdi
addq $0x8, %rdx
addq $0x8, %rdi
leaq 0x8(%rdx), %rsi
cmpq %rbx, (%rdx)
movq %rsi, %rdx
jbe 0x29e075
sarq $0x3, %rdi
movb 0x8(%rcx), %cl
shlq %cl, %rdi
movq 0x10(%rax), %rax
movl (%rax,%rbx,4), %eax
addq %rdi, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x199ec0(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x46f61(%rip), %rsi     # 0x2e5013
leaq 0xe05e7(%rip), %rdx     # 0x37e6a0
leaq 0xe0a7c(%rip), %rcx     # 0x37eb3c
leaq 0xe09d0(%rip), %r8      # 0x37ea97
movl $0x11d, %r9d            # imm = 0x11D
jmp 0x29e0fb
movq 0x199e92(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x46f33(%rip), %rsi     # 0x2e5013
leaq 0xa8861(%rip), %rdx     # 0x346948
leaq 0xe0d5b(%rip), %rcx     # 0x37ee49
leaq 0xe09a2(%rip), %r8      # 0x37ea97
movl $0x106, %r9d            # imm = 0x106
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_is_member
bool gt_intset_32_is_member(GtIntset *intset, GtUword elem)
{
  GtIntset32 *intset_32 = gt_intset_32_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  if (elem <= members->maxelement)
  {
    const GtUword sectionnum = GT_ELEM2SECTION_M(elem);

    if (sectionstart[sectionnum] < sectionstart[sectionnum+1]) {
      return gt_intset_32_binarysearch_is_member(
                           intset_32->elements + sectionstart[sectionnum],
                           intset_32->elements + sectionstart[sectionnum+1] - 1,
                           (uint64_t) elem);
    }
  }
  return false;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29d9c5
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
cmpq %rbx, 0x18(%rdx)
jb 0x29e19b
movb 0x8(%rdx), %cl
movq %rbx, %rsi
shrq %cl, %rsi
movq (%rdx), %rdx
movq (%rdx,%rsi,8), %rcx
movq 0x8(%rdx,%rsi,8), %rdx
cmpq %rdx, %rcx
jae 0x29e19b
movq 0x10(%rax), %rax
leaq (%rax,%rcx,4), %rcx
leaq (%rax,%rdx,4), %rsi
movq %rsi, %rdx
addq $-0x4, %rdx
cmpq %rdx, %rcx
setbe %al
ja 0x29e19d
movq %rdx, %rsi
subq %rcx, %rsi
sarq $0x3, %rsi
leaq (%rcx,%rsi,4), %rsi
cmpl %ebx, (%rsi)
ja 0x29e16f
jae 0x29e19d
addq $0x4, %rsi
movq %rsi, %rcx
jmp 0x29e176
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_get_idx_smallest_geq
GtUword gt_intset_32_get_idx_smallest_geq(GtIntset *intset, GtUword value)
{
  GtIntset32 *intset_32 = gt_intset_32_cast(intset);
  GtIntsetMembers *members = intset->members;

  GtUword sectionnum = GT_ELEM2SECTION_M(value);

  if (value > members->previouselem)
    return members->num_of_elems;

  gt_assert(value <= members->maxelement);

  if (members->sectionstart[sectionnum] < members->sectionstart[sectionnum+1]) {
    return members->sectionstart[sectionnum] +
           gt_intset_32_binarysearch_idx_sm_geq(
                  intset_32->elements + members->sectionstart[sectionnum],
                  intset_32->elements + members->sectionstart[sectionnum+1] - 1,
                  (uint32_t) value);
  }
  return members->sectionstart[sectionnum];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29d9c5
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rdx
movb 0x8(%rdx), %cl
movq %rbx, %rsi
shrq %cl, %rsi
cmpq %rbx, 0x38(%rdx)
jae 0x29e1db
movq 0x28(%rdx), %rax
jmp 0x29e25e
cmpq %rbx, 0x18(%rdx)
jb 0x29e266
movq %rax, %rcx
movq (%rdx), %rdx
movq (%rdx,%rsi,8), %rax
movq 0x8(%rdx,%rsi,8), %rsi
cmpq %rsi, %rax
jae 0x29e25e
movq 0x10(%rcx), %rcx
leaq (%rcx,%rax,4), %rdx
leaq (%rcx,%rsi,4), %rcx
addq $-0x4, %rcx
cmpq %rcx, %rdx
ja 0x29e294
cmpl %ebx, (%rdx)
jae 0x29e226
cmpl %ebx, (%rcx)
jae 0x29e22a
subq %rdx, %rcx
sarq $0x2, %rcx
incq %rcx
jmp 0x29e25b
xorl %ecx, %ecx
jmp 0x29e25b
movq %rdx, %rsi
cmpq %rcx, %rsi
jae 0x29e251
movq %rcx, %rdi
subq %rsi, %rdi
sarq $0x3, %rdi
cmpl %ebx, (%rsi,%rdi,4)
jb 0x29e247
leaq (%rsi,%rdi,4), %rcx
jmp 0x29e22d
leaq (%rsi,%rdi,4), %rsi
addq $0x4, %rsi
jmp 0x29e22d
subq %rdx, %rsi
sarq $0x2, %rsi
movq %rsi, %rcx
addq %rcx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x199cfb(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x46d9c(%rip), %rsi     # 0x2e5013
leaq 0xe044b(%rip), %rdx     # 0x37e6c9
leaq 0xe08c8(%rip), %rcx     # 0x37eb4d
leaq 0xe080b(%rip), %r8      # 0x37ea97
movl $0x19b, %r9d            # imm = 0x19B
jmp 0x29e2c0
movq 0x199ccd(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x46d6e(%rip), %rsi     # 0x2e5013
leaq 0xe0764(%rip), %rdx     # 0x37ea10
leaq 0xe0bc4(%rip), %rcx     # 0x37ee77
leaq 0xe07dd(%rip), %r8      # 0x37ea97
movl $0x16b, %r9d            # imm = 0x16B
xorl %eax, %eax
callq 0x17a50
callq 0x17390
// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/extended/intset_32.c
// Function: gt_intset_32_get_test
static GtUword gt_intset_32_get_test(GtIntset *intset, GtUword idx)
{
  GtIntset32 *intset_32 = gt_intset_32_cast(intset);
  GtIntsetMembers *members = intset->members;
  GtUword *sectionstart = members->sectionstart;
  gt_assert(idx < members->nextfree);

  return (gt_intset_32_sec_idx_largest_leq(sectionstart, idx) <<
         members->logsectionsize) + intset_32->elements[idx];
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x29d9c5
movq %rax, %rdi
movq %r14, %rsi
callq 0xf3576
movq 0x8(%r14), %rcx
cmpq %rbx, 0x20(%rcx)
jbe 0x29e8dc
movq (%rcx), %rsi
pushq $-0x2
popq %rdx
movq %rdx, %rdi
incq %rdx
cmpq %rbx, 0x10(%rsi,%rdi,8)
jbe 0x29e8b7
movb 0x8(%rcx), %cl
shlq %cl, %rdx
movq 0x10(%rax), %rax
movl (%rax,%rbx,4), %eax
addq %rdx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq 0x199685(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x46726(%rip), %rsi     # 0x2e5013
leaq 0xdfdac(%rip), %rdx     # 0x37e6a0
leaq 0xe05a1(%rip), %rcx     # 0x37ee9c
leaq 0xe0195(%rip), %r8      # 0x37ea97
movl $0x111, %r9d            # imm = 0x111
xorl %eax, %eax
callq 0x17a50
callq 0x17390