LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_kmerpos_list_new
static GtKmerPosList *gt_kmerpos_list_new(GtUword init_size,
                                          const GtKmerPosListEncodeInfo
                                            *encode_info)
{
  GtKmerPosList *kmerpos_list = gt_malloc(sizeof *kmerpos_list);

  gt_assert(init_size > 0);
  kmerpos_list->nextfree = 0;
  kmerpos_list->allocated = init_size;
  if (encode_info != NULL)
  {
    kmerpos_list->spaceGtDiagbandseedKmerPos = NULL;
    kmerpos_list->spaceGtUword
      = gt_malloc(sizeof *kmerpos_list->spaceGtUword * init_size);
  } else
  {
    kmerpos_list->spaceGtUword = NULL;
    kmerpos_list->spaceGtDiagbandseedKmerPos
      = gt_malloc(sizeof *kmerpos_list->spaceGtDiagbandseedKmerPos *
                  init_size);
  }
  kmerpos_list->encode_info = encode_info;
  return kmerpos_list;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl $0x30, %edi
leaq 0x36031a(%rip), %rsi    # 0x571f94
movl $0x195, %edx            # imm = 0x195
callq 0xe80f0
movq %rax, (%rsp)
cmpq $0x0, 0x10(%rsp)
ja 0x211cc8
movq 0x42a309(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x304372(%rip), %rsi    # 0x516013
leaq 0x3606f1(%rip), %rdx    # 0x572399
leaq 0x3606f8(%rip), %rcx    # 0x5723a7
leaq 0x3602de(%rip), %r8     # 0x571f94
movl $0x197, %r9d            # imm = 0x197
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x211cca
movq (%rsp), %rax
movq $0x0, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
cmpq $0x0, 0x8(%rsp)
je 0x211d1d
movq (%rsp), %rax
movq $0x0, (%rax)
movq 0x10(%rsp), %rdi
shlq $0x3, %rdi
leaq 0x36028e(%rip), %rsi    # 0x571f94
movl $0x19e, %edx            # imm = 0x19E
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x211d4d
movq (%rsp), %rax
movq $0x0, 0x8(%rax)
movq 0x10(%rsp), %rdi
shlq $0x4, %rdi
leaq 0x36025b(%rip), %rsi    # 0x571f94
movl $0x1a4, %edx            # imm = 0x1A4
callq 0xe80f0
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x28(%rax)
movq (%rsp), %rax
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_update_separatorpos
static GtUword gt_diagbandseed_update_separatorpos(GtRange *specialrange,
                                                   GtSpecialrangeiterator *sri,
                                                   const GtEncseq *encseq,
                                                   GtUword totallength,
                                                   GtReadmode readmode)
{
  gt_assert(sri != NULL && specialrange != NULL && encseq != NULL);
  do {
    GtUword idx;
    for (idx = specialrange->start; idx < specialrange->end; idx++) {
      if (gt_encseq_position_is_separator(encseq, idx, readmode)) {
        specialrange->start = idx + 1;
        return idx;
      }
    }
  } while (gt_specialrangeiterator_next(sri, specialrange));
  return totallength;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movq %rcx, 0x10(%rsp)
movl %r8d, 0xc(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x211dd5
cmpq $0x0, 0x28(%rsp)
je 0x211dd5
cmpq $0x0, 0x18(%rsp)
jne 0x211e0d
movq 0x42a1c4(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x30422d(%rip), %rsi    # 0x516013
leaq 0x3605ce(%rip), %rdx    # 0x5723bb
leaq 0x3605fd(%rip), %rcx    # 0x5723f1
leaq 0x360199(%rip), %r8     # 0x571f94
movl $0x240, %r9d            # imm = 0x240
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x211e0f
jmp 0x211e11
movq 0x28(%rsp), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq 0x28(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x211e6f
movq 0x18(%rsp), %rdi
movq (%rsp), %rsi
movl 0xc(%rsp), %edx
callq 0xaaca0
testb $0x1, %al
jne 0x211e44
jmp 0x211e5f
movq (%rsp), %rcx
addq $0x1, %rcx
movq 0x28(%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq %rax, 0x30(%rsp)
jmp 0x211e8e
jmp 0x211e61
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x211e1d
jmp 0x211e71
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xaf770
testb $0x1, %al
jne 0x211e11
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_get_kmers_kciter
static void gt_diagbandseed_get_kmers_kciter(GtDiagbandseedProcKmerInfo *pkinfo)
{
  gt_assert(pkinfo != NULL);
  if (pkinfo->seedlength <= pkinfo->last_specialpos)
  {
    const GtKmercode *kmercode = NULL;
    bool firstinrange = true;
    GtKmercodeiterator *kc_iter = NULL;
    const GtUword maxpos = pkinfo->last_specialpos + 1 - pkinfo->seedlength;
    GtUword position = gt_encseq_seqstartpos(pkinfo->encseq,
                                             pkinfo->current_seqnum);

    kc_iter = gt_kmercodeiterator_encseq_new(pkinfo->encseq,
                                             pkinfo->readmode,
                                             pkinfo->seedlength,
                                             position);
    while (position < maxpos)
    {
      kmercode = gt_kmercodeiterator_encseq_next(kc_iter);
      if (!kmercode->definedspecialposition)
      {
        gt_diagbandseed_processkmercode((void *) pkinfo,
                                        firstinrange,
                                        position,
                                        kmercode->code);
        firstinrange = false;
      } else
      {
        firstinrange = true;
      }
      position++;
    }
    gt_kmercodeiterator_delete(kc_iter);
  }
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x2121e9
movq 0x429de8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x303e51(%rip), %rsi    # 0x516013
leaq 0x360396(%rip), %rdx    # 0x57255f
leaq 0x36039e(%rip), %rcx    # 0x57256e
leaq 0x35fdbd(%rip), %r8     # 0x571f94
movl $0x28d, %r9d            # imm = 0x28D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2121eb
movq 0x30(%rsp), %rax
movl 0x44(%rax), %eax
movq 0x30(%rsp), %rcx
cmpq 0x28(%rcx), %rax
ja 0x2122e7
movq $0x0, 0x28(%rsp)
movb $0x1, 0x27(%rsp)
movq $0x0, 0x18(%rsp)
movq 0x30(%rsp), %rax
movq 0x28(%rax), %rax
addq $0x1, %rax
movq 0x30(%rsp), %rcx
movl 0x44(%rcx), %ecx
subq %rcx, %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0x8(%rax), %eax
movl %eax, %esi
callq 0xb0530
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x30(%rsp), %rax
movl 0x50(%rax), %esi
movq 0x30(%rsp), %rax
movl 0x44(%rax), %edx
movq 0x8(%rsp), %rcx
callq 0x2ca880
movq %rax, 0x18(%rsp)
movq 0x8(%rsp), %rax
cmpq 0x10(%rsp), %rax
jae 0x2122dd
movq 0x18(%rsp), %rdi
callq 0x2cac00
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rax
testb $0x1, (%rax)
jne 0x2122c8
movq 0x30(%rsp), %rdi
movb 0x27(%rsp), %al
movq 0x8(%rsp), %rdx
movq 0x28(%rsp), %rcx
movq 0x8(%rcx), %rcx
andb $0x1, %al
movzbl %al, %esi
callq 0x211ea0
movb $0x0, 0x27(%rsp)
jmp 0x2122cd
movb $0x1, 0x27(%rsp)
movq 0x8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x21227b
movq 0x18(%rsp), %rdi
callq 0x2cb300
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_kmerpos_list_reduce_size
static void gt_kmerpos_list_reduce_size(GtKmerPosList *kmerpos_list)
{
  gt_assert(kmerpos_list != NULL &&
            kmerpos_list->nextfree <= kmerpos_list->allocated);
  if (kmerpos_list->nextfree < kmerpos_list->allocated)
  {
    if (kmerpos_list->encode_info != NULL)
    {
      kmerpos_list->spaceGtUword
        = gt_realloc(kmerpos_list->spaceGtUword,
                     kmerpos_list->nextfree *
                     sizeof *kmerpos_list->spaceGtUword);
    } else
    {
      kmerpos_list->spaceGtDiagbandseedKmerPos
        = gt_realloc(kmerpos_list->spaceGtDiagbandseedKmerPos,
                     kmerpos_list->nextfree *
                     sizeof *kmerpos_list->spaceGtDiagbandseedKmerPos);
    }
    kmerpos_list->allocated = kmerpos_list->nextfree;
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x21230e
movq (%rsp), %rax
movq 0x18(%rax), %rax
movq (%rsp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x212346
movq 0x429c8b(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x303cf4(%rip), %rsi    # 0x516013
leaq 0x360269(%rip), %rdx    # 0x57258f
leaq 0x3602ac(%rip), %rcx    # 0x5725d9
leaq 0x35fc60(%rip), %r8     # 0x571f94
movl $0x1fa, %r9d            # imm = 0x1FA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x212348
movq (%rsp), %rax
movq 0x18(%rax), %rax
movq (%rsp), %rcx
cmpq 0x10(%rcx), %rax
jae 0x2123d5
movq (%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x212397
movq (%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rsp), %rax
movq 0x18(%rax), %rsi
shlq $0x3, %rsi
leaq 0x35fc14(%rip), %rdx    # 0x571f94
movl $0x202, %ecx            # imm = 0x202
callq 0xe8540
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, 0x8(%rax)
jmp 0x2123c5
movq (%rsp), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq 0x18(%rax), %rsi
shlq $0x4, %rsi
leaq 0x35fbe3(%rip), %rdx    # 0x571f94
movl $0x208, %ecx            # imm = 0x208
callq 0xe8540
movq %rax, %rcx
movq (%rsp), %rax
movq %rcx, (%rax)
movq (%rsp), %rax
movq 0x18(%rax), %rcx
movq (%rsp), %rax
movq %rcx, 0x10(%rax)
popq %rax
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_kmerpos_list_show
static void gt_kmerpos_list_show(FILE *stream,const GtKmerPosList *kmerpos_list)
{
  GtUword idx;

  for (idx = 0; idx < kmerpos_list->nextfree; idx++)
  {
    GtDiagbandseedKmerPos dec;

    if (kmerpos_list->encode_info != NULL)
    {
      gt_kmerpos_entry_decode(&dec,kmerpos_list->encode_info,
                              kmerpos_list->spaceGtUword[idx]);
    } else
    {
      dec = kmerpos_list->spaceGtDiagbandseedKmerPos[idx];
    }
    fprintf(stream, "# Kmer (" GT_LX ",%"PRIu32",%"PRIu32")\n",dec.code,
            dec.endpos, dec.seqnum);
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jae 0x212493
movq 0x18(%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x21243c
movq 0x18(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
movq %rsp, %rdi
callq 0x2150b0
jmp 0x212460
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rsp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq (%rsp), %rdx
movl 0xc(%rsp), %ecx
movl 0x8(%rsp), %r8d
leaq 0x36017c(%rip), %rsi    # 0x5725f5
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x2123f7
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_kmerpos_list_sort
static void gt_kmerpos_list_sort(GtKmerPosList *kmerpos_list)
{

  if (kmerpos_list->encode_info != NULL)
  {
    gt_radixsort_inplace_ulong(kmerpos_list->spaceGtUword,
                               kmerpos_list->nextfree);
  } else
  {
    gt_radixsort_inplace_GtUwordPair((GtUwordPair *)
                                     kmerpos_list->spaceGtDiagbandseedKmerPos,
                                     kmerpos_list->nextfree);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
movq (%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x212517
movq (%rsp), %rax
movq 0x8(%rax), %rdi
movq (%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x100d90
jmp 0x21252b
movq (%rsp), %rax
movq (%rax), %rdi
movq (%rsp), %rax
movq 0x18(%rax), %rsi
callq 0x101780
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_kmerpos_entry_decode
static void gt_kmerpos_entry_decode(GtDiagbandseedKmerPos *dec,
                      const GtKmerPosListEncodeInfo *encode_info,
                      GtUword value)
{
  gt_assert(dec != NULL && encode_info != NULL);
  dec->code = gt_kmerpos_entry_code(encode_info,value);
  dec->seqnum = encode_info->first_seqnum +
                ((value >> encode_info->shift_seqnum) &
                encode_info->mask_seqnum);
  dec->endpos = (value >> encode_info->shift_endpos) & encode_info->mask_endpos;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x2150d2
cmpq $0x0, 0x8(%rsp)
jne 0x21510a
movq 0x426ec7(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x300f30(%rip), %rsi    # 0x516013
leaq 0x35d51f(%rip), %rdx    # 0x572609
leaq 0x35d53b(%rip), %rcx    # 0x57262c
leaq 0x35ce9c(%rip), %r8     # 0x571f94
movl $0x1bf, %r9d            # imm = 0x1BF
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21510c
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
callq 0x215180
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rsp), %rdx
movq 0x8(%rsp), %rcx
movl 0x24(%rcx), %ecx
shrq %cl, %rdx
movq %rdx, %rcx
movq 0x8(%rsp), %rdx
andq 0x10(%rdx), %rcx
addq %rcx, %rax
movl %eax, %ecx
movq 0x10(%rsp), %rax
movl %ecx, 0x8(%rax)
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
movl 0x28(%rcx), %ecx
shrq %cl, %rax
movq 0x8(%rsp), %rcx
andq 0x18(%rcx), %rax
movl %eax, %ecx
movq 0x10(%rsp), %rax
movl %ecx, 0xc(%rax)
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_segment_reject_info_new
static GtSegmentRejectInfo *gt_segment_reject_info_new(GtUword b_firstseq,
                                                       GtUword b_numsequences)
{
  GtSegmentRejectInfo *segment_reject_info
    = gt_malloc(sizeof *segment_reject_info);

  gt_assert(b_numsequences > 0);
  GT_INITBITTAB(segment_reject_info->b_bitsequence,b_numsequences);
  segment_reject_info->b_firstseq = b_firstseq;
  segment_reject_info->b_numsequences = b_numsequences;
  return segment_reject_info;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl $0x18, %edi
leaq 0x35cd1a(%rip), %rsi    # 0x571f94
movl $0xc5, %edx
callq 0xe80f0
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
ja 0x2152c9
movq 0x426d08(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x300d71(%rip), %rsi    # 0x516013
leaq 0x35d5de(%rip), %rdx    # 0x572887
leaq 0x35d5ea(%rip), %rcx    # 0x57289a
leaq 0x35ccdd(%rip), %r8     # 0x571f94
movl $0xc7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2152cb
movq 0x18(%rsp), %rax
shrq $0x6, %rax
cmpq $0x0, %rax
jne 0x2152e5
movl $0x1, %eax
movq %rax, (%rsp)
jmp 0x2152fa
movq 0x18(%rsp), %rax
subq $0x1, %rax
shrq $0x6, %rax
addq $0x1, %rax
movq %rax, (%rsp)
movq (%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rsi
shlq $0x3, %rsi
xorl %eax, %eax
movl %eax, %edi
leaq 0x35cc7d(%rip), %rdx    # 0x571f94
movl $0xc8, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x8(%rsp), %rdx
shlq $0x3, %rdx
xorl %esi, %esi
callq 0x19360
movq 0x20(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, (%rax)
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_numof_kmerpos_in_file
static GtUword gt_numof_kmerpos_in_file(const char *filename,
                                        GtDiagbandseedBaseListType kmplt)
{
  off_t file_size = gt_file_size(filename);
  size_t base_type_size = kmplt == GT_DIAGBANDSEED_BASE_LIST_STRUCT
                            ? sizeof (GtDiagbandseedKmerPos)
                            : sizeof (GtUword);

  gt_assert(file_size >= sizeof (GtLongestCodeRunType) &&
            (file_size - sizeof (GtLongestCodeRunType)) % base_type_size == 0);
  return (GtUword) ((file_size - sizeof (GtLongestCodeRunType))/base_type_size);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movl %esi, 0x1c(%rsp)
movq 0x20(%rsp), %rdi
callq 0xdf2a0
movq %rax, 0x10(%rsp)
movl 0x1c(%rsp), %edx
movl $0x8, %eax
movl $0x10, %ecx
cmpl $0x0, %edx
cmoveq %rcx, %rax
movq %rax, 0x8(%rsp)
cmpq $0x8, 0x10(%rsp)
jb 0x2153c6
movq 0x10(%rsp), %rax
subq $0x8, %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x8(%rsp)
cmpq $0x0, %rdx
je 0x2153fe
movq 0x426bd3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x300c3c(%rip), %rsi    # 0x516013
leaq 0x35d4d7(%rip), %rdx    # 0x5728b5
leaq 0x35d540(%rip), %rcx    # 0x572925
leaq 0x35cba8(%rip), %r8     # 0x571f94
movl $0xfa3, %r9d            # imm = 0xFA3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x215400
movq 0x10(%rsp), %rax
subq $0x8, %rax
xorl %ecx, %ecx
movl %ecx, %edx
divq 0x8(%rsp)
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_kmer_iter_delete
static void gt_diagbandseed_kmer_iter_delete(GtDiagbandseedKmerIterator *ki)
{
  if (ki != NULL) {
    if (ki->original == NULL)
    { /* file based */
      if (ki->section.encode_info != NULL)
      {
        gt_free(ki->kmerstream_uword.bufferedfilespace);
        gt_fa_fclose(ki->kmerstream_uword.fp);
        gt_free(ki->section.spaceGtUword);
      } else
      {
        gt_free(ki->kmerstream_struct.bufferedfilespace);
        gt_fa_fclose(ki->kmerstream_struct.fp);
      }
      gt_free(ki->section.spaceGtDiagbandseedKmerPos);
      ki->section.allocated = 0;
    } else
    {
      if (ki->section.encode_info != NULL)
      {
        gt_free(ki->section.spaceGtDiagbandseedKmerPos);
      }
    }
    gt_free(ki);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x2158c7
movq (%rsp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x21588d
movq (%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x215841
movq (%rsp), %rax
movq 0x80(%rax), %rdi
leaq 0x35c788(%rip), %rsi    # 0x571f94
movl $0x444, %edx            # imm = 0x444
callq 0xe88c0
movq (%rsp), %rax
movq 0x88(%rax), %rdi
callq 0xd9390
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x35c75f(%rip), %rsi    # 0x571f94
movl $0x446, %edx            # imm = 0x446
callq 0xe88c0
jmp 0x215867
movq (%rsp), %rax
movq 0x68(%rax), %rdi
leaq 0x35c744(%rip), %rsi    # 0x571f94
movl $0x449, %edx            # imm = 0x449
callq 0xe88c0
movq (%rsp), %rax
movq 0x70(%rax), %rdi
callq 0xd9390
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x35c71f(%rip), %rsi    # 0x571f94
movl $0x44c, %edx            # imm = 0x44C
callq 0xe88c0
movq (%rsp), %rax
movq $0x0, 0x10(%rax)
jmp 0x2158b2
movq (%rsp), %rax
cmpq $0x0, 0x28(%rax)
je 0x2158b0
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x35c6ee(%rip), %rsi    # 0x571f94
movl $0x452, %edx            # imm = 0x452
callq 0xe88c0
jmp 0x2158b2
movq (%rsp), %rdi
leaq 0x35c6d7(%rip), %rsi    # 0x571f94
movl $0x455, %edx            # imm = 0x455
callq 0xe88c0
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_sizeofunit
static size_t gt_seedpairlist_sizeofunit(const GtSeedpairlist *seedpairlist)
{
  if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_STRUCT)
  {
    return sizeof (GtDiagbandseedSeedPair);
  } else
  {
    if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_ULONG)
    {
      return sizeof (GtUword);
    } else
    {
      return seedpairlist->bytes_seedpair;
    }
  }
}

// Assembly:
movq %rdi, -0x10(%rsp)
movq -0x10(%rsp), %rax
cmpl $0x0, 0x18(%rax)
jne 0x21608b
movq $0x10, -0x8(%rsp)
jmp 0x2160b2
movq -0x10(%rsp), %rax
cmpl $0x1, 0x18(%rax)
jne 0x2160a1
movq $0x8, -0x8(%rsp)
jmp 0x2160b2
movq -0x10(%rsp), %rax
movq 0x90(%rax), %rax
movq %rax, -0x8(%rsp)
movq -0x8(%rsp), %rax
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_show_bits
static void gt_seedpairlist_show_bits(FILE *stream,
                                      const GtSeedpairlist *seedpairlist)
{
  fprintf(stream,"# splt=%s, bits_seedpair=%d, bytes_seedpair=%u with ",
                    gt_base_list_arguments[seedpairlist->splt],
                    (int) seedpairlist->bits_seedpair,
                    (int) seedpairlist->bytes_seedpair);
  fprintf(stream,"aseqnum=%hu bits, ",seedpairlist->bits_values[idx_aseqnum]);
  fprintf(stream,"bseqnum=%hu bits, ",seedpairlist->bits_values[idx_bseqnum]);
  fprintf(stream,"bpos=%hu bits, ",seedpairlist->bits_values[idx_bpos]);
  fprintf(stream,"apos=%hu bits\n",seedpairlist->bits_values[idx_apos]);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movl 0x18(%rax), %eax
movl %eax, %ecx
leaq 0x427c5c(%rip), %rax    # 0x63e260
movq (%rax,%rcx,8), %rdx
movq 0x8(%rsp), %rax
movzwl 0x78(%rax), %ecx
movq 0x8(%rsp), %rax
movq 0x90(%rax), %rax
movl %eax, %r8d
leaq 0x35cb67(%rip), %rsi    # 0x57318e
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x7a(%rax), %edx
leaq 0x35cb80(%rip), %rsi    # 0x5731c3
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x7c(%rax), %edx
leaq 0x35cb77(%rip), %rsi    # 0x5731d6
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x7e(%rax), %edx
leaq 0x35cb6e(%rip), %rsi    # 0x5731e9
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rax
movzwl 0x80(%rax), %edx
leaq 0x35cb5f(%rip), %rsi    # 0x5731f9
movb $0x0, %al
callq 0x199f0
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_length
static GtUword gt_seedpairlist_length(const GtSeedpairlist *seedpairlist)
{
  gt_assert(seedpairlist != NULL);
  if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_STRUCT)
  {
    gt_assert(seedpairlist->mlist_struct != NULL);
    return seedpairlist->mlist_struct->nextfreeGtDiagbandseedSeedPair;
  } else
  {
    if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_ULONG)
    {
      gt_assert(seedpairlist->mlist_ulong != NULL);
      return seedpairlist->mlist_ulong->nextfreeGtUword;
    } else
    {
      gt_assert(seedpairlist->mlist_bytestring != NULL &&
                (seedpairlist->mlist_bytestring->nextfreeuint8_t %
                 seedpairlist->bytes_seedpair == 0));
      return seedpairlist->mlist_bytestring->nextfreeuint8_t/
             seedpairlist->bytes_seedpair;
    }
  }
  return 0;
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x216989
movq 0x425648(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2ff6b1(%rip), %rsi    # 0x516013
leaq 0x35be78(%rip), %rdx    # 0x5727e1
leaq 0x35ca3e(%rip), %rcx    # 0x5733ae
leaq 0x35b61d(%rip), %r8     # 0x571f94
movl $0x61e, %r9d            # imm = 0x61E
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21698b
movq 0x8(%rsp), %rax
cmpl $0x0, 0x18(%rax)
jne 0x2169f3
jmp 0x216998
movq 0x8(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x2169db
movq 0x4255f6(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2ff65f(%rip), %rsi    # 0x516013
leaq 0x35d134(%rip), %rdx    # 0x573aef
leaq 0x35c9ec(%rip), %rcx    # 0x5733ae
leaq 0x35b5cb(%rip), %r8     # 0x571f94
movl $0x621, %r9d            # imm = 0x621
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2169dd
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x216ae6
movq 0x8(%rsp), %rax
cmpl $0x1, 0x18(%rax)
jne 0x216a5d
jmp 0x216a00
movq 0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x216a44
movq 0x42558d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2ff5f6(%rip), %rsi    # 0x516013
leaq 0x35d54a(%rip), %rdx    # 0x573f6e
leaq 0x35c983(%rip), %rcx    # 0x5733ae
leaq 0x35b562(%rip), %r8     # 0x571f94
movl $0x627, %r9d            # imm = 0x627
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x216a46
movq 0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0x216ae6
jmp 0x216a5f
movq 0x8(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x216a8c
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
xorl %edx, %edx
divq 0x90(%rcx)
cmpq $0x0, %rdx
je 0x216ac4
movq 0x42550d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2ff576(%rip), %rsi    # 0x516013
leaq 0x35c921(%rip), %rdx    # 0x5733c5
leaq 0x35c903(%rip), %rcx    # 0x5733ae
leaq 0x35b4e2(%rip), %r8     # 0x571f94
movl $0x62d, %r9d            # imm = 0x62D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x216ac6
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rsp), %rcx
xorl %edx, %edx
divq 0x90(%rcx)
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_delete
static void gt_seedpairlist_delete(GtSeedpairlist *seedpairlist)
{
  if (seedpairlist != NULL)
  {
    if (seedpairlist->mlist_struct != NULL)
    {
      GT_FREEARRAY(seedpairlist->mlist_struct, GtDiagbandseedSeedPair);
      gt_free(seedpairlist->mlist_struct);
    }
    if (seedpairlist->mlist_ulong != NULL)
    {
      GT_FREEARRAY(seedpairlist->mlist_ulong, GtUword);
      gt_free(seedpairlist->mlist_ulong);
    }
    if (seedpairlist->mlist_bytestring != NULL)
    {
      GT_FREEARRAY(seedpairlist->mlist_bytestring, uint8_t);
      gt_free(seedpairlist->mlist_bytestring);
    }
    gt_free(seedpairlist);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x2172f1
movq (%rsp), %rax
cmpq $0x0, (%rax)
je 0x2171da
jmp 0x21716c
movq (%rsp), %rax
movq (%rax), %rax
cmpq $0x0, (%rax)
je 0x2171c0
movq (%rsp), %rax
movq (%rax), %rax
movq (%rax), %rdi
leaq 0x35ae0a(%rip), %rsi    # 0x571f94
movl $0x60b, %edx            # imm = 0x60B
callq 0xe88c0
movq (%rsp), %rax
movq (%rax), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq (%rax), %rax
movq $0x0, (%rax)
jmp 0x2171c2
movq (%rsp), %rax
movq (%rax), %rdi
leaq 0x35adc4(%rip), %rsi    # 0x571f94
movl $0x60c, %edx            # imm = 0x60C
callq 0xe88c0
movq (%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x21725b
jmp 0x2171e7
movq (%rsp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, (%rax)
je 0x217240
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
leaq 0x35ad8d(%rip), %rsi    # 0x571f94
movl $0x610, %edx            # imm = 0x610
callq 0xe88c0
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, (%rax)
jmp 0x217242
movq (%rsp), %rax
movq 0x8(%rax), %rdi
leaq 0x35ad43(%rip), %rsi    # 0x571f94
movl $0x611, %edx            # imm = 0x611
callq 0xe88c0
movq (%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x2172dc
jmp 0x217268
movq (%rsp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, (%rax)
je 0x2172c1
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rdi
leaq 0x35ad0c(%rip), %rsi    # 0x571f94
movl $0x615, %edx            # imm = 0x615
callq 0xe88c0
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq $0x0, 0x8(%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq $0x0, 0x10(%rax)
movq (%rsp), %rax
movq 0x10(%rax), %rax
movq $0x0, (%rax)
jmp 0x2172c3
movq (%rsp), %rax
movq 0x10(%rax), %rdi
leaq 0x35acc2(%rip), %rsi    # 0x571f94
movl $0x616, %edx            # imm = 0x616
callq 0xe88c0
movq (%rsp), %rdi
leaq 0x35acad(%rip), %rsi    # 0x571f94
movl $0x618, %edx            # imm = 0x618
callq 0xe88c0
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_reset
static void gt_seedpairlist_reset(GtSeedpairlist *seedpairlist)
{
  if (seedpairlist->mlist_ulong != NULL)
  {
    seedpairlist->mlist_ulong->nextfreeGtUword = 0;
  }
  if (seedpairlist->mlist_bytestring != NULL)
  {
    seedpairlist->mlist_bytestring->nextfreeuint8_t = 0;
  }
  if (seedpairlist->mlist_struct != NULL)
  {
    seedpairlist->mlist_struct->nextfreeGtDiagbandseedSeedPair = 0;
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq -0x8(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0x219002
movq -0x8(%rsp), %rax
movq 0x8(%rax), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rsp), %rax
cmpq $0x0, 0x10(%rax)
je 0x21901f
movq -0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq $0x0, 0x10(%rax)
movq -0x8(%rsp), %rax
cmpq $0x0, (%rax)
je 0x21903a
movq -0x8(%rsp), %rax
movq (%rax), %rax
movq $0x0, 0x10(%rax)
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_encode_seedpair
static void gt_diagbandseed_encode_seedpair(uint8_t *bytestring,
                                            const GtSeedpairlist *seedpairlist,
                                            GtDiagbandseedSeqnum aseqnum,
                                            GtDiagbandseedSeqnum bseqnum,
                                            GtDiagbandseedPosition bpos,
                                            GtDiagbandseedPosition apos)
{
  GtUword value_seqnums, value_positions;

  value_seqnums
    = (((GtUword) aseqnum) << seedpairlist->bits_left_adjust[idx_aseqnum]) |
      (((GtUword) bseqnum) << seedpairlist->bits_left_adjust[idx_bseqnum]);
  value_positions
    = (((GtUword) bpos) << seedpairlist->bits_left_adjust[idx_bpos]) |
      (((GtUword) apos) << seedpairlist->bits_left_adjust[idx_apos]);
  value_seqnums |= (value_positions >> seedpairlist->bits_units[0]);
  gt_diagbandseed_one_GtUword2bytestring(bytestring,sizeof (GtUword),
                                         value_seqnums);
  value_positions <<= seedpairlist->bits_left_adjust[idx_bseqnum];
  gt_diagbandseed_one_GtUword2bytestring(bytestring + sizeof (GtUword),
                                         seedpairlist->bytes_seedpair
                                         - sizeof (GtUword),
                                         value_positions);
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movl %edx, 0x24(%rsp)
movl %ecx, 0x20(%rsp)
movl %r8d, 0x1c(%rsp)
movl %r9d, 0x18(%rsp)
movl 0x24(%rsp), %eax
movq 0x28(%rsp), %rcx
movzwl 0x86(%rcx), %ecx
movl %ecx, %ecx
shlq %cl, %rax
movl 0x20(%rsp), %ecx
movl %ecx, %edx
movq 0x28(%rsp), %rcx
movzwl 0x88(%rcx), %ecx
movl %ecx, %ecx
shlq %cl, %rdx
movq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x10(%rsp)
movl 0x1c(%rsp), %eax
movq 0x28(%rsp), %rcx
movzwl 0x8a(%rcx), %ecx
movl %ecx, %ecx
shlq %cl, %rax
movl 0x18(%rsp), %ecx
movl %ecx, %edx
movq 0x28(%rsp), %rcx
movzwl 0x8c(%rcx), %ecx
movl %ecx, %ecx
shlq %cl, %rdx
movq %rdx, %rcx
orq %rcx, %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x28(%rsp), %rcx
movzwl 0x82(%rcx), %ecx
movl %ecx, %ecx
shrq %cl, %rax
orq 0x10(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x30(%rsp), %rdi
movq 0x10(%rsp), %rdx
movl $0x8, %esi
callq 0x21a980
movq 0x28(%rsp), %rax
movzwl 0x88(%rax), %ecx
movq 0x8(%rsp), %rax
movl %ecx, %ecx
shlq %cl, %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rdi
addq $0x8, %rdi
movq 0x28(%rsp), %rax
movq 0x90(%rax), %rsi
subq $0x8, %rsi
movq 0x8(%rsp), %rdx
callq 0x21a980
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_one_GtUword2bytestring
static void gt_diagbandseed_one_GtUword2bytestring(uint8_t *bytestring,
                                                   GtUword bytestring_length,
                                                   GtUword value)
{
  int idx, shift;

  for (idx = 0, shift = (sizeof (GtUword) - 1) * CHAR_BIT;
       idx < bytestring_length; idx++, shift -= CHAR_BIT)
  {
    bytestring[idx] = (uint8_t) (value >> shift);
  }
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq %rdx, -0x18(%rsp)
movl $0x0, -0x1c(%rsp)
movl $0x38, -0x20(%rsp)
movslq -0x1c(%rsp), %rax
cmpq -0x10(%rsp), %rax
jae 0x21a9de
movq -0x18(%rsp), %rax
movl -0x20(%rsp), %ecx
shrq %cl, %rax
movb %al, %dl
movq -0x8(%rsp), %rax
movslq -0x1c(%rsp), %rcx
movb %dl, (%rax,%rcx)
movl -0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rsp)
movl -0x20(%rsp), %eax
subl $0x8, %eax
movl %eax, -0x20(%rsp)
jmp 0x21a99f
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_seedpairlist_sort
static void gt_diagbandseed_seedpairlist_sort(GtSeedpairlist *seedpairlist)
{
  GtUword mlistlen = gt_seedpairlist_length(seedpairlist);

  if (mlistlen > 0)
  {
    if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_STRUCT)
    {
      gt_assert(seedpairlist->mlist_struct != NULL);
      gt_radixsort_inplace_Gtuint64keyPair(
            (Gtuint64keyPair *) seedpairlist->mlist_struct
                                            ->spaceGtDiagbandseedSeedPair,
            mlistlen);
    } else
    {
      if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_ULONG)
      {
        gt_assert(seedpairlist->mlist_ulong != NULL);
        gt_radixsort_inplace_ulong(seedpairlist->mlist_ulong->spaceGtUword,
                                   mlistlen);
      } else
      {
        gt_assert(seedpairlist->mlist_bytestring != NULL);
        gt_radixsort_inplace_flba(seedpairlist->mlist_bytestring->spaceuint8_t,
                                  gt_seedpairlist_length(seedpairlist),
                                  seedpairlist->bytes_seedpair);
      }
    }
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0x216940
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jbe 0x21b029
movq 0x10(%rsp), %rax
cmpl $0x0, 0x18(%rax)
jne 0x21af40
jmp 0x21aee1
movq 0x10(%rsp), %rax
cmpq $0x0, (%rax)
jne 0x21af24
movq 0x4210ad(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2fb116(%rip), %rsi    # 0x516013
leaq 0x358beb(%rip), %rdx    # 0x573aef
leaq 0x3583e3(%rip), %rcx    # 0x5732ee
leaq 0x357082(%rip), %r8     # 0x571f94
movl $0x6da, %r9d            # imm = 0x6DA
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21af26
movq 0x10(%rsp), %rax
movq (%rax), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x1017d0
jmp 0x21b027
movq 0x10(%rsp), %rax
cmpl $0x1, 0x18(%rax)
jne 0x21afab
jmp 0x21af4d
movq 0x10(%rsp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x21af91
movq 0x421040(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2fb0a9(%rip), %rsi    # 0x516013
leaq 0x358ffd(%rip), %rdx    # 0x573f6e
leaq 0x358376(%rip), %rcx    # 0x5732ee
leaq 0x357015(%rip), %r8     # 0x571f94
movl $0x6e3, %r9d            # imm = 0x6E3
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21af93
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq 0x8(%rsp), %rsi
callq 0x100d90
jmp 0x21b025
jmp 0x21afad
movq 0x10(%rsp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x21aff1
movq 0x420fe0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2fb049(%rip), %rsi    # 0x516013
leaq 0x3570da(%rip), %rdx    # 0x5720ab
leaq 0x358316(%rip), %rcx    # 0x5732ee
leaq 0x356fb5(%rip), %r8     # 0x571f94
movl $0x6e8, %r9d            # imm = 0x6E8
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21aff3
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, (%rsp)
movq 0x10(%rsp), %rdi
callq 0x216940
movq (%rsp), %rdi
movq %rax, %rsi
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rdx
callq 0x101820
jmp 0x21b027
jmp 0x21b029
addq $0x18, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_seedpairlist_out
static void gt_diagbandseed_seedpairlist_out(FILE *stream,
                                             const GtSeedpairlist *seedpairlist)
{
  GtUword spidx, mlistlen = gt_seedpairlist_length(seedpairlist);

  for (spidx = 0; spidx < mlistlen; spidx++)
  {
    gt_assert(spidx == 0 ||
              gt_diagbandseed_seeds_compare(seedpairlist,spidx) < 0);
    fprintf(stream, "# SeedPair ");
    gt_diagbandseed_show_seed(stream,seedpairlist,spidx);
    fprintf(stream, "\n");
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0x216940
movq %rax, 0x8(%rsp)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jae 0x21b10b
jmp 0x21b068
cmpq $0x0, 0x10(%rsp)
je 0x21b0bc
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x21b110
cmpl $0x0, %eax
jl 0x21b0bc
movq 0x420f15(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2faf7e(%rip), %rsi    # 0x516013
leaq 0x358274(%rip), %rdx    # 0x573310
leaq 0x3582b1(%rip), %rcx    # 0x573354
leaq 0x356eea(%rip), %r8     # 0x571f94
movl $0x7a1, %r9d            # imm = 0x7A1
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21b0be
movq 0x20(%rsp), %rdi
leaq 0x3582ab(%rip), %rsi    # 0x573375
movb $0x0, %al
callq 0x199f0
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x21b2e0
movq 0x20(%rsp), %rdi
leaq 0x378182(%rip), %rsi    # 0x593273
movb $0x0, %al
callq 0x199f0
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x21b056
addq $0x28, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_show_seed
static void gt_diagbandseed_show_seed(FILE *stream,
                                      const GtSeedpairlist *seedpairlist,
                                      GtUword spidx)
{
  GtDiagbandseedSeedPair seedpair;
  GtDiagbandseedPosition apos;

  gt_seedpairlist_at(&seedpair,seedpairlist,spidx);
  apos = GT_DIAGBANDSEED_GETPOS_A(&seedpair);
  fprintf(stream, "(%" PRIu32 ",%" PRIu32 ",%" PRIu32 ",%" GT_WUS ")",
                  seedpair.aseqnum,
                  seedpair.bseqnum,
                  apos,
                  GT_DIAGBANDSEED_CONV_B(apos,
                                         GT_DIAGBANDSEED_GETPOS_B(&seedpair)));
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x38(%rsp), %rsi
movq 0x30(%rsp), %rdx
leaq 0x20(%rsp), %rdi
callq 0x21b390
movl 0x28(%rsp), %eax
movl %eax, 0x1c(%rsp)
movq 0x40(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0x24(%rsp), %eax
movl %eax, 0x10(%rsp)
movl 0x20(%rsp), %eax
movl %eax, 0x14(%rsp)
movl 0x1c(%rsp), %eax
movl %eax, 0x18(%rsp)
movq 0x38(%rsp), %rax
testb $0x1, 0xb0(%rax)
je 0x21b35c
movl 0x2c(%rsp), %eax
movl 0x1c(%rsp), %ecx
addq %rcx, %rax
movq 0x38(%rsp), %rcx
subq 0xb8(%rcx), %rax
movq %rax, (%rsp)
jmp 0x21b364
movl 0x2c(%rsp), %eax
movq %rax, (%rsp)
movl 0x18(%rsp), %r8d
movl 0x14(%rsp), %ecx
movl 0x10(%rsp), %edx
movq 0x8(%rsp), %rdi
movq (%rsp), %r9
leaq 0x35801e(%rip), %rsi    # 0x57339f
movb $0x0, %al
callq 0x199f0
addq $0x48, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_at
static void gt_seedpairlist_at(GtDiagbandseedSeedPair *seedpair,
                               const GtSeedpairlist *seedpairlist,
                               GtUword spidx)
{
  if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_STRUCT)
  {
    *seedpair = seedpairlist->mlist_struct->spaceGtDiagbandseedSeedPair[spidx];
  } else
  {
    if (seedpairlist->splt == GT_DIAGBANDSEED_BASE_LIST_ULONG)
    {
      GtDiagbandseedPosition apos, bpos;

      seedpair->aseqnum
        = gt_seedpairlist_extract_ulong_at(seedpairlist,spidx,idx_aseqnum);
      seedpair->bseqnum
        = gt_seedpairlist_extract_ulong_at(seedpairlist,spidx,idx_bseqnum);
      apos = gt_seedpairlist_extract_ulong_at(seedpairlist,spidx,idx_apos),
      bpos = gt_seedpairlist_extract_ulong_at(seedpairlist,spidx,idx_bpos);
      GT_DIAGBANDSEED_SETPOS(seedpair,apos,bpos); /* set for ulong */
    } else
    {
      gt_diagbandseed_decode_seedpair(seedpair,seedpairlist,
                                      spidx * seedpairlist->bytes_seedpair);
    }
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x18(%rsp), %rax
cmpl $0x0, 0x18(%rax)
jne 0x21b3dd
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq (%rcx), %rcx
movq (%rcx), %rcx
movq 0x10(%rsp), %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x21b491
movq 0x18(%rsp), %rax
cmpl $0x1, 0x18(%rax)
jne 0x21b46e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
xorl %edx, %edx
callq 0x21b4a0
movl %eax, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x4(%rax)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x1, %edx
callq 0x21b4a0
movl %eax, %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x3, %edx
callq 0x21b4a0
movl %eax, 0xc(%rsp)
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
movl $0x2, %edx
callq 0x21b4a0
movl %eax, 0x8(%rsp)
movl 0x8(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0xc(%rax)
movl 0xc(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0x8(%rax)
jmp 0x21b48f
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq 0x18(%rsp), %rax
imulq 0x90(%rax), %rdx
callq 0x21b4e0
jmp 0x21b491
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_seedpairlist_extract_ulong_at
static GtUword gt_seedpairlist_extract_ulong_at(
                                   const GtSeedpairlist *seedpairlist,
                                   GtUword spidx,
                                   int compidx)
{
  return gt_seedpairlist_extract_ulong(seedpairlist,
                                       seedpairlist->mlist_ulong->
                                                     spaceGtUword[spidx],
                                       compidx);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movl %edx, 0x4(%rsp)
movq 0x10(%rsp), %rdi
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq 0x8(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movl 0x4(%rsp), %edx
callq 0x21b630
addq $0x18, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_bytestring2GtUword
static GtUword gt_diagbandseed_bytestring2GtUword(const uint8_t *bytestring,
                                                  GtUword bytestring_length)
{
  int idx, shift;
  GtUword value = 0;

  for (idx = 0, shift = (sizeof (GtUword) - 1) * CHAR_BIT;
       idx < bytestring_length; idx++, shift -= CHAR_BIT)
  {
    value |= (((GtUword) bytestring[idx]) << shift);
  }
  return value;
}

// Assembly:
movq %rdi, -0x8(%rsp)
movq %rsi, -0x10(%rsp)
movq $0x0, -0x20(%rsp)
movl $0x0, -0x14(%rsp)
movl $0x38, -0x18(%rsp)
movslq -0x14(%rsp), %rax
cmpq -0x10(%rsp), %rax
jae 0x21b6d6
movq -0x8(%rsp), %rax
movslq -0x14(%rsp), %rcx
movzbl (%rax,%rcx), %eax
movl -0x18(%rsp), %ecx
shlq %cl, %rax
orq -0x20(%rsp), %rax
movq %rax, -0x20(%rsp)
movl -0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rsp)
movl -0x18(%rsp), %eax
subl $0x8, %eax
movl %eax, -0x18(%rsp)
jmp 0x21b693
movq -0x20(%rsp), %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_extendSI_delete
static void gt_diagbandseed_extendSI_delete(
                                        GtDiagbandseedExtendSegmentInfo * esi)
{
  if (esi != NULL)
  {
    gt_querymatch_delete(esi->info_querymatch.querymatchspaceptr);
    gt_diagbandseed_plainsequence_delete(&esi->plainsequence_info);
    gt_free(esi);
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
je 0x21cc4e
movq (%rsp), %rax
movq 0x110(%rax), %rdi
callq 0x267b60
movq (%rsp), %rdi
addq $0x30, %rdi
callq 0x21e1c0
movq (%rsp), %rdi
leaq 0x355350(%rip), %rsi    # 0x571f94
movl $0xde8, %edx            # imm = 0xDE8
callq 0xe88c0
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_diagbandseed_info_qm_set
static void gt_diagbandseed_info_qm_set(
                                   GtProcessinfo_and_querymatchspaceptr *ifqm,
                                   const GtDiagbandseedExtendParams *extp,
                                   GtQuerymatchoutoptions *querymoutopt,
                                   GtReadmode query_readmode,
                                   FILE *stream,
                                   const GtKarlinAltschulStat
                                     *karlin_altschul_stat,
                                   void *processinfo)
{
  ifqm->processinfo = processinfo;
  if (extp->ani_accumulate != NULL)
  {
    ifqm->querymatchspaceptr = NULL;
  } else
  {
    ifqm->querymatchspaceptr = gt_querymatch_new();
    if (extp->verify_alignment)
    {
      gt_querymatch_verify_alignment_set(ifqm->querymatchspaceptr);
    }
    if (querymoutopt != NULL) {
      gt_querymatch_outoptions_set(ifqm->querymatchspaceptr,querymoutopt);
    }
    gt_querymatch_query_readmode_set(ifqm->querymatchspaceptr,query_readmode);
    gt_querymatch_file_set(ifqm->querymatchspaceptr, stream);
  }
  ifqm->karlin_altschul_stat = karlin_altschul_stat;
  ifqm->out_display_flag = extp->out_display_flag;;
  ifqm->previous_match_a_start = 0;
  ifqm->previous_match_a_end = 0;
  ifqm->previous_match_b_start = 0;
  ifqm->previous_match_b_end = 0;
  ifqm->previous_match_distance = 0;
  ifqm->previous_match_mismatches = 0;
}

// Assembly:
subq $0x38, %rsp
movq 0x40(%rsp), %rax
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movl %ecx, 0x1c(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
movq 0x40(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x28(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x21d07e
movq 0x30(%rsp), %rax
movq $0x0, 0x8(%rax)
jmp 0x21d0e8
callq 0x267320
movq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x28(%rsp), %rax
testb $0x1, 0x7d(%rax)
je 0x21d0a8
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x2677c0
cmpq $0x0, 0x20(%rsp)
je 0x21d0c3
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x20(%rsp), %rsi
callq 0x2675a0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movl 0x1c(%rsp), %esi
callq 0x2677a0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x10(%rsp), %rsi
callq 0x267630
movq 0x8(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x28(%rsp), %rax
movq 0x58(%rax), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x30(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x30(%rsp), %rax
movq $0x0, 0x48(%rax)
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/diagbandseed.c
// Function: gt_segment_reject_register_match
static void gt_segment_reject_register_match(GtSegmentRejectInfo
                                                *segment_reject_info,
                                             GtUword bseqnum)
{
  GtUword idx;

  gt_assert(segment_reject_info !=NULL);
  idx = bseqnum - segment_reject_info->b_firstseq;
  gt_assert(bseqnum >= segment_reject_info->b_firstseq &&
            idx < segment_reject_info->b_numsequences &&
            !GT_ISIBITSET(segment_reject_info->b_bitsequence,idx));
  GT_SETIBIT(segment_reject_info->b_bitsequence,idx);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
jne 0x21d87e
movq 0x41e753(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2f87bc(%rip), %rsi    # 0x516013
leaq 0x356172(%rip), %rdx    # 0x5739d0
leaq 0x356186(%rip), %rcx    # 0x5739eb
leaq 0x354728(%rip), %r8     # 0x571f94
movl $0xde, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21d880
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
subq (%rcx), %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq (%rcx), %rax
jb 0x21d8e5
movq (%rsp), %rax
movq 0x10(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x21d8e5
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rsp), %rcx
shrq $0x6, %rcx
movq (%rax,%rcx,8), %rax
movq (%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq %rdx, %rcx
andq %rcx, %rax
cmpq $0x0, %rax
je 0x21d91d
movq 0x41e6b4(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2f871d(%rip), %rsi    # 0x516013
leaq 0x35610f(%rip), %rdx    # 0x573a0c
leaq 0x3560e7(%rip), %rcx    # 0x5739eb
leaq 0x354689(%rip), %r8     # 0x571f94
movl $0xe2, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x21d91f
movq (%rsp), %rcx
andq $0x3f, %rcx
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
shrq %cl, %rdx
movq 0x10(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rsp), %rcx
shrq $0x6, %rcx
orq (%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)