// File: oknenavin[P]cxon/test/../src/cxon/lib/node.json.hxx
// Function: bool cxon::cio::key::write<cxon::JSON<cxon::json::format_traits>, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>>>::key<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, cxon::context<cxon::JSON<cxon::json::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>, cxon::JSON<cxon::json::format_traits>>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, cxon::cbor::basic_node<cxon::cbor::node_traits<std::allocator<char>>> const&, cxon::context<cxon::JSON<cxon::json::format_traits>, cxon::napa::imp::var<cxon::node::recursion_guard, unsigned int>>&)
static bool key(O& o, const cbor::basic_node<Tr>& t, Cx& cx) {
                            using cbor::node_kind;
                            switch (t.kind()) {
#                               define CXON_GET(T) t.template get<typename cbor::basic_node<Tr>::T>()
                                    case node_kind::map         : { CXON_NODE_RG();     return write_key_(o, CXON_GET(map),         cx); }
                                    case node_kind::array       : { CXON_NODE_RG();     return write_key_(o, CXON_GET(array),       cx); }
                                    case node_kind::tag         : { CXON_NODE_RG();     return write_key_(o, CXON_GET(tag),         cx); }
                                    case node_kind::bytes       :                       return write_key_(o, CXON_GET(bytes),       cx);
                                    case node_kind::text        :                       return write_key_(o, CXON_GET(text),        cx);
                                    case node_kind::real        :                       return write_key_(o, CXON_GET(real),        cx);
                                    case node_kind::sint        :                       return write_key_(o, CXON_GET(sint),        cx);
                                    case node_kind::uint        :                       return write_key_(o, CXON_GET(uint),        cx);
                                    case node_kind::simple      :                       return cio::key::write_key<Y>(o, CXON_GET(simple).value, cx);
                                    case node_kind::boolean     :                       return write_key_(o, CXON_GET(boolean),     cx);
                                    case node_kind::null        :                       return write_key_(o, CXON_GET(null),        cx);
                                    case node_kind::undefined   :                       return write_key_(o, CXON_GET(undefined),   cx);
#                               undef CXON_GET
                            }
                            return false; // LCOV_EXCL_LINE
                        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x157090
movl %eax, %ecx
movq %rcx, -0x58(%rbp)
subl $0xb, %eax
ja 0x157a38
movq -0x58(%rbp), %rax
leaq 0xf62c6(%rip), %rcx     # 0x24d980
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x1a9d0
leaq -0x28(%rbp), %rdi
callq 0x1aa20
testb $0x1, %al
jne 0x1576f9
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x1aa70
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x15774a
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153700
movq -0x68(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157a60
movb %al, -0x59(%rbp)
jmp 0x15771f
movb -0x59(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x15774a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x1ab40
jmp 0x157a4a
leaq -0x28(%rbp), %rdi
callq 0x1ab40
jmp 0x157a3c
movq -0x20(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x1a9d0
leaq -0x48(%rbp), %rdi
callq 0x1aa20
testb $0x1, %al
jne 0x15778e
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x1aa70
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x1577df
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1537a0
movq -0x78(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157a90
movb %al, -0x69(%rbp)
jmp 0x1577b4
movb -0x69(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x1577df
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x1ab40
jmp 0x157a4a
leaq -0x48(%rbp), %rdi
callq 0x1ab40
jmp 0x157a3c
movq -0x20(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x1a9d0
leaq -0x50(%rbp), %rdi
callq 0x1aa20
testb $0x1, %al
jne 0x157823
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x1aa70
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x15787a
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1537d0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157ac0
movb %al, -0x79(%rbp)
jmp 0x15784f
movb -0x79(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x15787a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1ab40
jmp 0x157a4a
leaq -0x50(%rbp), %rdi
callq 0x1ab40
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1538e0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157af0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153910
movq -0x98(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157b20
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153940
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157b50
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153970
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157b80
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1539a0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157bb0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1539d0
movq -0xb8(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157be0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153a10
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157c10
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1571a0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157c40
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movq -0x10(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x153a40
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x157c70
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x157a3c
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xd0, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0xf410
nopw %cs:(%rax,%rax)
nopl (%rax)