// File: flightaware[P]beast-splitter/splitter_main.cc
// Function: 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&, listen_option*, int)
void validate(boost::any &v, const std::vector<std::string> &values, listen_option *target_type, int) {
    po::validators::check_first_occurrence(v);
    const std::string &s = po::validators::get_single_string(values);

    static const boost::regex r("(?:([^:]+):)?(\\d+)(?::([a-zA-Z]+))?");
    boost::smatch match;
    if (boost::regex_match(s, match, r)) {
        listen_option o;
        o.host = match[1];
        o.port = match[2];
        o.settings = beast::Settings(match[3]);
        v = boost::any(o);
    } else {
        throw po::validation_error(po::validation_error::invalid_option_value);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x12e50
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x67dc0
movq %rax, -0x28(%rbp)
cmpb $0x0, 0xa67cf(%rip)     # 0x10c018
jne 0x65899
leaq 0xa67c6(%rip), %rdi     # 0x10c018
callq 0x12ff0
cmpl $0x0, %eax
je 0x65899
leaq 0xa67a5(%rip), %rdi     # 0x10c008
leaq 0x5053b(%rip), %rsi     # 0xb5da5
xorl %edx, %edx
callq 0x680d0
jmp 0x65873
leaq 0x28b6(%rip), %rdi      # 0x68130
leaq 0xa6787(%rip), %rsi     # 0x10c008
leaq 0xa6050(%rip), %rdx     # 0x10b8d8
callq 0x12760
leaq 0xa6784(%rip), %rdi     # 0x10c018
callq 0x125b0
leaq -0x89(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x68150
movq -0x1f0(%rbp), %rsi
leaq -0x88(%rbp), %rdi
callq 0x68170
jmp 0x658c1
leaq -0x89(%rbp), %rdi
callq 0x68200
movq -0x28(%rbp), %rdi
leaq 0xa6730(%rip), %rdx     # 0x10c008
leaq -0x88(%rbp), %rsi
xorl %ecx, %ecx
callq 0x68220
movb %al, -0x1f1(%rbp)
jmp 0x658ee
movb -0x1f1(%rbp), %al
testb $0x1, %al
jne 0x658fd
jmp 0x65afa
leaq -0x100(%rbp), %rdi
callq 0x686e0
jmp 0x6590b
leaq -0x88(%rbp), %rdi
movl $0x1, %esi
callq 0x682b0
movq %rax, -0x200(%rbp)
jmp 0x65925
movq -0x200(%rbp), %rsi
leaq -0x120(%rbp), %rdi
callq 0x68340
jmp 0x6593a
leaq -0x100(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %rsi, -0x210(%rbp)
callq 0x12a40
movq -0x210(%rbp), %rdi
callq 0x13198
leaq -0x88(%rbp), %rdi
movl $0x2, %esi
callq 0x682b0
movq %rax, -0x208(%rbp)
jmp 0x6597a
movq -0x208(%rbp), %rsi
leaq -0x140(%rbp), %rdi
callq 0x68340
jmp 0x6598f
leaq -0xe0(%rbp), %rdi
leaq -0x140(%rbp), %rsi
movq %rsi, -0x220(%rbp)
callq 0x12a40
movq -0x220(%rbp), %rdi
callq 0x13198
leaq -0x88(%rbp), %rdi
movl $0x3, %esi
callq 0x682b0
movq %rax, -0x218(%rbp)
jmp 0x659cf
movq -0x218(%rbp), %rsi
leaq -0x190(%rbp), %rdi
callq 0x68340
jmp 0x659e4
leaq -0x170(%rbp), %rdi
leaq -0x190(%rbp), %rsi
callq 0x19c20
jmp 0x659f9
movups -0x170(%rbp), %xmm0
movups -0x160(%rbp), %xmm1
movups -0x150(%rbp), %xmm2
movups %xmm2, -0xa0(%rbp)
movups %xmm1, -0xb0(%rbp)
movups %xmm0, -0xc0(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x13198
xorl %eax, %eax
movl %eax, %ecx
leaq -0x198(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movq %rcx, %rdx
callq 0x68700
jmp 0x65a4b
movq -0x8(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x68480
leaq -0x198(%rbp), %rdi
callq 0x684d0
leaq -0x100(%rbp), %rdi
callq 0x68780
jmp 0x65c2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq 0xa658d(%rip), %rdi     # 0x10c018
callq 0x125a0
jmp 0x65c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x89(%rbp), %rdi
callq 0x68200
jmp 0x65c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x65c40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x65ae9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x13198
leaq -0x100(%rbp), %rdi
callq 0x68780
jmp 0x65c40
movb $0x1, -0x1e2(%rbp)
movl $0xc0, %edi
callq 0x12430
movq %rax, -0x230(%rbp)
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x12fa0
movq -0x228(%rbp), %rdx
leaq 0x4f87a(%rip), %rsi     # 0xb53ad
leaq -0x1b8(%rbp), %rdi
callq 0x22350
jmp 0x65b41
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x238(%rbp)
callq 0x12fa0
movq -0x238(%rbp), %rdx
leaq 0x4f84b(%rip), %rsi     # 0xb53ad
leaq -0x1e0(%rbp), %rdi
callq 0x22350
jmp 0x65b70
movq -0x230(%rbp), %rdi
movl $0x21, %esi
leaq -0x1b8(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
xorl %r8d, %r8d
callq 0x68530
jmp 0x65b94
movq -0x230(%rbp), %rdi
movb $0x0, -0x1e2(%rbp)
leaq 0xa34bf(%rip), %rsi     # 0x109068
leaq 0x2a20(%rip), %rdx      # 0x685d0
callq 0x12ee0
jmp 0x65c55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x65c06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x65bee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x13198
leaq -0x1e1(%rbp), %rdi
callq 0x128f0
leaq -0x1b8(%rbp), %rdi
callq 0x13198
leaq -0x1b9(%rbp), %rdi
callq 0x128f0
testb $0x1, -0x1e2(%rbp)
jne 0x65c1d
jmp 0x65c29
movq -0x230(%rbp), %rdi
callq 0x12650
jmp 0x65c40
leaq -0x88(%rbp), %rdi
callq 0x685f0
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
leaq -0x88(%rbp), %rdi
callq 0x685f0
movq -0x30(%rbp), %rdi
callq 0x12f70
nopw %cs:(%rax,%rax)