// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/firstcodes-tab.c
// Function: gt_firstcodes_partialsums
GtUword gt_firstcodes_partialsums(GtFirstcodesspacelog *fcsl,
                                        GtFirstcodestab *fct,
                                        const GtUword *differences,
                                        GT_UNUSED GtUword
                                                            expectedlastpartsum)
{
  GtUword idx, partsum, maxbucketsize, bitmask, samplecount = 0,
                spacewithhashmap = 0, spacewithouthashmap = 0;
  uint32_t currentcount;
  GtLeftborderOutbuffer *leftborderbuffer_all = NULL;
#if defined (_LP64) || defined (_WIN64)
  const unsigned int btp = gt_determinebitspervalue(expectedlastpartsum);
  GtUword exceedvalue = (GtUword) 1 << (GtUword) GT_MODVALUEBITS;
#endif
#ifdef SKDEBUG
  GtDiscDistri *countdistri = gt_disc_distri_new();
#endif

  gt_assert(fct->differentcodes < UINT32_MAX);
  gt_log_log("hashmap_addcount="GT_WU" (%.5f%%)",fct->hashmap_addcount,
                  100.0 * (double) fct->hashmap_addcount/
                                   fct->differentcodes);
  gt_log_log("hashmap_getcount="GT_WU" (%.5f%%)",
                  fct->hashmap_getcount,
                  100.0 * (double) fct->hashmap_getcount/
                                   fct->differentcodes);

#if defined (_LP64) || defined (_WIN64)
  if (btp <= GT_MODVALUEBITS)
  {
    fct->bitchangepoints.allocatedGtUword = 0;
    fct->bitchangepoints.spaceGtUword = NULL;
  } else
  {
    fct->bitchangepoints.allocatedGtUword = 1UL << (btp - GT_MODVALUEBITS);
    gt_log_log("lastpartsum="GT_WU", bitchangepoints.allocated="GT_WU"",
              expectedlastpartsum,fct->bitchangepoints.allocatedGtUword);
    fct->bitchangepoints.spaceGtUword
      = gt_malloc(sizeof (*fct->bitchangepoints.spaceGtUword)
                  * fct->bitchangepoints.allocatedGtUword);
  }
  fct->bitchangepoints.nextfreeGtUword = 0;
#endif
  currentcount = gt_firstcodes_countocc_get(fct,differences,0);
  partsum = (GtUword) currentcount;
  maxbucketsize = (GtUword) currentcount;
#ifdef SKDEBUG
  gt_disc_distri_add(countdistri,(GtUword) currentcount);
#endif
  fct->sampleshift = 9U;
  while (true)
  {
    fct->sampledistance = 1UL << fct->sampleshift;
    if (fct->sampledistance < fct->differentcodes)
    {
      break;
    }
    fct->sampleshift--;
  }
  bitmask = fct->sampledistance - 1;
  fct->numofsamples = 1UL + 1UL + fct->differentcodes/fct->sampledistance;
  fct->leftborder_samples = gt_malloc(sizeof (*fct->leftborder_samples) *
                                      fct->numofsamples);
  GT_FCI_ADDWORKSPACE(fcsl,"leftborder_samples",
                      sizeof (*fct->leftborder_samples) * fct->numofsamples);
  GT_FIRSTCODES_ADD_SAMPLE(partsum);
  leftborderbuffer_all = gt_leftborderbuffer_new("leftborder",fcsl);
  GT_PARTIALSUM_LEFTBORDER_SET(leftborderbuffer_all,partsum);
  for (idx = 1UL; idx < fct->differentcodes; idx++)
  {
    currentcount = gt_firstcodes_countocc_get(fct,differences,idx);
#if defined (_LP64) || defined (_WIN64)
    gt_assert(currentcount <= GT_MODVALUEMASK);
#endif
#ifdef SKDEBUG
    gt_disc_distri_add(countdistri,(GtUword) currentcount);
#endif
    if (maxbucketsize < (GtUword) currentcount)
    {
      maxbucketsize = (GtUword) currentcount;
    }
    partsum += currentcount;
#if defined (_LP64) || defined (_WIN64)
    if (fct->bitchangepoints.allocatedGtUword > 0 && partsum >= exceedvalue)
    {
      gt_assert(idx > 0 && fct->bitchangepoints.nextfreeGtUword <
                           fct->bitchangepoints.allocatedGtUword);
      gt_assert(fct->bitchangepoints.spaceGtUword != NULL);
      fct->bitchangepoints.spaceGtUword
        [fct->bitchangepoints.nextfreeGtUword++] = idx-1;
      exceedvalue = (GtUword) ((exceedvalue >> GT_MODVALUEBITS) + 1)
                      << (GtUword) GT_MODVALUEBITS;
    }
#endif
    if ((idx & bitmask) == 0)
    {
      GT_FIRSTCODES_ADD_SAMPLE(partsum);
    }
    GT_PARTIALSUM_LEFTBORDER_SET(leftborderbuffer_all,partsum);
  }
  GT_PARTIALSUM_LEFTBORDER_SET(leftborderbuffer_all,partsum);
  fct->outfilenameleftborder
      = gt_leftborderbuffer_delete(leftborderbuffer_all,fcsl,
                                   gt_firstcodes_leftborder_entries(fct));
  if (partsum > fct->leftborder_samples[samplecount-1])
  {
    GT_FIRSTCODES_ADD_SAMPLE(partsum);
  } else
  {
    gt_assert(partsum == fct->leftborder_samples[samplecount-1]);
  }
  gt_assert(expectedlastpartsum == partsum);
  fct->numofsamples = samplecount-1;
#ifdef SKDEBUG
  gt_firstcodes_evaluate_countdistri(countdistri);
  gt_disc_distri_delete(countdistri);
#endif
  if (fct->countocc_small != NULL)
  {
    gt_free(fct->countocc_small);
    GT_FCI_SUBTRACTWORKSPACE(fcsl,"countocc_small");
    fct->countocc_small = NULL;
  }
  if (fct->hashmap_addcount > 0 && gt_ma_bookkeeping_enabled())
  {
    spacewithhashmap = gt_ma_get_space_current() + gt_fa_get_space_current();
  }
  gt_hashtable_delete(fct->countocc_exceptions);
  if (fct->hashmap_addcount > 0 && gt_ma_bookkeeping_enabled())
  {
    GtUword hashmapspace;

    spacewithouthashmap = gt_ma_get_space_current() + gt_fa_get_space_current();
    gt_assert(spacewithouthashmap < spacewithhashmap);
    hashmapspace = spacewithhashmap - spacewithouthashmap;
    gt_log_log("space for hashmap=%.2f ("GT_WU" bytes per entry)",
               GT_MEGABYTES(hashmapspace),hashmapspace/fct->hashmap_addcount);
  }
  fct->countocc_exceptions = NULL;
  return maxbucketsize;
}

// Assembly:
subq $0xd8, %rsp
movq %rdi, 0xd0(%rsp)
movq %rsi, 0xc8(%rsp)
movq %rdx, 0xc0(%rsp)
movq %rcx, 0xb8(%rsp)
movq $0x0, 0x90(%rsp)
movq $0x0, 0x88(%rsp)
movq $0x0, 0x80(%rsp)
movq $0x0, 0x70(%rsp)
movq 0xb8(%rsp), %rdi
callq 0xec660
movl %eax, 0x6c(%rsp)
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rax, 0x60(%rsp)
movq 0xc8(%rsp), %rax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
cmpq %rcx, (%rax)
jb 0x4c010e
movq 0x17bec3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55f2c(%rip), %rsi     # 0x516013
leaq 0xf7dd8(%rip), %rdx     # 0x5b7ec6
leaq 0xf7df2(%rip), %rcx     # 0x5b7ee7
leaq 0xf7c92(%rip), %r8      # 0x5b7d8e
movl $0x1d5, %r9d            # imm = 0x1D5
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0110
movq 0xc8(%rsp), %rax
movq 0x18(%rax), %rsi
movq %rsi, %xmm0
movaps 0x58808(%rip), %xmm3    # 0x518930
movaps %xmm3, 0x30(%rsp)
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
movapd 0x58807(%rip), %xmm2    # 0x518940
movaps %xmm2, 0x40(%rsp)
subpd %xmm2, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x5a6e3(%rip), %xmm1    # 0x51a838
movsd %xmm1, 0x28(%rsp)
mulsd %xmm1, %xmm0
movq (%rax), %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 0xf7d80(%rip), %rdi     # 0x5b7f01
movb $0x1, %al
callq 0xe7740
movsd 0x28(%rsp), %xmm1
movaps 0x30(%rsp), %xmm3
movaps 0x40(%rsp), %xmm2
movq 0xc8(%rsp), %rax
movq 0x20(%rax), %rsi
movq %rsi, %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm4
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm4, %xmm0
mulsd %xmm1, %xmm0
movq (%rax), %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 0xf7d3d(%rip), %rdi     # 0x5b7f1f
movb $0x1, %al
callq 0xe7740
cmpl $0x20, 0x6c(%rsp)
ja 0x4c0212
movq 0xc8(%rsp), %rax
movq $0x0, 0x78(%rax)
movq 0xc8(%rsp), %rax
movq $0x0, 0x70(%rax)
jmp 0x4c0286
movl 0x6c(%rsp), %eax
subl $0x20, %eax
movl %eax, %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x78(%rax)
movq 0xb8(%rsp), %rsi
movq 0xc8(%rsp), %rax
movq 0x78(%rax), %rdx
leaq 0xf7cee(%rip), %rdi     # 0x5b7f3d
movb $0x0, %al
callq 0xe7740
movq 0xc8(%rsp), %rax
movq 0x78(%rax), %rdi
shlq $0x3, %rdi
leaq 0xf7b21(%rip), %rsi     # 0x5b7d8e
movl $0x1ea, %edx            # imm = 0x1EA
callq 0xe80f0
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x70(%rax)
movq 0xc8(%rsp), %rax
movq $0x0, 0x80(%rax)
movq 0xc8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x4c0b80
movl %eax, 0x7c(%rsp)
movl 0x7c(%rsp), %eax
movq %rax, 0xa8(%rsp)
movl 0x7c(%rsp), %eax
movq %rax, 0xa0(%rsp)
movq 0xc8(%rsp), %rax
movl $0x9, 0x28(%rax)
movq 0xc8(%rsp), %rax
movl 0x28(%rax), %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0xc8(%rsp), %rax
movq 0x10(%rax), %rax
movq 0xc8(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x4c031c
jmp 0x4c032f
movq 0xc8(%rsp), %rax
movl 0x28(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x28(%rax)
jmp 0x4c02dd
movq 0xc8(%rsp), %rax
movq 0x10(%rax), %rax
subq $0x1, %rax
movq %rax, 0x98(%rsp)
movq 0xc8(%rsp), %rax
movq (%rax), %rax
movq 0xc8(%rsp), %rcx
xorl %edx, %edx
divq 0x10(%rcx)
movq %rax, %rcx
addq $0x2, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xc8(%rsp), %rax
movq 0x8(%rax), %rdi
shlq $0x3, %rdi
leaq 0xf7a04(%rip), %rsi     # 0x5b7d8e
movl $0x201, %edx            # imm = 0x201
callq 0xe80f0
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x48(%rax)
movq 0xd0(%rsp), %rdi
movq 0xc8(%rsp), %rax
movq 0x8(%rax), %rax
shlq $0x3, %rax
movl $0x203, %esi            # imm = 0x203
leaq 0xf79c7(%rip), %rdx     # 0x5b7d8e
movl $0x1, %r9d
leaq 0xf7b98(%rip), %r8      # 0x5b7f6c
movl %r9d, %ecx
movq %rax, (%rsp)
callq 0x4bea60
movq 0x90(%rsp), %rax
movq 0xc8(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jb 0x4c042e
movq 0x17bba3(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55c0c(%rip), %rsi     # 0x516013
leaq 0xf7b71(%rip), %rdx     # 0x5b7f7f
leaq 0xf7ad2(%rip), %rcx     # 0x5b7ee7
leaq 0xf7972(%rip), %r8      # 0x5b7d8e
movl $0x204, %r9d            # imm = 0x204
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0430
movq 0xa8(%rsp), %rdx
movq 0xc8(%rsp), %rax
movq 0x48(%rax), %rax
movq 0x90(%rsp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x90(%rsp)
movq %rdx, (%rax,%rcx,8)
movq 0xd0(%rsp), %rsi
leaq 0x80896(%rip), %rdi     # 0x540d04
callq 0x50d0b0
movq %rax, 0x70(%rsp)
movq 0x70(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x70(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x4c0496
movq 0x70(%rsp), %rdi
callq 0x50d1c0
movq 0xa8(%rsp), %rax
movl %eax, %edx
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq 0x70(%rsp), %rsi
movq 0x8(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x8(%rsi)
movl %edx, (%rax,%rcx,4)
movq $0x1, 0xb0(%rsp)
movq 0xb0(%rsp), %rax
movq 0xc8(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x4c0796
movq 0xc8(%rsp), %rdi
movq 0xc0(%rsp), %rsi
movq 0xb0(%rsp), %rdx
callq 0x4c0b80
movl %eax, 0x7c(%rsp)
cmpl $-0x1, 0x7c(%rsp)
jbe 0x4c0544
movq 0x17ba8d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55af6(%rip), %rsi     # 0x516013
leaq 0xf7a7b(%rip), %rdx     # 0x5b7f9f
leaq 0xf79bc(%rip), %rcx     # 0x5b7ee7
leaq 0xf785c(%rip), %r8      # 0x5b7d8e
movl $0x20b, %r9d            # imm = 0x20B
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0546
movq 0xa0(%rsp), %rax
movl 0x7c(%rsp), %ecx
cmpq %rcx, %rax
jae 0x4c0563
movl 0x7c(%rsp), %eax
movq %rax, 0xa0(%rsp)
movl 0x7c(%rsp), %eax
addq 0xa8(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x78(%rax)
jbe 0x4c069b
movq 0xa8(%rsp), %rax
cmpq 0x60(%rsp), %rax
jb 0x4c069b
jmp 0x4c059f
cmpq $0x0, 0xb0(%rsp)
jbe 0x4c05c7
movq 0xc8(%rsp), %rax
movq 0x80(%rax), %rax
movq 0xc8(%rsp), %rcx
cmpq 0x78(%rcx), %rax
jb 0x4c05ff
movq 0x17b9d2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55a3b(%rip), %rsi     # 0x516013
leaq 0xf79e0(%rip), %rdx     # 0x5b7fbf
leaq 0xf7901(%rip), %rcx     # 0x5b7ee7
leaq 0xf77a1(%rip), %r8      # 0x5b7d8e
movl $0x219, %r9d            # imm = 0x219
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0601
jmp 0x4c0603
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x70(%rax)
jne 0x4c064a
movq 0x17b987(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x559f0(%rip), %rsi     # 0x516013
leaq 0xf79ed(%rip), %rdx     # 0x5b8017
leaq 0xf78b6(%rip), %rcx     # 0x5b7ee7
leaq 0xf7756(%rip), %r8      # 0x5b7d8e
movl $0x21a, %r9d            # imm = 0x21A
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c064c
movq 0xb0(%rsp), %rdx
subq $0x1, %rdx
movq 0xc8(%rsp), %rax
movq 0x70(%rax), %rax
movq 0xc8(%rsp), %rsi
movq 0x80(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x80(%rsi)
movq %rdx, (%rax,%rcx,8)
movq 0x60(%rsp), %rax
shrq $0x20, %rax
addq $0x1, %rax
shlq $0x20, %rax
movq %rax, 0x60(%rsp)
movq 0xb0(%rsp), %rax
andq 0x98(%rsp), %rax
cmpq $0x0, %rax
jne 0x4c0736
jmp 0x4c06b7
movq 0x90(%rsp), %rax
movq 0xc8(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jb 0x4c0705
movq 0x17b8cc(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55935(%rip), %rsi     # 0x516013
leaq 0xf789a(%rip), %rdx     # 0x5b7f7f
leaq 0xf77fb(%rip), %rcx     # 0x5b7ee7
leaq 0xf769b(%rip), %r8      # 0x5b7d8e
movl $0x223, %r9d            # imm = 0x223
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0707
movq 0xa8(%rsp), %rdx
movq 0xc8(%rsp), %rax
movq 0x48(%rax), %rax
movq 0x90(%rsp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x90(%rsp)
movq %rdx, (%rax,%rcx,8)
movq 0x70(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x70(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x4c0754
movq 0x70(%rsp), %rdi
callq 0x50d1c0
movq 0xa8(%rsp), %rax
movl %eax, %edx
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq 0x70(%rsp), %rsi
movq 0x8(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x8(%rsi)
movl %edx, (%rax,%rcx,4)
movq 0xb0(%rsp), %rax
addq $0x1, %rax
movq %rax, 0xb0(%rsp)
jmp 0x4c04cb
movq 0x70(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x70(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jne 0x4c07b4
movq 0x70(%rsp), %rdi
callq 0x50d1c0
movq 0xa8(%rsp), %rax
movl %eax, %edx
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq 0x70(%rsp), %rsi
movq 0x8(%rsi), %rcx
movq %rcx, %rdi
addq $0x1, %rdi
movq %rdi, 0x8(%rsi)
movl %edx, (%rax,%rcx,4)
movq 0x70(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0xd0(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0xc8(%rsp), %rdi
callq 0x4c0cf0
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
movq %rax, %rdx
callq 0x50d210
movq %rax, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x50(%rax)
movq 0xa8(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq 0x48(%rcx), %rcx
movq 0x90(%rsp), %rdx
subq $0x1, %rdx
cmpq (%rcx,%rdx,8), %rax
jbe 0x4c08cf
jmp 0x4c084e
movq 0x90(%rsp), %rax
movq 0xc8(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jb 0x4c089c
movq 0x17b735(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x5579e(%rip), %rsi     # 0x516013
leaq 0xf7703(%rip), %rdx     # 0x5b7f7f
leaq 0xf7664(%rip), %rcx     # 0x5b7ee7
leaq 0xf7504(%rip), %r8      # 0x5b7d8e
movl $0x22d, %r9d            # imm = 0x22D
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c089e
movq 0xa8(%rsp), %rdx
movq 0xc8(%rsp), %rax
movq 0x48(%rax), %rax
movq 0x90(%rsp), %rcx
movq %rcx, %rsi
addq $0x1, %rsi
movq %rsi, 0x90(%rsp)
movq %rdx, (%rax,%rcx,8)
jmp 0x4c0933
jmp 0x4c08d1
movq 0xa8(%rsp), %rax
movq 0xc8(%rsp), %rcx
movq 0x48(%rcx), %rcx
movq 0x90(%rsp), %rdx
subq $0x1, %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x4c092f
movq 0x17b6a2(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x5570b(%rip), %rsi     # 0x516013
leaq 0xf7732(%rip), %rdx     # 0x5b8041
leaq 0xf75d1(%rip), %rcx     # 0x5b7ee7
leaq 0xf7471(%rip), %r8      # 0x5b7d8e
movl $0x230, %r9d            # imm = 0x230
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0931
jmp 0x4c0933
jmp 0x4c0935
movq 0xb8(%rsp), %rax
cmpq 0xa8(%rsp), %rax
je 0x4c097f
movq 0x17b652(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x556bb(%rip), %rsi     # 0x516013
leaq 0xf7714(%rip), %rdx     # 0x5b8073
leaq 0xf7581(%rip), %rcx     # 0x5b7ee7
leaq 0xf7421(%rip), %r8      # 0x5b7d8e
movl $0x232, %r9d            # imm = 0x232
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0981
movq 0x90(%rsp), %rcx
subq $0x1, %rcx
movq 0xc8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x38(%rax)
je 0x4c0a07
movq 0xc8(%rsp), %rax
movq 0x38(%rax), %rdi
leaq 0xf73d3(%rip), %rsi     # 0x5b7d8e
movl $0x23a, %edx            # imm = 0x23A
callq 0xe88c0
movq 0xd0(%rsp), %rdi
movl $0x23b, %esi            # imm = 0x23B
leaq 0xf73b5(%rip), %rdx     # 0x5b7d8e
xorl %ecx, %ecx
leaq 0xf76b0(%rip), %r8      # 0x5b8092
movl $0x1, %r9d
xorl %eax, %eax
movq $0x0, (%rsp)
callq 0x4bea60
movq 0xc8(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x4c0a43
callq 0xe8ea0
testb $0x1, %al
jne 0x4c0a21
jmp 0x4c0a43
callq 0xe8b80
movq %rax, 0x10(%rsp)
callq 0xdbac0
movq %rax, %rcx
movq 0x10(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x88(%rsp)
movq 0xc8(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0xe3360
movq 0xc8(%rsp), %rax
cmpq $0x0, 0x18(%rax)
jbe 0x4c0b53
callq 0xe8ea0
testb $0x1, %al
jne 0x4c0a75
jmp 0x4c0b53
callq 0xe8b80
movq %rax, 0x8(%rsp)
callq 0xdbac0
movq %rax, %rcx
movq 0x8(%rsp), %rax
addq %rcx, %rax
movq %rax, 0x80(%rsp)
movq 0x80(%rsp), %rax
cmpq 0x88(%rsp), %rax
jb 0x4c0ae1
movq 0x17b4f0(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x55559(%rip), %rsi     # 0x516013
leaq 0xf75e0(%rip), %rdx     # 0x5b80a1
leaq 0xf741f(%rip), %rcx     # 0x5b7ee7
leaq 0xf72bf(%rip), %r8      # 0x5b7d8e
movl $0x248, %r9d            # imm = 0x248
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4c0ae3
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rcx
subq %rcx, %rax
movq %rax, 0x58(%rsp)
movaps 0x57e2e(%rip), %xmm1    # 0x518930
movq 0x58(%rsp), %xmm0
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x57e2c(%rip), %xmm1    # 0x518940
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x57df5(%rip), %xmm1    # 0x518920
divsd %xmm1, %xmm0
movq 0x58(%rsp), %rax
movq 0xc8(%rsp), %rcx
xorl %edx, %edx
divq 0x18(%rcx)
movq %rax, %rsi
leaq 0xf757c(%rip), %rdi     # 0x5b80c8
movb $0x1, %al
callq 0xe7740
movq 0xc8(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0xa0(%rsp), %rax
addq $0xd8, %rsp
retq
nopw %cs:(%rax,%rax)