// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/extended/linspace_management.c
// Function: gt_linspace_management_check_generic
static void gt_linspace_management_check_generic(GtLinspaceManagement
                                                 *spacemanager,
                                                 GtUword ulen, GtUword vlen,
                                                 size_t valuesize,
                                                 size_t rtabsize,
                                                 size_t crosspointsize,
                                                 bool local)
{
  size_t space = 0, localspace = 0; /* space in bytes */
  /*if (spacemanager == NULL)
    spacemanager = gt_new_linspace_management();*/

  gt_assert(spacemanager != NULL);

  if (spacemanager->valueTabsize < (ulen+1)*valuesize)
  {
    spacemanager->valueTabspace = gt_realloc(spacemanager->valueTabspace,
                                            (ulen+1)*valuesize);
    spacemanager->valueTabsize = (ulen+1)*valuesize;
  }

  if (spacemanager->rTabsize < (ulen+1)*rtabsize)
  {
    spacemanager->rTabspace = gt_realloc(spacemanager->rTabspace,
                                        (ulen+1)*rtabsize);
    spacemanager->rTabsize = (ulen+1)*rtabsize;
  }
  if (spacemanager->crosspointTabsize < (vlen+1)*crosspointsize)
  {
    spacemanager->crosspointTabspace =
           gt_realloc(spacemanager->crosspointTabspace,(vlen+1)*crosspointsize);
    spacemanager->crosspointTabsize = (vlen+1)*crosspointsize;
  }
  if (local)
  {
    if (spacemanager->maxscoordvaluespace == NULL)
      spacemanager->maxscoordvaluespace = gt_maxcoordvalue_new();
    else
      gt_maxcoordvalue_reset(spacemanager->maxscoordvaluespace);
  }
  if (spacemanager->maxscoordvaluespace != NULL)
    localspace = 2 * sizeof (GtUwordPair) + sizeof (GtWord);
            /* = sizeof (GtMaxcoordvalue)*/

  /* determine space peak */
  space = spacemanager->valueTabsize + spacemanager->rTabsize +
          spacemanager->crosspointTabsize + localspace;

  if (space > spacemanager->spacepeak)
    spacemanager->spacepeak = space;
}

// Assembly:
subq $0x48, %rsp
movb 0x50(%rsp), %al
movq %rdi, 0x40(%rsp)
movq %rsi, 0x38(%rsp)
movq %rdx, 0x30(%rsp)
movq %rcx, 0x28(%rsp)
movq %r8, 0x20(%rsp)
movq %r9, 0x18(%rsp)
andb $0x1, %al
movb %al, 0x17(%rsp)
movq $0x0, 0x8(%rsp)
movq $0x0, (%rsp)
cmpq $0x0, 0x40(%rsp)
jne 0x1a324d
movq 0x498d84(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x372ded(%rip), %rsi    # 0x516013
leaq 0x3b56b1(%rip), %rdx    # 0x5588de
leaq 0x3b57b5(%rip), %rcx    # 0x5589e9
leaq 0x3b5680(%rip), %r8     # 0x5588bb
movl $0x58, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1a324f
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x38(%rsp), %rcx
addq $0x1, %rcx
imulq 0x28(%rsp), %rcx
cmpq %rcx, %rax
jae 0x1a32b7
movq 0x40(%rsp), %rax
movq (%rax), %rdi
movq 0x38(%rsp), %rsi
addq $0x1, %rsi
imulq 0x28(%rsp), %rsi
leaq 0x3b5631(%rip), %rdx    # 0x5588bb
movl $0x5d, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, (%rax)
movq 0x38(%rsp), %rcx
addq $0x1, %rcx
imulq 0x28(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x40(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x38(%rsp), %rcx
addq $0x1, %rcx
imulq 0x20(%rsp), %rcx
cmpq %rcx, %rax
jae 0x1a3321
movq 0x40(%rsp), %rax
movq 0x8(%rax), %rdi
movq 0x38(%rsp), %rsi
addq $0x1, %rsi
imulq 0x20(%rsp), %rsi
leaq 0x3b55c8(%rip), %rdx    # 0x5588bb
movl $0x64, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x38(%rsp), %rcx
addq $0x1, %rcx
imulq 0x20(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x40(%rsp), %rax
movq 0x38(%rax), %rax
movq 0x30(%rsp), %rcx
addq $0x1, %rcx
imulq 0x18(%rsp), %rcx
cmpq %rcx, %rax
jae 0x1a338b
movq 0x40(%rsp), %rax
movq 0x10(%rax), %rdi
movq 0x30(%rsp), %rsi
addq $0x1, %rsi
imulq 0x18(%rsp), %rsi
leaq 0x3b555e(%rip), %rdx    # 0x5588bb
movl $0x6a, %ecx
callq 0xe8540
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rcx
addq $0x1, %rcx
imulq 0x18(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x38(%rax)
testb $0x1, 0x17(%rsp)
je 0x1a33c1
movq 0x40(%rsp), %rax
cmpq $0x0, 0x48(%rax)
jne 0x1a33b1
callq 0x1ac420
movq %rax, %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x48(%rax)
jmp 0x1a33bf
movq 0x40(%rsp), %rax
movq 0x48(%rax), %rdi
callq 0x1acbe0
jmp 0x1a33c1
movq 0x40(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x1a33d5
movq $0x28, (%rsp)
movq 0x40(%rsp), %rax
movq 0x28(%rax), %rax
movq 0x40(%rsp), %rcx
addq 0x30(%rcx), %rax
movq 0x40(%rsp), %rcx
addq 0x38(%rcx), %rax
addq (%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movq 0x40(%rsp), %rcx
cmpq 0x40(%rcx), %rax
jbe 0x1a3417
movq 0x8(%rsp), %rcx
movq 0x40(%rsp), %rax
movq %rcx, 0x40(%rax)
addq $0x48, %rsp
retq
nopl (%rax)