void escape_transl(char *text) {
  char *c, *d;
  int i;
  c = d = text;
  while (*c) {
    if (*c == '\\') {
      c++;
      switch (*c) {
      case 'a':
        *d++ = '\a';
        break;
      case 'b':
        *d++ = '\b';
        break;
      case 'f':
        *d++ = '\f';
        break;
      case 'n':
        *d++ = '\n';
        break;
      case 'r':
        *d++ = '\r';
        break;
      case 't':
        *d++ = '\t';
        break;
      case 'v':
        *d++ = '\v';
        break;
      case 'x':
        c++;
        i = 0;
        while (((*c >= '0') && (*c <= '9')) || ((*c >= 'A') && (*c <= 'F')) ||
               ((*c >= 'a') && (*c <= 'f'))) {
          if ((*c >= '0') && (*c <= '9'))
            i = i * 16 + (*c) - '0';
          else if ((*c >= 'A') && (*c <= 'F'))
            i = i * 16 + (*c) - 'A' + 10;
          else if ((*c >= 'a') && (*c <= 'f'))
            i = i * 16 + (*c) - 'a' + 10;
          c++;
        }
        c--;
        *d++ = i;
        break;
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
        i = (*c) - '0';
        c++;
        if ((*c >= '0') && (*c <= '7')) {
          i = i * 8 + (*c) - '0';
          c++;
          if ((*c >= '0') && (*c <= '7')) {
            i = i * 8 + (*c) - '0';
            c++;
          }
        }
        c--;
        *d++ = i;
        break;
      default:
        *d++ = *c;
        break;
      }
    } else
      *d++ = *c;
    c++;
  }
  *d = 0;
}


x86 assembly (clang, -O0):
<escape_transl>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
cmpb   $0x0,(%rax)
je     149f <escape_transl+0x39f>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5c,%eax
jne    1477 <escape_transl+0x377>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
add    $0xffffffd0,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x48,%eax
ja     145b <escape_transl+0x35b>
mov    -0x28(%rbp),%rax
lea    0xe9f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x7,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x8,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0xc,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0xa,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0xd,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0x9,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x1,%rcx
mov    %rcx,-0x18(%rbp)
movb   $0xb,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
movl   $0x0,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     1243 <escape_transl+0x143>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
mov    $0x1,%al
cmp    $0x39,%ecx
mov    %al,-0x29(%rbp)
jle    1293 <escape_transl+0x193>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x41,%eax
jl     1268 <escape_transl+0x168>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
mov    $0x1,%al
cmp    $0x46,%ecx
mov    %al,-0x29(%rbp)
jle    1293 <escape_transl+0x193>
mov    -0x10(%rbp),%rax
movsbl (%rax),%ecx
xor    %eax,%eax
cmp    $0x61,%ecx
mov    %al,-0x2a(%rbp)
jl     128d <escape_transl+0x18d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x66,%eax
setle  %al
mov    %al,-0x2a(%rbp)
mov    -0x2a(%rbp),%al
mov    %al,-0x29(%rbp)
mov    -0x29(%rbp),%al
test   $0x1,%al
jne    12a3 <escape_transl+0x1a3>
jmp    136d <escape_transl+0x26d>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     12dd <escape_transl+0x1dd>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x39,%eax
jg     12dd <escape_transl+0x1dd>
mov    -0x1c(%rbp),%eax
shl    $0x4,%eax
mov    -0x10(%rbp),%rcx
movsbl (%rcx),%ecx
add    %ecx,%eax
sub    $0x30,%eax
mov    %eax,-0x1c(%rbp)
jmp    135c <escape_transl+0x25c>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x41,%eax
jl     131a <escape_transl+0x21a>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x46,%eax
jg     131a <escape_transl+0x21a>
mov    -0x1c(%rbp),%eax
shl    $0x4,%eax
mov    -0x10(%rbp),%rcx
movsbl (%rcx),%ecx
add    %ecx,%eax
sub    $0x41,%eax
add    $0xa,%eax
mov    %eax,-0x1c(%rbp)
jmp    1357 <escape_transl+0x257>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x61,%eax
jl     1352 <escape_transl+0x252>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x66,%eax
jg     1352 <escape_transl+0x252>
mov    -0x1c(%rbp),%eax
shl    $0x4,%eax
mov    -0x10(%rbp),%rcx
movsbl (%rcx),%ecx
add    %ecx,%eax
sub    $0x61,%eax
add    $0xa,%eax
mov    %eax,-0x1c(%rbp)
jmp    1357 <escape_transl+0x257>
jmp    135c <escape_transl+0x25c>
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    121e <escape_transl+0x11e>
mov    -0x10(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x10(%rbp)
mov    -0x1c(%rbp),%eax
mov    %al,%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
sub    $0x30,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     1434 <escape_transl+0x334>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x37,%eax
jg     1434 <escape_transl+0x334>
mov    -0x1c(%rbp),%eax
shl    $0x3,%eax
mov    -0x10(%rbp),%rcx
movsbl (%rcx),%ecx
add    %ecx,%eax
sub    $0x30,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x30,%eax
jl     142f <escape_transl+0x32f>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x37,%eax
jg     142f <escape_transl+0x32f>
mov    -0x1c(%rbp),%eax
shl    $0x3,%eax
mov    -0x10(%rbp),%rcx
movsbl (%rcx),%ecx
add    %ecx,%eax
sub    $0x30,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1434 <escape_transl+0x334>
mov    -0x10(%rbp),%rax
add    $0xffffffffffffffff,%rax
mov    %rax,-0x10(%rbp)
mov    -0x1c(%rbp),%eax
mov    %al,%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    1472 <escape_transl+0x372>
mov    -0x10(%rbp),%rax
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
jmp    148e <escape_transl+0x38e>
mov    -0x10(%rbp),%rax
mov    (%rax),%cl
mov    -0x18(%rbp),%rax
mov    %rax,%rdx
add    $0x1,%rdx
mov    %rdx,-0x18(%rbp)
mov    %cl,(%rax)
mov    -0x10(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x10(%rbp)
jmp    1114 <escape_transl+0x14>
mov    -0x18(%rbp),%rax
movb   $0x0,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<escape_transl>:
lea    0xef9(%rip),%r8
mov    %rdi,%r9
jmp    112a <escape_transl+0x2a>
nopl   0x0(%rax)
mov    %rdi,%rdx
test   %sil,%sil
je     120b <escape_transl+0x10b>
mov    %sil,(%r9)
add    $0x1,%r9
add    $0x1,%rdx
mov    %rdx,%rdi
mov    (%rdi),%sil
cmp    $0x5c,%sil
jne    1110 <escape_transl+0x10>
lea    0x1(%rdi),%rdx
mov    0x1(%rdi),%r10b
movsbl %r10b,%eax
add    $0xffffffd0,%eax
cmp    $0x48,%eax
ja     1196 <escape_transl+0x96>
mov    $0x7,%sil
movslq (%r8,%rax,4),%rcx
add    %r8,%rcx
jmp    *%rcx
movzbl 0x2(%rdi),%ecx
mov    %ecx,%edx
and    $0xf8,%dl
cmp    $0x30,%dl
jne    1181 <escape_transl+0x81>
lea    (%rcx,%rax,8),%eax
add    $0xffffffd0,%eax
movzbl 0x3(%rdi),%ecx
mov    %ecx,%edx
and    $0xf8,%dl
cmp    $0x30,%dl
jne    1187 <escape_transl+0x87>
lea    (%rcx,%rax,8),%eax
add    $0xffffffd0,%eax
add    $0x4,%rdi
jmp    118b <escape_transl+0x8b>
add    $0x2,%rdi
jmp    118b <escape_transl+0x8b>
add    $0x3,%rdi
mov    %rdi,%rdx
add    $0xffffffffffffffff,%rdx
mov    %eax,%esi
jmp    111c <escape_transl+0x1c>
mov    %r10d,%esi
jmp    111c <escape_transl+0x1c>
mov    $0x8,%sil
jmp    111c <escape_transl+0x1c>
mov    $0xc,%sil
jmp    111c <escape_transl+0x1c>
mov    $0xa,%sil
jmp    111c <escape_transl+0x1c>
mov    $0xd,%sil
jmp    111c <escape_transl+0x1c>
mov    $0x9,%sil
jmp    111c <escape_transl+0x1c>
mov    $0xb,%sil
jmp    111c <escape_transl+0x1c>
xor    %esi,%esi
jmp    11db <escape_transl+0xdb>
nop
shl    $0x4,%esi
add    %edi,%esi
add    %eax,%esi
add    $0x1,%rdx
movzbl 0x1(%rdx),%eax
lea    -0x30(%rax),%ecx
mov    $0xffffffd0,%edi
cmp    $0xa,%cl
jb     11d0 <escape_transl+0xd0>
lea    -0x41(%rax),%ecx
mov    $0xffffffc9,%edi
cmp    $0x6,%cl
jb     11d0 <escape_transl+0xd0>
lea    -0x61(%rax),%ecx
mov    $0xffffffa9,%edi
cmp    $0x5,%cl
jbe    11d0 <escape_transl+0xd0>
jmp    111c <escape_transl+0x1c>
movb   $0x0,(%r9)
ret

LLVM IR (-O0):
define void @escape_transl(i8* %0) {
%2 = alloca i8*
%3 = alloca i8*
%4 = alloca i8*
%5 = alloca i32
store i8* %0, i8** %2
%6 = load i8*, i8** %2
store i8* %6, i8** %4
store i8* %6, i8** %3
br label %7
7: ; preds = %212, %1
%8 = load i8*, i8** %3
%9 = load i8, i8* %8
%10 = icmp ne i8 %9, 0
br i1 %10, label %11, label %215
11: ; preds = %7
%12 = load i8*, i8** %3
%13 = load i8, i8* %12
%14 = sext i8 %13 to i32
%15 = icmp eq i32 %14, 92
br i1 %15, label %16, label %207
16: ; preds = %11
%17 = load i8*, i8** %3
%18 = getelementptr inbounds i8, i8* %17, i32 1
store i8* %18, i8** %3
%19 = load i8*, i8** %3
%20 = load i8, i8* %19
%21 = sext i8 %20 to i32
switch i32 %21, label %201 [
i32 97, label %22
i32 98, label %25
i32 102, label %28
i32 110, label %31
i32 114, label %34
i32 116, label %37
i32 118, label %40
i32 120, label %43
i32 48, label %148
i32 49, label %148
i32 50, label %148
i32 51, label %148
i32 52, label %148
i32 53, label %148
i32 54, label %148
i32 55, label %148
]
22: ; preds = %16
%23 = load i8*, i8** %4
%24 = getelementptr inbounds i8, i8* %23, i32 1
store i8* %24, i8** %4
store i8 7, i8* %23
br label %206
25: ; preds = %16
%26 = load i8*, i8** %4
%27 = getelementptr inbounds i8, i8* %26, i32 1
store i8* %27, i8** %4
store i8 8, i8* %26
br label %206
28: ; preds = %16
%29 = load i8*, i8** %4
%30 = getelementptr inbounds i8, i8* %29, i32 1
store i8* %30, i8** %4
store i8 12, i8* %29
br label %206
31: ; preds = %16
%32 = load i8*, i8** %4
%33 = getelementptr inbounds i8, i8* %32, i32 1
store i8* %33, i8** %4
store i8 10, i8* %32
br label %206
34: ; preds = %16
%35 = load i8*, i8** %4
%36 = getelementptr inbounds i8, i8* %35, i32 1
store i8* %36, i8** %4
store i8 13, i8* %35
br label %206
37: ; preds = %16
%38 = load i8*, i8** %4
%39 = getelementptr inbounds i8, i8* %38, i32 1
store i8* %39, i8** %4
store i8 9, i8* %38
br label %206
40: ; preds = %16
%41 = load i8*, i8** %4
%42 = getelementptr inbounds i8, i8* %41, i32 1
store i8* %42, i8** %4
store i8 11, i8* %41
br label %206
43: ; preds = %16
%44 = load i8*, i8** %3
%45 = getelementptr inbounds i8, i8* %44, i32 1
store i8* %45, i8** %3
store i32 0, i32* %5
br label %46
46: ; preds = %138, %43
%47 = load i8*, i8** %3
%48 = load i8, i8* %47
%49 = sext i8 %48 to i32
%50 = icmp sge i32 %49, 48
br i1 %50, label %51, label %56
51: ; preds = %46
%52 = load i8*, i8** %3
%53 = load i8, i8* %52
%54 = sext i8 %53 to i32
%55 = icmp sle i32 %54, 57
br i1 %55, label %78, label %56
56: ; preds = %51, %46
%57 = load i8*, i8** %3
%58 = load i8, i8* %57
%59 = sext i8 %58 to i32
%60 = icmp sge i32 %59, 65
br i1 %60, label %61, label %66
61: ; preds = %56
%62 = load i8*, i8** %3
%63 = load i8, i8* %62
%64 = sext i8 %63 to i32
%65 = icmp sle i32 %64, 70
br i1 %65, label %78, label %66
66: ; preds = %61, %56
%67 = load i8*, i8** %3
%68 = load i8, i8* %67
%69 = sext i8 %68 to i32
%70 = icmp sge i32 %69, 97
br i1 %70, label %71, label %76
71: ; preds = %66
%72 = load i8*, i8** %3
%73 = load i8, i8* %72
%74 = sext i8 %73 to i32
%75 = icmp sle i32 %74, 102
br label %76
76: ; preds = %71, %66
%77 = phi i1 [ false, %66 ], [ %75, %71 ]
br label %78
78: ; preds = %76, %61, %51
%79 = phi i1 [ true, %61 ], [ true, %51 ], [ %77, %76 ]
br i1 %79, label %80, label %141
80: ; preds = %78
%81 = load i8*, i8** %3
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = icmp sge i32 %83, 48
br i1 %84, label %85, label %98
85: ; preds = %80
%86 = load i8*, i8** %3
%87 = load i8, i8* %86
%88 = sext i8 %87 to i32
%89 = icmp sle i32 %88, 57
br i1 %89, label %90, label %98
90: ; preds = %85
%91 = load i32, i32* %5
%92 = mul nsw i32 %91, 16
%93 = load i8*, i8** %3
%94 = load i8, i8* %93
%95 = sext i8 %94 to i32
%96 = add nsw i32 %92, %95
%97 = sub nsw i32 %96, 48
store i32 %97, i32* %5
br label %138
98: ; preds = %85, %80
%99 = load i8*, i8** %3
%100 = load i8, i8* %99
%101 = sext i8 %100 to i32
%102 = icmp sge i32 %101, 65
br i1 %102, label %103, label %117
103: ; preds = %98
%104 = load i8*, i8** %3
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
%107 = icmp sle i32 %106, 70
br i1 %107, label %108, label %117
108: ; preds = %103
%109 = load i32, i32* %5
%110 = mul nsw i32 %109, 16
%111 = load i8*, i8** %3
%112 = load i8, i8* %111
%113 = sext i8 %112 to i32
%114 = add nsw i32 %110, %113
%115 = sub nsw i32 %114, 65
%116 = add nsw i32 %115, 10
store i32 %116, i32* %5
br label %137
117: ; preds = %103, %98
%118 = load i8*, i8** %3
%119 = load i8, i8* %118
%120 = sext i8 %119 to i32
%121 = icmp sge i32 %120, 97
br i1 %121, label %122, label %136
122: ; preds = %117
%123 = load i8*, i8** %3
%124 = load i8, i8* %123
%125 = sext i8 %124 to i32
%126 = icmp sle i32 %125, 102
br i1 %126, label %127, label %136
127: ; preds = %122
%128 = load i32, i32* %5
%129 = mul nsw i32 %128, 16
%130 = load i8*, i8** %3
%131 = load i8, i8* %130
%132 = sext i8 %131 to i32
%133 = add nsw i32 %129, %132
%134 = sub nsw i32 %133, 97
%135 = add nsw i32 %134, 10
store i32 %135, i32* %5
br label %136
136: ; preds = %127, %122, %117
br label %137
137: ; preds = %136, %108
br label %138
138: ; preds = %137, %90
%139 = load i8*, i8** %3
%140 = getelementptr inbounds i8, i8* %139, i32 1
store i8* %140, i8** %3
br label %46
141: ; preds = %78
%142 = load i8*, i8** %3
%143 = getelementptr inbounds i8, i8* %142, i32 -1
store i8* %143, i8** %3
%144 = load i32, i32* %5
%145 = trunc i32 %144 to i8
%146 = load i8*, i8** %4
%147 = getelementptr inbounds i8, i8* %146, i32 1
store i8* %147, i8** %4
store i8 %145, i8* %146
br label %206
148: ; preds = %16, %16, %16, %16, %16, %16, %16, %16
%149 = load i8*, i8** %3
%150 = load i8, i8* %149
%151 = sext i8 %150 to i32
%152 = sub nsw i32 %151, 48
store i32 %152, i32* %5
%153 = load i8*, i8** %3
%154 = getelementptr inbounds i8, i8* %153, i32 1
store i8* %154, i8** %3
%155 = load i8*, i8** %3
%156 = load i8, i8* %155
%157 = sext i8 %156 to i32
%158 = icmp sge i32 %157, 48
br i1 %158, label %159, label %194
159: ; preds = %148
%160 = load i8*, i8** %3
%161 = load i8, i8* %160
%162 = sext i8 %161 to i32
%163 = icmp sle i32 %162, 55
br i1 %163, label %164, label %194
164: ; preds = %159
%165 = load i32, i32* %5
%166 = mul nsw i32 %165, 8
%167 = load i8*, i8** %3
%168 = load i8, i8* %167
%169 = sext i8 %168 to i32
%170 = add nsw i32 %166, %169
%171 = sub nsw i32 %170, 48
store i32 %171, i32* %5
%172 = load i8*, i8** %3
%173 = getelementptr inbounds i8, i8* %172, i32 1
store i8* %173, i8** %3
%174 = load i8*, i8** %3
%175 = load i8, i8* %174
%176 = sext i8 %175 to i32
%177 = icmp sge i32 %176, 48
br i1 %177, label %178, label %193
178: ; preds = %164
%179 = load i8*, i8** %3
%180 = load i8, i8* %179
%181 = sext i8 %180 to i32
%182 = icmp sle i32 %181, 55
br i1 %182, label %183, label %193
183: ; preds = %178
%184 = load i32, i32* %5
%185 = mul nsw i32 %184, 8
%186 = load i8*, i8** %3
%187 = load i8, i8* %186
%188 = sext i8 %187 to i32
%189 = add nsw i32 %185, %188
%190 = sub nsw i32 %189, 48
store i32 %190, i32* %5
%191 = load i8*, i8** %3
%192 = getelementptr inbounds i8, i8* %191, i32 1
store i8* %192, i8** %3
br label %193
193: ; preds = %183, %178, %164
br label %194
194: ; preds = %193, %159, %148
%195 = load i8*, i8** %3
%196 = getelementptr inbounds i8, i8* %195, i32 -1
store i8* %196, i8** %3
%197 = load i32, i32* %5
%198 = trunc i32 %197 to i8
%199 = load i8*, i8** %4
%200 = getelementptr inbounds i8, i8* %199, i32 1
store i8* %200, i8** %4
store i8 %198, i8* %199
br label %206
201: ; preds = %16
%202 = load i8*, i8** %3
%203 = load i8, i8* %202
%204 = load i8*, i8** %4
%205 = getelementptr inbounds i8, i8* %204, i32 1
store i8* %205, i8** %4
store i8 %203, i8* %204
br label %206
206: ; preds = %201, %194, %141, %40, %37, %34, %31, %28, %25, %22
br label %212
207: ; preds = %11
%208 = load i8*, i8** %3
%209 = load i8, i8* %208
%210 = load i8*, i8** %4
%211 = getelementptr inbounds i8, i8* %210, i32 1
store i8* %211, i8** %4
store i8 %209, i8* %210
br label %212
212: ; preds = %207, %206
%213 = load i8*, i8** %3
%214 = getelementptr inbounds i8, i8* %213, i32 1
store i8* %214, i8** %3
br label %7
215: ; preds = %7
%216 = load i8*, i8** %4
store i8 0, i8* %216
ret void
}

LLVM IR (-O2):
define void @escape_transl(i8* nocapture %0) {
br label %2
2: ; preds = %67, %1
%3 = phi i8* [ %0, %1 ], [ %71, %67 ]
%4 = phi i8* [ %0, %1 ], [ %70, %67 ]
%5 = load i8, i8* %3
switch i8 %5, label %67 [
i8 0, label %72
i8 92, label %6
]
6: ; preds = %2
%7 = getelementptr inbounds i8, i8* %3, i64 1
%8 = load i8, i8* %7
%9 = sext i8 %8 to i32
switch i32 %9, label %66 [
i32 97, label %67
i32 98, label %10
i32 102, label %11
i32 110, label %12
i32 114, label %13
i32 116, label %14
i32 118, label %15
i32 120, label %16
i32 48, label %40
i32 49, label %40
i32 50, label %40
i32 51, label %40
i32 52, label %40
i32 53, label %40
i32 54, label %40
i32 55, label %40
]
10: ; preds = %6
br label %67
11: ; preds = %6
br label %67
12: ; preds = %6
br label %67
13: ; preds = %6
br label %67
14: ; preds = %6
br label %67
15: ; preds = %6
br label %67
16: ; preds = %6
%17 = getelementptr inbounds i8, i8* %3, i64 2
br label %18
18: ; preds = %30, %16
%19 = phi i8* [ %17, %16 ], [ %36, %30 ]
%20 = phi i32 [ 0, %16 ], [ %35, %30 ]
%21 = load i8, i8* %19
%22 = add i8 %21, -48
%23 = icmp ult i8 %22, 10
br i1 %23, label %30, label %24
24: ; preds = %18
%25 = add i8 %21, -65
%26 = icmp ult i8 %25, 6
br i1 %26, label %30, label %27
27: ; preds = %24
%28 = add i8 %21, -97
%29 = icmp ult i8 %28, 6
br i1 %29, label %30, label %37
30: ; preds = %27, %24, %18
%31 = phi i32 [ -48, %18 ], [ -55, %24 ], [ -87, %27 ]
%32 = zext i8 %21 to i32
%33 = shl nsw i32 %20, 4
%34 = add i32 %33, %31
%35 = add i32 %34, %32
%36 = getelementptr inbounds i8, i8* %19, i64 1
br label %18
37: ; preds = %27
%38 = getelementptr inbounds i8, i8* %19, i64 -1
%39 = trunc i32 %20 to i8
br label %67
40: ; preds = %6, %6, %6, %6, %6, %6, %6, %6
%41 = add nsw i32 %9, -48
%42 = getelementptr inbounds i8, i8* %3, i64 2
%43 = load i8, i8* %42
%44 = and i8 %43, -8
%45 = icmp eq i8 %44, 48
br i1 %45, label %46, label %61
46: ; preds = %40
%47 = zext i8 %43 to i32
%48 = shl nuw nsw i32 %41, 3
%49 = add nsw i32 %48, -48
%50 = add nsw i32 %49, %47
%51 = getelementptr inbounds i8, i8* %3, i64 3
%52 = load i8, i8* %51
%53 = and i8 %52, -8
%54 = icmp eq i8 %53, 48
br i1 %54, label %55, label %61
55: ; preds = %46
%56 = zext i8 %52 to i32
%57 = shl nuw nsw i32 %50, 3
%58 = add nsw i32 %57, -48
%59 = add nsw i32 %58, %56
%60 = getelementptr inbounds i8, i8* %3, i64 4
br label %61
61: ; preds = %46, %55, %40
%62 = phi i8* [ %60, %55 ], [ %51, %46 ], [ %42, %40 ]
%63 = phi i32 [ %59, %55 ], [ %50, %46 ], [ %41, %40 ]
%64 = getelementptr inbounds i8, i8* %62, i64 -1
%65 = trunc i32 %63 to i8
br label %67
66: ; preds = %6
br label %67
67: ; preds = %2, %6, %10, %11, %12, %13, %14, %15, %37, %61, %66
%68 = phi i8 [ 8, %10 ], [ 12, %11 ], [ 10, %12 ], [ 13, %13 ], [ 9, %14 ], [ 11, %15 ], [ %39, %37 ], [ %65, %61 ], [ %8, %66 ], [ 7, %6 ], [ %5, %2 ]
%69 = phi i8* [ %7, %10 ], [ %7, %11 ], [ %7, %12 ], [ %7, %13 ], [ %7, %14 ], [ %7, %15 ], [ %38, %37 ], [ %64, %61 ], [ %7, %66 ], [ %7, %6 ], [ %3, %2 ]
store i8 %68, i8* %4
%70 = getelementptr inbounds i8, i8* %4, i64 1
%71 = getelementptr inbounds i8, i8* %69, i64 1
br label %2
72: ; preds = %2
store i8 0, i8* %4
ret void
}