// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/tools/gt_seqorder.c
// Function: gt_seqorder_option_parser_new
static GtOptionParser* gt_seqorder_option_parser_new(void *tool_arguments)
{
  GtSeqorderArguments *arguments = tool_arguments;
  GtOptionParser *op;
  GtOption *invert_option, *sort_option, *sorthdr_option, *sorthdrnum_option,
           *revsort_option, *shuffle_option, *sort_length_option;
  gt_assert(arguments);

  /* init */
  op = gt_option_parser_new("(-invert|-sort|-revsort|-shuffle|-sorthdr"
                            "|-sorthdrnum) encseq",
                            "Output sequences as MultiFasta in specified "
                            "order.");

  /* -invert */
  invert_option = gt_option_new_bool("invert", "invert order of sequences",
                                     &arguments->invert, false);
  gt_option_parser_add_option(op, invert_option);

  /* -sort */
  sort_option = gt_option_new_bool("sort",
                                   "sort sequences lexicographically "
                                   "(by actual sequence)",
                                   &arguments->sort, false);
  gt_option_exclude(sort_option, invert_option);
  gt_option_parser_add_option(op, sort_option);

  /* -revsort */
  revsort_option = gt_option_new_bool("revsort", "sort sequences in reverse "
                                      "lexicographic order",
                                      &arguments->revsort, false);
  gt_option_exclude(revsort_option, invert_option);
  gt_option_exclude(revsort_option, sort_option);
  gt_option_parser_add_option(op, revsort_option);

  /* -sorthdr */
  sorthdr_option = gt_option_new_bool("sorthdr",
                                      "sort sequences lexicographically "
                                      "by sequence header",
                                      &arguments->sorthdr, false);
  gt_option_exclude(sorthdr_option, invert_option);
  gt_option_exclude(sorthdr_option, sort_option);
  gt_option_exclude(sorthdr_option, revsort_option);
  gt_option_parser_add_option(op, sorthdr_option);

    /* -sorthdrnum */
  sorthdrnum_option = gt_option_new_bool("sorthdrnum",
                                         "sort sequences numerically "
                                         "by sequence header",
                                         &arguments->sorthdrnum, false);
  gt_option_exclude(sorthdrnum_option, invert_option);
  gt_option_exclude(sorthdrnum_option, sort_option);
  gt_option_exclude(sorthdrnum_option, revsort_option);
  gt_option_exclude(sorthdrnum_option, sorthdr_option);
  gt_option_parser_add_option(op, sorthdrnum_option);

  /* -shuffle */
  shuffle_option = gt_option_new_bool("shuffle", "shuffle sequences "
                                      "pseudo-randomly",
                                      &arguments->shuffle, false);
  gt_option_exclude(shuffle_option, invert_option);
  gt_option_exclude(shuffle_option, sort_option);
  gt_option_exclude(shuffle_option, revsort_option);
  gt_option_exclude(shuffle_option, sorthdr_option);
  gt_option_exclude(shuffle_option, sorthdrnum_option);
  gt_option_parser_add_option(op, shuffle_option);

  /* -sortlength */
  sort_length_option = gt_option_new_bool("sortlength",
                                          "sort by decreasing length",
                                          &arguments->sort_length, false);
  gt_option_exclude(sort_length_option, invert_option);
  gt_option_exclude(sort_length_option, sort_option);
  gt_option_exclude(sort_length_option, revsort_option);
  gt_option_exclude(sort_length_option, sorthdr_option);
  gt_option_exclude(sort_length_option, sorthdrnum_option);
  gt_option_exclude(sort_length_option, shuffle_option);
  gt_option_parser_add_option(op, sort_length_option);
  gt_option_parser_set_min_max_args(op, 1U, 1U);

  return op;
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x48(%rsp)
cmpq $0x0, 0x48(%rsp)
jne 0x656f3
movq 0x5d68de(%rip), %rax    # 0x63bfa0
movq (%rax), %rdi
leaq 0x4b0947(%rip), %rsi    # 0x516013
leaq 0x51548c(%rip), %rdx    # 0x57ab5f
leaq 0x4c4451(%rip), %rcx    # 0x529b2b
leaq 0x4c4432(%rip), %r8     # 0x529b13
movl $0x39, %r9d
movb $0x0, %al
callq 0x199f0
callq 0x19370
jmp 0x656f5
leaq 0x4c444d(%rip), %rdi    # 0x529b49
leaq 0x4c4484(%rip), %rsi    # 0x529b87
callq 0xf1420
movq %rax, 0x40(%rsp)
movq 0x48(%rsp), %rdx
leaq 0x4deb19(%rip), %rdi    # 0x544232
leaq 0x4c449a(%rip), %rsi    # 0x529bba
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x38(%rsp)
movq 0x40(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x1, %rdx
leaq 0x5159bf(%rip), %rdi    # 0x57b10a
leaq 0x4c4482(%rip), %rsi    # 0x529bd4
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x2, %rdx
leaq 0x4c4659(%rip), %rdi    # 0x529de5
leaq 0x4c4477(%rip), %rsi    # 0x529c0a
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x18(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x4, %rdx
leaq 0x4c445c(%rip), %rdi    # 0x529c38
leaq 0x4c445d(%rip), %rsi    # 0x529c40
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7320
movq 0x28(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x5, %rdx
leaq 0x4c4439(%rip), %rdi    # 0x529c74
leaq 0x4c443d(%rip), %rsi    # 0x529c7f
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x20(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7320
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7320
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x3, %rdx
leaq 0x4db381(%rip), %rdi    # 0x540c2a
leaq 0x4c43fd(%rip), %rsi    # 0x529cad
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x10(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf1600
movq 0x48(%rsp), %rdx
addq $0x6, %rdx
leaq 0x4c43a9(%rip), %rdi    # 0x529ccf
leaq 0x4c43ad(%rip), %rsi    # 0x529cda
xorl %ecx, %ecx
callq 0xf5f20
movq %rax, 0x8(%rsp)
movq 0x8(%rsp), %rdi
movq 0x38(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movq 0x30(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movq 0x28(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movq 0x20(%rsp), %rsi
callq 0xf7320
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
callq 0xf7320
movq 0x40(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xf1600
movq 0x40(%rsp), %rdi
movl $0x1, %edx
movl %edx, %esi
callq 0xf2a40
movq 0x40(%rsp), %rax
addq $0x58, %rsp
retq
nopl (%rax)