// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/alphabet.c
// Function: gt_alphabet_new_from_string
GtAlphabet* gt_alphabet_new_from_string(const char *alphadef, GtUword len,
                                        GtError *err)
{
  GtUword i, j;
  GtStrArray *sa;
  GtAlphabet *alpha;
  gt_assert(alphadef && len > 0);
  gt_error_check(err);

  alpha = gt_alphabet_new_empty();
  gt_assert(alphadef);

  sa = gt_str_array_new();
  j = 0;
  for (i = 0; i < len; i++) {
    if (alphadef[i] == '\n' || i == len - 1) {
      gt_str_array_add_cstr_nt(sa, alphadef+j, i - j);
      j = i+1;
    }
  }
  if (read_symbolmap_from_lines(alpha, NULL, sa, err) != 0) {
    gt_str_array_delete(sa);
    gt_assert(gt_error_is_set(err));
    return NULL;
  }
  gt_str_array_delete(sa);
  return alpha;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0x10b143
cmpq $0x0, 0x30(%rsp)
ja 0x10b17b
movq 0xa8e8e(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x52f12(%rip), %rsi     # 0x15e066
leaq 0x78c46(%rip), %rdx     # 0x183da1
leaq 0x78c53(%rip), %rcx     # 0x183db5
leaq 0x788b9(%rip), %r8      # 0x183a22
movl $0x3dd, %r9d            # imm = 0x3DD
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10b17d
jmp 0x10b17f
cmpq $0x0, 0x28(%rsp)
je 0x10b1cf
movq 0x28(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x10b197
jmp 0x10b1cf
movq 0xa8e3a(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x52ebe(%rip), %rsi     # 0x15e066
leaq 0x53499(%rip), %rdx     # 0x15e648
leaq 0x78bff(%rip), %rcx     # 0x183db5
leaq 0x78865(%rip), %r8      # 0x183a22
movl $0x3de, %r9d            # imm = 0x3DE
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10b1d1
callq 0x109730
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x38(%rsp)
jne 0x10b21b
movq 0xa8dee(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x52e72(%rip), %rsi     # 0x15e066
leaq 0x80203(%rip), %rdx     # 0x18b3fe
leaq 0x78bb3(%rip), %rcx     # 0x183db5
leaq 0x78819(%rip), %r8      # 0x183a22
movl $0x3e1, %r9d            # imm = 0x3E1
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10b21d
callq 0x1b020
movq %rax, 0x10(%rsp)
movq $0x0, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x30(%rsp), %rax
jae 0x10b2a9
movq 0x38(%rsp), %rax
movq 0x20(%rsp), %rcx
movsbl (%rax,%rcx), %eax
cmpl $0xa, %eax
je 0x10b26b
movq 0x20(%rsp), %rax
movq 0x30(%rsp), %rcx
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0x10b297
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rsi
addq 0x18(%rsp), %rsi
movq 0x20(%rsp), %rdx
subq 0x18(%rsp), %rdx
callq 0x1b200
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x10b299
movq 0x20(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x20(%rsp)
jmp 0x10b239
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq 0x28(%rsp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x10b350
cmpl $0x0, %eax
je 0x10b323
movq 0x10(%rsp), %rdi
callq 0x1b780
movq 0x28(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x10b316
movq 0xa8cf3(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x52d77(%rip), %rsi     # 0x15e066
leaq 0x7f742(%rip), %rdx     # 0x18aa38
leaq 0x78ab8(%rip), %rcx     # 0x183db5
leaq 0x7871e(%rip), %r8      # 0x183a22
movl $0x3ed, %r9d            # imm = 0x3ED
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x10b318
movq $0x0, 0x40(%rsp)
jmp 0x10b337
movq 0x10(%rsp), %rdi
callq 0x1b780
movq 0x8(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x40(%rsp), %rax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)