// File: /workspace/github_cpp_makefile_star2_O3/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::allow_comments_traits<cxon::json::format_traits>>, char, char const*, cxon::context<cxon::JSON<cxon::test::allow_comments_traits<cxon::json::format_traits>>>>(char*&, char const*&, char const*, cxon::context<cxon::JSON<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 %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x30, %rsp
movq %rcx, %r14
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
movq (%rsi), %rcx
xorl %eax, %eax
leaq 0xbf091(%rip), %r13     # 0x1e5020
cmpq %r15, %rcx
je 0x125fa7
movzbl (%rcx), %edx
testb $0x8, (%rdx,%r13)
je 0x125fa7
incq %rcx
movq %rcx, (%r12)
jmp 0x125f8f
cmpq %r15, %rcx
je 0x126047
cmpb $0x2f, (%rcx)
jne 0x126047
leaq 0x1(%rcx), %rdx
movq %rdx, (%r12)
cmpq %r15, %rdx
je 0x12604c
movzbl (%rdx), %esi
cmpl $0x2a, %esi
je 0x125ff7
cmpl $0x2f, %esi
jne 0x12604c
addq $0x2, %rcx
movq %rcx, %rdx
movq %rdx, (%r12)
movb $0x1, %al
cmpq %r15, %rdx
je 0x126032
cmpb $0xa, (%rdx)
movq %rdx, %rcx
leaq 0x1(%rdx), %rdx
jne 0x125fde
jmp 0x125f8f
addq $0x2, %rcx
movq %rcx, (%r12)
movb $0x1, %al
cmpq %r15, %rcx
je 0x125f8f
cmpb $0x2a, (%rcx)
setne %sil
leaq 0x1(%rcx), %rdx
movq %rdx, (%r12)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0x12602a
cmpb $0x2f, (%rdx)
je 0x12603a
movq %rdx, %rcx
cmpq %r15, %rdx
jne 0x126006
movq %rdx, %rcx
jmp 0x125f8f
addq $0x2, %rcx
movq %rcx, (%r12)
jmp 0x125f8f
movq %rcx, %rdx
jmp 0x126054
testb $0x1, %al
je 0x1261fe
cmpq %r15, %rdx
je 0x1260a0
cmpb $0x6e, (%rdx)
jne 0x1260a0
movq %r15, %rcx
subq %rdx, %rcx
xorl %esi, %esi
leaq 0xc4caa(%rip), %rdi     # 0x1ead17
movb $0x1, %al
cmpq $0x4, %rsi
je 0x126210
movb (%rsi,%rdi), %r8b
cmpb (%rdx,%rsi), %r8b
jne 0x1260a0
leaq (%rdx,%rsi), %r8
incq %r8
movq %r8, (%r12)
incq %rsi
cmpq %r15, %r8
jne 0x12606d
cmpb $0x0, (%rcx,%rdi)
je 0x126210
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %rdi
movups %xmm0, 0x8(%rdi)
movq $0x0, 0x18(%rdi)
movl $0x8, %esi
callq 0xe5380
movq (%r12), %rcx
xorl %eax, %eax
cmpq %r15, %rcx
je 0x1260dc
movzbl (%rcx), %edx
testb $0x8, (%rdx,%r13)
je 0x1260dc
incq %rcx
movq %rcx, (%r12)
jmp 0x1260c4
cmpq %r15, %rcx
je 0x12617c
cmpb $0x2f, (%rcx)
jne 0x12617c
leaq 0x1(%rcx), %rdx
movq %rdx, (%r12)
cmpq %r15, %rdx
je 0x126181
movzbl (%rdx), %esi
cmpl $0x2a, %esi
je 0x12612c
cmpl $0x2f, %esi
jne 0x126181
addq $0x2, %rcx
movq %rcx, %rdx
movq %rdx, (%r12)
movb $0x1, %al
cmpq %r15, %rdx
je 0x126167
cmpb $0xa, (%rdx)
movq %rdx, %rcx
leaq 0x1(%rdx), %rdx
jne 0x126113
jmp 0x1260c4
addq $0x2, %rcx
movq %rcx, (%r12)
movb $0x1, %al
cmpq %r15, %rcx
je 0x1260c4
cmpb $0x2a, (%rcx)
setne %sil
leaq 0x1(%rcx), %rdx
movq %rdx, (%r12)
cmpq %r15, %rdx
sete %dil
orb %sil, %dil
cmpb $0x1, %dil
je 0x12615f
cmpb $0x2f, (%rdx)
je 0x12616f
movq %rdx, %rcx
cmpq %r15, %rdx
jne 0x12613b
movq %rdx, %rcx
jmp 0x1260c4
addq $0x2, %rcx
movq %rcx, (%r12)
jmp 0x1260c4
movq %rcx, %rdx
jmp 0x126185
testb $0x1, %al
je 0x1261dd
cmpq %r15, %rdx
je 0x1261dd
cmpb $0x22, (%rdx)
jne 0x1261dd
incq %rdx
movq %rdx, (%r12)
leaq 0x10(%rsp), %rdi
movq %r12, %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x12623a
testb %al, %al
je 0x1261ed
leaq 0xf(%rsp), %rsi
movb $0x0, (%rsi)
leaq 0x10(%rsp), %rdi
callq 0xe5348
leaq 0x10(%rsp), %rdi
movq 0x18(%rdi), %rsi
subq 0x8(%rdi), %rsi
callq 0xe5380
movq 0x18(%rsp), %rax
movq %rax, (%rbx)
movb $0x1, %al
jmp 0x126210
callq 0x4a9e4
movl $0x1, (%r14)
movq %rax, 0x8(%r14)
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x12620e
callq 0xe250
jmp 0x12620e
callq 0x4a9e4
movl $0x1, (%r14)
movq %rax, 0x8(%r14)
xorl %eax, %eax
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x126220
movq %rax, %rbx
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x126232
callq 0xe250
movq %rbx, %rdi
callq 0xe3e0