; LLVM IR from trustwallet/wallet-core :: trezor-crypto/crypto/aes (aescrypt)

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

%struct.aes_decrypt_ctx = type { [60 x i32], %union.aes_inf, [12 x i8] }
%union.aes_inf = type { i32 }

@t_in = external constant [4 x [256 x i32]], align 16
@t_il = external constant [4 x [256 x i32]], align 16

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @aes_decrypt(ptr noundef %0, ptr noundef %1, ptr noundef %2) #1 {
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca [4 x i32], align 16
  %9 = alloca [4 x i32], align 16
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %8) #2
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #2
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #2
  store ptr null, ptr %10, align 8, !tbaa !5
  %12 = load ptr, ptr %7, align 8, !tbaa !5
  %13 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %12, i32 0, i32 1
  %14 = getelementptr inbounds [4 x i8], ptr %13, i64 0, i64 0
  %15 = load i8, ptr %14, align 16, !tbaa !9
  %16 = zext i8 %15 to i32
  %17 = icmp ne i32 %16, 160
  br i1 %17, label %18, label %33

18:                                               ; preds = %3
  %19 = load ptr, ptr %7, align 8, !tbaa !5
  %20 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %19, i32 0, i32 1
  %21 = getelementptr inbounds [4 x i8], ptr %20, i64 0, i64 0
  %22 = load i8, ptr %21, align 16, !tbaa !9
  %23 = zext i8 %22 to i32
  %24 = icmp ne i32 %23, 192
  br i1 %24, label %25, label %33

25:                                               ; preds = %18
  %26 = load ptr, ptr %7, align 8, !tbaa !5
  %27 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %26, i32 0, i32 1
  %28 = getelementptr inbounds [4 x i8], ptr %27, i64 0, i64 0
  %29 = load i8, ptr %28, align 16, !tbaa !9
  %30 = zext i8 %29 to i32
  %31 = icmp ne i32 %30, 224
  br i1 %31, label %32, label %33

32:                                               ; preds = %25
  store i32 1, ptr %4, align 4
  store i32 1, ptr %11, align 4
  br label %2382

33:                                               ; preds = %25, %18, %3
  %34 = load ptr, ptr %7, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %34, i32 0, i32 0
  %36 = getelementptr inbounds [60 x i32], ptr %35, i64 0, i64 0
  %37 = getelementptr inbounds i32, ptr %36, i64 0
  store ptr %37, ptr %10, align 8, !tbaa !5
  %38 = load ptr, ptr %5, align 8, !tbaa !5
  %39 = getelementptr inbounds i8, ptr %38, i64 0
  %40 = getelementptr inbounds i8, ptr %39, i64 3
  %41 = load i8, ptr %40, align 1, !tbaa !9
  %42 = zext i8 %41 to i32
  %43 = shl i32 %42, 24
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = getelementptr inbounds i8, ptr %44, i64 0
  %46 = getelementptr inbounds i8, ptr %45, i64 2
  %47 = load i8, ptr %46, align 1, !tbaa !9
  %48 = zext i8 %47 to i32
  %49 = shl i32 %48, 16
  %50 = or i32 %43, %49
  %51 = load ptr, ptr %5, align 8, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %51, i64 0
  %53 = getelementptr inbounds i8, ptr %52, i64 1
  %54 = load i8, ptr %53, align 1, !tbaa !9
  %55 = zext i8 %54 to i32
  %56 = shl i32 %55, 8
  %57 = or i32 %50, %56
  %58 = load ptr, ptr %5, align 8, !tbaa !5
  %59 = getelementptr inbounds i8, ptr %58, i64 0
  %60 = getelementptr inbounds i8, ptr %59, i64 0
  %61 = load i8, ptr %60, align 1, !tbaa !9
  %62 = zext i8 %61 to i32
  %63 = or i32 %57, %62
  %64 = load ptr, ptr %10, align 8, !tbaa !5
  %65 = getelementptr inbounds i32, ptr %64, i64 0
  %66 = load i32, ptr %65, align 4, !tbaa !10
  %67 = xor i32 %63, %66
  %68 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %67, ptr %68, align 16, !tbaa !10
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i64 4
  %71 = getelementptr inbounds i8, ptr %70, i64 3
  %72 = load i8, ptr %71, align 1, !tbaa !9
  %73 = zext i8 %72 to i32
  %74 = shl i32 %73, 24
  %75 = load ptr, ptr %5, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %75, i64 4
  %77 = getelementptr inbounds i8, ptr %76, i64 2
  %78 = load i8, ptr %77, align 1, !tbaa !9
  %79 = zext i8 %78 to i32
  %80 = shl i32 %79, 16
  %81 = or i32 %74, %80
  %82 = load ptr, ptr %5, align 8, !tbaa !5
  %83 = getelementptr inbounds i8, ptr %82, i64 4
  %84 = getelementptr inbounds i8, ptr %83, i64 1
  %85 = load i8, ptr %84, align 1, !tbaa !9
  %86 = zext i8 %85 to i32
  %87 = shl i32 %86, 8
  %88 = or i32 %81, %87
  %89 = load ptr, ptr %5, align 8, !tbaa !5
  %90 = getelementptr inbounds i8, ptr %89, i64 4
  %91 = getelementptr inbounds i8, ptr %90, i64 0
  %92 = load i8, ptr %91, align 1, !tbaa !9
  %93 = zext i8 %92 to i32
  %94 = or i32 %88, %93
  %95 = load ptr, ptr %10, align 8, !tbaa !5
  %96 = getelementptr inbounds i32, ptr %95, i64 1
  %97 = load i32, ptr %96, align 4, !tbaa !10
  %98 = xor i32 %94, %97
  %99 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %98, ptr %99, align 4, !tbaa !10
  %100 = load ptr, ptr %5, align 8, !tbaa !5
  %101 = getelementptr inbounds i8, ptr %100, i64 8
  %102 = getelementptr inbounds i8, ptr %101, i64 3
  %103 = load i8, ptr %102, align 1, !tbaa !9
  %104 = zext i8 %103 to i32
  %105 = shl i32 %104, 24
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = getelementptr inbounds i8, ptr %106, i64 8
  %108 = getelementptr inbounds i8, ptr %107, i64 2
  %109 = load i8, ptr %108, align 1, !tbaa !9
  %110 = zext i8 %109 to i32
  %111 = shl i32 %110, 16
  %112 = or i32 %105, %111
  %113 = load ptr, ptr %5, align 8, !tbaa !5
  %114 = getelementptr inbounds i8, ptr %113, i64 8
  %115 = getelementptr inbounds i8, ptr %114, i64 1
  %116 = load i8, ptr %115, align 1, !tbaa !9
  %117 = zext i8 %116 to i32
  %118 = shl i32 %117, 8
  %119 = or i32 %112, %118
  %120 = load ptr, ptr %5, align 8, !tbaa !5
  %121 = getelementptr inbounds i8, ptr %120, i64 8
  %122 = getelementptr inbounds i8, ptr %121, i64 0
  %123 = load i8, ptr %122, align 1, !tbaa !9
  %124 = zext i8 %123 to i32
  %125 = or i32 %119, %124
  %126 = load ptr, ptr %10, align 8, !tbaa !5
  %127 = getelementptr inbounds i32, ptr %126, i64 2
  %128 = load i32, ptr %127, align 4, !tbaa !10
  %129 = xor i32 %125, %128
  %130 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %129, ptr %130, align 8, !tbaa !10
  %131 = load ptr, ptr %5, align 8, !tbaa !5
  %132 = getelementptr inbounds i8, ptr %131, i64 12
  %133 = getelementptr inbounds i8, ptr %132, i64 3
  %134 = load i8, ptr %133, align 1, !tbaa !9
  %135 = zext i8 %134 to i32
  %136 = shl i32 %135, 24
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = getelementptr inbounds i8, ptr %137, i64 12
  %139 = getelementptr inbounds i8, ptr %138, i64 2
  %140 = load i8, ptr %139, align 1, !tbaa !9
  %141 = zext i8 %140 to i32
  %142 = shl i32 %141, 16
  %143 = or i32 %136, %142
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 12
  %146 = getelementptr inbounds i8, ptr %145, i64 1
  %147 = load i8, ptr %146, align 1, !tbaa !9
  %148 = zext i8 %147 to i32
  %149 = shl i32 %148, 8
  %150 = or i32 %143, %149
  %151 = load ptr, ptr %5, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 12
  %153 = getelementptr inbounds i8, ptr %152, i64 0
  %154 = load i8, ptr %153, align 1, !tbaa !9
  %155 = zext i8 %154 to i32
  %156 = or i32 %150, %155
  %157 = load ptr, ptr %10, align 8, !tbaa !5
  %158 = getelementptr inbounds i32, ptr %157, i64 3
  %159 = load i32, ptr %158, align 4, !tbaa !10
  %160 = xor i32 %156, %159
  %161 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %160, ptr %161, align 4, !tbaa !10
  %162 = load ptr, ptr %7, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %162, i32 0, i32 0
  %164 = getelementptr inbounds [60 x i32], ptr %163, i64 0, i64 0
  %165 = load ptr, ptr %7, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %165, i32 0, i32 1
  %167 = getelementptr inbounds [4 x i8], ptr %166, i64 0, i64 0
  %168 = load i8, ptr %167, align 16, !tbaa !9
  %169 = zext i8 %168 to i32
  %170 = ashr i32 %169, 2
  %171 = sext i32 %170 to i64
  %172 = getelementptr inbounds i32, ptr %164, i64 %171
  store ptr %172, ptr %10, align 8, !tbaa !5
  %173 = load ptr, ptr %7, align 8, !tbaa !5
  %174 = getelementptr inbounds %struct.aes_decrypt_ctx, ptr %173, i32 0, i32 1
  %175 = getelementptr inbounds [4 x i8], ptr %174, i64 0, i64 0
  %176 = load i8, ptr %175, align 16, !tbaa !9
  %177 = zext i8 %176 to i32
  switch i32 %177, label %2253 [
    i32 224, label %178
    i32 192, label %475
    i32 160, label %772
  ]

178:                                              ; preds = %33
  %179 = load ptr, ptr %10, align 8, !tbaa !5
  %180 = getelementptr inbounds i32, ptr %179, i64 -52
  %181 = getelementptr inbounds i32, ptr %180, i64 0
  %182 = load i32, ptr %181, align 4, !tbaa !10
  %183 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %184 = load i32, ptr %183, align 16, !tbaa !10
  %185 = lshr i32 %184, 0
  %186 = and i32 %185, 255
  %187 = zext i32 %186 to i64
  %188 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %187
  %189 = load i32, ptr %188, align 4, !tbaa !10
  %190 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %191 = load i32, ptr %190, align 4, !tbaa !10
  %192 = lshr i32 %191, 8
  %193 = and i32 %192, 255
  %194 = zext i32 %193 to i64
  %195 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %194
  %196 = load i32, ptr %195, align 4, !tbaa !10
  %197 = xor i32 %189, %196
  %198 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %199 = load i32, ptr %198, align 8, !tbaa !10
  %200 = lshr i32 %199, 16
  %201 = and i32 %200, 255
  %202 = zext i32 %201 to i64
  %203 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %202
  %204 = load i32, ptr %203, align 4, !tbaa !10
  %205 = xor i32 %197, %204
  %206 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %207 = load i32, ptr %206, align 4, !tbaa !10
  %208 = lshr i32 %207, 24
  %209 = and i32 %208, 255
  %210 = zext i32 %209 to i64
  %211 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %210
  %212 = load i32, ptr %211, align 4, !tbaa !10
  %213 = xor i32 %205, %212
  %214 = xor i32 %182, %213
  %215 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %214, ptr %215, align 16, !tbaa !10
  %216 = load ptr, ptr %10, align 8, !tbaa !5
  %217 = getelementptr inbounds i32, ptr %216, i64 -52
  %218 = getelementptr inbounds i32, ptr %217, i64 1
  %219 = load i32, ptr %218, align 4, !tbaa !10
  %220 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %221 = load i32, ptr %220, align 4, !tbaa !10
  %222 = lshr i32 %221, 0
  %223 = and i32 %222, 255
  %224 = zext i32 %223 to i64
  %225 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %224
  %226 = load i32, ptr %225, align 4, !tbaa !10
  %227 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %228 = load i32, ptr %227, align 16, !tbaa !10
  %229 = lshr i32 %228, 8
  %230 = and i32 %229, 255
  %231 = zext i32 %230 to i64
  %232 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %231
  %233 = load i32, ptr %232, align 4, !tbaa !10
  %234 = xor i32 %226, %233
  %235 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %236 = load i32, ptr %235, align 4, !tbaa !10
  %237 = lshr i32 %236, 16
  %238 = and i32 %237, 255
  %239 = zext i32 %238 to i64
  %240 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %239
  %241 = load i32, ptr %240, align 4, !tbaa !10
  %242 = xor i32 %234, %241
  %243 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %244 = load i32, ptr %243, align 8, !tbaa !10
  %245 = lshr i32 %244, 24
  %246 = and i32 %245, 255
  %247 = zext i32 %246 to i64
  %248 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %247
  %249 = load i32, ptr %248, align 4, !tbaa !10
  %250 = xor i32 %242, %249
  %251 = xor i32 %219, %250
  %252 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %251, ptr %252, align 4, !tbaa !10
  %253 = load ptr, ptr %10, align 8, !tbaa !5
  %254 = getelementptr inbounds i32, ptr %253, i64 -52
  %255 = getelementptr inbounds i32, ptr %254, i64 2
  %256 = load i32, ptr %255, align 4, !tbaa !10
  %257 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %258 = load i32, ptr %257, align 8, !tbaa !10
  %259 = lshr i32 %258, 0
  %260 = and i32 %259, 255
  %261 = zext i32 %260 to i64
  %262 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %261
  %263 = load i32, ptr %262, align 4, !tbaa !10
  %264 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %265 = load i32, ptr %264, align 4, !tbaa !10
  %266 = lshr i32 %265, 8
  %267 = and i32 %266, 255
  %268 = zext i32 %267 to i64
  %269 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %268
  %270 = load i32, ptr %269, align 4, !tbaa !10
  %271 = xor i32 %263, %270
  %272 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %273 = load i32, ptr %272, align 16, !tbaa !10
  %274 = lshr i32 %273, 16
  %275 = and i32 %274, 255
  %276 = zext i32 %275 to i64
  %277 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %276
  %278 = load i32, ptr %277, align 4, !tbaa !10
  %279 = xor i32 %271, %278
  %280 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %281 = load i32, ptr %280, align 4, !tbaa !10
  %282 = lshr i32 %281, 24
  %283 = and i32 %282, 255
  %284 = zext i32 %283 to i64
  %285 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %284
  %286 = load i32, ptr %285, align 4, !tbaa !10
  %287 = xor i32 %279, %286
  %288 = xor i32 %256, %287
  %289 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %288, ptr %289, align 8, !tbaa !10
  %290 = load ptr, ptr %10, align 8, !tbaa !5
  %291 = getelementptr inbounds i32, ptr %290, i64 -52
  %292 = getelementptr inbounds i32, ptr %291, i64 3
  %293 = load i32, ptr %292, align 4, !tbaa !10
  %294 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %295 = load i32, ptr %294, align 4, !tbaa !10
  %296 = lshr i32 %295, 0
  %297 = and i32 %296, 255
  %298 = zext i32 %297 to i64
  %299 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %298
  %300 = load i32, ptr %299, align 4, !tbaa !10
  %301 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %302 = load i32, ptr %301, align 8, !tbaa !10
  %303 = lshr i32 %302, 8
  %304 = and i32 %303, 255
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %305
  %307 = load i32, ptr %306, align 4, !tbaa !10
  %308 = xor i32 %300, %307
  %309 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %310 = load i32, ptr %309, align 4, !tbaa !10
  %311 = lshr i32 %310, 16
  %312 = and i32 %311, 255
  %313 = zext i32 %312 to i64
  %314 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %313
  %315 = load i32, ptr %314, align 4, !tbaa !10
  %316 = xor i32 %308, %315
  %317 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %318 = load i32, ptr %317, align 16, !tbaa !10
  %319 = lshr i32 %318, 24
  %320 = and i32 %319, 255
  %321 = zext i32 %320 to i64
  %322 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %321
  %323 = load i32, ptr %322, align 4, !tbaa !10
  %324 = xor i32 %316, %323
  %325 = xor i32 %293, %324
  %326 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %325, ptr %326, align 4, !tbaa !10
  %327 = load ptr, ptr %10, align 8, !tbaa !5
  %328 = getelementptr inbounds i32, ptr %327, i64 -48
  %329 = getelementptr inbounds i32, ptr %328, i64 0
  %330 = load i32, ptr %329, align 4, !tbaa !10
  %331 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %332 = load i32, ptr %331, align 16, !tbaa !10
  %333 = lshr i32 %332, 0
  %334 = and i32 %333, 255
  %335 = zext i32 %334 to i64
  %336 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %335
  %337 = load i32, ptr %336, align 4, !tbaa !10
  %338 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %339 = load i32, ptr %338, align 4, !tbaa !10
  %340 = lshr i32 %339, 8
  %341 = and i32 %340, 255
  %342 = zext i32 %341 to i64
  %343 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %342
  %344 = load i32, ptr %343, align 4, !tbaa !10
  %345 = xor i32 %337, %344
  %346 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %347 = load i32, ptr %346, align 8, !tbaa !10
  %348 = lshr i32 %347, 16
  %349 = and i32 %348, 255
  %350 = zext i32 %349 to i64
  %351 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %350
  %352 = load i32, ptr %351, align 4, !tbaa !10
  %353 = xor i32 %345, %352
  %354 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %355 = load i32, ptr %354, align 4, !tbaa !10
  %356 = lshr i32 %355, 24
  %357 = and i32 %356, 255
  %358 = zext i32 %357 to i64
  %359 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %358
  %360 = load i32, ptr %359, align 4, !tbaa !10
  %361 = xor i32 %353, %360
  %362 = xor i32 %330, %361
  %363 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %362, ptr %363, align 16, !tbaa !10
  %364 = load ptr, ptr %10, align 8, !tbaa !5
  %365 = getelementptr inbounds i32, ptr %364, i64 -48
  %366 = getelementptr inbounds i32, ptr %365, i64 1
  %367 = load i32, ptr %366, align 4, !tbaa !10
  %368 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %369 = load i32, ptr %368, align 4, !tbaa !10
  %370 = lshr i32 %369, 0
  %371 = and i32 %370, 255
  %372 = zext i32 %371 to i64
  %373 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %372
  %374 = load i32, ptr %373, align 4, !tbaa !10
  %375 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %376 = load i32, ptr %375, align 16, !tbaa !10
  %377 = lshr i32 %376, 8
  %378 = and i32 %377, 255
  %379 = zext i32 %378 to i64
  %380 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %379
  %381 = load i32, ptr %380, align 4, !tbaa !10
  %382 = xor i32 %374, %381
  %383 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %384 = load i32, ptr %383, align 4, !tbaa !10
  %385 = lshr i32 %384, 16
  %386 = and i32 %385, 255
  %387 = zext i32 %386 to i64
  %388 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %387
  %389 = load i32, ptr %388, align 4, !tbaa !10
  %390 = xor i32 %382, %389
  %391 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %392 = load i32, ptr %391, align 8, !tbaa !10
  %393 = lshr i32 %392, 24
  %394 = and i32 %393, 255
  %395 = zext i32 %394 to i64
  %396 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %395
  %397 = load i32, ptr %396, align 4, !tbaa !10
  %398 = xor i32 %390, %397
  %399 = xor i32 %367, %398
  %400 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %399, ptr %400, align 4, !tbaa !10
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  %402 = getelementptr inbounds i32, ptr %401, i64 -48
  %403 = getelementptr inbounds i32, ptr %402, i64 2
  %404 = load i32, ptr %403, align 4, !tbaa !10
  %405 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %406 = load i32, ptr %405, align 8, !tbaa !10
  %407 = lshr i32 %406, 0
  %408 = and i32 %407, 255
  %409 = zext i32 %408 to i64
  %410 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %409
  %411 = load i32, ptr %410, align 4, !tbaa !10
  %412 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %413 = load i32, ptr %412, align 4, !tbaa !10
  %414 = lshr i32 %413, 8
  %415 = and i32 %414, 255
  %416 = zext i32 %415 to i64
  %417 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %416
  %418 = load i32, ptr %417, align 4, !tbaa !10
  %419 = xor i32 %411, %418
  %420 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %421 = load i32, ptr %420, align 16, !tbaa !10
  %422 = lshr i32 %421, 16
  %423 = and i32 %422, 255
  %424 = zext i32 %423 to i64
  %425 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %424
  %426 = load i32, ptr %425, align 4, !tbaa !10
  %427 = xor i32 %419, %426
  %428 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %429 = load i32, ptr %428, align 4, !tbaa !10
  %430 = lshr i32 %429, 24
  %431 = and i32 %430, 255
  %432 = zext i32 %431 to i64
  %433 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %432
  %434 = load i32, ptr %433, align 4, !tbaa !10
  %435 = xor i32 %427, %434
  %436 = xor i32 %404, %435
  %437 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %436, ptr %437, align 8, !tbaa !10
  %438 = load ptr, ptr %10, align 8, !tbaa !5
  %439 = getelementptr inbounds i32, ptr %438, i64 -48
  %440 = getelementptr inbounds i32, ptr %439, i64 3
  %441 = load i32, ptr %440, align 4, !tbaa !10
  %442 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %443 = load i32, ptr %442, align 4, !tbaa !10
  %444 = lshr i32 %443, 0
  %445 = and i32 %444, 255
  %446 = zext i32 %445 to i64
  %447 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %446
  %448 = load i32, ptr %447, align 4, !tbaa !10
  %449 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %450 = load i32, ptr %449, align 8, !tbaa !10
  %451 = lshr i32 %450, 8
  %452 = and i32 %451, 255
  %453 = zext i32 %452 to i64
  %454 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %453
  %455 = load i32, ptr %454, align 4, !tbaa !10
  %456 = xor i32 %448, %455
  %457 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %458 = load i32, ptr %457, align 4, !tbaa !10
  %459 = lshr i32 %458, 16
  %460 = and i32 %459, 255
  %461 = zext i32 %460 to i64
  %462 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %461
  %463 = load i32, ptr %462, align 4, !tbaa !10
  %464 = xor i32 %456, %463
  %465 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %466 = load i32, ptr %465, align 16, !tbaa !10
  %467 = lshr i32 %466, 24
  %468 = and i32 %467, 255
  %469 = zext i32 %468 to i64
  %470 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %469
  %471 = load i32, ptr %470, align 4, !tbaa !10
  %472 = xor i32 %464, %471
  %473 = xor i32 %441, %472
  %474 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %473, ptr %474, align 4, !tbaa !10
  br label %475

475:                                              ; preds = %178, %33
  %476 = load ptr, ptr %10, align 8, !tbaa !5
  %477 = getelementptr inbounds i32, ptr %476, i64 -44
  %478 = getelementptr inbounds i32, ptr %477, i64 0
  %479 = load i32, ptr %478, align 4, !tbaa !10
  %480 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %481 = load i32, ptr %480, align 16, !tbaa !10
  %482 = lshr i32 %481, 0
  %483 = and i32 %482, 255
  %484 = zext i32 %483 to i64
  %485 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %484
  %486 = load i32, ptr %485, align 4, !tbaa !10
  %487 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %488 = load i32, ptr %487, align 4, !tbaa !10
  %489 = lshr i32 %488, 8
  %490 = and i32 %489, 255
  %491 = zext i32 %490 to i64
  %492 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %491
  %493 = load i32, ptr %492, align 4, !tbaa !10
  %494 = xor i32 %486, %493
  %495 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %496 = load i32, ptr %495, align 8, !tbaa !10
  %497 = lshr i32 %496, 16
  %498 = and i32 %497, 255
  %499 = zext i32 %498 to i64
  %500 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %499
  %501 = load i32, ptr %500, align 4, !tbaa !10
  %502 = xor i32 %494, %501
  %503 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %504 = load i32, ptr %503, align 4, !tbaa !10
  %505 = lshr i32 %504, 24
  %506 = and i32 %505, 255
  %507 = zext i32 %506 to i64
  %508 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %507
  %509 = load i32, ptr %508, align 4, !tbaa !10
  %510 = xor i32 %502, %509
  %511 = xor i32 %479, %510
  %512 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %511, ptr %512, align 16, !tbaa !10
  %513 = load ptr, ptr %10, align 8, !tbaa !5
  %514 = getelementptr inbounds i32, ptr %513, i64 -44
  %515 = getelementptr inbounds i32, ptr %514, i64 1
  %516 = load i32, ptr %515, align 4, !tbaa !10
  %517 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %518 = load i32, ptr %517, align 4, !tbaa !10
  %519 = lshr i32 %518, 0
  %520 = and i32 %519, 255
  %521 = zext i32 %520 to i64
  %522 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %521
  %523 = load i32, ptr %522, align 4, !tbaa !10
  %524 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %525 = load i32, ptr %524, align 16, !tbaa !10
  %526 = lshr i32 %525, 8
  %527 = and i32 %526, 255
  %528 = zext i32 %527 to i64
  %529 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %528
  %530 = load i32, ptr %529, align 4, !tbaa !10
  %531 = xor i32 %523, %530
  %532 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %533 = load i32, ptr %532, align 4, !tbaa !10
  %534 = lshr i32 %533, 16
  %535 = and i32 %534, 255
  %536 = zext i32 %535 to i64
  %537 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %536
  %538 = load i32, ptr %537, align 4, !tbaa !10
  %539 = xor i32 %531, %538
  %540 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %541 = load i32, ptr %540, align 8, !tbaa !10
  %542 = lshr i32 %541, 24
  %543 = and i32 %542, 255
  %544 = zext i32 %543 to i64
  %545 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %544
  %546 = load i32, ptr %545, align 4, !tbaa !10
  %547 = xor i32 %539, %546
  %548 = xor i32 %516, %547
  %549 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %548, ptr %549, align 4, !tbaa !10
  %550 = load ptr, ptr %10, align 8, !tbaa !5
  %551 = getelementptr inbounds i32, ptr %550, i64 -44
  %552 = getelementptr inbounds i32, ptr %551, i64 2
  %553 = load i32, ptr %552, align 4, !tbaa !10
  %554 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %555 = load i32, ptr %554, align 8, !tbaa !10
  %556 = lshr i32 %555, 0
  %557 = and i32 %556, 255
  %558 = zext i32 %557 to i64
  %559 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %558
  %560 = load i32, ptr %559, align 4, !tbaa !10
  %561 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %562 = load i32, ptr %561, align 4, !tbaa !10
  %563 = lshr i32 %562, 8
  %564 = and i32 %563, 255
  %565 = zext i32 %564 to i64
  %566 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %565
  %567 = load i32, ptr %566, align 4, !tbaa !10
  %568 = xor i32 %560, %567
  %569 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %570 = load i32, ptr %569, align 16, !tbaa !10
  %571 = lshr i32 %570, 16
  %572 = and i32 %571, 255
  %573 = zext i32 %572 to i64
  %574 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %573
  %575 = load i32, ptr %574, align 4, !tbaa !10
  %576 = xor i32 %568, %575
  %577 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %578 = load i32, ptr %577, align 4, !tbaa !10
  %579 = lshr i32 %578, 24
  %580 = and i32 %579, 255
  %581 = zext i32 %580 to i64
  %582 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %581
  %583 = load i32, ptr %582, align 4, !tbaa !10
  %584 = xor i32 %576, %583
  %585 = xor i32 %553, %584
  %586 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %585, ptr %586, align 8, !tbaa !10
  %587 = load ptr, ptr %10, align 8, !tbaa !5
  %588 = getelementptr inbounds i32, ptr %587, i64 -44
  %589 = getelementptr inbounds i32, ptr %588, i64 3
  %590 = load i32, ptr %589, align 4, !tbaa !10
  %591 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %592 = load i32, ptr %591, align 4, !tbaa !10
  %593 = lshr i32 %592, 0
  %594 = and i32 %593, 255
  %595 = zext i32 %594 to i64
  %596 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %595
  %597 = load i32, ptr %596, align 4, !tbaa !10
  %598 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %599 = load i32, ptr %598, align 8, !tbaa !10
  %600 = lshr i32 %599, 8
  %601 = and i32 %600, 255
  %602 = zext i32 %601 to i64
  %603 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %602
  %604 = load i32, ptr %603, align 4, !tbaa !10
  %605 = xor i32 %597, %604
  %606 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %607 = load i32, ptr %606, align 4, !tbaa !10
  %608 = lshr i32 %607, 16
  %609 = and i32 %608, 255
  %610 = zext i32 %609 to i64
  %611 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %610
  %612 = load i32, ptr %611, align 4, !tbaa !10
  %613 = xor i32 %605, %612
  %614 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %615 = load i32, ptr %614, align 16, !tbaa !10
  %616 = lshr i32 %615, 24
  %617 = and i32 %616, 255
  %618 = zext i32 %617 to i64
  %619 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %618
  %620 = load i32, ptr %619, align 4, !tbaa !10
  %621 = xor i32 %613, %620
  %622 = xor i32 %590, %621
  %623 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %622, ptr %623, align 4, !tbaa !10
  %624 = load ptr, ptr %10, align 8, !tbaa !5
  %625 = getelementptr inbounds i32, ptr %624, i64 -40
  %626 = getelementptr inbounds i32, ptr %625, i64 0
  %627 = load i32, ptr %626, align 4, !tbaa !10
  %628 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %629 = load i32, ptr %628, align 16, !tbaa !10
  %630 = lshr i32 %629, 0
  %631 = and i32 %630, 255
  %632 = zext i32 %631 to i64
  %633 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %632
  %634 = load i32, ptr %633, align 4, !tbaa !10
  %635 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %636 = load i32, ptr %635, align 4, !tbaa !10
  %637 = lshr i32 %636, 8
  %638 = and i32 %637, 255
  %639 = zext i32 %638 to i64
  %640 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %639
  %641 = load i32, ptr %640, align 4, !tbaa !10
  %642 = xor i32 %634, %641
  %643 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %644 = load i32, ptr %643, align 8, !tbaa !10
  %645 = lshr i32 %644, 16
  %646 = and i32 %645, 255
  %647 = zext i32 %646 to i64
  %648 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %647
  %649 = load i32, ptr %648, align 4, !tbaa !10
  %650 = xor i32 %642, %649
  %651 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %652 = load i32, ptr %651, align 4, !tbaa !10
  %653 = lshr i32 %652, 24
  %654 = and i32 %653, 255
  %655 = zext i32 %654 to i64
  %656 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %655
  %657 = load i32, ptr %656, align 4, !tbaa !10
  %658 = xor i32 %650, %657
  %659 = xor i32 %627, %658
  %660 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %659, ptr %660, align 16, !tbaa !10
  %661 = load ptr, ptr %10, align 8, !tbaa !5
  %662 = getelementptr inbounds i32, ptr %661, i64 -40
  %663 = getelementptr inbounds i32, ptr %662, i64 1
  %664 = load i32, ptr %663, align 4, !tbaa !10
  %665 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %666 = load i32, ptr %665, align 4, !tbaa !10
  %667 = lshr i32 %666, 0
  %668 = and i32 %667, 255
  %669 = zext i32 %668 to i64
  %670 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %669
  %671 = load i32, ptr %670, align 4, !tbaa !10
  %672 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %673 = load i32, ptr %672, align 16, !tbaa !10
  %674 = lshr i32 %673, 8
  %675 = and i32 %674, 255
  %676 = zext i32 %675 to i64
  %677 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %676
  %678 = load i32, ptr %677, align 4, !tbaa !10
  %679 = xor i32 %671, %678
  %680 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %681 = load i32, ptr %680, align 4, !tbaa !10
  %682 = lshr i32 %681, 16
  %683 = and i32 %682, 255
  %684 = zext i32 %683 to i64
  %685 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %684
  %686 = load i32, ptr %685, align 4, !tbaa !10
  %687 = xor i32 %679, %686
  %688 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %689 = load i32, ptr %688, align 8, !tbaa !10
  %690 = lshr i32 %689, 24
  %691 = and i32 %690, 255
  %692 = zext i32 %691 to i64
  %693 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %692
  %694 = load i32, ptr %693, align 4, !tbaa !10
  %695 = xor i32 %687, %694
  %696 = xor i32 %664, %695
  %697 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %696, ptr %697, align 4, !tbaa !10
  %698 = load ptr, ptr %10, align 8, !tbaa !5
  %699 = getelementptr inbounds i32, ptr %698, i64 -40
  %700 = getelementptr inbounds i32, ptr %699, i64 2
  %701 = load i32, ptr %700, align 4, !tbaa !10
  %702 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %703 = load i32, ptr %702, align 8, !tbaa !10
  %704 = lshr i32 %703, 0
  %705 = and i32 %704, 255
  %706 = zext i32 %705 to i64
  %707 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %706
  %708 = load i32, ptr %707, align 4, !tbaa !10
  %709 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %710 = load i32, ptr %709, align 4, !tbaa !10
  %711 = lshr i32 %710, 8
  %712 = and i32 %711, 255
  %713 = zext i32 %712 to i64
  %714 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %713
  %715 = load i32, ptr %714, align 4, !tbaa !10
  %716 = xor i32 %708, %715
  %717 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %718 = load i32, ptr %717, align 16, !tbaa !10
  %719 = lshr i32 %718, 16
  %720 = and i32 %719, 255
  %721 = zext i32 %720 to i64
  %722 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %721
  %723 = load i32, ptr %722, align 4, !tbaa !10
  %724 = xor i32 %716, %723
  %725 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %726 = load i32, ptr %725, align 4, !tbaa !10
  %727 = lshr i32 %726, 24
  %728 = and i32 %727, 255
  %729 = zext i32 %728 to i64
  %730 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %729
  %731 = load i32, ptr %730, align 4, !tbaa !10
  %732 = xor i32 %724, %731
  %733 = xor i32 %701, %732
  %734 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %733, ptr %734, align 8, !tbaa !10
  %735 = load ptr, ptr %10, align 8, !tbaa !5
  %736 = getelementptr inbounds i32, ptr %735, i64 -40
  %737 = getelementptr inbounds i32, ptr %736, i64 3
  %738 = load i32, ptr %737, align 4, !tbaa !10
  %739 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %740 = load i32, ptr %739, align 4, !tbaa !10
  %741 = lshr i32 %740, 0
  %742 = and i32 %741, 255
  %743 = zext i32 %742 to i64
  %744 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %743
  %745 = load i32, ptr %744, align 4, !tbaa !10
  %746 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %747 = load i32, ptr %746, align 8, !tbaa !10
  %748 = lshr i32 %747, 8
  %749 = and i32 %748, 255
  %750 = zext i32 %749 to i64
  %751 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %750
  %752 = load i32, ptr %751, align 4, !tbaa !10
  %753 = xor i32 %745, %752
  %754 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %755 = load i32, ptr %754, align 4, !tbaa !10
  %756 = lshr i32 %755, 16
  %757 = and i32 %756, 255
  %758 = zext i32 %757 to i64
  %759 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %758
  %760 = load i32, ptr %759, align 4, !tbaa !10
  %761 = xor i32 %753, %760
  %762 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %763 = load i32, ptr %762, align 16, !tbaa !10
  %764 = lshr i32 %763, 24
  %765 = and i32 %764, 255
  %766 = zext i32 %765 to i64
  %767 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %766
  %768 = load i32, ptr %767, align 4, !tbaa !10
  %769 = xor i32 %761, %768
  %770 = xor i32 %738, %769
  %771 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %770, ptr %771, align 4, !tbaa !10
  br label %772

772:                                              ; preds = %475, %33
  %773 = load ptr, ptr %10, align 8, !tbaa !5
  %774 = getelementptr inbounds i32, ptr %773, i64 -36
  %775 = getelementptr inbounds i32, ptr %774, i64 0
  %776 = load i32, ptr %775, align 4, !tbaa !10
  %777 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %778 = load i32, ptr %777, align 16, !tbaa !10
  %779 = lshr i32 %778, 0
  %780 = and i32 %779, 255
  %781 = zext i32 %780 to i64
  %782 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %781
  %783 = load i32, ptr %782, align 4, !tbaa !10
  %784 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %785 = load i32, ptr %784, align 4, !tbaa !10
  %786 = lshr i32 %785, 8
  %787 = and i32 %786, 255
  %788 = zext i32 %787 to i64
  %789 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %788
  %790 = load i32, ptr %789, align 4, !tbaa !10
  %791 = xor i32 %783, %790
  %792 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %793 = load i32, ptr %792, align 8, !tbaa !10
  %794 = lshr i32 %793, 16
  %795 = and i32 %794, 255
  %796 = zext i32 %795 to i64
  %797 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %796
  %798 = load i32, ptr %797, align 4, !tbaa !10
  %799 = xor i32 %791, %798
  %800 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %801 = load i32, ptr %800, align 4, !tbaa !10
  %802 = lshr i32 %801, 24
  %803 = and i32 %802, 255
  %804 = zext i32 %803 to i64
  %805 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %804
  %806 = load i32, ptr %805, align 4, !tbaa !10
  %807 = xor i32 %799, %806
  %808 = xor i32 %776, %807
  %809 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %808, ptr %809, align 16, !tbaa !10
  %810 = load ptr, ptr %10, align 8, !tbaa !5
  %811 = getelementptr inbounds i32, ptr %810, i64 -36
  %812 = getelementptr inbounds i32, ptr %811, i64 1
  %813 = load i32, ptr %812, align 4, !tbaa !10
  %814 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %815 = load i32, ptr %814, align 4, !tbaa !10
  %816 = lshr i32 %815, 0
  %817 = and i32 %816, 255
  %818 = zext i32 %817 to i64
  %819 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %818
  %820 = load i32, ptr %819, align 4, !tbaa !10
  %821 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %822 = load i32, ptr %821, align 16, !tbaa !10
  %823 = lshr i32 %822, 8
  %824 = and i32 %823, 255
  %825 = zext i32 %824 to i64
  %826 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %825
  %827 = load i32, ptr %826, align 4, !tbaa !10
  %828 = xor i32 %820, %827
  %829 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %830 = load i32, ptr %829, align 4, !tbaa !10
  %831 = lshr i32 %830, 16
  %832 = and i32 %831, 255
  %833 = zext i32 %832 to i64
  %834 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %833
  %835 = load i32, ptr %834, align 4, !tbaa !10
  %836 = xor i32 %828, %835
  %837 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %838 = load i32, ptr %837, align 8, !tbaa !10
  %839 = lshr i32 %838, 24
  %840 = and i32 %839, 255
  %841 = zext i32 %840 to i64
  %842 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %841
  %843 = load i32, ptr %842, align 4, !tbaa !10
  %844 = xor i32 %836, %843
  %845 = xor i32 %813, %844
  %846 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %845, ptr %846, align 4, !tbaa !10
  %847 = load ptr, ptr %10, align 8, !tbaa !5
  %848 = getelementptr inbounds i32, ptr %847, i64 -36
  %849 = getelementptr inbounds i32, ptr %848, i64 2
  %850 = load i32, ptr %849, align 4, !tbaa !10
  %851 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %852 = load i32, ptr %851, align 8, !tbaa !10
  %853 = lshr i32 %852, 0
  %854 = and i32 %853, 255
  %855 = zext i32 %854 to i64
  %856 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %855
  %857 = load i32, ptr %856, align 4, !tbaa !10
  %858 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %859 = load i32, ptr %858, align 4, !tbaa !10
  %860 = lshr i32 %859, 8
  %861 = and i32 %860, 255
  %862 = zext i32 %861 to i64
  %863 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %862
  %864 = load i32, ptr %863, align 4, !tbaa !10
  %865 = xor i32 %857, %864
  %866 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %867 = load i32, ptr %866, align 16, !tbaa !10
  %868 = lshr i32 %867, 16
  %869 = and i32 %868, 255
  %870 = zext i32 %869 to i64
  %871 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %870
  %872 = load i32, ptr %871, align 4, !tbaa !10
  %873 = xor i32 %865, %872
  %874 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %875 = load i32, ptr %874, align 4, !tbaa !10
  %876 = lshr i32 %875, 24
  %877 = and i32 %876, 255
  %878 = zext i32 %877 to i64
  %879 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %878
  %880 = load i32, ptr %879, align 4, !tbaa !10
  %881 = xor i32 %873, %880
  %882 = xor i32 %850, %881
  %883 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %882, ptr %883, align 8, !tbaa !10
  %884 = load ptr, ptr %10, align 8, !tbaa !5
  %885 = getelementptr inbounds i32, ptr %884, i64 -36
  %886 = getelementptr inbounds i32, ptr %885, i64 3
  %887 = load i32, ptr %886, align 4, !tbaa !10
  %888 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %889 = load i32, ptr %888, align 4, !tbaa !10
  %890 = lshr i32 %889, 0
  %891 = and i32 %890, 255
  %892 = zext i32 %891 to i64
  %893 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %892
  %894 = load i32, ptr %893, align 4, !tbaa !10
  %895 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %896 = load i32, ptr %895, align 8, !tbaa !10
  %897 = lshr i32 %896, 8
  %898 = and i32 %897, 255
  %899 = zext i32 %898 to i64
  %900 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %899
  %901 = load i32, ptr %900, align 4, !tbaa !10
  %902 = xor i32 %894, %901
  %903 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %904 = load i32, ptr %903, align 4, !tbaa !10
  %905 = lshr i32 %904, 16
  %906 = and i32 %905, 255
  %907 = zext i32 %906 to i64
  %908 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %907
  %909 = load i32, ptr %908, align 4, !tbaa !10
  %910 = xor i32 %902, %909
  %911 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %912 = load i32, ptr %911, align 16, !tbaa !10
  %913 = lshr i32 %912, 24
  %914 = and i32 %913, 255
  %915 = zext i32 %914 to i64
  %916 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %915
  %917 = load i32, ptr %916, align 4, !tbaa !10
  %918 = xor i32 %910, %917
  %919 = xor i32 %887, %918
  %920 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %919, ptr %920, align 4, !tbaa !10
  %921 = load ptr, ptr %10, align 8, !tbaa !5
  %922 = getelementptr inbounds i32, ptr %921, i64 -32
  %923 = getelementptr inbounds i32, ptr %922, i64 0
  %924 = load i32, ptr %923, align 4, !tbaa !10
  %925 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %926 = load i32, ptr %925, align 16, !tbaa !10
  %927 = lshr i32 %926, 0
  %928 = and i32 %927, 255
  %929 = zext i32 %928 to i64
  %930 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %929
  %931 = load i32, ptr %930, align 4, !tbaa !10
  %932 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %933 = load i32, ptr %932, align 4, !tbaa !10
  %934 = lshr i32 %933, 8
  %935 = and i32 %934, 255
  %936 = zext i32 %935 to i64
  %937 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %936
  %938 = load i32, ptr %937, align 4, !tbaa !10
  %939 = xor i32 %931, %938
  %940 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %941 = load i32, ptr %940, align 8, !tbaa !10
  %942 = lshr i32 %941, 16
  %943 = and i32 %942, 255
  %944 = zext i32 %943 to i64
  %945 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %944
  %946 = load i32, ptr %945, align 4, !tbaa !10
  %947 = xor i32 %939, %946
  %948 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %949 = load i32, ptr %948, align 4, !tbaa !10
  %950 = lshr i32 %949, 24
  %951 = and i32 %950, 255
  %952 = zext i32 %951 to i64
  %953 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %952
  %954 = load i32, ptr %953, align 4, !tbaa !10
  %955 = xor i32 %947, %954
  %956 = xor i32 %924, %955
  %957 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %956, ptr %957, align 16, !tbaa !10
  %958 = load ptr, ptr %10, align 8, !tbaa !5
  %959 = getelementptr inbounds i32, ptr %958, i64 -32
  %960 = getelementptr inbounds i32, ptr %959, i64 1
  %961 = load i32, ptr %960, align 4, !tbaa !10
  %962 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %963 = load i32, ptr %962, align 4, !tbaa !10
  %964 = lshr i32 %963, 0
  %965 = and i32 %964, 255
  %966 = zext i32 %965 to i64
  %967 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %966
  %968 = load i32, ptr %967, align 4, !tbaa !10
  %969 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %970 = load i32, ptr %969, align 16, !tbaa !10
  %971 = lshr i32 %970, 8
  %972 = and i32 %971, 255
  %973 = zext i32 %972 to i64
  %974 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %973
  %975 = load i32, ptr %974, align 4, !tbaa !10
  %976 = xor i32 %968, %975
  %977 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %978 = load i32, ptr %977, align 4, !tbaa !10
  %979 = lshr i32 %978, 16
  %980 = and i32 %979, 255
  %981 = zext i32 %980 to i64
  %982 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %981
  %983 = load i32, ptr %982, align 4, !tbaa !10
  %984 = xor i32 %976, %983
  %985 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %986 = load i32, ptr %985, align 8, !tbaa !10
  %987 = lshr i32 %986, 24
  %988 = and i32 %987, 255
  %989 = zext i32 %988 to i64
  %990 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %989
  %991 = load i32, ptr %990, align 4, !tbaa !10
  %992 = xor i32 %984, %991
  %993 = xor i32 %961, %992
  %994 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %993, ptr %994, align 4, !tbaa !10
  %995 = load ptr, ptr %10, align 8, !tbaa !5
  %996 = getelementptr inbounds i32, ptr %995, i64 -32
  %997 = getelementptr inbounds i32, ptr %996, i64 2
  %998 = load i32, ptr %997, align 4, !tbaa !10
  %999 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1000 = load i32, ptr %999, align 8, !tbaa !10
  %1001 = lshr i32 %1000, 0
  %1002 = and i32 %1001, 255
  %1003 = zext i32 %1002 to i64
  %1004 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1003
  %1005 = load i32, ptr %1004, align 4, !tbaa !10
  %1006 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1007 = load i32, ptr %1006, align 4, !tbaa !10
  %1008 = lshr i32 %1007, 8
  %1009 = and i32 %1008, 255
  %1010 = zext i32 %1009 to i64
  %1011 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1010
  %1012 = load i32, ptr %1011, align 4, !tbaa !10
  %1013 = xor i32 %1005, %1012
  %1014 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1015 = load i32, ptr %1014, align 16, !tbaa !10
  %1016 = lshr i32 %1015, 16
  %1017 = and i32 %1016, 255
  %1018 = zext i32 %1017 to i64
  %1019 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1018
  %1020 = load i32, ptr %1019, align 4, !tbaa !10
  %1021 = xor i32 %1013, %1020
  %1022 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1023 = load i32, ptr %1022, align 4, !tbaa !10
  %1024 = lshr i32 %1023, 24
  %1025 = and i32 %1024, 255
  %1026 = zext i32 %1025 to i64
  %1027 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1026
  %1028 = load i32, ptr %1027, align 4, !tbaa !10
  %1029 = xor i32 %1021, %1028
  %1030 = xor i32 %998, %1029
  %1031 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %1030, ptr %1031, align 8, !tbaa !10
  %1032 = load ptr, ptr %10, align 8, !tbaa !5
  %1033 = getelementptr inbounds i32, ptr %1032, i64 -32
  %1034 = getelementptr inbounds i32, ptr %1033, i64 3
  %1035 = load i32, ptr %1034, align 4, !tbaa !10
  %1036 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1037 = load i32, ptr %1036, align 4, !tbaa !10
  %1038 = lshr i32 %1037, 0
  %1039 = and i32 %1038, 255
  %1040 = zext i32 %1039 to i64
  %1041 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1040
  %1042 = load i32, ptr %1041, align 4, !tbaa !10
  %1043 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1044 = load i32, ptr %1043, align 8, !tbaa !10
  %1045 = lshr i32 %1044, 8
  %1046 = and i32 %1045, 255
  %1047 = zext i32 %1046 to i64
  %1048 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1047
  %1049 = load i32, ptr %1048, align 4, !tbaa !10
  %1050 = xor i32 %1042, %1049
  %1051 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1052 = load i32, ptr %1051, align 4, !tbaa !10
  %1053 = lshr i32 %1052, 16
  %1054 = and i32 %1053, 255
  %1055 = zext i32 %1054 to i64
  %1056 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1055
  %1057 = load i32, ptr %1056, align 4, !tbaa !10
  %1058 = xor i32 %1050, %1057
  %1059 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1060 = load i32, ptr %1059, align 16, !tbaa !10
  %1061 = lshr i32 %1060, 24
  %1062 = and i32 %1061, 255
  %1063 = zext i32 %1062 to i64
  %1064 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1063
  %1065 = load i32, ptr %1064, align 4, !tbaa !10
  %1066 = xor i32 %1058, %1065
  %1067 = xor i32 %1035, %1066
  %1068 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %1067, ptr %1068, align 4, !tbaa !10
  %1069 = load ptr, ptr %10, align 8, !tbaa !5
  %1070 = getelementptr inbounds i32, ptr %1069, i64 -28
  %1071 = getelementptr inbounds i32, ptr %1070, i64 0
  %1072 = load i32, ptr %1071, align 4, !tbaa !10
  %1073 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1074 = load i32, ptr %1073, align 16, !tbaa !10
  %1075 = lshr i32 %1074, 0
  %1076 = and i32 %1075, 255
  %1077 = zext i32 %1076 to i64
  %1078 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1077
  %1079 = load i32, ptr %1078, align 4, !tbaa !10
  %1080 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1081 = load i32, ptr %1080, align 4, !tbaa !10
  %1082 = lshr i32 %1081, 8
  %1083 = and i32 %1082, 255
  %1084 = zext i32 %1083 to i64
  %1085 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1084
  %1086 = load i32, ptr %1085, align 4, !tbaa !10
  %1087 = xor i32 %1079, %1086
  %1088 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1089 = load i32, ptr %1088, align 8, !tbaa !10
  %1090 = lshr i32 %1089, 16
  %1091 = and i32 %1090, 255
  %1092 = zext i32 %1091 to i64
  %1093 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1092
  %1094 = load i32, ptr %1093, align 4, !tbaa !10
  %1095 = xor i32 %1087, %1094
  %1096 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1097 = load i32, ptr %1096, align 4, !tbaa !10
  %1098 = lshr i32 %1097, 24
  %1099 = and i32 %1098, 255
  %1100 = zext i32 %1099 to i64
  %1101 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1100
  %1102 = load i32, ptr %1101, align 4, !tbaa !10
  %1103 = xor i32 %1095, %1102
  %1104 = xor i32 %1072, %1103
  %1105 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %1104, ptr %1105, align 16, !tbaa !10
  %1106 = load ptr, ptr %10, align 8, !tbaa !5
  %1107 = getelementptr inbounds i32, ptr %1106, i64 -28
  %1108 = getelementptr inbounds i32, ptr %1107, i64 1
  %1109 = load i32, ptr %1108, align 4, !tbaa !10
  %1110 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1111 = load i32, ptr %1110, align 4, !tbaa !10
  %1112 = lshr i32 %1111, 0
  %1113 = and i32 %1112, 255
  %1114 = zext i32 %1113 to i64
  %1115 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1114
  %1116 = load i32, ptr %1115, align 4, !tbaa !10
  %1117 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1118 = load i32, ptr %1117, align 16, !tbaa !10
  %1119 = lshr i32 %1118, 8
  %1120 = and i32 %1119, 255
  %1121 = zext i32 %1120 to i64
  %1122 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1121
  %1123 = load i32, ptr %1122, align 4, !tbaa !10
  %1124 = xor i32 %1116, %1123
  %1125 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1126 = load i32, ptr %1125, align 4, !tbaa !10
  %1127 = lshr i32 %1126, 16
  %1128 = and i32 %1127, 255
  %1129 = zext i32 %1128 to i64
  %1130 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1129
  %1131 = load i32, ptr %1130, align 4, !tbaa !10
  %1132 = xor i32 %1124, %1131
  %1133 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1134 = load i32, ptr %1133, align 8, !tbaa !10
  %1135 = lshr i32 %1134, 24
  %1136 = and i32 %1135, 255
  %1137 = zext i32 %1136 to i64
  %1138 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1137
  %1139 = load i32, ptr %1138, align 4, !tbaa !10
  %1140 = xor i32 %1132, %1139
  %1141 = xor i32 %1109, %1140
  %1142 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %1141, ptr %1142, align 4, !tbaa !10
  %1143 = load ptr, ptr %10, align 8, !tbaa !5
  %1144 = getelementptr inbounds i32, ptr %1143, i64 -28
  %1145 = getelementptr inbounds i32, ptr %1144, i64 2
  %1146 = load i32, ptr %1145, align 4, !tbaa !10
  %1147 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1148 = load i32, ptr %1147, align 8, !tbaa !10
  %1149 = lshr i32 %1148, 0
  %1150 = and i32 %1149, 255
  %1151 = zext i32 %1150 to i64
  %1152 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1151
  %1153 = load i32, ptr %1152, align 4, !tbaa !10
  %1154 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1155 = load i32, ptr %1154, align 4, !tbaa !10
  %1156 = lshr i32 %1155, 8
  %1157 = and i32 %1156, 255
  %1158 = zext i32 %1157 to i64
  %1159 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1158
  %1160 = load i32, ptr %1159, align 4, !tbaa !10
  %1161 = xor i32 %1153, %1160
  %1162 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1163 = load i32, ptr %1162, align 16, !tbaa !10
  %1164 = lshr i32 %1163, 16
  %1165 = and i32 %1164, 255
  %1166 = zext i32 %1165 to i64
  %1167 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1166
  %1168 = load i32, ptr %1167, align 4, !tbaa !10
  %1169 = xor i32 %1161, %1168
  %1170 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1171 = load i32, ptr %1170, align 4, !tbaa !10
  %1172 = lshr i32 %1171, 24
  %1173 = and i32 %1172, 255
  %1174 = zext i32 %1173 to i64
  %1175 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1174
  %1176 = load i32, ptr %1175, align 4, !tbaa !10
  %1177 = xor i32 %1169, %1176
  %1178 = xor i32 %1146, %1177
  %1179 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %1178, ptr %1179, align 8, !tbaa !10
  %1180 = load ptr, ptr %10, align 8, !tbaa !5
  %1181 = getelementptr inbounds i32, ptr %1180, i64 -28
  %1182 = getelementptr inbounds i32, ptr %1181, i64 3
  %1183 = load i32, ptr %1182, align 4, !tbaa !10
  %1184 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1185 = load i32, ptr %1184, align 4, !tbaa !10
  %1186 = lshr i32 %1185, 0
  %1187 = and i32 %1186, 255
  %1188 = zext i32 %1187 to i64
  %1189 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1188
  %1190 = load i32, ptr %1189, align 4, !tbaa !10
  %1191 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1192 = load i32, ptr %1191, align 8, !tbaa !10
  %1193 = lshr i32 %1192, 8
  %1194 = and i32 %1193, 255
  %1195 = zext i32 %1194 to i64
  %1196 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1195
  %1197 = load i32, ptr %1196, align 4, !tbaa !10
  %1198 = xor i32 %1190, %1197
  %1199 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1200 = load i32, ptr %1199, align 4, !tbaa !10
  %1201 = lshr i32 %1200, 16
  %1202 = and i32 %1201, 255
  %1203 = zext i32 %1202 to i64
  %1204 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1203
  %1205 = load i32, ptr %1204, align 4, !tbaa !10
  %1206 = xor i32 %1198, %1205
  %1207 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1208 = load i32, ptr %1207, align 16, !tbaa !10
  %1209 = lshr i32 %1208, 24
  %1210 = and i32 %1209, 255
  %1211 = zext i32 %1210 to i64
  %1212 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1211
  %1213 = load i32, ptr %1212, align 4, !tbaa !10
  %1214 = xor i32 %1206, %1213
  %1215 = xor i32 %1183, %1214
  %1216 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %1215, ptr %1216, align 4, !tbaa !10
  %1217 = load ptr, ptr %10, align 8, !tbaa !5
  %1218 = getelementptr inbounds i32, ptr %1217, i64 -24
  %1219 = getelementptr inbounds i32, ptr %1218, i64 0
  %1220 = load i32, ptr %1219, align 4, !tbaa !10
  %1221 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1222 = load i32, ptr %1221, align 16, !tbaa !10
  %1223 = lshr i32 %1222, 0
  %1224 = and i32 %1223, 255
  %1225 = zext i32 %1224 to i64
  %1226 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1225
  %1227 = load i32, ptr %1226, align 4, !tbaa !10
  %1228 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1229 = load i32, ptr %1228, align 4, !tbaa !10
  %1230 = lshr i32 %1229, 8
  %1231 = and i32 %1230, 255
  %1232 = zext i32 %1231 to i64
  %1233 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1232
  %1234 = load i32, ptr %1233, align 4, !tbaa !10
  %1235 = xor i32 %1227, %1234
  %1236 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1237 = load i32, ptr %1236, align 8, !tbaa !10
  %1238 = lshr i32 %1237, 16
  %1239 = and i32 %1238, 255
  %1240 = zext i32 %1239 to i64
  %1241 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1240
  %1242 = load i32, ptr %1241, align 4, !tbaa !10
  %1243 = xor i32 %1235, %1242
  %1244 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1245 = load i32, ptr %1244, align 4, !tbaa !10
  %1246 = lshr i32 %1245, 24
  %1247 = and i32 %1246, 255
  %1248 = zext i32 %1247 to i64
  %1249 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1248
  %1250 = load i32, ptr %1249, align 4, !tbaa !10
  %1251 = xor i32 %1243, %1250
  %1252 = xor i32 %1220, %1251
  %1253 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %1252, ptr %1253, align 16, !tbaa !10
  %1254 = load ptr, ptr %10, align 8, !tbaa !5
  %1255 = getelementptr inbounds i32, ptr %1254, i64 -24
  %1256 = getelementptr inbounds i32, ptr %1255, i64 1
  %1257 = load i32, ptr %1256, align 4, !tbaa !10
  %1258 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1259 = load i32, ptr %1258, align 4, !tbaa !10
  %1260 = lshr i32 %1259, 0
  %1261 = and i32 %1260, 255
  %1262 = zext i32 %1261 to i64
  %1263 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1262
  %1264 = load i32, ptr %1263, align 4, !tbaa !10
  %1265 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1266 = load i32, ptr %1265, align 16, !tbaa !10
  %1267 = lshr i32 %1266, 8
  %1268 = and i32 %1267, 255
  %1269 = zext i32 %1268 to i64
  %1270 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1269
  %1271 = load i32, ptr %1270, align 4, !tbaa !10
  %1272 = xor i32 %1264, %1271
  %1273 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1274 = load i32, ptr %1273, align 4, !tbaa !10
  %1275 = lshr i32 %1274, 16
  %1276 = and i32 %1275, 255
  %1277 = zext i32 %1276 to i64
  %1278 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1277
  %1279 = load i32, ptr %1278, align 4, !tbaa !10
  %1280 = xor i32 %1272, %1279
  %1281 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1282 = load i32, ptr %1281, align 8, !tbaa !10
  %1283 = lshr i32 %1282, 24
  %1284 = and i32 %1283, 255
  %1285 = zext i32 %1284 to i64
  %1286 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1285
  %1287 = load i32, ptr %1286, align 4, !tbaa !10
  %1288 = xor i32 %1280, %1287
  %1289 = xor i32 %1257, %1288
  %1290 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %1289, ptr %1290, align 4, !tbaa !10
  %1291 = load ptr, ptr %10, align 8, !tbaa !5
  %1292 = getelementptr inbounds i32, ptr %1291, i64 -24
  %1293 = getelementptr inbounds i32, ptr %1292, i64 2
  %1294 = load i32, ptr %1293, align 4, !tbaa !10
  %1295 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1296 = load i32, ptr %1295, align 8, !tbaa !10
  %1297 = lshr i32 %1296, 0
  %1298 = and i32 %1297, 255
  %1299 = zext i32 %1298 to i64
  %1300 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1299
  %1301 = load i32, ptr %1300, align 4, !tbaa !10
  %1302 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1303 = load i32, ptr %1302, align 4, !tbaa !10
  %1304 = lshr i32 %1303, 8
  %1305 = and i32 %1304, 255
  %1306 = zext i32 %1305 to i64
  %1307 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1306
  %1308 = load i32, ptr %1307, align 4, !tbaa !10
  %1309 = xor i32 %1301, %1308
  %1310 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1311 = load i32, ptr %1310, align 16, !tbaa !10
  %1312 = lshr i32 %1311, 16
  %1313 = and i32 %1312, 255
  %1314 = zext i32 %1313 to i64
  %1315 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1314
  %1316 = load i32, ptr %1315, align 4, !tbaa !10
  %1317 = xor i32 %1309, %1316
  %1318 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1319 = load i32, ptr %1318, align 4, !tbaa !10
  %1320 = lshr i32 %1319, 24
  %1321 = and i32 %1320, 255
  %1322 = zext i32 %1321 to i64
  %1323 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1322
  %1324 = load i32, ptr %1323, align 4, !tbaa !10
  %1325 = xor i32 %1317, %1324
  %1326 = xor i32 %1294, %1325
  %1327 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %1326, ptr %1327, align 8, !tbaa !10
  %1328 = load ptr, ptr %10, align 8, !tbaa !5
  %1329 = getelementptr inbounds i32, ptr %1328, i64 -24
  %1330 = getelementptr inbounds i32, ptr %1329, i64 3
  %1331 = load i32, ptr %1330, align 4, !tbaa !10
  %1332 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1333 = load i32, ptr %1332, align 4, !tbaa !10
  %1334 = lshr i32 %1333, 0
  %1335 = and i32 %1334, 255
  %1336 = zext i32 %1335 to i64
  %1337 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1336
  %1338 = load i32, ptr %1337, align 4, !tbaa !10
  %1339 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1340 = load i32, ptr %1339, align 8, !tbaa !10
  %1341 = lshr i32 %1340, 8
  %1342 = and i32 %1341, 255
  %1343 = zext i32 %1342 to i64
  %1344 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1343
  %1345 = load i32, ptr %1344, align 4, !tbaa !10
  %1346 = xor i32 %1338, %1345
  %1347 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1348 = load i32, ptr %1347, align 4, !tbaa !10
  %1349 = lshr i32 %1348, 16
  %1350 = and i32 %1349, 255
  %1351 = zext i32 %1350 to i64
  %1352 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1351
  %1353 = load i32, ptr %1352, align 4, !tbaa !10
  %1354 = xor i32 %1346, %1353
  %1355 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1356 = load i32, ptr %1355, align 16, !tbaa !10
  %1357 = lshr i32 %1356, 24
  %1358 = and i32 %1357, 255
  %1359 = zext i32 %1358 to i64
  %1360 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1359
  %1361 = load i32, ptr %1360, align 4, !tbaa !10
  %1362 = xor i32 %1354, %1361
  %1363 = xor i32 %1331, %1362
  %1364 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %1363, ptr %1364, align 4, !tbaa !10
  %1365 = load ptr, ptr %10, align 8, !tbaa !5
  %1366 = getelementptr inbounds i32, ptr %1365, i64 -20
  %1367 = getelementptr inbounds i32, ptr %1366, i64 0
  %1368 = load i32, ptr %1367, align 4, !tbaa !10
  %1369 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1370 = load i32, ptr %1369, align 16, !tbaa !10
  %1371 = lshr i32 %1370, 0
  %1372 = and i32 %1371, 255
  %1373 = zext i32 %1372 to i64
  %1374 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1373
  %1375 = load i32, ptr %1374, align 4, !tbaa !10
  %1376 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1377 = load i32, ptr %1376, align 4, !tbaa !10
  %1378 = lshr i32 %1377, 8
  %1379 = and i32 %1378, 255
  %1380 = zext i32 %1379 to i64
  %1381 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1380
  %1382 = load i32, ptr %1381, align 4, !tbaa !10
  %1383 = xor i32 %1375, %1382
  %1384 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1385 = load i32, ptr %1384, align 8, !tbaa !10
  %1386 = lshr i32 %1385, 16
  %1387 = and i32 %1386, 255
  %1388 = zext i32 %1387 to i64
  %1389 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1388
  %1390 = load i32, ptr %1389, align 4, !tbaa !10
  %1391 = xor i32 %1383, %1390
  %1392 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1393 = load i32, ptr %1392, align 4, !tbaa !10
  %1394 = lshr i32 %1393, 24
  %1395 = and i32 %1394, 255
  %1396 = zext i32 %1395 to i64
  %1397 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1396
  %1398 = load i32, ptr %1397, align 4, !tbaa !10
  %1399 = xor i32 %1391, %1398
  %1400 = xor i32 %1368, %1399
  %1401 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %1400, ptr %1401, align 16, !tbaa !10
  %1402 = load ptr, ptr %10, align 8, !tbaa !5
  %1403 = getelementptr inbounds i32, ptr %1402, i64 -20
  %1404 = getelementptr inbounds i32, ptr %1403, i64 1
  %1405 = load i32, ptr %1404, align 4, !tbaa !10
  %1406 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1407 = load i32, ptr %1406, align 4, !tbaa !10
  %1408 = lshr i32 %1407, 0
  %1409 = and i32 %1408, 255
  %1410 = zext i32 %1409 to i64
  %1411 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1410
  %1412 = load i32, ptr %1411, align 4, !tbaa !10
  %1413 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1414 = load i32, ptr %1413, align 16, !tbaa !10
  %1415 = lshr i32 %1414, 8
  %1416 = and i32 %1415, 255
  %1417 = zext i32 %1416 to i64
  %1418 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1417
  %1419 = load i32, ptr %1418, align 4, !tbaa !10
  %1420 = xor i32 %1412, %1419
  %1421 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1422 = load i32, ptr %1421, align 4, !tbaa !10
  %1423 = lshr i32 %1422, 16
  %1424 = and i32 %1423, 255
  %1425 = zext i32 %1424 to i64
  %1426 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1425
  %1427 = load i32, ptr %1426, align 4, !tbaa !10
  %1428 = xor i32 %1420, %1427
  %1429 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1430 = load i32, ptr %1429, align 8, !tbaa !10
  %1431 = lshr i32 %1430, 24
  %1432 = and i32 %1431, 255
  %1433 = zext i32 %1432 to i64
  %1434 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1433
  %1435 = load i32, ptr %1434, align 4, !tbaa !10
  %1436 = xor i32 %1428, %1435
  %1437 = xor i32 %1405, %1436
  %1438 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %1437, ptr %1438, align 4, !tbaa !10
  %1439 = load ptr, ptr %10, align 8, !tbaa !5
  %1440 = getelementptr inbounds i32, ptr %1439, i64 -20
  %1441 = getelementptr inbounds i32, ptr %1440, i64 2
  %1442 = load i32, ptr %1441, align 4, !tbaa !10
  %1443 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1444 = load i32, ptr %1443, align 8, !tbaa !10
  %1445 = lshr i32 %1444, 0
  %1446 = and i32 %1445, 255
  %1447 = zext i32 %1446 to i64
  %1448 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1447
  %1449 = load i32, ptr %1448, align 4, !tbaa !10
  %1450 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1451 = load i32, ptr %1450, align 4, !tbaa !10
  %1452 = lshr i32 %1451, 8
  %1453 = and i32 %1452, 255
  %1454 = zext i32 %1453 to i64
  %1455 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1454
  %1456 = load i32, ptr %1455, align 4, !tbaa !10
  %1457 = xor i32 %1449, %1456
  %1458 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1459 = load i32, ptr %1458, align 16, !tbaa !10
  %1460 = lshr i32 %1459, 16
  %1461 = and i32 %1460, 255
  %1462 = zext i32 %1461 to i64
  %1463 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1462
  %1464 = load i32, ptr %1463, align 4, !tbaa !10
  %1465 = xor i32 %1457, %1464
  %1466 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1467 = load i32, ptr %1466, align 4, !tbaa !10
  %1468 = lshr i32 %1467, 24
  %1469 = and i32 %1468, 255
  %1470 = zext i32 %1469 to i64
  %1471 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1470
  %1472 = load i32, ptr %1471, align 4, !tbaa !10
  %1473 = xor i32 %1465, %1472
  %1474 = xor i32 %1442, %1473
  %1475 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %1474, ptr %1475, align 8, !tbaa !10
  %1476 = load ptr, ptr %10, align 8, !tbaa !5
  %1477 = getelementptr inbounds i32, ptr %1476, i64 -20
  %1478 = getelementptr inbounds i32, ptr %1477, i64 3
  %1479 = load i32, ptr %1478, align 4, !tbaa !10
  %1480 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1481 = load i32, ptr %1480, align 4, !tbaa !10
  %1482 = lshr i32 %1481, 0
  %1483 = and i32 %1482, 255
  %1484 = zext i32 %1483 to i64
  %1485 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1484
  %1486 = load i32, ptr %1485, align 4, !tbaa !10
  %1487 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1488 = load i32, ptr %1487, align 8, !tbaa !10
  %1489 = lshr i32 %1488, 8
  %1490 = and i32 %1489, 255
  %1491 = zext i32 %1490 to i64
  %1492 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1491
  %1493 = load i32, ptr %1492, align 4, !tbaa !10
  %1494 = xor i32 %1486, %1493
  %1495 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1496 = load i32, ptr %1495, align 4, !tbaa !10
  %1497 = lshr i32 %1496, 16
  %1498 = and i32 %1497, 255
  %1499 = zext i32 %1498 to i64
  %1500 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1499
  %1501 = load i32, ptr %1500, align 4, !tbaa !10
  %1502 = xor i32 %1494, %1501
  %1503 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1504 = load i32, ptr %1503, align 16, !tbaa !10
  %1505 = lshr i32 %1504, 24
  %1506 = and i32 %1505, 255
  %1507 = zext i32 %1506 to i64
  %1508 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1507
  %1509 = load i32, ptr %1508, align 4, !tbaa !10
  %1510 = xor i32 %1502, %1509
  %1511 = xor i32 %1479, %1510
  %1512 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %1511, ptr %1512, align 4, !tbaa !10
  %1513 = load ptr, ptr %10, align 8, !tbaa !5
  %1514 = getelementptr inbounds i32, ptr %1513, i64 -16
  %1515 = getelementptr inbounds i32, ptr %1514, i64 0
  %1516 = load i32, ptr %1515, align 4, !tbaa !10
  %1517 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1518 = load i32, ptr %1517, align 16, !tbaa !10
  %1519 = lshr i32 %1518, 0
  %1520 = and i32 %1519, 255
  %1521 = zext i32 %1520 to i64
  %1522 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1521
  %1523 = load i32, ptr %1522, align 4, !tbaa !10
  %1524 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1525 = load i32, ptr %1524, align 4, !tbaa !10
  %1526 = lshr i32 %1525, 8
  %1527 = and i32 %1526, 255
  %1528 = zext i32 %1527 to i64
  %1529 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1528
  %1530 = load i32, ptr %1529, align 4, !tbaa !10
  %1531 = xor i32 %1523, %1530
  %1532 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1533 = load i32, ptr %1532, align 8, !tbaa !10
  %1534 = lshr i32 %1533, 16
  %1535 = and i32 %1534, 255
  %1536 = zext i32 %1535 to i64
  %1537 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1536
  %1538 = load i32, ptr %1537, align 4, !tbaa !10
  %1539 = xor i32 %1531, %1538
  %1540 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1541 = load i32, ptr %1540, align 4, !tbaa !10
  %1542 = lshr i32 %1541, 24
  %1543 = and i32 %1542, 255
  %1544 = zext i32 %1543 to i64
  %1545 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1544
  %1546 = load i32, ptr %1545, align 4, !tbaa !10
  %1547 = xor i32 %1539, %1546
  %1548 = xor i32 %1516, %1547
  %1549 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %1548, ptr %1549, align 16, !tbaa !10
  %1550 = load ptr, ptr %10, align 8, !tbaa !5
  %1551 = getelementptr inbounds i32, ptr %1550, i64 -16
  %1552 = getelementptr inbounds i32, ptr %1551, i64 1
  %1553 = load i32, ptr %1552, align 4, !tbaa !10
  %1554 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1555 = load i32, ptr %1554, align 4, !tbaa !10
  %1556 = lshr i32 %1555, 0
  %1557 = and i32 %1556, 255
  %1558 = zext i32 %1557 to i64
  %1559 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1558
  %1560 = load i32, ptr %1559, align 4, !tbaa !10
  %1561 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1562 = load i32, ptr %1561, align 16, !tbaa !10
  %1563 = lshr i32 %1562, 8
  %1564 = and i32 %1563, 255
  %1565 = zext i32 %1564 to i64
  %1566 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1565
  %1567 = load i32, ptr %1566, align 4, !tbaa !10
  %1568 = xor i32 %1560, %1567
  %1569 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1570 = load i32, ptr %1569, align 4, !tbaa !10
  %1571 = lshr i32 %1570, 16
  %1572 = and i32 %1571, 255
  %1573 = zext i32 %1572 to i64
  %1574 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1573
  %1575 = load i32, ptr %1574, align 4, !tbaa !10
  %1576 = xor i32 %1568, %1575
  %1577 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1578 = load i32, ptr %1577, align 8, !tbaa !10
  %1579 = lshr i32 %1578, 24
  %1580 = and i32 %1579, 255
  %1581 = zext i32 %1580 to i64
  %1582 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1581
  %1583 = load i32, ptr %1582, align 4, !tbaa !10
  %1584 = xor i32 %1576, %1583
  %1585 = xor i32 %1553, %1584
  %1586 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %1585, ptr %1586, align 4, !tbaa !10
  %1587 = load ptr, ptr %10, align 8, !tbaa !5
  %1588 = getelementptr inbounds i32, ptr %1587, i64 -16
  %1589 = getelementptr inbounds i32, ptr %1588, i64 2
  %1590 = load i32, ptr %1589, align 4, !tbaa !10
  %1591 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1592 = load i32, ptr %1591, align 8, !tbaa !10
  %1593 = lshr i32 %1592, 0
  %1594 = and i32 %1593, 255
  %1595 = zext i32 %1594 to i64
  %1596 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1595
  %1597 = load i32, ptr %1596, align 4, !tbaa !10
  %1598 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1599 = load i32, ptr %1598, align 4, !tbaa !10
  %1600 = lshr i32 %1599, 8
  %1601 = and i32 %1600, 255
  %1602 = zext i32 %1601 to i64
  %1603 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1602
  %1604 = load i32, ptr %1603, align 4, !tbaa !10
  %1605 = xor i32 %1597, %1604
  %1606 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1607 = load i32, ptr %1606, align 16, !tbaa !10
  %1608 = lshr i32 %1607, 16
  %1609 = and i32 %1608, 255
  %1610 = zext i32 %1609 to i64
  %1611 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1610
  %1612 = load i32, ptr %1611, align 4, !tbaa !10
  %1613 = xor i32 %1605, %1612
  %1614 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1615 = load i32, ptr %1614, align 4, !tbaa !10
  %1616 = lshr i32 %1615, 24
  %1617 = and i32 %1616, 255
  %1618 = zext i32 %1617 to i64
  %1619 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1618
  %1620 = load i32, ptr %1619, align 4, !tbaa !10
  %1621 = xor i32 %1613, %1620
  %1622 = xor i32 %1590, %1621
  %1623 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %1622, ptr %1623, align 8, !tbaa !10
  %1624 = load ptr, ptr %10, align 8, !tbaa !5
  %1625 = getelementptr inbounds i32, ptr %1624, i64 -16
  %1626 = getelementptr inbounds i32, ptr %1625, i64 3
  %1627 = load i32, ptr %1626, align 4, !tbaa !10
  %1628 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1629 = load i32, ptr %1628, align 4, !tbaa !10
  %1630 = lshr i32 %1629, 0
  %1631 = and i32 %1630, 255
  %1632 = zext i32 %1631 to i64
  %1633 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1632
  %1634 = load i32, ptr %1633, align 4, !tbaa !10
  %1635 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1636 = load i32, ptr %1635, align 8, !tbaa !10
  %1637 = lshr i32 %1636, 8
  %1638 = and i32 %1637, 255
  %1639 = zext i32 %1638 to i64
  %1640 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1639
  %1641 = load i32, ptr %1640, align 4, !tbaa !10
  %1642 = xor i32 %1634, %1641
  %1643 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1644 = load i32, ptr %1643, align 4, !tbaa !10
  %1645 = lshr i32 %1644, 16
  %1646 = and i32 %1645, 255
  %1647 = zext i32 %1646 to i64
  %1648 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1647
  %1649 = load i32, ptr %1648, align 4, !tbaa !10
  %1650 = xor i32 %1642, %1649
  %1651 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1652 = load i32, ptr %1651, align 16, !tbaa !10
  %1653 = lshr i32 %1652, 24
  %1654 = and i32 %1653, 255
  %1655 = zext i32 %1654 to i64
  %1656 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1655
  %1657 = load i32, ptr %1656, align 4, !tbaa !10
  %1658 = xor i32 %1650, %1657
  %1659 = xor i32 %1627, %1658
  %1660 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %1659, ptr %1660, align 4, !tbaa !10
  %1661 = load ptr, ptr %10, align 8, !tbaa !5
  %1662 = getelementptr inbounds i32, ptr %1661, i64 -12
  %1663 = getelementptr inbounds i32, ptr %1662, i64 0
  %1664 = load i32, ptr %1663, align 4, !tbaa !10
  %1665 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1666 = load i32, ptr %1665, align 16, !tbaa !10
  %1667 = lshr i32 %1666, 0
  %1668 = and i32 %1667, 255
  %1669 = zext i32 %1668 to i64
  %1670 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1669
  %1671 = load i32, ptr %1670, align 4, !tbaa !10
  %1672 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1673 = load i32, ptr %1672, align 4, !tbaa !10
  %1674 = lshr i32 %1673, 8
  %1675 = and i32 %1674, 255
  %1676 = zext i32 %1675 to i64
  %1677 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1676
  %1678 = load i32, ptr %1677, align 4, !tbaa !10
  %1679 = xor i32 %1671, %1678
  %1680 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1681 = load i32, ptr %1680, align 8, !tbaa !10
  %1682 = lshr i32 %1681, 16
  %1683 = and i32 %1682, 255
  %1684 = zext i32 %1683 to i64
  %1685 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1684
  %1686 = load i32, ptr %1685, align 4, !tbaa !10
  %1687 = xor i32 %1679, %1686
  %1688 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1689 = load i32, ptr %1688, align 4, !tbaa !10
  %1690 = lshr i32 %1689, 24
  %1691 = and i32 %1690, 255
  %1692 = zext i32 %1691 to i64
  %1693 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1692
  %1694 = load i32, ptr %1693, align 4, !tbaa !10
  %1695 = xor i32 %1687, %1694
  %1696 = xor i32 %1664, %1695
  %1697 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %1696, ptr %1697, align 16, !tbaa !10
  %1698 = load ptr, ptr %10, align 8, !tbaa !5
  %1699 = getelementptr inbounds i32, ptr %1698, i64 -12
  %1700 = getelementptr inbounds i32, ptr %1699, i64 1
  %1701 = load i32, ptr %1700, align 4, !tbaa !10
  %1702 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1703 = load i32, ptr %1702, align 4, !tbaa !10
  %1704 = lshr i32 %1703, 0
  %1705 = and i32 %1704, 255
  %1706 = zext i32 %1705 to i64
  %1707 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1706
  %1708 = load i32, ptr %1707, align 4, !tbaa !10
  %1709 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1710 = load i32, ptr %1709, align 16, !tbaa !10
  %1711 = lshr i32 %1710, 8
  %1712 = and i32 %1711, 255
  %1713 = zext i32 %1712 to i64
  %1714 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1713
  %1715 = load i32, ptr %1714, align 4, !tbaa !10
  %1716 = xor i32 %1708, %1715
  %1717 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1718 = load i32, ptr %1717, align 4, !tbaa !10
  %1719 = lshr i32 %1718, 16
  %1720 = and i32 %1719, 255
  %1721 = zext i32 %1720 to i64
  %1722 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1721
  %1723 = load i32, ptr %1722, align 4, !tbaa !10
  %1724 = xor i32 %1716, %1723
  %1725 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1726 = load i32, ptr %1725, align 8, !tbaa !10
  %1727 = lshr i32 %1726, 24
  %1728 = and i32 %1727, 255
  %1729 = zext i32 %1728 to i64
  %1730 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1729
  %1731 = load i32, ptr %1730, align 4, !tbaa !10
  %1732 = xor i32 %1724, %1731
  %1733 = xor i32 %1701, %1732
  %1734 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %1733, ptr %1734, align 4, !tbaa !10
  %1735 = load ptr, ptr %10, align 8, !tbaa !5
  %1736 = getelementptr inbounds i32, ptr %1735, i64 -12
  %1737 = getelementptr inbounds i32, ptr %1736, i64 2
  %1738 = load i32, ptr %1737, align 4, !tbaa !10
  %1739 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1740 = load i32, ptr %1739, align 8, !tbaa !10
  %1741 = lshr i32 %1740, 0
  %1742 = and i32 %1741, 255
  %1743 = zext i32 %1742 to i64
  %1744 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1743
  %1745 = load i32, ptr %1744, align 4, !tbaa !10
  %1746 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1747 = load i32, ptr %1746, align 4, !tbaa !10
  %1748 = lshr i32 %1747, 8
  %1749 = and i32 %1748, 255
  %1750 = zext i32 %1749 to i64
  %1751 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1750
  %1752 = load i32, ptr %1751, align 4, !tbaa !10
  %1753 = xor i32 %1745, %1752
  %1754 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1755 = load i32, ptr %1754, align 16, !tbaa !10
  %1756 = lshr i32 %1755, 16
  %1757 = and i32 %1756, 255
  %1758 = zext i32 %1757 to i64
  %1759 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1758
  %1760 = load i32, ptr %1759, align 4, !tbaa !10
  %1761 = xor i32 %1753, %1760
  %1762 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1763 = load i32, ptr %1762, align 4, !tbaa !10
  %1764 = lshr i32 %1763, 24
  %1765 = and i32 %1764, 255
  %1766 = zext i32 %1765 to i64
  %1767 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1766
  %1768 = load i32, ptr %1767, align 4, !tbaa !10
  %1769 = xor i32 %1761, %1768
  %1770 = xor i32 %1738, %1769
  %1771 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %1770, ptr %1771, align 8, !tbaa !10
  %1772 = load ptr, ptr %10, align 8, !tbaa !5
  %1773 = getelementptr inbounds i32, ptr %1772, i64 -12
  %1774 = getelementptr inbounds i32, ptr %1773, i64 3
  %1775 = load i32, ptr %1774, align 4, !tbaa !10
  %1776 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1777 = load i32, ptr %1776, align 4, !tbaa !10
  %1778 = lshr i32 %1777, 0
  %1779 = and i32 %1778, 255
  %1780 = zext i32 %1779 to i64
  %1781 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1780
  %1782 = load i32, ptr %1781, align 4, !tbaa !10
  %1783 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1784 = load i32, ptr %1783, align 8, !tbaa !10
  %1785 = lshr i32 %1784, 8
  %1786 = and i32 %1785, 255
  %1787 = zext i32 %1786 to i64
  %1788 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1787
  %1789 = load i32, ptr %1788, align 4, !tbaa !10
  %1790 = xor i32 %1782, %1789
  %1791 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1792 = load i32, ptr %1791, align 4, !tbaa !10
  %1793 = lshr i32 %1792, 16
  %1794 = and i32 %1793, 255
  %1795 = zext i32 %1794 to i64
  %1796 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1795
  %1797 = load i32, ptr %1796, align 4, !tbaa !10
  %1798 = xor i32 %1790, %1797
  %1799 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1800 = load i32, ptr %1799, align 16, !tbaa !10
  %1801 = lshr i32 %1800, 24
  %1802 = and i32 %1801, 255
  %1803 = zext i32 %1802 to i64
  %1804 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1803
  %1805 = load i32, ptr %1804, align 4, !tbaa !10
  %1806 = xor i32 %1798, %1805
  %1807 = xor i32 %1775, %1806
  %1808 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %1807, ptr %1808, align 4, !tbaa !10
  %1809 = load ptr, ptr %10, align 8, !tbaa !5
  %1810 = getelementptr inbounds i32, ptr %1809, i64 -8
  %1811 = getelementptr inbounds i32, ptr %1810, i64 0
  %1812 = load i32, ptr %1811, align 4, !tbaa !10
  %1813 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1814 = load i32, ptr %1813, align 16, !tbaa !10
  %1815 = lshr i32 %1814, 0
  %1816 = and i32 %1815, 255
  %1817 = zext i32 %1816 to i64
  %1818 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1817
  %1819 = load i32, ptr %1818, align 4, !tbaa !10
  %1820 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1821 = load i32, ptr %1820, align 4, !tbaa !10
  %1822 = lshr i32 %1821, 8
  %1823 = and i32 %1822, 255
  %1824 = zext i32 %1823 to i64
  %1825 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1824
  %1826 = load i32, ptr %1825, align 4, !tbaa !10
  %1827 = xor i32 %1819, %1826
  %1828 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1829 = load i32, ptr %1828, align 8, !tbaa !10
  %1830 = lshr i32 %1829, 16
  %1831 = and i32 %1830, 255
  %1832 = zext i32 %1831 to i64
  %1833 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1832
  %1834 = load i32, ptr %1833, align 4, !tbaa !10
  %1835 = xor i32 %1827, %1834
  %1836 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1837 = load i32, ptr %1836, align 4, !tbaa !10
  %1838 = lshr i32 %1837, 24
  %1839 = and i32 %1838, 255
  %1840 = zext i32 %1839 to i64
  %1841 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1840
  %1842 = load i32, ptr %1841, align 4, !tbaa !10
  %1843 = xor i32 %1835, %1842
  %1844 = xor i32 %1812, %1843
  %1845 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %1844, ptr %1845, align 16, !tbaa !10
  %1846 = load ptr, ptr %10, align 8, !tbaa !5
  %1847 = getelementptr inbounds i32, ptr %1846, i64 -8
  %1848 = getelementptr inbounds i32, ptr %1847, i64 1
  %1849 = load i32, ptr %1848, align 4, !tbaa !10
  %1850 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1851 = load i32, ptr %1850, align 4, !tbaa !10
  %1852 = lshr i32 %1851, 0
  %1853 = and i32 %1852, 255
  %1854 = zext i32 %1853 to i64
  %1855 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1854
  %1856 = load i32, ptr %1855, align 4, !tbaa !10
  %1857 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1858 = load i32, ptr %1857, align 16, !tbaa !10
  %1859 = lshr i32 %1858, 8
  %1860 = and i32 %1859, 255
  %1861 = zext i32 %1860 to i64
  %1862 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1861
  %1863 = load i32, ptr %1862, align 4, !tbaa !10
  %1864 = xor i32 %1856, %1863
  %1865 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1866 = load i32, ptr %1865, align 4, !tbaa !10
  %1867 = lshr i32 %1866, 16
  %1868 = and i32 %1867, 255
  %1869 = zext i32 %1868 to i64
  %1870 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1869
  %1871 = load i32, ptr %1870, align 4, !tbaa !10
  %1872 = xor i32 %1864, %1871
  %1873 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1874 = load i32, ptr %1873, align 8, !tbaa !10
  %1875 = lshr i32 %1874, 24
  %1876 = and i32 %1875, 255
  %1877 = zext i32 %1876 to i64
  %1878 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1877
  %1879 = load i32, ptr %1878, align 4, !tbaa !10
  %1880 = xor i32 %1872, %1879
  %1881 = xor i32 %1849, %1880
  %1882 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %1881, ptr %1882, align 4, !tbaa !10
  %1883 = load ptr, ptr %10, align 8, !tbaa !5
  %1884 = getelementptr inbounds i32, ptr %1883, i64 -8
  %1885 = getelementptr inbounds i32, ptr %1884, i64 2
  %1886 = load i32, ptr %1885, align 4, !tbaa !10
  %1887 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1888 = load i32, ptr %1887, align 8, !tbaa !10
  %1889 = lshr i32 %1888, 0
  %1890 = and i32 %1889, 255
  %1891 = zext i32 %1890 to i64
  %1892 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1891
  %1893 = load i32, ptr %1892, align 4, !tbaa !10
  %1894 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1895 = load i32, ptr %1894, align 4, !tbaa !10
  %1896 = lshr i32 %1895, 8
  %1897 = and i32 %1896, 255
  %1898 = zext i32 %1897 to i64
  %1899 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1898
  %1900 = load i32, ptr %1899, align 4, !tbaa !10
  %1901 = xor i32 %1893, %1900
  %1902 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1903 = load i32, ptr %1902, align 16, !tbaa !10
  %1904 = lshr i32 %1903, 16
  %1905 = and i32 %1904, 255
  %1906 = zext i32 %1905 to i64
  %1907 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1906
  %1908 = load i32, ptr %1907, align 4, !tbaa !10
  %1909 = xor i32 %1901, %1908
  %1910 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1911 = load i32, ptr %1910, align 4, !tbaa !10
  %1912 = lshr i32 %1911, 24
  %1913 = and i32 %1912, 255
  %1914 = zext i32 %1913 to i64
  %1915 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1914
  %1916 = load i32, ptr %1915, align 4, !tbaa !10
  %1917 = xor i32 %1909, %1916
  %1918 = xor i32 %1886, %1917
  %1919 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %1918, ptr %1919, align 8, !tbaa !10
  %1920 = load ptr, ptr %10, align 8, !tbaa !5
  %1921 = getelementptr inbounds i32, ptr %1920, i64 -8
  %1922 = getelementptr inbounds i32, ptr %1921, i64 3
  %1923 = load i32, ptr %1922, align 4, !tbaa !10
  %1924 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %1925 = load i32, ptr %1924, align 4, !tbaa !10
  %1926 = lshr i32 %1925, 0
  %1927 = and i32 %1926, 255
  %1928 = zext i32 %1927 to i64
  %1929 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1928
  %1930 = load i32, ptr %1929, align 4, !tbaa !10
  %1931 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %1932 = load i32, ptr %1931, align 8, !tbaa !10
  %1933 = lshr i32 %1932, 8
  %1934 = and i32 %1933, 255
  %1935 = zext i32 %1934 to i64
  %1936 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1935
  %1937 = load i32, ptr %1936, align 4, !tbaa !10
  %1938 = xor i32 %1930, %1937
  %1939 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %1940 = load i32, ptr %1939, align 4, !tbaa !10
  %1941 = lshr i32 %1940, 16
  %1942 = and i32 %1941, 255
  %1943 = zext i32 %1942 to i64
  %1944 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1943
  %1945 = load i32, ptr %1944, align 4, !tbaa !10
  %1946 = xor i32 %1938, %1945
  %1947 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %1948 = load i32, ptr %1947, align 16, !tbaa !10
  %1949 = lshr i32 %1948, 24
  %1950 = and i32 %1949, 255
  %1951 = zext i32 %1950 to i64
  %1952 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1951
  %1953 = load i32, ptr %1952, align 4, !tbaa !10
  %1954 = xor i32 %1946, %1953
  %1955 = xor i32 %1923, %1954
  %1956 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %1955, ptr %1956, align 4, !tbaa !10
  %1957 = load ptr, ptr %10, align 8, !tbaa !5
  %1958 = getelementptr inbounds i32, ptr %1957, i64 -4
  %1959 = getelementptr inbounds i32, ptr %1958, i64 0
  %1960 = load i32, ptr %1959, align 4, !tbaa !10
  %1961 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %1962 = load i32, ptr %1961, align 16, !tbaa !10
  %1963 = lshr i32 %1962, 0
  %1964 = and i32 %1963, 255
  %1965 = zext i32 %1964 to i64
  %1966 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1965
  %1967 = load i32, ptr %1966, align 4, !tbaa !10
  %1968 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %1969 = load i32, ptr %1968, align 4, !tbaa !10
  %1970 = lshr i32 %1969, 8
  %1971 = and i32 %1970, 255
  %1972 = zext i32 %1971 to i64
  %1973 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %1972
  %1974 = load i32, ptr %1973, align 4, !tbaa !10
  %1975 = xor i32 %1967, %1974
  %1976 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %1977 = load i32, ptr %1976, align 8, !tbaa !10
  %1978 = lshr i32 %1977, 16
  %1979 = and i32 %1978, 255
  %1980 = zext i32 %1979 to i64
  %1981 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %1980
  %1982 = load i32, ptr %1981, align 4, !tbaa !10
  %1983 = xor i32 %1975, %1982
  %1984 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1985 = load i32, ptr %1984, align 4, !tbaa !10
  %1986 = lshr i32 %1985, 24
  %1987 = and i32 %1986, 255
  %1988 = zext i32 %1987 to i64
  %1989 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %1988
  %1990 = load i32, ptr %1989, align 4, !tbaa !10
  %1991 = xor i32 %1983, %1990
  %1992 = xor i32 %1960, %1991
  %1993 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  store i32 %1992, ptr %1993, align 16, !tbaa !10
  %1994 = load ptr, ptr %10, align 8, !tbaa !5
  %1995 = getelementptr inbounds i32, ptr %1994, i64 -4
  %1996 = getelementptr inbounds i32, ptr %1995, i64 1
  %1997 = load i32, ptr %1996, align 4, !tbaa !10
  %1998 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %1999 = load i32, ptr %1998, align 4, !tbaa !10
  %2000 = lshr i32 %1999, 0
  %2001 = and i32 %2000, 255
  %2002 = zext i32 %2001 to i64
  %2003 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %2002
  %2004 = load i32, ptr %2003, align 4, !tbaa !10
  %2005 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2006 = load i32, ptr %2005, align 16, !tbaa !10
  %2007 = lshr i32 %2006, 8
  %2008 = and i32 %2007, 255
  %2009 = zext i32 %2008 to i64
  %2010 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %2009
  %2011 = load i32, ptr %2010, align 4, !tbaa !10
  %2012 = xor i32 %2004, %2011
  %2013 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2014 = load i32, ptr %2013, align 4, !tbaa !10
  %2015 = lshr i32 %2014, 16
  %2016 = and i32 %2015, 255
  %2017 = zext i32 %2016 to i64
  %2018 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %2017
  %2019 = load i32, ptr %2018, align 4, !tbaa !10
  %2020 = xor i32 %2012, %2019
  %2021 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2022 = load i32, ptr %2021, align 8, !tbaa !10
  %2023 = lshr i32 %2022, 24
  %2024 = and i32 %2023, 255
  %2025 = zext i32 %2024 to i64
  %2026 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %2025
  %2027 = load i32, ptr %2026, align 4, !tbaa !10
  %2028 = xor i32 %2020, %2027
  %2029 = xor i32 %1997, %2028
  %2030 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  store i32 %2029, ptr %2030, align 4, !tbaa !10
  %2031 = load ptr, ptr %10, align 8, !tbaa !5
  %2032 = getelementptr inbounds i32, ptr %2031, i64 -4
  %2033 = getelementptr inbounds i32, ptr %2032, i64 2
  %2034 = load i32, ptr %2033, align 4, !tbaa !10
  %2035 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2036 = load i32, ptr %2035, align 8, !tbaa !10
  %2037 = lshr i32 %2036, 0
  %2038 = and i32 %2037, 255
  %2039 = zext i32 %2038 to i64
  %2040 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %2039
  %2041 = load i32, ptr %2040, align 4, !tbaa !10
  %2042 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2043 = load i32, ptr %2042, align 4, !tbaa !10
  %2044 = lshr i32 %2043, 8
  %2045 = and i32 %2044, 255
  %2046 = zext i32 %2045 to i64
  %2047 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %2046
  %2048 = load i32, ptr %2047, align 4, !tbaa !10
  %2049 = xor i32 %2041, %2048
  %2050 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2051 = load i32, ptr %2050, align 16, !tbaa !10
  %2052 = lshr i32 %2051, 16
  %2053 = and i32 %2052, 255
  %2054 = zext i32 %2053 to i64
  %2055 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %2054
  %2056 = load i32, ptr %2055, align 4, !tbaa !10
  %2057 = xor i32 %2049, %2056
  %2058 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2059 = load i32, ptr %2058, align 4, !tbaa !10
  %2060 = lshr i32 %2059, 24
  %2061 = and i32 %2060, 255
  %2062 = zext i32 %2061 to i64
  %2063 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %2062
  %2064 = load i32, ptr %2063, align 4, !tbaa !10
  %2065 = xor i32 %2057, %2064
  %2066 = xor i32 %2034, %2065
  %2067 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  store i32 %2066, ptr %2067, align 8, !tbaa !10
  %2068 = load ptr, ptr %10, align 8, !tbaa !5
  %2069 = getelementptr inbounds i32, ptr %2068, i64 -4
  %2070 = getelementptr inbounds i32, ptr %2069, i64 3
  %2071 = load i32, ptr %2070, align 4, !tbaa !10
  %2072 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2073 = load i32, ptr %2072, align 4, !tbaa !10
  %2074 = lshr i32 %2073, 0
  %2075 = and i32 %2074, 255
  %2076 = zext i32 %2075 to i64
  %2077 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %2076
  %2078 = load i32, ptr %2077, align 4, !tbaa !10
  %2079 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2080 = load i32, ptr %2079, align 8, !tbaa !10
  %2081 = lshr i32 %2080, 8
  %2082 = and i32 %2081, 255
  %2083 = zext i32 %2082 to i64
  %2084 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 1), i64 0, i64 %2083
  %2085 = load i32, ptr %2084, align 4, !tbaa !10
  %2086 = xor i32 %2078, %2085
  %2087 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2088 = load i32, ptr %2087, align 4, !tbaa !10
  %2089 = lshr i32 %2088, 16
  %2090 = and i32 %2089, 255
  %2091 = zext i32 %2090 to i64
  %2092 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 2), i64 0, i64 %2091
  %2093 = load i32, ptr %2092, align 4, !tbaa !10
  %2094 = xor i32 %2086, %2093
  %2095 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2096 = load i32, ptr %2095, align 16, !tbaa !10
  %2097 = lshr i32 %2096, 24
  %2098 = and i32 %2097, 255
  %2099 = zext i32 %2098 to i64
  %2100 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_in, i64 0, i64 3), i64 0, i64 %2099
  %2101 = load i32, ptr %2100, align 4, !tbaa !10
  %2102 = xor i32 %2094, %2101
  %2103 = xor i32 %2071, %2102
  %2104 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  store i32 %2103, ptr %2104, align 4, !tbaa !10
  %2105 = load ptr, ptr %10, align 8, !tbaa !5
  %2106 = getelementptr inbounds i32, ptr %2105, i64 0
  %2107 = getelementptr inbounds i32, ptr %2106, i64 0
  %2108 = load i32, ptr %2107, align 4, !tbaa !10
  %2109 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %2110 = load i32, ptr %2109, align 16, !tbaa !10
  %2111 = lshr i32 %2110, 0
  %2112 = and i32 %2111, 255
  %2113 = zext i32 %2112 to i64
  %2114 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %2113
  %2115 = load i32, ptr %2114, align 4, !tbaa !10
  %2116 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %2117 = load i32, ptr %2116, align 4, !tbaa !10
  %2118 = lshr i32 %2117, 8
  %2119 = and i32 %2118, 255
  %2120 = zext i32 %2119 to i64
  %2121 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 1), i64 0, i64 %2120
  %2122 = load i32, ptr %2121, align 4, !tbaa !10
  %2123 = xor i32 %2115, %2122
  %2124 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %2125 = load i32, ptr %2124, align 8, !tbaa !10
  %2126 = lshr i32 %2125, 16
  %2127 = and i32 %2126, 255
  %2128 = zext i32 %2127 to i64
  %2129 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 2), i64 0, i64 %2128
  %2130 = load i32, ptr %2129, align 4, !tbaa !10
  %2131 = xor i32 %2123, %2130
  %2132 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %2133 = load i32, ptr %2132, align 4, !tbaa !10
  %2134 = lshr i32 %2133, 24
  %2135 = and i32 %2134, 255
  %2136 = zext i32 %2135 to i64
  %2137 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 3), i64 0, i64 %2136
  %2138 = load i32, ptr %2137, align 4, !tbaa !10
  %2139 = xor i32 %2131, %2138
  %2140 = xor i32 %2108, %2139
  %2141 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  store i32 %2140, ptr %2141, align 16, !tbaa !10
  %2142 = load ptr, ptr %10, align 8, !tbaa !5
  %2143 = getelementptr inbounds i32, ptr %2142, i64 0
  %2144 = getelementptr inbounds i32, ptr %2143, i64 1
  %2145 = load i32, ptr %2144, align 4, !tbaa !10
  %2146 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %2147 = load i32, ptr %2146, align 4, !tbaa !10
  %2148 = lshr i32 %2147, 0
  %2149 = and i32 %2148, 255
  %2150 = zext i32 %2149 to i64
  %2151 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %2150
  %2152 = load i32, ptr %2151, align 4, !tbaa !10
  %2153 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %2154 = load i32, ptr %2153, align 16, !tbaa !10
  %2155 = lshr i32 %2154, 8
  %2156 = and i32 %2155, 255
  %2157 = zext i32 %2156 to i64
  %2158 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 1), i64 0, i64 %2157
  %2159 = load i32, ptr %2158, align 4, !tbaa !10
  %2160 = xor i32 %2152, %2159
  %2161 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %2162 = load i32, ptr %2161, align 4, !tbaa !10
  %2163 = lshr i32 %2162, 16
  %2164 = and i32 %2163, 255
  %2165 = zext i32 %2164 to i64
  %2166 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 2), i64 0, i64 %2165
  %2167 = load i32, ptr %2166, align 4, !tbaa !10
  %2168 = xor i32 %2160, %2167
  %2169 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %2170 = load i32, ptr %2169, align 8, !tbaa !10
  %2171 = lshr i32 %2170, 24
  %2172 = and i32 %2171, 255
  %2173 = zext i32 %2172 to i64
  %2174 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 3), i64 0, i64 %2173
  %2175 = load i32, ptr %2174, align 4, !tbaa !10
  %2176 = xor i32 %2168, %2175
  %2177 = xor i32 %2145, %2176
  %2178 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  store i32 %2177, ptr %2178, align 4, !tbaa !10
  %2179 = load ptr, ptr %10, align 8, !tbaa !5
  %2180 = getelementptr inbounds i32, ptr %2179, i64 0
  %2181 = getelementptr inbounds i32, ptr %2180, i64 2
  %2182 = load i32, ptr %2181, align 4, !tbaa !10
  %2183 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %2184 = load i32, ptr %2183, align 8, !tbaa !10
  %2185 = lshr i32 %2184, 0
  %2186 = and i32 %2185, 255
  %2187 = zext i32 %2186 to i64
  %2188 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %2187
  %2189 = load i32, ptr %2188, align 4, !tbaa !10
  %2190 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %2191 = load i32, ptr %2190, align 4, !tbaa !10
  %2192 = lshr i32 %2191, 8
  %2193 = and i32 %2192, 255
  %2194 = zext i32 %2193 to i64
  %2195 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 1), i64 0, i64 %2194
  %2196 = load i32, ptr %2195, align 4, !tbaa !10
  %2197 = xor i32 %2189, %2196
  %2198 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %2199 = load i32, ptr %2198, align 16, !tbaa !10
  %2200 = lshr i32 %2199, 16
  %2201 = and i32 %2200, 255
  %2202 = zext i32 %2201 to i64
  %2203 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 2), i64 0, i64 %2202
  %2204 = load i32, ptr %2203, align 4, !tbaa !10
  %2205 = xor i32 %2197, %2204
  %2206 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %2207 = load i32, ptr %2206, align 4, !tbaa !10
  %2208 = lshr i32 %2207, 24
  %2209 = and i32 %2208, 255
  %2210 = zext i32 %2209 to i64
  %2211 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 3), i64 0, i64 %2210
  %2212 = load i32, ptr %2211, align 4, !tbaa !10
  %2213 = xor i32 %2205, %2212
  %2214 = xor i32 %2182, %2213
  %2215 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  store i32 %2214, ptr %2215, align 8, !tbaa !10
  %2216 = load ptr, ptr %10, align 8, !tbaa !5
  %2217 = getelementptr inbounds i32, ptr %2216, i64 0
  %2218 = getelementptr inbounds i32, ptr %2217, i64 3
  %2219 = load i32, ptr %2218, align 4, !tbaa !10
  %2220 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 3
  %2221 = load i32, ptr %2220, align 4, !tbaa !10
  %2222 = lshr i32 %2221, 0
  %2223 = and i32 %2222, 255
  %2224 = zext i32 %2223 to i64
  %2225 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %2224
  %2226 = load i32, ptr %2225, align 4, !tbaa !10
  %2227 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 2
  %2228 = load i32, ptr %2227, align 8, !tbaa !10
  %2229 = lshr i32 %2228, 8
  %2230 = and i32 %2229, 255
  %2231 = zext i32 %2230 to i64
  %2232 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 1), i64 0, i64 %2231
  %2233 = load i32, ptr %2232, align 4, !tbaa !10
  %2234 = xor i32 %2226, %2233
  %2235 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 1
  %2236 = load i32, ptr %2235, align 4, !tbaa !10
  %2237 = lshr i32 %2236, 16
  %2238 = and i32 %2237, 255
  %2239 = zext i32 %2238 to i64
  %2240 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 2), i64 0, i64 %2239
  %2241 = load i32, ptr %2240, align 4, !tbaa !10
  %2242 = xor i32 %2234, %2241
  %2243 = getelementptr inbounds [4 x i32], ptr %8, i64 0, i64 0
  %2244 = load i32, ptr %2243, align 16, !tbaa !10
  %2245 = lshr i32 %2244, 24
  %2246 = and i32 %2245, 255
  %2247 = zext i32 %2246 to i64
  %2248 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds ([4 x [256 x i32]], ptr @t_il, i64 0, i64 3), i64 0, i64 %2247
  %2249 = load i32, ptr %2248, align 4, !tbaa !10
  %2250 = xor i32 %2242, %2249
  %2251 = xor i32 %2219, %2250
  %2252 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  store i32 %2251, ptr %2252, align 4, !tbaa !10
  br label %2253

2253:                                             ; preds = %772, %33
  %2254 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2255 = load i32, ptr %2254, align 16, !tbaa !10
  %2256 = lshr i32 %2255, 0
  %2257 = and i32 %2256, 255
  %2258 = trunc i32 %2257 to i8
  %2259 = load ptr, ptr %6, align 8, !tbaa !5
  %2260 = getelementptr inbounds i8, ptr %2259, i64 0
  %2261 = getelementptr inbounds i8, ptr %2260, i64 0
  store i8 %2258, ptr %2261, align 1, !tbaa !9
  %2262 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2263 = load i32, ptr %2262, align 16, !tbaa !10
  %2264 = lshr i32 %2263, 8
  %2265 = and i32 %2264, 255
  %2266 = trunc i32 %2265 to i8
  %2267 = load ptr, ptr %6, align 8, !tbaa !5
  %2268 = getelementptr inbounds i8, ptr %2267, i64 0
  %2269 = getelementptr inbounds i8, ptr %2268, i64 1
  store i8 %2266, ptr %2269, align 1, !tbaa !9
  %2270 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2271 = load i32, ptr %2270, align 16, !tbaa !10
  %2272 = lshr i32 %2271, 16
  %2273 = and i32 %2272, 255
  %2274 = trunc i32 %2273 to i8
  %2275 = load ptr, ptr %6, align 8, !tbaa !5
  %2276 = getelementptr inbounds i8, ptr %2275, i64 0
  %2277 = getelementptr inbounds i8, ptr %2276, i64 2
  store i8 %2274, ptr %2277, align 1, !tbaa !9
  %2278 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 0
  %2279 = load i32, ptr %2278, align 16, !tbaa !10
  %2280 = lshr i32 %2279, 24
  %2281 = and i32 %2280, 255
  %2282 = trunc i32 %2281 to i8
  %2283 = load ptr, ptr %6, align 8, !tbaa !5
  %2284 = getelementptr inbounds i8, ptr %2283, i64 0
  %2285 = getelementptr inbounds i8, ptr %2284, i64 3
  store i8 %2282, ptr %2285, align 1, !tbaa !9
  %2286 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2287 = load i32, ptr %2286, align 4, !tbaa !10
  %2288 = lshr i32 %2287, 0
  %2289 = and i32 %2288, 255
  %2290 = trunc i32 %2289 to i8
  %2291 = load ptr, ptr %6, align 8, !tbaa !5
  %2292 = getelementptr inbounds i8, ptr %2291, i64 4
  %2293 = getelementptr inbounds i8, ptr %2292, i64 0
  store i8 %2290, ptr %2293, align 1, !tbaa !9
  %2294 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2295 = load i32, ptr %2294, align 4, !tbaa !10
  %2296 = lshr i32 %2295, 8
  %2297 = and i32 %2296, 255
  %2298 = trunc i32 %2297 to i8
  %2299 = load ptr, ptr %6, align 8, !tbaa !5
  %2300 = getelementptr inbounds i8, ptr %2299, i64 4
  %2301 = getelementptr inbounds i8, ptr %2300, i64 1
  store i8 %2298, ptr %2301, align 1, !tbaa !9
  %2302 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2303 = load i32, ptr %2302, align 4, !tbaa !10
  %2304 = lshr i32 %2303, 16
  %2305 = and i32 %2304, 255
  %2306 = trunc i32 %2305 to i8
  %2307 = load ptr, ptr %6, align 8, !tbaa !5
  %2308 = getelementptr inbounds i8, ptr %2307, i64 4
  %2309 = getelementptr inbounds i8, ptr %2308, i64 2
  store i8 %2306, ptr %2309, align 1, !tbaa !9
  %2310 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 1
  %2311 = load i32, ptr %2310, align 4, !tbaa !10
  %2312 = lshr i32 %2311, 24
  %2313 = and i32 %2312, 255
  %2314 = trunc i32 %2313 to i8
  %2315 = load ptr, ptr %6, align 8, !tbaa !5
  %2316 = getelementptr inbounds i8, ptr %2315, i64 4
  %2317 = getelementptr inbounds i8, ptr %2316, i64 3
  store i8 %2314, ptr %2317, align 1, !tbaa !9
  %2318 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2319 = load i32, ptr %2318, align 8, !tbaa !10
  %2320 = lshr i32 %2319, 0
  %2321 = and i32 %2320, 255
  %2322 = trunc i32 %2321 to i8
  %2323 = load ptr, ptr %6, align 8, !tbaa !5
  %2324 = getelementptr inbounds i8, ptr %2323, i64 8
  %2325 = getelementptr inbounds i8, ptr %2324, i64 0
  store i8 %2322, ptr %2325, align 1, !tbaa !9
  %2326 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2327 = load i32, ptr %2326, align 8, !tbaa !10
  %2328 = lshr i32 %2327, 8
  %2329 = and i32 %2328, 255
  %2330 = trunc i32 %2329 to i8
  %2331 = load ptr, ptr %6, align 8, !tbaa !5
  %2332 = getelementptr inbounds i8, ptr %2331, i64 8
  %2333 = getelementptr inbounds i8, ptr %2332, i64 1
  store i8 %2330, ptr %2333, align 1, !tbaa !9
  %2334 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2335 = load i32, ptr %2334, align 8, !tbaa !10
  %2336 = lshr i32 %2335, 16
  %2337 = and i32 %2336, 255
  %2338 = trunc i32 %2337 to i8
  %2339 = load ptr, ptr %6, align 8, !tbaa !5
  %2340 = getelementptr inbounds i8, ptr %2339, i64 8
  %2341 = getelementptr inbounds i8, ptr %2340, i64 2
  store i8 %2338, ptr %2341, align 1, !tbaa !9
  %2342 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 2
  %2343 = load i32, ptr %2342, align 8, !tbaa !10
  %2344 = lshr i32 %2343, 24
  %2345 = and i32 %2344, 255
  %2346 = trunc i32 %2345 to i8
  %2347 = load ptr, ptr %6, align 8, !tbaa !5
  %2348 = getelementptr inbounds i8, ptr %2347, i64 8
  %2349 = getelementptr inbounds i8, ptr %2348, i64 3
  store i8 %2346, ptr %2349, align 1, !tbaa !9
  %2350 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2351 = load i32, ptr %2350, align 4, !tbaa !10
  %2352 = lshr i32 %2351, 0
  %2353 = and i32 %2352, 255
  %2354 = trunc i32 %2353 to i8
  %2355 = load ptr, ptr %6, align 8, !tbaa !5
  %2356 = getelementptr inbounds i8, ptr %2355, i64 12
  %2357 = getelementptr inbounds i8, ptr %2356, i64 0
  store i8 %2354, ptr %2357, align 1, !tbaa !9
  %2358 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2359 = load i32, ptr %2358, align 4, !tbaa !10
  %2360 = lshr i32 %2359, 8
  %2361 = and i32 %2360, 255
  %2362 = trunc i32 %2361 to i8
  %2363 = load ptr, ptr %6, align 8, !tbaa !5
  %2364 = getelementptr inbounds i8, ptr %2363, i64 12
  %2365 = getelementptr inbounds i8, ptr %2364, i64 1
  store i8 %2362, ptr %2365, align 1, !tbaa !9
  %2366 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2367 = load i32, ptr %2366, align 4, !tbaa !10
  %2368 = lshr i32 %2367, 16
  %2369 = and i32 %2368, 255
  %2370 = trunc i32 %2369 to i8
  %2371 = load ptr, ptr %6, align 8, !tbaa !5
  %2372 = getelementptr inbounds i8, ptr %2371, i64 12
  %2373 = getelementptr inbounds i8, ptr %2372, i64 2
  store i8 %2370, ptr %2373, align 1, !tbaa !9
  %2374 = getelementptr inbounds [4 x i32], ptr %9, i64 0, i64 3
  %2375 = load i32, ptr %2374, align 4, !tbaa !10
  %2376 = lshr i32 %2375, 24
  %2377 = and i32 %2376, 255
  %2378 = trunc i32 %2377 to i8
  %2379 = load ptr, ptr %6, align 8, !tbaa !5
  %2380 = getelementptr inbounds i8, ptr %2379, i64 12
  %2381 = getelementptr inbounds i8, ptr %2380, i64 3
  store i8 %2378, ptr %2381, align 1, !tbaa !9
  store i32 0, ptr %4, align 4
  store i32 1, ptr %11, align 4
  br label %2382

2382:                                             ; preds = %2253, %32
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #2
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 16, ptr %8) #2
  %2383 = load i32, ptr %4, align 4
  ret i32 %2383
}

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

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

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

@t_in = external local_unnamed_addr constant [4 x [256 x i32]], align 16
@t_il = external local_unnamed_addr constant [4 x [256 x i32]], align 16

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable
define dso_local range(i32 0, 2) i32 @aes_decrypt(ptr nocapture noundef readonly %0, ptr nocapture noundef writeonly %1, ptr noundef readonly %2) local_unnamed_addr #0 {
  %4 = getelementptr inbounds i8, ptr %2, i64 240
  %5 = load i8, ptr %4, align 16, !tbaa !5
  switch i8 %5, label %1418 [
    i8 -96, label %6
    i8 -64, label %6
    i8 -32, label %6
  ]

6:                                                ; preds = %3, %3, %3
  %7 = load i32, ptr %0, align 1
  %8 = load i32, ptr %2, align 4, !tbaa !8
  %9 = xor i32 %8, %7
  %10 = getelementptr inbounds i8, ptr %0, i64 4
  %11 = load i32, ptr %10, align 1
  %12 = getelementptr inbounds i8, ptr %2, i64 4
  %13 = load i32, ptr %12, align 4, !tbaa !8
  %14 = xor i32 %13, %11
  %15 = getelementptr inbounds i8, ptr %0, i64 8
  %16 = load i32, ptr %15, align 1
  %17 = getelementptr inbounds i8, ptr %2, i64 8
  %18 = load i32, ptr %17, align 4, !tbaa !8
  %19 = xor i32 %18, %16
  %20 = getelementptr inbounds i8, ptr %0, i64 12
  %21 = load i32, ptr %20, align 1
  %22 = getelementptr inbounds i8, ptr %2, i64 12
  %23 = load i32, ptr %22, align 4, !tbaa !8
  %24 = xor i32 %23, %21
  %25 = lshr i8 %5, 2
  %26 = zext nneg i8 %25 to i64
  %27 = getelementptr inbounds i32, ptr %2, i64 %26
  switch i8 %5, label %1374 [
    i8 -32, label %28
    i8 -64, label %221
    i8 -96, label %414
  ]

28:                                               ; preds = %6
  %29 = getelementptr inbounds i8, ptr %27, i64 -208
  %30 = load i32, ptr %29, align 4, !tbaa !8
  %31 = and i32 %9, 255
  %32 = zext nneg i32 %31 to i64
  %33 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %32
  %34 = load i32, ptr %33, align 4, !tbaa !8
  %35 = lshr i32 %24, 8
  %36 = and i32 %35, 255
  %37 = zext nneg i32 %36 to i64
  %38 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %37
  %39 = load i32, ptr %38, align 4, !tbaa !8
  %40 = lshr i32 %19, 16
  %41 = and i32 %40, 255
  %42 = zext nneg i32 %41 to i64
  %43 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %42
  %44 = load i32, ptr %43, align 4, !tbaa !8
  %45 = lshr i32 %14, 24
  %46 = zext nneg i32 %45 to i64
  %47 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %46
  %48 = load i32, ptr %47, align 4, !tbaa !8
  %49 = xor i32 %34, %30
  %50 = xor i32 %49, %39
  %51 = xor i32 %50, %44
  %52 = xor i32 %51, %48
  %53 = getelementptr inbounds i8, ptr %27, i64 -204
  %54 = load i32, ptr %53, align 4, !tbaa !8
  %55 = and i32 %14, 255
  %56 = zext nneg i32 %55 to i64
  %57 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %56
  %58 = load i32, ptr %57, align 4, !tbaa !8
  %59 = lshr i32 %9, 8
  %60 = and i32 %59, 255
  %61 = zext nneg i32 %60 to i64
  %62 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %61
  %63 = load i32, ptr %62, align 4, !tbaa !8
  %64 = lshr i32 %24, 16
  %65 = and i32 %64, 255
  %66 = zext nneg i32 %65 to i64
  %67 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %66
  %68 = load i32, ptr %67, align 4, !tbaa !8
  %69 = lshr i32 %19, 24
  %70 = zext nneg i32 %69 to i64
  %71 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %70
  %72 = load i32, ptr %71, align 4, !tbaa !8
  %73 = xor i32 %58, %54
  %74 = xor i32 %73, %63
  %75 = xor i32 %74, %68
  %76 = xor i32 %75, %72
  %77 = getelementptr inbounds i8, ptr %27, i64 -200
  %78 = load i32, ptr %77, align 4, !tbaa !8
  %79 = and i32 %19, 255
  %80 = zext nneg i32 %79 to i64
  %81 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %80
  %82 = load i32, ptr %81, align 4, !tbaa !8
  %83 = lshr i32 %14, 8
  %84 = and i32 %83, 255
  %85 = zext nneg i32 %84 to i64
  %86 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %85
  %87 = load i32, ptr %86, align 4, !tbaa !8
  %88 = lshr i32 %9, 16
  %89 = and i32 %88, 255
  %90 = zext nneg i32 %89 to i64
  %91 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %90
  %92 = load i32, ptr %91, align 4, !tbaa !8
  %93 = lshr i32 %24, 24
  %94 = zext nneg i32 %93 to i64
  %95 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %94
  %96 = load i32, ptr %95, align 4, !tbaa !8
  %97 = xor i32 %82, %78
  %98 = xor i32 %97, %87
  %99 = xor i32 %98, %92
  %100 = xor i32 %99, %96
  %101 = getelementptr inbounds i8, ptr %27, i64 -196
  %102 = load i32, ptr %101, align 4, !tbaa !8
  %103 = and i32 %24, 255
  %104 = zext nneg i32 %103 to i64
  %105 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %104
  %106 = load i32, ptr %105, align 4, !tbaa !8
  %107 = lshr i32 %19, 8
  %108 = and i32 %107, 255
  %109 = zext nneg i32 %108 to i64
  %110 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %109
  %111 = load i32, ptr %110, align 4, !tbaa !8
  %112 = lshr i32 %14, 16
  %113 = and i32 %112, 255
  %114 = zext nneg i32 %113 to i64
  %115 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %114
  %116 = load i32, ptr %115, align 4, !tbaa !8
  %117 = lshr i32 %9, 24
  %118 = zext nneg i32 %117 to i64
  %119 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %118
  %120 = load i32, ptr %119, align 4, !tbaa !8
  %121 = xor i32 %106, %102
  %122 = xor i32 %121, %111
  %123 = xor i32 %122, %116
  %124 = xor i32 %123, %120
  %125 = getelementptr inbounds i8, ptr %27, i64 -192
  %126 = load i32, ptr %125, align 4, !tbaa !8
  %127 = and i32 %52, 255
  %128 = zext nneg i32 %127 to i64
  %129 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %128
  %130 = load i32, ptr %129, align 4, !tbaa !8
  %131 = lshr i32 %124, 8
  %132 = and i32 %131, 255
  %133 = zext nneg i32 %132 to i64
  %134 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %133
  %135 = load i32, ptr %134, align 4, !tbaa !8
  %136 = lshr i32 %100, 16
  %137 = and i32 %136, 255
  %138 = zext nneg i32 %137 to i64
  %139 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %138
  %140 = load i32, ptr %139, align 4, !tbaa !8
  %141 = lshr i32 %76, 24
  %142 = zext nneg i32 %141 to i64
  %143 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %142
  %144 = load i32, ptr %143, align 4, !tbaa !8
  %145 = xor i32 %130, %126
  %146 = xor i32 %145, %135
  %147 = xor i32 %146, %140
  %148 = xor i32 %147, %144
  %149 = getelementptr inbounds i8, ptr %27, i64 -188
  %150 = load i32, ptr %149, align 4, !tbaa !8
  %151 = and i32 %76, 255
  %152 = zext nneg i32 %151 to i64
  %153 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %152
  %154 = load i32, ptr %153, align 4, !tbaa !8
  %155 = lshr i32 %52, 8
  %156 = and i32 %155, 255
  %157 = zext nneg i32 %156 to i64
  %158 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %157
  %159 = load i32, ptr %158, align 4, !tbaa !8
  %160 = lshr i32 %124, 16
  %161 = and i32 %160, 255
  %162 = zext nneg i32 %161 to i64
  %163 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %162
  %164 = load i32, ptr %163, align 4, !tbaa !8
  %165 = lshr i32 %100, 24
  %166 = zext nneg i32 %165 to i64
  %167 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %166
  %168 = load i32, ptr %167, align 4, !tbaa !8
  %169 = xor i32 %154, %150
  %170 = xor i32 %169, %159
  %171 = xor i32 %170, %164
  %172 = xor i32 %171, %168
  %173 = getelementptr inbounds i8, ptr %27, i64 -184
  %174 = load i32, ptr %173, align 4, !tbaa !8
  %175 = and i32 %100, 255
  %176 = zext nneg i32 %175 to i64
  %177 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %176
  %178 = load i32, ptr %177, align 4, !tbaa !8
  %179 = lshr i32 %76, 8
  %180 = and i32 %179, 255
  %181 = zext nneg i32 %180 to i64
  %182 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %181
  %183 = load i32, ptr %182, align 4, !tbaa !8
  %184 = lshr i32 %52, 16
  %185 = and i32 %184, 255
  %186 = zext nneg i32 %185 to i64
  %187 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %186
  %188 = load i32, ptr %187, align 4, !tbaa !8
  %189 = lshr i32 %124, 24
  %190 = zext nneg i32 %189 to i64
  %191 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %190
  %192 = load i32, ptr %191, align 4, !tbaa !8
  %193 = xor i32 %178, %174
  %194 = xor i32 %193, %183
  %195 = xor i32 %194, %188
  %196 = xor i32 %195, %192
  %197 = getelementptr inbounds i8, ptr %27, i64 -180
  %198 = load i32, ptr %197, align 4, !tbaa !8
  %199 = and i32 %124, 255
  %200 = zext nneg i32 %199 to i64
  %201 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %200
  %202 = load i32, ptr %201, align 4, !tbaa !8
  %203 = lshr i32 %100, 8
  %204 = and i32 %203, 255
  %205 = zext nneg i32 %204 to i64
  %206 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %205
  %207 = load i32, ptr %206, align 4, !tbaa !8
  %208 = lshr i32 %76, 16
  %209 = and i32 %208, 255
  %210 = zext nneg i32 %209 to i64
  %211 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %210
  %212 = load i32, ptr %211, align 4, !tbaa !8
  %213 = lshr i32 %52, 24
  %214 = zext nneg i32 %213 to i64
  %215 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %214
  %216 = load i32, ptr %215, align 4, !tbaa !8
  %217 = xor i32 %202, %198
  %218 = xor i32 %217, %207
  %219 = xor i32 %218, %212
  %220 = xor i32 %219, %216
  br label %221

221:                                              ; preds = %28, %6
  %.sroa.122.0 = phi i32 [ %24, %6 ], [ %220, %28 ]
  %.sroa.82.0 = phi i32 [ %19, %6 ], [ %196, %28 ]
  %.sroa.42.0 = phi i32 [ %14, %6 ], [ %172, %28 ]
  %.sroa.0.0 = phi i32 [ %9, %6 ], [ %148, %28 ]
  %222 = getelementptr inbounds i8, ptr %27, i64 -176
  %223 = load i32, ptr %222, align 4, !tbaa !8
  %224 = and i32 %.sroa.0.0, 255
  %225 = zext nneg i32 %224 to i64
  %226 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %225
  %227 = load i32, ptr %226, align 4, !tbaa !8
  %228 = lshr i32 %.sroa.122.0, 8
  %229 = and i32 %228, 255
  %230 = zext nneg i32 %229 to i64
  %231 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %230
  %232 = load i32, ptr %231, align 4, !tbaa !8
  %233 = lshr i32 %.sroa.82.0, 16
  %234 = and i32 %233, 255
  %235 = zext nneg i32 %234 to i64
  %236 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %235
  %237 = load i32, ptr %236, align 4, !tbaa !8
  %238 = lshr i32 %.sroa.42.0, 24
  %239 = zext nneg i32 %238 to i64
  %240 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %239
  %241 = load i32, ptr %240, align 4, !tbaa !8
  %242 = xor i32 %227, %223
  %243 = xor i32 %242, %232
  %244 = xor i32 %243, %237
  %245 = xor i32 %244, %241
  %246 = getelementptr inbounds i8, ptr %27, i64 -172
  %247 = load i32, ptr %246, align 4, !tbaa !8
  %248 = and i32 %.sroa.42.0, 255
  %249 = zext nneg i32 %248 to i64
  %250 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %249
  %251 = load i32, ptr %250, align 4, !tbaa !8
  %252 = lshr i32 %.sroa.0.0, 8
  %253 = and i32 %252, 255
  %254 = zext nneg i32 %253 to i64
  %255 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %254
  %256 = load i32, ptr %255, align 4, !tbaa !8
  %257 = lshr i32 %.sroa.122.0, 16
  %258 = and i32 %257, 255
  %259 = zext nneg i32 %258 to i64
  %260 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %259
  %261 = load i32, ptr %260, align 4, !tbaa !8
  %262 = lshr i32 %.sroa.82.0, 24
  %263 = zext nneg i32 %262 to i64
  %264 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %263
  %265 = load i32, ptr %264, align 4, !tbaa !8
  %266 = xor i32 %251, %247
  %267 = xor i32 %266, %256
  %268 = xor i32 %267, %261
  %269 = xor i32 %268, %265
  %270 = getelementptr inbounds i8, ptr %27, i64 -168
  %271 = load i32, ptr %270, align 4, !tbaa !8
  %272 = and i32 %.sroa.82.0, 255
  %273 = zext nneg i32 %272 to i64
  %274 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %273
  %275 = load i32, ptr %274, align 4, !tbaa !8
  %276 = lshr i32 %.sroa.42.0, 8
  %277 = and i32 %276, 255
  %278 = zext nneg i32 %277 to i64
  %279 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %278
  %280 = load i32, ptr %279, align 4, !tbaa !8
  %281 = lshr i32 %.sroa.0.0, 16
  %282 = and i32 %281, 255
  %283 = zext nneg i32 %282 to i64
  %284 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %283
  %285 = load i32, ptr %284, align 4, !tbaa !8
  %286 = lshr i32 %.sroa.122.0, 24
  %287 = zext nneg i32 %286 to i64
  %288 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %287
  %289 = load i32, ptr %288, align 4, !tbaa !8
  %290 = xor i32 %275, %271
  %291 = xor i32 %290, %280
  %292 = xor i32 %291, %285
  %293 = xor i32 %292, %289
  %294 = getelementptr inbounds i8, ptr %27, i64 -164
  %295 = load i32, ptr %294, align 4, !tbaa !8
  %296 = and i32 %.sroa.122.0, 255
  %297 = zext nneg i32 %296 to i64
  %298 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %297
  %299 = load i32, ptr %298, align 4, !tbaa !8
  %300 = lshr i32 %.sroa.82.0, 8
  %301 = and i32 %300, 255
  %302 = zext nneg i32 %301 to i64
  %303 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %302
  %304 = load i32, ptr %303, align 4, !tbaa !8
  %305 = lshr i32 %.sroa.42.0, 16
  %306 = and i32 %305, 255
  %307 = zext nneg i32 %306 to i64
  %308 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %307
  %309 = load i32, ptr %308, align 4, !tbaa !8
  %310 = lshr i32 %.sroa.0.0, 24
  %311 = zext nneg i32 %310 to i64
  %312 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %311
  %313 = load i32, ptr %312, align 4, !tbaa !8
  %314 = xor i32 %299, %295
  %315 = xor i32 %314, %304
  %316 = xor i32 %315, %309
  %317 = xor i32 %316, %313
  %318 = getelementptr inbounds i8, ptr %27, i64 -160
  %319 = load i32, ptr %318, align 4, !tbaa !8
  %320 = and i32 %245, 255
  %321 = zext nneg i32 %320 to i64
  %322 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %321
  %323 = load i32, ptr %322, align 4, !tbaa !8
  %324 = lshr i32 %317, 8
  %325 = and i32 %324, 255
  %326 = zext nneg i32 %325 to i64
  %327 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %326
  %328 = load i32, ptr %327, align 4, !tbaa !8
  %329 = lshr i32 %293, 16
  %330 = and i32 %329, 255
  %331 = zext nneg i32 %330 to i64
  %332 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %331
  %333 = load i32, ptr %332, align 4, !tbaa !8
  %334 = lshr i32 %269, 24
  %335 = zext nneg i32 %334 to i64
  %336 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %335
  %337 = load i32, ptr %336, align 4, !tbaa !8
  %338 = xor i32 %323, %319
  %339 = xor i32 %338, %328
  %340 = xor i32 %339, %333
  %341 = xor i32 %340, %337
  %342 = getelementptr inbounds i8, ptr %27, i64 -156
  %343 = load i32, ptr %342, align 4, !tbaa !8
  %344 = and i32 %269, 255
  %345 = zext nneg i32 %344 to i64
  %346 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %345
  %347 = load i32, ptr %346, align 4, !tbaa !8
  %348 = lshr i32 %245, 8
  %349 = and i32 %348, 255
  %350 = zext nneg i32 %349 to i64
  %351 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %350
  %352 = load i32, ptr %351, align 4, !tbaa !8
  %353 = lshr i32 %317, 16
  %354 = and i32 %353, 255
  %355 = zext nneg i32 %354 to i64
  %356 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %355
  %357 = load i32, ptr %356, align 4, !tbaa !8
  %358 = lshr i32 %293, 24
  %359 = zext nneg i32 %358 to i64
  %360 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %359
  %361 = load i32, ptr %360, align 4, !tbaa !8
  %362 = xor i32 %347, %343
  %363 = xor i32 %362, %352
  %364 = xor i32 %363, %357
  %365 = xor i32 %364, %361
  %366 = getelementptr inbounds i8, ptr %27, i64 -152
  %367 = load i32, ptr %366, align 4, !tbaa !8
  %368 = and i32 %293, 255
  %369 = zext nneg i32 %368 to i64
  %370 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %369
  %371 = load i32, ptr %370, align 4, !tbaa !8
  %372 = lshr i32 %269, 8
  %373 = and i32 %372, 255
  %374 = zext nneg i32 %373 to i64
  %375 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %374
  %376 = load i32, ptr %375, align 4, !tbaa !8
  %377 = lshr i32 %245, 16
  %378 = and i32 %377, 255
  %379 = zext nneg i32 %378 to i64
  %380 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %379
  %381 = load i32, ptr %380, align 4, !tbaa !8
  %382 = lshr i32 %317, 24
  %383 = zext nneg i32 %382 to i64
  %384 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %383
  %385 = load i32, ptr %384, align 4, !tbaa !8
  %386 = xor i32 %371, %367
  %387 = xor i32 %386, %376
  %388 = xor i32 %387, %381
  %389 = xor i32 %388, %385
  %390 = getelementptr inbounds i8, ptr %27, i64 -148
  %391 = load i32, ptr %390, align 4, !tbaa !8
  %392 = and i32 %317, 255
  %393 = zext nneg i32 %392 to i64
  %394 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %393
  %395 = load i32, ptr %394, align 4, !tbaa !8
  %396 = lshr i32 %293, 8
  %397 = and i32 %396, 255
  %398 = zext nneg i32 %397 to i64
  %399 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %398
  %400 = load i32, ptr %399, align 4, !tbaa !8
  %401 = lshr i32 %269, 16
  %402 = and i32 %401, 255
  %403 = zext nneg i32 %402 to i64
  %404 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %403
  %405 = load i32, ptr %404, align 4, !tbaa !8
  %406 = lshr i32 %245, 24
  %407 = zext nneg i32 %406 to i64
  %408 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %407
  %409 = load i32, ptr %408, align 4, !tbaa !8
  %410 = xor i32 %395, %391
  %411 = xor i32 %410, %400
  %412 = xor i32 %411, %405
  %413 = xor i32 %412, %409
  br label %414

414:                                              ; preds = %221, %6
  %.sroa.122.1 = phi i32 [ %24, %6 ], [ %413, %221 ]
  %.sroa.82.1 = phi i32 [ %19, %6 ], [ %389, %221 ]
  %.sroa.42.1 = phi i32 [ %14, %6 ], [ %365, %221 ]
  %.sroa.0.1 = phi i32 [ %9, %6 ], [ %341, %221 ]
  %415 = getelementptr inbounds i8, ptr %27, i64 -144
  %416 = load i32, ptr %415, align 4, !tbaa !8
  %417 = and i32 %.sroa.0.1, 255
  %418 = zext nneg i32 %417 to i64
  %419 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %418
  %420 = load i32, ptr %419, align 4, !tbaa !8
  %421 = lshr i32 %.sroa.122.1, 8
  %422 = and i32 %421, 255
  %423 = zext nneg i32 %422 to i64
  %424 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %423
  %425 = load i32, ptr %424, align 4, !tbaa !8
  %426 = lshr i32 %.sroa.82.1, 16
  %427 = and i32 %426, 255
  %428 = zext nneg i32 %427 to i64
  %429 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %428
  %430 = load i32, ptr %429, align 4, !tbaa !8
  %431 = lshr i32 %.sroa.42.1, 24
  %432 = zext nneg i32 %431 to i64
  %433 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %432
  %434 = load i32, ptr %433, align 4, !tbaa !8
  %435 = xor i32 %420, %416
  %436 = xor i32 %435, %425
  %437 = xor i32 %436, %430
  %438 = xor i32 %437, %434
  %439 = getelementptr inbounds i8, ptr %27, i64 -140
  %440 = load i32, ptr %439, align 4, !tbaa !8
  %441 = and i32 %.sroa.42.1, 255
  %442 = zext nneg i32 %441 to i64
  %443 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %442
  %444 = load i32, ptr %443, align 4, !tbaa !8
  %445 = lshr i32 %.sroa.0.1, 8
  %446 = and i32 %445, 255
  %447 = zext nneg i32 %446 to i64
  %448 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %447
  %449 = load i32, ptr %448, align 4, !tbaa !8
  %450 = lshr i32 %.sroa.122.1, 16
  %451 = and i32 %450, 255
  %452 = zext nneg i32 %451 to i64
  %453 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %452
  %454 = load i32, ptr %453, align 4, !tbaa !8
  %455 = lshr i32 %.sroa.82.1, 24
  %456 = zext nneg i32 %455 to i64
  %457 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %456
  %458 = load i32, ptr %457, align 4, !tbaa !8
  %459 = xor i32 %444, %440
  %460 = xor i32 %459, %449
  %461 = xor i32 %460, %454
  %462 = xor i32 %461, %458
  %463 = getelementptr inbounds i8, ptr %27, i64 -136
  %464 = load i32, ptr %463, align 4, !tbaa !8
  %465 = and i32 %.sroa.82.1, 255
  %466 = zext nneg i32 %465 to i64
  %467 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %466
  %468 = load i32, ptr %467, align 4, !tbaa !8
  %469 = lshr i32 %.sroa.42.1, 8
  %470 = and i32 %469, 255
  %471 = zext nneg i32 %470 to i64
  %472 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %471
  %473 = load i32, ptr %472, align 4, !tbaa !8
  %474 = lshr i32 %.sroa.0.1, 16
  %475 = and i32 %474, 255
  %476 = zext nneg i32 %475 to i64
  %477 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %476
  %478 = load i32, ptr %477, align 4, !tbaa !8
  %479 = lshr i32 %.sroa.122.1, 24
  %480 = zext nneg i32 %479 to i64
  %481 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %480
  %482 = load i32, ptr %481, align 4, !tbaa !8
  %483 = xor i32 %468, %464
  %484 = xor i32 %483, %473
  %485 = xor i32 %484, %478
  %486 = xor i32 %485, %482
  %487 = getelementptr inbounds i8, ptr %27, i64 -132
  %488 = load i32, ptr %487, align 4, !tbaa !8
  %489 = and i32 %.sroa.122.1, 255
  %490 = zext nneg i32 %489 to i64
  %491 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %490
  %492 = load i32, ptr %491, align 4, !tbaa !8
  %493 = lshr i32 %.sroa.82.1, 8
  %494 = and i32 %493, 255
  %495 = zext nneg i32 %494 to i64
  %496 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %495
  %497 = load i32, ptr %496, align 4, !tbaa !8
  %498 = lshr i32 %.sroa.42.1, 16
  %499 = and i32 %498, 255
  %500 = zext nneg i32 %499 to i64
  %501 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %500
  %502 = load i32, ptr %501, align 4, !tbaa !8
  %503 = lshr i32 %.sroa.0.1, 24
  %504 = zext nneg i32 %503 to i64
  %505 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %504
  %506 = load i32, ptr %505, align 4, !tbaa !8
  %507 = xor i32 %492, %488
  %508 = xor i32 %507, %497
  %509 = xor i32 %508, %502
  %510 = xor i32 %509, %506
  %511 = getelementptr inbounds i8, ptr %27, i64 -128
  %512 = load i32, ptr %511, align 4, !tbaa !8
  %513 = and i32 %438, 255
  %514 = zext nneg i32 %513 to i64
  %515 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %514
  %516 = load i32, ptr %515, align 4, !tbaa !8
  %517 = lshr i32 %510, 8
  %518 = and i32 %517, 255
  %519 = zext nneg i32 %518 to i64
  %520 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %519
  %521 = load i32, ptr %520, align 4, !tbaa !8
  %522 = lshr i32 %486, 16
  %523 = and i32 %522, 255
  %524 = zext nneg i32 %523 to i64
  %525 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %524
  %526 = load i32, ptr %525, align 4, !tbaa !8
  %527 = lshr i32 %462, 24
  %528 = zext nneg i32 %527 to i64
  %529 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %528
  %530 = load i32, ptr %529, align 4, !tbaa !8
  %531 = xor i32 %516, %512
  %532 = xor i32 %531, %521
  %533 = xor i32 %532, %526
  %534 = xor i32 %533, %530
  %535 = getelementptr inbounds i8, ptr %27, i64 -124
  %536 = load i32, ptr %535, align 4, !tbaa !8
  %537 = and i32 %462, 255
  %538 = zext nneg i32 %537 to i64
  %539 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %538
  %540 = load i32, ptr %539, align 4, !tbaa !8
  %541 = lshr i32 %438, 8
  %542 = and i32 %541, 255
  %543 = zext nneg i32 %542 to i64
  %544 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %543
  %545 = load i32, ptr %544, align 4, !tbaa !8
  %546 = lshr i32 %510, 16
  %547 = and i32 %546, 255
  %548 = zext nneg i32 %547 to i64
  %549 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %548
  %550 = load i32, ptr %549, align 4, !tbaa !8
  %551 = lshr i32 %486, 24
  %552 = zext nneg i32 %551 to i64
  %553 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %552
  %554 = load i32, ptr %553, align 4, !tbaa !8
  %555 = xor i32 %540, %536
  %556 = xor i32 %555, %545
  %557 = xor i32 %556, %550
  %558 = xor i32 %557, %554
  %559 = getelementptr inbounds i8, ptr %27, i64 -120
  %560 = load i32, ptr %559, align 4, !tbaa !8
  %561 = and i32 %486, 255
  %562 = zext nneg i32 %561 to i64
  %563 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %562
  %564 = load i32, ptr %563, align 4, !tbaa !8
  %565 = lshr i32 %462, 8
  %566 = and i32 %565, 255
  %567 = zext nneg i32 %566 to i64
  %568 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %567
  %569 = load i32, ptr %568, align 4, !tbaa !8
  %570 = lshr i32 %438, 16
  %571 = and i32 %570, 255
  %572 = zext nneg i32 %571 to i64
  %573 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %572
  %574 = load i32, ptr %573, align 4, !tbaa !8
  %575 = lshr i32 %510, 24
  %576 = zext nneg i32 %575 to i64
  %577 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %576
  %578 = load i32, ptr %577, align 4, !tbaa !8
  %579 = xor i32 %564, %560
  %580 = xor i32 %579, %569
  %581 = xor i32 %580, %574
  %582 = xor i32 %581, %578
  %583 = getelementptr inbounds i8, ptr %27, i64 -116
  %584 = load i32, ptr %583, align 4, !tbaa !8
  %585 = and i32 %510, 255
  %586 = zext nneg i32 %585 to i64
  %587 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %586
  %588 = load i32, ptr %587, align 4, !tbaa !8
  %589 = lshr i32 %486, 8
  %590 = and i32 %589, 255
  %591 = zext nneg i32 %590 to i64
  %592 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %591
  %593 = load i32, ptr %592, align 4, !tbaa !8
  %594 = lshr i32 %462, 16
  %595 = and i32 %594, 255
  %596 = zext nneg i32 %595 to i64
  %597 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %596
  %598 = load i32, ptr %597, align 4, !tbaa !8
  %599 = lshr i32 %438, 24
  %600 = zext nneg i32 %599 to i64
  %601 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %600
  %602 = load i32, ptr %601, align 4, !tbaa !8
  %603 = xor i32 %588, %584
  %604 = xor i32 %603, %593
  %605 = xor i32 %604, %598
  %606 = xor i32 %605, %602
  %607 = getelementptr inbounds i8, ptr %27, i64 -112
  %608 = load i32, ptr %607, align 4, !tbaa !8
  %609 = and i32 %534, 255
  %610 = zext nneg i32 %609 to i64
  %611 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %610
  %612 = load i32, ptr %611, align 4, !tbaa !8
  %613 = lshr i32 %606, 8
  %614 = and i32 %613, 255
  %615 = zext nneg i32 %614 to i64
  %616 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %615
  %617 = load i32, ptr %616, align 4, !tbaa !8
  %618 = lshr i32 %582, 16
  %619 = and i32 %618, 255
  %620 = zext nneg i32 %619 to i64
  %621 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %620
  %622 = load i32, ptr %621, align 4, !tbaa !8
  %623 = lshr i32 %558, 24
  %624 = zext nneg i32 %623 to i64
  %625 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %624
  %626 = load i32, ptr %625, align 4, !tbaa !8
  %627 = xor i32 %612, %608
  %628 = xor i32 %627, %617
  %629 = xor i32 %628, %622
  %630 = xor i32 %629, %626
  %631 = getelementptr inbounds i8, ptr %27, i64 -108
  %632 = load i32, ptr %631, align 4, !tbaa !8
  %633 = and i32 %558, 255
  %634 = zext nneg i32 %633 to i64
  %635 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %634
  %636 = load i32, ptr %635, align 4, !tbaa !8
  %637 = lshr i32 %534, 8
  %638 = and i32 %637, 255
  %639 = zext nneg i32 %638 to i64
  %640 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %639
  %641 = load i32, ptr %640, align 4, !tbaa !8
  %642 = lshr i32 %606, 16
  %643 = and i32 %642, 255
  %644 = zext nneg i32 %643 to i64
  %645 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %644
  %646 = load i32, ptr %645, align 4, !tbaa !8
  %647 = lshr i32 %582, 24
  %648 = zext nneg i32 %647 to i64
  %649 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %648
  %650 = load i32, ptr %649, align 4, !tbaa !8
  %651 = xor i32 %636, %632
  %652 = xor i32 %651, %641
  %653 = xor i32 %652, %646
  %654 = xor i32 %653, %650
  %655 = getelementptr inbounds i8, ptr %27, i64 -104
  %656 = load i32, ptr %655, align 4, !tbaa !8
  %657 = and i32 %582, 255
  %658 = zext nneg i32 %657 to i64
  %659 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %658
  %660 = load i32, ptr %659, align 4, !tbaa !8
  %661 = lshr i32 %558, 8
  %662 = and i32 %661, 255
  %663 = zext nneg i32 %662 to i64
  %664 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %663
  %665 = load i32, ptr %664, align 4, !tbaa !8
  %666 = lshr i32 %534, 16
  %667 = and i32 %666, 255
  %668 = zext nneg i32 %667 to i64
  %669 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %668
  %670 = load i32, ptr %669, align 4, !tbaa !8
  %671 = lshr i32 %606, 24
  %672 = zext nneg i32 %671 to i64
  %673 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %672
  %674 = load i32, ptr %673, align 4, !tbaa !8
  %675 = xor i32 %660, %656
  %676 = xor i32 %675, %665
  %677 = xor i32 %676, %670
  %678 = xor i32 %677, %674
  %679 = getelementptr inbounds i8, ptr %27, i64 -100
  %680 = load i32, ptr %679, align 4, !tbaa !8
  %681 = and i32 %606, 255
  %682 = zext nneg i32 %681 to i64
  %683 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %682
  %684 = load i32, ptr %683, align 4, !tbaa !8
  %685 = lshr i32 %582, 8
  %686 = and i32 %685, 255
  %687 = zext nneg i32 %686 to i64
  %688 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %687
  %689 = load i32, ptr %688, align 4, !tbaa !8
  %690 = lshr i32 %558, 16
  %691 = and i32 %690, 255
  %692 = zext nneg i32 %691 to i64
  %693 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %692
  %694 = load i32, ptr %693, align 4, !tbaa !8
  %695 = lshr i32 %534, 24
  %696 = zext nneg i32 %695 to i64
  %697 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %696
  %698 = load i32, ptr %697, align 4, !tbaa !8
  %699 = xor i32 %684, %680
  %700 = xor i32 %699, %689
  %701 = xor i32 %700, %694
  %702 = xor i32 %701, %698
  %703 = getelementptr inbounds i8, ptr %27, i64 -96
  %704 = load i32, ptr %703, align 4, !tbaa !8
  %705 = and i32 %630, 255
  %706 = zext nneg i32 %705 to i64
  %707 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %706
  %708 = load i32, ptr %707, align 4, !tbaa !8
  %709 = lshr i32 %702, 8
  %710 = and i32 %709, 255
  %711 = zext nneg i32 %710 to i64
  %712 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %711
  %713 = load i32, ptr %712, align 4, !tbaa !8
  %714 = lshr i32 %678, 16
  %715 = and i32 %714, 255
  %716 = zext nneg i32 %715 to i64
  %717 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %716
  %718 = load i32, ptr %717, align 4, !tbaa !8
  %719 = lshr i32 %654, 24
  %720 = zext nneg i32 %719 to i64
  %721 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %720
  %722 = load i32, ptr %721, align 4, !tbaa !8
  %723 = xor i32 %708, %704
  %724 = xor i32 %723, %713
  %725 = xor i32 %724, %718
  %726 = xor i32 %725, %722
  %727 = getelementptr inbounds i8, ptr %27, i64 -92
  %728 = load i32, ptr %727, align 4, !tbaa !8
  %729 = and i32 %654, 255
  %730 = zext nneg i32 %729 to i64
  %731 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %730
  %732 = load i32, ptr %731, align 4, !tbaa !8
  %733 = lshr i32 %630, 8
  %734 = and i32 %733, 255
  %735 = zext nneg i32 %734 to i64
  %736 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %735
  %737 = load i32, ptr %736, align 4, !tbaa !8
  %738 = lshr i32 %702, 16
  %739 = and i32 %738, 255
  %740 = zext nneg i32 %739 to i64
  %741 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %740
  %742 = load i32, ptr %741, align 4, !tbaa !8
  %743 = lshr i32 %678, 24
  %744 = zext nneg i32 %743 to i64
  %745 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %744
  %746 = load i32, ptr %745, align 4, !tbaa !8
  %747 = xor i32 %732, %728
  %748 = xor i32 %747, %737
  %749 = xor i32 %748, %742
  %750 = xor i32 %749, %746
  %751 = getelementptr inbounds i8, ptr %27, i64 -88
  %752 = load i32, ptr %751, align 4, !tbaa !8
  %753 = and i32 %678, 255
  %754 = zext nneg i32 %753 to i64
  %755 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %754
  %756 = load i32, ptr %755, align 4, !tbaa !8
  %757 = lshr i32 %654, 8
  %758 = and i32 %757, 255
  %759 = zext nneg i32 %758 to i64
  %760 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %759
  %761 = load i32, ptr %760, align 4, !tbaa !8
  %762 = lshr i32 %630, 16
  %763 = and i32 %762, 255
  %764 = zext nneg i32 %763 to i64
  %765 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %764
  %766 = load i32, ptr %765, align 4, !tbaa !8
  %767 = lshr i32 %702, 24
  %768 = zext nneg i32 %767 to i64
  %769 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %768
  %770 = load i32, ptr %769, align 4, !tbaa !8
  %771 = xor i32 %756, %752
  %772 = xor i32 %771, %761
  %773 = xor i32 %772, %766
  %774 = xor i32 %773, %770
  %775 = getelementptr inbounds i8, ptr %27, i64 -84
  %776 = load i32, ptr %775, align 4, !tbaa !8
  %777 = and i32 %702, 255
  %778 = zext nneg i32 %777 to i64
  %779 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %778
  %780 = load i32, ptr %779, align 4, !tbaa !8
  %781 = lshr i32 %678, 8
  %782 = and i32 %781, 255
  %783 = zext nneg i32 %782 to i64
  %784 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %783
  %785 = load i32, ptr %784, align 4, !tbaa !8
  %786 = lshr i32 %654, 16
  %787 = and i32 %786, 255
  %788 = zext nneg i32 %787 to i64
  %789 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %788
  %790 = load i32, ptr %789, align 4, !tbaa !8
  %791 = lshr i32 %630, 24
  %792 = zext nneg i32 %791 to i64
  %793 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %792
  %794 = load i32, ptr %793, align 4, !tbaa !8
  %795 = xor i32 %780, %776
  %796 = xor i32 %795, %785
  %797 = xor i32 %796, %790
  %798 = xor i32 %797, %794
  %799 = getelementptr inbounds i8, ptr %27, i64 -80
  %800 = load i32, ptr %799, align 4, !tbaa !8
  %801 = and i32 %726, 255
  %802 = zext nneg i32 %801 to i64
  %803 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %802
  %804 = load i32, ptr %803, align 4, !tbaa !8
  %805 = lshr i32 %798, 8
  %806 = and i32 %805, 255
  %807 = zext nneg i32 %806 to i64
  %808 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %807
  %809 = load i32, ptr %808, align 4, !tbaa !8
  %810 = lshr i32 %774, 16
  %811 = and i32 %810, 255
  %812 = zext nneg i32 %811 to i64
  %813 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %812
  %814 = load i32, ptr %813, align 4, !tbaa !8
  %815 = lshr i32 %750, 24
  %816 = zext nneg i32 %815 to i64
  %817 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %816
  %818 = load i32, ptr %817, align 4, !tbaa !8
  %819 = xor i32 %804, %800
  %820 = xor i32 %819, %809
  %821 = xor i32 %820, %814
  %822 = xor i32 %821, %818
  %823 = getelementptr inbounds i8, ptr %27, i64 -76
  %824 = load i32, ptr %823, align 4, !tbaa !8
  %825 = and i32 %750, 255
  %826 = zext nneg i32 %825 to i64
  %827 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %826
  %828 = load i32, ptr %827, align 4, !tbaa !8
  %829 = lshr i32 %726, 8
  %830 = and i32 %829, 255
  %831 = zext nneg i32 %830 to i64
  %832 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %831
  %833 = load i32, ptr %832, align 4, !tbaa !8
  %834 = lshr i32 %798, 16
  %835 = and i32 %834, 255
  %836 = zext nneg i32 %835 to i64
  %837 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %836
  %838 = load i32, ptr %837, align 4, !tbaa !8
  %839 = lshr i32 %774, 24
  %840 = zext nneg i32 %839 to i64
  %841 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %840
  %842 = load i32, ptr %841, align 4, !tbaa !8
  %843 = xor i32 %828, %824
  %844 = xor i32 %843, %833
  %845 = xor i32 %844, %838
  %846 = xor i32 %845, %842
  %847 = getelementptr inbounds i8, ptr %27, i64 -72
  %848 = load i32, ptr %847, align 4, !tbaa !8
  %849 = and i32 %774, 255
  %850 = zext nneg i32 %849 to i64
  %851 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %850
  %852 = load i32, ptr %851, align 4, !tbaa !8
  %853 = lshr i32 %750, 8
  %854 = and i32 %853, 255
  %855 = zext nneg i32 %854 to i64
  %856 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %855
  %857 = load i32, ptr %856, align 4, !tbaa !8
  %858 = lshr i32 %726, 16
  %859 = and i32 %858, 255
  %860 = zext nneg i32 %859 to i64
  %861 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %860
  %862 = load i32, ptr %861, align 4, !tbaa !8
  %863 = lshr i32 %798, 24
  %864 = zext nneg i32 %863 to i64
  %865 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %864
  %866 = load i32, ptr %865, align 4, !tbaa !8
  %867 = xor i32 %852, %848
  %868 = xor i32 %867, %857
  %869 = xor i32 %868, %862
  %870 = xor i32 %869, %866
  %871 = getelementptr inbounds i8, ptr %27, i64 -68
  %872 = load i32, ptr %871, align 4, !tbaa !8
  %873 = and i32 %798, 255
  %874 = zext nneg i32 %873 to i64
  %875 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %874
  %876 = load i32, ptr %875, align 4, !tbaa !8
  %877 = lshr i32 %774, 8
  %878 = and i32 %877, 255
  %879 = zext nneg i32 %878 to i64
  %880 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %879
  %881 = load i32, ptr %880, align 4, !tbaa !8
  %882 = lshr i32 %750, 16
  %883 = and i32 %882, 255
  %884 = zext nneg i32 %883 to i64
  %885 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %884
  %886 = load i32, ptr %885, align 4, !tbaa !8
  %887 = lshr i32 %726, 24
  %888 = zext nneg i32 %887 to i64
  %889 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %888
  %890 = load i32, ptr %889, align 4, !tbaa !8
  %891 = xor i32 %876, %872
  %892 = xor i32 %891, %881
  %893 = xor i32 %892, %886
  %894 = xor i32 %893, %890
  %895 = getelementptr inbounds i8, ptr %27, i64 -64
  %896 = load i32, ptr %895, align 4, !tbaa !8
  %897 = and i32 %822, 255
  %898 = zext nneg i32 %897 to i64
  %899 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %898
  %900 = load i32, ptr %899, align 4, !tbaa !8
  %901 = lshr i32 %894, 8
  %902 = and i32 %901, 255
  %903 = zext nneg i32 %902 to i64
  %904 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %903
  %905 = load i32, ptr %904, align 4, !tbaa !8
  %906 = lshr i32 %870, 16
  %907 = and i32 %906, 255
  %908 = zext nneg i32 %907 to i64
  %909 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %908
  %910 = load i32, ptr %909, align 4, !tbaa !8
  %911 = lshr i32 %846, 24
  %912 = zext nneg i32 %911 to i64
  %913 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %912
  %914 = load i32, ptr %913, align 4, !tbaa !8
  %915 = xor i32 %900, %896
  %916 = xor i32 %915, %905
  %917 = xor i32 %916, %910
  %918 = xor i32 %917, %914
  %919 = getelementptr inbounds i8, ptr %27, i64 -60
  %920 = load i32, ptr %919, align 4, !tbaa !8
  %921 = and i32 %846, 255
  %922 = zext nneg i32 %921 to i64
  %923 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %922
  %924 = load i32, ptr %923, align 4, !tbaa !8
  %925 = lshr i32 %822, 8
  %926 = and i32 %925, 255
  %927 = zext nneg i32 %926 to i64
  %928 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %927
  %929 = load i32, ptr %928, align 4, !tbaa !8
  %930 = lshr i32 %894, 16
  %931 = and i32 %930, 255
  %932 = zext nneg i32 %931 to i64
  %933 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %932
  %934 = load i32, ptr %933, align 4, !tbaa !8
  %935 = lshr i32 %870, 24
  %936 = zext nneg i32 %935 to i64
  %937 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %936
  %938 = load i32, ptr %937, align 4, !tbaa !8
  %939 = xor i32 %924, %920
  %940 = xor i32 %939, %929
  %941 = xor i32 %940, %934
  %942 = xor i32 %941, %938
  %943 = getelementptr inbounds i8, ptr %27, i64 -56
  %944 = load i32, ptr %943, align 4, !tbaa !8
  %945 = and i32 %870, 255
  %946 = zext nneg i32 %945 to i64
  %947 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %946
  %948 = load i32, ptr %947, align 4, !tbaa !8
  %949 = lshr i32 %846, 8
  %950 = and i32 %949, 255
  %951 = zext nneg i32 %950 to i64
  %952 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %951
  %953 = load i32, ptr %952, align 4, !tbaa !8
  %954 = lshr i32 %822, 16
  %955 = and i32 %954, 255
  %956 = zext nneg i32 %955 to i64
  %957 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %956
  %958 = load i32, ptr %957, align 4, !tbaa !8
  %959 = lshr i32 %894, 24
  %960 = zext nneg i32 %959 to i64
  %961 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %960
  %962 = load i32, ptr %961, align 4, !tbaa !8
  %963 = xor i32 %948, %944
  %964 = xor i32 %963, %953
  %965 = xor i32 %964, %958
  %966 = xor i32 %965, %962
  %967 = getelementptr inbounds i8, ptr %27, i64 -52
  %968 = load i32, ptr %967, align 4, !tbaa !8
  %969 = and i32 %894, 255
  %970 = zext nneg i32 %969 to i64
  %971 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %970
  %972 = load i32, ptr %971, align 4, !tbaa !8
  %973 = lshr i32 %870, 8
  %974 = and i32 %973, 255
  %975 = zext nneg i32 %974 to i64
  %976 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %975
  %977 = load i32, ptr %976, align 4, !tbaa !8
  %978 = lshr i32 %846, 16
  %979 = and i32 %978, 255
  %980 = zext nneg i32 %979 to i64
  %981 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %980
  %982 = load i32, ptr %981, align 4, !tbaa !8
  %983 = lshr i32 %822, 24
  %984 = zext nneg i32 %983 to i64
  %985 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %984
  %986 = load i32, ptr %985, align 4, !tbaa !8
  %987 = xor i32 %972, %968
  %988 = xor i32 %987, %977
  %989 = xor i32 %988, %982
  %990 = xor i32 %989, %986
  %991 = getelementptr inbounds i8, ptr %27, i64 -48
  %992 = load i32, ptr %991, align 4, !tbaa !8
  %993 = and i32 %918, 255
  %994 = zext nneg i32 %993 to i64
  %995 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %994
  %996 = load i32, ptr %995, align 4, !tbaa !8
  %997 = lshr i32 %990, 8
  %998 = and i32 %997, 255
  %999 = zext nneg i32 %998 to i64
  %1000 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %999
  %1001 = load i32, ptr %1000, align 4, !tbaa !8
  %1002 = lshr i32 %966, 16
  %1003 = and i32 %1002, 255
  %1004 = zext nneg i32 %1003 to i64
  %1005 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1004
  %1006 = load i32, ptr %1005, align 4, !tbaa !8
  %1007 = lshr i32 %942, 24
  %1008 = zext nneg i32 %1007 to i64
  %1009 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1008
  %1010 = load i32, ptr %1009, align 4, !tbaa !8
  %1011 = xor i32 %996, %992
  %1012 = xor i32 %1011, %1001
  %1013 = xor i32 %1012, %1006
  %1014 = xor i32 %1013, %1010
  %1015 = getelementptr inbounds i8, ptr %27, i64 -44
  %1016 = load i32, ptr %1015, align 4, !tbaa !8
  %1017 = and i32 %942, 255
  %1018 = zext nneg i32 %1017 to i64
  %1019 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1018
  %1020 = load i32, ptr %1019, align 4, !tbaa !8
  %1021 = lshr i32 %918, 8
  %1022 = and i32 %1021, 255
  %1023 = zext nneg i32 %1022 to i64
  %1024 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1023
  %1025 = load i32, ptr %1024, align 4, !tbaa !8
  %1026 = lshr i32 %990, 16
  %1027 = and i32 %1026, 255
  %1028 = zext nneg i32 %1027 to i64
  %1029 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1028
  %1030 = load i32, ptr %1029, align 4, !tbaa !8
  %1031 = lshr i32 %966, 24
  %1032 = zext nneg i32 %1031 to i64
  %1033 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1032
  %1034 = load i32, ptr %1033, align 4, !tbaa !8
  %1035 = xor i32 %1020, %1016
  %1036 = xor i32 %1035, %1025
  %1037 = xor i32 %1036, %1030
  %1038 = xor i32 %1037, %1034
  %1039 = getelementptr inbounds i8, ptr %27, i64 -40
  %1040 = load i32, ptr %1039, align 4, !tbaa !8
  %1041 = and i32 %966, 255
  %1042 = zext nneg i32 %1041 to i64
  %1043 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1042
  %1044 = load i32, ptr %1043, align 4, !tbaa !8
  %1045 = lshr i32 %942, 8
  %1046 = and i32 %1045, 255
  %1047 = zext nneg i32 %1046 to i64
  %1048 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1047
  %1049 = load i32, ptr %1048, align 4, !tbaa !8
  %1050 = lshr i32 %918, 16
  %1051 = and i32 %1050, 255
  %1052 = zext nneg i32 %1051 to i64
  %1053 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1052
  %1054 = load i32, ptr %1053, align 4, !tbaa !8
  %1055 = lshr i32 %990, 24
  %1056 = zext nneg i32 %1055 to i64
  %1057 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1056
  %1058 = load i32, ptr %1057, align 4, !tbaa !8
  %1059 = xor i32 %1044, %1040
  %1060 = xor i32 %1059, %1049
  %1061 = xor i32 %1060, %1054
  %1062 = xor i32 %1061, %1058
  %1063 = getelementptr inbounds i8, ptr %27, i64 -36
  %1064 = load i32, ptr %1063, align 4, !tbaa !8
  %1065 = and i32 %990, 255
  %1066 = zext nneg i32 %1065 to i64
  %1067 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1066
  %1068 = load i32, ptr %1067, align 4, !tbaa !8
  %1069 = lshr i32 %966, 8
  %1070 = and i32 %1069, 255
  %1071 = zext nneg i32 %1070 to i64
  %1072 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1071
  %1073 = load i32, ptr %1072, align 4, !tbaa !8
  %1074 = lshr i32 %942, 16
  %1075 = and i32 %1074, 255
  %1076 = zext nneg i32 %1075 to i64
  %1077 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1076
  %1078 = load i32, ptr %1077, align 4, !tbaa !8
  %1079 = lshr i32 %918, 24
  %1080 = zext nneg i32 %1079 to i64
  %1081 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1080
  %1082 = load i32, ptr %1081, align 4, !tbaa !8
  %1083 = xor i32 %1068, %1064
  %1084 = xor i32 %1083, %1073
  %1085 = xor i32 %1084, %1078
  %1086 = xor i32 %1085, %1082
  %1087 = getelementptr inbounds i8, ptr %27, i64 -32
  %1088 = load i32, ptr %1087, align 4, !tbaa !8
  %1089 = and i32 %1014, 255
  %1090 = zext nneg i32 %1089 to i64
  %1091 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1090
  %1092 = load i32, ptr %1091, align 4, !tbaa !8
  %1093 = lshr i32 %1086, 8
  %1094 = and i32 %1093, 255
  %1095 = zext nneg i32 %1094 to i64
  %1096 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1095
  %1097 = load i32, ptr %1096, align 4, !tbaa !8
  %1098 = lshr i32 %1062, 16
  %1099 = and i32 %1098, 255
  %1100 = zext nneg i32 %1099 to i64
  %1101 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1100
  %1102 = load i32, ptr %1101, align 4, !tbaa !8
  %1103 = lshr i32 %1038, 24
  %1104 = zext nneg i32 %1103 to i64
  %1105 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1104
  %1106 = load i32, ptr %1105, align 4, !tbaa !8
  %1107 = xor i32 %1092, %1088
  %1108 = xor i32 %1107, %1097
  %1109 = xor i32 %1108, %1102
  %1110 = xor i32 %1109, %1106
  %1111 = getelementptr inbounds i8, ptr %27, i64 -28
  %1112 = load i32, ptr %1111, align 4, !tbaa !8
  %1113 = and i32 %1038, 255
  %1114 = zext nneg i32 %1113 to i64
  %1115 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1114
  %1116 = load i32, ptr %1115, align 4, !tbaa !8
  %1117 = lshr i32 %1014, 8
  %1118 = and i32 %1117, 255
  %1119 = zext nneg i32 %1118 to i64
  %1120 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1119
  %1121 = load i32, ptr %1120, align 4, !tbaa !8
  %1122 = lshr i32 %1086, 16
  %1123 = and i32 %1122, 255
  %1124 = zext nneg i32 %1123 to i64
  %1125 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1124
  %1126 = load i32, ptr %1125, align 4, !tbaa !8
  %1127 = lshr i32 %1062, 24
  %1128 = zext nneg i32 %1127 to i64
  %1129 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1128
  %1130 = load i32, ptr %1129, align 4, !tbaa !8
  %1131 = xor i32 %1116, %1112
  %1132 = xor i32 %1131, %1121
  %1133 = xor i32 %1132, %1126
  %1134 = xor i32 %1133, %1130
  %1135 = getelementptr inbounds i8, ptr %27, i64 -24
  %1136 = load i32, ptr %1135, align 4, !tbaa !8
  %1137 = and i32 %1062, 255
  %1138 = zext nneg i32 %1137 to i64
  %1139 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1138
  %1140 = load i32, ptr %1139, align 4, !tbaa !8
  %1141 = lshr i32 %1038, 8
  %1142 = and i32 %1141, 255
  %1143 = zext nneg i32 %1142 to i64
  %1144 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1143
  %1145 = load i32, ptr %1144, align 4, !tbaa !8
  %1146 = lshr i32 %1014, 16
  %1147 = and i32 %1146, 255
  %1148 = zext nneg i32 %1147 to i64
  %1149 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1148
  %1150 = load i32, ptr %1149, align 4, !tbaa !8
  %1151 = lshr i32 %1086, 24
  %1152 = zext nneg i32 %1151 to i64
  %1153 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1152
  %1154 = load i32, ptr %1153, align 4, !tbaa !8
  %1155 = xor i32 %1140, %1136
  %1156 = xor i32 %1155, %1145
  %1157 = xor i32 %1156, %1150
  %1158 = xor i32 %1157, %1154
  %1159 = getelementptr inbounds i8, ptr %27, i64 -20
  %1160 = load i32, ptr %1159, align 4, !tbaa !8
  %1161 = and i32 %1086, 255
  %1162 = zext nneg i32 %1161 to i64
  %1163 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1162
  %1164 = load i32, ptr %1163, align 4, !tbaa !8
  %1165 = lshr i32 %1062, 8
  %1166 = and i32 %1165, 255
  %1167 = zext nneg i32 %1166 to i64
  %1168 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1167
  %1169 = load i32, ptr %1168, align 4, !tbaa !8
  %1170 = lshr i32 %1038, 16
  %1171 = and i32 %1170, 255
  %1172 = zext nneg i32 %1171 to i64
  %1173 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1172
  %1174 = load i32, ptr %1173, align 4, !tbaa !8
  %1175 = lshr i32 %1014, 24
  %1176 = zext nneg i32 %1175 to i64
  %1177 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1176
  %1178 = load i32, ptr %1177, align 4, !tbaa !8
  %1179 = xor i32 %1164, %1160
  %1180 = xor i32 %1179, %1169
  %1181 = xor i32 %1180, %1174
  %1182 = xor i32 %1181, %1178
  %1183 = getelementptr inbounds i8, ptr %27, i64 -16
  %1184 = load i32, ptr %1183, align 4, !tbaa !8
  %1185 = and i32 %1110, 255
  %1186 = zext nneg i32 %1185 to i64
  %1187 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1186
  %1188 = load i32, ptr %1187, align 4, !tbaa !8
  %1189 = lshr i32 %1182, 8
  %1190 = and i32 %1189, 255
  %1191 = zext nneg i32 %1190 to i64
  %1192 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1191
  %1193 = load i32, ptr %1192, align 4, !tbaa !8
  %1194 = lshr i32 %1158, 16
  %1195 = and i32 %1194, 255
  %1196 = zext nneg i32 %1195 to i64
  %1197 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1196
  %1198 = load i32, ptr %1197, align 4, !tbaa !8
  %1199 = lshr i32 %1134, 24
  %1200 = zext nneg i32 %1199 to i64
  %1201 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1200
  %1202 = load i32, ptr %1201, align 4, !tbaa !8
  %1203 = xor i32 %1188, %1184
  %1204 = xor i32 %1203, %1193
  %1205 = xor i32 %1204, %1198
  %1206 = xor i32 %1205, %1202
  %1207 = getelementptr inbounds i8, ptr %27, i64 -12
  %1208 = load i32, ptr %1207, align 4, !tbaa !8
  %1209 = and i32 %1134, 255
  %1210 = zext nneg i32 %1209 to i64
  %1211 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1210
  %1212 = load i32, ptr %1211, align 4, !tbaa !8
  %1213 = lshr i32 %1110, 8
  %1214 = and i32 %1213, 255
  %1215 = zext nneg i32 %1214 to i64
  %1216 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1215
  %1217 = load i32, ptr %1216, align 4, !tbaa !8
  %1218 = lshr i32 %1182, 16
  %1219 = and i32 %1218, 255
  %1220 = zext nneg i32 %1219 to i64
  %1221 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1220
  %1222 = load i32, ptr %1221, align 4, !tbaa !8
  %1223 = lshr i32 %1158, 24
  %1224 = zext nneg i32 %1223 to i64
  %1225 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1224
  %1226 = load i32, ptr %1225, align 4, !tbaa !8
  %1227 = xor i32 %1212, %1208
  %1228 = xor i32 %1227, %1217
  %1229 = xor i32 %1228, %1222
  %1230 = xor i32 %1229, %1226
  %1231 = getelementptr inbounds i8, ptr %27, i64 -8
  %1232 = load i32, ptr %1231, align 4, !tbaa !8
  %1233 = and i32 %1158, 255
  %1234 = zext nneg i32 %1233 to i64
  %1235 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1234
  %1236 = load i32, ptr %1235, align 4, !tbaa !8
  %1237 = lshr i32 %1134, 8
  %1238 = and i32 %1237, 255
  %1239 = zext nneg i32 %1238 to i64
  %1240 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1239
  %1241 = load i32, ptr %1240, align 4, !tbaa !8
  %1242 = lshr i32 %1110, 16
  %1243 = and i32 %1242, 255
  %1244 = zext nneg i32 %1243 to i64
  %1245 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1244
  %1246 = load i32, ptr %1245, align 4, !tbaa !8
  %1247 = lshr i32 %1182, 24
  %1248 = zext nneg i32 %1247 to i64
  %1249 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1248
  %1250 = load i32, ptr %1249, align 4, !tbaa !8
  %1251 = xor i32 %1236, %1232
  %1252 = xor i32 %1251, %1241
  %1253 = xor i32 %1252, %1246
  %1254 = xor i32 %1253, %1250
  %1255 = getelementptr inbounds i8, ptr %27, i64 -4
  %1256 = load i32, ptr %1255, align 4, !tbaa !8
  %1257 = and i32 %1182, 255
  %1258 = zext nneg i32 %1257 to i64
  %1259 = getelementptr inbounds [256 x i32], ptr @t_in, i64 0, i64 %1258
  %1260 = load i32, ptr %1259, align 4, !tbaa !8
  %1261 = lshr i32 %1158, 8
  %1262 = and i32 %1261, 255
  %1263 = zext nneg i32 %1262 to i64
  %1264 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 1024), i64 0, i64 %1263
  %1265 = load i32, ptr %1264, align 4, !tbaa !8
  %1266 = lshr i32 %1134, 16
  %1267 = and i32 %1266, 255
  %1268 = zext nneg i32 %1267 to i64
  %1269 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 2048), i64 0, i64 %1268
  %1270 = load i32, ptr %1269, align 4, !tbaa !8
  %1271 = lshr i32 %1110, 24
  %1272 = zext nneg i32 %1271 to i64
  %1273 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_in, i64 3072), i64 0, i64 %1272
  %1274 = load i32, ptr %1273, align 4, !tbaa !8
  %1275 = xor i32 %1260, %1256
  %1276 = xor i32 %1275, %1265
  %1277 = xor i32 %1276, %1270
  %1278 = xor i32 %1277, %1274
  %1279 = load i32, ptr %27, align 4, !tbaa !8
  %1280 = and i32 %1206, 255
  %1281 = zext nneg i32 %1280 to i64
  %1282 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %1281
  %1283 = load i32, ptr %1282, align 4, !tbaa !8
  %1284 = lshr i32 %1278, 8
  %1285 = and i32 %1284, 255
  %1286 = zext nneg i32 %1285 to i64
  %1287 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 1024), i64 0, i64 %1286
  %1288 = load i32, ptr %1287, align 4, !tbaa !8
  %1289 = lshr i32 %1254, 16
  %1290 = and i32 %1289, 255
  %1291 = zext nneg i32 %1290 to i64
  %1292 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 2048), i64 0, i64 %1291
  %1293 = load i32, ptr %1292, align 4, !tbaa !8
  %1294 = lshr i32 %1230, 24
  %1295 = zext nneg i32 %1294 to i64
  %1296 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 3072), i64 0, i64 %1295
  %1297 = load i32, ptr %1296, align 4, !tbaa !8
  %1298 = xor i32 %1283, %1279
  %1299 = xor i32 %1298, %1288
  %1300 = xor i32 %1299, %1293
  %1301 = xor i32 %1300, %1297
  %1302 = getelementptr inbounds i8, ptr %27, i64 4
  %1303 = load i32, ptr %1302, align 4, !tbaa !8
  %1304 = and i32 %1230, 255
  %1305 = zext nneg i32 %1304 to i64
  %1306 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %1305
  %1307 = load i32, ptr %1306, align 4, !tbaa !8
  %1308 = lshr i32 %1206, 8
  %1309 = and i32 %1308, 255
  %1310 = zext nneg i32 %1309 to i64
  %1311 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 1024), i64 0, i64 %1310
  %1312 = load i32, ptr %1311, align 4, !tbaa !8
  %1313 = lshr i32 %1278, 16
  %1314 = and i32 %1313, 255
  %1315 = zext nneg i32 %1314 to i64
  %1316 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 2048), i64 0, i64 %1315
  %1317 = load i32, ptr %1316, align 4, !tbaa !8
  %1318 = lshr i32 %1254, 24
  %1319 = zext nneg i32 %1318 to i64
  %1320 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 3072), i64 0, i64 %1319
  %1321 = load i32, ptr %1320, align 4, !tbaa !8
  %1322 = xor i32 %1307, %1303
  %1323 = xor i32 %1322, %1312
  %1324 = xor i32 %1323, %1317
  %1325 = xor i32 %1324, %1321
  %1326 = getelementptr inbounds i8, ptr %27, i64 8
  %1327 = load i32, ptr %1326, align 4, !tbaa !8
  %1328 = and i32 %1254, 255
  %1329 = zext nneg i32 %1328 to i64
  %1330 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %1329
  %1331 = load i32, ptr %1330, align 4, !tbaa !8
  %1332 = lshr i32 %1230, 8
  %1333 = and i32 %1332, 255
  %1334 = zext nneg i32 %1333 to i64
  %1335 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 1024), i64 0, i64 %1334
  %1336 = load i32, ptr %1335, align 4, !tbaa !8
  %1337 = lshr i32 %1206, 16
  %1338 = and i32 %1337, 255
  %1339 = zext nneg i32 %1338 to i64
  %1340 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 2048), i64 0, i64 %1339
  %1341 = load i32, ptr %1340, align 4, !tbaa !8
  %1342 = lshr i32 %1278, 24
  %1343 = zext nneg i32 %1342 to i64
  %1344 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 3072), i64 0, i64 %1343
  %1345 = load i32, ptr %1344, align 4, !tbaa !8
  %1346 = xor i32 %1331, %1327
  %1347 = xor i32 %1346, %1336
  %1348 = xor i32 %1347, %1341
  %1349 = xor i32 %1348, %1345
  %1350 = getelementptr inbounds i8, ptr %27, i64 12
  %1351 = load i32, ptr %1350, align 4, !tbaa !8
  %1352 = and i32 %1278, 255
  %1353 = zext nneg i32 %1352 to i64
  %1354 = getelementptr inbounds [256 x i32], ptr @t_il, i64 0, i64 %1353
  %1355 = load i32, ptr %1354, align 4, !tbaa !8
  %1356 = lshr i32 %1254, 8
  %1357 = and i32 %1356, 255
  %1358 = zext nneg i32 %1357 to i64
  %1359 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 1024), i64 0, i64 %1358
  %1360 = load i32, ptr %1359, align 4, !tbaa !8
  %1361 = lshr i32 %1230, 16
  %1362 = and i32 %1361, 255
  %1363 = zext nneg i32 %1362 to i64
  %1364 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 2048), i64 0, i64 %1363
  %1365 = load i32, ptr %1364, align 4, !tbaa !8
  %1366 = lshr i32 %1206, 24
  %1367 = zext nneg i32 %1366 to i64
  %1368 = getelementptr inbounds [256 x i32], ptr getelementptr inbounds (i8, ptr @t_il, i64 3072), i64 0, i64 %1367
  %1369 = load i32, ptr %1368, align 4, !tbaa !8
  %1370 = xor i32 %1355, %1351
  %1371 = xor i32 %1370, %1360
  %1372 = xor i32 %1371, %1365
  %1373 = xor i32 %1372, %1369
  br label %1374

1374:                                             ; preds = %414, %6
  %.sroa.122.2 = phi i32 [ %24, %6 ], [ %1373, %414 ]
  %.sroa.82.2 = phi i32 [ %19, %6 ], [ %1349, %414 ]
  %.sroa.42.2 = phi i32 [ %14, %6 ], [ %1325, %414 ]
  %.sroa.0.2 = phi i32 [ %9, %6 ], [ %1301, %414 ]
  %1375 = trunc i32 %.sroa.0.2 to i8
  store i8 %1375, ptr %1, align 1, !tbaa !5
  %1376 = lshr i32 %.sroa.0.2, 8
  %1377 = trunc i32 %1376 to i8
  %1378 = getelementptr inbounds i8, ptr %1, i64 1
  store i8 %1377, ptr %1378, align 1, !tbaa !5
  %1379 = lshr i32 %.sroa.0.2, 16
  %1380 = trunc i32 %1379 to i8
  %1381 = getelementptr inbounds i8, ptr %1, i64 2
  store i8 %1380, ptr %1381, align 1, !tbaa !5
  %1382 = lshr i32 %.sroa.0.2, 24
  %1383 = trunc nuw i32 %1382 to i8
  %1384 = getelementptr inbounds i8, ptr %1, i64 3
  store i8 %1383, ptr %1384, align 1, !tbaa !5
  %1385 = trunc i32 %.sroa.42.2 to i8
  %1386 = getelementptr inbounds i8, ptr %1, i64 4
  store i8 %1385, ptr %1386, align 1, !tbaa !5
  %1387 = lshr i32 %.sroa.42.2, 8
  %1388 = trunc i32 %1387 to i8
  %1389 = getelementptr inbounds i8, ptr %1, i64 5
  store i8 %1388, ptr %1389, align 1, !tbaa !5
  %1390 = lshr i32 %.sroa.42.2, 16
  %1391 = trunc i32 %1390 to i8
  %1392 = getelementptr inbounds i8, ptr %1, i64 6
  store i8 %1391, ptr %1392, align 1, !tbaa !5
  %1393 = lshr i32 %.sroa.42.2, 24
  %1394 = trunc nuw i32 %1393 to i8
  %1395 = getelementptr inbounds i8, ptr %1, i64 7
  store i8 %1394, ptr %1395, align 1, !tbaa !5
  %1396 = trunc i32 %.sroa.82.2 to i8
  %1397 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 %1396, ptr %1397, align 1, !tbaa !5
  %1398 = lshr i32 %.sroa.82.2, 8
  %1399 = trunc i32 %1398 to i8
  %1400 = getelementptr inbounds i8, ptr %1, i64 9
  store i8 %1399, ptr %1400, align 1, !tbaa !5
  %1401 = lshr i32 %.sroa.82.2, 16
  %1402 = trunc i32 %1401 to i8
  %1403 = getelementptr inbounds i8, ptr %1, i64 10
  store i8 %1402, ptr %1403, align 1, !tbaa !5
  %1404 = lshr i32 %.sroa.82.2, 24
  %1405 = trunc nuw i32 %1404 to i8
  %1406 = getelementptr inbounds i8, ptr %1, i64 11
  store i8 %1405, ptr %1406, align 1, !tbaa !5
  %1407 = trunc i32 %.sroa.122.2 to i8
  %1408 = getelementptr inbounds i8, ptr %1, i64 12
  store i8 %1407, ptr %1408, align 1, !tbaa !5
  %1409 = lshr i32 %.sroa.122.2, 8
  %1410 = trunc i32 %1409 to i8
  %1411 = getelementptr inbounds i8, ptr %1, i64 13
  store i8 %1410, ptr %1411, align 1, !tbaa !5
  %1412 = lshr i32 %.sroa.122.2, 16
  %1413 = trunc i32 %1412 to i8
  %1414 = getelementptr inbounds i8, ptr %1, i64 14
  store i8 %1413, ptr %1414, align 1, !tbaa !5
  %1415 = lshr i32 %.sroa.122.2, 24
  %1416 = trunc nuw i32 %1415 to i8
  %1417 = getelementptr inbounds i8, ptr %1, i64 15
  store i8 %1416, ptr %1417, align 1, !tbaa !5
  br label %1418

1418:                                             ; preds = %3, %1374
  %.0 = phi i32 [ 0, %1374 ], [ 1, %3 ]
  ret i32 %.0
}

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

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

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


; Effective O3 passes: AggressiveInstCombinePass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass