// File: /workspace/github_c_makefile_star2_O1/genometools[P]genometools/src/match/index_options.c
// Function: gt_index_options_check_set_create_opts
static int gt_index_options_check_set_create_opts(void *oip, GtError *err)
{
  int had_err = 0;
  GtIndexOptions *oi = (GtIndexOptions*) oip;
  gt_assert(oi != NULL && oi->type != GT_INDEX_OPTIONS_UNDEFINED);
  gt_error_check(err);
  /* readmode needs to be initialized to fwd */
  oi->readmode = (GtReadmode) 0;
  if (!had_err)
  {
    if (gt_option_is_set(oi->optionalgbounds))
    {
      if (gt_parse_algbounds(&oi->sfxstrategy,oi->algbounds,err) != 0)
      {
        had_err = -1;
      }
    } else
    {
      oi->sfxstrategy.maxinsertionsort = MAXINSERTIONSORTDEFAULT;
      oi->sfxstrategy.maxbltriesort = MAXBLTRIESORTDEFAULT;
      oi->sfxstrategy.maxcountingsort = MAXCOUNTINGSORTDEFAULT;
    }
  }
  if (!had_err && oi->sfxstrategy.kmerswithencseqreader &&
      oi->sfxstrategy.spmopt_minlength > 0)
  {
    gt_error_set(err,"options -spmopt  and -kmerswithencseqreader are "
                     "not compatible");
    had_err = -1;
  }
  if (!had_err
        && oi->optionmemlimit != NULL
        && gt_option_is_set(oi->optionmemlimit))
  {
    had_err = gt_option_parse_spacespec(&oi->maximumspace,"memlimit",
                                        oi->memlimit,err);
  }
  if (!had_err)
  {
    if (oi->sfxstrategy.maxinsertionsort > oi->sfxstrategy.maxbltriesort)
    {
      gt_error_set(err,"first argument of option -algbds must not be larger "
                       "than second argument");
      had_err = -1;
    } else
    {
      if (oi->sfxstrategy.maxbltriesort > oi->sfxstrategy.maxcountingsort)
      {
        gt_error_set(err,"second argument of option -algbds must not be larger "
                         "than third argument");
        had_err = -1;
      }
    }
  }
  return had_err;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
testq %rdi, %rdi
je 0x1bebe7
movq %rdi, %r14
cmpl $0x0, 0x88(%rdi)
je 0x1bebe7
movq %rsi, %rbx
testq %rsi, %rsi
je 0x1beb0a
movq %rbx, %rdi
callq 0x101a9a
testb %al, %al
jne 0x1bebec
movl $0x0, 0x18(%r14)
movq 0xe8(%r14), %rdi
callq 0x10fe52
testb %al, %al
je 0x1beb3d
leaq 0x48(%r14), %rdi
movq 0x10(%r14), %rsi
movq %rbx, %rdx
callq 0x1bdf58
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
testl %eax, %eax
jne 0x1bebab
jmp 0x1beb55
movq $0x3, 0x50(%r14)
movq $0x3e8, 0x58(%r14)      # imm = 0x3E8
movq $0xfa0, 0x60(%r14)      # imm = 0xFA0
cmpb $0x1, 0x79(%r14)
jne 0x1beb7b
cmpl $0x0, 0x70(%r14)
je 0x1beb7b
leaq 0x1f3581(%rip), %rsi    # 0x3b20eb
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
jmp 0x1bebab
movq 0xf8(%r14), %rdi
xorl %ebp, %ebp
testq %rdi, %rdi
je 0x1bebab
callq 0x10fe52
testb %al, %al
je 0x1bebab
leaq 0x8(%r14), %rdi
movq 0x40(%r14), %rdx
leaq 0x22f76b(%rip), %rsi    # 0x3ee30c
movq %rbx, %rcx
callq 0x10fe61
movl %eax, %ebp
testl %ebp, %ebp
jne 0x1bebe0
movq 0x58(%r14), %rax
cmpq %rax, 0x50(%r14)
jbe 0x1bebc2
leaq 0x1f2cfd(%rip), %rsi    # 0x3b18bd
jmp 0x1bebd1
xorl %ebp, %ebp
cmpq 0x60(%r14), %rax
jbe 0x1bebe0
leaq 0x1f2d35(%rip), %rsi    # 0x3b1906
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1019cf
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
callq 0x67cd6
callq 0x67c9d