void Decomp6toArray(lb, lout, iout, cbuf) long lb;
long *lout;
long *iout;
char *cbuf;
{
  static long ichar[129] = {
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
      0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  2,  3,  4,
      5,  6,  7,  8,  9,  10, 11, 0,  0,  0,  0,  0,  0,  0,  12, 13, 14,
      15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
      32, 33, 34, 35, 36, 37, 0,  0,  0,  0,  0,  0,  38, 39, 40, 41, 42,
      43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
      60, 61, 62, 63, 0,  0,  0,  0,  0,  0};
  static char test[5] = {'1', '2', '3', '4', '\0'};
  char achar[5];
  char aspace = 32;
  char lfeed = 10;
  char cretn = 13;
  long *itest;
  long *inn;
  long imax;
  long isign;
  long jsign;
  long ioflow;
  long joflow;
  long mask1;
  long mask2;
  long ibyte;
  long icount;
  long i;
  long j;
  long k;
  long icheck;
  long itemp;
  imax = (*lout);
  isign = 16;
  ioflow = 32;
  mask1 = 15;
  mask2 = 31;
  ibyte = 3;
  itest = (long *)test;
  inn = (long *)achar;
  icheck = (long)256 * (long)256 * (long)256 * (long)52;
  icheck += (long)256 * (long)256 * (long)51;
  icheck += (long)256 * (long)50;
  icheck += (long)49;
  if ((*itest) == icheck) {
    ibyte = 0;
  }
  icount = 0;
  i = 0;
  j = 0;
  achar[4] = '\0';
label1:
  i++;
  achar[(unsigned int)ibyte] = cbuf[(unsigned int)i - 1];
  if (achar[(unsigned int)ibyte] == cretn)
    goto label1;
  if (achar[(unsigned int)ibyte] == lfeed)
    goto label1;
  if (achar[(unsigned int)ibyte] == aspace)
    goto label5;
  icount++;
  k = (*inn) & (long)127;
  (*inn) = ichar[(unsigned int)k];
  jsign = (*inn) & isign;
  joflow = (*inn) & ioflow;
  itemp = (*inn) & mask1;
label2:
  if (joflow == 0)
    goto label4;
  itemp *= 32;
label3:
  i++;
  achar[(unsigned int)ibyte] = cbuf[(unsigned int)i - 1];
  if (achar[(unsigned int)ibyte] == cretn)
    goto label3;
  if (achar[(unsigned int)ibyte] == lfeed)
    goto label3;
  icount++;
  k = (*inn) & (long)127;
  (*inn) = ichar[(unsigned int)k];
  joflow = (*inn) & ioflow;
  k = (*inn) & mask2;
  itemp += k;
  goto label2;
label4:
  if (jsign != 0)
    itemp *= -1;
  j++;
  if (j > imax)
    goto label5;
  iout[(unsigned int)j - 1] = itemp;
  if (icount < lb)
    goto label1;
label5:
  if (j > imax) {
    (*lout) = imax;
  }
}


x86 assembly (clang, -O0):
<Decomp6toArray>:
push   %rbp
mov    %rsp,%rbp
sub    $0x28,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
movb   $0x20,-0x26(%rbp)
movb   $0xa,-0x27(%rbp)
movb   $0xd,-0x28(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%rax
mov    %rax,-0x40(%rbp)
movq   $0x10,-0x48(%rbp)
movq   $0x20,-0x58(%rbp)
movq   $0xf,-0x68(%rbp)
movq   $0x1f,-0x70(%rbp)
movq   $0x3,-0x78(%rbp)
lea    0x32da(%rip),%rax
mov    %rax,-0x30(%rbp)
lea    -0x25(%rbp),%rax
mov    %rax,-0x38(%rbp)
movq   $0x34000000,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
add    $0x330000,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
add    $0x3200,%rax
mov    %rax,-0xa0(%rbp)
mov    -0xa0(%rbp),%rax
add    $0x31,%rax
mov    %rax,-0xa0(%rbp)
mov    -0x30(%rbp),%rax
mov    (%rax),%rax
cmp    -0xa0(%rbp),%rax
jne    11cb <Decomp6toArray+0xcb>
movq   $0x0,-0x78(%rbp)
movq   $0x0,-0x80(%rbp)
movq   $0x0,-0x88(%rbp)
movq   $0x0,-0x90(%rbp)
movb   $0x0,-0x21(%rbp)
mov    -0x88(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x88(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x88(%rbp),%rcx
sub    $0x1,%ecx
mov    %ecx,%ecx
mov    (%rax,%rcx,1),%cl
mov    -0x78(%rbp),%rax
mov    %eax,%eax
mov    %cl,-0x25(%rbp,%rax,1)
mov    -0x78(%rbp),%rax
mov    %eax,%eax
movsbl -0x25(%rbp,%rax,1),%eax
movsbl -0x28(%rbp),%ecx
cmp    %ecx,%eax
jne    1238 <Decomp6toArray+0x138>
jmp    11ed <Decomp6toArray+0xed>
mov    -0x78(%rbp),%rax
mov    %eax,%eax
movsbl -0x25(%rbp,%rax,1),%eax
movsbl -0x27(%rbp),%ecx
cmp    %ecx,%eax
jne    1254 <Decomp6toArray+0x154>
jmp    11ed <Decomp6toArray+0xed>
mov    -0x78(%rbp),%rax
mov    %eax,%eax
movsbl -0x25(%rbp,%rax,1),%eax
movsbl -0x26(%rbp),%ecx
cmp    %ecx,%eax
jne    1270 <Decomp6toArray+0x170>
jmp    144f <Decomp6toArray+0x34f>
mov    -0x80(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x80(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    $0x7f,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
mov    %eax,%eax
mov    %eax,%ecx
lea    0x2d90(%rip),%rax
mov    (%rax,%rcx,8),%rcx
mov    -0x38(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    -0x48(%rbp),%rax
mov    %rax,-0x50(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    -0x58(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    -0x68(%rbp),%rax
mov    %rax,-0xa8(%rbp)
cmpq   $0x0,-0x60(%rbp)
jne    12eb <Decomp6toArray+0x1eb>
jmp    13da <Decomp6toArray+0x2da>
mov    -0xa8(%rbp),%rax
shl    $0x5,%rax
mov    %rax,-0xa8(%rbp)
mov    -0x88(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x88(%rbp)
mov    -0x20(%rbp),%rax
mov    -0x88(%rbp),%rcx
sub    $0x1,%ecx
mov    %ecx,%ecx
mov    (%rax,%rcx,1),%cl
mov    -0x78(%rbp),%rax
mov    %eax,%eax
mov    %cl,-0x25(%rbp,%rax,1)
mov    -0x78(%rbp),%rax
mov    %eax,%eax
movsbl -0x25(%rbp,%rax,1),%eax
movsbl -0x28(%rbp),%ecx
cmp    %ecx,%eax
jne    1348 <Decomp6toArray+0x248>
jmp    12fd <Decomp6toArray+0x1fd>
mov    -0x78(%rbp),%rax
mov    %eax,%eax
movsbl -0x25(%rbp,%rax,1),%eax
movsbl -0x27(%rbp),%ecx
cmp    %ecx,%eax
jne    1364 <Decomp6toArray+0x264>
jmp    12fd <Decomp6toArray+0x1fd>
mov    -0x80(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x80(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    $0x7f,%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
mov    %eax,%eax
mov    %eax,%ecx
lea    0x2c9c(%rip),%rax
mov    (%rax,%rcx,8),%rcx
mov    -0x38(%rbp),%rax
mov    %rcx,(%rax)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    -0x58(%rbp),%rax
mov    %rax,-0x60(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%rax
and    -0x70(%rbp),%rax
mov    %rax,-0x98(%rbp)
mov    -0x98(%rbp),%rax
add    -0xa8(%rbp),%rax
mov    %rax,-0xa8(%rbp)
jmp    12db <Decomp6toArray+0x1db>
cmpq   $0x0,-0x50(%rbp)
je     13f4 <Decomp6toArray+0x2f4>
imul   $0xffffffffffffffff,-0xa8(%rbp),%rax
ff
mov    %rax,-0xa8(%rbp)
mov    -0x90(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x90(%rbp)
mov    -0x90(%rbp),%rax
cmp    -0x40(%rbp),%rax
jle    141c <Decomp6toArray+0x31c>
jmp    144f <Decomp6toArray+0x34f>
mov    -0xa8(%rbp),%rdx
mov    -0x18(%rbp),%rax
mov    -0x90(%rbp),%rcx
sub    $0x1,%ecx
mov    %ecx,%ecx
mov    %rdx,(%rax,%rcx,8)
mov    -0x80(%rbp),%rax
cmp    -0x8(%rbp),%rax
jge    144a <Decomp6toArray+0x34a>
jmp    11ed <Decomp6toArray+0xed>
jmp    144f <Decomp6toArray+0x34f>
mov    -0x90(%rbp),%rax
cmp    -0x40(%rbp),%rax
jle    146b <Decomp6toArray+0x36b>
mov    -0x40(%rbp),%rcx
mov    -0x10(%rbp),%rax
mov    %rcx,(%rax)
add    $0x28,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<Decomp6toArray>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    (%rsi),%r8
xor    %r15d,%r15d
test   %r8,%r8
mov    $0x0,%r9d
cmovg  %r8,%r9
lea    0xedc(%rip),%r10
xor    %r12d,%r12d
xor    %r11d,%r11d
jmp    1134 <Decomp6toArray+0x34>
nopl   0x0(%rax)
add    $0x1,%r12
mov    %r12d,%eax
movzbl (%rcx,%rax,1),%eax
cmp    $0xa,%rax
je     1130 <Decomp6toArray+0x30>
cmp    $0xd,%al
je     1130 <Decomp6toArray+0x30>
cmp    $0x20,%al
je     11eb <Decomp6toArray+0xeb>
and    $0x7f,%eax
mov    (%r10,%rax,8),%r14
mov    %r14d,%r13d
and    $0xf,%r13d
add    $0x1,%r15
add    $0x1,%r12
test   $0x20,%r14b
je     11bf <Decomp6toArray+0xbf>
nopl   0x0(%rax)
mov    %r12,%rbx
jmp    1184 <Decomp6toArray+0x84>
cs nopw 0x0(%rax,%rax,1)
nop
add    $0x1,%rbx
mov    %ebx,%eax
movzbl (%rcx,%rax,1),%eax
cmp    $0xd,%rax
je     1180 <Decomp6toArray+0x80>
cmp    $0xa,%al
je     1180 <Decomp6toArray+0x80>
mov    %r13,%r12
shl    $0x5,%r12
and    $0x7f,%eax
mov    (%r10,%rax,8),%rax
mov    %eax,%r13d
and    $0x1f,%r13d
or     %r12,%r13
add    $0x1,%r15
lea    0x1(%rbx),%r12
test   $0x20,%al
jne    1170 <Decomp6toArray+0x70>
add    $0x1,%rbx
mov    %rbx,%r12
lea    0x1(%r11),%rbp
cmp    %r9,%r11
je     11ee <Decomp6toArray+0xee>
mov    %r13,%rax
neg    %rax
test   $0x10,%r14b
cmove  %r13,%rax
mov    %r11d,%ebx
mov    %rax,(%rdx,%rbx,8)
mov    %rbp,%r11
cmp    %rdi,%r15
jl     1134 <Decomp6toArray+0x34>
jmp    11ee <Decomp6toArray+0xee>
mov    %r11,%rbp
cmp    %r8,%rbp
jle    11f6 <Decomp6toArray+0xf6>
mov    %r8,(%rsi)
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

LLVM IR (-O2):
@Decomp6toArray.ichar = internal unnamed_addr constant [129 x i64] [i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 1, i64 0, i64 0, i64 2, i64 3, i64 4, i64 5, i64 6, i64 7, i64 8, i64 9, i64 10, i64 11, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 12, i64 13, i64 14, i64 15, i64 16, i64 17, i64 18, i64 19, i64 20, i64 21, i64 22, i64 23, i64 24, i64 25, i64 26, i64 27, i64 28, i64 29, i64 30, i64 31, i64 32, i64 33, i64 34, i64 35, i64 36, i64 37, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0, i64 38, i64 39, i64 40, i64 41, i64 42, i64 43, i64 44, i64 45, i64 46, i64 47, i64 48, i64 49, i64 50, i64 51, i64 52, i64 53, i64 54, i64 55, i64 56, i64 57, i64 58, i64 59, i64 60, i64 61, i64 62, i64 63, i64 0, i64 0, i64 0, i64 0, i64 0, i64 0]
define void @Decomp6toArray(i64 %0, i64* nocapture %1, i64* nocapture writeonly %2, i8* nocapture %3) {
%5 = load i64, i64* %1
%6 = call i64 @llvm.smax.i64(i64 %5, i64 0)
br label %7
7: ; preds = %56, %4
%8 = phi i64 [ %53, %56 ], [ 0, %4 ]
%9 = phi i64 [ %51, %56 ], [ 0, %4 ]
%10 = phi i64 [ %54, %56 ], [ 0, %4 ]
br label %11
11: ; preds = %17, %7
%12 = phi i64 [ %9, %7 ], [ %13, %17 ]
%13 = add nsw i64 %12, 1
%14 = and i64 %12, 4294967295
%15 = getelementptr inbounds i8, i8* %3, i64 %14
%16 = load i8, i8* %15
switch i8 %16, label %18 [
i8 13, label %17
i8 10, label %17
i8 32, label %63
]
17: ; preds = %11, %11
br label %11
18: ; preds = %11
%19 = and i8 %16, 127
%20 = zext i8 %19 to i64
%21 = getelementptr inbounds [129 x i64], [129 x i64]* @Decomp6toArray.ichar, i64 0, i64 %20
%22 = load i64, i64* %21
%23 = and i64 %22, 16
%24 = and i64 %22, 15
%25 = and i64 %22, 32
%26 = add nsw i64 %8, 1
%27 = icmp eq i64 %25, 0
br i1 %27, label %50, label %28
28: ; preds = %18, %39
%29 = phi i64 [ %48, %39 ], [ %26, %18 ]
%30 = phi i64 [ %46, %39 ], [ %24, %18 ]
%31 = phi i64 [ %34, %39 ], [ %13, %18 ]
br label %32
32: ; preds = %38, %28
%33 = phi i64 [ %31, %28 ], [ %34, %38 ]
%34 = add nsw i64 %33, 1
%35 = and i64 %33, 4294967295
%36 = getelementptr inbounds i8, i8* %3, i64 %35
%37 = load i8, i8* %36
switch i8 %37, label %39 [
i8 13, label %38
i8 10, label %38
]
38: ; preds = %32, %32
br label %32
39: ; preds = %32
%40 = shl nsw i64 %30, 5
%41 = and i8 %37, 127
%42 = zext i8 %41 to i64
%43 = getelementptr inbounds [129 x i64], [129 x i64]* @Decomp6toArray.ichar, i64 0, i64 %42
%44 = load i64, i64* %43
%45 = and i64 %44, 31
%46 = or i64 %45, %40
%47 = and i64 %44, 32
%48 = add nsw i64 %29, 1
%49 = icmp eq i64 %47, 0
br i1 %49, label %50, label %28
50: ; preds = %39, %18
%51 = phi i64 [ %13, %18 ], [ %34, %39 ]
%52 = phi i64 [ %24, %18 ], [ %46, %39 ]
%53 = phi i64 [ %26, %18 ], [ %48, %39 ]
%54 = add nuw i64 %10, 1
%55 = icmp eq i64 %10, %6
br i1 %55, label %63, label %56
56: ; preds = %50
%57 = icmp eq i64 %23, 0
%58 = sub nsw i64 0, %52
%59 = select i1 %57, i64 %52, i64 %58
%60 = and i64 %10, 4294967295
%61 = getelementptr inbounds i64, i64* %2, i64 %60
store i64 %59, i64* %61
%62 = icmp slt i64 %53, %0
br i1 %62, label %7, label %63
63: ; preds = %56, %50, %11
%64 = phi i64 [ %10, %11 ], [ %54, %50 ], [ %54, %56 ]
%65 = icmp sgt i64 %64, %5
br i1 %65, label %66, label %67
66: ; preds = %63
store i64 %5, i64* %1
br label %67
67: ; preds = %66, %63
ret void
}