// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpl $0x3f, -0x8(%rbp)
je 0x17d7f
cmpl $0x75, -0x8(%rbp)
jne 0x17d93
movq 0x4c872(%rip), %rcx     # 0x645f8
movq -0x18(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0x17fe9
cmpl $0x6c, -0x8(%rbp)
jne 0x17dba
leaq 0x56ca(%rip), %rdi      # 0x1d46a
leaq 0xc4a9(%rip), %rsi      # 0x24250
movb $0x0, %al
callq 0x3150
movl $0x16, -0x4(%rbp)
jmp 0x17ff0
cmpl $0x0, -0x8(%rbp)
jne 0x17f14
cmpq $0x0, -0x10(%rbp)
je 0x17dcd
jmp 0x17dec
leaq 0x7114(%rip), %rdi      # 0x1eee8
leaq 0x7111(%rip), %rsi      # 0x1eeec
movl $0x4e, %edx
leaq 0x7116(%rip), %rcx      # 0x1eefd
callq 0x31e0
movq 0x4c7fd(%rip), %rcx     # 0x645f0
movq -0x18(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rbp), %rdi
leaq 0x6677(%rip), %rsi      # 0x1e47d
callq 0x3280
cmpl $0x0, %eax
jne 0x17e1e
movq -0x18(%rbp), %rdi
callq 0x15dd0
jmp 0x17f0f
movq -0x10(%rbp), %rdi
leaq 0x6022(%rip), %rsi      # 0x1de4b
callq 0x3280
cmpl $0x0, %eax
jne 0x17e41
movq -0x18(%rbp), %rdi
callq 0x11f30
jmp 0x17f0d
movq -0x10(%rbp), %rdi
leaq 0x5723(%rip), %rsi      # 0x1d56f
callq 0x3280
cmpl $0x0, %eax
jne 0x17e64
movq -0x18(%rbp), %rdi
callq 0x10250
jmp 0x17f0b
movq -0x10(%rbp), %rdi
leaq 0x5dfc(%rip), %rsi      # 0x1dc6b
callq 0x3280
cmpl $0x0, %eax
jne 0x17e87
movq -0x18(%rbp), %rdi
callq 0x10b20
jmp 0x17f09
movq -0x10(%rbp), %rdi
leaq 0x4396(%rip), %rsi      # 0x1c228
callq 0x3280
cmpl $0x0, %eax
jne 0x17ea7
movq -0x18(%rbp), %rdi
callq 0x4d70
jmp 0x17f07
movq -0x10(%rbp), %rdi
leaq 0x7082(%rip), %rsi      # 0x1ef34
callq 0x3280
cmpl $0x0, %eax
jne 0x17eef
movl $0x8, -0x1c(%rbp)
cmpl $0x34, -0x1c(%rbp)
jge 0x17eed
movl -0x1c(%rbp), %edi
callq 0x17a80
movq %rax, %rsi
leaq 0x5e4f(%rip), %rdi      # 0x1dd2a
movb $0x0, %al
callq 0x3150
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x17ec3
jmp 0x17f05
movq -0x18(%rbp), %rdi
movq -0x10(%rbp), %rdx
leaq 0x703d(%rip), %rsi      # 0x1ef3b
movb $0x0, %al
callq 0x31a0
jmp 0x17f07
jmp 0x17f09
jmp 0x17f0b
jmp 0x17f0d
jmp 0x17f0f
jmp 0x17fe5
cmpl $0x1000002, -0x8(%rbp)  # imm = 0x1000002
jne 0x17fb0
movq 0x4c6d0(%rip), %rcx     # 0x645f8
movq -0x18(%rbp), %rax
movq %rcx, 0x40(%rax)
leaq 0xc561(%rip), %rax      # 0x24498
movq (%rax), %rsi
leaq 0x7014(%rip), %rdi      # 0x1ef55
movb $0x0, %al
callq 0x3150
leaq 0x700c(%rip), %rdi      # 0x1ef5b
movl $0x7, %esi
movb $0x0, %al
callq 0x3150
leaq 0x7010(%rip), %rdi      # 0x1ef72
movb $0x0, %al
callq 0x3150
movq -0x18(%rbp), %rdi
movq 0xa064(%rip), %rax      # 0x21fd8
movq (%rax), %rsi
movl $0x2, %edx
callq 0x30c0
leaq 0x431a(%rip), %rdi      # 0x1c2a2
movb $0x0, %al
callq 0x3150
movq -0x18(%rbp), %rdi
movq 0xa03e(%rip), %rax      # 0x21fd8
movq (%rax), %rsi
movl $0x20, %edx
callq 0x30c0
movl $0x16, -0x4(%rbp)
jmp 0x17ff0
cmpl $0x1000003, -0x8(%rbp)  # imm = 0x1000003
jne 0x17fdc
movq 0x4c630(%rip), %rcx     # 0x645f0
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq %rcx, 0x40(%rax)
movl $0x7, -0x4(%rbp)
jmp 0x17ff0
movl $0x7, -0x4(%rbp)
jmp 0x17ff0
jmp 0x17fe7
jmp 0x17fe9
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)