// File: /workspace/github_cpp_makefile_star2_O3/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 %r13
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq (%rsi), %rcx
cmpq %rdx, %rcx
je 0x20735
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %r12
movzbl (%rcx), %eax
movl %eax, %edx
shrl $0x5, %edx
leaq 0x2409a(%rip), %rsi     # 0x44670
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
cmpl $0x7, 0x20(%r12)
je 0x20600
movq %r12, %rdi
callq 0x18f38
movl $0x7, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x16f12
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x207de
movq %r12, %rdi
callq 0x19434
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x2125a
jmp 0x207ef
cmpl $0x3, 0x20(%r12)
je 0x20677
movq %r12, %rdi
callq 0x18f38
movl $0x3, 0x20(%r12)
xorps %xmm0, %xmm0
movups %xmm0, (%r12)
movq $0x0, 0x10(%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x2094c
cmpl $0x4, 0x20(%r12)
je 0x206c2
movq %r12, %rdi
callq 0x18f38
movl $0x4, 0x20(%r12)
leaq 0x10(%r12), %rax
movq %rax, (%r12)
movq $0x0, 0x8(%r12)
movb $0x0, 0x10(%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x17f10
addl $0xffffff0c, %eax       # imm = 0xFFFFFF0C
cmpl $0xb, %eax
ja 0x208b5
leaq 0x23f9f(%rip), %rdx     # 0x44690
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
cmpl $0x5, 0x20(%r12)
je 0x2071b
movq %r12, %rdi
callq 0x18f38
movl $0x5, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x18734
callq 0x12ca2
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %eax, %eax
jmp 0x207f3
cmpl $0x6, 0x20(%r12)
je 0x2076c
movq %r12, %rdi
callq 0x18f38
movl $0x6, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x171c6
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x207de
movq %r12, %rdi
callq 0x193f8
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x21d0e
jmp 0x207ef
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x207de
movq %r12, %rdi
callq 0x20910
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x21ff6
jmp 0x207ef
callq 0x12ca2
movl $0x2, (%rbx)
movq %rax, 0x8(%rbx)
xorl %eax, %eax
decl (%r13)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
cmpl $0x9, 0x20(%r12)
je 0x2081b
movq %r12, %rdi
callq 0x18f38
movl $0x9, 0x20(%r12)
movb $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x186f4
cmpl $0xb, 0x20(%r12)
je 0x20851
movq %r12, %rdi
callq 0x18f38
movl $0xb, 0x20(%r12)
movq (%r14), %rcx
cmpq %r15, %rcx
je 0x20864
leaq 0x1(%rcx), %rax
movq %rax, (%r14)
movb $0x1, %al
cmpb $-0x9, (%rcx)
je 0x207f3
movq %rcx, (%r14)
callq 0x16fd8
jmp 0x2073a
cmpl $0xa, 0x20(%r12)
je 0x20895
movq %r12, %rdi
callq 0x18f38
movl $0xa, 0x20(%r12)
movq $0x0, (%r12)
movq (%r14), %rcx
cmpq %r15, %rcx
je 0x208ed
leaq 0x1(%rcx), %rax
movq %rax, (%r14)
cmpb $-0xa, (%rcx)
jne 0x208ed
movq $0x0, (%r12)
movb $0x1, %al
jmp 0x207f3
cmpl $0x8, 0x20(%r12)
je 0x208d3
movq %r12, %rdi
callq 0x18f38
movl $0x8, 0x20(%r12)
movb $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x18962
movq %rcx, (%r14)
callq 0x16fd8
movl $0x3, (%rbx)
jmp 0x20740
jmp 0x20904
jmp 0x20904
decl (%r13)
movq %rax, %rdi
callq 0x43b0