// File: /workspace/github_cpp_makefile_star2_O1/tokuhirom[P]nanouri/t/nanotap.h
// Function: is_binary(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char const*)
inline NANOTAP_DECLARE void is_binary(const std::string &got, const std::string& expected, const char *msg) {
    if (got.size() != expected.size()) {
        ok(0, msg);
        std::stringstream ss;
        ss << "Expected " << expected.size() << " bytes chars, but got " << got.size() << " bytes chars";
        diag(ss.str());
        return;
    }
    for (size_t i=0; i<got.size(); i++) {
        if (got[i] != expected[i]) {
            ok(0, msg);

            std::stringstream ss;
            ss << "Expected " << std::hex << int(expected[i]) << " but got " << int(got[i]) << ", at " << i;
            diag(ss.str());
            return;
        }
    }
    ok(true, msg);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x8(%rdi), %rax
cmpq 0x8(%rsi), %rax
jne 0x2aa9
testq %rax, %rax
setne %bpl
je 0x2c48
movq (%r14), %rcx
movq (%r15), %rdx
movb (%rcx), %sil
cmpb (%rdx), %sil
jne 0x2b5f
leaq -0x1(%rax), %rsi
xorl %edi, %edi
cmpq %rdi, %rsi
je 0x2c48
movb 0x1(%rcx,%rdi), %r8b
leaq 0x1(%rdi), %r12
cmpb 0x1(%rdx,%rdi), %r8b
movq %r12, %rdi
je 0x2a81
cmpq %rax, %r12
setb %bpl
jmp 0x2b62
movl 0x365d(%rip), %edx      # 0x610c
incl %edx
movl %edx, 0x3655(%rip)      # 0x610c
testq %rbx, %rbx
leaq 0x1562(%rip), %rcx      # 0x4023
cmovneq %rbx, %rcx
leaq 0x1538(%rip), %rdi      # 0x4004
leaq 0x153d(%rip), %rsi      # 0x4010
xorl %eax, %eax
callq 0x2040
leaq 0x20(%rsp), %rdi
callq 0x20b0
leaq 0x30(%rsp), %rbx
leaq 0x1534(%rip), %rsi      # 0x4024
movl $0x9, %edx
movq %rbx, %rdi
callq 0x2140
movq 0x8(%r15), %rsi
movq %rbx, %rdi
callq 0x2090
movq %rax, %rbx
leaq 0x151b(%rip), %rsi      # 0x402e
movl $0x16, %edx
movq %rax, %rdi
callq 0x2140
movq 0x8(%r14), %rsi
movq %rbx, %rdi
callq 0x2090
leaq 0x1512(%rip), %rsi      # 0x4045
movl $0xc, %edx
movq %rax, %rdi
callq 0x2140
leaq 0x38(%rsp), %rsi
movq %rsp, %rdi
callq 0x21a0
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x2242
jmp 0x2c79
xorl %r12d, %r12d
movl 0x35a4(%rip), %edx      # 0x610c
incl %edx
movl %edx, 0x359c(%rip)      # 0x610c
testq %rbx, %rbx
leaq 0x14a9(%rip), %rcx      # 0x4023
cmovneq %rbx, %rcx
leaq 0x147f(%rip), %rdi      # 0x4004
leaq 0x1484(%rip), %rsi      # 0x4010
xorl %eax, %eax
callq 0x2040
leaq 0x20(%rsp), %rdi
callq 0x20b0
leaq 0x30(%rsp), %r13
leaq 0x147b(%rip), %rsi      # 0x4024
movl $0x9, %edx
movq %r13, %rdi
callq 0x2140
movq 0x30(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x48(%rsp,%rax), %ecx
andl $-0x4b, %ecx
orl $0x8, %ecx
movl %ecx, 0x48(%rsp,%rax)
movq (%r15), %rax
movsbl (%rax,%r12), %esi
movq %r13, %rdi
callq 0x21b0
movq %rax, %r15
leaq 0x1454(%rip), %rsi      # 0x403b
movl $0x9, %edx
movq %rax, %rdi
callq 0x2140
movq (%r14), %rax
movsbl (%rax,%r12), %esi
movq %r15, %rdi
callq 0x21b0
movq %rax, %r14
leaq 0x1444(%rip), %rsi      # 0x4052
movl $0x5, %edx
movq %rax, %rdi
callq 0x2140
movq %r14, %rdi
movq %r12, %rsi
callq 0x2090
leaq 0x38(%rsp), %rsi
movq %rsp, %rdi
callq 0x21a0
movzbl %bpl, %edx
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x22af
testb $0x1, %al
jne 0x2c79
movl 0x34be(%rip), %edx      # 0x610c
incl %edx
movl %edx, 0x34b6(%rip)      # 0x610c
testq %rbx, %rbx
leaq 0x13c3(%rip), %rcx      # 0x4023
cmovneq %rbx, %rcx
leaq 0x1399(%rip), %rdi      # 0x4004
leaq 0x13a2(%rip), %rsi      # 0x4014
xorl %eax, %eax
callq 0x2040
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2c91
jmp 0x2c91
jmp 0x2c91
movq %rax, %rbx
movq 0x331d(%rip), %rsi      # 0x5fb8
leaq 0x20(%rsp), %rdi
callq 0x20d0
leaq 0xa0(%rsp), %rdi
callq 0x2060
movq %rbx, %rdi
callq 0x21c0