// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/sfx-maprange.c
// Function: gt_Sfxmappedrange_storetmp
static void gt_Sfxmappedrange_storetmp(GtSfxmappedrange *sfxmappedrange,
                                       GtSfxStoretype usedptrptr,
                                       GtSfxmappedrangetype type,
                                       bool writable)
{
  FILE *outfp;

  gt_assert(sfxmappedrange != NULL);
  sfxmappedrange->ptr = NULL;
  sfxmappedrange->filename = gt_str_new();
  sfxmappedrange->writable = writable;
  outfp = gt_xtmpfp(sfxmappedrange->filename);
  gt_assert(outfp != NULL);
  gt_log_log("write %s to file %s ("GT_WU" units of "GT_WU" bytes)",
             gt_str_get(sfxmappedrange->tablename),
             gt_str_get(sfxmappedrange->filename),
             (GtUword) sfxmappedrange->numofunits,
             (GtUword) sfxmappedrange->sizeofunit);
  switch (type) {
    case GtSfxGtBitsequence:
      gt_xfwrite(*(usedptrptr.bs),sfxmappedrange->sizeofunit,
                 sfxmappedrange->numofunits,outfp);
      sfxmappedrange->usedptrptr = (void**) usedptrptr.bs;
      gt_free(*(usedptrptr.bs));
      *(usedptrptr.bs) = NULL;
      break;
    case GtSfxunsignedlong:
      gt_xfwrite(*(usedptrptr.ulong),sfxmappedrange->sizeofunit,
                 sfxmappedrange->numofunits,outfp);
      sfxmappedrange->usedptrptr = (void**) usedptrptr.ulong;
      gt_free(*(usedptrptr.ulong));
      *(usedptrptr.ulong) = NULL;
      break;
    case GtSfxuint32_t:
      gt_xfwrite(*(usedptrptr.uint32),sfxmappedrange->sizeofunit,
                 sfxmappedrange->numofunits,outfp);
      sfxmappedrange->usedptrptr = (void**) usedptrptr.uint32;
      gt_free(*(usedptrptr.uint32));
      *(usedptrptr.uint32) = NULL;
      break;
   }
   gt_fa_fclose(outfp);
}

// Assembly:
subq $0x38, %rsp
movb %cl, %al
movq %rsi, 0x30(%rsp)
movq %rdi, 0x28(%rsp)
movl %edx, 0x24(%rsp)
andb $0x1, %al
movb %al, 0x23(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x2cbe4a
movq 0x370187(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x24a1f0(%rip), %rsi    # 0x516013
leaq 0x2bf554(%rip), %rdx    # 0x58b37e
leaq 0x2bf903(%rip), %rcx    # 0x58b734
leaq 0x2bf57b(%rip), %r8     # 0x58b3b3
movl $0xa7, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2cbe4c
movq 0x28(%rsp), %rax
movq $0x0, (%rax)
callq 0x11d4a0
movq %rax, %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x18(%rax)
movb 0x23(%rsp), %cl
movq 0x28(%rsp), %rax
andb $0x1, %cl
movb %cl, 0x70(%rax)
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
leaq 0x2bf529(%rip), %rdx    # 0x58b3b3
movl $0xab, %ecx
callq 0xd9e50
movq %rax, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x2cbed9
movq 0x3700f8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x24a161(%rip), %rsi    # 0x516013
leaq 0x264f90(%rip), %rdx    # 0x530e49
leaq 0x2bf874(%rip), %rcx    # 0x58b734
leaq 0x2bf4ec(%rip), %r8     # 0x58b3b3
movl $0xac, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x2cbedb
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dee0
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dee0
movq 0x8(%rsp), %rsi
movq %rax, %rdx
movq 0x28(%rsp), %rax
movq 0x30(%rax), %rcx
movq 0x38(%rax), %r8
leaq 0x2bf837(%rip), %rdi    # 0x58b74f
xorl %eax, %eax
callq 0xe7740
movl 0x24(%rsp), %eax
movl %eax, 0x14(%rsp)
testl %eax, %eax
je 0x2cbf4a
jmp 0x2cbf2d
movl 0x14(%rsp), %eax
subl $0x1, %eax
je 0x2cbfa6
jmp 0x2cbf38
movl 0x14(%rsp), %eax
subl $0x2, %eax
je 0x2cbfff
jmp 0x2cc056
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x28(%rsp), %rax
movq 0x30(%rax), %rdx
movq 0x18(%rsp), %rcx
callq 0x126d30
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
leaq 0x2bf428(%rip), %rsi    # 0x58b3b3
movl $0xb7, %edx
callq 0xe88c0
movq 0x30(%rsp), %rax
movq $0x0, (%rax)
jmp 0x2cc056
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x28(%rsp), %rax
movq 0x30(%rax), %rdx
movq 0x18(%rsp), %rcx
callq 0x126d30
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
leaq 0x2bf3cc(%rip), %rsi    # 0x58b3b3
movl $0xbe, %edx
callq 0xe88c0
movq 0x30(%rsp), %rax
movq $0x0, (%rax)
jmp 0x2cc056
movq 0x30(%rsp), %rax
movq (%rax), %rdi
movq 0x28(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x28(%rsp), %rax
movq 0x30(%rax), %rdx
movq 0x18(%rsp), %rcx
callq 0x126d30
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rdi
leaq 0x2bf373(%rip), %rsi    # 0x58b3b3
movl $0xc5, %edx
callq 0xe88c0
movq 0x30(%rsp), %rax
movq $0x0, (%rax)
movq 0x18(%rsp), %rdi
callq 0xd9390
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)