// File: /workspace/github_c_makefile_star2_O2/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 0x1647d9
movq %rdi, %r14
cmpl $0x0, 0x88(%rdi)
je 0x1647d9
movq %rsi, %rbx
testq %rsi, %rsi
je 0x164715
movq %rbx, %rdi
callq 0x89eb7
testb %al, %al
jne 0x164807
andl $0x0, 0x18(%r14)
movq 0xe8(%r14), %rdi
callq 0x9b4cb
pushq $-0x1
popq %rbp
testb %al, %al
je 0x164747
leaq 0x48(%r14), %rdi
movq 0x10(%r14), %rsi
movq %rbx, %rdx
callq 0x1635f8
testl %eax, %eax
jne 0x1647d2
jmp 0x16475f
movq $0x3, 0x50(%r14)
movq $0x3e8, 0x58(%r14)      # imm = 0x3E8
movq $0xfa0, 0x60(%r14)      # imm = 0xFA0
cmpb $0x1, 0x79(%r14)
jne 0x164776
cmpl $0x0, 0x70(%r14)
je 0x164776
leaq 0x1e474e(%rip), %rsi    # 0x348ec2
jmp 0x1647c8
movq 0xf8(%r14), %rdi
testq %rdi, %rdi
je 0x1647a6
callq 0x9b4cb
testb %al, %al
je 0x1647a6
leaq 0x8(%r14), %rdi
movq 0x40(%r14), %rdx
leaq 0x22078e(%rip), %rsi    # 0x384f28
movq %rbx, %rcx
callq 0x9b50d
testl %eax, %eax
jne 0x1647d4
movq 0x58(%r14), %rcx
cmpq %rcx, 0x50(%r14)
jbe 0x1647b9
leaq 0x1e3edd(%rip), %rsi    # 0x348694
jmp 0x1647c8
xorl %eax, %eax
cmpq 0x60(%r14), %rcx
jbe 0x1647d4
leaq 0x1e3f15(%rip), %rsi    # 0x3486dd
movq %rbx, %rdi
xorl %eax, %eax
callq 0x89dbb
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq 0x2d3788(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x180829(%rip), %rsi    # 0x2e5013
leaq 0x1e4675(%rip), %rdx    # 0x348e66
leaq 0x1e46a3(%rip), %rcx    # 0x348e9b
leaq 0x1e3f45(%rip), %r8     # 0x348744
movl $0xb1, %r9d
jmp 0x164833
movq 0x2d375a(%rip), %rax    # 0x437f68
movq (%rax), %rdi
leaq 0x1807fb(%rip), %rsi    # 0x2e5013
leaq 0x1809a0(%rip), %rdx    # 0x2e51bf
leaq 0x1e4675(%rip), %rcx    # 0x348e9b
leaq 0x1e3f17(%rip), %r8     # 0x348744
movl $0xb2, %r9d
xorl %eax, %eax
callq 0x17a50
callq 0x17390