// File: /workspace/github_c_makefile_star2_O3/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 %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x1b618f
movq %rdi, %r14
cmpl $0x0, 0x88(%rdi)
je 0x1b618f
movq %rsi, %rbx
testq %rsi, %rsi
je 0x1b60be
movq %rbx, %rdi
callq 0xfcc32
testb %al, %al
jne 0x1b6194
movl $0x0, 0x18(%r14)
movq 0xe8(%r14), %rdi
callq 0x10ac3f
testb %al, %al
je 0x1b60f7
leaq 0x48(%r14), %rdi
movq 0x10(%r14), %rsi
movq %rbx, %rdx
callq 0x1b54d8
movl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testl %ecx, %ecx
jne 0x1b6187
jmp 0x1b610f
movq $0x3, 0x50(%r14)
movq $0x3e8, 0x58(%r14)      # imm = 0x3E8
movq $0xfa0, 0x60(%r14)      # imm = 0xFA0
cmpb $0x1, 0x79(%r14)
jne 0x1b6126
cmpl $0x0, 0x70(%r14)
je 0x1b6126
leaq 0x1f2a0b(%rip), %rsi    # 0x3a8b2f
jmp 0x1b6178
movq 0xf8(%r14), %rdi
testq %rdi, %rdi
je 0x1b6156
callq 0x10ac3f
testb %al, %al
je 0x1b6156
leaq 0x8(%r14), %rdi
movq 0x40(%r14), %rdx
leaq 0x22e9fe(%rip), %rsi    # 0x3e4b48
movq %rbx, %rcx
callq 0x10ac4e
testl %eax, %eax
jne 0x1b6187
movq 0x58(%r14), %rcx
cmpq %rcx, 0x50(%r14)
jbe 0x1b6169
leaq 0x1f219a(%rip), %rsi    # 0x3a8301
jmp 0x1b6178
xorl %eax, %eax
cmpq 0x60(%r14), %rcx
jbe 0x1b6187
leaq 0x1f21d2(%rip), %rsi    # 0x3a834a
movq %rbx, %rdi
xorl %eax, %eax
callq 0xfcb67
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x8, %rsp
popq %rbx
popq %r14
retq
callq 0x66517
callq 0x664de