// File: demon386[P]git-store/./libs/program_options/src/value_semantic.cpp
// Function: boost::program_options::validate(boost::any&, std::vector<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>>, std::allocator<std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>>>> const&, bool*, int)
BOOST_PROGRAM_OPTIONS_DECL 
    void validate(any& v, const vector<wstring>& xs, bool*, int)
    {
        check_first_occurrence(v);
        wstring s(get_single_string(xs, true));

        for (size_t i = 0; i < s.size(); ++i)
            s[i] = wchar_t(tolower(s[i]));

        if (s.empty() || s == L"on" || s == L"yes" || s == L"1" || s == L"true")
            v = any(true);
        else if (s == L"off" || s == L"no" || s == L"0" || s == L"false")
            v = any(false);
        else
            boost::throw_exception(invalid_bool_value(convert_value(s)));
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x3a4c0
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x3d430
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
callq 0xd580
movq $0x0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x160(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xd480
movq %rax, %rcx
movq -0x160(%rbp), %rax
cmpq %rcx, %rax
jae 0x3a616
movq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0xd7e0
movq %rax, -0x168(%rbp)
jmp 0x3a5be
movq -0x168(%rbp), %rax
movl (%rax), %edi
callq 0xd970
movl %eax, -0x174(%rbp)
movq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0xd7e0
movq %rax, -0x170(%rbp)
jmp 0x3a5e8
movq -0x170(%rbp), %rax
movl -0x174(%rbp), %ecx
movl %ecx, (%rax)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x3a585
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3a82b
leaq -0x40(%rbp), %rdi
callq 0xd720
testb $0x1, %al
jne 0x3a6b7
leaq 0x27a76(%rip), %rsi     # 0x620a4
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x175(%rbp)
jmp 0x3a63f
movb -0x175(%rbp), %al
testb $0x1, %al
jne 0x3a6b7
jmp 0x3a64b
leaq 0x27a5e(%rip), %rsi     # 0x620b0
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x176(%rbp)
jmp 0x3a663
movb -0x176(%rbp), %al
testb $0x1, %al
jne 0x3a6b7
jmp 0x3a66f
leaq 0x27a4a(%rip), %rsi     # 0x620c0
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x177(%rbp)
jmp 0x3a687
movb -0x177(%rbp), %al
testb $0x1, %al
jne 0x3a6b7
jmp 0x3a693
leaq 0x27a2e(%rip), %rsi     # 0x620c8
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x178(%rbp)
jmp 0x3a6ab
movb -0x178(%rbp), %al
testb $0x1, %al
jne 0x3a6b7
jmp 0x3a6ec
movb $0x1, -0x61(%rbp)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x60(%rbp), %rdi
leaq -0x61(%rbp), %rsi
movq %rcx, %rdx
callq 0x3d240
jmp 0x3a6d1
movq -0x8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3d2b0
leaq -0x60(%rbp), %rdi
callq 0x3d300
jmp 0x3a819
leaq 0x279e9(%rip), %rsi     # 0x620dc
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x179(%rbp)
jmp 0x3a704
movb -0x179(%rbp), %al
testb $0x1, %al
jne 0x3a77c
jmp 0x3a710
leaq 0x279d5(%rip), %rsi     # 0x620ec
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x17a(%rbp)
jmp 0x3a728
movb -0x17a(%rbp), %al
testb $0x1, %al
jne 0x3a77c
jmp 0x3a734
leaq 0x279bd(%rip), %rsi     # 0x620f8
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x17b(%rbp)
jmp 0x3a74c
movb -0x17b(%rbp), %al
testb $0x1, %al
jne 0x3a77c
jmp 0x3a758
leaq 0x279a1(%rip), %rsi     # 0x62100
leaq -0x40(%rbp), %rdi
callq 0x3d740
movb %al, -0x17c(%rbp)
jmp 0x3a770
movb -0x17c(%rbp), %al
testb $0x1, %al
jne 0x3a77c
jmp 0x3a7ae
movb $0x0, -0x71(%rbp)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x70(%rbp), %rdi
leaq -0x71(%rbp), %rsi
movq %rcx, %rdx
callq 0x3d240
jmp 0x3a796
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3d2b0
leaq -0x70(%rbp), %rdi
callq 0x3d300
jmp 0x3a817
leaq -0x158(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3a840
jmp 0x3a7c0
leaq -0x138(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x3ad90
jmp 0x3a7d5
leaq -0x138(%rbp), %rdi
callq 0x3d330
jmp 0x3a7e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3a809
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x3d410
leaq -0x158(%rbp), %rdi
callq 0xdca8
jmp 0x3a82b
jmp 0x3a819
leaq -0x40(%rbp), %rdi
callq 0xdcc0
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0xdcc0
movq -0x50(%rbp), %rdi
callq 0xdb30
nopl (%rax)