// File: /workspace/github_cpp_makefile_star2_O3/oknenavin[P]cxon/test/../src/cxon/lang/json/compound.hxx
// Function: bool cxon::read<cxon::JSON<cxon::test::allow_comments_traits<cxon::json::format_traits>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, void>::value<char const*, cxon::context<cxon::JSON<cxon::test::allow_comments_traits<cxon::json::format_traits>>>, cxon::JSON<cxon::test::allow_comments_traits<cxon::json::format_traits>>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*&, char const*&, char const*, cxon::context<cxon::JSON<cxon::test::allow_comments_traits<cxon::json::format_traits>>>&)
static bool value(T*& t, II& i, II e, Cx& cx) {
                    if (!cio::consume<Y>(i, e, cx))
                        return false;
                    if (cio::peek(i, e) == *Y::id::nil) {
                        II const o = i;
                        return  (cio::consume<Y>(Y::id::nil, i, e) && (t = nullptr, true)) ||
                                (cio::rewind(i, o), cx/json::read_error::unexpected)
                        ;
                    }
                    auto al = alc::make_context_allocator<T>(cx);
                    T *const n = al.create();
                        if (!read_value<Y>(*n, i, e, cx))
                            return al.release(n), false;
                    return t = n, true;
                }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
movq (%rsi), %rdx
xorl %ecx, %ecx
leaq 0x1e47(%rip), %rax      # 0x1e5020
cmpq %r12, %rdx
je 0x1e31ef
movzbl (%rdx), %esi
testb $0x8, (%rsi,%rax)
je 0x1e31ef
incq %rdx
movq %rdx, (%r15)
jmp 0x1e31d9
cmpq %r12, %rdx
je 0x1e3286
cmpb $0x2f, (%rdx)
jne 0x1e3286
leaq 0x1(%rdx), %rsi
movq %rsi, (%r15)
cmpq %r12, %rsi
je 0x1e328b
movzbl (%rsi), %edi
cmpl $0x2a, %edi
je 0x1e3239
cmpl $0x2f, %edi
jne 0x1e328b
addq $0x2, %rdx
movq %rdx, %rsi
movq %rsi, (%r15)
movb $0x1, %cl
cmpq %r12, %rsi
je 0x1e3272
cmpb $0xa, (%rsi)
movq %rsi, %rdx
leaq 0x1(%rsi), %rsi
jne 0x1e3221
jmp 0x1e31d9
addq $0x2, %rdx
movq %rdx, (%r15)
movb $0x1, %cl
cmpq %r12, %rdx
je 0x1e31d9
cmpb $0x2a, (%rdx)
setne %dil
leaq 0x1(%rdx), %rsi
movq %rsi, (%r15)
cmpq %r12, %rsi
sete %r8b
orb %dil, %r8b
cmpb $0x1, %r8b
je 0x1e326a
cmpb $0x2f, (%rsi)
je 0x1e327a
movq %rsi, %rdx
cmpq %r12, %rsi
jne 0x1e3247
movq %rsi, %rdx
jmp 0x1e31d9
addq $0x2, %rdx
movq %rdx, (%r15)
jmp 0x1e31d9
movq %rdx, %rsi
jmp 0x1e3290
testb $0x1, %cl
je 0x1e32d8
cmpq %r12, %rsi
je 0x1e32e9
cmpb $0x6e, (%rsi)
jne 0x1e32e9
movq %r12, %rax
subq %rsi, %rax
xorl %ecx, %ecx
leaq 0x7a6e(%rip), %rdx      # 0x1ead17
cmpq $0x4, %rcx
je 0x1e333d
movb (%rcx,%rdx), %dil
cmpb (%rsi,%rcx), %dil
jne 0x1e32d5
leaq (%rsi,%rcx), %rdi
incq %rdi
movq %rdi, (%r15)
incq %rcx
cmpq %r12, %rdi
jne 0x1e32a9
cmpb $0x0, (%rax,%rdx)
je 0x1e333d
movq %rsi, (%r15)
callq 0x4a9e4
movl $0x1, (%rbx)
movq %rax, 0x8(%rbx)
jmp 0x1e3339
movl $0x20, %edi
callq 0xe260
movq %rax, %r13
leaq 0x10(%rax), %rbp
movq %rbp, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rax, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rbx, %rcx
callq 0x1e3356
testb %al, %al
je 0x1e3323
movq %r13, (%r14)
jmp 0x1e3344
movq (%r13), %rdi
cmpq %rbp, %rdi
je 0x1e3331
callq 0xe250
movq %r13, %rdi
callq 0xe250
xorl %eax, %eax
jmp 0x1e3346
movq $0x0, (%r14)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop