// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_readjoiner_prefilter.c
// Function: gt_readjoiner_prefilter_runner
static int gt_readjoiner_prefilter_runner(GT_UNUSED int argc,
    GT_UNUSED const char **argv, GT_UNUSED int parsed_args,
    void *tool_arguments, GtError *err)
{
  GtReadjoinerPrefilterArguments *arguments = tool_arguments;
  int had_err = 0;
  bool varlen;
  GtUword i;
  GtUword nofreads_valid, nofreads_invalid, nofreads_input,
                nofreads_output,
                tlen_valid, tlen_invalid, tlen_input;
  GtLogger *default_logger, *verbose_logger;
  GtReads2Twobit *r2t;

  default_logger =
    gt_logger_new(!arguments->quiet, GT_LOGGER_DEFLT_PREFIX, stdout);
  verbose_logger =
    gt_logger_new(arguments->verbose, GT_LOGGER_DEFLT_PREFIX, stdout);

  gt_logger_log(default_logger,
      "gt readjoiner prefilter (version "GT_READJOINER_VERSION")");

  /* default readset name: first db argument */
  if (gt_str_length(arguments->readset) == 0)
    gt_str_append_cstr(arguments->readset, gt_str_array_get(arguments->db, 0));
  gt_logger_log(verbose_logger, "readset name = %s",
      gt_str_get(arguments->readset));

  if (arguments->verbose)
    gt_readjoiner_prefilter_list_input_files(arguments, verbose_logger);

  r2t = gt_reads2twobit_new(arguments->readset);

  if (arguments->phred64)
    gt_reads2twobit_use_phred64(r2t);

  if (arguments->maxlow != GT_UNDEF_UWORD)
    gt_reads2twobit_set_quality_filter(r2t, arguments->maxlow,
        (char)arguments->lowqual);

  if (arguments->des)
    gt_reads2twobit_enable_descs(r2t, arguments->clipdes, arguments->memdes);

  for (i = 0; i < gt_str_array_size(arguments->db) && !had_err; i++)
  {
    GtStr *dbentry = gt_str_array_get_str(arguments->db, i);
    had_err = gt_reads2twobit_add_library(r2t, dbentry, err);
  }

  if (!had_err)
    had_err = gt_reads2twobit_encode(r2t, err);

  if (!had_err)
  {
    nofreads_valid = gt_reads2twobit_nofseqs(r2t);
    nofreads_invalid = gt_reads2twobit_nof_invalid_seqs(r2t);
    nofreads_input = nofreads_valid + nofreads_invalid;
    tlen_valid = gt_reads2twobit_total_seqlength(r2t) -
      gt_reads2twobit_nofseqs(r2t);
    tlen_invalid = gt_reads2twobit_invalid_seqs_totallength(r2t);
    tlen_input = tlen_valid + tlen_invalid;

    gt_logger_log(default_logger,
                  "number of reads in complete readset = "GT_WU"",
                  nofreads_input);

    varlen = (gt_reads2twobit_seqlen_eqlen(r2t) == 0);
    if (varlen)
      gt_logger_log(verbose_logger, "read length = variable ["GT_WU".."GT_WU"]",
          gt_reads2twobit_seqlen_min(r2t), gt_reads2twobit_seqlen_max(r2t));
    else
      gt_logger_log(verbose_logger, "read length = "GT_WU"",
          gt_reads2twobit_seqlen_eqlen(r2t) - 1UL);

    gt_logger_log(verbose_logger, "total length of complete readset = "GT_WU"",
        tlen_input);
    gt_logger_log(verbose_logger, "low-quality reads = "GT_WU" "
        "[%.2f %% of input]", nofreads_invalid, (float)nofreads_invalid * 100 /
        (float)nofreads_input);
    if (!arguments->verbose)
      gt_logger_log(default_logger, "low-quality reads = "GT_WU"",
          nofreads_invalid);
    nofreads_output = nofreads_valid;
    if (arguments->encodeonly)
    {
      if (!had_err && arguments->fasta)
      {
        GtStr *fn;
        fn = gt_str_new_cstr(gt_str_get(arguments->readset));
        gt_str_append_cstr(fn, GT_READJOINER_SUFFIX_PREFILTERED_FAS);
        had_err = gt_reads2twobit_write_fasta(r2t, gt_str_get(fn), NULL, err);
        gt_logger_log(verbose_logger, "readset saved: %s", gt_str_get(fn));
        gt_str_delete(fn);
      }
      if (!had_err && arguments->encseq)
      {
        had_err = gt_reads2twobit_write_encseq(r2t, err);
        gt_logger_log(verbose_logger, "readset saved: %s.%s",
            gt_str_get(arguments->readset), varlen ? "(esq|ssp)" : "esq");
        if (!had_err && arguments->des)
        {
          had_err = gt_reads2twobit_write_descriptions(r2t, NULL, err);
          gt_logger_log(verbose_logger,
              "descriptions saved: %s.(des|sds)",
              gt_str_get(arguments->readset));
        }
      }
      gt_logger_log(default_logger,
                    "number of reads in output readset = "GT_WU"",
                    nofreads_output);
    }
    else
    {
      GtContfinder *contfinder;
      GtUword nofreads_contained, nofreads_matesofc;
      contfinder = gt_contfinder_new(r2t);
      gt_contfinder_run(contfinder, !arguments->singlestrand,
          arguments->copynum);

      nofreads_contained = gt_contfinder_nofcontained(contfinder);
      nofreads_output -= nofreads_contained;

      gt_logger_log(verbose_logger,
                    "contained reads = "GT_WU" [%.2f %% of input]",
                    nofreads_contained, (float)nofreads_contained * 100 /
                    (float)nofreads_input);
      if (!arguments->verbose)
        gt_logger_log(default_logger, "contained reads = "GT_WU"",
            nofreads_contained);

      if (gt_reads2twobit_has_paired(r2t))
      {
        nofreads_matesofc = gt_reads2twobit_mark_mates_of_contained(r2t,
            gt_contfinder_contained(contfinder));
        nofreads_output -= nofreads_matesofc;

        gt_logger_log(verbose_logger,
            "mates of contained reads = "GT_WU" [%.2f %% of input]",
            nofreads_matesofc, (float)nofreads_matesofc * 100 /
            (float)nofreads_input);
        if (!arguments->verbose)
          gt_logger_log(default_logger, "mates of contained reads = "GT_WU"",
              nofreads_matesofc);
      }

      gt_logger_log(default_logger,
                    "number of reads in filtered readset = "GT_WU"",
                    nofreads_output);

      if (!had_err && arguments->cntlist)
      {
        GT_READJOINER_PREFILTER_CF_OUTPUT(gt_contfinder_write_cntlist,
            GT_READJOINER_SUFFIX_CNTLIST, "contained reads list saved");
      }
      if (!had_err && arguments->copynum)
      {
        GT_READJOINER_PREFILTER_CF_OUTPUT(gt_contfinder_write_copynum,
            GT_READJOINER_SUFFIX_READSCOPYNUM, "reads copy number saved");
      }
      if (!had_err && arguments->seqnums)
      {
        GT_READJOINER_PREFILTER_CF_OUTPUT(gt_contfinder_write_sorted_seqnums,
            GT_READJOINER_SUFFIX_SEQNUMS, "sorted sequence numbers "
            "saved");
      }
      if (!had_err && arguments->fasta)
      {
        GtStr *fn;
        fn = gt_str_new_cstr(gt_str_get(arguments->readset));
        gt_str_append_cstr(fn, GT_READJOINER_SUFFIX_PREFILTERED_FAS);
        had_err = gt_reads2twobit_write_fasta(r2t, gt_str_get(fn),
            gt_contfinder_contained(contfinder), err);
        gt_logger_log(verbose_logger, "suffix-prefix-free readset saved: %s",
            gt_str_get(fn));
        gt_str_delete(fn);
      }
      if (!had_err && arguments->encseq)
      {
        gt_reads2twobit_delete_sequences(r2t,
            gt_contfinder_contained(contfinder));
        if (nofreads_output > 0)
        {
          had_err = gt_reads2twobit_write_encseq(r2t, err);
          gt_logger_log(verbose_logger,
              "suffix-prefix-free readset saved: %s.%s",
              gt_str_get(arguments->readset),
              varlen ? "(esq|ssp)" : "esq");
          if (!had_err && arguments->des)
          {
            had_err = gt_reads2twobit_write_descriptions(r2t,
                gt_contfinder_contained(contfinder), err);
            gt_logger_log(verbose_logger,
                "descriptions saved: %s.(des|sds)",
                gt_str_get(arguments->readset));
          }
        }
        else
        {
          gt_logger_log(default_logger,
              "no readset saved as no sequence passed the filters");
        }
      }
      if (arguments->testrs)
      {
        gt_contfinder_radixsort_str_eqlen_tester(contfinder,
            !arguments->singlestrand,
            arguments->testrs_depth, arguments->testrs_maxdepth,
            arguments->testrs_print);
      }
      gt_contfinder_delete(contfinder);
    }
    if (!had_err && arguments->libtable && nofreads_output > 0)
    {
      GtStr *fn;
      FILE *rlt_fp;
      fn = gt_str_new_cstr(gt_str_get(arguments->readset));
      gt_str_append_cstr(fn, GT_READJOINER_SUFFIX_READSLIBRARYTABLE);
      rlt_fp = gt_fa_fopen(gt_str_get(fn), "w", err);
      if (rlt_fp == NULL)
        had_err = -1;
      else
      {
        gt_reads2twobit_write_libraries_table(r2t, rlt_fp);
        gt_logger_log(verbose_logger, "reads library table saved: %s",
            gt_str_get(fn));
        gt_fa_fclose(rlt_fp);
      }
      gt_str_delete(fn);
    }
  }
  gt_reads2twobit_delete(r2t);
  gt_logger_delete(verbose_logger);
  gt_logger_delete(default_logger);
  return had_err;
}

// Assembly:
subq $0x238, %rsp            # imm = 0x238
movl %edi, 0x234(%rsp)
movq %rsi, 0x228(%rsp)
movl %edx, 0x224(%rsp)
movq %rcx, 0x218(%rsp)
movq %r8, 0x210(%rsp)
movq 0x218(%rsp), %rax
movq %rax, 0x208(%rsp)
movl $0x0, 0x204(%rsp)
movq 0x208(%rsp), %rax
movb 0x1(%rax), %al
xorb $-0x1, %al
movq 0x5e69fc(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
movzbl %al, %edi
andl $0x1, %edi
leaq 0x4c23a0(%rip), %rsi    # 0x5178ec
callq 0xe7870
movq %rax, 0x1b8(%rsp)
movq 0x208(%rsp), %rax
movb (%rax), %al
movq 0x5e69ce(%rip), %rcx    # 0x63bf38
movq (%rcx), %rdx
leaq 0x4c2378(%rip), %rsi    # 0x5178ec
andb $0x1, %al
movzbl %al, %edi
callq 0xe7870
movq %rax, 0x1b0(%rsp)
movq 0x1b8(%rsp), %rdi
leaq 0x4d0401(%rip), %rsi    # 0x525996
movb $0x0, %al
callq 0xe7cd0
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dfa0
cmpq $0x0, %rax
jne 0x555ec
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x148(%rsp)
movq 0x208(%rsp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11f8c0
movq 0x148(%rsp), %rdi
movq %rax, %rsi
callq 0x11d550
movq 0x1b0(%rsp), %rax
movq %rax, 0x140(%rsp)
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x140(%rsp), %rdi
movq %rax, %rdx
leaq 0x4ce1fd(%rip), %rsi    # 0x52381c
movb $0x0, %al
callq 0xe7cd0
movq 0x208(%rsp), %rax
testb $0x1, (%rax)
je 0x55648
movq 0x208(%rsp), %rdi
movq 0x1b0(%rsp), %rsi
callq 0x56670
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x2a0620
movq %rax, 0x1a8(%rsp)
movq 0x208(%rsp), %rax
testb $0x1, 0xa(%rax)
je 0x5567c
movq 0x1a8(%rsp), %rdi
callq 0x2a1000
movq 0x208(%rsp), %rax
cmpq $-0x1, 0x38(%rax)
je 0x556b2
movq 0x1a8(%rsp), %rdi
movq 0x208(%rsp), %rax
movq 0x38(%rax), %rsi
movq 0x208(%rsp), %rax
movl 0x40(%rax), %eax
movsbl %al, %edx
callq 0x2a1060
movq 0x208(%rsp), %rax
testb $0x1, 0xb(%rax)
je 0x556ee
movq 0x1a8(%rsp), %rdi
movq 0x208(%rsp), %rax
movb 0xc(%rax), %cl
movq 0x208(%rsp), %rax
movb 0xd(%rax), %al
andb $0x1, %cl
andb $0x1, %al
movzbl %cl, %esi
movzbl %al, %edx
callq 0x2a51f0
movq $0x0, 0x1f8(%rsp)
movq 0x1f8(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x208(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11fcc0
movq 0x130(%rsp), %rcx
movq %rax, %rdx
xorl %eax, %eax
cmpq %rdx, %rcx
movb %al, 0x13f(%rsp)
jae 0x55748
cmpl $0x0, 0x204(%rsp)
setne %al
xorb $-0x1, %al
movb %al, 0x13f(%rsp)
movb 0x13f(%rsp), %al
testb $0x1, %al
jne 0x55755
jmp 0x557b3
movq 0x208(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x1f8(%rsp), %rsi
callq 0x11f960
movq %rax, 0x1a0(%rsp)
movq 0x1a8(%rsp), %rdi
movq 0x1a0(%rsp), %rsi
movq 0x210(%rsp), %rdx
callq 0x2a0b30
movl %eax, 0x204(%rsp)
movq 0x1f8(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x1f8(%rsp)
jmp 0x556fa
cmpl $0x0, 0x204(%rsp)
jne 0x557d9
movq 0x1a8(%rsp), %rdi
movq 0x210(%rsp), %rsi
callq 0x2a10a0
movl %eax, 0x204(%rsp)
cmpl $0x0, 0x204(%rsp)
jne 0x5662f
movq 0x1a8(%rsp), %rdi
callq 0x2a4e40
movq %rax, 0x1f0(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4da0
movq %rax, 0x1e8(%rsp)
movq 0x1f0(%rsp), %rax
addq 0x1e8(%rsp), %rax
movq %rax, 0x1e0(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4f80
movq %rax, 0x128(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4e40
movq %rax, %rcx
movq 0x128(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x1d0(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4df0
movq %rax, 0x1c8(%rsp)
movq 0x1d0(%rsp), %rax
addq 0x1c8(%rsp), %rax
movq %rax, 0x1c0(%rsp)
movq 0x1b8(%rsp), %rdi
movq 0x1e0(%rsp), %rdx
leaq 0x4d0117(%rip), %rsi    # 0x5259bc
movb $0x0, %al
callq 0xe7cd0
movq 0x1a8(%rsp), %rdi
callq 0x2a4e90
cmpq $0x0, %rax
sete %al
andb $0x1, %al
movb %al, 0x203(%rsp)
testb $0x1, 0x203(%rsp)
je 0x55928
movq 0x1b0(%rsp), %rax
movq %rax, 0x118(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4f30
movq %rax, 0x120(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4ee0
movq 0x118(%rsp), %rdi
movq 0x120(%rsp), %rdx
movq %rax, %rcx
leaq 0x4d00c7(%rip), %rsi    # 0x5259e6
movb $0x0, %al
callq 0xe7cd0
jmp 0x55962
movq 0x1b0(%rsp), %rax
movq %rax, 0x110(%rsp)
movq 0x1a8(%rsp), %rdi
callq 0x2a4e90
movq 0x110(%rsp), %rdi
movq %rax, %rdx
subq $0x1, %rdx
leaq 0x4ce520(%rip), %rsi    # 0x523e7b
movb $0x0, %al
callq 0xe7cd0
movq 0x1b0(%rsp), %rdi
movq 0x1c0(%rsp), %rdx
leaq 0x4d008f(%rip), %rsi    # 0x525a08
xorl %eax, %eax
callq 0xe7cd0
movq 0x1b0(%rsp), %rax
movq %rax, 0xf8(%rsp)
movq 0x1e8(%rsp), %rax
movq %rax, 0x100(%rsp)
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x108(%rsp)
testq %rax, %rax
movss %xmm0, 0x10c(%rsp)
js 0x559e5
movss 0x108(%rsp), %xmm0
movss %xmm0, 0x10c(%rsp)
movss 0x10c(%rsp), %xmm0
movss 0x4cf9a2(%rip), %xmm1   # 0x525398
mulss %xmm1, %xmm0
movss %xmm0, 0xec(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0xf0(%rsp)
testq %rax, %rax
movss %xmm0, 0xf4(%rsp)
js 0x55a50
movss 0xf0(%rsp), %xmm0
movss %xmm0, 0xf4(%rsp)
movq 0x100(%rsp), %rdx
movq 0xf8(%rsp), %rdi
movss 0xec(%rsp), %xmm0
movss 0xf4(%rsp), %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4cffae(%rip), %rsi    # 0x525a2f
movb $0x1, %al
callq 0xe7cd0
movq 0x208(%rsp), %rax
testb $0x1, (%rax)
jne 0x55ab3
movq 0x1b8(%rsp), %rdi
movq 0x1e8(%rsp), %rdx
leaq 0x4cffae(%rip), %rsi    # 0x525a5a
movb $0x0, %al
callq 0xe7cd0
movq 0x1f0(%rsp), %rax
movq %rax, 0x1d8(%rsp)
movq 0x208(%rsp), %rax
testb $0x1, 0x3(%rax)
je 0x55cd8
cmpl $0x0, 0x204(%rsp)
jne 0x55bad
movq 0x208(%rsp), %rax
testb $0x1, 0x7(%rax)
je 0x55bad
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x198(%rsp)
movq 0x198(%rsp), %rdi
leaq 0x4cff4d(%rip), %rsi    # 0x525a72
callq 0x11d550
movq 0x1a8(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x198(%rsp), %rdi
callq 0x11dee0
movq 0xd8(%rsp), %rdi
movq %rax, %rsi
movq 0x210(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x2a2cd0
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq 0x198(%rsp), %rdi
callq 0x11dee0
movq 0xe0(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cfff8(%rip), %rsi    # 0x525b91
movb $0x0, %al
callq 0xe7cd0
movq 0x198(%rsp), %rdi
callq 0x11f560
cmpl $0x0, 0x204(%rsp)
jne 0x55cb5
movq 0x208(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x55cb5
movq 0x1a8(%rsp), %rdi
movq 0x210(%rsp), %rsi
callq 0x2a41c0
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0xd0(%rsp), %rdi
movq %rax, %rdx
movb 0x203(%rsp), %sil
leaq 0x4d4a30(%rip), %rcx    # 0x52a654
leaq 0x4cfe4e(%rip), %rax    # 0x525a79
testb $0x1, %sil
cmovneq %rax, %rcx
leaq 0x4cff7c(%rip), %rsi    # 0x525bb6
movb $0x0, %al
callq 0xe7cd0
cmpl $0x0, 0x204(%rsp)
jne 0x55cb3
movq 0x208(%rsp), %rax
testb $0x1, 0xb(%rax)
je 0x55cb3
movq 0x1a8(%rsp), %rdi
movq 0x210(%rsp), %rdx
xorl %eax, %eax
movl %eax, %esi
callq 0x2a3d10
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0xc8(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cfdd7(%rip), %rsi    # 0x525a83
movb $0x0, %al
callq 0xe7cd0
jmp 0x55cb5
movq 0x1b8(%rsp), %rdi
movq 0x1d8(%rsp), %rdx
leaq 0x4cfdd8(%rip), %rsi    # 0x525aa4
movb $0x0, %al
callq 0xe7cd0
jmp 0x5651c
movq 0x1a8(%rsp), %rdi
callq 0x27b490
movq %rax, 0x190(%rsp)
movq 0x190(%rsp), %rdi
movq 0x208(%rsp), %rcx
movb 0x2(%rcx), %al
notb %al
movzbl 0x8(%rcx), %edx
andl $0x1, %edx
movzbl %al, %esi
andl $0x1, %esi
callq 0x279530
movq 0x190(%rsp), %rdi
callq 0x279400
movq %rax, 0x188(%rsp)
movq 0x188(%rsp), %rcx
movq 0x1d8(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x1d8(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq 0x188(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0xc0(%rsp)
testq %rax, %rax
movss %xmm0, 0xc4(%rsp)
js 0x55da9
movss 0xc0(%rsp), %xmm0
movss %xmm0, 0xc4(%rsp)
movss 0xc4(%rsp), %xmm0
movss 0x4cf5de(%rip), %xmm1   # 0x525398
mulss %xmm1, %xmm0
movss %xmm0, 0xa4(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0xa8(%rsp)
testq %rax, %rax
movss %xmm0, 0xac(%rsp)
js 0x55e14
movss 0xa8(%rsp), %xmm0
movss %xmm0, 0xac(%rsp)
movq 0xb8(%rsp), %rdx
movq 0xb0(%rsp), %rdi
movss 0xa4(%rsp), %xmm0
movss 0xac(%rsp), %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4cfc90(%rip), %rsi    # 0x525ad5
movb $0x1, %al
callq 0xe7cd0
movq 0x208(%rsp), %rax
testb $0x1, (%rax)
jne 0x55e77
movq 0x1b8(%rsp), %rdi
movq 0x188(%rsp), %rdx
leaq 0x4cfc97(%rip), %rsi    # 0x525b07
movb $0x0, %al
callq 0xe7cd0
movq 0x1a8(%rsp), %rdi
callq 0x2a0960
testb $0x1, %al
jne 0x55e8d
jmp 0x55ffd
movq 0x1a8(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x190(%rsp), %rdi
callq 0x2794e0
movq 0x80(%rsp), %rdi
movq %rax, %rsi
callq 0x2a3340
movq %rax, 0x180(%rsp)
movq 0x180(%rsp), %rcx
movq 0x1d8(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x1d8(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x180(%rsp), %rax
movq %rax, 0x90(%rsp)
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x9c(%rsp)
testq %rax, %rax
movss %xmm0, 0xa0(%rsp)
js 0x55f42
movss 0x9c(%rsp), %xmm0
movss %xmm0, 0xa0(%rsp)
movss 0xa0(%rsp), %xmm0
movss 0x4cf445(%rip), %xmm1   # 0x525398
mulss %xmm1, %xmm0
movss %xmm0, 0x74(%rsp)
movq 0x1e0(%rsp), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, 0x78(%rsp)
testq %rax, %rax
movss %xmm0, 0x7c(%rsp)
js 0x55f9e
movss 0x78(%rsp), %xmm0
movss %xmm0, 0x7c(%rsp)
movq 0x90(%rsp), %rdx
movq 0x88(%rsp), %rdi
movss 0x74(%rsp), %xmm0
movss 0x7c(%rsp), %xmm1
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x4cfb03(%rip), %rsi    # 0x525acc
movb $0x1, %al
callq 0xe7cd0
movq 0x208(%rsp), %rax
testb $0x1, (%rax)
jne 0x55ffb
movq 0x1b8(%rsp), %rdi
movq 0x180(%rsp), %rdx
leaq 0x4cfb0a(%rip), %rsi    # 0x525afe
movb $0x0, %al
callq 0xe7cd0
jmp 0x55ffd
movq 0x1b8(%rsp), %rdi
movq 0x1d8(%rsp), %rdx
leaq 0x4cde16(%rip), %rsi    # 0x523e2a
movb $0x0, %al
callq 0xe7cd0
cmpl $0x0, 0x204(%rsp)
jne 0x560e3
movq 0x208(%rsp), %rax
testb $0x1, 0x4(%rax)
je 0x560e3
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x178(%rsp)
movq 0x178(%rsp), %rdi
leaq 0x4cd7fb(%rip), %rsi    # 0x523866
callq 0x11d550
movq 0x190(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x178(%rsp), %rdi
callq 0x11dee0
movq 0x60(%rsp), %rdi
movq %rax, %rsi
movq 0x210(%rsp), %rdx
callq 0x2791d0
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x68(%rsp)
movq 0x178(%rsp), %rdi
callq 0x11dee0
movq 0x68(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cfa4e(%rip), %rsi    # 0x525b1d
movb $0x0, %al
callq 0xe7cd0
movq 0x178(%rsp), %rdi
callq 0x11f560
cmpl $0x0, 0x204(%rsp)
jne 0x561ab
movq 0x208(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x561ab
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x170(%rsp)
movq 0x170(%rsp), %rdi
leaq 0x4cf7b3(%rip), %rsi    # 0x5258e6
callq 0x11d550
movq 0x190(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x170(%rsp), %rdi
callq 0x11dee0
movq 0x50(%rsp), %rdi
movq %rax, %rsi
movq 0x210(%rsp), %rdx
callq 0x279220
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x58(%rsp)
movq 0x170(%rsp), %rdi
callq 0x11dee0
movq 0x58(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cf9a5(%rip), %rsi    # 0x525b3c
movb $0x0, %al
callq 0xe7cd0
movq 0x170(%rsp), %rdi
callq 0x11f560
cmpl $0x0, 0x204(%rsp)
jne 0x56273
movq 0x208(%rsp), %rax
testb $0x1, 0x6(%rax)
je 0x56273
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x168(%rsp)
movq 0x168(%rsp), %rdi
leaq 0x4cf95d(%rip), %rsi    # 0x525b58
callq 0x11d550
movq 0x190(%rsp), %rax
movq %rax, 0x40(%rsp)
movq 0x168(%rsp), %rdi
callq 0x11dee0
movq 0x40(%rsp), %rdi
movq %rax, %rsi
movq 0x210(%rsp), %rdx
callq 0x279150
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x168(%rsp), %rdi
callq 0x11dee0
movq 0x48(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cf8fd(%rip), %rsi    # 0x525b5c
movb $0x0, %al
callq 0xe7cd0
movq 0x168(%rsp), %rdi
callq 0x11f560
cmpl $0x0, 0x204(%rsp)
jne 0x56352
movq 0x208(%rsp), %rax
testb $0x1, 0x7(%rax)
je 0x56352
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x160(%rsp)
movq 0x160(%rsp), %rdi
leaq 0x4cf7af(%rip), %rsi    # 0x525a72
callq 0x11d550
movq 0x1a8(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x160(%rsp), %rdi
callq 0x11dee0
movq %rax, 0x30(%rsp)
movq 0x190(%rsp), %rdi
callq 0x2794e0
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
movq %rax, %rdx
movq 0x210(%rsp), %rcx
callq 0x2a2cd0
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x160(%rsp), %rdi
callq 0x11dee0
movq 0x38(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cf840(%rip), %rsi    # 0x525b7e
movb $0x0, %al
callq 0xe7cd0
movq 0x160(%rsp), %rdi
callq 0x11f560
cmpl $0x0, 0x204(%rsp)
jne 0x564b2
movq 0x208(%rsp), %rax
testb $0x1, 0x5(%rax)
je 0x564b2
movq 0x1a8(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x190(%rsp), %rdi
callq 0x2794e0
movq 0x20(%rsp), %rdi
movq %rax, %rsi
callq 0x2a35e0
cmpq $0x0, 0x1d8(%rsp)
jbe 0x5649a
movq 0x1a8(%rsp), %rdi
movq 0x210(%rsp), %rsi
callq 0x2a41c0
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x18(%rsp), %rdi
movq %rax, %rdx
movb 0x203(%rsp), %sil
leaq 0x4d425b(%rip), %rcx    # 0x52a654
leaq 0x4cf679(%rip), %rax    # 0x525a79
testb $0x1, %sil
cmovneq %rax, %rcx
leaq 0x4cf794(%rip), %rsi    # 0x525ba3
movb $0x0, %al
callq 0xe7cd0
cmpl $0x0, 0x204(%rsp)
jne 0x56498
movq 0x208(%rsp), %rax
testb $0x1, 0xb(%rax)
je 0x56498
movq 0x1a8(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x190(%rsp), %rdi
callq 0x2794e0
movq 0x8(%rsp), %rdi
movq %rax, %rsi
movq 0x210(%rsp), %rdx
callq 0x2a3d10
movl %eax, 0x204(%rsp)
movq 0x1b0(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq 0x10(%rsp), %rdi
movq %rax, %rdx
leaq 0x4cf5f2(%rip), %rsi    # 0x525a83
movb $0x0, %al
callq 0xe7cd0
jmp 0x564b0
movq 0x1b8(%rsp), %rdi
leaq 0x4cf722(%rip), %rsi    # 0x525bcb
movb $0x0, %al
callq 0xe7cd0
jmp 0x564b2
movq 0x208(%rsp), %rax
testb $0x1, 0x20(%rax)
je 0x5650f
movq 0x190(%rsp), %rdi
movq 0x208(%rsp), %rax
movb 0x2(%rax), %sil
xorb $-0x1, %sil
movq 0x208(%rsp), %rax
movq 0x28(%rax), %rdx
movq 0x208(%rsp), %rax
movq 0x30(%rax), %rcx
movq 0x208(%rsp), %rax
movb 0x21(%rax), %al
movzbl %sil, %esi
andl $0x1, %esi
movzbl %al, %r8d
andl $0x1, %r8d
callq 0x27b550
movq 0x190(%rsp), %rdi
callq 0x27b420
cmpl $0x0, 0x204(%rsp)
jne 0x5662d
movq 0x208(%rsp), %rax
testb $0x1, 0x9(%rax)
je 0x5662d
cmpq $0x0, 0x1d8(%rsp)
jbe 0x5662d
movq 0x208(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x11dee0
movq %rax, %rdi
callq 0x11d510
movq %rax, 0x158(%rsp)
movq 0x158(%rsp), %rdi
leaq 0x4cdec2(%rip), %rsi    # 0x52443d
callq 0x11d550
movq 0x158(%rsp), %rdi
callq 0x11dee0
movq %rax, %rdi
movq 0x210(%rsp), %r8
leaq 0x50f926(%rip), %rsi    # 0x565ec5
leaq 0x4cedf6(%rip), %rdx    # 0x52539c
movl $0x1ee, %ecx            # imm = 0x1EE
callq 0xd8df0
movq %rax, 0x150(%rsp)
cmpq $0x0, 0x150(%rsp)
jne 0x565d0
movl $0xffffffff, 0x204(%rsp) # imm = 0xFFFFFFFF
jmp 0x56620
movq 0x1a8(%rsp), %rdi
movq 0x150(%rsp), %rsi
callq 0x2a4fd0
movq 0x1b0(%rsp), %rax
movq %rax, (%rsp)
movq 0x158(%rsp), %rdi
callq 0x11dee0
movq (%rsp), %rdi
movq %rax, %rdx
leaq 0x4cf5f2(%rip), %rsi    # 0x525bfe
movb $0x0, %al
callq 0xe7cd0
movq 0x150(%rsp), %rdi
callq 0xd9390
movq 0x158(%rsp), %rdi
callq 0x11f560
jmp 0x5662f
movq 0x1a8(%rsp), %rdi
callq 0x2a0840
movq 0x1b0(%rsp), %rdi
callq 0xe7ed0
movq 0x1b8(%rsp), %rdi
callq 0xe7ed0
movl 0x204(%rsp), %eax
addq $0x238, %rsp            # imm = 0x238
retq
nopw %cs:(%rax,%rax)