// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/fmi-mapspec.c
// Function: assignfmmapspecification
static void assignfmmapspecification(GtMapspec *mapspec,
                                     void *data,
                                     GT_UNUSED bool writemode)
{
  Fmindexwithoptions *fmwithoptions = (Fmindexwithoptions *) data;
  Fmindex *fmindex;

  fmindex = fmwithoptions->fmptr;
  gt_mapspec_add_ulong(mapspec, fmindex->tfreq,
                       (GtUword) TFREQSIZE(fmindex->mapsize));
  gt_mapspec_add_ulong(mapspec, fmindex->superbfreq,
                       (GtUword) SUPERBFREQSIZE(fmindex->mapsize,
                                                      fmindex->nofsuperblocks));
  gt_mapspec_add_ulong(mapspec, fmindex->markpostable,
                       fmwithoptions->storeindexpos
                       ? (GtUword) MARKPOSTABLELENGTH(fmindex->bwtlength,
                                                            fmindex->markdist)
                       : 0);
  gt_mapspec_add_ulongbound(mapspec, fmindex->boundarray,
                            (GtUword) fmindex->numofcodes);
  gt_mapspec_add_pairbwtindex(mapspec, fmindex->specpos.spaceGtPairBwtidx,
                              fmwithoptions->storeindexpos
                              ? fmindex->specpos.nextfreeGtPairBwtidx
                              : 0);
  gt_mapspec_add_uchar(mapspec, fmindex->bfreq,
                (GtUword) BFREQSIZE(fmindex->mapsize,fmindex->nofblocks));
}

// Assembly:
subq $0x58, %rsp
movb %dl, %al
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
andb $0x1, %al
movb %al, 0x47(%rsp)
movq 0x48(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x30(%rsp)
movq 0x50(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x18, %rsi
movq 0x30(%rsp), %rax
movl 0x78(%rax), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %edx
callq 0xead10
movq 0x50(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x20, %rsi
movq 0x30(%rsp), %rax
movl 0x78(%rax), %eax
movl %eax, %edx
movq 0x30(%rsp), %rax
imulq 0xb0(%rax), %rdx
callq 0xead10
movq 0x50(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x30(%rsp), %rax
addq $0x28, %rax
movq %rax, 0x28(%rsp)
movq 0x38(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x24cfd2
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
movq 0x30(%rsp), %rcx
xorl %edx, %edx
divq 0xb8(%rcx)
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x24cfdb
xorl %eax, %eax
movq %rax, 0x18(%rsp)
jmp 0x24cfdb
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rdx
callq 0xead10
movq 0x50(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0xc8, %rsi
movq 0x30(%rsp), %rax
movq 0xc0(%rax), %rdx
callq 0xeaed0
movq 0x50(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x30(%rsp), %rax
addq $0x50, %rax
movq %rax, 0x10(%rsp)
movq 0x38(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x24d043
movq 0x30(%rsp), %rax
movq 0x60(%rax), %rax
movq %rax, (%rsp)
jmp 0x24d04b
xorl %eax, %eax
movq %rax, (%rsp)
jmp 0x24d04b
movq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
movq (%rsp), %rdx
callq 0xebcd0
movq 0x50(%rsp), %rdi
movq 0x30(%rsp), %rsi
addq $0x8, %rsi
movq 0x30(%rsp), %rax
movl 0x78(%rax), %eax
movl %eax, %edx
movq 0x30(%rsp), %rax
imulq 0xa8(%rax), %rdx
callq 0xea990
addq $0x58, %rsp
retq
nopl (%rax)