#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
scalar_t__ malloc(int);
int /*<<< orphan*/ sprintf(char *, char *, char);
char *yyqq(char *s) {
  char *d = s;
  char *dst;
  int sl = 0, dl = 0;
  while (*s++) {
    dl++;
    sl++;
    if (*s == 7 || *s == 8 || *s == 9 || *s == 11 || *s == 12 || *s == 13 ||
        *s == 27 || *s == 34 || *s == '%' || *s == 92) {
      dl++;
    } else if (*s == 10) {
      dl += 3;
    } else if (*(signed char *)s < 32) {
      dl += 4;
    }
  }
  if (dl == sl)
    return d;
  s = d;
  dst = d = (char *)malloc(dl + 1);
  while (*s) {
    if (*s == '"') {
      *d++ = '\\';
      *d++ = *s++;
    } else if (*s == '%') {
      *d++ = '%';
      *d++ = *s++;
    } else if (*s == '\n') {
      *d++ = '\\';
      *d++ = 'n';
      *d++ = '\\';
      *d++ = 10;
      s++;
    } else if (*s == '\t') {
      *d++ = '\\';
      *d++ = 't';
      s++;
    } else if (*s == '\r') {
      *d++ = '\\';
      *d++ = 'r';
      s++;
    } else if (*s == '\a') {
      *d++ = '\\';
      *d++ = 'a';
      s++;
    } else if (*s == '\b') {
      *d++ = '\\';
      *d++ = 'b';
      s++;
    } else if (*s == '\e') {
      *d++ = '\\';
      *d++ = 'e';
      s++;
    } else if (*s == '\f') {
      *d++ = '\\';
      *d++ = 'f';
      s++;
    } else if (*s == '\v') {
      *d++ = '\\';
      *d++ = 'v';
      s++;
    } else if (*s == 92) {
      *d++ = '\\';
      *d++ = *s++;
    } else if (*(signed char *)s < 32) {
      sprintf(d, "\\%03o", *s);
      d += 4;
      s++;
    } else {
      *d++ = *s++;
    }
  }
  *d = 0;
  return dst;
}


x86 assembly (clang, -O0):
<yyqq>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x18(%rbp)
movl   $0x0,-0x24(%rbp)
movl   $0x0,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
cmpb   $0x0,(%rax)
je     1260 <yyqq+0x140>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x7,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x8,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xb,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xc,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xd,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x1b,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x25,%eax
je     120c <yyqq+0xec>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
jne    121a <yyqq+0xfa>
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    125b <yyqq+0x13b>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xa,%eax
jne    1238 <yyqq+0x118>
mov    -0x28(%rbp),%eax
add    $0x3,%eax
mov    %eax,-0x28(%rbp)
jmp    1256 <yyqq+0x136>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x20,%eax
jge    1251 <yyqq+0x131>
mov    -0x28(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x28(%rbp)
jmp    1256 <yyqq+0x136>
jmp    125b <yyqq+0x13b>
jmp    1142 <yyqq+0x22>
mov    -0x28(%rbp),%eax
cmp    -0x24(%rbp),%eax
jne    1279 <yyqq+0x159>
mov    -0x18(%rbp),%rax
mov    %rax,-0x8(%rbp)
jmp    1679 <yyqq+0x559>
mov    -0x18(%rbp),%rax
mov    %rax,-0x10(%rbp)
mov    -0x28(%rbp),%edi
add    $0x1,%edi
call   1030 <malloc@plt>
mov    %rax,-0x18(%rbp)
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rax
cmpb   $0x0,(%rax)
je     166a <yyqq+0x54a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    12ea <yyqq+0x1ca>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1665 <yyqq+0x545>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x25,%eax
jne    1333 <yyqq+0x213>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x25,(%rax)
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1660 <yyqq+0x540>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xa,%eax
jne    139c <yyqq+0x27c>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x6e,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0xa,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    165b <yyqq+0x53b>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x9,%eax
jne    13e1 <yyqq+0x2c1>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x74,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1656 <yyqq+0x536>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xd,%eax
jne    1426 <yyqq+0x306>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x72,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1651 <yyqq+0x531>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x7,%eax
jne    146b <yyqq+0x34b>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x61,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    164c <yyqq+0x52c>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x8,%eax
jne    14b0 <yyqq+0x390>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x62,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1647 <yyqq+0x527>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x1b,%eax
jne    14f5 <yyqq+0x3d5>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x65,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1642 <yyqq+0x522>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xc,%eax
jne    153a <yyqq+0x41a>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x66,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    163d <yyqq+0x51d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0xb,%eax
jne    157f <yyqq+0x45f>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x76,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1638 <yyqq+0x518>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
jne    15c8 <yyqq+0x4a8>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x5c,(%rax)
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1633 <yyqq+0x513>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x20,%eax
jge    160c <yyqq+0x4ec>
mov    -0x18(%rbp),%rdi
mov    -0x10(%rbp),%rax
lea    0xa19(%rip),%rsi
movsbl (%rax),%edx
call   1040 <sprintf@plt>
mov    -0x18(%rbp),%rax
add    $0x4,%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    162e <yyqq+0x50e>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x10(%rbp)
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1633 <yyqq+0x513>
jmp    1638 <yyqq+0x518>
jmp    163d <yyqq+0x51d>
jmp    1642 <yyqq+0x522>
jmp    1647 <yyqq+0x527>
jmp    164c <yyqq+0x52c>
jmp    1651 <yyqq+0x531>
jmp    1656 <yyqq+0x536>
jmp    165b <yyqq+0x53b>
jmp    1660 <yyqq+0x540>
jmp    1665 <yyqq+0x545>
jmp    1294 <yyqq+0x174>
mov    -0x18(%rbp),%rax
movb   $0x0,(%rax)
mov    -0x20(%rbp),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<yyqq>:
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    %rdi,%r12
cmpb   $0x0,(%rdi)
je     1252 <yyqq+0x132>
xor    %eax,%eax
lea    0xec2(%rip),%rcx
xor    %edi,%edi
jmp    1168 <yyqq+0x48>
xor    %esi,%esi
cmp    $0x20,%dl
setl   %sil
lea    (%rdi,%rsi,4),%edi
add    $0x1,%edi
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
add    $0x1,%rax
test   %dl,%dl
je     118e <yyqq+0x6e>
movzbl 0x1(%r12,%rax,1),%edx
lea    -0x7(%rdx),%esi
cmp    $0x55,%sil
ja     1142 <yyqq+0x22>
movzbl %sil,%esi
movslq (%rcx,%rsi,4),%rsi
add    %rcx,%rsi
jmp    *%rsi
add    $0x2,%edi
jmp    1160 <yyqq+0x40>
add    $0x4,%edi
jmp    1160 <yyqq+0x40>
cmp    %edi,%eax
je     1252 <yyqq+0x132>
add    $0x1,%edi
call   1030 <malloc@plt>
mov    %rax,%r14
lea    0x1124(%rip),%r15
lea    0xfa9(%rip),%r13
mov    %rax,%rbx
jmp    11c8 <yyqq+0xa8>
movw   $0x745c,(%rbx)
nopl   0x0(%rax)
add    $0x2,%rbx
add    $0x1,%r12
movzbl (%r12),%eax
cmp    $0x5c,%rax
ja     11e2 <yyqq+0xc2>
movslq 0x0(%r13,%rax,4),%rcx
add    %r13,%rcx
jmp    *%rcx
movb   $0x5c,(%rbx)
jmp    1233 <yyqq+0x113>
cmp    $0x1f,%al
jg     123d <yyqq+0x11d>
movsbl %al,%edx
mov    %rbx,%rdi
mov    %r15,%rsi
call   1040 <sprintf@plt>
jmp    120a <yyqq+0xea>
movw   $0x615c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movw   $0x625c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movl   $0xa5c6e5c,(%rbx)
add    $0x4,%rbx
add    $0x1,%r12
jmp    11c8 <yyqq+0xa8>
movw   $0x765c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movw   $0x665c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movw   $0x725c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movw   $0x655c,(%rbx)
jmp    11c0 <yyqq+0xa0>
movb   $0x25,(%rbx)
movzbl (%r12),%eax
mov    %al,0x1(%rbx)
jmp    11c0 <yyqq+0xa0>
mov    %al,(%rbx)
add    $0x1,%rbx
add    $0x1,%r12
jmp    11c8 <yyqq+0xa8>
movb   $0x0,(%rbx)
mov    %r14,%r12
mov    %r12,%rax
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@.str = [6 x i8] c"\\%03o\00"
define i8* @yyqq(i8* %0) {
%2 = alloca i8*
%3 = alloca i8*
%4 = alloca i8*
%5 = alloca i8*
%6 = alloca i32
%7 = alloca i32
store i8* %0, i8** %3
%8 = load i8*, i8** %3
store i8* %8, i8** %4
store i32 0, i32* %6
store i32 0, i32* %7
br label %9
9: ; preds = %89, %1
%10 = load i8*, i8** %3
%11 = getelementptr inbounds i8, i8* %10, i32 1
store i8* %11, i8** %3
%12 = load i8, i8* %10
%13 = icmp ne i8 %12, 0
br i1 %13, label %14, label %90
14: ; preds = %9
%15 = load i32, i32* %7
%16 = add nsw i32 %15, 1
store i32 %16, i32* %7
%17 = load i32, i32* %6
%18 = add nsw i32 %17, 1
store i32 %18, i32* %6
%19 = load i8*, i8** %3
%20 = load i8, i8* %19
%21 = sext i8 %20 to i32
%22 = icmp eq i32 %21, 7
br i1 %22, label %68, label %23
23: ; preds = %14
%24 = load i8*, i8** %3
%25 = load i8, i8* %24
%26 = sext i8 %25 to i32
%27 = icmp eq i32 %26, 8
br i1 %27, label %68, label %28
28: ; preds = %23
%29 = load i8*, i8** %3
%30 = load i8, i8* %29
%31 = sext i8 %30 to i32
%32 = icmp eq i32 %31, 9
br i1 %32, label %68, label %33
33: ; preds = %28
%34 = load i8*, i8** %3
%35 = load i8, i8* %34
%36 = sext i8 %35 to i32
%37 = icmp eq i32 %36, 11
br i1 %37, label %68, label %38
38: ; preds = %33
%39 = load i8*, i8** %3
%40 = load i8, i8* %39
%41 = sext i8 %40 to i32
%42 = icmp eq i32 %41, 12
br i1 %42, label %68, label %43
43: ; preds = %38
%44 = load i8*, i8** %3
%45 = load i8, i8* %44
%46 = sext i8 %45 to i32
%47 = icmp eq i32 %46, 13
br i1 %47, label %68, label %48
48: ; preds = %43
%49 = load i8*, i8** %3
%50 = load i8, i8* %49
%51 = sext i8 %50 to i32
%52 = icmp eq i32 %51, 27
br i1 %52, label %68, label %53
53: ; preds = %48
%54 = load i8*, i8** %3
%55 = load i8, i8* %54
%56 = sext i8 %55 to i32
%57 = icmp eq i32 %56, 34
br i1 %57, label %68, label %58
58: ; preds = %53
%59 = load i8*, i8** %3
%60 = load i8, i8* %59
%61 = sext i8 %60 to i32
%62 = icmp eq i32 %61, 37
br i1 %62, label %68, label %63
63: ; preds = %58
%64 = load i8*, i8** %3
%65 = load i8, i8* %64
%66 = sext i8 %65 to i32
%67 = icmp eq i32 %66, 92
br i1 %67, label %68, label %71
68: ; preds = %63, %58, %53, %48, %43, %38, %33, %28, %23, %14
%69 = load i32, i32* %7
%70 = add nsw i32 %69, 1
store i32 %70, i32* %7
br label %89
71: ; preds = %63
%72 = load i8*, i8** %3
%73 = load i8, i8* %72
%74 = sext i8 %73 to i32
%75 = icmp eq i32 %74, 10
br i1 %75, label %76, label %79
76: ; preds = %71
%77 = load i32, i32* %7
%78 = add nsw i32 %77, 3
store i32 %78, i32* %7
br label %88
79: ; preds = %71
%80 = load i8*, i8** %3
%81 = load i8, i8* %80
%82 = sext i8 %81 to i32
%83 = icmp slt i32 %82, 32
br i1 %83, label %84, label %87
84: ; preds = %79
%85 = load i32, i32* %7
%86 = add nsw i32 %85, 4
store i32 %86, i32* %7
br label %87
87: ; preds = %84, %79
br label %88
88: ; preds = %87, %76
br label %89
89: ; preds = %88, %68
br label %9
90: ; preds = %9
%91 = load i32, i32* %7
%92 = load i32, i32* %6
%93 = icmp eq i32 %91, %92
br i1 %93, label %94, label %96
94: ; preds = %90
%95 = load i8*, i8** %4
store i8* %95, i8** %2
br label %280
96: ; preds = %90
%97 = load i8*, i8** %4
store i8* %97, i8** %3
%98 = load i32, i32* %7
%99 = add nsw i32 %98, 1
%100 = call i64 @malloc(i32 %99)
%101 = inttoptr i64 %100 to i8*
store i8* %101, i8** %4
store i8* %101, i8** %5
br label %102
102: ; preds = %276, %96
%103 = load i8*, i8** %3
%104 = load i8, i8* %103
%105 = icmp ne i8 %104, 0
br i1 %105, label %106, label %277
106: ; preds = %102
%107 = load i8*, i8** %3
%108 = load i8, i8* %107
%109 = sext i8 %108 to i32
%110 = icmp eq i32 %109, 34
br i1 %110, label %111, label %119
111: ; preds = %106
%112 = load i8*, i8** %4
%113 = getelementptr inbounds i8, i8* %112, i32 1
store i8* %113, i8** %4
store i8 92, i8* %112
%114 = load i8*, i8** %3
%115 = getelementptr inbounds i8, i8* %114, i32 1
store i8* %115, i8** %3
%116 = load i8, i8* %114
%117 = load i8*, i8** %4
%118 = getelementptr inbounds i8, i8* %117, i32 1
store i8* %118, i8** %4
store i8 %116, i8* %117
br label %276
119: ; preds = %106
%120 = load i8*, i8** %3
%121 = load i8, i8* %120
%122 = sext i8 %121 to i32
%123 = icmp eq i32 %122, 37
br i1 %123, label %124, label %132
124: ; preds = %119
%125 = load i8*, i8** %4
%126 = getelementptr inbounds i8, i8* %125, i32 1
store i8* %126, i8** %4
store i8 37, i8* %125
%127 = load i8*, i8** %3
%128 = getelementptr inbounds i8, i8* %127, i32 1
store i8* %128, i8** %3
%129 = load i8, i8* %127
%130 = load i8*, i8** %4
%131 = getelementptr inbounds i8, i8* %130, i32 1
store i8* %131, i8** %4
store i8 %129, i8* %130
br label %275
132: ; preds = %119
%133 = load i8*, i8** %3
%134 = load i8, i8* %133
%135 = sext i8 %134 to i32
%136 = icmp eq i32 %135, 10
br i1 %136, label %137, label %148
137: ; preds = %132
%138 = load i8*, i8** %4
%139 = getelementptr inbounds i8, i8* %138, i32 1
store i8* %139, i8** %4
store i8 92, i8* %138
%140 = load i8*, i8** %4
%141 = getelementptr inbounds i8, i8* %140, i32 1
store i8* %141, i8** %4
store i8 110, i8* %140
%142 = load i8*, i8** %4
%143 = getelementptr inbounds i8, i8* %142, i32 1
store i8* %143, i8** %4
store i8 92, i8* %142
%144 = load i8*, i8** %4
%145 = getelementptr inbounds i8, i8* %144, i32 1
store i8* %145, i8** %4
store i8 10, i8* %144
%146 = load i8*, i8** %3
%147 = getelementptr inbounds i8, i8* %146, i32 1
store i8* %147, i8** %3
br label %274
148: ; preds = %132
%149 = load i8*, i8** %3
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = icmp eq i32 %151, 9
br i1 %152, label %153, label %160
153: ; preds = %148
%154 = load i8*, i8** %4
%155 = getelementptr inbounds i8, i8* %154, i32 1
store i8* %155, i8** %4
store i8 92, i8* %154
%156 = load i8*, i8** %4
%157 = getelementptr inbounds i8, i8* %156, i32 1
store i8* %157, i8** %4
store i8 116, i8* %156
%158 = load i8*, i8** %3
%159 = getelementptr inbounds i8, i8* %158, i32 1
store i8* %159, i8** %3
br label %273
160: ; preds = %148
%161 = load i8*, i8** %3
%162 = load i8, i8* %161
%163 = sext i8 %162 to i32
%164 = icmp eq i32 %163, 13
br i1 %164, label %165, label %172
165: ; preds = %160
%166 = load i8*, i8** %4
%167 = getelementptr inbounds i8, i8* %166, i32 1
store i8* %167, i8** %4
store i8 92, i8* %166
%168 = load i8*, i8** %4
%169 = getelementptr inbounds i8, i8* %168, i32 1
store i8* %169, i8** %4
store i8 114, i8* %168
%170 = load i8*, i8** %3
%171 = getelementptr inbounds i8, i8* %170, i32 1
store i8* %171, i8** %3
br label %272
172: ; preds = %160
%173 = load i8*, i8** %3
%174 = load i8, i8* %173
%175 = sext i8 %174 to i32
%176 = icmp eq i32 %175, 7
br i1 %176, label %177, label %184
177: ; preds = %172
%178 = load i8*, i8** %4
%179 = getelementptr inbounds i8, i8* %178, i32 1
store i8* %179, i8** %4
store i8 92, i8* %178
%180 = load i8*, i8** %4
%181 = getelementptr inbounds i8, i8* %180, i32 1
store i8* %181, i8** %4
store i8 97, i8* %180
%182 = load i8*, i8** %3
%183 = getelementptr inbounds i8, i8* %182, i32 1
store i8* %183, i8** %3
br label %271
184: ; preds = %172
%185 = load i8*, i8** %3
%186 = load i8, i8* %185
%187 = sext i8 %186 to i32
%188 = icmp eq i32 %187, 8
br i1 %188, label %189, label %196
189: ; preds = %184
%190 = load i8*, i8** %4
%191 = getelementptr inbounds i8, i8* %190, i32 1
store i8* %191, i8** %4
store i8 92, i8* %190
%192 = load i8*, i8** %4
%193 = getelementptr inbounds i8, i8* %192, i32 1
store i8* %193, i8** %4
store i8 98, i8* %192
%194 = load i8*, i8** %3
%195 = getelementptr inbounds i8, i8* %194, i32 1
store i8* %195, i8** %3
br label %270
196: ; preds = %184
%197 = load i8*, i8** %3
%198 = load i8, i8* %197
%199 = sext i8 %198 to i32
%200 = icmp eq i32 %199, 27
br i1 %200, label %201, label %208
201: ; preds = %196
%202 = load i8*, i8** %4
%203 = getelementptr inbounds i8, i8* %202, i32 1
store i8* %203, i8** %4
store i8 92, i8* %202
%204 = load i8*, i8** %4
%205 = getelementptr inbounds i8, i8* %204, i32 1
store i8* %205, i8** %4
store i8 101, i8* %204
%206 = load i8*, i8** %3
%207 = getelementptr inbounds i8, i8* %206, i32 1
store i8* %207, i8** %3
br label %269
208: ; preds = %196
%209 = load i8*, i8** %3
%210 = load i8, i8* %209
%211 = sext i8 %210 to i32
%212 = icmp eq i32 %211, 12
br i1 %212, label %213, label %220
213: ; preds = %208
%214 = load i8*, i8** %4
%215 = getelementptr inbounds i8, i8* %214, i32 1
store i8* %215, i8** %4
store i8 92, i8* %214
%216 = load i8*, i8** %4
%217 = getelementptr inbounds i8, i8* %216, i32 1
store i8* %217, i8** %4
store i8 102, i8* %216
%218 = load i8*, i8** %3
%219 = getelementptr inbounds i8, i8* %218, i32 1
store i8* %219, i8** %3
br label %268
220: ; preds = %208
%221 = load i8*, i8** %3
%222 = load i8, i8* %221
%223 = sext i8 %222 to i32
%224 = icmp eq i32 %223, 11
br i1 %224, label %225, label %232
225: ; preds = %220
%226 = load i8*, i8** %4
%227 = getelementptr inbounds i8, i8* %226, i32 1
store i8* %227, i8** %4
store i8 92, i8* %226
%228 = load i8*, i8** %4
%229 = getelementptr inbounds i8, i8* %228, i32 1
store i8* %229, i8** %4
store i8 118, i8* %228
%230 = load i8*, i8** %3
%231 = getelementptr inbounds i8, i8* %230, i32 1
store i8* %231, i8** %3
br label %267
232: ; preds = %220
%233 = load i8*, i8** %3
%234 = load i8, i8* %233
%235 = sext i8 %234 to i32
%236 = icmp eq i32 %235, 92
br i1 %236, label %237, label %245
237: ; preds = %232
%238 = load i8*, i8** %4
%239 = getelementptr inbounds i8, i8* %238, i32 1
store i8* %239, i8** %4
store i8 92, i8* %238
%240 = load i8*, i8** %3
%241 = getelementptr inbounds i8, i8* %240, i32 1
store i8* %241, i8** %3
%242 = load i8, i8* %240
%243 = load i8*, i8** %4
%244 = getelementptr inbounds i8, i8* %243, i32 1
store i8* %244, i8** %4
store i8 %242, i8* %243
br label %266
245: ; preds = %232
%246 = load i8*, i8** %3
%247 = load i8, i8* %246
%248 = sext i8 %247 to i32
%249 = icmp slt i32 %248, 32
br i1 %249, label %250, label %259
250: ; preds = %245
%251 = load i8*, i8** %4
%252 = load i8*, i8** %3
%253 = load i8, i8* %252
%254 = call i32 @sprintf(i8* %251, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i8 signext %253)
%255 = load i8*, i8** %4
%256 = getelementptr inbounds i8, i8* %255, i64 4
store i8* %256, i8** %4
%257 = load i8*, i8** %3
%258 = getelementptr inbounds i8, i8* %257, i32 1
store i8* %258, i8** %3
br label %265
259: ; preds = %245
%260 = load i8*, i8** %3
%261 = getelementptr inbounds i8, i8* %260, i32 1
store i8* %261, i8** %3
%262 = load i8, i8* %260
%263 = load i8*, i8** %4
%264 = getelementptr inbounds i8, i8* %263, i32 1
store i8* %264, i8** %4
store i8 %262, i8* %263
br label %265
265: ; preds = %259, %250
br label %266
266: ; preds = %265, %237
br label %267
267: ; preds = %266, %225
br label %268
268: ; preds = %267, %213
br label %269
269: ; preds = %268, %201
br label %270
270: ; preds = %269, %189
br label %271
271: ; preds = %270, %177
br label %272
272: ; preds = %271, %165
br label %273
273: ; preds = %272, %153
br label %274
274: ; preds = %273, %137
br label %275
275: ; preds = %274, %124
br label %276
276: ; preds = %275, %111
br label %102
277: ; preds = %102
%278 = load i8*, i8** %4
store i8 0, i8* %278
%279 = load i8*, i8** %5
store i8* %279, i8** %2
br label %280
280: ; preds = %277, %94
%281 = load i8*, i8** %2
ret i8* %281
}

LLVM IR (-O2):
@.str = [6 x i8] c"\\%03o\00"
define i8* @yyqq(i8* %0) {
%2 = load i8, i8* %0
%3 = icmp eq i8 %2, 0
br i1 %3, label %81, label %4
4: ; preds = %1, %19
%5 = phi i8* [ %8, %19 ], [ %0, %1 ]
%6 = phi i32 [ %20, %19 ], [ 0, %1 ]
%7 = phi i32 [ %9, %19 ], [ 0, %1 ]
%8 = getelementptr inbounds i8, i8* %5, i64 1
%9 = add nuw nsw i32 %7, 1
%10 = load i8, i8* %8
switch i8 %10, label %15 [
i8 7, label %11
i8 8, label %11
i8 9, label %11
i8 11, label %11
i8 12, label %11
i8 13, label %11
i8 27, label %11
i8 34, label %11
i8 37, label %11
i8 92, label %11
i8 10, label %13
]
11: ; preds = %4, %4, %4, %4, %4, %4, %4, %4, %4, %4
%12 = add nsw i32 %6, 2
br label %19
13: ; preds = %4
%14 = add nsw i32 %6, 4
br label %19
15: ; preds = %4
%16 = icmp slt i8 %10, 32
%17 = select i1 %16, i32 5, i32 1
%18 = add nsw i32 %17, %6
br label %19
19: ; preds = %15, %13, %11
%20 = phi i32 [ %12, %11 ], [ %14, %13 ], [ %18, %15 ]
%21 = icmp eq i8 %10, 0
br i1 %21, label %22, label %4
22: ; preds = %19
%23 = icmp eq i32 %20, %9
br i1 %23, label %81, label %24
24: ; preds = %22
%25 = add nsw i32 %20, 1
%26 = tail call i64 @malloc(i32 %25)
%27 = inttoptr i64 %26 to i8*
br label %28
28: ; preds = %77, %24
%29 = phi i8* [ %0, %24 ], [ %79, %77 ]
%30 = phi i8* [ %27, %24 ], [ %78, %77 ]
%31 = load i8, i8* %29
switch i8 %31, label %70 [
i8 0, label %80
i8 34, label %32
i8 37, label %36
i8 10, label %40
i8 9, label %45
i8 13, label %48
i8 7, label %51
i8 8, label %54
i8 27, label %57
i8 12, label %60
i8 11, label %63
i8 92, label %66
]
32: ; preds = %28
%33 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%34 = load i8, i8* %29
%35 = getelementptr inbounds i8, i8* %30, i64 2
store i8 %34, i8* %33
br label %77
36: ; preds = %28
%37 = getelementptr inbounds i8, i8* %30, i64 1
store i8 37, i8* %30
%38 = load i8, i8* %29
%39 = getelementptr inbounds i8, i8* %30, i64 2
store i8 %38, i8* %37
br label %77
40: ; preds = %28
%41 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%42 = getelementptr inbounds i8, i8* %30, i64 2
store i8 110, i8* %41
%43 = getelementptr inbounds i8, i8* %30, i64 3
store i8 92, i8* %42
%44 = getelementptr inbounds i8, i8* %30, i64 4
store i8 10, i8* %43
br label %77
45: ; preds = %28
%46 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%47 = getelementptr inbounds i8, i8* %30, i64 2
store i8 116, i8* %46
br label %77
48: ; preds = %28
%49 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%50 = getelementptr inbounds i8, i8* %30, i64 2
store i8 114, i8* %49
br label %77
51: ; preds = %28
%52 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%53 = getelementptr inbounds i8, i8* %30, i64 2
store i8 97, i8* %52
br label %77
54: ; preds = %28
%55 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%56 = getelementptr inbounds i8, i8* %30, i64 2
store i8 98, i8* %55
br label %77
57: ; preds = %28
%58 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%59 = getelementptr inbounds i8, i8* %30, i64 2
store i8 101, i8* %58
br label %77
60: ; preds = %28
%61 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%62 = getelementptr inbounds i8, i8* %30, i64 2
store i8 102, i8* %61
br label %77
63: ; preds = %28
%64 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%65 = getelementptr inbounds i8, i8* %30, i64 2
store i8 118, i8* %64
br label %77
66: ; preds = %28
%67 = getelementptr inbounds i8, i8* %30, i64 1
store i8 92, i8* %30
%68 = load i8, i8* %29
%69 = getelementptr inbounds i8, i8* %30, i64 2
store i8 %68, i8* %67
br label %77
70: ; preds = %28
%71 = icmp slt i8 %31, 32
br i1 %71, label %72, label %75
72: ; preds = %70
%73 = tail call i32 @sprintf(i8* dereferenceable(1) %30, i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i8 signext %31)
%74 = getelementptr inbounds i8, i8* %30, i64 4
br label %77
75: ; preds = %70
%76 = getelementptr inbounds i8, i8* %30, i64 1
store i8 %31, i8* %30
br label %77
77: ; preds = %36, %45, %51, %57, %63, %72, %75, %66, %60, %54, %48, %40, %32
%78 = phi i8* [ %35, %32 ], [ %39, %36 ], [ %44, %40 ], [ %47, %45 ], [ %50, %48 ], [ %53, %51 ], [ %56, %54 ], [ %59, %57 ], [ %62, %60 ], [ %65, %63 ], [ %69, %66 ], [ %74, %72 ], [ %76, %75 ]
%79 = getelementptr inbounds i8, i8* %29, i64 1
br label %28
80: ; preds = %28
store i8 0, i8* %30
br label %81
81: ; preds = %1, %22, %80
%82 = phi i8* [ %27, %80 ], [ %0, %22 ], [ %0, %1 ]
ret i8* %82
}