// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/firstcodes.c
// Function: gt_firstcodes_process_part
static int gt_firstcodes_process_part(GtFirstcodesinfo *fci,
                                      const GtEncseq *encseq,
                                      GtReadmode readmode,
                                      unsigned int kmersize,
                                      unsigned int minmatchlength,
                                      const GtSuftabparts *suftabparts,
                                      unsigned int part,
                                      GtUword maximumspace,
#ifndef GT_THREADS_ENABLED
                                      GT_UNUSED
#endif
                                      unsigned int threads,
                                      GtUword suftabentries,
                                      bool withsuftabcheck,
                                      GtShortreadsortworkinfo **srswtab,
                                      GtFirstcodesintervalprocess itvprocess,
                                      GtFirstcodesintervalprocess_end
                                        itvprocess_end,
                                      void *itvprocessdatatab,
                                      GtLogger *logger,
                                      GtTimer *timer,
                                      GtError *err)
{
  GtUword spaceforbucketprocessing = 0;
  void *mapptr;
  bool haserr = false;

  if (timer != NULL)
  {
    gt_timer_show_progress(timer, "to insert suffixes into buckets",stdout);
  }
  fci->widthofpart = gt_suftabparts_widthofpart(part,suftabparts);
  gt_logger_log(logger,"compute part %u (%.2f%% of all candidates)",part,
               (double) 100.0 * fci->widthofpart/suftabentries);
  fci->currentminindex = gt_suftabparts_minindex(part,suftabparts);
  fci->currentmaxindex = gt_suftabparts_maxindex(part,suftabparts);
  if (fci->mappedallfirstcodes != NULL)
  {
    fci->allfirstcodes
      = (GtUword *)
        gt_Sfxmappedrange_map(fci->mappedallfirstcodes,
                              fci->currentminindex,
                              fci->currentmaxindex);
    GT_FCI_ADDSPLITSPACE(fci->fcsl,"allfirstcodes",
                         (size_t) gt_Sfxmappedrange_size_mapped(
                                        fci->mappedallfirstcodes,
                                        fci->currentminindex,
                                        fci->currentmaxindex));
  }
  gt_assert(fci->mappedleftborder != NULL);
  mapptr = gt_Sfxmappedrange_map(fci->mappedleftborder,
                                 fci->currentminindex,
                                 fci->currentmaxindex);
  gt_firstcodes_leftborder_remap(&fci->tab,(uint32_t *) mapptr);
  GT_FCI_ADDSPLITSPACE(fci->fcsl,"leftborder",
                       (size_t) gt_Sfxmappedrange_size_mapped(
                                               fci->mappedleftborder,
                                               fci->currentminindex,
                                               fci->currentmaxindex));
  if (fci->mappedmarkprefix != NULL)
  {
    mapptr = gt_Sfxmappedrange_map(fci->mappedmarkprefix,
                                   fci->currentminindex,
                                   fci->currentmaxindex);

    gt_marksubstring_bits_map(fci->buf.markprefix, (GtBitsequence *) mapptr);
    GT_FCI_ADDSPLITSPACE(fci->fcsl,"markprefix",
                         (size_t) gt_Sfxmappedrange_size_mapped(
                                               fci->mappedmarkprefix,
                                               fci->currentminindex,
                                               fci->currentmaxindex));
  }
  gt_logger_log(logger,"maximum space for part %u: %.2f MB",
                part,GT_MEGABYTES(gt_firstcodes_spacelog_total(fci->fcsl)));
  fci->buf.currentmincode = gt_firstcodes_idx2code(fci,fci->currentminindex);
  fci->buf.currentmaxcode = gt_firstcodes_idx2code(fci,fci->currentmaxindex);
  gt_spmsuftab_partoffset(fci->spmsuftab,
                          gt_suftabparts_offset(part,suftabparts));
  gt_firstcodes_insert_runkmerscan(encseq,
                                   kmersize,
                                   minmatchlength,
                                   &fci->buf);
  gt_firstcodes_insertsuffixes_flush(fci);
  if (fci->mappedmarkprefix != NULL)
  {
    gt_Sfxmappedrange_unmap(fci->mappedmarkprefix);
    GT_FCI_SUBTRACTSPLITSPACE(fci->fcsl,"markprefix");
  }
  if (fci->mappedallfirstcodes != NULL)
  {
    gt_Sfxmappedrange_unmap(fci->mappedallfirstcodes);
    GT_FCI_SUBTRACTSPLITSPACE(fci->fcsl,"allfirstcodes");
  }
  if (part == gt_suftabparts_numofparts(suftabparts) - 1)
  {
    gt_firstcode_delete_before_end(fci);
  }
  if (timer != NULL)
  {
    gt_timer_show_progress(timer, "to sort buckets of suffixes",stdout);
  }
  if (maximumspace > 0)
  {
    if ((GtUword) gt_firstcodes_spacelog_total(fci->fcsl)
        < maximumspace)
    {
      spaceforbucketprocessing = maximumspace -
                                 (GtUword)
                                 gt_firstcodes_spacelog_total(fci->fcsl);
      gt_log_log("space left for sortremaining: %.2f",
                 GT_MEGABYTES(spaceforbucketprocessing));
    } else
    {
      spaceforbucketprocessing = 0;
    }
  }
#ifdef GT_THREADS_ENABLED
  if (threads > 1U)
  {
    if (gt_firstcodes_thread_sortremaining(
                                   srswtab,
                                   encseq,
                                   readmode,
                                   fci->spmsuftab,
                                   fci->buf.snrp,
                                   &fci->tab,
                                   fci->currentminindex,
                                   fci->currentmaxindex,
                                   gt_suftabparts_widthofpart(part,suftabparts),
                                   gt_suftabparts_sumofwidth(part,suftabparts),
                                   spaceforbucketprocessing,
                                   (GtUword) kmersize,
                                   itvprocess,
                                   itvprocess_end,
                                   itvprocessdatatab,
                                   withsuftabcheck,
                                   threads,
                                   logger,
                                   NULL) != 0)
    {
      haserr = true;
    }
  } else
#endif
  {
    if (gt_firstcodes_sortremaining(srswtab[0],
                                    encseq,
                                    readmode,
                                    fci->spmsuftab,
                                    fci->buf.snrp,
                                    &fci->tab,
                                    fci->currentminindex,
                                    fci->currentmaxindex,
                                    gt_suftabparts_sumofwidth(part,suftabparts),
                                    spaceforbucketprocessing,
                                    (GtUword) kmersize,
                                    itvprocess,
                                    itvprocess_end,
                                    itvprocessdatatab == NULL
                                      ? NULL
                                      : ((void **) itvprocessdatatab)[0],
                                    withsuftabcheck,
                                    err) != 0)
    {
      haserr = true;
    }
  }
  if (fci->mappedleftborder != NULL)
  {
    gt_Sfxmappedrange_unmap(fci->mappedleftborder);
    GT_FCI_SUBTRACTSPLITSPACE(fci->fcsl,"leftborder");
  }
  return haserr ? -1 : 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq 0x248(%rsp), %rax
movq 0x240(%rsp), %rax
movq 0x238(%rsp), %rax
movq 0x230(%rsp), %rax
movq 0x228(%rsp), %rax
movq 0x220(%rsp), %rax
movq 0x218(%rsp), %rax
movb 0x210(%rsp), %al
movq 0x208(%rsp), %r10
movl 0x200(%rsp), %r10d
movq 0x1f8(%rsp), %r10
movl 0x1f0(%rsp), %r10d
movq %rdi, 0x1b0(%rsp)
movq %rsi, 0x1a8(%rsp)
movl %edx, 0x1a4(%rsp)
movl %ecx, 0x1a0(%rsp)
movl %r8d, 0x19c(%rsp)
movq %r9, 0x190(%rsp)
andb $0x1, %al
movb %al, 0x18f(%rsp)
movq $0x0, 0x180(%rsp)
movb $0x0, 0x177(%rsp)
cmpq $0x0, 0x240(%rsp)
je 0x248b24
movq 0x240(%rsp), %rdi
movq 0x3f3423(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x32fece(%rip), %rsi    # 0x5789ed
callq 0x121930
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2ce300
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x40(%rax)
movq 0x238(%rsp), %rdi
movl 0x1f0(%rsp), %edx
movq 0x1b0(%rsp), %rax
movq 0x40(%rax), %xmm0
movaps 0x2cfdc6(%rip), %xmm3   # 0x518930
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x2cfdca(%rip), %xmm2   # 0x518940
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x2d1cab(%rip), %xmm1   # 0x51a838
mulsd %xmm1, %xmm0
movq 0x208(%rsp), %xmm1
punpckldq %xmm3, %xmm1    # xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
subpd %xmm2, %xmm1
movaps %xmm1, %xmm2
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
addsd %xmm2, %xmm1
divsd %xmm1, %xmm0
leaq 0x32fe55(%rip), %rsi    # 0x578a0d
movb $0x1, %al
callq 0xe7cd0
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2cd210
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x28(%rax)
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2cd2a0
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x88(%rax)
je 0x248cc8
movq 0x1b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc4d0
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0x98(%rax)
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rax
movq %rax, 0x168(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x88(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc310
movq 0x168(%rsp), %rdi
movl $0x465, %esi            # imm = 0x465
leaq 0x32f54c(%rip), %rdx    # 0x5781fc
movl $0x1, %ecx
leaq 0x2d2bea(%rip), %r8     # 0x51b8a6
xorl %r9d, %r9d
movq %rax, (%rsp)
callq 0x4bea60
jmp 0x248cca
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x80(%rax)
jne 0x248d14
movq 0x3f32bd(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2cd326(%rip), %rsi    # 0x516013
leaq 0x32fb05(%rip), %rdx    # 0x5787f9
leaq 0x32fd3d(%rip), %rcx    # 0x578a38
leaq 0x32f4fa(%rip), %r8     # 0x5781fc
movl $0x467, %r9d            # imm = 0x467
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x248d16
movq 0x1b0(%rsp), %rax
movq 0x80(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc4d0
movq %rax, 0x178(%rsp)
movq 0x1b0(%rsp), %rdi
addq $0x110, %rdi            # imm = 0x110
movq 0x178(%rsp), %rsi
callq 0x4c1240
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rax
movq %rax, 0x160(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x80(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc310
movq 0x160(%rsp), %rdi
movl $0x470, %esi            # imm = 0x470
leaq 0x32f43f(%rip), %rdx    # 0x5781fc
movl $0x1, %ecx
leaq 0x2f7f3b(%rip), %r8     # 0x540d04
xorl %r9d, %r9d
movq %rax, (%rsp)
callq 0x4bea60
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x90(%rax)
je 0x248eaa
movq 0x1b0(%rsp), %rax
movq 0x90(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc4d0
movq %rax, 0x178(%rsp)
movq 0x1b0(%rsp), %rax
movq 0xd0(%rax), %rdi
movq 0x178(%rsp), %rsi
callq 0x2612e0
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rax
movq %rax, 0x158(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x90(%rax), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rdx
callq 0x2cc310
movq 0x158(%rsp), %rdi
movl $0x47c, %esi            # imm = 0x47C
leaq 0x32f36a(%rip), %rdx    # 0x5781fc
movl $0x1, %ecx
leaq 0x32f66b(%rip), %r8     # 0x578509
xorl %r9d, %r9d
movq %rax, (%rsp)
callq 0x4bea60
movq 0x238(%rsp), %rax
movq %rax, 0x140(%rsp)
movl 0x1f0(%rsp), %eax
movl %eax, 0x14c(%rsp)
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
callq 0x4be8b0
movq 0x140(%rsp), %rdi
movl 0x14c(%rsp), %edx
movq %rax, %xmm0
movaps 0x2cfa39(%rip), %xmm1   # 0x518930
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2cfa3d(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x2cfa06(%rip), %xmm1   # 0x518920
divsd %xmm1, %xmm0
leaq 0x32fb2e(%rip), %rsi    # 0x578a53
movb $0x1, %al
callq 0xe7cd0
movq 0x1b0(%rsp), %rdi
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rsi
callq 0x248420
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0xb0(%rax)
movq 0x1b0(%rsp), %rdi
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rsi
callq 0x248420
movq %rax, %rcx
movq 0x1b0(%rsp), %rax
movq %rcx, 0xb8(%rax)
movq 0x1b0(%rsp), %rax
movq 0x78(%rax), %rax
movq %rax, 0x150(%rsp)
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2ce270
movq 0x150(%rsp), %rdi
movq %rax, %rsi
callq 0x2eed80
movq 0x1a8(%rsp), %rdi
movl 0x1a0(%rsp), %esi
movl 0x19c(%rsp), %edx
movq 0x1b0(%rsp), %rcx
addq $0xb0, %rcx
callq 0x4bb040
movq 0x1b0(%rsp), %rdi
callq 0x248800
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x90(%rax)
je 0x24904e
movq 0x1b0(%rsp), %rax
movq 0x90(%rax), %rdi
callq 0x2cc460
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x48c, %esi            # imm = 0x48C
leaq 0x32f1ca(%rip), %rdx    # 0x5781fc
xorl %r9d, %r9d
leaq 0x32f4cd(%rip), %r8     # 0x578509
xorl %eax, %eax
movl %r9d, %ecx
movq $0x0, (%rsp)
callq 0x4bea60
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x88(%rax)
je 0x2490ab
movq 0x1b0(%rsp), %rax
movq 0x88(%rax), %rdi
callq 0x2cc460
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x491, %esi            # imm = 0x491
leaq 0x32f16d(%rip), %rdx    # 0x5781fc
xorl %r9d, %r9d
leaq 0x2d280d(%rip), %r8     # 0x51b8a6
xorl %eax, %eax
movl %r9d, %ecx
movq $0x0, (%rsp)
callq 0x4bea60
movl 0x1f0(%rsp), %eax
movl %eax, 0x13c(%rsp)
movq 0x190(%rsp), %rdi
callq 0x2ce430
movl %eax, %ecx
movl 0x13c(%rsp), %eax
subl $0x1, %ecx
cmpl %ecx, %eax
jne 0x2490e3
movq 0x1b0(%rsp), %rdi
callq 0x249610
cmpq $0x0, 0x240(%rsp)
je 0x24910c
movq 0x240(%rsp), %rdi
movq 0x3f2e3b(%rip), %rax    # 0x63bf38
movq (%rax), %rdx
leaq 0x32f96f(%rip), %rsi    # 0x578a76
callq 0x121930
cmpq $0x0, 0x1f8(%rsp)
jbe 0x2491cc
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
callq 0x4be8b0
cmpq 0x1f8(%rsp), %rax
jae 0x2491be
movq 0x1f8(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
callq 0x4be8b0
movq %rax, %rcx
movq 0x130(%rsp), %rax
subq %rcx, %rax
movq %rax, 0x180(%rsp)
movaps 0x2cf7b2(%rip), %xmm1   # 0x518930
movq 0x180(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x2cf7ad(%rip), %xmm1   # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x2cf776(%rip), %xmm1   # 0x518920
divsd %xmm1, %xmm0
leaq 0x32f8dd(%rip), %rdi    # 0x578a92
movb $0x1, %al
callq 0xe7740
jmp 0x2491ca
movq $0x0, 0x180(%rsp)
jmp 0x2491cc
cmpl $0x1, 0x200(%rsp)
jbe 0x2493a2
movq 0x218(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, 0xe8(%rsp)
movl 0x1a4(%rsp), %eax
movl %eax, 0xf4(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x78(%rax), %rax
movq %rax, 0xf8(%rsp)
movq 0x1b0(%rsp), %rax
movq 0xf8(%rax), %rax
movq %rax, 0x100(%rsp)
movq 0x1b0(%rsp), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, 0x108(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0x110(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0x118(%rsp)
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2ce300
movq %rax, 0x120(%rsp)
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2cd180
movq 0xe0(%rsp), %rdi
movq 0xe8(%rsp), %rsi
movl 0xf4(%rsp), %edx
movq 0xf8(%rsp), %rcx
movq 0x100(%rsp), %r8
movq 0x108(%rsp), %r9
movq %rax, %rbp
movq 0x180(%rsp), %r13
movl 0x1a0(%rsp), %eax
movl %eax, %r12d
movq 0x220(%rsp), %r15
movq 0x228(%rsp), %r14
movq 0x230(%rsp), %rbx
movb 0x18f(%rsp), %r11b
movl 0x200(%rsp), %r10d
movq 0x238(%rsp), %rax
movq %rax, 0x128(%rsp)
xorl %eax, %eax
movq 0x110(%rsp), %rax
andb $0x1, %r11b
movq %rax, (%rsp)
movq 0x118(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x120(%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x128(%rsp), %rax
movq %rbp, 0x18(%rsp)
movq %r13, 0x20(%rsp)
movq %r12, 0x28(%rsp)
movq %r15, 0x30(%rsp)
movq %r14, 0x38(%rsp)
movq %rbx, 0x40(%rsp)
movzbl %r11b, %r11d
movl %r11d, 0x48(%rsp)
movl %r10d, 0x50(%rsp)
movq %rax, 0x58(%rsp)
movq $0x0, 0x60(%rsp)
callq 0x24a070
cmpl $0x0, %eax
je 0x24939d
movb $0x1, 0x177(%rsp)
jmp 0x24957e
movq 0x218(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x78(%rsp)
movq 0x1a8(%rsp), %rax
movq %rax, 0x80(%rsp)
movl 0x1a4(%rsp), %eax
movl %eax, 0x8c(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x78(%rax), %rax
movq %rax, 0x90(%rsp)
movq 0x1b0(%rsp), %rax
movq 0xf8(%rax), %rax
movq %rax, 0x98(%rsp)
movq 0x1b0(%rsp), %rax
addq $0x110, %rax            # imm = 0x110
movq %rax, 0xa0(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x28(%rax), %rax
movq %rax, 0xa8(%rsp)
movq 0x1b0(%rsp), %rax
movq 0x30(%rax), %rax
movq %rax, 0xb0(%rsp)
movl 0x1f0(%rsp), %edi
movq 0x190(%rsp), %rsi
callq 0x2cd180
movq %rax, 0xb8(%rsp)
movq 0x180(%rsp), %rax
movq %rax, 0xc0(%rsp)
movl 0x1a0(%rsp), %eax
movq %rax, 0xc8(%rsp)
movq 0x220(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x228(%rsp), %rax
movq %rax, 0xd8(%rsp)
cmpq $0x0, 0x230(%rsp)
jne 0x2494a8
xorl %eax, %eax
movq %rax, 0x70(%rsp)
jmp 0x2494b8
movq 0x230(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x70(%rsp)
movq 0xd0(%rsp), %r14
movq 0xc8(%rsp), %r15
movq 0xc0(%rsp), %r12
movq 0xb8(%rsp), %r13
movq 0xb0(%rsp), %rbp
movq 0xa8(%rsp), %rbx
movq 0xa0(%rsp), %r9
movq 0x98(%rsp), %r8
movq 0x90(%rsp), %rcx
movl 0x8c(%rsp), %edx
movq 0x80(%rsp), %rsi
movq 0x78(%rsp), %rdi
movq 0x70(%rsp), %r11
movb 0x18f(%rsp), %r10b
movq 0x248(%rsp), %rax
andb $0x1, %r10b
movq %rbx, (%rsp)
movq 0xd8(%rsp), %rbx
movq %rbp, 0x8(%rsp)
movq %r13, 0x10(%rsp)
movq %r12, 0x18(%rsp)
movq %r15, 0x20(%rsp)
movq %r14, 0x28(%rsp)
movq %rbx, 0x30(%rsp)
movq %r11, 0x38(%rsp)
movzbl %r10b, %r10d
movl %r10d, 0x40(%rsp)
movq %rax, 0x48(%rsp)
callq 0x24a700
cmpl $0x0, %eax
je 0x24957c
movb $0x1, 0x177(%rsp)
jmp 0x24957e
movq 0x1b0(%rsp), %rax
cmpq $0x0, 0x80(%rax)
je 0x2495db
movq 0x1b0(%rsp), %rax
movq 0x80(%rax), %rdi
callq 0x2cc460
movq 0x1b0(%rsp), %rax
movq 0xa8(%rax), %rdi
movl $0x4e0, %esi            # imm = 0x4E0
leaq 0x32ec3d(%rip), %rdx    # 0x5781fc
xorl %r9d, %r9d
leaq 0x2f773b(%rip), %r8     # 0x540d04
xorl %eax, %eax
movl %r9d, %ecx
movq $0x0, (%rsp)
callq 0x4bea60
movb 0x177(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopw %cs:(%rax,%rax)