// 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<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, bool*, int)
BOOST_PROGRAM_OPTIONS_DECL void validate(any& v, const vector<string>& xs,
                       bool*, int)
    {
        check_first_occurrence(v);
        string s(get_single_string(xs, true));

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

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
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 0x3cf30
movq %rax, %rsi
leaq -0x40(%rbp), %rdi
callq 0xd230
movq $0x0, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x140(%rbp)
leaq -0x40(%rbp), %rdi
callq 0xd430
movq %rax, %rcx
movq -0x140(%rbp), %rax
cmpq %rcx, %rax
jae 0x3a2ba
movq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0xdc50
movq %rax, -0x148(%rbp)
jmp 0x3a25e
movq -0x148(%rbp), %rax
movsbl (%rax), %edi
callq 0xd970
movb %al, -0x151(%rbp)
movq -0x48(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0xdc50
movq %rax, -0x150(%rbp)
jmp 0x3a289
movq -0x150(%rbp), %rax
movb -0x151(%rbp), %cl
movb %cl, (%rax)
movq -0x48(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x48(%rbp)
jmp 0x3a225
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x3a4a0
leaq -0x40(%rbp), %rdi
callq 0xdab0
testb $0x1, %al
jne 0x3a35b
leaq 0x297d1(%rip), %rsi     # 0x63aa3
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x152(%rbp)
jmp 0x3a2e3
movb -0x152(%rbp), %al
testb $0x1, %al
jne 0x3a35b
jmp 0x3a2ef
leaq 0x27aa2(%rip), %rsi     # 0x61d98
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x153(%rbp)
jmp 0x3a307
movb -0x153(%rbp), %al
testb $0x1, %al
jne 0x3a35b
jmp 0x3a313
leaq 0x2608f(%rip), %rsi     # 0x603a9
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x154(%rbp)
jmp 0x3a32b
movb -0x154(%rbp), %al
testb $0x1, %al
jne 0x3a35b
jmp 0x3a337
leaq 0x27a5e(%rip), %rsi     # 0x61d9c
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x155(%rbp)
jmp 0x3a34f
movb -0x155(%rbp), %al
testb $0x1, %al
jne 0x3a35b
jmp 0x3a390
movb $0x1, -0x61(%rbp)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x60(%rbp), %rdi
leaq -0x61(%rbp), %rsi
movq %rcx, %rdx
callq 0x3d240
jmp 0x3a375
movq -0x8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x3d2b0
leaq -0x60(%rbp), %rdi
callq 0x3d300
jmp 0x3a48e
leaq 0x27a0a(%rip), %rsi     # 0x61da1
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x156(%rbp)
jmp 0x3a3a8
movb -0x156(%rbp), %al
testb $0x1, %al
jne 0x3a420
jmp 0x3a3b4
leaq 0x279ea(%rip), %rsi     # 0x61da5
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x157(%rbp)
jmp 0x3a3cc
movb -0x157(%rbp), %al
testb $0x1, %al
jne 0x3a420
jmp 0x3a3d8
leaq 0x29104(%rip), %rsi     # 0x634e3
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x158(%rbp)
jmp 0x3a3f0
movb -0x158(%rbp), %al
testb $0x1, %al
jne 0x3a420
jmp 0x3a3fc
leaq 0x279a5(%rip), %rsi     # 0x61da8
leaq -0x40(%rbp), %rdi
callq 0x13120
movb %al, -0x159(%rbp)
jmp 0x3a414
movb -0x159(%rbp), %al
testb $0x1, %al
jne 0x3a420
jmp 0x3a452
movb $0x0, -0x71(%rbp)
xorl %eax, %eax
movl %eax, %ecx
leaq -0x70(%rbp), %rdi
leaq -0x71(%rbp), %rsi
movq %rcx, %rdx
callq 0x3d240
jmp 0x3a43a
movq -0x8(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x3d2b0
leaq -0x70(%rbp), %rdi
callq 0x3d300
jmp 0x3a48c
leaq -0x138(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x3ad90
jmp 0x3a464
leaq -0x138(%rbp), %rdi
callq 0x3d330
jmp 0x3a472
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x3d410
jmp 0x3a4a0
jmp 0x3a48e
leaq -0x40(%rbp), %rdi
callq 0xdca8
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0xdca8
movq -0x50(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)