// File: /workspace/github_cpp_makefile_star2_O1/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 0x93c0
testq %r13, %r13
je 0x34b8b
xorl %r14d, %r14d
leaq 0xf938(%rip), %r12      # 0x44124
movb (%r15,%r14), %al
cmpb $0x5c, %al
jne 0x34838
leaq 0x1(%r14), %rcx
cmpq %r13, %rcx
jae 0x34b9d
movzbl (%r15,%rcx), %eax
cmpl $0x5c, %eax
jg 0x3484b
cmpl $0x5a, %eax
jg 0x348ce
cmpl $0x22, %eax
je 0x3490a
cmpl $0x27, %eax
jne 0x3492e
movq %rbx, %rdi
movl $0x27, %esi
callq 0x9250
jmp 0x349c7
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9250
incq %r14
jmp 0x349cb
leal -0x6e(%rax), %edx
cmpl $0xa, %edx
ja 0x348ea
movslq (%r12,%rdx,4), %rax
addq %r12, %rax
jmpq *%rax
addq $0x2, %r14
xorl %eax, %eax
cmpq %r13, %r14
jae 0x348b9
xorl %eax, %eax
movsbl (%r15,%r14), %edx
leal -0x30(%rdx), %esi
cmpb $0x9, %sil
ja 0x34880
addl $-0x30, %edx
jmp 0x3488c
leal -0x61(%rdx), %esi
cmpb $0x5, %sil
ja 0x34893
addl $-0x57, %edx
movb $0x1, %sil
movl %edx, %ecx
jmp 0x348a4
leal -0x41(%rdx), %esi
addl $-0x37, %edx
cmpb $0x6, %sil
setb %sil
cmovbl %edx, %ecx
testb %sil, %sil
je 0x348b9
shll $0x4, %eax
addl %ecx, %eax
incq %r14
cmpq %r14, %r13
jne 0x3486d
movq %r13, %r14
cmpl $0x7f, %eax
ja 0x34958
movb %al, -0x2c(%rbp)
leaq -0x2b(%rbp), %rdx
jmp 0x34a74
cmpl $0x5b, %eax
je 0x3491c
cmpl $0x5c, %eax
jne 0x3492e
movq %rbx, %rdi
movl $0x5c, %esi
callq 0x9250
jmp 0x349c7
cmpl $0x5d, %eax
je 0x349ba
cmpl $0x66, %eax
jne 0x3492e
movq %rbx, %rdi
movl $0xc, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0x22, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0x5b, %esi
callq 0x9250
jmp 0x349c7
xorl %eax, %eax
movzbl (%r15,%rcx), %edx
leal -0x30(%rdx), %esi
cmpb $0x9, %sil
ja 0x349d9
leal (%rdx,%rax,8), %eax
addl $-0x30, %eax
incq %rcx
cmpq %rcx, %r13
jne 0x34930
movq %r13, %r14
jmp 0x349dc
cmpl $0x7ff, %eax            # imm = 0x7FF
ja 0x34a0f
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 0x34a74
movq %rbx, %rdi
movl $0xa, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0xd, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0x9, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0xb, %esi
callq 0x9250
jmp 0x349c7
movq %rbx, %rdi
movl $0x5d, %esi
callq 0x9250
addq $0x2, %r14
cmpq %r13, %r14
jb 0x347ec
jmp 0x34b8b
movq %rcx, %r14
cmpl $0x7f, %eax
ja 0x349ed
movb %al, -0x2c(%rbp)
leaq -0x2b(%rbp), %rdx
jmp 0x34aaa
cmpl $0x7ff, %eax            # imm = 0x7FF
ja 0x34a3c
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 0x34aaa
cmpl $0xd7ff, %eax           # imm = 0xD7FF
ja 0x34a69
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 0x34a74
cmpl $0xd7ff, %eax           # imm = 0xD7FF
ja 0x34a9b
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 0x34aaa
leaq -0x2c(%rbp), %rdx
cmpl $0xe000, %eax           # imm = 0xE000
jae 0x34af1
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x12846
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x90d0
jmp 0x34acf
leaq -0x2c(%rbp), %rdx
cmpl $0xe000, %eax           # imm = 0xE000
jae 0x34b3e
leaq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
callq 0x12846
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %rbx, %rdi
callq 0x90d0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x349cb
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x349cb
cmpl $0xffff, %eax           # imm = 0xFFFF
jbe 0x34a16
cmpl $0x10ffff, %eax         # imm = 0x10FFFF
ja 0x34a74
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 0x34a74
cmpl $0xffff, %eax           # imm = 0xFFFF
jbe 0x34a43
cmpl $0x10ffff, %eax         # imm = 0x10FFFF
ja 0x34aaa
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 0x34aaa
movq %rbx, %rax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10118(%rip), %rdi     # 0x44cbc
leaq 0xfb0a(%rip), %rsi      # 0x446b5
leaq 0x10110(%rip), %rcx     # 0x44cc2
movl $0x128, %edx            # imm = 0x128
callq 0x91b0
jmp 0x34bc2
jmp 0x34be2
jmp 0x34be2
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x34be5
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x92b0
jmp 0x34be5
jmp 0x34be2
movq %rax, %r14
movq (%rbx), %rdi
cmpq -0x58(%rbp), %rdi
je 0x34bfd
movq -0x58(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x92b0
movq %r14, %rdi
callq 0x9420
nop