// File: /workspace/github_cpp_makefile_star2_O1/statgen[P]statgen/lib/tclap-1.2.0/examples/../include/tclap/Arg.h
// Function: TCLAP::Arg::Arg(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, bool, bool, TCLAP::Visitor*)
inline Arg::Arg(const std::string& flag,
         const std::string& name,
         const std::string& desc,
         bool req,
         bool valreq,
         Visitor* v) :
  _flag(flag),
  _name(name),
  _description(desc),
  _required(req),
  _requireLabel("required"),
  _valueRequired(valreq),
  _alreadySet(false),
  _visitor( v ),
  _ignoreable(true),
  _xorSet(false),
  _acceptsMultipleValues(false)
{
	if ( _flag.length() > 1 )
		throw(SpecificationException(
				"Argument flag can only be one character long", toString() ) );

	if ( _name != ignoreNameString() &&
		 ( _flag == Arg::flagStartString() ||
		   _flag == Arg::nameStartString() ||
		   _flag == " " ) )
		throw(SpecificationException("Argument flag cannot be either '" +
							Arg::flagStartString() + "' or '" +
							Arg::nameStartString() + "' or a space.",
							toString() ) );

	if ( ( _name.substr( 0, Arg::flagStartString().length() ) == Arg::flagStartString() ) ||
		 ( _name.substr( 0, Arg::nameStartString().length() ) == Arg::nameStartString() ) ||
		 ( _name.find( " ", 0 ) != std::string::npos ) )
		throw(SpecificationException("Argument name begin with either '" +
							Arg::flagStartString() + "' or '" +
							Arg::nameStartString() + "' or space.",
							toString() ) );

}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movl %r9d, %r15d
movl %r8d, %r12d
movq %rcx, %r13
movq %rdx, %rbx
movq %rdi, %rbp
leaq 0x6777(%rip), %rax      # 0xe8f0
movq %rax, (%rdi)
leaq 0x8(%rdi), %r14
leaq 0x18(%rdi), %rax
movq %rax, 0x88(%rsp)
movq %rax, 0x8(%rdi)
movq (%rsi), %rax
movq 0x8(%rsi), %rdx
addq %rax, %rdx
movq %r14, %rdi
movq %rax, %rsi
callq 0x7330
leaq 0x28(%rbp), %rdi
leaq 0x38(%rbp), %rax
movq %rax, 0x80(%rsp)
movq %rax, 0x28(%rbp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %rdi, 0x28(%rsp)
movq %r14, 0xe0(%rsp)
callq 0x7330
leaq 0x48(%rbp), %rbx
leaq 0x58(%rbp), %rax
movq %rax, 0x78(%rsp)
movq %rax, 0x48(%rbp)
movq (%r13), %rsi
movq 0x8(%r13), %rdx
addq %rsi, %rdx
movq %rbx, %rdi
callq 0x7330
movb %r12b, 0x68(%rbp)
leaq 0x70(%rbp), %r12
leaq 0x80(%rbp), %rax
movq %rax, 0x70(%rsp)
movq %rax, 0x70(%rbp)
leaq 0x3276(%rip), %rsi      # 0xb48e
leaq 0x3277(%rip), %rdx      # 0xb496
movq %r12, %rdi
movq %rbx, 0xd8(%rsp)
callq 0x6fd8
movq 0x200(%rsp), %rax
movb %r15b, 0x90(%rbp)
xorl %ecx, %ecx
movb %cl, 0x91(%rbp)
movq %rax, 0x98(%rbp)
movw $0x1, 0xa0(%rbp)
movb %cl, 0xa2(%rbp)
movq 0x10(%rbp), %r15
cmpq $0x2, %r15
movq %r12, 0xd0(%rsp)
jae 0x857b
leaq 0x18(%rsp), %r13
movq %r13, -0x10(%r13)
movabsq $0x725f65726f6e6769, %rax # imm = 0x725F65726F6E6769
movq %rax, (%r13)
movl $0x74736572, 0x7(%r13)  # imm = 0x74736572
movq $0xb, -0x8(%r13)
movb $0x0, 0xb(%r13)
movq 0x30(%rbp), %rdx
movb $0x1, %bl
cmpq $0xb, %rdx
jne 0x82bf
movq 0x28(%rsp), %rax
movq (%rax), %rdi
movq %r13, %rsi
callq 0x31d0
testl %eax, %eax
setne %bl
testb %bl, %bl
je 0x832b
leaq 0x138(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movw $0x2d, (%rsi)
movq $0x1, -0x8(%rsi)
cmpq $0x1, %r15
jne 0x82f5
movq (%r14), %rdi
movq %r15, %rdx
callq 0x31d0
testl %eax, %eax
je 0x8571
leaq 0x1b8(%rsp), %rax
movq %rax, -0x10(%rax)
movw $0x2d2d, (%rax)         # imm = 0x2D2D
movq $0x2, -0x8(%rax)
movb $0x0, 0x2(%rax)
leaq 0x30ff(%rip), %rsi      # 0xb418
movq %r14, %rdi
callq 0x3070
testl %eax, %eax
sete %r14b
movb $0x1, %al
jmp 0x8330
xorl %eax, %eax
xorl %r14d, %r14d
testb %al, %al
je 0x8355
leaq 0x1b8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8355
movq 0x1b8(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %bl, %bl
je 0x837a
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x837a
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x8391
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %r14b, %r14b
jne 0x85f1
leaq 0x60(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movw $0x2d, (%rbx)
movq $0x1, -0x8(%rbx)
leaq 0x8(%rsp), %rdi
movl $0x1, %ecx
movq 0x28(%rsp), %rsi
xorl %edx, %edx
callq 0x31e0
leaq 0x40(%rsp), %r15
movq %r15, -0x10(%r15)
movw $0x2d, (%r15)
movq $0x1, -0x8(%r15)
movq 0x10(%rsp), %rdx
cmpq $0x1, %rdx
jne 0x83fd
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x31d0
testl %eax, %eax
sete %r14b
jmp 0x8400
xorl %r14d, %r14d
movb $0x1, %r12b
testb %r14b, %r14b
jne 0x84a9
movq %rbx, %r13
leaq 0xa0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movw $0x2d2d, (%rbx)         # imm = 0x2D2D
movq $0x2, -0x8(%rbx)
movb $0x0, 0x2(%rbx)
leaq 0xb0(%rsp), %rdi
movl $0x2, %ecx
movq 0x28(%rsp), %rsi
xorl %edx, %edx
callq 0x31e0
leaq 0x118(%rsp), %rsi
movq %rsi, -0x10(%rsi)
movw $0x2d2d, (%rsi)         # imm = 0x2D2D
movq $0x2, -0x8(%rsi)
movb $0x0, 0x2(%rsi)
movq 0xb8(%rsp), %rdx
cmpq $0x2, %rdx
movq %r13, %rbx
leaq 0x18(%rsp), %r13
jne 0x8489
movq 0xb0(%rsp), %rdi
callq 0x31d0
testl %eax, %eax
je 0x84a9
leaq 0x2f88(%rip), %rsi      # 0xb418
movl $0x1, %ecx
movq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0x32f0
cmpq $-0x1, %rax
setne %r12b
testb %r14b, %r14b
jne 0x8511
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84cf
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x31c0
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x84f0
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x31c0
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8511
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x30(%rsp), %rdi
cmpq %r15, %rdi
je 0x8528
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x853f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x50(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8556
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %r12b, %r12b
jne 0x8671
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movb $0x1, %r14b
xorl %eax, %eax
jmp 0x8330
movl $0x68, %edi
callq 0x30e0
movq %rax, %r15
leaq 0x18(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x2c04(%rip), %rsi      # 0xb19c
leaq 0x2c29(%rip), %rdx      # 0xb1c8
leaq 0x8(%rsp), %rdi
callq 0x6fd8
movq (%rbp), %rax
leaq 0x128(%rsp), %rdi
movq %rbp, %rsi
callq *0x38(%rax)
movb $0x1, %r12b
leaq 0x8(%rsp), %rsi
leaq 0x128(%rsp), %rdx
movq %r15, %rdi
callq 0x8c7c
xorl %r12d, %r12d
leaq 0x662b(%rip), %rsi      # 0xec08
leaq 0x1b76(%rip), %rdx      # 0xa15a
movq %r15, %rdi
callq 0x32e0
jmp 0x88de
movl $0x68, %edi
callq 0x30e0
movq %rax, %r14
leaq 0xa0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movw $0x2d, (%rbx)
movq $0x1, -0x8(%rbx)
leaq 0x2bab(%rip), %rsi      # 0xb1c9
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x7af8
leaq 0x2bb0(%rip), %rsi      # 0xb1ea
leaq 0xb0(%rsp), %rdi
callq 0x3340
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x86ef
movups (%rcx), %xmm0
movups %xmm0, (%r12)
jmp 0x86fc
movl $0x68, %edi
callq 0x30e0
movq %rax, %r14
leaq 0x198(%rsp), %r12
movq %r12, -0x10(%r12)
movw $0x2d, (%r12)
movq $0x1, -0x8(%r12)
leaq 0x2b5d(%rip), %rsi      # 0xb1ff
leaq 0xe8(%rsp), %rdi
leaq 0x188(%rsp), %rdx
callq 0x7af8
leaq 0x2b2c(%rip), %rsi      # 0xb1ea
leaq 0xe8(%rsp), %rdi
callq 0x3340
movq %r15, 0x30(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x877d
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x878a
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
leaq 0x30(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
xorl %ecx, %ecx
movb %cl, 0x10(%rax)
leaq 0x118(%rsp), %rax
movq %rax, -0x10(%rax)
movw $0x2d2d, (%rax)         # imm = 0x2D2D
movq $0x2, -0x8(%rax)
movb %cl, 0x2(%rax)
leaq 0x50(%rsp), %rdi
leaq 0x108(%rsp), %rdx
callq 0x73c0
leaq 0x2aa3(%rip), %rsi      # 0xb1f1
leaq 0x50(%rsp), %rdi
callq 0x3340
movq %r13, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x8804
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x8811
movq %rdx, 0x30(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x40(%rsp)
movq 0x8(%rax), %rdx
leaq 0x30(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
xorl %ecx, %ecx
movb %cl, 0x10(%rax)
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
movw $0x2d2d, (%rax)         # imm = 0x2D2D
movq $0x2, -0x8(%rax)
movb %cl, 0x2(%rax)
leaq 0x50(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x73c0
leaq 0x2a45(%rip), %rsi      # 0xb221
leaq 0x50(%rsp), %rdi
callq 0x3340
movq %r13, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x886e
movups (%rcx), %xmm0
movups %xmm0, (%r13)
jmp 0x887b
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rbp), %rax
leaq 0xe8(%rsp), %rdi
movq %rbp, %rsi
callq *0x38(%rax)
movb $0x1, %r15b
leaq 0x8(%rsp), %rsi
leaq 0xe8(%rsp), %rdx
movq %r14, %rdi
callq 0x8c7c
xorl %r15d, %r15d
leaq 0x63ab(%rip), %rsi      # 0xec08
leaq 0x18f6(%rip), %rdx      # 0xa15a
movq %r14, %rdi
callq 0x32e0
jmp 0x88de
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rbp), %rax
leaq 0x168(%rsp), %rdi
movq %rbp, %rsi
callq *0x38(%rax)
movb $0x1, %al
movl %eax, 0x4(%rsp)
leaq 0x8(%rsp), %rsi
leaq 0x168(%rsp), %rdx
movq %r14, %rdi
callq 0x8c7c
movl $0x0, 0x4(%rsp)
leaq 0x6339(%rip), %rsi      # 0xec08
leaq 0x1884(%rip), %rdx      # 0xa15a
movq %r14, %rdi
callq 0x32e0
movq %rax, %rbp
leaq 0x178(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x890d
movq 0x178(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x890d
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x8974
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8974
movq %rax, %rbp
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8952
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8952
movq %rax, %rbp
movb $0x1, %r15b
movq 0x8(%rsp), %rdi
cmpq %r13, %rdi
je 0x8993
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8993
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
movq 0x50(%rsp), %rdi
cmpq %rbx, %rdi
je 0x89b9
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x89b9
movq %rax, %rbp
movb $0x1, %r15b
leaq 0x60(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x89fd
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x89fd
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
movq 0x148(%rsp), %rdi
leaq 0x158(%rsp), %rax
cmpq %rax, %rdi
je 0x89de
movq 0x158(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x30(%rsp), %rdi
cmpq %r15, %rdi
je 0x8a44
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8a44
movq %rax, %rbp
movb $0x1, %r15b
movq 0x108(%rsp), %rdi
leaq 0x118(%rsp), %rax
cmpq %rax, %rdi
je 0x8a22
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x8a74
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8a74
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8af3
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8af3
movq %rax, %rbp
movb $0x1, %r15b
leaq 0xc0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8b7b
movq 0xc0(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8b7b
movq %rax, %rbp
leaq 0x138(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8aca
movq 0x138(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8aca
movq %rax, %rbp
movb $0x1, %r12b
movq 0x8(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8ba8
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8ba8
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
movq 0x188(%rsp), %rdi
cmpq %r12, %rdi
je 0x8b10
movq 0x198(%rsp), %rsi
incq %rsi
callq 0x31c0
cmpb $0x0, 0x4(%rsp)
jne 0x8b9d
jmp 0x8bd4
movq %rax, %rbp
movq 0x90(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8b40
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x30(%rsp), %rdi
cmpq %r15, %rdi
je 0x8b57
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x8bbd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x31c0
jmp 0x8bbd
movq %rax, %rbp
movb $0x1, %r15b
movq 0x90(%rsp), %rdi
cmpq %rbx, %rdi
je 0x8b98
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x31c0
testb %r15b, %r15b
je 0x8bd4
movq %r14, %rdi
jmp 0x8bb0
movq %rax, %rbp
movb $0x1, %r12b
testb %r12b, %r12b
je 0x8bd4
movq %r15, %rdi
callq 0x3150
jmp 0x8bd4
movq %rbx, %r13
movq %rax, %rbp
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x8bd4
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x31c0
movq 0xd0(%rsp), %rax
movq (%rax), %rdi
cmpq 0x70(%rsp), %rdi
je 0x8bfb
movq 0x70(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x31c0
jmp 0x8bfb
movq %rax, %rbp
movq 0xd8(%rsp), %rax
movq (%rax), %rdi
cmpq 0x78(%rsp), %rdi
je 0x8c22
movq 0x78(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x31c0
jmp 0x8c22
movq %rax, %rbp
movq 0x28(%rsp), %rax
movq (%rax), %rdi
cmpq 0x80(%rsp), %rdi
je 0x8c4c
movq 0x80(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x31c0
jmp 0x8c4c
movq %rax, %rbp
movq 0xe0(%rsp), %rax
movq (%rax), %rdi
cmpq 0x88(%rsp), %rdi
je 0x8c74
movq 0x88(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x31c0
movq %rbp, %rdi
callq 0x3300