// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
leaq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x31f0
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x18(%rcx), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movl 0x18(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x3110
movq %rax, %rdi
addq $0xa, %rdi
addq $0x1, %rdi
callq 0x3310
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x4e21
movq -0x10(%rbp), %rdi
movl $0x1, %esi
movl $0xc, %edx
xorl %eax, %eax
movl %eax, %ecx
movb $0x0, %al
callq 0x3450
movq -0x30(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdx
leaq 0x173ee(%rip), %rsi     # 0x1c225
movb $0x0, %al
callq 0x3400
movl -0x24(%rbp), %esi
movq -0x30(%rbp), %rdx
leaq 0x1d744(%rip), %rdi     # 0x22590
movl $0x8, %ecx
leaq -0x24(%rbp), %r8
leaq -0x20(%rbp), %r9
callq 0x3250
movq -0x30(%rbp), %rax
movq (%rax), %rdi
callq 0x3040
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movl -0x24(%rbp), %ecx
subl $0x1, %ecx
movq -0x10(%rbp), %rax
addl 0x18(%rax), %ecx
movl %ecx, 0x18(%rax)
movsbl 0x1d3f8(%rip), %eax     # 0x22284
cmpl $0x0, %eax
je 0x4f33
movsbl 0x1d4e8(%rip), %eax     # 0x22384
cmpl $0x0, %eax
je 0x4eb5
leaq 0x1d3c8(%rip), %rdi     # 0x22270
callq 0x4f90
movl %eax, -0x4(%rbp)
jmp 0x4f86
cmpl $0x0, 0x1d3b8(%rip)     # 0x22274
je 0x4ed2
leaq 0x1d3ab(%rip), %rdi     # 0x22270
callq 0x60b0
movl %eax, -0x4(%rbp)
jmp 0x4f86
cmpl $-0x1, 0x1d39f(%rip)    # 0x22278
je 0x4f18
cmpl $0x0, 0x1d396(%rip)     # 0x22278
jl 0x4f08
cmpl $0x3, 0x1d38d(%rip)     # 0x22278
jge 0x4f08
cmpq $0x0, 0x1d693(%rip)     # 0x22588
jbe 0x4f08
leaq 0x1d372(%rip), %rdi     # 0x22270
callq 0x6770
movl %eax, -0x4(%rbp)
jmp 0x4f86
leaq 0x17323(%rip), %rdi     # 0x1c232
movb $0x0, %al
callq 0x3150
jmp 0x4f26
leaq 0x1734c(%rip), %rdi     # 0x1c26b
movb $0x0, %al
callq 0x3150
jmp 0x4f28
jmp 0x4f2a
movl $0x1, -0x4(%rbp)
jmp 0x4f86
cmpl $0x0, 0x1d342(%rip)     # 0x2227c
je 0x4f6d
movl $0x1, %eax
cmpq %rax, 0x1d640(%rip)     # 0x22588
jae 0x4f5a
leaq 0x17353(%rip), %rdi     # 0x1c2a4
movb $0x0, %al
callq 0x3150
jmp 0x4f6b
leaq 0x1d30f(%rip), %rdi     # 0x22270
callq 0x7430
movl %eax, -0x4(%rbp)
jmp 0x4f86
jmp 0x4f84
leaq 0x172f7(%rip), %rdi     # 0x1c26b
movb $0x0, %al
callq 0x3150
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x4f86
jmp 0x4f86
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nop