// File: /workspace/github_c_makefile_star2_O0/genometools[P]genometools/src/core/option.c
// Function: show_help
static int show_help(GtOptionParser *op, GtOptionType optiontype, GtError *err)
{
  GtUword i, max_option_length = 0;
  GtOption *option;
  int had_err = 0;
  gt_error_check(err);
  gt_assert(optiontype == OPTION_HELP || optiontype == OPTION_HELPPLUS ||
            optiontype == OPTION_HELPDEV);

  /* determine maximum option length */
  for (i = 0; i < gt_array_size(op->options); i++) {
    option = *(GtOption**) gt_array_get(op->options, i);
    /* skip option if necessary */
    if ((optiontype == OPTION_HELP && option->is_extended_option) ||
        (optiontype == OPTION_HELPDEV && !option->is_development_option) ||
        (!(optiontype == OPTION_HELPDEV) && option->is_development_option)) {
      continue;
    }
    if (gt_str_length(option->option_str) > max_option_length)
      max_option_length = gt_str_length(option->option_str);
  }
  gt_assert(max_option_length);

  printf("Usage: %s %s\n", op->progname, op->synopsis);
  printf("%s\n\n", op->one_liner);
  for (i = 0; i < gt_array_size(op->options); i++) {
    option = *(GtOption**) gt_array_get(op->options, i);
    /* skip option if necessary */
    if ((optiontype == OPTION_HELP && option->is_extended_option) ||
        (optiontype == OPTION_HELPDEV && !option->is_development_option) ||
        (!(optiontype == OPTION_HELPDEV) && option->is_development_option)) {
      continue;
    }
    printf("-%s%*s ", gt_str_get(option->option_str),
           (int) (max_option_length - gt_str_length(option->option_str)), "");
    show_description(max_option_length + 2, gt_str_get(option->description),
                     gt_str_length(option->description));

    /* show default value for some types of options */
    if (!option->hide_default) {
      if (option->option_type == OPTION_BOOL) {
        printf("%*s  default: %s\n", (int) max_option_length, "",
               option->default_value.b ? "yes" : "no");
      }
      else if (option->option_type == OPTION_CHOICE) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (!option->default_value.s || !strlen(option->default_value.s))
          gt_xputs("undefined");
        else
          gt_xputs(option->default_value.s);
      }

      else if (option->option_type == OPTION_DOUBLE) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.d == GT_UNDEF_DOUBLE)
          gt_xputs("undefined");
        else
          printf("%.2f\n", option->default_value.d);
      }
      else if (option->option_type == OPTION_INT) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.i == GT_UNDEF_INT)
          gt_xputs("undefined");
        else
          printf("%d\n", option->default_value.i);
      }
      else if (option->option_type == OPTION_UINT) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.ui == GT_UNDEF_UINT)
          gt_xputs("undefined");
        else
          printf("%u\n", option->default_value.ui);
      }
      else if (option->option_type == OPTION_LONG) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.ul == GT_UNDEF_WORD)
          gt_xputs("undefined");
        else
          printf(""GT_WD"\n", option->default_value.l);
      }
      else if (option->option_type == OPTION_ULONG) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.ul == GT_UNDEF_UWORD)
          gt_xputs("undefined");
        else
          printf(""GT_WU"\n", option->default_value.ul);
      }
      else if (option->option_type == OPTION_RANGE) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (option->default_value.r.start == GT_UNDEF_UWORD)
          gt_xputs("undefined");
        else {
          printf(""GT_WU" "GT_WU"\n", option->default_value.r.start,
                 option->default_value.r.end);
        }
      }
      else if (option->option_type == OPTION_FILENAME ||
               option->option_type == OPTION_STRING) {
        printf("%*s  default: ", (int) max_option_length, "");
        if (!option->default_value.s || !strlen(option->default_value.s))
          gt_xputs("undefined");
        else
          gt_xputs(option->default_value.s);
      }
    }
  }
  if (op->comment_func)
    had_err = op->comment_func(op->progname, op->comment_func_data, err);
  if (!had_err) {
    if (op->refer_to_manual) {
      printf("\nFor detailed information, please refer to the manual of%s.",
             op->progname + gt_cstr_length_up_to_char(op->progname, ' '));
    }
    printf("\nReport bugs to %s.\n",
           op->mail_address ? op->mail_address : GT_MAIL_ADDRESS);
  }
  return had_err;
}

// Assembly:
subq $0x78, %rsp
movq %rdi, 0x70(%rsp)
movl %esi, 0x6c(%rsp)
movq %rdx, 0x60(%rsp)
movq $0x0, 0x50(%rsp)
movl $0x0, 0x44(%rsp)
cmpq $0x0, 0x60(%rsp)
je 0x11f83
movq 0x60(%rsp), %rdi
callq 0xc270
testb $0x1, %al
jne 0x11f4b
jmp 0x11f83
movq 0x1a2086(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x14c10a(%rip), %rsi    # 0x15e066
leaq 0x14c6e5(%rip), %rdx    # 0x15e648
leaq 0x14d690(%rip), %rcx    # 0x15f5fa
leaq 0x14c8e9(%rip), %r8     # 0x15e85a
movl $0x16d, %r9d            # imm = 0x16D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11f85
jmp 0x11f87
cmpl $0x4, 0x6c(%rsp)
je 0x11fd4
cmpl $0x5, 0x6c(%rsp)
je 0x11fd4
cmpl $0x6, 0x6c(%rsp)
je 0x11fd4
movq 0x1a2035(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x14c0b9(%rip), %rsi    # 0x15e066
leaq 0x14d650(%rip), %rdx    # 0x15f604
leaq 0x14d63f(%rip), %rcx    # 0x15f5fa
leaq 0x14c898(%rip), %r8     # 0x15e85a
movl $0x16f, %r9d            # imm = 0x16F
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x11fd6
movq $0x0, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x70(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x76490
movq %rax, %rcx
movq 0x38(%rsp), %rax
cmpq %rcx, %rax
jae 0x12098
movq 0x70(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x58(%rsp), %rsi
callq 0x75c80
movq (%rax), %rax
movq %rax, 0x48(%rsp)
cmpl $0x4, 0x6c(%rsp)
jne 0x12035
movq 0x48(%rsp), %rax
testb $0x1, 0x4d(%rax)
jne 0x12059
cmpl $0x6, 0x6c(%rsp)
jne 0x12047
movq 0x48(%rsp), %rax
testb $0x1, 0x4e(%rax)
je 0x12059
cmpl $0x6, 0x6c(%rsp)
je 0x1205b
movq 0x48(%rsp), %rax
testb $0x1, 0x4e(%rax)
je 0x1205b
jmp 0x12085
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19a00
cmpq 0x50(%rsp), %rax
jbe 0x12083
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19a00
movq %rax, 0x50(%rsp)
jmp 0x12085
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x11fdf
jmp 0x1209a
cmpq $0x0, 0x50(%rsp)
jne 0x120da
movq 0x1a1f2f(%rip), %rax    # 0x1b3fd8
movq (%rax), %rdi
leaq 0x14bfb3(%rip), %rsi    # 0x15e066
leaq 0x14d5a5(%rip), %rdx    # 0x15f65f
leaq 0x14d539(%rip), %rcx    # 0x15f5fa
leaq 0x14c792(%rip), %r8     # 0x15e85a
movl $0x17d, %r9d            # imm = 0x17D
movb $0x0, %al
callq 0xb890
callq 0xb2e0
jmp 0x120dc
movq 0x70(%rsp), %rax
movq (%rax), %rsi
movq 0x70(%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x14d57d(%rip), %rdi    # 0x15f671
movb $0x0, %al
callq 0xb070
movq 0x70(%rsp), %rax
movq 0x10(%rax), %rsi
leaq 0x14d574(%rip), %rdi    # 0x15f67f
movb $0x0, %al
callq 0xb070
movq $0x0, 0x58(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x70(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x76490
movq %rax, %rcx
movq 0x30(%rsp), %rax
cmpq %rcx, %rax
jae 0x125c5
movq 0x70(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x58(%rsp), %rsi
callq 0x75c80
movq (%rax), %rax
movq %rax, 0x48(%rsp)
cmpl $0x4, 0x6c(%rsp)
jne 0x12171
movq 0x48(%rsp), %rax
testb $0x1, 0x4d(%rax)
jne 0x12195
cmpl $0x6, 0x6c(%rsp)
jne 0x12183
movq 0x48(%rsp), %rax
testb $0x1, 0x4e(%rax)
je 0x12195
cmpl $0x6, 0x6c(%rsp)
je 0x1219a
movq 0x48(%rsp), %rax
testb $0x1, 0x4e(%rax)
je 0x1219a
jmp 0x125b2
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19940
movq %rax, 0x10(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x48(%rsp), %rax
movq 0x8(%rax), %rdi
callq 0x19a00
movq 0x10(%rsp), %rsi
movq %rax, %rcx
movq 0x18(%rsp), %rax
subq %rcx, %rax
movl %eax, %edx
leaq 0x14d4a6(%rip), %rdi    # 0x15f684
leaq 0x159cfe(%rip), %rcx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x50(%rsp), %rax
addq $0x2, %rax
movq %rax, 0x20(%rsp)
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x19940
movq %rax, 0x28(%rsp)
movq 0x48(%rsp), %rax
movq 0x10(%rax), %rdi
callq 0x19a00
movq 0x20(%rsp), %rdi
movq 0x28(%rsp), %rsi
movq %rax, %rdx
callq 0x14f60
movq 0x48(%rsp), %rax
testb $0x1, 0x4a(%rax)
jne 0x125b0
movq 0x48(%rsp), %rax
cmpl $0x0, (%rax)
jne 0x12284
movq 0x50(%rsp), %rax
movl %eax, %esi
movq 0x48(%rsp), %rax
movb 0x20(%rax), %dl
leaq 0x17b183(%rip), %rcx    # 0x18d3df
leaq 0x14c8fb(%rip), %rax    # 0x15eb5e
testb $0x1, %dl
cmovneq %rax, %rcx
leaq 0x14d41b(%rip), %rdi    # 0x15f68c
leaq 0x159c6b(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
jmp 0x125ae
movq 0x48(%rsp), %rax
cmpl $0x1, (%rax)
jne 0x122eb
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d402(%rip), %rdi    # 0x15f69e
leaq 0x159c40(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x122ca
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xb240
cmpq $0x0, %rax
jne 0x122d8
leaq 0x14c899(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x122e6
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x1cbe0
jmp 0x125ac
movq 0x48(%rsp), %rax
cmpl $0x2, (%rax)
jne 0x12356
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d39b(%rip), %rdi    # 0x15f69e
leaq 0x159bd9(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
movsd 0x20(%rax), %xmm0
movsd 0x14c4dd(%rip), %xmm1   # 0x15e800
ucomisd %xmm1, %xmm0
jne 0x12339
jp 0x12339
leaq 0x14c838(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x12351
movq 0x48(%rsp), %rax
movsd 0x20(%rax), %xmm0
leaq 0x14dd44(%rip), %rdi    # 0x16008e
movb $0x1, %al
callq 0xb070
jmp 0x125aa
movq 0x48(%rsp), %rax
cmpl $0x7, (%rax)
jne 0x123b3
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d330(%rip), %rdi    # 0x15f69e
leaq 0x159b6e(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpl $0x80000000, 0x20(%rax) # imm = 0x80000000
jne 0x12398
leaq 0x14c7d9(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x123ae
movq 0x48(%rsp), %rax
movl 0x20(%rax), %esi
leaq 0x16a80f(%rip), %rdi    # 0x17cbb6
movb $0x0, %al
callq 0xb070
jmp 0x125a8
movq 0x48(%rsp), %rax
cmpl $0x8, (%rax)
jne 0x1240d
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d2d3(%rip), %rdi    # 0x15f69e
leaq 0x159b11(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpl $-0x1, 0x20(%rax)
jne 0x123f2
leaq 0x14c77f(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x12408
movq 0x48(%rsp), %rax
movl 0x20(%rax), %esi
leaq 0x17ca8d(%rip), %rdi    # 0x18ee8e
movb $0x0, %al
callq 0xb070
jmp 0x125a6
movq 0x48(%rsp), %rax
cmpl $0x9, (%rax)
jne 0x12472
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d279(%rip), %rdi    # 0x15f69e
leaq 0x159ab7(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
cmpq %rcx, 0x20(%rax)
jne 0x12456
leaq 0x14c71b(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x1246d
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rsi
leaq 0x14d247(%rip), %rdi    # 0x15f6ad
movb $0x0, %al
callq 0xb070
jmp 0x125a4
movq 0x48(%rsp), %rax
cmpl $0xa, (%rax)
jne 0x124ce
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d214(%rip), %rdi    # 0x15f69e
leaq 0x159a52(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpq $-0x1, 0x20(%rax)
jne 0x124b2
leaq 0x14c6bf(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x124c9
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rsi
leaq 0x1720ee(%rip), %rdi    # 0x1845b0
movb $0x0, %al
callq 0xb070
jmp 0x125a2
movq 0x48(%rsp), %rax
cmpl $0xb, (%rax)
jne 0x12530
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d1b8(%rip), %rdi    # 0x15f69e
leaq 0x1599f6(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpq $-0x1, 0x20(%rax)
jne 0x1250e
leaq 0x14c663(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x1252e
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rsi
movq 0x48(%rsp), %rax
movq 0x28(%rax), %rdx
leaq 0x15361c(%rip), %rdi    # 0x165b43
movb $0x0, %al
callq 0xb070
jmp 0x125a0
movq 0x48(%rsp), %rax
cmpl $0x3, (%rax)
je 0x12544
movq 0x48(%rsp), %rax
cmpl $0xc, (%rax)
jne 0x1259e
movq 0x50(%rsp), %rax
movl %eax, %esi
leaq 0x14d14c(%rip), %rdi    # 0x15f69e
leaq 0x15998a(%rip), %rdx    # 0x16bee3
movb $0x0, %al
callq 0xb070
movq 0x48(%rsp), %rax
cmpq $0x0, 0x20(%rax)
je 0x12580
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0xb240
cmpq $0x0, %rax
jne 0x1258e
leaq 0x14c5e3(%rip), %rdi    # 0x15eb6a
callq 0x1cbe0
jmp 0x1259c
movq 0x48(%rsp), %rax
movq 0x20(%rax), %rdi
callq 0x1cbe0
jmp 0x1259e
jmp 0x125a0
jmp 0x125a2
jmp 0x125a4
jmp 0x125a6
jmp 0x125a8
jmp 0x125aa
jmp 0x125ac
jmp 0x125ae
jmp 0x125b0
jmp 0x125b2
movq 0x58(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x58(%rsp)
jmp 0x1211b
movq 0x70(%rsp), %rax
cmpq $0x0, 0x30(%rax)
je 0x125f6
movq 0x70(%rsp), %rax
movq 0x30(%rax), %rax
movq 0x70(%rsp), %rcx
movq (%rcx), %rdi
movq 0x70(%rsp), %rcx
movq 0x38(%rcx), %rsi
movq 0x60(%rsp), %rdx
callq *%rax
movl %eax, 0x44(%rsp)
cmpl $0x0, 0x44(%rsp)
jne 0x12677
movq 0x70(%rsp), %rax
testb $0x1, 0x29(%rax)
je 0x1263d
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x70(%rsp), %rax
movq (%rax), %rdi
movl $0x20, %esi
callq 0x7c680
movq 0x8(%rsp), %rsi
addq %rax, %rsi
leaq 0x14d07c(%rip), %rdi    # 0x15f6b2
movb $0x0, %al
callq 0xb070
movq 0x70(%rsp), %rax
cmpq $0x0, 0x48(%rax)
je 0x12658
movq 0x70(%rsp), %rax
movq 0x48(%rax), %rax
movq %rax, (%rsp)
jmp 0x12665
leaq 0x14c5ca(%rip), %rax    # 0x15ec29
movq %rax, (%rsp)
jmp 0x12665
movq (%rsp), %rsi
leaq 0x14d07e(%rip), %rdi    # 0x15f6ee
movb $0x0, %al
callq 0xb070
movl 0x44(%rsp), %eax
addq $0x78, %rsp
retq