// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/gtr.c
// Function: gtr_option_parser_new
static GtOptionParser* gtr_option_parser_new(GtR *gtr)
{
  GtOptionParser *op;
  GtOption *o, *only_option, *debug_option, *debugfp_option;
  gt_assert(gtr);
  op = gt_option_parser_new("[option ...] [tool | script] [argument ...]",
                            "The GenomeTools genome analysis system.");
  gt_option_parser_set_comment_func(op, show_gtr_help, gtr->tools);
  o = gt_option_new_bool("i",
                         "enter interactive mode after executing 'tool' or "
                         "'script'", &gtr->interactive, false);
  gt_option_hide_default(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_bool("q", "suppress warnings", &gtr->quiet, false);
  gt_option_hide_default(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_uint_min("j", "set number of parallel threads used at once",
                             &gt_jobs, 1, 1);
  gt_option_is_development_option(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_bool("test", "perform unit tests and exit", &gtr->test,
                         false);
  gt_option_hide_default(o);
  gt_option_parser_add_option(op, o);
  only_option = gt_option_new_string("only", "perform single unit test "
                                     "(requires -test)", gtr->test_only, "");
  gt_option_imply(only_option, o);
  gt_option_is_development_option(only_option);
  gt_option_hide_default(only_option);
  gt_option_parser_add_option(op, only_option);
  debug_option = gt_option_new_debug(&gtr->debug);
  gt_option_parser_add_option(op, debug_option);
  debugfp_option = gt_option_new_string("debugfp",
                                     "set file pointer for debugging output\n"
                                     "use ``stdout'' for standard output\n"
                                     "use ``stderr'' for standard error\n"
                                     "or any other string to use the "
                                     "corresponding file (will be overwritten "
                                     "without warning!)", gtr->debugfp,
                                     "stderr");
  gt_option_is_development_option(debugfp_option);
  gt_option_parser_add_option(op, debugfp_option);
  gt_option_imply(debugfp_option, debug_option);
  o = gt_option_new_uint("seed",
                         "set seed for random number generator manually.\n"
                         "0 generates a seed from current time and process id",
                         &gtr->seed, gtr->seed);
  gt_option_hide_default(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_bool("64bit", "exit with code 0 if this is a 64bit binary, "
                         "with 1 otherwise", &gtr->check64bit, false);
  gt_option_is_development_option(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_bool("list", "list all tools and exit", &gtr->list, false);
  gt_option_is_development_option(o);
  gt_option_hide_default(o);
  gt_option_parser_add_option(op, o);
  o = gt_option_new_filename("testspacepeak", "alloc 64 MB and mmap the given "
                             "file", gtr->testspacepeak);
  gt_option_is_development_option(o);
  gt_option_parser_add_option(op, o);

  o = gt_option_new_string("createman", "create man page sources in directory",
                           gtr->manoutdir, "");
  gt_option_is_development_option(o);
  gt_option_parser_add_option(op, o);
  return op;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x1a749
movq 0x621888(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4fb8f1(%rip), %rsi    # 0x516013
leaq 0x4fbabe(%rip), %rdx    # 0x5161e7
leaq 0x4fbbc7(%rip), %rcx    # 0x5162f7
leaq 0x4fba0e(%rip), %r8     # 0x516145
movl $0xa9, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x1a74b
leaq 0x4fbbbb(%rip), %rdi    # 0x51630d
leaq 0x4fbbe0(%rip), %rsi    # 0x516339
callq 0xf1420
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rax
movq 0x20(%rax), %rdx
leaq 0x14a8(%rip), %rsi      # 0x1bc20
callq 0xf1770
movq 0x30(%rsp), %rdx
addq $0x1, %rdx
leaq 0x525e0e(%rip), %rdi    # 0x54059b
leaq 0x4fbbcd(%rip), %rsi    # 0x516361
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rdx
addq $0x2, %rdx
leaq 0x53e5f6(%rip), %rdi    # 0x558dbf
leaq 0x4fbbcb(%rip), %rsi    # 0x51639b
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
leaq 0x516d90(%rip), %rdi    # 0x53158c
leaq 0x4fbbaa(%rip), %rsi    # 0x5163ad
leaq 0x622b6e(%rip), %rdx    # 0x63d378
movl $0x1, %r8d
movl %r8d, %ecx
callq 0xf6510
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7040
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rdx
leaq 0x4fe1e9(%rip), %rdi    # 0x518a2b
leaq 0x4fbb90(%rip), %rsi    # 0x5163d9
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rax
movq 0x38(%rax), %rdx
leaq 0x51148d(%rip), %rdi    # 0x52bd0b
leaq 0x4fbb70(%rip), %rsi    # 0x5163f5
leaq 0x582d9c(%rip), %rcx    # 0x59d628
callq 0xf69f0
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7090
movq 0x18(%rsp), %rdi
callq 0xf7040
movq 0x18(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rdi
addq $0x3, %rdi
callq 0xf5ee0
movq %rax, 0x10(%rsp)
movq 0x28(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rax
movq 0x10(%rax), %rdx
leaq 0x4fbb25(%rip), %rdi    # 0x51641f
leaq 0x4fbb26(%rip), %rsi    # 0x516427
leaq 0x4fbbe3(%rip), %rcx    # 0x5164eb
callq 0xf69f0
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xf7040
movq 0x28(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x30(%rsp), %rdx
addq $0x8, %rdx
movq 0x30(%rsp), %rax
movl 0x8(%rax), %ecx
leaq 0x50bdae(%rip), %rdi    # 0x526700
leaq 0x4fbb99(%rip), %rsi    # 0x5164f2
callq 0xf64b0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rdx
addq $0x5, %rdx
leaq 0x51fc7a(%rip), %rdi    # 0x53a606
leaq 0x4fbbc2(%rip), %rsi    # 0x516555
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7040
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rdx
addq $0x4, %rdx
leaq 0x50a5e0(%rip), %rdi    # 0x524fa8
leaq 0x4fbbc3(%rip), %rsi    # 0x516592
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7040
movq 0x20(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rdx
leaq 0x4fbb9c(%rip), %rdi    # 0x5165aa
leaq 0x4fbba3(%rip), %rsi    # 0x5165b8
callq 0xf6aa0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7040
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x30(%rsp), %rax
movq 0x30(%rax), %rdx
leaq 0x4fbb94(%rip), %rdi    # 0x5165dc
leaq 0x4fbb97(%rip), %rsi    # 0x5165e6
leaq 0x582bd2(%rip), %rcx    # 0x59d628
callq 0xf69f0
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
callq 0xf7040
movq 0x28(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rax
addq $0x38, %rsp
retq
nopw %cs:(%rax,%rax)