// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/alphabet.c
// Function: gt_alphabet_new_from_file_no_suffix
GtAlphabet* gt_alphabet_new_from_file_no_suffix(const char *filename,
                                                GtError *err)
{
  GtStr *transpath = NULL;
  bool haserr = false;
  GtAlphabet *alpha;
  gt_assert(filename);
  gt_error_check(err);

  alpha = gt_alphabet_new_empty();
  if (!gt_file_exists(filename))
  {
    GtStr *prog;
    const char *progname = gt_error_get_progname(err);

    gt_assert(progname != NULL);
    prog = gt_str_new();
    gt_str_append_cstr_nt(prog, progname,
                          gt_cstr_length_up_to_char(progname, ' '));
    transpath = gt_get_gtdata_path(gt_str_get(prog), err);
    gt_str_delete(prog);
    gt_str_append_cstr(transpath, "/trans/");
    gt_str_append_cstr(transpath, filename);
  }

  if (read_symbolmap(alpha,
                     transpath == NULL ? filename : gt_str_get(transpath),
                     err) != 0)
  {
    haserr = true;
  }
  gt_str_delete(transpath);

  if (alpha == NULL)
  {
    haserr = true;
  }

  if (haserr)
  {
    gt_alphabet_delete((GtAlphabet*) alpha);
    return NULL;
  }
  return alpha;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x9c17b
movq %rsi, %r14
movq %rdi, %r15
testq %rsi, %rsi
je 0x9c078
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x9c1dd
callq 0x9b167
movq %rax, %rbx
movq %r15, %rdi
callq 0x54940
testb %al, %al
jne 0x9c10b
movq %r14, %rdi
callq 0xc24d
testq %rax, %rax
je 0x9c239
movq %rax, %r12
callq 0x13d5c
movq %rax, %r13
pushq $0x20
popq %rsi
movq %r12, %rdi
callq 0x4fa5d
movq %r13, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x13f76
movq %r13, %rdi
callq 0x143d2
movq %rax, %rdi
movq %r14, %rsi
callq 0xbd0f8
movq %rax, %r12
movq %r13, %rdi
callq 0x152db
leaq 0x4e320(%rip), %rsi     # 0xea406
movq %r12, %rdi
callq 0x13dd3
movq %r12, %rdi
movq %r15, %rsi
callq 0x13dd3
testq %r12, %r12
je 0x9c10b
movq %r12, %rdi
callq 0x143d2
movq %rax, %r15
jmp 0x9c10e
xorl %r12d, %r12d
testq %r14, %r14
je 0x9c123
movq %r14, %rdi
callq 0xc103
testb %al, %al
jne 0x9c20b
movq %r15, %rdi
callq 0x15362
testq %rax, %rax
je 0x9c1ac
movq %rax, %r13
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r14, %rcx
callq 0x9c3d0
movl %eax, %ebp
movq %r13, %rdi
callq 0x1583a
movq %r12, %rdi
callq 0x152db
testq %rbx, %rbx
je 0x9c15f
testl %ebp, %ebp
je 0x9c169
movq %rbx, %rdi
callq 0x9b1c1
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x91e36(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2deda(%rip), %rsi     # 0xca066
leaq 0x38e1d(%rip), %rdx     # 0xd4fb0
leaq 0x4e237(%rip), %rcx     # 0xea3d1
leaq 0x4de81(%rip), %r8      # 0xea022
movl $0x3fa, %r9d            # imm = 0x3FA
jmp 0x9c265
movq 0x91e05(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2dea9(%rip), %rsi     # 0xca066
leaq 0x4e572(%rip), %rdx     # 0xea736
leaq 0x4e55c(%rip), %rcx     # 0xea727
leaq 0x4de50(%rip), %r8      # 0xea022
movl $0x147, %r9d            # imm = 0x147
jmp 0x9c265
movq 0x91dd4(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2de78(%rip), %rsi     # 0xca066
leaq 0x2e464(%rip), %rdx     # 0xca659
leaq 0x4e1d5(%rip), %rcx     # 0xea3d1
leaq 0x4de1f(%rip), %r8      # 0xea022
movl $0x3fb, %r9d            # imm = 0x3FB
jmp 0x9c265
movq 0x91da6(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2de4a(%rip), %rsi     # 0xca066
leaq 0x2e436(%rip), %rdx     # 0xca659
leaq 0x4e4fd(%rip), %rcx     # 0xea727
leaq 0x4ddf1(%rip), %r8      # 0xea022
movl $0x145, %r9d            # imm = 0x145
jmp 0x9c265
movq 0x91d78(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x2de1c(%rip), %rsi     # 0xca066
leaq 0x4e1a4(%rip), %rdx     # 0xea3f5
leaq 0x4e179(%rip), %rcx     # 0xea3d1
leaq 0x4ddc3(%rip), %r8      # 0xea022
movl $0x403, %r9d            # imm = 0x403
xorl %eax, %eax
callq 0xb8c0
callq 0xb300