// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/match/index_options.c
// Function: gt_parse_algbounds
int gt_parse_algbounds(Sfxstrategy *sfxstrategy,
                       const GtStrArray *algbounds,
                       GtError *err)
{
  bool haserr = false;
  const char *arg;
  GtWord readint;

  if (gt_str_array_size(algbounds) != 3UL)
  {
    gt_error_set(err,"option -algbds must have exactly 3 arguments");
    haserr = true;
  }
  GT_IDXOPTS_READMAXBOUND(maxinsertionsort, 0);
  GT_IDXOPTS_READMAXBOUND(maxbltriesort, 1UL);
  if (sfxstrategy->maxinsertionsort > sfxstrategy->maxbltriesort)
  {
    gt_error_set(err,"first argument of option -algbds must not be larger "
                     "than second argument");
    haserr = true;
  }
  GT_IDXOPTS_READMAXBOUND(maxcountingsort, 2UL);
  if (sfxstrategy->maxbltriesort > sfxstrategy->maxcountingsort)
  {
    gt_error_set(err,"second argument of option -algbds must not be larger "
                     "than third argument");
    haserr = true;
  }
  return haserr ? -1 : 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movb $0x0, 0x1f(%rsp)
movq 0x28(%rsp), %rdi
callq 0x11fcc0
cmpq $0x3, %rax
je 0x25b950
movq 0x20(%rsp), %rdi
leaq 0x31f1f8(%rip), %rsi    # 0x57ab3c
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
testb $0x1, 0x1f(%rsp)
jne 0x25b9b5
movq 0x28(%rsp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x11f8c0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x2f2ef9(%rip), %rsi    # 0x54e86f
leaq 0x8(%rsp), %rdx
movb $0x0, %al
callq 0x19770
cmpl $0x1, %eax
jne 0x25b98f
cmpq $0x0, 0x8(%rsp)
jg 0x25b9a7
movq 0x20(%rsp), %rdi
leaq 0x31f1ce(%rip), %rsi    # 0x57ab69
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
movq 0x8(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
testb $0x1, 0x1f(%rsp)
jne 0x25ba1b
movq 0x28(%rsp), %rdi
movl $0x1, %esi
callq 0x11f8c0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x2f2e93(%rip), %rsi    # 0x54e86f
leaq 0x8(%rsp), %rdx
movb $0x0, %al
callq 0x19770
cmpl $0x1, %eax
jne 0x25b9f5
cmpq $0x0, 0x8(%rsp)
jg 0x25ba0d
movq 0x20(%rsp), %rdi
leaq 0x31f168(%rip), %rsi    # 0x57ab69
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
movq 0x8(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq 0x30(%rsp), %rcx
cmpq 0x10(%rcx), %rax
jbe 0x25ba47
movq 0x20(%rsp), %rdi
leaq 0x31f165(%rip), %rsi    # 0x57aba0
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
testb $0x1, 0x1f(%rsp)
jne 0x25baad
movq 0x28(%rsp), %rdi
movl $0x2, %esi
callq 0x11f8c0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
leaq 0x2f2e01(%rip), %rsi    # 0x54e86f
leaq 0x8(%rsp), %rdx
movb $0x0, %al
callq 0x19770
cmpl $0x1, %eax
jne 0x25ba87
cmpq $0x0, 0x8(%rsp)
jg 0x25ba9f
movq 0x20(%rsp), %rdi
leaq 0x31f0d6(%rip), %rsi    # 0x57ab69
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
movq 0x8(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x30(%rsp), %rcx
cmpq 0x18(%rcx), %rax
jbe 0x25bad9
movq 0x20(%rsp), %rdi
leaq 0x31f11c(%rip), %rsi    # 0x57abe9
movb $0x0, %al
callq 0xd88c0
movb $0x1, 0x1f(%rsp)
movb 0x1f(%rsp), %dl
xorl %eax, %eax
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
testb $0x1, %dl
cmovnel %ecx, %eax
addq $0x38, %rsp
retq
nop