// File: /workspace/github_cpp_makefile_star2_O2/oknenavin[P]cxon/test/src/json/json.node-diff.cxx
// Function: int test::kind::diff<test::apache_builds::object>(test::test&, char const*)
int diff(test& test, const char* prefix) {
            std::string json;
            {   // read
                std::ifstream is(test.source, std::ifstream::binary);
                    if (!is) {
                        test.error = "cannot be opened";
                        return 1;
                    }
                json.assign(std::istreambuf_iterator<char>(is), std::istreambuf_iterator<char>());
            }
            {   // tidy
                std::ofstream os(prefix + name(test.source) + ".(0).json", std::ofstream::binary);
                    if (!os) {
                        test.error = prefix + name(test.source) + ".(0).json" + ": cannot be opened";
                        return 1;
                    }
                cxon::json::tidy(std::ostreambuf_iterator<char>(os), json);
            }
            T result;
            {   // from
                auto const r = cxon::from_bytes(result, json);
                    if (!r) {
                        test.error = format_error(r, json.cbegin());
                        return 1;
                    }
            }
            {   // to
                std::ofstream os(prefix + name(test.source) + ".(1).json", std::ofstream::binary);
                    if (!os) {
                        test.error = prefix + name(test.source) + ".(1).json" + "cannot be opened";
                        return 1;
                    }
                auto const w = cxon::to_bytes(cxon::json::make_indenter(std::ostreambuf_iterator<char>(os)), result);
                    if (!w) {
                        test.error += w.ec.category().name(),
                        test.error += ": " + w.ec.message();
                    }
            }
            return 0;
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x470, %rsp            # imm = 0x470
movq %rsi, %r14
movq %rdi, %rbx
leaq 0xc0(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x268(%rsp), %rdi
pushq $0x4
popq %rdx
movq %rbx, %rsi
callq 0xe440
movq 0x268(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x288(%rsp,%rax), %r15d
testb $0x5, %r15b
je 0x105cd
leaq 0x58(%rbx), %rdi
leaq 0xab198(%rip), %rsi     # 0xbb75e
callq 0xe4d0
jmp 0x105ea
movq 0x350(%rsp,%rax), %rsi
leaq 0xb0(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0x135b4
leaq 0x268(%rsp), %rdi
callq 0xe0b0
pushq $0x1
popq %rbp
testb $0x5, %r15b
jne 0x10a7d
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq 0xefd0
leaq 0x78(%rsp), %rdi
leaq 0x30(%rsp), %rdx
movq %r14, %rsi
callq 0xf985
leaq 0xab009(%rip), %rdx     # 0xbb633
leaq 0xf0(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xf966
leaq 0x268(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
pushq $0x4
popq %rdx
callq 0xe4e0
leaq 0xf0(%rsp), %rdi
callq 0xe150
leaq 0x78(%rsp), %rdi
callq 0xe150
leaq 0x30(%rsp), %rdi
callq 0xe150
movq 0x268(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x288(%rsp,%rax), %r12d
testb $0x5, %r12b
je 0x1071d
leaq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0xefd0
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rdx
movq %r14, %rsi
callq 0xf985
leaq 0xaaf7a(%rip), %rdx     # 0xbb633
leaq 0x78(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xf966
leaq 0xab08d(%rip), %rdx     # 0xbb75c
leaq 0xf0(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0xf966
leaq 0x58(%rbx), %rdi
leaq 0xf0(%rsp), %r15
movq %r15, %rsi
callq 0xe320
movq %r15, %rdi
callq 0xe150
leaq 0x78(%rsp), %rdi
callq 0xe150
leaq 0x30(%rsp), %rdi
callq 0xe150
leaq 0x58(%rsp), %rdi
callq 0xe150
jmp 0x10742
movq 0x350(%rsp,%rax), %rdi
xorl %esi, %esi
testq %rdi, %rdi
sete %sil
leaq 0xb0(%rsp), %rdx
pushq $0x1
popq %rcx
pushq $0x9
popq %r8
callq 0x135ea
leaq 0x268(%rsp), %rdi
callq 0xe3e0
testb $0x5, %r12b
jne 0x10a7d
xorps %xmm0, %xmm0
leaq 0x118(%rsp), %rax
movaps %xmm0, -0x28(%rax)
andq $0x0, -0x18(%rax)
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0x138(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
leaq 0x158(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
leaq 0x180(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
movaps %xmm0, 0x10(%rax)
andq $0x0, 0x20(%rax)
leaq 0x1b0(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x1e0(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
leaq 0x218(%rsp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
movups %xmm0, 0x30(%rax)
andq $0x0, 0x40(%rax)
leaq 0x78(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x1a6a0
cmpl $0x0, 0x78(%rsp)
je 0x1087e
movq 0xb0(%rsp), %rdx
leaq 0x268(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x13620
addq $0x58, %rbx
leaq 0x268(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe320
movq %r14, %rdi
callq 0xe150
pushq $0x1
popq %rbp
jmp 0x10a70
leaq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0xefd0
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rdx
movq %r14, %rsi
callq 0xf985
leaq 0xaad99(%rip), %rdx     # 0xbb63d
leaq 0x78(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xf966
leaq 0x268(%rsp), %rdi
leaq 0x78(%rsp), %rsi
pushq $0x4
popq %rdx
callq 0xe4e0
leaq 0x78(%rsp), %rdi
callq 0xe150
leaq 0x30(%rsp), %rdi
callq 0xe150
leaq 0x58(%rsp), %rdi
callq 0xe150
movq 0x268(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x288(%rsp,%rax), %r15d
testb $0x5, %r15b
je 0x10992
leaq 0xd0(%rsp), %rdi
movq %rbx, %rsi
callq 0xefd0
leaq 0x58(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
movq %r14, %rsi
callq 0xf985
leaq 0xaad0d(%rip), %rdx     # 0xbb63d
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0xf966
leaq 0xaae18(%rip), %rdx     # 0xbb75e
leaq 0x78(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0xf966
addq $0x58, %rbx
leaq 0x78(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xe320
movq %r14, %rdi
callq 0xe150
leaq 0x30(%rsp), %rdi
callq 0xe150
leaq 0x58(%rsp), %rdi
callq 0xe150
leaq 0xd0(%rsp), %rdi
jmp 0x10a54
movq 0x350(%rsp,%rax), %rax
testq %rax, %rax
movq %rax, 0x30(%rsp)
sete 0x38(%rsp)
movaps 0xaa662(%rip), %xmm0    # 0xbb010
movups %xmm0, 0x40(%rsp)
movb $0x9, 0x50(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x20(%rsp)
movups 0x30(%rsp), %xmm0
movups 0x40(%rsp), %xmm1
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
leaq 0x78(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x1d226
cmpl $0x0, 0x78(%rsp)
je 0x10a59
movq 0x80(%rsp), %rdi
movq (%rdi), %rax
callq *0x10(%rax)
addq $0x58, %rbx
movq %rbx, %rdi
movq %rax, %rsi
callq 0xe4c0
movq 0x80(%rsp), %rsi
movl 0x78(%rsp), %edx
movq (%rsi), %rax
leaq 0x58(%rsp), %rdi
callq *0x20(%rax)
leaq 0xaae4d(%rip), %rsi     # 0xbb876
leaq 0x30(%rsp), %rdi
leaq 0x58(%rsp), %rdx
callq 0xf985
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xe500
leaq 0x30(%rsp), %rdi
callq 0xe150
leaq 0x58(%rsp), %rdi
callq 0xe150
xorl %ebp, %ebp
testb $0x5, %r15b
setne %bpl
leaq 0x268(%rsp), %rdi
callq 0xe3e0
leaq 0xf0(%rsp), %rdi
callq 0x1a630
leaq 0xb0(%rsp), %rdi
callq 0xe150
movl %ebp, %eax
addq $0x470, %rsp            # imm = 0x470
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xe150
jmp 0x10aae
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
jmp 0x10ae2
jmp 0x10ae9
jmp 0x10ae9
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xe150
jmp 0x10acb
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xe150
jmp 0x10ada
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xe150
jmp 0x10aec
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0xe3e0
jmp 0x10b2f
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xe150
jmp 0x10b0d
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xe150
jmp 0x10b1c
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xe150
jmp 0x10b2f
jmp 0x10b2c
jmp 0x10b2c
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x1a630
jmp 0x10bc9
jmp 0x10b70
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xe150
jmp 0x10b55
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xe150
jmp 0x10b64
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0xe150
jmp 0x10b73
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0xe3e0
jmp 0x10bc9
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0xe150
jmp 0x10b97
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0xe150
jmp 0x10ba6
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xe150
jmp 0x10bc9
jmp 0x10bc6
movq %rax, %rbx
leaq 0x268(%rsp), %rdi
callq 0xe0b0
jmp 0x10bc9
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xe150
movq %rbx, %rdi
callq 0xe470