// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/translator.c
// Function: gt_translator_next_with_start
GtTranslatorStatus gt_translator_next_with_start(GtTranslator *translator,
                                                 char *translated,
                                                 unsigned int *frame,
                                                 bool *start,
                                                 GtError *err)
{
  char n1, n2, n3;
  GtCodonIteratorStatus status;
  int retval;
  gt_assert(translator && translated && frame);
  gt_error_check(err);

  status = gt_codon_iterator_next(translator->ci, &n1, &n2, &n3, frame, err);
  if (status == GT_CODON_ITERATOR_END)
    return GT_TRANSLATOR_END;
  if (status == GT_CODON_ITERATOR_ERROR)
    return GT_TRANSLATOR_ERROR;
  retval = gt_trans_table_translate_codon(translator->transtable, n1, n2, n3,
                                          translated, err);
  if (retval)
    return GT_TRANSLATOR_ERROR;
  if (start != NULL)
    *start = gt_trans_table_is_start_codon(translator->transtable, n1, n2, n3);
  gt_assert(*frame < (unsigned int) GT_CODON_LENGTH);
  return GT_TRANSLATOR_OK;
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x38(%rsp)
movq %rsi, 0x30(%rsp)
movq %rdx, 0x28(%rsp)
movq %rcx, 0x20(%rsp)
movq %r8, 0x18(%rsp)
cmpq $0x0, 0x38(%rsp)
je 0xe6155
cmpq $0x0, 0x30(%rsp)
je 0xe6155
cmpq $0x0, 0x28(%rsp)
jne 0xe618d
movq 0xcde7c(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x77f00(%rip), %rsi     # 0x15e066
leaq 0x9352d(%rip), %rdx     # 0x17969a
leaq 0x93548(%rip), %rcx     # 0x1796bc
leaq 0x933d4(%rip), %r8      # 0x17954f
movl $0xb7, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe618f
jmp 0xe6191
cmpq $0x0, 0x18(%rsp)
je 0xe61e1
movq 0x18(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xe61a9
jmp 0xe61e1
movq 0xcde28(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x77eac(%rip), %rsi     # 0x15e066
leaq 0x78487(%rip), %rdx     # 0x15e648
leaq 0x934f4(%rip), %rcx     # 0x1796bc
leaq 0x93380(%rip), %r8      # 0x17954f
movl $0xb8, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe61e3
movq 0x38(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x28(%rsp), %r8
movq 0x18(%rsp), %r9
leaq 0x17(%rsp), %rsi
leaq 0x16(%rsp), %rdx
leaq 0x15(%rsp), %rcx
callq 0xdfd20
movl %eax, 0x10(%rsp)
cmpl $-0x1, 0x10(%rsp)
jne 0xe6222
movl $0xffffffff, 0x44(%rsp) # imm = 0xFFFFFFFF
jmp 0xe62fc
cmpl $-0x2, 0x10(%rsp)
jne 0xe6236
movl $0xfffffffe, 0x44(%rsp) # imm = 0xFFFFFFFE
jmp 0xe62fc
movq 0x38(%rsp), %rax
movq (%rax), %rdi
movb 0x17(%rsp), %dl
movb 0x16(%rsp), %cl
movb 0x15(%rsp), %al
movq 0x30(%rsp), %r8
movq 0x18(%rsp), %r9
movsbl %dl, %esi
movsbl %cl, %edx
movsbl %al, %ecx
callq 0x14c550
movl %eax, 0xc(%rsp)
cmpl $0x0, 0xc(%rsp)
je 0xe627a
movl $0xfffffffe, 0x44(%rsp) # imm = 0xFFFFFFFE
jmp 0xe62fc
cmpq $0x0, 0x20(%rsp)
je 0xe62ae
movq 0x38(%rsp), %rax
movq (%rax), %rdi
movb 0x17(%rsp), %cl
movb 0x16(%rsp), %al
movsbl %cl, %esi
movsbl %al, %edx
movsbl 0x15(%rsp), %ecx
callq 0x14c9a0
movb %al, %cl
movq 0x20(%rsp), %rax
andb $0x1, %cl
movb %cl, (%rax)
jmp 0xe62b0
movq 0x28(%rsp), %rax
cmpl $0x3, (%rax)
jb 0xe62f2
movq 0xcdd17(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x77d9b(%rip), %rsi     # 0x15e066
leaq 0x93408(%rip), %rdx     # 0x1796da
leaq 0x933e3(%rip), %rcx     # 0x1796bc
leaq 0x9326f(%rip), %r8      # 0x17954f
movl $0xc5, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe62f4
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)