// File: /workspace/github_c_makefile_star2_O1/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, %rbx
movq %rcx, %r15
movl %edx, %r13d
movq %rsi, %r12
movl %edi, %ebp
testq %r8, %r8
je 0xaee83
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0xaefc5
testq %r15, %r15
je 0xaefc0
movq (%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xaeebf
movq (%r15), %rdi
callq 0x120d23
leaq 0x29f7c1(%rip), %rsi    # 0x34e669
movq %rax, %rdi
movq %rbx, %rdx
callq 0x103957
movq %rax, (%rsp)
testq %rax, %rax
setne %al
jmp 0xaeec9
movb $0x1, %al
movq $0x0, (%rsp)
testb %al, %al
je 0xaef02
movq 0x8(%r15), %rdi
callq 0x120d4c
testq %rax, %rax
je 0xaef0a
movq 0x8(%r15), %rdi
callq 0x120d23
leaq 0x29f77e(%rip), %rsi    # 0x34e669
movq %rax, %rdi
movq %rbx, %rdx
callq 0x103957
movq %rax, %r15
testq %rax, %rax
setne %r14b
jmp 0xaef10
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0xaef10
movb $0x1, %r14b
xorl %r15d, %r15d
testb %r14b, %r14b
je 0xaef33
subl %r13d, %ebp
movslq %r13d, %rax
leaq (%r12,%rax,8), %rsi
movl %ebp, %edi
callq 0x14d00b
movq %rax, %r12
testq %rax, %rax
jne 0xaef36
callq 0x1bf9f
xorl %r12d, %r12d
testb %r14b, %r14b
je 0xaef5a
movq %r12, %rdi
movq (%rsp), %rsi
movq %rbx, %rdx
callq 0x17c56e
movq %rax, %r13
movq %rax, %rdi
testq %rax, %rax
jne 0xaef60
callq 0x1bf68
xorl %r13d, %r13d
movq %r12, %rdi
testb %r14b, %r14b
je 0xaef7f
movq %r15, %rsi
callq 0x14e310
movq %rax, %rbp
movq %rax, %rdi
movq %rbx, %rsi
callq 0x16adca
movl %eax, %ebx
jmp 0xaef86
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
xorl %ebp, %ebp
movq %r12, %rdi
callq 0x16ac6e
movq %rbp, %rdi
callq 0x16ac6e
movq %r13, %rdi
callq 0x16ac6e
movq (%rsp), %rdi
callq 0x1040fc
movq %r15, %rdi
callq 0x1040fc
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1bfd6
callq 0x1bf31
nop