void RandomFunc(unsigned long input[1], unsigned long output[1]) {
  unsigned long state[1];
  unsigned short copy11;
  unsigned short copy12;
  {
    state[0UL] = (input[0UL] + 914778474UL) ^ 0xffffffffce5d000bUL;
    if (state[0UL] & 1UL) {
      if ((state[0UL] >> 1UL) & 1UL) {
        if ((state[0UL] >> 3UL) & 1UL) {
          copy11 = *((unsigned short *)(&state[0UL]) + 3);
          *((unsigned short *)(&state[0UL]) + 3) =
              *((unsigned short *)(&state[0UL]) + 0);
          *((unsigned short *)(&state[0UL]) + 0) = copy11;
          state[0UL] |=
              ((state[0UL] << (((state[0UL] >> 4UL) & 7UL) | 1UL)) & 15UL)
              << 2UL;
        } else {
          state[0UL] |=
              (((state[0UL] >> (((state[0UL] >> 2UL) & 15UL) | 1UL)) |
                (state[0UL] << (64 - (((state[0UL] >> 2UL) & 15UL) | 1UL)))) &
               63UL)
              << 4UL;
          state[0UL] |= (state[0UL] & 63UL) << 4UL;
        }
      } else if ((state[0UL] >> 3UL) & 1UL) {
        state[0UL] |=
            (((state[0UL] << (((state[0UL] >> 4UL) & 15UL) | 1UL)) |
              (state[0UL] >> (64 - (((state[0UL] >> 4UL) & 15UL) | 1UL)))) &
             15UL)
            << 3UL;
        state[0UL] |= (state[0UL] * state[0UL] & 63UL) << 4UL;
      } else {
        state[0UL] |=
            ((state[0UL] >> (((state[0UL] >> 4UL) & 7UL) | 1UL)) & 15UL) << 3UL;
        state[0UL] =
            (state[0UL] << (((state[0UL] >> 1UL) & 15UL) | 1UL)) |
            (state[0UL] >> (64 - (((state[0UL] >> 1UL) & 15UL) | 1UL)));
      }
    } else {
      state[0UL] <<= ((state[0UL] >> 1UL) & 7UL) | 1UL;
      copy12 = *((unsigned short *)(&state[0UL]) + 1);
      *((unsigned short *)(&state[0UL]) + 1) =
          *((unsigned short *)(&state[0UL]) + 0);
      *((unsigned short *)(&state[0UL]) + 0) = copy12;
    }
    output[0UL] = state[0UL] + 527010717UL;
  }
}


x86 assembly (clang, -O0):
<RandomFunc>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    -0x8(%rbp),%rax
mov    (%rax),%rax
add    $0x3686696a,%rax
xor    $0xffffffffce5d000b,%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     12fb <RandomFunc+0x1fb>
mov    -0x18(%rbp),%rax
shr    $0x1,%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     120a <RandomFunc+0x10a>
mov    -0x18(%rbp),%rax
shr    $0x3,%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     11a5 <RandomFunc+0xa5>
mov    -0x12(%rbp),%ax
mov    %ax,-0x1a(%rbp)
mov    -0x18(%rbp),%ax
mov    %ax,-0x12(%rbp)
mov    -0x1a(%rbp),%ax
mov    %ax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
shr    $0x4,%rcx
and    $0x7,%rcx
or     $0x1,%rcx
shl    %cl,%rax
and    $0xf,%rax
shl    $0x2,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
jmp    1205 <RandomFunc+0x105>
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
shr    $0x2,%rcx
and    $0xf,%rcx
or     $0x1,%rcx
shr    %cl,%rax
mov    -0x18(%rbp),%rdx
mov    -0x18(%rbp),%rsi
shr    $0x2,%rsi
and    $0xf,%rsi
or     $0x1,%rsi
mov    $0x40,%ecx
sub    %rsi,%rcx
shl    %cl,%rdx
mov    %rdx,%rcx
or     %rcx,%rax
and    $0x3f,%rax
shl    $0x4,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
and    $0x3f,%rax
shl    $0x4,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
jmp    12f6 <RandomFunc+0x1f6>
mov    -0x18(%rbp),%rax
shr    $0x3,%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     128a <RandomFunc+0x18a>
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
shr    $0x4,%rcx
and    $0xf,%rcx
or     $0x1,%rcx
shl    %cl,%rax
mov    -0x18(%rbp),%rdx
mov    -0x18(%rbp),%rsi
shr    $0x4,%rsi
and    $0xf,%rsi
or     $0x1,%rsi
mov    $0x40,%ecx
sub    %rsi,%rcx
shr    %cl,%rdx
mov    %rdx,%rcx
or     %rcx,%rax
and    $0xf,%rax
shl    $0x3,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
imul   -0x18(%rbp),%rax
and    $0x3f,%rax
shl    $0x4,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
jmp    12f1 <RandomFunc+0x1f1>
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
shr    $0x4,%rcx
and    $0x7,%rcx
or     $0x1,%rcx
shr    %cl,%rax
and    $0xf,%rax
shl    $0x3,%rax
or     -0x18(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
shr    $0x1,%rcx
and    $0xf,%rcx
or     $0x1,%rcx
shl    %cl,%rax
mov    -0x18(%rbp),%rdx
mov    -0x18(%rbp),%rsi
shr    $0x1,%rsi
and    $0xf,%rsi
or     $0x1,%rsi
mov    $0x40,%ecx
sub    %rsi,%rcx
shr    %cl,%rdx
mov    %rdx,%rcx
or     %rcx,%rax
mov    %rax,-0x18(%rbp)
jmp    12f6 <RandomFunc+0x1f6>
jmp    132e <RandomFunc+0x22e>
mov    -0x18(%rbp),%rcx
shr    $0x1,%rcx
and    $0x7,%rcx
or     $0x1,%rcx
mov    -0x18(%rbp),%rax
shl    %cl,%rax
mov    %rax,-0x18(%rbp)
mov    -0x16(%rbp),%ax
mov    %ax,-0x1c(%rbp)
mov    -0x18(%rbp),%ax
mov    %ax,-0x16(%rbp)
mov    -0x1c(%rbp),%ax
mov    %ax,-0x18(%rbp)
mov    -0x18(%rbp),%rcx
add    $0x1f698b9d,%rcx
mov    -0x10(%rbp),%rax
mov    %rcx,(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<RandomFunc>:
mov    $0x3686696a,%ecx
add    (%rdi),%rcx
mov    %rcx,%rax
xor    $0xffffffffce5d000b,%rax
test   $0x1,%al
jne    1131 <RandomFunc+0x31>
mov    %eax,%ecx
shr    %cl
and    $0x6,%cl
or     $0x1,%cl
shl    %cl,%rax
mov    %rax,%rdi
shr    $0x10,%rdi
mov    %rax,%rdx
jmp    1227 <RandomFunc+0x127>
test   $0x2,%al
jne    1174 <RandomFunc+0x74>
shr    $0x4,%rcx
test   $0x8,%al
jne    11af <RandomFunc+0xaf>
and    $0x6,%cl
or     $0x1,%cl
mov    %rax,%rdi
movzwl %ax,%edx
shr    %cl,%rax
shl    $0x3,%eax
and    $0x78,%eax
and    $0xffffffffffff0000,%rdi
or     %rax,%rdx
or     %rdx,%rdi
shr    %edx
and    $0xe,%edx
or     $0x1,%edx
mov    %edx,%ecx
rol    %cl,%rdi
mov    %rdi,%rdx
jmp    1220 <RandomFunc+0x120>
test   $0x8,%al
jne    11dc <RandomFunc+0xdc>
mov    %eax,%ecx
shr    $0x2,%ecx
and    $0xe,%ecx
or     $0x1,%ecx
mov    %rax,%rdx
ror    %cl,%rdx
and    $0x3f,%edx
shl    $0x4,%rdx
mov    %rax,%rcx
and    $0xffffffffffff0000,%rcx
movzwl %ax,%edi
or     %rdx,%rdi
or     %rdi,%rcx
and    $0x3f,%edi
shl    $0x4,%rdi
or     %rcx,%rdi
jmp    11d3 <RandomFunc+0xd3>
and    $0xe,%ecx
or     $0x1,%ecx
mov    %rax,%rdx
rol    %cl,%rdx
shl    $0x3,%edx
and    $0x78,%edx
or     %rax,%rdx
mov    %edx,%edi
imul   %edi,%edi
and    $0x3f,%edi
shl    $0x4,%rdi
or     %rdx,%rdi
shr    $0x10,%rax
mov    %rax,%rdx
jmp    1224 <RandomFunc+0x124>
mov    %rax,%rdi
shr    $0x30,%rdi
movabs $0xffff00000000,%r8
and    %rax,%r8
mov    %eax,%ecx
and    $0xffff0000,%ecx
mov    %rax,%rdx
shl    $0x30,%rdx
or     %r8,%rdx
or     %rcx,%rdx
mov    %rdx,%r8
or     %rdi,%r8
shr    $0x34,%rax
and    $0x6,%al
or     $0x1,%al
mov    %eax,%ecx
shl    %cl,%edi
shl    $0x2,%edi
and    $0x38,%edi
or     %r8,%rdi
shr    $0x10,%rdx
mov    %rdi,%rax
movabs $0xffffffff00000000,%rcx
ff ff ff
and    %rax,%rcx
shl    $0x10,%edx
or     %rcx,%rdx
movzwl %di,%eax
add    %rdx,%rax
add    $0x1f698b9d,%rax
mov    %rax,(%rsi)
ret

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

LLVM IR (-O2):
define void @RandomFunc(i64* nocapture %0, i64* nocapture writeonly %1) {
%3 = load i64, i64* %0
%4 = add i64 %3, 914778474
%5 = xor i64 %4, -832765941
%6 = lshr i64 %5, 48
%7 = and i64 %5, 281470681743360
%8 = and i64 %5, 4294901760
%9 = and i64 %5, 1
%10 = icmp eq i64 %9, 0
br i1 %10, label %74, label %11
11: ; preds = %2
%12 = and i64 %5, 2
%13 = icmp eq i64 %12, 0
%14 = and i64 %5, 8
%15 = icmp eq i64 %14, 0
br i1 %13, label %45, label %16
16: ; preds = %11
br i1 %15, label %30, label %17
17: ; preds = %16
%18 = shl i64 %5, 48
%19 = or i64 %18, %7
%20 = or i64 %19, %8
%21 = or i64 %20, %6
%22 = lshr i64 %5, 52
%23 = and i64 %22, 6
%24 = or i64 %23, 1
%25 = shl i64 %6, %24
%26 = shl nuw nsw i64 %25, 2
%27 = and i64 %26, 56
%28 = or i64 %21, %27
%29 = lshr exact i64 %20, 16
br label %80
30: ; preds = %16
%31 = lshr i64 %5, 2
%32 = and i64 %31, 14
%33 = or i64 %32, 1
%34 = tail call i64 @llvm.fshr.i64(i64 %5, i64 %5, i64 %33)
%35 = shl i64 %34, 4
%36 = and i64 %35, 1008
%37 = and i64 %5, -65536
%38 = and i64 %5, 65535
%39 = or i64 %36, %38
%40 = or i64 %39, %37
%41 = shl nuw nsw i64 %39, 4
%42 = and i64 %41, 1008
%43 = or i64 %40, %42
%44 = lshr i64 %5, 16
br label %80
45: ; preds = %11
%46 = lshr i64 %4, 4
br i1 %15, label %59, label %47
47: ; preds = %45
%48 = and i64 %46, 14
%49 = or i64 %48, 1
%50 = tail call i64 @llvm.fshl.i64(i64 %5, i64 %5, i64 %49)
%51 = shl i64 %50, 3
%52 = and i64 %51, 120
%53 = or i64 %5, %52
%54 = shl i64 %53, 4
%55 = mul i64 %54, %53
%56 = and i64 %55, 1008
%57 = or i64 %56, %53
%58 = lshr i64 %5, 16
br label %80
59: ; preds = %45
%60 = and i64 %46, 6
%61 = or i64 %60, 1
%62 = lshr i64 %5, %61
%63 = shl i64 %62, 3
%64 = and i64 %63, 120
%65 = and i64 %5, -65536
%66 = and i64 %5, 65535
%67 = or i64 %64, %66
%68 = or i64 %67, %65
%69 = lshr i64 %67, 1
%70 = and i64 %69, 14
%71 = or i64 %70, 1
%72 = tail call i64 @llvm.fshl.i64(i64 %68, i64 %68, i64 %71)
%73 = lshr i64 %72, 16
br label %80
74: ; preds = %2
%75 = lshr i64 %5, 1
%76 = and i64 %75, 6
%77 = or i64 %76, 1
%78 = shl i64 %5, %77
%79 = lshr i64 %78, 16
br label %80
80: ; preds = %30, %17, %59, %47, %74
%81 = phi i64 [ %29, %17 ], [ %44, %30 ], [ %58, %47 ], [ %73, %59 ], [ %78, %74 ]
%82 = phi i64 [ %28, %17 ], [ %43, %30 ], [ %57, %47 ], [ %72, %59 ], [ %79, %74 ]
%83 = phi i64 [ %28, %17 ], [ %43, %30 ], [ %57, %47 ], [ %72, %59 ], [ %78, %74 ]
%84 = and i64 %83, -4294967296
%85 = shl i64 %81, 16
%86 = and i64 %85, 4294901760
%87 = or i64 %86, %84
%88 = and i64 %82, 65535
%89 = add nuw nsw i64 %88, 527010717
%90 = add i64 %89, %87
store i64 %90, i64* %1
ret void
}