// File: /workspace/github_c_makefile_star2_O3/genometools[P]genometools/src/tools/gt_sortbench.c
// Function: gt_sortbench_option_parser_new
static GtOptionParser* gt_sortbench_option_parser_new(void *tool_arguments)
{
  QSortBenchArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option;

  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...]",
                            "Benchmarks quicksort implementations.");

  option = gt_option_new_choice(
                 "impl", "implementation\nchoose from "
                 "thomas|system|inlinedptr|inlinedarr|direct|\n"
                 "dual-pivot|radixinplace|radixlsb|radixkeypair|radixflba",
                  arguments->impl,
                  gt_sort_implementation_names[0],
                  gt_sort_implementation_names);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("size", "number of integers to sort",
                               &arguments->num_values, 1000000UL);
  gt_option_parser_add_option(op, option);

  /* default set to ULONG_MAX-1 to facilitate proper testing of the
     radixsort implementations (make sure that higher order bits are set) */
  option = gt_option_new_uword("maxval", "maximal integer to sort",
                               &arguments->maxvalue, ULONG_MAX-1);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_uword("runs",
                           "run sort multiple times as specified by arguments",
                           &arguments->runs, 1UL);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("aqsort", "prepare bad input array using the "
                                        "'aqsort' anti-quicksort algorithm",
                               &arguments->use_aqsort, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("permute", "prepare bad input array by "
                                         "permutation of unique items",
                               &arguments->use_permute, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_bool("verify", "verify result by checking order of "
                                        "sorted array",
                               &arguments->verify, false);
  gt_option_parser_add_option(op, option);

  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);
  return op;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0xca87d
movq %rdi, %rbx
leaq 0x28d728(%rip), %rdi    # 0x357e62
leaq 0x290a17(%rip), %rsi    # 0x35b158
callq 0x107bfe
movq %rax, %r14
movq (%rbx), %rdx
movq 0x3ef23d(%rip), %rcx    # 0x4b9990
leaq 0x3ef236(%rip), %r8     # 0x4b9990
leaq 0x290a1d(%rip), %rdi    # 0x35b17e
leaq 0x290a1b(%rip), %rsi    # 0x35b183
callq 0x10a7ed
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x8(%rbx), %rdx
leaq 0x29913a(%rip), %rdi    # 0x3638bd
leaq 0x290a78(%rip), %rsi    # 0x35b202
movl $0xf4240, %ecx          # imm = 0xF4240
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x18(%rbx), %rdx
leaq 0x290a73(%rip), %rdi    # 0x35b21d
leaq 0x290a73(%rip), %rsi    # 0x35b224
movq $-0x2, %rcx
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x10(%rbx), %rdx
leaq 0x290a69(%rip), %rdi    # 0x35b23c
leaq 0x290a67(%rip), %rsi    # 0x35b241
movl $0x1, %ecx
callq 0x10a2ab
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x20(%rbx), %rdx
leaq 0x291109(%rip), %rdi    # 0x35b903
leaq 0x290a72(%rip), %rsi    # 0x35b273
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x21(%rbx), %rdx
leaq 0x290a99(%rip), %rdi    # 0x35b2b7
leaq 0x290a9a(%rip), %rsi    # 0x35b2bf
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
leaq 0x22(%rbx), %rdx
leaq 0x2d6679(%rip), %rdi    # 0x3a0ebb
leaq 0x290aad(%rip), %rsi    # 0x35b2f6
xorl %ecx, %ecx
callq 0x10a235
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
addq $0x23, %rbx
movq %rbx, %rdi
callq 0x10a257
movq %r14, %rdi
movq %rax, %rsi
callq 0x107cc0
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
callq 0x20695