// File: /workspace/github_cpp_makefile_star2_O3/yhirose[P]fizzbuzzlang/./peglib.h
// Function: peg::resolve_escape_sequence[abi:cxx11](char const*, unsigned long)
inline std::string resolve_escape_sequence(const char *s, size_t n) {
  std::string r;
  r.reserve(n);

  size_t i = 0;
  while (i < n) {
    auto ch = s[i];
    if (ch == '\\') {
      i++;
      assert(i < n);

      switch (s[i]) {
      case 'f':
        r += '\f';
        i++;
        break;
      case 'n':
        r += '\n';
        i++;
        break;
      case 'r':
        r += '\r';
        i++;
        break;
      case 't':
        r += '\t';
        i++;
        break;
      case 'v':
        r += '\v';
        i++;
        break;
      case '\'':
        r += '\'';
        i++;
        break;
      case '"':
        r += '"';
        i++;
        break;
      case '[':
        r += '[';
        i++;
        break;
      case ']':
        r += ']';
        i++;
        break;
      case '\\':
        r += '\\';
        i++;
        break;
      case 'x':
      case 'u': {
        char32_t cp;
        std::tie(cp, i) = parse_hex_number(s, n, i + 1);
        r += encode_codepoint(cp);
        break;
      }
      default: {
        char32_t cp;
        std::tie(cp, i) = parse_octal_number(s, n, i);
        r += encode_codepoint(cp);
        break;
      }
      }
    } else {
      r += ch;
      i++;
    }
  }
  return r;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, -0x58(%rbp)
movq %rax, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
movq %rdx, %rsi
callq 0x83c0
testq %r13, %r13
je 0x32cea
xorl %r14d, %r14d
leaq 0xf7b5(%rip), %r12      # 0x42124
movb (%r15,%r14), %al
cmpb $0x5c, %al
jne 0x329bb
leaq 0x1(%r14), %rcx
cmpq %r13, %rcx
jae 0x32cfc
movzbl (%r15,%rcx), %eax
cmpl $0x5c, %eax
jg 0x329ce
cmpl $0x5a, %eax
jg 0x32a69
cmpl $0x22, %eax
je 0x32aa5
cmpl $0x27, %eax
jne 0x32ac3
movq %rbx, %rdi
movl $0x27, %esi
callq 0x8250
jmp 0x32b2f
movsbl %al, %esi
movq %rbx, %rdi
callq 0x8250
incq %r14
jmp 0x32b33
leal -0x6e(%rax), %edx
cmpl $0xa, %edx
ja 0x32a85
movslq (%r12,%rdx,4), %rax
addq %r12, %rax
jmpq *%rax
addq $0x2, %r14
xorl %eax, %eax
cmpq %r13, %r14
jae 0x32a38
movsbl (%r15,%r14), %ecx
leal -0x30(%rcx), %esi
movl $0xffffffd0, %edx       # imm = 0xFFFFFFD0
cmpb $0xa, %sil
jb 0x32a1d
leal -0x61(%rcx), %esi
movl $0xffffffa9, %edx       # imm = 0xFFFFFFA9
cmpb $0x6, %sil
jb 0x32a1d
leal -0x41(%rcx), %esi
movl $0xffffffc9, %edx       # imm = 0xFFFFFFC9
cmpb $0x5, %sil
ja 0x32a2f
shll $0x4, %eax
addl %edx, %eax
addl %ecx, %eax
incq %r14
cmpq %r14, %r13
jne 0x329ee
movq %r13, %r14
cmpl $0x7f, %eax
ja 0x32b77
movb %al, -0x2c(%rbp)
leaq -0x2b(%rbp), %rdx
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x11634
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x80d0
jmp 0x32c26
cmpl $0x5b, %eax
je 0x32ab4
cmpl $0x5c, %eax
jne 0x32ac3
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x8250
jmp 0x32b2f
cmpl $0x5d, %eax
je 0x32b22
cmpl $0x66, %eax
jne 0x32ac3
movq %rbx, %rdi
movl $0xc, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0x22, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0x5b, %esi
callq 0x8250
jmp 0x32b2f
xorl %eax, %eax
movzbl (%r15,%rcx), %edx
leal -0x30(%rdx), %esi
cmpb $0x9, %sil
ja 0x32b41
leal (%rdx,%rax,8), %eax
addl $-0x30, %eax
incq %rcx
cmpq %rcx, %r13
jne 0x32ac5
movq %r13, %r14
jmp 0x32b44
movq %rbx, %rdi
movl $0xa, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0xd, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0x9, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0xb, %esi
callq 0x8250
jmp 0x32b2f
movq %rbx, %rdi
movl $0x5d, %esi
callq 0x8250
addq $0x2, %r14
cmpq %r13, %r14
jb 0x3296f
jmp 0x32cea
movq %rcx, %r14
cmpl $0x7f, %eax
ja 0x32b55
movb %al, -0x2c(%rbp)
leaq -0x2b(%rbp), %rdx
jmp 0x32c01
cmpl $0x7ff, %eax            # imm = 0x7FF
ja 0x32b99
movl %eax, %ecx
shrl $0x6, %ecx
orb $-0x40, %cl
movb %cl, -0x2c(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x2b(%rbp)
leaq -0x2a(%rbp), %rdx
jmp 0x32c01
cmpl $0x7ff, %eax            # imm = 0x7FF
ja 0x32bc6
movl %eax, %ecx
shrl $0x6, %ecx
orb $-0x40, %cl
movb %cl, -0x2c(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x2b(%rbp)
leaq -0x2a(%rbp), %rdx
jmp 0x32a3f
cmpl $0xd7ff, %eax           # imm = 0xD7FF
ja 0x32bf6
movl %eax, %ecx
shrl $0xc, %ecx
orb $-0x20, %cl
movb %cl, -0x2c(%rbp)
movl %eax, %ecx
shrl $0x6, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2b(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x2a(%rbp)
leaq -0x29(%rbp), %rdx
jmp 0x32c01
cmpl $0xd7ff, %eax           # imm = 0xD7FF
ja 0x32c48
movl %eax, %ecx
shrl $0xc, %ecx
orb $-0x20, %cl
movb %cl, -0x2c(%rbp)
movl %eax, %ecx
shrl $0x6, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2b(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x2a(%rbp)
leaq -0x29(%rbp), %rdx
jmp 0x32a3f
leaq -0x2c(%rbp), %rdx
cmpl $0xe000, %eax           # imm = 0xE000
jae 0x32c58
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x11634
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x80d0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x32b33
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x82b0
jmp 0x32b33
cmpl $0xe000, %eax           # imm = 0xE000
jae 0x32ca1
leaq -0x2c(%rbp), %rdx
jmp 0x32a3f
cmpl $0xffff, %eax           # imm = 0xFFFF
jbe 0x32ba0
cmpl $0x10ffff, %eax         # imm = 0x10FFFF
ja 0x32c01
movl %eax, %ecx
shrl $0x12, %ecx
orb $-0x10, %cl
movb %cl, -0x2c(%rbp)
movl %eax, %ecx
shrl $0xc, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2b(%rbp)
movl %eax, %ecx
shrl $0x6, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2a(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x29(%rbp)
leaq -0x28(%rbp), %rdx
jmp 0x32c01
cmpl $0xffff, %eax           # imm = 0xFFFF
jbe 0x32bcd
cmpl $0x10ffff, %eax         # imm = 0x10FFFF
ja 0x32c4f
movl %eax, %ecx
shrl $0x12, %ecx
orb $-0x10, %cl
movb %cl, -0x2c(%rbp)
movl %eax, %ecx
shrl $0xc, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2b(%rbp)
movl %eax, %ecx
shrl $0x6, %ecx
andb $0x3f, %cl
orb $-0x80, %cl
movb %cl, -0x2a(%rbp)
andb $0x3f, %al
orb $-0x80, %al
movb %al, -0x29(%rbp)
leaq -0x28(%rbp), %rdx
jmp 0x32a3f
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xffb9(%rip), %rdi      # 0x42cbc
leaq 0xf9ab(%rip), %rsi      # 0x426b5
leaq 0xffb1(%rip), %rcx      # 0x42cc2
movl $0x128, %edx            # imm = 0x128
callq 0x81b0
jmp 0x32d21
jmp 0x32d41
jmp 0x32d41
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x32d44
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x82b0
jmp 0x32d44
jmp 0x32d41
movq %rax, %r14
movq (%rbx), %rdi
cmpq -0x58(%rbp), %rdi
je 0x32d5c
movq -0x58(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x82b0
movq %r14, %rdi
callq 0x8420