// File: /workspace/github_c_makefile_star2_O2/yhg926[P]public_kssd/command_reverse.c
// Function: parse_reverse
static error_t parse_reverse(int key, char* arg, struct argp_state* state) {
  struct arg_reverse* reverse = state->input;
  assert( reverse );
  assert( reverse->global );
  switch(key)
  {
    case 'L':
  {
   struct stat path_stat;
   if( stat(arg,&path_stat) >=0 && S_ISREG(path_stat.st_mode)){
        if(strlen(arg) < PATHLEN )
          strcpy(reverse_opt_val.shufile,arg);
        else
           err(errno,"-L argument path should not longer than %d",PATHLEN);
      }
   break;
  }
  case 'o':
    {
      if(strlen(arg) > PATHLEN) {
        err(errno,"the outdir path should not longer than %d", PATHLEN);
        exit(EXIT_FAILURE);
      };
      strcpy(reverse_opt_val.outdir,arg);
      break;
    }
  case 'p':
    {
#ifdef _OPENMP
        reverse_opt_val.p = atoi(arg) ;
#else
      warnx("This version of kssd was built without OpenMP and "
          "thus does not support multi threading. Ignoring -p %d",atoi(arg));
      break;
#endif
    }
    break;
  case 'b':
  {
   reverse_opt_val.byreads = true;
  }
  case ARGP_KEY_ARGS:
    {
    reverse_opt_val.num_remaining_args = state->argc - state->next;
     reverse_opt_val.remaining_args = state->argv + state->next;
     break;
  }
    case ARGP_KEY_NO_ARGS:
    {
      if(state->argc < 2)
        {
        printf("\v");
        argp_state_help(state,stdout,ARGP_HELP_SHORT_USAGE);
        printf("\v");
        argp_state_help(state,stdout,ARGP_HELP_LONG);
        printf("\v");
        exit(0);
        };
        return EINVAL;
    }
   break;
   default:
      return ARGP_ERR_UNKNOWN;
  }
  return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq 0x28(%rdx), %rax
testq %rax, %rax
je 0xd733
cmpq $0x0, (%rax)
je 0xd74c
movq %rdx, %r14
cmpl $0x1000006, %edi        # imm = 0x1000006
je 0xd703
cmpl $0x62, %edi
je 0xd6fc
movq %rsi, %rbx
cmpl $0x6f, %edi
je 0xd6a7
cmpl $0x70, %edi
je 0xd6db
cmpl $0x1000002, %edi        # imm = 0x1000002
je 0xd6cc
cmpl $0x4c, %edi
jne 0xd6f7
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x32e0
testl %eax, %eax
js 0xd722
movl $0xf000, %eax           # imm = 0xF000
andl 0x18(%rsp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jne 0xd722
movq %rbx, %rdi
callq 0x3130
cmpq $0xff, %rax
ja 0xd7bb
leaq 0xec4b(%rip), %rdi      # 0x1c2f0
jmp 0xd6c2
movq %rbx, %rdi
callq 0x3130
cmpq $0x101, %rax            # imm = 0x101
jae 0xd769
leaq 0xed2e(%rip), %rdi      # 0x1c3f0
movq %rbx, %rsi
callq 0x3080
jmp 0xd722
cmpl $0x1, 0x8(%r14)
jle 0xd779
pushq $0x16
jmp 0xd6f9
movq %rbx, %rdi
callq 0x3410
leaq 0x842b(%rip), %rdi      # 0x15b15
xorl %ebx, %ebx
movl %eax, %esi
xorl %eax, %eax
callq 0x3180
jmp 0xd724
pushq $0x7
popq %rbx
jmp 0xd724
movb $0x1, 0xedf1(%rip)      # 0x1c4f4
movl 0x8(%r14), %eax
movslq 0x18(%r14), %rcx
subl %ecx, %eax
movl %eax, 0xede5(%rip)      # 0x1c4f8
shlq $0x3, %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0xedde(%rip)      # 0x1c500
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x90, %rsp
popq %rbx
popq %r14
popq %r15
retq
leaq 0x8617(%rip), %rdi      # 0x15d51
leaq 0x878a(%rip), %rsi      # 0x15ecb
leaq 0x8795(%rip), %rcx      # 0x15edd
pushq $0x3a
jmp 0xd763
leaq 0x87c2(%rip), %rdi      # 0x15f15
leaq 0x8771(%rip), %rsi      # 0x15ecb
leaq 0x877c(%rip), %rcx      # 0x15edd
pushq $0x3b
popq %rdx
callq 0x3200
callq 0x3060
movl (%rax), %edi
leaq 0x8581(%rip), %rsi      # 0x15cf8
jmp 0xd7c9
pushq $0xb
popq %rbx
movl %ebx, %edi
callq 0x3050
movq 0xd84e(%rip), %r15      # 0x1afd8
movq (%r15), %rsi
pushq $0x2
popq %rdx
movq %r14, %rdi
callq 0x30e0
movl %ebx, %edi
callq 0x3050
movq (%r15), %rsi
pushq $0x8
popq %rdx
movq %r14, %rdi
callq 0x30e0
movl %ebx, %edi
callq 0x3050
xorl %edi, %edi
callq 0x3440
callq 0x3060
movl (%rax), %edi
leaq 0x841e(%rip), %rsi      # 0x15be7
movl $0x100, %edx            # imm = 0x100
xorl %eax, %eax
callq 0x3330
nopl (%rax)