char Tcl_Backslash(src, readPtr)
char *src;
int *readPtr;
{
  register char *p = src + 1;
  char result;
  int count;
  count = 2;
  switch (*p) {
  case 'b':
    result = '\b';
    break;
  case 'e':
    result = 033;
    break;
  case 'f':
    result = '\f';
    break;
  case 'n':
    result = '\n';
    break;
  case 'r':
    result = '\r';
    break;
  case 't':
    result = '\t';
    break;
  case 'v':
    result = '\v';
    break;
  case 'C':
    p++;
    if (isspace(*p) || (*p == 0)) {
      result = 'C';
      count = 1;
      break;
    }
    count = 3;
    if (*p == 'M') {
      p++;
      if (isspace(*p) || (*p == 0)) {
        result = 'M' & 037;
        break;
      }
      count = 4;
      result = (*p & 037) | 0200;
      break;
    }
    count = 3;
    result = *p & 037;
    break;
  case 'M':
    p++;
    if (isspace(*p) || (*p == 0)) {
      result = 'M';
      count = 1;
      break;
    }
    count = 3;
    result = *p + 0200;
    break;
  case '}':
  case '{':
  case ']':
  case '[':
  case '$':
  case ' ':
  case ';':
  case '"':
  case '\\':
    result = *p;
    break;
  case '\n':
    result = 0;
    break;
  default:
    if (isdigit(*p)) {
      result = *p - '0';
      p++;
      if (!isdigit(*p)) {
        break;
      }
      count = 3;
      result = (result << 3) + (*p - '0');
      p++;
      if (!isdigit(*p)) {
        break;
      }
      count = 4;
      result = (result << 3) + (*p - '0');
      break;
    }
    result = '\\';
    count = 1;
    break;
  }
  if (readPtr != 0) {
    *readPtr = count;
  }
  return result;
}


x86 assembly (clang, -O0):
<Tcl_Backslash>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
movl   $0x2,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
add    $0xfffffff6,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x73,%eax
ja     12eb <Tcl_Backslash+0x1cb>
mov    -0x28(%rbp),%rax
lea    0xe99(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movb   $0x8,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0x1b,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0xc,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0xa,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0xd,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0x9,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0xb,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1040 <isspace@plt>
cmp    $0x0,%eax
jne    11e0 <Tcl_Backslash+0xc0>
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
jne    11f0 <Tcl_Backslash+0xd0>
movb   $0x43,-0x19(%rbp)
movl   $0x1,-0x20(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x3,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x4d,%eax
jne    125f <Tcl_Backslash+0x13f>
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1040 <isspace@plt>
cmp    $0x0,%eax
jne    1238 <Tcl_Backslash+0x118>
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
jne    1241 <Tcl_Backslash+0x121>
movb   $0xd,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x4,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
and    $0x1f,%eax
or     $0x80,%eax
mov    %al,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x3,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
and    $0x1f,%eax
mov    %al,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1040 <isspace@plt>
cmp    $0x0,%eax
jne    12a9 <Tcl_Backslash+0x189>
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x0,%eax
jne    12b9 <Tcl_Backslash+0x199>
movb   $0x4d,-0x19(%rbp)
movl   $0x1,-0x20(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x3,-0x20(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
add    $0x80,%eax
mov    %al,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
mov    -0x18(%rbp),%rax
mov    (%rax),%al
mov    %al,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0x0,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
je     1398 <Tcl_Backslash+0x278>
mov    -0x18(%rbp),%rax
movsbl (%rax),%eax
sub    $0x30,%eax
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
jne    1333 <Tcl_Backslash+0x213>
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x3,-0x20(%rbp)
movsbl -0x19(%rbp),%eax
shl    $0x3,%eax
mov    -0x18(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %al,-0x19(%rbp)
mov    -0x18(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsbl (%rax),%edi
call   1030 <isdigit@plt>
cmp    $0x0,%eax
jne    1376 <Tcl_Backslash+0x256>
jmp    13a3 <Tcl_Backslash+0x283>
movl   $0x4,-0x20(%rbp)
movsbl -0x19(%rbp),%eax
shl    $0x3,%eax
mov    -0x18(%rbp),%rcx
movsbl (%rcx),%ecx
sub    $0x30,%ecx
add    %ecx,%eax
mov    %al,-0x19(%rbp)
jmp    13a3 <Tcl_Backslash+0x283>
movb   $0x5c,-0x19(%rbp)
movl   $0x1,-0x20(%rbp)
cmpq   $0x0,-0x10(%rbp)
je     13b7 <Tcl_Backslash+0x297>
mov    -0x20(%rbp),%ecx
mov    -0x10(%rbp),%rax
mov    %ecx,(%rax)
movsbl -0x19(%rbp),%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Tcl_Backslash>:
push   %rbp
push   %r14
push   %rbx
mov    %rsi,%r14
mov    %rdi,%rbx
mov    0x1(%rdi),%cl
movsbl %cl,%esi
mov    $0x2,%edx
lea    -0xa(%rsi),%edi
cmp    $0x73,%edi
ja     1153 <Tcl_Backslash+0x43>
mov    $0x8,%al
lea    0xeca(%rip),%rbp
movslq 0x0(%rbp,%rdi,4),%rdi
add    %rbp,%rdi
jmp    *%rdi
mov    %ecx,%eax
test   %r14,%r14
je     114a <Tcl_Backslash+0x3a>
mov    %edx,(%r14)
pop    %rbx
pop    %r14
pop    %rbp
ret
xor    %eax,%eax
jmp    1142 <Tcl_Backslash+0x32>
add    $0xffffffd0,%esi
cmp    $0x9,%esi
ja     1259 <Tcl_Backslash+0x149>
add    $0xd0,%cl
movsbl 0x2(%rbx),%eax
lea    -0x30(%rax),%esi
cmp    $0x9,%esi
ja     1140 <Tcl_Backslash+0x30>
shl    $0x3,%cl
add    %al,%cl
mov    %ecx,%eax
add    $0xd0,%al
movsbl 0x3(%rbx),%ecx
lea    -0x30(%rcx),%esi
mov    $0x3,%edx
cmp    $0x9,%esi
ja     1142 <Tcl_Backslash+0x32>
shl    $0x3,%al
add    %cl,%al
add    $0xd0,%al
mov    $0x4,%edx
jmp    1142 <Tcl_Backslash+0x32>
mov    0x2(%rbx),%bpl
movsbl %bpl,%edi
call   1030 <isspace@plt>
mov    %eax,%ecx
mov    $0x1,%edx
mov    $0x43,%al
test   %ecx,%ecx
jne    1142 <Tcl_Backslash+0x32>
test   %bpl,%bpl
je     1142 <Tcl_Backslash+0x32>
cmp    $0x4d,%bpl
jne    1265 <Tcl_Backslash+0x155>
mov    0x3(%rbx),%bl
movsbl %bl,%edi
call   1030 <isspace@plt>
mov    %eax,%ecx
mov    $0x3,%edx
mov    $0xd,%al
test   %ecx,%ecx
jne    1142 <Tcl_Backslash+0x32>
test   %bl,%bl
je     1142 <Tcl_Backslash+0x32>
and    $0x1f,%bl
or     $0x80,%bl
mov    $0x4,%edx
mov    %ebx,%eax
jmp    1142 <Tcl_Backslash+0x32>
mov    $0x1b,%al
jmp    1142 <Tcl_Backslash+0x32>
mov    $0xc,%al
jmp    1142 <Tcl_Backslash+0x32>
mov    $0xa,%al
jmp    1142 <Tcl_Backslash+0x32>
mov    $0xd,%al
jmp    1142 <Tcl_Backslash+0x32>
mov    $0x9,%al
jmp    1142 <Tcl_Backslash+0x32>
movsbl 0x2(%rbx),%ebx
test   %ebx,%ebx
sete   %bpl
mov    %ebx,%edi
call   1030 <isspace@plt>
test   %eax,%eax
setne  %cl
or     %bpl,%cl
xor    $0x80,%bl
movzbl %bl,%edx
test   %cl,%cl
mov    $0x4d,%eax
cmove  %edx,%eax
xor    $0x1,%cl
movzbl %cl,%ecx
lea    (%rcx,%rcx,1),%edx
add    $0x1,%edx
jmp    1142 <Tcl_Backslash+0x32>
mov    $0xb,%al
jmp    1142 <Tcl_Backslash+0x32>
mov    $0x1,%edx
mov    $0x5c,%al
jmp    1142 <Tcl_Backslash+0x32>
and    $0x1f,%bpl
mov    $0x3,%edx
mov    %ebp,%eax
jmp    1142 <Tcl_Backslash+0x32>

LLVM IR (-O0):
define signext i8 @Tcl_Backslash(i8* %0, i32* %1) {
%3 = alloca i8*
%4 = alloca i32*
%5 = alloca i8*
%6 = alloca i8
%7 = alloca i32
store i8* %0, i8** %3
store i32* %1, i32** %4
%8 = load i8*, i8** %3
%9 = getelementptr inbounds i8, i8* %8, i64 1
store i8* %9, i8** %5
store i32 2, i32* %7
%10 = load i8*, i8** %5
%11 = load i8, i8* %10
%12 = sext i8 %11 to i32
switch i32 %12, label %90 [
i32 98, label %13
i32 101, label %14
i32 102, label %15
i32 110, label %16
i32 114, label %17
i32 116, label %18
i32 118, label %19
i32 67, label %20
i32 77, label %66
i32 125, label %86
i32 123, label %86
i32 93, label %86
i32 91, label %86
i32 36, label %86
i32 32, label %86
i32 59, label %86
i32 34, label %86
i32 92, label %86
i32 10, label %89
]
13: ; preds = %2
store i8 8, i8* %6
br label %139
14: ; preds = %2
store i8 27, i8* %6
br label %139
15: ; preds = %2
store i8 12, i8* %6
br label %139
16: ; preds = %2
store i8 10, i8* %6
br label %139
17: ; preds = %2
store i8 13, i8* %6
br label %139
18: ; preds = %2
store i8 9, i8* %6
br label %139
19: ; preds = %2
store i8 11, i8* %6
br label %139
20: ; preds = %2
%21 = load i8*, i8** %5
%22 = getelementptr inbounds i8, i8* %21, i32 1
store i8* %22, i8** %5
%23 = load i8*, i8** %5
%24 = load i8, i8* %23
%25 = sext i8 %24 to i32
%26 = call i32 @isspace(i32 %25)
%27 = icmp ne i32 %26, 0
br i1 %27, label %33, label %28
28: ; preds = %20
%29 = load i8*, i8** %5
%30 = load i8, i8* %29
%31 = sext i8 %30 to i32
%32 = icmp eq i32 %31, 0
br i1 %32, label %33, label %34
33: ; preds = %28, %20
store i8 67, i8* %6
store i32 1, i32* %7
br label %139
34: ; preds = %28
store i32 3, i32* %7
%35 = load i8*, i8** %5
%36 = load i8, i8* %35
%37 = sext i8 %36 to i32
%38 = icmp eq i32 %37, 77
br i1 %38, label %39, label %60
39: ; preds = %34
%40 = load i8*, i8** %5
%41 = getelementptr inbounds i8, i8* %40, i32 1
store i8* %41, i8** %5
%42 = load i8*, i8** %5
%43 = load i8, i8* %42
%44 = sext i8 %43 to i32
%45 = call i32 @isspace(i32 %44)
%46 = icmp ne i32 %45, 0
br i1 %46, label %52, label %47
47: ; preds = %39
%48 = load i8*, i8** %5
%49 = load i8, i8* %48
%50 = sext i8 %49 to i32
%51 = icmp eq i32 %50, 0
br i1 %51, label %52, label %53
52: ; preds = %47, %39
store i8 13, i8* %6
br label %139
53: ; preds = %47
store i32 4, i32* %7
%54 = load i8*, i8** %5
%55 = load i8, i8* %54
%56 = sext i8 %55 to i32
%57 = and i32 %56, 31
%58 = or i32 %57, 128
%59 = trunc i32 %58 to i8
store i8 %59, i8* %6
br label %139
60: ; preds = %34
store i32 3, i32* %7
%61 = load i8*, i8** %5
%62 = load i8, i8* %61
%63 = sext i8 %62 to i32
%64 = and i32 %63, 31
%65 = trunc i32 %64 to i8
store i8 %65, i8* %6
br label %139
66: ; preds = %2
%67 = load i8*, i8** %5
%68 = getelementptr inbounds i8, i8* %67, i32 1
store i8* %68, i8** %5
%69 = load i8*, i8** %5
%70 = load i8, i8* %69
%71 = sext i8 %70 to i32
%72 = call i32 @isspace(i32 %71)
%73 = icmp ne i32 %72, 0
br i1 %73, label %79, label %74
74: ; preds = %66
%75 = load i8*, i8** %5
%76 = load i8, i8* %75
%77 = sext i8 %76 to i32
%78 = icmp eq i32 %77, 0
br i1 %78, label %79, label %80
79: ; preds = %74, %66
store i8 77, i8* %6
store i32 1, i32* %7
br label %139
80: ; preds = %74
store i32 3, i32* %7
%81 = load i8*, i8** %5
%82 = load i8, i8* %81
%83 = sext i8 %82 to i32
%84 = add nsw i32 %83, 128
%85 = trunc i32 %84 to i8
store i8 %85, i8* %6
br label %139
86: ; preds = %2, %2, %2, %2, %2, %2, %2, %2, %2
%87 = load i8*, i8** %5
%88 = load i8, i8* %87
store i8 %88, i8* %6
br label %139
89: ; preds = %2
store i8 0, i8* %6
br label %139
90: ; preds = %2
%91 = load i8*, i8** %5
%92 = load i8, i8* %91
%93 = sext i8 %92 to i32
%94 = call i32 @isdigit(i32 %93)
%95 = icmp ne i32 %94, 0
br i1 %95, label %96, label %138
96: ; preds = %90
%97 = load i8*, i8** %5
%98 = load i8, i8* %97
%99 = sext i8 %98 to i32
%100 = sub nsw i32 %99, 48
%101 = trunc i32 %100 to i8
store i8 %101, i8* %6
%102 = load i8*, i8** %5
%103 = getelementptr inbounds i8, i8* %102, i32 1
store i8* %103, i8** %5
%104 = load i8*, i8** %5
%105 = load i8, i8* %104
%106 = sext i8 %105 to i32
%107 = call i32 @isdigit(i32 %106)
%108 = icmp ne i32 %107, 0
br i1 %108, label %110, label %109
109: ; preds = %96
br label %139
110: ; preds = %96
store i32 3, i32* %7
%111 = load i8, i8* %6
%112 = sext i8 %111 to i32
%113 = shl i32 %112, 3
%114 = load i8*, i8** %5
%115 = load i8, i8* %114
%116 = sext i8 %115 to i32
%117 = sub nsw i32 %116, 48
%118 = add nsw i32 %113, %117
%119 = trunc i32 %118 to i8
store i8 %119, i8* %6
%120 = load i8*, i8** %5
%121 = getelementptr inbounds i8, i8* %120, i32 1
store i8* %121, i8** %5
%122 = load i8*, i8** %5
%123 = load i8, i8* %122
%124 = sext i8 %123 to i32
%125 = call i32 @isdigit(i32 %124)
%126 = icmp ne i32 %125, 0
br i1 %126, label %128, label %127
127: ; preds = %110
br label %139
128: ; preds = %110
store i32 4, i32* %7
%129 = load i8, i8* %6
%130 = sext i8 %129 to i32
%131 = shl i32 %130, 3
%132 = load i8*, i8** %5
%133 = load i8, i8* %132
%134 = sext i8 %133 to i32
%135 = sub nsw i32 %134, 48
%136 = add nsw i32 %131, %135
%137 = trunc i32 %136 to i8
store i8 %137, i8* %6
br label %139
138: ; preds = %90
store i8 92, i8* %6
store i32 1, i32* %7
br label %139
139: ; preds = %138, %128, %127, %109, %89, %86, %80, %79, %60, %53, %52, %33, %19, %18, %17, %16, %15, %14, %13
%140 = load i32*, i32** %4
%141 = icmp ne i32* %140, null
br i1 %141, label %142, label %145
142: ; preds = %139
%143 = load i32, i32* %7
%144 = load i32*, i32** %4
store i32 %143, i32* %144
br label %145
145: ; preds = %142, %139
%146 = load i8, i8* %6
ret i8 %146
}

LLVM IR (-O2):
define signext i8 @Tcl_Backslash(i8* nocapture %0, i32* writeonly %1) {
%3 = getelementptr inbounds i8, i8* %0, i64 1
%4 = load i8, i8* %3
%5 = sext i8 %4 to i32
switch i32 %5, label %48 [
i32 98, label %71
i32 101, label %6
i32 102, label %7
i32 110, label %8
i32 114, label %9
i32 116, label %10
i32 118, label %11
i32 67, label %12
i32 77, label %35
i32 125, label %46
i32 123, label %46
i32 93, label %46
i32 91, label %46
i32 36, label %46
i32 32, label %46
i32 59, label %46
i32 34, label %46
i32 92, label %46
i32 10, label %47
]
6: ; preds = %2
br label %71
7: ; preds = %2
br label %71
8: ; preds = %2
br label %71
9: ; preds = %2
br label %71
10: ; preds = %2
br label %71
11: ; preds = %2
br label %71
12: ; preds = %2
%13 = getelementptr inbounds i8, i8* %0, i64 2
%14 = load i8, i8* %13
%15 = sext i8 %14 to i32
%16 = tail call i32 @isspace(i32 %15)
%17 = icmp ne i32 %16, 0
%18 = icmp eq i8 %14, 0
%19 = select i1 %17, i1 true, i1 %18
br i1 %19, label %71, label %20
20: ; preds = %12
%21 = icmp eq i8 %14, 77
br i1 %21, label %22, label %33
22: ; preds = %20
%23 = getelementptr inbounds i8, i8* %0, i64 3
%24 = load i8, i8* %23
%25 = sext i8 %24 to i32
%26 = tail call i32 @isspace(i32 %25)
%27 = icmp ne i32 %26, 0
%28 = icmp eq i8 %24, 0
%29 = select i1 %27, i1 true, i1 %28
br i1 %29, label %71, label %30
30: ; preds = %22
%31 = and i8 %24, 31
%32 = or i8 %31, -128
br label %71
33: ; preds = %20
%34 = and i8 %14, 31
br label %71
35: ; preds = %2
%36 = getelementptr inbounds i8, i8* %0, i64 2
%37 = load i8, i8* %36
%38 = sext i8 %37 to i32
%39 = tail call i32 @isspace(i32 %38)
%40 = icmp ne i32 %39, 0
%41 = icmp eq i8 %37, 0
%42 = select i1 %40, i1 true, i1 %41
%43 = xor i8 %37, -128
%44 = select i1 %42, i8 77, i8 %43
%45 = select i1 %42, i32 1, i32 3
br label %71
46: ; preds = %2, %2, %2, %2, %2, %2, %2, %2, %2
br label %71
47: ; preds = %2
br label %71
48: ; preds = %2
%49 = add nsw i32 %5, -48
%50 = icmp ult i32 %49, 10
br i1 %50, label %51, label %71
51: ; preds = %48
%52 = add i8 %4, -48
%53 = getelementptr inbounds i8, i8* %0, i64 2
%54 = load i8, i8* %53
%55 = sext i8 %54 to i32
%56 = add nsw i32 %55, -48
%57 = icmp ult i32 %56, 10
br i1 %57, label %58, label %71
58: ; preds = %51
%59 = shl i8 %52, 3
%60 = add i8 %59, -48
%61 = add i8 %60, %54
%62 = getelementptr inbounds i8, i8* %0, i64 3
%63 = load i8, i8* %62
%64 = sext i8 %63 to i32
%65 = add nsw i32 %64, -48
%66 = icmp ult i32 %65, 10
br i1 %66, label %67, label %71
67: ; preds = %58
%68 = shl i8 %61, 3
%69 = add i8 %68, -48
%70 = add i8 %69, %63
br label %71
71: ; preds = %35, %48, %22, %12, %2, %58, %51, %67, %47, %46, %33, %30, %11, %10, %9, %8, %7, %6
%72 = phi i8 [ %70, %67 ], [ %61, %58 ], [ %52, %51 ], [ 0, %47 ], [ %4, %46 ], [ %32, %30 ], [ %34, %33 ], [ 11, %11 ], [ 9, %10 ], [ 13, %9 ], [ 10, %8 ], [ 12, %7 ], [ 27, %6 ], [ 8, %2 ], [ 67, %12 ], [ 13, %22 ], [ 92, %48 ], [ %44, %35 ]
%73 = phi i32 [ 4, %67 ], [ 3, %58 ], [ 2, %51 ], [ 2, %47 ], [ 2, %46 ], [ 4, %30 ], [ 3, %33 ], [ 2, %11 ], [ 2, %10 ], [ 2, %9 ], [ 2, %8 ], [ 2, %7 ], [ 2, %6 ], [ 2, %2 ], [ 1, %12 ], [ 3, %22 ], [ 1, %48 ], [ %45, %35 ]
%74 = icmp eq i32* %1, null
br i1 %74, label %76, label %75
75: ; preds = %71
store i32 %73, i32* %1
br label %76
76: ; preds = %75, %71
ret i8 %72
}