// File: demon386[P]git-store/./boost/program_options/detail/value_semantic.hpp
// Function: void boost::program_options::validate<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, char>(boost::any&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>*, int)
void validate(boost::any& v, 
                  const std::vector<std::basic_string<charT> >& s, 
                  std::vector<T>*,
                  int)
    {
        if (v.empty()) {
            v = boost::any(std::vector<T>());
        }
        std::vector<T>* tv = boost::any_cast< std::vector<T> >(&v);
        assert(NULL != tv);
        for (unsigned i = 0; i < s.size(); ++i)
        {
            try {
                /* We call validate so that if user provided
                   a validator for class T, we use it even
                   when parsing vector<T>.  */
                boost::any a;
                std::vector<std::basic_string<charT> > cv;
                cv.push_back(s[i]);
                validate(a, cv, (T*)0, 0);                
                tv->push_back(boost::any_cast<T>(a));
            }
            catch(const bad_lexical_cast& /*e*/) {
                boost::throw_exception(invalid_option_value(s[i]));
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3c7b0
testb $0x1, %al
jne 0x5b3e9
jmp 0x5b45c
xorps %xmm0, %xmm0
movaps %xmm0, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x11cf0
movq -0x170(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x28(%rbp), %rdi
movq %rcx, %rdx
callq 0x5b640
jmp 0x5b421
movq -0x8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
callq 0x3d2b0
leaq -0x28(%rbp), %rdi
callq 0x3d300
leaq -0x40(%rbp), %rdi
callq 0x11db0
jmp 0x5b45c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x11db0
jmp 0x5b62c
movq -0x8(%rbp), %rdi
callq 0x5b200
movq %rax, -0x58(%rbp)
xorl %eax, %eax
cmpq -0x58(%rbp), %rax
je 0x5b473
jmp 0x5b492
leaq 0x8ec4(%rip), %rdi      # 0x6433e
leaq 0x8ec8(%rip), %rsi      # 0x64349
movl $0x88, %edx
leaq 0x8eee(%rip), %rcx      # 0x6437b
callq 0xd400
movl $0x0, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movq %rax, -0x178(%rbp)
movq -0x10(%rbp), %rdi
callq 0x124d0
movq %rax, %rcx
movq -0x178(%rbp), %rax
cmpq %rcx, %rax
jae 0x5b623
leaq -0x68(%rbp), %rdi
callq 0x3e000
leaq -0x80(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x11cf0
movq -0x10(%rbp), %rdi
movl -0x5c(%rbp), %eax
movl %eax, %esi
callq 0x34f30
movq -0x180(%rbp), %rdi
movq %rax, %rsi
callq 0x127b0
jmp 0x5b4f7
xorl %ecx, %ecx
movl %ecx, %edx
leaq -0x68(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3a900
jmp 0x5b50a
movq -0x58(%rbp), %rax
movq %rax, -0x188(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x5b6b0
jmp 0x5b527
movq -0x188(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x3c780
jmp 0x5b53c
leaq -0xa0(%rbp), %rdi
callq 0xdca8
leaq -0x80(%rbp), %rdi
callq 0x11db0
leaq -0x68(%rbp), %rdi
callq 0x3d300
jmp 0x5b613
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5b585
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xdca8
leaq -0x80(%rbp), %rdi
callq 0x11db0
leaq -0x68(%rbp), %rdi
callq 0x3d300
movl -0x4c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x5b62c
movq -0x48(%rbp), %rdi
callq 0xd200
movq %rax, -0xa8(%rbp)
movq -0x10(%rbp), %rdi
movl -0x5c(%rbp), %eax
movl %eax, %esi
callq 0x34f30
movq %rax, %rsi
leaq -0x168(%rbp), %rdi
callq 0x3a9c0
jmp 0x5b5d6
leaq -0x168(%rbp), %rdi
callq 0x5b740
jmp 0x5b5e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x5b60a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x3def0
callq 0xda90
jmp 0x5b611
jmp 0x5b62c
jmp 0x5b615
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x5b499
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0xdb30
movq %rax, %rdi
callq 0x129b0
nopl (%rax)