// File: /workspace/github_c_makefile_star2_O1/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 0xe120
cmpq $0x0, (%rax)
je 0xe13f
movq %rdx, %r14
movq %rsi, %rbx
movl $0x7, %ebp
cmpl $0x6f, %edi
jg 0xe014
cmpl $0x4c, %edi
je 0xe032
cmpl $0x62, %edi
je 0xe092
cmpl $0x6f, %edi
jne 0xe0ba
movq %rbx, %rdi
callq 0x3130
cmpq $0x101, %rax            # imm = 0x101
jae 0xe15e
leaq 0xf3de(%rip), %rdi      # 0x1d3f0
jmp 0xe06c
cmpl $0x70, %edi
je 0xe076
cmpl $0x1000002, %edi        # imm = 0x1000002
je 0xe0c8
cmpl $0x1000006, %edi        # imm = 0x1000006
je 0xe099
jmp 0xe0ba
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x32e0
testl %eax, %eax
js 0xe0b8
movl $0xf000, %eax           # imm = 0xF000
andl 0x18(%rsp), %eax
cmpl $0x8000, %eax           # imm = 0x8000
jne 0xe0b8
movq %rbx, %rdi
callq 0x3130
cmpq $0xff, %rax
ja 0xe16e
leaq 0xf284(%rip), %rdi      # 0x1d2f0
movq %rbx, %rsi
callq 0x3080
jmp 0xe0b8
movq %rbx, %rdi
callq 0x3410
leaq 0x8a90(%rip), %rdi      # 0x16b15
xorl %ebp, %ebp
movl %eax, %esi
xorl %eax, %eax
callq 0x3180
jmp 0xe0ba
movb $0x1, 0xf45b(%rip)      # 0x1d4f4
movl 0x8(%r14), %eax
movslq 0x18(%r14), %rcx
subl %ecx, %eax
movl %eax, 0xf44f(%rip)      # 0x1d4f8
shlq $0x3, %rcx
addq 0x10(%r14), %rcx
movq %rcx, 0xf448(%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 0xe0ba
movl $0xb, %edi
callq 0x3050
movq 0xdef3(%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 0x8c2a(%rip), %rdi      # 0x16d51
leaq 0x8d9d(%rip), %rsi      # 0x16ecb
leaq 0x8da8(%rip), %rcx      # 0x16edd
movl $0x3a, %edx
callq 0x3200
leaq 0x8dcf(%rip), %rdi      # 0x16f15
leaq 0x8d7e(%rip), %rsi      # 0x16ecb
leaq 0x8d89(%rip), %rcx      # 0x16edd
movl $0x3b, %edx
callq 0x3200
callq 0x3060
movl (%rax), %edi
leaq 0x8b8c(%rip), %rsi      # 0x16cf8
jmp 0xe17c
callq 0x3060
movl (%rax), %edi
leaq 0x8a6b(%rip), %rsi      # 0x16be7
movl $0x100, %edx            # imm = 0x100
xorl %eax, %eax
callq 0x3330