// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/match/fmi-save.c
// Function: writefmascii
static int writefmascii(const char *indexname,
                        const Fmindex *fm,
                        const GtSpecialcharinfo *specialcharinfo,
                        bool storeindexpos,
                        GtError *err)
{
  FILE *fmafp;

  gt_error_check(err);
  fmafp = gt_fa_fopen_with_suffix(indexname,FMASCIIFILESUFFIX,"wb",err);
  if (fmafp == NULL)
  {
    return -1;
  }
  fprintf (fmafp, "bwtlength=" GT_WU "\n",
           fm->bwtlength);
  fprintf (fmafp, "longest=" GT_WU "\n",
                   fm->longestsuffixpos);
  fprintf (fmafp, "storeindexpos=%d\n", storeindexpos ? 1 : 0);
  fprintf (fmafp, "log2blocksize=%u\n", fm->log2bsize);
  fprintf (fmafp, "log2markdist=%u\n", fm->log2markdist);
  fprintf (fmafp, "specialcharacters=" GT_WU "\n",
           specialcharinfo->specialcharacters);
  fprintf (fmafp, "specialranges=" GT_WU "\n",specialcharinfo->specialranges);
  fprintf (fmafp, "realspecialranges=" GT_WU "\n",
           specialcharinfo->realspecialranges);
  fprintf (fmafp, "lengthofspecialprefix=" GT_WU "\n",
           specialcharinfo->lengthofspecialprefix);
  fprintf (fmafp, "lengthofspecialsuffix=" GT_WU "\n",
           specialcharinfo->lengthofspecialsuffix);
  fprintf (fmafp, "wildcards=" GT_WU "\n",specialcharinfo->wildcards);
  fprintf (fmafp, "wildcardranges=" GT_WU "\n",specialcharinfo->wildcardranges);
  fprintf (fmafp, "realwildcardranges=" GT_WU "\n",
                   specialcharinfo->realwildcardranges);
  fprintf (fmafp, "lengthofwildcardprefix=" GT_WU "\n",
           specialcharinfo->lengthofwildcardprefix);
  fprintf (fmafp, "lengthofwildcardsuffix=" GT_WU "\n",
           specialcharinfo->lengthofwildcardsuffix);
  fprintf (fmafp, "suffixlength=%u\n", fm->suffixlength);
  gt_fa_xfclose(fmafp);
  return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r15
movl %ecx, %r12d
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r13
testq %r8, %r8
je 0x1aea2b
movq %r15, %rdi
callq 0xfcc32
testb %al, %al
jne 0x1aebd4
leaq 0x1f7ba4(%rip), %rsi    # 0x3a65d6
leaq 0x1a70a8(%rip), %rdx    # 0x355ae1
leaq 0x1f7e9a(%rip), %rcx    # 0x3a68da
movq %r13, %rdi
movl $0x22, %r8d
movq %r15, %r9
callq 0xfcf97
testq %rax, %rax
je 0x1aebbe
movq %rax, %r15
movq 0x10(%rbx), %rdx
leaq 0x1f7e94(%rip), %rsi    # 0x3a68fc
xorl %ebp, %ebp
movq %rax, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x30(%rbx), %rdx
leaq 0x1f7e8c(%rip), %rsi    # 0x3a690b
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movzbl %r12b, %edx
leaq 0x1f7e84(%rip), %rsi    # 0x3a6918
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movl 0x88(%rbx), %edx
leaq 0x1f7e7f(%rip), %rsi    # 0x3a692a
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movl 0x94(%rbx), %edx
leaq 0x1f7e7a(%rip), %rsi    # 0x3a693c
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq (%r14), %rdx
leaq 0x1f7e77(%rip), %rsi    # 0x3a694d
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x8(%r14), %rdx
leaq 0x1f7e7d(%rip), %rsi    # 0x3a6968
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x10(%r14), %rdx
leaq 0x1f7e64(%rip), %rsi    # 0x3a6964
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x18(%r14), %rdx
leaq 0x1f7e66(%rip), %rsi    # 0x3a697b
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x20(%r14), %rdx
leaq 0x1f7e6c(%rip), %rsi    # 0x3a6996
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x28(%r14), %rdx
leaq 0x1f7e72(%rip), %rsi    # 0x3a69b1
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x30(%r14), %rdx
leaq 0x1f7e70(%rip), %rsi    # 0x3a69c4
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x38(%r14), %rdx
leaq 0x1f7e57(%rip), %rsi    # 0x3a69c0
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x40(%r14), %rdx
leaq 0x1f7e5a(%rip), %rsi    # 0x3a69d8
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq 0x48(%r14), %rdx
leaq 0x1f7e61(%rip), %rsi    # 0x3a69f4
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movl 0x98(%rbx), %edx
leaq 0x1f7e66(%rip), %rsi    # 0x3a6a10
movq %r15, %rdi
xorl %eax, %eax
callq 0x17ab0
movq %r15, %rdi
callq 0xfd09a
jmp 0x1aebc3
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x648c6
nopl (%rax)