// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/common.cpp
// Function: Common_sp::Application::qc() const
void Application::qc () const
{
  if (! qc_on)
    return;
  
  QC_ASSERT (! description. empty ());
  QC_ASSERT (! version. empty ());
  QC_IMPLY (! needsArg, positionalArgs. empty ());
  
  for (const Positional& p : positionalArgs)
  	p. qc ();
  	
  map<string,size_t> requiredGroups;
  string requiredGroup_prev;
  for (const Key& key : keyArgs)
  {
  	key. qc ();
  	if (! key. requiredGroup. empty () && key. requiredGroup != requiredGroup_prev)
  	{
  		QC_ASSERT (! contains (requiredGroups, key. requiredGroup));
  		requiredGroups [key. requiredGroup] ++;
  	}
  	requiredGroup_prev = key. requiredGroup;
  }
  for (const auto& it : requiredGroups)
  	QC_ASSERT (it. second > 1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
cmpb $0x1, 0x4ec00(%rip)     # 0x84ae0
jne 0x3602e
movq %rdi, %r12
callq 0xb060
andl $0x0, (%rax)
cmpq $0x0, 0x10(%r12)
je 0x361e8
cmpq $0x0, 0x30(%r12)
je 0x362c2
movq %rax, %rbx
leaq 0xd0(%r12), %r14
cmpb $0x0, 0xa8(%r12)
jne 0x35f2d
cmpq %r14, 0xd0(%r12)
jne 0x3639c
movq %r14, %r15
movq (%r15), %r15
cmpq %r14, %r15
je 0x35f43
leaq 0x10(%r15), %rdi
callq 0x333ea
jmp 0x35f30
leaq 0xf0(%rsp), %rbp
andl $0x0, (%rbp)
andq $0x0, 0x8(%rbp)
movq %rbp, 0x10(%rbp)
movq %rbp, 0x18(%rbp)
andq $0x0, 0x20(%rbp)
leaq 0xd8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
addq $0xe8, %r12
leaq 0xc8(%rsp), %r15
movq %r12, %r14
movq (%r14), %r14
cmpq %r12, %r14
je 0x35ff3
leaq 0x10(%r14), %rdi
callq 0x33672
leaq 0x88(%r14), %r13
cmpq $0x0, 0x90(%r14)
je 0x35fe6
movq %r13, %rdi
movq %r15, %rsi
callq 0x1d401
testb %al, %al
je 0x35fe6
andl $0x0, (%rbx)
leaq 0xe8(%rsp), %rdi
movq %r13, %rsi
callq 0x3d47c
testb %al, %al
jne 0x36114
leaq 0xe8(%rsp), %rdi
movq %r13, %rsi
callq 0x3d492
incq (%rax)
movq %r15, %rdi
movq %r13, %rsi
callq 0xb350
jmp 0x35f87
movq 0x100(%rsp), %rax
cmpq %rbp, %rax
je 0x36014
andl $0x0, (%rbx)
cmpq $0x1, 0x40(%rax)
jbe 0x36040
movq %rax, %rdi
callq 0xb430
jmp 0x35ffb
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0xe8(%rsp), %rdi
callq 0x3e282
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0xb6c0
testl %eax, %eax
jne 0x36476
leaq 0x258ed(%rip), %rsi     # 0x5b941
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0x8(%rsp), %rdi
movl $0xf00, %esi            # imm = 0xF00
callq 0x1caa3
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x1ca3c
leaq 0x23b56(%rip), %rdx     # 0x59be3
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1b92d
leaq 0x27561(%rip), %rsi     # 0x5d604
leaq 0x118(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x25882(%rip), %rdx     # 0x5b93e
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x1b92d
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x1ca3c
leaq 0x2759f(%rip), %rdx     # 0x5d691
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1b92d
leaq 0xa8(%rsp), %rdi
callq 0x224fc
callq 0xb6c0
testl %eax, %eax
jne 0x36476
leaq 0x25819(%rip), %rsi     # 0x5b941
leaq 0x28(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x1b7b6
leaq 0x8(%rsp), %rdi
movl $0xefa, %esi            # imm = 0xEFA
callq 0x1caa3
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x1ca3c
leaq 0x23a82(%rip), %rdx     # 0x59be3
leaq 0x68(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1b92d
leaq 0x2748d(%rip), %rsi     # 0x5d604
leaq 0x118(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1b7b6
leaq 0x257ae(%rip), %rdx     # 0x5b93e
leaq 0x138(%rsp), %rdi
leaq 0x118(%rsp), %rsi
callq 0x1b92d
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x138(%rsp), %rdx
callq 0x1ca3c
leaq 0x2749b(%rip), %rdx     # 0x5d661
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1b92d
leaq 0xa8(%rsp), %rdi
callq 0x224fc
callq 0xb6c0
testl %eax, %eax
jne 0x36476
leaq 0x25745(%rip), %rsi     # 0x5b941
leaq 0x68(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x1b7b6
leaq 0x48(%rsp), %rdi
movl $0xeec, %esi            # imm = 0xEEC
callq 0x1caa3
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1ca3c
leaq 0x239a8(%rip), %rdx     # 0x59be3
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1b92d
leaq 0x273ad(%rip), %rsi     # 0x5d604
leaq 0x8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x1b7b6
leaq 0x256ce(%rip), %rdx     # 0x5b93e
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x1ca3c
leaq 0x26e97(%rip), %rdx     # 0x5d137
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1b92d
leaq 0xe8(%rsp), %rdi
callq 0x224fc
callq 0xb6c0
testl %eax, %eax
jne 0x36476
leaq 0x2566b(%rip), %rsi     # 0x5b941
leaq 0x68(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x1b7b6
leaq 0x48(%rsp), %rdi
movl $0xeed, %esi            # imm = 0xEED
callq 0x1caa3
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1ca3c
leaq 0x238ce(%rip), %rdx     # 0x59be3
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1b92d
leaq 0x272d3(%rip), %rsi     # 0x5d604
leaq 0x8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x1b7b6
leaq 0x255f4(%rip), %rdx     # 0x5b93e
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x1ca3c
leaq 0x272ba(%rip), %rdx     # 0x5d634
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1b92d
leaq 0xe8(%rsp), %rdi
callq 0x224fc
callq 0xb6c0
testl %eax, %eax
jne 0x36476
leaq 0x25591(%rip), %rsi     # 0x5b941
leaq 0x68(%rsp), %rdi
leaq 0x138(%rsp), %rdx
callq 0x1b7b6
leaq 0x48(%rsp), %rdi
movl $0xeee, %esi            # imm = 0xEEE
callq 0x1caa3
leaq 0x88(%rsp), %rdi
leaq 0x68(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x1ca3c
leaq 0x237f4(%rip), %rdx     # 0x59be3
leaq 0xa8(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1b92d
leaq 0x271f9(%rip), %rsi     # 0x5d604
leaq 0x8(%rsp), %rdi
leaq 0x118(%rsp), %rdx
callq 0x1b7b6
leaq 0x2551a(%rip), %rdx     # 0x5b93e
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1b92d
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
callq 0x1ca3c
leaq 0x271f4(%rip), %rdx     # 0x5d648
leaq 0xe8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1b92d
leaq 0xe8(%rsp), %rdi
callq 0x224fc
pushq $0x1
popq %rdi
callq 0xb6d0
jmp 0x36486
jmp 0x36486
jmp 0x36498
jmp 0x36498
movq %rax, %rbx
leaq 0xe8(%rsp), %rdi
callq 0xbb68
jmp 0x3649b
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xbb68
jmp 0x364b1
jmp 0x364ae
jmp 0x364ae
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x364c4
jmp 0x364c1
jmp 0x364c1
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x364d7
jmp 0x364d4
jmp 0x364d4
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbb68
jmp 0x364f1
jmp 0x36502
jmp 0x36514
jmp 0x364ee
jmp 0x364ee
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xbb68
jmp 0x3652d
jmp 0x3653b
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbb68
jmp 0x36517
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xbb68
jmp 0x3653e
jmp 0x3652a
jmp 0x3652a
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xbb68
jmp 0x36554
jmp 0x36565
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0xbb68
jmp 0x36568
jmp 0x36551
jmp 0x36551
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xbb68
jmp 0x365e3
jmp 0x36582
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
callq 0xbb68
jmp 0x36585
jmp 0x3657b
jmp 0x3657b
movq %rax, %rbx
jmp 0x365e3
jmp 0x36593
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xbb68
jmp 0x36596
jmp 0x365a4
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xbb68
jmp 0x365a7
jmp 0x365b5
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xbb68
jmp 0x365b8
jmp 0x365c6
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xbb68
jmp 0x365c9
jmp 0x365c6
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0xe8(%rsp), %rdi
callq 0x3e282
movq %rbx, %rdi
callq 0xba30
nop