// File: meirdev[P]HexViewer/./CLI11.hpp
// Function: CLI::App::add_option(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::function<bool (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>>>>)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool)
Option *add_option(std::string option_name,
                       callback_t option_callback,
                       std::string description = "",
                       bool defaulted = false) {
        Option myopt{option_name, description, option_callback, defaulted, this};

        if(std::find_if(std::begin(options_), std::end(options_), [&myopt](const Option_p &v) {
               return *v == myopt;
           }) == std::end(options_)) {
            options_.emplace_back();
            Option_p &option = options_.back();
            option.reset(new Option(option_name, description, option_callback, defaulted, this));
            option_defaults_.copy_to(option.get());
            return option.get();
        } else
            throw OptionAlreadyAdded(myopt.get_name());
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x380, %rsp            # imm = 0x380
movq %rcx, -0x328(%rbp)
movq %rdx, -0x340(%rbp)
movq %rsi, -0x338(%rbp)
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
andb $0x1, %al
movb %al, -0x21(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x330(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x61d0
movq -0x328(%rbp), %rsi
leaq -0x230(%rbp), %rdi
callq 0x61d0
jmp 0x19734
movq -0x340(%rbp), %rsi
leaq -0x260(%rbp), %rdi
callq 0x19b90
jmp 0x19749
movq -0x330(%rbp), %r9
movzbl -0x21(%rbp), %r8d
andl $0x1, %r8d
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
leaq -0x230(%rbp), %rdx
leaq -0x260(%rbp), %rcx
callq 0x1a1c0
jmp 0x1977c
leaq -0x260(%rbp), %rdi
callq 0x190f0
leaq -0x230(%rbp), %rdi
callq 0x6280
leaq -0x210(%rbp), %rdi
callq 0x6280
movq -0x330(%rbp), %rdi
addq $0x98, %rdi
movq %rdi, -0x350(%rbp)
callq 0x17de0
movq -0x350(%rbp), %rdi
movq %rax, -0x270(%rbp)
callq 0x17e10
movq %rax, -0x278(%rbp)
leaq -0x1f0(%rbp), %rax
movq %rax, -0x280(%rbp)
movq -0x270(%rbp), %rdi
movq -0x278(%rbp), %rsi
movq -0x280(%rbp), %rdx
callq 0x1a590
movq %rax, -0x348(%rbp)
jmp 0x19805
movq -0x330(%rbp), %rdi
movq -0x348(%rbp), %rax
movq %rax, -0x268(%rbp)
addq $0x98, %rdi
callq 0x17e10
movq %rax, -0x288(%rbp)
leaq -0x268(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x1a550
testb $0x1, %al
jne 0x19849
jmp 0x19abb
movq -0x330(%rbp), %rdi
addq $0x98, %rdi
callq 0x1a5f0
jmp 0x1985e
movq -0x330(%rbp), %rdi
addq $0x98, %rdi
callq 0x1a660
movq %rax, -0x290(%rbp)
movq -0x290(%rbp), %rax
movq %rax, -0x360(%rbp)
movl $0x1c8, %edi            # imm = 0x1C8
callq 0x63e0
movq %rax, -0x358(%rbp)
jmp 0x19899
movq -0x338(%rbp), %rsi
movb $0x1, -0x2f1(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x61d0
jmp 0x198b5
movq -0x328(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
callq 0x61d0
jmp 0x198ca
movq -0x340(%rbp), %rsi
leaq -0x2f0(%rbp), %rdi
callq 0x19b90
jmp 0x198df
movq -0x330(%rbp), %r9
movq -0x358(%rbp), %rdi
movzbl -0x21(%rbp), %r8d
andl $0x1, %r8d
leaq -0x2b0(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
leaq -0x2f0(%rbp), %rcx
callq 0x1a1c0
jmp 0x19912
movq -0x358(%rbp), %rsi
movq -0x360(%rbp), %rdi
movb $0x0, -0x2f1(%rbp)
callq 0x1a6a0
leaq -0x2f0(%rbp), %rdi
callq 0x190f0
leaq -0x2d0(%rbp), %rdi
callq 0x6280
leaq -0x2b0(%rbp), %rdi
callq 0x6280
movq -0x330(%rbp), %rax
addq $0x70, %rax
movq %rax, -0x368(%rbp)
movq -0x290(%rbp), %rdi
callq 0x10a90
movq -0x368(%rbp), %rdi
movq %rax, %rsi
callq 0x1a6d0
jmp 0x1997f
movq -0x290(%rbp), %rdi
callq 0x10a90
movq %rax, -0x370(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x19010
movq -0x370(%rbp), %rax
addq $0x380, %rsp            # imm = 0x380
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19a00
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x199f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x190f0
leaq -0x230(%rbp), %rdi
callq 0x6280
leaq -0x210(%rbp), %rdi
callq 0x6280
jmp 0x19b7b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19b6f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19a9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19a8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19a82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x190f0
leaq -0x2d0(%rbp), %rdi
callq 0x6280
leaq -0x2b0(%rbp), %rdi
callq 0x6280
testb $0x1, -0x2f1(%rbp)
jne 0x19aa5
jmp 0x19ab6
movq -0x358(%rbp), %rdi
movl $0x1c8, %esi            # imm = 0x1C8
callq 0x63f0
jmp 0x19b6f
movb $0x1, -0x319(%rbp)
movl $0x38, %edi
callq 0x6200
movq %rax, -0x378(%rbp)
leaq -0x318(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x14b70
jmp 0x19aec
movq -0x378(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x1a7a0
jmp 0x19b01
movq -0x378(%rbp), %rdi
movb $0x0, -0x319(%rbp)
leaq 0x43a8a(%rip), %rsi     # 0x5d5a0
leaq 0xcf3(%rip), %rdx       # 0x1a810
callq 0x6700
jmp 0x19b87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
jmp 0x19b56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x6280
testb $0x1, -0x319(%rbp)
jne 0x19b61
jmp 0x19b6d
movq -0x378(%rbp), %rdi
callq 0x6310
jmp 0x19b6f
leaq -0x1f0(%rbp), %rdi
callq 0x19010
movq -0x238(%rbp), %rdi
callq 0x6750
nopw (%rax,%rax)