// File: /workspace/github_cpp_makefile_star2_O1/oknenavin[P]cxon/test/../src/cxon/lang/common/cio/string.hxx
// Function: std::enable_if<is_char<char>::value, bool>::type cxon::cio::str::pointer_read<cxon::JSON<cxon::test::input_iterator_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>, char, cxon::test::force_input_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, cxon::context<cxon::JSON<cxon::test::input_iterator_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>>>(char*&, cxon::test::force_input_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, cxon::test::force_input_iterator<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, cxon::context<cxon::JSON<cxon::test::input_iterator_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>>&)
inline auto pointer_read(T*& t, II& i, II e, Cx& cx)
            -> enable_if_t<is_char<T>::value, bool>
        {
            if (!consume<X>(i, e, cx))
                return false;
            if (peek(i, e) == *X::id::nil && consume<X>(X::id::nil, i, e))
                return true;
            auto c = cxon::cnt::make_pointer_container<X, T>(cx);
            return string_read<X>(c, i, e, cx) && (c.push_back({}), t = c.release(), true);
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbx
movq (%rdx), %rax
leaq 0x8(%rsp), %rsi
movq %rax, (%rsi)
movq %r15, %rdi
callq 0x123e76
testb %al, %al
je 0x123d52
movq (%r15), %rcx
movq (%r12), %rax
cmpq %rax, %rcx
je 0x123d81
cmpb $0x6e, (%rcx)
jne 0x123d81
movq (%r15), %rcx
cmpq %rax, %rcx
je 0x123d69
movq %rax, %rsi
subq %rcx, %rsi
leaq 0xca3d4(%rip), %rdi     # 0x1ee0f7
addq %rdi, %rsi
xorl %r8d, %r8d
leaq 0xca3cb(%rip), %rdx     # 0x1ee0fb
cmpq $0x4, %r8
je 0x123d78
movb (%r8,%rdi), %r9b
cmpb (%rcx), %r9b
jne 0x123d72
incq %rcx
movq %rcx, (%r15)
incq %r8
cmpq %rax, %rcx
jne 0x123d30
movq %rsi, %rdx
jmp 0x123d78
callq 0x4ae3c
movl $0x1, (%r14)
movq %rax, 0x8(%r14)
xorl %ebp, %ebp
jmp 0x123e46
leaq 0xca387(%rip), %rdx     # 0x1ee0f7
jmp 0x123d78
addq %r8, %rdi
movq %rdi, %rdx
cmpb $0x0, (%rdx)
je 0x123e55
xorps %xmm0, %xmm0
leaq 0x8(%rsp), %rdi
movups %xmm0, 0x8(%rdi)
movq $0x0, 0x18(%rdi)
movl $0x8, %esi
callq 0xe14c4
movq (%r12), %r12
leaq 0x28(%rsp), %rsi
movq %r12, (%rsi)
movq %r15, %rdi
callq 0x123e76
testb %al, %al
je 0x123de3
movq (%r15), %rax
cmpq %r12, %rax
je 0x123de3
cmpb $0x22, (%rax)
jne 0x123de3
incq (%r15)
leaq 0x28(%rsp), %rdx
movq %r12, (%rdx)
leaq 0x8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rcx
callq 0x123f46
movl %eax, %ebp
jmp 0x123df5
callq 0x4ae3c
movl $0x1, (%r14)
movq %rax, 0x8(%r14)
xorl %ebp, %ebp
testb %bpl, %bpl
je 0x123e37
leaq 0x7(%rsp), %rsi
movb $0x0, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0xe148c
leaq 0x8(%rsp), %rdi
movq 0x18(%rdi), %rsi
subq 0x8(%rdi), %rsi
callq 0xe14c4
leaq 0x10(%rsp), %rax
movq (%rax), %rcx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq $0x0, 0x10(%rax)
movq %rcx, (%rbx)
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x123e46
callq 0xe250
movl %ebp, %eax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movb $0x1, %bpl
jmp 0x123e46
jmp 0x123e5c
movq %rax, %rbx
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x123e6e
callq 0xe250
movq %rbx, %rdi
callq 0xe3e0