// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_inlineseq_split.c
// Function: gt_inlineseq_split_runner
static int gt_inlineseq_split_runner(int argc, const char **argv,
                                     int parsed_args,
                              void *tool_arguments, GtError *err)
{
  GtInlineseqSplitArguments *arguments = tool_arguments;
  GtNodeStream *gff3_in_stream = NULL,
               *gff3_out_stream = NULL,
               *split_stream = NULL,
               *last_stream = NULL;
  GtFile *seq_out_file = NULL,
         *gff3_out_file = NULL;
  int had_err = 0;

  gt_error_check(err);
  gt_assert(arguments);

  if (gt_str_length(arguments->seqoutfile) > 0) {
    seq_out_file = gt_file_new(gt_str_get(arguments->seqoutfile), "w+", err);
    if (!seq_out_file)
      had_err = -1;
  }

  if (!had_err && gt_str_length(arguments->gffoutfile) > 0) {
    gff3_out_file = gt_file_new(gt_str_get(arguments->gffoutfile), "w+", err);
    if (!gff3_out_file)
      had_err = -1;
  }

  if (!had_err) {
    last_stream = gff3_in_stream = gt_gff3_in_stream_new_unsorted(
                                                            argc - parsed_args,
                                                            argv + parsed_args);
    gt_assert(gff3_in_stream);
  }

  if (!had_err) {
    last_stream = split_stream = gt_sequence_node_out_stream_new(last_stream,
                                                                 seq_out_file,
                                                                 err);
    gt_assert(split_stream);
  }

  if (!had_err) {
    last_stream = gff3_out_stream = gt_gff3_out_stream_new(last_stream,
                                                           gff3_out_file);
    had_err = gt_node_stream_pull(last_stream, err);
  }

  gt_node_stream_delete(gff3_in_stream);
  gt_node_stream_delete(gff3_out_stream);
  gt_node_stream_delete(split_stream);
  gt_file_delete(seq_out_file);
  gt_file_delete(gff3_out_file);

  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %r8, %r14
movq %rcx, %r15
movl %edx, %r13d
movq %rsi, %r12
movl %edi, %ebp
testq %r8, %r8
je 0xacb53
movq %r14, %rdi
callq 0xfcc32
testb %al, %al
jne 0xacc75
testq %r15, %r15
je 0xacc70
movq (%r15), %rdi
callq 0x11b0ca
testq %rax, %rax
je 0xacba0
movq (%r15), %rdi
callq 0x11b0a1
leaq 0x298af1(%rip), %rsi    # 0x345669
movq %rax, %rdi
movq %r14, %rdx
callq 0xfea8a
movq %rax, %rbx
testq %rax, %rax
jne 0xacba2
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorl %r12d, %r12d
xorl %r15d, %r15d
movq $0x0, (%rsp)
jmp 0xacbe2
xorl %ebx, %ebx
movq 0x8(%r15), %rdi
callq 0x11b0ca
testq %rax, %rax
movq %rbx, (%rsp)
je 0xacbe9
movq 0x8(%r15), %rdi
callq 0x11b0a1
leaq 0x298aa5(%rip), %rsi    # 0x345669
movq %rax, %rdi
movq %r14, %rdx
callq 0xfea8a
movq %rax, %r15
testq %rax, %rax
jne 0xacbec
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r13d, %r13d
xorl %ebx, %ebx
jmp 0xacc36
xorl %r15d, %r15d
subl %r13d, %ebp
movslq %r13d, %rax
leaq (%r12,%rax,8), %rsi
movl %ebp, %edi
callq 0x145cdf
testq %rax, %rax
je 0xacc7a
movq %rax, %r13
movq %rax, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x174170
testq %rax, %rax
je 0xacc7f
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0x146fc0
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
callq 0x162f5d
movl %eax, %ebp
movq %r13, %rdi
callq 0x162dee
movq %rbx, %rdi
callq 0x162dee
movq %r12, %rdi
callq 0x162dee
movq (%rsp), %rdi
callq 0xff22c
movq %r15, %rdi
callq 0xff22c
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1beda
callq 0x1be35
callq 0x1bea3
callq 0x1be6c