// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/alphabet.c
// Function: gt_alphabet_add_mapping
void gt_alphabet_add_mapping(GtAlphabet *alphabet, const char *characters)
{
  size_t i, num_of_characters;
  gt_assert(alphabet && characters);
  num_of_characters = strlen(characters);
  gt_assert(num_of_characters);
  alphabet->mapdomain = gt_realloc(alphabet->mapdomain,
                                   (size_t) alphabet->domainsize
                                      + num_of_characters);
  memcpy(alphabet->mapdomain + alphabet->domainsize, characters,
         num_of_characters);
  alphabet->domainsize += num_of_characters;
  alphabet->symbolmap[(int) characters[0]] = (GtUchar) alphabet->mapsize;
  alphabet->characters = gt_realloc(alphabet->characters,
                                    (size_t) alphabet->domainsize);
  alphabet->characters[alphabet->mapsize] = (GtUchar) characters[0];
  for (i = 0; i < num_of_characters; i++)
    alphabet->symbolmap[(int) characters[i]] = (GtUchar) alphabet->mapsize;
  alphabet->mapsize++;
  alphabet->bitspersymbol
    = gt_determinebitspervalue((GtUword) alphabet->mapsize);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x10933e
cmpq $0x0, 0x18(%rsp)
jne 0x109376
movq 0xaac93(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x54d17(%rip), %rsi     # 0x15e066
leaq 0x7a703(%rip), %rdx     # 0x183a59
leaq 0x7a713(%rip), %rcx     # 0x183a70
leaq 0x7a6be(%rip), %r8      # 0x183a22
movl $0x1a7, %r9d            # imm = 0x1A7
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x109378
movq 0x18(%rsp), %rdi
callq 0xb240
movq %rax, 0x8(%rsp)
cmpq $0x0, 0x8(%rsp)
jne 0x1093c7
movq 0xaac42(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x54cc6(%rip), %rsi     # 0x15e066
leaq 0x7a6e1(%rip), %rdx     # 0x183a88
leaq 0x7a6c2(%rip), %rcx     # 0x183a70
leaq 0x7a66d(%rip), %r8      # 0x183a22
movl $0x1a9, %r9d            # imm = 0x1A9
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1093c9
movq 0x20(%rsp), %rax
movq 0x118(%rax), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
addq 0x8(%rsp), %rsi
leaq 0x7a638(%rip), %rdx     # 0x183a22
movl $0x1ac, %ecx            # imm = 0x1AC
callq 0xd730
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x118(%rax)
movq 0x20(%rsp), %rax
movq 0x118(%rax), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %eax
addq %rax, %rdi
movq 0x18(%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0xb500
movq 0x8(%rsp), %rdx
movq 0x20(%rsp), %rax
movl (%rax), %ecx
addq %rdx, %rcx
movl %ecx, (%rax)
movq 0x20(%rsp), %rax
movl 0x4(%rax), %eax
movb %al, %dl
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movb %dl, 0x15(%rax,%rcx)
movq 0x20(%rsp), %rax
movq 0x120(%rax), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x7a5af(%rip), %rdx     # 0x183a22
movl $0x1b2, %ecx            # imm = 0x1B2
callq 0xd730
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x120(%rax)
movq 0x18(%rsp), %rax
movb (%rax), %dl
movq 0x20(%rsp), %rax
movq 0x120(%rax), %rax
movq 0x20(%rsp), %rcx
movl 0x4(%rcx), %ecx
movb %dl, (%rax,%rcx)
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
jae 0x1094f3
movq 0x20(%rsp), %rax
movl 0x4(%rax), %eax
movb %al, %dl
movq 0x20(%rsp), %rax
movq 0x18(%rsp), %rcx
movq 0x10(%rsp), %rsi
movsbl (%rcx,%rsi), %ecx
movslq %ecx, %rcx
movb %dl, 0x15(%rax,%rcx)
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x1094b3
movq 0x20(%rsp), %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
movq 0x20(%rsp), %rax
movl 0x4(%rax), %eax
movl %eax, %edi
callq 0x8c6d0
movl %eax, %ecx
movq 0x20(%rsp), %rax
movl %ecx, 0xc(%rax)
addq $0x28, %rsp
retq
nop