// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x68, %rsp
movq %rdi, 0x58(%rsp)
movq %rsi, 0x50(%rsp)
movq $0x0, 0x48(%rsp)
movb $0x0, 0x47(%rsp)
cmpq $0x0, 0x58(%rsp)
jne 0x10af3c
movq 0xa90cd(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x53151(%rip), %rsi     # 0x15e066
leaq 0x5e2ac(%rip), %rdx     # 0x1691c8
leaq 0x78eae(%rip), %rcx     # 0x183dd1
leaq 0x78af8(%rip), %r8      # 0x183a22
movl $0x3fa, %r9d            # imm = 0x3FA
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10af3e
jmp 0x10af40
cmpq $0x0, 0x50(%rsp)
je 0x10af90
movq 0x50(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x10af58
jmp 0x10af90
movq 0xa9079(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x530fd(%rip), %rsi     # 0x15e066
leaq 0x536d8(%rip), %rdx     # 0x15e648
leaq 0x78e5a(%rip), %rcx     # 0x183dd1
leaq 0x78aa4(%rip), %r8      # 0x183a22
movl $0x3fb, %r9d            # imm = 0x3FB
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10af92
callq 0x109730
movq %rax, 0x38(%rsp)
movq 0x58(%rsp), %rdi
callq 0x84330
testb $0x1, %al
jne 0x10b084
movq 0x50(%rsp), %rdi
callq 0xc430
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x10affd
movq 0xa900c(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x53090(%rip), %rsi     # 0x15e066
leaq 0x78e18(%rip), %rdx     # 0x183df5
leaq 0x78ded(%rip), %rcx     # 0x183dd1
leaq 0x78a37(%rip), %r8      # 0x183a22
movl $0x403, %r9d            # imm = 0x403
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10afff
callq 0x18f00
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movl $0x20, %esi
callq 0x7c680
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq 0x19290
movq 0x30(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
movq 0x50(%rsp), %rsi
callq 0x144e10
movq %rax, 0x48(%rsp)
movq 0x30(%rsp), %rdi
callq 0x1afc0
movq 0x48(%rsp), %rdi
leaq 0x78d96(%rip), %rsi     # 0x183e06
callq 0x18fb0
movq 0x48(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x18fb0
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x48(%rsp)
jne 0x10b0a2
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
jmp 0x10b0b1
movq 0x48(%rsp), %rdi
callq 0x19940
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x50(%rsp), %rdx
callq 0x10b920
cmpl $0x0, %eax
je 0x10b0cf
movb $0x1, 0x47(%rsp)
movq 0x48(%rsp), %rdi
callq 0x1afc0
cmpq $0x0, 0x38(%rsp)
jne 0x10b0e6
movb $0x1, 0x47(%rsp)
testb $0x1, 0x47(%rsp)
je 0x10b102
movq 0x38(%rsp), %rdi
callq 0x1098b0
movq $0x0, 0x60(%rsp)
jmp 0x10b10c
movq 0x38(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)