// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/fmi-sufbwtstream.c
// Function: allocatefmtables
static void allocatefmtables(Fmindex *fm,
                             const GtSpecialcharinfo *specialcharinfo,
                             bool storeindexpos)
{
  fm->tfreq = gt_malloc(sizeof *fm->tfreq * TFREQSIZE(fm->mapsize));
  fm->superbfreq = gt_malloc(sizeof *fm->superbfreq
                             * SUPERBFREQSIZE(fm->mapsize,fm->nofsuperblocks));
  if (storeindexpos)
  {
    fm->markpostable = gt_malloc(sizeof *fm->markpostable
                                 * MARKPOSTABLELENGTH(fm->bwtlength,
                                                      fm->markdist));
    fm->specpos.nextfreeGtPairBwtidx = 0;
    fm->specpos.allocatedGtPairBwtidx
      = (GtUword) gt_determinenumberofspecialstostore(specialcharinfo);
    printf("# "GT_WU" wildcards in the last "GT_WU" characters (%.2f)\n",
           (GtUword) specialcharinfo->specialcharacters -
                           fm->specpos.allocatedGtPairBwtidx,
           specialcharinfo->specialcharacters,
            (double) (specialcharinfo->specialcharacters -
                      fm->specpos.allocatedGtPairBwtidx)/
                     specialcharinfo->specialcharacters);
    fm->specpos.spaceGtPairBwtidx
      = gt_malloc(sizeof *fm->specpos.spaceGtPairBwtidx
                  * fm->specpos.allocatedGtPairBwtidx);
  } else
  {
    GT_INITARRAY(&fm->specpos,GtPairBwtidx);
    fm->markpostable = NULL;
  }
  fm->bfreq = gt_malloc(sizeof *fm->bfreq
                        * BFREQSIZE(fm->mapsize,fm->nofblocks));
}

// Assembly:
subq $0x18, %rsp
movb %dl, %al
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
andb $0x1, %al
movb %al, 0x7(%rsp)
movq 0x10(%rsp), %rax
movl 0x78(%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edi
shlq $0x3, %rdi
leaq 0x32a673(%rip), %rsi    # 0x579223
movl $0x60, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rax
movl 0x78(%rax), %eax
movl %eax, %edi
movq 0x10(%rsp), %rax
imulq 0xb0(%rax), %rdi
shlq $0x3, %rdi
leaq 0x32a63b(%rip), %rsi    # 0x579223
movl $0x62, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
testb $0x1, 0x7(%rsp)
je 0x24ecfd
movq 0x10(%rsp), %rcx
movq 0x10(%rcx), %rax
movq 0xb8(%rcx), %rcx
decq %rax
xorl %edx, %edx
divq %rcx
leaq 0x8(,%rax,8), %rdi
leaq 0x32a5f3(%rip), %rsi    # 0x579223
movl $0x67, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x8(%rsp), %rdi
callq 0x4c1360
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x58(%rax)
movq 0x8(%rsp), %rax
movq (%rax), %rdx
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rax
movq %rdx, %rsi
subq %rax, %rsi
movq %rsi, %xmm0
movaps 0x2c9ca4(%rip), %xmm3   # 0x518930
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x2c9ca8(%rip), %xmm2   # 0x518940
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movq %rdx, %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
leaq 0x32a6c1(%rip), %rdi    # 0x57938b
movb $0x1, %al
callq 0x19070
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rdi
shlq $0x4, %rdi
leaq 0x32a53e(%rip), %rsi    # 0x579223
movl $0x74, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x50(%rax)
jmp 0x24ed33
jmp 0x24ecff
movq 0x10(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x60(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x10(%rsp), %rax
movq $0x0, 0x28(%rax)
movq 0x10(%rsp), %rax
movl 0x78(%rax), %eax
movl %eax, %edi
movq 0x10(%rsp), %rax
imulq 0xa8(%rax), %rdi
shlq $0x0, %rdi
leaq 0x32a4ce(%rip), %rsi    # 0x579223
movl $0x7b, %edx
callq 0xe80f0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
addq $0x18, %rsp
retq