// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/shu-dfs.c
// Function: gt_pck_calculate_shulen
int gt_pck_calculate_shulen(const FMindex *index,
                            const GtShuUnitFileInfo *unit_info,
                            uint64_t **shulen,
                            GtUword numofchars,
                            GtUword total_length,
                            GtTimer *timer,
                            GtLogger *logger,
                            GtError *err)
{
  int had_err = 0;
  GtStackShuNode stack;
  ShuNode *root;
  Mbtab *tmpmbtab;
  const GtUword resize = 64UL;
  GtUword *rangeOccs,
                **special_char_rows_and_pos,
                depth_idx,
                processed_nodes,
                max_idx = gt_pck_special_occ_in_nonspecial_intervals(index) - 1;
  BwtSeqpositionextractor *pos_extractor;
  const GtEncseq *encseq = unit_info->encseq;

  gt_assert(max_idx < total_length);
  rangeOccs = gt_calloc((size_t) GT_MULT2(numofchars), sizeof (*rangeOccs));
  tmpmbtab = gt_calloc((size_t) (numofchars + 3), sizeof (*tmpmbtab ));
  GT_STACK_INIT_WITH_INITFUNC(&stack, resize, initialise_node);
  pos_extractor = gt_newBwtSeqpositionextractor(index, total_length + 1);
  if (timer != NULL)
  {
    gt_timer_show_progress(timer, "obtain special pos", stdout);
  }
  special_char_rows_and_pos = get_special_pos(index,
                                              pos_extractor,
                                              max_idx + 1);
  GT_STACK_NEXT_FREE(&stack,root);
  gt_array2dim_calloc(root->countTermSubtree,
                      numofchars+1UL,
                      unit_info->num_of_genomes);
  root->process = false;
  root->parentOffset = 0;
  root->depth = 0;
  root->lower = 0;
  root->upper = total_length + 1;

  if (timer != NULL)
  {
    gt_timer_show_progress(timer, "traverse virtual tree", stdout);
  }
  processed_nodes = 0;
  while (!had_err && !GT_STACK_ISEMPTY(&stack))
  {
    ShuNode *current;

    gt_assert(stack.nextfree > 0);
    current = stack.space + stack.nextfree -1;
    if (current->process)
    {
      GT_STACK_DECREMENTTOP(&stack);
        had_err = process_shu_node(current,
                                   &stack,
                                   shulen,
                                   unit_info->num_of_genomes,
                                   numofchars,
                                   logger,
                                   err);
      processed_nodes++;
    }
    else
    {
      had_err = visit_shu_children(index,
                                   current,
                                   &stack,
                                   encseq,
                                   tmpmbtab,
                                   pos_extractor,
                                   rangeOccs,
                                   special_char_rows_and_pos,
                                   numofchars,
                                   unit_info,
                                   total_length,
                                   max_idx,
                                   logger,
                                   err);
    }
  }
  gt_logger_log(logger, "max stack depth = "GT_WU"", GT_STACK_MAXSIZE(&stack));
  gt_log_log("processed nodes= "GT_WU"", processed_nodes);
  for (depth_idx = 0; depth_idx < GT_STACK_MAXSIZE(&stack); depth_idx++)
  {
    gt_array2dim_delete(stack.space[depth_idx].countTermSubtree);
  }
  GT_STACK_DELETE(&stack);
  gt_free(rangeOccs);
  gt_free(tmpmbtab);
  gt_freeBwtSeqpositionextractor(pos_extractor);
  gt_array2dim_delete(special_char_rows_and_pos);
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28d8, %rsp           # imm = 0x28D8
movq %r9, %rbp
movq %r8, %rbx
movq %rcx, %r12
movq %rdx, 0x78(%rsp)
movq %rsi, %r14
movq %rdi, %r13
callq 0x1a9034
movq %rax, 0x30(%rsp)
decq %rax
movq %rbx, 0x60(%rsp)
movq %rax, 0x58(%rsp)
cmpq %rbx, %rax
jae 0x335d09
movq %r14, 0x8(%rsp)
movq 0x28(%r14), %rax
movq %rax, 0x70(%rsp)
leaq (%r12,%r12), %rdi
leaq 0xb9f56(%rip), %r14     # 0x3eeff0
movl $0x8, %esi
movq %r14, %rdx
movl $0x1a3, %ecx            # imm = 0x1A3
callq 0x1093ef
movq %rax, 0x68(%rsp)
leaq 0x3(%r12), %rdi
movl $0x10, %esi
movq %r14, %rdx
movl $0x1a4, %ecx            # imm = 0x1A4
callq 0x1093ef
movq %rax, %r15
movl $0x100, %eax            # imm = 0x100
leaq 0xc8(%rsp), %rcx
movq %rax, -0x10(%rcx)
movq $0x40, -0x8(%rcx)
movq %rax, -0x28(%rcx)
xorps %xmm0, %xmm0
movups %xmm0, -0x20(%rcx)
movq %rcx, 0x2800(%rcx)
leaq 0xc16(%rip), %rax       # 0x335d13
movq %rax, 0x2808(%rcx)
xorl %eax, %eax
testb %al, %al
jne 0x335132
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0x28c8(%rsp), %rdi
addq %rbx, %rdi
callq *0x28d0(%rsp)
incq %r14
addq $0x28, %rbx
cmpq 0xb8(%rsp), %r14
jb 0x33510f
movq %r15, 0x28(%rsp)
movq 0x60(%rsp), %rax
leaq 0x1(%rax), %rsi
movq %r13, %rdi
movq %rsi, 0x20(%rsp)
callq 0x1a8258
movq %rax, %rbx
testq %rbp, %rbp
je 0x33516e
movq 0x18ed8c(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0xb9e9e(%rip), %rsi     # 0x3ef004
movq %rbp, %rdi
callq 0x1229c8
movq %rbp, 0x10(%rsp)
movq %rbx, 0x50(%rsp)
movq %r13, %rdi
callq 0x1a8ff4
movq %rax, %r15
leaq 0xb9e66(%rip), %r14     # 0x3eeff0
movl $0x10, %edi
movq %r14, %rsi
movl $0x56, %edx
callq 0x1092b2
movq %rax, %rbx
movq 0x30(%rsp), %rbp
leaq (,%rbp,2), %rdi
movl $0x8, %esi
movq %r14, %rdx
movl $0x56, %ecx
callq 0x1093ef
movq %rax, (%rbx)
leaq (%rax,%rbp,8), %rax
movq %rbx, 0x48(%rsp)
movq %rax, 0x8(%rbx)
testq %r15, %r15
movq %r12, 0x18(%rsp)
je 0x335221
xorl %r14d, %r14d
xorl %ebx, %ebx
movq %r14, %rdi
movq %r13, %rsi
callq 0x1a8355
cmpb $-0x2, %al
jb 0x335217
movq 0x48(%rsp), %r12
movq (%r12), %rax
movq %r14, (%rax,%rbx,8)
movq 0x50(%rsp), %rdi
movq %r14, %rsi
callq 0x1a829e
movq 0x8(%r12), %rcx
movq 0x18(%rsp), %r12
movq %rax, (%rcx,%rbx,8)
incq %rbx
incq %r14
cmpq %r14, %r15
jne 0x3351dd
jmp 0x335223
xorl %ebx, %ebx
cmpq 0x30(%rsp), %rbx
jne 0x335d0e
movq 0xa0(%rsp), %rax
cmpq %rax, 0xb0(%rsp)
movq 0x28(%rsp), %r15
jne 0x335313
movq 0xc0(%rsp), %rcx
addq %rax, %rcx
shlq $0x3, %rcx
leaq (%rcx,%rcx,4), %rsi
cmpq 0xb8(%rsp), %rax
je 0x335270
movq 0x28c8(%rsp), %rdi
jmp 0x335272
xorl %edi, %edi
leaq 0xb9d77(%rip), %rdx     # 0x3eeff0
movl $0x1ae, %ecx            # imm = 0x1AE
callq 0x1094e6
movq %rax, 0x28c8(%rsp)
movq 0xb8(%rsp), %rcx
cmpq %rcx, 0xa0(%rsp)
jne 0x3352b5
shlq $0x3, %rcx
leaq (%rcx,%rcx,4), %rdx
movq %rax, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x17660
cmpq $0x0, 0x28d0(%rsp)
je 0x335303
cmpq $0x0, 0xc0(%rsp)
je 0x335303
xorl %ebx, %ebx
xorl %r14d, %r14d
movq 0xa0(%rsp), %rax
leaq (%rax,%rax,4), %rdi
shlq $0x3, %rdi
addq 0x28c8(%rsp), %rdi
addq %rbx, %rdi
callq *0x28d0(%rsp)
incq %r14
addq $0x28, %rbx
cmpq 0xc0(%rsp), %r14
jb 0x3352d0
movq 0xc0(%rsp), %rax
addq %rax, 0xa0(%rsp)
movq %r13, 0x88(%rsp)
movq 0xa8(%rsp), %rcx
movq 0xb0(%rsp), %rdx
leaq 0x1(%rdx), %rax
movq %rax, 0xb0(%rsp)
leaq (%rdx,%rdx,4), %rbx
shlq $0x3, %rbx
addq 0x28c8(%rsp), %rbx
cmpq %rax, %rcx
jae 0x335354
movq %rax, 0xa8(%rsp)
leaq 0x1(%r12), %rbp
leaq 0x8(,%r12,8), %rdi
leaq 0xb9c88(%rip), %r14     # 0x3eeff0
movq %rdi, 0x90(%rsp)
movq %r14, %rsi
movl $0x1b1, %edx            # imm = 0x1B1
callq 0x1092b2
movq %rax, 0x8(%rbx)
movq 0x8(%rsp), %r13
movq (%r13), %rdi
imulq %rbp, %rdi
movl $0x8, %esi
movq %r14, %rdx
movl $0x1b1, %ecx            # imm = 0x1B1
callq 0x1093ef
movq %r13, %r9
movq 0x8(%rbx), %rcx
movq %rax, (%rcx)
movq %rbp, 0x98(%rsp)
cmpq $0x2, %rbp
jb 0x3353d9
movq (%r9), %rax
xorl %ecx, %ecx
shlq $0x3, %rax
movq 0x8(%rbx), %rdx
movq (%rdx,%rcx,8), %rsi
addq %rax, %rsi
movq %rsi, 0x8(%rdx,%rcx,8)
incq %rcx
cmpq %rcx, %r12
jne 0x3353c1
movb $0x0, (%rbx)
movl $0x0, 0x4(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rbx)
movq 0x20(%rsp), %rax
movq %rax, 0x20(%rbx)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x335418
movq 0x18eae4(%rip), %rax    # 0x4c3ee8
movq (%rax), %rdx
leaq 0xb9c09(%rip), %rsi     # 0x3ef017
callq 0x1229c8
movq 0x8(%rsp), %r9
movq 0xb0(%rsp), %rax
testq %rax, %rax
je 0x335b82
movq 0x30(%rsp), %rcx
addq $-0x2, %rcx
movq %rcx, 0x80(%rsp)
movq $0x0, 0x40(%rsp)
movq 0x28c8(%rsp), %rcx
leaq (%rax,%rax,4), %rdx
leaq (%rcx,%rdx,8), %r10
cmpb $0x1, -0x28(%r10)
movq %r10, 0x10(%rsp)
jne 0x335697
decq %rax
movq %rax, 0xb0(%rsp)
movq (%r9), %rbx
testq %rbx, %rbx
je 0x3359f3
movl -0x24(%r10), %edx
movq %rdx, %rsi
negq %rsi
leaq (%rax,%rax,4), %rax
leaq (%rcx,%rax,8), %rax
leaq (%rsi,%rsi,4), %rcx
leaq (%rax,%rcx,8), %r8
cmovaeq %rdx, %r8
xorl %r13d, %r13d
xorl %r11d, %r11d
movq %r8, 0x20(%rsp)
testl %r11d, %r11d
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
je 0x3354bb
incq %r13
cmpq %rbx, %r13
jne 0x3354a3
jmp 0x3359f6
movq -0x20(%r10), %rax
movq (%rax), %rcx
movq (%rcx,%r13,8), %rbp
testq %rbp, %rbp
je 0x335569
testq %r12, %r12
je 0x3354ef
movl $0x1, %ecx
movq (%rax,%rcx,8), %rdx
subq (%rdx,%r13,8), %rbp
jb 0x335cc8
incq %rcx
cmpq %r12, %rcx
jbe 0x3354d9
testq %rbp, %rbp
je 0x335571
xorl %r14d, %r14d
xorl %r11d, %r11d
cmpq %r14, %r13
je 0x33555f
movq -0x20(%r10), %rax
movq (%rax), %rax
cmpq $0x0, (%rax,%r14,8)
je 0x33555f
movq 0x78(%rsp), %rax
movq (%rax,%r13,8), %rax
movq (%rax,%r14,8), %rdx
movq -0x18(%r10), %r8
incq %r8
imulq %rbp, %r8
addq %rdx, %r8
movq %r8, (%rax,%r14,8)
jae 0x33555f
movq -0x18(%r10), %rcx
incq %rcx
imulq %rbp, %rcx
movq 0x2918(%rsp), %rdi
leaq 0xb9b89(%rip), %rsi     # 0x3ef0d1
xorl %eax, %eax
callq 0x1019cf
movq 0x10(%rsp), %r10
movq 0x8(%rsp), %r9
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
incq %r14
cmpq %r14, %rbx
jne 0x3354fa
jmp 0x335574
xorl %r11d, %r11d
jmp 0x3354ae
xorl %r11d, %r11d
testq %r12, %r12
je 0x335637
movl $0x1, %r14d
movl $0x1, %r12d
testl %r11d, %r11d
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
jne 0x335626
movq -0x20(%r10), %rax
movq (%rax,%r12,8), %rax
cmpq $0x0, (%rax,%r13,8)
je 0x335623
xorl %r15d, %r15d
xorl %r11d, %r11d
movq -0x20(%r10), %rax
movq (%rax), %rcx
cmpq $0x0, (%rcx,%r15,8)
je 0x335619
movq (%rax,%r12,8), %rax
cmpq $0x0, (%rax,%r15,8)
jne 0x335619
movq 0x78(%rsp), %rcx
movq (%rcx,%r13,8), %rcx
movq (%rcx,%r15,8), %rdx
movq -0x18(%r10), %r8
incq %r8
imulq (%rax,%r13,8), %r8
addq %rdx, %r8
movq %r8, (%rcx,%r15,8)
jae 0x335619
movq -0x18(%r10), %rcx
incq %rcx
imulq %rbp, %rcx
movq 0x2918(%rsp), %rdi
leaq 0xb9acf(%rip), %rsi     # 0x3ef0d1
xorl %eax, %eax
callq 0x1019cf
movq 0x10(%rsp), %r10
movq 0x8(%rsp), %r9
movl $0xffffffff, %r11d      # imm = 0xFFFFFFFF
incq %r15
cmpq %r15, %rbx
jne 0x3355ad
jmp 0x335626
xorl %r11d, %r11d
incl %r14d
movq %r14, %r12
cmpq 0x18(%rsp), %r14
jbe 0x335589
movl -0x24(%r10), %eax
testq %rax, %rax
je 0x335688
movq 0x20(%rsp), %r8
testq %r8, %r8
movq 0x28(%rsp), %r15
movq 0x18(%rsp), %r12
je 0x335ce6
movq 0x8(%r8), %rcx
testq %rcx, %rcx
je 0x335ce6
movq -0x20(%r10), %rdx
movq (%rdx), %rdx
movq (%rdx,%r13,8), %rsi
movq (%rcx), %rdi
addq %rsi, (%rdi,%r13,8)
movq (%rdx,%r13,8), %rdx
movq (%rcx,%rax,8), %rax
movq %rdx, (%rax,%r13,8)
jmp 0x3354ae
movq 0x28(%rsp), %r15
movq 0x18(%rsp), %r12
jmp 0x3354ae
movq -0x10(%r10), %rcx
movq -0x8(%r10), %r8
movq %r8, %r13
subq %rcx, %r13
jbe 0x335ceb
movq %r15, %rdi
movq 0x68(%rsp), %rsi
movq 0x88(%rsp), %rdx
callq 0x1a8ace
cmpq %r12, %rax
ja 0x335cf0
testq %rax, %rax
je 0x335a00
movl $0x1, 0x3c(%rsp)
xorl %ebp, %ebp
movq 0x8(%rsp), %r9
movq 0x10(%rsp), %r8
movq %rax, 0x20(%rsp)
movq %rbp, %rbx
shlq $0x4, %rbx
movq (%r15,%rbx), %r14
movq 0x8(%r15,%rbx), %r12
movq %r12, %rdx
subq %r14, %rdx
jb 0x335cd7
subq %rdx, %r13
jb 0x335cd2
cmpq %r14, %r12
jne 0x33571f
movq 0x18(%rsp), %r12
jmp 0x3359e5
leaq 0x1(%r14), %rcx
cmpq %r12, %rcx
jne 0x3357ac
cmpq %r14, %r12
jbe 0x3357ec
movq 0x50(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1a829e
movq 0x60(%rsp), %rsi
cmpq %rsi, %rax
jae 0x33576c
incq %rax
subq %rax, %rsi
jb 0x335ccd
movq 0x70(%rsp), %rdi
callq 0xfab4f
movq 0x8(%rsp), %rcx
jmp 0x335778
movq 0x8(%rsp), %rcx
movq 0x8(%rcx), %rax
decq %rax
movq 0x20(%rcx), %rdx
movq 0x10(%rsp), %r8
movq -0x20(%r8), %rcx
movq (%rcx), %rcx
testq %rdx, %rdx
je 0x335791
movq (%rdx,%rax,8), %rax
incq (%rcx,%rax,8)
incq %r14
cmpq %r14, %r12
jne 0x33573a
movq 0x18(%rsp), %r12
movq 0x8(%rsp), %r9
jmp 0x3359e0
movq -0x8(%r8), %rcx
subq -0x10(%r8), %rcx
cmpq %rcx, %rdx
je 0x335b64
movq 0xa0(%rsp), %rax
cmpq %rax, 0xb0(%rsp)
movq 0x18(%rsp), %r12
jne 0x3358b9
cmpq 0xb8(%rsp), %rax
je 0x3357f6
movq 0x28c8(%rsp), %rdi
jmp 0x3357f8
movq 0x18(%rsp), %r12
jmp 0x3359e0
xorl %edi, %edi
addq 0xc0(%rsp), %rax
shlq $0x3, %rax
leaq (%rax,%rax,4), %rsi
leaq 0xb97e1(%rip), %rdx     # 0x3eeff0
movl $0xd7, %ecx
callq 0x1094e6
movq %rax, 0x28c8(%rsp)
movq 0xb8(%rsp), %rcx
cmpq %rcx, 0xa0(%rsp)
jne 0x33584b
shlq $0x3, %rcx
leaq (%rcx,%rcx,4), %rdx
movq %rax, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x17660
cmpq $0x0, 0x28d0(%rsp)
je 0x33589a
cmpq $0x0, 0xc0(%rsp)
je 0x33589a
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0xa0(%rsp), %rax
leaq (%rax,%rax,4), %rdi
shlq $0x3, %rdi
addq 0x28c8(%rsp), %rdi
addq %r14, %rdi
callq *0x28d0(%rsp)
incq %r15
addq $0x28, %r14
cmpq 0xc0(%rsp), %r15
jb 0x335867
movq 0xc0(%rsp), %rax
addq %rax, 0xa0(%rsp)
movq 0x28(%rsp), %r15
movq 0x8(%rsp), %r9
movq 0x10(%rsp), %r8
movq 0xa8(%rsp), %rcx
movq 0xb0(%rsp), %rdx
leaq 0x1(%rdx), %rax
movq %rax, 0xb0(%rsp)
leaq (%rdx,%rdx,4), %r14
shlq $0x3, %r14
addq 0x28c8(%rsp), %r14
cmpq %rax, %rcx
jae 0x3358f2
movq %rax, 0xa8(%rsp)
movq 0x8(%r14), %rax
testq %rax, %rax
je 0x335934
cmpq $-0x1, %r12
je 0x3359b8
xorl %ecx, %ecx
cmpq $0x0, (%r9)
je 0x335923
movq (%rax,%rcx,8), %rdx
xorl %esi, %esi
movq $0x0, (%rdx,%rsi,8)
incq %rsi
cmpq (%r9), %rsi
jb 0x335913
leaq 0x1(%rcx), %rdx
cmpq %r12, %rcx
movq %rdx, %rcx
jne 0x335907
jmp 0x3359b8
movq 0x90(%rsp), %rdi
leaq 0xb96ad(%rip), %rsi     # 0x3eeff0
movl $0xdc, %edx
callq 0x1092b2
movq %rax, 0x8(%r14)
movq 0x8(%rsp), %rax
movq (%rax), %rdi
movq 0x98(%rsp), %r15
imulq %r15, %rdi
movl $0x8, %esi
leaq 0xb967f(%rip), %rdx     # 0x3eeff0
movl $0xdc, %ecx
callq 0x1093ef
movq 0x10(%rsp), %r8
movq 0x8(%rsp), %r9
movq 0x8(%r14), %rcx
movq %rax, (%rcx)
cmpq $0x2, %r15
movq 0x28(%rsp), %r15
jb 0x3359b8
movq (%r9), %rax
shlq $0x3, %rax
xorl %ecx, %ecx
movq 0x8(%r14), %rdx
movq (%rdx,%rcx,8), %rsi
addq %rax, %rsi
movq %rsi, 0x8(%rdx,%rcx,8)
incq %rcx
cmpq %rcx, %r12
jne 0x3359a0
addq %r15, %rbx
movb $0x0, (%r14)
movups (%rbx), %xmm0
movups %xmm0, 0x18(%r14)
movl 0x3c(%rsp), %ecx
movl %ecx, 0x4(%r14)
movq -0x18(%r8), %rax
incq %rax
movq %rax, 0x10(%r14)
incl %ecx
movl %ecx, 0x3c(%rsp)
movq 0x20(%rsp), %rax
incq %rbp
cmpq %rax, %rbp
jne 0x3356eb
jmp 0x335a0a
xorl %r11d, %r11d
incq 0x40(%rsp)
jmp 0x335b4c
movq 0x8(%rsp), %r9
movq 0x10(%rsp), %r8
cmpq $0x0, -0x18(%r8)
movq 0x48(%rsp), %r14
je 0x335b44
testq %r13, %r13
je 0x335b44
movq 0x30(%rsp), %rcx
cmpq %rcx, %r13
ja 0x335d04
movq -0x10(%r8), %rdx
movq (%r14), %rax
cmpq -0x8(%rax,%rcx,8), %rdx
ja 0x335cff
movq (%rax), %rsi
movq -0x8(%r8), %rcx
cmpq %rcx, %rsi
ja 0x335cfa
cmpq %rsi, %rdx
jbe 0x335aa8
movq 0x58(%rsp), %rbx
movq 0x30(%rsp), %rsi
cmpq %rdx, -0x10(%rax,%rsi,8)
jb 0x335aaa
movq 0x80(%rsp), %rsi
xorl %ebx, %ebx
movq %rsi, %rdi
subq %rbx, %rdi
shrq %rdi
addq %rbx, %rdi
cmpq %rdx, (%rax,%rdi,8)
jae 0x335a92
leaq 0x1(%rdi), %rbx
cmpq 0x8(%rax,%rdi,8), %rdx
ja 0x335aa3
jmp 0x335aaa
cmpq %rdx, -0x8(%rax,%rdi,8)
jb 0x335b7a
decq %rdi
movq %rdi, %rsi
cmpq %rsi, %rbx
jbe 0x335a73
xorl %ebx, %ebx
cmpq 0x58(%rsp), %rbx
ja 0x335cf5
cmpq %rcx, (%rax,%rbx,8)
jae 0x335cf5
incq %rbx
subq $0x1, %r13
jb 0x335cdc
movq 0x8(%r14), %rax
movq -0x8(%rax,%rbx,8), %rax
movq 0x60(%rsp), %rsi
cmpq %rsi, %rax
jae 0x335b01
incq %rax
subq %rax, %rsi
jb 0x335ce1
movq 0x70(%rsp), %rdi
callq 0xfab4f
movq 0x8(%rsp), %r9
movq 0x10(%rsp), %r8
jmp 0x335b08
movq 0x8(%r9), %rax
decq %rax
movq 0x20(%r9), %rdx
movq -0x20(%r8), %rcx
movq (%rcx), %rcx
testq %rdx, %rdx
je 0x335b1c
movq (%rdx,%rax,8), %rax
incq (%rcx,%rax,8)
cmpq 0x58(%rsp), %rbx
ja 0x335b3b
movq (%r14), %rax
movq -0x8(%r8), %rcx
leaq 0x1(%rbx), %rdx
cmpq %rcx, (%rax,%rbx,8)
movq %rdx, %rbx
jb 0x335ac2
testq %r13, %r13
jne 0x335cf5
movb $0x1, -0x28(%r8)
xorl %r11d, %r11d
testl %r11d, %r11d
jne 0x335b8e
movq 0xb0(%rsp), %rax
testq %rax, %rax
jne 0x335443
jmp 0x335b8e
movq %r14, -0x10(%r8)
movq %r12, -0x8(%r8)
incq -0x18(%r8)
xorl %r11d, %r11d
movq 0x18(%rsp), %r12
jmp 0x335b4c
movq %rdi, %rbx
jmp 0x335aaa
movq $0x0, 0x40(%rsp)
xorl %r11d, %r11d
movl %r11d, %ebp
movq 0x2910(%rsp), %rdi
movq 0xa8(%rsp), %rdx
leaq 0xb9485(%rip), %rsi     # 0x3ef02d
xorl %eax, %eax
callq 0x10906e
leaq 0xb948d(%rip), %rdi     # 0x3ef043
movq 0x40(%rsp), %rsi
xorl %eax, %eax
callq 0x108e02
cmpq $0x0, 0xa8(%rsp)
je 0x335c23
movl $0x8, %r14d
xorl %r15d, %r15d
leaq 0xb9413(%rip), %rbx     # 0x3eeff0
movq 0x28c8(%rsp), %rax
movq (%rax,%r14), %rax
movq (%rax), %rdi
movq %rbx, %rsi
movl $0x1e5, %edx            # imm = 0x1E5
callq 0x109670
movq 0x28c8(%rsp), %rax
movq (%rax,%r14), %rdi
movq %rbx, %rsi
movl $0x1e5, %edx            # imm = 0x1E5
callq 0x109670
incq %r15
addq $0x28, %r14
cmpq 0xa8(%rsp), %r15
jb 0x335bdd
movq 0xa0(%rsp), %rax
cmpq 0xb8(%rsp), %rax
jbe 0x335c5a
movq 0x28c8(%rsp), %rdi
leaq 0xb93ac(%rip), %rsi     # 0x3eeff0
movl $0x1e7, %edx            # imm = 0x1E7
callq 0x109670
movq $0x0, 0x28c8(%rsp)
leaq 0xb938f(%rip), %rbx     # 0x3eeff0
movq 0x68(%rsp), %rdi
movq %rbx, %rsi
movl $0x1e8, %edx            # imm = 0x1E8
callq 0x109670
movq 0x28(%rsp), %rdi
movq %rbx, %rsi
movl $0x1e9, %edx            # imm = 0x1E9
callq 0x109670
movq 0x50(%rsp), %rdi
callq 0x1a82b6
movq 0x48(%rsp), %r14
movq (%r14), %rdi
movq %rbx, %rsi
movl $0x1eb, %edx            # imm = 0x1EB
callq 0x109670
movq %r14, %rdi
movq %rbx, %rsi
movl $0x1eb, %edx            # imm = 0x1EB
callq 0x109670
movl %ebp, %eax
addq $0x28d8, %rsp           # imm = 0x28D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x978b7
callq 0x9767f
callq 0x976b6
callq 0x976ef
callq 0x9779a
callq 0x97761
callq 0x978f0
callq 0x97646
callq 0x9787e
callq 0x97728
callq 0x977d3
callq 0x9780c
callq 0x97845
callq 0x975d6
callq 0x9760f