// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/codon_iterator_simple.c
// Function: gt_codon_iterator_simple_next
static GtCodonIteratorStatus gt_codon_iterator_simple_next(GtCodonIterator *ci,
                                                           char *n1,
                                                           char *n2,
                                                           char *n3,
                                                           unsigned int *frame,
                                                           GT_UNUSED GtError
                                                                           *err)
{
  GtCodonIteratorSimple *cis;
  gt_assert(n1 && n2 && n3 && frame);
  gt_error_check(err);
  if (ci->pvt->curpos+2 >= ci->pvt->length)
    return GT_CODON_ITERATOR_END;
  cis = gt_codon_iterator_simple_cast(ci);
  *n1 = *(cis->dnaseq+ci->pvt->curpos);
  *n2 = *(cis->dnaseq+ci->pvt->curpos+1);
  *n3 = *(cis->dnaseq+ci->pvt->curpos+2);
  *frame = ci->pvt->curpos % GT_CODON_LENGTH;
  ci->pvt->curpos++;
  return GT_CODON_ITERATOR_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)
movq %r9, 0x10(%rsp)
cmpq $0x0, 0x30(%rsp)
je 0xe0002
cmpq $0x0, 0x28(%rsp)
je 0xe0002
cmpq $0x0, 0x20(%rsp)
je 0xe0002
cmpq $0x0, 0x18(%rsp)
jne 0xe003a
movq 0xd3fcf(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x7e053(%rip), %rsi     # 0x15e066
leaq 0x9854f(%rip), %rdx     # 0x178569
leaq 0x98560(%rip), %rcx     # 0x178581
leaq 0x98459(%rip), %r8      # 0x178481
movl $0x2b, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe003c
jmp 0xe003e
cmpq $0x0, 0x10(%rsp)
je 0xe008e
movq 0x10(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0xe0056
jmp 0xe008e
movq 0xd3f7b(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x7dfff(%rip), %rsi     # 0x15e066
leaq 0x7e5da(%rip), %rdx     # 0x15e648
leaq 0x9850c(%rip), %rcx     # 0x178581
leaq 0x98405(%rip), %r8      # 0x178481
movl $0x2c, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0xe0090
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
addq $0x2, %rax
movq 0x38(%rsp), %rcx
movq 0x8(%rcx), %rcx
cmpq (%rcx), %rax
jb 0xe00bc
movl $0xffffffff, 0x44(%rsp) # imm = 0xFFFFFFFF
jmp 0xe0172
callq 0xdfe90
movq %rax, %rdi
movq 0x38(%rsp), %rsi
callq 0xdfa50
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movb (%rax,%rcx), %cl
movq 0x30(%rsp), %rax
movb %cl, (%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movb 0x1(%rax,%rcx), %cl
movq 0x28(%rsp), %rax
movb %cl, (%rax)
movq 0x8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x38(%rsp), %rcx
movq 0x8(%rcx), %rcx
movq 0x8(%rcx), %rcx
movb 0x2(%rax,%rcx), %cl
movq 0x20(%rsp), %rax
movb %cl, (%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl $0x3, %ecx
xorl %edx, %edx
divq %rcx
movl %edx, %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movq 0x38(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movl $0x0, 0x44(%rsp)
movl 0x44(%rsp), %eax
addq $0x48, %rsp
retq
nopl (%rax,%rax)