// File: oknenavin[P]cxon/test/../src/cxon/lib/node.json.hxx
// Function: bool cxon::write<cxon::JSON<cxon::json::format_traits>, cxon::json::basic_node<cxon::json::ordered_node_traits<std::allocator<char>>>, void>::value<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 value(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_value<Y>(o, CXON_GET(object),  cx); }
                            case node_kind::array   : { CXON_NODE_RG();     return write_value<Y>(o, CXON_GET(array),   cx); }
                            case node_kind::string  :                       return write_value<Y>(o, CXON_GET(string),  cx);
                            case node_kind::real    :                       return write_value<Y>(o, CXON_GET(real),    cx);
                            case node_kind::sint    :                       return write_value<Y>(o, CXON_GET(sint),    cx);
                            case node_kind::uint    :                       return write_value<Y>(o, CXON_GET(uint),    cx);
                            case node_kind::boolean :                       return write_value<Y>(o, CXON_GET(boolean), cx);
                            case node_kind::null    :                       return write_value<Y>(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 0x4a6ce
movq -0x50(%rbp), %rax
leaq 0x77e22(%rip), %rcx     # 0xc22ac
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 0x4a4c9
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x39c30
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4a51a
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 0x4a710
movb %al, -0x51(%rbp)
jmp 0x4a4ef
movb -0x51(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4a51a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x39d10
jmp 0x4a6e0
leaq -0x28(%rbp), %rdi
callq 0x39d10
jmp 0x4a6d2
movq -0x20(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x39b90
leaq -0x48(%rbp), %rdi
callq 0x39be0
testb $0x1, %al
jne 0x4a55e
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x39c30
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4a5af
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 0x4a770
movb %al, -0x61(%rbp)
jmp 0x4a584
movb -0x61(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x2c(%rbp)
jmp 0x4a5af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x39d10
jmp 0x4a6e0
leaq -0x48(%rbp), %rdi
callq 0x39d10
jmp 0x4a6d2
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 0x4a7d0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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 0x4a830
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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 0x4a8a0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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 0x4a900
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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 0x4a960
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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 0x4a9d0
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x4a6d2
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)