// File: oknenavin[P]cxon/test/../src/cxon/lib/node.json.hxx
// Function: bool cxon::cio::key::write<cxon::JSON<cxon::json::format_traits>, cxon::json::basic_node<cxon::json::ordered_node_traits<std::allocator<char>>>>::key<cxon::json::indenter<cxon::JSON<cxon::JSON<cxon::json::format_traits>>, std::ostreambuf_iterator<char, std::char_traits<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>>(cxon::json::indenter<cxon::JSON<cxon::JSON<cxon::json::format_traits>>, std::ostreambuf_iterator<char, std::char_traits<char>>>&, cxon::json::basic_node<cxon::json::ordered_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 json::basic_node<Tr>& t, Cx& cx) {
                        using json::node_kind;
                        switch (t.kind()) {
#                           define CXON_GET(T) t.template get<typename json::basic_node<Tr>::T>()
                                case node_kind::object  : { CXON_NODE_RG();     return write_key_(o, CXON_GET(object),  cx); }
                                case node_kind::array   : { CXON_NODE_RG();     return write_key_(o, CXON_GET(array),   cx); }
                                case node_kind::string  :                       return write_key_(o, CXON_GET(string),  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::boolean :                       return write_key_(o, CXON_GET(boolean), cx);
                                case node_kind::null    :                       return write_key_(o, CXON_GET(null),    cx);
#                           undef CXON_GET
                        }
                        return false; // LCOV_EXCL_LINE
                    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a6f0
movl %eax, %ecx
movq %rcx, -0x50(%rbp)
subl $0x7, %eax
ja 0x4bbee
movq -0x50(%rbp), %rax
leaq 0x76b36(%rip), %rcx     # 0xc24e0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rsi
leaq -0x28(%rbp), %rdi
callq 0x39b90
leaq -0x28(%rbp), %rdi
callq 0x39be0
testb $0x1, %al
jne 0x4b9e9
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x39c30
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4ba3a
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a740
movq -0x60(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bc10
movb %al, -0x51(%rbp)
jmp 0x4ba0f
movb -0x51(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4ba3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x39d10
jmp 0x4bc00
leaq -0x28(%rbp), %rdi
callq 0x39d10
jmp 0x4bbf2
movq -0x20(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x39b90
leaq -0x48(%rbp), %rdi
callq 0x39be0
testb $0x1, %al
jne 0x4ba7e
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x39c30
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4bacf
movq -0x10(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a7a0
movq -0x70(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bc40
movb %al, -0x61(%rbp)
jmp 0x4baa4
movb -0x61(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4bacf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x39d10
jmp 0x4bc00
leaq -0x48(%rbp), %rdi
callq 0x39d10
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a800
movq -0x78(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bc70
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a870
movq -0x80(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bca0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a8d0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bcd0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a930
movq -0x90(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bd00
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4a9a0
movq -0x98(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bd30
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movq -0x10(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq -0x18(%rbp), %rdi
callq 0x4aa00
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
movq -0x20(%rbp), %rdx
callq 0x4bd60
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4bbf2
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xa0, %rsp
popq %rbp
retq
movq -0x38(%rbp), %rdi
callq 0x5660
nopl (%rax)