// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/encseq.c
// Function: doupdatesumranges
static void doupdatesumranges(GtSpecialcharinfo *specialcharinfo,
                              unsigned int forcetable,
                              GtUword totallength,
                              GtUword numofsequences,
                              GtUword numofdbfiles,
                              GtUword lengthofdbfilenames,
                              unsigned int numofchars,
                              GtUword lengthofalphadef,
                              GtUword *specialrangestab,
                              const GtDiscDistri *distspecialrangelength,
                              GtUword *wildcardrangestab,
                              const GtDiscDistri *distwildcardrangelength,
                              GtLogger *logger)
{
  uint64_t smallestsize = 0, tmp;
  bool smallestdefined = false;
  int c;

  specialcharinfo->realspecialranges
    = calcswranges("special", false, specialrangestab, distspecialrangelength,
                   logger);
  specialcharinfo->realwildcardranges
    = calcswranges("wildcard", true, wildcardrangestab, distwildcardrangelength,
                   logger);
  gt_assert(forcetable <= 3U);
  for (c = 0; c<3; c++) {
    if (forcetable == 3U || c == (int) forcetable) {
      tmp = detencseqofsatviautables(c, totallength, numofsequences,
                                     numofdbfiles,
                                     lengthofdbfilenames,
                                     wildcardrangestab[c],
                                     numofchars,
                                     lengthofalphadef);
      if (!smallestdefined || tmp < smallestsize) {
        smallestdefined = true;
        smallestsize = tmp;
        specialcharinfo->specialranges = specialrangestab[c];
        specialcharinfo->wildcardranges = wildcardrangestab[c];
      }
    }
  }
}

// Assembly:
subq $0x58, %rsp
movq 0x90(%rsp), %rax
movq 0x88(%rsp), %rax
movq 0x80(%rsp), %rax
movq 0x78(%rsp), %rax
movq 0x70(%rsp), %rax
movq 0x68(%rsp), %rax
movl 0x60(%rsp), %eax
movq %rdi, 0x50(%rsp)
movl %esi, 0x4c(%rsp)
movq %rdx, 0x40(%rsp)
movq %rcx, 0x38(%rsp)
movq %r8, 0x30(%rsp)
movq %r9, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
movb $0x0, 0x17(%rsp)
movq 0x70(%rsp), %rdx
movq 0x78(%rsp), %rcx
movq 0x90(%rsp), %r8
leaq 0x4ed66(%rip), %rdi     # 0x185ae9
xorl %esi, %esi
callq 0x136ef0
movq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x80(%rsp), %rdx
movq 0x88(%rsp), %rcx
movq 0x90(%rsp), %r8
leaq 0x53f8b(%rip), %rdi     # 0x18ad40
movl $0x1, %esi
callq 0x136ef0
movq %rax, %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x38(%rax)
cmpl $0x3, 0x4c(%rsp)
jbe 0x136e0a
movq 0x7d1ff(%rip), %rax     # 0x1b3fd8
movq (%rax), %rdi
leaq 0x27283(%rip), %rsi     # 0x15e066
leaq 0x5323a(%rip), %rdx     # 0x18a024
leaq 0x53244(%rip), %rcx     # 0x18a035
leaq 0x4e866(%rip), %r8      # 0x18565e
movl $0x1480, %r9d           # imm = 0x1480
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x136e0c
movl $0x0, 0x10(%rsp)
cmpl $0x3, 0x10(%rsp)
jge 0x136ee1
cmpl $0x3, 0x4c(%rsp)
je 0x136e34
movl 0x10(%rsp), %eax
cmpl 0x4c(%rsp), %eax
jne 0x136ecf
movl 0x10(%rsp), %edi
movq 0x40(%rsp), %rsi
movq 0x38(%rsp), %rdx
movq 0x30(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x80(%rsp), %rax
movslq 0x10(%rsp), %r9
movq (%rax,%r9,8), %r9
movl 0x60(%rsp), %r10d
movq 0x68(%rsp), %rax
movl %r10d, (%rsp)
movq %rax, 0x8(%rsp)
callq 0x136fc0
movq %rax, 0x18(%rsp)
testb $0x1, 0x17(%rsp)
je 0x136e8d
movq 0x18(%rsp), %rax
cmpq 0x20(%rsp), %rax
jae 0x136ecd
movb $0x1, 0x17(%rsp)
movq 0x18(%rsp), %rax
movq %rax, 0x20(%rsp)
movq 0x70(%rsp), %rax
movslq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x80(%rsp), %rax
movslq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x50(%rsp), %rax
movq %rcx, 0x30(%rax)
jmp 0x136ecf
jmp 0x136ed1
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x136e14
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)