// File: /workspace/github_c_makefile_star2_O1/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 %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movl 0x8(%rdi), %eax
movslq 0x18(%rdi), %rcx
subl %ecx, %eax
incl %eax
movl %eax, 0xc(%rsp)
movq 0x10(%rdi), %rax
movq 0x28(%rdi), %rdx
leaq (%rax,%rcx,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 0x47f5
movq %rbx, %rdi
movl $0x1, %esi
movl $0xc, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0x3480
movq (%r14), %rdi
movq 0x40(%rbx), %rdx
leaq 0x10a8a(%rip), %rsi     # 0x1528d
xorl %eax, %eax
callq 0x3430
leaq 0xc(%rsp), %r15
movl (%r15), %esi
leaq 0x17d87(%rip), %rdi     # 0x1c5a0
leaq 0x10(%rsp), %r9
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, 0x17a47(%rip)     # 0x1c294
je 0x4869
cmpb $0x0, 0x17b3e(%rip)     # 0x1c394
je 0x488c
leaq 0x17a21(%rip), %rdi     # 0x1c280
callq 0x4916
jmp 0x4905
cmpl $0x0, 0x17a1c(%rip)     # 0x1c28c
je 0x48a3
cmpq $0x0, 0x17d1e(%rip)     # 0x1c598
jne 0x48b8
leaq 0x10a89(%rip), %rdi     # 0x1530c
xorl %eax, %eax
callq 0x3170
jmp 0x490a
cmpl $0x0, 0x179f1(%rip)     # 0x1c284
je 0x48c6
leaq 0x179e4(%rip), %rdi     # 0x1c280
callq 0x5499
jmp 0x4905
leaq 0x10a29(%rip), %rdi     # 0x152d3
xorl %eax, %eax
callq 0x3170
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
jmp 0x490a
leaq 0x179c1(%rip), %rdi     # 0x1c280
callq 0x6277
jmp 0x4905
movl 0x179bc(%rip), %eax     # 0x1c288
cmpl $-0x1, %eax
je 0x48ee
cmpl $0x2, %eax
ja 0x48f7
cmpq $0x0, 0x17cba(%rip)     # 0x1c598
je 0x48f7
leaq 0x17999(%rip), %rdi     # 0x1c280
callq 0x5a11
jmp 0x4905
leaq 0x109de(%rip), %rdi     # 0x152d3
jmp 0x48fe
leaq 0x1099c(%rip), %rdi     # 0x1529a
xorl %eax, %eax
callq 0x3170
movl $0x1, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq