// File: /workspace/github_cpp_makefile_star2_O2/oknenavin[P]cxon/test/../src/cxon/lib/node.cbor.hxx
// Function: bool cxon::read<cxon::CBOR<cxon::cbor::format_traits>, cxon::cbor::basic_node<cxon::cbor::ordered_node_traits<std::allocator<char>>>, void>::value<char const*, cxon::context<cxon::CBOR<cxon::cbor::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>, cxon::CBOR<cxon::cbor::format_traits>>(cxon::cbor::basic_node<cxon::cbor::ordered_node_traits<std::allocator<char>>>&, char const*&, char const*, cxon::context<cxon::CBOR<cxon::cbor::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>&)
static bool value(cbor::basic_node<Tr>& t, II& i, II e, Cx& cx) {
                    bio::byte const b = bio::peek(i, e);
                    switch (b & X::mjr) {
#                       define CXON_IMBUE(T) t.template imbue<typename cbor::basic_node<Tr>::T>()
                            case X::pint            :                           return read_value<Y>(CXON_IMBUE(uint),      i, e, cx);
                            case X::nint            :                           return read_value<Y>(CXON_IMBUE(sint),      i, e, cx);
                            case X::bstr            :                           return read_value<Y>(CXON_IMBUE(bytes),     i, e, cx);
                            case X::tstr            :                           return read_value<Y>(CXON_IMBUE(text),      i, e, cx);
                            case X::arr             : { CXON_NODE_RG();         return read_value<Y>(CXON_IMBUE(array),     i, e, cx); }
                            case X::map             : { CXON_NODE_RG();         return read_value<Y>(CXON_IMBUE(map),       i, e, cx); }
                            case X::tag             : { CXON_NODE_RG();         return read_value<Y>(CXON_IMBUE(tag),       i, e, cx); }
                            case X::svn:
                                switch (b) {
                                    case X::neg: case X::pos
                                                    :                           return read_value<Y>(CXON_IMBUE(boolean),   i, e, cx);
                                    case X::nil     :                           return read_value<Y>(CXON_IMBUE(null),      i, e, cx);
                                    case X::und     :                           return read_value<Y>(CXON_IMBUE(undefined), i, e, cx);
                                    case X::fp16: case X::fp32: case X::fp64
                                                    :                           return read_value<Y>(CXON_IMBUE(real),      i, e, cx);
                                    case X::brk     :                           return cx/node::error::invalid;
                                    default         :                           return read_value<Y>(CXON_IMBUE(simple),    i, e, cx);
                                }
#                       undef CXON_IMBUE
                    }
                    return false; // LCOV_EXCL_LINE
                }

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq (%rsi), %rax
cmpq %rdx, %rax
je 0x18ead
movq %rdx, %r14
movq %rsi, %r15
movzbl (%rax), %eax
movl %eax, %ecx
shrl $0x5, %ecx
leaq 0x22b06(%rip), %rdx     # 0x3b8d8
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
callq 0x14b2e
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x11138
leaq 0x14(%rbx), %r12
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x18f36
callq 0x1370a
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x198ea
jmp 0x18f41
callq 0x18fe6
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x19075
callq 0x13730
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x122d8
addl $0xffffff0c, %eax       # imm = 0xFFFFFF0C
cmpl $0xb, %eax
ja 0x18fb4
leaq 0x22a75(%rip), %rcx     # 0x3b8f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
callq 0x1375e
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x12b1a
pushq $0x1
popq %rsi
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x110c2
callq 0x14b0c
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x114e8
leaq 0x14(%rbx), %r12
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x18f36
callq 0x136e6
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1a396
jmp 0x18f41
leaq 0x14(%rbx), %r12
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x18f36
callq 0x19010
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x1a6c0
jmp 0x18f41
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x110c2
decl (%r12)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
callq 0x13780
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x12a94
callq 0x19036
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x12af4
callq 0x137a2
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x12aca
callq 0x19054
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmp 0x12db6
jmp 0x18fd9
jmp 0x18fd9
decl (%r12)
movq %rax, %rdi
callq 0x4450
nop