// File: /workspace/github_c_makefile_star2_O2/yhg926[P]public_kssd/global_wrapper.c
// Function: parse_global
static error_t parse_global(int key, char* arg, struct argp_state* state)
{
  if(key == '?' || key=='u')
   state->name = long_domain;
 else if (key == 'l'){
  printf("%s\n",doc_license);
  return EINVAL;
 }
  else if(key==ARGP_KEY_ARG){
      assert( arg );
      state->name = domain;
      if(strcmp(arg, "shuffle") == 0) {
         cmd_shuffle(state);
      }
   else if(strcmp(arg, "set") == 0) {
    cmd_set(state);
   }
   else if(strcmp(arg, "dist") == 0)
   {
    cmd_dist(state);
   }
   else if(strcmp(arg, "reverse") == 0)
    cmd_reverse(state);
   else if(strcmp(arg, "composite") == 0)
    cmd_composite(state);
   else if(strcmp(arg, "primer") == 0)
     for(int i = 8;i<52;i++ )
       printf("%llu\n",find_lgst_primer_2pow(i));
   else {
        argp_error(state, "%s is not a valid command", arg);
      }
  }
  else if(key == ARGP_KEY_NO_ARGS){
        state->name = long_domain;
    printf("\n%s\n\n",argp_program_version);
    printf("Unit_space_size = %d\n\n", COMPONENT_SZ);
    printf("Type 'kssd --license' for license and copyright information.\n\n");
        argp_state_help(state,stdout,ARGP_HELP_SHORT_USAGE);
        printf("\v");
        argp_state_help(state,stdout,ARGP_HELP_POST_DOC);
        return EINVAL;
  }
  else if(key == ARGP_KEY_INVALID){
      state->name = state->argv[0] = domain;
      return ARGP_ERR_UNKNOWN;
  }
  else return ARGP_ERR_UNKNOWN;
  return 0;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
testl %edi, %edi
je 0x115cc
cmpl $0x3f, %edi
je 0x11523
cmpl $0x6c, %edi
je 0x11535
pushq $0x7
popq %rbp
cmpl $0x1000003, %edi        # imm = 0x1000003
je 0x115b3
cmpl $0x1000002, %edi        # imm = 0x1000002
je 0x11543
cmpl $0x75, %edi
jne 0x115c5
movq 0x4c0de(%rip), %rax     # 0x5d608
movq %rax, 0x40(%rbx)
xorl %ebp, %ebp
jmp 0x115c5
leaq 0xbd24(%rip), %rdi      # 0x1d260
callq 0x30a0
jmp 0x115ae
movq 0x4c0be(%rip), %rax     # 0x5d608
movq %rax, 0x40(%rbx)
leaq 0xbf53(%rip), %rax      # 0x1d4a8
movq (%rax), %rsi
leaq 0x5b15(%rip), %rdi      # 0x17074
xorl %eax, %eax
callq 0x3170
leaq 0x5b0d(%rip), %rdi      # 0x1707a
pushq $0x7
popq %rsi
xorl %eax, %eax
callq 0x3170
leaq 0x5b13(%rip), %rdi      # 0x17091
callq 0x30a0
movq 0x9a4e(%rip), %r14      # 0x1afd8
movq (%r14), %rsi
pushq $0x2
popq %rdx
movq %rbx, %rdi
callq 0x30e0
pushq $0xb
popq %rdi
callq 0x3050
movq (%r14), %rsi
pushq $0x20
popq %rdx
movq %rbx, %rdi
callq 0x30e0
pushq $0x16
popq %rbp
jmp 0x115c5
movq 0x4c046(%rip), %rax     # 0x5d600
movq 0x10(%rbx), %rcx
movq %rax, (%rcx)
movq %rax, 0x40(%rbx)
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq %rsi, %r14
testq %rsi, %rsi
je 0x116de
movq 0x4c021(%rip), %rax     # 0x5d600
movq %rax, 0x40(%rbx)
leaq 0x4fe5(%rip), %rsi      # 0x165cf
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x11670
leaq 0x49a3(%rip), %rsi      # 0x15fa0
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x1167d
leaq 0x4045(%rip), %rsi      # 0x15655
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x1168a
leaq 0x472e(%rip), %rsi      # 0x15d51
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x11697
leaq 0x2c5a(%rip), %rsi      # 0x14290
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x116a4
leaq 0x5a0a(%rip), %rsi      # 0x17053
movq %r14, %rdi
callq 0x32b0
testl %eax, %eax
je 0x116b1
leaq 0x59fe(%rip), %rsi      # 0x1705a
xorl %ebp, %ebp
movq %rbx, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x31c0
jmp 0x115c5
movq %rbx, %rdi
callq 0x10048
jmp 0x1152e
movq %rbx, %rdi
callq 0xd7d8
jmp 0x1152e
movq %rbx, %rdi
callq 0xc4e8
jmp 0x1152e
movq %rbx, %rdi
callq 0xcac4
jmp 0x1152e
movq %rbx, %rdi
callq 0x45c8
jmp 0x1152e
pushq $0x8
popq %rbx
leaq 0x4755(%rip), %r14      # 0x15e10
xorl %ebp, %ebp
cmpl $0x34, %ebx
je 0x115c5
movl %ebx, %edi
callq 0x11309
movq %r14, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x3170
incl %ebx
jmp 0x116bd
leaq 0x5922(%rip), %rdi      # 0x17007
leaq 0x591f(%rip), %rsi      # 0x1700b
leaq 0x5929(%rip), %rcx      # 0x1701c
pushq $0x4e
popq %rdx
callq 0x3200
nop