// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/annotationsketch/gt_sketch.c
// Function: gt_sketch_option_parser_new
static GtOptionParser* gt_sketch_option_parser_new(void *tool_arguments)
{
  GtSketchArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option, *option2;
  static const char *formats[] = { "png",
#ifdef CAIRO_HAS_PDF_SURFACE
    "pdf",
#endif
#ifdef CAIRO_HAS_SVG_SURFACE
    "svg",
#endif
#ifdef CAIRO_HAS_PS_SURFACE
    "ps",
#endif
    NULL
  };
  static const char *inputs[] = {
    "gff",
    "bed",
    "gtf",
    NULL
  };
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...] image_file [GFF3_file ...]",
                            "Create graphical representation of GFF3 "
                            "annotation files.");

  /* -pipe */
  option = gt_option_new_bool("pipe", "use pipe mode (i.e., show all gff3 "
                              "features on stdout)", &arguments->pipe, false);
  gt_option_parser_add_option(op, option);

  /* -flattenfiles */
  option = gt_option_new_bool("flattenfiles", "do not group tracks by source "
                              "file name and remove file names from track "
                              "description", &arguments->flattenfiles, false);
  gt_option_parser_add_option(op, option);

  /* -seqid */
  option = gt_option_new_string("seqid", "sequence region identifier\n"
                                      "default: first one in file",
                            arguments->seqid, NULL);
  gt_option_parser_add_option(op, option);
  gt_option_hide_default(option);

  /* -start */
  option = gt_option_new_uword_min("start", "start position\n"
                                         "default: first region start",
                            &arguments->start, GT_UNDEF_UWORD, 1);
  gt_option_parser_add_option(op, option);
  gt_option_hide_default(option);

  /* -end */
  option2 = gt_option_new_uword("end", "end position\ndefault: last region end",
                            &arguments->end, GT_UNDEF_UWORD);
  gt_option_parser_add_option(op, option2);
  /* -start and -end must be given together */
  gt_option_imply(option, option2);
  gt_option_imply(option2, option);
  gt_option_hide_default(option2);

  /* -width */
  option = gt_option_new_uint_min("width", "target image width (in pixel)",
                                  &arguments->width,
                                  800, 1);
  gt_option_parser_add_option(op, option);

  /* -style */
  option = gt_option_new_string("style", "style file to use",
                                arguments->stylefile,
                                gt_str_get(arguments->stylefile));
  gt_option_parser_add_option(op, option);

  /* -format */
  option = gt_option_new_choice("format", "output graphics format\n"
                                       "choose from png"
#ifdef CAIRO_HAS_PDF_SURFACE
                                       "|pdf"
#endif
#ifdef CAIRO_HAS_SVG_SURFACE
                                       "|svg"
#endif
#ifdef CAIRO_HAS_PS_SURFACE
                                       "|ps"
#endif
                                       "",
                             arguments->format, formats[0], formats);
  gt_option_parser_add_option(op, option);

  /* -input */
  option = gt_option_new_choice("input", "input data format\n"
                                       "choose from gff|bed|gtf",
                             arguments->input, inputs[0], inputs);
  gt_option_parser_add_option(op, option);

  /* -addintrons */
  option = gt_option_new_bool("addintrons", "add intron features between "
                              "existing exon features (before drawing)",
                              &arguments->addintrons, false);
  gt_option_parser_add_option(op, option);

    /* -unsafe */
  option = gt_option_new_bool("unsafe", "enable unsafe mode for style file",
                              &arguments->unsafe, false);
  gt_option_parser_add_option(op, option);

  /* -showrecmaps */
  option = gt_option_new_bool("showrecmaps",
                              "show RecMaps after image creation",
                              &arguments->showrecmaps, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -streams */
  option = gt_option_new_bool("streams", "use streams to write data to file",
                              &arguments->use_streams, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -v */
  option = gt_option_new_verbose(&arguments->verbose);
  gt_option_parser_add_option(op, option);

  /* -force */
  option = gt_option_new_bool(GT_FORCE_OPT_CSTR, "force writing to output file",
                              &arguments->force, false);
  gt_option_parser_add_option(op, option);

  gt_option_parser_set_min_args(op, 1);

  return op;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movq 0x30(%rsp), %rax
movq %rax, 0x28(%rsp)
cmpq $0x0, 0x28(%rsp)
jne 0x326333
movq 0x315c9e(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x1efd07(%rip), %rsi    # 0x516013
leaq 0x25484c(%rip), %rdx    # 0x57ab5f
leaq 0x271ff6(%rip), %rcx    # 0x598310
leaq 0x271fce(%rip), %r8     # 0x5982ef
movl $0x6d, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x326335
leaq 0x271ff0(%rip), %rdi    # 0x59832c
leaq 0x272011(%rip), %rsi    # 0x598354
callq 0xf1420
movq %rax, 0x20(%rsp)
movq 0x28(%rsp), %rdx
leaq 0x27640f(%rip), %rdi    # 0x59c768
leaq 0x27202e(%rip), %rsi    # 0x59838e
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x4, %rdx
leaq 0x27203a(%rip), %rdi    # 0x5983c5
leaq 0x272040(%rip), %rsi    # 0x5983d2
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x20a847(%rip), %rdi    # 0x530c04
leaq 0x272063(%rip), %rsi    # 0x598427
xorl %eax, %eax
movl %eax, %ecx
callq 0xf69f0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdx
addq $0x28, %rdx
leaq 0x24e356(%rip), %rdi    # 0x574751
leaq 0x27205b(%rip), %rsi    # 0x59845d
movq $-0x1, %rcx
movl $0x1, %r8d
callq 0xf66b0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdx
addq $0x30, %rdx
leaq 0x21a898(%rip), %rdi    # 0x540cda
leaq 0x27203f(%rip), %rsi    # 0x598488
movq $-0x1, %rcx
callq 0xf5fe0
movq %rax, 0x10(%rsp)
movq 0x20(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7090
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7090
movq 0x10(%rsp), %rdi
callq 0xf7400
movq 0x28(%rsp), %rdx
addq $0x38, %rdx
leaq 0x263d02(%rip), %rdi    # 0x58a1a3
leaq 0x272006(%rip), %rsi    # 0x5984ae
movl $0x320, %ecx            # imm = 0x320
movl $0x1, %r8d
callq 0xf6510
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x28(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x11dee0
movq 0x8(%rsp), %rdx
movq %rax, %rcx
leaq 0x272ccb(%rip), %rdi    # 0x5991c2
leaq 0x271fce(%rip), %rsi    # 0x5984cc
callq 0xf69f0
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rax
movq 0x10(%rax), %rdx
movq 0x3188b9(%rip), %rcx    # 0x63ede0
leaq 0x2067d3(%rip), %rdi    # 0x52cd01
leaq 0x271fa9(%rip), %rsi    # 0x5984de
leaq 0x3188a4(%rip), %r8     # 0x63ede0
callq 0xf6b30
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rax
movq 0x20(%rax), %rdx
movq 0x3188ab(%rip), %rcx    # 0x63ee10
leaq 0x232bf9(%rip), %rdi    # 0x559165
leaq 0x1fbb91(%rip), %rsi    # 0x522104
leaq 0x318896(%rip), %r8     # 0x63ee10
callq 0xf6b30
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x2, %rdx
leaq 0x1f898e(%rip), %rdi    # 0x51ef31
leaq 0x271f66(%rip), %rsi    # 0x598510
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x5, %rdx
leaq 0x272e9f(%rip), %rdi    # 0x599474
leaq 0x271f78(%rip), %rsi    # 0x598554
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x3, %rdx
leaq 0x271f6f(%rip), %rdi    # 0x598576
leaq 0x271f74(%rip), %rsi    # 0x598582
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0xf7040
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x7, %rdx
leaq 0x271f61(%rip), %rdi    # 0x5985a4
leaq 0x271f62(%rip), %rsi    # 0x5985ac
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
callq 0xf7040
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdi
addq $0x1, %rdi
callq 0xf5f90
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x28(%rsp), %rdx
addq $0x6, %rdx
leaq 0x21663a(%rip), %rdi    # 0x53ccdb
leaq 0x1fba3f(%rip), %rsi    # 0x5220e7
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x20(%rsp), %rdi
movl $0x1, %esi
callq 0xf2980
movq 0x20(%rsp), %rax
addq $0x38, %rsp
retq
nopl (%rax)