// File: /workspace/github_c_makefile_star2_O2/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, %rbp
movl %edi, %r12d
testq %r8, %r8
je 0x2f98d
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x2fad4
testq %r15, %r15
je 0x2faaa
movq (%r15), %rdi
callq 0xad289
testq %rax, %rax
je 0x2f9d0
movq (%r15), %rdi
callq 0xad1fa
leaq 0x2b5cb7(%rip), %rsi    # 0x2e5669
movq %rax, %rdi
movq %rbx, %rdx
callq 0x8ce05
movq %rax, %r14
testq %rax, %rax
jne 0x2f9d3
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r14d, %r14d
jmp 0x2fa0a
xorl %r14d, %r14d
movq 0x8(%r15), %rdi
callq 0xad289
testq %rax, %rax
je 0x2fa14
movq 0x8(%r15), %rdi
callq 0xad1fa
leaq 0x2b5c78(%rip), %rsi    # 0x2e5669
movq %rax, %rdi
movq %rbx, %rdx
callq 0x8ce05
movq %rax, %r15
testq %rax, %rax
jne 0x2fa17
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r13d, %r13d
xorl %ebp, %ebp
pushq $-0x1
popq %rbx
jmp 0x2fa71
xorl %r15d, %r15d
subl %r13d, %r12d
movslq %r13d, %rax
leaq (,%rax,8), %rsi
addq %rbp, %rsi
movl %r12d, %edi
callq 0xdeebd
testq %rax, %rax
je 0x2fafe
movq %rax, %r13
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x118333
testq %rax, %rax
je 0x2fb28
movq %rax, %r12
movq %rax, %rdi
movq %r15, %rsi
callq 0xe07df
movq %rax, %rbp
movq %rax, %rdi
movq %rbx, %rsi
callq 0x102b93
movl %eax, %ebx
movq %r13, %rdi
callq 0x10297b
movq %rbp, %rdi
callq 0x10297b
movq %r12, %rdi
callq 0x10297b
movq %r14, %rdi
callq 0x8da06
movq %r15, %rdi
callq 0x8da06
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x4084b7(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2b5558(%rip), %rsi    # 0x2e5013
leaq 0x318b91(%rip), %rdx    # 0x348653
leaq 0x2bf9d9(%rip), %rcx    # 0x2ef4a2
leaq 0x2bf8cd(%rip), %r8     # 0x2ef39d
pushq $0x62
jmp 0x2fb50
movq 0x40848d(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2b552e(%rip), %rsi    # 0x2e5013
leaq 0x2b56d3(%rip), %rdx    # 0x2e51bf
leaq 0x2bf9af(%rip), %rcx    # 0x2ef4a2
leaq 0x2bf8a3(%rip), %r8     # 0x2ef39d
pushq $0x61
jmp 0x2fb50
movq 0x408463(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2b5504(%rip), %rsi    # 0x2e5013
leaq 0x2bf878(%rip), %rdx    # 0x2ef38e
leaq 0x2bf985(%rip), %rcx    # 0x2ef4a2
leaq 0x2bf879(%rip), %r8     # 0x2ef39d
pushq $0x74
jmp 0x2fb50
movq 0x408439(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x2b54da(%rip), %rsi    # 0x2e5013
leaq 0x2bf97c(%rip), %rdx    # 0x2ef4bc
leaq 0x2bf95b(%rip), %rcx    # 0x2ef4a2
leaq 0x2bf84f(%rip), %r8     # 0x2ef39d
pushq $0x7b
popq %r9
xorl %eax, %eax
callq 0x17a50
callq 0x17390
nop