// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/ft-polish.c
// Function: fill_polishing_info
static void fill_polishing_info(GtFtPolishing_info *pol_info,
                                GtUword currentdepth,
                                GtUword prefix, GtWord score, GtWord maxscore)
{
  gt_assert(currentdepth <= pol_info->cut_depth);
  if (currentdepth == pol_info->cut_depth)
  {
    gt_assert(prefix < pol_info->entries && score >= INT16_MIN + maxscore);
    pol_info->values[prefix].diff_from_max = (int16_t) (score - maxscore);
    pol_info->values[prefix].score_sum = (int16_t) score;
  } else
  {
    if (score > maxscore)
    {
      maxscore = score;
    }
    gt_assert(score >= INT16_MIN - pol_info->difference_score);
    fill_polishing_info(pol_info,currentdepth+1, prefix << 1,
                        score - pol_info->difference_score,maxscore);
    gt_assert(score <= INT16_MAX - pol_info->match_score);
    fill_polishing_info(pol_info,currentdepth+1,(prefix << 1) | 1UL,
                        score + pol_info->match_score,maxscore);
  }
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq %r8, (%rsp)
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jbe 0x24f5c4
movq 0x3eca0d(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2c6a76(%rip), %rsi    # 0x516013
leaq 0x329f54(%rip), %rdx    # 0x5794f8
leaq 0x329f71(%rip), %rcx    # 0x57951c
leaq 0x329e56(%rip), %r8     # 0x579408
movl $0x10, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24f5c6
movq 0x18(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq 0x8(%rcx), %rax
jne 0x24f678
jmp 0x24f5dc
movq 0x10(%rsp), %rax
movq 0x20(%rsp), %rcx
cmpq (%rcx), %rax
jae 0x24f600
movq 0x8(%rsp), %rax
movq (%rsp), %rcx
addq $-0x8000, %rcx          # imm = 0x8000
cmpq %rcx, %rax
jge 0x24f638
movq 0x3ec999(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2c6a02(%rip), %rsi    # 0x516013
leaq 0x329f18(%rip), %rdx    # 0x579530
leaq 0x329efd(%rip), %rcx    # 0x57951c
leaq 0x329de2(%rip), %r8     # 0x579408
movl $0x13, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24f63a
movq 0x8(%rsp), %rax
subq (%rsp), %rax
movw %ax, %dx
movq 0x20(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rsp), %rcx
movw %dx, 0x2(%rax,%rcx,4)
movq 0x8(%rsp), %rax
movw %ax, %dx
movq 0x20(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x10(%rsp), %rcx
movw %dx, (%rax,%rcx,4)
jmp 0x24f792
movq 0x8(%rsp), %rax
cmpq (%rsp), %rax
jle 0x24f68c
movq 0x8(%rsp), %rax
movq %rax, (%rsp)
jmp 0x24f68e
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rdx
movq $-0x8000, %rcx          # imm = 0x8000
subq 0x20(%rdx), %rcx
cmpq %rcx, %rax
jge 0x24f6e0
movq 0x3ec8f1(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2c695a(%rip), %rsi    # 0x516013
leaq 0x329eac(%rip), %rdx    # 0x57956c
leaq 0x329e55(%rip), %rcx    # 0x57951c
leaq 0x329d3a(%rip), %r8     # 0x579408
movl $0x1c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24f6e2
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x1, %rsi
movq 0x10(%rsp), %rdx
shlq %rdx
movq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rax
subq 0x20(%rax), %rcx
movq (%rsp), %r8
callq 0x24f560
movq 0x8(%rsp), %rax
movq 0x20(%rsp), %rdx
movl $0x7fff, %ecx           # imm = 0x7FFF
subq 0x28(%rdx), %rcx
cmpq %rcx, %rax
jle 0x24f75f
movq 0x3ec872(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x2c68db(%rip), %rsi    # 0x516013
leaq 0x329e5d(%rip), %rdx    # 0x57959c
leaq 0x329dd6(%rip), %rcx    # 0x57951c
leaq 0x329cbb(%rip), %r8     # 0x579408
movl $0x1f, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x24f761
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
addq $0x1, %rsi
movq 0x10(%rsp), %rdx
shlq %rdx
orq $0x1, %rdx
movq 0x8(%rsp), %rcx
movq 0x20(%rsp), %rax
addq 0x28(%rax), %rcx
movq (%rsp), %r8
callq 0x24f560
addq $0x28, %rsp
retq
nopw (%rax,%rax)