// File: /workspace/github_cpp_makefile_star2_O2/oknenavin[P]cxon/test/../src/cxon/lib/node.json.hxx
// Function: std::enable_if<cxon::JSON<cxon::test::unquoted_quoted_keys_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>::quote_unquoted_keys, bool>::type cxon::cio::key::read<cxon::JSON<cxon::test::unquoted_quoted_keys_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>::key<char const*, cxon::context<cxon::JSON<cxon::test::unquoted_quoted_keys_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>, cxon::JSON<cxon::test::unquoted_quoted_keys_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>>(cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>&, char const*&, char const*, cxon::context<cxon::JSON<cxon::test::unquoted_quoted_keys_traits<cxon::test::allow_comments_traits<cxon::json::format_traits>>>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>&)
static auto key(cbor::basic_node<Tr>& t, II& i, II e, Cx& cx)
                            -> enable_if_t< Y::quote_unquoted_keys, bool>
                        {
#                           define CXON_IMBUE(T) t.template imbue<typename cbor::basic_node<Tr>::T>()
                                CXON_IF_CONSTEXPR (Y::unquote_quoted_keys) {
                                    if (!cio::consume<Y>(i, e, cx))
                                        return false;
                                    switch (cio::peek(i, e)) {
                                        case '{': { CXON_NODE_RG();     return read_key_(t, CXON_IMBUE(map),    i, e, cx); }
                                        case '[': { CXON_NODE_RG();     return read_key_(t, CXON_IMBUE(array),  i, e, cx); }
                                    }
                                }
                                return cio::key::read_key<Y>(CXON_IMBUE(text), i, e, cx);
#                           undef CXON_IMBUE
                        }

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movq %rsi, %rdi
movq %rdx, %rsi
movq %rcx, %rdx
callq 0x778d3
testb %al, %al
je 0x7b196
movq (%r15), %rax
cmpq %r14, %rax
je 0x7b19a
movzbl (%rax), %eax
cmpl $0x5b, %eax
je 0x7b1bc
cmpl $0x7b, %eax
jne 0x7b19a
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x7b1e8
movq %r12, %rdi
callq 0x71bda
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x7af1d
jmp 0x7b1f3
xorl %eax, %eax
jmp 0x7b1f7
movq %r12, %rdi
callq 0x71c24
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x77ef5
leaq 0x14(%rbx), %r13
movl 0x14(%rbx), %eax
incl %eax
movl %eax, 0x14(%rbx)
cmpl $0x40, %eax
jae 0x7b1e8
movq %r12, %rdi
callq 0x71bfe
movq %rax, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x7b20f
jmp 0x7b1f3
pushq $0x2
popq %rsi
movq %rbx, %rdi
callq 0x778f0
decl (%r13)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
jmp 0x7b203
decl (%r13)
movq %rax, %rdi
callq 0xe470