; LLVM IR from albertobsd/keyhunt :: secp256k1/SECP256K1.ll (ZN9Secp256K110GetHash160EibR5PointS1_S1_S1_PhS2_S2_S2_)

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

%class.Point = type { %class.Int, %class.Int, %class.Int }
%class.Int = type { %union.anon }
%union.anon = type { [5 x i64] }

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9Secp256K110GetHash160EibR5PointS1_S1_S1_PhS2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(983240) %0, i32 noundef %1, i1 noundef zeroext %2, ptr noundef nonnull align 8 dereferenceable(120) %3, ptr noundef nonnull align 8 dereferenceable(120) %4, ptr noundef nonnull align 8 dereferenceable(120) %5, ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10) #1 align 2 {
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i8, align 1
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca [64 x i8], align 16
  %24 = alloca [64 x i8], align 16
  %25 = alloca [64 x i8], align 16
  %26 = alloca [64 x i8], align 16
  %27 = alloca [32 x i32], align 16
  %28 = alloca [32 x i32], align 16
  %29 = alloca [32 x i32], align 16
  %30 = alloca [32 x i32], align 16
  %31 = alloca [16 x i32], align 16
  %32 = alloca [16 x i32], align 16
  %33 = alloca [16 x i32], align 16
  %34 = alloca [16 x i32], align 16
  %35 = alloca [20 x i8], align 16
  %36 = alloca [20 x i8], align 16
  %37 = alloca [20 x i8], align 16
  %38 = alloca [20 x i8], align 16
  %39 = alloca [16 x i32], align 16
  %40 = alloca [16 x i32], align 16
  %41 = alloca [16 x i32], align 16
  %42 = alloca [16 x i32], align 16
  store ptr %0, ptr %12, align 8, !tbaa !5
  store i32 %1, ptr %13, align 4, !tbaa !9
  %43 = zext i1 %2 to i8
  store i8 %43, ptr %14, align 1, !tbaa !11
  store ptr %3, ptr %15, align 8, !tbaa !5
  store ptr %4, ptr %16, align 8, !tbaa !5
  store ptr %5, ptr %17, align 8, !tbaa !5
  store ptr %6, ptr %18, align 8, !tbaa !5
  store ptr %7, ptr %19, align 8, !tbaa !5
  store ptr %8, ptr %20, align 8, !tbaa !5
  store ptr %9, ptr %21, align 8, !tbaa !5
  store ptr %10, ptr %22, align 8, !tbaa !5
  %44 = load ptr, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 64, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %26) #3
  %45 = load i32, ptr %13, align 4, !tbaa !9
  switch i32 %45, label %2011 [
    i32 0, label %46
    i32 2, label %46
    i32 1, label %1556
  ]

46:                                               ; preds = %11, %11
  %47 = load i8, ptr %14, align 1, !tbaa !11, !range !13, !noundef !14
  %48 = trunc i8 %47 to i1
  br i1 %48, label %1030, label %49

49:                                               ; preds = %46
  call void @llvm.lifetime.start.p0(i64 128, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 128, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 128, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 128, ptr %30) #3
  %50 = load ptr, ptr %15, align 8, !tbaa !5
  %51 = getelementptr inbounds %class.Point, ptr %50, i32 0, i32 0
  %52 = getelementptr inbounds %class.Int, ptr %51, i32 0, i32 0
  %53 = getelementptr inbounds [10 x i32], ptr %52, i64 0, i64 7
  %54 = load i32, ptr %53, align 4, !tbaa !15
  %55 = lshr i32 %54, 8
  %56 = or i32 %55, 67108864
  %57 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 0
  store i32 %56, ptr %57, align 16, !tbaa !9
  %58 = load ptr, ptr %15, align 8, !tbaa !5
  %59 = getelementptr inbounds %class.Point, ptr %58, i32 0, i32 0
  %60 = getelementptr inbounds %class.Int, ptr %59, i32 0, i32 0
  %61 = getelementptr inbounds [10 x i32], ptr %60, i64 0, i64 6
  %62 = load i32, ptr %61, align 8, !tbaa !15
  %63 = lshr i32 %62, 8
  %64 = load ptr, ptr %15, align 8, !tbaa !5
  %65 = getelementptr inbounds %class.Point, ptr %64, i32 0, i32 0
  %66 = getelementptr inbounds %class.Int, ptr %65, i32 0, i32 0
  %67 = getelementptr inbounds [10 x i32], ptr %66, i64 0, i64 7
  %68 = load i32, ptr %67, align 4, !tbaa !15
  %69 = shl i32 %68, 24
  %70 = or i32 %63, %69
  %71 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 1
  store i32 %70, ptr %71, align 4, !tbaa !9
  %72 = load ptr, ptr %15, align 8, !tbaa !5
  %73 = getelementptr inbounds %class.Point, ptr %72, i32 0, i32 0
  %74 = getelementptr inbounds %class.Int, ptr %73, i32 0, i32 0
  %75 = getelementptr inbounds [10 x i32], ptr %74, i64 0, i64 5
  %76 = load i32, ptr %75, align 4, !tbaa !15
  %77 = lshr i32 %76, 8
  %78 = load ptr, ptr %15, align 8, !tbaa !5
  %79 = getelementptr inbounds %class.Point, ptr %78, i32 0, i32 0
  %80 = getelementptr inbounds %class.Int, ptr %79, i32 0, i32 0
  %81 = getelementptr inbounds [10 x i32], ptr %80, i64 0, i64 6
  %82 = load i32, ptr %81, align 8, !tbaa !15
  %83 = shl i32 %82, 24
  %84 = or i32 %77, %83
  %85 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 2
  store i32 %84, ptr %85, align 8, !tbaa !9
  %86 = load ptr, ptr %15, align 8, !tbaa !5
  %87 = getelementptr inbounds %class.Point, ptr %86, i32 0, i32 0
  %88 = getelementptr inbounds %class.Int, ptr %87, i32 0, i32 0
  %89 = getelementptr inbounds [10 x i32], ptr %88, i64 0, i64 4
  %90 = load i32, ptr %89, align 8, !tbaa !15
  %91 = lshr i32 %90, 8
  %92 = load ptr, ptr %15, align 8, !tbaa !5
  %93 = getelementptr inbounds %class.Point, ptr %92, i32 0, i32 0
  %94 = getelementptr inbounds %class.Int, ptr %93, i32 0, i32 0
  %95 = getelementptr inbounds [10 x i32], ptr %94, i64 0, i64 5
  %96 = load i32, ptr %95, align 4, !tbaa !15
  %97 = shl i32 %96, 24
  %98 = or i32 %91, %97
  %99 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 3
  store i32 %98, ptr %99, align 4, !tbaa !9
  %100 = load ptr, ptr %15, align 8, !tbaa !5
  %101 = getelementptr inbounds %class.Point, ptr %100, i32 0, i32 0
  %102 = getelementptr inbounds %class.Int, ptr %101, i32 0, i32 0
  %103 = getelementptr inbounds [10 x i32], ptr %102, i64 0, i64 3
  %104 = load i32, ptr %103, align 4, !tbaa !15
  %105 = lshr i32 %104, 8
  %106 = load ptr, ptr %15, align 8, !tbaa !5
  %107 = getelementptr inbounds %class.Point, ptr %106, i32 0, i32 0
  %108 = getelementptr inbounds %class.Int, ptr %107, i32 0, i32 0
  %109 = getelementptr inbounds [10 x i32], ptr %108, i64 0, i64 4
  %110 = load i32, ptr %109, align 8, !tbaa !15
  %111 = shl i32 %110, 24
  %112 = or i32 %105, %111
  %113 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 4
  store i32 %112, ptr %113, align 16, !tbaa !9
  %114 = load ptr, ptr %15, align 8, !tbaa !5
  %115 = getelementptr inbounds %class.Point, ptr %114, i32 0, i32 0
  %116 = getelementptr inbounds %class.Int, ptr %115, i32 0, i32 0
  %117 = getelementptr inbounds [10 x i32], ptr %116, i64 0, i64 2
  %118 = load i32, ptr %117, align 8, !tbaa !15
  %119 = lshr i32 %118, 8
  %120 = load ptr, ptr %15, align 8, !tbaa !5
  %121 = getelementptr inbounds %class.Point, ptr %120, i32 0, i32 0
  %122 = getelementptr inbounds %class.Int, ptr %121, i32 0, i32 0
  %123 = getelementptr inbounds [10 x i32], ptr %122, i64 0, i64 3
  %124 = load i32, ptr %123, align 4, !tbaa !15
  %125 = shl i32 %124, 24
  %126 = or i32 %119, %125
  %127 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 5
  store i32 %126, ptr %127, align 4, !tbaa !9
  %128 = load ptr, ptr %15, align 8, !tbaa !5
  %129 = getelementptr inbounds %class.Point, ptr %128, i32 0, i32 0
  %130 = getelementptr inbounds %class.Int, ptr %129, i32 0, i32 0
  %131 = getelementptr inbounds [10 x i32], ptr %130, i64 0, i64 1
  %132 = load i32, ptr %131, align 4, !tbaa !15
  %133 = lshr i32 %132, 8
  %134 = load ptr, ptr %15, align 8, !tbaa !5
  %135 = getelementptr inbounds %class.Point, ptr %134, i32 0, i32 0
  %136 = getelementptr inbounds %class.Int, ptr %135, i32 0, i32 0
  %137 = getelementptr inbounds [10 x i32], ptr %136, i64 0, i64 2
  %138 = load i32, ptr %137, align 8, !tbaa !15
  %139 = shl i32 %138, 24
  %140 = or i32 %133, %139
  %141 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 6
  store i32 %140, ptr %141, align 8, !tbaa !9
  %142 = load ptr, ptr %15, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.Point, ptr %142, i32 0, i32 0
  %144 = getelementptr inbounds %class.Int, ptr %143, i32 0, i32 0
  %145 = getelementptr inbounds [10 x i32], ptr %144, i64 0, i64 0
  %146 = load i32, ptr %145, align 8, !tbaa !15
  %147 = lshr i32 %146, 8
  %148 = load ptr, ptr %15, align 8, !tbaa !5
  %149 = getelementptr inbounds %class.Point, ptr %148, i32 0, i32 0
  %150 = getelementptr inbounds %class.Int, ptr %149, i32 0, i32 0
  %151 = getelementptr inbounds [10 x i32], ptr %150, i64 0, i64 1
  %152 = load i32, ptr %151, align 4, !tbaa !15
  %153 = shl i32 %152, 24
  %154 = or i32 %147, %153
  %155 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 7
  store i32 %154, ptr %155, align 4, !tbaa !9
  %156 = load ptr, ptr %15, align 8, !tbaa !5
  %157 = getelementptr inbounds %class.Point, ptr %156, i32 0, i32 1
  %158 = getelementptr inbounds %class.Int, ptr %157, i32 0, i32 0
  %159 = getelementptr inbounds [10 x i32], ptr %158, i64 0, i64 7
  %160 = load i32, ptr %159, align 4, !tbaa !15
  %161 = lshr i32 %160, 8
  %162 = load ptr, ptr %15, align 8, !tbaa !5
  %163 = getelementptr inbounds %class.Point, ptr %162, i32 0, i32 0
  %164 = getelementptr inbounds %class.Int, ptr %163, i32 0, i32 0
  %165 = getelementptr inbounds [10 x i32], ptr %164, i64 0, i64 0
  %166 = load i32, ptr %165, align 8, !tbaa !15
  %167 = shl i32 %166, 24
  %168 = or i32 %161, %167
  %169 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 8
  store i32 %168, ptr %169, align 16, !tbaa !9
  %170 = load ptr, ptr %15, align 8, !tbaa !5
  %171 = getelementptr inbounds %class.Point, ptr %170, i32 0, i32 1
  %172 = getelementptr inbounds %class.Int, ptr %171, i32 0, i32 0
  %173 = getelementptr inbounds [10 x i32], ptr %172, i64 0, i64 6
  %174 = load i32, ptr %173, align 8, !tbaa !15
  %175 = lshr i32 %174, 8
  %176 = load ptr, ptr %15, align 8, !tbaa !5
  %177 = getelementptr inbounds %class.Point, ptr %176, i32 0, i32 1
  %178 = getelementptr inbounds %class.Int, ptr %177, i32 0, i32 0
  %179 = getelementptr inbounds [10 x i32], ptr %178, i64 0, i64 7
  %180 = load i32, ptr %179, align 4, !tbaa !15
  %181 = shl i32 %180, 24
  %182 = or i32 %175, %181
  %183 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 9
  store i32 %182, ptr %183, align 4, !tbaa !9
  %184 = load ptr, ptr %15, align 8, !tbaa !5
  %185 = getelementptr inbounds %class.Point, ptr %184, i32 0, i32 1
  %186 = getelementptr inbounds %class.Int, ptr %185, i32 0, i32 0
  %187 = getelementptr inbounds [10 x i32], ptr %186, i64 0, i64 5
  %188 = load i32, ptr %187, align 4, !tbaa !15
  %189 = lshr i32 %188, 8
  %190 = load ptr, ptr %15, align 8, !tbaa !5
  %191 = getelementptr inbounds %class.Point, ptr %190, i32 0, i32 1
  %192 = getelementptr inbounds %class.Int, ptr %191, i32 0, i32 0
  %193 = getelementptr inbounds [10 x i32], ptr %192, i64 0, i64 6
  %194 = load i32, ptr %193, align 8, !tbaa !15
  %195 = shl i32 %194, 24
  %196 = or i32 %189, %195
  %197 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 10
  store i32 %196, ptr %197, align 8, !tbaa !9
  %198 = load ptr, ptr %15, align 8, !tbaa !5
  %199 = getelementptr inbounds %class.Point, ptr %198, i32 0, i32 1
  %200 = getelementptr inbounds %class.Int, ptr %199, i32 0, i32 0
  %201 = getelementptr inbounds [10 x i32], ptr %200, i64 0, i64 4
  %202 = load i32, ptr %201, align 8, !tbaa !15
  %203 = lshr i32 %202, 8
  %204 = load ptr, ptr %15, align 8, !tbaa !5
  %205 = getelementptr inbounds %class.Point, ptr %204, i32 0, i32 1
  %206 = getelementptr inbounds %class.Int, ptr %205, i32 0, i32 0
  %207 = getelementptr inbounds [10 x i32], ptr %206, i64 0, i64 5
  %208 = load i32, ptr %207, align 4, !tbaa !15
  %209 = shl i32 %208, 24
  %210 = or i32 %203, %209
  %211 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 11
  store i32 %210, ptr %211, align 4, !tbaa !9
  %212 = load ptr, ptr %15, align 8, !tbaa !5
  %213 = getelementptr inbounds %class.Point, ptr %212, i32 0, i32 1
  %214 = getelementptr inbounds %class.Int, ptr %213, i32 0, i32 0
  %215 = getelementptr inbounds [10 x i32], ptr %214, i64 0, i64 3
  %216 = load i32, ptr %215, align 4, !tbaa !15
  %217 = lshr i32 %216, 8
  %218 = load ptr, ptr %15, align 8, !tbaa !5
  %219 = getelementptr inbounds %class.Point, ptr %218, i32 0, i32 1
  %220 = getelementptr inbounds %class.Int, ptr %219, i32 0, i32 0
  %221 = getelementptr inbounds [10 x i32], ptr %220, i64 0, i64 4
  %222 = load i32, ptr %221, align 8, !tbaa !15
  %223 = shl i32 %222, 24
  %224 = or i32 %217, %223
  %225 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 12
  store i32 %224, ptr %225, align 16, !tbaa !9
  %226 = load ptr, ptr %15, align 8, !tbaa !5
  %227 = getelementptr inbounds %class.Point, ptr %226, i32 0, i32 1
  %228 = getelementptr inbounds %class.Int, ptr %227, i32 0, i32 0
  %229 = getelementptr inbounds [10 x i32], ptr %228, i64 0, i64 2
  %230 = load i32, ptr %229, align 8, !tbaa !15
  %231 = lshr i32 %230, 8
  %232 = load ptr, ptr %15, align 8, !tbaa !5
  %233 = getelementptr inbounds %class.Point, ptr %232, i32 0, i32 1
  %234 = getelementptr inbounds %class.Int, ptr %233, i32 0, i32 0
  %235 = getelementptr inbounds [10 x i32], ptr %234, i64 0, i64 3
  %236 = load i32, ptr %235, align 4, !tbaa !15
  %237 = shl i32 %236, 24
  %238 = or i32 %231, %237
  %239 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 13
  store i32 %238, ptr %239, align 4, !tbaa !9
  %240 = load ptr, ptr %15, align 8, !tbaa !5
  %241 = getelementptr inbounds %class.Point, ptr %240, i32 0, i32 1
  %242 = getelementptr inbounds %class.Int, ptr %241, i32 0, i32 0
  %243 = getelementptr inbounds [10 x i32], ptr %242, i64 0, i64 1
  %244 = load i32, ptr %243, align 4, !tbaa !15
  %245 = lshr i32 %244, 8
  %246 = load ptr, ptr %15, align 8, !tbaa !5
  %247 = getelementptr inbounds %class.Point, ptr %246, i32 0, i32 1
  %248 = getelementptr inbounds %class.Int, ptr %247, i32 0, i32 0
  %249 = getelementptr inbounds [10 x i32], ptr %248, i64 0, i64 2
  %250 = load i32, ptr %249, align 8, !tbaa !15
  %251 = shl i32 %250, 24
  %252 = or i32 %245, %251
  %253 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 14
  store i32 %252, ptr %253, align 8, !tbaa !9
  %254 = load ptr, ptr %15, align 8, !tbaa !5
  %255 = getelementptr inbounds %class.Point, ptr %254, i32 0, i32 1
  %256 = getelementptr inbounds %class.Int, ptr %255, i32 0, i32 0
  %257 = getelementptr inbounds [10 x i32], ptr %256, i64 0, i64 0
  %258 = load i32, ptr %257, align 8, !tbaa !15
  %259 = lshr i32 %258, 8
  %260 = load ptr, ptr %15, align 8, !tbaa !5
  %261 = getelementptr inbounds %class.Point, ptr %260, i32 0, i32 1
  %262 = getelementptr inbounds %class.Int, ptr %261, i32 0, i32 0
  %263 = getelementptr inbounds [10 x i32], ptr %262, i64 0, i64 1
  %264 = load i32, ptr %263, align 4, !tbaa !15
  %265 = shl i32 %264, 24
  %266 = or i32 %259, %265
  %267 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 15
  store i32 %266, ptr %267, align 4, !tbaa !9
  %268 = load ptr, ptr %15, align 8, !tbaa !5
  %269 = getelementptr inbounds %class.Point, ptr %268, i32 0, i32 1
  %270 = getelementptr inbounds %class.Int, ptr %269, i32 0, i32 0
  %271 = getelementptr inbounds [10 x i32], ptr %270, i64 0, i64 0
  %272 = load i32, ptr %271, align 8, !tbaa !15
  %273 = shl i32 %272, 24
  %274 = or i32 8388608, %273
  %275 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 16
  store i32 %274, ptr %275, align 16, !tbaa !9
  %276 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 17
  store i32 0, ptr %276, align 4, !tbaa !9
  %277 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 18
  store i32 0, ptr %277, align 8, !tbaa !9
  %278 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 19
  store i32 0, ptr %278, align 4, !tbaa !9
  %279 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 20
  store i32 0, ptr %279, align 16, !tbaa !9
  %280 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 21
  store i32 0, ptr %280, align 4, !tbaa !9
  %281 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 22
  store i32 0, ptr %281, align 8, !tbaa !9
  %282 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 23
  store i32 0, ptr %282, align 4, !tbaa !9
  %283 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 24
  store i32 0, ptr %283, align 16, !tbaa !9
  %284 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 25
  store i32 0, ptr %284, align 4, !tbaa !9
  %285 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 26
  store i32 0, ptr %285, align 8, !tbaa !9
  %286 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 27
  store i32 0, ptr %286, align 4, !tbaa !9
  %287 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 28
  store i32 0, ptr %287, align 16, !tbaa !9
  %288 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 29
  store i32 0, ptr %288, align 4, !tbaa !9
  %289 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 30
  store i32 0, ptr %289, align 8, !tbaa !9
  %290 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 31
  store i32 520, ptr %290, align 4, !tbaa !9
  %291 = load ptr, ptr %16, align 8, !tbaa !5
  %292 = getelementptr inbounds %class.Point, ptr %291, i32 0, i32 0
  %293 = getelementptr inbounds %class.Int, ptr %292, i32 0, i32 0
  %294 = getelementptr inbounds [10 x i32], ptr %293, i64 0, i64 7
  %295 = load i32, ptr %294, align 4, !tbaa !15
  %296 = lshr i32 %295, 8
  %297 = or i32 %296, 67108864
  %298 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 0
  store i32 %297, ptr %298, align 16, !tbaa !9
  %299 = load ptr, ptr %16, align 8, !tbaa !5
  %300 = getelementptr inbounds %class.Point, ptr %299, i32 0, i32 0
  %301 = getelementptr inbounds %class.Int, ptr %300, i32 0, i32 0
  %302 = getelementptr inbounds [10 x i32], ptr %301, i64 0, i64 6
  %303 = load i32, ptr %302, align 8, !tbaa !15
  %304 = lshr i32 %303, 8
  %305 = load ptr, ptr %16, align 8, !tbaa !5
  %306 = getelementptr inbounds %class.Point, ptr %305, i32 0, i32 0
  %307 = getelementptr inbounds %class.Int, ptr %306, i32 0, i32 0
  %308 = getelementptr inbounds [10 x i32], ptr %307, i64 0, i64 7
  %309 = load i32, ptr %308, align 4, !tbaa !15
  %310 = shl i32 %309, 24
  %311 = or i32 %304, %310
  %312 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 1
  store i32 %311, ptr %312, align 4, !tbaa !9
  %313 = load ptr, ptr %16, align 8, !tbaa !5
  %314 = getelementptr inbounds %class.Point, ptr %313, i32 0, i32 0
  %315 = getelementptr inbounds %class.Int, ptr %314, i32 0, i32 0
  %316 = getelementptr inbounds [10 x i32], ptr %315, i64 0, i64 5
  %317 = load i32, ptr %316, align 4, !tbaa !15
  %318 = lshr i32 %317, 8
  %319 = load ptr, ptr %16, align 8, !tbaa !5
  %320 = getelementptr inbounds %class.Point, ptr %319, i32 0, i32 0
  %321 = getelementptr inbounds %class.Int, ptr %320, i32 0, i32 0
  %322 = getelementptr inbounds [10 x i32], ptr %321, i64 0, i64 6
  %323 = load i32, ptr %322, align 8, !tbaa !15
  %324 = shl i32 %323, 24
  %325 = or i32 %318, %324
  %326 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 2
  store i32 %325, ptr %326, align 8, !tbaa !9
  %327 = load ptr, ptr %16, align 8, !tbaa !5
  %328 = getelementptr inbounds %class.Point, ptr %327, i32 0, i32 0
  %329 = getelementptr inbounds %class.Int, ptr %328, i32 0, i32 0
  %330 = getelementptr inbounds [10 x i32], ptr %329, i64 0, i64 4
  %331 = load i32, ptr %330, align 8, !tbaa !15
  %332 = lshr i32 %331, 8
  %333 = load ptr, ptr %16, align 8, !tbaa !5
  %334 = getelementptr inbounds %class.Point, ptr %333, i32 0, i32 0
  %335 = getelementptr inbounds %class.Int, ptr %334, i32 0, i32 0
  %336 = getelementptr inbounds [10 x i32], ptr %335, i64 0, i64 5
  %337 = load i32, ptr %336, align 4, !tbaa !15
  %338 = shl i32 %337, 24
  %339 = or i32 %332, %338
  %340 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 3
  store i32 %339, ptr %340, align 4, !tbaa !9
  %341 = load ptr, ptr %16, align 8, !tbaa !5
  %342 = getelementptr inbounds %class.Point, ptr %341, i32 0, i32 0
  %343 = getelementptr inbounds %class.Int, ptr %342, i32 0, i32 0
  %344 = getelementptr inbounds [10 x i32], ptr %343, i64 0, i64 3
  %345 = load i32, ptr %344, align 4, !tbaa !15
  %346 = lshr i32 %345, 8
  %347 = load ptr, ptr %16, align 8, !tbaa !5
  %348 = getelementptr inbounds %class.Point, ptr %347, i32 0, i32 0
  %349 = getelementptr inbounds %class.Int, ptr %348, i32 0, i32 0
  %350 = getelementptr inbounds [10 x i32], ptr %349, i64 0, i64 4
  %351 = load i32, ptr %350, align 8, !tbaa !15
  %352 = shl i32 %351, 24
  %353 = or i32 %346, %352
  %354 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 4
  store i32 %353, ptr %354, align 16, !tbaa !9
  %355 = load ptr, ptr %16, align 8, !tbaa !5
  %356 = getelementptr inbounds %class.Point, ptr %355, i32 0, i32 0
  %357 = getelementptr inbounds %class.Int, ptr %356, i32 0, i32 0
  %358 = getelementptr inbounds [10 x i32], ptr %357, i64 0, i64 2
  %359 = load i32, ptr %358, align 8, !tbaa !15
  %360 = lshr i32 %359, 8
  %361 = load ptr, ptr %16, align 8, !tbaa !5
  %362 = getelementptr inbounds %class.Point, ptr %361, i32 0, i32 0
  %363 = getelementptr inbounds %class.Int, ptr %362, i32 0, i32 0
  %364 = getelementptr inbounds [10 x i32], ptr %363, i64 0, i64 3
  %365 = load i32, ptr %364, align 4, !tbaa !15
  %366 = shl i32 %365, 24
  %367 = or i32 %360, %366
  %368 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 5
  store i32 %367, ptr %368, align 4, !tbaa !9
  %369 = load ptr, ptr %16, align 8, !tbaa !5
  %370 = getelementptr inbounds %class.Point, ptr %369, i32 0, i32 0
  %371 = getelementptr inbounds %class.Int, ptr %370, i32 0, i32 0
  %372 = getelementptr inbounds [10 x i32], ptr %371, i64 0, i64 1
  %373 = load i32, ptr %372, align 4, !tbaa !15
  %374 = lshr i32 %373, 8
  %375 = load ptr, ptr %16, align 8, !tbaa !5
  %376 = getelementptr inbounds %class.Point, ptr %375, i32 0, i32 0
  %377 = getelementptr inbounds %class.Int, ptr %376, i32 0, i32 0
  %378 = getelementptr inbounds [10 x i32], ptr %377, i64 0, i64 2
  %379 = load i32, ptr %378, align 8, !tbaa !15
  %380 = shl i32 %379, 24
  %381 = or i32 %374, %380
  %382 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 6
  store i32 %381, ptr %382, align 8, !tbaa !9
  %383 = load ptr, ptr %16, align 8, !tbaa !5
  %384 = getelementptr inbounds %class.Point, ptr %383, i32 0, i32 0
  %385 = getelementptr inbounds %class.Int, ptr %384, i32 0, i32 0
  %386 = getelementptr inbounds [10 x i32], ptr %385, i64 0, i64 0
  %387 = load i32, ptr %386, align 8, !tbaa !15
  %388 = lshr i32 %387, 8
  %389 = load ptr, ptr %16, align 8, !tbaa !5
  %390 = getelementptr inbounds %class.Point, ptr %389, i32 0, i32 0
  %391 = getelementptr inbounds %class.Int, ptr %390, i32 0, i32 0
  %392 = getelementptr inbounds [10 x i32], ptr %391, i64 0, i64 1
  %393 = load i32, ptr %392, align 4, !tbaa !15
  %394 = shl i32 %393, 24
  %395 = or i32 %388, %394
  %396 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 7
  store i32 %395, ptr %396, align 4, !tbaa !9
  %397 = load ptr, ptr %16, align 8, !tbaa !5
  %398 = getelementptr inbounds %class.Point, ptr %397, i32 0, i32 1
  %399 = getelementptr inbounds %class.Int, ptr %398, i32 0, i32 0
  %400 = getelementptr inbounds [10 x i32], ptr %399, i64 0, i64 7
  %401 = load i32, ptr %400, align 4, !tbaa !15
  %402 = lshr i32 %401, 8
  %403 = load ptr, ptr %16, align 8, !tbaa !5
  %404 = getelementptr inbounds %class.Point, ptr %403, i32 0, i32 0
  %405 = getelementptr inbounds %class.Int, ptr %404, i32 0, i32 0
  %406 = getelementptr inbounds [10 x i32], ptr %405, i64 0, i64 0
  %407 = load i32, ptr %406, align 8, !tbaa !15
  %408 = shl i32 %407, 24
  %409 = or i32 %402, %408
  %410 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 8
  store i32 %409, ptr %410, align 16, !tbaa !9
  %411 = load ptr, ptr %16, align 8, !tbaa !5
  %412 = getelementptr inbounds %class.Point, ptr %411, i32 0, i32 1
  %413 = getelementptr inbounds %class.Int, ptr %412, i32 0, i32 0
  %414 = getelementptr inbounds [10 x i32], ptr %413, i64 0, i64 6
  %415 = load i32, ptr %414, align 8, !tbaa !15
  %416 = lshr i32 %415, 8
  %417 = load ptr, ptr %16, align 8, !tbaa !5
  %418 = getelementptr inbounds %class.Point, ptr %417, i32 0, i32 1
  %419 = getelementptr inbounds %class.Int, ptr %418, i32 0, i32 0
  %420 = getelementptr inbounds [10 x i32], ptr %419, i64 0, i64 7
  %421 = load i32, ptr %420, align 4, !tbaa !15
  %422 = shl i32 %421, 24
  %423 = or i32 %416, %422
  %424 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 9
  store i32 %423, ptr %424, align 4, !tbaa !9
  %425 = load ptr, ptr %16, align 8, !tbaa !5
  %426 = getelementptr inbounds %class.Point, ptr %425, i32 0, i32 1
  %427 = getelementptr inbounds %class.Int, ptr %426, i32 0, i32 0
  %428 = getelementptr inbounds [10 x i32], ptr %427, i64 0, i64 5
  %429 = load i32, ptr %428, align 4, !tbaa !15
  %430 = lshr i32 %429, 8
  %431 = load ptr, ptr %16, align 8, !tbaa !5
  %432 = getelementptr inbounds %class.Point, ptr %431, i32 0, i32 1
  %433 = getelementptr inbounds %class.Int, ptr %432, i32 0, i32 0
  %434 = getelementptr inbounds [10 x i32], ptr %433, i64 0, i64 6
  %435 = load i32, ptr %434, align 8, !tbaa !15
  %436 = shl i32 %435, 24
  %437 = or i32 %430, %436
  %438 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 10
  store i32 %437, ptr %438, align 8, !tbaa !9
  %439 = load ptr, ptr %16, align 8, !tbaa !5
  %440 = getelementptr inbounds %class.Point, ptr %439, i32 0, i32 1
  %441 = getelementptr inbounds %class.Int, ptr %440, i32 0, i32 0
  %442 = getelementptr inbounds [10 x i32], ptr %441, i64 0, i64 4
  %443 = load i32, ptr %442, align 8, !tbaa !15
  %444 = lshr i32 %443, 8
  %445 = load ptr, ptr %16, align 8, !tbaa !5
  %446 = getelementptr inbounds %class.Point, ptr %445, i32 0, i32 1
  %447 = getelementptr inbounds %class.Int, ptr %446, i32 0, i32 0
  %448 = getelementptr inbounds [10 x i32], ptr %447, i64 0, i64 5
  %449 = load i32, ptr %448, align 4, !tbaa !15
  %450 = shl i32 %449, 24
  %451 = or i32 %444, %450
  %452 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 11
  store i32 %451, ptr %452, align 4, !tbaa !9
  %453 = load ptr, ptr %16, align 8, !tbaa !5
  %454 = getelementptr inbounds %class.Point, ptr %453, i32 0, i32 1
  %455 = getelementptr inbounds %class.Int, ptr %454, i32 0, i32 0
  %456 = getelementptr inbounds [10 x i32], ptr %455, i64 0, i64 3
  %457 = load i32, ptr %456, align 4, !tbaa !15
  %458 = lshr i32 %457, 8
  %459 = load ptr, ptr %16, align 8, !tbaa !5
  %460 = getelementptr inbounds %class.Point, ptr %459, i32 0, i32 1
  %461 = getelementptr inbounds %class.Int, ptr %460, i32 0, i32 0
  %462 = getelementptr inbounds [10 x i32], ptr %461, i64 0, i64 4
  %463 = load i32, ptr %462, align 8, !tbaa !15
  %464 = shl i32 %463, 24
  %465 = or i32 %458, %464
  %466 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 12
  store i32 %465, ptr %466, align 16, !tbaa !9
  %467 = load ptr, ptr %16, align 8, !tbaa !5
  %468 = getelementptr inbounds %class.Point, ptr %467, i32 0, i32 1
  %469 = getelementptr inbounds %class.Int, ptr %468, i32 0, i32 0
  %470 = getelementptr inbounds [10 x i32], ptr %469, i64 0, i64 2
  %471 = load i32, ptr %470, align 8, !tbaa !15
  %472 = lshr i32 %471, 8
  %473 = load ptr, ptr %16, align 8, !tbaa !5
  %474 = getelementptr inbounds %class.Point, ptr %473, i32 0, i32 1
  %475 = getelementptr inbounds %class.Int, ptr %474, i32 0, i32 0
  %476 = getelementptr inbounds [10 x i32], ptr %475, i64 0, i64 3
  %477 = load i32, ptr %476, align 4, !tbaa !15
  %478 = shl i32 %477, 24
  %479 = or i32 %472, %478
  %480 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 13
  store i32 %479, ptr %480, align 4, !tbaa !9
  %481 = load ptr, ptr %16, align 8, !tbaa !5
  %482 = getelementptr inbounds %class.Point, ptr %481, i32 0, i32 1
  %483 = getelementptr inbounds %class.Int, ptr %482, i32 0, i32 0
  %484 = getelementptr inbounds [10 x i32], ptr %483, i64 0, i64 1
  %485 = load i32, ptr %484, align 4, !tbaa !15
  %486 = lshr i32 %485, 8
  %487 = load ptr, ptr %16, align 8, !tbaa !5
  %488 = getelementptr inbounds %class.Point, ptr %487, i32 0, i32 1
  %489 = getelementptr inbounds %class.Int, ptr %488, i32 0, i32 0
  %490 = getelementptr inbounds [10 x i32], ptr %489, i64 0, i64 2
  %491 = load i32, ptr %490, align 8, !tbaa !15
  %492 = shl i32 %491, 24
  %493 = or i32 %486, %492
  %494 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 14
  store i32 %493, ptr %494, align 8, !tbaa !9
  %495 = load ptr, ptr %16, align 8, !tbaa !5
  %496 = getelementptr inbounds %class.Point, ptr %495, i32 0, i32 1
  %497 = getelementptr inbounds %class.Int, ptr %496, i32 0, i32 0
  %498 = getelementptr inbounds [10 x i32], ptr %497, i64 0, i64 0
  %499 = load i32, ptr %498, align 8, !tbaa !15
  %500 = lshr i32 %499, 8
  %501 = load ptr, ptr %16, align 8, !tbaa !5
  %502 = getelementptr inbounds %class.Point, ptr %501, i32 0, i32 1
  %503 = getelementptr inbounds %class.Int, ptr %502, i32 0, i32 0
  %504 = getelementptr inbounds [10 x i32], ptr %503, i64 0, i64 1
  %505 = load i32, ptr %504, align 4, !tbaa !15
  %506 = shl i32 %505, 24
  %507 = or i32 %500, %506
  %508 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 15
  store i32 %507, ptr %508, align 4, !tbaa !9
  %509 = load ptr, ptr %16, align 8, !tbaa !5
  %510 = getelementptr inbounds %class.Point, ptr %509, i32 0, i32 1
  %511 = getelementptr inbounds %class.Int, ptr %510, i32 0, i32 0
  %512 = getelementptr inbounds [10 x i32], ptr %511, i64 0, i64 0
  %513 = load i32, ptr %512, align 8, !tbaa !15
  %514 = shl i32 %513, 24
  %515 = or i32 8388608, %514
  %516 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 16
  store i32 %515, ptr %516, align 16, !tbaa !9
  %517 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 17
  store i32 0, ptr %517, align 4, !tbaa !9
  %518 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 18
  store i32 0, ptr %518, align 8, !tbaa !9
  %519 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 19
  store i32 0, ptr %519, align 4, !tbaa !9
  %520 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 20
  store i32 0, ptr %520, align 16, !tbaa !9
  %521 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 21
  store i32 0, ptr %521, align 4, !tbaa !9
  %522 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 22
  store i32 0, ptr %522, align 8, !tbaa !9
  %523 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 23
  store i32 0, ptr %523, align 4, !tbaa !9
  %524 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 24
  store i32 0, ptr %524, align 16, !tbaa !9
  %525 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 25
  store i32 0, ptr %525, align 4, !tbaa !9
  %526 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 26
  store i32 0, ptr %526, align 8, !tbaa !9
  %527 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 27
  store i32 0, ptr %527, align 4, !tbaa !9
  %528 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 28
  store i32 0, ptr %528, align 16, !tbaa !9
  %529 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 29
  store i32 0, ptr %529, align 4, !tbaa !9
  %530 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 30
  store i32 0, ptr %530, align 8, !tbaa !9
  %531 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 31
  store i32 520, ptr %531, align 4, !tbaa !9
  %532 = load ptr, ptr %17, align 8, !tbaa !5
  %533 = getelementptr inbounds %class.Point, ptr %532, i32 0, i32 0
  %534 = getelementptr inbounds %class.Int, ptr %533, i32 0, i32 0
  %535 = getelementptr inbounds [10 x i32], ptr %534, i64 0, i64 7
  %536 = load i32, ptr %535, align 4, !tbaa !15
  %537 = lshr i32 %536, 8
  %538 = or i32 %537, 67108864
  %539 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 0
  store i32 %538, ptr %539, align 16, !tbaa !9
  %540 = load ptr, ptr %17, align 8, !tbaa !5
  %541 = getelementptr inbounds %class.Point, ptr %540, i32 0, i32 0
  %542 = getelementptr inbounds %class.Int, ptr %541, i32 0, i32 0
  %543 = getelementptr inbounds [10 x i32], ptr %542, i64 0, i64 6
  %544 = load i32, ptr %543, align 8, !tbaa !15
  %545 = lshr i32 %544, 8
  %546 = load ptr, ptr %17, align 8, !tbaa !5
  %547 = getelementptr inbounds %class.Point, ptr %546, i32 0, i32 0
  %548 = getelementptr inbounds %class.Int, ptr %547, i32 0, i32 0
  %549 = getelementptr inbounds [10 x i32], ptr %548, i64 0, i64 7
  %550 = load i32, ptr %549, align 4, !tbaa !15
  %551 = shl i32 %550, 24
  %552 = or i32 %545, %551
  %553 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 1
  store i32 %552, ptr %553, align 4, !tbaa !9
  %554 = load ptr, ptr %17, align 8, !tbaa !5
  %555 = getelementptr inbounds %class.Point, ptr %554, i32 0, i32 0
  %556 = getelementptr inbounds %class.Int, ptr %555, i32 0, i32 0
  %557 = getelementptr inbounds [10 x i32], ptr %556, i64 0, i64 5
  %558 = load i32, ptr %557, align 4, !tbaa !15
  %559 = lshr i32 %558, 8
  %560 = load ptr, ptr %17, align 8, !tbaa !5
  %561 = getelementptr inbounds %class.Point, ptr %560, i32 0, i32 0
  %562 = getelementptr inbounds %class.Int, ptr %561, i32 0, i32 0
  %563 = getelementptr inbounds [10 x i32], ptr %562, i64 0, i64 6
  %564 = load i32, ptr %563, align 8, !tbaa !15
  %565 = shl i32 %564, 24
  %566 = or i32 %559, %565
  %567 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 2
  store i32 %566, ptr %567, align 8, !tbaa !9
  %568 = load ptr, ptr %17, align 8, !tbaa !5
  %569 = getelementptr inbounds %class.Point, ptr %568, i32 0, i32 0
  %570 = getelementptr inbounds %class.Int, ptr %569, i32 0, i32 0
  %571 = getelementptr inbounds [10 x i32], ptr %570, i64 0, i64 4
  %572 = load i32, ptr %571, align 8, !tbaa !15
  %573 = lshr i32 %572, 8
  %574 = load ptr, ptr %17, align 8, !tbaa !5
  %575 = getelementptr inbounds %class.Point, ptr %574, i32 0, i32 0
  %576 = getelementptr inbounds %class.Int, ptr %575, i32 0, i32 0
  %577 = getelementptr inbounds [10 x i32], ptr %576, i64 0, i64 5
  %578 = load i32, ptr %577, align 4, !tbaa !15
  %579 = shl i32 %578, 24
  %580 = or i32 %573, %579
  %581 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 3
  store i32 %580, ptr %581, align 4, !tbaa !9
  %582 = load ptr, ptr %17, align 8, !tbaa !5
  %583 = getelementptr inbounds %class.Point, ptr %582, i32 0, i32 0
  %584 = getelementptr inbounds %class.Int, ptr %583, i32 0, i32 0
  %585 = getelementptr inbounds [10 x i32], ptr %584, i64 0, i64 3
  %586 = load i32, ptr %585, align 4, !tbaa !15
  %587 = lshr i32 %586, 8
  %588 = load ptr, ptr %17, align 8, !tbaa !5
  %589 = getelementptr inbounds %class.Point, ptr %588, i32 0, i32 0
  %590 = getelementptr inbounds %class.Int, ptr %589, i32 0, i32 0
  %591 = getelementptr inbounds [10 x i32], ptr %590, i64 0, i64 4
  %592 = load i32, ptr %591, align 8, !tbaa !15
  %593 = shl i32 %592, 24
  %594 = or i32 %587, %593
  %595 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 4
  store i32 %594, ptr %595, align 16, !tbaa !9
  %596 = load ptr, ptr %17, align 8, !tbaa !5
  %597 = getelementptr inbounds %class.Point, ptr %596, i32 0, i32 0
  %598 = getelementptr inbounds %class.Int, ptr %597, i32 0, i32 0
  %599 = getelementptr inbounds [10 x i32], ptr %598, i64 0, i64 2
  %600 = load i32, ptr %599, align 8, !tbaa !15
  %601 = lshr i32 %600, 8
  %602 = load ptr, ptr %17, align 8, !tbaa !5
  %603 = getelementptr inbounds %class.Point, ptr %602, i32 0, i32 0
  %604 = getelementptr inbounds %class.Int, ptr %603, i32 0, i32 0
  %605 = getelementptr inbounds [10 x i32], ptr %604, i64 0, i64 3
  %606 = load i32, ptr %605, align 4, !tbaa !15
  %607 = shl i32 %606, 24
  %608 = or i32 %601, %607
  %609 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 5
  store i32 %608, ptr %609, align 4, !tbaa !9
  %610 = load ptr, ptr %17, align 8, !tbaa !5
  %611 = getelementptr inbounds %class.Point, ptr %610, i32 0, i32 0
  %612 = getelementptr inbounds %class.Int, ptr %611, i32 0, i32 0
  %613 = getelementptr inbounds [10 x i32], ptr %612, i64 0, i64 1
  %614 = load i32, ptr %613, align 4, !tbaa !15
  %615 = lshr i32 %614, 8
  %616 = load ptr, ptr %17, align 8, !tbaa !5
  %617 = getelementptr inbounds %class.Point, ptr %616, i32 0, i32 0
  %618 = getelementptr inbounds %class.Int, ptr %617, i32 0, i32 0
  %619 = getelementptr inbounds [10 x i32], ptr %618, i64 0, i64 2
  %620 = load i32, ptr %619, align 8, !tbaa !15
  %621 = shl i32 %620, 24
  %622 = or i32 %615, %621
  %623 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 6
  store i32 %622, ptr %623, align 8, !tbaa !9
  %624 = load ptr, ptr %17, align 8, !tbaa !5
  %625 = getelementptr inbounds %class.Point, ptr %624, i32 0, i32 0
  %626 = getelementptr inbounds %class.Int, ptr %625, i32 0, i32 0
  %627 = getelementptr inbounds [10 x i32], ptr %626, i64 0, i64 0
  %628 = load i32, ptr %627, align 8, !tbaa !15
  %629 = lshr i32 %628, 8
  %630 = load ptr, ptr %17, align 8, !tbaa !5
  %631 = getelementptr inbounds %class.Point, ptr %630, i32 0, i32 0
  %632 = getelementptr inbounds %class.Int, ptr %631, i32 0, i32 0
  %633 = getelementptr inbounds [10 x i32], ptr %632, i64 0, i64 1
  %634 = load i32, ptr %633, align 4, !tbaa !15
  %635 = shl i32 %634, 24
  %636 = or i32 %629, %635
  %637 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 7
  store i32 %636, ptr %637, align 4, !tbaa !9
  %638 = load ptr, ptr %17, align 8, !tbaa !5
  %639 = getelementptr inbounds %class.Point, ptr %638, i32 0, i32 1
  %640 = getelementptr inbounds %class.Int, ptr %639, i32 0, i32 0
  %641 = getelementptr inbounds [10 x i32], ptr %640, i64 0, i64 7
  %642 = load i32, ptr %641, align 4, !tbaa !15
  %643 = lshr i32 %642, 8
  %644 = load ptr, ptr %17, align 8, !tbaa !5
  %645 = getelementptr inbounds %class.Point, ptr %644, i32 0, i32 0
  %646 = getelementptr inbounds %class.Int, ptr %645, i32 0, i32 0
  %647 = getelementptr inbounds [10 x i32], ptr %646, i64 0, i64 0
  %648 = load i32, ptr %647, align 8, !tbaa !15
  %649 = shl i32 %648, 24
  %650 = or i32 %643, %649
  %651 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 8
  store i32 %650, ptr %651, align 16, !tbaa !9
  %652 = load ptr, ptr %17, align 8, !tbaa !5
  %653 = getelementptr inbounds %class.Point, ptr %652, i32 0, i32 1
  %654 = getelementptr inbounds %class.Int, ptr %653, i32 0, i32 0
  %655 = getelementptr inbounds [10 x i32], ptr %654, i64 0, i64 6
  %656 = load i32, ptr %655, align 8, !tbaa !15
  %657 = lshr i32 %656, 8
  %658 = load ptr, ptr %17, align 8, !tbaa !5
  %659 = getelementptr inbounds %class.Point, ptr %658, i32 0, i32 1
  %660 = getelementptr inbounds %class.Int, ptr %659, i32 0, i32 0
  %661 = getelementptr inbounds [10 x i32], ptr %660, i64 0, i64 7
  %662 = load i32, ptr %661, align 4, !tbaa !15
  %663 = shl i32 %662, 24
  %664 = or i32 %657, %663
  %665 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 9
  store i32 %664, ptr %665, align 4, !tbaa !9
  %666 = load ptr, ptr %17, align 8, !tbaa !5
  %667 = getelementptr inbounds %class.Point, ptr %666, i32 0, i32 1
  %668 = getelementptr inbounds %class.Int, ptr %667, i32 0, i32 0
  %669 = getelementptr inbounds [10 x i32], ptr %668, i64 0, i64 5
  %670 = load i32, ptr %669, align 4, !tbaa !15
  %671 = lshr i32 %670, 8
  %672 = load ptr, ptr %17, align 8, !tbaa !5
  %673 = getelementptr inbounds %class.Point, ptr %672, i32 0, i32 1
  %674 = getelementptr inbounds %class.Int, ptr %673, i32 0, i32 0
  %675 = getelementptr inbounds [10 x i32], ptr %674, i64 0, i64 6
  %676 = load i32, ptr %675, align 8, !tbaa !15
  %677 = shl i32 %676, 24
  %678 = or i32 %671, %677
  %679 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 10
  store i32 %678, ptr %679, align 8, !tbaa !9
  %680 = load ptr, ptr %17, align 8, !tbaa !5
  %681 = getelementptr inbounds %class.Point, ptr %680, i32 0, i32 1
  %682 = getelementptr inbounds %class.Int, ptr %681, i32 0, i32 0
  %683 = getelementptr inbounds [10 x i32], ptr %682, i64 0, i64 4
  %684 = load i32, ptr %683, align 8, !tbaa !15
  %685 = lshr i32 %684, 8
  %686 = load ptr, ptr %17, align 8, !tbaa !5
  %687 = getelementptr inbounds %class.Point, ptr %686, i32 0, i32 1
  %688 = getelementptr inbounds %class.Int, ptr %687, i32 0, i32 0
  %689 = getelementptr inbounds [10 x i32], ptr %688, i64 0, i64 5
  %690 = load i32, ptr %689, align 4, !tbaa !15
  %691 = shl i32 %690, 24
  %692 = or i32 %685, %691
  %693 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 11
  store i32 %692, ptr %693, align 4, !tbaa !9
  %694 = load ptr, ptr %17, align 8, !tbaa !5
  %695 = getelementptr inbounds %class.Point, ptr %694, i32 0, i32 1
  %696 = getelementptr inbounds %class.Int, ptr %695, i32 0, i32 0
  %697 = getelementptr inbounds [10 x i32], ptr %696, i64 0, i64 3
  %698 = load i32, ptr %697, align 4, !tbaa !15
  %699 = lshr i32 %698, 8
  %700 = load ptr, ptr %17, align 8, !tbaa !5
  %701 = getelementptr inbounds %class.Point, ptr %700, i32 0, i32 1
  %702 = getelementptr inbounds %class.Int, ptr %701, i32 0, i32 0
  %703 = getelementptr inbounds [10 x i32], ptr %702, i64 0, i64 4
  %704 = load i32, ptr %703, align 8, !tbaa !15
  %705 = shl i32 %704, 24
  %706 = or i32 %699, %705
  %707 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 12
  store i32 %706, ptr %707, align 16, !tbaa !9
  %708 = load ptr, ptr %17, align 8, !tbaa !5
  %709 = getelementptr inbounds %class.Point, ptr %708, i32 0, i32 1
  %710 = getelementptr inbounds %class.Int, ptr %709, i32 0, i32 0
  %711 = getelementptr inbounds [10 x i32], ptr %710, i64 0, i64 2
  %712 = load i32, ptr %711, align 8, !tbaa !15
  %713 = lshr i32 %712, 8
  %714 = load ptr, ptr %17, align 8, !tbaa !5
  %715 = getelementptr inbounds %class.Point, ptr %714, i32 0, i32 1
  %716 = getelementptr inbounds %class.Int, ptr %715, i32 0, i32 0
  %717 = getelementptr inbounds [10 x i32], ptr %716, i64 0, i64 3
  %718 = load i32, ptr %717, align 4, !tbaa !15
  %719 = shl i32 %718, 24
  %720 = or i32 %713, %719
  %721 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 13
  store i32 %720, ptr %721, align 4, !tbaa !9
  %722 = load ptr, ptr %17, align 8, !tbaa !5
  %723 = getelementptr inbounds %class.Point, ptr %722, i32 0, i32 1
  %724 = getelementptr inbounds %class.Int, ptr %723, i32 0, i32 0
  %725 = getelementptr inbounds [10 x i32], ptr %724, i64 0, i64 1
  %726 = load i32, ptr %725, align 4, !tbaa !15
  %727 = lshr i32 %726, 8
  %728 = load ptr, ptr %17, align 8, !tbaa !5
  %729 = getelementptr inbounds %class.Point, ptr %728, i32 0, i32 1
  %730 = getelementptr inbounds %class.Int, ptr %729, i32 0, i32 0
  %731 = getelementptr inbounds [10 x i32], ptr %730, i64 0, i64 2
  %732 = load i32, ptr %731, align 8, !tbaa !15
  %733 = shl i32 %732, 24
  %734 = or i32 %727, %733
  %735 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 14
  store i32 %734, ptr %735, align 8, !tbaa !9
  %736 = load ptr, ptr %17, align 8, !tbaa !5
  %737 = getelementptr inbounds %class.Point, ptr %736, i32 0, i32 1
  %738 = getelementptr inbounds %class.Int, ptr %737, i32 0, i32 0
  %739 = getelementptr inbounds [10 x i32], ptr %738, i64 0, i64 0
  %740 = load i32, ptr %739, align 8, !tbaa !15
  %741 = lshr i32 %740, 8
  %742 = load ptr, ptr %17, align 8, !tbaa !5
  %743 = getelementptr inbounds %class.Point, ptr %742, i32 0, i32 1
  %744 = getelementptr inbounds %class.Int, ptr %743, i32 0, i32 0
  %745 = getelementptr inbounds [10 x i32], ptr %744, i64 0, i64 1
  %746 = load i32, ptr %745, align 4, !tbaa !15
  %747 = shl i32 %746, 24
  %748 = or i32 %741, %747
  %749 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 15
  store i32 %748, ptr %749, align 4, !tbaa !9
  %750 = load ptr, ptr %17, align 8, !tbaa !5
  %751 = getelementptr inbounds %class.Point, ptr %750, i32 0, i32 1
  %752 = getelementptr inbounds %class.Int, ptr %751, i32 0, i32 0
  %753 = getelementptr inbounds [10 x i32], ptr %752, i64 0, i64 0
  %754 = load i32, ptr %753, align 8, !tbaa !15
  %755 = shl i32 %754, 24
  %756 = or i32 8388608, %755
  %757 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 16
  store i32 %756, ptr %757, align 16, !tbaa !9
  %758 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 17
  store i32 0, ptr %758, align 4, !tbaa !9
  %759 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 18
  store i32 0, ptr %759, align 8, !tbaa !9
  %760 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 19
  store i32 0, ptr %760, align 4, !tbaa !9
  %761 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 20
  store i32 0, ptr %761, align 16, !tbaa !9
  %762 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 21
  store i32 0, ptr %762, align 4, !tbaa !9
  %763 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 22
  store i32 0, ptr %763, align 8, !tbaa !9
  %764 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 23
  store i32 0, ptr %764, align 4, !tbaa !9
  %765 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 24
  store i32 0, ptr %765, align 16, !tbaa !9
  %766 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 25
  store i32 0, ptr %766, align 4, !tbaa !9
  %767 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 26
  store i32 0, ptr %767, align 8, !tbaa !9
  %768 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 27
  store i32 0, ptr %768, align 4, !tbaa !9
  %769 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 28
  store i32 0, ptr %769, align 16, !tbaa !9
  %770 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 29
  store i32 0, ptr %770, align 4, !tbaa !9
  %771 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 30
  store i32 0, ptr %771, align 8, !tbaa !9
  %772 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 31
  store i32 520, ptr %772, align 4, !tbaa !9
  %773 = load ptr, ptr %18, align 8, !tbaa !5
  %774 = getelementptr inbounds %class.Point, ptr %773, i32 0, i32 0
  %775 = getelementptr inbounds %class.Int, ptr %774, i32 0, i32 0
  %776 = getelementptr inbounds [10 x i32], ptr %775, i64 0, i64 7
  %777 = load i32, ptr %776, align 4, !tbaa !15
  %778 = lshr i32 %777, 8
  %779 = or i32 %778, 67108864
  %780 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 0
  store i32 %779, ptr %780, align 16, !tbaa !9
  %781 = load ptr, ptr %18, align 8, !tbaa !5
  %782 = getelementptr inbounds %class.Point, ptr %781, i32 0, i32 0
  %783 = getelementptr inbounds %class.Int, ptr %782, i32 0, i32 0
  %784 = getelementptr inbounds [10 x i32], ptr %783, i64 0, i64 6
  %785 = load i32, ptr %784, align 8, !tbaa !15
  %786 = lshr i32 %785, 8
  %787 = load ptr, ptr %18, align 8, !tbaa !5
  %788 = getelementptr inbounds %class.Point, ptr %787, i32 0, i32 0
  %789 = getelementptr inbounds %class.Int, ptr %788, i32 0, i32 0
  %790 = getelementptr inbounds [10 x i32], ptr %789, i64 0, i64 7
  %791 = load i32, ptr %790, align 4, !tbaa !15
  %792 = shl i32 %791, 24
  %793 = or i32 %786, %792
  %794 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 1
  store i32 %793, ptr %794, align 4, !tbaa !9
  %795 = load ptr, ptr %18, align 8, !tbaa !5
  %796 = getelementptr inbounds %class.Point, ptr %795, i32 0, i32 0
  %797 = getelementptr inbounds %class.Int, ptr %796, i32 0, i32 0
  %798 = getelementptr inbounds [10 x i32], ptr %797, i64 0, i64 5
  %799 = load i32, ptr %798, align 4, !tbaa !15
  %800 = lshr i32 %799, 8
  %801 = load ptr, ptr %18, align 8, !tbaa !5
  %802 = getelementptr inbounds %class.Point, ptr %801, i32 0, i32 0
  %803 = getelementptr inbounds %class.Int, ptr %802, i32 0, i32 0
  %804 = getelementptr inbounds [10 x i32], ptr %803, i64 0, i64 6
  %805 = load i32, ptr %804, align 8, !tbaa !15
  %806 = shl i32 %805, 24
  %807 = or i32 %800, %806
  %808 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 2
  store i32 %807, ptr %808, align 8, !tbaa !9
  %809 = load ptr, ptr %18, align 8, !tbaa !5
  %810 = getelementptr inbounds %class.Point, ptr %809, i32 0, i32 0
  %811 = getelementptr inbounds %class.Int, ptr %810, i32 0, i32 0
  %812 = getelementptr inbounds [10 x i32], ptr %811, i64 0, i64 4
  %813 = load i32, ptr %812, align 8, !tbaa !15
  %814 = lshr i32 %813, 8
  %815 = load ptr, ptr %18, align 8, !tbaa !5
  %816 = getelementptr inbounds %class.Point, ptr %815, i32 0, i32 0
  %817 = getelementptr inbounds %class.Int, ptr %816, i32 0, i32 0
  %818 = getelementptr inbounds [10 x i32], ptr %817, i64 0, i64 5
  %819 = load i32, ptr %818, align 4, !tbaa !15
  %820 = shl i32 %819, 24
  %821 = or i32 %814, %820
  %822 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 3
  store i32 %821, ptr %822, align 4, !tbaa !9
  %823 = load ptr, ptr %18, align 8, !tbaa !5
  %824 = getelementptr inbounds %class.Point, ptr %823, i32 0, i32 0
  %825 = getelementptr inbounds %class.Int, ptr %824, i32 0, i32 0
  %826 = getelementptr inbounds [10 x i32], ptr %825, i64 0, i64 3
  %827 = load i32, ptr %826, align 4, !tbaa !15
  %828 = lshr i32 %827, 8
  %829 = load ptr, ptr %18, align 8, !tbaa !5
  %830 = getelementptr inbounds %class.Point, ptr %829, i32 0, i32 0
  %831 = getelementptr inbounds %class.Int, ptr %830, i32 0, i32 0
  %832 = getelementptr inbounds [10 x i32], ptr %831, i64 0, i64 4
  %833 = load i32, ptr %832, align 8, !tbaa !15
  %834 = shl i32 %833, 24
  %835 = or i32 %828, %834
  %836 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 4
  store i32 %835, ptr %836, align 16, !tbaa !9
  %837 = load ptr, ptr %18, align 8, !tbaa !5
  %838 = getelementptr inbounds %class.Point, ptr %837, i32 0, i32 0
  %839 = getelementptr inbounds %class.Int, ptr %838, i32 0, i32 0
  %840 = getelementptr inbounds [10 x i32], ptr %839, i64 0, i64 2
  %841 = load i32, ptr %840, align 8, !tbaa !15
  %842 = lshr i32 %841, 8
  %843 = load ptr, ptr %18, align 8, !tbaa !5
  %844 = getelementptr inbounds %class.Point, ptr %843, i32 0, i32 0
  %845 = getelementptr inbounds %class.Int, ptr %844, i32 0, i32 0
  %846 = getelementptr inbounds [10 x i32], ptr %845, i64 0, i64 3
  %847 = load i32, ptr %846, align 4, !tbaa !15
  %848 = shl i32 %847, 24
  %849 = or i32 %842, %848
  %850 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 5
  store i32 %849, ptr %850, align 4, !tbaa !9
  %851 = load ptr, ptr %18, align 8, !tbaa !5
  %852 = getelementptr inbounds %class.Point, ptr %851, i32 0, i32 0
  %853 = getelementptr inbounds %class.Int, ptr %852, i32 0, i32 0
  %854 = getelementptr inbounds [10 x i32], ptr %853, i64 0, i64 1
  %855 = load i32, ptr %854, align 4, !tbaa !15
  %856 = lshr i32 %855, 8
  %857 = load ptr, ptr %18, align 8, !tbaa !5
  %858 = getelementptr inbounds %class.Point, ptr %857, i32 0, i32 0
  %859 = getelementptr inbounds %class.Int, ptr %858, i32 0, i32 0
  %860 = getelementptr inbounds [10 x i32], ptr %859, i64 0, i64 2
  %861 = load i32, ptr %860, align 8, !tbaa !15
  %862 = shl i32 %861, 24
  %863 = or i32 %856, %862
  %864 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 6
  store i32 %863, ptr %864, align 8, !tbaa !9
  %865 = load ptr, ptr %18, align 8, !tbaa !5
  %866 = getelementptr inbounds %class.Point, ptr %865, i32 0, i32 0
  %867 = getelementptr inbounds %class.Int, ptr %866, i32 0, i32 0
  %868 = getelementptr inbounds [10 x i32], ptr %867, i64 0, i64 0
  %869 = load i32, ptr %868, align 8, !tbaa !15
  %870 = lshr i32 %869, 8
  %871 = load ptr, ptr %18, align 8, !tbaa !5
  %872 = getelementptr inbounds %class.Point, ptr %871, i32 0, i32 0
  %873 = getelementptr inbounds %class.Int, ptr %872, i32 0, i32 0
  %874 = getelementptr inbounds [10 x i32], ptr %873, i64 0, i64 1
  %875 = load i32, ptr %874, align 4, !tbaa !15
  %876 = shl i32 %875, 24
  %877 = or i32 %870, %876
  %878 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 7
  store i32 %877, ptr %878, align 4, !tbaa !9
  %879 = load ptr, ptr %18, align 8, !tbaa !5
  %880 = getelementptr inbounds %class.Point, ptr %879, i32 0, i32 1
  %881 = getelementptr inbounds %class.Int, ptr %880, i32 0, i32 0
  %882 = getelementptr inbounds [10 x i32], ptr %881, i64 0, i64 7
  %883 = load i32, ptr %882, align 4, !tbaa !15
  %884 = lshr i32 %883, 8
  %885 = load ptr, ptr %18, align 8, !tbaa !5
  %886 = getelementptr inbounds %class.Point, ptr %885, i32 0, i32 0
  %887 = getelementptr inbounds %class.Int, ptr %886, i32 0, i32 0
  %888 = getelementptr inbounds [10 x i32], ptr %887, i64 0, i64 0
  %889 = load i32, ptr %888, align 8, !tbaa !15
  %890 = shl i32 %889, 24
  %891 = or i32 %884, %890
  %892 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 8
  store i32 %891, ptr %892, align 16, !tbaa !9
  %893 = load ptr, ptr %18, align 8, !tbaa !5
  %894 = getelementptr inbounds %class.Point, ptr %893, i32 0, i32 1
  %895 = getelementptr inbounds %class.Int, ptr %894, i32 0, i32 0
  %896 = getelementptr inbounds [10 x i32], ptr %895, i64 0, i64 6
  %897 = load i32, ptr %896, align 8, !tbaa !15
  %898 = lshr i32 %897, 8
  %899 = load ptr, ptr %18, align 8, !tbaa !5
  %900 = getelementptr inbounds %class.Point, ptr %899, i32 0, i32 1
  %901 = getelementptr inbounds %class.Int, ptr %900, i32 0, i32 0
  %902 = getelementptr inbounds [10 x i32], ptr %901, i64 0, i64 7
  %903 = load i32, ptr %902, align 4, !tbaa !15
  %904 = shl i32 %903, 24
  %905 = or i32 %898, %904
  %906 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 9
  store i32 %905, ptr %906, align 4, !tbaa !9
  %907 = load ptr, ptr %18, align 8, !tbaa !5
  %908 = getelementptr inbounds %class.Point, ptr %907, i32 0, i32 1
  %909 = getelementptr inbounds %class.Int, ptr %908, i32 0, i32 0
  %910 = getelementptr inbounds [10 x i32], ptr %909, i64 0, i64 5
  %911 = load i32, ptr %910, align 4, !tbaa !15
  %912 = lshr i32 %911, 8
  %913 = load ptr, ptr %18, align 8, !tbaa !5
  %914 = getelementptr inbounds %class.Point, ptr %913, i32 0, i32 1
  %915 = getelementptr inbounds %class.Int, ptr %914, i32 0, i32 0
  %916 = getelementptr inbounds [10 x i32], ptr %915, i64 0, i64 6
  %917 = load i32, ptr %916, align 8, !tbaa !15
  %918 = shl i32 %917, 24
  %919 = or i32 %912, %918
  %920 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 10
  store i32 %919, ptr %920, align 8, !tbaa !9
  %921 = load ptr, ptr %18, align 8, !tbaa !5
  %922 = getelementptr inbounds %class.Point, ptr %921, i32 0, i32 1
  %923 = getelementptr inbounds %class.Int, ptr %922, i32 0, i32 0
  %924 = getelementptr inbounds [10 x i32], ptr %923, i64 0, i64 4
  %925 = load i32, ptr %924, align 8, !tbaa !15
  %926 = lshr i32 %925, 8
  %927 = load ptr, ptr %18, align 8, !tbaa !5
  %928 = getelementptr inbounds %class.Point, ptr %927, i32 0, i32 1
  %929 = getelementptr inbounds %class.Int, ptr %928, i32 0, i32 0
  %930 = getelementptr inbounds [10 x i32], ptr %929, i64 0, i64 5
  %931 = load i32, ptr %930, align 4, !tbaa !15
  %932 = shl i32 %931, 24
  %933 = or i32 %926, %932
  %934 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 11
  store i32 %933, ptr %934, align 4, !tbaa !9
  %935 = load ptr, ptr %18, align 8, !tbaa !5
  %936 = getelementptr inbounds %class.Point, ptr %935, i32 0, i32 1
  %937 = getelementptr inbounds %class.Int, ptr %936, i32 0, i32 0
  %938 = getelementptr inbounds [10 x i32], ptr %937, i64 0, i64 3
  %939 = load i32, ptr %938, align 4, !tbaa !15
  %940 = lshr i32 %939, 8
  %941 = load ptr, ptr %18, align 8, !tbaa !5
  %942 = getelementptr inbounds %class.Point, ptr %941, i32 0, i32 1
  %943 = getelementptr inbounds %class.Int, ptr %942, i32 0, i32 0
  %944 = getelementptr inbounds [10 x i32], ptr %943, i64 0, i64 4
  %945 = load i32, ptr %944, align 8, !tbaa !15
  %946 = shl i32 %945, 24
  %947 = or i32 %940, %946
  %948 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 12
  store i32 %947, ptr %948, align 16, !tbaa !9
  %949 = load ptr, ptr %18, align 8, !tbaa !5
  %950 = getelementptr inbounds %class.Point, ptr %949, i32 0, i32 1
  %951 = getelementptr inbounds %class.Int, ptr %950, i32 0, i32 0
  %952 = getelementptr inbounds [10 x i32], ptr %951, i64 0, i64 2
  %953 = load i32, ptr %952, align 8, !tbaa !15
  %954 = lshr i32 %953, 8
  %955 = load ptr, ptr %18, align 8, !tbaa !5
  %956 = getelementptr inbounds %class.Point, ptr %955, i32 0, i32 1
  %957 = getelementptr inbounds %class.Int, ptr %956, i32 0, i32 0
  %958 = getelementptr inbounds [10 x i32], ptr %957, i64 0, i64 3
  %959 = load i32, ptr %958, align 4, !tbaa !15
  %960 = shl i32 %959, 24
  %961 = or i32 %954, %960
  %962 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 13
  store i32 %961, ptr %962, align 4, !tbaa !9
  %963 = load ptr, ptr %18, align 8, !tbaa !5
  %964 = getelementptr inbounds %class.Point, ptr %963, i32 0, i32 1
  %965 = getelementptr inbounds %class.Int, ptr %964, i32 0, i32 0
  %966 = getelementptr inbounds [10 x i32], ptr %965, i64 0, i64 1
  %967 = load i32, ptr %966, align 4, !tbaa !15
  %968 = lshr i32 %967, 8
  %969 = load ptr, ptr %18, align 8, !tbaa !5
  %970 = getelementptr inbounds %class.Point, ptr %969, i32 0, i32 1
  %971 = getelementptr inbounds %class.Int, ptr %970, i32 0, i32 0
  %972 = getelementptr inbounds [10 x i32], ptr %971, i64 0, i64 2
  %973 = load i32, ptr %972, align 8, !tbaa !15
  %974 = shl i32 %973, 24
  %975 = or i32 %968, %974
  %976 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 14
  store i32 %975, ptr %976, align 8, !tbaa !9
  %977 = load ptr, ptr %18, align 8, !tbaa !5
  %978 = getelementptr inbounds %class.Point, ptr %977, i32 0, i32 1
  %979 = getelementptr inbounds %class.Int, ptr %978, i32 0, i32 0
  %980 = getelementptr inbounds [10 x i32], ptr %979, i64 0, i64 0
  %981 = load i32, ptr %980, align 8, !tbaa !15
  %982 = lshr i32 %981, 8
  %983 = load ptr, ptr %18, align 8, !tbaa !5
  %984 = getelementptr inbounds %class.Point, ptr %983, i32 0, i32 1
  %985 = getelementptr inbounds %class.Int, ptr %984, i32 0, i32 0
  %986 = getelementptr inbounds [10 x i32], ptr %985, i64 0, i64 1
  %987 = load i32, ptr %986, align 4, !tbaa !15
  %988 = shl i32 %987, 24
  %989 = or i32 %982, %988
  %990 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 15
  store i32 %989, ptr %990, align 4, !tbaa !9
  %991 = load ptr, ptr %18, align 8, !tbaa !5
  %992 = getelementptr inbounds %class.Point, ptr %991, i32 0, i32 1
  %993 = getelementptr inbounds %class.Int, ptr %992, i32 0, i32 0
  %994 = getelementptr inbounds [10 x i32], ptr %993, i64 0, i64 0
  %995 = load i32, ptr %994, align 8, !tbaa !15
  %996 = shl i32 %995, 24
  %997 = or i32 8388608, %996
  %998 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 16
  store i32 %997, ptr %998, align 16, !tbaa !9
  %999 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 17
  store i32 0, ptr %999, align 4, !tbaa !9
  %1000 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 18
  store i32 0, ptr %1000, align 8, !tbaa !9
  %1001 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 19
  store i32 0, ptr %1001, align 4, !tbaa !9
  %1002 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 20
  store i32 0, ptr %1002, align 16, !tbaa !9
  %1003 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 21
  store i32 0, ptr %1003, align 4, !tbaa !9
  %1004 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 22
  store i32 0, ptr %1004, align 8, !tbaa !9
  %1005 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 23
  store i32 0, ptr %1005, align 4, !tbaa !9
  %1006 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 24
  store i32 0, ptr %1006, align 16, !tbaa !9
  %1007 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 25
  store i32 0, ptr %1007, align 4, !tbaa !9
  %1008 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 26
  store i32 0, ptr %1008, align 8, !tbaa !9
  %1009 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 27
  store i32 0, ptr %1009, align 4, !tbaa !9
  %1010 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 28
  store i32 0, ptr %1010, align 16, !tbaa !9
  %1011 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 29
  store i32 0, ptr %1011, align 4, !tbaa !9
  %1012 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 30
  store i32 0, ptr %1012, align 8, !tbaa !9
  %1013 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 31
  store i32 520, ptr %1013, align 4, !tbaa !9
  %1014 = getelementptr inbounds [32 x i32], ptr %27, i64 0, i64 0
  %1015 = getelementptr inbounds [32 x i32], ptr %28, i64 0, i64 0
  %1016 = getelementptr inbounds [32 x i32], ptr %29, i64 0, i64 0
  %1017 = getelementptr inbounds [32 x i32], ptr %30, i64 0, i64 0
  %1018 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %1019 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %1020 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %1021 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  call void @_Z12sha256sse_2BPjS_S_S_PhS0_S0_S0_(ptr noundef %1014, ptr noundef %1015, ptr noundef %1016, ptr noundef %1017, ptr noundef %1018, ptr noundef %1019, ptr noundef %1020, ptr noundef %1021)
  %1022 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %1023 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %1024 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %1025 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  %1026 = load ptr, ptr %19, align 8, !tbaa !5
  %1027 = load ptr, ptr %20, align 8, !tbaa !5
  %1028 = load ptr, ptr %21, align 8, !tbaa !5
  %1029 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef %1022, ptr noundef %1023, ptr noundef %1024, ptr noundef %1025, ptr noundef %1026, ptr noundef %1027, ptr noundef %1028, ptr noundef %1029)
  call void @llvm.lifetime.end.p0(i64 128, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 128, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 128, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 128, ptr %27) #3
  br label %1555

1030:                                             ; preds = %46
  call void @llvm.lifetime.start.p0(i64 64, ptr %31) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %32) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %33) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %34) #3
  %1031 = load ptr, ptr %15, align 8, !tbaa !5
  %1032 = getelementptr inbounds %class.Point, ptr %1031, i32 0, i32 0
  %1033 = getelementptr inbounds %class.Int, ptr %1032, i32 0, i32 0
  %1034 = getelementptr inbounds [10 x i32], ptr %1033, i64 0, i64 7
  %1035 = load i32, ptr %1034, align 4, !tbaa !15
  %1036 = lshr i32 %1035, 8
  %1037 = load ptr, ptr %15, align 8, !tbaa !5
  %1038 = getelementptr inbounds %class.Point, ptr %1037, i32 0, i32 1
  %1039 = call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %1038)
  %1040 = zext i1 %1039 to i32
  %1041 = add nsw i32 2, %1040
  %1042 = shl i32 %1041, 24
  %1043 = or i32 %1036, %1042
  %1044 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 0
  store i32 %1043, ptr %1044, align 16, !tbaa !9
  %1045 = load ptr, ptr %15, align 8, !tbaa !5
  %1046 = getelementptr inbounds %class.Point, ptr %1045, i32 0, i32 0
  %1047 = getelementptr inbounds %class.Int, ptr %1046, i32 0, i32 0
  %1048 = getelementptr inbounds [10 x i32], ptr %1047, i64 0, i64 6
  %1049 = load i32, ptr %1048, align 8, !tbaa !15
  %1050 = lshr i32 %1049, 8
  %1051 = load ptr, ptr %15, align 8, !tbaa !5
  %1052 = getelementptr inbounds %class.Point, ptr %1051, i32 0, i32 0
  %1053 = getelementptr inbounds %class.Int, ptr %1052, i32 0, i32 0
  %1054 = getelementptr inbounds [10 x i32], ptr %1053, i64 0, i64 7
  %1055 = load i32, ptr %1054, align 4, !tbaa !15
  %1056 = shl i32 %1055, 24
  %1057 = or i32 %1050, %1056
  %1058 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 1
  store i32 %1057, ptr %1058, align 4, !tbaa !9
  %1059 = load ptr, ptr %15, align 8, !tbaa !5
  %1060 = getelementptr inbounds %class.Point, ptr %1059, i32 0, i32 0
  %1061 = getelementptr inbounds %class.Int, ptr %1060, i32 0, i32 0
  %1062 = getelementptr inbounds [10 x i32], ptr %1061, i64 0, i64 5
  %1063 = load i32, ptr %1062, align 4, !tbaa !15
  %1064 = lshr i32 %1063, 8
  %1065 = load ptr, ptr %15, align 8, !tbaa !5
  %1066 = getelementptr inbounds %class.Point, ptr %1065, i32 0, i32 0
  %1067 = getelementptr inbounds %class.Int, ptr %1066, i32 0, i32 0
  %1068 = getelementptr inbounds [10 x i32], ptr %1067, i64 0, i64 6
  %1069 = load i32, ptr %1068, align 8, !tbaa !15
  %1070 = shl i32 %1069, 24
  %1071 = or i32 %1064, %1070
  %1072 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 2
  store i32 %1071, ptr %1072, align 8, !tbaa !9
  %1073 = load ptr, ptr %15, align 8, !tbaa !5
  %1074 = getelementptr inbounds %class.Point, ptr %1073, i32 0, i32 0
  %1075 = getelementptr inbounds %class.Int, ptr %1074, i32 0, i32 0
  %1076 = getelementptr inbounds [10 x i32], ptr %1075, i64 0, i64 4
  %1077 = load i32, ptr %1076, align 8, !tbaa !15
  %1078 = lshr i32 %1077, 8
  %1079 = load ptr, ptr %15, align 8, !tbaa !5
  %1080 = getelementptr inbounds %class.Point, ptr %1079, i32 0, i32 0
  %1081 = getelementptr inbounds %class.Int, ptr %1080, i32 0, i32 0
  %1082 = getelementptr inbounds [10 x i32], ptr %1081, i64 0, i64 5
  %1083 = load i32, ptr %1082, align 4, !tbaa !15
  %1084 = shl i32 %1083, 24
  %1085 = or i32 %1078, %1084
  %1086 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 3
  store i32 %1085, ptr %1086, align 4, !tbaa !9
  %1087 = load ptr, ptr %15, align 8, !tbaa !5
  %1088 = getelementptr inbounds %class.Point, ptr %1087, i32 0, i32 0
  %1089 = getelementptr inbounds %class.Int, ptr %1088, i32 0, i32 0
  %1090 = getelementptr inbounds [10 x i32], ptr %1089, i64 0, i64 3
  %1091 = load i32, ptr %1090, align 4, !tbaa !15
  %1092 = lshr i32 %1091, 8
  %1093 = load ptr, ptr %15, align 8, !tbaa !5
  %1094 = getelementptr inbounds %class.Point, ptr %1093, i32 0, i32 0
  %1095 = getelementptr inbounds %class.Int, ptr %1094, i32 0, i32 0
  %1096 = getelementptr inbounds [10 x i32], ptr %1095, i64 0, i64 4
  %1097 = load i32, ptr %1096, align 8, !tbaa !15
  %1098 = shl i32 %1097, 24
  %1099 = or i32 %1092, %1098
  %1100 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 4
  store i32 %1099, ptr %1100, align 16, !tbaa !9
  %1101 = load ptr, ptr %15, align 8, !tbaa !5
  %1102 = getelementptr inbounds %class.Point, ptr %1101, i32 0, i32 0
  %1103 = getelementptr inbounds %class.Int, ptr %1102, i32 0, i32 0
  %1104 = getelementptr inbounds [10 x i32], ptr %1103, i64 0, i64 2
  %1105 = load i32, ptr %1104, align 8, !tbaa !15
  %1106 = lshr i32 %1105, 8
  %1107 = load ptr, ptr %15, align 8, !tbaa !5
  %1108 = getelementptr inbounds %class.Point, ptr %1107, i32 0, i32 0
  %1109 = getelementptr inbounds %class.Int, ptr %1108, i32 0, i32 0
  %1110 = getelementptr inbounds [10 x i32], ptr %1109, i64 0, i64 3
  %1111 = load i32, ptr %1110, align 4, !tbaa !15
  %1112 = shl i32 %1111, 24
  %1113 = or i32 %1106, %1112
  %1114 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 5
  store i32 %1113, ptr %1114, align 4, !tbaa !9
  %1115 = load ptr, ptr %15, align 8, !tbaa !5
  %1116 = getelementptr inbounds %class.Point, ptr %1115, i32 0, i32 0
  %1117 = getelementptr inbounds %class.Int, ptr %1116, i32 0, i32 0
  %1118 = getelementptr inbounds [10 x i32], ptr %1117, i64 0, i64 1
  %1119 = load i32, ptr %1118, align 4, !tbaa !15
  %1120 = lshr i32 %1119, 8
  %1121 = load ptr, ptr %15, align 8, !tbaa !5
  %1122 = getelementptr inbounds %class.Point, ptr %1121, i32 0, i32 0
  %1123 = getelementptr inbounds %class.Int, ptr %1122, i32 0, i32 0
  %1124 = getelementptr inbounds [10 x i32], ptr %1123, i64 0, i64 2
  %1125 = load i32, ptr %1124, align 8, !tbaa !15
  %1126 = shl i32 %1125, 24
  %1127 = or i32 %1120, %1126
  %1128 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 6
  store i32 %1127, ptr %1128, align 8, !tbaa !9
  %1129 = load ptr, ptr %15, align 8, !tbaa !5
  %1130 = getelementptr inbounds %class.Point, ptr %1129, i32 0, i32 0
  %1131 = getelementptr inbounds %class.Int, ptr %1130, i32 0, i32 0
  %1132 = getelementptr inbounds [10 x i32], ptr %1131, i64 0, i64 0
  %1133 = load i32, ptr %1132, align 8, !tbaa !15
  %1134 = lshr i32 %1133, 8
  %1135 = load ptr, ptr %15, align 8, !tbaa !5
  %1136 = getelementptr inbounds %class.Point, ptr %1135, i32 0, i32 0
  %1137 = getelementptr inbounds %class.Int, ptr %1136, i32 0, i32 0
  %1138 = getelementptr inbounds [10 x i32], ptr %1137, i64 0, i64 1
  %1139 = load i32, ptr %1138, align 4, !tbaa !15
  %1140 = shl i32 %1139, 24
  %1141 = or i32 %1134, %1140
  %1142 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 7
  store i32 %1141, ptr %1142, align 4, !tbaa !9
  %1143 = load ptr, ptr %15, align 8, !tbaa !5
  %1144 = getelementptr inbounds %class.Point, ptr %1143, i32 0, i32 0
  %1145 = getelementptr inbounds %class.Int, ptr %1144, i32 0, i32 0
  %1146 = getelementptr inbounds [10 x i32], ptr %1145, i64 0, i64 0
  %1147 = load i32, ptr %1146, align 8, !tbaa !15
  %1148 = shl i32 %1147, 24
  %1149 = or i32 8388608, %1148
  %1150 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 8
  store i32 %1149, ptr %1150, align 16, !tbaa !9
  %1151 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 9
  store i32 0, ptr %1151, align 4, !tbaa !9
  %1152 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 10
  store i32 0, ptr %1152, align 8, !tbaa !9
  %1153 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 11
  store i32 0, ptr %1153, align 4, !tbaa !9
  %1154 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 12
  store i32 0, ptr %1154, align 16, !tbaa !9
  %1155 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 13
  store i32 0, ptr %1155, align 4, !tbaa !9
  %1156 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 14
  store i32 0, ptr %1156, align 8, !tbaa !9
  %1157 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 15
  store i32 264, ptr %1157, align 4, !tbaa !9
  %1158 = load ptr, ptr %16, align 8, !tbaa !5
  %1159 = getelementptr inbounds %class.Point, ptr %1158, i32 0, i32 0
  %1160 = getelementptr inbounds %class.Int, ptr %1159, i32 0, i32 0
  %1161 = getelementptr inbounds [10 x i32], ptr %1160, i64 0, i64 7
  %1162 = load i32, ptr %1161, align 4, !tbaa !15
  %1163 = lshr i32 %1162, 8
  %1164 = load ptr, ptr %16, align 8, !tbaa !5
  %1165 = getelementptr inbounds %class.Point, ptr %1164, i32 0, i32 1
  %1166 = call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %1165)
  %1167 = zext i1 %1166 to i32
  %1168 = add nsw i32 2, %1167
  %1169 = shl i32 %1168, 24
  %1170 = or i32 %1163, %1169
  %1171 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 0
  store i32 %1170, ptr %1171, align 16, !tbaa !9
  %1172 = load ptr, ptr %16, align 8, !tbaa !5
  %1173 = getelementptr inbounds %class.Point, ptr %1172, i32 0, i32 0
  %1174 = getelementptr inbounds %class.Int, ptr %1173, i32 0, i32 0
  %1175 = getelementptr inbounds [10 x i32], ptr %1174, i64 0, i64 6
  %1176 = load i32, ptr %1175, align 8, !tbaa !15
  %1177 = lshr i32 %1176, 8
  %1178 = load ptr, ptr %16, align 8, !tbaa !5
  %1179 = getelementptr inbounds %class.Point, ptr %1178, i32 0, i32 0
  %1180 = getelementptr inbounds %class.Int, ptr %1179, i32 0, i32 0
  %1181 = getelementptr inbounds [10 x i32], ptr %1180, i64 0, i64 7
  %1182 = load i32, ptr %1181, align 4, !tbaa !15
  %1183 = shl i32 %1182, 24
  %1184 = or i32 %1177, %1183
  %1185 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 1
  store i32 %1184, ptr %1185, align 4, !tbaa !9
  %1186 = load ptr, ptr %16, align 8, !tbaa !5
  %1187 = getelementptr inbounds %class.Point, ptr %1186, i32 0, i32 0
  %1188 = getelementptr inbounds %class.Int, ptr %1187, i32 0, i32 0
  %1189 = getelementptr inbounds [10 x i32], ptr %1188, i64 0, i64 5
  %1190 = load i32, ptr %1189, align 4, !tbaa !15
  %1191 = lshr i32 %1190, 8
  %1192 = load ptr, ptr %16, align 8, !tbaa !5
  %1193 = getelementptr inbounds %class.Point, ptr %1192, i32 0, i32 0
  %1194 = getelementptr inbounds %class.Int, ptr %1193, i32 0, i32 0
  %1195 = getelementptr inbounds [10 x i32], ptr %1194, i64 0, i64 6
  %1196 = load i32, ptr %1195, align 8, !tbaa !15
  %1197 = shl i32 %1196, 24
  %1198 = or i32 %1191, %1197
  %1199 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 2
  store i32 %1198, ptr %1199, align 8, !tbaa !9
  %1200 = load ptr, ptr %16, align 8, !tbaa !5
  %1201 = getelementptr inbounds %class.Point, ptr %1200, i32 0, i32 0
  %1202 = getelementptr inbounds %class.Int, ptr %1201, i32 0, i32 0
  %1203 = getelementptr inbounds [10 x i32], ptr %1202, i64 0, i64 4
  %1204 = load i32, ptr %1203, align 8, !tbaa !15
  %1205 = lshr i32 %1204, 8
  %1206 = load ptr, ptr %16, align 8, !tbaa !5
  %1207 = getelementptr inbounds %class.Point, ptr %1206, i32 0, i32 0
  %1208 = getelementptr inbounds %class.Int, ptr %1207, i32 0, i32 0
  %1209 = getelementptr inbounds [10 x i32], ptr %1208, i64 0, i64 5
  %1210 = load i32, ptr %1209, align 4, !tbaa !15
  %1211 = shl i32 %1210, 24
  %1212 = or i32 %1205, %1211
  %1213 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 3
  store i32 %1212, ptr %1213, align 4, !tbaa !9
  %1214 = load ptr, ptr %16, align 8, !tbaa !5
  %1215 = getelementptr inbounds %class.Point, ptr %1214, i32 0, i32 0
  %1216 = getelementptr inbounds %class.Int, ptr %1215, i32 0, i32 0
  %1217 = getelementptr inbounds [10 x i32], ptr %1216, i64 0, i64 3
  %1218 = load i32, ptr %1217, align 4, !tbaa !15
  %1219 = lshr i32 %1218, 8
  %1220 = load ptr, ptr %16, align 8, !tbaa !5
  %1221 = getelementptr inbounds %class.Point, ptr %1220, i32 0, i32 0
  %1222 = getelementptr inbounds %class.Int, ptr %1221, i32 0, i32 0
  %1223 = getelementptr inbounds [10 x i32], ptr %1222, i64 0, i64 4
  %1224 = load i32, ptr %1223, align 8, !tbaa !15
  %1225 = shl i32 %1224, 24
  %1226 = or i32 %1219, %1225
  %1227 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 4
  store i32 %1226, ptr %1227, align 16, !tbaa !9
  %1228 = load ptr, ptr %16, align 8, !tbaa !5
  %1229 = getelementptr inbounds %class.Point, ptr %1228, i32 0, i32 0
  %1230 = getelementptr inbounds %class.Int, ptr %1229, i32 0, i32 0
  %1231 = getelementptr inbounds [10 x i32], ptr %1230, i64 0, i64 2
  %1232 = load i32, ptr %1231, align 8, !tbaa !15
  %1233 = lshr i32 %1232, 8
  %1234 = load ptr, ptr %16, align 8, !tbaa !5
  %1235 = getelementptr inbounds %class.Point, ptr %1234, i32 0, i32 0
  %1236 = getelementptr inbounds %class.Int, ptr %1235, i32 0, i32 0
  %1237 = getelementptr inbounds [10 x i32], ptr %1236, i64 0, i64 3
  %1238 = load i32, ptr %1237, align 4, !tbaa !15
  %1239 = shl i32 %1238, 24
  %1240 = or i32 %1233, %1239
  %1241 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 5
  store i32 %1240, ptr %1241, align 4, !tbaa !9
  %1242 = load ptr, ptr %16, align 8, !tbaa !5
  %1243 = getelementptr inbounds %class.Point, ptr %1242, i32 0, i32 0
  %1244 = getelementptr inbounds %class.Int, ptr %1243, i32 0, i32 0
  %1245 = getelementptr inbounds [10 x i32], ptr %1244, i64 0, i64 1
  %1246 = load i32, ptr %1245, align 4, !tbaa !15
  %1247 = lshr i32 %1246, 8
  %1248 = load ptr, ptr %16, align 8, !tbaa !5
  %1249 = getelementptr inbounds %class.Point, ptr %1248, i32 0, i32 0
  %1250 = getelementptr inbounds %class.Int, ptr %1249, i32 0, i32 0
  %1251 = getelementptr inbounds [10 x i32], ptr %1250, i64 0, i64 2
  %1252 = load i32, ptr %1251, align 8, !tbaa !15
  %1253 = shl i32 %1252, 24
  %1254 = or i32 %1247, %1253
  %1255 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 6
  store i32 %1254, ptr %1255, align 8, !tbaa !9
  %1256 = load ptr, ptr %16, align 8, !tbaa !5
  %1257 = getelementptr inbounds %class.Point, ptr %1256, i32 0, i32 0
  %1258 = getelementptr inbounds %class.Int, ptr %1257, i32 0, i32 0
  %1259 = getelementptr inbounds [10 x i32], ptr %1258, i64 0, i64 0
  %1260 = load i32, ptr %1259, align 8, !tbaa !15
  %1261 = lshr i32 %1260, 8
  %1262 = load ptr, ptr %16, align 8, !tbaa !5
  %1263 = getelementptr inbounds %class.Point, ptr %1262, i32 0, i32 0
  %1264 = getelementptr inbounds %class.Int, ptr %1263, i32 0, i32 0
  %1265 = getelementptr inbounds [10 x i32], ptr %1264, i64 0, i64 1
  %1266 = load i32, ptr %1265, align 4, !tbaa !15
  %1267 = shl i32 %1266, 24
  %1268 = or i32 %1261, %1267
  %1269 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 7
  store i32 %1268, ptr %1269, align 4, !tbaa !9
  %1270 = load ptr, ptr %16, align 8, !tbaa !5
  %1271 = getelementptr inbounds %class.Point, ptr %1270, i32 0, i32 0
  %1272 = getelementptr inbounds %class.Int, ptr %1271, i32 0, i32 0
  %1273 = getelementptr inbounds [10 x i32], ptr %1272, i64 0, i64 0
  %1274 = load i32, ptr %1273, align 8, !tbaa !15
  %1275 = shl i32 %1274, 24
  %1276 = or i32 8388608, %1275
  %1277 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 8
  store i32 %1276, ptr %1277, align 16, !tbaa !9
  %1278 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 9
  store i32 0, ptr %1278, align 4, !tbaa !9
  %1279 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 10
  store i32 0, ptr %1279, align 8, !tbaa !9
  %1280 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 11
  store i32 0, ptr %1280, align 4, !tbaa !9
  %1281 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 12
  store i32 0, ptr %1281, align 16, !tbaa !9
  %1282 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 13
  store i32 0, ptr %1282, align 4, !tbaa !9
  %1283 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 14
  store i32 0, ptr %1283, align 8, !tbaa !9
  %1284 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 15
  store i32 264, ptr %1284, align 4, !tbaa !9
  %1285 = load ptr, ptr %17, align 8, !tbaa !5
  %1286 = getelementptr inbounds %class.Point, ptr %1285, i32 0, i32 0
  %1287 = getelementptr inbounds %class.Int, ptr %1286, i32 0, i32 0
  %1288 = getelementptr inbounds [10 x i32], ptr %1287, i64 0, i64 7
  %1289 = load i32, ptr %1288, align 4, !tbaa !15
  %1290 = lshr i32 %1289, 8
  %1291 = load ptr, ptr %17, align 8, !tbaa !5
  %1292 = getelementptr inbounds %class.Point, ptr %1291, i32 0, i32 1
  %1293 = call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %1292)
  %1294 = zext i1 %1293 to i32
  %1295 = add nsw i32 2, %1294
  %1296 = shl i32 %1295, 24
  %1297 = or i32 %1290, %1296
  %1298 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 0
  store i32 %1297, ptr %1298, align 16, !tbaa !9
  %1299 = load ptr, ptr %17, align 8, !tbaa !5
  %1300 = getelementptr inbounds %class.Point, ptr %1299, i32 0, i32 0
  %1301 = getelementptr inbounds %class.Int, ptr %1300, i32 0, i32 0
  %1302 = getelementptr inbounds [10 x i32], ptr %1301, i64 0, i64 6
  %1303 = load i32, ptr %1302, align 8, !tbaa !15
  %1304 = lshr i32 %1303, 8
  %1305 = load ptr, ptr %17, align 8, !tbaa !5
  %1306 = getelementptr inbounds %class.Point, ptr %1305, i32 0, i32 0
  %1307 = getelementptr inbounds %class.Int, ptr %1306, i32 0, i32 0
  %1308 = getelementptr inbounds [10 x i32], ptr %1307, i64 0, i64 7
  %1309 = load i32, ptr %1308, align 4, !tbaa !15
  %1310 = shl i32 %1309, 24
  %1311 = or i32 %1304, %1310
  %1312 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 1
  store i32 %1311, ptr %1312, align 4, !tbaa !9
  %1313 = load ptr, ptr %17, align 8, !tbaa !5
  %1314 = getelementptr inbounds %class.Point, ptr %1313, i32 0, i32 0
  %1315 = getelementptr inbounds %class.Int, ptr %1314, i32 0, i32 0
  %1316 = getelementptr inbounds [10 x i32], ptr %1315, i64 0, i64 5
  %1317 = load i32, ptr %1316, align 4, !tbaa !15
  %1318 = lshr i32 %1317, 8
  %1319 = load ptr, ptr %17, align 8, !tbaa !5
  %1320 = getelementptr inbounds %class.Point, ptr %1319, i32 0, i32 0
  %1321 = getelementptr inbounds %class.Int, ptr %1320, i32 0, i32 0
  %1322 = getelementptr inbounds [10 x i32], ptr %1321, i64 0, i64 6
  %1323 = load i32, ptr %1322, align 8, !tbaa !15
  %1324 = shl i32 %1323, 24
  %1325 = or i32 %1318, %1324
  %1326 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 2
  store i32 %1325, ptr %1326, align 8, !tbaa !9
  %1327 = load ptr, ptr %17, align 8, !tbaa !5
  %1328 = getelementptr inbounds %class.Point, ptr %1327, i32 0, i32 0
  %1329 = getelementptr inbounds %class.Int, ptr %1328, i32 0, i32 0
  %1330 = getelementptr inbounds [10 x i32], ptr %1329, i64 0, i64 4
  %1331 = load i32, ptr %1330, align 8, !tbaa !15
  %1332 = lshr i32 %1331, 8
  %1333 = load ptr, ptr %17, align 8, !tbaa !5
  %1334 = getelementptr inbounds %class.Point, ptr %1333, i32 0, i32 0
  %1335 = getelementptr inbounds %class.Int, ptr %1334, i32 0, i32 0
  %1336 = getelementptr inbounds [10 x i32], ptr %1335, i64 0, i64 5
  %1337 = load i32, ptr %1336, align 4, !tbaa !15
  %1338 = shl i32 %1337, 24
  %1339 = or i32 %1332, %1338
  %1340 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 3
  store i32 %1339, ptr %1340, align 4, !tbaa !9
  %1341 = load ptr, ptr %17, align 8, !tbaa !5
  %1342 = getelementptr inbounds %class.Point, ptr %1341, i32 0, i32 0
  %1343 = getelementptr inbounds %class.Int, ptr %1342, i32 0, i32 0
  %1344 = getelementptr inbounds [10 x i32], ptr %1343, i64 0, i64 3
  %1345 = load i32, ptr %1344, align 4, !tbaa !15
  %1346 = lshr i32 %1345, 8
  %1347 = load ptr, ptr %17, align 8, !tbaa !5
  %1348 = getelementptr inbounds %class.Point, ptr %1347, i32 0, i32 0
  %1349 = getelementptr inbounds %class.Int, ptr %1348, i32 0, i32 0
  %1350 = getelementptr inbounds [10 x i32], ptr %1349, i64 0, i64 4
  %1351 = load i32, ptr %1350, align 8, !tbaa !15
  %1352 = shl i32 %1351, 24
  %1353 = or i32 %1346, %1352
  %1354 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 4
  store i32 %1353, ptr %1354, align 16, !tbaa !9
  %1355 = load ptr, ptr %17, align 8, !tbaa !5
  %1356 = getelementptr inbounds %class.Point, ptr %1355, i32 0, i32 0
  %1357 = getelementptr inbounds %class.Int, ptr %1356, i32 0, i32 0
  %1358 = getelementptr inbounds [10 x i32], ptr %1357, i64 0, i64 2
  %1359 = load i32, ptr %1358, align 8, !tbaa !15
  %1360 = lshr i32 %1359, 8
  %1361 = load ptr, ptr %17, align 8, !tbaa !5
  %1362 = getelementptr inbounds %class.Point, ptr %1361, i32 0, i32 0
  %1363 = getelementptr inbounds %class.Int, ptr %1362, i32 0, i32 0
  %1364 = getelementptr inbounds [10 x i32], ptr %1363, i64 0, i64 3
  %1365 = load i32, ptr %1364, align 4, !tbaa !15
  %1366 = shl i32 %1365, 24
  %1367 = or i32 %1360, %1366
  %1368 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 5
  store i32 %1367, ptr %1368, align 4, !tbaa !9
  %1369 = load ptr, ptr %17, align 8, !tbaa !5
  %1370 = getelementptr inbounds %class.Point, ptr %1369, i32 0, i32 0
  %1371 = getelementptr inbounds %class.Int, ptr %1370, i32 0, i32 0
  %1372 = getelementptr inbounds [10 x i32], ptr %1371, i64 0, i64 1
  %1373 = load i32, ptr %1372, align 4, !tbaa !15
  %1374 = lshr i32 %1373, 8
  %1375 = load ptr, ptr %17, align 8, !tbaa !5
  %1376 = getelementptr inbounds %class.Point, ptr %1375, i32 0, i32 0
  %1377 = getelementptr inbounds %class.Int, ptr %1376, i32 0, i32 0
  %1378 = getelementptr inbounds [10 x i32], ptr %1377, i64 0, i64 2
  %1379 = load i32, ptr %1378, align 8, !tbaa !15
  %1380 = shl i32 %1379, 24
  %1381 = or i32 %1374, %1380
  %1382 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 6
  store i32 %1381, ptr %1382, align 8, !tbaa !9
  %1383 = load ptr, ptr %17, align 8, !tbaa !5
  %1384 = getelementptr inbounds %class.Point, ptr %1383, i32 0, i32 0
  %1385 = getelementptr inbounds %class.Int, ptr %1384, i32 0, i32 0
  %1386 = getelementptr inbounds [10 x i32], ptr %1385, i64 0, i64 0
  %1387 = load i32, ptr %1386, align 8, !tbaa !15
  %1388 = lshr i32 %1387, 8
  %1389 = load ptr, ptr %17, align 8, !tbaa !5
  %1390 = getelementptr inbounds %class.Point, ptr %1389, i32 0, i32 0
  %1391 = getelementptr inbounds %class.Int, ptr %1390, i32 0, i32 0
  %1392 = getelementptr inbounds [10 x i32], ptr %1391, i64 0, i64 1
  %1393 = load i32, ptr %1392, align 4, !tbaa !15
  %1394 = shl i32 %1393, 24
  %1395 = or i32 %1388, %1394
  %1396 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 7
  store i32 %1395, ptr %1396, align 4, !tbaa !9
  %1397 = load ptr, ptr %17, align 8, !tbaa !5
  %1398 = getelementptr inbounds %class.Point, ptr %1397, i32 0, i32 0
  %1399 = getelementptr inbounds %class.Int, ptr %1398, i32 0, i32 0
  %1400 = getelementptr inbounds [10 x i32], ptr %1399, i64 0, i64 0
  %1401 = load i32, ptr %1400, align 8, !tbaa !15
  %1402 = shl i32 %1401, 24
  %1403 = or i32 8388608, %1402
  %1404 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 8
  store i32 %1403, ptr %1404, align 16, !tbaa !9
  %1405 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 9
  store i32 0, ptr %1405, align 4, !tbaa !9
  %1406 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 10
  store i32 0, ptr %1406, align 8, !tbaa !9
  %1407 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 11
  store i32 0, ptr %1407, align 4, !tbaa !9
  %1408 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 12
  store i32 0, ptr %1408, align 16, !tbaa !9
  %1409 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 13
  store i32 0, ptr %1409, align 4, !tbaa !9
  %1410 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 14
  store i32 0, ptr %1410, align 8, !tbaa !9
  %1411 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 15
  store i32 264, ptr %1411, align 4, !tbaa !9
  %1412 = load ptr, ptr %18, align 8, !tbaa !5
  %1413 = getelementptr inbounds %class.Point, ptr %1412, i32 0, i32 0
  %1414 = getelementptr inbounds %class.Int, ptr %1413, i32 0, i32 0
  %1415 = getelementptr inbounds [10 x i32], ptr %1414, i64 0, i64 7
  %1416 = load i32, ptr %1415, align 4, !tbaa !15
  %1417 = lshr i32 %1416, 8
  %1418 = load ptr, ptr %18, align 8, !tbaa !5
  %1419 = getelementptr inbounds %class.Point, ptr %1418, i32 0, i32 1
  %1420 = call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %1419)
  %1421 = zext i1 %1420 to i32
  %1422 = add nsw i32 2, %1421
  %1423 = shl i32 %1422, 24
  %1424 = or i32 %1417, %1423
  %1425 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 0
  store i32 %1424, ptr %1425, align 16, !tbaa !9
  %1426 = load ptr, ptr %18, align 8, !tbaa !5
  %1427 = getelementptr inbounds %class.Point, ptr %1426, i32 0, i32 0
  %1428 = getelementptr inbounds %class.Int, ptr %1427, i32 0, i32 0
  %1429 = getelementptr inbounds [10 x i32], ptr %1428, i64 0, i64 6
  %1430 = load i32, ptr %1429, align 8, !tbaa !15
  %1431 = lshr i32 %1430, 8
  %1432 = load ptr, ptr %18, align 8, !tbaa !5
  %1433 = getelementptr inbounds %class.Point, ptr %1432, i32 0, i32 0
  %1434 = getelementptr inbounds %class.Int, ptr %1433, i32 0, i32 0
  %1435 = getelementptr inbounds [10 x i32], ptr %1434, i64 0, i64 7
  %1436 = load i32, ptr %1435, align 4, !tbaa !15
  %1437 = shl i32 %1436, 24
  %1438 = or i32 %1431, %1437
  %1439 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 1
  store i32 %1438, ptr %1439, align 4, !tbaa !9
  %1440 = load ptr, ptr %18, align 8, !tbaa !5
  %1441 = getelementptr inbounds %class.Point, ptr %1440, i32 0, i32 0
  %1442 = getelementptr inbounds %class.Int, ptr %1441, i32 0, i32 0
  %1443 = getelementptr inbounds [10 x i32], ptr %1442, i64 0, i64 5
  %1444 = load i32, ptr %1443, align 4, !tbaa !15
  %1445 = lshr i32 %1444, 8
  %1446 = load ptr, ptr %18, align 8, !tbaa !5
  %1447 = getelementptr inbounds %class.Point, ptr %1446, i32 0, i32 0
  %1448 = getelementptr inbounds %class.Int, ptr %1447, i32 0, i32 0
  %1449 = getelementptr inbounds [10 x i32], ptr %1448, i64 0, i64 6
  %1450 = load i32, ptr %1449, align 8, !tbaa !15
  %1451 = shl i32 %1450, 24
  %1452 = or i32 %1445, %1451
  %1453 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 2
  store i32 %1452, ptr %1453, align 8, !tbaa !9
  %1454 = load ptr, ptr %18, align 8, !tbaa !5
  %1455 = getelementptr inbounds %class.Point, ptr %1454, i32 0, i32 0
  %1456 = getelementptr inbounds %class.Int, ptr %1455, i32 0, i32 0
  %1457 = getelementptr inbounds [10 x i32], ptr %1456, i64 0, i64 4
  %1458 = load i32, ptr %1457, align 8, !tbaa !15
  %1459 = lshr i32 %1458, 8
  %1460 = load ptr, ptr %18, align 8, !tbaa !5
  %1461 = getelementptr inbounds %class.Point, ptr %1460, i32 0, i32 0
  %1462 = getelementptr inbounds %class.Int, ptr %1461, i32 0, i32 0
  %1463 = getelementptr inbounds [10 x i32], ptr %1462, i64 0, i64 5
  %1464 = load i32, ptr %1463, align 4, !tbaa !15
  %1465 = shl i32 %1464, 24
  %1466 = or i32 %1459, %1465
  %1467 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 3
  store i32 %1466, ptr %1467, align 4, !tbaa !9
  %1468 = load ptr, ptr %18, align 8, !tbaa !5
  %1469 = getelementptr inbounds %class.Point, ptr %1468, i32 0, i32 0
  %1470 = getelementptr inbounds %class.Int, ptr %1469, i32 0, i32 0
  %1471 = getelementptr inbounds [10 x i32], ptr %1470, i64 0, i64 3
  %1472 = load i32, ptr %1471, align 4, !tbaa !15
  %1473 = lshr i32 %1472, 8
  %1474 = load ptr, ptr %18, align 8, !tbaa !5
  %1475 = getelementptr inbounds %class.Point, ptr %1474, i32 0, i32 0
  %1476 = getelementptr inbounds %class.Int, ptr %1475, i32 0, i32 0
  %1477 = getelementptr inbounds [10 x i32], ptr %1476, i64 0, i64 4
  %1478 = load i32, ptr %1477, align 8, !tbaa !15
  %1479 = shl i32 %1478, 24
  %1480 = or i32 %1473, %1479
  %1481 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 4
  store i32 %1480, ptr %1481, align 16, !tbaa !9
  %1482 = load ptr, ptr %18, align 8, !tbaa !5
  %1483 = getelementptr inbounds %class.Point, ptr %1482, i32 0, i32 0
  %1484 = getelementptr inbounds %class.Int, ptr %1483, i32 0, i32 0
  %1485 = getelementptr inbounds [10 x i32], ptr %1484, i64 0, i64 2
  %1486 = load i32, ptr %1485, align 8, !tbaa !15
  %1487 = lshr i32 %1486, 8
  %1488 = load ptr, ptr %18, align 8, !tbaa !5
  %1489 = getelementptr inbounds %class.Point, ptr %1488, i32 0, i32 0
  %1490 = getelementptr inbounds %class.Int, ptr %1489, i32 0, i32 0
  %1491 = getelementptr inbounds [10 x i32], ptr %1490, i64 0, i64 3
  %1492 = load i32, ptr %1491, align 4, !tbaa !15
  %1493 = shl i32 %1492, 24
  %1494 = or i32 %1487, %1493
  %1495 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 5
  store i32 %1494, ptr %1495, align 4, !tbaa !9
  %1496 = load ptr, ptr %18, align 8, !tbaa !5
  %1497 = getelementptr inbounds %class.Point, ptr %1496, i32 0, i32 0
  %1498 = getelementptr inbounds %class.Int, ptr %1497, i32 0, i32 0
  %1499 = getelementptr inbounds [10 x i32], ptr %1498, i64 0, i64 1
  %1500 = load i32, ptr %1499, align 4, !tbaa !15
  %1501 = lshr i32 %1500, 8
  %1502 = load ptr, ptr %18, align 8, !tbaa !5
  %1503 = getelementptr inbounds %class.Point, ptr %1502, i32 0, i32 0
  %1504 = getelementptr inbounds %class.Int, ptr %1503, i32 0, i32 0
  %1505 = getelementptr inbounds [10 x i32], ptr %1504, i64 0, i64 2
  %1506 = load i32, ptr %1505, align 8, !tbaa !15
  %1507 = shl i32 %1506, 24
  %1508 = or i32 %1501, %1507
  %1509 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 6
  store i32 %1508, ptr %1509, align 8, !tbaa !9
  %1510 = load ptr, ptr %18, align 8, !tbaa !5
  %1511 = getelementptr inbounds %class.Point, ptr %1510, i32 0, i32 0
  %1512 = getelementptr inbounds %class.Int, ptr %1511, i32 0, i32 0
  %1513 = getelementptr inbounds [10 x i32], ptr %1512, i64 0, i64 0
  %1514 = load i32, ptr %1513, align 8, !tbaa !15
  %1515 = lshr i32 %1514, 8
  %1516 = load ptr, ptr %18, align 8, !tbaa !5
  %1517 = getelementptr inbounds %class.Point, ptr %1516, i32 0, i32 0
  %1518 = getelementptr inbounds %class.Int, ptr %1517, i32 0, i32 0
  %1519 = getelementptr inbounds [10 x i32], ptr %1518, i64 0, i64 1
  %1520 = load i32, ptr %1519, align 4, !tbaa !15
  %1521 = shl i32 %1520, 24
  %1522 = or i32 %1515, %1521
  %1523 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 7
  store i32 %1522, ptr %1523, align 4, !tbaa !9
  %1524 = load ptr, ptr %18, align 8, !tbaa !5
  %1525 = getelementptr inbounds %class.Point, ptr %1524, i32 0, i32 0
  %1526 = getelementptr inbounds %class.Int, ptr %1525, i32 0, i32 0
  %1527 = getelementptr inbounds [10 x i32], ptr %1526, i64 0, i64 0
  %1528 = load i32, ptr %1527, align 8, !tbaa !15
  %1529 = shl i32 %1528, 24
  %1530 = or i32 8388608, %1529
  %1531 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 8
  store i32 %1530, ptr %1531, align 16, !tbaa !9
  %1532 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 9
  store i32 0, ptr %1532, align 4, !tbaa !9
  %1533 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 10
  store i32 0, ptr %1533, align 8, !tbaa !9
  %1534 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 11
  store i32 0, ptr %1534, align 4, !tbaa !9
  %1535 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 12
  store i32 0, ptr %1535, align 16, !tbaa !9
  %1536 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 13
  store i32 0, ptr %1536, align 4, !tbaa !9
  %1537 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 14
  store i32 0, ptr %1537, align 8, !tbaa !9
  %1538 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 15
  store i32 264, ptr %1538, align 4, !tbaa !9
  %1539 = getelementptr inbounds [16 x i32], ptr %31, i64 0, i64 0
  %1540 = getelementptr inbounds [16 x i32], ptr %32, i64 0, i64 0
  %1541 = getelementptr inbounds [16 x i32], ptr %33, i64 0, i64 0
  %1542 = getelementptr inbounds [16 x i32], ptr %34, i64 0, i64 0
  %1543 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %1544 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %1545 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %1546 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  call void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef %1539, ptr noundef %1540, ptr noundef %1541, ptr noundef %1542, ptr noundef %1543, ptr noundef %1544, ptr noundef %1545, ptr noundef %1546)
  %1547 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %1548 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %1549 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %1550 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  %1551 = load ptr, ptr %19, align 8, !tbaa !5
  %1552 = load ptr, ptr %20, align 8, !tbaa !5
  %1553 = load ptr, ptr %21, align 8, !tbaa !5
  %1554 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef %1547, ptr noundef %1548, ptr noundef %1549, ptr noundef %1550, ptr noundef %1551, ptr noundef %1552, ptr noundef %1553, ptr noundef %1554)
  call void @llvm.lifetime.end.p0(i64 64, ptr %34) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %33) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %32) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %31) #3
  br label %1555

1555:                                             ; preds = %1030, %49
  br label %2011

1556:                                             ; preds = %11
  call void @llvm.lifetime.start.p0(i64 20, ptr %35) #3
  call void @llvm.lifetime.start.p0(i64 20, ptr %36) #3
  call void @llvm.lifetime.start.p0(i64 20, ptr %37) #3
  call void @llvm.lifetime.start.p0(i64 20, ptr %38) #3
  %1557 = load i8, ptr %14, align 1, !tbaa !11, !range !13, !noundef !14
  %1558 = trunc i8 %1557 to i1
  %1559 = load ptr, ptr %15, align 8, !tbaa !5
  %1560 = load ptr, ptr %16, align 8, !tbaa !5
  %1561 = load ptr, ptr %17, align 8, !tbaa !5
  %1562 = load ptr, ptr %18, align 8, !tbaa !5
  %1563 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 0
  %1564 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 0
  %1565 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 0
  %1566 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 0
  call void @_ZN9Secp256K110GetHash160EibR5PointS1_S1_S1_PhS2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(983240) %44, i32 noundef 0, i1 noundef zeroext %1558, ptr noundef nonnull align 8 dereferenceable(120) %1559, ptr noundef nonnull align 8 dereferenceable(120) %1560, ptr noundef nonnull align 8 dereferenceable(120) %1561, ptr noundef nonnull align 8 dereferenceable(120) %1562, ptr noundef %1563, ptr noundef %1564, ptr noundef %1565, ptr noundef %1566)
  call void @llvm.lifetime.start.p0(i64 64, ptr %39) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %40) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %41) #3
  call void @llvm.lifetime.start.p0(i64 64, ptr %42) #3
  %1567 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 0
  %1568 = load i8, ptr %1567, align 16, !tbaa !15
  %1569 = zext i8 %1568 to i32
  %1570 = shl i32 %1569, 8
  %1571 = or i32 1310720, %1570
  %1572 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 1
  %1573 = load i8, ptr %1572, align 1, !tbaa !15
  %1574 = zext i8 %1573 to i32
  %1575 = or i32 %1571, %1574
  %1576 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 0
  store i32 %1575, ptr %1576, align 16, !tbaa !9
  %1577 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 2
  %1578 = load i8, ptr %1577, align 2, !tbaa !15
  %1579 = zext i8 %1578 to i32
  %1580 = shl i32 %1579, 24
  %1581 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 3
  %1582 = load i8, ptr %1581, align 1, !tbaa !15
  %1583 = zext i8 %1582 to i32
  %1584 = shl i32 %1583, 16
  %1585 = or i32 %1580, %1584
  %1586 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 4
  %1587 = load i8, ptr %1586, align 4, !tbaa !15
  %1588 = zext i8 %1587 to i32
  %1589 = shl i32 %1588, 8
  %1590 = or i32 %1585, %1589
  %1591 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 5
  %1592 = load i8, ptr %1591, align 1, !tbaa !15
  %1593 = zext i8 %1592 to i32
  %1594 = or i32 %1590, %1593
  %1595 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 1
  store i32 %1594, ptr %1595, align 4, !tbaa !9
  %1596 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 6
  %1597 = load i8, ptr %1596, align 2, !tbaa !15
  %1598 = zext i8 %1597 to i32
  %1599 = shl i32 %1598, 24
  %1600 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 7
  %1601 = load i8, ptr %1600, align 1, !tbaa !15
  %1602 = zext i8 %1601 to i32
  %1603 = shl i32 %1602, 16
  %1604 = or i32 %1599, %1603
  %1605 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 8
  %1606 = load i8, ptr %1605, align 8, !tbaa !15
  %1607 = zext i8 %1606 to i32
  %1608 = shl i32 %1607, 8
  %1609 = or i32 %1604, %1608
  %1610 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 9
  %1611 = load i8, ptr %1610, align 1, !tbaa !15
  %1612 = zext i8 %1611 to i32
  %1613 = or i32 %1609, %1612
  %1614 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 2
  store i32 %1613, ptr %1614, align 8, !tbaa !9
  %1615 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 10
  %1616 = load i8, ptr %1615, align 2, !tbaa !15
  %1617 = zext i8 %1616 to i32
  %1618 = shl i32 %1617, 24
  %1619 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 11
  %1620 = load i8, ptr %1619, align 1, !tbaa !15
  %1621 = zext i8 %1620 to i32
  %1622 = shl i32 %1621, 16
  %1623 = or i32 %1618, %1622
  %1624 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 12
  %1625 = load i8, ptr %1624, align 4, !tbaa !15
  %1626 = zext i8 %1625 to i32
  %1627 = shl i32 %1626, 8
  %1628 = or i32 %1623, %1627
  %1629 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 13
  %1630 = load i8, ptr %1629, align 1, !tbaa !15
  %1631 = zext i8 %1630 to i32
  %1632 = or i32 %1628, %1631
  %1633 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 3
  store i32 %1632, ptr %1633, align 4, !tbaa !9
  %1634 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 14
  %1635 = load i8, ptr %1634, align 2, !tbaa !15
  %1636 = zext i8 %1635 to i32
  %1637 = shl i32 %1636, 24
  %1638 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 15
  %1639 = load i8, ptr %1638, align 1, !tbaa !15
  %1640 = zext i8 %1639 to i32
  %1641 = shl i32 %1640, 16
  %1642 = or i32 %1637, %1641
  %1643 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 16
  %1644 = load i8, ptr %1643, align 16, !tbaa !15
  %1645 = zext i8 %1644 to i32
  %1646 = shl i32 %1645, 8
  %1647 = or i32 %1642, %1646
  %1648 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 17
  %1649 = load i8, ptr %1648, align 1, !tbaa !15
  %1650 = zext i8 %1649 to i32
  %1651 = or i32 %1647, %1650
  %1652 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 4
  store i32 %1651, ptr %1652, align 16, !tbaa !9
  %1653 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 18
  %1654 = load i8, ptr %1653, align 2, !tbaa !15
  %1655 = zext i8 %1654 to i32
  %1656 = shl i32 %1655, 24
  %1657 = getelementptr inbounds [20 x i8], ptr %35, i64 0, i64 19
  %1658 = load i8, ptr %1657, align 1, !tbaa !15
  %1659 = zext i8 %1658 to i32
  %1660 = shl i32 %1659, 16
  %1661 = or i32 %1656, %1660
  %1662 = or i32 %1661, 32768
  %1663 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 5
  store i32 %1662, ptr %1663, align 4, !tbaa !9
  %1664 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 6
  store i32 0, ptr %1664, align 8, !tbaa !9
  %1665 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 7
  store i32 0, ptr %1665, align 4, !tbaa !9
  %1666 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 8
  store i32 0, ptr %1666, align 16, !tbaa !9
  %1667 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 9
  store i32 0, ptr %1667, align 4, !tbaa !9
  %1668 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 10
  store i32 0, ptr %1668, align 8, !tbaa !9
  %1669 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 11
  store i32 0, ptr %1669, align 4, !tbaa !9
  %1670 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 12
  store i32 0, ptr %1670, align 16, !tbaa !9
  %1671 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 13
  store i32 0, ptr %1671, align 4, !tbaa !9
  %1672 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 14
  store i32 0, ptr %1672, align 8, !tbaa !9
  %1673 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 15
  store i32 176, ptr %1673, align 4, !tbaa !9
  %1674 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 0
  %1675 = load i8, ptr %1674, align 16, !tbaa !15
  %1676 = zext i8 %1675 to i32
  %1677 = shl i32 %1676, 8
  %1678 = or i32 1310720, %1677
  %1679 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 1
  %1680 = load i8, ptr %1679, align 1, !tbaa !15
  %1681 = zext i8 %1680 to i32
  %1682 = or i32 %1678, %1681
  %1683 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 0
  store i32 %1682, ptr %1683, align 16, !tbaa !9
  %1684 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 2
  %1685 = load i8, ptr %1684, align 2, !tbaa !15
  %1686 = zext i8 %1685 to i32
  %1687 = shl i32 %1686, 24
  %1688 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 3
  %1689 = load i8, ptr %1688, align 1, !tbaa !15
  %1690 = zext i8 %1689 to i32
  %1691 = shl i32 %1690, 16
  %1692 = or i32 %1687, %1691
  %1693 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 4
  %1694 = load i8, ptr %1693, align 4, !tbaa !15
  %1695 = zext i8 %1694 to i32
  %1696 = shl i32 %1695, 8
  %1697 = or i32 %1692, %1696
  %1698 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 5
  %1699 = load i8, ptr %1698, align 1, !tbaa !15
  %1700 = zext i8 %1699 to i32
  %1701 = or i32 %1697, %1700
  %1702 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 1
  store i32 %1701, ptr %1702, align 4, !tbaa !9
  %1703 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 6
  %1704 = load i8, ptr %1703, align 2, !tbaa !15
  %1705 = zext i8 %1704 to i32
  %1706 = shl i32 %1705, 24
  %1707 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 7
  %1708 = load i8, ptr %1707, align 1, !tbaa !15
  %1709 = zext i8 %1708 to i32
  %1710 = shl i32 %1709, 16
  %1711 = or i32 %1706, %1710
  %1712 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 8
  %1713 = load i8, ptr %1712, align 8, !tbaa !15
  %1714 = zext i8 %1713 to i32
  %1715 = shl i32 %1714, 8
  %1716 = or i32 %1711, %1715
  %1717 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 9
  %1718 = load i8, ptr %1717, align 1, !tbaa !15
  %1719 = zext i8 %1718 to i32
  %1720 = or i32 %1716, %1719
  %1721 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 2
  store i32 %1720, ptr %1721, align 8, !tbaa !9
  %1722 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 10
  %1723 = load i8, ptr %1722, align 2, !tbaa !15
  %1724 = zext i8 %1723 to i32
  %1725 = shl i32 %1724, 24
  %1726 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 11
  %1727 = load i8, ptr %1726, align 1, !tbaa !15
  %1728 = zext i8 %1727 to i32
  %1729 = shl i32 %1728, 16
  %1730 = or i32 %1725, %1729
  %1731 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 12
  %1732 = load i8, ptr %1731, align 4, !tbaa !15
  %1733 = zext i8 %1732 to i32
  %1734 = shl i32 %1733, 8
  %1735 = or i32 %1730, %1734
  %1736 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 13
  %1737 = load i8, ptr %1736, align 1, !tbaa !15
  %1738 = zext i8 %1737 to i32
  %1739 = or i32 %1735, %1738
  %1740 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 3
  store i32 %1739, ptr %1740, align 4, !tbaa !9
  %1741 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 14
  %1742 = load i8, ptr %1741, align 2, !tbaa !15
  %1743 = zext i8 %1742 to i32
  %1744 = shl i32 %1743, 24
  %1745 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 15
  %1746 = load i8, ptr %1745, align 1, !tbaa !15
  %1747 = zext i8 %1746 to i32
  %1748 = shl i32 %1747, 16
  %1749 = or i32 %1744, %1748
  %1750 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 16
  %1751 = load i8, ptr %1750, align 16, !tbaa !15
  %1752 = zext i8 %1751 to i32
  %1753 = shl i32 %1752, 8
  %1754 = or i32 %1749, %1753
  %1755 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 17
  %1756 = load i8, ptr %1755, align 1, !tbaa !15
  %1757 = zext i8 %1756 to i32
  %1758 = or i32 %1754, %1757
  %1759 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 4
  store i32 %1758, ptr %1759, align 16, !tbaa !9
  %1760 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 18
  %1761 = load i8, ptr %1760, align 2, !tbaa !15
  %1762 = zext i8 %1761 to i32
  %1763 = shl i32 %1762, 24
  %1764 = getelementptr inbounds [20 x i8], ptr %36, i64 0, i64 19
  %1765 = load i8, ptr %1764, align 1, !tbaa !15
  %1766 = zext i8 %1765 to i32
  %1767 = shl i32 %1766, 16
  %1768 = or i32 %1763, %1767
  %1769 = or i32 %1768, 32768
  %1770 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 5
  store i32 %1769, ptr %1770, align 4, !tbaa !9
  %1771 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 6
  store i32 0, ptr %1771, align 8, !tbaa !9
  %1772 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 7
  store i32 0, ptr %1772, align 4, !tbaa !9
  %1773 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 8
  store i32 0, ptr %1773, align 16, !tbaa !9
  %1774 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 9
  store i32 0, ptr %1774, align 4, !tbaa !9
  %1775 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 10
  store i32 0, ptr %1775, align 8, !tbaa !9
  %1776 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 11
  store i32 0, ptr %1776, align 4, !tbaa !9
  %1777 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 12
  store i32 0, ptr %1777, align 16, !tbaa !9
  %1778 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 13
  store i32 0, ptr %1778, align 4, !tbaa !9
  %1779 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 14
  store i32 0, ptr %1779, align 8, !tbaa !9
  %1780 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 15
  store i32 176, ptr %1780, align 4, !tbaa !9
  %1781 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 0
  %1782 = load i8, ptr %1781, align 16, !tbaa !15
  %1783 = zext i8 %1782 to i32
  %1784 = shl i32 %1783, 8
  %1785 = or i32 1310720, %1784
  %1786 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 1
  %1787 = load i8, ptr %1786, align 1, !tbaa !15
  %1788 = zext i8 %1787 to i32
  %1789 = or i32 %1785, %1788
  %1790 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 0
  store i32 %1789, ptr %1790, align 16, !tbaa !9
  %1791 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 2
  %1792 = load i8, ptr %1791, align 2, !tbaa !15
  %1793 = zext i8 %1792 to i32
  %1794 = shl i32 %1793, 24
  %1795 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 3
  %1796 = load i8, ptr %1795, align 1, !tbaa !15
  %1797 = zext i8 %1796 to i32
  %1798 = shl i32 %1797, 16
  %1799 = or i32 %1794, %1798
  %1800 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 4
  %1801 = load i8, ptr %1800, align 4, !tbaa !15
  %1802 = zext i8 %1801 to i32
  %1803 = shl i32 %1802, 8
  %1804 = or i32 %1799, %1803
  %1805 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 5
  %1806 = load i8, ptr %1805, align 1, !tbaa !15
  %1807 = zext i8 %1806 to i32
  %1808 = or i32 %1804, %1807
  %1809 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 1
  store i32 %1808, ptr %1809, align 4, !tbaa !9
  %1810 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 6
  %1811 = load i8, ptr %1810, align 2, !tbaa !15
  %1812 = zext i8 %1811 to i32
  %1813 = shl i32 %1812, 24
  %1814 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 7
  %1815 = load i8, ptr %1814, align 1, !tbaa !15
  %1816 = zext i8 %1815 to i32
  %1817 = shl i32 %1816, 16
  %1818 = or i32 %1813, %1817
  %1819 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 8
  %1820 = load i8, ptr %1819, align 8, !tbaa !15
  %1821 = zext i8 %1820 to i32
  %1822 = shl i32 %1821, 8
  %1823 = or i32 %1818, %1822
  %1824 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 9
  %1825 = load i8, ptr %1824, align 1, !tbaa !15
  %1826 = zext i8 %1825 to i32
  %1827 = or i32 %1823, %1826
  %1828 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 2
  store i32 %1827, ptr %1828, align 8, !tbaa !9
  %1829 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 10
  %1830 = load i8, ptr %1829, align 2, !tbaa !15
  %1831 = zext i8 %1830 to i32
  %1832 = shl i32 %1831, 24
  %1833 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 11
  %1834 = load i8, ptr %1833, align 1, !tbaa !15
  %1835 = zext i8 %1834 to i32
  %1836 = shl i32 %1835, 16
  %1837 = or i32 %1832, %1836
  %1838 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 12
  %1839 = load i8, ptr %1838, align 4, !tbaa !15
  %1840 = zext i8 %1839 to i32
  %1841 = shl i32 %1840, 8
  %1842 = or i32 %1837, %1841
  %1843 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 13
  %1844 = load i8, ptr %1843, align 1, !tbaa !15
  %1845 = zext i8 %1844 to i32
  %1846 = or i32 %1842, %1845
  %1847 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 3
  store i32 %1846, ptr %1847, align 4, !tbaa !9
  %1848 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 14
  %1849 = load i8, ptr %1848, align 2, !tbaa !15
  %1850 = zext i8 %1849 to i32
  %1851 = shl i32 %1850, 24
  %1852 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 15
  %1853 = load i8, ptr %1852, align 1, !tbaa !15
  %1854 = zext i8 %1853 to i32
  %1855 = shl i32 %1854, 16
  %1856 = or i32 %1851, %1855
  %1857 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 16
  %1858 = load i8, ptr %1857, align 16, !tbaa !15
  %1859 = zext i8 %1858 to i32
  %1860 = shl i32 %1859, 8
  %1861 = or i32 %1856, %1860
  %1862 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 17
  %1863 = load i8, ptr %1862, align 1, !tbaa !15
  %1864 = zext i8 %1863 to i32
  %1865 = or i32 %1861, %1864
  %1866 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 4
  store i32 %1865, ptr %1866, align 16, !tbaa !9
  %1867 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 18
  %1868 = load i8, ptr %1867, align 2, !tbaa !15
  %1869 = zext i8 %1868 to i32
  %1870 = shl i32 %1869, 24
  %1871 = getelementptr inbounds [20 x i8], ptr %37, i64 0, i64 19
  %1872 = load i8, ptr %1871, align 1, !tbaa !15
  %1873 = zext i8 %1872 to i32
  %1874 = shl i32 %1873, 16
  %1875 = or i32 %1870, %1874
  %1876 = or i32 %1875, 32768
  %1877 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 5
  store i32 %1876, ptr %1877, align 4, !tbaa !9
  %1878 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 6
  store i32 0, ptr %1878, align 8, !tbaa !9
  %1879 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 7
  store i32 0, ptr %1879, align 4, !tbaa !9
  %1880 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 8
  store i32 0, ptr %1880, align 16, !tbaa !9
  %1881 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 9
  store i32 0, ptr %1881, align 4, !tbaa !9
  %1882 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 10
  store i32 0, ptr %1882, align 8, !tbaa !9
  %1883 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 11
  store i32 0, ptr %1883, align 4, !tbaa !9
  %1884 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 12
  store i32 0, ptr %1884, align 16, !tbaa !9
  %1885 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 13
  store i32 0, ptr %1885, align 4, !tbaa !9
  %1886 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 14
  store i32 0, ptr %1886, align 8, !tbaa !9
  %1887 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 15
  store i32 176, ptr %1887, align 4, !tbaa !9
  %1888 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 0
  %1889 = load i8, ptr %1888, align 16, !tbaa !15
  %1890 = zext i8 %1889 to i32
  %1891 = shl i32 %1890, 8
  %1892 = or i32 1310720, %1891
  %1893 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 1
  %1894 = load i8, ptr %1893, align 1, !tbaa !15
  %1895 = zext i8 %1894 to i32
  %1896 = or i32 %1892, %1895
  %1897 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 0
  store i32 %1896, ptr %1897, align 16, !tbaa !9
  %1898 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 2
  %1899 = load i8, ptr %1898, align 2, !tbaa !15
  %1900 = zext i8 %1899 to i32
  %1901 = shl i32 %1900, 24
  %1902 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 3
  %1903 = load i8, ptr %1902, align 1, !tbaa !15
  %1904 = zext i8 %1903 to i32
  %1905 = shl i32 %1904, 16
  %1906 = or i32 %1901, %1905
  %1907 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 4
  %1908 = load i8, ptr %1907, align 4, !tbaa !15
  %1909 = zext i8 %1908 to i32
  %1910 = shl i32 %1909, 8
  %1911 = or i32 %1906, %1910
  %1912 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 5
  %1913 = load i8, ptr %1912, align 1, !tbaa !15
  %1914 = zext i8 %1913 to i32
  %1915 = or i32 %1911, %1914
  %1916 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 1
  store i32 %1915, ptr %1916, align 4, !tbaa !9
  %1917 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 6
  %1918 = load i8, ptr %1917, align 2, !tbaa !15
  %1919 = zext i8 %1918 to i32
  %1920 = shl i32 %1919, 24
  %1921 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 7
  %1922 = load i8, ptr %1921, align 1, !tbaa !15
  %1923 = zext i8 %1922 to i32
  %1924 = shl i32 %1923, 16
  %1925 = or i32 %1920, %1924
  %1926 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 8
  %1927 = load i8, ptr %1926, align 8, !tbaa !15
  %1928 = zext i8 %1927 to i32
  %1929 = shl i32 %1928, 8
  %1930 = or i32 %1925, %1929
  %1931 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 9
  %1932 = load i8, ptr %1931, align 1, !tbaa !15
  %1933 = zext i8 %1932 to i32
  %1934 = or i32 %1930, %1933
  %1935 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 2
  store i32 %1934, ptr %1935, align 8, !tbaa !9
  %1936 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 10
  %1937 = load i8, ptr %1936, align 2, !tbaa !15
  %1938 = zext i8 %1937 to i32
  %1939 = shl i32 %1938, 24
  %1940 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 11
  %1941 = load i8, ptr %1940, align 1, !tbaa !15
  %1942 = zext i8 %1941 to i32
  %1943 = shl i32 %1942, 16
  %1944 = or i32 %1939, %1943
  %1945 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 12
  %1946 = load i8, ptr %1945, align 4, !tbaa !15
  %1947 = zext i8 %1946 to i32
  %1948 = shl i32 %1947, 8
  %1949 = or i32 %1944, %1948
  %1950 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 13
  %1951 = load i8, ptr %1950, align 1, !tbaa !15
  %1952 = zext i8 %1951 to i32
  %1953 = or i32 %1949, %1952
  %1954 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 3
  store i32 %1953, ptr %1954, align 4, !tbaa !9
  %1955 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 14
  %1956 = load i8, ptr %1955, align 2, !tbaa !15
  %1957 = zext i8 %1956 to i32
  %1958 = shl i32 %1957, 24
  %1959 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 15
  %1960 = load i8, ptr %1959, align 1, !tbaa !15
  %1961 = zext i8 %1960 to i32
  %1962 = shl i32 %1961, 16
  %1963 = or i32 %1958, %1962
  %1964 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 16
  %1965 = load i8, ptr %1964, align 16, !tbaa !15
  %1966 = zext i8 %1965 to i32
  %1967 = shl i32 %1966, 8
  %1968 = or i32 %1963, %1967
  %1969 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 17
  %1970 = load i8, ptr %1969, align 1, !tbaa !15
  %1971 = zext i8 %1970 to i32
  %1972 = or i32 %1968, %1971
  %1973 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 4
  store i32 %1972, ptr %1973, align 16, !tbaa !9
  %1974 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 18
  %1975 = load i8, ptr %1974, align 2, !tbaa !15
  %1976 = zext i8 %1975 to i32
  %1977 = shl i32 %1976, 24
  %1978 = getelementptr inbounds [20 x i8], ptr %38, i64 0, i64 19
  %1979 = load i8, ptr %1978, align 1, !tbaa !15
  %1980 = zext i8 %1979 to i32
  %1981 = shl i32 %1980, 16
  %1982 = or i32 %1977, %1981
  %1983 = or i32 %1982, 32768
  %1984 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 5
  store i32 %1983, ptr %1984, align 4, !tbaa !9
  %1985 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 6
  store i32 0, ptr %1985, align 8, !tbaa !9
  %1986 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 7
  store i32 0, ptr %1986, align 4, !tbaa !9
  %1987 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 8
  store i32 0, ptr %1987, align 16, !tbaa !9
  %1988 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 9
  store i32 0, ptr %1988, align 4, !tbaa !9
  %1989 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 10
  store i32 0, ptr %1989, align 8, !tbaa !9
  %1990 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 11
  store i32 0, ptr %1990, align 4, !tbaa !9
  %1991 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 12
  store i32 0, ptr %1991, align 16, !tbaa !9
  %1992 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 13
  store i32 0, ptr %1992, align 4, !tbaa !9
  %1993 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 14
  store i32 0, ptr %1993, align 8, !tbaa !9
  %1994 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 15
  store i32 176, ptr %1994, align 4, !tbaa !9
  %1995 = getelementptr inbounds [16 x i32], ptr %39, i64 0, i64 0
  %1996 = getelementptr inbounds [16 x i32], ptr %40, i64 0, i64 0
  %1997 = getelementptr inbounds [16 x i32], ptr %41, i64 0, i64 0
  %1998 = getelementptr inbounds [16 x i32], ptr %42, i64 0, i64 0
  %1999 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %2000 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %2001 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %2002 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  call void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef %1995, ptr noundef %1996, ptr noundef %1997, ptr noundef %1998, ptr noundef %1999, ptr noundef %2000, ptr noundef %2001, ptr noundef %2002)
  %2003 = getelementptr inbounds [64 x i8], ptr %23, i64 0, i64 0
  %2004 = getelementptr inbounds [64 x i8], ptr %24, i64 0, i64 0
  %2005 = getelementptr inbounds [64 x i8], ptr %25, i64 0, i64 0
  %2006 = getelementptr inbounds [64 x i8], ptr %26, i64 0, i64 0
  %2007 = load ptr, ptr %19, align 8, !tbaa !5
  %2008 = load ptr, ptr %20, align 8, !tbaa !5
  %2009 = load ptr, ptr %21, align 8, !tbaa !5
  %2010 = load ptr, ptr %22, align 8, !tbaa !5
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef %2003, ptr noundef %2004, ptr noundef %2005, ptr noundef %2006, ptr noundef %2007, ptr noundef %2008, ptr noundef %2009, ptr noundef %2010)
  call void @llvm.lifetime.end.p0(i64 64, ptr %42) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %41) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %40) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 20, ptr %38) #3
  call void @llvm.lifetime.end.p0(i64 20, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 20, ptr %36) #3
  call void @llvm.lifetime.end.p0(i64 20, ptr %35) #3
  br label %2011

2011:                                             ; preds = %1556, %1555, %11
  call void @llvm.lifetime.end.p0(i64 64, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 64, ptr %23) #3
  ret void
}

declare void @_Z12sha256sse_2BPjS_S_S_PhS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40)) #2

declare void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

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

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

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


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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN9Secp256K110GetHash160EibR5PointS1_S1_S1_PhS2_S2_S2_(ptr nocapture noundef nonnull readnone align 8 dereferenceable(983240) %0, i32 noundef %1, i1 noundef zeroext %2, ptr noundef nonnull align 8 dereferenceable(120) %3, ptr noundef nonnull align 8 dereferenceable(120) %4, ptr noundef nonnull align 8 dereferenceable(120) %5, ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10) local_unnamed_addr #1 align 2 {
  %12 = alloca [64 x i8], align 16
  %13 = alloca [64 x i8], align 16
  %14 = alloca [64 x i8], align 16
  %15 = alloca [64 x i8], align 16
  %16 = alloca [32 x i32], align 16
  %17 = alloca [32 x i32], align 16
  %18 = alloca [32 x i32], align 16
  %19 = alloca [32 x i32], align 16
  %20 = alloca [16 x i32], align 16
  %21 = alloca [16 x i32], align 16
  %22 = alloca [16 x i32], align 16
  %23 = alloca [16 x i32], align 16
  %24 = alloca [20 x i8], align 16
  %25 = alloca [20 x i8], align 16
  %26 = alloca [20 x i8], align 16
  %27 = alloca [20 x i8], align 16
  %28 = alloca [16 x i32], align 16
  %29 = alloca [16 x i32], align 16
  %30 = alloca [16 x i32], align 16
  %31 = alloca [16 x i32], align 16
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %12) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %15) #5
  switch i32 %1, label %704 [
    i32 0, label %32
    i32 2, label %32
    i32 1, label %315
  ]

32:                                               ; preds = %11, %11
  br i1 %2, label %194, label %33

33:                                               ; preds = %32
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %19) #5
  %34 = getelementptr inbounds i8, ptr %16, i64 4
  %35 = getelementptr inbounds i8, ptr %3, i64 16
  %36 = load <4 x i32>, ptr %35, align 8, !tbaa !5
  %37 = extractelement <4 x i32> %36, i64 3
  %38 = lshr i32 %37, 8
  %39 = or disjoint i32 %38, 67108864
  store i32 %39, ptr %16, align 16, !tbaa !8
  %40 = getelementptr inbounds i8, ptr %16, i64 20
  %41 = getelementptr inbounds i8, ptr %3, i64 40
  %42 = load <4 x i32>, ptr %3, align 8, !tbaa !5
  %43 = shufflevector <4 x i32> %42, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %44 = shufflevector <4 x i32> %43, <4 x i32> %36, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %45 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %36, <4 x i32> %44, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %46 = shufflevector <4 x i32> %45, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %46, ptr %34, align 4, !tbaa !8
  %47 = getelementptr inbounds i8, ptr %16, i64 36
  %48 = getelementptr inbounds i8, ptr %3, i64 56
  %49 = load <4 x i32>, ptr %48, align 8, !tbaa !5
  %50 = shufflevector <4 x i32> %49, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %51 = shufflevector <4 x i32> %50, <4 x i32> %42, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %52 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %42, <4 x i32> %51, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %53 = shufflevector <4 x i32> %52, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %53, ptr %40, align 4, !tbaa !8
  %54 = getelementptr inbounds i8, ptr %3, i64 48
  %55 = getelementptr inbounds i8, ptr %16, i64 52
  %56 = getelementptr inbounds i8, ptr %3, i64 44
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = load <2 x i32>, ptr %54, align 8, !tbaa !5
  %59 = shufflevector <2 x i32> %58, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %60 = shufflevector <2 x i32> %58, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %61 = shufflevector <4 x i32> %60, <4 x i32> %49, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %62 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %49, <4 x i32> %61, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %63 = shufflevector <4 x i32> %62, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %63, ptr %47, align 4, !tbaa !8
  %64 = insertelement <2 x i32> %58, i32 %57, i64 1
  %65 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %59, <2 x i32> %64, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %65, ptr %55, align 4, !tbaa !8
  %66 = load i32, ptr %41, align 8, !tbaa !5
  %67 = tail call i32 @llvm.fshl.i32(i32 %57, i32 %66, i32 24)
  %68 = getelementptr inbounds i8, ptr %16, i64 60
  store i32 %67, ptr %68, align 4, !tbaa !8
  %69 = shl i32 %66, 24
  %70 = or disjoint i32 %69, 8388608
  %71 = getelementptr inbounds i8, ptr %16, i64 64
  store i32 %70, ptr %71, align 16, !tbaa !8
  %72 = getelementptr inbounds i8, ptr %16, i64 68
  %73 = getelementptr inbounds i8, ptr %16, i64 124
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(56) %72, i8 0, i64 56, i1 false)
  store i32 520, ptr %73, align 4, !tbaa !8
  %74 = getelementptr inbounds i8, ptr %17, i64 4
  %75 = getelementptr inbounds i8, ptr %4, i64 16
  %76 = load <4 x i32>, ptr %75, align 8, !tbaa !5
  %77 = extractelement <4 x i32> %76, i64 3
  %78 = lshr i32 %77, 8
  %79 = or disjoint i32 %78, 67108864
  store i32 %79, ptr %17, align 16, !tbaa !8
  %80 = getelementptr inbounds i8, ptr %17, i64 20
  %81 = getelementptr inbounds i8, ptr %4, i64 40
  %82 = load <4 x i32>, ptr %4, align 8, !tbaa !5
  %83 = shufflevector <4 x i32> %82, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %84 = shufflevector <4 x i32> %83, <4 x i32> %76, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %85 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %76, <4 x i32> %84, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %86 = shufflevector <4 x i32> %85, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %86, ptr %74, align 4, !tbaa !8
  %87 = getelementptr inbounds i8, ptr %17, i64 36
  %88 = getelementptr inbounds i8, ptr %4, i64 56
  %89 = load <4 x i32>, ptr %88, align 8, !tbaa !5
  %90 = shufflevector <4 x i32> %89, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %91 = shufflevector <4 x i32> %90, <4 x i32> %82, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %92 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %82, <4 x i32> %91, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %93 = shufflevector <4 x i32> %92, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %93, ptr %80, align 4, !tbaa !8
  %94 = getelementptr inbounds i8, ptr %4, i64 48
  %95 = getelementptr inbounds i8, ptr %17, i64 52
  %96 = getelementptr inbounds i8, ptr %4, i64 44
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load <2 x i32>, ptr %94, align 8, !tbaa !5
  %99 = shufflevector <2 x i32> %98, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %100 = shufflevector <2 x i32> %98, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %101 = shufflevector <4 x i32> %100, <4 x i32> %89, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %102 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %89, <4 x i32> %101, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %103 = shufflevector <4 x i32> %102, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %103, ptr %87, align 4, !tbaa !8
  %104 = insertelement <2 x i32> %98, i32 %97, i64 1
  %105 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %99, <2 x i32> %104, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %105, ptr %95, align 4, !tbaa !8
  %106 = load i32, ptr %81, align 8, !tbaa !5
  %107 = tail call i32 @llvm.fshl.i32(i32 %97, i32 %106, i32 24)
  %108 = getelementptr inbounds i8, ptr %17, i64 60
  store i32 %107, ptr %108, align 4, !tbaa !8
  %109 = shl i32 %106, 24
  %110 = or disjoint i32 %109, 8388608
  %111 = getelementptr inbounds i8, ptr %17, i64 64
  store i32 %110, ptr %111, align 16, !tbaa !8
  %112 = getelementptr inbounds i8, ptr %17, i64 68
  %113 = getelementptr inbounds i8, ptr %17, i64 124
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(56) %112, i8 0, i64 56, i1 false)
  store i32 520, ptr %113, align 4, !tbaa !8
  %114 = getelementptr inbounds i8, ptr %18, i64 4
  %115 = getelementptr inbounds i8, ptr %5, i64 16
  %116 = load <4 x i32>, ptr %115, align 8, !tbaa !5
  %117 = extractelement <4 x i32> %116, i64 3
  %118 = lshr i32 %117, 8
  %119 = or disjoint i32 %118, 67108864
  store i32 %119, ptr %18, align 16, !tbaa !8
  %120 = getelementptr inbounds i8, ptr %18, i64 20
  %121 = getelementptr inbounds i8, ptr %5, i64 40
  %122 = load <4 x i32>, ptr %5, align 8, !tbaa !5
  %123 = shufflevector <4 x i32> %122, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %124 = shufflevector <4 x i32> %123, <4 x i32> %116, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %125 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %116, <4 x i32> %124, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %126 = shufflevector <4 x i32> %125, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %126, ptr %114, align 4, !tbaa !8
  %127 = getelementptr inbounds i8, ptr %18, i64 36
  %128 = getelementptr inbounds i8, ptr %5, i64 56
  %129 = load <4 x i32>, ptr %128, align 8, !tbaa !5
  %130 = shufflevector <4 x i32> %129, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %131 = shufflevector <4 x i32> %130, <4 x i32> %122, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %132 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %122, <4 x i32> %131, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %133 = shufflevector <4 x i32> %132, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %133, ptr %120, align 4, !tbaa !8
  %134 = getelementptr inbounds i8, ptr %5, i64 48
  %135 = getelementptr inbounds i8, ptr %18, i64 52
  %136 = getelementptr inbounds i8, ptr %5, i64 44
  %137 = load i32, ptr %136, align 4, !tbaa !5
  %138 = load <2 x i32>, ptr %134, align 8, !tbaa !5
  %139 = shufflevector <2 x i32> %138, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %140 = shufflevector <2 x i32> %138, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %141 = shufflevector <4 x i32> %140, <4 x i32> %129, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %142 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %129, <4 x i32> %141, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %143 = shufflevector <4 x i32> %142, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %143, ptr %127, align 4, !tbaa !8
  %144 = insertelement <2 x i32> %138, i32 %137, i64 1
  %145 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %139, <2 x i32> %144, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %145, ptr %135, align 4, !tbaa !8
  %146 = load i32, ptr %121, align 8, !tbaa !5
  %147 = tail call i32 @llvm.fshl.i32(i32 %137, i32 %146, i32 24)
  %148 = getelementptr inbounds i8, ptr %18, i64 60
  store i32 %147, ptr %148, align 4, !tbaa !8
  %149 = shl i32 %146, 24
  %150 = or disjoint i32 %149, 8388608
  %151 = getelementptr inbounds i8, ptr %18, i64 64
  store i32 %150, ptr %151, align 16, !tbaa !8
  %152 = getelementptr inbounds i8, ptr %18, i64 68
  %153 = getelementptr inbounds i8, ptr %18, i64 124
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(56) %152, i8 0, i64 56, i1 false)
  store i32 520, ptr %153, align 4, !tbaa !8
  %154 = getelementptr inbounds i8, ptr %19, i64 4
  %155 = getelementptr inbounds i8, ptr %6, i64 16
  %156 = load <4 x i32>, ptr %155, align 8, !tbaa !5
  %157 = extractelement <4 x i32> %156, i64 3
  %158 = lshr i32 %157, 8
  %159 = or disjoint i32 %158, 67108864
  store i32 %159, ptr %19, align 16, !tbaa !8
  %160 = getelementptr inbounds i8, ptr %19, i64 20
  %161 = getelementptr inbounds i8, ptr %6, i64 40
  %162 = load <4 x i32>, ptr %6, align 8, !tbaa !5
  %163 = shufflevector <4 x i32> %162, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %164 = shufflevector <4 x i32> %163, <4 x i32> %156, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %165 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %156, <4 x i32> %164, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %166 = shufflevector <4 x i32> %165, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %166, ptr %154, align 4, !tbaa !8
  %167 = getelementptr inbounds i8, ptr %19, i64 36
  %168 = getelementptr inbounds i8, ptr %6, i64 56
  %169 = load <4 x i32>, ptr %168, align 8, !tbaa !5
  %170 = shufflevector <4 x i32> %169, <4 x i32> poison, <4 x i32> <i32 3, i32 poison, i32 poison, i32 poison>
  %171 = shufflevector <4 x i32> %170, <4 x i32> %162, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %172 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %162, <4 x i32> %171, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %173 = shufflevector <4 x i32> %172, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %173, ptr %160, align 4, !tbaa !8
  %174 = getelementptr inbounds i8, ptr %6, i64 48
  %175 = getelementptr inbounds i8, ptr %19, i64 52
  %176 = getelementptr inbounds i8, ptr %6, i64 44
  %177 = load i32, ptr %176, align 4, !tbaa !5
  %178 = load <2 x i32>, ptr %174, align 8, !tbaa !5
  %179 = shufflevector <2 x i32> %178, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %180 = shufflevector <2 x i32> %178, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %181 = shufflevector <4 x i32> %180, <4 x i32> %169, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %182 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %169, <4 x i32> %181, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %183 = shufflevector <4 x i32> %182, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %183, ptr %167, align 4, !tbaa !8
  %184 = insertelement <2 x i32> %178, i32 %177, i64 1
  %185 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %179, <2 x i32> %184, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %185, ptr %175, align 4, !tbaa !8
  %186 = load i32, ptr %161, align 8, !tbaa !5
  %187 = tail call i32 @llvm.fshl.i32(i32 %177, i32 %186, i32 24)
  %188 = getelementptr inbounds i8, ptr %19, i64 60
  store i32 %187, ptr %188, align 4, !tbaa !8
  %189 = shl i32 %186, 24
  %190 = or disjoint i32 %189, 8388608
  %191 = getelementptr inbounds i8, ptr %19, i64 64
  store i32 %190, ptr %191, align 16, !tbaa !8
  %192 = getelementptr inbounds i8, ptr %19, i64 68
  %193 = getelementptr inbounds i8, ptr %19, i64 124
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(56) %192, i8 0, i64 56, i1 false)
  store i32 520, ptr %193, align 4, !tbaa !8
  call void @_Z12sha256sse_2BPjS_S_S_PhS0_S0_S0_(ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18, ptr noundef nonnull %19, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15)
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %19) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %17) #5
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %16) #5
  br label %704

194:                                              ; preds = %32
  %195 = getelementptr inbounds i8, ptr %3, i64 28
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %23) #5
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = lshr i32 %196, 8
  %198 = getelementptr inbounds i8, ptr %3, i64 40
  %199 = tail call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %198)
  %200 = select i1 %199, i32 50331648, i32 33554432
  %201 = or disjoint i32 %200, %197
  store i32 %201, ptr %20, align 16, !tbaa !8
  %202 = getelementptr inbounds i8, ptr %20, i64 4
  %203 = getelementptr inbounds i8, ptr %3, i64 16
  %204 = load <4 x i32>, ptr %203, align 8, !tbaa !5
  %205 = getelementptr inbounds i8, ptr %3, i64 8
  %206 = getelementptr inbounds i8, ptr %20, i64 20
  %207 = getelementptr inbounds i8, ptr %3, i64 4
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = load <2 x i32>, ptr %205, align 8, !tbaa !5
  %210 = shufflevector <2 x i32> %209, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %211 = shufflevector <2 x i32> %209, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %212 = shufflevector <4 x i32> %211, <4 x i32> %204, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %213 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %204, <4 x i32> %212, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %214 = shufflevector <4 x i32> %213, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %214, ptr %202, align 4, !tbaa !8
  %215 = insertelement <2 x i32> %209, i32 %208, i64 1
  %216 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %210, <2 x i32> %215, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %216, ptr %206, align 4, !tbaa !8
  %217 = load i32, ptr %3, align 8, !tbaa !5
  %218 = tail call i32 @llvm.fshl.i32(i32 %208, i32 %217, i32 24)
  %219 = getelementptr inbounds i8, ptr %20, i64 28
  store i32 %218, ptr %219, align 4, !tbaa !8
  %220 = shl i32 %217, 24
  %221 = or disjoint i32 %220, 8388608
  %222 = getelementptr inbounds i8, ptr %20, i64 32
  store i32 %221, ptr %222, align 16, !tbaa !8
  %223 = getelementptr inbounds i8, ptr %20, i64 36
  %224 = getelementptr inbounds i8, ptr %20, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %223, i8 0, i64 24, i1 false)
  store i32 264, ptr %224, align 4, !tbaa !8
  %225 = getelementptr inbounds i8, ptr %4, i64 28
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = lshr i32 %226, 8
  %228 = getelementptr inbounds i8, ptr %4, i64 40
  %229 = tail call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %228)
  %230 = select i1 %229, i32 50331648, i32 33554432
  %231 = or disjoint i32 %230, %227
  store i32 %231, ptr %21, align 16, !tbaa !8
  %232 = getelementptr inbounds i8, ptr %21, i64 4
  %233 = getelementptr inbounds i8, ptr %4, i64 16
  %234 = load <4 x i32>, ptr %233, align 8, !tbaa !5
  %235 = getelementptr inbounds i8, ptr %4, i64 8
  %236 = getelementptr inbounds i8, ptr %21, i64 20
  %237 = getelementptr inbounds i8, ptr %4, i64 4
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = load <2 x i32>, ptr %235, align 8, !tbaa !5
  %240 = shufflevector <2 x i32> %239, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %241 = shufflevector <2 x i32> %239, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %242 = shufflevector <4 x i32> %241, <4 x i32> %234, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %243 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %234, <4 x i32> %242, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %244 = shufflevector <4 x i32> %243, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %244, ptr %232, align 4, !tbaa !8
  %245 = insertelement <2 x i32> %239, i32 %238, i64 1
  %246 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %240, <2 x i32> %245, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %246, ptr %236, align 4, !tbaa !8
  %247 = load i32, ptr %4, align 8, !tbaa !5
  %248 = tail call i32 @llvm.fshl.i32(i32 %238, i32 %247, i32 24)
  %249 = getelementptr inbounds i8, ptr %21, i64 28
  store i32 %248, ptr %249, align 4, !tbaa !8
  %250 = shl i32 %247, 24
  %251 = or disjoint i32 %250, 8388608
  %252 = getelementptr inbounds i8, ptr %21, i64 32
  store i32 %251, ptr %252, align 16, !tbaa !8
  %253 = getelementptr inbounds i8, ptr %21, i64 36
  %254 = getelementptr inbounds i8, ptr %21, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %253, i8 0, i64 24, i1 false)
  store i32 264, ptr %254, align 4, !tbaa !8
  %255 = getelementptr inbounds i8, ptr %5, i64 28
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = lshr i32 %256, 8
  %258 = getelementptr inbounds i8, ptr %5, i64 40
  %259 = tail call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %258)
  %260 = select i1 %259, i32 50331648, i32 33554432
  %261 = or disjoint i32 %260, %257
  store i32 %261, ptr %22, align 16, !tbaa !8
  %262 = getelementptr inbounds i8, ptr %22, i64 4
  %263 = getelementptr inbounds i8, ptr %5, i64 16
  %264 = load <4 x i32>, ptr %263, align 8, !tbaa !5
  %265 = getelementptr inbounds i8, ptr %5, i64 8
  %266 = getelementptr inbounds i8, ptr %22, i64 20
  %267 = getelementptr inbounds i8, ptr %5, i64 4
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = load <2 x i32>, ptr %265, align 8, !tbaa !5
  %270 = shufflevector <2 x i32> %269, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %271 = shufflevector <2 x i32> %269, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %272 = shufflevector <4 x i32> %271, <4 x i32> %264, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %273 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %264, <4 x i32> %272, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %274 = shufflevector <4 x i32> %273, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %274, ptr %262, align 4, !tbaa !8
  %275 = insertelement <2 x i32> %269, i32 %268, i64 1
  %276 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %270, <2 x i32> %275, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %276, ptr %266, align 4, !tbaa !8
  %277 = load i32, ptr %5, align 8, !tbaa !5
  %278 = tail call i32 @llvm.fshl.i32(i32 %268, i32 %277, i32 24)
  %279 = getelementptr inbounds i8, ptr %22, i64 28
  store i32 %278, ptr %279, align 4, !tbaa !8
  %280 = shl i32 %277, 24
  %281 = or disjoint i32 %280, 8388608
  %282 = getelementptr inbounds i8, ptr %22, i64 32
  store i32 %281, ptr %282, align 16, !tbaa !8
  %283 = getelementptr inbounds i8, ptr %22, i64 36
  %284 = getelementptr inbounds i8, ptr %22, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %283, i8 0, i64 24, i1 false)
  store i32 264, ptr %284, align 4, !tbaa !8
  %285 = getelementptr inbounds i8, ptr %6, i64 28
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = lshr i32 %286, 8
  %288 = getelementptr inbounds i8, ptr %6, i64 40
  %289 = tail call noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40) %288)
  %290 = select i1 %289, i32 50331648, i32 33554432
  %291 = or disjoint i32 %290, %287
  store i32 %291, ptr %23, align 16, !tbaa !8
  %292 = getelementptr inbounds i8, ptr %23, i64 4
  %293 = getelementptr inbounds i8, ptr %6, i64 16
  %294 = load <4 x i32>, ptr %293, align 8, !tbaa !5
  %295 = getelementptr inbounds i8, ptr %6, i64 8
  %296 = getelementptr inbounds i8, ptr %23, i64 20
  %297 = getelementptr inbounds i8, ptr %6, i64 4
  %298 = load i32, ptr %297, align 4, !tbaa !5
  %299 = load <2 x i32>, ptr %295, align 8, !tbaa !5
  %300 = shufflevector <2 x i32> %299, <2 x i32> poison, <2 x i32> <i32 1, i32 0>
  %301 = shufflevector <2 x i32> %299, <2 x i32> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
  %302 = shufflevector <4 x i32> %301, <4 x i32> %294, <4 x i32> <i32 0, i32 4, i32 5, i32 6>
  %303 = tail call <4 x i32> @llvm.fshl.v4i32(<4 x i32> %294, <4 x i32> %302, <4 x i32> <i32 24, i32 24, i32 24, i32 24>)
  %304 = shufflevector <4 x i32> %303, <4 x i32> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  store <4 x i32> %304, ptr %292, align 4, !tbaa !8
  %305 = insertelement <2 x i32> %299, i32 %298, i64 1
  %306 = tail call <2 x i32> @llvm.fshl.v2i32(<2 x i32> %300, <2 x i32> %305, <2 x i32> <i32 24, i32 24>)
  store <2 x i32> %306, ptr %296, align 4, !tbaa !8
  %307 = load i32, ptr %6, align 8, !tbaa !5
  %308 = tail call i32 @llvm.fshl.i32(i32 %298, i32 %307, i32 24)
  %309 = getelementptr inbounds i8, ptr %23, i64 28
  store i32 %308, ptr %309, align 4, !tbaa !8
  %310 = shl i32 %307, 24
  %311 = or disjoint i32 %310, 8388608
  %312 = getelementptr inbounds i8, ptr %23, i64 32
  store i32 %311, ptr %312, align 16, !tbaa !8
  %313 = getelementptr inbounds i8, ptr %23, i64 36
  %314 = getelementptr inbounds i8, ptr %23, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(24) %313, i8 0, i64 24, i1 false)
  store i32 264, ptr %314, align 4, !tbaa !8
  call void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef nonnull %20, ptr noundef nonnull %21, ptr noundef nonnull %22, ptr noundef nonnull %23, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15)
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %23) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %22) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %20) #5
  br label %704

315:                                              ; preds = %11
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 20, ptr nonnull %27) #5
  call void @_ZN9Secp256K110GetHash160EibR5PointS1_S1_S1_PhS2_S2_S2_(ptr noundef nonnull align 8 dereferenceable(983240) %0, i32 noundef 0, i1 noundef zeroext %2, ptr noundef nonnull align 8 dereferenceable(120) %3, ptr noundef nonnull align 8 dereferenceable(120) %4, ptr noundef nonnull align 8 dereferenceable(120) %5, ptr noundef nonnull align 8 dereferenceable(120) %6, ptr noundef nonnull %24, ptr noundef nonnull %25, ptr noundef nonnull %26, ptr noundef nonnull %27)
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %31) #5
  %316 = load i8, ptr %24, align 16, !tbaa !5
  %317 = zext i8 %316 to i32
  %318 = shl nuw nsw i32 %317, 8
  %319 = getelementptr inbounds i8, ptr %24, i64 1
  %320 = load i8, ptr %319, align 1, !tbaa !5
  %321 = zext i8 %320 to i32
  %322 = or disjoint i32 %318, %321
  %323 = or disjoint i32 %322, 1310720
  store i32 %323, ptr %28, align 16, !tbaa !8
  %324 = getelementptr inbounds i8, ptr %24, i64 2
  %325 = load i8, ptr %324, align 2, !tbaa !5
  %326 = zext i8 %325 to i32
  %327 = shl nuw i32 %326, 24
  %328 = getelementptr inbounds i8, ptr %24, i64 3
  %329 = load i8, ptr %328, align 1, !tbaa !5
  %330 = zext i8 %329 to i32
  %331 = shl nuw nsw i32 %330, 16
  %332 = or disjoint i32 %331, %327
  %333 = getelementptr inbounds i8, ptr %24, i64 4
  %334 = load i8, ptr %333, align 4, !tbaa !5
  %335 = zext i8 %334 to i32
  %336 = shl nuw nsw i32 %335, 8
  %337 = or disjoint i32 %332, %336
  %338 = getelementptr inbounds i8, ptr %24, i64 5
  %339 = load i8, ptr %338, align 1, !tbaa !5
  %340 = zext i8 %339 to i32
  %341 = or disjoint i32 %337, %340
  %342 = getelementptr inbounds i8, ptr %28, i64 4
  store i32 %341, ptr %342, align 4, !tbaa !8
  %343 = getelementptr inbounds i8, ptr %24, i64 6
  %344 = load i8, ptr %343, align 2, !tbaa !5
  %345 = zext i8 %344 to i32
  %346 = shl nuw i32 %345, 24
  %347 = getelementptr inbounds i8, ptr %24, i64 7
  %348 = load i8, ptr %347, align 1, !tbaa !5
  %349 = zext i8 %348 to i32
  %350 = shl nuw nsw i32 %349, 16
  %351 = or disjoint i32 %350, %346
  %352 = getelementptr inbounds i8, ptr %24, i64 8
  %353 = load i8, ptr %352, align 8, !tbaa !5
  %354 = zext i8 %353 to i32
  %355 = shl nuw nsw i32 %354, 8
  %356 = or disjoint i32 %351, %355
  %357 = getelementptr inbounds i8, ptr %24, i64 9
  %358 = load i8, ptr %357, align 1, !tbaa !5
  %359 = zext i8 %358 to i32
  %360 = or disjoint i32 %356, %359
  %361 = getelementptr inbounds i8, ptr %28, i64 8
  store i32 %360, ptr %361, align 8, !tbaa !8
  %362 = getelementptr inbounds i8, ptr %24, i64 10
  %363 = load i8, ptr %362, align 2, !tbaa !5
  %364 = zext i8 %363 to i32
  %365 = shl nuw i32 %364, 24
  %366 = getelementptr inbounds i8, ptr %24, i64 11
  %367 = load i8, ptr %366, align 1, !tbaa !5
  %368 = zext i8 %367 to i32
  %369 = shl nuw nsw i32 %368, 16
  %370 = or disjoint i32 %369, %365
  %371 = getelementptr inbounds i8, ptr %24, i64 12
  %372 = load i8, ptr %371, align 4, !tbaa !5
  %373 = zext i8 %372 to i32
  %374 = shl nuw nsw i32 %373, 8
  %375 = or disjoint i32 %370, %374
  %376 = getelementptr inbounds i8, ptr %24, i64 13
  %377 = load i8, ptr %376, align 1, !tbaa !5
  %378 = zext i8 %377 to i32
  %379 = or disjoint i32 %375, %378
  %380 = getelementptr inbounds i8, ptr %28, i64 12
  store i32 %379, ptr %380, align 4, !tbaa !8
  %381 = getelementptr inbounds i8, ptr %24, i64 14
  %382 = load i8, ptr %381, align 2, !tbaa !5
  %383 = zext i8 %382 to i32
  %384 = shl nuw i32 %383, 24
  %385 = getelementptr inbounds i8, ptr %24, i64 15
  %386 = load i8, ptr %385, align 1, !tbaa !5
  %387 = zext i8 %386 to i32
  %388 = shl nuw nsw i32 %387, 16
  %389 = or disjoint i32 %388, %384
  %390 = getelementptr inbounds i8, ptr %24, i64 16
  %391 = load i8, ptr %390, align 16, !tbaa !5
  %392 = zext i8 %391 to i32
  %393 = shl nuw nsw i32 %392, 8
  %394 = or disjoint i32 %389, %393
  %395 = getelementptr inbounds i8, ptr %24, i64 17
  %396 = load i8, ptr %395, align 1, !tbaa !5
  %397 = zext i8 %396 to i32
  %398 = or disjoint i32 %394, %397
  %399 = getelementptr inbounds i8, ptr %28, i64 16
  store i32 %398, ptr %399, align 16, !tbaa !8
  %400 = getelementptr inbounds i8, ptr %24, i64 18
  %401 = load i8, ptr %400, align 2, !tbaa !5
  %402 = zext i8 %401 to i32
  %403 = shl nuw i32 %402, 24
  %404 = getelementptr inbounds i8, ptr %24, i64 19
  %405 = load i8, ptr %404, align 1, !tbaa !5
  %406 = zext i8 %405 to i32
  %407 = shl nuw nsw i32 %406, 16
  %408 = or disjoint i32 %403, %407
  %409 = or disjoint i32 %408, 32768
  %410 = getelementptr inbounds i8, ptr %28, i64 20
  store i32 %409, ptr %410, align 4, !tbaa !8
  %411 = getelementptr inbounds i8, ptr %28, i64 24
  %412 = getelementptr inbounds i8, ptr %28, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %411, i8 0, i64 36, i1 false)
  store i32 176, ptr %412, align 4, !tbaa !8
  %413 = load i8, ptr %25, align 16, !tbaa !5
  %414 = zext i8 %413 to i32
  %415 = shl nuw nsw i32 %414, 8
  %416 = getelementptr inbounds i8, ptr %25, i64 1
  %417 = load i8, ptr %416, align 1, !tbaa !5
  %418 = zext i8 %417 to i32
  %419 = or disjoint i32 %415, %418
  %420 = or disjoint i32 %419, 1310720
  store i32 %420, ptr %29, align 16, !tbaa !8
  %421 = getelementptr inbounds i8, ptr %25, i64 2
  %422 = load i8, ptr %421, align 2, !tbaa !5
  %423 = zext i8 %422 to i32
  %424 = shl nuw i32 %423, 24
  %425 = getelementptr inbounds i8, ptr %25, i64 3
  %426 = load i8, ptr %425, align 1, !tbaa !5
  %427 = zext i8 %426 to i32
  %428 = shl nuw nsw i32 %427, 16
  %429 = or disjoint i32 %428, %424
  %430 = getelementptr inbounds i8, ptr %25, i64 4
  %431 = load i8, ptr %430, align 4, !tbaa !5
  %432 = zext i8 %431 to i32
  %433 = shl nuw nsw i32 %432, 8
  %434 = or disjoint i32 %429, %433
  %435 = getelementptr inbounds i8, ptr %25, i64 5
  %436 = load i8, ptr %435, align 1, !tbaa !5
  %437 = zext i8 %436 to i32
  %438 = or disjoint i32 %434, %437
  %439 = getelementptr inbounds i8, ptr %29, i64 4
  store i32 %438, ptr %439, align 4, !tbaa !8
  %440 = getelementptr inbounds i8, ptr %25, i64 6
  %441 = load i8, ptr %440, align 2, !tbaa !5
  %442 = zext i8 %441 to i32
  %443 = shl nuw i32 %442, 24
  %444 = getelementptr inbounds i8, ptr %25, i64 7
  %445 = load i8, ptr %444, align 1, !tbaa !5
  %446 = zext i8 %445 to i32
  %447 = shl nuw nsw i32 %446, 16
  %448 = or disjoint i32 %447, %443
  %449 = getelementptr inbounds i8, ptr %25, i64 8
  %450 = load i8, ptr %449, align 8, !tbaa !5
  %451 = zext i8 %450 to i32
  %452 = shl nuw nsw i32 %451, 8
  %453 = or disjoint i32 %448, %452
  %454 = getelementptr inbounds i8, ptr %25, i64 9
  %455 = load i8, ptr %454, align 1, !tbaa !5
  %456 = zext i8 %455 to i32
  %457 = or disjoint i32 %453, %456
  %458 = getelementptr inbounds i8, ptr %29, i64 8
  store i32 %457, ptr %458, align 8, !tbaa !8
  %459 = getelementptr inbounds i8, ptr %25, i64 10
  %460 = load i8, ptr %459, align 2, !tbaa !5
  %461 = zext i8 %460 to i32
  %462 = shl nuw i32 %461, 24
  %463 = getelementptr inbounds i8, ptr %25, i64 11
  %464 = load i8, ptr %463, align 1, !tbaa !5
  %465 = zext i8 %464 to i32
  %466 = shl nuw nsw i32 %465, 16
  %467 = or disjoint i32 %466, %462
  %468 = getelementptr inbounds i8, ptr %25, i64 12
  %469 = load i8, ptr %468, align 4, !tbaa !5
  %470 = zext i8 %469 to i32
  %471 = shl nuw nsw i32 %470, 8
  %472 = or disjoint i32 %467, %471
  %473 = getelementptr inbounds i8, ptr %25, i64 13
  %474 = load i8, ptr %473, align 1, !tbaa !5
  %475 = zext i8 %474 to i32
  %476 = or disjoint i32 %472, %475
  %477 = getelementptr inbounds i8, ptr %29, i64 12
  store i32 %476, ptr %477, align 4, !tbaa !8
  %478 = getelementptr inbounds i8, ptr %25, i64 14
  %479 = load i8, ptr %478, align 2, !tbaa !5
  %480 = zext i8 %479 to i32
  %481 = shl nuw i32 %480, 24
  %482 = getelementptr inbounds i8, ptr %25, i64 15
  %483 = load i8, ptr %482, align 1, !tbaa !5
  %484 = zext i8 %483 to i32
  %485 = shl nuw nsw i32 %484, 16
  %486 = or disjoint i32 %485, %481
  %487 = getelementptr inbounds i8, ptr %25, i64 16
  %488 = load i8, ptr %487, align 16, !tbaa !5
  %489 = zext i8 %488 to i32
  %490 = shl nuw nsw i32 %489, 8
  %491 = or disjoint i32 %486, %490
  %492 = getelementptr inbounds i8, ptr %25, i64 17
  %493 = load i8, ptr %492, align 1, !tbaa !5
  %494 = zext i8 %493 to i32
  %495 = or disjoint i32 %491, %494
  %496 = getelementptr inbounds i8, ptr %29, i64 16
  store i32 %495, ptr %496, align 16, !tbaa !8
  %497 = getelementptr inbounds i8, ptr %25, i64 18
  %498 = load i8, ptr %497, align 2, !tbaa !5
  %499 = zext i8 %498 to i32
  %500 = shl nuw i32 %499, 24
  %501 = getelementptr inbounds i8, ptr %25, i64 19
  %502 = load i8, ptr %501, align 1, !tbaa !5
  %503 = zext i8 %502 to i32
  %504 = shl nuw nsw i32 %503, 16
  %505 = or disjoint i32 %500, %504
  %506 = or disjoint i32 %505, 32768
  %507 = getelementptr inbounds i8, ptr %29, i64 20
  store i32 %506, ptr %507, align 4, !tbaa !8
  %508 = getelementptr inbounds i8, ptr %29, i64 24
  %509 = getelementptr inbounds i8, ptr %29, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %508, i8 0, i64 36, i1 false)
  store i32 176, ptr %509, align 4, !tbaa !8
  %510 = load i8, ptr %26, align 16, !tbaa !5
  %511 = zext i8 %510 to i32
  %512 = shl nuw nsw i32 %511, 8
  %513 = getelementptr inbounds i8, ptr %26, i64 1
  %514 = load i8, ptr %513, align 1, !tbaa !5
  %515 = zext i8 %514 to i32
  %516 = or disjoint i32 %512, %515
  %517 = or disjoint i32 %516, 1310720
  store i32 %517, ptr %30, align 16, !tbaa !8
  %518 = getelementptr inbounds i8, ptr %26, i64 2
  %519 = load i8, ptr %518, align 2, !tbaa !5
  %520 = zext i8 %519 to i32
  %521 = shl nuw i32 %520, 24
  %522 = getelementptr inbounds i8, ptr %26, i64 3
  %523 = load i8, ptr %522, align 1, !tbaa !5
  %524 = zext i8 %523 to i32
  %525 = shl nuw nsw i32 %524, 16
  %526 = or disjoint i32 %525, %521
  %527 = getelementptr inbounds i8, ptr %26, i64 4
  %528 = load i8, ptr %527, align 4, !tbaa !5
  %529 = zext i8 %528 to i32
  %530 = shl nuw nsw i32 %529, 8
  %531 = or disjoint i32 %526, %530
  %532 = getelementptr inbounds i8, ptr %26, i64 5
  %533 = load i8, ptr %532, align 1, !tbaa !5
  %534 = zext i8 %533 to i32
  %535 = or disjoint i32 %531, %534
  %536 = getelementptr inbounds i8, ptr %30, i64 4
  store i32 %535, ptr %536, align 4, !tbaa !8
  %537 = getelementptr inbounds i8, ptr %26, i64 6
  %538 = load i8, ptr %537, align 2, !tbaa !5
  %539 = zext i8 %538 to i32
  %540 = shl nuw i32 %539, 24
  %541 = getelementptr inbounds i8, ptr %26, i64 7
  %542 = load i8, ptr %541, align 1, !tbaa !5
  %543 = zext i8 %542 to i32
  %544 = shl nuw nsw i32 %543, 16
  %545 = or disjoint i32 %544, %540
  %546 = getelementptr inbounds i8, ptr %26, i64 8
  %547 = load i8, ptr %546, align 8, !tbaa !5
  %548 = zext i8 %547 to i32
  %549 = shl nuw nsw i32 %548, 8
  %550 = or disjoint i32 %545, %549
  %551 = getelementptr inbounds i8, ptr %26, i64 9
  %552 = load i8, ptr %551, align 1, !tbaa !5
  %553 = zext i8 %552 to i32
  %554 = or disjoint i32 %550, %553
  %555 = getelementptr inbounds i8, ptr %30, i64 8
  store i32 %554, ptr %555, align 8, !tbaa !8
  %556 = getelementptr inbounds i8, ptr %26, i64 10
  %557 = load i8, ptr %556, align 2, !tbaa !5
  %558 = zext i8 %557 to i32
  %559 = shl nuw i32 %558, 24
  %560 = getelementptr inbounds i8, ptr %26, i64 11
  %561 = load i8, ptr %560, align 1, !tbaa !5
  %562 = zext i8 %561 to i32
  %563 = shl nuw nsw i32 %562, 16
  %564 = or disjoint i32 %563, %559
  %565 = getelementptr inbounds i8, ptr %26, i64 12
  %566 = load i8, ptr %565, align 4, !tbaa !5
  %567 = zext i8 %566 to i32
  %568 = shl nuw nsw i32 %567, 8
  %569 = or disjoint i32 %564, %568
  %570 = getelementptr inbounds i8, ptr %26, i64 13
  %571 = load i8, ptr %570, align 1, !tbaa !5
  %572 = zext i8 %571 to i32
  %573 = or disjoint i32 %569, %572
  %574 = getelementptr inbounds i8, ptr %30, i64 12
  store i32 %573, ptr %574, align 4, !tbaa !8
  %575 = getelementptr inbounds i8, ptr %26, i64 14
  %576 = load i8, ptr %575, align 2, !tbaa !5
  %577 = zext i8 %576 to i32
  %578 = shl nuw i32 %577, 24
  %579 = getelementptr inbounds i8, ptr %26, i64 15
  %580 = load i8, ptr %579, align 1, !tbaa !5
  %581 = zext i8 %580 to i32
  %582 = shl nuw nsw i32 %581, 16
  %583 = or disjoint i32 %582, %578
  %584 = getelementptr inbounds i8, ptr %26, i64 16
  %585 = load i8, ptr %584, align 16, !tbaa !5
  %586 = zext i8 %585 to i32
  %587 = shl nuw nsw i32 %586, 8
  %588 = or disjoint i32 %583, %587
  %589 = getelementptr inbounds i8, ptr %26, i64 17
  %590 = load i8, ptr %589, align 1, !tbaa !5
  %591 = zext i8 %590 to i32
  %592 = or disjoint i32 %588, %591
  %593 = getelementptr inbounds i8, ptr %30, i64 16
  store i32 %592, ptr %593, align 16, !tbaa !8
  %594 = getelementptr inbounds i8, ptr %26, i64 18
  %595 = load i8, ptr %594, align 2, !tbaa !5
  %596 = zext i8 %595 to i32
  %597 = shl nuw i32 %596, 24
  %598 = getelementptr inbounds i8, ptr %26, i64 19
  %599 = load i8, ptr %598, align 1, !tbaa !5
  %600 = zext i8 %599 to i32
  %601 = shl nuw nsw i32 %600, 16
  %602 = or disjoint i32 %597, %601
  %603 = or disjoint i32 %602, 32768
  %604 = getelementptr inbounds i8, ptr %30, i64 20
  store i32 %603, ptr %604, align 4, !tbaa !8
  %605 = getelementptr inbounds i8, ptr %30, i64 24
  %606 = getelementptr inbounds i8, ptr %30, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %605, i8 0, i64 36, i1 false)
  store i32 176, ptr %606, align 4, !tbaa !8
  %607 = load i8, ptr %27, align 16, !tbaa !5
  %608 = zext i8 %607 to i32
  %609 = shl nuw nsw i32 %608, 8
  %610 = getelementptr inbounds i8, ptr %27, i64 1
  %611 = load i8, ptr %610, align 1, !tbaa !5
  %612 = zext i8 %611 to i32
  %613 = or disjoint i32 %609, %612
  %614 = or disjoint i32 %613, 1310720
  store i32 %614, ptr %31, align 16, !tbaa !8
  %615 = getelementptr inbounds i8, ptr %27, i64 2
  %616 = load i8, ptr %615, align 2, !tbaa !5
  %617 = zext i8 %616 to i32
  %618 = shl nuw i32 %617, 24
  %619 = getelementptr inbounds i8, ptr %27, i64 3
  %620 = load i8, ptr %619, align 1, !tbaa !5
  %621 = zext i8 %620 to i32
  %622 = shl nuw nsw i32 %621, 16
  %623 = or disjoint i32 %622, %618
  %624 = getelementptr inbounds i8, ptr %27, i64 4
  %625 = load i8, ptr %624, align 4, !tbaa !5
  %626 = zext i8 %625 to i32
  %627 = shl nuw nsw i32 %626, 8
  %628 = or disjoint i32 %623, %627
  %629 = getelementptr inbounds i8, ptr %27, i64 5
  %630 = load i8, ptr %629, align 1, !tbaa !5
  %631 = zext i8 %630 to i32
  %632 = or disjoint i32 %628, %631
  %633 = getelementptr inbounds i8, ptr %31, i64 4
  store i32 %632, ptr %633, align 4, !tbaa !8
  %634 = getelementptr inbounds i8, ptr %27, i64 6
  %635 = load i8, ptr %634, align 2, !tbaa !5
  %636 = zext i8 %635 to i32
  %637 = shl nuw i32 %636, 24
  %638 = getelementptr inbounds i8, ptr %27, i64 7
  %639 = load i8, ptr %638, align 1, !tbaa !5
  %640 = zext i8 %639 to i32
  %641 = shl nuw nsw i32 %640, 16
  %642 = or disjoint i32 %641, %637
  %643 = getelementptr inbounds i8, ptr %27, i64 8
  %644 = load i8, ptr %643, align 8, !tbaa !5
  %645 = zext i8 %644 to i32
  %646 = shl nuw nsw i32 %645, 8
  %647 = or disjoint i32 %642, %646
  %648 = getelementptr inbounds i8, ptr %27, i64 9
  %649 = load i8, ptr %648, align 1, !tbaa !5
  %650 = zext i8 %649 to i32
  %651 = or disjoint i32 %647, %650
  %652 = getelementptr inbounds i8, ptr %31, i64 8
  store i32 %651, ptr %652, align 8, !tbaa !8
  %653 = getelementptr inbounds i8, ptr %27, i64 10
  %654 = load i8, ptr %653, align 2, !tbaa !5
  %655 = zext i8 %654 to i32
  %656 = shl nuw i32 %655, 24
  %657 = getelementptr inbounds i8, ptr %27, i64 11
  %658 = load i8, ptr %657, align 1, !tbaa !5
  %659 = zext i8 %658 to i32
  %660 = shl nuw nsw i32 %659, 16
  %661 = or disjoint i32 %660, %656
  %662 = getelementptr inbounds i8, ptr %27, i64 12
  %663 = load i8, ptr %662, align 4, !tbaa !5
  %664 = zext i8 %663 to i32
  %665 = shl nuw nsw i32 %664, 8
  %666 = or disjoint i32 %661, %665
  %667 = getelementptr inbounds i8, ptr %27, i64 13
  %668 = load i8, ptr %667, align 1, !tbaa !5
  %669 = zext i8 %668 to i32
  %670 = or disjoint i32 %666, %669
  %671 = getelementptr inbounds i8, ptr %31, i64 12
  store i32 %670, ptr %671, align 4, !tbaa !8
  %672 = getelementptr inbounds i8, ptr %27, i64 14
  %673 = load i8, ptr %672, align 2, !tbaa !5
  %674 = zext i8 %673 to i32
  %675 = shl nuw i32 %674, 24
  %676 = getelementptr inbounds i8, ptr %27, i64 15
  %677 = load i8, ptr %676, align 1, !tbaa !5
  %678 = zext i8 %677 to i32
  %679 = shl nuw nsw i32 %678, 16
  %680 = or disjoint i32 %679, %675
  %681 = getelementptr inbounds i8, ptr %27, i64 16
  %682 = load i8, ptr %681, align 16, !tbaa !5
  %683 = zext i8 %682 to i32
  %684 = shl nuw nsw i32 %683, 8
  %685 = or disjoint i32 %680, %684
  %686 = getelementptr inbounds i8, ptr %27, i64 17
  %687 = load i8, ptr %686, align 1, !tbaa !5
  %688 = zext i8 %687 to i32
  %689 = or disjoint i32 %685, %688
  %690 = getelementptr inbounds i8, ptr %31, i64 16
  store i32 %689, ptr %690, align 16, !tbaa !8
  %691 = getelementptr inbounds i8, ptr %27, i64 18
  %692 = load i8, ptr %691, align 2, !tbaa !5
  %693 = zext i8 %692 to i32
  %694 = shl nuw i32 %693, 24
  %695 = getelementptr inbounds i8, ptr %27, i64 19
  %696 = load i8, ptr %695, align 1, !tbaa !5
  %697 = zext i8 %696 to i32
  %698 = shl nuw nsw i32 %697, 16
  %699 = or disjoint i32 %694, %698
  %700 = or disjoint i32 %699, 32768
  %701 = getelementptr inbounds i8, ptr %31, i64 20
  store i32 %700, ptr %701, align 4, !tbaa !8
  %702 = getelementptr inbounds i8, ptr %31, i64 24
  %703 = getelementptr inbounds i8, ptr %31, i64 60
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %702, i8 0, i64 36, i1 false)
  store i32 176, ptr %703, align 4, !tbaa !8
  call void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef nonnull %28, ptr noundef nonnull %29, ptr noundef nonnull %30, ptr noundef nonnull %31, ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15)
  call void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef nonnull %12, ptr noundef nonnull %13, ptr noundef nonnull %14, ptr noundef nonnull %15, ptr noundef %7, ptr noundef %8, ptr noundef %9, ptr noundef %10)
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %31) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %28) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %27) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %26) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %25) #5
  call void @llvm.lifetime.end.p0(i64 20, ptr nonnull %24) #5
  br label %704

704:                                              ; preds = %33, %194, %315, %11
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %14) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %12) #5
  ret void
}

declare void @_Z12sha256sse_2BPjS_S_S_PhS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @_Z15ripemd160sse_32PhS_S_S_S_S_S_S_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare noundef zeroext i1 @_ZN3Int5IsOddEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2

declare void @_Z12sha256sse_1BPjS_S_S_PhS0_S0_S0_(ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.fshl.i32(i32, i32, i32) #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.fshl.v4i32(<4 x i32>, <4 x i32>, <4 x i32>) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x i32> @llvm.fshl.v2i32(<2 x i32>, <2 x i32>, <2 x i32>) #3

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "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 #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }

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

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


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass