// File: /workspace/github_c_makefile_star2_O3/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 %rbp
pushq %r14
pushq %rbx
subq $0x90, %rsp
movq 0x28(%rdx), %rax
testq %rax, %rax
je 0xe405
cmpq $0x0, (%rax)
je 0xe424
movq %rdx, %r14
movq %rsi, %rbx
movl $0x7, %ebp
cmpl $0x6f, %edi
jg 0xe2f9
cmpl $0x4c, %edi
je 0xe317
cmpl $0x62, %edi
je 0xe377
cmpl $0x6f, %edi
jne 0xe39f
movq %rbx, %rdi
callq 0x3130
cmpq $0x101, %rax            # imm = 0x101
jae 0xe443
leaq 0xf0f9(%rip), %rdi      # 0x1d3f0
jmp 0xe351
cmpl $0x70, %edi
je 0xe35b
cmpl $0x1000002, %edi        # imm = 0x1000002
je 0xe3ad
cmpl $0x1000006, %edi        # imm = 0x1000006
je 0xe37e
jmp 0xe39f
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x32e0
testl %eax, %eax
js 0xe39d
movl $0xf000, %eax           # imm = 0xF000
andl 0x18(%rsp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jne 0xe39d
movq %rbx, %rdi
callq 0x3130
cmpq $0xff, %rax
ja 0xe453
leaq 0xef9f(%rip), %rdi      # 0x1d2f0
movq %rbx, %rsi
callq 0x3080
jmp 0xe39d
movq %rbx, %rdi
callq 0x3410
leaq 0x87fb(%rip), %rdi      # 0x16b65
xorl %ebp, %ebp
movl %eax, %esi
xorl %eax, %eax
callq 0x3180
jmp 0xe39f
movb $0x1, 0xf176(%rip)      # 0x1d4f4
movl 0x8(%r14), %eax
movslq 0x18(%r14), %rcx
subl %ecx, %eax
movl %eax, 0xf16a(%rip)      # 0x1d4f8
shlq $0x3, %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0xf163(%rip)      # 0x1d500
xorl %ebp, %ebp
movl %ebp, %eax
addq $0x90, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movl $0x16, %ebp
cmpl $0x1, 0x8(%r14)
jg 0xe39f
movl $0xb, %edi
callq 0x3050
movq 0xdc0e(%rip), %rbx      # 0x1bfd8
movq (%rbx), %rsi
movq %r14, %rdi
movl $0x2, %edx
callq 0x30e0
movl $0xb, %edi
callq 0x3050
movq (%rbx), %rsi
movq %r14, %rdi
movl $0x8, %edx
callq 0x30e0
movl $0xb, %edi
callq 0x3050
xorl %edi, %edi
callq 0x3440
leaq 0x8995(%rip), %rdi      # 0x16da1
leaq 0x8b08(%rip), %rsi      # 0x16f1b
leaq 0x8b13(%rip), %rcx      # 0x16f2d
movl $0x3a, %edx
callq 0x3200
leaq 0x8b3a(%rip), %rdi      # 0x16f65
leaq 0x8ae9(%rip), %rsi      # 0x16f1b
leaq 0x8af4(%rip), %rcx      # 0x16f2d
movl $0x3b, %edx
callq 0x3200
callq 0x3060
movl (%rax), %edi
leaq 0x88f7(%rip), %rsi      # 0x16d48
jmp 0xe461
callq 0x3060
movl (%rax), %edi
leaq 0x87d6(%rip), %rsi      # 0x16c37
movl $0x100, %edx            # imm = 0x100
xorl %eax, %eax
callq 0x3330
nopl (%rax)