// File: /workspace/github_cpp_makefile_star2_O2/statgen[P]statgen/lib/tclap-1.2.0/examples/test1.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");

	// Define a value argument and add it to the command line.
	ValueArg<string> nameArg("n","name","Name to print",true,"homer","string");
	cmd.add( nameArg );

	// Define a switch and add it to the command line.
	SwitchArg reverseSwitch("r","reverse","Print name backwards", false);
	cmd.add( reverseSwitch );

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

	// Get the value parsed by each arg. 
	string name = nameArg.getValue();
	bool reverseName = reverseSwitch.getValue();

	// Do what you intend too...
	if ( reverseName )
	{
		reverse(name.begin(),name.end());
		cout << "My name (spelled backwards) is: " << name << endl;
	}
	else
		cout << "My name is: " << name << endl;


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

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x320, %rsp            # imm = 0x320
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x5bdf(%rip), %rsi      # 0x9022
leaq 0x130(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x3b90
leaq 0x5be2(%rip), %rsi      # 0x903e
leaq 0x88(%rsp), %rdi
leaq 0x28(%rsp), %rdx
callq 0x3b90
leaq 0x240(%rsp), %rdi
leaq 0x130(%rsp), %rsi
pushq $0x20
popq %rdx
leaq 0x88(%rsp), %rcx
pushq $0x1
popq %r8
callq 0x45b4
leaq 0x88(%rsp), %rdi
callq 0x3308
leaq 0x130(%rsp), %rdi
callq 0x3308
leaq 0x5cf6(%rip), %rsi      # 0x91a9
leaq 0x88(%rsp), %rdi
leaq 0x5(%rsp), %rdx
callq 0x3b90
leaq 0x5b76(%rip), %rsi      # 0x9042
leaq 0x8(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x3b90
leaq 0x5b65(%rip), %rsi      # 0x9047
leaq 0x28(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x3b90
leaq 0x5b5d(%rip), %rsi      # 0x9055
leaq 0x68(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x3b90
leaq 0x5b4d(%rip), %rsi      # 0x905b
leaq 0x48(%rsp), %r14
leaq 0x6(%rsp), %rdx
movq %r14, %rdi
callq 0x3b90
leaq 0x130(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x8(%rsp), %rdx
leaq 0x28(%rsp), %rcx
pushq $0x1
popq %r8
leaq 0x68(%rsp), %r9
pushq $0x0
pushq %r14
callq 0x4722
popq %rax
popq %rcx
leaq 0x48(%rsp), %rdi
callq 0x3308
leaq 0x68(%rsp), %rdi
callq 0x3308
leaq 0x28(%rsp), %rdi
callq 0x3308
leaq 0x8(%rsp), %rdi
callq 0x3308
leaq 0x88(%rsp), %rdi
callq 0x3308
leaq 0x240(%rsp), %rdi
movq (%rdi), %rax
leaq 0x130(%rsp), %rsi
callq *0x18(%rax)
leaq 0x5ab9(%rip), %rsi      # 0x9059
leaq 0x8(%rsp), %rdi
leaq 0x5(%rsp), %rdx
callq 0x3b90
leaq 0x5aac(%rip), %rsi      # 0x9062
leaq 0x28(%rsp), %rdi
leaq 0x4(%rsp), %rdx
callq 0x3b90
leaq 0x5a9e(%rip), %rsi      # 0x906a
leaq 0x48(%rsp), %rdi
leaq 0x3(%rsp), %rdx
callq 0x3b90
leaq 0x88(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x28(%rsp), %rdx
leaq 0x48(%rsp), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x47cc
leaq 0x48(%rsp), %rdi
callq 0x3308
leaq 0x28(%rsp), %rdi
callq 0x3308
leaq 0x8(%rsp), %rdi
callq 0x3308
leaq 0x240(%rsp), %rdi
movq (%rdi), %rax
leaq 0x88(%rsp), %rsi
callq *0x18(%rax)
leaq 0x240(%rsp), %rdi
movl %ebp, %esi
movq %rbx, %rdx
callq 0x4806
leaq 0x1d8(%rsp), %rsi
leaq 0x8(%rsp), %rdi
callq 0x3200
cmpb $0x1, 0x12b(%rsp)
jne 0x367a
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rsi
addq %rdi, %rsi
callq 0x80eb
leaq 0x5a07(%rip), %rsi      # 0x907f
jmp 0x3681
leaq 0x5a1f(%rip), %rsi      # 0x90a0
movq 0xa948(%rip), %rdi      # 0xdfd0
callq 0x3170
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x3160
movq %rax, %rdi
callq 0x30c0
leaq 0x8(%rsp), %rdi
callq 0x3308
leaq 0x88(%rsp), %rdi
callq 0x519c
leaq 0x130(%rsp), %rdi
callq 0x48be
leaq 0x240(%rsp), %rdi
callq 0x4510
xorl %eax, %eax
addq $0x320, %rsp            # imm = 0x320
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x37c3
movq %rdx, %r14
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3308
jmp 0x36fe
movq %rdx, %r14
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3308
jmp 0x3710
movq %rdx, %r14
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3308
jmp 0x37e8
jmp 0x3721
movq %rdx, %r14
movq %rax, %rbx
jmp 0x37e8
movq %rdx, %r14
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3308
jmp 0x3744
movq %rdx, %r14
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x3308
jmp 0x3756
movq %rdx, %r14
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3308
jmp 0x3768
movq %rdx, %r14
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3308
jmp 0x377a
movq %rdx, %r14
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x3308
jmp 0x37f5
movq %rdx, %r14
movq %rax, %rbx
jmp 0x37f5
movq %rdx, %r14
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x3308
jmp 0x37ac
movq %rdx, %r14
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0x3308
jmp 0x3802
movq %rdx, %r14
movq %rax, %rbx
jmp 0x3802
movq %rdx, %r14
movq %rax, %rbx
jmp 0x37db
movq %rdx, %r14
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x3308
leaq 0x88(%rsp), %rdi
callq 0x519c
leaq 0x130(%rsp), %rdi
callq 0x48be
leaq 0x240(%rsp), %rdi
callq 0x4510
cmpl $0x1, %r14d
jne 0x38dc
movq %rbx, %rdi
callq 0x3090
movq %rax, %rbx
movq 0xa7d2(%rip), %rdi      # 0xdff0
leaq 0x5888(%rip), %rsi      # 0x90ad
callq 0x3170
movq %rax, %r14
leaq 0x8(%rbx), %rsi
leaq 0x130(%rsp), %rdi
callq 0x3200
leaq 0x130(%rsp), %rsi
movq %r14, %rdi
callq 0x3160
leaq 0x5860(%rip), %rsi      # 0x90b5
movq %rax, %rdi
callq 0x3170
movq %rax, %r14
leaq 0x240(%rsp), %rdi
movq %rbx, %rsi
callq 0x48fa
leaq 0x240(%rsp), %rsi
movq %r14, %rdi
callq 0x3160
movq %rax, %rdi
callq 0x30c0
leaq 0x240(%rsp), %rdi
callq 0x3308
leaq 0x130(%rsp), %rdi
callq 0x3308
callq 0x3260
jmp 0x36d3
jmp 0x38c7
jmp 0x38b0
movq %rax, %rbx
jmp 0x38d7
movq %rax, %rbx
leaq 0x240(%rsp), %rdi
callq 0x3308
jmp 0x38ca
movq %rax, %rbx
leaq 0x130(%rsp), %rdi
callq 0x3308
callq 0x3260
movq %rbx, %rdi
callq 0x3280
movq %rax, %rdi
callq 0x44ba