// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/bcktab.c
// Function: assignbcktabmapspecification
static void assignbcktabmapspecification(GtMapspec *mapspec,
                                         void *data,
                                         bool writemode)
{
  GtBcktab *bcktab = (GtBcktab *) data;

  if (bcktab->useulong)
  {
    gt_mapspec_add_ulong(mapspec, bcktab->leftborder.ulongbounds,
                         (GtUword) (bcktab->numofallcodes+1));
  } else
  {
    gt_mapspec_add_uint32(mapspec, bcktab->leftborder.uintbounds,
                          (GtUword) (bcktab->numofallcodes+1));
  }
  if (bcktab->withspecialsuffixes)
  {
    if (bcktab->useulong)
    {
      gt_mapspec_add_ulong(mapspec, bcktab->ulongcountspecialcodes,
                           (GtUword) bcktab->numofspecialcodes);
    } else
    {
      gt_mapspec_add_uint32(mapspec, bcktab->uintcountspecialcodes,
                            (GtUword) bcktab->numofspecialcodes);
    }
    if (bcktab->numofdistpfxidxcounters > 0)
    {
      if (!writemode)
      {
        if (bcktab->useulong)
        {
          bcktab->ulongdistpfxidx = gt_malloc(sizeof (void *) *
                                              (bcktab->prefixlength-1));
        } else
        {
          bcktab->uintdistpfxidx = gt_malloc(sizeof (void *) *
                                             (bcktab->prefixlength-1));
        }
      }
      if (bcktab->useulong)
      {
        gt_mapspec_add_ulong(mapspec, bcktab->ulongdistpfxidx[0],
                             bcktab->numofdistpfxidxcounters);
      } else
      {
        gt_mapspec_add_uint32(mapspec, bcktab->uintdistpfxidx[0],
                              bcktab->numofdistpfxidxcounters);
      }
    }
  }
}

// Assembly:
subq $0x28, %rsp
movb %dl, %al
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
testb $0x1, 0xa2(%rax)
je 0x204940
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
addq $0x8, %rsi
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rdx
addq $0x1, %rdx
callq 0xead10
jmp 0x20495c
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rdx
addq $0x1, %rdx
callq 0xeb090
movq 0x8(%rsp), %rax
testb $0x1, 0xa1(%rax)
je 0x204a8b
movq 0x8(%rsp), %rax
testb $0x1, 0xa2(%rax)
je 0x20499a
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
addq $0x20, %rsi
movq 0x8(%rsp), %rax
movq 0x60(%rax), %rdx
callq 0xead10
jmp 0x2049b6
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rsi
addq $0x10, %rsi
movq 0x8(%rsp), %rax
movq 0x60(%rax), %rdx
callq 0xeb090
movq 0x8(%rsp), %rax
cmpq $0x0, 0x40(%rax)
jbe 0x204a89
testb $0x1, 0x17(%rsp)
jne 0x204a3f
movq 0x8(%rsp), %rax
testb $0x1, 0xa2(%rax)
je 0x204a0d
movq 0x8(%rsp), %rax
movl 0x48(%rax), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %edi
shlq $0x3, %rdi
leaq 0x36c41d(%rip), %rsi    # 0x570e12
movl $0x228, %edx            # imm = 0x228
callq 0xe80f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
jmp 0x204a3d
movq 0x8(%rsp), %rax
movl 0x48(%rax), %eax
subl $0x1, %eax
movl %eax, %eax
movl %eax, %edi
shlq $0x3, %rdi
leaq 0x36c3eb(%rip), %rsi    # 0x570e12
movl $0x22c, %edx            # imm = 0x22C
callq 0xe80f0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
jmp 0x204a3f
movq 0x8(%rsp), %rax
testb $0x1, 0xa2(%rax)
je 0x204a6b
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rdx
callq 0xead10
jmp 0x204a87
movq 0x20(%rsp), %rdi
movq 0x8(%rsp), %rax
movq 0x18(%rax), %rsi
movq 0x8(%rsp), %rax
movq 0x40(%rax), %rdx
callq 0xeb090
jmp 0x204a89
jmp 0x204a8b
addq $0x28, %rsp
retq