// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_seqmutate.c
// Function: gt_seqmutate_runner
static int gt_seqmutate_runner(int argc, const char **argv, int parsed_args,
                            void *tool_arguments, GtError *err)
{
  MutateArguments *arguments = tool_arguments;
  GtBioseqIterator *bsi;
  GtUword i;
  GtBioseq *bioseq;
  GtSeq *mutated_seq;
  int had_err;

  gt_error_check(err);
  gt_assert(arguments);

  bsi = gt_bioseq_iterator_new(argc - parsed_args, argv + parsed_args);

  while (!(had_err = gt_bioseq_iterator_next(bsi, &bioseq, err)) && bioseq) {
    char *seq;
    for (i = 0; i < gt_bioseq_number_of_sequences(bioseq); i++) {
      seq = gt_bioseq_get_sequence(bioseq, i);
      mutated_seq = gt_mutate_seq(gt_bioseq_get_description(bioseq, i),
                                  seq,
                                  gt_bioseq_get_sequence_length(bioseq, i),
                                  gt_bioseq_get_alphabet(bioseq),
                                  arguments->rate);
      gt_fasta_show_entry(gt_seq_get_description(mutated_seq),
                          gt_seq_get_orig(mutated_seq),
                          gt_seq_length(mutated_seq),
                          arguments->width, arguments->outfp);
      gt_free(seq);
      gt_seq_delete(mutated_seq);
    }
    gt_bioseq_delete(bioseq);
  }

  gt_bioseq_iterator_delete(bsi);

  return had_err;
}

// Assembly:
subq $0x98, %rsp
movl %edi, 0x94(%rsp)
movq %rsi, 0x88(%rsp)
movl %edx, 0x84(%rsp)
movq %rcx, 0x78(%rsp)
movq %r8, 0x70(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x68(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x65401
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x653c9
jmp 0x65401
movq 0x5d6bd0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b0c39(%rip), %rsi    # 0x516013
leaq 0x4b0dde(%rip), %rdx    # 0x5161bf
leaq 0x4c4717(%rip), %rcx    # 0x529aff
leaq 0x4c468e(%rip), %r8     # 0x529a7d
movl $0x55, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x65403
jmp 0x65405
cmpq $0x0, 0x68(%rsp)
jne 0x65445
movq 0x5d6b8c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b0bf5(%rip), %rsi    # 0x516013
leaq 0x51573a(%rip), %rdx    # 0x57ab5f
leaq 0x4c46d3(%rip), %rcx    # 0x529aff
leaq 0x4c464a(%rip), %r8     # 0x529a7d
movl $0x56, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x65447
movl 0x94(%rsp), %edi
subl 0x84(%rsp), %edi
movq 0x88(%rsp), %rsi
movslq 0x84(%rsp), %rax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x88690
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rdi
movq 0x70(%rsp), %rdx
leaq 0x50(%rsp), %rsi
callq 0x88790
movl %eax, %ecx
movl %ecx, 0x44(%rsp)
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, 0x37(%rsp)
jne 0x654a8
cmpq $0x0, 0x50(%rsp)
setne %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x654b5
jmp 0x655e3
movq $0x0, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x50(%rsp), %rdi
callq 0x85910
movq %rax, %rcx
movq 0x28(%rsp), %rax
cmpq %rcx, %rax
jae 0x655d4
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x84cc0
movq %rax, 0x38(%rsp)
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x84ea0
movq %rax, (%rsp)
movq 0x38(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rsi
callq 0x84e30
movq %rax, 0x10(%rsp)
movq 0x50(%rsp), %rdi
callq 0x84b30
movq (%rsp), %rdi
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rax, %rcx
movq 0x68(%rsp), %rax
movl (%rax), %r8d
callq 0x1b14e0
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
callq 0x110620
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rdi
callq 0x110670
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rdi
callq 0x1107d0
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x68(%rsp), %rax
movq 0x18(%rax), %r8
callq 0xdbd10
movq 0x38(%rsp), %rdi
leaq 0x4c44d0(%rip), %rsi    # 0x529a7d
movl $0x67, %edx
callq 0xe88c0
movq 0x48(%rsp), %rdi
callq 0x110820
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x654be
movq 0x50(%rsp), %rdi
callq 0x84960
jmp 0x65476
movq 0x60(%rsp), %rdi
callq 0x88750
movl 0x44(%rsp), %eax
addq $0x98, %rsp
retq
nopl (%rax)