// File: statgen[P]statgen/lib/tclap-1.2.0/examples/test12.cpp
// Function: main
int main(int argc, char *argv[])
{
    CmdLine cmd("Command description message", ' ', "0.9");
    MultiArg<Vect3D> vec("v", "vect", "vector", 
			 true, "3D vector", cmd);
    
    try {
	cmd.parse(argc, argv);
    } catch(std::exception &e) {
	std::cout << e.what() << std::endl;
	return EXIT_FAILURE;
    }

    std::copy(vec.begin(), vec.end(),
	      std::ostream_iterator<Vect3D>(std::cout, "\n"));

    std::cout << "REVERSED" << std::endl;

    // use alt. form getValue()
    std::vector<Vect3D> v(vec.getValue());
    std::reverse(v.begin(), v.end());

    std::copy(v.begin(), v.end(),
	      std::ostream_iterator<Vect3D>(std::cout, "\n"));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x111(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x4430
movq -0x380(%rbp), %rdx
leaq 0xf9b8(%rip), %rsi      # 0x14032
leaq -0x110(%rbp), %rdi
callq 0x5290
jmp 0x4688
leaq -0x149(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0x4430
movq -0x388(%rbp), %rdx
leaq 0xf9a5(%rip), %rsi      # 0x1404e
leaq -0x148(%rbp), %rdi
callq 0x5290
jmp 0x46b7
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
movl $0x20, %edx
leaq -0x148(%rbp), %rcx
movl $0x1, %r8d
callq 0x68a0
jmp 0x46de
leaq -0x148(%rbp), %rdi
callq 0x44d8
leaq -0x149(%rbp), %rdi
callq 0x42b0
leaq -0x110(%rbp), %rdi
callq 0x44d8
leaq -0x111(%rbp), %rdi
callq 0x42b0
leaq -0x261(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x4430
movq -0x390(%rbp), %rdx
leaq 0xf923(%rip), %rsi      # 0x14052
leaq -0x260(%rbp), %rdi
callq 0x5290
jmp 0x473d
leaq -0x289(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0x4430
movq -0x398(%rbp), %rdx
leaq 0xf8f6(%rip), %rsi      # 0x14054
leaq -0x288(%rbp), %rdi
callq 0x5290
jmp 0x476c
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x4430
movq -0x3a0(%rbp), %rdx
leaq 0xfc41(%rip), %rsi      # 0x143ce
leaq -0x2b0(%rbp), %rdi
callq 0x5290
jmp 0x479b
leaq -0x2d9(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
callq 0x4430
movq -0x3a8(%rbp), %rdx
leaq 0xfc0f(%rip), %rsi      # 0x143cb
leaq -0x2d8(%rbp), %rdi
callq 0x5290
jmp 0x47ca
movq %rsp, %rax
leaq -0xf0(%rbp), %rcx
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
leaq -0x240(%rbp), %rdi
leaq -0x260(%rbp), %rsi
leaq -0x288(%rbp), %rdx
leaq -0x2b0(%rbp), %rcx
movl $0x1, %r8d
leaq -0x2d8(%rbp), %r9
callq 0x6a70
jmp 0x480f
leaq -0x2d8(%rbp), %rdi
callq 0x44d8
leaq -0x2d9(%rbp), %rdi
callq 0x42b0
leaq -0x2b0(%rbp), %rdi
callq 0x44d8
leaq -0x2b1(%rbp), %rdi
callq 0x42b0
leaq -0x288(%rbp), %rdi
callq 0x44d8
leaq -0x289(%rbp), %rdi
callq 0x42b0
leaq -0x260(%rbp), %rdi
callq 0x44d8
leaq -0x261(%rbp), %rdi
callq 0x42b0
movl -0x8(%rbp), %esi
movq -0x10(%rbp), %rdx
leaq -0xf0(%rbp), %rdi
callq 0x6b80
jmp 0x4884
jmp 0x4a89
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x48e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x48cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x44d8
leaq -0x149(%rbp), %rdi
callq 0x42b0
leaq -0x110(%rbp), %rdi
callq 0x44d8
leaq -0x111(%rbp), %rdi
callq 0x42b0
jmp 0x4c87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x49b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4999
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4981
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4969
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x44d8
leaq -0x2d9(%rbp), %rdi
callq 0x42b0
leaq -0x2b0(%rbp), %rdi
callq 0x44d8
leaq -0x2b1(%rbp), %rdi
callq 0x42b0
leaq -0x288(%rbp), %rdi
callq 0x44d8
leaq -0x289(%rbp), %rdi
callq 0x42b0
leaq -0x260(%rbp), %rdi
callq 0x44d8
leaq -0x261(%rbp), %rdi
callq 0x42b0
jmp 0x4c7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x4c6f
movq -0x120(%rbp), %rdi
callq 0x40d0
movq %rax, -0x2e8(%rbp)
movq -0x2e8(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq %rax, %rsi
movq 0x185bc(%rip), %rdi     # 0x1cfd0
callq 0x4250
movq %rax, -0x3b0(%rbp)
jmp 0x4a22
movq -0x3b0(%rbp), %rdi
movq 0x18580(%rip), %rsi     # 0x1cfb0
callq 0x4290
jmp 0x4a37
movl $0x1, -0x4(%rbp)
movl $0x1, -0x2ec(%rbp)
callq 0x43e0
jmp 0x4a68
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
callq 0x43e0
jmp 0x4a84
jmp 0x4c2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4c6f
jmp 0x4c6f
leaq -0x240(%rbp), %rdi
callq 0x6d10
movq %rax, -0x3b8(%rbp)
jmp 0x4a9e
movq -0x3b8(%rbp), %rax
movq %rax, -0x2f8(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x6d40
movq %rax, -0x3c0(%rbp)
jmp 0x4ac1
movq -0x3c0(%rbp), %rax
movq %rax, -0x300(%rbp)
movq 0x184fa(%rip), %rsi     # 0x1cfd0
leaq 0xf57c(%rip), %rdx      # 0x14059
leaq -0x310(%rbp), %rdi
callq 0x6d70
jmp 0x4aeb
movq -0x2f8(%rbp), %rsi
movq -0x300(%rbp), %rdx
leaq -0x320(%rbp), %rdi
leaq -0x310(%rbp), %rcx
callq 0x6c90
jmp 0x4b0e
movq 0x184bb(%rip), %rdi     # 0x1cfd0
leaq 0xf53f(%rip), %rsi      # 0x1405b
callq 0x4250
movq %rax, -0x3c8(%rbp)
jmp 0x4b2a
movq -0x3c8(%rbp), %rdi
movq 0x18478(%rip), %rsi     # 0x1cfb0
callq 0x4290
jmp 0x4b3f
leaq -0x240(%rbp), %rdi
callq 0x6da0
movq %rax, -0x3d0(%rbp)
jmp 0x4b54
movq -0x3d0(%rbp), %rsi
leaq -0x338(%rbp), %rdi
callq 0x6dc0
jmp 0x4b69
leaq -0x338(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x6ef0
movq -0x3d8(%rbp), %rdi
movq %rax, -0x340(%rbp)
callq 0x6f20
movq %rax, -0x348(%rbp)
movq -0x340(%rbp), %rdi
movq -0x348(%rbp), %rsi
callq 0x6eb0
jmp 0x4bab
leaq -0x338(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x6ef0
movq -0x3e0(%rbp), %rdi
movq %rax, -0x350(%rbp)
callq 0x6f20
movq %rax, -0x358(%rbp)
movq 0x183f1(%rip), %rsi     # 0x1cfd0
leaq 0xf473(%rip), %rdx      # 0x14059
leaq -0x368(%rbp), %rdi
callq 0x6d70
jmp 0x4bf4
movq -0x350(%rbp), %rsi
movq -0x358(%rbp), %rdx
leaq -0x378(%rbp), %rdi
leaq -0x368(%rbp), %rcx
callq 0x6f50
jmp 0x4c17
leaq -0x338(%rbp), %rdi
callq 0x6fd0
movl $0x0, -0x2ec(%rbp)
leaq -0x240(%rbp), %rdi
callq 0x7030
leaq -0xf0(%rbp), %rdi
callq 0x6740
movl -0x4(%rbp), %eax
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x6fd0
leaq -0x240(%rbp), %rdi
callq 0x7030
leaq -0xf0(%rbp), %rdi
callq 0x6740
movq -0x120(%rbp), %rdi
callq 0x4420
movq %rax, %rdi
callq 0x6650
nopl (%rax,%rax)