// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_seq.c
// Function: gt_seq_runner
static int gt_seq_runner(int argc, const char **argv, int parsed_args,
                         void *tool_arguments, GtError *err)
{
  SeqArguments *arguments = tool_arguments;
  GtBioseq *bioseq;
  int arg = parsed_args, had_err = 0;
  gt_error_check(err);
  gt_assert(tool_arguments);

  while (!had_err && arg < argc) {
    /* bioseq construction */
    if (arguments->recreate)
      bioseq = gt_bioseq_new_recreate(argv[arg], err);
    else
      bioseq = gt_bioseq_new(argv[arg], err);
    if (!bioseq)
      had_err = -1;

    /* output */
    if (!had_err && arguments->showfasta)
      gt_bioseq_show_as_fasta(bioseq, arguments->width, arguments->outfp);

    if (!had_err && (arguments->showseqnum != GT_UNDEF_UWORD ||
                     arguments->showseqlength != GT_UNDEF_UWORD ||
                     gt_str_length(arguments->showseqnum_inputfile) > 0))
    {
      GtUword maxseqnum = gt_bioseq_number_of_sequences(bioseq);
      if (arguments->seqnum_from_0)
      {
        gt_assert(maxseqnum > 0);
        maxseqnum--;
      }
      if (arguments->showseqnum != GT_UNDEF_UWORD ||
          arguments->showseqlength != GT_UNDEF_UWORD)
      {
        if ((arguments->showseqnum != GT_UNDEF_UWORD &&
             arguments->showseqnum > maxseqnum) ||
            (arguments->showseqlength != GT_UNDEF_UWORD &&
             arguments->showseqlength > maxseqnum))
        {
          gt_error_set(err, "argument '" GT_WU "' to option '-showseq%s' "
                            "is too large. The largest possible number is '"
                            GT_WU "'",
                     arguments->showseqnum,
                     arguments->showseqnum != GT_UNDEF_UWORD ? "num"
                                                             : "length",
                     maxseqnum);
          had_err = -1;
        }
        if (!had_err) {
          if (arguments->showseqnum != GT_UNDEF_UWORD)
          {
            gt_bioseq_show_sequence_as_fasta(bioseq,
                                             arguments->seqnum_from_0
                                               ? arguments->showseqnum
                                               : arguments->showseqnum - 1,
                                             arguments->width,
                                             arguments->outfp);
          } else
          {
            GtUword seqnum = arguments->seqnum_from_0
                               ? arguments->showseqlength
                               : arguments->showseqlength - 1;
            gt_file_xprintf(arguments->outfp,GT_WU "\n",
                            gt_bioseq_get_sequence_length(bioseq, seqnum));
          }
        }
      } else
      {
        FILE *fpin;

        gt_assert(gt_str_length(arguments->showseqnum_inputfile) > 0);
        if (strcmp(gt_str_get(arguments->showseqnum_inputfile),"-") == 0)
        {
          fpin = stdin;
        } else
        {
          fpin = gt_efopen(gt_str_get(arguments->showseqnum_inputfile),
                           "rb",err);
        }
        if (fpin == NULL)
        {
          had_err = -1;
        } else
        {
          GtWord seqnum_input;
          while (fscanf(fpin,GT_WD,&seqnum_input) == 1)
          {
            if (seqnum_input < 0 ||
                (!arguments->seqnum_from_0 && seqnum_input == 0) ||
                (GtUword) seqnum_input > maxseqnum)
            {
              gt_error_set(err, "sequence number '" GT_WD "' is not in range "
                                "[%d," GT_WU "]",
                                 seqnum_input,
                                 arguments->seqnum_from_0 ? 0 : 1,
                                 maxseqnum);
              had_err = -1;
            }
            if (!had_err)
            {
              gt_bioseq_show_sequence_as_fasta(bioseq,
                                           arguments->seqnum_from_0
                                             ? (GtUword) seqnum_input
                                             : (GtUword) seqnum_input - 1,
                                           arguments->width, arguments->outfp);
            }
          }
          if (strcmp(gt_str_get(arguments->showseqnum_inputfile),"-") == 0)
          {
            fclose(fpin);
          }
        }
      }
    }

    if (!had_err && arguments->gc_content)
      gt_bioseq_show_gc_content(bioseq, arguments->outfp);

    if (!had_err && arguments->stat)
      gt_bioseq_show_stat(bioseq, arguments->outfp);

    if (!had_err && arguments->seqlengthdistri)
      gt_bioseq_show_seqlengthdistri(bioseq, arguments->outfp);

    /* free */
    gt_bioseq_delete(bioseq);

    arg++;
  }

  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)
movl 0x84(%rsp), %eax
movl %eax, 0x5c(%rsp)
movl $0x0, 0x58(%rsp)
cmpq $0x0, 0x70(%rsp)
je 0x61944
movq 0x70(%rsp), %rdi
callq 0xd8a60
testb $0x1, %al
jne 0x6190c
jmp 0x61944
movq 0x5da68d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b46f6(%rip), %rsi    # 0x516013
leaq 0x4b489b(%rip), %rdx    # 0x5161bf
leaq 0x4c74f1(%rip), %rcx    # 0x528e1c
leaq 0x4c70ee(%rip), %r8     # 0x528a20
movl $0xc8, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x61946
jmp 0x61948
cmpq $0x0, 0x78(%rsp)
jne 0x61988
movq 0x5da649(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b46b2(%rip), %rsi    # 0x516013
leaq 0x4c1912(%rip), %rdx    # 0x52327a
leaq 0x4c74ad(%rip), %rcx    # 0x528e1c
leaq 0x4c70aa(%rip), %r8     # 0x528a20
movl $0xc9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x6198a
jmp 0x6198c
xorl %eax, %eax
cmpl $0x0, 0x58(%rsp)
movb %al, 0x37(%rsp)
jne 0x619ab
movl 0x5c(%rsp), %eax
cmpl 0x94(%rsp), %eax
setl %al
movb %al, 0x37(%rsp)
movb 0x37(%rsp), %al
testb $0x1, %al
jne 0x619b8
jmp 0x61ec0
movq 0x68(%rsp), %rax
testb $0x1, (%rax)
je 0x619e4
movq 0x88(%rsp), %rax
movslq 0x5c(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x70(%rsp), %rsi
callq 0x84890
movq %rax, 0x60(%rsp)
jmp 0x61a04
movq 0x88(%rsp), %rax
movslq 0x5c(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
movq 0x70(%rsp), %rsi
callq 0x84600
movq %rax, 0x60(%rsp)
cmpq $0x0, 0x60(%rsp)
jne 0x61a14
movl $0xffffffff, 0x58(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x58(%rsp)
jne 0x61a42
movq 0x68(%rsp), %rax
testb $0x1, 0x1(%rax)
je 0x61a42
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x18(%rax), %rsi
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x85b00
cmpl $0x0, 0x58(%rsp)
jne 0x61e37
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
jne 0x61a7d
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x10(%rax)
jne 0x61a7d
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jbe 0x61e37
movq 0x60(%rsp), %rdi
callq 0x85910
movq %rax, 0x50(%rsp)
movq 0x68(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x61ae9
jmp 0x61a99
cmpq $0x0, 0x50(%rsp)
ja 0x61ad9
movq 0x5da4f8(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b4561(%rip), %rsi    # 0x516013
leaq 0x4c7371(%rip), %rdx    # 0x528e2a
leaq 0x4c735c(%rip), %rcx    # 0x528e1c
leaq 0x4c6f59(%rip), %r8     # 0x528a20
movl $0xdf, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x61adb
movq 0x50(%rsp), %rax
addq $-0x1, %rax
movq %rax, 0x50(%rsp)
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
jne 0x61b05
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x10(%rax)
je 0x61c67
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x61b21
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rax
cmpq 0x50(%rsp), %rax
ja 0x61b3d
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x10(%rax)
je 0x61b85
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
cmpq 0x50(%rsp), %rax
jbe 0x61b85
movq 0x70(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x52cdf0(%rip), %rcx    # 0x58e94b
leaq 0x4f5a74(%rip), %rax    # 0x5575d6
cmpq $-0x1, %rsi
cmovneq %rax, %rcx
movq 0x50(%rsp), %r8
leaq 0x4c72c2(%rip), %rsi    # 0x528e38
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x58(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x58(%rsp)
jne 0x61c62
movq 0x68(%rsp), %rax
cmpq $-0x1, 0x8(%rax)
je 0x61bf6
movq 0x60(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x68(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x61bc1
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x20(%rsp)
jmp 0x61bd3
movq 0x68(%rsp), %rax
movq 0x8(%rax), %rax
subq $0x1, %rax
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq 0x68(%rsp), %rax
movq 0x18(%rax), %rdx
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rcx
callq 0x85c10
jmp 0x61c60
movq 0x68(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x61c11
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x18(%rsp)
jmp 0x61c23
movq 0x68(%rsp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x60(%rsp), %rdi
movq 0x48(%rsp), %rsi
callq 0x84e30
movq 0x10(%rsp), %rdi
movq %rax, %rdx
leaq 0x4bfe4d(%rip), %rsi    # 0x521aa6
movb $0x0, %al
callq 0xddca0
jmp 0x61c62
jmp 0x61e35
jmp 0x61c69
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
ja 0x61cb5
movq 0x5da31c(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b4385(%rip), %rsi    # 0x516013
leaq 0x4c71fc(%rip), %rdx    # 0x528e91
leaq 0x4c7180(%rip), %rcx    # 0x528e1c
leaq 0x4c6d7d(%rip), %r8     # 0x528a20
movl $0x109, %r9d            # imm = 0x109
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x61cb7
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x539658(%rip), %rsi    # 0x59b327
callq 0x19980
cmpl $0x0, %eax
jne 0x61cea
movq 0x5da280(%rip), %rax    # 0x63bf60
movq (%rax), %rax
movq %rax, 0x40(%rsp)
jmp 0x61d11
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x70(%rsp), %rdx
leaq 0x5161de(%rip), %rsi    # 0x577ee5
callq 0xa9330
movq %rax, 0x40(%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x61d26
movl $0xffffffff, 0x58(%rsp) # imm = 0xFFFFFFFF
jmp 0x61e33
jmp 0x61d28
movq 0x40(%rsp), %rdi
leaq 0x4ecb3b(%rip), %rsi    # 0x54e86f
leaq 0x38(%rsp), %rdx
movb $0x0, %al
callq 0x19db0
cmpl $0x1, %eax
jne 0x61e05
cmpq $0x0, 0x38(%rsp)
jl 0x61d70
movq 0x68(%rsp), %rax
testb $0x1, 0x5(%rax)
jne 0x61d64
cmpq $0x0, 0x38(%rsp)
je 0x61d70
movq 0x38(%rsp), %rax
cmpq 0x50(%rsp), %rax
jbe 0x61dac
movq 0x70(%rsp), %rdi
movq 0x38(%rsp), %rdx
movq 0x68(%rsp), %rax
movb 0x5(%rax), %sil
movl $0x1, %ecx
xorl %eax, %eax
testb $0x1, %sil
cmovnel %eax, %ecx
movq 0x50(%rsp), %r8
leaq 0x4c7127(%rip), %rsi    # 0x528ec4
movb $0x0, %al
callq 0xd88c0
movl $0xffffffff, 0x58(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x58(%rsp)
jne 0x61e00
movq 0x60(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x68(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x61dd3
movq 0x38(%rsp), %rax
movq %rax, (%rsp)
jmp 0x61de0
movq 0x38(%rsp), %rax
subq $0x1, %rax
movq %rax, (%rsp)
movq 0x8(%rsp), %rdi
movq (%rsp), %rsi
movq 0x68(%rsp), %rax
movq 0x18(%rax), %rdx
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rcx
callq 0x85c10
jmp 0x61d28
movq 0x68(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
leaq 0x53950a(%rip), %rsi    # 0x59b327
callq 0x19980
cmpl $0x0, %eax
jne 0x61e31
movq 0x40(%rsp), %rdi
callq 0x19780
jmp 0x61e33
jmp 0x61e35
jmp 0x61e37
cmpl $0x0, 0x58(%rsp)
jne 0x61e5c
movq 0x68(%rsp), %rax
testb $0x1, 0x2(%rax)
je 0x61e5c
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x85d50
cmpl $0x0, 0x58(%rsp)
jne 0x61e81
movq 0x68(%rsp), %rax
testb $0x1, 0x3(%rax)
je 0x61e81
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x85f40
cmpl $0x0, 0x58(%rsp)
jne 0x61ea6
movq 0x68(%rsp), %rax
testb $0x1, 0x4(%rax)
je 0x61ea6
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x860a0
movq 0x60(%rsp), %rdi
callq 0x84960
movl 0x5c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x5c(%rsp)
jmp 0x6198c
movl 0x58(%rsp), %eax
addq $0x98, %rsp
retq
nopl (%rax)