// File: statgen[P]statgen/lib/tclap-1.2.0/examples/test6.cpp
// Function: main
int main(int argc, char** argv)
{
	// Wrap everything in a try block.  Do this every time,
	// because exceptions will be thrown for problems.
	try {

	// Define the command line object.
	CmdLine cmd("Command description message", ' ', "0.9");

	vector<string> allowed;
	allowed.push_back("homer");
	allowed.push_back("marge");
	allowed.push_back("bart");
	allowed.push_back("lisa");
	allowed.push_back("maggie");
	ValuesConstraint<string> allowedVals( allowed );

	ValueArg<string> nameArg("n","name","Name to print",true,"homer",
					         &allowedVals);
	cmd.add( nameArg );

	vector<int> iallowed;
	iallowed.push_back(1);
	iallowed.push_back(2);
	iallowed.push_back(3);
	ValuesConstraint<int> iallowedVals( iallowed );

	UnlabeledValueArg<int> intArg("times","Number of times to print",true,1,
					      &iallowedVals,false);
	cmd.add( intArg );

	// Parse the args.
	cmd.parse( argc, argv );

	// Get the value parsed by each arg.
	int num = intArg.getValue();
	string name = nameArg.getValue();

	for ( int i = 0; i < num; i++ )
		cout << "My name is " << name << endl;

	} catch ( ArgException& e)  // catch any exceptions
	{ cerr << "error: " << e.error() << " for arg " << e.argId() << endl; }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6e0, %rsp            # imm = 0x6E0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x111(%rbp), %rdi
movq %rdi, -0x628(%rbp)
callq 0x5490
movq -0x628(%rbp), %rdx
leaq 0x119b8(%rip), %rsi     # 0x17052
leaq -0x110(%rbp), %rdi
callq 0x6860
jmp 0x56a8
leaq -0x149(%rbp), %rdi
movq %rdi, -0x630(%rbp)
callq 0x5490
movq -0x630(%rbp), %rdx
leaq 0x119a5(%rip), %rsi     # 0x1706e
leaq -0x148(%rbp), %rdi
callq 0x6860
jmp 0x56d7
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x20, %edx
leaq -0x148(%rbp), %rcx
movl $0x1, %r8d
callq 0x7e10
jmp 0x56fe
leaq -0x148(%rbp), %rdi
callq 0x5528
leaq -0x149(%rbp), %rdi
callq 0x52e0
leaq -0x110(%rbp), %rdi
callq 0x5528
leaq -0x111(%rbp), %rdi
callq 0x52e0
leaq -0x168(%rbp), %rdi
callq 0x7fe0
leaq -0x189(%rbp), %rdi
movq %rdi, -0x638(%rbp)
callq 0x5490
movq -0x638(%rbp), %rdx
leaq 0x11917(%rip), %rsi     # 0x17072
leaq -0x188(%rbp), %rdi
callq 0x6860
jmp 0x5769
leaq -0x168(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0x8000
jmp 0x577e
leaq -0x188(%rbp), %rdi
callq 0x5528
leaq -0x189(%rbp), %rdi
callq 0x52e0
leaq -0x1b1(%rbp), %rdi
movq %rdi, -0x640(%rbp)
callq 0x5490
movq -0x640(%rbp), %rdx
leaq 0x118c1(%rip), %rsi     # 0x17078
leaq -0x1b0(%rbp), %rdi
callq 0x6860
jmp 0x57c5
leaq -0x168(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x8000
jmp 0x57da
leaq -0x1b0(%rbp), %rdi
callq 0x5528
leaq -0x1b1(%rbp), %rdi
callq 0x52e0
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x648(%rbp)
callq 0x5490
movq -0x648(%rbp), %rdx
leaq 0x1186b(%rip), %rsi     # 0x1707e
leaq -0x1d8(%rbp), %rdi
callq 0x6860
jmp 0x5821
leaq -0x168(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x8000
jmp 0x5836
leaq -0x1d8(%rbp), %rdi
callq 0x5528
leaq -0x1d9(%rbp), %rdi
callq 0x52e0
leaq -0x201(%rbp), %rdi
movq %rdi, -0x650(%rbp)
callq 0x5490
movq -0x650(%rbp), %rdx
leaq 0x11814(%rip), %rsi     # 0x17083
leaq -0x200(%rbp), %rdi
callq 0x6860
jmp 0x587d
leaq -0x168(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x8000
jmp 0x5892
leaq -0x200(%rbp), %rdi
callq 0x5528
leaq -0x201(%rbp), %rdi
callq 0x52e0
leaq -0x229(%rbp), %rdi
movq %rdi, -0x658(%rbp)
callq 0x5490
movq -0x658(%rbp), %rdx
leaq 0x117bd(%rip), %rsi     # 0x17088
leaq -0x228(%rbp), %rdi
callq 0x6860
jmp 0x58d9
leaq -0x168(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x8000
jmp 0x58ee
leaq -0x228(%rbp), %rdi
callq 0x5528
leaq -0x229(%rbp), %rdi
callq 0x52e0
leaq -0x270(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x8030
jmp 0x591b
leaq -0x3a1(%rbp), %rdi
movq %rdi, -0x660(%rbp)
callq 0x5490
movq -0x660(%rbp), %rdx
leaq 0x11863(%rip), %rsi     # 0x1719f
leaq -0x3a0(%rbp), %rdi
callq 0x6860
jmp 0x594a
leaq -0x3c9(%rbp), %rdi
movq %rdi, -0x668(%rbp)
callq 0x5490
movq -0x668(%rbp), %rdx
leaq 0x11724(%rip), %rsi     # 0x1708f
leaq -0x3c8(%rbp), %rdi
callq 0x6860
jmp 0x5979
leaq -0x3f1(%rbp), %rdi
movq %rdi, -0x670(%rbp)
callq 0x5490
movq -0x670(%rbp), %rdx
leaq 0x116fa(%rip), %rsi     # 0x17094
leaq -0x3f0(%rbp), %rdi
callq 0x6860
jmp 0x59a8
leaq -0x419(%rbp), %rdi
movq %rdi, -0x678(%rbp)
callq 0x5490
movq -0x678(%rbp), %rdx
leaq 0x116a9(%rip), %rsi     # 0x17072
leaq -0x418(%rbp), %rdi
callq 0x6860
jmp 0x59d7
movq %rsp, %rax
leaq -0x270(%rbp), %rcx
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
leaq -0x380(%rbp), %rdi
leaq -0x3a0(%rbp), %rsi
leaq -0x3c8(%rbp), %rdx
leaq -0x3f0(%rbp), %rcx
movl $0x1, %r8d
leaq -0x418(%rbp), %r9
callq 0x8200
jmp 0x5a1c
leaq -0x418(%rbp), %rdi
callq 0x5528
leaq -0x419(%rbp), %rdi
callq 0x52e0
leaq -0x3f0(%rbp), %rdi
callq 0x5528
leaq -0x3f1(%rbp), %rdi
callq 0x52e0
leaq -0x3c8(%rbp), %rdi
callq 0x5528
leaq -0x3c9(%rbp), %rdi
callq 0x52e0
leaq -0x3a0(%rbp), %rdi
callq 0x5528
leaq -0x3a1(%rbp), %rdi
callq 0x52e0
leaq -0xf0(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x8320
jmp 0x5a91
leaq -0x438(%rbp), %rdi
movq %rdi, -0x680(%rbp)
callq 0x8350
movq -0x680(%rbp), %rdi
movl $0x1, -0x43c(%rbp)
leaq -0x43c(%rbp), %rsi
callq 0x8370
jmp 0x5ac3
movl $0x2, -0x440(%rbp)
leaq -0x438(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x8370
jmp 0x5ae2
movl $0x3, -0x444(%rbp)
leaq -0x438(%rbp), %rdi
leaq -0x444(%rbp), %rsi
callq 0x8370
jmp 0x5b01
leaq -0x488(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0x83a0
jmp 0x5b16
leaq -0x581(%rbp), %rdi
movq %rdi, -0x688(%rbp)
callq 0x5490
movq -0x688(%rbp), %rdx
leaq 0x1156b(%rip), %rsi     # 0x170a2
leaq -0x580(%rbp), %rdi
callq 0x6860
jmp 0x5b45
leaq -0x5a9(%rbp), %rdi
movq %rdi, -0x690(%rbp)
callq 0x5490
movq -0x690(%rbp), %rdx
leaq 0x11542(%rip), %rsi     # 0x170a8
leaq -0x5a8(%rbp), %rdi
callq 0x6860
jmp 0x5b74
movq %rsp, %rax
movq $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x560(%rbp), %rdi
leaq -0x580(%rbp), %rsi
leaq -0x5a8(%rbp), %rdx
movl $0x1, %r8d
leaq -0x488(%rbp), %r9
movl %r8d, %ecx
callq 0x8570
jmp 0x5bb1
leaq -0x5a8(%rbp), %rdi
callq 0x5528
leaq -0x5a9(%rbp), %rdi
callq 0x52e0
leaq -0x580(%rbp), %rdi
callq 0x5528
leaq -0x581(%rbp), %rdi
callq 0x52e0
leaq -0xf0(%rbp), %rdi
leaq -0x560(%rbp), %rsi
callq 0x8320
jmp 0x5bf6
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0xf0(%rbp), %rdi
callq 0x86f0
jmp 0x5c0b
leaq -0x560(%rbp), %rdi
callq 0x8800
movq %rax, -0x698(%rbp)
jmp 0x5c20
movq -0x698(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x5b0(%rbp)
leaq -0x380(%rbp), %rdi
callq 0x8820
movq %rax, -0x6a0(%rbp)
jmp 0x5c44
movq -0x6a0(%rbp), %rsi
leaq -0x5d0(%rbp), %rdi
callq 0x5120
jmp 0x5c59
movl $0x0, -0x5d4(%rbp)
movl -0x5d4(%rbp), %eax
cmpl -0x5b0(%rbp), %eax
jge 0x6048
movq 0x1b354(%rip), %rdi     # 0x20fd0
leaq 0x1143e(%rip), %rsi     # 0x170c1
callq 0x5270
movq %rax, -0x6a8(%rbp)
jmp 0x5c91
movq -0x6a8(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x5250
movq %rax, -0x6b0(%rbp)
jmp 0x5cad
movq -0x6b0(%rbp), %rdi
movq 0x1b2f5(%rip), %rsi     # 0x20fb0
callq 0x52c0
jmp 0x5cc2
jmp 0x5cc4
movl -0x5d4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5d4(%rbp)
jmp 0x5c63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5d33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5d1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x5528
leaq -0x149(%rbp), %rdi
callq 0x52e0
leaq -0x110(%rbp), %rdi
callq 0x5528
leaq -0x111(%rbp), %rdi
callq 0x52e0
jmp 0x6101
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5d76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x5528
leaq -0x189(%rbp), %rdi
callq 0x52e0
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5db9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x5528
leaq -0x1b1(%rbp), %rdi
callq 0x52e0
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5dfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x5528
leaq -0x1d9(%rbp), %rdi
callq 0x52e0
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5e3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x5528
leaq -0x201(%rbp), %rdi
callq 0x52e0
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x5528
leaq -0x229(%rbp), %rdi
callq 0x52e0
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x60e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5f63
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5f4b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5f33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5f1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x5528
leaq -0x419(%rbp), %rdi
callq 0x52e0
leaq -0x3f0(%rbp), %rdi
callq 0x5528
leaq -0x3f1(%rbp), %rdi
callq 0x52e0
leaq -0x3c8(%rbp), %rdi
callq 0x5528
leaq -0x3c9(%rbp), %rdi
callq 0x52e0
leaq -0x3a0(%rbp), %rdi
callq 0x5528
leaq -0x3a1(%rbp), %rdi
callq 0x52e0
jmp 0x60dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x60d1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x60c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6000
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5fe8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x5a8(%rbp), %rdi
callq 0x5528
leaq -0x5a9(%rbp), %rdi
callq 0x52e0
leaq -0x580(%rbp), %rdi
callq 0x5528
leaq -0x581(%rbp), %rdi
callq 0x52e0
jmp 0x60b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x60ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x5528
jmp 0x60ad
leaq -0x5d0(%rbp), %rdi
callq 0x5528
leaq -0x560(%rbp), %rdi
callq 0x8840
leaq -0x488(%rbp), %rdi
callq 0x8860
leaq -0x438(%rbp), %rdi
callq 0x88b0
leaq -0x380(%rbp), %rdi
callq 0x8910
leaq -0x270(%rbp), %rdi
callq 0x8970
leaq -0x168(%rbp), %rdi
callq 0x89c0
leaq -0xf0(%rbp), %rdi
callq 0x7d10
jmp 0x61f3
leaq -0x560(%rbp), %rdi
callq 0x8840
leaq -0x488(%rbp), %rdi
callq 0x8860
leaq -0x438(%rbp), %rdi
callq 0x88b0
leaq -0x380(%rbp), %rdi
callq 0x8910
leaq -0x270(%rbp), %rdi
callq 0x8970
leaq -0x168(%rbp), %rdi
callq 0x89c0
leaq -0xf0(%rbp), %rdi
callq 0x7d10
movl -0x124(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x625a
movq -0x120(%rbp), %rdi
callq 0x5100
movq %rax, -0x5e0(%rbp)
movq 0x1aec2(%rip), %rdi     # 0x20ff0
leaq 0x10f98(%rip), %rsi     # 0x170cd
callq 0x5270
movq %rax, -0x6b8(%rbp)
jmp 0x6143
movq -0x5e0(%rbp), %rsi
leaq -0x600(%rbp), %rdi
callq 0x8a20
jmp 0x6158
movq -0x6b8(%rbp), %rdi
leaq -0x600(%rbp), %rsi
callq 0x5250
movq %rax, -0x6c0(%rbp)
jmp 0x6174
movq -0x6c0(%rbp), %rdi
leaq 0x10f53(%rip), %rsi     # 0x170d5
callq 0x5270
movq %rax, -0x6c8(%rbp)
jmp 0x6190
movq -0x5e0(%rbp), %rsi
leaq -0x620(%rbp), %rdi
callq 0x8a50
jmp 0x61a5
movq -0x6c8(%rbp), %rdi
leaq -0x620(%rbp), %rsi
callq 0x5250
movq %rax, -0x6d0(%rbp)
jmp 0x61c1
movq -0x6d0(%rbp), %rdi
movq 0x1ade1(%rip), %rsi     # 0x20fb0
callq 0x52c0
jmp 0x61d6
leaq -0x620(%rbp), %rdi
callq 0x5528
leaq -0x600(%rbp), %rdi
callq 0x5528
callq 0x5420
movl -0x4(%rbp), %eax
addq $0x6e0, %rsp            # imm = 0x6E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6251
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x6245
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x5528
leaq -0x600(%rbp), %rdi
callq 0x5528
callq 0x5420
jmp 0x6258
jmp 0x625a
movq -0x120(%rbp), %rdi
callq 0x5480
movq %rax, %rdi
callq 0x7c20
nop