// File: /workspace/github_cpp_makefile_star2_O2/ncbi[P]amr/common.cpp
// Function: Common_sp::Application::getInstruction[abi:cxx11](bool) const
string Application::getInstruction (bool screen) const
{
  string instr (description);

  instr += "\n\n" + colorize ("USAGE", screen) + ":   " + programName; 

  for (const Positional& p : positionalArgs)
    instr += " " + p. str ();

  string requiredGroup_prev;
  for (const Key& key : keyArgs)
  {
 		if (key. requiredGroup == requiredGroup_prev)
	  	if (key. requiredGroup. empty ())
		    instr += " ";
	  	else
  		  instr += " | ";
  	else
  		if (requiredGroup_prev. empty ())
  			instr += " (";
  		else 
  		{
 			  instr += ") ";
  			if (! key. requiredGroup. empty ())
  				instr += "(";
  		}
	  if (key. requiredGroup. empty ())
	  	instr += "[";
    instr += key. str ();
	  if (key. requiredGroup. empty ())
	  	instr += "]";
  	requiredGroup_prev = key. requiredGroup;
  }
	if (! requiredGroup_prev. empty ())
		instr += ")";
  
  instr += "\n" + colorize ("HELP", screen) + ":    " + programName + " " + ifS (gnu, "-") + "-" + helpS;
  if (gnu)
    instr += " or " + programName + " -" + helpS [0];
  instr += "\n" + colorize ("VERSION", screen) + ": " + programName + " " + ifS (gnu, "-") + "-" + versionS;
  if (gnu)
    instr += " or " + programName + " -" + versionS [0];
    
  return instr;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movl %edx, %ebp
movq %rsi, %rbx
addq $0x8, %rsi
movq %rdi, 0x10(%rsp)
callq 0xb7b0
leaq 0x28b5b(%rip), %rsi     # 0x5d7a2
leaq 0x88(%rsp), %rdi
leaq 0xc8(%rsp), %rdx
callq 0x1b7b6
movzbl %bpl, %ebp
leaq 0x38(%rsp), %rdi
leaq 0x88(%rsp), %rsi
movl %ebp, %edx
callq 0x1d1a0
leaq 0x28c78(%rip), %rsi     # 0x5d8f3
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x1b94c
leaq 0x28b17(%rip), %rdx     # 0x5d7a8
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1b92d
leaq 0x4fe11(%rip), %rdx     # 0x84ab8
leaq 0xa8(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x1cbaf
movq %rbx, 0x78(%rsp)
leaq 0xa8(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0xbb00
leaq 0xa8(%rsp), %r14
movq %r14, %rdi
callq 0xbb68
leaq 0x18(%rsp), %r12
movq %r12, %rdi
callq 0xbb68
leaq 0x58(%rsp), %rdi
callq 0xbb68
leaq 0x38(%rsp), %rdi
callq 0xbb68
leaq 0x88(%rsp), %rdi
callq 0xbb68
movq 0x78(%rsp), %rax
leaq 0xd0(%rax), %rbx
leaq 0x28ae4(%rip), %r15     # 0x5d805
movq %rbx, %r13
movq (%r13), %r13
cmpq %rbx, %r13
je 0x34d66
leaq 0x10(%r13), %rsi
movq %r12, %rdi
callq 0x1d0e4
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
callq 0x1b94c
movq 0x10(%rsp), %rdi
movq %r14, %rsi
callq 0xbb00
movq %r14, %rdi
callq 0xbb68
movq %r12, %rdi
callq 0xbb68
jmp 0x34d24
movl %ebp, 0x84(%rsp)
leaq 0xb8(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq 0x78(%rsp), %rax
leaq 0xe8(%rax), %rbx
leaq 0xa8(%rsp), %r12
leaq 0x18(%rsp), %rbp
movq %rbx, %r14
movq (%r14), %r14
cmpq %rbx, %r14
je 0x34e7a
leaq 0x88(%r14), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x1d9db
testb %al, %al
je 0x34dd5
cmpq $0x0, 0x90(%r14)
movq %r15, %rsi
je 0x34e09
leaq 0x289da(%rip), %rsi     # 0x5d7ad
jmp 0x34e09
cmpq $0x0, 0xb0(%rsp)
leaq 0x251db(%rip), %rsi     # 0x59fc0
je 0x34e09
movq 0x10(%rsp), %rdi
leaq 0x27763(%rip), %rsi     # 0x5c556
callq 0xbac0
cmpq $0x0, 0x90(%r14)
leaq 0x251ba(%rip), %rsi     # 0x59fc1
je 0x34e13
movq 0x10(%rsp), %rdi
callq 0xbac0
cmpq $0x0, 0x90(%r14)
jne 0x34e2e
movq 0x10(%rsp), %rdi
leaq 0x260d5(%rip), %rsi     # 0x5aefe
callq 0xbac0
leaq 0x10(%r14), %rsi
movq %rbp, %rdi
callq 0x1d0e4
movq 0x10(%rsp), %rdi
movq %rbp, %rsi
callq 0xbb00
movq %rbp, %rdi
callq 0xbb68
cmpq $0x0, 0x90(%r14)
jne 0x34e6a
movq 0x10(%rsp), %rdi
leaq 0x27fa2(%rip), %rsi     # 0x5ce07
callq 0xbac0
movq %r12, %rdi
movq %r13, %rsi
callq 0xb350
jmp 0x34d9d
cmpq $0x0, 0xb0(%rsp)
je 0x34e96
leaq 0x282a9(%rip), %rsi     # 0x5d135
movq 0x10(%rsp), %rdi
callq 0xbac0
leaq 0x28914(%rip), %rsi     # 0x5d7b1
leaq 0x108(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1b7b6
movq 0x78(%rsp), %r12
movl 0x84(%rsp), %ebp
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
movl %ebp, %edx
callq 0x1d1a0
leaq 0x28a1b(%rip), %rsi     # 0x5d8f4
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x1b94c
leaq 0x288c1(%rip), %rdx     # 0x5d7b6
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x1b92d
leaq 0x4fba7(%rip), %rdx     # 0x84ab8
leaq 0xc8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1cbaf
leaq 0x288d8(%rip), %rdx     # 0x5d805
leaq 0x88(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1b92d
movb 0xa9(%r12), %bl
leaq 0x25ff1(%rip), %rsi     # 0x5af42
leaq 0x188(%rsp), %r14
leaq 0xe(%rsp), %rdx
movq %r14, %rdi
callq 0x1b7b6
leaq 0x4fb8b(%rip), %r15     # 0x84af8
testb %bl, %bl
cmoveq %r15, %r14
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
callq 0xb7b0
leaq 0x38(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x1ca3c
leaq 0x25f9e(%rip), %rdx     # 0x5af42
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1b92d
leaq 0x28e4c(%rip), %rdx     # 0x5de06
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1b92d
leaq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0xbb00
leaq 0x18(%rsp), %rdi
callq 0xbb68
leaq 0x58(%rsp), %rdi
callq 0xbb68
leaq 0x38(%rsp), %rdi
callq 0xbb68
leaq 0xe8(%rsp), %rdi
callq 0xbb68
leaq 0x188(%rsp), %rdi
callq 0xbb68
leaq 0x88(%rsp), %rdi
callq 0xbb68
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0x168(%rsp), %rdi
callq 0xbb68
leaq 0x148(%rsp), %rdi
callq 0xbb68
leaq 0x128(%rsp), %rdi
callq 0xbb68
leaq 0x108(%rsp), %rdi
callq 0xbb68
cmpb $0x1, 0xa9(%r12)
jne 0x350d6
leaq 0x2874c(%rip), %rsi     # 0x5d7bc
leaq 0x4fa41(%rip), %rdx     # 0x84ab8
leaq 0x38(%rsp), %rdi
callq 0x1b8b7
leaq 0x25eb9(%rip), %rdx     # 0x5af41
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1b92d
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
pushq $0x68
popq %rdx
callq 0x3c3a5
leaq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0xbb00
leaq 0x18(%rsp), %rdi
callq 0xbb68
leaq 0x58(%rsp), %rdi
callq 0xbb68
leaq 0x38(%rsp), %rdi
callq 0xbb68
leaq 0x286e4(%rip), %rsi     # 0x5d7c1
leaq 0x108(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x1b7b6
leaq 0x128(%rsp), %rdi
leaq 0x108(%rsp), %rsi
movl %ebp, %edx
callq 0x1d1a0
leaq 0x287e7(%rip), %rsi     # 0x5d8f4
leaq 0x148(%rsp), %rdi
leaq 0x128(%rsp), %rdx
callq 0x1b94c
leaq 0x267e7(%rip), %rdx     # 0x5b910
leaq 0x168(%rsp), %rdi
leaq 0x148(%rsp), %rsi
callq 0x1b92d
leaq 0x4f973(%rip), %rdx     # 0x84ab8
leaq 0xc8(%rsp), %rdi
leaq 0x168(%rsp), %rsi
callq 0x1cbaf
leaq 0x286a4(%rip), %rdx     # 0x5d805
leaq 0x88(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x1b92d
movb 0xa9(%r12), %bl
leaq 0x25dbd(%rip), %rsi     # 0x5af42
leaq 0x188(%rsp), %r14
leaq 0xe(%rsp), %rdx
movq %r14, %rdi
callq 0x1b7b6
testb %bl, %bl
cmovneq %r14, %r15
leaq 0xe8(%rsp), %rdi
movq %r15, %rsi
callq 0xb7b0
leaq 0x38(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
callq 0x1ca3c
leaq 0x25d71(%rip), %rdx     # 0x5af42
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1b92d
leaq 0x27edb(%rip), %rdx     # 0x5d0c2
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1b92d
leaq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0xbb00
leaq 0x18(%rsp), %rdi
callq 0xbb68
leaq 0x58(%rsp), %rdi
callq 0xbb68
leaq 0x38(%rsp), %rdi
callq 0xbb68
leaq 0xe8(%rsp), %rdi
callq 0xbb68
leaq 0x188(%rsp), %rdi
callq 0xbb68
leaq 0x88(%rsp), %rdi
callq 0xbb68
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0x168(%rsp), %rdi
callq 0xbb68
leaq 0x148(%rsp), %rdi
callq 0xbb68
leaq 0x128(%rsp), %rdi
callq 0xbb68
leaq 0x108(%rsp), %rdi
callq 0xbb68
cmpb $0x1, 0xa9(%r12)
jne 0x35303
leaq 0x2851f(%rip), %rsi     # 0x5d7bc
leaq 0x4f814(%rip), %rdx     # 0x84ab8
leaq 0x38(%rsp), %rdi
callq 0x1b8b7
leaq 0x25c8c(%rip), %rdx     # 0x5af41
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1b92d
leaq 0x18(%rsp), %rdi
leaq 0x58(%rsp), %rsi
pushq $0x76
popq %rdx
callq 0x3c3a5
leaq 0x18(%rsp), %rsi
movq 0x10(%rsp), %rdi
callq 0xbb00
leaq 0x18(%rsp), %rdi
callq 0xbb68
leaq 0x58(%rsp), %rdi
callq 0xbb68
leaq 0x38(%rsp), %rdi
callq 0xbb68
leaq 0xa8(%rsp), %rdi
callq 0xbb68
movq 0x10(%rsp), %rax
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x35332
jmp 0x35341
jmp 0x35350
jmp 0x354d1
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xbb68
jmp 0x35344
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0xbb68
jmp 0x35353
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x354a9
jmp 0x354d1
jmp 0x354d1
jmp 0x35394
jmp 0x353a3
jmp 0x353b2
jmp 0x353c1
jmp 0x353d3
jmp 0x3542e
jmp 0x35433
jmp 0x35438
jmp 0x3543d
jmp 0x35442
jmp 0x35447
jmp 0x354d1
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xbb68
jmp 0x353a6
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0xbb68
jmp 0x353b5
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0xbb68
jmp 0x353c4
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
callq 0xbb68
jmp 0x353d6
movq %rax, %r14
leaq 0x188(%rsp), %rdi
callq 0xbb68
leaq 0x88(%rsp), %rdi
callq 0xbb68
leaq 0xc8(%rsp), %rdi
callq 0xbb68
leaq 0x168(%rsp), %rdi
callq 0xbb68
leaq 0x148(%rsp), %rdi
callq 0xbb68
leaq 0x128(%rsp), %rdi
callq 0xbb68
leaq 0x108(%rsp), %rdi
jmp 0x354a9
movq %rax, %r14
jmp 0x353e3
movq %rax, %r14
jmp 0x353f0
movq %rax, %r14
jmp 0x353fd
movq %rax, %r14
jmp 0x3540a
movq %rax, %r14
jmp 0x35417
movq %rax, %r14
jmp 0x35424
jmp 0x354d1
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb68
jmp 0x35466
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xbb68
jmp 0x35475
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0xbb68
jmp 0x35484
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0xbb68
jmp 0x35493
movq %rax, %r14
leaq 0x88(%rsp), %rdi
jmp 0x354dc
jmp 0x354b0
jmp 0x354d1
movq %rax, %r14
leaq 0x18(%rsp), %rdi
callq 0xbb68
jmp 0x354d4
movq %rax, %r14
jmp 0x354e1
movq %rax, %r14
jmp 0x354ca
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb68
leaq 0x18(%rsp), %rdi
jmp 0x354dc
movq %rax, %r14
leaq 0xa8(%rsp), %rdi
callq 0xbb68
movq 0x10(%rsp), %rdi
callq 0xbb68
movq %r14, %rdi
callq 0xba30
nop