// File: oknenavin[P]cxon/test/src/json/json.node-main.cxx
// Function: void test::kind::time<void (*)(test::test&)>(std::vector<test::test, std::allocator<test::test>>&, void (*)(test::test&))
void time(cases& cases, TIME_CXON time_cxon) {
            struct {
                std::vector<std::string> name;
                std::vector<void(*)(test&)> func;
            }   cnts;
                cnts.name.push_back(time_cxon == &time_cxon_node ? "# cxon/node" : "# cxon/native");
                cnts.func.push_back(time_cxon);
#           ifdef CXON_TIME_BOOST_JSON
                cnts.name.push_back("Boost/JSON");
                cnts.func.push_back(&time_boostjson);
#           endif
#           ifdef CXON_TIME_RAPIDJSON
                cnts.name.push_back("RapidJSON");
                cnts.func.push_back(&time_rapidjson);
#           endif
#           ifdef CXON_TIME_NLOHMANN
                cnts.name.push_back("nlohmann/JSON");
                cnts.func.push_back(&time_nlohmannjson);
#           endif
            {   // time
                auto time_node = cases;
                for (auto& test: time_node)
                    for (auto& func: cnts.func)
                        func(test);
                time_print(cnts.name, time_node);
            }
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0xb4dd0
movq -0x10(%rbp), %rax
leaq 0x197072(%rip), %rcx    # 0x2418c0
subq %rcx, %rax
leaq 0x19fd83(%rip), %rcx    # 0x24a5db
leaq 0x19fd88(%rip), %rax    # 0x24a5e7
cmoveq %rcx, %rax
movq %rax, -0xe0(%rbp)
leaq -0x61(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0xf5f0
movq -0xe0(%rbp), %rsi
movq -0xd8(%rbp), %rdx
leaq -0x60(%rbp), %rdi
callq 0xf530
jmp 0xaa893
movq -0xe8(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0xab040
jmp 0xaa8a5
leaq -0x60(%rbp), %rdi
callq 0xf490
leaq -0x61(%rbp), %rdi
callq 0xf710
leaq -0x28(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0xb4e00
jmp 0xaa8c6
movq -0x8(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0xb4e70
jmp 0xaa8d8
leaq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0x118a0
movq %rax, -0xa0(%rbp)
movq -0x98(%rbp), %rdi
callq 0x118d0
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x11900
testb $0x1, %al
jne 0xaa928
jmp 0xaaa2d
leaq -0xa0(%rbp), %rdi
callq 0x11940
movq %rax, -0xb0(%rbp)
leaq -0x40(%rbp), %rax
addq $0x18, %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rdi
callq 0xb4f60
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdi
callq 0xb4f90
movq %rax, -0xc8(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0xb4fc0
testb $0x1, %al
jne 0xaa98c
jmp 0xaaa1a
leaq -0xc0(%rbp), %rdi
callq 0xb5000
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq (%rax), %rax
movq -0xb0(%rbp), %rdi
callq *%rax
jmp 0xaa9b4
jmp 0xaa9b6
leaq -0xc0(%rbp), %rdi
callq 0xb5020
jmp 0xaa970
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xaa9e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x60(%rbp), %rdi
callq 0xf490
leaq -0x61(%rbp), %rdi
callq 0xf710
jmp 0xaaa5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
jmp 0xaaa5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x90(%rbp), %rdi
callq 0xacc90
jmp 0xaaa5d
jmp 0xaaa1c
leaq -0xa0(%rbp), %rdi
callq 0x12270
jmp 0xaa90c
leaq -0x40(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xa7c70
jmp 0xaaa3f
leaq -0x90(%rbp), %rdi
callq 0xacc90
leaq -0x40(%rbp), %rdi
callq 0xb5040
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x40(%rbp), %rdi
callq 0xb5040
movq -0x70(%rbp), %rdi
callq 0xf410
nop