// File: /workspace/github_c_makefile_star2_O0/zpole[P]IICV/src/test_getopt_long.c
// Function: main
int
main (int argc, char *argv[])
{
  int ch ;

  printf("*** parsing options: start\n") ;

  while ((ch = getopt_long(argc, argv, "hbf:", longopts, 0)) != -1) {

    switch (ch) {

    case 'h':
        printf("test_getopt_long: test VLFeat implementation of this function.\n"
               " --help -h      this message\n"
               " --buffy -b     option with no arguments\n"
               " --fluoride -f  option with required argument\n"
               " --daggerset    auto option with no arguments\n"
               " --daggerrunset auto option with no argument\n"
               " --spike        long option with optional argument\n") ;
        break;

    case 'b':
      printf("option `b' or `buffy'\n") ;
      break;

    case 'f':
      printf("option `f' or `flouride' with arg `%s'\n", optarg) ;
      break ;

    case 1002 :
      printf("option `spike' with arg `%s'\n", optarg) ;
      break ;

    case 0:
      printf("automatic longoption (daggerset=%d)\n", daggerset) ;
      break ;

    case  '?' :
      printf("illegal option or missing argument\n") ;
      break ;

    case ':'  :
      printf("illegal option\n") ;
      break ;

    default:
      abort() ;
    }
  }

  printf("*** parsing options: end\n");
  {
    int i ;
    for(i = optind ; i < argc ; ++i)
		printf("non-option: '%s'\n", argv[i]) ;
  }

  return 0 ;
}

// Assembly:
subq $0x28, %rsp
movl $0x0, 0x24(%rsp)
movl %edi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
leaq 0xe88(%rip), %rdi       # 0x2004
movb $0x0, %al
callq 0x1040
movl 0x20(%rsp), %edi
movq 0x18(%rsp), %rsi
leaq 0xe8d(%rip), %rdx       # 0x2020
leaq 0x2ea6(%rip), %rcx      # 0x4040
xorl %eax, %eax
movl %eax, %r8d
callq 0x1050
movl %eax, 0x14(%rsp)
cmpl $-0x1, %eax
je 0x12a6
movl 0x14(%rsp), %eax
movl %eax, 0xc(%rsp)
testl %eax, %eax
je 0x1266
jmp 0x11c3
movl 0xc(%rsp), %eax
subl $0x3a, %eax
je 0x128c
jmp 0x11d2
movl 0xc(%rsp), %eax
subl $0x3f, %eax
je 0x127c
jmp 0x11e1
movl 0xc(%rsp), %eax
subl $0x62, %eax
je 0x1222
jmp 0x11ec
movl 0xc(%rsp), %eax
subl $0x66, %eax
je 0x1232
jmp 0x11f7
movl 0xc(%rsp), %eax
subl $0x68, %eax
je 0x1212
jmp 0x1202
movl 0xc(%rsp), %eax
subl $0x3ea, %eax            # imm = 0x3EA
je 0x124c
jmp 0x129c
leaq 0xe0c(%rip), %rdi       # 0x2025
movb $0x0, %al
callq 0x1040
jmp 0x12a1
leaq 0xf3e(%rip), %rdi       # 0x2167
movb $0x0, %al
callq 0x1040
jmp 0x12a1
movq 0x2dbf(%rip), %rax      # 0x3ff8
movq (%rax), %rsi
leaq 0xf3b(%rip), %rdi       # 0x217e
movb $0x0, %al
callq 0x1040
jmp 0x12a1
movq 0x2da5(%rip), %rax      # 0x3ff8
movq (%rax), %rsi
leaq 0xf49(%rip), %rdi       # 0x21a6
movb $0x0, %al
callq 0x1040
jmp 0x12a1
movl 0x2eb8(%rip), %esi      # 0x4124
leaq 0xf51(%rip), %rdi       # 0x21c4
movb $0x0, %al
callq 0x1040
jmp 0x12a1
leaq 0xf66(%rip), %rdi       # 0x21e9
movb $0x0, %al
callq 0x1040
jmp 0x12a1
leaq 0xf7a(%rip), %rdi       # 0x220d
movb $0x0, %al
callq 0x1040
jmp 0x12a1
callq 0x1030
jmp 0x1183
leaq 0xf70(%rip), %rdi       # 0x221d
movb $0x0, %al
callq 0x1040
movq 0x2d25(%rip), %rax      # 0x3fe0
movl (%rax), %eax
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %eax
cmpl 0x20(%rsp), %eax
jge 0x12f4
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0xf57(%rip), %rdi       # 0x2237
movb $0x0, %al
callq 0x1040
movl 0x10(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
jmp 0x12c1
xorl %eax, %eax
addq $0x28, %rsp
retq