// 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::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 %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r14
movq %rdi, %r15
movq (%r14), %rax
cmpq %r12, %rax
je 0x17ae7
movb (%rax), %cl
jmp 0x17ae9
movb $-0x1, %cl
movl %ecx, %edx
shrb $0x5, %dl
cmpb $0x6, %dl
jne 0x17b4e
cmpq %r12, %rax
je 0x17afc
movb (%rax), %cl
jmp 0x17afe
movb $-0x1, %cl
movl %ecx, %edx
andb $-0x20, %dl
cmpb $-0x40, %dl
jne 0x17adb
andb $0x1f, %cl
cmpb $0x18, %cl
jae 0x17b1c
movl $0x1, %edx
cmpq %r12, %rax
jne 0x17b46
jmp 0x17adb
movzbl %cl, %edx
addl $-0x18, %edx
cmpl $0x4, %edx
jae 0x17e19
addb $-0x18, %cl
movl $0x1, %edx
shll %cl, %edx
incl %edx
movq %r12, %rcx
subq %rax, %rcx
cmpq %rdx, %rcx
jb 0x17e26
addq %rdx, %rax
movq %rax, (%r14)
jmp 0x17adb
movzbl %dl, %edx
movl %edx, %edx
leaq 0x2f7f2(%rip), %rsi     # 0x4734c
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
cmpl $0x5, 0x20(%r15)
je 0x17b81
movq %r15, %rdi
callq 0x1359a
movl $0x5, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %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 0x17d0e
movq %r15, %rdi
callq 0x1255e
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x18354
jmp 0x17d0a
movq %r15, %rdi
callq 0x1255e
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18354
cmpl $0x2, 0x20(%r15)
je 0x17c25
movq %r15, %rdi
callq 0x1359a
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 $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18f68
cmpl $0x4, 0x20(%r15)
je 0x17c62
movq %r15, %rdi
callq 0x1359a
movl $0x4, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18184
movzbl %cl, %ecx
addl $0xffffff0c, %ecx       # imm = 0xFFFFFF0C
cmpl $0xb, %ecx
ja 0x17dce
leaq 0x2f6d2(%rip), %rdx     # 0x4736c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpl $0x3, 0x20(%r15)
je 0x17cc1
movq %r15, %rdi
callq 0x1359a
movl $0x3, 0x20(%r15)
movq $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x19848
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x17d0e
movq %r15, %rdi
callq 0x12512
movq %rax, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x195a6
movl %eax, %ebp
jmp 0x17d1f
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 $0x6, 0x20(%r15)
je 0x17d4f
movq %r15, %rdi
callq 0x1359a
movl $0x6, 0x20(%r15)
movb $0x0, (%r15)
movq %r15, %rdi
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x197f8
cmpq %r12, %rax
je 0x17e3c
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0x9, (%rax)
sete %bpl
jmp 0x17e3e
cmpl $0x7, 0x20(%r15)
je 0x17da8
movq %r15, %rdi
callq 0x1359a
movl $0x7, 0x20(%r15)
movq $0x0, (%r15)
movq (%r14), %rax
cmpq %r12, %rax
je 0x17e70
leaq 0x1(%rax), %rcx
movq %rcx, (%r14)
cmpb $-0xa, (%rax)
sete %bpl
jmp 0x17e72
callq 0x12598
jmp 0x17e2b
leaq 0x7(%rsp), %rdi
movb $0x0, (%rdi)
movq %r14, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x19aa2
movl %eax, %ebp
testb %al, %al
je 0x17d23
movzbl 0x7(%rsp), %ebx
cmpl $0x5, 0x20(%r15)
je 0x17e11
movq %r15, %rdi
callq 0x1359a
movl $0x5, 0x20(%r15)
movq $0x0, (%r15)
movq %rbx, (%r15)
jmp 0x17d23
callq 0x17f7e
movl $0x8, (%rbx)
jmp 0x17e31
callq 0x17f7e
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
xorl %ebp, %ebp
jmp 0x17d23
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x17e60
cmpl $0x7, 0x20(%r15)
je 0x17d23
movq %r15, %rdi
callq 0x1359a
movl $0x7, 0x20(%r15)
jmp 0x17e77
movq %rax, (%r14)
callq 0x17f7e
movl $0x1, (%rbx)
jmp 0x17e91
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x17e83
movq $0x0, (%r15)
jmp 0x17d23
movq %rax, (%r14)
callq 0x17f7e
movl $0x3, (%rbx)
movq %rax, 0x8(%rbx)
jmp 0x17d23
jmp 0x17e9c
decl (%r13)
movq %rax, %rdi
callq 0x43b0