// File: statgen[P]statgen/lib/tclap-1.2.0/examples/test9.cpp
// Function: main
int main(int argc, char** argv)
{
	try {

	CmdLine cmd("Command description message", ' ', "0.9",false);

	SwitchArg reverseSwitch("r","reverse","REVERSE instead of FORWARDS", false);
	cmd.add( reverseSwitch );

	MultiSwitchArg verbose("V","verbose","Level of verbosity");
	cmd.add( verbose );

	MultiSwitchArg noise("N","noise","Level of noise",5);
	cmd.add( noise );

	UnlabeledValueArg<string> word("word","a random word", false, "string",
					               "won't see this",false);
	cmd.add( word );

	// Uncommenting the next arg will (correctly) cause an exception
	// to be thrown.

//	UnlabeledMultiArg<string> badword("badword","a bad word", false,"string");
//
//	cmd.add( badword );

	cmd.parse( argc, argv );

	bool reverseName = reverseSwitch.getValue();

	if ( reverseName )
		cout << "REVERSE" << endl;
	else
		cout << "FORWARD" << endl;

	if ( verbose.isSet() )
		cout << "Verbose level: " << verbose.getValue() << endl;

	if ( noise.isSet() )
		cout << "Noise level: " << noise.getValue() << endl;

	if ( word.isSet() )
		cout << "Word: " << word.getValue() << endl;

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x7e0, %rsp            # imm = 0x7E0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x111(%rbp), %rdi
movq %rdi, -0x6c0(%rbp)
callq 0x4400
movq -0x6c0(%rbp), %rdx
leaq 0xea28(%rip), %rsi      # 0x13032
leaq -0x110(%rbp), %rdi
callq 0x58c0
jmp 0x4618
leaq -0x149(%rbp), %rdi
movq %rdi, -0x6c8(%rbp)
callq 0x4400
movq -0x6c8(%rbp), %rdx
leaq 0xea15(%rip), %rsi      # 0x1304e
leaq -0x148(%rbp), %rdi
callq 0x58c0
jmp 0x4647
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x20, %edx
leaq -0x148(%rbp), %rcx
xorl %r8d, %r8d
callq 0x6e70
jmp 0x466b
leaq -0x148(%rbp), %rdi
callq 0x4498
leaq -0x149(%rbp), %rdi
callq 0x4280
leaq -0x110(%rbp), %rdi
callq 0x4498
leaq -0x111(%rbp), %rdi
callq 0x4280
leaq -0x219(%rbp), %rdi
movq %rdi, -0x6d0(%rbp)
callq 0x4400
movq -0x6d0(%rbp), %rdx
leaq 0xe996(%rip), %rsi      # 0x13052
leaq -0x218(%rbp), %rdi
callq 0x58c0
jmp 0x46ca
leaq -0x241(%rbp), %rdi
movq %rdi, -0x6d8(%rbp)
callq 0x4400
movq -0x6d8(%rbp), %rdx
leaq 0xe969(%rip), %rsi      # 0x13054
leaq -0x240(%rbp), %rdi
callq 0x58c0
jmp 0x46f9
leaq -0x269(%rbp), %rdi
movq %rdi, -0x6e0(%rbp)
callq 0x4400
movq -0x6e0(%rbp), %rdx
leaq 0xe942(%rip), %rsi      # 0x1305c
leaq -0x268(%rbp), %rdi
callq 0x58c0
jmp 0x4728
xorl %r8d, %r8d
movl %r8d, %r9d
leaq -0x1f8(%rbp), %rdi
leaq -0x218(%rbp), %rsi
leaq -0x240(%rbp), %rdx
leaq -0x268(%rbp), %rcx
callq 0x7040
jmp 0x4751
leaq -0x268(%rbp), %rdi
callq 0x4498
leaq -0x269(%rbp), %rdi
callq 0x4280
leaq -0x240(%rbp), %rdi
callq 0x4498
leaq -0x241(%rbp), %rdi
callq 0x4280
leaq -0x218(%rbp), %rdi
callq 0x4498
leaq -0x219(%rbp), %rdi
callq 0x4280
leaq -0xf0(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
callq 0x70c0
jmp 0x47ae
leaq -0x341(%rbp), %rdi
movq %rdi, -0x6e8(%rbp)
callq 0x4400
movq -0x6e8(%rbp), %rdx
leaq 0xe8a9(%rip), %rsi      # 0x13078
leaq -0x340(%rbp), %rdi
callq 0x58c0
jmp 0x47dd
leaq -0x369(%rbp), %rdi
movq %rdi, -0x6f0(%rbp)
callq 0x4400
movq -0x6f0(%rbp), %rdx
leaq 0xe87c(%rip), %rsi      # 0x1307a
leaq -0x368(%rbp), %rdi
callq 0x58c0
jmp 0x480c
leaq -0x391(%rbp), %rdi
movq %rdi, -0x6f8(%rbp)
callq 0x4400
movq -0x6f8(%rbp), %rdx
leaq 0xe855(%rip), %rsi      # 0x13082
leaq -0x390(%rbp), %rdi
callq 0x58c0
jmp 0x483b
xorl %r8d, %r8d
movl %r8d, %r9d
leaq -0x320(%rbp), %rdi
leaq -0x340(%rbp), %rsi
leaq -0x368(%rbp), %rdx
leaq -0x390(%rbp), %rcx
callq 0x70f0
jmp 0x4864
leaq -0x390(%rbp), %rdi
callq 0x4498
leaq -0x391(%rbp), %rdi
callq 0x4280
leaq -0x368(%rbp), %rdi
callq 0x4498
leaq -0x369(%rbp), %rdi
callq 0x4280
leaq -0x340(%rbp), %rdi
callq 0x4498
leaq -0x341(%rbp), %rdi
callq 0x4280
leaq -0xf0(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x70c0
jmp 0x48c1
leaq -0x469(%rbp), %rdi
movq %rdi, -0x700(%rbp)
callq 0x4400
movq -0x700(%rbp), %rdx
leaq 0xe7b3(%rip), %rsi      # 0x13095
leaq -0x468(%rbp), %rdi
callq 0x58c0
jmp 0x48f0
leaq -0x491(%rbp), %rdi
movq %rdi, -0x708(%rbp)
callq 0x4400
movq -0x708(%rbp), %rdx
leaq 0xe78f(%rip), %rsi      # 0x130a0
leaq -0x490(%rbp), %rdi
callq 0x58c0
jmp 0x491f
leaq -0x4b9(%rbp), %rdi
movq %rdi, -0x710(%rbp)
callq 0x4400
movq -0x710(%rbp), %rdx
leaq 0xe757(%rip), %rsi      # 0x13097
leaq -0x4b8(%rbp), %rdi
callq 0x58c0
jmp 0x494e
xorl %eax, %eax
movl %eax, %r9d
leaq -0x448(%rbp), %rdi
leaq -0x468(%rbp), %rsi
leaq -0x490(%rbp), %rdx
leaq -0x4b8(%rbp), %rcx
movl $0x5, %r8d
callq 0x70f0
jmp 0x497c
leaq -0x4b8(%rbp), %rdi
callq 0x4498
leaq -0x4b9(%rbp), %rdi
callq 0x4280
leaq -0x490(%rbp), %rdi
callq 0x4498
leaq -0x491(%rbp), %rdi
callq 0x4280
leaq -0x468(%rbp), %rdi
callq 0x4498
leaq -0x469(%rbp), %rdi
callq 0x4280
leaq -0xf0(%rbp), %rdi
leaq -0x448(%rbp), %rsi
callq 0x70c0
jmp 0x49d9
leaq -0x5f1(%rbp), %rdi
movq %rdi, -0x718(%rbp)
callq 0x4400
movq -0x718(%rbp), %rdx
leaq 0xe6b5(%rip), %rsi      # 0x130af
leaq -0x5f0(%rbp), %rdi
callq 0x58c0
jmp 0x4a08
leaq -0x619(%rbp), %rdi
movq %rdi, -0x720(%rbp)
callq 0x4400
movq -0x720(%rbp), %rdx
leaq 0xe67d(%rip), %rsi      # 0x130a6
leaq -0x618(%rbp), %rdi
callq 0x58c0
jmp 0x4a37
leaq -0x641(%rbp), %rdi
movq %rdi, -0x728(%rbp)
callq 0x4400
movq -0x728(%rbp), %rdx
leaq 0xe65c(%rip), %rsi      # 0x130b4
leaq -0x640(%rbp), %rdi
callq 0x58c0
jmp 0x4a66
leaq -0x669(%rbp), %rdi
movq %rdi, -0x730(%rbp)
callq 0x4400
movq -0x730(%rbp), %rdx
leaq 0xe634(%rip), %rsi      # 0x130bb
leaq -0x668(%rbp), %rdi
callq 0x58c0
jmp 0x4a95
movq %rsp, %rax
movq $0x0, 0x8(%rax)
movl $0x0, (%rax)
leaq -0x5d0(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
leaq -0x618(%rbp), %rdx
xorl %ecx, %ecx
leaq -0x640(%rbp), %r8
leaq -0x668(%rbp), %r9
callq 0x7160
jmp 0x4ad2
leaq -0x668(%rbp), %rdi
callq 0x4498
leaq -0x669(%rbp), %rdi
callq 0x4280
leaq -0x640(%rbp), %rdi
callq 0x4498
leaq -0x641(%rbp), %rdi
callq 0x4280
leaq -0x618(%rbp), %rdi
callq 0x4498
leaq -0x619(%rbp), %rdi
callq 0x4280
leaq -0x5f0(%rbp), %rdi
callq 0x4498
leaq -0x5f1(%rbp), %rdi
callq 0x4280
leaq -0xf0(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x70c0
jmp 0x4b47
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0xf0(%rbp), %rdi
callq 0x7350
jmp 0x4b5c
leaq -0x1f8(%rbp), %rdi
callq 0x7460
movb %al, -0x731(%rbp)
jmp 0x4b70
movb -0x731(%rbp), %al
andb $0x1, %al
movb %al, -0x66a(%rbp)
testb $0x1, -0x66a(%rbp)
je 0x4f33
movq 0x1743e(%rip), %rdi     # 0x1bfd0
leaq 0xe531(%rip), %rsi      # 0x130ca
callq 0x4220
movq %rax, -0x740(%rbp)
jmp 0x4ba7
movq -0x740(%rbp), %rdi
movq 0x173fb(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x4bbc
jmp 0x4f66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4c1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4c07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x4498
leaq -0x149(%rbp), %rdi
callq 0x4280
leaq -0x110(%rbp), %rdi
callq 0x4498
leaq -0x111(%rbp), %rdi
callq 0x4280
jmp 0x515f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4cba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4c8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x268(%rbp), %rdi
callq 0x4498
leaq -0x269(%rbp), %rdi
callq 0x4280
leaq -0x240(%rbp), %rdi
callq 0x4498
leaq -0x241(%rbp), %rdi
callq 0x4280
leaq -0x218(%rbp), %rdi
callq 0x4498
leaq -0x219(%rbp), %rdi
callq 0x4280
jmp 0x5153
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x5147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4d6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4d54
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4d3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x4498
leaq -0x391(%rbp), %rdi
callq 0x4280
leaq -0x368(%rbp), %rdi
callq 0x4498
leaq -0x369(%rbp), %rdi
callq 0x4280
leaq -0x340(%rbp), %rdi
callq 0x4498
leaq -0x341(%rbp), %rdi
callq 0x4280
jmp 0x5147
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x513b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4dee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x4b8(%rbp), %rdi
callq 0x4498
leaq -0x4b9(%rbp), %rdi
callq 0x4280
leaq -0x490(%rbp), %rdi
callq 0x4498
leaq -0x491(%rbp), %rdi
callq 0x4280
leaq -0x468(%rbp), %rdi
callq 0x4498
leaq -0x469(%rbp), %rdi
callq 0x4280
jmp 0x513b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x512f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4eff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ecf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4eb7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x4498
leaq -0x669(%rbp), %rdi
callq 0x4280
leaq -0x640(%rbp), %rdi
callq 0x4498
leaq -0x641(%rbp), %rdi
callq 0x4280
leaq -0x618(%rbp), %rdi
callq 0x4498
leaq -0x619(%rbp), %rdi
callq 0x4280
leaq -0x5f0(%rbp), %rdi
callq 0x4498
leaq -0x5f1(%rbp), %rdi
callq 0x4280
jmp 0x512f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x7500
jmp 0x512f
movq 0x17096(%rip), %rdi     # 0x1bfd0
leaq 0xe191(%rip), %rsi      # 0x130d2
callq 0x4220
movq %rax, -0x748(%rbp)
jmp 0x4f4f
movq -0x748(%rbp), %rdi
movq 0x17053(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x4f64
jmp 0x4f66
leaq -0x320(%rbp), %rdi
callq 0x7480
movb %al, -0x749(%rbp)
jmp 0x4f7a
movb -0x749(%rbp), %al
testb $0x1, %al
jne 0x4f86
jmp 0x4fe8
movq 0x17043(%rip), %rdi     # 0x1bfd0
leaq 0xe146(%rip), %rsi      # 0x130da
callq 0x4220
movq %rax, -0x758(%rbp)
jmp 0x4fa2
leaq -0x320(%rbp), %rdi
callq 0x74c0
movl %eax, -0x75c(%rbp)
jmp 0x4fb6
movl -0x75c(%rbp), %esi
movq -0x758(%rbp), %rdi
callq 0x43e0
movq %rax, -0x768(%rbp)
jmp 0x4fd1
movq -0x768(%rbp), %rdi
movq 0x16fd1(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x4fe6
jmp 0x4fe8
leaq -0x448(%rbp), %rdi
callq 0x7480
movb %al, -0x769(%rbp)
jmp 0x4ffc
movb -0x769(%rbp), %al
testb $0x1, %al
jne 0x5008
jmp 0x506a
movq 0x16fc1(%rip), %rdi     # 0x1bfd0
leaq 0xe0d4(%rip), %rsi      # 0x130ea
callq 0x4220
movq %rax, -0x778(%rbp)
jmp 0x5024
leaq -0x448(%rbp), %rdi
callq 0x74c0
movl %eax, -0x77c(%rbp)
jmp 0x5038
movl -0x77c(%rbp), %esi
movq -0x778(%rbp), %rdi
callq 0x43e0
movq %rax, -0x788(%rbp)
jmp 0x5053
movq -0x788(%rbp), %rdi
movq 0x16f4f(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x5068
jmp 0x506a
leaq -0x5d0(%rbp), %rdi
callq 0x7480
movb %al, -0x789(%rbp)
jmp 0x507e
movb -0x789(%rbp), %al
testb $0x1, %al
jne 0x508a
jmp 0x50ee
movq 0x16f3f(%rip), %rdi     # 0x1bfd0
leaq 0xe060(%rip), %rsi      # 0x130f8
callq 0x4220
movq %rax, -0x798(%rbp)
jmp 0x50a6
leaq -0x5d0(%rbp), %rdi
callq 0x74e0
movq %rax, -0x7a0(%rbp)
jmp 0x50bb
movq -0x7a0(%rbp), %rsi
movq -0x798(%rbp), %rdi
callq 0x4200
movq %rax, -0x7a8(%rbp)
jmp 0x50d7
movq -0x7a8(%rbp), %rdi
movq 0x16ecb(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x50ec
jmp 0x50ee
leaq -0x5d0(%rbp), %rdi
callq 0x7500
leaq -0x448(%rbp), %rdi
callq 0x7520
leaq -0x320(%rbp), %rdi
callq 0x7520
leaq -0x1f8(%rbp), %rdi
callq 0x7540
leaq -0xf0(%rbp), %rdi
callq 0x6d70
jmp 0x5251
leaq -0x448(%rbp), %rdi
callq 0x7520
leaq -0x320(%rbp), %rdi
callq 0x7520
leaq -0x1f8(%rbp), %rdi
callq 0x7540
leaq -0xf0(%rbp), %rdi
callq 0x6d70
movl -0x124(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x52b8
movq -0x120(%rbp), %rdi
callq 0x40d0
movq %rax, -0x678(%rbp)
movq 0x16e64(%rip), %rdi     # 0x1bff0
leaq 0xdf6c(%rip), %rsi      # 0x130ff
callq 0x4220
movq %rax, -0x7b0(%rbp)
jmp 0x51a1
movq -0x678(%rbp), %rsi
leaq -0x698(%rbp), %rdi
callq 0x7560
jmp 0x51b6
movq -0x7b0(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0x4200
movq %rax, -0x7b8(%rbp)
jmp 0x51d2
movq -0x7b8(%rbp), %rdi
leaq 0xdf27(%rip), %rsi      # 0x13107
callq 0x4220
movq %rax, -0x7c0(%rbp)
jmp 0x51ee
movq -0x678(%rbp), %rsi
leaq -0x6b8(%rbp), %rdi
callq 0x7590
jmp 0x5203
movq -0x7c0(%rbp), %rdi
leaq -0x6b8(%rbp), %rsi
callq 0x4200
movq %rax, -0x7c8(%rbp)
jmp 0x521f
movq -0x7c8(%rbp), %rdi
movq 0x16d83(%rip), %rsi     # 0x1bfb0
callq 0x4260
jmp 0x5234
leaq -0x6b8(%rbp), %rdi
callq 0x4498
leaq -0x698(%rbp), %rdi
callq 0x4498
callq 0x43b0
movl -0x4(%rbp), %eax
addq $0x7e0, %rsp            # imm = 0x7E0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x52af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x52a3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x6b8(%rbp), %rdi
callq 0x4498
leaq -0x698(%rbp), %rdi
callq 0x4498
callq 0x43b0
jmp 0x52b6
jmp 0x52b8
movq -0x120(%rbp), %rdi
callq 0x43f0
movq %rax, %rdi
callq 0x6c80
nopl (%rax)