; LLVM IR from specinfo-ua/UAPKI :: library/uapkic/src (math-gf2m-internal)

; 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"

%struct.Dword_st = type { i64, i64 }

; Function Attrs: nounwind uwtable
define dso_local void @gf2m_mul_64_fast(i64 noundef %0, i64 noundef %1, ptr noundef %2) #0 {
  %4 = alloca i64, align 8
  %5 = alloca i64, align 8
  %6 = alloca ptr, align 8
  store i64 %0, ptr %4, align 8, !tbaa !5
  store i64 %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !9
  %7 = load ptr, ptr %6, align 8, !tbaa !9
  %8 = getelementptr inbounds %struct.Dword_st, ptr %7, i32 0, i32 1
  store i64 0, ptr %8, align 8, !tbaa !11
  %9 = load ptr, ptr %6, align 8, !tbaa !9
  %10 = getelementptr inbounds %struct.Dword_st, ptr %9, i32 0, i32 0
  store i64 0, ptr %10, align 8, !tbaa !13
  %11 = load i64, ptr %5, align 8, !tbaa !5
  %12 = and i64 %11, -9223372036854775808
  %13 = icmp ne i64 %12, 0
  br i1 %13, label %14, label %27

14:                                               ; preds = %3
  %15 = load i64, ptr %4, align 8, !tbaa !5
  %16 = lshr i64 %15, 1
  %17 = load ptr, ptr %6, align 8, !tbaa !9
  %18 = getelementptr inbounds %struct.Dword_st, ptr %17, i32 0, i32 1
  %19 = load i64, ptr %18, align 8, !tbaa !11
  %20 = xor i64 %19, %16
  store i64 %20, ptr %18, align 8, !tbaa !11
  %21 = load i64, ptr %4, align 8, !tbaa !5
  %22 = shl i64 %21, 63
  %23 = load ptr, ptr %6, align 8, !tbaa !9
  %24 = getelementptr inbounds %struct.Dword_st, ptr %23, i32 0, i32 0
  %25 = load i64, ptr %24, align 8, !tbaa !13
  %26 = xor i64 %25, %22
  store i64 %26, ptr %24, align 8, !tbaa !13
  br label %27

27:                                               ; preds = %14, %3
  %28 = load i64, ptr %5, align 8, !tbaa !5
  %29 = and i64 %28, 4611686018427387904
  %30 = icmp ne i64 %29, 0
  br i1 %30, label %31, label %44

31:                                               ; preds = %27
  %32 = load i64, ptr %4, align 8, !tbaa !5
  %33 = lshr i64 %32, 2
  %34 = load ptr, ptr %6, align 8, !tbaa !9
  %35 = getelementptr inbounds %struct.Dword_st, ptr %34, i32 0, i32 1
  %36 = load i64, ptr %35, align 8, !tbaa !11
  %37 = xor i64 %36, %33
  store i64 %37, ptr %35, align 8, !tbaa !11
  %38 = load i64, ptr %4, align 8, !tbaa !5
  %39 = shl i64 %38, 62
  %40 = load ptr, ptr %6, align 8, !tbaa !9
  %41 = getelementptr inbounds %struct.Dword_st, ptr %40, i32 0, i32 0
  %42 = load i64, ptr %41, align 8, !tbaa !13
  %43 = xor i64 %42, %39
  store i64 %43, ptr %41, align 8, !tbaa !13
  br label %44

44:                                               ; preds = %31, %27
  %45 = load i64, ptr %5, align 8, !tbaa !5
  %46 = and i64 %45, 2305843009213693952
  %47 = icmp ne i64 %46, 0
  br i1 %47, label %48, label %61

48:                                               ; preds = %44
  %49 = load i64, ptr %4, align 8, !tbaa !5
  %50 = lshr i64 %49, 3
  %51 = load ptr, ptr %6, align 8, !tbaa !9
  %52 = getelementptr inbounds %struct.Dword_st, ptr %51, i32 0, i32 1
  %53 = load i64, ptr %52, align 8, !tbaa !11
  %54 = xor i64 %53, %50
  store i64 %54, ptr %52, align 8, !tbaa !11
  %55 = load i64, ptr %4, align 8, !tbaa !5
  %56 = shl i64 %55, 61
  %57 = load ptr, ptr %6, align 8, !tbaa !9
  %58 = getelementptr inbounds %struct.Dword_st, ptr %57, i32 0, i32 0
  %59 = load i64, ptr %58, align 8, !tbaa !13
  %60 = xor i64 %59, %56
  store i64 %60, ptr %58, align 8, !tbaa !13
  br label %61

61:                                               ; preds = %48, %44
  %62 = load i64, ptr %5, align 8, !tbaa !5
  %63 = and i64 %62, 1152921504606846976
  %64 = icmp ne i64 %63, 0
  br i1 %64, label %65, label %78

65:                                               ; preds = %61
  %66 = load i64, ptr %4, align 8, !tbaa !5
  %67 = lshr i64 %66, 4
  %68 = load ptr, ptr %6, align 8, !tbaa !9
  %69 = getelementptr inbounds %struct.Dword_st, ptr %68, i32 0, i32 1
  %70 = load i64, ptr %69, align 8, !tbaa !11
  %71 = xor i64 %70, %67
  store i64 %71, ptr %69, align 8, !tbaa !11
  %72 = load i64, ptr %4, align 8, !tbaa !5
  %73 = shl i64 %72, 60
  %74 = load ptr, ptr %6, align 8, !tbaa !9
  %75 = getelementptr inbounds %struct.Dword_st, ptr %74, i32 0, i32 0
  %76 = load i64, ptr %75, align 8, !tbaa !13
  %77 = xor i64 %76, %73
  store i64 %77, ptr %75, align 8, !tbaa !13
  br label %78

78:                                               ; preds = %65, %61
  %79 = load i64, ptr %5, align 8, !tbaa !5
  %80 = and i64 %79, 576460752303423488
  %81 = icmp ne i64 %80, 0
  br i1 %81, label %82, label %95

82:                                               ; preds = %78
  %83 = load i64, ptr %4, align 8, !tbaa !5
  %84 = lshr i64 %83, 5
  %85 = load ptr, ptr %6, align 8, !tbaa !9
  %86 = getelementptr inbounds %struct.Dword_st, ptr %85, i32 0, i32 1
  %87 = load i64, ptr %86, align 8, !tbaa !11
  %88 = xor i64 %87, %84
  store i64 %88, ptr %86, align 8, !tbaa !11
  %89 = load i64, ptr %4, align 8, !tbaa !5
  %90 = shl i64 %89, 59
  %91 = load ptr, ptr %6, align 8, !tbaa !9
  %92 = getelementptr inbounds %struct.Dword_st, ptr %91, i32 0, i32 0
  %93 = load i64, ptr %92, align 8, !tbaa !13
  %94 = xor i64 %93, %90
  store i64 %94, ptr %92, align 8, !tbaa !13
  br label %95

95:                                               ; preds = %82, %78
  %96 = load i64, ptr %5, align 8, !tbaa !5
  %97 = and i64 %96, 288230376151711744
  %98 = icmp ne i64 %97, 0
  br i1 %98, label %99, label %112

99:                                               ; preds = %95
  %100 = load i64, ptr %4, align 8, !tbaa !5
  %101 = lshr i64 %100, 6
  %102 = load ptr, ptr %6, align 8, !tbaa !9
  %103 = getelementptr inbounds %struct.Dword_st, ptr %102, i32 0, i32 1
  %104 = load i64, ptr %103, align 8, !tbaa !11
  %105 = xor i64 %104, %101
  store i64 %105, ptr %103, align 8, !tbaa !11
  %106 = load i64, ptr %4, align 8, !tbaa !5
  %107 = shl i64 %106, 58
  %108 = load ptr, ptr %6, align 8, !tbaa !9
  %109 = getelementptr inbounds %struct.Dword_st, ptr %108, i32 0, i32 0
  %110 = load i64, ptr %109, align 8, !tbaa !13
  %111 = xor i64 %110, %107
  store i64 %111, ptr %109, align 8, !tbaa !13
  br label %112

112:                                              ; preds = %99, %95
  %113 = load i64, ptr %5, align 8, !tbaa !5
  %114 = and i64 %113, 144115188075855872
  %115 = icmp ne i64 %114, 0
  br i1 %115, label %116, label %129

116:                                              ; preds = %112
  %117 = load i64, ptr %4, align 8, !tbaa !5
  %118 = lshr i64 %117, 7
  %119 = load ptr, ptr %6, align 8, !tbaa !9
  %120 = getelementptr inbounds %struct.Dword_st, ptr %119, i32 0, i32 1
  %121 = load i64, ptr %120, align 8, !tbaa !11
  %122 = xor i64 %121, %118
  store i64 %122, ptr %120, align 8, !tbaa !11
  %123 = load i64, ptr %4, align 8, !tbaa !5
  %124 = shl i64 %123, 57
  %125 = load ptr, ptr %6, align 8, !tbaa !9
  %126 = getelementptr inbounds %struct.Dword_st, ptr %125, i32 0, i32 0
  %127 = load i64, ptr %126, align 8, !tbaa !13
  %128 = xor i64 %127, %124
  store i64 %128, ptr %126, align 8, !tbaa !13
  br label %129

129:                                              ; preds = %116, %112
  %130 = load i64, ptr %5, align 8, !tbaa !5
  %131 = and i64 %130, 72057594037927936
  %132 = icmp ne i64 %131, 0
  br i1 %132, label %133, label %146

133:                                              ; preds = %129
  %134 = load i64, ptr %4, align 8, !tbaa !5
  %135 = lshr i64 %134, 8
  %136 = load ptr, ptr %6, align 8, !tbaa !9
  %137 = getelementptr inbounds %struct.Dword_st, ptr %136, i32 0, i32 1
  %138 = load i64, ptr %137, align 8, !tbaa !11
  %139 = xor i64 %138, %135
  store i64 %139, ptr %137, align 8, !tbaa !11
  %140 = load i64, ptr %4, align 8, !tbaa !5
  %141 = shl i64 %140, 56
  %142 = load ptr, ptr %6, align 8, !tbaa !9
  %143 = getelementptr inbounds %struct.Dword_st, ptr %142, i32 0, i32 0
  %144 = load i64, ptr %143, align 8, !tbaa !13
  %145 = xor i64 %144, %141
  store i64 %145, ptr %143, align 8, !tbaa !13
  br label %146

146:                                              ; preds = %133, %129
  %147 = load i64, ptr %5, align 8, !tbaa !5
  %148 = and i64 %147, 36028797018963968
  %149 = icmp ne i64 %148, 0
  br i1 %149, label %150, label %163

150:                                              ; preds = %146
  %151 = load i64, ptr %4, align 8, !tbaa !5
  %152 = lshr i64 %151, 9
  %153 = load ptr, ptr %6, align 8, !tbaa !9
  %154 = getelementptr inbounds %struct.Dword_st, ptr %153, i32 0, i32 1
  %155 = load i64, ptr %154, align 8, !tbaa !11
  %156 = xor i64 %155, %152
  store i64 %156, ptr %154, align 8, !tbaa !11
  %157 = load i64, ptr %4, align 8, !tbaa !5
  %158 = shl i64 %157, 55
  %159 = load ptr, ptr %6, align 8, !tbaa !9
  %160 = getelementptr inbounds %struct.Dword_st, ptr %159, i32 0, i32 0
  %161 = load i64, ptr %160, align 8, !tbaa !13
  %162 = xor i64 %161, %158
  store i64 %162, ptr %160, align 8, !tbaa !13
  br label %163

163:                                              ; preds = %150, %146
  %164 = load i64, ptr %5, align 8, !tbaa !5
  %165 = and i64 %164, 18014398509481984
  %166 = icmp ne i64 %165, 0
  br i1 %166, label %167, label %180

167:                                              ; preds = %163
  %168 = load i64, ptr %4, align 8, !tbaa !5
  %169 = lshr i64 %168, 10
  %170 = load ptr, ptr %6, align 8, !tbaa !9
  %171 = getelementptr inbounds %struct.Dword_st, ptr %170, i32 0, i32 1
  %172 = load i64, ptr %171, align 8, !tbaa !11
  %173 = xor i64 %172, %169
  store i64 %173, ptr %171, align 8, !tbaa !11
  %174 = load i64, ptr %4, align 8, !tbaa !5
  %175 = shl i64 %174, 54
  %176 = load ptr, ptr %6, align 8, !tbaa !9
  %177 = getelementptr inbounds %struct.Dword_st, ptr %176, i32 0, i32 0
  %178 = load i64, ptr %177, align 8, !tbaa !13
  %179 = xor i64 %178, %175
  store i64 %179, ptr %177, align 8, !tbaa !13
  br label %180

180:                                              ; preds = %167, %163
  %181 = load i64, ptr %5, align 8, !tbaa !5
  %182 = and i64 %181, 9007199254740992
  %183 = icmp ne i64 %182, 0
  br i1 %183, label %184, label %197

184:                                              ; preds = %180
  %185 = load i64, ptr %4, align 8, !tbaa !5
  %186 = lshr i64 %185, 11
  %187 = load ptr, ptr %6, align 8, !tbaa !9
  %188 = getelementptr inbounds %struct.Dword_st, ptr %187, i32 0, i32 1
  %189 = load i64, ptr %188, align 8, !tbaa !11
  %190 = xor i64 %189, %186
  store i64 %190, ptr %188, align 8, !tbaa !11
  %191 = load i64, ptr %4, align 8, !tbaa !5
  %192 = shl i64 %191, 53
  %193 = load ptr, ptr %6, align 8, !tbaa !9
  %194 = getelementptr inbounds %struct.Dword_st, ptr %193, i32 0, i32 0
  %195 = load i64, ptr %194, align 8, !tbaa !13
  %196 = xor i64 %195, %192
  store i64 %196, ptr %194, align 8, !tbaa !13
  br label %197

197:                                              ; preds = %184, %180
  %198 = load i64, ptr %5, align 8, !tbaa !5
  %199 = and i64 %198, 4503599627370496
  %200 = icmp ne i64 %199, 0
  br i1 %200, label %201, label %214

201:                                              ; preds = %197
  %202 = load i64, ptr %4, align 8, !tbaa !5
  %203 = lshr i64 %202, 12
  %204 = load ptr, ptr %6, align 8, !tbaa !9
  %205 = getelementptr inbounds %struct.Dword_st, ptr %204, i32 0, i32 1
  %206 = load i64, ptr %205, align 8, !tbaa !11
  %207 = xor i64 %206, %203
  store i64 %207, ptr %205, align 8, !tbaa !11
  %208 = load i64, ptr %4, align 8, !tbaa !5
  %209 = shl i64 %208, 52
  %210 = load ptr, ptr %6, align 8, !tbaa !9
  %211 = getelementptr inbounds %struct.Dword_st, ptr %210, i32 0, i32 0
  %212 = load i64, ptr %211, align 8, !tbaa !13
  %213 = xor i64 %212, %209
  store i64 %213, ptr %211, align 8, !tbaa !13
  br label %214

214:                                              ; preds = %201, %197
  %215 = load i64, ptr %5, align 8, !tbaa !5
  %216 = and i64 %215, 2251799813685248
  %217 = icmp ne i64 %216, 0
  br i1 %217, label %218, label %231

218:                                              ; preds = %214
  %219 = load i64, ptr %4, align 8, !tbaa !5
  %220 = lshr i64 %219, 13
  %221 = load ptr, ptr %6, align 8, !tbaa !9
  %222 = getelementptr inbounds %struct.Dword_st, ptr %221, i32 0, i32 1
  %223 = load i64, ptr %222, align 8, !tbaa !11
  %224 = xor i64 %223, %220
  store i64 %224, ptr %222, align 8, !tbaa !11
  %225 = load i64, ptr %4, align 8, !tbaa !5
  %226 = shl i64 %225, 51
  %227 = load ptr, ptr %6, align 8, !tbaa !9
  %228 = getelementptr inbounds %struct.Dword_st, ptr %227, i32 0, i32 0
  %229 = load i64, ptr %228, align 8, !tbaa !13
  %230 = xor i64 %229, %226
  store i64 %230, ptr %228, align 8, !tbaa !13
  br label %231

231:                                              ; preds = %218, %214
  %232 = load i64, ptr %5, align 8, !tbaa !5
  %233 = and i64 %232, 1125899906842624
  %234 = icmp ne i64 %233, 0
  br i1 %234, label %235, label %248

235:                                              ; preds = %231
  %236 = load i64, ptr %4, align 8, !tbaa !5
  %237 = lshr i64 %236, 14
  %238 = load ptr, ptr %6, align 8, !tbaa !9
  %239 = getelementptr inbounds %struct.Dword_st, ptr %238, i32 0, i32 1
  %240 = load i64, ptr %239, align 8, !tbaa !11
  %241 = xor i64 %240, %237
  store i64 %241, ptr %239, align 8, !tbaa !11
  %242 = load i64, ptr %4, align 8, !tbaa !5
  %243 = shl i64 %242, 50
  %244 = load ptr, ptr %6, align 8, !tbaa !9
  %245 = getelementptr inbounds %struct.Dword_st, ptr %244, i32 0, i32 0
  %246 = load i64, ptr %245, align 8, !tbaa !13
  %247 = xor i64 %246, %243
  store i64 %247, ptr %245, align 8, !tbaa !13
  br label %248

248:                                              ; preds = %235, %231
  %249 = load i64, ptr %5, align 8, !tbaa !5
  %250 = and i64 %249, 562949953421312
  %251 = icmp ne i64 %250, 0
  br i1 %251, label %252, label %265

252:                                              ; preds = %248
  %253 = load i64, ptr %4, align 8, !tbaa !5
  %254 = lshr i64 %253, 15
  %255 = load ptr, ptr %6, align 8, !tbaa !9
  %256 = getelementptr inbounds %struct.Dword_st, ptr %255, i32 0, i32 1
  %257 = load i64, ptr %256, align 8, !tbaa !11
  %258 = xor i64 %257, %254
  store i64 %258, ptr %256, align 8, !tbaa !11
  %259 = load i64, ptr %4, align 8, !tbaa !5
  %260 = shl i64 %259, 49
  %261 = load ptr, ptr %6, align 8, !tbaa !9
  %262 = getelementptr inbounds %struct.Dword_st, ptr %261, i32 0, i32 0
  %263 = load i64, ptr %262, align 8, !tbaa !13
  %264 = xor i64 %263, %260
  store i64 %264, ptr %262, align 8, !tbaa !13
  br label %265

265:                                              ; preds = %252, %248
  %266 = load i64, ptr %5, align 8, !tbaa !5
  %267 = and i64 %266, 281474976710656
  %268 = icmp ne i64 %267, 0
  br i1 %268, label %269, label %282

269:                                              ; preds = %265
  %270 = load i64, ptr %4, align 8, !tbaa !5
  %271 = lshr i64 %270, 16
  %272 = load ptr, ptr %6, align 8, !tbaa !9
  %273 = getelementptr inbounds %struct.Dword_st, ptr %272, i32 0, i32 1
  %274 = load i64, ptr %273, align 8, !tbaa !11
  %275 = xor i64 %274, %271
  store i64 %275, ptr %273, align 8, !tbaa !11
  %276 = load i64, ptr %4, align 8, !tbaa !5
  %277 = shl i64 %276, 48
  %278 = load ptr, ptr %6, align 8, !tbaa !9
  %279 = getelementptr inbounds %struct.Dword_st, ptr %278, i32 0, i32 0
  %280 = load i64, ptr %279, align 8, !tbaa !13
  %281 = xor i64 %280, %277
  store i64 %281, ptr %279, align 8, !tbaa !13
  br label %282

282:                                              ; preds = %269, %265
  %283 = load i64, ptr %5, align 8, !tbaa !5
  %284 = and i64 %283, 140737488355328
  %285 = icmp ne i64 %284, 0
  br i1 %285, label %286, label %299

286:                                              ; preds = %282
  %287 = load i64, ptr %4, align 8, !tbaa !5
  %288 = lshr i64 %287, 17
  %289 = load ptr, ptr %6, align 8, !tbaa !9
  %290 = getelementptr inbounds %struct.Dword_st, ptr %289, i32 0, i32 1
  %291 = load i64, ptr %290, align 8, !tbaa !11
  %292 = xor i64 %291, %288
  store i64 %292, ptr %290, align 8, !tbaa !11
  %293 = load i64, ptr %4, align 8, !tbaa !5
  %294 = shl i64 %293, 47
  %295 = load ptr, ptr %6, align 8, !tbaa !9
  %296 = getelementptr inbounds %struct.Dword_st, ptr %295, i32 0, i32 0
  %297 = load i64, ptr %296, align 8, !tbaa !13
  %298 = xor i64 %297, %294
  store i64 %298, ptr %296, align 8, !tbaa !13
  br label %299

299:                                              ; preds = %286, %282
  %300 = load i64, ptr %5, align 8, !tbaa !5
  %301 = and i64 %300, 70368744177664
  %302 = icmp ne i64 %301, 0
  br i1 %302, label %303, label %316

303:                                              ; preds = %299
  %304 = load i64, ptr %4, align 8, !tbaa !5
  %305 = lshr i64 %304, 18
  %306 = load ptr, ptr %6, align 8, !tbaa !9
  %307 = getelementptr inbounds %struct.Dword_st, ptr %306, i32 0, i32 1
  %308 = load i64, ptr %307, align 8, !tbaa !11
  %309 = xor i64 %308, %305
  store i64 %309, ptr %307, align 8, !tbaa !11
  %310 = load i64, ptr %4, align 8, !tbaa !5
  %311 = shl i64 %310, 46
  %312 = load ptr, ptr %6, align 8, !tbaa !9
  %313 = getelementptr inbounds %struct.Dword_st, ptr %312, i32 0, i32 0
  %314 = load i64, ptr %313, align 8, !tbaa !13
  %315 = xor i64 %314, %311
  store i64 %315, ptr %313, align 8, !tbaa !13
  br label %316

316:                                              ; preds = %303, %299
  %317 = load i64, ptr %5, align 8, !tbaa !5
  %318 = and i64 %317, 35184372088832
  %319 = icmp ne i64 %318, 0
  br i1 %319, label %320, label %333

320:                                              ; preds = %316
  %321 = load i64, ptr %4, align 8, !tbaa !5
  %322 = lshr i64 %321, 19
  %323 = load ptr, ptr %6, align 8, !tbaa !9
  %324 = getelementptr inbounds %struct.Dword_st, ptr %323, i32 0, i32 1
  %325 = load i64, ptr %324, align 8, !tbaa !11
  %326 = xor i64 %325, %322
  store i64 %326, ptr %324, align 8, !tbaa !11
  %327 = load i64, ptr %4, align 8, !tbaa !5
  %328 = shl i64 %327, 45
  %329 = load ptr, ptr %6, align 8, !tbaa !9
  %330 = getelementptr inbounds %struct.Dword_st, ptr %329, i32 0, i32 0
  %331 = load i64, ptr %330, align 8, !tbaa !13
  %332 = xor i64 %331, %328
  store i64 %332, ptr %330, align 8, !tbaa !13
  br label %333

333:                                              ; preds = %320, %316
  %334 = load i64, ptr %5, align 8, !tbaa !5
  %335 = and i64 %334, 17592186044416
  %336 = icmp ne i64 %335, 0
  br i1 %336, label %337, label %350

337:                                              ; preds = %333
  %338 = load i64, ptr %4, align 8, !tbaa !5
  %339 = lshr i64 %338, 20
  %340 = load ptr, ptr %6, align 8, !tbaa !9
  %341 = getelementptr inbounds %struct.Dword_st, ptr %340, i32 0, i32 1
  %342 = load i64, ptr %341, align 8, !tbaa !11
  %343 = xor i64 %342, %339
  store i64 %343, ptr %341, align 8, !tbaa !11
  %344 = load i64, ptr %4, align 8, !tbaa !5
  %345 = shl i64 %344, 44
  %346 = load ptr, ptr %6, align 8, !tbaa !9
  %347 = getelementptr inbounds %struct.Dword_st, ptr %346, i32 0, i32 0
  %348 = load i64, ptr %347, align 8, !tbaa !13
  %349 = xor i64 %348, %345
  store i64 %349, ptr %347, align 8, !tbaa !13
  br label %350

350:                                              ; preds = %337, %333
  %351 = load i64, ptr %5, align 8, !tbaa !5
  %352 = and i64 %351, 8796093022208
  %353 = icmp ne i64 %352, 0
  br i1 %353, label %354, label %367

354:                                              ; preds = %350
  %355 = load i64, ptr %4, align 8, !tbaa !5
  %356 = lshr i64 %355, 21
  %357 = load ptr, ptr %6, align 8, !tbaa !9
  %358 = getelementptr inbounds %struct.Dword_st, ptr %357, i32 0, i32 1
  %359 = load i64, ptr %358, align 8, !tbaa !11
  %360 = xor i64 %359, %356
  store i64 %360, ptr %358, align 8, !tbaa !11
  %361 = load i64, ptr %4, align 8, !tbaa !5
  %362 = shl i64 %361, 43
  %363 = load ptr, ptr %6, align 8, !tbaa !9
  %364 = getelementptr inbounds %struct.Dword_st, ptr %363, i32 0, i32 0
  %365 = load i64, ptr %364, align 8, !tbaa !13
  %366 = xor i64 %365, %362
  store i64 %366, ptr %364, align 8, !tbaa !13
  br label %367

367:                                              ; preds = %354, %350
  %368 = load i64, ptr %5, align 8, !tbaa !5
  %369 = and i64 %368, 4398046511104
  %370 = icmp ne i64 %369, 0
  br i1 %370, label %371, label %384

371:                                              ; preds = %367
  %372 = load i64, ptr %4, align 8, !tbaa !5
  %373 = lshr i64 %372, 22
  %374 = load ptr, ptr %6, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.Dword_st, ptr %374, i32 0, i32 1
  %376 = load i64, ptr %375, align 8, !tbaa !11
  %377 = xor i64 %376, %373
  store i64 %377, ptr %375, align 8, !tbaa !11
  %378 = load i64, ptr %4, align 8, !tbaa !5
  %379 = shl i64 %378, 42
  %380 = load ptr, ptr %6, align 8, !tbaa !9
  %381 = getelementptr inbounds %struct.Dword_st, ptr %380, i32 0, i32 0
  %382 = load i64, ptr %381, align 8, !tbaa !13
  %383 = xor i64 %382, %379
  store i64 %383, ptr %381, align 8, !tbaa !13
  br label %384

384:                                              ; preds = %371, %367
  %385 = load i64, ptr %5, align 8, !tbaa !5
  %386 = and i64 %385, 2199023255552
  %387 = icmp ne i64 %386, 0
  br i1 %387, label %388, label %401

388:                                              ; preds = %384
  %389 = load i64, ptr %4, align 8, !tbaa !5
  %390 = lshr i64 %389, 23
  %391 = load ptr, ptr %6, align 8, !tbaa !9
  %392 = getelementptr inbounds %struct.Dword_st, ptr %391, i32 0, i32 1
  %393 = load i64, ptr %392, align 8, !tbaa !11
  %394 = xor i64 %393, %390
  store i64 %394, ptr %392, align 8, !tbaa !11
  %395 = load i64, ptr %4, align 8, !tbaa !5
  %396 = shl i64 %395, 41
  %397 = load ptr, ptr %6, align 8, !tbaa !9
  %398 = getelementptr inbounds %struct.Dword_st, ptr %397, i32 0, i32 0
  %399 = load i64, ptr %398, align 8, !tbaa !13
  %400 = xor i64 %399, %396
  store i64 %400, ptr %398, align 8, !tbaa !13
  br label %401

401:                                              ; preds = %388, %384
  %402 = load i64, ptr %5, align 8, !tbaa !5
  %403 = and i64 %402, 1099511627776
  %404 = icmp ne i64 %403, 0
  br i1 %404, label %405, label %418

405:                                              ; preds = %401
  %406 = load i64, ptr %4, align 8, !tbaa !5
  %407 = lshr i64 %406, 24
  %408 = load ptr, ptr %6, align 8, !tbaa !9
  %409 = getelementptr inbounds %struct.Dword_st, ptr %408, i32 0, i32 1
  %410 = load i64, ptr %409, align 8, !tbaa !11
  %411 = xor i64 %410, %407
  store i64 %411, ptr %409, align 8, !tbaa !11
  %412 = load i64, ptr %4, align 8, !tbaa !5
  %413 = shl i64 %412, 40
  %414 = load ptr, ptr %6, align 8, !tbaa !9
  %415 = getelementptr inbounds %struct.Dword_st, ptr %414, i32 0, i32 0
  %416 = load i64, ptr %415, align 8, !tbaa !13
  %417 = xor i64 %416, %413
  store i64 %417, ptr %415, align 8, !tbaa !13
  br label %418

418:                                              ; preds = %405, %401
  %419 = load i64, ptr %5, align 8, !tbaa !5
  %420 = and i64 %419, 549755813888
  %421 = icmp ne i64 %420, 0
  br i1 %421, label %422, label %435

422:                                              ; preds = %418
  %423 = load i64, ptr %4, align 8, !tbaa !5
  %424 = lshr i64 %423, 25
  %425 = load ptr, ptr %6, align 8, !tbaa !9
  %426 = getelementptr inbounds %struct.Dword_st, ptr %425, i32 0, i32 1
  %427 = load i64, ptr %426, align 8, !tbaa !11
  %428 = xor i64 %427, %424
  store i64 %428, ptr %426, align 8, !tbaa !11
  %429 = load i64, ptr %4, align 8, !tbaa !5
  %430 = shl i64 %429, 39
  %431 = load ptr, ptr %6, align 8, !tbaa !9
  %432 = getelementptr inbounds %struct.Dword_st, ptr %431, i32 0, i32 0
  %433 = load i64, ptr %432, align 8, !tbaa !13
  %434 = xor i64 %433, %430
  store i64 %434, ptr %432, align 8, !tbaa !13
  br label %435

435:                                              ; preds = %422, %418
  %436 = load i64, ptr %5, align 8, !tbaa !5
  %437 = and i64 %436, 274877906944
  %438 = icmp ne i64 %437, 0
  br i1 %438, label %439, label %452

439:                                              ; preds = %435
  %440 = load i64, ptr %4, align 8, !tbaa !5
  %441 = lshr i64 %440, 26
  %442 = load ptr, ptr %6, align 8, !tbaa !9
  %443 = getelementptr inbounds %struct.Dword_st, ptr %442, i32 0, i32 1
  %444 = load i64, ptr %443, align 8, !tbaa !11
  %445 = xor i64 %444, %441
  store i64 %445, ptr %443, align 8, !tbaa !11
  %446 = load i64, ptr %4, align 8, !tbaa !5
  %447 = shl i64 %446, 38
  %448 = load ptr, ptr %6, align 8, !tbaa !9
  %449 = getelementptr inbounds %struct.Dword_st, ptr %448, i32 0, i32 0
  %450 = load i64, ptr %449, align 8, !tbaa !13
  %451 = xor i64 %450, %447
  store i64 %451, ptr %449, align 8, !tbaa !13
  br label %452

452:                                              ; preds = %439, %435
  %453 = load i64, ptr %5, align 8, !tbaa !5
  %454 = and i64 %453, 137438953472
  %455 = icmp ne i64 %454, 0
  br i1 %455, label %456, label %469

456:                                              ; preds = %452
  %457 = load i64, ptr %4, align 8, !tbaa !5
  %458 = lshr i64 %457, 27
  %459 = load ptr, ptr %6, align 8, !tbaa !9
  %460 = getelementptr inbounds %struct.Dword_st, ptr %459, i32 0, i32 1
  %461 = load i64, ptr %460, align 8, !tbaa !11
  %462 = xor i64 %461, %458
  store i64 %462, ptr %460, align 8, !tbaa !11
  %463 = load i64, ptr %4, align 8, !tbaa !5
  %464 = shl i64 %463, 37
  %465 = load ptr, ptr %6, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.Dword_st, ptr %465, i32 0, i32 0
  %467 = load i64, ptr %466, align 8, !tbaa !13
  %468 = xor i64 %467, %464
  store i64 %468, ptr %466, align 8, !tbaa !13
  br label %469

469:                                              ; preds = %456, %452
  %470 = load i64, ptr %5, align 8, !tbaa !5
  %471 = and i64 %470, 68719476736
  %472 = icmp ne i64 %471, 0
  br i1 %472, label %473, label %486

473:                                              ; preds = %469
  %474 = load i64, ptr %4, align 8, !tbaa !5
  %475 = lshr i64 %474, 28
  %476 = load ptr, ptr %6, align 8, !tbaa !9
  %477 = getelementptr inbounds %struct.Dword_st, ptr %476, i32 0, i32 1
  %478 = load i64, ptr %477, align 8, !tbaa !11
  %479 = xor i64 %478, %475
  store i64 %479, ptr %477, align 8, !tbaa !11
  %480 = load i64, ptr %4, align 8, !tbaa !5
  %481 = shl i64 %480, 36
  %482 = load ptr, ptr %6, align 8, !tbaa !9
  %483 = getelementptr inbounds %struct.Dword_st, ptr %482, i32 0, i32 0
  %484 = load i64, ptr %483, align 8, !tbaa !13
  %485 = xor i64 %484, %481
  store i64 %485, ptr %483, align 8, !tbaa !13
  br label %486

486:                                              ; preds = %473, %469
  %487 = load i64, ptr %5, align 8, !tbaa !5
  %488 = and i64 %487, 34359738368
  %489 = icmp ne i64 %488, 0
  br i1 %489, label %490, label %503

490:                                              ; preds = %486
  %491 = load i64, ptr %4, align 8, !tbaa !5
  %492 = lshr i64 %491, 29
  %493 = load ptr, ptr %6, align 8, !tbaa !9
  %494 = getelementptr inbounds %struct.Dword_st, ptr %493, i32 0, i32 1
  %495 = load i64, ptr %494, align 8, !tbaa !11
  %496 = xor i64 %495, %492
  store i64 %496, ptr %494, align 8, !tbaa !11
  %497 = load i64, ptr %4, align 8, !tbaa !5
  %498 = shl i64 %497, 35
  %499 = load ptr, ptr %6, align 8, !tbaa !9
  %500 = getelementptr inbounds %struct.Dword_st, ptr %499, i32 0, i32 0
  %501 = load i64, ptr %500, align 8, !tbaa !13
  %502 = xor i64 %501, %498
  store i64 %502, ptr %500, align 8, !tbaa !13
  br label %503

503:                                              ; preds = %490, %486
  %504 = load i64, ptr %5, align 8, !tbaa !5
  %505 = and i64 %504, 17179869184
  %506 = icmp ne i64 %505, 0
  br i1 %506, label %507, label %520

507:                                              ; preds = %503
  %508 = load i64, ptr %4, align 8, !tbaa !5
  %509 = lshr i64 %508, 30
  %510 = load ptr, ptr %6, align 8, !tbaa !9
  %511 = getelementptr inbounds %struct.Dword_st, ptr %510, i32 0, i32 1
  %512 = load i64, ptr %511, align 8, !tbaa !11
  %513 = xor i64 %512, %509
  store i64 %513, ptr %511, align 8, !tbaa !11
  %514 = load i64, ptr %4, align 8, !tbaa !5
  %515 = shl i64 %514, 34
  %516 = load ptr, ptr %6, align 8, !tbaa !9
  %517 = getelementptr inbounds %struct.Dword_st, ptr %516, i32 0, i32 0
  %518 = load i64, ptr %517, align 8, !tbaa !13
  %519 = xor i64 %518, %515
  store i64 %519, ptr %517, align 8, !tbaa !13
  br label %520

520:                                              ; preds = %507, %503
  %521 = load i64, ptr %5, align 8, !tbaa !5
  %522 = and i64 %521, 8589934592
  %523 = icmp ne i64 %522, 0
  br i1 %523, label %524, label %537

524:                                              ; preds = %520
  %525 = load i64, ptr %4, align 8, !tbaa !5
  %526 = lshr i64 %525, 31
  %527 = load ptr, ptr %6, align 8, !tbaa !9
  %528 = getelementptr inbounds %struct.Dword_st, ptr %527, i32 0, i32 1
  %529 = load i64, ptr %528, align 8, !tbaa !11
  %530 = xor i64 %529, %526
  store i64 %530, ptr %528, align 8, !tbaa !11
  %531 = load i64, ptr %4, align 8, !tbaa !5
  %532 = shl i64 %531, 33
  %533 = load ptr, ptr %6, align 8, !tbaa !9
  %534 = getelementptr inbounds %struct.Dword_st, ptr %533, i32 0, i32 0
  %535 = load i64, ptr %534, align 8, !tbaa !13
  %536 = xor i64 %535, %532
  store i64 %536, ptr %534, align 8, !tbaa !13
  br label %537

537:                                              ; preds = %524, %520
  %538 = load i64, ptr %5, align 8, !tbaa !5
  %539 = and i64 %538, 4294967296
  %540 = icmp ne i64 %539, 0
  br i1 %540, label %541, label %554

541:                                              ; preds = %537
  %542 = load i64, ptr %4, align 8, !tbaa !5
  %543 = lshr i64 %542, 32
  %544 = load ptr, ptr %6, align 8, !tbaa !9
  %545 = getelementptr inbounds %struct.Dword_st, ptr %544, i32 0, i32 1
  %546 = load i64, ptr %545, align 8, !tbaa !11
  %547 = xor i64 %546, %543
  store i64 %547, ptr %545, align 8, !tbaa !11
  %548 = load i64, ptr %4, align 8, !tbaa !5
  %549 = shl i64 %548, 32
  %550 = load ptr, ptr %6, align 8, !tbaa !9
  %551 = getelementptr inbounds %struct.Dword_st, ptr %550, i32 0, i32 0
  %552 = load i64, ptr %551, align 8, !tbaa !13
  %553 = xor i64 %552, %549
  store i64 %553, ptr %551, align 8, !tbaa !13
  br label %554

554:                                              ; preds = %541, %537
  %555 = load i64, ptr %5, align 8, !tbaa !5
  %556 = and i64 %555, 2147483648
  %557 = icmp ne i64 %556, 0
  br i1 %557, label %558, label %571

558:                                              ; preds = %554
  %559 = load i64, ptr %4, align 8, !tbaa !5
  %560 = lshr i64 %559, 33
  %561 = load ptr, ptr %6, align 8, !tbaa !9
  %562 = getelementptr inbounds %struct.Dword_st, ptr %561, i32 0, i32 1
  %563 = load i64, ptr %562, align 8, !tbaa !11
  %564 = xor i64 %563, %560
  store i64 %564, ptr %562, align 8, !tbaa !11
  %565 = load i64, ptr %4, align 8, !tbaa !5
  %566 = shl i64 %565, 31
  %567 = load ptr, ptr %6, align 8, !tbaa !9
  %568 = getelementptr inbounds %struct.Dword_st, ptr %567, i32 0, i32 0
  %569 = load i64, ptr %568, align 8, !tbaa !13
  %570 = xor i64 %569, %566
  store i64 %570, ptr %568, align 8, !tbaa !13
  br label %571

571:                                              ; preds = %558, %554
  %572 = load i64, ptr %5, align 8, !tbaa !5
  %573 = and i64 %572, 1073741824
  %574 = icmp ne i64 %573, 0
  br i1 %574, label %575, label %588

575:                                              ; preds = %571
  %576 = load i64, ptr %4, align 8, !tbaa !5
  %577 = lshr i64 %576, 34
  %578 = load ptr, ptr %6, align 8, !tbaa !9
  %579 = getelementptr inbounds %struct.Dword_st, ptr %578, i32 0, i32 1
  %580 = load i64, ptr %579, align 8, !tbaa !11
  %581 = xor i64 %580, %577
  store i64 %581, ptr %579, align 8, !tbaa !11
  %582 = load i64, ptr %4, align 8, !tbaa !5
  %583 = shl i64 %582, 30
  %584 = load ptr, ptr %6, align 8, !tbaa !9
  %585 = getelementptr inbounds %struct.Dword_st, ptr %584, i32 0, i32 0
  %586 = load i64, ptr %585, align 8, !tbaa !13
  %587 = xor i64 %586, %583
  store i64 %587, ptr %585, align 8, !tbaa !13
  br label %588

588:                                              ; preds = %575, %571
  %589 = load i64, ptr %5, align 8, !tbaa !5
  %590 = and i64 %589, 536870912
  %591 = icmp ne i64 %590, 0
  br i1 %591, label %592, label %605

592:                                              ; preds = %588
  %593 = load i64, ptr %4, align 8, !tbaa !5
  %594 = lshr i64 %593, 35
  %595 = load ptr, ptr %6, align 8, !tbaa !9
  %596 = getelementptr inbounds %struct.Dword_st, ptr %595, i32 0, i32 1
  %597 = load i64, ptr %596, align 8, !tbaa !11
  %598 = xor i64 %597, %594
  store i64 %598, ptr %596, align 8, !tbaa !11
  %599 = load i64, ptr %4, align 8, !tbaa !5
  %600 = shl i64 %599, 29
  %601 = load ptr, ptr %6, align 8, !tbaa !9
  %602 = getelementptr inbounds %struct.Dword_st, ptr %601, i32 0, i32 0
  %603 = load i64, ptr %602, align 8, !tbaa !13
  %604 = xor i64 %603, %600
  store i64 %604, ptr %602, align 8, !tbaa !13
  br label %605

605:                                              ; preds = %592, %588
  %606 = load i64, ptr %5, align 8, !tbaa !5
  %607 = and i64 %606, 268435456
  %608 = icmp ne i64 %607, 0
  br i1 %608, label %609, label %622

609:                                              ; preds = %605
  %610 = load i64, ptr %4, align 8, !tbaa !5
  %611 = lshr i64 %610, 36
  %612 = load ptr, ptr %6, align 8, !tbaa !9
  %613 = getelementptr inbounds %struct.Dword_st, ptr %612, i32 0, i32 1
  %614 = load i64, ptr %613, align 8, !tbaa !11
  %615 = xor i64 %614, %611
  store i64 %615, ptr %613, align 8, !tbaa !11
  %616 = load i64, ptr %4, align 8, !tbaa !5
  %617 = shl i64 %616, 28
  %618 = load ptr, ptr %6, align 8, !tbaa !9
  %619 = getelementptr inbounds %struct.Dword_st, ptr %618, i32 0, i32 0
  %620 = load i64, ptr %619, align 8, !tbaa !13
  %621 = xor i64 %620, %617
  store i64 %621, ptr %619, align 8, !tbaa !13
  br label %622

622:                                              ; preds = %609, %605
  %623 = load i64, ptr %5, align 8, !tbaa !5
  %624 = and i64 %623, 134217728
  %625 = icmp ne i64 %624, 0
  br i1 %625, label %626, label %639

626:                                              ; preds = %622
  %627 = load i64, ptr %4, align 8, !tbaa !5
  %628 = lshr i64 %627, 37
  %629 = load ptr, ptr %6, align 8, !tbaa !9
  %630 = getelementptr inbounds %struct.Dword_st, ptr %629, i32 0, i32 1
  %631 = load i64, ptr %630, align 8, !tbaa !11
  %632 = xor i64 %631, %628
  store i64 %632, ptr %630, align 8, !tbaa !11
  %633 = load i64, ptr %4, align 8, !tbaa !5
  %634 = shl i64 %633, 27
  %635 = load ptr, ptr %6, align 8, !tbaa !9
  %636 = getelementptr inbounds %struct.Dword_st, ptr %635, i32 0, i32 0
  %637 = load i64, ptr %636, align 8, !tbaa !13
  %638 = xor i64 %637, %634
  store i64 %638, ptr %636, align 8, !tbaa !13
  br label %639

639:                                              ; preds = %626, %622
  %640 = load i64, ptr %5, align 8, !tbaa !5
  %641 = and i64 %640, 67108864
  %642 = icmp ne i64 %641, 0
  br i1 %642, label %643, label %656

643:                                              ; preds = %639
  %644 = load i64, ptr %4, align 8, !tbaa !5
  %645 = lshr i64 %644, 38
  %646 = load ptr, ptr %6, align 8, !tbaa !9
  %647 = getelementptr inbounds %struct.Dword_st, ptr %646, i32 0, i32 1
  %648 = load i64, ptr %647, align 8, !tbaa !11
  %649 = xor i64 %648, %645
  store i64 %649, ptr %647, align 8, !tbaa !11
  %650 = load i64, ptr %4, align 8, !tbaa !5
  %651 = shl i64 %650, 26
  %652 = load ptr, ptr %6, align 8, !tbaa !9
  %653 = getelementptr inbounds %struct.Dword_st, ptr %652, i32 0, i32 0
  %654 = load i64, ptr %653, align 8, !tbaa !13
  %655 = xor i64 %654, %651
  store i64 %655, ptr %653, align 8, !tbaa !13
  br label %656

656:                                              ; preds = %643, %639
  %657 = load i64, ptr %5, align 8, !tbaa !5
  %658 = and i64 %657, 33554432
  %659 = icmp ne i64 %658, 0
  br i1 %659, label %660, label %673

660:                                              ; preds = %656
  %661 = load i64, ptr %4, align 8, !tbaa !5
  %662 = lshr i64 %661, 39
  %663 = load ptr, ptr %6, align 8, !tbaa !9
  %664 = getelementptr inbounds %struct.Dword_st, ptr %663, i32 0, i32 1
  %665 = load i64, ptr %664, align 8, !tbaa !11
  %666 = xor i64 %665, %662
  store i64 %666, ptr %664, align 8, !tbaa !11
  %667 = load i64, ptr %4, align 8, !tbaa !5
  %668 = shl i64 %667, 25
  %669 = load ptr, ptr %6, align 8, !tbaa !9
  %670 = getelementptr inbounds %struct.Dword_st, ptr %669, i32 0, i32 0
  %671 = load i64, ptr %670, align 8, !tbaa !13
  %672 = xor i64 %671, %668
  store i64 %672, ptr %670, align 8, !tbaa !13
  br label %673

673:                                              ; preds = %660, %656
  %674 = load i64, ptr %5, align 8, !tbaa !5
  %675 = and i64 %674, 16777216
  %676 = icmp ne i64 %675, 0
  br i1 %676, label %677, label %690

677:                                              ; preds = %673
  %678 = load i64, ptr %4, align 8, !tbaa !5
  %679 = lshr i64 %678, 40
  %680 = load ptr, ptr %6, align 8, !tbaa !9
  %681 = getelementptr inbounds %struct.Dword_st, ptr %680, i32 0, i32 1
  %682 = load i64, ptr %681, align 8, !tbaa !11
  %683 = xor i64 %682, %679
  store i64 %683, ptr %681, align 8, !tbaa !11
  %684 = load i64, ptr %4, align 8, !tbaa !5
  %685 = shl i64 %684, 24
  %686 = load ptr, ptr %6, align 8, !tbaa !9
  %687 = getelementptr inbounds %struct.Dword_st, ptr %686, i32 0, i32 0
  %688 = load i64, ptr %687, align 8, !tbaa !13
  %689 = xor i64 %688, %685
  store i64 %689, ptr %687, align 8, !tbaa !13
  br label %690

690:                                              ; preds = %677, %673
  %691 = load i64, ptr %5, align 8, !tbaa !5
  %692 = and i64 %691, 8388608
  %693 = icmp ne i64 %692, 0
  br i1 %693, label %694, label %707

694:                                              ; preds = %690
  %695 = load i64, ptr %4, align 8, !tbaa !5
  %696 = lshr i64 %695, 41
  %697 = load ptr, ptr %6, align 8, !tbaa !9
  %698 = getelementptr inbounds %struct.Dword_st, ptr %697, i32 0, i32 1
  %699 = load i64, ptr %698, align 8, !tbaa !11
  %700 = xor i64 %699, %696
  store i64 %700, ptr %698, align 8, !tbaa !11
  %701 = load i64, ptr %4, align 8, !tbaa !5
  %702 = shl i64 %701, 23
  %703 = load ptr, ptr %6, align 8, !tbaa !9
  %704 = getelementptr inbounds %struct.Dword_st, ptr %703, i32 0, i32 0
  %705 = load i64, ptr %704, align 8, !tbaa !13
  %706 = xor i64 %705, %702
  store i64 %706, ptr %704, align 8, !tbaa !13
  br label %707

707:                                              ; preds = %694, %690
  %708 = load i64, ptr %5, align 8, !tbaa !5
  %709 = and i64 %708, 4194304
  %710 = icmp ne i64 %709, 0
  br i1 %710, label %711, label %724

711:                                              ; preds = %707
  %712 = load i64, ptr %4, align 8, !tbaa !5
  %713 = lshr i64 %712, 42
  %714 = load ptr, ptr %6, align 8, !tbaa !9
  %715 = getelementptr inbounds %struct.Dword_st, ptr %714, i32 0, i32 1
  %716 = load i64, ptr %715, align 8, !tbaa !11
  %717 = xor i64 %716, %713
  store i64 %717, ptr %715, align 8, !tbaa !11
  %718 = load i64, ptr %4, align 8, !tbaa !5
  %719 = shl i64 %718, 22
  %720 = load ptr, ptr %6, align 8, !tbaa !9
  %721 = getelementptr inbounds %struct.Dword_st, ptr %720, i32 0, i32 0
  %722 = load i64, ptr %721, align 8, !tbaa !13
  %723 = xor i64 %722, %719
  store i64 %723, ptr %721, align 8, !tbaa !13
  br label %724

724:                                              ; preds = %711, %707
  %725 = load i64, ptr %5, align 8, !tbaa !5
  %726 = and i64 %725, 2097152
  %727 = icmp ne i64 %726, 0
  br i1 %727, label %728, label %741

728:                                              ; preds = %724
  %729 = load i64, ptr %4, align 8, !tbaa !5
  %730 = lshr i64 %729, 43
  %731 = load ptr, ptr %6, align 8, !tbaa !9
  %732 = getelementptr inbounds %struct.Dword_st, ptr %731, i32 0, i32 1
  %733 = load i64, ptr %732, align 8, !tbaa !11
  %734 = xor i64 %733, %730
  store i64 %734, ptr %732, align 8, !tbaa !11
  %735 = load i64, ptr %4, align 8, !tbaa !5
  %736 = shl i64 %735, 21
  %737 = load ptr, ptr %6, align 8, !tbaa !9
  %738 = getelementptr inbounds %struct.Dword_st, ptr %737, i32 0, i32 0
  %739 = load i64, ptr %738, align 8, !tbaa !13
  %740 = xor i64 %739, %736
  store i64 %740, ptr %738, align 8, !tbaa !13
  br label %741

741:                                              ; preds = %728, %724
  %742 = load i64, ptr %5, align 8, !tbaa !5
  %743 = and i64 %742, 1048576
  %744 = icmp ne i64 %743, 0
  br i1 %744, label %745, label %758

745:                                              ; preds = %741
  %746 = load i64, ptr %4, align 8, !tbaa !5
  %747 = lshr i64 %746, 44
  %748 = load ptr, ptr %6, align 8, !tbaa !9
  %749 = getelementptr inbounds %struct.Dword_st, ptr %748, i32 0, i32 1
  %750 = load i64, ptr %749, align 8, !tbaa !11
  %751 = xor i64 %750, %747
  store i64 %751, ptr %749, align 8, !tbaa !11
  %752 = load i64, ptr %4, align 8, !tbaa !5
  %753 = shl i64 %752, 20
  %754 = load ptr, ptr %6, align 8, !tbaa !9
  %755 = getelementptr inbounds %struct.Dword_st, ptr %754, i32 0, i32 0
  %756 = load i64, ptr %755, align 8, !tbaa !13
  %757 = xor i64 %756, %753
  store i64 %757, ptr %755, align 8, !tbaa !13
  br label %758

758:                                              ; preds = %745, %741
  %759 = load i64, ptr %5, align 8, !tbaa !5
  %760 = and i64 %759, 524288
  %761 = icmp ne i64 %760, 0
  br i1 %761, label %762, label %775

762:                                              ; preds = %758
  %763 = load i64, ptr %4, align 8, !tbaa !5
  %764 = lshr i64 %763, 45
  %765 = load ptr, ptr %6, align 8, !tbaa !9
  %766 = getelementptr inbounds %struct.Dword_st, ptr %765, i32 0, i32 1
  %767 = load i64, ptr %766, align 8, !tbaa !11
  %768 = xor i64 %767, %764
  store i64 %768, ptr %766, align 8, !tbaa !11
  %769 = load i64, ptr %4, align 8, !tbaa !5
  %770 = shl i64 %769, 19
  %771 = load ptr, ptr %6, align 8, !tbaa !9
  %772 = getelementptr inbounds %struct.Dword_st, ptr %771, i32 0, i32 0
  %773 = load i64, ptr %772, align 8, !tbaa !13
  %774 = xor i64 %773, %770
  store i64 %774, ptr %772, align 8, !tbaa !13
  br label %775

775:                                              ; preds = %762, %758
  %776 = load i64, ptr %5, align 8, !tbaa !5
  %777 = and i64 %776, 262144
  %778 = icmp ne i64 %777, 0
  br i1 %778, label %779, label %792

779:                                              ; preds = %775
  %780 = load i64, ptr %4, align 8, !tbaa !5
  %781 = lshr i64 %780, 46
  %782 = load ptr, ptr %6, align 8, !tbaa !9
  %783 = getelementptr inbounds %struct.Dword_st, ptr %782, i32 0, i32 1
  %784 = load i64, ptr %783, align 8, !tbaa !11
  %785 = xor i64 %784, %781
  store i64 %785, ptr %783, align 8, !tbaa !11
  %786 = load i64, ptr %4, align 8, !tbaa !5
  %787 = shl i64 %786, 18
  %788 = load ptr, ptr %6, align 8, !tbaa !9
  %789 = getelementptr inbounds %struct.Dword_st, ptr %788, i32 0, i32 0
  %790 = load i64, ptr %789, align 8, !tbaa !13
  %791 = xor i64 %790, %787
  store i64 %791, ptr %789, align 8, !tbaa !13
  br label %792

792:                                              ; preds = %779, %775
  %793 = load i64, ptr %5, align 8, !tbaa !5
  %794 = and i64 %793, 131072
  %795 = icmp ne i64 %794, 0
  br i1 %795, label %796, label %809

796:                                              ; preds = %792
  %797 = load i64, ptr %4, align 8, !tbaa !5
  %798 = lshr i64 %797, 47
  %799 = load ptr, ptr %6, align 8, !tbaa !9
  %800 = getelementptr inbounds %struct.Dword_st, ptr %799, i32 0, i32 1
  %801 = load i64, ptr %800, align 8, !tbaa !11
  %802 = xor i64 %801, %798
  store i64 %802, ptr %800, align 8, !tbaa !11
  %803 = load i64, ptr %4, align 8, !tbaa !5
  %804 = shl i64 %803, 17
  %805 = load ptr, ptr %6, align 8, !tbaa !9
  %806 = getelementptr inbounds %struct.Dword_st, ptr %805, i32 0, i32 0
  %807 = load i64, ptr %806, align 8, !tbaa !13
  %808 = xor i64 %807, %804
  store i64 %808, ptr %806, align 8, !tbaa !13
  br label %809

809:                                              ; preds = %796, %792
  %810 = load i64, ptr %5, align 8, !tbaa !5
  %811 = and i64 %810, 65536
  %812 = icmp ne i64 %811, 0
  br i1 %812, label %813, label %826

813:                                              ; preds = %809
  %814 = load i64, ptr %4, align 8, !tbaa !5
  %815 = lshr i64 %814, 48
  %816 = load ptr, ptr %6, align 8, !tbaa !9
  %817 = getelementptr inbounds %struct.Dword_st, ptr %816, i32 0, i32 1
  %818 = load i64, ptr %817, align 8, !tbaa !11
  %819 = xor i64 %818, %815
  store i64 %819, ptr %817, align 8, !tbaa !11
  %820 = load i64, ptr %4, align 8, !tbaa !5
  %821 = shl i64 %820, 16
  %822 = load ptr, ptr %6, align 8, !tbaa !9
  %823 = getelementptr inbounds %struct.Dword_st, ptr %822, i32 0, i32 0
  %824 = load i64, ptr %823, align 8, !tbaa !13
  %825 = xor i64 %824, %821
  store i64 %825, ptr %823, align 8, !tbaa !13
  br label %826

826:                                              ; preds = %813, %809
  %827 = load i64, ptr %5, align 8, !tbaa !5
  %828 = and i64 %827, 32768
  %829 = icmp ne i64 %828, 0
  br i1 %829, label %830, label %843

830:                                              ; preds = %826
  %831 = load i64, ptr %4, align 8, !tbaa !5
  %832 = lshr i64 %831, 49
  %833 = load ptr, ptr %6, align 8, !tbaa !9
  %834 = getelementptr inbounds %struct.Dword_st, ptr %833, i32 0, i32 1
  %835 = load i64, ptr %834, align 8, !tbaa !11
  %836 = xor i64 %835, %832
  store i64 %836, ptr %834, align 8, !tbaa !11
  %837 = load i64, ptr %4, align 8, !tbaa !5
  %838 = shl i64 %837, 15
  %839 = load ptr, ptr %6, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.Dword_st, ptr %839, i32 0, i32 0
  %841 = load i64, ptr %840, align 8, !tbaa !13
  %842 = xor i64 %841, %838
  store i64 %842, ptr %840, align 8, !tbaa !13
  br label %843

843:                                              ; preds = %830, %826
  %844 = load i64, ptr %5, align 8, !tbaa !5
  %845 = and i64 %844, 16384
  %846 = icmp ne i64 %845, 0
  br i1 %846, label %847, label %860

847:                                              ; preds = %843
  %848 = load i64, ptr %4, align 8, !tbaa !5
  %849 = lshr i64 %848, 50
  %850 = load ptr, ptr %6, align 8, !tbaa !9
  %851 = getelementptr inbounds %struct.Dword_st, ptr %850, i32 0, i32 1
  %852 = load i64, ptr %851, align 8, !tbaa !11
  %853 = xor i64 %852, %849
  store i64 %853, ptr %851, align 8, !tbaa !11
  %854 = load i64, ptr %4, align 8, !tbaa !5
  %855 = shl i64 %854, 14
  %856 = load ptr, ptr %6, align 8, !tbaa !9
  %857 = getelementptr inbounds %struct.Dword_st, ptr %856, i32 0, i32 0
  %858 = load i64, ptr %857, align 8, !tbaa !13
  %859 = xor i64 %858, %855
  store i64 %859, ptr %857, align 8, !tbaa !13
  br label %860

860:                                              ; preds = %847, %843
  %861 = load i64, ptr %5, align 8, !tbaa !5
  %862 = and i64 %861, 8192
  %863 = icmp ne i64 %862, 0
  br i1 %863, label %864, label %877

864:                                              ; preds = %860
  %865 = load i64, ptr %4, align 8, !tbaa !5
  %866 = lshr i64 %865, 51
  %867 = load ptr, ptr %6, align 8, !tbaa !9
  %868 = getelementptr inbounds %struct.Dword_st, ptr %867, i32 0, i32 1
  %869 = load i64, ptr %868, align 8, !tbaa !11
  %870 = xor i64 %869, %866
  store i64 %870, ptr %868, align 8, !tbaa !11
  %871 = load i64, ptr %4, align 8, !tbaa !5
  %872 = shl i64 %871, 13
  %873 = load ptr, ptr %6, align 8, !tbaa !9
  %874 = getelementptr inbounds %struct.Dword_st, ptr %873, i32 0, i32 0
  %875 = load i64, ptr %874, align 8, !tbaa !13
  %876 = xor i64 %875, %872
  store i64 %876, ptr %874, align 8, !tbaa !13
  br label %877

877:                                              ; preds = %864, %860
  %878 = load i64, ptr %5, align 8, !tbaa !5
  %879 = and i64 %878, 4096
  %880 = icmp ne i64 %879, 0
  br i1 %880, label %881, label %894

881:                                              ; preds = %877
  %882 = load i64, ptr %4, align 8, !tbaa !5
  %883 = lshr i64 %882, 52
  %884 = load ptr, ptr %6, align 8, !tbaa !9
  %885 = getelementptr inbounds %struct.Dword_st, ptr %884, i32 0, i32 1
  %886 = load i64, ptr %885, align 8, !tbaa !11
  %887 = xor i64 %886, %883
  store i64 %887, ptr %885, align 8, !tbaa !11
  %888 = load i64, ptr %4, align 8, !tbaa !5
  %889 = shl i64 %888, 12
  %890 = load ptr, ptr %6, align 8, !tbaa !9
  %891 = getelementptr inbounds %struct.Dword_st, ptr %890, i32 0, i32 0
  %892 = load i64, ptr %891, align 8, !tbaa !13
  %893 = xor i64 %892, %889
  store i64 %893, ptr %891, align 8, !tbaa !13
  br label %894

894:                                              ; preds = %881, %877
  %895 = load i64, ptr %5, align 8, !tbaa !5
  %896 = and i64 %895, 2048
  %897 = icmp ne i64 %896, 0
  br i1 %897, label %898, label %911

898:                                              ; preds = %894
  %899 = load i64, ptr %4, align 8, !tbaa !5
  %900 = lshr i64 %899, 53
  %901 = load ptr, ptr %6, align 8, !tbaa !9
  %902 = getelementptr inbounds %struct.Dword_st, ptr %901, i32 0, i32 1
  %903 = load i64, ptr %902, align 8, !tbaa !11
  %904 = xor i64 %903, %900
  store i64 %904, ptr %902, align 8, !tbaa !11
  %905 = load i64, ptr %4, align 8, !tbaa !5
  %906 = shl i64 %905, 11
  %907 = load ptr, ptr %6, align 8, !tbaa !9
  %908 = getelementptr inbounds %struct.Dword_st, ptr %907, i32 0, i32 0
  %909 = load i64, ptr %908, align 8, !tbaa !13
  %910 = xor i64 %909, %906
  store i64 %910, ptr %908, align 8, !tbaa !13
  br label %911

911:                                              ; preds = %898, %894
  %912 = load i64, ptr %5, align 8, !tbaa !5
  %913 = and i64 %912, 1024
  %914 = icmp ne i64 %913, 0
  br i1 %914, label %915, label %928

915:                                              ; preds = %911
  %916 = load i64, ptr %4, align 8, !tbaa !5
  %917 = lshr i64 %916, 54
  %918 = load ptr, ptr %6, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct.Dword_st, ptr %918, i32 0, i32 1
  %920 = load i64, ptr %919, align 8, !tbaa !11
  %921 = xor i64 %920, %917
  store i64 %921, ptr %919, align 8, !tbaa !11
  %922 = load i64, ptr %4, align 8, !tbaa !5
  %923 = shl i64 %922, 10
  %924 = load ptr, ptr %6, align 8, !tbaa !9
  %925 = getelementptr inbounds %struct.Dword_st, ptr %924, i32 0, i32 0
  %926 = load i64, ptr %925, align 8, !tbaa !13
  %927 = xor i64 %926, %923
  store i64 %927, ptr %925, align 8, !tbaa !13
  br label %928

928:                                              ; preds = %915, %911
  %929 = load i64, ptr %5, align 8, !tbaa !5
  %930 = and i64 %929, 512
  %931 = icmp ne i64 %930, 0
  br i1 %931, label %932, label %945

932:                                              ; preds = %928
  %933 = load i64, ptr %4, align 8, !tbaa !5
  %934 = lshr i64 %933, 55
  %935 = load ptr, ptr %6, align 8, !tbaa !9
  %936 = getelementptr inbounds %struct.Dword_st, ptr %935, i32 0, i32 1
  %937 = load i64, ptr %936, align 8, !tbaa !11
  %938 = xor i64 %937, %934
  store i64 %938, ptr %936, align 8, !tbaa !11
  %939 = load i64, ptr %4, align 8, !tbaa !5
  %940 = shl i64 %939, 9
  %941 = load ptr, ptr %6, align 8, !tbaa !9
  %942 = getelementptr inbounds %struct.Dword_st, ptr %941, i32 0, i32 0
  %943 = load i64, ptr %942, align 8, !tbaa !13
  %944 = xor i64 %943, %940
  store i64 %944, ptr %942, align 8, !tbaa !13
  br label %945

945:                                              ; preds = %932, %928
  %946 = load i64, ptr %5, align 8, !tbaa !5
  %947 = and i64 %946, 256
  %948 = icmp ne i64 %947, 0
  br i1 %948, label %949, label %962

949:                                              ; preds = %945
  %950 = load i64, ptr %4, align 8, !tbaa !5
  %951 = lshr i64 %950, 56
  %952 = load ptr, ptr %6, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.Dword_st, ptr %952, i32 0, i32 1
  %954 = load i64, ptr %953, align 8, !tbaa !11
  %955 = xor i64 %954, %951
  store i64 %955, ptr %953, align 8, !tbaa !11
  %956 = load i64, ptr %4, align 8, !tbaa !5
  %957 = shl i64 %956, 8
  %958 = load ptr, ptr %6, align 8, !tbaa !9
  %959 = getelementptr inbounds %struct.Dword_st, ptr %958, i32 0, i32 0
  %960 = load i64, ptr %959, align 8, !tbaa !13
  %961 = xor i64 %960, %957
  store i64 %961, ptr %959, align 8, !tbaa !13
  br label %962

962:                                              ; preds = %949, %945
  %963 = load i64, ptr %5, align 8, !tbaa !5
  %964 = and i64 %963, 128
  %965 = icmp ne i64 %964, 0
  br i1 %965, label %966, label %979

966:                                              ; preds = %962
  %967 = load i64, ptr %4, align 8, !tbaa !5
  %968 = lshr i64 %967, 57
  %969 = load ptr, ptr %6, align 8, !tbaa !9
  %970 = getelementptr inbounds %struct.Dword_st, ptr %969, i32 0, i32 1
  %971 = load i64, ptr %970, align 8, !tbaa !11
  %972 = xor i64 %971, %968
  store i64 %972, ptr %970, align 8, !tbaa !11
  %973 = load i64, ptr %4, align 8, !tbaa !5
  %974 = shl i64 %973, 7
  %975 = load ptr, ptr %6, align 8, !tbaa !9
  %976 = getelementptr inbounds %struct.Dword_st, ptr %975, i32 0, i32 0
  %977 = load i64, ptr %976, align 8, !tbaa !13
  %978 = xor i64 %977, %974
  store i64 %978, ptr %976, align 8, !tbaa !13
  br label %979

979:                                              ; preds = %966, %962
  %980 = load i64, ptr %5, align 8, !tbaa !5
  %981 = and i64 %980, 64
  %982 = icmp ne i64 %981, 0
  br i1 %982, label %983, label %996

983:                                              ; preds = %979
  %984 = load i64, ptr %4, align 8, !tbaa !5
  %985 = lshr i64 %984, 58
  %986 = load ptr, ptr %6, align 8, !tbaa !9
  %987 = getelementptr inbounds %struct.Dword_st, ptr %986, i32 0, i32 1
  %988 = load i64, ptr %987, align 8, !tbaa !11
  %989 = xor i64 %988, %985
  store i64 %989, ptr %987, align 8, !tbaa !11
  %990 = load i64, ptr %4, align 8, !tbaa !5
  %991 = shl i64 %990, 6
  %992 = load ptr, ptr %6, align 8, !tbaa !9
  %993 = getelementptr inbounds %struct.Dword_st, ptr %992, i32 0, i32 0
  %994 = load i64, ptr %993, align 8, !tbaa !13
  %995 = xor i64 %994, %991
  store i64 %995, ptr %993, align 8, !tbaa !13
  br label %996

996:                                              ; preds = %983, %979
  %997 = load i64, ptr %5, align 8, !tbaa !5
  %998 = and i64 %997, 32
  %999 = icmp ne i64 %998, 0
  br i1 %999, label %1000, label %1013

1000:                                             ; preds = %996
  %1001 = load i64, ptr %4, align 8, !tbaa !5
  %1002 = lshr i64 %1001, 59
  %1003 = load ptr, ptr %6, align 8, !tbaa !9
  %1004 = getelementptr inbounds %struct.Dword_st, ptr %1003, i32 0, i32 1
  %1005 = load i64, ptr %1004, align 8, !tbaa !11
  %1006 = xor i64 %1005, %1002
  store i64 %1006, ptr %1004, align 8, !tbaa !11
  %1007 = load i64, ptr %4, align 8, !tbaa !5
  %1008 = shl i64 %1007, 5
  %1009 = load ptr, ptr %6, align 8, !tbaa !9
  %1010 = getelementptr inbounds %struct.Dword_st, ptr %1009, i32 0, i32 0
  %1011 = load i64, ptr %1010, align 8, !tbaa !13
  %1012 = xor i64 %1011, %1008
  store i64 %1012, ptr %1010, align 8, !tbaa !13
  br label %1013

1013:                                             ; preds = %1000, %996
  %1014 = load i64, ptr %5, align 8, !tbaa !5
  %1015 = and i64 %1014, 16
  %1016 = icmp ne i64 %1015, 0
  br i1 %1016, label %1017, label %1030

1017:                                             ; preds = %1013
  %1018 = load i64, ptr %4, align 8, !tbaa !5
  %1019 = lshr i64 %1018, 60
  %1020 = load ptr, ptr %6, align 8, !tbaa !9
  %1021 = getelementptr inbounds %struct.Dword_st, ptr %1020, i32 0, i32 1
  %1022 = load i64, ptr %1021, align 8, !tbaa !11
  %1023 = xor i64 %1022, %1019
  store i64 %1023, ptr %1021, align 8, !tbaa !11
  %1024 = load i64, ptr %4, align 8, !tbaa !5
  %1025 = shl i64 %1024, 4
  %1026 = load ptr, ptr %6, align 8, !tbaa !9
  %1027 = getelementptr inbounds %struct.Dword_st, ptr %1026, i32 0, i32 0
  %1028 = load i64, ptr %1027, align 8, !tbaa !13
  %1029 = xor i64 %1028, %1025
  store i64 %1029, ptr %1027, align 8, !tbaa !13
  br label %1030

1030:                                             ; preds = %1017, %1013
  %1031 = load i64, ptr %5, align 8, !tbaa !5
  %1032 = and i64 %1031, 8
  %1033 = icmp ne i64 %1032, 0
  br i1 %1033, label %1034, label %1047

1034:                                             ; preds = %1030
  %1035 = load i64, ptr %4, align 8, !tbaa !5
  %1036 = lshr i64 %1035, 61
  %1037 = load ptr, ptr %6, align 8, !tbaa !9
  %1038 = getelementptr inbounds %struct.Dword_st, ptr %1037, i32 0, i32 1
  %1039 = load i64, ptr %1038, align 8, !tbaa !11
  %1040 = xor i64 %1039, %1036
  store i64 %1040, ptr %1038, align 8, !tbaa !11
  %1041 = load i64, ptr %4, align 8, !tbaa !5
  %1042 = shl i64 %1041, 3
  %1043 = load ptr, ptr %6, align 8, !tbaa !9
  %1044 = getelementptr inbounds %struct.Dword_st, ptr %1043, i32 0, i32 0
  %1045 = load i64, ptr %1044, align 8, !tbaa !13
  %1046 = xor i64 %1045, %1042
  store i64 %1046, ptr %1044, align 8, !tbaa !13
  br label %1047

1047:                                             ; preds = %1034, %1030
  %1048 = load i64, ptr %5, align 8, !tbaa !5
  %1049 = and i64 %1048, 4
  %1050 = icmp ne i64 %1049, 0
  br i1 %1050, label %1051, label %1064

1051:                                             ; preds = %1047
  %1052 = load i64, ptr %4, align 8, !tbaa !5
  %1053 = lshr i64 %1052, 62
  %1054 = load ptr, ptr %6, align 8, !tbaa !9
  %1055 = getelementptr inbounds %struct.Dword_st, ptr %1054, i32 0, i32 1
  %1056 = load i64, ptr %1055, align 8, !tbaa !11
  %1057 = xor i64 %1056, %1053
  store i64 %1057, ptr %1055, align 8, !tbaa !11
  %1058 = load i64, ptr %4, align 8, !tbaa !5
  %1059 = shl i64 %1058, 2
  %1060 = load ptr, ptr %6, align 8, !tbaa !9
  %1061 = getelementptr inbounds %struct.Dword_st, ptr %1060, i32 0, i32 0
  %1062 = load i64, ptr %1061, align 8, !tbaa !13
  %1063 = xor i64 %1062, %1059
  store i64 %1063, ptr %1061, align 8, !tbaa !13
  br label %1064

1064:                                             ; preds = %1051, %1047
  %1065 = load i64, ptr %5, align 8, !tbaa !5
  %1066 = and i64 %1065, 2
  %1067 = icmp ne i64 %1066, 0
  br i1 %1067, label %1068, label %1081

1068:                                             ; preds = %1064
  %1069 = load i64, ptr %4, align 8, !tbaa !5
  %1070 = lshr i64 %1069, 63
  %1071 = load ptr, ptr %6, align 8, !tbaa !9
  %1072 = getelementptr inbounds %struct.Dword_st, ptr %1071, i32 0, i32 1
  %1073 = load i64, ptr %1072, align 8, !tbaa !11
  %1074 = xor i64 %1073, %1070
  store i64 %1074, ptr %1072, align 8, !tbaa !11
  %1075 = load i64, ptr %4, align 8, !tbaa !5
  %1076 = shl i64 %1075, 1
  %1077 = load ptr, ptr %6, align 8, !tbaa !9
  %1078 = getelementptr inbounds %struct.Dword_st, ptr %1077, i32 0, i32 0
  %1079 = load i64, ptr %1078, align 8, !tbaa !13
  %1080 = xor i64 %1079, %1076
  store i64 %1080, ptr %1078, align 8, !tbaa !13
  br label %1081

1081:                                             ; preds = %1068, %1064
  %1082 = load i64, ptr %5, align 8, !tbaa !5
  %1083 = and i64 %1082, 1
  %1084 = icmp ne i64 %1083, 0
  br i1 %1084, label %1085, label %1091

1085:                                             ; preds = %1081
  %1086 = load i64, ptr %4, align 8, !tbaa !5
  %1087 = load ptr, ptr %6, align 8, !tbaa !9
  %1088 = getelementptr inbounds %struct.Dword_st, ptr %1087, i32 0, i32 0
  %1089 = load i64, ptr %1088, align 8, !tbaa !13
  %1090 = xor i64 %1089, %1086
  store i64 %1090, ptr %1088, align 8, !tbaa !13
  br label %1091

1091:                                             ; preds = %1085, %1081
  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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !6, i64 8}
!12 = !{!"Dword_st", !6, i64 0, !6, i64 8}
!13 = !{!12, !6, 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: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable
define dso_local void @gf2m_mul_64_fast(i64 noundef %0, i64 noundef %1, ptr noundef writeonly %2) local_unnamed_addr #0 {
  %4 = getelementptr inbounds i8, ptr %2, i64 8
  %.not = icmp sgt i64 %1, -1
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %2, i8 0, i64 16, i1 false)
  br i1 %.not, label %8, label %5

5:                                                ; preds = %3
  %6 = lshr i64 %0, 1
  store i64 %6, ptr %4, align 8, !tbaa !5
  %7 = shl i64 %0, 63
  store i64 %7, ptr %2, align 8, !tbaa !10
  br label %8

8:                                                ; preds = %5, %3
  %9 = phi i64 [ %7, %5 ], [ 0, %3 ]
  %10 = phi i64 [ %6, %5 ], [ 0, %3 ]
  %11 = and i64 %1, 4611686018427387904
  %.not319 = icmp eq i64 %11, 0
  br i1 %.not319, label %17, label %12

12:                                               ; preds = %8
  %13 = lshr i64 %0, 2
  %14 = xor i64 %10, %13
  store i64 %14, ptr %4, align 8, !tbaa !5
  %15 = shl i64 %0, 62
  %16 = xor i64 %9, %15
  store i64 %16, ptr %2, align 8, !tbaa !10
  br label %17

17:                                               ; preds = %12, %8
  %18 = phi i64 [ %16, %12 ], [ %9, %8 ]
  %19 = phi i64 [ %14, %12 ], [ %10, %8 ]
  %20 = and i64 %1, 2305843009213693952
  %.not320 = icmp eq i64 %20, 0
  br i1 %.not320, label %26, label %21

21:                                               ; preds = %17
  %22 = lshr i64 %0, 3
  %23 = xor i64 %19, %22
  store i64 %23, ptr %4, align 8, !tbaa !5
  %24 = shl i64 %0, 61
  %25 = xor i64 %18, %24
  store i64 %25, ptr %2, align 8, !tbaa !10
  br label %26

26:                                               ; preds = %21, %17
  %27 = phi i64 [ %25, %21 ], [ %18, %17 ]
  %28 = phi i64 [ %23, %21 ], [ %19, %17 ]
  %29 = and i64 %1, 1152921504606846976
  %.not321 = icmp eq i64 %29, 0
  br i1 %.not321, label %35, label %30

30:                                               ; preds = %26
  %31 = lshr i64 %0, 4
  %32 = xor i64 %28, %31
  store i64 %32, ptr %4, align 8, !tbaa !5
  %33 = shl i64 %0, 60
  %34 = xor i64 %27, %33
  store i64 %34, ptr %2, align 8, !tbaa !10
  br label %35

35:                                               ; preds = %30, %26
  %36 = phi i64 [ %34, %30 ], [ %27, %26 ]
  %37 = phi i64 [ %32, %30 ], [ %28, %26 ]
  %38 = and i64 %1, 576460752303423488
  %.not322 = icmp eq i64 %38, 0
  br i1 %.not322, label %44, label %39

39:                                               ; preds = %35
  %40 = lshr i64 %0, 5
  %41 = xor i64 %37, %40
  store i64 %41, ptr %4, align 8, !tbaa !5
  %42 = shl i64 %0, 59
  %43 = xor i64 %36, %42
  store i64 %43, ptr %2, align 8, !tbaa !10
  br label %44

44:                                               ; preds = %39, %35
  %45 = phi i64 [ %43, %39 ], [ %36, %35 ]
  %46 = phi i64 [ %41, %39 ], [ %37, %35 ]
  %47 = and i64 %1, 288230376151711744
  %.not323 = icmp eq i64 %47, 0
  br i1 %.not323, label %53, label %48

48:                                               ; preds = %44
  %49 = lshr i64 %0, 6
  %50 = xor i64 %46, %49
  store i64 %50, ptr %4, align 8, !tbaa !5
  %51 = shl i64 %0, 58
  %52 = xor i64 %45, %51
  store i64 %52, ptr %2, align 8, !tbaa !10
  br label %53

53:                                               ; preds = %48, %44
  %54 = phi i64 [ %52, %48 ], [ %45, %44 ]
  %55 = phi i64 [ %50, %48 ], [ %46, %44 ]
  %56 = and i64 %1, 144115188075855872
  %.not324 = icmp eq i64 %56, 0
  br i1 %.not324, label %62, label %57

57:                                               ; preds = %53
  %58 = lshr i64 %0, 7
  %59 = xor i64 %55, %58
  store i64 %59, ptr %4, align 8, !tbaa !5
  %60 = shl i64 %0, 57
  %61 = xor i64 %54, %60
  store i64 %61, ptr %2, align 8, !tbaa !10
  br label %62

62:                                               ; preds = %57, %53
  %63 = phi i64 [ %61, %57 ], [ %54, %53 ]
  %64 = phi i64 [ %59, %57 ], [ %55, %53 ]
  %65 = and i64 %1, 72057594037927936
  %.not325 = icmp eq i64 %65, 0
  br i1 %.not325, label %71, label %66

66:                                               ; preds = %62
  %67 = lshr i64 %0, 8
  %68 = xor i64 %64, %67
  store i64 %68, ptr %4, align 8, !tbaa !5
  %69 = shl i64 %0, 56
  %70 = xor i64 %63, %69
  store i64 %70, ptr %2, align 8, !tbaa !10
  br label %71

71:                                               ; preds = %66, %62
  %72 = phi i64 [ %70, %66 ], [ %63, %62 ]
  %73 = phi i64 [ %68, %66 ], [ %64, %62 ]
  %74 = and i64 %1, 36028797018963968
  %.not326 = icmp eq i64 %74, 0
  br i1 %.not326, label %80, label %75

75:                                               ; preds = %71
  %76 = lshr i64 %0, 9
  %77 = xor i64 %73, %76
  store i64 %77, ptr %4, align 8, !tbaa !5
  %78 = shl i64 %0, 55
  %79 = xor i64 %72, %78
  store i64 %79, ptr %2, align 8, !tbaa !10
  br label %80

80:                                               ; preds = %75, %71
  %81 = phi i64 [ %79, %75 ], [ %72, %71 ]
  %82 = phi i64 [ %77, %75 ], [ %73, %71 ]
  %83 = and i64 %1, 18014398509481984
  %.not327 = icmp eq i64 %83, 0
  br i1 %.not327, label %89, label %84

84:                                               ; preds = %80
  %85 = lshr i64 %0, 10
  %86 = xor i64 %82, %85
  store i64 %86, ptr %4, align 8, !tbaa !5
  %87 = shl i64 %0, 54
  %88 = xor i64 %81, %87
  store i64 %88, ptr %2, align 8, !tbaa !10
  br label %89

89:                                               ; preds = %84, %80
  %90 = phi i64 [ %88, %84 ], [ %81, %80 ]
  %91 = phi i64 [ %86, %84 ], [ %82, %80 ]
  %92 = and i64 %1, 9007199254740992
  %.not328 = icmp eq i64 %92, 0
  br i1 %.not328, label %98, label %93

93:                                               ; preds = %89
  %94 = lshr i64 %0, 11
  %95 = xor i64 %91, %94
  store i64 %95, ptr %4, align 8, !tbaa !5
  %96 = shl i64 %0, 53
  %97 = xor i64 %90, %96
  store i64 %97, ptr %2, align 8, !tbaa !10
  br label %98

98:                                               ; preds = %93, %89
  %99 = phi i64 [ %97, %93 ], [ %90, %89 ]
  %100 = phi i64 [ %95, %93 ], [ %91, %89 ]
  %101 = and i64 %1, 4503599627370496
  %.not329 = icmp eq i64 %101, 0
  br i1 %.not329, label %107, label %102

102:                                              ; preds = %98
  %103 = lshr i64 %0, 12
  %104 = xor i64 %100, %103
  store i64 %104, ptr %4, align 8, !tbaa !5
  %105 = shl i64 %0, 52
  %106 = xor i64 %99, %105
  store i64 %106, ptr %2, align 8, !tbaa !10
  br label %107

107:                                              ; preds = %102, %98
  %108 = phi i64 [ %106, %102 ], [ %99, %98 ]
  %109 = phi i64 [ %104, %102 ], [ %100, %98 ]
  %110 = and i64 %1, 2251799813685248
  %.not330 = icmp eq i64 %110, 0
  br i1 %.not330, label %116, label %111

111:                                              ; preds = %107
  %112 = lshr i64 %0, 13
  %113 = xor i64 %109, %112
  store i64 %113, ptr %4, align 8, !tbaa !5
  %114 = shl i64 %0, 51
  %115 = xor i64 %108, %114
  store i64 %115, ptr %2, align 8, !tbaa !10
  br label %116

116:                                              ; preds = %111, %107
  %117 = phi i64 [ %115, %111 ], [ %108, %107 ]
  %118 = phi i64 [ %113, %111 ], [ %109, %107 ]
  %119 = and i64 %1, 1125899906842624
  %.not331 = icmp eq i64 %119, 0
  br i1 %.not331, label %125, label %120

120:                                              ; preds = %116
  %121 = lshr i64 %0, 14
  %122 = xor i64 %118, %121
  store i64 %122, ptr %4, align 8, !tbaa !5
  %123 = shl i64 %0, 50
  %124 = xor i64 %117, %123
  store i64 %124, ptr %2, align 8, !tbaa !10
  br label %125

125:                                              ; preds = %120, %116
  %126 = phi i64 [ %124, %120 ], [ %117, %116 ]
  %127 = phi i64 [ %122, %120 ], [ %118, %116 ]
  %128 = and i64 %1, 562949953421312
  %.not332 = icmp eq i64 %128, 0
  br i1 %.not332, label %134, label %129

129:                                              ; preds = %125
  %130 = lshr i64 %0, 15
  %131 = xor i64 %127, %130
  store i64 %131, ptr %4, align 8, !tbaa !5
  %132 = shl i64 %0, 49
  %133 = xor i64 %126, %132
  store i64 %133, ptr %2, align 8, !tbaa !10
  br label %134

134:                                              ; preds = %129, %125
  %135 = phi i64 [ %133, %129 ], [ %126, %125 ]
  %136 = phi i64 [ %131, %129 ], [ %127, %125 ]
  %137 = and i64 %1, 281474976710656
  %.not333 = icmp eq i64 %137, 0
  br i1 %.not333, label %143, label %138

138:                                              ; preds = %134
  %139 = lshr i64 %0, 16
  %140 = xor i64 %136, %139
  store i64 %140, ptr %4, align 8, !tbaa !5
  %141 = shl i64 %0, 48
  %142 = xor i64 %135, %141
  store i64 %142, ptr %2, align 8, !tbaa !10
  br label %143

143:                                              ; preds = %138, %134
  %144 = phi i64 [ %142, %138 ], [ %135, %134 ]
  %145 = phi i64 [ %140, %138 ], [ %136, %134 ]
  %146 = and i64 %1, 140737488355328
  %.not334 = icmp eq i64 %146, 0
  br i1 %.not334, label %152, label %147

147:                                              ; preds = %143
  %148 = lshr i64 %0, 17
  %149 = xor i64 %145, %148
  store i64 %149, ptr %4, align 8, !tbaa !5
  %150 = shl i64 %0, 47
  %151 = xor i64 %144, %150
  store i64 %151, ptr %2, align 8, !tbaa !10
  br label %152

152:                                              ; preds = %147, %143
  %153 = phi i64 [ %151, %147 ], [ %144, %143 ]
  %154 = phi i64 [ %149, %147 ], [ %145, %143 ]
  %155 = and i64 %1, 70368744177664
  %.not335 = icmp eq i64 %155, 0
  br i1 %.not335, label %161, label %156

156:                                              ; preds = %152
  %157 = lshr i64 %0, 18
  %158 = xor i64 %154, %157
  store i64 %158, ptr %4, align 8, !tbaa !5
  %159 = shl i64 %0, 46
  %160 = xor i64 %153, %159
  store i64 %160, ptr %2, align 8, !tbaa !10
  br label %161

161:                                              ; preds = %156, %152
  %162 = phi i64 [ %160, %156 ], [ %153, %152 ]
  %163 = phi i64 [ %158, %156 ], [ %154, %152 ]
  %164 = and i64 %1, 35184372088832
  %.not336 = icmp eq i64 %164, 0
  br i1 %.not336, label %170, label %165

165:                                              ; preds = %161
  %166 = lshr i64 %0, 19
  %167 = xor i64 %163, %166
  store i64 %167, ptr %4, align 8, !tbaa !5
  %168 = shl i64 %0, 45
  %169 = xor i64 %162, %168
  store i64 %169, ptr %2, align 8, !tbaa !10
  br label %170

170:                                              ; preds = %165, %161
  %171 = phi i64 [ %169, %165 ], [ %162, %161 ]
  %172 = phi i64 [ %167, %165 ], [ %163, %161 ]
  %173 = and i64 %1, 17592186044416
  %.not337 = icmp eq i64 %173, 0
  br i1 %.not337, label %179, label %174

174:                                              ; preds = %170
  %175 = lshr i64 %0, 20
  %176 = xor i64 %172, %175
  store i64 %176, ptr %4, align 8, !tbaa !5
  %177 = shl i64 %0, 44
  %178 = xor i64 %171, %177
  store i64 %178, ptr %2, align 8, !tbaa !10
  br label %179

179:                                              ; preds = %174, %170
  %180 = phi i64 [ %178, %174 ], [ %171, %170 ]
  %181 = phi i64 [ %176, %174 ], [ %172, %170 ]
  %182 = and i64 %1, 8796093022208
  %.not338 = icmp eq i64 %182, 0
  br i1 %.not338, label %188, label %183

183:                                              ; preds = %179
  %184 = lshr i64 %0, 21
  %185 = xor i64 %181, %184
  store i64 %185, ptr %4, align 8, !tbaa !5
  %186 = shl i64 %0, 43
  %187 = xor i64 %180, %186
  store i64 %187, ptr %2, align 8, !tbaa !10
  br label %188

188:                                              ; preds = %183, %179
  %189 = phi i64 [ %187, %183 ], [ %180, %179 ]
  %190 = phi i64 [ %185, %183 ], [ %181, %179 ]
  %191 = and i64 %1, 4398046511104
  %.not339 = icmp eq i64 %191, 0
  br i1 %.not339, label %197, label %192

192:                                              ; preds = %188
  %193 = lshr i64 %0, 22
  %194 = xor i64 %190, %193
  store i64 %194, ptr %4, align 8, !tbaa !5
  %195 = shl i64 %0, 42
  %196 = xor i64 %189, %195
  store i64 %196, ptr %2, align 8, !tbaa !10
  br label %197

197:                                              ; preds = %192, %188
  %198 = phi i64 [ %196, %192 ], [ %189, %188 ]
  %199 = phi i64 [ %194, %192 ], [ %190, %188 ]
  %200 = and i64 %1, 2199023255552
  %.not340 = icmp eq i64 %200, 0
  br i1 %.not340, label %206, label %201

201:                                              ; preds = %197
  %202 = lshr i64 %0, 23
  %203 = xor i64 %199, %202
  store i64 %203, ptr %4, align 8, !tbaa !5
  %204 = shl i64 %0, 41
  %205 = xor i64 %198, %204
  store i64 %205, ptr %2, align 8, !tbaa !10
  br label %206

206:                                              ; preds = %201, %197
  %207 = phi i64 [ %205, %201 ], [ %198, %197 ]
  %208 = phi i64 [ %203, %201 ], [ %199, %197 ]
  %209 = and i64 %1, 1099511627776
  %.not341 = icmp eq i64 %209, 0
  br i1 %.not341, label %215, label %210

210:                                              ; preds = %206
  %211 = lshr i64 %0, 24
  %212 = xor i64 %208, %211
  store i64 %212, ptr %4, align 8, !tbaa !5
  %213 = shl i64 %0, 40
  %214 = xor i64 %207, %213
  store i64 %214, ptr %2, align 8, !tbaa !10
  br label %215

215:                                              ; preds = %210, %206
  %216 = phi i64 [ %214, %210 ], [ %207, %206 ]
  %217 = phi i64 [ %212, %210 ], [ %208, %206 ]
  %218 = and i64 %1, 549755813888
  %.not342 = icmp eq i64 %218, 0
  br i1 %.not342, label %224, label %219

219:                                              ; preds = %215
  %220 = lshr i64 %0, 25
  %221 = xor i64 %217, %220
  store i64 %221, ptr %4, align 8, !tbaa !5
  %222 = shl i64 %0, 39
  %223 = xor i64 %216, %222
  store i64 %223, ptr %2, align 8, !tbaa !10
  br label %224

224:                                              ; preds = %219, %215
  %225 = phi i64 [ %223, %219 ], [ %216, %215 ]
  %226 = phi i64 [ %221, %219 ], [ %217, %215 ]
  %227 = and i64 %1, 274877906944
  %.not343 = icmp eq i64 %227, 0
  br i1 %.not343, label %233, label %228

228:                                              ; preds = %224
  %229 = lshr i64 %0, 26
  %230 = xor i64 %226, %229
  store i64 %230, ptr %4, align 8, !tbaa !5
  %231 = shl i64 %0, 38
  %232 = xor i64 %225, %231
  store i64 %232, ptr %2, align 8, !tbaa !10
  br label %233

233:                                              ; preds = %228, %224
  %234 = phi i64 [ %232, %228 ], [ %225, %224 ]
  %235 = phi i64 [ %230, %228 ], [ %226, %224 ]
  %236 = and i64 %1, 137438953472
  %.not344 = icmp eq i64 %236, 0
  br i1 %.not344, label %242, label %237

237:                                              ; preds = %233
  %238 = lshr i64 %0, 27
  %239 = xor i64 %235, %238
  store i64 %239, ptr %4, align 8, !tbaa !5
  %240 = shl i64 %0, 37
  %241 = xor i64 %234, %240
  store i64 %241, ptr %2, align 8, !tbaa !10
  br label %242

242:                                              ; preds = %237, %233
  %243 = phi i64 [ %241, %237 ], [ %234, %233 ]
  %244 = phi i64 [ %239, %237 ], [ %235, %233 ]
  %245 = and i64 %1, 68719476736
  %.not345 = icmp eq i64 %245, 0
  br i1 %.not345, label %251, label %246

246:                                              ; preds = %242
  %247 = lshr i64 %0, 28
  %248 = xor i64 %244, %247
  store i64 %248, ptr %4, align 8, !tbaa !5
  %249 = shl i64 %0, 36
  %250 = xor i64 %243, %249
  store i64 %250, ptr %2, align 8, !tbaa !10
  br label %251

251:                                              ; preds = %246, %242
  %252 = phi i64 [ %250, %246 ], [ %243, %242 ]
  %253 = phi i64 [ %248, %246 ], [ %244, %242 ]
  %254 = and i64 %1, 34359738368
  %.not346 = icmp eq i64 %254, 0
  br i1 %.not346, label %260, label %255

255:                                              ; preds = %251
  %256 = lshr i64 %0, 29
  %257 = xor i64 %253, %256
  store i64 %257, ptr %4, align 8, !tbaa !5
  %258 = shl i64 %0, 35
  %259 = xor i64 %252, %258
  store i64 %259, ptr %2, align 8, !tbaa !10
  br label %260

260:                                              ; preds = %255, %251
  %261 = phi i64 [ %259, %255 ], [ %252, %251 ]
  %262 = phi i64 [ %257, %255 ], [ %253, %251 ]
  %263 = and i64 %1, 17179869184
  %.not347 = icmp eq i64 %263, 0
  br i1 %.not347, label %269, label %264

264:                                              ; preds = %260
  %265 = lshr i64 %0, 30
  %266 = xor i64 %262, %265
  store i64 %266, ptr %4, align 8, !tbaa !5
  %267 = shl i64 %0, 34
  %268 = xor i64 %261, %267
  store i64 %268, ptr %2, align 8, !tbaa !10
  br label %269

269:                                              ; preds = %264, %260
  %270 = phi i64 [ %268, %264 ], [ %261, %260 ]
  %271 = phi i64 [ %266, %264 ], [ %262, %260 ]
  %272 = and i64 %1, 8589934592
  %.not348 = icmp eq i64 %272, 0
  br i1 %.not348, label %278, label %273

273:                                              ; preds = %269
  %274 = lshr i64 %0, 31
  %275 = xor i64 %271, %274
  store i64 %275, ptr %4, align 8, !tbaa !5
  %276 = shl i64 %0, 33
  %277 = xor i64 %270, %276
  store i64 %277, ptr %2, align 8, !tbaa !10
  br label %278

278:                                              ; preds = %273, %269
  %279 = phi i64 [ %277, %273 ], [ %270, %269 ]
  %280 = phi i64 [ %275, %273 ], [ %271, %269 ]
  %281 = and i64 %1, 4294967296
  %.not349 = icmp eq i64 %281, 0
  br i1 %.not349, label %287, label %282

282:                                              ; preds = %278
  %283 = lshr i64 %0, 32
  %284 = xor i64 %280, %283
  store i64 %284, ptr %4, align 8, !tbaa !5
  %285 = shl i64 %0, 32
  %286 = xor i64 %279, %285
  store i64 %286, ptr %2, align 8, !tbaa !10
  br label %287

287:                                              ; preds = %282, %278
  %288 = phi i64 [ %286, %282 ], [ %279, %278 ]
  %289 = phi i64 [ %284, %282 ], [ %280, %278 ]
  %290 = and i64 %1, 2147483648
  %.not350 = icmp eq i64 %290, 0
  br i1 %.not350, label %296, label %291

291:                                              ; preds = %287
  %292 = lshr i64 %0, 33
  %293 = xor i64 %289, %292
  store i64 %293, ptr %4, align 8, !tbaa !5
  %294 = shl i64 %0, 31
  %295 = xor i64 %288, %294
  store i64 %295, ptr %2, align 8, !tbaa !10
  br label %296

296:                                              ; preds = %291, %287
  %297 = phi i64 [ %295, %291 ], [ %288, %287 ]
  %298 = phi i64 [ %293, %291 ], [ %289, %287 ]
  %299 = and i64 %1, 1073741824
  %.not351 = icmp eq i64 %299, 0
  br i1 %.not351, label %305, label %300

300:                                              ; preds = %296
  %301 = lshr i64 %0, 34
  %302 = xor i64 %298, %301
  store i64 %302, ptr %4, align 8, !tbaa !5
  %303 = shl i64 %0, 30
  %304 = xor i64 %297, %303
  store i64 %304, ptr %2, align 8, !tbaa !10
  br label %305

305:                                              ; preds = %300, %296
  %306 = phi i64 [ %304, %300 ], [ %297, %296 ]
  %307 = phi i64 [ %302, %300 ], [ %298, %296 ]
  %308 = and i64 %1, 536870912
  %.not352 = icmp eq i64 %308, 0
  br i1 %.not352, label %314, label %309

309:                                              ; preds = %305
  %310 = lshr i64 %0, 35
  %311 = xor i64 %307, %310
  store i64 %311, ptr %4, align 8, !tbaa !5
  %312 = shl i64 %0, 29
  %313 = xor i64 %306, %312
  store i64 %313, ptr %2, align 8, !tbaa !10
  br label %314

314:                                              ; preds = %309, %305
  %315 = phi i64 [ %313, %309 ], [ %306, %305 ]
  %316 = phi i64 [ %311, %309 ], [ %307, %305 ]
  %317 = and i64 %1, 268435456
  %.not353 = icmp eq i64 %317, 0
  br i1 %.not353, label %323, label %318

318:                                              ; preds = %314
  %319 = lshr i64 %0, 36
  %320 = xor i64 %316, %319
  store i64 %320, ptr %4, align 8, !tbaa !5
  %321 = shl i64 %0, 28
  %322 = xor i64 %315, %321
  store i64 %322, ptr %2, align 8, !tbaa !10
  br label %323

323:                                              ; preds = %318, %314
  %324 = phi i64 [ %322, %318 ], [ %315, %314 ]
  %325 = phi i64 [ %320, %318 ], [ %316, %314 ]
  %326 = and i64 %1, 134217728
  %.not354 = icmp eq i64 %326, 0
  br i1 %.not354, label %332, label %327

327:                                              ; preds = %323
  %328 = lshr i64 %0, 37
  %329 = xor i64 %325, %328
  store i64 %329, ptr %4, align 8, !tbaa !5
  %330 = shl i64 %0, 27
  %331 = xor i64 %324, %330
  store i64 %331, ptr %2, align 8, !tbaa !10
  br label %332

332:                                              ; preds = %327, %323
  %333 = phi i64 [ %331, %327 ], [ %324, %323 ]
  %334 = phi i64 [ %329, %327 ], [ %325, %323 ]
  %335 = and i64 %1, 67108864
  %.not355 = icmp eq i64 %335, 0
  br i1 %.not355, label %341, label %336

336:                                              ; preds = %332
  %337 = lshr i64 %0, 38
  %338 = xor i64 %334, %337
  store i64 %338, ptr %4, align 8, !tbaa !5
  %339 = shl i64 %0, 26
  %340 = xor i64 %333, %339
  store i64 %340, ptr %2, align 8, !tbaa !10
  br label %341

341:                                              ; preds = %336, %332
  %342 = phi i64 [ %340, %336 ], [ %333, %332 ]
  %343 = phi i64 [ %338, %336 ], [ %334, %332 ]
  %344 = and i64 %1, 33554432
  %.not356 = icmp eq i64 %344, 0
  br i1 %.not356, label %350, label %345

345:                                              ; preds = %341
  %346 = lshr i64 %0, 39
  %347 = xor i64 %343, %346
  store i64 %347, ptr %4, align 8, !tbaa !5
  %348 = shl i64 %0, 25
  %349 = xor i64 %342, %348
  store i64 %349, ptr %2, align 8, !tbaa !10
  br label %350

350:                                              ; preds = %345, %341
  %351 = phi i64 [ %349, %345 ], [ %342, %341 ]
  %352 = phi i64 [ %347, %345 ], [ %343, %341 ]
  %353 = and i64 %1, 16777216
  %.not357 = icmp eq i64 %353, 0
  br i1 %.not357, label %359, label %354

354:                                              ; preds = %350
  %355 = lshr i64 %0, 40
  %356 = xor i64 %352, %355
  store i64 %356, ptr %4, align 8, !tbaa !5
  %357 = shl i64 %0, 24
  %358 = xor i64 %351, %357
  store i64 %358, ptr %2, align 8, !tbaa !10
  br label %359

359:                                              ; preds = %354, %350
  %360 = phi i64 [ %358, %354 ], [ %351, %350 ]
  %361 = phi i64 [ %356, %354 ], [ %352, %350 ]
  %362 = and i64 %1, 8388608
  %.not358 = icmp eq i64 %362, 0
  br i1 %.not358, label %368, label %363

363:                                              ; preds = %359
  %364 = lshr i64 %0, 41
  %365 = xor i64 %361, %364
  store i64 %365, ptr %4, align 8, !tbaa !5
  %366 = shl i64 %0, 23
  %367 = xor i64 %360, %366
  store i64 %367, ptr %2, align 8, !tbaa !10
  br label %368

368:                                              ; preds = %363, %359
  %369 = phi i64 [ %367, %363 ], [ %360, %359 ]
  %370 = phi i64 [ %365, %363 ], [ %361, %359 ]
  %371 = and i64 %1, 4194304
  %.not359 = icmp eq i64 %371, 0
  br i1 %.not359, label %377, label %372

372:                                              ; preds = %368
  %373 = lshr i64 %0, 42
  %374 = xor i64 %370, %373
  store i64 %374, ptr %4, align 8, !tbaa !5
  %375 = shl i64 %0, 22
  %376 = xor i64 %369, %375
  store i64 %376, ptr %2, align 8, !tbaa !10
  br label %377

377:                                              ; preds = %372, %368
  %378 = phi i64 [ %376, %372 ], [ %369, %368 ]
  %379 = phi i64 [ %374, %372 ], [ %370, %368 ]
  %380 = and i64 %1, 2097152
  %.not360 = icmp eq i64 %380, 0
  br i1 %.not360, label %386, label %381

381:                                              ; preds = %377
  %382 = lshr i64 %0, 43
  %383 = xor i64 %379, %382
  store i64 %383, ptr %4, align 8, !tbaa !5
  %384 = shl i64 %0, 21
  %385 = xor i64 %378, %384
  store i64 %385, ptr %2, align 8, !tbaa !10
  br label %386

386:                                              ; preds = %381, %377
  %387 = phi i64 [ %385, %381 ], [ %378, %377 ]
  %388 = phi i64 [ %383, %381 ], [ %379, %377 ]
  %389 = and i64 %1, 1048576
  %.not361 = icmp eq i64 %389, 0
  br i1 %.not361, label %395, label %390

390:                                              ; preds = %386
  %391 = lshr i64 %0, 44
  %392 = xor i64 %388, %391
  store i64 %392, ptr %4, align 8, !tbaa !5
  %393 = shl i64 %0, 20
  %394 = xor i64 %387, %393
  store i64 %394, ptr %2, align 8, !tbaa !10
  br label %395

395:                                              ; preds = %390, %386
  %396 = phi i64 [ %394, %390 ], [ %387, %386 ]
  %397 = phi i64 [ %392, %390 ], [ %388, %386 ]
  %398 = and i64 %1, 524288
  %.not362 = icmp eq i64 %398, 0
  br i1 %.not362, label %404, label %399

399:                                              ; preds = %395
  %400 = lshr i64 %0, 45
  %401 = xor i64 %397, %400
  store i64 %401, ptr %4, align 8, !tbaa !5
  %402 = shl i64 %0, 19
  %403 = xor i64 %396, %402
  store i64 %403, ptr %2, align 8, !tbaa !10
  br label %404

404:                                              ; preds = %399, %395
  %405 = phi i64 [ %403, %399 ], [ %396, %395 ]
  %406 = phi i64 [ %401, %399 ], [ %397, %395 ]
  %407 = and i64 %1, 262144
  %.not363 = icmp eq i64 %407, 0
  br i1 %.not363, label %413, label %408

408:                                              ; preds = %404
  %409 = lshr i64 %0, 46
  %410 = xor i64 %406, %409
  store i64 %410, ptr %4, align 8, !tbaa !5
  %411 = shl i64 %0, 18
  %412 = xor i64 %405, %411
  store i64 %412, ptr %2, align 8, !tbaa !10
  br label %413

413:                                              ; preds = %408, %404
  %414 = phi i64 [ %412, %408 ], [ %405, %404 ]
  %415 = phi i64 [ %410, %408 ], [ %406, %404 ]
  %416 = and i64 %1, 131072
  %.not364 = icmp eq i64 %416, 0
  br i1 %.not364, label %422, label %417

417:                                              ; preds = %413
  %418 = lshr i64 %0, 47
  %419 = xor i64 %415, %418
  store i64 %419, ptr %4, align 8, !tbaa !5
  %420 = shl i64 %0, 17
  %421 = xor i64 %414, %420
  store i64 %421, ptr %2, align 8, !tbaa !10
  br label %422

422:                                              ; preds = %417, %413
  %423 = phi i64 [ %421, %417 ], [ %414, %413 ]
  %424 = phi i64 [ %419, %417 ], [ %415, %413 ]
  %425 = and i64 %1, 65536
  %.not365 = icmp eq i64 %425, 0
  br i1 %.not365, label %431, label %426

426:                                              ; preds = %422
  %427 = lshr i64 %0, 48
  %428 = xor i64 %424, %427
  store i64 %428, ptr %4, align 8, !tbaa !5
  %429 = shl i64 %0, 16
  %430 = xor i64 %423, %429
  store i64 %430, ptr %2, align 8, !tbaa !10
  br label %431

431:                                              ; preds = %426, %422
  %432 = phi i64 [ %430, %426 ], [ %423, %422 ]
  %433 = phi i64 [ %428, %426 ], [ %424, %422 ]
  %434 = and i64 %1, 32768
  %.not366 = icmp eq i64 %434, 0
  br i1 %.not366, label %440, label %435

435:                                              ; preds = %431
  %436 = lshr i64 %0, 49
  %437 = xor i64 %433, %436
  store i64 %437, ptr %4, align 8, !tbaa !5
  %438 = shl i64 %0, 15
  %439 = xor i64 %432, %438
  store i64 %439, ptr %2, align 8, !tbaa !10
  br label %440

440:                                              ; preds = %435, %431
  %441 = phi i64 [ %439, %435 ], [ %432, %431 ]
  %442 = phi i64 [ %437, %435 ], [ %433, %431 ]
  %443 = and i64 %1, 16384
  %.not367 = icmp eq i64 %443, 0
  br i1 %.not367, label %449, label %444

444:                                              ; preds = %440
  %445 = lshr i64 %0, 50
  %446 = xor i64 %442, %445
  store i64 %446, ptr %4, align 8, !tbaa !5
  %447 = shl i64 %0, 14
  %448 = xor i64 %441, %447
  store i64 %448, ptr %2, align 8, !tbaa !10
  br label %449

449:                                              ; preds = %444, %440
  %450 = phi i64 [ %448, %444 ], [ %441, %440 ]
  %451 = phi i64 [ %446, %444 ], [ %442, %440 ]
  %452 = and i64 %1, 8192
  %.not368 = icmp eq i64 %452, 0
  br i1 %.not368, label %458, label %453

453:                                              ; preds = %449
  %454 = lshr i64 %0, 51
  %455 = xor i64 %451, %454
  store i64 %455, ptr %4, align 8, !tbaa !5
  %456 = shl i64 %0, 13
  %457 = xor i64 %450, %456
  store i64 %457, ptr %2, align 8, !tbaa !10
  br label %458

458:                                              ; preds = %453, %449
  %459 = phi i64 [ %457, %453 ], [ %450, %449 ]
  %460 = phi i64 [ %455, %453 ], [ %451, %449 ]
  %461 = and i64 %1, 4096
  %.not369 = icmp eq i64 %461, 0
  br i1 %.not369, label %467, label %462

462:                                              ; preds = %458
  %463 = lshr i64 %0, 52
  %464 = xor i64 %460, %463
  store i64 %464, ptr %4, align 8, !tbaa !5
  %465 = shl i64 %0, 12
  %466 = xor i64 %459, %465
  store i64 %466, ptr %2, align 8, !tbaa !10
  br label %467

467:                                              ; preds = %462, %458
  %468 = phi i64 [ %466, %462 ], [ %459, %458 ]
  %469 = phi i64 [ %464, %462 ], [ %460, %458 ]
  %470 = and i64 %1, 2048
  %.not370 = icmp eq i64 %470, 0
  br i1 %.not370, label %476, label %471

471:                                              ; preds = %467
  %472 = lshr i64 %0, 53
  %473 = xor i64 %469, %472
  store i64 %473, ptr %4, align 8, !tbaa !5
  %474 = shl i64 %0, 11
  %475 = xor i64 %468, %474
  store i64 %475, ptr %2, align 8, !tbaa !10
  br label %476

476:                                              ; preds = %471, %467
  %477 = phi i64 [ %475, %471 ], [ %468, %467 ]
  %478 = phi i64 [ %473, %471 ], [ %469, %467 ]
  %479 = and i64 %1, 1024
  %.not371 = icmp eq i64 %479, 0
  br i1 %.not371, label %485, label %480

480:                                              ; preds = %476
  %481 = lshr i64 %0, 54
  %482 = xor i64 %478, %481
  store i64 %482, ptr %4, align 8, !tbaa !5
  %483 = shl i64 %0, 10
  %484 = xor i64 %477, %483
  store i64 %484, ptr %2, align 8, !tbaa !10
  br label %485

485:                                              ; preds = %480, %476
  %486 = phi i64 [ %484, %480 ], [ %477, %476 ]
  %487 = phi i64 [ %482, %480 ], [ %478, %476 ]
  %488 = and i64 %1, 512
  %.not372 = icmp eq i64 %488, 0
  br i1 %.not372, label %494, label %489

489:                                              ; preds = %485
  %490 = lshr i64 %0, 55
  %491 = xor i64 %487, %490
  store i64 %491, ptr %4, align 8, !tbaa !5
  %492 = shl i64 %0, 9
  %493 = xor i64 %486, %492
  store i64 %493, ptr %2, align 8, !tbaa !10
  br label %494

494:                                              ; preds = %489, %485
  %495 = phi i64 [ %493, %489 ], [ %486, %485 ]
  %496 = phi i64 [ %491, %489 ], [ %487, %485 ]
  %497 = and i64 %1, 256
  %.not373 = icmp eq i64 %497, 0
  br i1 %.not373, label %503, label %498

498:                                              ; preds = %494
  %499 = lshr i64 %0, 56
  %500 = xor i64 %496, %499
  store i64 %500, ptr %4, align 8, !tbaa !5
  %501 = shl i64 %0, 8
  %502 = xor i64 %495, %501
  store i64 %502, ptr %2, align 8, !tbaa !10
  br label %503

503:                                              ; preds = %498, %494
  %504 = phi i64 [ %502, %498 ], [ %495, %494 ]
  %505 = phi i64 [ %500, %498 ], [ %496, %494 ]
  %506 = and i64 %1, 128
  %.not374 = icmp eq i64 %506, 0
  br i1 %.not374, label %512, label %507

507:                                              ; preds = %503
  %508 = lshr i64 %0, 57
  %509 = xor i64 %505, %508
  store i64 %509, ptr %4, align 8, !tbaa !5
  %510 = shl i64 %0, 7
  %511 = xor i64 %504, %510
  store i64 %511, ptr %2, align 8, !tbaa !10
  br label %512

512:                                              ; preds = %507, %503
  %513 = phi i64 [ %511, %507 ], [ %504, %503 ]
  %514 = phi i64 [ %509, %507 ], [ %505, %503 ]
  %515 = and i64 %1, 64
  %.not375 = icmp eq i64 %515, 0
  br i1 %.not375, label %521, label %516

516:                                              ; preds = %512
  %517 = lshr i64 %0, 58
  %518 = xor i64 %514, %517
  store i64 %518, ptr %4, align 8, !tbaa !5
  %519 = shl i64 %0, 6
  %520 = xor i64 %513, %519
  store i64 %520, ptr %2, align 8, !tbaa !10
  br label %521

521:                                              ; preds = %516, %512
  %522 = phi i64 [ %520, %516 ], [ %513, %512 ]
  %523 = phi i64 [ %518, %516 ], [ %514, %512 ]
  %524 = and i64 %1, 32
  %.not376 = icmp eq i64 %524, 0
  br i1 %.not376, label %530, label %525

525:                                              ; preds = %521
  %526 = lshr i64 %0, 59
  %527 = xor i64 %523, %526
  store i64 %527, ptr %4, align 8, !tbaa !5
  %528 = shl i64 %0, 5
  %529 = xor i64 %522, %528
  store i64 %529, ptr %2, align 8, !tbaa !10
  br label %530

530:                                              ; preds = %525, %521
  %531 = phi i64 [ %529, %525 ], [ %522, %521 ]
  %532 = phi i64 [ %527, %525 ], [ %523, %521 ]
  %533 = and i64 %1, 16
  %.not377 = icmp eq i64 %533, 0
  br i1 %.not377, label %539, label %534

534:                                              ; preds = %530
  %535 = lshr i64 %0, 60
  %536 = xor i64 %532, %535
  store i64 %536, ptr %4, align 8, !tbaa !5
  %537 = shl i64 %0, 4
  %538 = xor i64 %531, %537
  store i64 %538, ptr %2, align 8, !tbaa !10
  br label %539

539:                                              ; preds = %534, %530
  %540 = phi i64 [ %538, %534 ], [ %531, %530 ]
  %541 = phi i64 [ %536, %534 ], [ %532, %530 ]
  %542 = and i64 %1, 8
  %.not378 = icmp eq i64 %542, 0
  br i1 %.not378, label %548, label %543

543:                                              ; preds = %539
  %544 = lshr i64 %0, 61
  %545 = xor i64 %541, %544
  store i64 %545, ptr %4, align 8, !tbaa !5
  %546 = shl i64 %0, 3
  %547 = xor i64 %540, %546
  store i64 %547, ptr %2, align 8, !tbaa !10
  br label %548

548:                                              ; preds = %543, %539
  %549 = phi i64 [ %547, %543 ], [ %540, %539 ]
  %550 = phi i64 [ %545, %543 ], [ %541, %539 ]
  %551 = and i64 %1, 4
  %.not379 = icmp eq i64 %551, 0
  br i1 %.not379, label %557, label %552

552:                                              ; preds = %548
  %553 = lshr i64 %0, 62
  %554 = xor i64 %550, %553
  store i64 %554, ptr %4, align 8, !tbaa !5
  %555 = shl i64 %0, 2
  %556 = xor i64 %549, %555
  store i64 %556, ptr %2, align 8, !tbaa !10
  br label %557

557:                                              ; preds = %552, %548
  %558 = phi i64 [ %556, %552 ], [ %549, %548 ]
  %559 = phi i64 [ %554, %552 ], [ %550, %548 ]
  %560 = and i64 %1, 2
  %.not380 = icmp eq i64 %560, 0
  br i1 %.not380, label %566, label %561

561:                                              ; preds = %557
  %562 = lshr i64 %0, 63
  %563 = xor i64 %559, %562
  store i64 %563, ptr %4, align 8, !tbaa !5
  %564 = shl i64 %0, 1
  %565 = xor i64 %558, %564
  store i64 %565, ptr %2, align 8, !tbaa !10
  br label %566

566:                                              ; preds = %561, %557
  %567 = phi i64 [ %565, %561 ], [ %558, %557 ]
  %568 = and i64 %1, 1
  %.not381 = icmp eq i64 %568, 0
  br i1 %.not381, label %571, label %569

569:                                              ; preds = %566
  %570 = xor i64 %567, %0
  store i64 %570, ptr %2, align 8, !tbaa !10
  br label %571

571:                                              ; preds = %569, %566
  ret void
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1

attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 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 #1 = { nocallback nofree nounwind willreturn memory(argmem: write) }

!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, !7, i64 8}
!6 = !{!"Dword_st", !7, i64 0, !7, i64 8}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !7, i64 0}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,InstCombinePass,MemCpyOptPass,PostOrderFunctionAttrsPass,SROAPass,TailCallElimPass