// File: /workspace/github_cpp_makefile_star2_O1/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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %r12
movq (%rsi), %rax
cmpq %rdx, %rax
je 0x225e3
movb (%rax), %al
jmp 0x225e5
movb $-0x1, %al
movl %eax, %ecx
shrb $0x5, %cl
movzbl %cl, %ecx
leaq 0x250fc(%rip), %rdx     # 0x476f0
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpl $0x7, 0x20(%r12)
je 0x2261e
movq %r12, %rdi
callq 0x1a06a
movl $0x7, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17ea8
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x22804
movq %r12, %rdi
callq 0x1a54a
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x233e0
jmp 0x22800
cmpl $0x3, 0x20(%r12)
je 0x2269a
movq %r12, %rdi
callq 0x1a06a
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
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x229bc
cmpl $0x4, 0x20(%r12)
je 0x226ea
movq %r12, %rdi
callq 0x1a06a
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
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18f68
movzbl %al, %eax
addl $0xffffff0c, %eax       # imm = 0xFFFFFF0C
cmpl $0xb, %eax
ja 0x228ee
leaq 0x24fef(%rip), %rcx     # 0x47710
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x5, 0x20(%r12)
je 0x2274b
movq %r12, %rdi
callq 0x1a06a
movl $0x5, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x19848
cmpl $0x6, 0x20(%r12)
je 0x2278b
movq %r12, %rdi
callq 0x1a06a
movl $0x6, 0x20(%r12)
movq $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18184
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x22804
movq %r12, %rdi
callq 0x1a510
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x23ec2
jmp 0x22800
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x22804
movq %r12, %rdi
callq 0x22982
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x241d8
movl %eax, %ebp
jmp 0x22815
callq 0x12598
movl $0x2, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebp, %ebp
decl (%r13)
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x9, 0x20(%r12)
je 0x22848
movq %r12, %rdi
callq 0x1a06a
movl $0x9, 0x20(%r12)
movb $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x197f8
cmpl $0xb, 0x20(%r12)
je 0x22880
movq %r12, %rdi
callq 0x1a06a
movl $0xb, 0x20(%r12)
movq (%r14), %rax
cmpq %r15, %rax
je 0x2292b
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0x9, (%rax)
sete %bpl
jmp 0x2292d
cmpl $0xa, 0x20(%r12)
je 0x228c0
movq %r12, %rdi
callq 0x1a06a
movl $0xa, 0x20(%r12)
movq $0x0, (%r12)
movq (%r14), %rax
cmpq %r15, %rax
je 0x22946
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0xa, (%rax)
sete %bpl
jmp 0x22948
callq 0x12598
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x22819
cmpl $0x8, 0x20(%r12)
je 0x2290c
movq %r12, %rdi
callq 0x1a06a
movl $0x8, 0x20(%r12)
movb $0x0, (%r12)
movq %r12, %rdi
movq %r14, %rsi
movq %r15, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x19aa2
xorl %ebp, %ebp
testb %bpl, %bpl
jne 0x22819
movq %rax, (%r14)
callq 0x17f7e
movl $0x1, (%rbx)
jmp 0x22968
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x2295a
movq $0x0, (%r12)
jmp 0x22819
movq %rax, (%r14)
callq 0x17f7e
movl $0x3, (%rbx)
movq %rax, 0x8(%rbx)
jmp 0x22819
jmp 0x22975
jmp 0x22975
decl (%r13)
movq %rax, %rdi
callq 0x43b0
nop