// File: /workspace/github_c_makefile_star2_O2/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
andq $0x0, 0x18(%rsp)
movq %rdi, %rbx
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 0x4633
pushq $0x1
popq %rsi
pushq $0xc
popq %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3480
movq (%r14), %rax
movq 0x40(%rbx), %rdx
leaq 0xfc4f(%rip), %rsi      # 0x1428d
movq %rax, %rdi
xorl %eax, %eax
callq 0x3430
leaq 0x16f51(%rip), %rdi     # 0x1b5a0
pushq $0x8
popq %rcx
leaq 0xc(%rsp), %r15
leaq 0x10(%rsp), %r9
movl %ebp, %esi
movq %r14, %rdx
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, 0x16c0c(%rip)     # 0x1b294
je 0x46a4
cmpb $0x0, 0x16d03(%rip)     # 0x1b394
je 0x46c7
leaq 0x16be6(%rip), %rdi     # 0x1b280
callq 0x474d
jmp 0x473d
cmpl $0x0, 0x16be1(%rip)     # 0x1b28c
je 0x46de
cmpq $0x0, 0x16ee3(%rip)     # 0x1b598
jne 0x46f0
leaq 0xfc4e(%rip), %rdi      # 0x1430c
xorl %eax, %eax
callq 0x3170
jmp 0x4740
cmpl $0x0, 0x16bb6(%rip)     # 0x1b284
je 0x46fe
leaq 0x16ba9(%rip), %rdi     # 0x1b280
callq 0x529f
jmp 0x473d
leaq 0xfbee(%rip), %rdi      # 0x142d3
xorl %eax, %eax
callq 0x3170
pushq $-0x1
jmp 0x473f
leaq 0x16b89(%rip), %rdi     # 0x1b280
callq 0x5fbf
jmp 0x473d
movl 0x16b84(%rip), %eax     # 0x1b288
cmpl $-0x1, %eax
je 0x4726
cmpl $0x2, %eax
ja 0x472f
cmpq $0x0, 0x16e82(%rip)     # 0x1b598
je 0x472f
leaq 0x16b61(%rip), %rdi     # 0x1b280
callq 0x57d7
jmp 0x473d
leaq 0xfba6(%rip), %rdi      # 0x142d3
jmp 0x4736
leaq 0xfb64(%rip), %rdi      # 0x1429a
xorl %eax, %eax
callq 0x3170
pushq $0x1
popq %rax
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq