// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/tools/gt_readjoiner_gfa.c
// Function: gt_readjoiner_gfa_runner
static int gt_readjoiner_gfa_runner(GT_UNUSED int argc,
    GT_UNUSED const char **argv, GT_UNUSED int parsed_args,
    void *tool_arguments, GtError *err)
{
  GtReadjoinerGfaArguments *arguments = tool_arguments;
  GtLogger *verbose_logger, *default_logger;
  GtEncseqLoader *el;
  GtEncseq *reads;
  GtTimer *timer = NULL;
  GtStrgraph *strgraph = NULL;
  GtBitsequence *contained = NULL;
  const char *readset = gt_str_get(arguments->readset);
  bool eqlen;
  GtUword nreads;
  int had_err = 0;

  if (gt_showtime_enabled())
  {
    timer = gt_timer_new_with_progress_description(
        GT_READJOINER_GFA_MSG_INIT);
    gt_timer_start(timer);
    gt_timer_show_cpu_time_by_progress(timer);
  }
  gt_assert(arguments);
  gt_error_check(err);
  default_logger = gt_logger_new(!arguments->quiet, GT_LOGGER_DEFLT_PREFIX,
      stdout);
  gt_logger_log(default_logger, "gt readjoiner gfa");
  verbose_logger = gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX,
      stdout);
  gt_logger_log(verbose_logger, "verbose output activated");
  gt_logger_log(verbose_logger, "readset name = %s", readset);
  if (arguments->minmatchlength > 0)
    gt_logger_log(verbose_logger, "SPM length cutoff = %u",
        arguments->minmatchlength);
  if (arguments->gfa1)
    gt_logger_log(verbose_logger, "GFA version = 1.0");
  else
    gt_logger_log(verbose_logger, "GFA version = 2.0");

  el = gt_encseq_loader_new();
  gt_encseq_loader_drop_description_support(el);
  gt_encseq_loader_disable_autosupport(el);
  reads = gt_encseq_loader_load(el, readset, err);
  nreads = gt_encseq_num_of_sequences(reads);
  gt_assert(reads != NULL);
  eqlen = gt_encseq_accesstype_get(reads) == GT_ACCESS_TYPE_EQUALLENGTH;
  gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_INIT);
  if (!eqlen)
  {
    unsigned int i;
    GtUword nofreads;
    GtStr *filename = gt_str_clone(arguments->readset);
    if (gt_showtime_enabled())
      gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_CNT, stdout);
    gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_CNT);
    gt_str_append_cstr(filename, ".0" GT_READJOINER_SUFFIX_CNTLIST);
    had_err = gt_cntlist_parse(gt_str_get(filename), true, &contained,
        &nofreads, err);
    for (i = 1U; i < arguments->nspmfiles && had_err == 0; i++)
    {
      GtUword nofreads_i;
      gt_str_reset(filename);
      gt_str_append_str(filename, arguments->readset);
      gt_str_append_char(filename, '.');
      gt_str_append_uint(filename, i);
      gt_str_append_cstr(filename, GT_READJOINER_SUFFIX_CNTLIST);
      had_err = gt_cntlist_parse(gt_str_get(filename), false, &contained,
          &nofreads_i, err);
      gt_assert(nofreads == nofreads_i);
    }
    gt_str_delete(filename);
    gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_CNT);
  }
  if (!arguments->sg)
  {
    GtStr *filename = NULL;
    GtFile *file = NULL;
    GtGfaWriter *gw = NULL;
    if (had_err == 0)
    {
      filename = gt_str_clone(arguments->readset);
      gt_str_append_cstr(filename, arguments->gz ?
          GT_READJOINER_SUFFIX_SG_GFA_GZ : GT_READJOINER_SUFFIX_SG_GFA);
      file = gt_file_open(arguments->gz ? GT_FILE_MODE_GZIP :
          GT_FILE_MODE_UNCOMPRESSED, gt_str_get(filename), "w", err);
      if (file == NULL)
        had_err = -1;
    }
    if (had_err == 0)
    {
      gw = gt_gfa_writer_new(file, reads, arguments->gfa1 ?
          GT_GFA_VERSION_1_0 : GT_GFA_VERSION_2_0);
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_VERTICES,
            stdout);
      gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_VERTICES);
      had_err = gt_gfa_writer_show_header(gw,
          (GtUword)arguments->minmatchlength,
          gt_str_get(arguments->readset), false, false, err);
    }
    if (had_err == 0)
    {
      had_err = gt_gfa_writer_show_segments(gw, err);
      gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_VERTICES);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_EDGES, stdout);
      gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_EDGES);
      had_err = gt_readjoiner_gfa_use_spmfiles(gt_spmproc_show_gfa,
          gw, readset, arguments->minmatchlength, arguments->nspmfiles,
          contained, err);
      gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_EDGES);
    }
    gt_str_delete(filename);
    gt_file_delete(file);
    gt_gfa_writer_delete(gw);
  }
  else
  {
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_COUNT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_COUNT);
      strgraph = gt_strgraph_new(nreads);
      had_err = gt_readjoiner_gfa_use_spmfiles(gt_spmproc_strgraph_count,
          strgraph, readset, arguments->minmatchlength, arguments->nspmfiles,
          contained, err);
      gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_COUNT);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_INSERT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_INSERT);
      gt_strgraph_allocate_graph(strgraph,
          eqlen ? gt_encseq_seqlength(reads, 0) : 0,
          eqlen ? NULL : reads);
      had_err = gt_strgraph_load_spm_from_file(strgraph,
          (GtUword)arguments->minmatchlength, false,
          contained, readset, arguments->nspmfiles,
          GT_READJOINER_SUFFIX_SPMLIST, err);
      gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_INSERT);
    }
    if (had_err == 0)
    {
      if (gt_showtime_enabled())
        gt_timer_show_progress(timer, GT_READJOINER_GFA_MSG_OUTPUT, stdout);
      gt_logger_log(default_logger, GT_READJOINER_GFA_MSG_OUTPUT);
      gt_strgraph_set_encseq(strgraph, reads);
      gt_strgraph_show(strgraph,
          arguments->gfa1 ?
           (arguments->gz ? GT_STRGRAPH_GFA1_GZ : GT_STRGRAPH_GFA1) :
           (arguments->gz ? GT_STRGRAPH_GFA2_GZ : GT_STRGRAPH_GFA2),
          gt_str_get(arguments->readset),
          arguments->gz ? GT_READJOINER_SUFFIX_SG_GFA_GZ :
          GT_READJOINER_SUFFIX_SG_GFA, false);
      gt_readjoiner_gfa_show_current_space(GT_READJOINER_GFA_MSG_OUTPUT);
    }
  }
  if (gt_showtime_enabled())
  {
    gt_timer_show_progress_final(timer, stdout);
    gt_timer_delete(timer);
  }
  gt_free(contained);
  gt_strgraph_delete(strgraph);
  gt_encseq_loader_delete(el);
  gt_encseq_delete(reads);
  gt_logger_delete(default_logger);
  gt_logger_delete(verbose_logger);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %r8, %rbx
movq %rcx, %r12
movq $0x0, 0x30(%rsp)
movq 0x8(%rcx), %rdi
callq 0x120d23
movq %rax, 0x38(%rsp)
callq 0x11ed94
testb %al, %al
je 0xb9a1f
leaq 0x2a7749(%rip), %rdi    # 0x36114e
callq 0x1226d6
movq %rax, %r13
movq %rax, %rdi
callq 0x122733
movq %r13, %rdi
callq 0x122d69
jmp 0xb9a22
xorl %r13d, %r13d
testq %r12, %r12
je 0xba50a
testq %rbx, %rbx
je 0xb9a40
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0xba514
movq %rbx, 0x20(%rsp)
movzbl 0x1(%r12), %edi
movq 0x40a496(%rip), %r14    # 0x4c3ee8
movq (%r14), %rdx
xorl $0x1, %edi
leaq 0x295e75(%rip), %rbx    # 0x34f8d4
movq %rbx, %rsi
callq 0x108ed0
movq %rax, %rbp
leaq 0x2a2d99(%rip), %rsi    # 0x35c80a
movq %rax, %rdi
xorl %eax, %eax
callq 0x10906e
movzbl (%r12), %edi
movq (%r14), %rdx
movq %rbx, %rsi
callq 0x108ed0
movq %rax, %r15
leaq 0x2a1d26(%rip), %rsi    # 0x35b7bb
movq %rax, %rdi
xorl %eax, %eax
callq 0x10906e
leaq 0x2a1d2e(%rip), %rsi    # 0x35b7d4
movq %r15, %rdi
movq 0x38(%rsp), %rdx
xorl %eax, %eax
callq 0x10906e
movl 0x4(%r12), %edx
testl %edx, %edx
je 0xb9acf
leaq 0x2a1d21(%rip), %rsi    # 0x35b7e6
movq %r15, %rdi
xorl %eax, %eax
callq 0x10906e
leaq 0x2a2d46(%rip), %rax    # 0x35c81c
leaq 0x2a2d51(%rip), %rsi    # 0x35c82e
cmpb $0x0, 0x18(%r12)
cmovneq %rax, %rsi
movq %r15, %rdi
xorl %eax, %eax
callq 0x10906e
callq 0xf36ef
movq %rax, %rbx
movq %rax, %rdi
callq 0xf6920
movq %rbx, %rdi
callq 0xf69cc
movq %rbx, 0x60(%rsp)
movq %rbx, %rdi
movq 0x38(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0xf374b
movq %rax, %r14
movq %rax, %rdi
callq 0xec1e8
movq %rax, 0x58(%rsp)
testq %r14, %r14
je 0xba50f
movq %r14, %rdi
callq 0xfac0f
movl %eax, 0x28(%rsp)
callq 0x10989a
testb %al, %al
je 0xb9be7
callq 0x10978b
movq %rax, %rbx
callq 0x102df2
leaq (%rax,%rbx), %rcx
movq %rcx, %xmm1
movq 0x296d70(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x296d74(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x296d6c(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %rbx, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a1d00(%rip), %rdi    # 0x35b8d9
leaq 0x2a756e(%rip), %rsi    # 0x36114e
movb $0x3, %al
callq 0x108e02
xorl %ebx, %ebx
cmpl $0x2, 0x28(%rsp)
movq %r14, 0x10(%rsp)
movq %r12, 0x18(%rsp)
movq %r15, 0x48(%rsp)
je 0xb9de7
movq 0x8(%r12), %rdi
callq 0x120e13
movq %rax, %r15
callq 0x11ed94
testb %al, %al
je 0xb9c32
movq 0x40a2c8(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a1bd3(%rip), %rsi    # 0x35b7fd
movq %r13, %rdi
callq 0x1229c8
movq %r13, 0x40(%rsp)
leaq 0x2a1bbf(%rip), %rsi    # 0x35b7fd
movq %rbp, 0x50(%rsp)
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
leaq 0x2a1bc8(%rip), %rsi    # 0x35b81c
movq %r15, %rdi
callq 0x12097f
movq %r15, %rdi
callq 0x120d23
leaq 0x30(%rsp), %rdx
leaq 0x70(%rsp), %rcx
movq %rax, %rdi
movl $0x1, %esi
movq 0x20(%rsp), %r8
callq 0x1caf4e
movl %eax, %ebx
cmpl $0x2, 0x14(%r12)
jb 0xb9d24
testl %ebx, %ebx
jne 0xb9d24
movl $0x2, %ebp
leaq 0x30(%rsp), %r13
leaq 0x68(%rsp), %r14
movq 0x18(%rsp), %r12
leal -0x1(%rbp), %ebx
movq %r15, %rdi
callq 0x120db4
movq 0x8(%r12), %rsi
movq %r15, %rdi
callq 0x120a43
movq %r15, %rdi
movl $0x2e, %esi
callq 0x120ba5
movq %r15, %rdi
movl %ebx, %esi
callq 0x120cd6
movq %r15, %rdi
leaq 0x2a1b3b(%rip), %rsi    # 0x35b81e
callq 0x12097f
movq %r15, %rdi
callq 0x120d23
movq %rax, %rdi
xorl %esi, %esi
movq %r13, %rdx
movq %r14, %rcx
movq 0x20(%rsp), %r8
callq 0x1caf4e
movl %eax, %ebx
movq 0x70(%rsp), %rax
cmpq 0x68(%rsp), %rax
jne 0xba505
cmpl 0x14(%r12), %ebp
jae 0xb9d24
incl %ebp
testl %ebx, %ebx
je 0xb9caa
movq %r15, %rdi
callq 0x121b03
callq 0x10989a
testb %al, %al
je 0xb9dce
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x296b89(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x296b8d(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x296b85(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a1b19(%rip), %rdi    # 0x35b8d9
leaq 0x2a1a36(%rip), %rsi    # 0x35b7fd
movb $0x3, %al
callq 0x108e02
movq 0x40(%rsp), %r13
movq 0x50(%rsp), %rbp
movq 0x48(%rsp), %r15
movq 0x10(%rsp), %r14
movq 0x18(%rsp), %r12
cmpb $0x0, 0x11(%r12)
je 0xb9dfb
testl %ebx, %ebx
je 0xb9e14
xorl %r12d, %r12d
jmp 0xb9f2b
xorl %r12d, %r12d
testl %ebx, %ebx
je 0xba1b4
movq $0x0, 0x28(%rsp)
jmp 0xba21c
callq 0x11ed94
testb %al, %al
je 0xb9e36
movq 0x40a0c4(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a1a3f(%rip), %rsi    # 0x35b86d
movq %r13, %rdi
callq 0x1229c8
leaq 0x2a1a30(%rip), %rsi    # 0x35b86d
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x58(%rsp), %rdi
callq 0x1d7927
movq %rax, %r12
movq 0x18(%rsp), %rax
movl 0x4(%rax), %ecx
movl 0x14(%rax), %r8d
movq 0x30(%rsp), %r9
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
leaq 0x11eb5a(%rip), %rdi    # 0x1d89cf
movq %r12, %rsi
movq 0x38(%rsp), %rdx
callq 0xba519
movl %eax, %ebx
callq 0x10989a
testb %al, %al
je 0xb9f2b
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x296a31(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x296a35(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x296a2d(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
movq 0x10(%rsp), %r14
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a19bc(%rip), %rdi    # 0x35b8d9
leaq 0x2a1949(%rip), %rsi    # 0x35b86d
movb $0x3, %al
callq 0x108e02
testl %ebx, %ebx
jne 0xba06b
callq 0x11ed94
testb %al, %al
je 0xb9f55
movq 0x409fa5(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a1944(%rip), %rsi    # 0x35b891
movq %r13, %rdi
callq 0x1229c8
leaq 0x2a1935(%rip), %rsi    # 0x35b891
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
cmpl $0x2, 0x28(%rsp)
jne 0xb9f7f
movq %r14, %rdi
xorl %r14d, %r14d
xorl %esi, %esi
callq 0xeffd3
movq %rax, %rbx
movq %r12, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x1d79f2
movq 0x18(%rsp), %rax
movl 0x4(%rax), %esi
movl 0x14(%rax), %r9d
movq 0x30(%rsp), %rcx
movq 0x20(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x2a2f78(%rip), %rax    # 0x35cf27
movq %rax, (%rsp)
movq %r12, %rdi
xorl %edx, %edx
movq 0x38(%rsp), %r8
callq 0x1d8eed
movl %eax, %ebx
callq 0x10989a
testb %al, %al
je 0xba066
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x2968f1(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x2968f5(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x2968ed(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a1881(%rip), %rdi    # 0x35b8d9
leaq 0x2a1832(%rip), %rsi    # 0x35b891
movb $0x3, %al
callq 0x108e02
movq 0x10(%rsp), %r14
testl %ebx, %ebx
jne 0xba491
callq 0x11ed94
testb %al, %al
je 0xba095
movq 0x409e65(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a27f9(%rip), %rsi    # 0x35c886
movq %r13, %rdi
callq 0x1229c8
movq %r13, 0x40(%rsp)
leaq 0x2a27e5(%rip), %rsi    # 0x35c886
xorl %ebx, %ebx
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
movq %r12, %rdi
movq %r14, %rsi
callq 0x1d9490
movq 0x18(%rsp), %r13
movzbl 0x18(%r13), %eax
movzbl 0x10(%r13), %ecx
xorl $0x1, %eax
leal (%rcx,%rax,2), %r14d
addl $0x7, %r14d
movq 0x8(%r13), %rdi
callq 0x120d23
leaq 0x2a275e(%rip), %rdx    # 0x35c840
leaq 0x2a275f(%rip), %rcx    # 0x35c848
cmpb $0x0, 0x10(%r13)
cmovneq %rdx, %rcx
movq %r12, %rdi
movl %r14d, %esi
movq %rax, %rdx
xorl %r8d, %r8d
callq 0x1de74e
callq 0x10989a
testb %al, %al
je 0xba1a5
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x2967b2(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x2967b6(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x2967ae(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a1742(%rip), %rdi    # 0x35b8d9
leaq 0x2a26e8(%rip), %rsi    # 0x35c886
movb $0x3, %al
callq 0x108e02
movq 0x10(%rsp), %r14
movq 0x40(%rsp), %r13
jmp 0xba491
movq 0x18(%rsp), %rbx
movq 0x8(%rbx), %rdi
callq 0x120e13
movq %rax, %r14
leaq 0x2a2674(%rip), %rax    # 0x35c840
leaq 0x2a2675(%rip), %rsi    # 0x35c848
cmpb $0x0, 0x10(%rbx)
cmovneq %rax, %rsi
movq %r14, %rdi
callq 0x12097f
movzbl 0x10(%rbx), %ebx
movq %r14, %rdi
callq 0x120d23
leaq 0x2e283b(%rip), %rdx    # 0x39ca31
movl %ebx, %edi
movq %rax, %rsi
movq 0x20(%rsp), %rcx
callq 0x1039a2
movq %rax, 0x28(%rsp)
cmpq $0x1, %rax
sbbl %r12d, %r12d
movl %r12d, %ebx
movq %r14, %r12
movq 0x10(%rsp), %r14
testl %ebx, %ebx
je 0xba225
xorl %r15d, %r15d
jmp 0xba29f
movq 0x18(%rsp), %rax
movzbl 0x18(%rax), %edx
xorl $0x1, %edx
movq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x1b8d20
movq %rax, %r15
callq 0x11ed94
testb %al, %al
je 0xba263
movq 0x409c97(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a25f2(%rip), %rsi    # 0x35c84d
movq %r13, %rdi
callq 0x1229c8
leaq 0x2a25e3(%rip), %rsi    # 0x35c84d
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x18(%rsp), %rax
movl 0x4(%rax), %ebx
movq 0x8(%rax), %rdi
callq 0x120d23
movq %r15, %rdi
movq %rbx, %rsi
movq %rax, %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
movq 0x20(%rsp), %r9
callq 0x1b8d76
movl %eax, %ebx
testl %ebx, %ebx
jne 0xba35d
movq %r15, %rdi
movq 0x20(%rsp), %rsi
callq 0x1b8dd8
movl %eax, %ebx
callq 0x10989a
testb %al, %al
je 0xba35d
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x2965ff(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x296603(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x2965fb(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
movq 0x10(%rsp), %r14
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a158a(%rip), %rdi    # 0x35b8d9
leaq 0x2a24f7(%rip), %rsi    # 0x35c84d
movb $0x3, %al
callq 0x108e02
testl %ebx, %ebx
jne 0xba46f
callq 0x11ed94
testb %al, %al
je 0xba387
movq 0x409b73(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0x2a24ec(%rip), %rsi    # 0x35c86b
movq %r13, %rdi
callq 0x1229c8
leaq 0x2a24dd(%rip), %rsi    # 0x35c86b
movq %rbp, %rdi
xorl %eax, %eax
callq 0x10906e
movq 0x18(%rsp), %rax
movl 0x4(%rax), %ecx
movl 0x14(%rax), %r8d
movq 0x30(%rsp), %r9
movq 0x20(%rsp), %rax
movq %rax, (%rsp)
leaq 0xfebcb(%rip), %rdi     # 0x1b8f84
movq %r15, %rsi
movq 0x38(%rsp), %rdx
callq 0xba519
movl %eax, %ebx
callq 0x10989a
testb %al, %al
je 0xba46f
callq 0x10978b
movq %rax, %r14
callq 0x102df2
leaq (%rax,%r14), %rcx
movq %rcx, %xmm1
movq 0x2964ed(%rip), %xmm2   # 0x3508e0
punpckldq %xmm2, %xmm1    # xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]
movapd 0x2964f1(%rip), %xmm3   # 0x3508f0
subpd %xmm3, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
movsd 0x2964e9(%rip), %xmm4   # 0x350900
mulsd %xmm4, %xmm0
movq %r14, %xmm5
movq 0x10(%rsp), %r14
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm1
unpckhpd %xmm5, %xmm1            # xmm1 = xmm1[1],xmm5[1]
addsd %xmm5, %xmm1
mulsd %xmm4, %xmm1
movq %rax, %xmm5
punpckldq %xmm2, %xmm5    # xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
subpd %xmm3, %xmm5
movapd %xmm5, %xmm2
unpckhpd %xmm5, %xmm2            # xmm2 = xmm2[1],xmm5[1]
addsd %xmm5, %xmm2
mulsd %xmm4, %xmm2
leaq 0x2a1478(%rip), %rdi    # 0x35b8d9
leaq 0x2a2403(%rip), %rsi    # 0x35c86b
movb $0x3, %al
callq 0x108e02
movq %r12, %rdi
callq 0x121b03
movq 0x28(%rsp), %rdi
callq 0x1040fc
movq %r15, %rdi
callq 0x1b90a8
xorl %r12d, %r12d
movq 0x48(%rsp), %r15
callq 0x11ed94
testb %al, %al
je 0xba4b4
movq 0x409a47(%rip), %rax    # 0x4c3ee8
movq (%rax), %rsi
movq %r13, %rdi
callq 0x122c67
movq %r13, %rdi
callq 0x122d79
movq 0x30(%rsp), %rdi
leaq 0x2a225a(%rip), %rsi    # 0x35c71a
movl $0x165, %edx            # imm = 0x165
callq 0x109670
movq %r12, %rdi
callq 0x1d7dbc
movq 0x60(%rsp), %rdi
callq 0xf424d
movq %r14, %rdi
callq 0xee90c
movq %rbp, %rdi
callq 0x10916a
movq %r15, %rdi
callq 0x10916a
movl %ebx, %eax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x1dd8d
callq 0x1ddff
callq 0x1ddc6
callq 0x1dd54