LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: gt_md5set_new
GtMD5Set *gt_md5set_new(GtUword nof_elements)
{
  GtMD5Set *md5set;
  md5set = gt_malloc(sizeof (GtMD5Set));
  md5set->fill = 0;
  md5set->alloc = 0;
  md5set->table = NULL;
  md5set_alloc_table(md5set,
                     md5set_get_size(nof_elements + (nof_elements >> 2)));
  gt_assert(nof_elements < md5set->maxfill);
  md5set->buffer = NULL;
  md5set->bufsize = 0;
  return md5set;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x30, %edi
leaq 0x3acc64(%rip), %rsi    # 0x55a229
movl $0xc7, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
shrq $0x2, %rax
addq %rax, %rdi
callq 0x1ad7c0
movq (%rsp), %rdi
movq %rax, %rsi
callq 0x1ad6a0
movq 0x10(%rsp), %rax
movq 0x8(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jb 0x1ad66d
movq 0x48e964(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3689cd(%rip), %rsi    # 0x516013
leaq 0x3acbf2(%rip), %rdx    # 0x55a23f
leaq 0x3acc0a(%rip), %rcx    # 0x55a25e
leaq 0x3acbce(%rip), %r8     # 0x55a229
movl $0xcd, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ad66f
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_alloc_table
static void md5set_alloc_table(GtMD5Set *set, GtUword newsize)
{
  md5_t *oldtable;
  GtUword oldsize;

  oldsize = set->alloc;
  oldtable = set->table;
  set->alloc = newsize;
  set->maxfill =
    (GtUword)((double)newsize * MD5SET_MAX_LOAD_FACTOR);
  set->table = gt_calloc((size_t)newsize, sizeof (md5_t));
  if (oldtable != NULL) {
    gt_log_log("rehashing " GT_WU " elements; old size: " GT_WU ", new size: "
               GT_WU "\n", set->fill, oldsize, newsize);
    md5set_rehash(set, oldtable, oldsize);
    gt_free(oldtable);
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movaps 0x36b252(%rip), %xmm1   # 0x518930
movq 0x18(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x36b250(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x371b51(%rip), %xmm1   # 0x51f258
mulsd %xmm1, %xmm0
movaps %xmm0, %xmm1
cvttsd2si %xmm1, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
movsd 0x36b64e(%rip), %xmm1   # 0x518d70
subsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
andq %rdx, %rax
orq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x18(%rsp), %rdi
movl $0x10, %esi
leaq 0x3acade(%rip), %rdx    # 0x55a229
movl $0xbb, %ecx
callq 0xe83c0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
cmpq $0x0, 0x10(%rsp)
je 0x1ad7b3
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rsi
movq 0x8(%rsp), %rdx
movq 0x18(%rsp), %rcx
leaq 0x3acb1f(%rip), %rdi    # 0x55a2a1
movb $0x0, %al
callq 0xe7740
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x1adf10
movq 0x10(%rsp), %rdi
leaq 0x3aca80(%rip), %rsi    # 0x55a229
movl $0xc0, %edx
callq 0xe88c0
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_get_size
static GtUword md5set_get_size(GtUword n)
{
  GtUint64 u, l, i, k, k_i;

  k = (GtUint64)n;
  if (k > GT_MD5SET_LARGEST_PRIME) {
    fprintf(stderr, MD5SET_TOO_LARGE, k);
    exit(1);
  }
  if (k < gt_md5set_primes[0])
    return (GtUword)gt_md5set_primes[0];
  l = 0;
  u = GT_MD5SET_NOFPRIMES - 1;
  do {
    i = (l + u) >> 1;
    gt_assert(u >= l);
    if (u - l == 1) {
      return (gt_md5set_primes[l] == k)
          ? (GtUword)k
          : (GtUword)gt_md5set_primes[u];
    }
    k_i = gt_md5set_primes[i];
    if (k < k_i) {
      u = i;
    }
    else if (k > k_i) {
      l = i;
    }
    else {
      return (GtUword)k_i;
    }
  } while (1);
  return 0;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x18(%rsp)
movabsq $0x7fc0002763, %rax     # imm = 0x7FC0002763
cmpq %rax, 0x18(%rsp)
jbe 0x1ad80b
movq 0x48e7b5(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
movq 0x18(%rsp), %rdx
leaq 0x3acadd(%rip), %rsi    # 0x55a2d7
movb $0x0, %al
callq 0x199f0
movl $0x1, %edi
callq 0x19890
movq 0x18(%rsp), %rax
cmpq 0x3acbc9(%rip), %rax    # 0x55a3e0
jae 0x1ad82a
movq 0x3acbc0(%rip), %rax    # 0x55a3e0
movq %rax, 0x40(%rsp)
jmp 0x1ad952
movq $0x0, 0x28(%rsp)
movq $0x97f, 0x30(%rsp)      # imm = 0x97F
movq 0x28(%rsp), %rax
addq 0x30(%rsp), %rax
shrq %rax
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
cmpq 0x28(%rsp), %rax
jae 0x1ad892
movq 0x48e73f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3687a8(%rip), %rsi    # 0x516013
leaq 0x3acae5(%rip), %rdx    # 0x55a357
leaq 0x3acae5(%rip), %rcx    # 0x55a35e
leaq 0x3ac9a9(%rip), %r8     # 0x55a229
movl $0x3e, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ad894
movq 0x30(%rsp), %rax
subq 0x28(%rsp), %rax
cmpq $0x1, %rax
jne 0x1ad8e8
movq 0x28(%rsp), %rcx
leaq 0x3acb30(%rip), %rax    # 0x55a3e0
movq (%rax,%rcx,8), %rax
cmpq 0x18(%rsp), %rax
jne 0x1ad8c7
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x1ad8dc
movq 0x30(%rsp), %rcx
leaq 0x3acb0d(%rip), %rax    # 0x55a3e0
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x1ad952
movq 0x20(%rsp), %rcx
leaq 0x3acaec(%rip), %rax    # 0x55a3e0
movq (%rax,%rcx,8), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x1ad915
movq 0x20(%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x1ad93b
movq 0x18(%rsp), %rax
cmpq 0x10(%rsp), %rax
jbe 0x1ad92d
movq 0x20(%rsp), %rax
movq %rax, 0x28(%rsp)
jmp 0x1ad939
movq 0x10(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x1ad952
jmp 0x1ad93b
jmp 0x1ad93d
movb $0x1, %al
testb $0x1, %al
jne 0x1ad83c
jmp 0x1ad949
movq $0x0, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: gt_md5set_delete
void gt_md5set_delete(GtMD5Set *set)
{
  if (set != NULL) {
    gt_free(set->table);
    gt_free(set->buffer);
    gt_free(set);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x1ad9b2
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x3ac8af(%rip), %rsi    # 0x55a229
movl $0xd6, %edx
callq 0xe88c0
movq (%rsp), %rax
movq 0x20(%rax), %rdi
leaq 0x3ac896(%rip), %rsi    # 0x55a229
movl $0xd7, %edx
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x3ac881(%rip), %rsi    # 0x55a229
movl $0xd8, %edx
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_prepare_buffer
static void md5set_prepare_buffer(GtMD5Set *md5set, GtUword bufsize)
{
  gt_assert(md5set != NULL);

  if (md5set->buffer == NULL) {
    md5set->buffer = gt_malloc(sizeof (char) * bufsize);
    md5set->bufsize = bufsize;
  }
  else if (md5set->bufsize < bufsize) {
    md5set->buffer = gt_realloc(md5set->buffer, sizeof (char) * bufsize);
    md5set->bufsize = bufsize;
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1adcbe
movq 0x48e313(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x36837c(%rip), %rsi    # 0x516013
leaq 0x3ac6d0(%rip), %rdx    # 0x55a36e
leaq 0x3ac6d8(%rip), %rcx    # 0x55a37d
leaq 0x3ac57d(%rip), %r8     # 0x55a229
movl $0xde, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1adcc0
movq 0x10(%rsp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x1add02
movq 0x8(%rsp), %rdi
shlq $0x0, %rdi
leaq 0x3ac54d(%rip), %rsi    # 0x55a229
movl $0xe1, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
jmp 0x1add51
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rax
cmpq 0x8(%rsp), %rax
jae 0x1add4f
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x8(%rsp), %rsi
shlq $0x0, %rsi
leaq 0x3ac4fe(%rip), %rdx    # 0x55a229
movl $0xe5, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
jmp 0x1add51
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_search
static bool md5set_search(GtMD5Set *set, md5_t k, bool insert_if_not_found)
{
  GtUword i, c;
#ifndef NDEBUG
  GtUword first_i;
#endif
  enum MD5SetSearchResult retval;

  i = (GtUword) MD5SET_H1(k, set->alloc);
  retval = md5set_search_pos(set, k, insert_if_not_found, i);
  if (retval != GT_MD5SET_COLLISION)
    return retval == GT_MD5SET_EMPTY ? false : true;

  /* open addressing by double hashing */
  c = (GtUword) MD5SET_H2(k, set->alloc);
  gt_assert(c > 0);
#ifndef NDEBUG
  first_i = i;
#endif
  while (1) {
    i = (i + c) % set->alloc;
    gt_assert(i != first_i);
    retval = md5set_search_pos(set, k, insert_if_not_found, i);
    if (retval != GT_MD5SET_COLLISION)
      return retval == GT_MD5SET_EMPTY ? false : true;
  }
}

// Assembly:
subq $0x48, %rsp
movb %cl, %al
movq %rsi, 0x30(%rsp)
movq %rdx, 0x38(%rsp)
movq %rdi, 0x28(%rsp)
andb $0x1, %al
movb %al, 0x27(%rsp)
movq 0x30(%rsp), %rax
movq 0x28(%rsp), %rcx
xorl %edx, %edx
divq 0x8(%rcx)
movq %rdx, 0x18(%rsp)
movq 0x28(%rsp), %rdi
movb 0x27(%rsp), %al
movq 0x18(%rsp), %r8
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
andb $0x1, %al
movzbl %al, %ecx
callq 0x1adfc0
movl %eax, 0x4(%rsp)
cmpl $0x2, 0x4(%rsp)
je 0x1adddf
movl 0x4(%rsp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovel %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x1adefc
movq 0x38(%rsp), %rax
movq 0x28(%rsp), %rcx
movq 0x8(%rcx), %rcx
subq $0x1, %rcx
xorl %edx, %edx
divq %rcx
addq $0x1, %rdx
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
ja 0x1ade3f
movq 0x48e192(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3681fb(%rip), %rsi    # 0x516013
leaq 0x3defbc(%rip), %rdx    # 0x58cddb
leaq 0x3ac56d(%rip), %rcx    # 0x55a393
leaq 0x3ac3fc(%rip), %r8     # 0x55a229
movl $0x99, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ade41
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
addq 0x10(%rsp), %rax
movq 0x28(%rsp), %rcx
xorl %edx, %edx
divq 0x8(%rcx)
movq %rdx, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x8(%rsp), %rax
jne 0x1adea9
movq 0x48e128(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x368191(%rip), %rsi    # 0x516013
leaq 0x3ac518(%rip), %rdx    # 0x55a3a1
leaq 0x3ac503(%rip), %rcx    # 0x55a393
leaq 0x3ac392(%rip), %r8     # 0x55a229
movl $0x9f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1adeab
movq 0x28(%rsp), %rdi
movb 0x27(%rsp), %al
movq 0x18(%rsp), %r8
movq 0x30(%rsp), %rsi
movq 0x38(%rsp), %rdx
andb $0x1, %al
movzbl %al, %ecx
callq 0x1adfc0
movl %eax, 0x4(%rsp)
cmpl $0x2, 0x4(%rsp)
je 0x1adef7
movl 0x4(%rsp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovel %ecx, %eax
cmpl $0x0, %eax
setne %al
andb $0x1, %al
movb %al, 0x47(%rsp)
jmp 0x1adefc
jmp 0x1ade4b
movb 0x47(%rsp), %al
andb $0x1, %al
addq $0x48, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_rehash
static void md5set_rehash(GtMD5Set *set, md5_t *oldtable, GtUword oldsize)
{
  GtUword i;
  set->fill = 0;
  for (i = 0; i < oldsize; i++)
    if (!MD5_T_IS_EMPTY(oldtable[i]))
      (void) md5set_search(set, oldtable[i], true);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rsp), %rax
movq $0x0, 0x10(%rax)
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x1adfad
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x1adf74
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
je 0x1adf9b
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movl $0x1, %ecx
callq 0x1add60
jmp 0x1adf9d
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x1adf39
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/md5set.c
// Function: md5set_search_pos
static inline enum MD5SetSearchResult md5set_search_pos(GtMD5Set *set,
                                                        md5_t k,
                                                        bool
                                                        insert_if_not_found,
                                                        GtUword i)
{
  if (MD5_T_IS_EMPTY(set->table[i])) {
    if (insert_if_not_found) {
      GT_MD5SET_PREPARE_INSERTION(set);
      set->table[i] = k;
    }
    return GT_MD5SET_EMPTY;
  }
  return (MD5_T_EQUAL(k, set->table[i]))
         ? GT_MD5SET_KEY_FOUND
         : GT_MD5SET_COLLISION;
}

// Assembly:
subq $0x48, %rsp
movb %cl, %al
movq %rsi, 0x30(%rsp)
movq %rdx, 0x38(%rsp)
movq %rdi, 0x28(%rsp)
andb $0x1, %al
movb %al, 0x27(%rsp)
movq %r8, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
jne 0x1ae0f5
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, 0x8(%rax)
jne 0x1ae0f5
testb $0x1, 0x27(%rsp)
je 0x1ae0eb
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0x1ae076
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdi
addq $0x1, %rdi
callq 0x1ad7c0
movq 0x10(%rsp), %rdi
movq %rax, %rsi
callq 0x1ad6a0
jmp 0x1ae078
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0x1ae0c4
movq 0x48df0d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367f76(%rip), %rsi    # 0x516013
leaq 0x3ac30a(%rip), %rdx    # 0x55a3ae
leaq 0x3ac321(%rip), %rcx    # 0x55a3cc
leaq 0x3ac177(%rip), %r8     # 0x55a229
movl $0x78, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ae0c6
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq 0x30(%rsp), %rcx
movq %rcx, (%rax)
movq 0x38(%rsp), %rcx
movq %rcx, 0x8(%rax)
movl $0x0, 0x44(%rsp)
jmp 0x1ae155
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %rax
movq (%rax), %rdx
movq 0x18(%rsp), %rax
shlq $0x4, %rax
addq %rax, %rdx
xorl %eax, %eax
cmpq (%rdx), %rcx
movb %al, 0xf(%rsp)
jne 0x1ae13d
movq 0x38(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rcx), %rcx
movq 0x18(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
cmpq 0x8(%rcx), %rax
sete %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %dl
movl $0x2, %eax
movl $0x1, %ecx
testb $0x1, %dl
cmovnel %ecx, %eax
movl %eax, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_feature_visitor.c
// Function: gt_merge_feature_visitor_class
const GtNodeVisitorClass* gt_merge_feature_visitor_class()
{
  static const GtNodeVisitorClass *nvc = NULL;
  gt_class_alloc_lock_enter();
  if (!nvc) {
    nvc = gt_node_visitor_class_new(sizeof (GtMergeFeatureVisitor),
                                    merge_feature_visitor_free,
                                    NULL,
                                    merge_feature_visitor_feature_node,
                                    NULL,
                                    NULL,
                                    NULL);
  }
  gt_class_alloc_lock_leave();
  return nvc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x494c9a(%rip)    # 0x642e38
jne 0x1ae1d2
movl $0x28, %edi
leaq 0x34(%rip), %rsi        # 0x1ae1e0
xorl %eax, %eax
movl %eax, %r9d
leaq 0xb8(%rip), %rcx        # 0x1ae270
movq %r9, %rdx
movq %r9, %r8
movq $0x0, (%rsp)
callq 0x1b2170
movq %rax, 0x494c66(%rip)    # 0x642e38
callq 0x9f280
movq 0x494c5a(%rip), %rax    # 0x642e38
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_feature_visitor.c
// Function: merge_feature_visitor_free
static void merge_feature_visitor_free(GtNodeVisitor *nv)
{
  GtMergeFeatureVisitor *merge_feature_visitor =
    gt_merge_feature_visitor_cast(nv);
  gt_assert(merge_feature_visitor);
  gt_hashmap_delete(merge_feature_visitor->hm);
  gt_array_delete(merge_feature_visitor->nodes_to_remove);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
callq 0x1ae190
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1ae240
movq 0x48dd91(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367dfa(%rip), %rsi    # 0x516013
leaq 0x3b0dc0(%rip), %rdx    # 0x55efe0
leaq 0x3b0dcf(%rip), %rcx    # 0x55eff6
leaq 0x3b0de3(%rip), %r8     # 0x55f011
movl $0x29, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ae242
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xe1770
movq 0x8(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81f80
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_feature_visitor.c
// Function: merge_feature_visitor_feature_node
static int merge_feature_visitor_feature_node(GtNodeVisitor *nv,
                                          GtFeatureNode *fn, GtError *err)
{
  GtMergeFeatureVisitor *v;
  GtFeatureNode *leaf;
  GtUword i;
  int had_err = 0;
  gt_error_check(err);
  v = gt_merge_feature_visitor_cast(nv);
  gt_array_reset(v->nodes_to_remove);
  had_err = gt_feature_node_traverse_children(fn, v, mergefeat_if_necessary,
                                              false, err);
  if (!had_err) {
    for (i = 0; i < gt_array_size(v->nodes_to_remove); i++) {
      leaf = *(GtFeatureNode**) gt_array_get(v->nodes_to_remove, i);
      gt_feature_node_remove_leaf(fn, leaf);
    }
  }
  return had_err;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movl $0x0, 0x14(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0x1ae2db
movq 0x30(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1ae2a3
jmp 0x1ae2db
movq 0x48dcf6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367d5f(%rip), %rsi    # 0x516013
leaq 0x367f04(%rip), %rdx    # 0x5161bf
leaq 0x3b0d74(%rip), %rcx    # 0x55f036
leaq 0x3b0d48(%rip), %r8     # 0x55f011
movl $0x65, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ae2dd
callq 0x1ae190
movq %rax, %rdi
movq 0x40(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x814a0
movq 0x38(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x30(%rsp), %r8
leaq 0xf8(%rip), %rdx        # 0x1ae410
xorl %ecx, %ecx
callq 0x16e2f0
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jne 0x1ae394
movq $0x0, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x1ae392
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rdi
movq 0x18(%rsp), %rsi
callq 0x80b60
movq (%rax), %rax
movq %rax, 0x20(%rsp)
movq 0x38(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0x16fd20
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x1ae333
jmp 0x1ae394
movl 0x14(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_feature_visitor.c
// Function: gt_merge_feature_visitor_new
GtNodeVisitor* gt_merge_feature_visitor_new(void)
{
  GtNodeVisitor *nv = gt_node_visitor_create(gt_merge_feature_visitor_class());
  GtMergeFeatureVisitor *mfv = gt_merge_feature_visitor_cast(nv);
  mfv->hm = gt_hashmap_new(GT_HASH_STRING, NULL, NULL);
  mfv->nodes_to_remove = gt_array_new(sizeof (GtFeatureNode*));
  return nv;
}

// Assembly:
subq $0x18, %rsp
callq 0x1ae190
movq %rax, %rdi
callq 0x1b22c0
movq %rax, 0x10(%rsp)
callq 0x1ae190
movq %rax, %rdi
movq 0x10(%rsp), %rsi
callq 0x1b2350
movq %rax, 0x8(%rsp)
movl $0x1, %edi
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0xe0c40
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movl $0x8, %edi
callq 0x80990
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_feature_visitor.c
// Function: mergefeat_if_necessary
static int mergefeat_if_necessary(GtFeatureNode *fn, void *data, GtError *err)
{
  GtMergeFeatureVisitor *v = (GtMergeFeatureVisitor*) data;
  gt_error_check(err);
  gt_assert(fn);
  v->current_tree = fn;
  gt_hashmap_reset(v->hm);
  return gt_feature_node_traverse_direct_children(fn, v, mergefeat_in_children,
                                                  err);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1ae47d
movq 0x10(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x1ae445
jmp 0x1ae47d
movq 0x48db54(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367bbd(%rip), %rsi    # 0x516013
leaq 0x367d62(%rip), %rdx    # 0x5161bf
leaq 0x3b0bf5(%rip), %rcx    # 0x55f059
leaq 0x3b0ba6(%rip), %r8     # 0x55f011
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ae47f
jmp 0x1ae481
cmpq $0x0, 0x20(%rsp)
jne 0x1ae4c1
movq 0x48db10(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367b79(%rip), %rsi    # 0x516013
leaq 0x404a4f(%rip), %rdx    # 0x5b2ef0
leaq 0x3b0bb1(%rip), %rcx    # 0x55f059
leaq 0x3b0b62(%rip), %r8     # 0x55f011
movl $0x57, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1ae4c3
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0xe1260
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rcx
leaq 0xb(%rip), %rdx         # 0x1ae500
callq 0x16f9f0
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_stream.c
// Function: gt_merge_stream_class
const GtNodeStreamClass* gt_merge_stream_class(void)
{
  static const GtNodeStreamClass *nsc = NULL;
  gt_class_alloc_lock_enter();
  if (!nsc) {
    nsc = gt_node_stream_class_new(sizeof (GtMergeStream),
                                   merge_stream_free,
                                   merge_stream_next);
  }
  gt_class_alloc_lock_leave();
  return nsc;
}

// Assembly:
pushq %rax
callq 0x9f220
cmpq $0x0, 0x494672(%rip)    # 0x642e40
jne 0x1ae7ef
movl $0x40, %edi
leaq 0x24(%rip), %rsi        # 0x1ae800
leaq 0x10d(%rip), %rdx       # 0x1ae8f0
callq 0x1b1ae0
movq %rax, 0x494651(%rip)    # 0x642e40
callq 0x9f280
movq 0x494645(%rip), %rax    # 0x642e40
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_stream.c
// Function: merge_stream_free
static void merge_stream_free(GtNodeStream *ns)
{
  GtMergeStream *ms = gt_merge_stream_cast(ns);
  GtUword i;
  for (i = 0; i < gt_array_size(ms->node_streams); i++) {
    if (ms->items[i].gn)
      gt_genome_node_delete(ms->items[i].gn);
    gt_node_stream_delete(*(GtNodeStream**) gt_array_get(ms->node_streams, i));
  }
  gt_array_delete(ms->node_streams);
  gt_free(ms->items);
  gt_priority_queue_delete(ms->pq);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
callq 0x1ae7c0
movq %rax, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b20f0
movq %rax, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x81370
movq %rax, %rcx
movq 0x8(%rsp), %rax
cmpq %rcx, %rax
jae 0x1ae8b4
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x1ae886
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x173180
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x80b60
movq (%rax), %rdi
callq 0x1b1cb0
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1ae829
movq 0x18(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x81f80
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rdi
leaq 0x3b0873(%rip), %rsi    # 0x55f145
movl $0xbb, %edx
callq 0xe88c0
movq 0x18(%rsp), %rax
movq 0x30(%rax), %rdi
callq 0x1b66c0
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_stream.c
// Function: gt_merge_stream_item_compare
static int gt_merge_stream_item_compare(const void *a, const void *b)
{
  GtMergeStreamItem *item1, *item2;
  gt_assert(a && b);
  item1 = (GtMergeStreamItem*) a;
  item2 = (GtMergeStreamItem*) b;
  gt_assert(item1->gn && item2->gn);
  return gt_genome_node_compare(&item1->gn, &item2->gn);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1aedae
cmpq $0x0, 0x18(%rsp)
jne 0x1aede6
movq 0x48d1eb(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x367254(%rip), %rsi    # 0x516013
leaq 0x380440(%rip), %rdx    # 0x52f206
leaq 0x3b048b(%rip), %rcx    # 0x55f258
leaq 0x3b0371(%rip), %r8     # 0x55f145
movl $0x34, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1aede8
movq 0x20(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1aee12
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1aee4a
movq 0x48d187(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x3671f0(%rip), %rsi    # 0x516013
leaq 0x3b044b(%rip), %rdx    # 0x55f275
leaq 0x3b0427(%rip), %rcx    # 0x55f258
leaq 0x3b030d(%rip), %r8     # 0x55f145
movl $0x37, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1aee4c
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x172080
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/merge_stream.c
// Function: merge_stream_consolidate
static bool merge_stream_consolidate(GtGenomeNode **first_node,
                                     GtGenomeNode **second_node)
{
  gt_assert(*first_node && *second_node);
  if (gt_genome_nodes_are_equal_region_nodes(*first_node, *second_node)) {
    gt_region_node_consolidate((GtRegionNode*) *first_node,
                               (GtRegionNode*) *second_node);
    /* keep first node */
    gt_genome_node_delete(*second_node);
    *second_node = NULL;
    return true;
  }
  return false;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
movq %rsi, (%rsp)
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
je 0x1af1a2
movq (%rsp), %rax
cmpq $0x0, (%rax)
jne 0x1af1da
movq 0x48cdf7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x366e60(%rip), %rsi    # 0x516013
leaq 0x3b0069(%rip), %rdx    # 0x55f223
leaq 0x3b007e(%rip), %rcx    # 0x55f23f
leaq 0x3aff7d(%rip), %r8     # 0x55f145
movl $0x79, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1af1dc
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq (%rax), %rsi
callq 0x172530
testb $0x1, %al
jne 0x1af1f6
jmp 0x1af228
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq (%rax), %rsi
callq 0x1ca730
movq (%rsp), %rax
movq (%rax), %rdi
callq 0x173180
movq (%rsp), %rax
movq $0x0, (%rax)
movb $0x1, 0x17(%rsp)
jmp 0x1af22d
movb $0x0, 0x17(%rsp)
movb 0x17(%rsp), %al
andb $0x1, %al
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_new
GtMultieoplist *gt_multieoplist_new(void)
{
  GtMultieoplist *multieops;
  multieops = gt_malloc(sizeof (GtMultieoplist));
  multieops->refcount = 0;
  GT_INITARRAY(&multieops->meoplist, Eop);
  return multieops;
}

// Assembly:
pushq %rax
movl $0x20, %edi
leaq 0x3afa5b(%rip), %rsi    # 0x55f3c8
movl $0x2a, %edx
callq 0xe80f0
movq %rax, (%rsp)
movq (%rsp), %rax
movq $0x0, (%rax)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
popq %rcx
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_new_with_size
GtMultieoplist *gt_multieoplist_new_with_size(GtUword size)
{
  GtMultieoplist *multieops;
  multieops = gt_malloc(sizeof (GtMultieoplist));
  multieops->refcount = 0;
  GT_INITARRAY(&multieops->meoplist, Eop);
  multieops->meoplist.spaceEop =
    gt_calloc((size_t) size, sizeof (*(multieops->meoplist.spaceEop)));
  multieops->meoplist.allocatedEop = size;
  return multieops;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movl $0x20, %edi
leaq 0x3afa03(%rip), %rsi    # 0x55f3c8
movl $0x33, %edx
callq 0xe80f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x10(%rsp), %rdi
movl $0x1, %esi
leaq 0x3af9b0(%rip), %rdx    # 0x55f3c8
movl $0x37, %ecx
callq 0xe83c0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_clone
GtMultieoplist *gt_multieoplist_clone(GtMultieoplist *copy,
                                      const GtMultieoplist *source)
{
  GtUword i;
  gt_assert(source != NULL);
  if (copy == NULL) {
    copy = gt_multieoplist_new();
  }
  if (copy->meoplist.allocatedEop < source->meoplist.nextfreeEop) {
    copy->meoplist.spaceEop = gt_realloc(copy->meoplist.spaceEop,
                                         (size_t) source->meoplist.nextfreeEop);
    copy->meoplist.allocatedEop = source->meoplist.nextfreeEop;
  }
  copy->refcount = 0;
  copy->meoplist.nextfreeEop = source->meoplist.nextfreeEop;
  for (i = 0; i < copy->meoplist.nextfreeEop; i++) {
    copy->meoplist.spaceEop[i] = source->meoplist.spaceEop[i];
  }
  return copy;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1afa9e
movq 0x48c533(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x36659c(%rip), %rsi    # 0x516013
leaq 0x3af966(%rip), %rdx    # 0x55f3e4
leaq 0x3af96e(%rip), %rcx    # 0x55f3f3
leaq 0x3af93c(%rip), %r8     # 0x55f3c8
movl $0x40, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1afaa0
cmpq $0x0, 0x10(%rsp)
jne 0x1afab2
callq 0x1af960
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x1afb07
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
leaq 0x3af8e9(%rip), %rdx    # 0x55f3c8
movl $0x46, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq $0x0, (%rax)
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq $0x0, (%rsp)
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x1afb6a
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rcx
movb (%rax,%rcx), %dl
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rcx
movb %dl, (%rax,%rcx)
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x1afb2d
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_delete
void gt_multieoplist_delete(GtMultieoplist *multieops)
{
  if (multieops != NULL) {
    if (multieops->refcount != 0) {
      multieops->refcount--;
    }
    else {
      GT_FREEARRAY(&multieops->meoplist, Eop);
      gt_free(multieops);
    }
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x1afc29
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x1afbc6
movq (%rsp), %rax
movq (%rax), %rcx
addq $-0x1, %rcx
movq %rcx, (%rax)
jmp 0x1afc27
jmp 0x1afbc8
movq (%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x1afc10
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x3af7e6(%rip), %rsi    # 0x55f3c8
movl $0x5e, %edx
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
jmp 0x1afc12
movq (%rsp), %rdi
leaq 0x3af7ab(%rip), %rsi    # 0x55f3c8
movl $0x5f, %edx
callq 0xe88c0
jmp 0x1afc29
popq %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_remove_last
void gt_multieoplist_remove_last(GtMultieoplist *multieops)
{
  Eop *space;
  GtUword current;
  gt_assert(multieops != NULL && multieops->meoplist.nextfreeEop > 0);
  space = multieops->meoplist.spaceEop;
  current = multieops->meoplist.nextfreeEop - 1;
  if ((space[current] & GT_MEOPS_STEPS_MASK) == (Eop) 1) {
    multieops->meoplist.nextfreeEop--;
  }
  else {
    space[current]--;
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1b008d
movq 0x10(%rsp), %rax
cmpq $0x0, 0x18(%rax)
ja 0x1b00c5
movq 0x48bf0c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365f75(%rip), %rsi    # 0x516013
leaq 0x3af38a(%rip), %rdx    # 0x55f42f
leaq 0x3af3bc(%rip), %rcx    # 0x55f468
leaq 0x3af315(%rip), %r8     # 0x55f3c8
movl $0xc7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b00c7
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
subq $0x1, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x3f, %eax
cmpl $0x1, %eax
jne 0x1b010e
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rcx
addq $-0x1, %rcx
movq %rcx, 0x18(%rax)
jmp 0x1b0120
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
movb (%rax,%rcx), %dl
addb $-0x1, %dl
movb %dl, (%rax,%rcx)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_get_repdel_length
GtUword gt_multieoplist_get_repdel_length(const GtMultieoplist *multieops)
{
  GtUword len = 0, i;
  Eop *space;
  gt_assert(multieops);
  space = multieops->meoplist.spaceEop;
  for (i = 0; i < multieops->meoplist.nextfreeEop ; i++) {
    switch (space[i] >> GT_MEOPS_STEPS_BITS) {
      case GT_MEOPS_INS:
        break;
      default:
        len += space[i] & GT_MEOPS_STEPS_MASK;
    }
  }
  return len;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1b0182
movq 0x48be4f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365eb8(%rip), %rsi    # 0x516013
leaq 0x3af322(%rip), %rdx    # 0x55f484
leaq 0x3af325(%rip), %rcx    # 0x55f48e
leaq 0x3af258(%rip), %r8     # 0x55f3c8
movl $0xd6, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0184
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x1b01f4
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
shrl $0x6, %eax
subl $0x3, %eax
jne 0x1b01c5
jmp 0x1b01c3
jmp 0x1b01e2
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x3f, %eax
cltq
addq 0x18(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x1b01e4
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1b019b
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_get_repins_length
GtUword gt_multieoplist_get_repins_length(const GtMultieoplist *multieops)
{
  GtUword len = 0, i;
  Eop *space;
  gt_assert(multieops);
  space = multieops->meoplist.spaceEop;
  for (i = 0; i < multieops->meoplist.nextfreeEop ; i++) {
    switch (space[i] >> GT_MEOPS_STEPS_BITS) {
      case GT_MEOPS_DEL:
        break;
      default:
        len += space[i] & GT_MEOPS_STEPS_MASK;
    }
  }
  return len;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1b0252
movq 0x48bd7f(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365de8(%rip), %rsi    # 0x516013
leaq 0x3af252(%rip), %rdx    # 0x55f484
leaq 0x3af277(%rip), %rcx    # 0x55f4b0
leaq 0x3af188(%rip), %r8     # 0x55f3c8
movl $0xe7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0254
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x1b02c4
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
shrl $0x6, %eax
subl $0x2, %eax
jne 0x1b0295
jmp 0x1b0293
jmp 0x1b02b2
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x3f, %eax
cltq
addq 0x18(%rsp), %rax
movq %rax, 0x18(%rsp)
jmp 0x1b02b4
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1b026b
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_get_length
GtUword gt_multieoplist_get_length(const GtMultieoplist *multieops)
{
  GtUword len = 0, i;
  Eop *space;
  gt_assert(multieops);
  space = multieops->meoplist.spaceEop;
  for (i = 0; i < multieops->meoplist.nextfreeEop ; i++) {
    len += space[i] & GT_MEOPS_STEPS_MASK;
  }
  return len;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq $0x0, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
jne 0x1b0322
movq 0x48bcaf(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365d18(%rip), %rsi    # 0x516013
leaq 0x3af182(%rip), %rdx    # 0x55f484
leaq 0x3af1c9(%rip), %rcx    # 0x55f4d2
leaq 0x3af0b8(%rip), %r8     # 0x55f3c8
movl $0xf8, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0324
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x1b0378
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x3f, %eax
cltq
addq 0x18(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1b033b
movq 0x18(%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_get_entry
GtMultieop gt_multieoplist_get_entry(const GtMultieoplist *multieops,
                                     GtUword index)
{
  GtMultieop eop = { (AlignmentEoptype) 0, (GtUword) 0};
  Eop *space;
  gt_assert(multieops);
  space = multieops->meoplist.spaceEop;
  gt_assert(multieops->meoplist.nextfreeEop != 0);
  gt_assert(multieops->meoplist.nextfreeEop > index);
  eop.steps = (GtUword) space[index] & (GtUword) GT_MEOPS_STEPS_MASK;
  switch (space[index] >> GT_MEOPS_STEPS_BITS) {
    case GT_MEOPS_MATCH:
      eop.type = Match;
      break;
    case GT_MEOPS_MIS:
      eop.type = Mismatch;
      break;
    case GT_MEOPS_DEL:
      eop.type = Deletion;
      break;
    case GT_MEOPS_INS:
      eop.type = Insertion;
  }
  return eop;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
leaq 0x28(%rsp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x19360
cmpq $0x0, 0x20(%rsp)
jne 0x1b03ff
movq 0x48bbd2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365c3b(%rip), %rsi    # 0x516013
leaq 0x3af0a5(%rip), %rdx    # 0x55f484
leaq 0x3af107(%rip), %rcx    # 0x55f4ed
leaq 0x3aefdb(%rip), %r8     # 0x55f3c8
movl $0x10a, %r9d            # imm = 0x10A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0401
movq 0x20(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1b0453
movq 0x48bb7e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365be7(%rip), %rsi    # 0x516013
leaq 0x3af0d4(%rip), %rdx    # 0x55f507
leaq 0x3af0b3(%rip), %rcx    # 0x55f4ed
leaq 0x3aef87(%rip), %r8     # 0x55f3c8
movl $0x10c, %r9d            # imm = 0x10C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0455
jmp 0x1b0457
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
cmpq 0x18(%rsp), %rax
ja 0x1b049f
movq 0x48bb32(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365b9b(%rip), %rsi    # 0x516013
leaq 0x3af0ad(%rip), %rdx    # 0x55f52c
leaq 0x3af067(%rip), %rcx    # 0x55f4ed
leaq 0x3aef3b(%rip), %r8     # 0x55f3c8
movl $0x10d, %r9d            # imm = 0x10D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b04a1
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movzbl (%rax,%rcx), %eax
andl $0x3f, %eax
movq %rax, 0x30(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movzbl (%rax,%rcx), %eax
shrl $0x6, %eax
movl %eax, %ecx
movq %rcx, 0x8(%rsp)
subl $0x3, %eax
ja 0x1b050f
movq 0x8(%rsp), %rax
leaq 0x3aeeb8(%rip), %rcx    # 0x55f398
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, 0x28(%rsp)
jmp 0x1b050f
movl $0x1, 0x28(%rsp)
jmp 0x1b050f
movl $0x3, 0x28(%rsp)
jmp 0x1b050f
movl $0x4, 0x28(%rsp)
movl 0x28(%rsp), %eax
movq 0x30(%rsp), %rdx
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_combine
void gt_multieoplist_combine(GtMultieoplist *multieops,
                             const GtMultieoplist *multieops_to_add,
                             bool forward) {
  GtUword idx,
          nelems = 0;
  GtMultieop mop;
  gt_assert(multieops_to_add != NULL && multieops != NULL);

  nelems = multieops_to_add->meoplist.nextfreeEop;
  for (idx = 0; idx < nelems; ++idx) {
    mop = gt_multieoplist_get_entry(multieops_to_add,
                                    forward ?
                                    idx :
                                    nelems - idx - 1);
    gt_multieoplist_add_eops(multieops, mop.type, mop.steps);
  }
}

// Assembly:
subq $0x58, %rsp
movb %dl, %al
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq $0x0, 0x30(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x1b087f
cmpq $0x0, 0x50(%rsp)
jne 0x1b08b7
movq 0x48b71a(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x365783(%rip), %rsi    # 0x516013
leaq 0x3aed07(%rip), %rdx    # 0x55f59e
leaq 0x3aed2e(%rip), %rcx    # 0x55f5cc
leaq 0x3aeb23(%rip), %r8     # 0x55f3c8
movl $0x167, %r9d            # imm = 0x167
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b08b9
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x30(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
cmpq 0x30(%rsp), %rax
jae 0x1b095b
movq 0x48(%rsp), %rax
movq %rax, 0x8(%rsp)
testb $0x1, 0x47(%rsp)
je 0x1b08f8
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
jmp 0x1b090a
movq 0x30(%rsp), %rax
subq 0x38(%rsp), %rax
subq $0x1, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0x1b03a0
movl %eax, 0x10(%rsp)
movq %rdx, 0x18(%rsp)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x50(%rsp), %rdi
movl 0x20(%rsp), %esi
movq 0x28(%rsp), %rdx
callq 0x1afc50
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x1b08d0
addq $0x58, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_io
GtMultieoplist *gt_multieoplist_io(GtMultieoplist *multieops, FILE *fp,
                                   GtError *err)
{
  if (multieops == NULL) {
    multieops = gt_calloc((size_t) 1, sizeof (GtMultieoplist));
    GT_INITARRAY(&multieops->meoplist, Eop);
    multieops = gt_multieoplist_io_fp(multieops, fp, gt_io_error_fread, err);
  }
  else
    multieops = gt_multieoplist_io_fp(multieops, fp, gt_io_error_fwrite, err);
  return multieops;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x1b09e2
movl $0x1, %edi
movl $0x20, %esi
leaq 0x3aea3d(%rip), %rdx    # 0x55f3c8
movl $0x193, %ecx            # imm = 0x193
callq 0xe83c0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x10(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq (%rsp), %rcx
leaq -0x190f6(%rip), %rdx    # 0x1978e0
callq 0x1b0a10
movq %rax, 0x10(%rsp)
jmp 0x1b0a01
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq (%rsp), %rcx
leaq -0x191a7(%rip), %rdx    # 0x197850
callq 0x1b0a10
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/multieoplist.c
// Function: gt_multieoplist_io_fp
static GtMultieoplist *gt_multieoplist_io_fp(GtMultieoplist *multieops,
                                             FILE *fp, GtIOFunc io_func,
                                             GtError *err)
{
  int had_err = 0;
  had_err = io_func(&multieops->meoplist.nextfreeEop,
                    sizeof (multieops->meoplist.nextfreeEop),
                    (size_t) 1, fp, err);
  if (!had_err) {
    gt_assert(multieops->meoplist.nextfreeEop != 0);
    if (multieops->meoplist.spaceEop == NULL) {
      multieops->meoplist.allocatedEop = multieops->meoplist.nextfreeEop;
      multieops->meoplist.spaceEop =
        gt_malloc((size_t) multieops->meoplist.nextfreeEop *
                  sizeof (*(multieops->meoplist.spaceEop)));
    }
  }
  had_err = io_func(multieops->meoplist.spaceEop,
                    sizeof (*(multieops->meoplist.spaceEop)),
                    (size_t) multieops->meoplist.nextfreeEop,
                    fp, err);
  if (had_err) {
    gt_multieoplist_delete(multieops);
    multieops = NULL;
  }
  return(multieops);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rdi
addq $0x8, %rdi
addq $0x10, %rdi
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x8, %esi
movl $0x1, %edx
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
jne 0x1b0af9
jmp 0x1b0a69
movq 0x20(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x1b0aad
movq 0x48b524(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x36558d(%rip), %rsi    # 0x516013
leaq 0x3aea7a(%rip), %rdx    # 0x55f507
leaq 0x3af0b1(%rip), %rcx    # 0x55fb45
leaq 0x3ae92d(%rip), %r8     # 0x55f3c8
movl $0x17c, %r9d            # imm = 0x17C
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1b0aaf
movq 0x20(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1b0af7
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rdi
shlq $0x0, %rdi
leaq 0x3ae8e7(%rip), %rsi    # 0x55f3c8
movl $0x181, %edx            # imm = 0x181
callq 0xe80f0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x1b0af9
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
movq 0x8(%rcx), %rdi
movq 0x20(%rsp), %rcx
movq 0x18(%rcx), %rdx
movq 0x18(%rsp), %rcx
movq 0x8(%rsp), %r8
movl $0x1, %esi
callq *%rax
movl %eax, 0x4(%rsp)
cmpl $0x0, 0x4(%rsp)
je 0x1b0b3f
movq 0x20(%rsp), %rdi
callq 0x1afba0
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax)