// 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::json::basic_node<cxon::json::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::json::basic_node<cxon::json::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(json::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 json::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(array),         i, e, cx);
                                case X::tstr            :                       return read_value<Y>(CXON_IMBUE(string),        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(object),        i, e, cx); }
                                case X::tag             :                       return cbor::tag::read<Y>(i, e, cx) && value(t, 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     : {
                                            cbor::undefined u;                  return read_value<Y>(u, i, e, cx) && (CXON_IMBUE(null), true);
                                        }
                                        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         : {
                                            typename cbor::node::simple s;      return read_value<Y>(s, i, e, cx) && (CXON_IMBUE(uint) = s, true);
                                        }
                                    }
#                           undef CXON_IMBUE
                        }
                        return false; // LCOV_EXCL_LINE
                    }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rcx, %rbx
movq (%rsi), %rax
cmpq %rdx, %rax
je 0x16d76
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movzbl (%rax), %ecx
movl %ecx, %edx
shrl $0x5, %edx
cmpl $0x6, %edx
jne 0x16bef
movl %ecx, %edx
andb $-0x20, %dl
cmpb $-0x40, %dl
jne 0x16bbd
andl $0x1f, %ecx
movl $0x1, %edx
cmpb $0x18, %cl
jae 0x16bc7
addq %rdx, %rax
movq %rax, (%r14)
cmpq %r12, %rax
jne 0x16b93
jmp 0x16d76
leal -0x18(%rcx), %edx
cmpl $0x4, %edx
jae 0x16ee6
addb $-0x18, %cl
movl $0x1, %edx
shll %cl, %edx
incl %edx
movq %r12, %rcx
subq %rax, %rcx
cmpq %rdx, %rcx
jae 0x16bb7
jmp 0x16ef9
movl %edx, %edx
leaq 0x2d734(%rip), %rsi     # 0x4432c
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
cmpl $0x5, 0x20(%r15)
je 0x16c1f
movq %r15, %rdi
callq 0x13dae
movl $0x5, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
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 0x16db7
movq %r15, %rdi
callq 0x12c66
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x1736e
jmp 0x16db3
movq %r15, %rdi
callq 0x12c66
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x1736e
cmpl $0x2, 0x20(%r15)
je 0x16cc1
movq %r15, %rdi
callq 0x13dae
movl $0x2, 0x20(%r15)
leaq 0x10(%r15), %rax
movq %rax, (%r15)
movq $0x0, 0x8(%r15)
movb $0x0, 0x10(%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x17f10
cmpl $0x4, 0x20(%r15)
je 0x16cfd
movq %r15, %rdi
callq 0x13dae
movl $0x4, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x171c6
addl $0xffffff0c, %ecx       # imm = 0xFFFFFF0C
cmpl $0xb, %ecx
ja 0x16e87
leaq 0x2d61b(%rip), %rdx     # 0x4434c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpl $0x3, 0x20(%r15)
je 0x16d58
movq %r15, %rdi
callq 0x13dae
movl $0x3, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x18734
callq 0x12ca2
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebx, %ebx
jmp 0x16dcc
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x16db7
movq %r15, %rdi
callq 0x12c18
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x184b8
movl %eax, %ebx
jmp 0x16dc8
callq 0x12ca2
movl $0x2, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebx, %ebx
decl (%r13)
movl %ebx, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
cmpl $0x6, 0x20(%r15)
je 0x16df7
movq %r15, %rdi
callq 0x13dae
movl $0x6, 0x20(%r15)
movb $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x186f4
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0x9, (%rax)
jne 0x16ef6
movb $0x1, %bl
cmpl $0x7, 0x20(%r15)
je 0x16dcc
movq %r15, %rdi
callq 0x13dae
movl $0x7, 0x20(%r15)
movq $0x0, (%r15)
jmp 0x16dcc
cmpl $0x7, 0x20(%r15)
je 0x16e68
movq %r15, %rdi
callq 0x13dae
movl $0x7, 0x20(%r15)
movq $0x0, (%r15)
movq (%r14), %rax
cmpq %r12, %rax
je 0x16ed3
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0xa, (%rax)
jne 0x16ed3
movq $0x0, (%r15)
movb $0x1, %bl
jmp 0x16dcc
leaq 0xf(%rsp), %rdi
movb $0x0, (%rdi)
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x18962
movl %eax, %ebx
testb %al, %al
je 0x16dcc
movzbl 0xf(%rsp), %r14d
cmpl $0x5, 0x20(%r15)
je 0x16ecb
movq %r15, %rdi
callq 0x13dae
movl $0x5, 0x20(%r15)
movq $0x0, (%r15)
movq %r14, (%r15)
jmp 0x16dcc
movq %rax, (%r14)
callq 0x16fd8
movl $0x3, (%rbx)
jmp 0x16d81
callq 0x16fd8
movl $0x8, (%rbx)
jmp 0x16d81
movq %rax, (%r14)
callq 0x16fd8
jmp 0x16d7b
jmp 0x16f05
decl (%r13)
movq %rax, %rdi
callq 0x43b0
nop