// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_readjoiner_assembly.c
// Function: gt_readjoiner_assembly_option_parser_new
static GtOptionParser* gt_readjoiner_assembly_option_parser_new(
    void *tool_arguments)
{
  GtReadjoinerAssemblyArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *option, *errors_option, *deadend_option, *v_option,
           *q_option, *bubble_option, *deadend_depth_option;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("[option ...]",
      "Construct string graph and output contigs.");

  /* -readset */
  option = gt_option_new_string("readset", "specify the readset name",
      arguments->readset, NULL);
  gt_option_parser_add_option(op, option);
  gt_option_is_mandatory(option);

  /* -spmfiles */
  option = gt_option_new_uint_min("spmfiles", "number of SPM files to read\n"
      "this must be equal to the value of -j for the overlap phase",
      &arguments->nspmfiles, 1U, 1U);
  gt_option_is_extended_option(option);
  gt_option_parser_add_option(op, option);

  /* -l */
  option = gt_option_new_uint_min("l", "specify the minimum SPM length",
      &arguments->minmatchlength, 0, 2U);
  gt_option_is_extended_option(option);
  gt_option_parser_add_option(op, option);

  /* -depthcutoff */
  option = gt_option_new_uint_min("depthcutoff", "specify the minimal "
      "number of nodes in a contig",
      &arguments->depthcutoff, 3U, 1U);
  gt_option_is_extended_option(option);
  gt_option_parser_add_option(op, option);

  /* -lengthcutoff */
  option = gt_option_new_uint_min("lengthcutoff", "specify the minimal "
      "length of a contig",
      &arguments->lengthcutoff, 100U, 1U);
  gt_option_is_extended_option(option);
  gt_option_parser_add_option(op, option);

  /* -redtrans */
  option = gt_option_new_bool("redtrans", "reduce transitive edges",
      &arguments->redtrans, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -errors */
  errors_option = gt_option_new_bool("errors", "search graph features which "
      "may originate from sequencing errors and remove them",
      &arguments->errors, false);
  gt_option_is_extended_option(errors_option);
  gt_option_parser_add_option(op, errors_option);

  /* -bubble */
  bubble_option = gt_option_new_uint("bubble", "number of rounds of p-bubble "
      "removal to perform", &arguments->bubble, 3U);
  gt_option_is_extended_option(bubble_option);
  gt_option_imply(bubble_option, errors_option);
  gt_option_parser_add_option(op, bubble_option);

  /* -deadend */
  deadend_option = gt_option_new_uint("deadend", "number of rounds of "
      "dead end removal to perform a dead end",
      &arguments->deadend, 10U);
  gt_option_is_extended_option(deadend_option);
  gt_option_imply(deadend_option, errors_option);
  gt_option_parser_add_option(op, deadend_option);

  /* -deadend-depth */
  deadend_depth_option = gt_option_new_uint_min("deadend-depth", "specify the "
      "maximal depth of a path to an end-vertex by which the path shall be "
      "considered a dead end",
      &arguments->deadend_depth, 10U, 1U);
  gt_option_is_extended_option(deadend_depth_option);
  gt_option_imply(deadend_depth_option, errors_option);
  gt_option_parser_add_option(op, deadend_depth_option);

  /* -paths2seq */
  option = gt_option_new_bool("paths2seq", "read <indexname>"
      GT_READJOINER_SUFFIX_CONTIG_PATHS " and write "
      "<indexname>" GT_READJOINER_SUFFIX_CONTIGS,
      &arguments->paths2seq, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -buffersize */
  option = gt_option_new_string("buffersize", "specify size for read buffer"
      " of paths2seq phase (in bytes, the keywords 'MB' and 'GB' are allowed)",
                       arguments->buffersizearg, NULL);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);
  arguments->refoptionbuffersize = gt_option_ref(option);

  /* -vd */
  option = gt_option_new_bool("vd", "use verbose descriptions for contigs",
      &arguments->vd, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -astat */
  option = gt_option_new_bool("astat", "calculate A-statistics for each contig",
      &arguments->astat, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -cov */
  option = gt_option_new_double("cov", "average coverage value to use for the "
      "A-statistics calculation", &arguments->coverage, (double)0);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -copynum */
  option = gt_option_new_bool("copynum", "load reads copy numbers list from "
      "file for the A-statistics calculation",
      &arguments->copynum, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

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

  /* -q */
  q_option = gt_option_new_bool("q", "suppress standard output messages",
      &arguments->quiet, false);
  gt_option_parser_add_option(op, q_option);
  gt_option_exclude(q_option, v_option);

  /* -load */
  option = gt_option_new_bool("load", "save the string graph from file",
      &arguments->load, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -save */
  option = gt_option_new_bool("save", "save the string graph to file",
      &arguments->save, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  /* -show_contigs_info */
  option = gt_option_new_bool("cinfo", "output additional files required "
      "for contigs graph construction (eqlen only)",
      &arguments->show_contigs_info, false);
  gt_option_is_development_option(option);
  gt_option_parser_add_option(op, option);

  gt_option_parser_set_version_func(op, gt_readjoiner_show_version);
  gt_option_parser_set_max_args(op, 0);

  return op;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
jne 0x4d723
movq 0x5ee8ae(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4c8917(%rip), %rsi    # 0x516013
leaq 0x52d45c(%rip), %rdx    # 0x57ab5f
leaq 0x4d6272(%rip), %rcx    # 0x52397c
leaq 0x4d6248(%rip), %r8     # 0x523959
movl $0x4c, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x4d725
leaq 0x4db831(%rip), %rdi    # 0x528f5d
leaq 0x4d6272(%rip), %rsi    # 0x5239a5
callq 0xf1420
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rdx
leaq 0x4d5f67(%rip), %rdi    # 0x5236b4
leaq 0x4d5f68(%rip), %rsi    # 0x5236bc
xorl %eax, %eax
movl %eax, %ecx
callq 0xf69f0
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdi
callq 0xf6ca0
movq 0x48(%rsp), %rdx
addq $0x48, %rdx
leaq 0x4d5f4a(%rip), %rdi    # 0x5236d5
leaq 0x4d5f4c(%rip), %rsi    # 0x5236de
movl $0x1, %r8d
movl %r8d, %ecx
callq 0xf6510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf6ff0
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x4, %rdx
leaq 0x50cb8e(%rip), %rdi    # 0x55a35c
leaq 0x4d5f61(%rip), %rsi    # 0x523736
xorl %ecx, %ecx
movl $0x2, %r8d
callq 0xf6510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf6ff0
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0xc, %rdx
leaq 0x4d61c0(%rip), %rdi    # 0x5239d0
leaq 0x4d61c5(%rip), %rsi    # 0x5239dc
movl $0x3, %ecx
movl $0x1, %r8d
callq 0xf6510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf6ff0
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x8, %rdx
leaq 0x4d61b7(%rip), %rdi    # 0x523a0c
leaq 0x4d61bd(%rip), %rsi    # 0x523a19
movl $0x64, %ecx
movl $0x1, %r8d
callq 0xf6510
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf6ff0
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x22, %rdx
leaq 0x534d4a(%rip), %rdi    # 0x5825e4
leaq 0x4d619f(%rip), %rsi    # 0x523a40
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x20, %rdx
leaq 0x4d65e1(%rip), %rdi    # 0x523eb7
leaq 0x4d617b(%rip), %rsi    # 0x523a58
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
callq 0xf6ff0
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x30, %rdx
leaq 0x4d6197(%rip), %rdi    # 0x523aa9
leaq 0x4d6197(%rip), %rsi    # 0x523ab0
movl $0x3, %ecx
callq 0xf64b0
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
callq 0xf6ff0
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7090
movq 0x40(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x2c, %rdx
leaq 0x4d6180(%rip), %rdi    # 0x523ae0
leaq 0x4d6181(%rip), %rsi    # 0x523ae8
movl $0xa, %ecx
callq 0xf64b0
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
callq 0xf6ff0
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7090
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x34, %rdx
leaq 0x4d6175(%rip), %rdi    # 0x523b23
leaq 0x4d617c(%rip), %rsi    # 0x523b31
movl $0xa, %ecx
movl $0x1, %r8d
callq 0xf6510
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
callq 0xf6ff0
movq 0x8(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7090
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x21, %rdx
leaq 0x4d6770(%rip), %rdi    # 0x524172
leaq 0x4d618e(%rip), %rsi    # 0x523b97
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rax
movq 0x18(%rax), %rdx
leaq 0x5322b4(%rip), %rdi    # 0x57fcf2
leaq 0x4d618b(%rip), %rsi    # 0x523bd0
xorl %eax, %eax
movl %eax, %ecx
callq 0xf69f0
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x38(%rsp), %rdi
callq 0xf13c0
movq %rax, %rcx
movq 0x48(%rsp), %rax
movq %rcx, 0x38(%rax)
movq 0x48(%rsp), %rdx
addq $0x25, %rdx
leaq 0x4d61a1(%rip), %rdi    # 0x523c33
leaq 0x4d619d(%rip), %rsi    # 0x523c36
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x26, %rdx
leaq 0x4d618d(%rip), %rdi    # 0x523c5b
leaq 0x4d618c(%rip), %rsi    # 0x523c61
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x50, %rdx
leaq 0x540475(%rip), %rdi    # 0x58df7f
leaq 0x4d6177(%rip), %rsi    # 0x523c88
xorps %xmm0, %xmm0
callq 0xf6160
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x27, %rdx
leaq 0x531f79(%rip), %rdi    # 0x57fac0
leaq 0x4d6179(%rip), %rsi    # 0x523cc7
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdi
callq 0xf5f90
movq %rax, 0x20(%rsp)
movq 0x40(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x1, %rdx
leaq 0x50b21e(%rip), %rdi    # 0x558dbf
leaq 0x4d5c0c(%rip), %rsi    # 0x5237b4
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7320
movq 0x48(%rsp), %rdx
addq $0x24, %rdx
leaq 0x5677c8(%rip), %rdi    # 0x5b53aa
leaq 0x4d6126(%rip), %rsi    # 0x523d0f
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x23, %rdx
leaq 0x515104(%rip), %rdi    # 0x562d22
leaq 0x4d610a(%rip), %rsi    # 0x523d2f
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x28, %rdx
leaq 0x54dd97(%rip), %rdi    # 0x59b9f1
leaq 0x4d60ec(%rip), %rsi    # 0x523d4d
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
callq 0xf7040
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x40(%rsp), %rdi
leaq 0x25289e(%rip), %rsi    # 0x2a0530
callq 0xf17f0
movq 0x40(%rsp), %rdi
xorl %esi, %esi
callq 0xf29e0
movq 0x40(%rsp), %rax
addq $0x58, %rsp
retq
nopl (%rax)