// File: demon386[P]git-store/./boost/program_options/detail/value_semantic.hpp
// Function: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const& boost::program_options::validators::get_single_string<char>(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)
const std::basic_string<charT>& get_single_string(
            const std::vector<std::basic_string<charT> >& v, 
            bool allow_empty = false)
        {
            static std::basic_string<charT> empty;
            if (v.size() > 1)
                boost::throw_exception(validation_error(validation_error::multiple_values_not_allowed));
            else if (v.size() == 1)
                return v.front();
            else if (!allow_empty)
                boost::throw_exception(validation_error(validation_error::at_least_one_value_required));
            return empty;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movb %sil, %al
movq %rdi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
cmpb $0x0, 0x517e2(%rip)     # 0x8e730
jne 0x3cf93
leaq 0x517d9(%rip), %rdi     # 0x8e730
callq 0xdb80
cmpl $0x0, %eax
je 0x3cf93
leaq 0x517a8(%rip), %rdi     # 0x8e710
callq 0xd8f0
movq 0x5100c(%rip), %rdi     # 0x8df80
leaq 0x51795(%rip), %rsi     # 0x8e710
leaq 0x516d6(%rip), %rdx     # 0x8e658
callq 0xd560
leaq 0x517a2(%rip), %rdi     # 0x8e730
callq 0xd3e0
movq -0x10(%rbp), %rdi
callq 0x124d0
cmpq $0x1, %rax
jbe 0x3d0c5
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0xdb50
movq -0x250(%rbp), %rdx
leaq 0x22e9a(%rip), %rsi     # 0x5fe61
leaq -0xf8(%rbp), %rdi
callq 0xd8b0
jmp 0x3cfd5
leaq -0x131(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0xdb50
movq -0x258(%rbp), %rdx
leaq 0x22e6b(%rip), %rsi     # 0x5fe61
leaq -0x130(%rbp), %rdi
callq 0xd8b0
jmp 0x3d004
leaq -0xd8(%rbp), %rdi
movl $0x1e, %esi
leaq -0xf8(%rbp), %rdx
leaq -0x130(%rbp), %rcx
xorl %r8d, %r8d
callq 0x41e80
jmp 0x3d028
leaq -0xd8(%rbp), %rdi
callq 0x41da0
jmp 0x3d036
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d0b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d09c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d090
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x3e060
leaq -0x130(%rbp), %rdi
callq 0xdca8
leaq -0x131(%rbp), %rdi
callq 0xd6b0
leaq -0xf8(%rbp), %rdi
callq 0xdca8
leaq -0xf9(%rbp), %rdi
callq 0xd6b0
jmp 0x3d228
movq -0x10(%rbp), %rdi
callq 0x124d0
cmpq $0x1, %rax
jne 0x3d0e6
movq -0x10(%rbp), %rdi
callq 0x3ccf0
movq %rax, -0x8(%rbp)
jmp 0x3d21b
testb $0x1, -0x11(%rbp)
jne 0x3d20c
leaq -0x219(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0xdb50
movq -0x260(%rbp), %rdx
leaq 0x22d50(%rip), %rsi     # 0x5fe61
leaq -0x218(%rbp), %rdi
callq 0xd8b0
jmp 0x3d11f
leaq -0x241(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0xdb50
movq -0x268(%rbp), %rdx
leaq 0x22d21(%rip), %rsi     # 0x5fe61
leaq -0x240(%rbp), %rdi
callq 0xd8b0
jmp 0x3d14e
leaq -0x1f8(%rbp), %rdi
movl $0x1f, %esi
leaq -0x218(%rbp), %rdx
leaq -0x240(%rbp), %rcx
xorl %r8d, %r8d
callq 0x41e80
jmp 0x3d172
leaq -0x1f8(%rbp), %rdi
callq 0x41da0
jmp 0x3d180
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d1fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d1e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x3d1da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x3e060
leaq -0x240(%rbp), %rdi
callq 0xdca8
leaq -0x241(%rbp), %rdi
callq 0xd6b0
leaq -0x218(%rbp), %rdi
callq 0xdca8
leaq -0x219(%rbp), %rdi
callq 0xd6b0
jmp 0x3d228
jmp 0x3d20e
jmp 0x3d210
leaq 0x514f9(%rip), %rax     # 0x8e710
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
movq -0x108(%rbp), %rdi
callq 0xdb30
nopw %cs:(%rax,%rax)
nop