// File: /workspace/github_c_makefile_star2_O3/yhg926[P]public_kssd/command_composite.c
// Function: cmd_composite
int cmd_composite(struct argp_state* state)
{
  struct arg_composite composite = { 0, };
  int argc = state->argc - state->next + 1;
  char** argv = &state->argv[state->next - 1];
  char* argv0 = argv[0];
  composite.global = state->input;
 argv[0] = malloc(strlen(state->name) + strlen(" composite") + 1);
  if(!argv[0])
    argp_failure(state, 1, ENOMEM, 0);
 sprintf(argv[0], "%s composite", state->name);
  argp_parse(&argp_composite, argc, argv, ARGP_IN_ORDER, &argc, &composite);
  free(argv[0]);
  argv[0] = argv0;
  state->next += argc - 1;
 if( composite_opt.refdir[0] != '\0' ){
  if (composite_opt.qrydir[0] != '\0')
   return get_species_abundance (&composite_opt);
  else if (composite_opt.i)
   return index_abv (&composite_opt);
  else if (composite_opt.s != -1){
   if( composite_opt.s >=0 && composite_opt.s <3 && composite_opt.remaining_args >0 ) return abv_search(&composite_opt);
   else printf("\vUsage: kssd composite -r <ref> -s <0|1|2> <query.abv>\n\v");
  }
  else printf("\vUsage: kssd composite -r <ref> < mode: -q | -i | -s >\n\v");
  return 1;
 }
 else if(composite_opt.d){
  if(composite_opt.remaining_args < 1) printf("\vUsage: kssd composite -d <query.abv>\n\v");
  else return read_abv (&composite_opt);
 }
 else{
  printf("\vUsage: kssd composite -r <ref> < mode: -q | -i | -s >\n\v");
  return -1;
 }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdi, %rbx
movq $0x0, 0x18(%rsp)
movl 0x8(%rdi), %ebp
movslq 0x18(%rdi), %rax
subl %eax, %ebp
incl %ebp
movl %ebp, 0xc(%rsp)
movq 0x10(%rdi), %rcx
movq 0x28(%rdi), %rdx
leaq (%rcx,%rax,8), %r14
addq $-0x8, %r14
movq (%r14), %r12
movq %rdx, 0x10(%rsp)
movq 0x40(%rdi), %rdi
callq 0x3130
leaq 0xb(%rax), %rdi
callq 0x3340
movq %rax, (%r14)
testq %rax, %rax
jne 0x4816
movq %rbx, %rdi
movl $0x1, %esi
movl $0xc, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3480
movq (%r14), %rax
movq 0x40(%rbx), %rdx
leaq 0x10abc(%rip), %rsi     # 0x152dd
movq %rax, %rdi
xorl %eax, %eax
callq 0x3430
leaq 0x17d6e(%rip), %rdi     # 0x1c5a0
leaq 0xc(%rsp), %r15
leaq 0x10(%rsp), %r9
movl %ebp, %esi
movq %r14, %rdx
movl $0x8, %ecx
movq %r15, %r8
callq 0x3280
movq (%r14), %rdi
callq 0x3040
movq %r12, (%r14)
movl (%r15), %eax
movl 0x18(%rbx), %ecx
addl %ecx, %eax
decl %eax
movl %eax, 0x18(%rbx)
cmpb $0x0, 0x17a27(%rip)     # 0x1c294
je 0x4889
cmpb $0x0, 0x17b1e(%rip)     # 0x1c394
je 0x48ac
leaq 0x17a01(%rip), %rdi     # 0x1c280
callq 0x4937
jmp 0x4925
cmpl $0x0, 0x179fc(%rip)     # 0x1c28c
je 0x48c3
cmpq $0x0, 0x17cfe(%rip)     # 0x1c598
jne 0x48d8
leaq 0x10ab9(%rip), %rdi     # 0x1535c
xorl %eax, %eax
callq 0x3170
jmp 0x492a
cmpl $0x0, 0x179d1(%rip)     # 0x1c284
je 0x48e6
leaq 0x179c4(%rip), %rdi     # 0x1c280
callq 0x551c
jmp 0x4925
leaq 0x10a59(%rip), %rdi     # 0x15323
xorl %eax, %eax
callq 0x3170
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x492a
leaq 0x179a1(%rip), %rdi     # 0x1c280
callq 0x6434
jmp 0x4925
movl 0x1799c(%rip), %eax     # 0x1c288
cmpl $-0x1, %eax
je 0x490e
cmpl $0x2, %eax
ja 0x4917
cmpq $0x0, 0x17c9a(%rip)     # 0x1c598
je 0x4917
leaq 0x17979(%rip), %rdi     # 0x1c280
callq 0x5a8f
jmp 0x4925
leaq 0x10a0e(%rip), %rdi     # 0x15323
jmp 0x491e
leaq 0x109cc(%rip), %rdi     # 0x152ea
xorl %eax, %eax
callq 0x3170
movl $0x1, %eax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq