// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/firstcodes.c
// Function: gt_firstcode_delete_before_end
static void gt_firstcode_delete_before_end(GtFirstcodesinfo *fci)
{
  gt_firstcodes_binsearchcache_delete(fci->binsearchcache,fci->fcsl);
  if (fci->radixsort_codepos != NULL)
  {
    gt_radixsort_delete(fci->radixsort_codepos);
    GT_FCI_SUBTRACTWORKSPACE(fci->fcsl,"radixsort_codepos");
    fci->radixsort_codepos = NULL;
  }
  if (fci->mappedmarkprefix != NULL)
  {
    gt_Sfxmappedrange_delete(fci->mappedmarkprefix);
    gt_marksubstring_delete(fci->buf.markprefix,true);
  } else
  {
    gt_marksubstring_delete(fci->buf.markprefix,true);
    if (fci->buf.markprefix != NULL)
    {
      GT_FCI_SUBTRACTSPLITSPACE(fci->fcsl,"markprefix");
    }
  }
  fci->buf.markprefix = NULL;
  gt_marksubstring_delete(fci->buf.marksuffix,true);
  if (fci->buf.marksuffix != NULL)
  {
    GT_FCI_SUBTRACTWORKSPACE(fci->fcsl,"marksuffix");
  }
  fci->buf.marksuffix = NULL;
  if (fci->mappedallfirstcodes == NULL && fci->allfirstcodes != NULL)
  {
    gt_free(fci->allfirstcodes);
    fci->allfirstcodes = NULL;
    GT_FCI_SUBTRACTSPLITSPACE(fci->fcsl,"allfirstcodes");
  }
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq 0x48(%rax), %rdi
movq 0x10(%rsp), %rax
movq 0xa8(%rax), %rsi
callq 0x4ba9e0
movq 0x10(%rsp), %rax
cmpq $0x0, 0x70(%rax)
je 0x249690
movq 0x10(%rsp), %rax
movq 0x70(%rax), %rdi
callq 0x1008f0
movq 0x10(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x261, %esi            # imm = 0x261
leaq 0x32eb97(%rip), %rdx    # 0x5781fc
xorl %ecx, %ecx
leaq 0x32ecbc(%rip), %r8     # 0x57832a
movl $0x1, %r9d
xorl %eax, %eax
movq $0x0, (%rsp)
callq 0x4bea60
movq 0x10(%rsp), %rax
movq $0x0, 0x70(%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x90(%rax)
je 0x2496c8
movq 0x10(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x2cca80
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rdi
movl $0x1, %esi
callq 0x261020
jmp 0x249723
movq 0x10(%rsp), %rax
movq 0xd0(%rax), %rdi
movl $0x1, %esi
callq 0x261020
movq 0x10(%rsp), %rax
cmpq $0x0, 0xd0(%rax)
je 0x249721
movq 0x10(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x26d, %esi            # imm = 0x26D
leaq 0x32eaf7(%rip), %rdx    # 0x5781fc
xorl %r9d, %r9d
leaq 0x32edfa(%rip), %r8     # 0x578509
xorl %eax, %eax
movl %r9d, %ecx
movq $0x0, (%rsp)
callq 0x4bea60
jmp 0x249723
movq 0x10(%rsp), %rax
movq $0x0, 0xd0(%rax)
movq 0x10(%rsp), %rax
movq 0xd8(%rax), %rdi
movl $0x1, %esi
callq 0x261020
movq 0x10(%rsp), %rax
cmpq $0x0, 0xd8(%rax)
je 0x24978e
movq 0x10(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x274, %esi            # imm = 0x274
leaq 0x32ea8c(%rip), %rdx    # 0x5781fc
xorl %ecx, %ecx
leaq 0x32ed9b(%rip), %r8     # 0x578514
movl $0x1, %r9d
xorl %eax, %eax
movq $0x0, (%rsp)
callq 0x4bea60
movq 0x10(%rsp), %rax
movq $0x0, 0xd8(%rax)
movq 0x10(%rsp), %rax
cmpq $0x0, 0x88(%rax)
jne 0x24981d
movq 0x10(%rsp), %rax
cmpq $0x0, 0x98(%rax)
je 0x24981d
movq 0x10(%rsp), %rax
movq 0x98(%rax), %rdi
leaq 0x32ea2d(%rip), %rsi    # 0x5781fc
movl $0x279, %edx            # imm = 0x279
callq 0xe88c0
movq 0x10(%rsp), %rax
movq $0x0, 0x98(%rax)
movq 0x10(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x27b, %esi            # imm = 0x27B
leaq 0x32e9fb(%rip), %rdx    # 0x5781fc
xorl %r9d, %r9d
leaq 0x2d209b(%rip), %r8     # 0x51b8a6
xorl %eax, %eax
movl %r9d, %ecx
movq $0x0, (%rsp)
callq 0x4bea60
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)