void resolve_backslashes(char *z) {
  int i;
  int j;
  int c;
  char *__cil_tmp5;
  char __cil_tmp6;
  char *__cil_tmp7;
  char __cil_tmp8;
  int __cil_tmp9;
  char *__cil_tmp10;
  char __cil_tmp11;
  int __cil_tmp12;
  int __cil_tmp13;
  char *__cil_tmp14;
  char __cil_tmp15;
  int __cil_tmp16;
  char *__cil_tmp17;
  char __cil_tmp18;
  int __cil_tmp19;
  int __cil_tmp20;
  int __cil_tmp21;
  int __cil_tmp22;
  char *__cil_tmp23;
  char __cil_tmp24;
  int __cil_tmp25;
  int __cil_tmp26;
  char *__cil_tmp27;
  char __cil_tmp28;
  int __cil_tmp29;
  char *__cil_tmp30;
  char __cil_tmp31;
  int __cil_tmp32;
  int __cil_tmp33;
  int __cil_tmp34;
  char *__cil_tmp35;
  char *__cil_tmp36;
  {
    j = 0;
    i = j;
    {
      while (1) {
      while_34_continue:;
        __cil_tmp5 = z + i;
        __cil_tmp6 = *__cil_tmp5;
        c = (int)__cil_tmp6;
        if (c != 0) {
        } else {
          goto while_34_break;
        }
        if (c == 92) {
          i = i + 1;
          __cil_tmp7 = z + i;
          __cil_tmp8 = *__cil_tmp7;
          c = (int)__cil_tmp8;
          if (c == 110) {
            c = '\n';
          } else {
            if (c == 116) {
              c = '\t';
            } else {
              if (c == 114) {
                c = '\r';
              } else {
                if (c >= 48) {
                  if (c <= 55) {
                    c = c - 48;
                    {
                      __cil_tmp9 = i + 1;
                      __cil_tmp10 = z + __cil_tmp9;
                      __cil_tmp11 = *__cil_tmp10;
                      __cil_tmp12 = (int)__cil_tmp11;
                      if (__cil_tmp12 >= 48) {
                        {
                          __cil_tmp13 = i + 1;
                          __cil_tmp14 = z + __cil_tmp13;
                          __cil_tmp15 = *__cil_tmp14;
                          __cil_tmp16 = (int)__cil_tmp15;
                          if (__cil_tmp16 <= 55) {
                            i = i + 1;
                            __cil_tmp17 = z + i;
                            __cil_tmp18 = *__cil_tmp17;
                            __cil_tmp19 = (int)__cil_tmp18;
                            __cil_tmp20 = c << 3;
                            __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
                            c = __cil_tmp21 - 48;
                            {
                              __cil_tmp22 = i + 1;
                              __cil_tmp23 = z + __cil_tmp22;
                              __cil_tmp24 = *__cil_tmp23;
                              __cil_tmp25 = (int)__cil_tmp24;
                              if (__cil_tmp25 >= 48) {
                                {
                                  __cil_tmp26 = i + 1;
                                  __cil_tmp27 = z + __cil_tmp26;
                                  __cil_tmp28 = *__cil_tmp27;
                                  __cil_tmp29 = (int)__cil_tmp28;
                                  if (__cil_tmp29 <= 55) {
                                    i = i + 1;
                                    __cil_tmp30 = z + i;
                                    __cil_tmp31 = *__cil_tmp30;
                                    __cil_tmp32 = (int)__cil_tmp31;
                                    __cil_tmp33 = c << 3;
                                    __cil_tmp34 = __cil_tmp33 + __cil_tmp32;
                                    c = __cil_tmp34 - 48;
                                  } else {
                                  }
                                }
                              } else {
                              }
                            }
                          } else {
                          }
                        }
                      } else {
                      }
                    }
                  } else {
                  }
                } else {
                }
              }
            }
          }
        } else {
        }
        __cil_tmp35 = z + j;
        *__cil_tmp35 = (char)c;
        i = i + 1;
        j = j + 1;
      }
    while_34_break:;
    }
    __cil_tmp36 = z + j;
    *__cil_tmp36 = (char)0;
    return;
  }
}


x86 assembly (clang, -O0):
<resolve_backslashes>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
mov    %rdi,-0x8(%rbp)
movl   $0x0,-0x10(%rbp)
mov    -0x10(%rbp),%eax
mov    %eax,-0xc(%rbp)
jmp    111e <resolve_backslashes+0x1e>
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x20(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x21(%rbp)
movsbl -0x21(%rbp),%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x0,-0x14(%rbp)
je     114c <resolve_backslashes+0x4c>
jmp    1151 <resolve_backslashes+0x51>
jmp    1404 <resolve_backslashes+0x304>
cmpl   $0x5c,-0x14(%rbp)
jne    13c8 <resolve_backslashes+0x2c8>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x30(%rbp)
mov    -0x30(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x31(%rbp)
movsbl -0x31(%rbp),%eax
mov    %eax,-0x14(%rbp)
cmpl   $0x6e,-0x14(%rbp)
jne    1199 <resolve_backslashes+0x99>
movl   $0xa,-0x14(%rbp)
jmp    13c3 <resolve_backslashes+0x2c3>
cmpl   $0x74,-0x14(%rbp)
jne    11af <resolve_backslashes+0xaf>
movl   $0x9,-0x14(%rbp)
jmp    13be <resolve_backslashes+0x2be>
cmpl   $0x72,-0x14(%rbp)
jne    11c5 <resolve_backslashes+0xc5>
movl   $0xd,-0x14(%rbp)
jmp    13b9 <resolve_backslashes+0x2b9>
cmpl   $0x30,-0x14(%rbp)
jl     13af <resolve_backslashes+0x2af>
cmpl   $0x37,-0x14(%rbp)
jg     13a5 <resolve_backslashes+0x2a5>
mov    -0x14(%rbp),%eax
sub    $0x30,%eax
mov    %eax,-0x14(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x38(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x40(%rbp)
mov    -0x40(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x41(%rbp)
movsbl -0x41(%rbp),%eax
mov    %eax,-0x48(%rbp)
cmpl   $0x30,-0x48(%rbp)
jl     139b <resolve_backslashes+0x29b>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x4c(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x58(%rbp)
mov    -0x58(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x59(%rbp)
movsbl -0x59(%rbp),%eax
mov    %eax,-0x60(%rbp)
cmpl   $0x37,-0x60(%rbp)
jg     1391 <resolve_backslashes+0x291>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x68(%rbp)
mov    -0x68(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x69(%rbp)
movsbl -0x69(%rbp),%eax
mov    %eax,-0x70(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    %eax,-0x74(%rbp)
mov    -0x74(%rbp),%eax
add    -0x70(%rbp),%eax
mov    %eax,-0x78(%rbp)
mov    -0x78(%rbp),%eax
sub    $0x30,%eax
mov    %eax,-0x14(%rbp)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x7c(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x88(%rbp)
mov    -0x88(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x89(%rbp)
movsbl -0x89(%rbp),%eax
mov    %eax,-0x90(%rbp)
cmpl   $0x30,-0x90(%rbp)
jl     1387 <resolve_backslashes+0x287>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x94(%rbp)
mov    -0x8(%rbp),%rax
movslq -0x94(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
mov    (%rax),%al
mov    %al,-0xa1(%rbp)
movsbl -0xa1(%rbp),%eax
mov    %eax,-0xa8(%rbp)
cmpl   $0x37,-0xa8(%rbp)
jg     137d <resolve_backslashes+0x27d>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0xb0(%rbp)
mov    -0xb0(%rbp),%rax
mov    (%rax),%al
mov    %al,-0xb1(%rbp)
movsbl -0xb1(%rbp),%eax
mov    %eax,-0xb8(%rbp)
mov    -0x14(%rbp),%eax
shl    $0x3,%eax
mov    %eax,-0xbc(%rbp)
mov    -0xbc(%rbp),%eax
add    -0xb8(%rbp),%eax
mov    %eax,-0xc0(%rbp)
mov    -0xc0(%rbp),%eax
sub    $0x30,%eax
mov    %eax,-0x14(%rbp)
jmp    1382 <resolve_backslashes+0x282>
jmp    1382 <resolve_backslashes+0x282>
jmp    138c <resolve_backslashes+0x28c>
jmp    138c <resolve_backslashes+0x28c>
jmp    1396 <resolve_backslashes+0x296>
jmp    1396 <resolve_backslashes+0x296>
jmp    13a0 <resolve_backslashes+0x2a0>
jmp    13a0 <resolve_backslashes+0x2a0>
jmp    13aa <resolve_backslashes+0x2aa>
jmp    13aa <resolve_backslashes+0x2aa>
jmp    13b4 <resolve_backslashes+0x2b4>
jmp    13b4 <resolve_backslashes+0x2b4>
jmp    13b9 <resolve_backslashes+0x2b9>
jmp    13be <resolve_backslashes+0x2be>
jmp    13c3 <resolve_backslashes+0x2c3>
jmp    13cd <resolve_backslashes+0x2cd>
jmp    13cd <resolve_backslashes+0x2cd>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0xc8(%rbp)
mov    -0x14(%rbp),%eax
mov    %al,%cl
mov    -0xc8(%rbp),%rax
mov    %cl,(%rax)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1119 <resolve_backslashes+0x19>
mov    -0x8(%rbp),%rax
movslq -0x10(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0xd0(%rbp)
mov    -0xd0(%rbp),%rax
movb   $0x0,(%rax)
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<resolve_backslashes>:
mov    (%rdi),%dl
xor    %ecx,%ecx
test   %dl,%dl
je     11b6 <resolve_backslashes+0xb6>
xor    %eax,%eax
jmp    112f <resolve_backslashes+0x2f>
movzbl %dl,%esi
mov    %sil,(%rdi,%rax,1)
movslq %ecx,%rcx
add    $0x1,%rax
movzbl 0x1(%rdi,%rcx,1),%edx
add    $0x1,%rcx
test   %dl,%dl
je     11b4 <resolve_backslashes+0xb4>
cmp    $0x5c,%dl
jne    1110 <resolve_backslashes+0x10>
movslq %ecx,%r9
lea    0x1(%r9),%rcx
movsbl 0x1(%rdi,%r9,1),%esi
cmp    $0x6e,%esi
je     1159 <resolve_backslashes+0x59>
cmp    $0x72,%sil
je     1160 <resolve_backslashes+0x60>
cmp    $0x74,%sil
jne    1167 <resolve_backslashes+0x67>
mov    $0x9,%esi
jmp    1113 <resolve_backslashes+0x13>
mov    $0xa,%esi
jmp    1113 <resolve_backslashes+0x13>
mov    $0xd,%esi
jmp    1113 <resolve_backslashes+0x13>
mov    %esi,%edx
and    $0xf8,%dl
cmp    $0x30,%dl
jne    1113 <resolve_backslashes+0x13>
add    $0xffffffd0,%esi
movzbl 0x2(%rdi,%r9,1),%r8d
mov    %r8d,%edx
and    $0xf8,%dl
cmp    $0x30,%dl
jne    1113 <resolve_backslashes+0x13>
lea    (%r8,%rsi,8),%esi
add    $0xffffffd0,%esi
movzbl 0x3(%rdi,%r9,1),%ecx
mov    %ecx,%edx
and    $0xf8,%dl
cmp    $0x30,%dl
jne    11a8 <resolve_backslashes+0xa8>
add    $0x3,%r9
lea    (%rcx,%rsi,8),%esi
add    $0xffffffd0,%esi
jmp    11ac <resolve_backslashes+0xac>
add    $0x2,%r9
mov    %r9d,%ecx
jmp    1113 <resolve_backslashes+0x13>
mov    %eax,%ecx
movb   $0x0,(%rdi,%rcx,1)
ret

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

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