LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_int_min
GtOption* gt_option_new_int_min(const char *option_str, const char *description,
                                int *value, int default_value, int min_value)
{
  GtOption *o = gt_option_new_int(option_str, description, value,
                                  default_value);
  o->min_value_set = true;
  o->min_value.i = min_value;
  return o;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl %ecx, 0xc(%rsp)
movl %r8d, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movl 0xc(%rsp), %ecx
callq 0x13810
movq %rax, (%rsp)
movq (%rsp), %rax
movb $0x1, 0x4b(%rax)
movl 0x8(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, 0x38(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_int_max
GtOption* gt_option_new_int_max(const char *option_str, const char *description,
                                int *value, int default_value, int max_value)
{
  GtOption *o = gt_option_new_int(option_str, description, value,
                                  default_value);
  o->max_value_set = true;
  o->max_value.i = max_value;
  return o;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl %ecx, 0xc(%rsp)
movl %r8d, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movl 0xc(%rsp), %ecx
callq 0x13810
movq %rax, (%rsp)
movq (%rsp), %rax
movb $0x1, 0x4c(%rax)
movl 0x8(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, 0x40(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_int_min_max
GtOption* gt_option_new_int_min_max(const char *option_str,
                                    const char *description,
                                    int *value, int default_value,
                                    int min_value, int max_value)
{
  GtOption *o = gt_option_new_int(option_str, description, value,
                                  default_value);
  o->min_value_set = true;
  o->min_value.i = min_value;
  o->max_value_set = true;
  o->max_value.i = max_value;
  return o;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movl %ecx, 0x1c(%rsp)
movl %r8d, 0x18(%rsp)
movl %r9d, 0x14(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movl 0x1c(%rsp), %ecx
callq 0x13810
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movb $0x1, 0x4b(%rax)
movl 0x18(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x38(%rax)
movq 0x8(%rsp), %rax
movb $0x1, 0x4c(%rax)
movl 0x14(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, 0x40(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_uint_min
GtOption* gt_option_new_uint_min(const char *option_str,
                                 const char *description,
                                 unsigned int *value,
                                 unsigned int default_value,
                                 unsigned int min_value)
{
  GtOption *o = gt_option_new_uint(option_str, description, value,
                                   default_value);
  o->min_value_set = true;
  o->min_value.ui = min_value;
  return o;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movl %ecx, 0xc(%rsp)
movl %r8d, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
movl 0xc(%rsp), %ecx
callq 0x139b0
movq %rax, (%rsp)
movq (%rsp), %rax
movb $0x1, 0x4b(%rax)
movl 0x8(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, 0x38(%rax)
movq (%rsp), %rax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_uword_min
GtOption* gt_option_new_uword_min(const char *option_str,
                                  const char *description,
                                  GtUword *value,
                                  GtUword default_value,
                                  GtUword min_value)
{
  GtOption *o = gt_option_new_uword(option_str, description, value,
                                    default_value);
  o->min_value_set = true;
  o->min_value.ul = min_value;
  return o;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
callq 0x134e0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movb $0x1, 0x4b(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_uword_min_max
GtOption *gt_option_new_uword_min_max(const char *option_str,
                                      const char *description,
                                      GtUword *value,
                                      GtUword default_value,
                                      GtUword min_value,
                                      GtUword max_value)
{
  GtOption *o = gt_option_new_uword(option_str, description, value,
                                    default_value);
  o->min_value_set = true;
  o->min_value.ul = min_value;
  o->max_value_set = true;
  o->max_value.ul = max_value;
  return o;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq %r9, 0x8(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
callq 0x134e0
movq %rax, (%rsp)
movq (%rsp), %rax
movb $0x1, 0x4b(%rax)
movq 0x10(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x38(%rax)
movq (%rsp), %rax
movb $0x1, 0x4c(%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x40(%rax)
movq (%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_range
GtOption* gt_option_new_range(const char *option_str, const char *description,
                              GtRange *value, GtRange *default_value)
{
  GtOption *o = gt_option_new(option_str, description, value);
  o->option_type = OPTION_RANGE;
  o->default_value.r.start = default_value ? default_value->start
                                           : GT_UNDEF_UWORD;
  o->default_value.r.end   = default_value ? default_value->end
                                           : GT_UNDEF_UWORD;
  value->start = o->default_value.r.start;
  value->end   = o->default_value.r.end;
  return o;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
callq 0x13540
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
movl $0xb, (%rax)
cmpq $0x0, 0x18(%rsp)
je 0x13df3
movq 0x18(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
jmp 0x13e01
movq $-0x1, %rax
movq %rax, 0x8(%rsp)
jmp 0x13e01
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x20(%rax)
cmpq $0x0, 0x18(%rsp)
je 0x13e26
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%rsp)
jmp 0x13e33
movq $-0x1, %rax
movq %rax, (%rsp)
jmp 0x13e33
movq (%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, (%rax)
movq 0x10(%rsp), %rax
movq 0x28(%rax), %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x10(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_string
GtOption* gt_option_new_string(const char *option_str, const char *description,
                               GtStr *value, const char *default_value)
{
  GtOption *o = gt_option_new(option_str, description, value);
  o->option_type = OPTION_STRING;
  o->default_value.s = default_value;
  gt_str_set(value, default_value);
  return o;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x13540
movq %rax, (%rsp)
movq (%rsp), %rax
movl $0xc, (%rax)
movq 0x8(%rsp), %rcx
movq (%rsp), %rax
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x190b0
movq (%rsp), %rax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_filename
GtOption* gt_option_new_filename(const char *option_str,
                                 const char *description,
                                 GtStr *filename)
{
  GtOption *o = gt_option_new(option_str, description, filename);
  o->option_type = OPTION_FILENAME;
  o->default_value.s = NULL;
  gt_str_reset(filename);
  return o;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdx
callq 0x13540
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl $0x3, (%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x20(%rax)
movq 0x10(%rsp), %rdi
callq 0x19b70
movq 0x8(%rsp), %rax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_choice
GtOption* gt_option_new_choice(const char *option_str, const char *description,
                               GtStr *value, const char *default_value,
                               const char **domain)
{
  GtOption *o;
#ifndef NDEBUG
  GtUword in_domain = 1;
  if (default_value) {
    while (domain[in_domain - 1] != NULL) {
      if (domain[in_domain - 1] == default_value) {
        in_domain = 0;
        break;
      }
      in_domain++;
    }
  }
  else
    in_domain = 0;
  gt_assert(!in_domain);
#endif

  o = gt_option_new_string(option_str, description, value, default_value);
  o->option_type = OPTION_CHOICE;
  o->domain = domain;

  return o;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movq %r8, 0x10(%rsp)
movq $0x1, (%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x140a5
jmp 0x1405f
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
subq $0x1, %rcx
cmpq $0x0, (%rax,%rcx,8)
je 0x140a3
movq 0x10(%rsp), %rax
movq (%rsp), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
cmpq 0x18(%rsp), %rax
jne 0x14095
movq $0x0, (%rsp)
jmp 0x140a3
movq (%rsp), %rax
addq $0x1, %rax
movq %rax, (%rsp)
jmp 0x1405f
jmp 0x140ad
movq $0x0, (%rsp)
jmp 0x140af
cmpq $0x0, (%rsp)
je 0x140ee
movq 0x19ff1b(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149f9f(%rip), %rsi    # 0x15e066
leaq 0x14b0c1(%rip), %rdx    # 0x15f18f
leaq 0x14b0c5(%rip), %rcx    # 0x15f19a
leaq 0x14a77e(%rip), %r8     # 0x15e85a
movl $0x72f, %r9d            # imm = 0x72F
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x140f0
movq 0x30(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq 0x20(%rsp), %rdx
movq 0x18(%rsp), %rcx
callq 0x13ef0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl $0x1, (%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x8(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_is_mandatory_either
void gt_option_is_mandatory_either(GtOption *o, const GtOption *meo)
{
  gt_assert(o && meo);
  gt_assert(!o->mandatory_either_options);
  o->mandatory_either_options = gt_array_new(sizeof (GtOption*));
  gt_array_add(o->mandatory_either_options, meo);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1420e
cmpq $0x0, 0x8(%rsp)
jne 0x14246
movq 0x19fdc3(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149e47(%rip), %rsi    # 0x15e066
leaq 0x14afb3(%rip), %rdx    # 0x15f1d9
leaq 0x14afb5(%rip), %rcx    # 0x15f1e2
leaq 0x14a626(%rip), %r8     # 0x15e85a
movl $0x747, %r9d            # imm = 0x747
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14248
jmp 0x1424a
movq 0x10(%rsp), %rax
cmpq $0x0, 0x60(%rax)
je 0x1428e
movq 0x19fd7b(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149dff(%rip), %rsi    # 0x15e066
leaq 0x14af92(%rip), %rdx    # 0x15f200
leaq 0x14af6d(%rip), %rcx    # 0x15f1e2
leaq 0x14a5de(%rip), %r8     # 0x15e85a
movl $0x748, %r9d            # imm = 0x748
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14290
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x60(%rax)
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_is_mandatory_either_3
void gt_option_is_mandatory_either_3(GtOption *o, const GtOption *meo_a,
                                     const GtOption *meo_b)
{
  gt_assert(o && meo_a && meo_b);
  gt_assert(!o->mandatory_either_options);
  o->mandatory_either_options = gt_array_new(sizeof (GtOption*));
  gt_array_add(o->mandatory_either_options, meo_a);
  gt_array_add(o->mandatory_either_options, meo_b);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
movq %rdx, (%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x142f9
cmpq $0x0, 0x8(%rsp)
je 0x142f9
cmpq $0x0, (%rsp)
jne 0x14331
movq 0x19fcd8(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149d5c(%rip), %rsi    # 0x15e066
leaq 0x14af0c(%rip), %rdx    # 0x15f21d
leaq 0x14af19(%rip), %rcx    # 0x15f231
leaq 0x14a53b(%rip), %r8     # 0x15e85a
movl $0x750, %r9d            # imm = 0x750
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14333
jmp 0x14335
movq 0x10(%rsp), %rax
cmpq $0x0, 0x60(%rax)
je 0x14379
movq 0x19fc90(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149d14(%rip), %rsi    # 0x15e066
leaq 0x14aea7(%rip), %rdx    # 0x15f200
leaq 0x14aed1(%rip), %rcx    # 0x15f231
leaq 0x14a4f3(%rip), %r8     # 0x15e85a
movl $0x751, %r9d            # imm = 0x751
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1437b
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x60(%rax)
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x10(%rsp), %rax
movq 0x60(%rax), %rdi
movq %rsp, %rsi
movl $0x8, %edx
callq 0x76220
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_is_mandatory_either_4
void gt_option_is_mandatory_either_4(GtOption *o, const GtOption *meo_a,
                                     const GtOption *meo_b,
                                     const GtOption *meo_c)
{
  gt_assert(o && meo_a && meo_b);
  gt_assert(!o->mandatory_either_options);
  o->mandatory_either_options = gt_array_new(sizeof (GtOption*));
  gt_array_add(o->mandatory_either_options, meo_a);
  gt_array_add(o->mandatory_either_options, meo_b);
  gt_array_add(o->mandatory_either_options, meo_c);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x14400
cmpq $0x0, 0x18(%rsp)
je 0x14400
cmpq $0x0, 0x10(%rsp)
jne 0x14438
movq 0x19fbd1(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149c55(%rip), %rsi    # 0x15e066
leaq 0x14ae05(%rip), %rdx    # 0x15f21d
leaq 0x14ae32(%rip), %rcx    # 0x15f251
leaq 0x14a434(%rip), %r8     # 0x15e85a
movl $0x75b, %r9d            # imm = 0x75B
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1443a
jmp 0x1443c
movq 0x20(%rsp), %rax
cmpq $0x0, 0x60(%rax)
je 0x14480
movq 0x19fb89(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149c0d(%rip), %rsi    # 0x15e066
leaq 0x14ada0(%rip), %rdx    # 0x15f200
leaq 0x14adea(%rip), %rcx    # 0x15f251
leaq 0x14a3ec(%rip), %r8     # 0x15e85a
movl $0x75c, %r9d            # imm = 0x75C
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14482
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x60(%rax)
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x18(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x10(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x20(%rsp), %rax
movq 0x60(%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_imply
void gt_option_imply(GtOption *o, const GtOption *implied_option)
{
  GtArray *option_array;
  gt_assert(o && implied_option);
  if (!o->implications)
    o->implications = gt_array_new(sizeof (GtArray*));
  option_array = gt_array_new(sizeof (GtOption*));
  gt_array_add(option_array, implied_option);
  gt_array_add(o->implications, option_array);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x145ae
cmpq $0x0, 0x8(%rsp)
jne 0x145e6
movq 0x19fa23(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149aa7(%rip), %rsi    # 0x15e066
leaq 0x14ace8(%rip), %rdx    # 0x15f2ae
leaq 0x14acf5(%rip), %rcx    # 0x15f2c2
leaq 0x14a286(%rip), %r8     # 0x15e85a
movl $0x772, %r9d            # imm = 0x772
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x145e8
movq 0x10(%rsp), %rax
cmpq $0x0, 0x50(%rax)
jne 0x1460a
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x50(%rax)
movl $0x8, %edi
callq 0x75ab0
movq %rax, (%rsp)
movq (%rsp), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x10(%rsp), %rax
movq 0x50(%rax), %rdi
movq %rsp, %rsi
movl $0x8, %edx
callq 0x76220
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_imply_either_2
void gt_option_imply_either_2(GtOption *o, const GtOption *io1,
                              const GtOption *io2)
{
  GtArray *option_array;
  gt_assert(o && io1 && io2);
  if (!o->implications)
    o->implications = gt_array_new(sizeof (GtArray*));
  option_array = gt_array_new(sizeof (GtOption*));
  gt_array_add(option_array, io1);
  gt_array_add(option_array, io2);
  gt_array_add(o->implications, option_array);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1467b
cmpq $0x0, 0x18(%rsp)
je 0x1467b
cmpq $0x0, 0x10(%rsp)
jne 0x146b3
movq 0x19f956(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1499da(%rip), %rsi    # 0x15e066
leaq 0x14ac3f(%rip), %rdx    # 0x15f2d2
leaq 0x14ac48(%rip), %rcx    # 0x15f2e2
leaq 0x14a1b9(%rip), %r8     # 0x15e85a
movl $0x77e, %r9d            # imm = 0x77E
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x146b5
movq 0x20(%rsp), %rax
cmpq $0x0, 0x50(%rax)
jne 0x146d7
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x50(%rax)
movl $0x8, %edi
callq 0x75ab0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_imply_either_3
void gt_option_imply_either_3(GtOption *o, const GtOption *io1,
                              const GtOption *io2, const GtOption *io3)
{
  GtArray *option_array;
  gt_assert(o && io1 && io2);
  if (!o->implications)
    o->implications = gt_array_new(sizeof (GtArray*));
  option_array = gt_array_new(sizeof (GtOption*));
  gt_array_add(option_array, io1);
  gt_array_add(option_array, io2);
  gt_array_add(option_array, io3);
  gt_array_add(o->implications, option_array);
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x14760
cmpq $0x0, 0x18(%rsp)
je 0x14760
cmpq $0x0, 0x10(%rsp)
jne 0x14798
movq 0x19f871(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1498f5(%rip), %rsi    # 0x15e066
leaq 0x14ab5a(%rip), %rdx    # 0x15f2d2
leaq 0x14ab7c(%rip), %rcx    # 0x15f2fb
leaq 0x14a0d4(%rip), %r8     # 0x15e85a
movl $0x78b, %r9d            # imm = 0x78B
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x1479a
movq 0x20(%rsp), %rax
cmpq $0x0, 0x50(%rax)
jne 0x147bc
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x20(%rsp), %rax
movq %rcx, 0x50(%rax)
movl $0x8, %edi
callq 0x75ab0
movq %rax, (%rsp)
movq (%rsp), %rdi
leaq 0x18(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq (%rsp), %rdi
leaq 0x10(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq (%rsp), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x20(%rsp), %rax
movq 0x50(%rax), %rdi
movq %rsp, %rsi
movl $0x8, %edx
callq 0x76220
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_exclude
void gt_option_exclude(GtOption *o_a, GtOption *o_b)
{
  gt_assert(o_a && o_b);
  if (!o_a->exclusions)
    o_a->exclusions = gt_array_new(sizeof (GtOption*));
  if (!o_b->exclusions)
    o_b->exclusions = gt_array_new(sizeof (GtOption*));
  gt_array_add(o_a->exclusions, o_b);
  gt_array_add(o_b->exclusions, o_a);
}

// Assembly:
subq $0x18, %rsp
movq %rdi, 0x10(%rsp)
movq %rsi, 0x8(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0x1483e
cmpq $0x0, 0x8(%rsp)
jne 0x14876
movq 0x19f793(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149817(%rip), %rsi    # 0x15e066
leaq 0x14aabe(%rip), %rdx    # 0x15f314
leaq 0x14aac2(%rip), %rcx    # 0x15f31f
leaq 0x149ff6(%rip), %r8     # 0x15e85a
movl $0x797, %r9d            # imm = 0x797
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14878
movq 0x10(%rsp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x1489a
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x58(%rax)
movq 0x8(%rsp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x148bc
movl $0x8, %edi
callq 0x75ab0
movq %rax, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x58(%rax)
movq 0x10(%rsp), %rax
movq 0x58(%rax), %rdi
leaq 0x8(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
movq 0x8(%rsp), %rax
movq 0x58(%rax), %rdi
leaq 0x10(%rsp), %rsi
movl $0x8, %edx
callq 0x76220
addq $0x18, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_parse_spacespec
int gt_option_parse_spacespec(GtUword *maximumspace,
                              const char *optname,
                              const GtStr *memlimit,
                              GtError *err)
{
  int had_err = 0;
  bool match = false;

  had_err = gt_grep(&match, "^[0-9]+(MB|GB)$", gt_str_get(memlimit), err);
  if (had_err || !match)
  {
    gt_error_set(err,"option -%s must have one positive "
                     "integer argument followed by one of "
                     "the keywords MB and GB",optname);
    had_err = -1;
  }
  if (!had_err)
  {
    int readint;
    char buffer[2+1];

    (void) sscanf(gt_str_get(memlimit), "%d%s", &readint, buffer);
    *maximumspace = (GtUword) readint;
    if (strcmp(buffer, "GB") == 0)
    {
      if (sizeof (GtUword) == (size_t) 4 && *maximumspace > 3UL)
      {
        gt_error_set(err,"option -%s: for 32bit binaries one cannot "
                         "specify more than 3 GB as maximum space",optname);
        had_err = -1;
      }
      if (had_err != 1)
      {
        *maximumspace <<= 30;
      }
    } else
    {
      if (strcmp(buffer, "MB") == 0)
      {
        if (sizeof (GtUword) == (size_t) 4 && *maximumspace > 4095UL)
        {
          gt_error_set(err,"option -%s: for 32bit binaries one cannot "
                           "specify more than 4095 MB as maximum space",
                           optname);
          had_err = -1;
        }
        if (!had_err)
        {
          *maximumspace <<= 20;
        }
      }
    }
  }
  return had_err;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq %rsi, 0x28(%rsp)
movq %rdx, 0x20(%rsp)
movq %rcx, 0x18(%rsp)
movl $0x0, 0x14(%rsp)
movb $0x0, 0x13(%rsp)
movq 0x20(%rsp), %rdi
callq 0x19940
movq %rax, %rdx
movq 0x18(%rsp), %rcx
leaq 0x13(%rsp), %rdi
leaq 0x14a935(%rip), %rsi    # 0x15f378
callq 0x855f0
movl %eax, 0x14(%rsp)
cmpl $0x0, 0x14(%rsp)
jne 0x14a5a
testb $0x1, 0x13(%rsp)
jne 0x14a7a
movq 0x18(%rsp), %rdi
movq 0x28(%rsp), %rdx
leaq 0x14a91d(%rip), %rsi    # 0x15f388
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x14(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x14(%rsp)
jne 0x14b17
movq 0x20(%rsp), %rdi
callq 0x19940
movq %rax, %rdi
leaq 0x9(%rsp), %rcx
leaq 0x14a947(%rip), %rsi    # 0x15f3e5
leaq 0xc(%rsp), %rdx
movb $0x0, %al
callq 0xb660
movslq 0xc(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
leaq 0x9(%rsp), %rdi
leaq 0x14a91f(%rip), %rsi    # 0x15f3e2
callq 0xb850
cmpl $0x0, %eax
jne 0x14ae5
cmpl $0x1, 0x14(%rsp)
je 0x14ae3
movq 0x30(%rsp), %rax
movq (%rax), %rcx
shlq $0x1e, %rcx
movq %rcx, (%rax)
jmp 0x14b15
leaq 0x9(%rsp), %rdi
leaq 0x14a8f9(%rip), %rsi    # 0x15f3ea
callq 0xb850
cmpl $0x0, %eax
jne 0x14b13
cmpl $0x0, 0x14(%rsp)
jne 0x14b11
movq 0x30(%rsp), %rax
movq (%rax), %rcx
shlq $0x14, %rcx
movq %rcx, (%rax)
jmp 0x14b13
jmp 0x14b15
jmp 0x14b17
movl 0x14(%rsp), %eax
addq $0x38, %rsp
retq
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_reset
static void gt_option_reset(GtOption *option)
{
  gt_assert(option);
  if (option->option_type == OPTION_BOOL) {
    *(bool*) option->value = option->default_value.b;
  }
  else if (option->option_type == OPTION_CHOICE
             || option->option_type == OPTION_STRING) {
    gt_str_set((GtStr*) option->value, option->default_value.s);
  }
  else if (option->option_type == OPTION_DOUBLE) {
    *(double*) option->value = option->default_value.d;
  }
  else if (option->option_type == OPTION_INT) {
    *(int*) option->value = option->default_value.i;
  }
  else if (option->option_type == OPTION_UINT) {
    *(unsigned int*) option->value = option->default_value.ui;
  }
  else if (option->option_type == OPTION_LONG) {
    *(GtWord*) option->value = option->default_value.l;
  }
  else if (option->option_type == OPTION_ULONG) {
    *(GtUword*) option->value = option->default_value.ul;
  }
  else if (option->option_type == OPTION_RANGE) {
   *(GtRange*) option->value = option->default_value.r;
  }
}

// Assembly:
pushq %rax
movq %rdi, (%rsp)
cmpq $0x0, (%rsp)
jne 0x14c54
movq 0x19f3b5(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x149439(%rip), %rsi    # 0x15e066
leaq 0x156f8b(%rip), %rdx    # 0x16bbbf
leaq 0x14a813(%rip), %rcx    # 0x15f44e
leaq 0x149c18(%rip), %r8     # 0x15e85a
movl $0xb7, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14c56
movq (%rsp), %rax
cmpl $0x0, (%rax)
jne 0x14c78
movq (%rsp), %rax
movb 0x20(%rax), %cl
movq (%rsp), %rax
movq 0x18(%rax), %rax
andb $0x1, %cl
movb %cl, (%rax)
jmp 0x14d70
movq (%rsp), %rax
cmpl $0x1, (%rax)
je 0x14c8a
movq (%rsp), %rax
cmpl $0xc, (%rax)
jne 0x14ca4
movq (%rsp), %rax
movq 0x18(%rax), %rdi
movq (%rsp), %rax
movq 0x20(%rax), %rsi
callq 0x190b0
jmp 0x14d6e
movq (%rsp), %rax
cmpl $0x2, (%rax)
jne 0x14cc7
movq (%rsp), %rax
movsd 0x20(%rax), %xmm0
movq (%rsp), %rax
movq 0x18(%rax), %rax
movsd %xmm0, (%rax)
jmp 0x14d6c
movq (%rsp), %rax
cmpl $0x7, (%rax)
jne 0x14ce6
movq (%rsp), %rax
movl 0x20(%rax), %ecx
movq (%rsp), %rax
movq 0x18(%rax), %rax
movl %ecx, (%rax)
jmp 0x14d6a
movq (%rsp), %rax
cmpl $0x8, (%rax)
jne 0x14d02
movq (%rsp), %rax
movl 0x20(%rax), %ecx
movq (%rsp), %rax
movq 0x18(%rax), %rax
movl %ecx, (%rax)
jmp 0x14d68
movq (%rsp), %rax
cmpl $0x9, (%rax)
jne 0x14d20
movq (%rsp), %rax
movq 0x20(%rax), %rcx
movq (%rsp), %rax
movq 0x18(%rax), %rax
movq %rcx, (%rax)
jmp 0x14d66
movq (%rsp), %rax
cmpl $0xa, (%rax)
jne 0x14d3e
movq (%rsp), %rax
movq 0x20(%rax), %rcx
movq (%rsp), %rax
movq 0x18(%rax), %rax
movq %rcx, (%rax)
jmp 0x14d64
movq (%rsp), %rax
cmpl $0xb, (%rax)
jne 0x14d62
movq (%rsp), %rax
movq 0x18(%rax), %rax
movq (%rsp), %rcx
movq 0x20(%rcx), %rdx
movq %rdx, (%rax)
movq 0x28(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x14d64
jmp 0x14d66
jmp 0x14d68
jmp 0x14d6a
jmp 0x14d6c
jmp 0x14d6e
jmp 0x14d70
popq %rax
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: has_extended_option
static bool has_extended_option(GtArray *options)
{
  GtUword i;
  GtOption *option;
  gt_assert(options);
  for (i = 0; i < gt_array_size(options); i++) {
    option = *(GtOption**) gt_array_get(options, i);
    if (option->is_extended_option)
      return true;
  }
  return false;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
cmpq $0x0, 0x18(%rsp)
jne 0x14dc9
movq 0x19f240(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1492c4(%rip), %rsi    # 0x15e066
leaq 0x172680(%rip), %rdx    # 0x187429
leaq 0x14a6c1(%rip), %rcx    # 0x15f471
leaq 0x149aa3(%rip), %r8     # 0x15e85a
movl $0x1fb, %r9d            # imm = 0x1FB
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x14dcb
movq $0x0, 0x10(%rsp)
movq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq 0x18(%rsp), %rdi
callq 0x76490
movq %rax, %rcx
movq (%rsp), %rax
cmpq %rcx, %rax
jae 0x14e2e
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0x75c80
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
testb $0x1, 0x4d(%rax)
je 0x14e1c
movb $0x1, 0x27(%rsp)
jmp 0x14e33
jmp 0x14e1e
movq 0x10(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x10(%rsp)
jmp 0x14dd4
movb $0x0, 0x27(%rsp)
movb 0x27(%rsp), %al
andb $0x1, %al
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_help
static GtOption* gt_option_new_help(bool has_extended_options)
{
  GtOption *o;
  if (has_extended_options)
    o = gt_option_new("help", "display help for basic options and exit", NULL);
  else
    o = gt_option_new("help", "display help and exit", NULL);
  o->option_type = OPTION_HELP;
  o->default_value.b = false;
  return o;
}

// Assembly:
subq $0x18, %rsp
movb %dil, %al
andb $0x1, %al
movb %al, 0x17(%rsp)
testb $0x1, 0x17(%rsp)
je 0x14e72
leaq 0x14a7a4(%rip), %rdi    # 0x15f5ff
leaq 0x14a623(%rip), %rsi    # 0x15f485
xorl %eax, %eax
movl %eax, %edx
callq 0x13540
movq %rax, 0x8(%rsp)
jmp 0x14e8e
leaq 0x14a786(%rip), %rdi    # 0x15f5ff
leaq 0x14a62d(%rip), %rsi    # 0x15f4ad
xorl %eax, %eax
movl %eax, %edx
callq 0x13540
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rax
movl $0x4, (%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0x20(%rax)
movq 0x8(%rsp), %rax
addq $0x18, %rsp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_helpplus
static GtOption* gt_option_new_helpplus(void)
{
  GtOption *o = gt_option_new("help+", "display help for all options and exit",
                              NULL);
  o->option_type = OPTION_HELPPLUS;
  o->default_value.b = false;
  return o;
}

// Assembly:
pushq %rax
leaq 0x14a60b(%rip), %rdi    # 0x15f4c3
leaq 0x14a60a(%rip), %rsi    # 0x15f4c9
xorl %eax, %eax
movl %eax, %edx
callq 0x13540
movq %rax, (%rsp)
movq (%rsp), %rax
movl $0x5, (%rax)
movq (%rsp), %rax
movb $0x0, 0x20(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: gt_option_new_helpdev
static GtOption* gt_option_new_helpdev(void)
{
  GtOption *o = gt_option_new("helpdev", "display help for development options "
                              "and exit", NULL);
  o->option_type = OPTION_HELPDEV;
  o->default_value.b = false;
  o->is_development_option = true;
  return o;
}

// Assembly:
pushq %rax
leaq 0x14a5f7(%rip), %rdi    # 0x15f4ef
leaq 0x14a5f8(%rip), %rsi    # 0x15f4f7
xorl %eax, %eax
movl %eax, %edx
callq 0x13540
movq %rax, (%rsp)
movq (%rsp), %rax
movl $0x6, (%rax)
movq (%rsp), %rax
movb $0x0, 0x20(%rax)
movq (%rsp), %rax
movb $0x1, 0x4e(%rax)
movq (%rsp), %rax
popq %rcx
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_int
int gt_parse_int(int *out, const char *nptr)
{
  long lval;
  char *ep;
  gt_assert(out && nptr);
  errno = 0;
  lval = strtol(nptr, &ep, 10);
  if (nptr[0] == '\0' || *ep != '\0')
    return -1;
  if ((errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN)) ||
      (lval > INT_MAX || lval < INT_MIN)) {
    return -1;
  }
  *out = lval;
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x1523e
cmpq $0x0, 0x10(%rsp)
jne 0x15276
movq 0x19ed93(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148e17(%rip), %rsi    # 0x15e066
leaq 0x14a7c2(%rip), %rdx    # 0x15fa18
leaq 0x14a7c7(%rip), %rcx    # 0x15fa24
leaq 0x14a7cd(%rip), %r8     # 0x15fa31
movl $0x20, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15278
callq 0xb060
movl $0x0, (%rax)
movq 0x10(%rsp), %rdi
movq %rsp, %rsi
movl $0xa, %edx
callq 0xb860
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x152b3
movq (%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x152bd
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1531f
callq 0xb060
cmpl $0x22, (%rax)
jne 0x152e9
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, 0x8(%rsp)
je 0x152ff
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
cmpq %rax, 0x8(%rsp)
je 0x152ff
cmpq $0x7fffffff, 0x8(%rsp)  # imm = 0x7FFFFFFF
jg 0x152ff
cmpq $-0x80000000, 0x8(%rsp) # imm = 0x80000000
jge 0x15309
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1531f
movq 0x8(%rsp), %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_uint
int gt_parse_uint(unsigned int *out, const char *nptr)
{
  GtUword ulval;
  char *ep;
  gt_assert(out && nptr);
  errno = 0;
  ulval = strtoul(nptr, &ep, 10);
  if (nptr[0] == '\0' || *ep != '\0')
    return -1;
  if ((errno == ERANGE && ulval == ULONG_MAX) || (ulval > UINT_MAX)) {
    return -1;
  }
  *out = ulval;
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x1534e
cmpq $0x0, 0x10(%rsp)
jne 0x15386
movq 0x19ec83(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148d07(%rip), %rsi    # 0x15e066
leaq 0x14a6b2(%rip), %rdx    # 0x15fa18
leaq 0x14a6da(%rip), %rcx    # 0x15fa47
leaq 0x14a6bd(%rip), %r8     # 0x15fa31
movl $0x31, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15388
callq 0xb060
movl $0x0, (%rax)
movq 0x10(%rsp), %rdi
movq %rsp, %rsi
movl $0xa, %edx
callq 0xb1a0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x153c3
movq (%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x153cd
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1540b
callq 0xb060
cmpl $0x22, (%rax)
jne 0x153df
cmpq $-0x1, 0x8(%rsp)
je 0x153eb
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %rax, 0x8(%rsp)
jbe 0x153f5
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1540b
movq 0x8(%rsp), %rax
movl %eax, %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_word
int gt_parse_word(GtWord *out, const char *nptr)
{
  long lval;
  char *ep;
  gt_assert(out && nptr);
  errno = 0;
  lval = strtol(nptr, &ep, 10);
  if (nptr[0] == '\0' || *ep != '\0')
    return -1;
  if (errno == ERANGE && (lval == LONG_MAX || lval == LONG_MIN))
    return -1;
  *out = lval;
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x1546e
cmpq $0x0, 0x10(%rsp)
jne 0x154a6
movq 0x19eb63(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148be7(%rip), %rsi    # 0x15e066
leaq 0x14a592(%rip), %rdx    # 0x15fa18
leaq 0x14a5c8(%rip), %rcx    # 0x15fa55
leaq 0x14a59d(%rip), %r8     # 0x15fa31
movl $0x46, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x154a8
callq 0xb060
movl $0x0, (%rax)
movq 0x10(%rsp), %rdi
movq %rsp, %rsi
movl $0xa, %edx
callq 0xb860
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x154e3
movq (%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x154ed
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x15538
callq 0xb060
cmpl $0x22, (%rax)
jne 0x15523
movabsq $0x7fffffffffffffff, %rax # imm = 0x7FFFFFFFFFFFFFFF
cmpq %rax, 0x8(%rsp)
je 0x15519
movabsq $-0x8000000000000000, %rax # imm = 0x8000000000000000
cmpq %rax, 0x8(%rsp)
jne 0x15523
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x15538
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_uword
int gt_parse_uword(GtUword *out, const char *nptr)
{
  GtUword ulval;
  char *ep;
  gt_assert(out && nptr);
  errno = 0;
  ulval = strtoul(nptr, &ep, 10);
  if (nptr[0] == '\0' || *ep != '\0')
    return -1;
  if (errno == ERANGE && ulval == ULONG_MAX)
    return -1;
  *out = ulval;
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x1559e
cmpq $0x0, 0x10(%rsp)
jne 0x155d6
movq 0x19ea33(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148ab7(%rip), %rsi    # 0x15e066
leaq 0x14a462(%rip), %rdx    # 0x15fa18
leaq 0x14a4a6(%rip), %rcx    # 0x15fa63
leaq 0x14a46d(%rip), %r8     # 0x15fa31
movl $0x5a, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x155d8
callq 0xb060
movl $0x0, (%rax)
movq 0x10(%rsp), %rdi
movq %rsp, %rsi
movl $0xa, %edx
callq 0xb1a0
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x15613
movq (%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x1561d
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1564e
callq 0xb060
cmpl $0x22, (%rax)
jne 0x15639
cmpq $-0x1, 0x8(%rsp)
jne 0x15639
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x1564e
movq 0x8(%rsp), %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_double
int gt_parse_double(double *out, const char *nptr)
{
  double dval;
  char *ep;
  gt_assert(out && nptr);
  errno = 0;
  dval = strtod(nptr, &ep);
  if (nptr[0] == '\0' || *ep != '\0')
    return -1;
  if (errno == ERANGE && (dval == 0 || dval == HUGE_VAL || dval == -HUGE_VAL))
    return -1;
  *out = dval;
  return 0;
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x1567e
cmpq $0x0, 0x10(%rsp)
jne 0x156b6
movq 0x19e953(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1489d7(%rip), %rsi    # 0x15e066
leaq 0x14a382(%rip), %rdx    # 0x15fa18
leaq 0x14a3d5(%rip), %rcx    # 0x15fa72
leaq 0x14a38d(%rip), %r8     # 0x15fa31
movl $0x69, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x156b8
callq 0xb060
movl $0x0, (%rax)
movq 0x10(%rsp), %rdi
movq %rsp, %rsi
callq 0xb470
movsd %xmm0, 0x8(%rsp)
movq 0x10(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x156ef
movq (%rsp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x156f9
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x15765
callq 0xb060
cmpl $0x22, (%rax)
jne 0x1574e
movsd 0x8(%rsp), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x15716
jp 0x15716
jmp 0x15744
movsd 0x8(%rsp), %xmm0
movsd 0x14a2e4(%rip), %xmm1   # 0x15fa08
ucomisd %xmm1, %xmm0
jne 0x1572e
jp 0x1572e
jmp 0x15744
movsd 0x8(%rsp), %xmm0
movsd 0x14a2d4(%rip), %xmm1   # 0x15fa10
ucomisd %xmm1, %xmm0
jne 0x1574e
jp 0x1574e
movl $0xffffffff, 0x24(%rsp) # imm = 0xFFFFFFFF
jmp 0x15765
movsd 0x8(%rsp), %xmm0
movq 0x18(%rsp), %rax
movsd %xmm0, (%rax)
movl $0x0, 0x24(%rsp)
movl 0x24(%rsp), %eax
addq $0x28, %rsp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_score
int gt_parse_score(bool *score_is_defined, float *score_value,
                   const char *score, unsigned int line_number,
                   const char *filename, GtError *err)
{
  gt_assert(score && filename);
  gt_error_check(err);

  if (strlen(score) == 1 && score[0] == '.')
    *score_is_defined = false;
  else if (sscanf(score, "%f", score_value) != 1) {
    gt_error_set(err, "could not parse score '%s' on line %u in file '%s'",
                 score, line_number, filename);
    return -1;
  }
  else
    *score_is_defined = true;

  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq %rdx, 0x18(%rsp)
movl %ecx, 0x14(%rsp)
movq %r8, 0x8(%rsp)
movq %r9, (%rsp)
cmpq $0x0, 0x18(%rsp)
je 0x15d80
cmpq $0x0, 0x8(%rsp)
jne 0x15db8
movq 0x19e251(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x1482d5(%rip), %rsi    # 0x15e066
leaq 0x149cea(%rip), %rdx    # 0x15fa82
leaq 0x149cf5(%rip), %rcx    # 0x15fa94
leaq 0x149c8b(%rip), %r8     # 0x15fa31
movl $0xf4, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15dba
jmp 0x15dbc
cmpq $0x0, (%rsp)
je 0x15e0a
movq (%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x15dd2
jmp 0x15e0a
movq 0x19e1ff(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148283(%rip), %rsi    # 0x15e066
leaq 0x14885e(%rip), %rdx    # 0x15e648
leaq 0x149ca3(%rip), %rcx    # 0x15fa94
leaq 0x149c39(%rip), %r8     # 0x15fa31
movl $0xf5, %r9d
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15e0c
movq 0x18(%rsp), %rdi
callq 0xb240
cmpq $0x1, %rax
jne 0x15e33
movq 0x18(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
jne 0x15e33
movq 0x28(%rsp), %rax
movb $0x0, (%rax)
jmp 0x15e84
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rdx
leaq 0x148f92(%rip), %rsi    # 0x15edd6
movb $0x0, %al
callq 0xb660
cmpl $0x1, %eax
je 0x15e7a
movq (%rsp), %rdi
movq 0x18(%rsp), %rdx
movl 0x14(%rsp), %ecx
movq 0x8(%rsp), %r8
leaq 0x149c3a(%rip), %rsi    # 0x15faa3
movb $0x0, %al
callq 0xc0d0
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x15e8c
movq 0x28(%rsp), %rax
movb $0x1, (%rax)
jmp 0x15e84
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_strand
int gt_parse_strand(GtStrand *gt_strand_value, const char *strand,
                    unsigned int line_number, const char *filename,
                    GtError *err)
{
  gt_assert(strand && filename);
  gt_error_check(err);

  if (strlen(strand) != 1) {
    gt_error_set(err, "strand '%s' not one character long on line %u in file "
              "'%s'", strand, line_number, filename);
    *gt_strand_value = GT_STRAND_UNKNOWN;
    return -1;
  }
  if (strspn(strand, GT_STRAND_CHARS) != 1) {
    gt_error_set(err, "strand '%s' on line %u in file '%s' not a valid "
                 "character from the set '%s'", strand, line_number, filename,
                 GT_STRAND_CHARS);
    *gt_strand_value = GT_STRAND_UNKNOWN;
    return -1;
  }
  *gt_strand_value = gt_strand_get(strand[0]);
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movl %edx, 0x1c(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x15ecc
cmpq $0x0, 0x10(%rsp)
jne 0x15f04
movq 0x19e105(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148189(%rip), %rsi    # 0x15e066
leaq 0x149bf2(%rip), %rdx    # 0x15fad6
leaq 0x149bfe(%rip), %rcx    # 0x15fae9
leaq 0x149b3f(%rip), %r8     # 0x15fa31
movl $0x108, %r9d            # imm = 0x108
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15f06
jmp 0x15f08
cmpq $0x0, 0x8(%rsp)
je 0x15f58
movq 0x8(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x15f20
jmp 0x15f58
movq 0x19e0b1(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148135(%rip), %rsi    # 0x15e066
leaq 0x148710(%rip), %rdx    # 0x15e648
leaq 0x149baa(%rip), %rcx    # 0x15fae9
leaq 0x149aeb(%rip), %r8     # 0x15fa31
movl $0x109, %r9d            # imm = 0x109
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x15f5a
movq 0x20(%rsp), %rdi
callq 0xb240
cmpq $0x1, %rax
je 0x15fa0
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl 0x1c(%rsp), %ecx
movq 0x10(%rsp), %r8
leaq 0x149b75(%rip), %rsi    # 0x15faf9
movb $0x0, %al
callq 0xc0d0
movq 0x28(%rsp), %rax
movl $0x3, (%rax)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x16012
movq 0x20(%rsp), %rdi
leaq 0x149b88(%rip), %rsi    # 0x15fb34
callq 0xb230
cmpq $0x1, %rax
je 0x15ff4
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl 0x1c(%rsp), %ecx
movq 0x10(%rsp), %r8
leaq 0x149b68(%rip), %rsi    # 0x15fb39
leaq 0x149b5c(%rip), %r9     # 0x15fb34
movb $0x0, %al
callq 0xc0d0
movq 0x28(%rsp), %rax
movl $0x3, (%rax)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x16012
movq 0x20(%rsp), %rax
movsbl (%rax), %edi
callq 0x1b830
movl %eax, %ecx
movq 0x28(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/parseutils.c
// Function: gt_parse_phase
int gt_parse_phase(GtPhase *phase_value, const char *phase,
                   unsigned int line_number, const char *filename, GtError *err)
{
  gt_assert(phase && filename);
  gt_error_check(err);

  if (strlen(phase) != 1) {
    gt_error_set(err, "phase '%s' not one character long on line %u in file "
                 "'%s'", phase, line_number, filename);
    *phase_value = GT_PHASE_UNDEFINED;
    return -1;
  }
  if (strspn(phase, GT_PHASE_CHARS) != 1) {
    gt_error_set(err, "phase '%s' on line %u in file '%s' not a valid "
                "character from the set '%s'", phase, line_number, filename,
                GT_PHASE_CHARS);
    *phase_value = GT_PHASE_UNDEFINED;
    return -1;
  }
  *phase_value = gt_phase_get(phase[0]);
  return 0;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movl %edx, 0x1c(%rsp)
movq %rcx, 0x10(%rsp)
movq %r8, 0x8(%rsp)
cmpq $0x0, 0x20(%rsp)
je 0x1604c
cmpq $0x0, 0x10(%rsp)
jne 0x16084
movq 0x19df85(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x148009(%rip), %rsi    # 0x15e066
leaq 0x149b21(%rip), %rdx    # 0x15fb85
leaq 0x149b2c(%rip), %rcx    # 0x15fb97
leaq 0x1499bf(%rip), %r8     # 0x15fa31
movl $0x11f, %r9d            # imm = 0x11F
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x16086
jmp 0x16088
cmpq $0x0, 0x8(%rsp)
je 0x160d8
movq 0x8(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x160a0
jmp 0x160d8
movq 0x19df31(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x147fb5(%rip), %rsi    # 0x15e066
leaq 0x148590(%rip), %rdx    # 0x15e648
leaq 0x149ad8(%rip), %rcx    # 0x15fb97
leaq 0x14996b(%rip), %r8     # 0x15fa31
movl $0x120, %r9d            # imm = 0x120
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x160da
movq 0x20(%rsp), %rdi
callq 0xb240
cmpq $0x1, %rax
je 0x16120
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl 0x1c(%rsp), %ecx
movq 0x10(%rsp), %r8
leaq 0x149aa2(%rip), %rsi    # 0x15fba6
movb $0x0, %al
callq 0xc0d0
movq 0x28(%rsp), %rax
movl $0x3, (%rax)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x16192
movq 0x20(%rsp), %rdi
leaq 0x149ab4(%rip), %rsi    # 0x15fbe0
callq 0xb230
cmpq $0x1, %rax
je 0x16174
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rdx
movl 0x1c(%rsp), %ecx
movq 0x10(%rsp), %r8
leaq 0x149a94(%rip), %rsi    # 0x15fbe5
leaq 0x149a88(%rip), %r9     # 0x15fbe0
movb $0x0, %al
callq 0xc0d0
movq 0x28(%rsp), %rax
movl $0x3, (%rax)
movl $0xffffffff, 0x34(%rsp) # imm = 0xFFFFFFFF
jmp 0x16192
movq 0x20(%rsp), %rax
movsbl (%rax), %edi
callq 0x165f0
movl %eax, %ecx
movq 0x28(%rsp), %rax
movl %ecx, (%rax)
movl $0x0, 0x34(%rsp)
movl 0x34(%rsp), %eax
addq $0x38, %rsp
retq
nopl (%rax,%rax)