; LLVM IR from dynexcoin/Dynex :: src/crypto (crypto-ops)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nounwind uwtable
declare hidden i64 @load_4(ptr noundef) #1

; Function Attrs: nounwind uwtable
declare hidden i64 @load_3(ptr noundef) #1

; Function Attrs: nounwind uwtable
define dso_local void @sc_sub(ptr noundef %0, ptr noundef %1, ptr noundef %2) #1 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i64, align 8
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca i64, align 8
  %48 = alloca i64, align 8
  %49 = alloca i64, align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i64, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #2
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = call i64 @load_3(ptr noundef %56)
  %58 = and i64 2097151, %57
  store i64 %58, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #2
  %59 = load ptr, ptr %5, align 8, !tbaa !5
  %60 = getelementptr inbounds i8, ptr %59, i64 2
  %61 = call i64 @load_4(ptr noundef %60)
  %62 = lshr i64 %61, 5
  %63 = and i64 2097151, %62
  store i64 %63, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #2
  %64 = load ptr, ptr %5, align 8, !tbaa !5
  %65 = getelementptr inbounds i8, ptr %64, i64 5
  %66 = call i64 @load_3(ptr noundef %65)
  %67 = lshr i64 %66, 2
  %68 = and i64 2097151, %67
  store i64 %68, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #2
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i64 7
  %71 = call i64 @load_4(ptr noundef %70)
  %72 = lshr i64 %71, 7
  %73 = and i64 2097151, %72
  store i64 %73, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #2
  %74 = load ptr, ptr %5, align 8, !tbaa !5
  %75 = getelementptr inbounds i8, ptr %74, i64 10
  %76 = call i64 @load_4(ptr noundef %75)
  %77 = lshr i64 %76, 4
  %78 = and i64 2097151, %77
  store i64 %78, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #2
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i64 13
  %81 = call i64 @load_3(ptr noundef %80)
  %82 = lshr i64 %81, 1
  %83 = and i64 2097151, %82
  store i64 %83, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #2
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = getelementptr inbounds i8, ptr %84, i64 15
  %86 = call i64 @load_4(ptr noundef %85)
  %87 = lshr i64 %86, 6
  %88 = and i64 2097151, %87
  store i64 %88, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #2
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  %90 = getelementptr inbounds i8, ptr %89, i64 18
  %91 = call i64 @load_3(ptr noundef %90)
  %92 = lshr i64 %91, 3
  %93 = and i64 2097151, %92
  store i64 %93, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #2
  %94 = load ptr, ptr %5, align 8, !tbaa !5
  %95 = getelementptr inbounds i8, ptr %94, i64 21
  %96 = call i64 @load_3(ptr noundef %95)
  %97 = and i64 2097151, %96
  store i64 %97, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #2
  %98 = load ptr, ptr %5, align 8, !tbaa !5
  %99 = getelementptr inbounds i8, ptr %98, i64 23
  %100 = call i64 @load_4(ptr noundef %99)
  %101 = lshr i64 %100, 5
  %102 = and i64 2097151, %101
  store i64 %102, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #2
  %103 = load ptr, ptr %5, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i64 26
  %105 = call i64 @load_3(ptr noundef %104)
  %106 = lshr i64 %105, 2
  %107 = and i64 2097151, %106
  store i64 %107, ptr %17, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #2
  %108 = load ptr, ptr %5, align 8, !tbaa !5
  %109 = getelementptr inbounds i8, ptr %108, i64 28
  %110 = call i64 @load_4(ptr noundef %109)
  %111 = lshr i64 %110, 7
  store i64 %111, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #2
  %112 = load ptr, ptr %6, align 8, !tbaa !5
  %113 = call i64 @load_3(ptr noundef %112)
  %114 = and i64 2097151, %113
  store i64 %114, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #2
  %115 = load ptr, ptr %6, align 8, !tbaa !5
  %116 = getelementptr inbounds i8, ptr %115, i64 2
  %117 = call i64 @load_4(ptr noundef %116)
  %118 = lshr i64 %117, 5
  %119 = and i64 2097151, %118
  store i64 %119, ptr %20, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #2
  %120 = load ptr, ptr %6, align 8, !tbaa !5
  %121 = getelementptr inbounds i8, ptr %120, i64 5
  %122 = call i64 @load_3(ptr noundef %121)
  %123 = lshr i64 %122, 2
  %124 = and i64 2097151, %123
  store i64 %124, ptr %21, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #2
  %125 = load ptr, ptr %6, align 8, !tbaa !5
  %126 = getelementptr inbounds i8, ptr %125, i64 7
  %127 = call i64 @load_4(ptr noundef %126)
  %128 = lshr i64 %127, 7
  %129 = and i64 2097151, %128
  store i64 %129, ptr %22, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #2
  %130 = load ptr, ptr %6, align 8, !tbaa !5
  %131 = getelementptr inbounds i8, ptr %130, i64 10
  %132 = call i64 @load_4(ptr noundef %131)
  %133 = lshr i64 %132, 4
  %134 = and i64 2097151, %133
  store i64 %134, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #2
  %135 = load ptr, ptr %6, align 8, !tbaa !5
  %136 = getelementptr inbounds i8, ptr %135, i64 13
  %137 = call i64 @load_3(ptr noundef %136)
  %138 = lshr i64 %137, 1
  %139 = and i64 2097151, %138
  store i64 %139, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #2
  %140 = load ptr, ptr %6, align 8, !tbaa !5
  %141 = getelementptr inbounds i8, ptr %140, i64 15
  %142 = call i64 @load_4(ptr noundef %141)
  %143 = lshr i64 %142, 6
  %144 = and i64 2097151, %143
  store i64 %144, ptr %25, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #2
  %145 = load ptr, ptr %6, align 8, !tbaa !5
  %146 = getelementptr inbounds i8, ptr %145, i64 18
  %147 = call i64 @load_3(ptr noundef %146)
  %148 = lshr i64 %147, 3
  %149 = and i64 2097151, %148
  store i64 %149, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #2
  %150 = load ptr, ptr %6, align 8, !tbaa !5
  %151 = getelementptr inbounds i8, ptr %150, i64 21
  %152 = call i64 @load_3(ptr noundef %151)
  %153 = and i64 2097151, %152
  store i64 %153, ptr %27, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #2
  %154 = load ptr, ptr %6, align 8, !tbaa !5
  %155 = getelementptr inbounds i8, ptr %154, i64 23
  %156 = call i64 @load_4(ptr noundef %155)
  %157 = lshr i64 %156, 5
  %158 = and i64 2097151, %157
  store i64 %158, ptr %28, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #2
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  %160 = getelementptr inbounds i8, ptr %159, i64 26
  %161 = call i64 @load_3(ptr noundef %160)
  %162 = lshr i64 %161, 2
  %163 = and i64 2097151, %162
  store i64 %163, ptr %29, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #2
  %164 = load ptr, ptr %6, align 8, !tbaa !5
  %165 = getelementptr inbounds i8, ptr %164, i64 28
  %166 = call i64 @load_4(ptr noundef %165)
  %167 = lshr i64 %166, 7
  store i64 %167, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #2
  %168 = load i64, ptr %7, align 8, !tbaa !9
  %169 = load i64, ptr %19, align 8, !tbaa !9
  %170 = sub nsw i64 %168, %169
  store i64 %170, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #2
  %171 = load i64, ptr %8, align 8, !tbaa !9
  %172 = load i64, ptr %20, align 8, !tbaa !9
  %173 = sub nsw i64 %171, %172
  store i64 %173, ptr %32, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #2
  %174 = load i64, ptr %9, align 8, !tbaa !9
  %175 = load i64, ptr %21, align 8, !tbaa !9
  %176 = sub nsw i64 %174, %175
  store i64 %176, ptr %33, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #2
  %177 = load i64, ptr %10, align 8, !tbaa !9
  %178 = load i64, ptr %22, align 8, !tbaa !9
  %179 = sub nsw i64 %177, %178
  store i64 %179, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #2
  %180 = load i64, ptr %11, align 8, !tbaa !9
  %181 = load i64, ptr %23, align 8, !tbaa !9
  %182 = sub nsw i64 %180, %181
  store i64 %182, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #2
  %183 = load i64, ptr %12, align 8, !tbaa !9
  %184 = load i64, ptr %24, align 8, !tbaa !9
  %185 = sub nsw i64 %183, %184
  store i64 %185, ptr %36, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #2
  %186 = load i64, ptr %13, align 8, !tbaa !9
  %187 = load i64, ptr %25, align 8, !tbaa !9
  %188 = sub nsw i64 %186, %187
  store i64 %188, ptr %37, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #2
  %189 = load i64, ptr %14, align 8, !tbaa !9
  %190 = load i64, ptr %26, align 8, !tbaa !9
  %191 = sub nsw i64 %189, %190
  store i64 %191, ptr %38, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #2
  %192 = load i64, ptr %15, align 8, !tbaa !9
  %193 = load i64, ptr %27, align 8, !tbaa !9
  %194 = sub nsw i64 %192, %193
  store i64 %194, ptr %39, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #2
  %195 = load i64, ptr %16, align 8, !tbaa !9
  %196 = load i64, ptr %28, align 8, !tbaa !9
  %197 = sub nsw i64 %195, %196
  store i64 %197, ptr %40, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #2
  %198 = load i64, ptr %17, align 8, !tbaa !9
  %199 = load i64, ptr %29, align 8, !tbaa !9
  %200 = sub nsw i64 %198, %199
  store i64 %200, ptr %41, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #2
  %201 = load i64, ptr %18, align 8, !tbaa !9
  %202 = load i64, ptr %30, align 8, !tbaa !9
  %203 = sub nsw i64 %201, %202
  store i64 %203, ptr %42, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #2
  store i64 0, ptr %43, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #2
  %204 = load i64, ptr %31, align 8, !tbaa !9
  %205 = add nsw i64 %204, 1048576
  %206 = ashr i64 %205, 21
  store i64 %206, ptr %44, align 8, !tbaa !9
  %207 = load i64, ptr %44, align 8, !tbaa !9
  %208 = load i64, ptr %32, align 8, !tbaa !9
  %209 = add nsw i64 %208, %207
  store i64 %209, ptr %32, align 8, !tbaa !9
  %210 = load i64, ptr %44, align 8, !tbaa !9
  %211 = shl i64 %210, 21
  %212 = load i64, ptr %31, align 8, !tbaa !9
  %213 = sub nsw i64 %212, %211
  store i64 %213, ptr %31, align 8, !tbaa !9
  %214 = load i64, ptr %33, align 8, !tbaa !9
  %215 = add nsw i64 %214, 1048576
  %216 = ashr i64 %215, 21
  store i64 %216, ptr %46, align 8, !tbaa !9
  %217 = load i64, ptr %46, align 8, !tbaa !9
  %218 = load i64, ptr %34, align 8, !tbaa !9
  %219 = add nsw i64 %218, %217
  store i64 %219, ptr %34, align 8, !tbaa !9
  %220 = load i64, ptr %46, align 8, !tbaa !9
  %221 = shl i64 %220, 21
  %222 = load i64, ptr %33, align 8, !tbaa !9
  %223 = sub nsw i64 %222, %221
  store i64 %223, ptr %33, align 8, !tbaa !9
  %224 = load i64, ptr %35, align 8, !tbaa !9
  %225 = add nsw i64 %224, 1048576
  %226 = ashr i64 %225, 21
  store i64 %226, ptr %48, align 8, !tbaa !9
  %227 = load i64, ptr %48, align 8, !tbaa !9
  %228 = load i64, ptr %36, align 8, !tbaa !9
  %229 = add nsw i64 %228, %227
  store i64 %229, ptr %36, align 8, !tbaa !9
  %230 = load i64, ptr %48, align 8, !tbaa !9
  %231 = shl i64 %230, 21
  %232 = load i64, ptr %35, align 8, !tbaa !9
  %233 = sub nsw i64 %232, %231
  store i64 %233, ptr %35, align 8, !tbaa !9
  %234 = load i64, ptr %37, align 8, !tbaa !9
  %235 = add nsw i64 %234, 1048576
  %236 = ashr i64 %235, 21
  store i64 %236, ptr %50, align 8, !tbaa !9
  %237 = load i64, ptr %50, align 8, !tbaa !9
  %238 = load i64, ptr %38, align 8, !tbaa !9
  %239 = add nsw i64 %238, %237
  store i64 %239, ptr %38, align 8, !tbaa !9
  %240 = load i64, ptr %50, align 8, !tbaa !9
  %241 = shl i64 %240, 21
  %242 = load i64, ptr %37, align 8, !tbaa !9
  %243 = sub nsw i64 %242, %241
  store i64 %243, ptr %37, align 8, !tbaa !9
  %244 = load i64, ptr %39, align 8, !tbaa !9
  %245 = add nsw i64 %244, 1048576
  %246 = ashr i64 %245, 21
  store i64 %246, ptr %52, align 8, !tbaa !9
  %247 = load i64, ptr %52, align 8, !tbaa !9
  %248 = load i64, ptr %40, align 8, !tbaa !9
  %249 = add nsw i64 %248, %247
  store i64 %249, ptr %40, align 8, !tbaa !9
  %250 = load i64, ptr %52, align 8, !tbaa !9
  %251 = shl i64 %250, 21
  %252 = load i64, ptr %39, align 8, !tbaa !9
  %253 = sub nsw i64 %252, %251
  store i64 %253, ptr %39, align 8, !tbaa !9
  %254 = load i64, ptr %41, align 8, !tbaa !9
  %255 = add nsw i64 %254, 1048576
  %256 = ashr i64 %255, 21
  store i64 %256, ptr %54, align 8, !tbaa !9
  %257 = load i64, ptr %54, align 8, !tbaa !9
  %258 = load i64, ptr %42, align 8, !tbaa !9
  %259 = add nsw i64 %258, %257
  store i64 %259, ptr %42, align 8, !tbaa !9
  %260 = load i64, ptr %54, align 8, !tbaa !9
  %261 = shl i64 %260, 21
  %262 = load i64, ptr %41, align 8, !tbaa !9
  %263 = sub nsw i64 %262, %261
  store i64 %263, ptr %41, align 8, !tbaa !9
  %264 = load i64, ptr %32, align 8, !tbaa !9
  %265 = add nsw i64 %264, 1048576
  %266 = ashr i64 %265, 21
  store i64 %266, ptr %45, align 8, !tbaa !9
  %267 = load i64, ptr %45, align 8, !tbaa !9
  %268 = load i64, ptr %33, align 8, !tbaa !9
  %269 = add nsw i64 %268, %267
  store i64 %269, ptr %33, align 8, !tbaa !9
  %270 = load i64, ptr %45, align 8, !tbaa !9
  %271 = shl i64 %270, 21
  %272 = load i64, ptr %32, align 8, !tbaa !9
  %273 = sub nsw i64 %272, %271
  store i64 %273, ptr %32, align 8, !tbaa !9
  %274 = load i64, ptr %34, align 8, !tbaa !9
  %275 = add nsw i64 %274, 1048576
  %276 = ashr i64 %275, 21
  store i64 %276, ptr %47, align 8, !tbaa !9
  %277 = load i64, ptr %47, align 8, !tbaa !9
  %278 = load i64, ptr %35, align 8, !tbaa !9
  %279 = add nsw i64 %278, %277
  store i64 %279, ptr %35, align 8, !tbaa !9
  %280 = load i64, ptr %47, align 8, !tbaa !9
  %281 = shl i64 %280, 21
  %282 = load i64, ptr %34, align 8, !tbaa !9
  %283 = sub nsw i64 %282, %281
  store i64 %283, ptr %34, align 8, !tbaa !9
  %284 = load i64, ptr %36, align 8, !tbaa !9
  %285 = add nsw i64 %284, 1048576
  %286 = ashr i64 %285, 21
  store i64 %286, ptr %49, align 8, !tbaa !9
  %287 = load i64, ptr %49, align 8, !tbaa !9
  %288 = load i64, ptr %37, align 8, !tbaa !9
  %289 = add nsw i64 %288, %287
  store i64 %289, ptr %37, align 8, !tbaa !9
  %290 = load i64, ptr %49, align 8, !tbaa !9
  %291 = shl i64 %290, 21
  %292 = load i64, ptr %36, align 8, !tbaa !9
  %293 = sub nsw i64 %292, %291
  store i64 %293, ptr %36, align 8, !tbaa !9
  %294 = load i64, ptr %38, align 8, !tbaa !9
  %295 = add nsw i64 %294, 1048576
  %296 = ashr i64 %295, 21
  store i64 %296, ptr %51, align 8, !tbaa !9
  %297 = load i64, ptr %51, align 8, !tbaa !9
  %298 = load i64, ptr %39, align 8, !tbaa !9
  %299 = add nsw i64 %298, %297
  store i64 %299, ptr %39, align 8, !tbaa !9
  %300 = load i64, ptr %51, align 8, !tbaa !9
  %301 = shl i64 %300, 21
  %302 = load i64, ptr %38, align 8, !tbaa !9
  %303 = sub nsw i64 %302, %301
  store i64 %303, ptr %38, align 8, !tbaa !9
  %304 = load i64, ptr %40, align 8, !tbaa !9
  %305 = add nsw i64 %304, 1048576
  %306 = ashr i64 %305, 21
  store i64 %306, ptr %53, align 8, !tbaa !9
  %307 = load i64, ptr %53, align 8, !tbaa !9
  %308 = load i64, ptr %41, align 8, !tbaa !9
  %309 = add nsw i64 %308, %307
  store i64 %309, ptr %41, align 8, !tbaa !9
  %310 = load i64, ptr %53, align 8, !tbaa !9
  %311 = shl i64 %310, 21
  %312 = load i64, ptr %40, align 8, !tbaa !9
  %313 = sub nsw i64 %312, %311
  store i64 %313, ptr %40, align 8, !tbaa !9
  %314 = load i64, ptr %42, align 8, !tbaa !9
  %315 = add nsw i64 %314, 1048576
  %316 = ashr i64 %315, 21
  store i64 %316, ptr %55, align 8, !tbaa !9
  %317 = load i64, ptr %55, align 8, !tbaa !9
  %318 = load i64, ptr %43, align 8, !tbaa !9
  %319 = add nsw i64 %318, %317
  store i64 %319, ptr %43, align 8, !tbaa !9
  %320 = load i64, ptr %55, align 8, !tbaa !9
  %321 = shl i64 %320, 21
  %322 = load i64, ptr %42, align 8, !tbaa !9
  %323 = sub nsw i64 %322, %321
  store i64 %323, ptr %42, align 8, !tbaa !9
  %324 = load i64, ptr %43, align 8, !tbaa !9
  %325 = mul nsw i64 %324, 666643
  %326 = load i64, ptr %31, align 8, !tbaa !9
  %327 = add nsw i64 %326, %325
  store i64 %327, ptr %31, align 8, !tbaa !9
  %328 = load i64, ptr %43, align 8, !tbaa !9
  %329 = mul nsw i64 %328, 470296
  %330 = load i64, ptr %32, align 8, !tbaa !9
  %331 = add nsw i64 %330, %329
  store i64 %331, ptr %32, align 8, !tbaa !9
  %332 = load i64, ptr %43, align 8, !tbaa !9
  %333 = mul nsw i64 %332, 654183
  %334 = load i64, ptr %33, align 8, !tbaa !9
  %335 = add nsw i64 %334, %333
  store i64 %335, ptr %33, align 8, !tbaa !9
  %336 = load i64, ptr %43, align 8, !tbaa !9
  %337 = mul nsw i64 %336, 997805
  %338 = load i64, ptr %34, align 8, !tbaa !9
  %339 = sub nsw i64 %338, %337
  store i64 %339, ptr %34, align 8, !tbaa !9
  %340 = load i64, ptr %43, align 8, !tbaa !9
  %341 = mul nsw i64 %340, 136657
  %342 = load i64, ptr %35, align 8, !tbaa !9
  %343 = add nsw i64 %342, %341
  store i64 %343, ptr %35, align 8, !tbaa !9
  %344 = load i64, ptr %43, align 8, !tbaa !9
  %345 = mul nsw i64 %344, 683901
  %346 = load i64, ptr %36, align 8, !tbaa !9
  %347 = sub nsw i64 %346, %345
  store i64 %347, ptr %36, align 8, !tbaa !9
  store i64 0, ptr %43, align 8, !tbaa !9
  %348 = load i64, ptr %31, align 8, !tbaa !9
  %349 = ashr i64 %348, 21
  store i64 %349, ptr %44, align 8, !tbaa !9
  %350 = load i64, ptr %44, align 8, !tbaa !9
  %351 = load i64, ptr %32, align 8, !tbaa !9
  %352 = add nsw i64 %351, %350
  store i64 %352, ptr %32, align 8, !tbaa !9
  %353 = load i64, ptr %44, align 8, !tbaa !9
  %354 = shl i64 %353, 21
  %355 = load i64, ptr %31, align 8, !tbaa !9
  %356 = sub nsw i64 %355, %354
  store i64 %356, ptr %31, align 8, !tbaa !9
  %357 = load i64, ptr %32, align 8, !tbaa !9
  %358 = ashr i64 %357, 21
  store i64 %358, ptr %45, align 8, !tbaa !9
  %359 = load i64, ptr %45, align 8, !tbaa !9
  %360 = load i64, ptr %33, align 8, !tbaa !9
  %361 = add nsw i64 %360, %359
  store i64 %361, ptr %33, align 8, !tbaa !9
  %362 = load i64, ptr %45, align 8, !tbaa !9
  %363 = shl i64 %362, 21
  %364 = load i64, ptr %32, align 8, !tbaa !9
  %365 = sub nsw i64 %364, %363
  store i64 %365, ptr %32, align 8, !tbaa !9
  %366 = load i64, ptr %33, align 8, !tbaa !9
  %367 = ashr i64 %366, 21
  store i64 %367, ptr %46, align 8, !tbaa !9
  %368 = load i64, ptr %46, align 8, !tbaa !9
  %369 = load i64, ptr %34, align 8, !tbaa !9
  %370 = add nsw i64 %369, %368
  store i64 %370, ptr %34, align 8, !tbaa !9
  %371 = load i64, ptr %46, align 8, !tbaa !9
  %372 = shl i64 %371, 21
  %373 = load i64, ptr %33, align 8, !tbaa !9
  %374 = sub nsw i64 %373, %372
  store i64 %374, ptr %33, align 8, !tbaa !9
  %375 = load i64, ptr %34, align 8, !tbaa !9
  %376 = ashr i64 %375, 21
  store i64 %376, ptr %47, align 8, !tbaa !9
  %377 = load i64, ptr %47, align 8, !tbaa !9
  %378 = load i64, ptr %35, align 8, !tbaa !9
  %379 = add nsw i64 %378, %377
  store i64 %379, ptr %35, align 8, !tbaa !9
  %380 = load i64, ptr %47, align 8, !tbaa !9
  %381 = shl i64 %380, 21
  %382 = load i64, ptr %34, align 8, !tbaa !9
  %383 = sub nsw i64 %382, %381
  store i64 %383, ptr %34, align 8, !tbaa !9
  %384 = load i64, ptr %35, align 8, !tbaa !9
  %385 = ashr i64 %384, 21
  store i64 %385, ptr %48, align 8, !tbaa !9
  %386 = load i64, ptr %48, align 8, !tbaa !9
  %387 = load i64, ptr %36, align 8, !tbaa !9
  %388 = add nsw i64 %387, %386
  store i64 %388, ptr %36, align 8, !tbaa !9
  %389 = load i64, ptr %48, align 8, !tbaa !9
  %390 = shl i64 %389, 21
  %391 = load i64, ptr %35, align 8, !tbaa !9
  %392 = sub nsw i64 %391, %390
  store i64 %392, ptr %35, align 8, !tbaa !9
  %393 = load i64, ptr %36, align 8, !tbaa !9
  %394 = ashr i64 %393, 21
  store i64 %394, ptr %49, align 8, !tbaa !9
  %395 = load i64, ptr %49, align 8, !tbaa !9
  %396 = load i64, ptr %37, align 8, !tbaa !9
  %397 = add nsw i64 %396, %395
  store i64 %397, ptr %37, align 8, !tbaa !9
  %398 = load i64, ptr %49, align 8, !tbaa !9
  %399 = shl i64 %398, 21
  %400 = load i64, ptr %36, align 8, !tbaa !9
  %401 = sub nsw i64 %400, %399
  store i64 %401, ptr %36, align 8, !tbaa !9
  %402 = load i64, ptr %37, align 8, !tbaa !9
  %403 = ashr i64 %402, 21
  store i64 %403, ptr %50, align 8, !tbaa !9
  %404 = load i64, ptr %50, align 8, !tbaa !9
  %405 = load i64, ptr %38, align 8, !tbaa !9
  %406 = add nsw i64 %405, %404
  store i64 %406, ptr %38, align 8, !tbaa !9
  %407 = load i64, ptr %50, align 8, !tbaa !9
  %408 = shl i64 %407, 21
  %409 = load i64, ptr %37, align 8, !tbaa !9
  %410 = sub nsw i64 %409, %408
  store i64 %410, ptr %37, align 8, !tbaa !9
  %411 = load i64, ptr %38, align 8, !tbaa !9
  %412 = ashr i64 %411, 21
  store i64 %412, ptr %51, align 8, !tbaa !9
  %413 = load i64, ptr %51, align 8, !tbaa !9
  %414 = load i64, ptr %39, align 8, !tbaa !9
  %415 = add nsw i64 %414, %413
  store i64 %415, ptr %39, align 8, !tbaa !9
  %416 = load i64, ptr %51, align 8, !tbaa !9
  %417 = shl i64 %416, 21
  %418 = load i64, ptr %38, align 8, !tbaa !9
  %419 = sub nsw i64 %418, %417
  store i64 %419, ptr %38, align 8, !tbaa !9
  %420 = load i64, ptr %39, align 8, !tbaa !9
  %421 = ashr i64 %420, 21
  store i64 %421, ptr %52, align 8, !tbaa !9
  %422 = load i64, ptr %52, align 8, !tbaa !9
  %423 = load i64, ptr %40, align 8, !tbaa !9
  %424 = add nsw i64 %423, %422
  store i64 %424, ptr %40, align 8, !tbaa !9
  %425 = load i64, ptr %52, align 8, !tbaa !9
  %426 = shl i64 %425, 21
  %427 = load i64, ptr %39, align 8, !tbaa !9
  %428 = sub nsw i64 %427, %426
  store i64 %428, ptr %39, align 8, !tbaa !9
  %429 = load i64, ptr %40, align 8, !tbaa !9
  %430 = ashr i64 %429, 21
  store i64 %430, ptr %53, align 8, !tbaa !9
  %431 = load i64, ptr %53, align 8, !tbaa !9
  %432 = load i64, ptr %41, align 8, !tbaa !9
  %433 = add nsw i64 %432, %431
  store i64 %433, ptr %41, align 8, !tbaa !9
  %434 = load i64, ptr %53, align 8, !tbaa !9
  %435 = shl i64 %434, 21
  %436 = load i64, ptr %40, align 8, !tbaa !9
  %437 = sub nsw i64 %436, %435
  store i64 %437, ptr %40, align 8, !tbaa !9
  %438 = load i64, ptr %41, align 8, !tbaa !9
  %439 = ashr i64 %438, 21
  store i64 %439, ptr %54, align 8, !tbaa !9
  %440 = load i64, ptr %54, align 8, !tbaa !9
  %441 = load i64, ptr %42, align 8, !tbaa !9
  %442 = add nsw i64 %441, %440
  store i64 %442, ptr %42, align 8, !tbaa !9
  %443 = load i64, ptr %54, align 8, !tbaa !9
  %444 = shl i64 %443, 21
  %445 = load i64, ptr %41, align 8, !tbaa !9
  %446 = sub nsw i64 %445, %444
  store i64 %446, ptr %41, align 8, !tbaa !9
  %447 = load i64, ptr %42, align 8, !tbaa !9
  %448 = ashr i64 %447, 21
  store i64 %448, ptr %55, align 8, !tbaa !9
  %449 = load i64, ptr %55, align 8, !tbaa !9
  %450 = load i64, ptr %43, align 8, !tbaa !9
  %451 = add nsw i64 %450, %449
  store i64 %451, ptr %43, align 8, !tbaa !9
  %452 = load i64, ptr %55, align 8, !tbaa !9
  %453 = shl i64 %452, 21
  %454 = load i64, ptr %42, align 8, !tbaa !9
  %455 = sub nsw i64 %454, %453
  store i64 %455, ptr %42, align 8, !tbaa !9
  %456 = load i64, ptr %43, align 8, !tbaa !9
  %457 = mul nsw i64 %456, 666643
  %458 = load i64, ptr %31, align 8, !tbaa !9
  %459 = add nsw i64 %458, %457
  store i64 %459, ptr %31, align 8, !tbaa !9
  %460 = load i64, ptr %43, align 8, !tbaa !9
  %461 = mul nsw i64 %460, 470296
  %462 = load i64, ptr %32, align 8, !tbaa !9
  %463 = add nsw i64 %462, %461
  store i64 %463, ptr %32, align 8, !tbaa !9
  %464 = load i64, ptr %43, align 8, !tbaa !9
  %465 = mul nsw i64 %464, 654183
  %466 = load i64, ptr %33, align 8, !tbaa !9
  %467 = add nsw i64 %466, %465
  store i64 %467, ptr %33, align 8, !tbaa !9
  %468 = load i64, ptr %43, align 8, !tbaa !9
  %469 = mul nsw i64 %468, 997805
  %470 = load i64, ptr %34, align 8, !tbaa !9
  %471 = sub nsw i64 %470, %469
  store i64 %471, ptr %34, align 8, !tbaa !9
  %472 = load i64, ptr %43, align 8, !tbaa !9
  %473 = mul nsw i64 %472, 136657
  %474 = load i64, ptr %35, align 8, !tbaa !9
  %475 = add nsw i64 %474, %473
  store i64 %475, ptr %35, align 8, !tbaa !9
  %476 = load i64, ptr %43, align 8, !tbaa !9
  %477 = mul nsw i64 %476, 683901
  %478 = load i64, ptr %36, align 8, !tbaa !9
  %479 = sub nsw i64 %478, %477
  store i64 %479, ptr %36, align 8, !tbaa !9
  %480 = load i64, ptr %31, align 8, !tbaa !9
  %481 = ashr i64 %480, 21
  store i64 %481, ptr %44, align 8, !tbaa !9
  %482 = load i64, ptr %44, align 8, !tbaa !9
  %483 = load i64, ptr %32, align 8, !tbaa !9
  %484 = add nsw i64 %483, %482
  store i64 %484, ptr %32, align 8, !tbaa !9
  %485 = load i64, ptr %44, align 8, !tbaa !9
  %486 = shl i64 %485, 21
  %487 = load i64, ptr %31, align 8, !tbaa !9
  %488 = sub nsw i64 %487, %486
  store i64 %488, ptr %31, align 8, !tbaa !9
  %489 = load i64, ptr %32, align 8, !tbaa !9
  %490 = ashr i64 %489, 21
  store i64 %490, ptr %45, align 8, !tbaa !9
  %491 = load i64, ptr %45, align 8, !tbaa !9
  %492 = load i64, ptr %33, align 8, !tbaa !9
  %493 = add nsw i64 %492, %491
  store i64 %493, ptr %33, align 8, !tbaa !9
  %494 = load i64, ptr %45, align 8, !tbaa !9
  %495 = shl i64 %494, 21
  %496 = load i64, ptr %32, align 8, !tbaa !9
  %497 = sub nsw i64 %496, %495
  store i64 %497, ptr %32, align 8, !tbaa !9
  %498 = load i64, ptr %33, align 8, !tbaa !9
  %499 = ashr i64 %498, 21
  store i64 %499, ptr %46, align 8, !tbaa !9
  %500 = load i64, ptr %46, align 8, !tbaa !9
  %501 = load i64, ptr %34, align 8, !tbaa !9
  %502 = add nsw i64 %501, %500
  store i64 %502, ptr %34, align 8, !tbaa !9
  %503 = load i64, ptr %46, align 8, !tbaa !9
  %504 = shl i64 %503, 21
  %505 = load i64, ptr %33, align 8, !tbaa !9
  %506 = sub nsw i64 %505, %504
  store i64 %506, ptr %33, align 8, !tbaa !9
  %507 = load i64, ptr %34, align 8, !tbaa !9
  %508 = ashr i64 %507, 21
  store i64 %508, ptr %47, align 8, !tbaa !9
  %509 = load i64, ptr %47, align 8, !tbaa !9
  %510 = load i64, ptr %35, align 8, !tbaa !9
  %511 = add nsw i64 %510, %509
  store i64 %511, ptr %35, align 8, !tbaa !9
  %512 = load i64, ptr %47, align 8, !tbaa !9
  %513 = shl i64 %512, 21
  %514 = load i64, ptr %34, align 8, !tbaa !9
  %515 = sub nsw i64 %514, %513
  store i64 %515, ptr %34, align 8, !tbaa !9
  %516 = load i64, ptr %35, align 8, !tbaa !9
  %517 = ashr i64 %516, 21
  store i64 %517, ptr %48, align 8, !tbaa !9
  %518 = load i64, ptr %48, align 8, !tbaa !9
  %519 = load i64, ptr %36, align 8, !tbaa !9
  %520 = add nsw i64 %519, %518
  store i64 %520, ptr %36, align 8, !tbaa !9
  %521 = load i64, ptr %48, align 8, !tbaa !9
  %522 = shl i64 %521, 21
  %523 = load i64, ptr %35, align 8, !tbaa !9
  %524 = sub nsw i64 %523, %522
  store i64 %524, ptr %35, align 8, !tbaa !9
  %525 = load i64, ptr %36, align 8, !tbaa !9
  %526 = ashr i64 %525, 21
  store i64 %526, ptr %49, align 8, !tbaa !9
  %527 = load i64, ptr %49, align 8, !tbaa !9
  %528 = load i64, ptr %37, align 8, !tbaa !9
  %529 = add nsw i64 %528, %527
  store i64 %529, ptr %37, align 8, !tbaa !9
  %530 = load i64, ptr %49, align 8, !tbaa !9
  %531 = shl i64 %530, 21
  %532 = load i64, ptr %36, align 8, !tbaa !9
  %533 = sub nsw i64 %532, %531
  store i64 %533, ptr %36, align 8, !tbaa !9
  %534 = load i64, ptr %37, align 8, !tbaa !9
  %535 = ashr i64 %534, 21
  store i64 %535, ptr %50, align 8, !tbaa !9
  %536 = load i64, ptr %50, align 8, !tbaa !9
  %537 = load i64, ptr %38, align 8, !tbaa !9
  %538 = add nsw i64 %537, %536
  store i64 %538, ptr %38, align 8, !tbaa !9
  %539 = load i64, ptr %50, align 8, !tbaa !9
  %540 = shl i64 %539, 21
  %541 = load i64, ptr %37, align 8, !tbaa !9
  %542 = sub nsw i64 %541, %540
  store i64 %542, ptr %37, align 8, !tbaa !9
  %543 = load i64, ptr %38, align 8, !tbaa !9
  %544 = ashr i64 %543, 21
  store i64 %544, ptr %51, align 8, !tbaa !9
  %545 = load i64, ptr %51, align 8, !tbaa !9
  %546 = load i64, ptr %39, align 8, !tbaa !9
  %547 = add nsw i64 %546, %545
  store i64 %547, ptr %39, align 8, !tbaa !9
  %548 = load i64, ptr %51, align 8, !tbaa !9
  %549 = shl i64 %548, 21
  %550 = load i64, ptr %38, align 8, !tbaa !9
  %551 = sub nsw i64 %550, %549
  store i64 %551, ptr %38, align 8, !tbaa !9
  %552 = load i64, ptr %39, align 8, !tbaa !9
  %553 = ashr i64 %552, 21
  store i64 %553, ptr %52, align 8, !tbaa !9
  %554 = load i64, ptr %52, align 8, !tbaa !9
  %555 = load i64, ptr %40, align 8, !tbaa !9
  %556 = add nsw i64 %555, %554
  store i64 %556, ptr %40, align 8, !tbaa !9
  %557 = load i64, ptr %52, align 8, !tbaa !9
  %558 = shl i64 %557, 21
  %559 = load i64, ptr %39, align 8, !tbaa !9
  %560 = sub nsw i64 %559, %558
  store i64 %560, ptr %39, align 8, !tbaa !9
  %561 = load i64, ptr %40, align 8, !tbaa !9
  %562 = ashr i64 %561, 21
  store i64 %562, ptr %53, align 8, !tbaa !9
  %563 = load i64, ptr %53, align 8, !tbaa !9
  %564 = load i64, ptr %41, align 8, !tbaa !9
  %565 = add nsw i64 %564, %563
  store i64 %565, ptr %41, align 8, !tbaa !9
  %566 = load i64, ptr %53, align 8, !tbaa !9
  %567 = shl i64 %566, 21
  %568 = load i64, ptr %40, align 8, !tbaa !9
  %569 = sub nsw i64 %568, %567
  store i64 %569, ptr %40, align 8, !tbaa !9
  %570 = load i64, ptr %41, align 8, !tbaa !9
  %571 = ashr i64 %570, 21
  store i64 %571, ptr %54, align 8, !tbaa !9
  %572 = load i64, ptr %54, align 8, !tbaa !9
  %573 = load i64, ptr %42, align 8, !tbaa !9
  %574 = add nsw i64 %573, %572
  store i64 %574, ptr %42, align 8, !tbaa !9
  %575 = load i64, ptr %54, align 8, !tbaa !9
  %576 = shl i64 %575, 21
  %577 = load i64, ptr %41, align 8, !tbaa !9
  %578 = sub nsw i64 %577, %576
  store i64 %578, ptr %41, align 8, !tbaa !9
  %579 = load i64, ptr %31, align 8, !tbaa !9
  %580 = ashr i64 %579, 0
  %581 = trunc i64 %580 to i8
  %582 = load ptr, ptr %4, align 8, !tbaa !5
  %583 = getelementptr inbounds i8, ptr %582, i64 0
  store i8 %581, ptr %583, align 1, !tbaa !11
  %584 = load i64, ptr %31, align 8, !tbaa !9
  %585 = ashr i64 %584, 8
  %586 = trunc i64 %585 to i8
  %587 = load ptr, ptr %4, align 8, !tbaa !5
  %588 = getelementptr inbounds i8, ptr %587, i64 1
  store i8 %586, ptr %588, align 1, !tbaa !11
  %589 = load i64, ptr %31, align 8, !tbaa !9
  %590 = ashr i64 %589, 16
  %591 = load i64, ptr %32, align 8, !tbaa !9
  %592 = shl i64 %591, 5
  %593 = or i64 %590, %592
  %594 = trunc i64 %593 to i8
  %595 = load ptr, ptr %4, align 8, !tbaa !5
  %596 = getelementptr inbounds i8, ptr %595, i64 2
  store i8 %594, ptr %596, align 1, !tbaa !11
  %597 = load i64, ptr %32, align 8, !tbaa !9
  %598 = ashr i64 %597, 3
  %599 = trunc i64 %598 to i8
  %600 = load ptr, ptr %4, align 8, !tbaa !5
  %601 = getelementptr inbounds i8, ptr %600, i64 3
  store i8 %599, ptr %601, align 1, !tbaa !11
  %602 = load i64, ptr %32, align 8, !tbaa !9
  %603 = ashr i64 %602, 11
  %604 = trunc i64 %603 to i8
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  %606 = getelementptr inbounds i8, ptr %605, i64 4
  store i8 %604, ptr %606, align 1, !tbaa !11
  %607 = load i64, ptr %32, align 8, !tbaa !9
  %608 = ashr i64 %607, 19
  %609 = load i64, ptr %33, align 8, !tbaa !9
  %610 = shl i64 %609, 2
  %611 = or i64 %608, %610
  %612 = trunc i64 %611 to i8
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  %614 = getelementptr inbounds i8, ptr %613, i64 5
  store i8 %612, ptr %614, align 1, !tbaa !11
  %615 = load i64, ptr %33, align 8, !tbaa !9
  %616 = ashr i64 %615, 6
  %617 = trunc i64 %616 to i8
  %618 = load ptr, ptr %4, align 8, !tbaa !5
  %619 = getelementptr inbounds i8, ptr %618, i64 6
  store i8 %617, ptr %619, align 1, !tbaa !11
  %620 = load i64, ptr %33, align 8, !tbaa !9
  %621 = ashr i64 %620, 14
  %622 = load i64, ptr %34, align 8, !tbaa !9
  %623 = shl i64 %622, 7
  %624 = or i64 %621, %623
  %625 = trunc i64 %624 to i8
  %626 = load ptr, ptr %4, align 8, !tbaa !5
  %627 = getelementptr inbounds i8, ptr %626, i64 7
  store i8 %625, ptr %627, align 1, !tbaa !11
  %628 = load i64, ptr %34, align 8, !tbaa !9
  %629 = ashr i64 %628, 1
  %630 = trunc i64 %629 to i8
  %631 = load ptr, ptr %4, align 8, !tbaa !5
  %632 = getelementptr inbounds i8, ptr %631, i64 8
  store i8 %630, ptr %632, align 1, !tbaa !11
  %633 = load i64, ptr %34, align 8, !tbaa !9
  %634 = ashr i64 %633, 9
  %635 = trunc i64 %634 to i8
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = getelementptr inbounds i8, ptr %636, i64 9
  store i8 %635, ptr %637, align 1, !tbaa !11
  %638 = load i64, ptr %34, align 8, !tbaa !9
  %639 = ashr i64 %638, 17
  %640 = load i64, ptr %35, align 8, !tbaa !9
  %641 = shl i64 %640, 4
  %642 = or i64 %639, %641
  %643 = trunc i64 %642 to i8
  %644 = load ptr, ptr %4, align 8, !tbaa !5
  %645 = getelementptr inbounds i8, ptr %644, i64 10
  store i8 %643, ptr %645, align 1, !tbaa !11
  %646 = load i64, ptr %35, align 8, !tbaa !9
  %647 = ashr i64 %646, 4
  %648 = trunc i64 %647 to i8
  %649 = load ptr, ptr %4, align 8, !tbaa !5
  %650 = getelementptr inbounds i8, ptr %649, i64 11
  store i8 %648, ptr %650, align 1, !tbaa !11
  %651 = load i64, ptr %35, align 8, !tbaa !9
  %652 = ashr i64 %651, 12
  %653 = trunc i64 %652 to i8
  %654 = load ptr, ptr %4, align 8, !tbaa !5
  %655 = getelementptr inbounds i8, ptr %654, i64 12
  store i8 %653, ptr %655, align 1, !tbaa !11
  %656 = load i64, ptr %35, align 8, !tbaa !9
  %657 = ashr i64 %656, 20
  %658 = load i64, ptr %36, align 8, !tbaa !9
  %659 = shl i64 %658, 1
  %660 = or i64 %657, %659
  %661 = trunc i64 %660 to i8
  %662 = load ptr, ptr %4, align 8, !tbaa !5
  %663 = getelementptr inbounds i8, ptr %662, i64 13
  store i8 %661, ptr %663, align 1, !tbaa !11
  %664 = load i64, ptr %36, align 8, !tbaa !9
  %665 = ashr i64 %664, 7
  %666 = trunc i64 %665 to i8
  %667 = load ptr, ptr %4, align 8, !tbaa !5
  %668 = getelementptr inbounds i8, ptr %667, i64 14
  store i8 %666, ptr %668, align 1, !tbaa !11
  %669 = load i64, ptr %36, align 8, !tbaa !9
  %670 = ashr i64 %669, 15
  %671 = load i64, ptr %37, align 8, !tbaa !9
  %672 = shl i64 %671, 6
  %673 = or i64 %670, %672
  %674 = trunc i64 %673 to i8
  %675 = load ptr, ptr %4, align 8, !tbaa !5
  %676 = getelementptr inbounds i8, ptr %675, i64 15
  store i8 %674, ptr %676, align 1, !tbaa !11
  %677 = load i64, ptr %37, align 8, !tbaa !9
  %678 = ashr i64 %677, 2
  %679 = trunc i64 %678 to i8
  %680 = load ptr, ptr %4, align 8, !tbaa !5
  %681 = getelementptr inbounds i8, ptr %680, i64 16
  store i8 %679, ptr %681, align 1, !tbaa !11
  %682 = load i64, ptr %37, align 8, !tbaa !9
  %683 = ashr i64 %682, 10
  %684 = trunc i64 %683 to i8
  %685 = load ptr, ptr %4, align 8, !tbaa !5
  %686 = getelementptr inbounds i8, ptr %685, i64 17
  store i8 %684, ptr %686, align 1, !tbaa !11
  %687 = load i64, ptr %37, align 8, !tbaa !9
  %688 = ashr i64 %687, 18
  %689 = load i64, ptr %38, align 8, !tbaa !9
  %690 = shl i64 %689, 3
  %691 = or i64 %688, %690
  %692 = trunc i64 %691 to i8
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = getelementptr inbounds i8, ptr %693, i64 18
  store i8 %692, ptr %694, align 1, !tbaa !11
  %695 = load i64, ptr %38, align 8, !tbaa !9
  %696 = ashr i64 %695, 5
  %697 = trunc i64 %696 to i8
  %698 = load ptr, ptr %4, align 8, !tbaa !5
  %699 = getelementptr inbounds i8, ptr %698, i64 19
  store i8 %697, ptr %699, align 1, !tbaa !11
  %700 = load i64, ptr %38, align 8, !tbaa !9
  %701 = ashr i64 %700, 13
  %702 = trunc i64 %701 to i8
  %703 = load ptr, ptr %4, align 8, !tbaa !5
  %704 = getelementptr inbounds i8, ptr %703, i64 20
  store i8 %702, ptr %704, align 1, !tbaa !11
  %705 = load i64, ptr %39, align 8, !tbaa !9
  %706 = ashr i64 %705, 0
  %707 = trunc i64 %706 to i8
  %708 = load ptr, ptr %4, align 8, !tbaa !5
  %709 = getelementptr inbounds i8, ptr %708, i64 21
  store i8 %707, ptr %709, align 1, !tbaa !11
  %710 = load i64, ptr %39, align 8, !tbaa !9
  %711 = ashr i64 %710, 8
  %712 = trunc i64 %711 to i8
  %713 = load ptr, ptr %4, align 8, !tbaa !5
  %714 = getelementptr inbounds i8, ptr %713, i64 22
  store i8 %712, ptr %714, align 1, !tbaa !11
  %715 = load i64, ptr %39, align 8, !tbaa !9
  %716 = ashr i64 %715, 16
  %717 = load i64, ptr %40, align 8, !tbaa !9
  %718 = shl i64 %717, 5
  %719 = or i64 %716, %718
  %720 = trunc i64 %719 to i8
  %721 = load ptr, ptr %4, align 8, !tbaa !5
  %722 = getelementptr inbounds i8, ptr %721, i64 23
  store i8 %720, ptr %722, align 1, !tbaa !11
  %723 = load i64, ptr %40, align 8, !tbaa !9
  %724 = ashr i64 %723, 3
  %725 = trunc i64 %724 to i8
  %726 = load ptr, ptr %4, align 8, !tbaa !5
  %727 = getelementptr inbounds i8, ptr %726, i64 24
  store i8 %725, ptr %727, align 1, !tbaa !11
  %728 = load i64, ptr %40, align 8, !tbaa !9
  %729 = ashr i64 %728, 11
  %730 = trunc i64 %729 to i8
  %731 = load ptr, ptr %4, align 8, !tbaa !5
  %732 = getelementptr inbounds i8, ptr %731, i64 25
  store i8 %730, ptr %732, align 1, !tbaa !11
  %733 = load i64, ptr %40, align 8, !tbaa !9
  %734 = ashr i64 %733, 19
  %735 = load i64, ptr %41, align 8, !tbaa !9
  %736 = shl i64 %735, 2
  %737 = or i64 %734, %736
  %738 = trunc i64 %737 to i8
  %739 = load ptr, ptr %4, align 8, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %739, i64 26
  store i8 %738, ptr %740, align 1, !tbaa !11
  %741 = load i64, ptr %41, align 8, !tbaa !9
  %742 = ashr i64 %741, 6
  %743 = trunc i64 %742 to i8
  %744 = load ptr, ptr %4, align 8, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %744, i64 27
  store i8 %743, ptr %745, align 1, !tbaa !11
  %746 = load i64, ptr %41, align 8, !tbaa !9
  %747 = ashr i64 %746, 14
  %748 = load i64, ptr %42, align 8, !tbaa !9
  %749 = shl i64 %748, 7
  %750 = or i64 %747, %749
  %751 = trunc i64 %750 to i8
  %752 = load ptr, ptr %4, align 8, !tbaa !5
  %753 = getelementptr inbounds i8, ptr %752, i64 28
  store i8 %751, ptr %753, align 1, !tbaa !11
  %754 = load i64, ptr %42, align 8, !tbaa !9
  %755 = ashr i64 %754, 1
  %756 = trunc i64 %755 to i8
  %757 = load ptr, ptr %4, align 8, !tbaa !5
  %758 = getelementptr inbounds i8, ptr %757, i64 29
  store i8 %756, ptr %758, align 1, !tbaa !11
  %759 = load i64, ptr %42, align 8, !tbaa !9
  %760 = ashr i64 %759, 9
  %761 = trunc i64 %760 to i8
  %762 = load ptr, ptr %4, align 8, !tbaa !5
  %763 = getelementptr inbounds i8, ptr %762, i64 30
  store i8 %761, ptr %763, align 1, !tbaa !11
  %764 = load i64, ptr %42, align 8, !tbaa !9
  %765 = ashr i64 %764, 17
  %766 = trunc i64 %765 to i8
  %767 = load ptr, ptr %4, align 8, !tbaa !5
  %768 = getelementptr inbounds i8, ptr %767, i64 31
  store i8 %766, ptr %768, align 1, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #2
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #2
  ret void
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"long", !7, i64 0}
!11 = !{!7, !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

; Function Attrs: nounwind uwtable
declare hidden i64 @load_4(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i64 @load_3(ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
define dso_local void @sc_sub(ptr nocapture noundef writeonly %0, ptr noundef %1, ptr noundef %2) local_unnamed_addr #0 {
  %4 = tail call i64 @load_3(ptr noundef %1)
  %5 = and i64 %4, 2097151
  %6 = getelementptr inbounds i8, ptr %1, i64 2
  %7 = tail call i64 @load_4(ptr noundef nonnull %6)
  %8 = lshr i64 %7, 5
  %9 = and i64 %8, 2097151
  %10 = getelementptr inbounds i8, ptr %1, i64 5
  %11 = tail call i64 @load_3(ptr noundef nonnull %10)
  %12 = lshr i64 %11, 2
  %13 = and i64 %12, 2097151
  %14 = getelementptr inbounds i8, ptr %1, i64 7
  %15 = tail call i64 @load_4(ptr noundef nonnull %14)
  %16 = lshr i64 %15, 7
  %17 = and i64 %16, 2097151
  %18 = getelementptr inbounds i8, ptr %1, i64 10
  %19 = tail call i64 @load_4(ptr noundef nonnull %18)
  %20 = lshr i64 %19, 4
  %21 = and i64 %20, 2097151
  %22 = getelementptr inbounds i8, ptr %1, i64 13
  %23 = tail call i64 @load_3(ptr noundef nonnull %22)
  %24 = lshr i64 %23, 1
  %25 = and i64 %24, 2097151
  %26 = getelementptr inbounds i8, ptr %1, i64 15
  %27 = tail call i64 @load_4(ptr noundef nonnull %26)
  %28 = lshr i64 %27, 6
  %29 = and i64 %28, 2097151
  %30 = getelementptr inbounds i8, ptr %1, i64 18
  %31 = tail call i64 @load_3(ptr noundef nonnull %30)
  %32 = lshr i64 %31, 3
  %33 = and i64 %32, 2097151
  %34 = getelementptr inbounds i8, ptr %1, i64 21
  %35 = tail call i64 @load_3(ptr noundef nonnull %34)
  %36 = and i64 %35, 2097151
  %37 = getelementptr inbounds i8, ptr %1, i64 23
  %38 = tail call i64 @load_4(ptr noundef nonnull %37)
  %39 = lshr i64 %38, 5
  %40 = and i64 %39, 2097151
  %41 = getelementptr inbounds i8, ptr %1, i64 26
  %42 = tail call i64 @load_3(ptr noundef nonnull %41)
  %43 = lshr i64 %42, 2
  %44 = and i64 %43, 2097151
  %45 = getelementptr inbounds i8, ptr %1, i64 28
  %46 = tail call i64 @load_4(ptr noundef nonnull %45)
  %47 = lshr i64 %46, 7
  %48 = tail call i64 @load_3(ptr noundef %2)
  %49 = and i64 %48, 2097151
  %50 = getelementptr inbounds i8, ptr %2, i64 2
  %51 = tail call i64 @load_4(ptr noundef nonnull %50)
  %52 = lshr i64 %51, 5
  %53 = and i64 %52, 2097151
  %54 = getelementptr inbounds i8, ptr %2, i64 5
  %55 = tail call i64 @load_3(ptr noundef nonnull %54)
  %56 = lshr i64 %55, 2
  %57 = and i64 %56, 2097151
  %58 = getelementptr inbounds i8, ptr %2, i64 7
  %59 = tail call i64 @load_4(ptr noundef nonnull %58)
  %60 = lshr i64 %59, 7
  %61 = and i64 %60, 2097151
  %62 = getelementptr inbounds i8, ptr %2, i64 10
  %63 = tail call i64 @load_4(ptr noundef nonnull %62)
  %64 = lshr i64 %63, 4
  %65 = and i64 %64, 2097151
  %66 = getelementptr inbounds i8, ptr %2, i64 13
  %67 = tail call i64 @load_3(ptr noundef nonnull %66)
  %68 = lshr i64 %67, 1
  %69 = and i64 %68, 2097151
  %70 = getelementptr inbounds i8, ptr %2, i64 15
  %71 = tail call i64 @load_4(ptr noundef nonnull %70)
  %72 = lshr i64 %71, 6
  %73 = and i64 %72, 2097151
  %74 = getelementptr inbounds i8, ptr %2, i64 18
  %75 = tail call i64 @load_3(ptr noundef nonnull %74)
  %76 = lshr i64 %75, 3
  %77 = and i64 %76, 2097151
  %78 = getelementptr inbounds i8, ptr %2, i64 21
  %79 = tail call i64 @load_3(ptr noundef nonnull %78)
  %80 = and i64 %79, 2097151
  %81 = getelementptr inbounds i8, ptr %2, i64 23
  %82 = tail call i64 @load_4(ptr noundef nonnull %81)
  %83 = lshr i64 %82, 5
  %84 = and i64 %83, 2097151
  %85 = getelementptr inbounds i8, ptr %2, i64 26
  %86 = tail call i64 @load_3(ptr noundef nonnull %85)
  %87 = lshr i64 %86, 2
  %88 = and i64 %87, 2097151
  %89 = getelementptr inbounds i8, ptr %2, i64 28
  %90 = tail call i64 @load_4(ptr noundef nonnull %89)
  %91 = lshr i64 %90, 7
  %92 = sub nsw i64 %5, %49
  %93 = sub nsw i64 %9, %53
  %94 = sub nsw i64 %13, %57
  %95 = sub nsw i64 %17, %61
  %96 = sub nsw i64 %21, %65
  %97 = sub nsw i64 %25, %69
  %98 = sub nsw i64 %29, %73
  %99 = sub nsw i64 %33, %77
  %100 = sub nsw i64 %36, %80
  %101 = sub nsw i64 %40, %84
  %102 = sub nsw i64 %44, %88
  %103 = sub nsw i64 %47, %91
  %104 = add nsw i64 %92, 1048576
  %105 = ashr i64 %104, 21
  %106 = add nsw i64 %93, %105
  %107 = and i64 %104, -2097152
  %108 = sub nsw i64 %92, %107
  %109 = add nsw i64 %94, 1048576
  %110 = ashr i64 %109, 21
  %111 = add nsw i64 %110, %95
  %112 = and i64 %109, -2097152
  %113 = sub nsw i64 %94, %112
  %114 = add nsw i64 %96, 1048576
  %115 = ashr i64 %114, 21
  %116 = add nsw i64 %115, %97
  %117 = and i64 %114, -2097152
  %118 = sub nsw i64 %96, %117
  %119 = add nsw i64 %98, 1048576
  %120 = ashr i64 %119, 21
  %121 = add nsw i64 %120, %99
  %122 = and i64 %119, -2097152
  %123 = sub nsw i64 %98, %122
  %124 = add nsw i64 %100, 1048576
  %125 = ashr i64 %124, 21
  %126 = add nsw i64 %101, %125
  %127 = and i64 %124, -2097152
  %128 = sub nsw i64 %100, %127
  %129 = add nsw i64 %102, 1048576
  %130 = ashr i64 %129, 21
  %131 = add nsw i64 %130, %103
  %132 = and i64 %129, -2097152
  %133 = sub nsw i64 %102, %132
  %134 = add nsw i64 %106, 1048576
  %135 = ashr i64 %134, 21
  %136 = add nsw i64 %113, %135
  %137 = and i64 %134, -2097152
  %138 = sub nsw i64 %106, %137
  %139 = add nsw i64 %111, 1048576
  %140 = ashr i64 %139, 21
  %141 = add nsw i64 %118, %140
  %142 = and i64 %139, -2097152
  %143 = sub nsw i64 %111, %142
  %144 = add nsw i64 %116, 1048576
  %145 = ashr i64 %144, 21
  %146 = add nsw i64 %123, %145
  %147 = and i64 %144, -2097152
  %148 = sub nsw i64 %116, %147
  %149 = add nsw i64 %121, 1048576
  %150 = ashr i64 %149, 21
  %151 = add nsw i64 %128, %150
  %152 = and i64 %149, -2097152
  %153 = sub nsw i64 %121, %152
  %154 = add nsw i64 %126, 1048576
  %155 = ashr i64 %154, 21
  %156 = add nsw i64 %133, %155
  %157 = and i64 %154, -2097152
  %158 = sub nsw i64 %126, %157
  %159 = add nsw i64 %131, 1048576
  %160 = ashr i64 %159, 21
  %161 = and i64 %159, -2097152
  %162 = sub nsw i64 %131, %161
  %163 = mul nsw i64 %160, 666643
  %164 = add nsw i64 %163, %108
  %165 = mul nsw i64 %160, 470296
  %166 = add nsw i64 %138, %165
  %167 = mul nsw i64 %160, 654183
  %168 = add nsw i64 %136, %167
  %.neg = mul nsw i64 %160, -997805
  %169 = add nsw i64 %143, %.neg
  %170 = mul nsw i64 %160, 136657
  %171 = add nsw i64 %141, %170
  %.neg320 = mul nsw i64 %160, -683901
  %172 = add nsw i64 %148, %.neg320
  %173 = ashr i64 %164, 21
  %174 = add nsw i64 %166, %173
  %175 = and i64 %164, 2097151
  %176 = ashr i64 %174, 21
  %177 = add nsw i64 %168, %176
  %178 = and i64 %174, 2097151
  %179 = ashr i64 %177, 21
  %180 = add nsw i64 %169, %179
  %181 = and i64 %177, 2097151
  %182 = ashr i64 %180, 21
  %183 = add nsw i64 %171, %182
  %184 = and i64 %180, 2097151
  %185 = ashr i64 %183, 21
  %186 = add nsw i64 %172, %185
  %187 = and i64 %183, 2097151
  %188 = ashr i64 %186, 21
  %189 = add nsw i64 %146, %188
  %190 = and i64 %186, 2097151
  %191 = ashr i64 %189, 21
  %192 = add nsw i64 %191, %153
  %193 = and i64 %189, 2097151
  %194 = ashr i64 %192, 21
  %195 = add nsw i64 %151, %194
  %196 = and i64 %192, 2097151
  %197 = ashr i64 %195, 21
  %198 = add nsw i64 %197, %158
  %199 = and i64 %195, 2097151
  %200 = ashr i64 %198, 21
  %201 = add nsw i64 %156, %200
  %202 = and i64 %198, 2097151
  %203 = ashr i64 %201, 21
  %204 = add nsw i64 %203, %162
  %205 = and i64 %201, 2097151
  %206 = ashr i64 %204, 21
  %207 = and i64 %204, 2097151
  %208 = mul nsw i64 %206, 666643
  %209 = add nsw i64 %208, %175
  %210 = mul nsw i64 %206, 470296
  %211 = add nsw i64 %210, %178
  %212 = mul nsw i64 %206, 654183
  %213 = add nsw i64 %212, %181
  %.neg321 = mul nsw i64 %206, -997805
  %214 = add nsw i64 %.neg321, %184
  %215 = mul nsw i64 %206, 136657
  %216 = add nsw i64 %215, %187
  %.neg322 = mul nsw i64 %206, -683901
  %217 = add nsw i64 %.neg322, %190
  %218 = ashr i64 %209, 21
  %219 = add nsw i64 %211, %218
  %220 = ashr i64 %219, 21
  %221 = add nsw i64 %213, %220
  %222 = and i64 %219, 2097151
  %223 = ashr i64 %221, 21
  %224 = add nsw i64 %214, %223
  %225 = and i64 %221, 2097151
  %226 = ashr i64 %224, 21
  %227 = add nsw i64 %216, %226
  %228 = and i64 %224, 2097151
  %229 = ashr i64 %227, 21
  %230 = add nsw i64 %217, %229
  %231 = and i64 %227, 2097151
  %232 = ashr i64 %230, 21
  %233 = add nsw i64 %232, %193
  %234 = and i64 %230, 2097151
  %235 = ashr i64 %233, 21
  %236 = add nsw i64 %235, %196
  %237 = and i64 %233, 2097151
  %238 = ashr i64 %236, 21
  %239 = add nsw i64 %238, %199
  %240 = ashr i64 %239, 21
  %241 = add nsw i64 %240, %202
  %242 = ashr i64 %241, 21
  %243 = add nsw i64 %242, %205
  %244 = and i64 %241, 2097151
  %245 = ashr i64 %243, 21
  %246 = add nsw i64 %245, %207
  %247 = and i64 %243, 2097151
  %248 = trunc i64 %209 to i8
  store i8 %248, ptr %0, align 1, !tbaa !5
  %249 = lshr i64 %209, 8
  %250 = trunc i64 %249 to i8
  %251 = getelementptr inbounds i8, ptr %0, i64 1
  store i8 %250, ptr %251, align 1, !tbaa !5
  %252 = lshr i64 %209, 16
  %253 = and i64 %252, 31
  %254 = shl nuw nsw i64 %222, 5
  %255 = or disjoint i64 %254, %253
  %256 = trunc i64 %255 to i8
  %257 = getelementptr inbounds i8, ptr %0, i64 2
  store i8 %256, ptr %257, align 1, !tbaa !5
  %258 = lshr i64 %219, 3
  %259 = trunc i64 %258 to i8
  %260 = getelementptr inbounds i8, ptr %0, i64 3
  store i8 %259, ptr %260, align 1, !tbaa !5
  %261 = lshr i64 %219, 11
  %262 = trunc i64 %261 to i8
  %263 = getelementptr inbounds i8, ptr %0, i64 4
  store i8 %262, ptr %263, align 1, !tbaa !5
  %264 = lshr i64 %222, 19
  %265 = shl nuw nsw i64 %225, 2
  %266 = or disjoint i64 %265, %264
  %267 = trunc i64 %266 to i8
  %268 = getelementptr inbounds i8, ptr %0, i64 5
  store i8 %267, ptr %268, align 1, !tbaa !5
  %269 = lshr i64 %221, 6
  %270 = trunc i64 %269 to i8
  %271 = getelementptr inbounds i8, ptr %0, i64 6
  store i8 %270, ptr %271, align 1, !tbaa !5
  %272 = lshr i64 %225, 14
  %273 = shl nuw nsw i64 %228, 7
  %274 = or disjoint i64 %273, %272
  %275 = trunc i64 %274 to i8
  %276 = getelementptr inbounds i8, ptr %0, i64 7
  store i8 %275, ptr %276, align 1, !tbaa !5
  %277 = lshr i64 %224, 1
  %278 = trunc i64 %277 to i8
  %279 = getelementptr inbounds i8, ptr %0, i64 8
  store i8 %278, ptr %279, align 1, !tbaa !5
  %280 = lshr i64 %224, 9
  %281 = trunc i64 %280 to i8
  %282 = getelementptr inbounds i8, ptr %0, i64 9
  store i8 %281, ptr %282, align 1, !tbaa !5
  %283 = lshr i64 %228, 17
  %284 = shl nuw nsw i64 %231, 4
  %285 = or disjoint i64 %284, %283
  %286 = trunc i64 %285 to i8
  %287 = getelementptr inbounds i8, ptr %0, i64 10
  store i8 %286, ptr %287, align 1, !tbaa !5
  %288 = lshr i64 %227, 4
  %289 = trunc i64 %288 to i8
  %290 = getelementptr inbounds i8, ptr %0, i64 11
  store i8 %289, ptr %290, align 1, !tbaa !5
  %291 = lshr i64 %227, 12
  %292 = trunc i64 %291 to i8
  %293 = getelementptr inbounds i8, ptr %0, i64 12
  store i8 %292, ptr %293, align 1, !tbaa !5
  %294 = lshr i64 %231, 20
  %295 = shl nuw nsw i64 %234, 1
  %296 = or disjoint i64 %295, %294
  %297 = trunc i64 %296 to i8
  %298 = getelementptr inbounds i8, ptr %0, i64 13
  store i8 %297, ptr %298, align 1, !tbaa !5
  %299 = lshr i64 %230, 7
  %300 = trunc i64 %299 to i8
  %301 = getelementptr inbounds i8, ptr %0, i64 14
  store i8 %300, ptr %301, align 1, !tbaa !5
  %302 = lshr i64 %234, 15
  %303 = shl nuw nsw i64 %237, 6
  %304 = or disjoint i64 %303, %302
  %305 = trunc i64 %304 to i8
  %306 = getelementptr inbounds i8, ptr %0, i64 15
  store i8 %305, ptr %306, align 1, !tbaa !5
  %307 = lshr i64 %233, 2
  %308 = trunc i64 %307 to i8
  %309 = getelementptr inbounds i8, ptr %0, i64 16
  store i8 %308, ptr %309, align 1, !tbaa !5
  %310 = lshr i64 %233, 10
  %311 = trunc i64 %310 to i8
  %312 = getelementptr inbounds i8, ptr %0, i64 17
  store i8 %311, ptr %312, align 1, !tbaa !5
  %313 = lshr i64 %237, 18
  %314 = shl nsw i64 %236, 3
  %315 = or disjoint i64 %314, %313
  %316 = trunc i64 %315 to i8
  %317 = getelementptr inbounds i8, ptr %0, i64 18
  store i8 %316, ptr %317, align 1, !tbaa !5
  %318 = lshr i64 %236, 5
  %319 = trunc i64 %318 to i8
  %320 = getelementptr inbounds i8, ptr %0, i64 19
  store i8 %319, ptr %320, align 1, !tbaa !5
  %321 = lshr i64 %236, 13
  %322 = trunc i64 %321 to i8
  %323 = getelementptr inbounds i8, ptr %0, i64 20
  store i8 %322, ptr %323, align 1, !tbaa !5
  %324 = trunc i64 %239 to i8
  %325 = getelementptr inbounds i8, ptr %0, i64 21
  store i8 %324, ptr %325, align 1, !tbaa !5
  %326 = lshr i64 %239, 8
  %327 = trunc i64 %326 to i8
  %328 = getelementptr inbounds i8, ptr %0, i64 22
  store i8 %327, ptr %328, align 1, !tbaa !5
  %329 = lshr i64 %239, 16
  %330 = and i64 %329, 31
  %331 = shl nuw nsw i64 %244, 5
  %332 = or disjoint i64 %331, %330
  %333 = trunc i64 %332 to i8
  %334 = getelementptr inbounds i8, ptr %0, i64 23
  store i8 %333, ptr %334, align 1, !tbaa !5
  %335 = lshr i64 %241, 3
  %336 = trunc i64 %335 to i8
  %337 = getelementptr inbounds i8, ptr %0, i64 24
  store i8 %336, ptr %337, align 1, !tbaa !5
  %338 = lshr i64 %241, 11
  %339 = trunc i64 %338 to i8
  %340 = getelementptr inbounds i8, ptr %0, i64 25
  store i8 %339, ptr %340, align 1, !tbaa !5
  %341 = lshr i64 %244, 19
  %342 = shl nuw nsw i64 %247, 2
  %343 = or disjoint i64 %342, %341
  %344 = trunc i64 %343 to i8
  %345 = getelementptr inbounds i8, ptr %0, i64 26
  store i8 %344, ptr %345, align 1, !tbaa !5
  %346 = lshr i64 %243, 6
  %347 = trunc i64 %346 to i8
  %348 = getelementptr inbounds i8, ptr %0, i64 27
  store i8 %347, ptr %348, align 1, !tbaa !5
  %349 = lshr i64 %247, 14
  %350 = shl nsw i64 %246, 7
  %351 = or disjoint i64 %350, %349
  %352 = trunc i64 %351 to i8
  %353 = getelementptr inbounds i8, ptr %0, i64 28
  store i8 %352, ptr %353, align 1, !tbaa !5
  %354 = lshr i64 %246, 1
  %355 = trunc i64 %354 to i8
  %356 = getelementptr inbounds i8, ptr %0, i64 29
  store i8 %355, ptr %356, align 1, !tbaa !5
  %357 = lshr i64 %246, 9
  %358 = trunc i64 %357 to i8
  %359 = getelementptr inbounds i8, ptr %0, i64 30
  store i8 %358, ptr %359, align 1, !tbaa !5
  %360 = lshr i64 %246, 17
  %361 = trunc i64 %360 to i8
  %362 = getelementptr inbounds i8, ptr %0, i64 31
  store i8 %361, ptr %362, align 1, !tbaa !5
  ret void
}

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,TailCallElimPass