// File: /workspace/github_cpp_makefile_star2_O3/tokuhirom[P]nanouri/t/04_unescape.cc
// Function: main
int main() {
    is_binary(nanouri::unescape_uri(std::string("hello%01%02")), std::string("hello\x01\x02"), "escape");
    is(nanouri::unescape_uri(std::string("hello%01%02")), std::string("hello\x01\x02"), "escape");

    is_binary(nanouri::unescape_uri(std::string("hi%ff")), std::string("hi\xff"), "escape");

    done_testing();
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa0, %rsp
leaq 0x50(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x13b7(%rip), %rsi      # 0x4058
leaq 0x13bb(%rip), %rdx      # 0x4063
leaq 0x40(%rsp), %rdi
callq 0x306e
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
callq 0x2500
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x1394(%rip), %rsi      # 0x4064
leaq 0x1394(%rip), %rdx      # 0x406b
leaq 0x20(%rsp), %rdi
callq 0x306e
leaq 0x1384(%rip), %rdx      # 0x406c
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x2a28
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x2d0c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2120
leaq 0x10(%rsp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x2d27
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2120
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x2d3e
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2120
movq %rsp, %rdi
movq %r15, (%rdi)
leaq 0x130d(%rip), %rsi      # 0x4058
leaq 0x1311(%rip), %rdx      # 0x4063
callq 0x306e
leaq 0x80(%rsp), %rdi
movq %rsp, %rsi
callq 0x2500
leaq 0x70(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x12ed(%rip), %rsi      # 0x4064
leaq 0x12ed(%rip), %rdx      # 0x406b
leaq 0x60(%rsp), %rdi
callq 0x306e
leaq 0x12dd(%rip), %rdx      # 0x406c
leaq 0x80(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x2796
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x2db8
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x2120
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2dd9
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x2120
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2def
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2120
leaq 0x40(%rsp), %rdi
movq %r14, (%rdi)
leaq 0x1275(%rip), %rsi      # 0x4073
leaq 0x1273(%rip), %rdx      # 0x4078
callq 0x306e
movq %rsp, %rdi
leaq 0x40(%rsp), %rsi
callq 0x2500
leaq 0x20(%rsp), %rdi
movq %r12, (%rdi)
leaq 0x1253(%rip), %rsi      # 0x4079
leaq 0x124f(%rip), %rdx      # 0x407c
callq 0x306e
leaq 0x1233(%rip), %rdx      # 0x406c
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x2a28
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x2e5d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2120
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2e73
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2120
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x2e8a
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2120
movl 0x3274(%rip), %esi      # 0x6104
leaq 0x1186(%rip), %rdi      # 0x401d
xorl %eax, %eax
callq 0x2040
xorl %edi, %edi
callq 0x2150
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x2ec4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2ec4
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
jne 0x2f64
jmp 0x2f76
jmp 0x2f73
jmp 0x2f8f
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r13, %rdi
je 0x2eff
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2eff
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f25
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2f25
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2f92
movq 0x10(%rsp), %rsi
jmp 0x2f85
jmp 0x2f8f
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x2f56
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2f56
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x2f76
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2f76
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r14, %rdi
je 0x2f92
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x2120
jmp 0x2f92
movq %rax, %rbx
movq %rbx, %rdi
callq 0x21b0