; LLVM IR from aap/pdp6 :: emu (main_net)

; 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.Apr = type { %struct.Device, %struct.IOBus, %struct.Membus, i32, %struct.AprState, %struct.AprState, i32, i64, i64, i32, i32, i32, i8, i16, i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr, i32, i8, [20 x %struct.TPulse], ptr, ptr }
%struct.Device = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.IOBus = type { i64, i64, i64, i64, i64, i64, i32, [128 x %struct.Busdev] }
%struct.Busdev = type { ptr, ptr, i8 }
%struct.Membus = type { i64, i64, i64, i64, i64, i64, ptr, [16 x ptr] }
%struct.AprState = type { i64, i64, i64 }
%struct.TPulse = type { ptr, ptr, i32 }
%struct.Foo = type { ptr, ptr, [4 x ptr] }
%struct.Dx555 = type { %struct.Device, ptr, i32, i32, i32, i32, ptr, ptr, ptr, i32 }

@.str = external hidden unnamed_addr constant [28 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @talknetwork(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca %struct.Apr, align 8
  %9 = alloca i8, align 1
  %10 = alloca [32 x i8], align 16
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca [4 x i32], align 16
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i8, align 1
  %18 = alloca i8, align 1
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 4184, ptr %8) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  %19 = load ptr, ptr %4, align 8, !tbaa !9
  %20 = getelementptr inbounds %struct.Foo, ptr %19, i32 0, i32 0
  %21 = load ptr, ptr %20, align 8, !tbaa !11
  store ptr %21, ptr %5, align 8, !tbaa !9
  %22 = load ptr, ptr %4, align 8, !tbaa !9
  %23 = getelementptr inbounds %struct.Foo, ptr %22, i32 0, i32 1
  %24 = load ptr, ptr %23, align 8, !tbaa !13
  store ptr %24, ptr %6, align 8, !tbaa !9
  %25 = load ptr, ptr %4, align 8, !tbaa !9
  %26 = getelementptr inbounds %struct.Foo, ptr %25, i32 0, i32 2
  %27 = getelementptr inbounds [4 x ptr], ptr %26, i64 0, i64 0
  store ptr %27, ptr %7, align 8, !tbaa !9
  %28 = call i32 (ptr, ...) @printf(ptr noundef @.str)
  store i32 0, ptr %12, align 4, !tbaa !5
  br label %29

29:                                               ; preds = %2026, %2
  br label %30

30:                                               ; preds = %29
  %31 = load ptr, ptr %5, align 8, !tbaa !9
  %32 = icmp eq ptr %31, null
  br i1 %32, label %33, label %34

33:                                               ; preds = %30
  store i32 1, ptr %13, align 4
  br label %2035

34:                                               ; preds = %30
  %35 = load ptr, ptr %5, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %8, ptr align 8 %35, i64 4184, i1 false), !tbaa.struct !14
  %36 = load i32, ptr %3, align 4, !tbaa !5
  %37 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 0
  %38 = call i32 @readn(i32 noundef %36, ptr noundef %37, i32 noundef 15)
  %39 = icmp ne i32 %38, 0
  br i1 %39, label %40, label %41

40:                                               ; preds = %34
  br label %2034

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

357:                                              ; preds = %41
  %358 = load ptr, ptr %5, align 8, !tbaa !9
  %359 = getelementptr inbounds %struct.Apr, ptr %358, i32 0, i32 28
  %360 = load i8, ptr %359, align 1, !tbaa !27
  %361 = zext i8 %360 to i32
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %367

363:                                              ; preds = %357
  %364 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 28
  %365 = load i8, ptr %364, align 1, !tbaa !27
  %366 = icmp ne i8 %365, 0
  br i1 %366, label %367, label %457

367:                                              ; preds = %363, %357
  %368 = load ptr, ptr %5, align 8, !tbaa !9
  %369 = getelementptr inbounds %struct.Apr, ptr %368, i32 0, i32 29
  %370 = load i8, ptr %369, align 8, !tbaa !28
  %371 = zext i8 %370 to i32
  %372 = icmp ne i32 %371, 0
  br i1 %372, label %373, label %377

373:                                              ; preds = %367
  %374 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 29
  %375 = load i8, ptr %374, align 8, !tbaa !28
  %376 = icmp ne i8 %375, 0
  br i1 %376, label %377, label %457

377:                                              ; preds = %373, %367
  %378 = load ptr, ptr %5, align 8, !tbaa !9
  %379 = getelementptr inbounds %struct.Apr, ptr %378, i32 0, i32 31
  %380 = load i8, ptr %379, align 2, !tbaa !29
  %381 = zext i8 %380 to i32
  %382 = icmp ne i32 %381, 0
  br i1 %382, label %383, label %387

383:                                              ; preds = %377
  %384 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 31
  %385 = load i8, ptr %384, align 2, !tbaa !29
  %386 = icmp ne i8 %385, 0
  br i1 %386, label %387, label %457

387:                                              ; preds = %383, %377
  %388 = load ptr, ptr %5, align 8, !tbaa !9
  %389 = getelementptr inbounds %struct.Apr, ptr %388, i32 0, i32 30
  %390 = load i8, ptr %389, align 1, !tbaa !30
  %391 = zext i8 %390 to i32
  %392 = icmp ne i32 %391, 0
  br i1 %392, label %393, label %397

393:                                              ; preds = %387
  %394 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 30
  %395 = load i8, ptr %394, align 1, !tbaa !30
  %396 = icmp ne i8 %395, 0
  br i1 %396, label %397, label %457

397:                                              ; preds = %393, %387
  %398 = load ptr, ptr %5, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.Apr, ptr %398, i32 0, i32 34
  %400 = load i8, ptr %399, align 1, !tbaa !33
  %401 = zext i8 %400 to i32
  %402 = icmp ne i32 %401, 0
  br i1 %402, label %403, label %407

403:                                              ; preds = %397
  %404 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 34
  %405 = load i8, ptr %404, align 1, !tbaa !33
  %406 = icmp ne i8 %405, 0
  br i1 %406, label %407, label %457

407:                                              ; preds = %403, %397
  %408 = load ptr, ptr %5, align 8, !tbaa !9
  %409 = getelementptr inbounds %struct.Apr, ptr %408, i32 0, i32 35
  %410 = load i8, ptr %409, align 2, !tbaa !34
  %411 = zext i8 %410 to i32
  %412 = icmp ne i32 %411, 0
  br i1 %412, label %413, label %417

413:                                              ; preds = %407
  %414 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 35
  %415 = load i8, ptr %414, align 2, !tbaa !34
  %416 = icmp ne i8 %415, 0
  br i1 %416, label %417, label %457

417:                                              ; preds = %413, %407
  %418 = load ptr, ptr %5, align 8, !tbaa !9
  %419 = getelementptr inbounds %struct.Apr, ptr %418, i32 0, i32 36
  %420 = load i8, ptr %419, align 1, !tbaa !35
  %421 = zext i8 %420 to i32
  %422 = icmp ne i32 %421, 0
  br i1 %422, label %423, label %427

423:                                              ; preds = %417
  %424 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 36
  %425 = load i8, ptr %424, align 1, !tbaa !35
  %426 = icmp ne i8 %425, 0
  br i1 %426, label %427, label %457

427:                                              ; preds = %423, %417
  %428 = load ptr, ptr %5, align 8, !tbaa !9
  %429 = getelementptr inbounds %struct.Apr, ptr %428, i32 0, i32 37
  %430 = load i8, ptr %429, align 8, !tbaa !36
  %431 = zext i8 %430 to i32
  %432 = icmp ne i32 %431, 0
  br i1 %432, label %433, label %437

433:                                              ; preds = %427
  %434 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 37
  %435 = load i8, ptr %434, align 8, !tbaa !36
  %436 = icmp ne i8 %435, 0
  br i1 %436, label %437, label %457

437:                                              ; preds = %433, %427
  %438 = load ptr, ptr %5, align 8, !tbaa !9
  %439 = getelementptr inbounds %struct.Apr, ptr %438, i32 0, i32 38
  %440 = load i8, ptr %439, align 1, !tbaa !37
  %441 = zext i8 %440 to i32
  %442 = icmp ne i32 %441, 0
  br i1 %442, label %443, label %447

443:                                              ; preds = %437
  %444 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 38
  %445 = load i8, ptr %444, align 1, !tbaa !37
  %446 = icmp ne i8 %445, 0
  br i1 %446, label %447, label %457

447:                                              ; preds = %443, %437
  %448 = load ptr, ptr %5, align 8, !tbaa !9
  %449 = getelementptr inbounds %struct.Apr, ptr %448, i32 0, i32 39
  %450 = load i8, ptr %449, align 2, !tbaa !38
  %451 = zext i8 %450 to i32
  %452 = icmp ne i32 %451, 0
  br i1 %452, label %453, label %462

453:                                              ; preds = %447
  %454 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 39
  %455 = load i8, ptr %454, align 2, !tbaa !38
  %456 = icmp ne i8 %455, 0
  br i1 %456, label %462, label %457

457:                                              ; preds = %453, %443, %433, %423, %413, %403, %393, %383, %373, %363
  %458 = load ptr, ptr %5, align 8, !tbaa !9
  %459 = getelementptr inbounds %struct.Apr, ptr %458, i32 0, i32 178
  %460 = load i32, ptr %459, align 8, !tbaa !47
  %461 = or i32 %460, 1
  store i32 %461, ptr %459, align 8, !tbaa !47
  br label %462

462:                                              ; preds = %457, %453, %447
  %463 = load ptr, ptr %5, align 8, !tbaa !9
  %464 = getelementptr inbounds %struct.Apr, ptr %463, i32 0, i32 33
  %465 = load i8, ptr %464, align 4, !tbaa !31
  %466 = zext i8 %465 to i32
  %467 = icmp ne i32 %466, 0
  br i1 %467, label %468, label %477

468:                                              ; preds = %462
  %469 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 33
  %470 = load i8, ptr %469, align 4, !tbaa !31
  %471 = icmp ne i8 %470, 0
  br i1 %471, label %477, label %472

472:                                              ; preds = %468
  %473 = load ptr, ptr %5, align 8, !tbaa !9
  %474 = getelementptr inbounds %struct.Apr, ptr %473, i32 0, i32 178
  %475 = load i32, ptr %474, align 8, !tbaa !47
  %476 = or i32 %475, 2
  store i32 %476, ptr %474, align 8, !tbaa !47
  br label %477

477:                                              ; preds = %472, %468, %462
  %478 = load ptr, ptr %6, align 8, !tbaa !9
  %479 = icmp ne ptr %478, null
  br i1 %479, label %480, label %505

480:                                              ; preds = %477
  %481 = load ptr, ptr %5, align 8, !tbaa !9
  %482 = getelementptr inbounds %struct.Apr, ptr %481, i32 0, i32 41
  %483 = load i8, ptr %482, align 4, !tbaa !40
  %484 = zext i8 %483 to i32
  %485 = icmp ne i32 %484, 0
  br i1 %485, label %486, label %492

486:                                              ; preds = %480
  %487 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 41
  %488 = load i8, ptr %487, align 4, !tbaa !40
  %489 = icmp ne i8 %488, 0
  br i1 %489, label %492, label %490

490:                                              ; preds = %486
  %491 = load ptr, ptr %6, align 8, !tbaa !9
  call void @ptr_setmotor(ptr noundef %491, i32 noundef 1)
  br label %492

492:                                              ; preds = %490, %486, %480
  %493 = load ptr, ptr %5, align 8, !tbaa !9
  %494 = getelementptr inbounds %struct.Apr, ptr %493, i32 0, i32 40
  %495 = load i8, ptr %494, align 1, !tbaa !39
  %496 = zext i8 %495 to i32
  %497 = icmp ne i32 %496, 0
  br i1 %497, label %498, label %504

498:                                              ; preds = %492
  %499 = getelementptr inbounds %struct.Apr, ptr %8, i32 0, i32 40
  %500 = load i8, ptr %499, align 1, !tbaa !39
  %501 = icmp ne i8 %500, 0
  br i1 %501, label %504, label %502

502:                                              ; preds = %498
  %503 = load ptr, ptr %6, align 8, !tbaa !9
  call void @ptr_setmotor(ptr noundef %503, i32 noundef 0)
  br label %504

504:                                              ; preds = %502, %498, %492
  br label %505

505:                                              ; preds = %504, %477
  br label %506

506:                                              ; preds = %505, %41
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %507

507:                                              ; preds = %514, %506
  %508 = load i32, ptr %15, align 4, !tbaa !5
  %509 = icmp slt i32 %508, 4
  br i1 %509, label %510, label %517

510:                                              ; preds = %507
  %511 = load i32, ptr %15, align 4, !tbaa !5
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 %512
  store i32 0, ptr %513, align 4, !tbaa !5
  br label %514

514:                                              ; preds = %510
  %515 = load i32, ptr %15, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr %15, align 4, !tbaa !5
  br label %507, !llvm.loop !48

517:                                              ; preds = %507
  store i32 0, ptr %15, align 4, !tbaa !5
  br label %518

518:                                              ; preds = %575, %517
  %519 = load i32, ptr %15, align 4, !tbaa !5
  %520 = icmp slt i32 %519, 4
  br i1 %520, label %521, label %578

521:                                              ; preds = %518
  %522 = load ptr, ptr %7, align 8, !tbaa !9
  %523 = load i32, ptr %15, align 4, !tbaa !5
  %524 = sext i32 %523 to i64
  %525 = getelementptr inbounds ptr, ptr %522, i64 %524
  %526 = load ptr, ptr %525, align 8, !tbaa !9
  %527 = icmp eq ptr %526, null
  br i1 %527, label %528, label %529

528:                                              ; preds = %521
  br label %575

529:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  %530 = load ptr, ptr %7, align 8, !tbaa !9
  %531 = load i32, ptr %15, align 4, !tbaa !5
  %532 = sext i32 %531 to i64
  %533 = getelementptr inbounds ptr, ptr %530, i64 %532
  %534 = load ptr, ptr %533, align 8, !tbaa !9
  %535 = getelementptr inbounds %struct.Dx555, ptr %534, i32 0, i32 2
  %536 = load i32, ptr %535, align 8, !tbaa !50
  store i32 %536, ptr %16, align 4, !tbaa !5
  %537 = load i32, ptr %16, align 4, !tbaa !5
  %538 = icmp slt i32 %537, 1
  br i1 %538, label %542, label %539

539:                                              ; preds = %529
  %540 = load i32, ptr %16, align 4, !tbaa !5
  %541 = icmp sgt i32 %540, 4
  br i1 %541, label %542, label %543

542:                                              ; preds = %539, %529
  store i32 9, ptr %13, align 4
  br label %572

543:                                              ; preds = %539
  %544 = load ptr, ptr %7, align 8, !tbaa !9
  %545 = load i32, ptr %15, align 4, !tbaa !5
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds ptr, ptr %544, i64 %546
  %548 = load ptr, ptr %547, align 8, !tbaa !9
  %549 = getelementptr inbounds %struct.Dx555, ptr %548, i32 0, i32 4
  %550 = load i32, ptr %549, align 8, !tbaa !52
  %551 = icmp slt i32 %550, 0
  br i1 %551, label %552, label %557

552:                                              ; preds = %543
  %553 = load i32, ptr %16, align 4, !tbaa !5
  %554 = sub nsw i32 %553, 1
  %555 = sext i32 %554 to i64
  %556 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 %555
  store i32 3, ptr %556, align 4, !tbaa !5
  br label %557

557:                                              ; preds = %552, %543
  %558 = load ptr, ptr %7, align 8, !tbaa !9
  %559 = load i32, ptr %15, align 4, !tbaa !5
  %560 = sext i32 %559 to i64
  %561 = getelementptr inbounds ptr, ptr %558, i64 %560
  %562 = load ptr, ptr %561, align 8, !tbaa !9
  %563 = getelementptr inbounds %struct.Dx555, ptr %562, i32 0, i32 4
  %564 = load i32, ptr %563, align 8, !tbaa !52
  %565 = icmp sgt i32 %564, 0
  br i1 %565, label %566, label %571

566:                                              ; preds = %557
  %567 = load i32, ptr %16, align 4, !tbaa !5
  %568 = sub nsw i32 %567, 1
  %569 = sext i32 %568 to i64
  %570 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 %569
  store i32 1, ptr %570, align 4, !tbaa !5
  br label %571

571:                                              ; preds = %566, %557
  store i32 0, ptr %13, align 4
  br label %572

572:                                              ; preds = %571, %542
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  %573 = load i32, ptr %13, align 4
  switch i32 %573, label %2038 [
    i32 0, label %574
    i32 9, label %575
  ]

574:                                              ; preds = %572
  br label %575

575:                                              ; preds = %574, %572, %528
  %576 = load i32, ptr %15, align 4, !tbaa !5
  %577 = add nsw i32 %576, 1
  store i32 %577, ptr %15, align 4, !tbaa !5
  br label %518, !llvm.loop !53

578:                                              ; preds = %518
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #4
  %579 = load ptr, ptr %5, align 8, !tbaa !9
  %580 = getelementptr inbounds %struct.Apr, ptr %579, i32 0, i32 22
  %581 = load i8, ptr %580, align 1, !tbaa !46
  %582 = zext i8 %581 to i32
  %583 = icmp ne i32 %582, 0
  %584 = zext i1 %583 to i64
  %585 = select i1 %583, i32 127, i32 64
  %586 = trunc i32 %585 to i8
  store i8 %586, ptr %17, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #4
  %587 = load ptr, ptr %5, align 8, !tbaa !9
  %588 = getelementptr inbounds %struct.Apr, ptr %587, i32 0, i32 22
  %589 = load i8, ptr %588, align 1, !tbaa !46
  %590 = zext i8 %589 to i32
  %591 = icmp ne i32 %590, 0
  %592 = zext i1 %591 to i64
  %593 = select i1 %591, i32 255, i32 0
  %594 = trunc i32 %593 to i8
  store i8 %594, ptr %18, align 1, !tbaa !17
  store i32 0, ptr %11, align 4, !tbaa !5
  %595 = load i32, ptr %12, align 4, !tbaa !5
  switch i32 %595, label %2017 [
    i32 0, label %596
    i32 1, label %781
    i32 2, label %957
    i32 3, label %1006
    i32 4, label %1195
    i32 5, label %1290
  ]

596:                                              ; preds = %578
  %597 = load i32, ptr %11, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr %11, align 4, !tbaa !5
  %599 = sext i32 %597 to i64
  %600 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %599
  store i8 48, ptr %600, align 1, !tbaa !17
  %601 = load i8, ptr %17, align 1, !tbaa !17
  %602 = sext i8 %601 to i32
  %603 = load ptr, ptr %5, align 8, !tbaa !9
  %604 = getelementptr inbounds %struct.Apr, ptr %603, i32 0, i32 6
  %605 = load i32, ptr %604, align 8, !tbaa !54
  %606 = lshr i32 %605, 12
  %607 = and i32 %606, 63
  %608 = or i32 %607, 64
  %609 = and i32 %602, %608
  %610 = trunc i32 %609 to i8
  %611 = load i32, ptr %11, align 4, !tbaa !5
  %612 = add nsw i32 %611, 1
  store i32 %612, ptr %11, align 4, !tbaa !5
  %613 = sext i32 %611 to i64
  %614 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %613
  store i8 %610, ptr %614, align 1, !tbaa !17
  %615 = load i8, ptr %17, align 1, !tbaa !17
  %616 = sext i8 %615 to i32
  %617 = load ptr, ptr %5, align 8, !tbaa !9
  %618 = getelementptr inbounds %struct.Apr, ptr %617, i32 0, i32 6
  %619 = load i32, ptr %618, align 8, !tbaa !54
  %620 = lshr i32 %619, 6
  %621 = and i32 %620, 63
  %622 = or i32 %621, 64
  %623 = and i32 %616, %622
  %624 = trunc i32 %623 to i8
  %625 = load i32, ptr %11, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %11, align 4, !tbaa !5
  %627 = sext i32 %625 to i64
  %628 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %627
  store i8 %624, ptr %628, align 1, !tbaa !17
  %629 = load i8, ptr %17, align 1, !tbaa !17
  %630 = sext i8 %629 to i32
  %631 = load ptr, ptr %5, align 8, !tbaa !9
  %632 = getelementptr inbounds %struct.Apr, ptr %631, i32 0, i32 6
  %633 = load i32, ptr %632, align 8, !tbaa !54
  %634 = lshr i32 %633, 0
  %635 = and i32 %634, 63
  %636 = or i32 %635, 64
  %637 = and i32 %630, %636
  %638 = trunc i32 %637 to i8
  %639 = load i32, ptr %11, align 4, !tbaa !5
  %640 = add nsw i32 %639, 1
  store i32 %640, ptr %11, align 4, !tbaa !5
  %641 = sext i32 %639 to i64
  %642 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %641
  store i8 %638, ptr %642, align 1, !tbaa !17
  %643 = load i32, ptr %11, align 4, !tbaa !5
  %644 = add nsw i32 %643, 1
  store i32 %644, ptr %11, align 4, !tbaa !5
  %645 = sext i32 %643 to i64
  %646 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %645
  store i8 49, ptr %646, align 1, !tbaa !17
  %647 = load i8, ptr %17, align 1, !tbaa !17
  %648 = sext i8 %647 to i64
  %649 = load ptr, ptr %5, align 8, !tbaa !9
  %650 = getelementptr inbounds %struct.Apr, ptr %649, i32 0, i32 7
  %651 = load i64, ptr %650, align 8, !tbaa !55
  %652 = lshr i64 %651, 30
  %653 = and i64 %652, 63
  %654 = or i64 %653, 64
  %655 = and i64 %648, %654
  %656 = trunc i64 %655 to i8
  %657 = load i32, ptr %11, align 4, !tbaa !5
  %658 = add nsw i32 %657, 1
  store i32 %658, ptr %11, align 4, !tbaa !5
  %659 = sext i32 %657 to i64
  %660 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %659
  store i8 %656, ptr %660, align 1, !tbaa !17
  %661 = load i8, ptr %17, align 1, !tbaa !17
  %662 = sext i8 %661 to i64
  %663 = load ptr, ptr %5, align 8, !tbaa !9
  %664 = getelementptr inbounds %struct.Apr, ptr %663, i32 0, i32 7
  %665 = load i64, ptr %664, align 8, !tbaa !55
  %666 = lshr i64 %665, 24
  %667 = and i64 %666, 63
  %668 = or i64 %667, 64
  %669 = and i64 %662, %668
  %670 = trunc i64 %669 to i8
  %671 = load i32, ptr %11, align 4, !tbaa !5
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr %11, align 4, !tbaa !5
  %673 = sext i32 %671 to i64
  %674 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %673
  store i8 %670, ptr %674, align 1, !tbaa !17
  %675 = load i8, ptr %17, align 1, !tbaa !17
  %676 = sext i8 %675 to i64
  %677 = load ptr, ptr %5, align 8, !tbaa !9
  %678 = getelementptr inbounds %struct.Apr, ptr %677, i32 0, i32 7
  %679 = load i64, ptr %678, align 8, !tbaa !55
  %680 = lshr i64 %679, 18
  %681 = and i64 %680, 63
  %682 = or i64 %681, 64
  %683 = and i64 %676, %682
  %684 = trunc i64 %683 to i8
  %685 = load i32, ptr %11, align 4, !tbaa !5
  %686 = add nsw i32 %685, 1
  store i32 %686, ptr %11, align 4, !tbaa !5
  %687 = sext i32 %685 to i64
  %688 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %687
  store i8 %684, ptr %688, align 1, !tbaa !17
  %689 = load i32, ptr %11, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr %11, align 4, !tbaa !5
  %691 = sext i32 %689 to i64
  %692 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %691
  store i8 50, ptr %692, align 1, !tbaa !17
  %693 = load i8, ptr %17, align 1, !tbaa !17
  %694 = sext i8 %693 to i64
  %695 = load ptr, ptr %5, align 8, !tbaa !9
  %696 = getelementptr inbounds %struct.Apr, ptr %695, i32 0, i32 7
  %697 = load i64, ptr %696, align 8, !tbaa !55
  %698 = lshr i64 %697, 12
  %699 = and i64 %698, 63
  %700 = or i64 %699, 64
  %701 = and i64 %694, %700
  %702 = trunc i64 %701 to i8
  %703 = load i32, ptr %11, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr %11, align 4, !tbaa !5
  %705 = sext i32 %703 to i64
  %706 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %705
  store i8 %702, ptr %706, align 1, !tbaa !17
  %707 = load i8, ptr %17, align 1, !tbaa !17
  %708 = sext i8 %707 to i64
  %709 = load ptr, ptr %5, align 8, !tbaa !9
  %710 = getelementptr inbounds %struct.Apr, ptr %709, i32 0, i32 7
  %711 = load i64, ptr %710, align 8, !tbaa !55
  %712 = lshr i64 %711, 6
  %713 = and i64 %712, 63
  %714 = or i64 %713, 64
  %715 = and i64 %708, %714
  %716 = trunc i64 %715 to i8
  %717 = load i32, ptr %11, align 4, !tbaa !5
  %718 = add nsw i32 %717, 1
  store i32 %718, ptr %11, align 4, !tbaa !5
  %719 = sext i32 %717 to i64
  %720 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %719
  store i8 %716, ptr %720, align 1, !tbaa !17
  %721 = load i8, ptr %17, align 1, !tbaa !17
  %722 = sext i8 %721 to i64
  %723 = load ptr, ptr %5, align 8, !tbaa !9
  %724 = getelementptr inbounds %struct.Apr, ptr %723, i32 0, i32 7
  %725 = load i64, ptr %724, align 8, !tbaa !55
  %726 = lshr i64 %725, 0
  %727 = and i64 %726, 63
  %728 = or i64 %727, 64
  %729 = and i64 %722, %728
  %730 = trunc i64 %729 to i8
  %731 = load i32, ptr %11, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr %11, align 4, !tbaa !5
  %733 = sext i32 %731 to i64
  %734 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %733
  store i8 %730, ptr %734, align 1, !tbaa !17
  %735 = load i32, ptr %11, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr %11, align 4, !tbaa !5
  %737 = sext i32 %735 to i64
  %738 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %737
  store i8 51, ptr %738, align 1, !tbaa !17
  %739 = load i8, ptr %17, align 1, !tbaa !17
  %740 = sext i8 %739 to i32
  %741 = load ptr, ptr %5, align 8, !tbaa !9
  %742 = getelementptr inbounds %struct.Apr, ptr %741, i32 0, i32 9
  %743 = load i32, ptr %742, align 8, !tbaa !56
  %744 = lshr i32 %743, 12
  %745 = and i32 %744, 63
  %746 = or i32 %745, 64
  %747 = and i32 %740, %746
  %748 = trunc i32 %747 to i8
  %749 = load i32, ptr %11, align 4, !tbaa !5
  %750 = add nsw i32 %749, 1
  store i32 %750, ptr %11, align 4, !tbaa !5
  %751 = sext i32 %749 to i64
  %752 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %751
  store i8 %748, ptr %752, align 1, !tbaa !17
  %753 = load i8, ptr %17, align 1, !tbaa !17
  %754 = sext i8 %753 to i32
  %755 = load ptr, ptr %5, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.Apr, ptr %755, i32 0, i32 9
  %757 = load i32, ptr %756, align 8, !tbaa !56
  %758 = lshr i32 %757, 6
  %759 = and i32 %758, 63
  %760 = or i32 %759, 64
  %761 = and i32 %754, %760
  %762 = trunc i32 %761 to i8
  %763 = load i32, ptr %11, align 4, !tbaa !5
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr %11, align 4, !tbaa !5
  %765 = sext i32 %763 to i64
  %766 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %765
  store i8 %762, ptr %766, align 1, !tbaa !17
  %767 = load i8, ptr %17, align 1, !tbaa !17
  %768 = sext i8 %767 to i32
  %769 = load ptr, ptr %5, align 8, !tbaa !9
  %770 = getelementptr inbounds %struct.Apr, ptr %769, i32 0, i32 9
  %771 = load i32, ptr %770, align 8, !tbaa !56
  %772 = lshr i32 %771, 0
  %773 = and i32 %772, 63
  %774 = or i32 %773, 64
  %775 = and i32 %768, %774
  %776 = trunc i32 %775 to i8
  %777 = load i32, ptr %11, align 4, !tbaa !5
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr %11, align 4, !tbaa !5
  %779 = sext i32 %777 to i64
  %780 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %779
  store i8 %776, ptr %780, align 1, !tbaa !17
  br label %2017

781:                                              ; preds = %578
  %782 = load i32, ptr %11, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr %11, align 4, !tbaa !5
  %784 = sext i32 %782 to i64
  %785 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %784
  store i8 52, ptr %785, align 1, !tbaa !17
  %786 = load i8, ptr %17, align 1, !tbaa !17
  %787 = sext i8 %786 to i32
  %788 = load ptr, ptr %5, align 8, !tbaa !9
  %789 = getelementptr inbounds %struct.Apr, ptr %788, i32 0, i32 10
  %790 = load i32, ptr %789, align 4, !tbaa !57
  %791 = lshr i32 %790, 12
  %792 = and i32 %791, 63
  %793 = or i32 %792, 64
  %794 = and i32 %787, %793
  %795 = trunc i32 %794 to i8
  %796 = load i32, ptr %11, align 4, !tbaa !5
  %797 = add nsw i32 %796, 1
  store i32 %797, ptr %11, align 4, !tbaa !5
  %798 = sext i32 %796 to i64
  %799 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %798
  store i8 %795, ptr %799, align 1, !tbaa !17
  %800 = load i8, ptr %17, align 1, !tbaa !17
  %801 = sext i8 %800 to i32
  %802 = load ptr, ptr %5, align 8, !tbaa !9
  %803 = getelementptr inbounds %struct.Apr, ptr %802, i32 0, i32 10
  %804 = load i32, ptr %803, align 4, !tbaa !57
  %805 = lshr i32 %804, 6
  %806 = and i32 %805, 63
  %807 = or i32 %806, 64
  %808 = and i32 %801, %807
  %809 = trunc i32 %808 to i8
  %810 = load i32, ptr %11, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr %11, align 4, !tbaa !5
  %812 = sext i32 %810 to i64
  %813 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %812
  store i8 %809, ptr %813, align 1, !tbaa !17
  %814 = load i8, ptr %17, align 1, !tbaa !17
  %815 = sext i8 %814 to i32
  %816 = load ptr, ptr %5, align 8, !tbaa !9
  %817 = getelementptr inbounds %struct.Apr, ptr %816, i32 0, i32 10
  %818 = load i32, ptr %817, align 4, !tbaa !57
  %819 = lshr i32 %818, 0
  %820 = and i32 %819, 63
  %821 = or i32 %820, 64
  %822 = and i32 %815, %821
  %823 = trunc i32 %822 to i8
  %824 = load i32, ptr %11, align 4, !tbaa !5
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr %11, align 4, !tbaa !5
  %826 = sext i32 %824 to i64
  %827 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %826
  store i8 %823, ptr %827, align 1, !tbaa !17
  %828 = load i32, ptr %11, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr %11, align 4, !tbaa !5
  %830 = sext i32 %828 to i64
  %831 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %830
  store i8 53, ptr %831, align 1, !tbaa !17
  %832 = load i8, ptr %17, align 1, !tbaa !17
  %833 = sext i8 %832 to i32
  %834 = load ptr, ptr %5, align 8, !tbaa !9
  %835 = getelementptr inbounds %struct.Apr, ptr %834, i32 0, i32 18
  %836 = load i8, ptr %835, align 1, !tbaa !58
  %837 = zext i8 %836 to i32
  %838 = shl i32 %837, 5
  %839 = load ptr, ptr %5, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.Apr, ptr %839, i32 0, i32 48
  %841 = load i8, ptr %840, align 2, !tbaa !59
  %842 = zext i8 %841 to i32
  %843 = ashr i32 %842, 3
  %844 = or i32 %838, %843
  %845 = or i32 %844, 64
  %846 = and i32 %833, %845
  %847 = trunc i32 %846 to i8
  %848 = load i32, ptr %11, align 4, !tbaa !5
  %849 = add nsw i32 %848, 1
  store i32 %849, ptr %11, align 4, !tbaa !5
  %850 = sext i32 %848 to i64
  %851 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %850
  store i8 %847, ptr %851, align 1, !tbaa !17
  %852 = load i8, ptr %17, align 1, !tbaa !17
  %853 = sext i8 %852 to i32
  %854 = load ptr, ptr %5, align 8, !tbaa !9
  %855 = getelementptr inbounds %struct.Apr, ptr %854, i32 0, i32 48
  %856 = load i8, ptr %855, align 2, !tbaa !59
  %857 = zext i8 %856 to i32
  %858 = and i32 %857, 7
  %859 = shl i32 %858, 3
  %860 = or i32 %859, 64
  %861 = and i32 %853, %860
  %862 = trunc i32 %861 to i8
  %863 = load i32, ptr %11, align 4, !tbaa !5
  %864 = add nsw i32 %863, 1
  store i32 %864, ptr %11, align 4, !tbaa !5
  %865 = sext i32 %863 to i64
  %866 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %865
  store i8 %862, ptr %866, align 1, !tbaa !17
  %867 = load i32, ptr %11, align 4, !tbaa !5
  %868 = add nsw i32 %867, 1
  store i32 %868, ptr %11, align 4, !tbaa !5
  %869 = sext i32 %867 to i64
  %870 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %869
  store i8 64, ptr %870, align 1, !tbaa !17
  %871 = load i32, ptr %11, align 4, !tbaa !5
  %872 = add nsw i32 %871, 1
  store i32 %872, ptr %11, align 4, !tbaa !5
  %873 = sext i32 %871 to i64
  %874 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %873
  store i8 54, ptr %874, align 1, !tbaa !17
  %875 = load i8, ptr %17, align 1, !tbaa !17
  %876 = sext i8 %875 to i32
  %877 = load ptr, ptr %5, align 8, !tbaa !9
  %878 = getelementptr inbounds %struct.Apr, ptr %877, i32 0, i32 75
  %879 = load i8, ptr %878, align 1, !tbaa !60
  %880 = zext i8 %879 to i32
  %881 = shl i32 %880, 5
  %882 = load ptr, ptr %5, align 8, !tbaa !9
  %883 = getelementptr inbounds %struct.Apr, ptr %882, i32 0, i32 47
  %884 = load i8, ptr %883, align 1, !tbaa !61
  %885 = zext i8 %884 to i32
  %886 = ashr i32 %885, 3
  %887 = or i32 %881, %886
  %888 = or i32 %887, 64
  %889 = and i32 %876, %888
  %890 = trunc i32 %889 to i8
  %891 = load i32, ptr %11, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr %11, align 4, !tbaa !5
  %893 = sext i32 %891 to i64
  %894 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %893
  store i8 %890, ptr %894, align 1, !tbaa !17
  %895 = load i8, ptr %17, align 1, !tbaa !17
  %896 = sext i8 %895 to i32
  %897 = load ptr, ptr %5, align 8, !tbaa !9
  %898 = getelementptr inbounds %struct.Apr, ptr %897, i32 0, i32 47
  %899 = load i8, ptr %898, align 1, !tbaa !61
  %900 = zext i8 %899 to i32
  %901 = and i32 %900, 7
  %902 = shl i32 %901, 3
  %903 = or i32 %902, 64
  %904 = and i32 %896, %903
  %905 = trunc i32 %904 to i8
  %906 = load i32, ptr %11, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr %11, align 4, !tbaa !5
  %908 = sext i32 %906 to i64
  %909 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %908
  store i8 %905, ptr %909, align 1, !tbaa !17
  %910 = load i32, ptr %11, align 4, !tbaa !5
  %911 = add nsw i32 %910, 1
  store i32 %911, ptr %11, align 4, !tbaa !5
  %912 = sext i32 %910 to i64
  %913 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %912
  store i8 64, ptr %913, align 1, !tbaa !17
  %914 = load i32, ptr %11, align 4, !tbaa !5
  %915 = add nsw i32 %914, 1
  store i32 %915, ptr %11, align 4, !tbaa !5
  %916 = sext i32 %914 to i64
  %917 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %916
  store i8 55, ptr %917, align 1, !tbaa !17
  %918 = load i8, ptr %17, align 1, !tbaa !17
  %919 = sext i8 %918 to i32
  %920 = load ptr, ptr %5, align 8, !tbaa !9
  %921 = getelementptr inbounds %struct.Apr, ptr %920, i32 0, i32 50
  %922 = load i8, ptr %921, align 4, !tbaa !62
  %923 = zext i8 %922 to i32
  %924 = shl i32 %923, 5
  %925 = load ptr, ptr %5, align 8, !tbaa !9
  %926 = getelementptr inbounds %struct.Apr, ptr %925, i32 0, i32 46
  %927 = load i8, ptr %926, align 8, !tbaa !63
  %928 = zext i8 %927 to i32
  %929 = ashr i32 %928, 3
  %930 = or i32 %924, %929
  %931 = or i32 %930, 64
  %932 = and i32 %919, %931
  %933 = trunc i32 %932 to i8
  %934 = load i32, ptr %11, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr %11, align 4, !tbaa !5
  %936 = sext i32 %934 to i64
  %937 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %936
  store i8 %933, ptr %937, align 1, !tbaa !17
  %938 = load i8, ptr %17, align 1, !tbaa !17
  %939 = sext i8 %938 to i32
  %940 = load ptr, ptr %5, align 8, !tbaa !9
  %941 = getelementptr inbounds %struct.Apr, ptr %940, i32 0, i32 46
  %942 = load i8, ptr %941, align 8, !tbaa !63
  %943 = zext i8 %942 to i32
  %944 = and i32 %943, 7
  %945 = shl i32 %944, 3
  %946 = or i32 %945, 64
  %947 = and i32 %939, %946
  %948 = trunc i32 %947 to i8
  %949 = load i32, ptr %11, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr %11, align 4, !tbaa !5
  %951 = sext i32 %949 to i64
  %952 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %951
  store i8 %948, ptr %952, align 1, !tbaa !17
  %953 = load i32, ptr %11, align 4, !tbaa !5
  %954 = add nsw i32 %953, 1
  store i32 %954, ptr %11, align 4, !tbaa !5
  %955 = sext i32 %953 to i64
  %956 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %955
  store i8 64, ptr %956, align 1, !tbaa !17
  br label %2017

957:                                              ; preds = %578
  %958 = load i32, ptr %11, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr %11, align 4, !tbaa !5
  %960 = sext i32 %958 to i64
  %961 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %960
  store i8 56, ptr %961, align 1, !tbaa !17
  %962 = load i8, ptr %17, align 1, !tbaa !17
  %963 = sext i8 %962 to i32
  %964 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 0
  %965 = load i32, ptr %964, align 16, !tbaa !5
  %966 = or i32 %965, 64
  %967 = and i32 %963, %966
  %968 = trunc i32 %967 to i8
  %969 = load i32, ptr %11, align 4, !tbaa !5
  %970 = add nsw i32 %969, 1
  store i32 %970, ptr %11, align 4, !tbaa !5
  %971 = sext i32 %969 to i64
  %972 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %971
  store i8 %968, ptr %972, align 1, !tbaa !17
  %973 = load i8, ptr %17, align 1, !tbaa !17
  %974 = sext i8 %973 to i32
  %975 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 1
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = or i32 %976, 64
  %978 = and i32 %974, %977
  %979 = trunc i32 %978 to i8
  %980 = load i32, ptr %11, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr %11, align 4, !tbaa !5
  %982 = sext i32 %980 to i64
  %983 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %982
  store i8 %979, ptr %983, align 1, !tbaa !17
  %984 = load i8, ptr %17, align 1, !tbaa !17
  %985 = sext i8 %984 to i32
  %986 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 2
  %987 = load i32, ptr %986, align 8, !tbaa !5
  %988 = or i32 %987, 64
  %989 = and i32 %985, %988
  %990 = trunc i32 %989 to i8
  %991 = load i32, ptr %11, align 4, !tbaa !5
  %992 = add nsw i32 %991, 1
  store i32 %992, ptr %11, align 4, !tbaa !5
  %993 = sext i32 %991 to i64
  %994 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %993
  store i8 %990, ptr %994, align 1, !tbaa !17
  %995 = load i8, ptr %17, align 1, !tbaa !17
  %996 = sext i8 %995 to i32
  %997 = getelementptr inbounds [4 x i32], ptr %14, i64 0, i64 3
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = or i32 %998, 64
  %1000 = and i32 %996, %999
  %1001 = trunc i32 %1000 to i8
  %1002 = load i32, ptr %11, align 4, !tbaa !5
  %1003 = add nsw i32 %1002, 1
  store i32 %1003, ptr %11, align 4, !tbaa !5
  %1004 = sext i32 %1002 to i64
  %1005 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1004
  store i8 %1001, ptr %1005, align 1, !tbaa !17
  br label %2017

1006:                                             ; preds = %578
  %1007 = load i32, ptr %11, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr %11, align 4, !tbaa !5
  %1009 = sext i32 %1007 to i64
  %1010 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1009
  store i8 33, ptr %1010, align 1, !tbaa !17
  %1011 = load i8, ptr %17, align 1, !tbaa !17
  %1012 = sext i8 %1011 to i64
  %1013 = load ptr, ptr %5, align 8, !tbaa !9
  %1014 = getelementptr inbounds %struct.Apr, ptr %1013, i32 0, i32 4
  %1015 = getelementptr inbounds %struct.AprState, ptr %1014, i32 0, i32 1
  %1016 = load i64, ptr %1015, align 8, !tbaa !64
  %1017 = lshr i64 %1016, 30
  %1018 = and i64 %1017, 63
  %1019 = or i64 %1018, 64
  %1020 = and i64 %1012, %1019
  %1021 = trunc i64 %1020 to i8
  %1022 = load i32, ptr %11, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr %11, align 4, !tbaa !5
  %1024 = sext i32 %1022 to i64
  %1025 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1024
  store i8 %1021, ptr %1025, align 1, !tbaa !17
  %1026 = load i8, ptr %17, align 1, !tbaa !17
  %1027 = sext i8 %1026 to i64
  %1028 = load ptr, ptr %5, align 8, !tbaa !9
  %1029 = getelementptr inbounds %struct.Apr, ptr %1028, i32 0, i32 4
  %1030 = getelementptr inbounds %struct.AprState, ptr %1029, i32 0, i32 1
  %1031 = load i64, ptr %1030, align 8, !tbaa !64
  %1032 = lshr i64 %1031, 24
  %1033 = and i64 %1032, 63
  %1034 = or i64 %1033, 64
  %1035 = and i64 %1027, %1034
  %1036 = trunc i64 %1035 to i8
  %1037 = load i32, ptr %11, align 4, !tbaa !5
  %1038 = add nsw i32 %1037, 1
  store i32 %1038, ptr %11, align 4, !tbaa !5
  %1039 = sext i32 %1037 to i64
  %1040 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1039
  store i8 %1036, ptr %1040, align 1, !tbaa !17
  %1041 = load i8, ptr %17, align 1, !tbaa !17
  %1042 = sext i8 %1041 to i64
  %1043 = load ptr, ptr %5, align 8, !tbaa !9
  %1044 = getelementptr inbounds %struct.Apr, ptr %1043, i32 0, i32 4
  %1045 = getelementptr inbounds %struct.AprState, ptr %1044, i32 0, i32 1
  %1046 = load i64, ptr %1045, align 8, !tbaa !64
  %1047 = lshr i64 %1046, 18
  %1048 = and i64 %1047, 63
  %1049 = or i64 %1048, 64
  %1050 = and i64 %1042, %1049
  %1051 = trunc i64 %1050 to i8
  %1052 = load i32, ptr %11, align 4, !tbaa !5
  %1053 = add nsw i32 %1052, 1
  store i32 %1053, ptr %11, align 4, !tbaa !5
  %1054 = sext i32 %1052 to i64
  %1055 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1054
  store i8 %1051, ptr %1055, align 1, !tbaa !17
  %1056 = load i8, ptr %17, align 1, !tbaa !17
  %1057 = sext i8 %1056 to i64
  %1058 = load ptr, ptr %5, align 8, !tbaa !9
  %1059 = getelementptr inbounds %struct.Apr, ptr %1058, i32 0, i32 4
  %1060 = getelementptr inbounds %struct.AprState, ptr %1059, i32 0, i32 1
  %1061 = load i64, ptr %1060, align 8, !tbaa !64
  %1062 = lshr i64 %1061, 12
  %1063 = and i64 %1062, 63
  %1064 = or i64 %1063, 64
  %1065 = and i64 %1057, %1064
  %1066 = trunc i64 %1065 to i8
  %1067 = load i32, ptr %11, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr %11, align 4, !tbaa !5
  %1069 = sext i32 %1067 to i64
  %1070 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1069
  store i8 %1066, ptr %1070, align 1, !tbaa !17
  %1071 = load i8, ptr %17, align 1, !tbaa !17
  %1072 = sext i8 %1071 to i64
  %1073 = load ptr, ptr %5, align 8, !tbaa !9
  %1074 = getelementptr inbounds %struct.Apr, ptr %1073, i32 0, i32 4
  %1075 = getelementptr inbounds %struct.AprState, ptr %1074, i32 0, i32 1
  %1076 = load i64, ptr %1075, align 8, !tbaa !64
  %1077 = lshr i64 %1076, 6
  %1078 = and i64 %1077, 63
  %1079 = or i64 %1078, 64
  %1080 = and i64 %1072, %1079
  %1081 = trunc i64 %1080 to i8
  %1082 = load i32, ptr %11, align 4, !tbaa !5
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr %11, align 4, !tbaa !5
  %1084 = sext i32 %1082 to i64
  %1085 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1084
  store i8 %1081, ptr %1085, align 1, !tbaa !17
  %1086 = load i8, ptr %17, align 1, !tbaa !17
  %1087 = sext i8 %1086 to i64
  %1088 = load ptr, ptr %5, align 8, !tbaa !9
  %1089 = getelementptr inbounds %struct.Apr, ptr %1088, i32 0, i32 4
  %1090 = getelementptr inbounds %struct.AprState, ptr %1089, i32 0, i32 1
  %1091 = load i64, ptr %1090, align 8, !tbaa !64
  %1092 = lshr i64 %1091, 0
  %1093 = and i64 %1092, 63
  %1094 = or i64 %1093, 64
  %1095 = and i64 %1087, %1094
  %1096 = trunc i64 %1095 to i8
  %1097 = load i32, ptr %11, align 4, !tbaa !5
  %1098 = add nsw i32 %1097, 1
  store i32 %1098, ptr %11, align 4, !tbaa !5
  %1099 = sext i32 %1097 to i64
  %1100 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1099
  store i8 %1096, ptr %1100, align 1, !tbaa !17
  %1101 = load i32, ptr %11, align 4, !tbaa !5
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr %11, align 4, !tbaa !5
  %1103 = sext i32 %1101 to i64
  %1104 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1103
  store i8 34, ptr %1104, align 1, !tbaa !17
  %1105 = load i8, ptr %17, align 1, !tbaa !17
  %1106 = sext i8 %1105 to i64
  %1107 = load ptr, ptr %5, align 8, !tbaa !9
  %1108 = getelementptr inbounds %struct.Apr, ptr %1107, i32 0, i32 4
  %1109 = getelementptr inbounds %struct.AprState, ptr %1108, i32 0, i32 0
  %1110 = load i64, ptr %1109, align 8, !tbaa !65
  %1111 = lshr i64 %1110, 30
  %1112 = and i64 %1111, 63
  %1113 = or i64 %1112, 64
  %1114 = and i64 %1106, %1113
  %1115 = trunc i64 %1114 to i8
  %1116 = load i32, ptr %11, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr %11, align 4, !tbaa !5
  %1118 = sext i32 %1116 to i64
  %1119 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1118
  store i8 %1115, ptr %1119, align 1, !tbaa !17
  %1120 = load i8, ptr %17, align 1, !tbaa !17
  %1121 = sext i8 %1120 to i64
  %1122 = load ptr, ptr %5, align 8, !tbaa !9
  %1123 = getelementptr inbounds %struct.Apr, ptr %1122, i32 0, i32 4
  %1124 = getelementptr inbounds %struct.AprState, ptr %1123, i32 0, i32 0
  %1125 = load i64, ptr %1124, align 8, !tbaa !65
  %1126 = lshr i64 %1125, 24
  %1127 = and i64 %1126, 63
  %1128 = or i64 %1127, 64
  %1129 = and i64 %1121, %1128
  %1130 = trunc i64 %1129 to i8
  %1131 = load i32, ptr %11, align 4, !tbaa !5
  %1132 = add nsw i32 %1131, 1
  store i32 %1132, ptr %11, align 4, !tbaa !5
  %1133 = sext i32 %1131 to i64
  %1134 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1133
  store i8 %1130, ptr %1134, align 1, !tbaa !17
  %1135 = load i8, ptr %17, align 1, !tbaa !17
  %1136 = sext i8 %1135 to i64
  %1137 = load ptr, ptr %5, align 8, !tbaa !9
  %1138 = getelementptr inbounds %struct.Apr, ptr %1137, i32 0, i32 4
  %1139 = getelementptr inbounds %struct.AprState, ptr %1138, i32 0, i32 0
  %1140 = load i64, ptr %1139, align 8, !tbaa !65
  %1141 = lshr i64 %1140, 18
  %1142 = and i64 %1141, 63
  %1143 = or i64 %1142, 64
  %1144 = and i64 %1136, %1143
  %1145 = trunc i64 %1144 to i8
  %1146 = load i32, ptr %11, align 4, !tbaa !5
  %1147 = add nsw i32 %1146, 1
  store i32 %1147, ptr %11, align 4, !tbaa !5
  %1148 = sext i32 %1146 to i64
  %1149 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1148
  store i8 %1145, ptr %1149, align 1, !tbaa !17
  %1150 = load i8, ptr %17, align 1, !tbaa !17
  %1151 = sext i8 %1150 to i64
  %1152 = load ptr, ptr %5, align 8, !tbaa !9
  %1153 = getelementptr inbounds %struct.Apr, ptr %1152, i32 0, i32 4
  %1154 = getelementptr inbounds %struct.AprState, ptr %1153, i32 0, i32 0
  %1155 = load i64, ptr %1154, align 8, !tbaa !65
  %1156 = lshr i64 %1155, 12
  %1157 = and i64 %1156, 63
  %1158 = or i64 %1157, 64
  %1159 = and i64 %1151, %1158
  %1160 = trunc i64 %1159 to i8
  %1161 = load i32, ptr %11, align 4, !tbaa !5
  %1162 = add nsw i32 %1161, 1
  store i32 %1162, ptr %11, align 4, !tbaa !5
  %1163 = sext i32 %1161 to i64
  %1164 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1163
  store i8 %1160, ptr %1164, align 1, !tbaa !17
  %1165 = load i8, ptr %17, align 1, !tbaa !17
  %1166 = sext i8 %1165 to i64
  %1167 = load ptr, ptr %5, align 8, !tbaa !9
  %1168 = getelementptr inbounds %struct.Apr, ptr %1167, i32 0, i32 4
  %1169 = getelementptr inbounds %struct.AprState, ptr %1168, i32 0, i32 0
  %1170 = load i64, ptr %1169, align 8, !tbaa !65
  %1171 = lshr i64 %1170, 6
  %1172 = and i64 %1171, 63
  %1173 = or i64 %1172, 64
  %1174 = and i64 %1166, %1173
  %1175 = trunc i64 %1174 to i8
  %1176 = load i32, ptr %11, align 4, !tbaa !5
  %1177 = add nsw i32 %1176, 1
  store i32 %1177, ptr %11, align 4, !tbaa !5
  %1178 = sext i32 %1176 to i64
  %1179 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1178
  store i8 %1175, ptr %1179, align 1, !tbaa !17
  %1180 = load i8, ptr %17, align 1, !tbaa !17
  %1181 = sext i8 %1180 to i64
  %1182 = load ptr, ptr %5, align 8, !tbaa !9
  %1183 = getelementptr inbounds %struct.Apr, ptr %1182, i32 0, i32 4
  %1184 = getelementptr inbounds %struct.AprState, ptr %1183, i32 0, i32 0
  %1185 = load i64, ptr %1184, align 8, !tbaa !65
  %1186 = lshr i64 %1185, 0
  %1187 = and i64 %1186, 63
  %1188 = or i64 %1187, 64
  %1189 = and i64 %1181, %1188
  %1190 = trunc i64 %1189 to i8
  %1191 = load i32, ptr %11, align 4, !tbaa !5
  %1192 = add nsw i32 %1191, 1
  store i32 %1192, ptr %11, align 4, !tbaa !5
  %1193 = sext i32 %1191 to i64
  %1194 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1193
  store i8 %1190, ptr %1194, align 1, !tbaa !17
  br label %2017

1195:                                             ; preds = %578
  %1196 = load i32, ptr %11, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr %11, align 4, !tbaa !5
  %1198 = sext i32 %1196 to i64
  %1199 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1198
  store i8 35, ptr %1199, align 1, !tbaa !17
  %1200 = load i8, ptr %17, align 1, !tbaa !17
  %1201 = sext i8 %1200 to i64
  %1202 = load ptr, ptr %5, align 8, !tbaa !9
  %1203 = getelementptr inbounds %struct.Apr, ptr %1202, i32 0, i32 4
  %1204 = getelementptr inbounds %struct.AprState, ptr %1203, i32 0, i32 2
  %1205 = load i64, ptr %1204, align 8, !tbaa !66
  %1206 = lshr i64 %1205, 30
  %1207 = and i64 %1206, 63
  %1208 = or i64 %1207, 64
  %1209 = and i64 %1201, %1208
  %1210 = trunc i64 %1209 to i8
  %1211 = load i32, ptr %11, align 4, !tbaa !5
  %1212 = add nsw i32 %1211, 1
  store i32 %1212, ptr %11, align 4, !tbaa !5
  %1213 = sext i32 %1211 to i64
  %1214 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1213
  store i8 %1210, ptr %1214, align 1, !tbaa !17
  %1215 = load i8, ptr %17, align 1, !tbaa !17
  %1216 = sext i8 %1215 to i64
  %1217 = load ptr, ptr %5, align 8, !tbaa !9
  %1218 = getelementptr inbounds %struct.Apr, ptr %1217, i32 0, i32 4
  %1219 = getelementptr inbounds %struct.AprState, ptr %1218, i32 0, i32 2
  %1220 = load i64, ptr %1219, align 8, !tbaa !66
  %1221 = lshr i64 %1220, 24
  %1222 = and i64 %1221, 63
  %1223 = or i64 %1222, 64
  %1224 = and i64 %1216, %1223
  %1225 = trunc i64 %1224 to i8
  %1226 = load i32, ptr %11, align 4, !tbaa !5
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr %11, align 4, !tbaa !5
  %1228 = sext i32 %1226 to i64
  %1229 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1228
  store i8 %1225, ptr %1229, align 1, !tbaa !17
  %1230 = load i8, ptr %17, align 1, !tbaa !17
  %1231 = sext i8 %1230 to i64
  %1232 = load ptr, ptr %5, align 8, !tbaa !9
  %1233 = getelementptr inbounds %struct.Apr, ptr %1232, i32 0, i32 4
  %1234 = getelementptr inbounds %struct.AprState, ptr %1233, i32 0, i32 2
  %1235 = load i64, ptr %1234, align 8, !tbaa !66
  %1236 = lshr i64 %1235, 18
  %1237 = and i64 %1236, 63
  %1238 = or i64 %1237, 64
  %1239 = and i64 %1231, %1238
  %1240 = trunc i64 %1239 to i8
  %1241 = load i32, ptr %11, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr %11, align 4, !tbaa !5
  %1243 = sext i32 %1241 to i64
  %1244 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1243
  store i8 %1240, ptr %1244, align 1, !tbaa !17
  %1245 = load i8, ptr %17, align 1, !tbaa !17
  %1246 = sext i8 %1245 to i64
  %1247 = load ptr, ptr %5, align 8, !tbaa !9
  %1248 = getelementptr inbounds %struct.Apr, ptr %1247, i32 0, i32 4
  %1249 = getelementptr inbounds %struct.AprState, ptr %1248, i32 0, i32 2
  %1250 = load i64, ptr %1249, align 8, !tbaa !66
  %1251 = lshr i64 %1250, 12
  %1252 = and i64 %1251, 63
  %1253 = or i64 %1252, 64
  %1254 = and i64 %1246, %1253
  %1255 = trunc i64 %1254 to i8
  %1256 = load i32, ptr %11, align 4, !tbaa !5
  %1257 = add nsw i32 %1256, 1
  store i32 %1257, ptr %11, align 4, !tbaa !5
  %1258 = sext i32 %1256 to i64
  %1259 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1258
  store i8 %1255, ptr %1259, align 1, !tbaa !17
  %1260 = load i8, ptr %17, align 1, !tbaa !17
  %1261 = sext i8 %1260 to i64
  %1262 = load ptr, ptr %5, align 8, !tbaa !9
  %1263 = getelementptr inbounds %struct.Apr, ptr %1262, i32 0, i32 4
  %1264 = getelementptr inbounds %struct.AprState, ptr %1263, i32 0, i32 2
  %1265 = load i64, ptr %1264, align 8, !tbaa !66
  %1266 = lshr i64 %1265, 6
  %1267 = and i64 %1266, 63
  %1268 = or i64 %1267, 64
  %1269 = and i64 %1261, %1268
  %1270 = trunc i64 %1269 to i8
  %1271 = load i32, ptr %11, align 4, !tbaa !5
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr %11, align 4, !tbaa !5
  %1273 = sext i32 %1271 to i64
  %1274 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1273
  store i8 %1270, ptr %1274, align 1, !tbaa !17
  %1275 = load i8, ptr %17, align 1, !tbaa !17
  %1276 = sext i8 %1275 to i64
  %1277 = load ptr, ptr %5, align 8, !tbaa !9
  %1278 = getelementptr inbounds %struct.Apr, ptr %1277, i32 0, i32 4
  %1279 = getelementptr inbounds %struct.AprState, ptr %1278, i32 0, i32 2
  %1280 = load i64, ptr %1279, align 8, !tbaa !66
  %1281 = lshr i64 %1280, 0
  %1282 = and i64 %1281, 63
  %1283 = or i64 %1282, 64
  %1284 = and i64 %1276, %1283
  %1285 = trunc i64 %1284 to i8
  %1286 = load i32, ptr %11, align 4, !tbaa !5
  %1287 = add nsw i32 %1286, 1
  store i32 %1287, ptr %11, align 4, !tbaa !5
  %1288 = sext i32 %1286 to i64
  %1289 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1288
  store i8 %1285, ptr %1289, align 1, !tbaa !17
  br label %2017

1290:                                             ; preds = %578
  %1291 = load i32, ptr %11, align 4, !tbaa !5
  %1292 = add nsw i32 %1291, 1
  store i32 %1292, ptr %11, align 4, !tbaa !5
  %1293 = sext i32 %1291 to i64
  %1294 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1293
  store i8 36, ptr %1294, align 1, !tbaa !17
  %1295 = load i8, ptr %18, align 1, !tbaa !17
  %1296 = sext i8 %1295 to i32
  %1297 = load ptr, ptr %5, align 8, !tbaa !9
  %1298 = getelementptr inbounds %struct.Apr, ptr %1297, i32 0, i32 66
  %1299 = load i8, ptr %1298, align 4, !tbaa !67
  %1300 = zext i8 %1299 to i32
  %1301 = shl i32 %1300, 7
  %1302 = load ptr, ptr %5, align 8, !tbaa !9
  %1303 = getelementptr inbounds %struct.Apr, ptr %1302, i32 0, i32 67
  %1304 = load i8, ptr %1303, align 1, !tbaa !68
  %1305 = zext i8 %1304 to i32
  %1306 = shl i32 %1305, 6
  %1307 = or i32 %1301, %1306
  %1308 = load ptr, ptr %5, align 8, !tbaa !9
  %1309 = getelementptr inbounds %struct.Apr, ptr %1308, i32 0, i32 68
  %1310 = load i8, ptr %1309, align 2, !tbaa !69
  %1311 = zext i8 %1310 to i32
  %1312 = shl i32 %1311, 5
  %1313 = or i32 %1307, %1312
  %1314 = load ptr, ptr %5, align 8, !tbaa !9
  %1315 = getelementptr inbounds %struct.Apr, ptr %1314, i32 0, i32 69
  %1316 = load i8, ptr %1315, align 1, !tbaa !70
  %1317 = zext i8 %1316 to i32
  %1318 = shl i32 %1317, 4
  %1319 = or i32 %1313, %1318
  %1320 = load ptr, ptr %5, align 8, !tbaa !9
  %1321 = getelementptr inbounds %struct.Apr, ptr %1320, i32 0, i32 70
  %1322 = load i8, ptr %1321, align 8, !tbaa !71
  %1323 = zext i8 %1322 to i32
  %1324 = shl i32 %1323, 3
  %1325 = or i32 %1319, %1324
  %1326 = load ptr, ptr %5, align 8, !tbaa !9
  %1327 = getelementptr inbounds %struct.Apr, ptr %1326, i32 0, i32 72
  %1328 = load i8, ptr %1327, align 2, !tbaa !72
  %1329 = zext i8 %1328 to i32
  %1330 = shl i32 %1329, 2
  %1331 = or i32 %1325, %1330
  %1332 = load ptr, ptr %5, align 8, !tbaa !9
  %1333 = getelementptr inbounds %struct.Apr, ptr %1332, i32 0, i32 73
  %1334 = load i8, ptr %1333, align 1, !tbaa !73
  %1335 = zext i8 %1334 to i32
  %1336 = shl i32 %1335, 1
  %1337 = or i32 %1331, %1336
  %1338 = load ptr, ptr %5, align 8, !tbaa !9
  %1339 = getelementptr inbounds %struct.Apr, ptr %1338, i32 0, i32 74
  %1340 = load i8, ptr %1339, align 4, !tbaa !74
  %1341 = zext i8 %1340 to i32
  %1342 = or i32 %1337, %1341
  %1343 = and i32 %1296, %1342
  %1344 = trunc i32 %1343 to i8
  %1345 = load i32, ptr %11, align 4, !tbaa !5
  %1346 = add nsw i32 %1345, 1
  store i32 %1346, ptr %11, align 4, !tbaa !5
  %1347 = sext i32 %1345 to i64
  %1348 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1347
  store i8 %1344, ptr %1348, align 1, !tbaa !17
  %1349 = load i8, ptr %18, align 1, !tbaa !17
  %1350 = sext i8 %1349 to i32
  %1351 = load ptr, ptr %5, align 8, !tbaa !9
  %1352 = getelementptr inbounds %struct.Apr, ptr %1351, i32 0, i32 93
  %1353 = load i8, ptr %1352, align 2, !tbaa !75
  %1354 = zext i8 %1353 to i32
  %1355 = shl i32 %1354, 7
  %1356 = load ptr, ptr %5, align 8, !tbaa !9
  %1357 = getelementptr inbounds %struct.Apr, ptr %1356, i32 0, i32 94
  %1358 = load i8, ptr %1357, align 1, !tbaa !76
  %1359 = zext i8 %1358 to i32
  %1360 = shl i32 %1359, 6
  %1361 = or i32 %1355, %1360
  %1362 = load ptr, ptr %5, align 8, !tbaa !9
  %1363 = getelementptr inbounds %struct.Apr, ptr %1362, i32 0, i32 95
  %1364 = load i8, ptr %1363, align 4, !tbaa !77
  %1365 = zext i8 %1364 to i32
  %1366 = shl i32 %1365, 5
  %1367 = or i32 %1361, %1366
  %1368 = load ptr, ptr %5, align 8, !tbaa !9
  %1369 = getelementptr inbounds %struct.Apr, ptr %1368, i32 0, i32 96
  %1370 = load i8, ptr %1369, align 1, !tbaa !78
  %1371 = zext i8 %1370 to i32
  %1372 = shl i32 %1371, 4
  %1373 = or i32 %1367, %1372
  %1374 = load ptr, ptr %5, align 8, !tbaa !9
  %1375 = getelementptr inbounds %struct.Apr, ptr %1374, i32 0, i32 100
  %1376 = load i8, ptr %1375, align 1, !tbaa !79
  %1377 = zext i8 %1376 to i32
  %1378 = shl i32 %1377, 3
  %1379 = or i32 %1373, %1378
  %1380 = load ptr, ptr %5, align 8, !tbaa !9
  %1381 = getelementptr inbounds %struct.Apr, ptr %1380, i32 0, i32 97
  %1382 = load i8, ptr %1381, align 2, !tbaa !80
  %1383 = zext i8 %1382 to i32
  %1384 = shl i32 %1383, 2
  %1385 = or i32 %1379, %1384
  %1386 = load ptr, ptr %5, align 8, !tbaa !9
  %1387 = getelementptr inbounds %struct.Apr, ptr %1386, i32 0, i32 98
  %1388 = load i8, ptr %1387, align 1, !tbaa !81
  %1389 = zext i8 %1388 to i32
  %1390 = shl i32 %1389, 1
  %1391 = or i32 %1385, %1390
  %1392 = load ptr, ptr %5, align 8, !tbaa !9
  %1393 = getelementptr inbounds %struct.Apr, ptr %1392, i32 0, i32 99
  %1394 = load i8, ptr %1393, align 8, !tbaa !82
  %1395 = zext i8 %1394 to i32
  %1396 = or i32 %1391, %1395
  %1397 = and i32 %1350, %1396
  %1398 = trunc i32 %1397 to i8
  %1399 = load i32, ptr %11, align 4, !tbaa !5
  %1400 = add nsw i32 %1399, 1
  store i32 %1400, ptr %11, align 4, !tbaa !5
  %1401 = sext i32 %1399 to i64
  %1402 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1401
  store i8 %1398, ptr %1402, align 1, !tbaa !17
  %1403 = load i8, ptr %18, align 1, !tbaa !17
  %1404 = sext i8 %1403 to i32
  %1405 = load ptr, ptr %5, align 8, !tbaa !9
  %1406 = getelementptr inbounds %struct.Apr, ptr %1405, i32 0, i32 110
  %1407 = load i8, ptr %1406, align 1, !tbaa !83
  %1408 = zext i8 %1407 to i32
  %1409 = shl i32 %1408, 7
  %1410 = load ptr, ptr %5, align 8, !tbaa !9
  %1411 = getelementptr inbounds %struct.Apr, ptr %1410, i32 0, i32 111
  %1412 = load i8, ptr %1411, align 4, !tbaa !84
  %1413 = zext i8 %1412 to i32
  %1414 = shl i32 %1413, 6
  %1415 = or i32 %1409, %1414
  %1416 = load ptr, ptr %5, align 8, !tbaa !9
  %1417 = getelementptr inbounds %struct.Apr, ptr %1416, i32 0, i32 112
  %1418 = load i8, ptr %1417, align 1, !tbaa !85
  %1419 = zext i8 %1418 to i32
  %1420 = shl i32 %1419, 5
  %1421 = or i32 %1415, %1420
  %1422 = load ptr, ptr %5, align 8, !tbaa !9
  %1423 = getelementptr inbounds %struct.Apr, ptr %1422, i32 0, i32 64
  %1424 = load i8, ptr %1423, align 2, !tbaa !86
  %1425 = zext i8 %1424 to i32
  %1426 = shl i32 %1425, 4
  %1427 = or i32 %1421, %1426
  %1428 = load ptr, ptr %5, align 8, !tbaa !9
  %1429 = getelementptr inbounds %struct.Apr, ptr %1428, i32 0, i32 141
  %1430 = load i8, ptr %1429, align 2, !tbaa !87
  %1431 = zext i8 %1430 to i32
  %1432 = shl i32 %1431, 3
  %1433 = or i32 %1427, %1432
  %1434 = load ptr, ptr %5, align 8, !tbaa !9
  %1435 = getelementptr inbounds %struct.Apr, ptr %1434, i32 0, i32 142
  %1436 = load i8, ptr %1435, align 1, !tbaa !88
  %1437 = zext i8 %1436 to i32
  %1438 = shl i32 %1437, 2
  %1439 = or i32 %1433, %1438
  %1440 = load ptr, ptr %5, align 8, !tbaa !9
  %1441 = getelementptr inbounds %struct.Apr, ptr %1440, i32 0, i32 143
  %1442 = load i8, ptr %1441, align 4, !tbaa !89
  %1443 = zext i8 %1442 to i32
  %1444 = shl i32 %1443, 1
  %1445 = or i32 %1439, %1444
  %1446 = load ptr, ptr %5, align 8, !tbaa !9
  %1447 = getelementptr inbounds %struct.Apr, ptr %1446, i32 0, i32 140
  %1448 = load i8, ptr %1447, align 1, !tbaa !90
  %1449 = zext i8 %1448 to i32
  %1450 = or i32 %1445, %1449
  %1451 = and i32 %1404, %1450
  %1452 = trunc i32 %1451 to i8
  %1453 = load i32, ptr %11, align 4, !tbaa !5
  %1454 = add nsw i32 %1453, 1
  store i32 %1454, ptr %11, align 4, !tbaa !5
  %1455 = sext i32 %1453 to i64
  %1456 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1455
  store i8 %1452, ptr %1456, align 1, !tbaa !17
  %1457 = load i8, ptr %18, align 1, !tbaa !17
  %1458 = sext i8 %1457 to i32
  %1459 = load ptr, ptr %5, align 8, !tbaa !9
  %1460 = getelementptr inbounds %struct.Apr, ptr %1459, i32 0, i32 135
  %1461 = load i8, ptr %1460, align 4, !tbaa !91
  %1462 = zext i8 %1461 to i32
  %1463 = shl i32 %1462, 7
  %1464 = load ptr, ptr %5, align 8, !tbaa !9
  %1465 = getelementptr inbounds %struct.Apr, ptr %1464, i32 0, i32 136
  %1466 = load i8, ptr %1465, align 1, !tbaa !92
  %1467 = zext i8 %1466 to i32
  %1468 = shl i32 %1467, 6
  %1469 = or i32 %1463, %1468
  %1470 = load ptr, ptr %5, align 8, !tbaa !9
  %1471 = getelementptr inbounds %struct.Apr, ptr %1470, i32 0, i32 131
  %1472 = load i8, ptr %1471, align 8, !tbaa !93
  %1473 = zext i8 %1472 to i32
  %1474 = shl i32 %1473, 5
  %1475 = or i32 %1469, %1474
  %1476 = load ptr, ptr %5, align 8, !tbaa !9
  %1477 = getelementptr inbounds %struct.Apr, ptr %1476, i32 0, i32 132
  %1478 = load i8, ptr %1477, align 1, !tbaa !94
  %1479 = zext i8 %1478 to i32
  %1480 = shl i32 %1479, 4
  %1481 = or i32 %1475, %1480
  %1482 = load ptr, ptr %5, align 8, !tbaa !9
  %1483 = getelementptr inbounds %struct.Apr, ptr %1482, i32 0, i32 133
  %1484 = load i8, ptr %1483, align 2, !tbaa !95
  %1485 = zext i8 %1484 to i32
  %1486 = shl i32 %1485, 3
  %1487 = or i32 %1481, %1486
  %1488 = load ptr, ptr %5, align 8, !tbaa !9
  %1489 = getelementptr inbounds %struct.Apr, ptr %1488, i32 0, i32 134
  %1490 = load i8, ptr %1489, align 1, !tbaa !96
  %1491 = zext i8 %1490 to i32
  %1492 = shl i32 %1491, 2
  %1493 = or i32 %1487, %1492
  %1494 = load ptr, ptr %5, align 8, !tbaa !9
  %1495 = getelementptr inbounds %struct.Apr, ptr %1494, i32 0, i32 127
  %1496 = load i8, ptr %1495, align 4, !tbaa !97
  %1497 = zext i8 %1496 to i32
  %1498 = shl i32 %1497, 1
  %1499 = or i32 %1493, %1498
  %1500 = load ptr, ptr %5, align 8, !tbaa !9
  %1501 = getelementptr inbounds %struct.Apr, ptr %1500, i32 0, i32 128
  %1502 = load i8, ptr %1501, align 1, !tbaa !98
  %1503 = zext i8 %1502 to i32
  %1504 = or i32 %1499, %1503
  %1505 = and i32 %1458, %1504
  %1506 = trunc i32 %1505 to i8
  %1507 = load i32, ptr %11, align 4, !tbaa !5
  %1508 = add nsw i32 %1507, 1
  store i32 %1508, ptr %11, align 4, !tbaa !5
  %1509 = sext i32 %1507 to i64
  %1510 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1509
  store i8 %1506, ptr %1510, align 1, !tbaa !17
  %1511 = load i8, ptr %18, align 1, !tbaa !17
  %1512 = sext i8 %1511 to i32
  %1513 = load ptr, ptr %5, align 8, !tbaa !9
  %1514 = getelementptr inbounds %struct.Apr, ptr %1513, i32 0, i32 129
  %1515 = load i8, ptr %1514, align 2, !tbaa !99
  %1516 = zext i8 %1515 to i32
  %1517 = shl i32 %1516, 7
  %1518 = load ptr, ptr %5, align 8, !tbaa !9
  %1519 = getelementptr inbounds %struct.Apr, ptr %1518, i32 0, i32 130
  %1520 = load i8, ptr %1519, align 1, !tbaa !100
  %1521 = zext i8 %1520 to i32
  %1522 = shl i32 %1521, 6
  %1523 = or i32 %1517, %1522
  %1524 = load ptr, ptr %5, align 8, !tbaa !9
  %1525 = getelementptr inbounds %struct.Apr, ptr %1524, i32 0, i32 6
  %1526 = load i32, ptr %1525, align 8, !tbaa !54
  %1527 = and i32 %1526, 2048
  %1528 = icmp ne i32 %1527, 0
  br i1 %1528, label %1529, label %1542

1529:                                             ; preds = %1290
  %1530 = load ptr, ptr %5, align 8, !tbaa !9
  %1531 = getelementptr inbounds %struct.Apr, ptr %1530, i32 0, i32 4
  %1532 = getelementptr inbounds %struct.AprState, ptr %1531, i32 0, i32 2
  %1533 = load i64, ptr %1532, align 8, !tbaa !66
  %1534 = and i64 %1533, 17179869184
  %1535 = icmp ne i64 %1534, 0
  br i1 %1535, label %1536, label %1542

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr %5, align 8, !tbaa !9
  %1538 = getelementptr inbounds %struct.Apr, ptr %1537, i32 0, i32 139
  %1539 = load i8, ptr %1538, align 8, !tbaa !101
  %1540 = icmp ne i8 %1539, 0
  %1541 = xor i1 %1540, true
  br label %1542

1542:                                             ; preds = %1536, %1529, %1290
  %1543 = phi i1 [ false, %1529 ], [ false, %1290 ], [ %1541, %1536 ]
  %1544 = zext i1 %1543 to i32
  %1545 = shl i32 %1544, 5
  %1546 = or i32 %1523, %1545
  %1547 = load ptr, ptr %5, align 8, !tbaa !9
  %1548 = getelementptr inbounds %struct.Apr, ptr %1547, i32 0, i32 137
  %1549 = load i8, ptr %1548, align 2, !tbaa !102
  %1550 = zext i8 %1549 to i32
  %1551 = shl i32 %1550, 4
  %1552 = or i32 %1546, %1551
  %1553 = load ptr, ptr %5, align 8, !tbaa !9
  %1554 = getelementptr inbounds %struct.Apr, ptr %1553, i32 0, i32 138
  %1555 = load i8, ptr %1554, align 1, !tbaa !103
  %1556 = zext i8 %1555 to i32
  %1557 = shl i32 %1556, 3
  %1558 = or i32 %1552, %1557
  %1559 = load ptr, ptr %5, align 8, !tbaa !9
  %1560 = getelementptr inbounds %struct.Apr, ptr %1559, i32 0, i32 139
  %1561 = load i8, ptr %1560, align 8, !tbaa !101
  %1562 = zext i8 %1561 to i32
  %1563 = shl i32 %1562, 2
  %1564 = or i32 %1558, %1563
  %1565 = load ptr, ptr %5, align 8, !tbaa !9
  %1566 = getelementptr inbounds %struct.Apr, ptr %1565, i32 0, i32 126
  %1567 = load i8, ptr %1566, align 1, !tbaa !104
  %1568 = zext i8 %1567 to i32
  %1569 = shl i32 %1568, 1
  %1570 = or i32 %1564, %1569
  %1571 = load ptr, ptr %5, align 8, !tbaa !9
  %1572 = getelementptr inbounds %struct.Apr, ptr %1571, i32 0, i32 107
  %1573 = load i8, ptr %1572, align 8, !tbaa !105
  %1574 = zext i8 %1573 to i32
  %1575 = or i32 %1570, %1574
  %1576 = and i32 %1512, %1575
  %1577 = trunc i32 %1576 to i8
  %1578 = load i32, ptr %11, align 4, !tbaa !5
  %1579 = add nsw i32 %1578, 1
  store i32 %1579, ptr %11, align 4, !tbaa !5
  %1580 = sext i32 %1578 to i64
  %1581 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1580
  store i8 %1577, ptr %1581, align 1, !tbaa !17
  %1582 = load i8, ptr %18, align 1, !tbaa !17
  %1583 = sext i8 %1582 to i32
  %1584 = load ptr, ptr %5, align 8, !tbaa !9
  %1585 = getelementptr inbounds %struct.Apr, ptr %1584, i32 0, i32 117
  %1586 = load i8, ptr %1585, align 2, !tbaa !106
  %1587 = zext i8 %1586 to i32
  %1588 = shl i32 %1587, 7
  %1589 = load ptr, ptr %5, align 8, !tbaa !9
  %1590 = getelementptr inbounds %struct.Apr, ptr %1589, i32 0, i32 118
  %1591 = load i8, ptr %1590, align 1, !tbaa !107
  %1592 = zext i8 %1591 to i32
  %1593 = shl i32 %1592, 6
  %1594 = or i32 %1588, %1593
  %1595 = load ptr, ptr %5, align 8, !tbaa !9
  %1596 = getelementptr inbounds %struct.Apr, ptr %1595, i32 0, i32 119
  %1597 = load i8, ptr %1596, align 4, !tbaa !108
  %1598 = zext i8 %1597 to i32
  %1599 = shl i32 %1598, 5
  %1600 = or i32 %1594, %1599
  %1601 = load ptr, ptr %5, align 8, !tbaa !9
  %1602 = getelementptr inbounds %struct.Apr, ptr %1601, i32 0, i32 120
  %1603 = load i8, ptr %1602, align 1, !tbaa !109
  %1604 = zext i8 %1603 to i32
  %1605 = shl i32 %1604, 4
  %1606 = or i32 %1600, %1605
  %1607 = load ptr, ptr %5, align 8, !tbaa !9
  %1608 = getelementptr inbounds %struct.Apr, ptr %1607, i32 0, i32 121
  %1609 = load i8, ptr %1608, align 2, !tbaa !110
  %1610 = zext i8 %1609 to i32
  %1611 = shl i32 %1610, 3
  %1612 = or i32 %1606, %1611
  %1613 = load ptr, ptr %5, align 8, !tbaa !9
  %1614 = getelementptr inbounds %struct.Apr, ptr %1613, i32 0, i32 122
  %1615 = load i8, ptr %1614, align 1, !tbaa !111
  %1616 = zext i8 %1615 to i32
  %1617 = shl i32 %1616, 2
  %1618 = or i32 %1612, %1617
  %1619 = load ptr, ptr %5, align 8, !tbaa !9
  %1620 = getelementptr inbounds %struct.Apr, ptr %1619, i32 0, i32 123
  %1621 = load i8, ptr %1620, align 8, !tbaa !112
  %1622 = zext i8 %1621 to i32
  %1623 = shl i32 %1622, 1
  %1624 = or i32 %1618, %1623
  %1625 = load ptr, ptr %5, align 8, !tbaa !9
  %1626 = getelementptr inbounds %struct.Apr, ptr %1625, i32 0, i32 124
  %1627 = load i8, ptr %1626, align 1, !tbaa !113
  %1628 = zext i8 %1627 to i32
  %1629 = or i32 %1624, %1628
  %1630 = and i32 %1583, %1629
  %1631 = trunc i32 %1630 to i8
  %1632 = load i32, ptr %11, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr %11, align 4, !tbaa !5
  %1634 = sext i32 %1632 to i64
  %1635 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1634
  store i8 %1631, ptr %1635, align 1, !tbaa !17
  %1636 = load i8, ptr %18, align 1, !tbaa !17
  %1637 = sext i8 %1636 to i32
  %1638 = load ptr, ptr %5, align 8, !tbaa !9
  %1639 = getelementptr inbounds %struct.Apr, ptr %1638, i32 0, i32 125
  %1640 = load i8, ptr %1639, align 2, !tbaa !114
  %1641 = zext i8 %1640 to i32
  %1642 = shl i32 %1641, 7
  %1643 = load ptr, ptr %5, align 8, !tbaa !9
  %1644 = getelementptr inbounds %struct.Apr, ptr %1643, i32 0, i32 116
  %1645 = load i8, ptr %1644, align 1, !tbaa !115
  %1646 = zext i8 %1645 to i32
  %1647 = shl i32 %1646, 6
  %1648 = or i32 %1642, %1647
  %1649 = load ptr, ptr %5, align 8, !tbaa !9
  %1650 = getelementptr inbounds %struct.Apr, ptr %1649, i32 0, i32 114
  %1651 = load i8, ptr %1650, align 1, !tbaa !116
  %1652 = zext i8 %1651 to i32
  %1653 = shl i32 %1652, 5
  %1654 = or i32 %1648, %1653
  %1655 = load ptr, ptr %5, align 8, !tbaa !9
  %1656 = getelementptr inbounds %struct.Apr, ptr %1655, i32 0, i32 115
  %1657 = load i8, ptr %1656, align 8, !tbaa !117
  %1658 = zext i8 %1657 to i32
  %1659 = shl i32 %1658, 4
  %1660 = or i32 %1654, %1659
  %1661 = load ptr, ptr %5, align 8, !tbaa !9
  %1662 = getelementptr inbounds %struct.Apr, ptr %1661, i32 0, i32 77
  %1663 = load i8, ptr %1662, align 1, !tbaa !118
  %1664 = zext i8 %1663 to i32
  %1665 = shl i32 %1664, 3
  %1666 = or i32 %1660, %1665
  %1667 = load ptr, ptr %5, align 8, !tbaa !9
  %1668 = getelementptr inbounds %struct.Apr, ptr %1667, i32 0, i32 76
  %1669 = load i8, ptr %1668, align 2, !tbaa !119
  %1670 = zext i8 %1669 to i32
  %1671 = shl i32 %1670, 2
  %1672 = or i32 %1666, %1671
  %1673 = load ptr, ptr %5, align 8, !tbaa !9
  %1674 = getelementptr inbounds %struct.Apr, ptr %1673, i32 0, i32 113
  %1675 = load i8, ptr %1674, align 2, !tbaa !120
  %1676 = zext i8 %1675 to i32
  %1677 = shl i32 %1676, 1
  %1678 = or i32 %1672, %1677
  %1679 = load ptr, ptr %5, align 8, !tbaa !9
  %1680 = getelementptr inbounds %struct.Apr, ptr %1679, i32 0, i32 13
  %1681 = load i16, ptr %1680, align 2, !tbaa !121
  %1682 = zext i16 %1681 to i32
  %1683 = icmp eq i32 %1682, 511
  %1684 = zext i1 %1683 to i32
  %1685 = or i32 %1678, %1684
  %1686 = and i32 %1637, %1685
  %1687 = trunc i32 %1686 to i8
  %1688 = load i32, ptr %11, align 4, !tbaa !5
  %1689 = add nsw i32 %1688, 1
  store i32 %1689, ptr %11, align 4, !tbaa !5
  %1690 = sext i32 %1688 to i64
  %1691 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1690
  store i8 %1687, ptr %1691, align 1, !tbaa !17
  %1692 = load i8, ptr %18, align 1, !tbaa !17
  %1693 = sext i8 %1692 to i32
  %1694 = load ptr, ptr %5, align 8, !tbaa !9
  %1695 = getelementptr inbounds %struct.Apr, ptr %1694, i32 0, i32 101
  %1696 = load i8, ptr %1695, align 2, !tbaa !122
  %1697 = zext i8 %1696 to i32
  %1698 = shl i32 %1697, 7
  %1699 = load ptr, ptr %5, align 8, !tbaa !9
  %1700 = getelementptr inbounds %struct.Apr, ptr %1699, i32 0, i32 102
  %1701 = load i8, ptr %1700, align 1, !tbaa !123
  %1702 = zext i8 %1701 to i32
  %1703 = shl i32 %1702, 6
  %1704 = or i32 %1698, %1703
  %1705 = load ptr, ptr %5, align 8, !tbaa !9
  %1706 = getelementptr inbounds %struct.Apr, ptr %1705, i32 0, i32 103
  %1707 = load i8, ptr %1706, align 4, !tbaa !124
  %1708 = zext i8 %1707 to i32
  %1709 = shl i32 %1708, 5
  %1710 = or i32 %1704, %1709
  %1711 = load ptr, ptr %5, align 8, !tbaa !9
  %1712 = getelementptr inbounds %struct.Apr, ptr %1711, i32 0, i32 104
  %1713 = load i8, ptr %1712, align 1, !tbaa !125
  %1714 = zext i8 %1713 to i32
  %1715 = shl i32 %1714, 4
  %1716 = or i32 %1710, %1715
  %1717 = load ptr, ptr %5, align 8, !tbaa !9
  %1718 = getelementptr inbounds %struct.Apr, ptr %1717, i32 0, i32 105
  %1719 = load i8, ptr %1718, align 2, !tbaa !126
  %1720 = zext i8 %1719 to i32
  %1721 = shl i32 %1720, 3
  %1722 = or i32 %1716, %1721
  %1723 = load ptr, ptr %5, align 8, !tbaa !9
  %1724 = getelementptr inbounds %struct.Apr, ptr %1723, i32 0, i32 106
  %1725 = load i8, ptr %1724, align 1, !tbaa !127
  %1726 = zext i8 %1725 to i32
  %1727 = shl i32 %1726, 2
  %1728 = or i32 %1722, %1727
  %1729 = load ptr, ptr %5, align 8, !tbaa !9
  %1730 = getelementptr inbounds %struct.Apr, ptr %1729, i32 0, i32 108
  %1731 = load i8, ptr %1730, align 1, !tbaa !128
  %1732 = zext i8 %1731 to i32
  %1733 = shl i32 %1732, 1
  %1734 = or i32 %1728, %1733
  %1735 = load ptr, ptr %5, align 8, !tbaa !9
  %1736 = getelementptr inbounds %struct.Apr, ptr %1735, i32 0, i32 109
  %1737 = load i8, ptr %1736, align 2, !tbaa !129
  %1738 = zext i8 %1737 to i32
  %1739 = or i32 %1734, %1738
  %1740 = and i32 %1693, %1739
  %1741 = trunc i32 %1740 to i8
  %1742 = load i32, ptr %11, align 4, !tbaa !5
  %1743 = add nsw i32 %1742, 1
  store i32 %1743, ptr %11, align 4, !tbaa !5
  %1744 = sext i32 %1742 to i64
  %1745 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1744
  store i8 %1741, ptr %1745, align 1, !tbaa !17
  %1746 = load i8, ptr %18, align 1, !tbaa !17
  %1747 = sext i8 %1746 to i32
  %1748 = load ptr, ptr %5, align 8, !tbaa !9
  %1749 = getelementptr inbounds %struct.Apr, ptr %1748, i32 0, i32 51
  %1750 = load i8, ptr %1749, align 1, !tbaa !130
  %1751 = zext i8 %1750 to i32
  %1752 = shl i32 %1751, 7
  %1753 = load ptr, ptr %5, align 8, !tbaa !9
  %1754 = getelementptr inbounds %struct.Apr, ptr %1753, i32 0, i32 52
  %1755 = load i8, ptr %1754, align 2, !tbaa !131
  %1756 = zext i8 %1755 to i32
  %1757 = shl i32 %1756, 6
  %1758 = or i32 %1752, %1757
  %1759 = load ptr, ptr %5, align 8, !tbaa !9
  %1760 = getelementptr inbounds %struct.Apr, ptr %1759, i32 0, i32 49
  %1761 = load i8, ptr %1760, align 1, !tbaa !132
  %1762 = icmp ne i8 %1761, 0
  %1763 = xor i1 %1762, true
  %1764 = xor i1 %1763, true
  %1765 = zext i1 %1764 to i32
  %1766 = shl i32 %1765, 5
  %1767 = or i32 %1758, %1766
  %1768 = load ptr, ptr %5, align 8, !tbaa !9
  %1769 = getelementptr inbounds %struct.Apr, ptr %1768, i32 0, i32 87
  %1770 = load i8, ptr %1769, align 4, !tbaa !133
  %1771 = zext i8 %1770 to i32
  %1772 = shl i32 %1771, 4
  %1773 = or i32 %1767, %1772
  %1774 = load ptr, ptr %5, align 8, !tbaa !9
  %1775 = getelementptr inbounds %struct.Apr, ptr %1774, i32 0, i32 92
  %1776 = load i8, ptr %1775, align 1, !tbaa !134
  %1777 = zext i8 %1776 to i32
  %1778 = shl i32 %1777, 3
  %1779 = or i32 %1773, %1778
  %1780 = load ptr, ptr %5, align 8, !tbaa !9
  %1781 = getelementptr inbounds %struct.Apr, ptr %1780, i32 0, i32 10
  %1782 = load i32, ptr %1781, align 4, !tbaa !57
  %1783 = load ptr, ptr %5, align 8, !tbaa !9
  %1784 = getelementptr inbounds %struct.Apr, ptr %1783, i32 0, i32 11
  %1785 = load i32, ptr %1784, align 8, !tbaa !26
  %1786 = icmp eq i32 %1782, %1785
  %1787 = zext i1 %1786 to i32
  %1788 = shl i32 %1787, 2
  %1789 = or i32 %1779, %1788
  %1790 = load ptr, ptr %5, align 8, !tbaa !9
  %1791 = getelementptr inbounds %struct.Apr, ptr %1790, i32 0, i32 144
  %1792 = load i8, ptr %1791, align 1, !tbaa !135
  %1793 = zext i8 %1792 to i32
  %1794 = shl i32 %1793, 1
  %1795 = or i32 %1789, %1794
  %1796 = load ptr, ptr %5, align 8, !tbaa !9
  %1797 = getelementptr inbounds %struct.Apr, ptr %1796, i32 0, i32 84
  %1798 = load i8, ptr %1797, align 2, !tbaa !136
  %1799 = zext i8 %1798 to i32
  %1800 = or i32 %1795, %1799
  %1801 = and i32 %1747, %1800
  %1802 = trunc i32 %1801 to i8
  %1803 = load i32, ptr %11, align 4, !tbaa !5
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr %11, align 4, !tbaa !5
  %1805 = sext i32 %1803 to i64
  %1806 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1805
  store i8 %1802, ptr %1806, align 1, !tbaa !17
  %1807 = load i8, ptr %18, align 1, !tbaa !17
  %1808 = sext i8 %1807 to i32
  %1809 = load ptr, ptr %5, align 8, !tbaa !9
  %1810 = getelementptr inbounds %struct.Apr, ptr %1809, i32 0, i32 14
  %1811 = load i16, ptr %1810, align 8, !tbaa !137
  %1812 = zext i16 %1811 to i32
  %1813 = and i32 %1808, %1812
  %1814 = trunc i32 %1813 to i8
  %1815 = load i32, ptr %11, align 4, !tbaa !5
  %1816 = add nsw i32 %1815, 1
  store i32 %1816, ptr %11, align 4, !tbaa !5
  %1817 = sext i32 %1815 to i64
  %1818 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1817
  store i8 %1814, ptr %1818, align 1, !tbaa !17
  %1819 = load i8, ptr %18, align 1, !tbaa !17
  %1820 = sext i8 %1819 to i32
  %1821 = load ptr, ptr %5, align 8, !tbaa !9
  %1822 = getelementptr inbounds %struct.Apr, ptr %1821, i32 0, i32 13
  %1823 = load i16, ptr %1822, align 2, !tbaa !121
  %1824 = zext i16 %1823 to i32
  %1825 = and i32 %1820, %1824
  %1826 = trunc i32 %1825 to i8
  %1827 = load i32, ptr %11, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr %11, align 4, !tbaa !5
  %1829 = sext i32 %1827 to i64
  %1830 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1829
  store i8 %1826, ptr %1830, align 1, !tbaa !17
  %1831 = load i8, ptr %18, align 1, !tbaa !17
  %1832 = sext i8 %1831 to i32
  %1833 = load ptr, ptr %5, align 8, !tbaa !9
  %1834 = getelementptr inbounds %struct.Apr, ptr %1833, i32 0, i32 57
  %1835 = load i8, ptr %1834, align 1, !tbaa !138
  %1836 = icmp ne i8 %1835, 0
  %1837 = xor i1 %1836, true
  %1838 = zext i1 %1837 to i32
  %1839 = shl i32 %1838, 7
  %1840 = load ptr, ptr %5, align 8, !tbaa !9
  %1841 = getelementptr inbounds %struct.Apr, ptr %1840, i32 0, i32 79
  %1842 = load i8, ptr %1841, align 1, !tbaa !139
  %1843 = zext i8 %1842 to i32
  %1844 = shl i32 %1843, 6
  %1845 = or i32 %1839, %1844
  %1846 = load ptr, ptr %5, align 8, !tbaa !9
  %1847 = getelementptr inbounds %struct.Apr, ptr %1846, i32 0, i32 56
  %1848 = load i8, ptr %1847, align 2, !tbaa !140
  %1849 = zext i8 %1848 to i32
  %1850 = shl i32 %1849, 5
  %1851 = or i32 %1845, %1850
  %1852 = load ptr, ptr %5, align 8, !tbaa !9
  %1853 = getelementptr inbounds %struct.Apr, ptr %1852, i32 0, i32 54
  %1854 = load i8, ptr %1853, align 8, !tbaa !141
  %1855 = zext i8 %1854 to i32
  %1856 = shl i32 %1855, 4
  %1857 = or i32 %1851, %1856
  %1858 = load ptr, ptr %5, align 8, !tbaa !9
  %1859 = getelementptr inbounds %struct.Apr, ptr %1858, i32 0, i32 55
  %1860 = load i8, ptr %1859, align 1, !tbaa !142
  %1861 = zext i8 %1860 to i32
  %1862 = shl i32 %1861, 3
  %1863 = or i32 %1857, %1862
  %1864 = load ptr, ptr %5, align 8, !tbaa !9
  %1865 = getelementptr inbounds %struct.Apr, ptr %1864, i32 0, i32 12
  %1866 = load i8, ptr %1865, align 4, !tbaa !143
  %1867 = zext i8 %1866 to i32
  %1868 = shl i32 %1867, 2
  %1869 = or i32 %1863, %1868
  %1870 = load ptr, ptr %5, align 8, !tbaa !9
  %1871 = getelementptr inbounds %struct.Apr, ptr %1870, i32 0, i32 13
  %1872 = load i16, ptr %1871, align 2, !tbaa !121
  %1873 = zext i16 %1872 to i32
  %1874 = and i32 %1873, 256
  %1875 = icmp ne i32 %1874, 0
  %1876 = xor i1 %1875, true
  %1877 = xor i1 %1876, true
  %1878 = zext i1 %1877 to i32
  %1879 = shl i32 %1878, 1
  %1880 = or i32 %1869, %1879
  %1881 = load ptr, ptr %5, align 8, !tbaa !9
  %1882 = getelementptr inbounds %struct.Apr, ptr %1881, i32 0, i32 14
  %1883 = load i16, ptr %1882, align 8, !tbaa !137
  %1884 = zext i16 %1883 to i32
  %1885 = and i32 %1884, 256
  %1886 = icmp ne i32 %1885, 0
  %1887 = xor i1 %1886, true
  %1888 = xor i1 %1887, true
  %1889 = zext i1 %1888 to i32
  %1890 = or i32 %1880, %1889
  %1891 = and i32 %1832, %1890
  %1892 = trunc i32 %1891 to i8
  %1893 = load i32, ptr %11, align 4, !tbaa !5
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr %11, align 4, !tbaa !5
  %1895 = sext i32 %1893 to i64
  %1896 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1895
  store i8 %1892, ptr %1896, align 1, !tbaa !17
  %1897 = load i8, ptr %18, align 1, !tbaa !17
  %1898 = sext i8 %1897 to i32
  %1899 = load ptr, ptr %5, align 8, !tbaa !9
  %1900 = getelementptr inbounds %struct.Apr, ptr %1899, i32 0, i32 71
  %1901 = load i8, ptr %1900, align 1, !tbaa !144
  %1902 = zext i8 %1901 to i32
  %1903 = shl i32 %1902, 7
  %1904 = load ptr, ptr %5, align 8, !tbaa !9
  %1905 = getelementptr inbounds %struct.Apr, ptr %1904, i32 0, i32 65
  %1906 = load i8, ptr %1905, align 1, !tbaa !145
  %1907 = zext i8 %1906 to i32
  %1908 = shl i32 %1907, 6
  %1909 = or i32 %1903, %1908
  %1910 = load ptr, ptr %5, align 8, !tbaa !9
  %1911 = getelementptr inbounds %struct.Apr, ptr %1910, i32 0, i32 62
  %1912 = load i8, ptr %1911, align 8, !tbaa !146
  %1913 = zext i8 %1912 to i32
  %1914 = shl i32 %1913, 5
  %1915 = or i32 %1909, %1914
  %1916 = load ptr, ptr %5, align 8, !tbaa !9
  %1917 = getelementptr inbounds %struct.Apr, ptr %1916, i32 0, i32 63
  %1918 = load i8, ptr %1917, align 1, !tbaa !147
  %1919 = zext i8 %1918 to i32
  %1920 = shl i32 %1919, 4
  %1921 = or i32 %1915, %1920
  %1922 = load ptr, ptr %5, align 8, !tbaa !9
  %1923 = getelementptr inbounds %struct.Apr, ptr %1922, i32 0, i32 59
  %1924 = load i8, ptr %1923, align 1, !tbaa !148
  %1925 = zext i8 %1924 to i32
  %1926 = shl i32 %1925, 3
  %1927 = or i32 %1921, %1926
  %1928 = load ptr, ptr %5, align 8, !tbaa !9
  %1929 = getelementptr inbounds %struct.Apr, ptr %1928, i32 0, i32 60
  %1930 = load i8, ptr %1929, align 2, !tbaa !149
  %1931 = zext i8 %1930 to i32
  %1932 = shl i32 %1931, 2
  %1933 = or i32 %1927, %1932
  %1934 = load ptr, ptr %5, align 8, !tbaa !9
  %1935 = getelementptr inbounds %struct.Apr, ptr %1934, i32 0, i32 61
  %1936 = load i8, ptr %1935, align 1, !tbaa !150
  %1937 = zext i8 %1936 to i32
  %1938 = shl i32 %1937, 1
  %1939 = or i32 %1933, %1938
  %1940 = load ptr, ptr %5, align 8, !tbaa !9
  %1941 = getelementptr inbounds %struct.Apr, ptr %1940, i32 0, i32 58
  %1942 = load i8, ptr %1941, align 4, !tbaa !151
  %1943 = zext i8 %1942 to i32
  %1944 = or i32 %1939, %1943
  %1945 = and i32 %1898, %1944
  %1946 = trunc i32 %1945 to i8
  %1947 = load i32, ptr %11, align 4, !tbaa !5
  %1948 = add nsw i32 %1947, 1
  store i32 %1948, ptr %11, align 4, !tbaa !5
  %1949 = sext i32 %1947 to i64
  %1950 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %1949
  store i8 %1946, ptr %1950, align 1, !tbaa !17
  %1951 = load i8, ptr %18, align 1, !tbaa !17
  %1952 = sext i8 %1951 to i32
  %1953 = load ptr, ptr %5, align 8, !tbaa !9
  %1954 = getelementptr inbounds %struct.Apr, ptr %1953, i32 0, i32 80
  %1955 = load i8, ptr %1954, align 2, !tbaa !152
  %1956 = zext i8 %1955 to i32
  %1957 = shl i32 %1956, 7
  %1958 = load ptr, ptr %5, align 8, !tbaa !9
  %1959 = getelementptr inbounds %struct.Apr, ptr %1958, i32 0, i32 81
  %1960 = load i8, ptr %1959, align 1, !tbaa !153
  %1961 = zext i8 %1960 to i32
  %1962 = shl i32 %1961, 6
  %1963 = or i32 %1957, %1962
  %1964 = load ptr, ptr %5, align 8, !tbaa !9
  %1965 = getelementptr inbounds %struct.Apr, ptr %1964, i32 0, i32 82
  %1966 = load i8, ptr %1965, align 4, !tbaa !154
  %1967 = zext i8 %1966 to i32
  %1968 = shl i32 %1967, 5
  %1969 = or i32 %1963, %1968
  %1970 = load ptr, ptr %5, align 8, !tbaa !9
  %1971 = getelementptr inbounds %struct.Apr, ptr %1970, i32 0, i32 83
  %1972 = load i8, ptr %1971, align 1, !tbaa !155
  %1973 = zext i8 %1972 to i32
  %1974 = shl i32 %1973, 4
  %1975 = or i32 %1969, %1974
  %1976 = load ptr, ptr %5, align 8, !tbaa !9
  %1977 = getelementptr inbounds %struct.Apr, ptr %1976, i32 0, i32 85
  %1978 = load i8, ptr %1977, align 1, !tbaa !156
  %1979 = zext i8 %1978 to i32
  %1980 = shl i32 %1979, 3
  %1981 = or i32 %1975, %1980
  %1982 = load ptr, ptr %5, align 8, !tbaa !9
  %1983 = getelementptr inbounds %struct.Apr, ptr %1982, i32 0, i32 86
  %1984 = load i32, ptr %1983, align 8, !tbaa !157
  %1985 = and i32 %1984, 4
  %1986 = icmp ne i32 %1985, 0
  %1987 = xor i1 %1986, true
  %1988 = xor i1 %1987, true
  %1989 = zext i1 %1988 to i32
  %1990 = shl i32 %1989, 2
  %1991 = or i32 %1981, %1990
  %1992 = load ptr, ptr %5, align 8, !tbaa !9
  %1993 = getelementptr inbounds %struct.Apr, ptr %1992, i32 0, i32 86
  %1994 = load i32, ptr %1993, align 8, !tbaa !157
  %1995 = and i32 %1994, 2
  %1996 = icmp ne i32 %1995, 0
  %1997 = xor i1 %1996, true
  %1998 = xor i1 %1997, true
  %1999 = zext i1 %1998 to i32
  %2000 = shl i32 %1999, 1
  %2001 = or i32 %1991, %2000
  %2002 = load ptr, ptr %5, align 8, !tbaa !9
  %2003 = getelementptr inbounds %struct.Apr, ptr %2002, i32 0, i32 86
  %2004 = load i32, ptr %2003, align 8, !tbaa !157
  %2005 = and i32 %2004, 1
  %2006 = icmp ne i32 %2005, 0
  %2007 = xor i1 %2006, true
  %2008 = xor i1 %2007, true
  %2009 = zext i1 %2008 to i32
  %2010 = or i32 %2001, %2009
  %2011 = and i32 %1952, %2010
  %2012 = trunc i32 %2011 to i8
  %2013 = load i32, ptr %11, align 4, !tbaa !5
  %2014 = add nsw i32 %2013, 1
  store i32 %2014, ptr %11, align 4, !tbaa !5
  %2015 = sext i32 %2013 to i64
  %2016 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %2015
  store i8 %2012, ptr %2016, align 1, !tbaa !17
  br label %2017

2017:                                             ; preds = %1542, %1195, %1006, %957, %781, %596, %578
  br label %2018

2018:                                             ; preds = %2021, %2017
  %2019 = load i32, ptr %11, align 4, !tbaa !5
  %2020 = icmp slt i32 %2019, 16
  br i1 %2020, label %2021, label %2026

2021:                                             ; preds = %2018
  %2022 = load i32, ptr %11, align 4, !tbaa !5
  %2023 = add nsw i32 %2022, 1
  store i32 %2023, ptr %11, align 4, !tbaa !5
  %2024 = sext i32 %2022 to i64
  %2025 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 %2024
  store i8 32, ptr %2025, align 1, !tbaa !17
  br label %2018, !llvm.loop !158

2026:                                             ; preds = %2018
  %2027 = load i32, ptr %12, align 4, !tbaa !5
  %2028 = add nsw i32 %2027, 1
  %2029 = srem i32 %2028, 6
  store i32 %2029, ptr %12, align 4, !tbaa !5
  %2030 = load i32, ptr %3, align 4, !tbaa !5
  %2031 = getelementptr inbounds [32 x i8], ptr %10, i64 0, i64 0
  %2032 = load i32, ptr %11, align 4, !tbaa !5
  %2033 = call i32 @writen(i32 noundef %2030, ptr noundef %2031, i32 noundef %2032)
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #4
  br label %29

2034:                                             ; preds = %40
  store i32 0, ptr %13, align 4
  br label %2035

2035:                                             ; preds = %2034, %33
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4184, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #4
  %2036 = load i32, ptr %13, align 4
  switch i32 %2036, label %2038 [
    i32 0, label %2037
    i32 1, label %2037
  ]

2037:                                             ; preds = %2035, %2035
  ret void

2038:                                             ; preds = %2035, %572
  unreachable
}

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

declare i32 @printf(ptr noundef, ...) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #3

declare i32 @readn(i32 noundef, ptr noundef, i32 noundef) #2

declare void @ptr_setmotor(ptr noundef, i32 noundef) #2

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

declare i32 @writen(i32 noundef, ptr noundef, i32 noundef) #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"Foo", !10, i64 0, !10, i64 8, !7, i64 16}
!13 = !{!12, !10, i64 8}
!14 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9, i64 32, i64 8, !9, i64 40, i64 8, !9, i64 48, i64 8, !9, i64 56, i64 8, !9, i64 64, i64 8, !15, i64 72, i64 8, !15, i64 80, i64 8, !15, i64 88, i64 8, !15, i64 96, i64 8, !15, i64 104, i64 8, !15, i64 112, i64 4, !5, i64 120, i64 3072, !17, i64 3192, i64 8, !15, i64 3200, i64 8, !15, i64 3208, i64 8, !15, i64 3216, i64 8, !15, i64 3224, i64 8, !15, i64 3232, i64 8, !15, i64 3240, i64 8, !9, i64 3248, i64 128, !17, i64 3376, i64 4, !5, i64 3384, i64 8, !15, i64 3392, i64 8, !15, i64 3400, i64 8, !15, i64 3408, i64 8, !15, i64 3416, i64 8, !15, i64 3424, i64 8, !15, i64 3432, i64 4, !5, i64 3440, i64 8, !15, i64 3448, i64 8, !15, i64 3456, i64 4, !5, i64 3460, i64 4, !5, i64 3464, i64 4, !5, i64 3468, i64 1, !17, i64 3470, i64 2, !18, i64 3472, i64 2, !18, i64 3474, i64 1, !17, i64 3475, i64 1, !17, i64 3476, i64 1, !17, i64 3477, i64 1, !17, i64 3478, i64 1, !17, i64 3479, i64 1, !17, i64 3480, i64 1, !17, i64 3481, i64 1, !17, i64 3482, i64 1, !17, i64 3483, i64 1, !17, i64 3484, i64 1, !17, i64 3485, i64 1, !17, i64 3486, i64 1, !17, i64 3487, i64 1, !17, i64 3488, i64 1, !17, i64 3489, i64 1, !17, i64 3490, i64 1, !17, i64 3491, i64 1, !17, i64 3492, i64 1, !17, i64 3493, i64 1, !17, i64 3494, i64 1, !17, i64 3495, i64 1, !17, i64 3496, i64 1, !17, i64 3497, i64 1, !17, i64 3498, i64 1, !17, i64 3499, i64 1, !17, i64 3500, i64 1, !17, i64 3501, i64 1, !17, i64 3502, i64 1, !17, i64 3504, i64 4, !5, i64 3508, i64 4, !5, i64 3512, i64 1, !17, i64 3513, i64 1, !17, i64 3514, i64 1, !17, i64 3515, i64 1, !17, i64 3516, i64 1, !17, i64 3517, i64 1, !17, i64 3518, i64 1, !17, i64 3519, i64 1, !17, i64 3520, i64 1, !17, i64 3521, i64 1, !17, i64 3522, i64 1, !17, i64 3523, i64 1, !17, i64 3524, i64 1, !17, i64 3525, i64 1, !17, i64 3526, i64 1, !17, i64 3527, i64 1, !17, i64 3528, i64 1, !17, i64 3529, i64 1, !17, i64 3530, i64 1, !17, i64 3531, i64 1, !17, i64 3532, i64 1, !17, i64 3533, i64 1, !17, i64 3534, i64 1, !17, i64 3535, i64 1, !17, i64 3536, i64 1, !17, i64 3537, i64 1, !17, i64 3538, i64 1, !17, i64 3539, i64 1, !17, i64 3540, i64 1, !17, i64 3541, i64 1, !17, i64 3542, i64 1, !17, i64 3543, i64 1, !17, i64 3544, i64 1, !17, i64 3545, i64 1, !17, i64 3546, i64 1, !17, i64 3547, i64 1, !17, i64 3548, i64 1, !17, i64 3549, i64 1, !17, i64 3550, i64 1, !17, i64 3551, i64 1, !17, i64 3552, i64 4, !5, i64 3556, i64 1, !17, i64 3557, i64 1, !17, i64 3558, i64 1, !17, i64 3559, i64 1, !17, i64 3560, i64 1, !17, i64 3561, i64 1, !17, i64 3562, i64 1, !17, i64 3563, i64 1, !17, i64 3564, i64 1, !17, i64 3565, i64 1, !17, i64 3566, i64 1, !17, i64 3567, i64 1, !17, i64 3568, i64 1, !17, i64 3569, i64 1, !17, i64 3570, i64 1, !17, i64 3571, i64 1, !17, i64 3572, i64 1, !17, i64 3573, i64 1, !17, i64 3574, i64 1, !17, i64 3575, i64 1, !17, i64 3576, i64 1, !17, i64 3577, i64 1, !17, i64 3578, i64 1, !17, i64 3579, i64 1, !17, i64 3580, i64 1, !17, i64 3581, i64 1, !17, i64 3582, i64 1, !17, i64 3583, i64 1, !17, i64 3584, i64 1, !17, i64 3585, i64 1, !17, i64 3586, i64 1, !17, i64 3587, i64 1, !17, i64 3588, i64 1, !17, i64 3589, i64 1, !17, i64 3590, i64 1, !17, i64 3591, i64 1, !17, i64 3592, i64 1, !17, i64 3593, i64 1, !17, i64 3594, i64 1, !17, i64 3595, i64 1, !17, i64 3596, i64 1, !17, i64 3597, i64 1, !17, i64 3598, i64 1, !17, i64 3599, i64 1, !17, i64 3600, i64 1, !17, i64 3601, i64 1, !17, i64 3602, i64 1, !17, i64 3603, i64 1, !17, i64 3604, i64 1, !17, i64 3605, i64 1, !17, i64 3606, i64 1, !17, i64 3607, i64 1, !17, i64 3608, i64 1, !17, i64 3609, i64 1, !17, i64 3610, i64 1, !17, i64 3611, i64 1, !17, i64 3612, i64 1, !17, i64 3613, i64 1, !17, i64 3614, i64 1, !17, i64 3616, i64 4, !5, i64 3620, i64 4, !5, i64 3624, i64 4, !5, i64 3628, i64 1, !17, i64 3629, i64 1, !17, i64 3630, i64 1, !17, i64 3631, i64 1, !17, i64 3632, i64 1, !17, i64 3633, i64 1, !17, i64 3634, i64 1, !17, i64 3635, i64 1, !17, i64 3636, i64 1, !17, i64 3637, i64 1, !17, i64 3638, i64 1, !17, i64 3639, i64 1, !17, i64 3640, i64 1, !17, i64 3641, i64 1, !17, i64 3642, i64 1, !17, i64 3644, i64 4, !5, i64 3648, i64 1, !17, i64 3649, i64 1, !17, i64 3650, i64 1, !17, i64 3651, i64 1, !17, i64 3652, i64 1, !17, i64 3653, i64 1, !17, i64 3654, i64 1, !17, i64 3655, i64 1, !17, i64 3656, i64 1, !17, i64 3657, i64 1, !17, i64 3658, i64 1, !17, i64 3664, i64 8, !9, i64 3672, i64 8, !9, i64 3680, i64 4, !5, i64 3684, i64 1, !17, i64 3688, i64 480, !17, i64 4168, i64 8, !9, i64 4176, i64 8, !9}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!21, !16, i64 3448}
!21 = !{!"Apr", !22, i64 0, !23, i64 64, !24, i64 3192, !6, i64 3376, !25, i64 3384, !25, i64 3408, !6, i64 3432, !16, i64 3440, !16, i64 3448, !6, i64 3456, !6, i64 3460, !6, i64 3464, !7, i64 3468, !19, i64 3470, !19, i64 3472, !7, i64 3474, !7, i64 3475, !7, i64 3476, !7, i64 3477, !7, i64 3478, !7, i64 3479, !7, i64 3480, !7, i64 3481, !7, i64 3482, !7, i64 3483, !7, i64 3484, !7, i64 3485, !7, i64 3486, !7, i64 3487, !7, i64 3488, !7, i64 3489, !7, i64 3490, !7, i64 3491, !7, i64 3492, !7, i64 3493, !7, i64 3494, !7, i64 3495, !7, i64 3496, !7, i64 3497, !7, i64 3498, !7, i64 3499, !7, i64 3500, !7, i64 3501, !7, i64 3502, !6, i64 3504, !6, i64 3508, !7, i64 3512, !7, i64 3513, !7, i64 3514, !7, i64 3515, !7, i64 3516, !7, i64 3517, !7, i64 3518, !7, i64 3519, !7, i64 3520, !7, i64 3521, !7, i64 3522, !7, i64 3523, !7, i64 3524, !7, i64 3525, !7, i64 3526, !7, i64 3527, !7, i64 3528, !7, i64 3529, !7, i64 3530, !7, i64 3531, !7, i64 3532, !7, i64 3533, !7, i64 3534, !7, i64 3535, !7, i64 3536, !7, i64 3537, !7, i64 3538, !7, i64 3539, !7, i64 3540, !7, i64 3541, !7, i64 3542, !7, i64 3543, !7, i64 3544, !7, i64 3545, !7, i64 3546, !7, i64 3547, !7, i64 3548, !7, i64 3549, !7, i64 3550, !7, i64 3551, !6, i64 3552, !7, i64 3556, !7, i64 3557, !7, i64 3558, !7, i64 3559, !7, i64 3560, !7, i64 3561, !7, i64 3562, !7, i64 3563, !7, i64 3564, !7, i64 3565, !7, i64 3566, !7, i64 3567, !7, i64 3568, !7, i64 3569, !7, i64 3570, !7, i64 3571, !7, i64 3572, !7, i64 3573, !7, i64 3574, !7, i64 3575, !7, i64 3576, !7, i64 3577, !7, i64 3578, !7, i64 3579, !7, i64 3580, !7, i64 3581, !7, i64 3582, !7, i64 3583, !7, i64 3584, !7, i64 3585, !7, i64 3586, !7, i64 3587, !7, i64 3588, !7, i64 3589, !7, i64 3590, !7, i64 3591, !7, i64 3592, !7, i64 3593, !7, i64 3594, !7, i64 3595, !7, i64 3596, !7, i64 3597, !7, i64 3598, !7, i64 3599, !7, i64 3600, !7, i64 3601, !7, i64 3602, !7, i64 3603, !7, i64 3604, !7, i64 3605, !7, i64 3606, !7, i64 3607, !7, i64 3608, !7, i64 3609, !7, i64 3610, !7, i64 3611, !7, i64 3612, !7, i64 3613, !7, i64 3614, !6, i64 3616, !6, i64 3620, !6, i64 3624, !7, i64 3628, !7, i64 3629, !7, i64 3630, !7, i64 3631, !7, i64 3632, !7, i64 3633, !7, i64 3634, !7, i64 3635, !7, i64 3636, !7, i64 3637, !7, i64 3638, !7, i64 3639, !7, i64 3640, !7, i64 3641, !7, i64 3642, !6, i64 3644, !7, i64 3648, !7, i64 3649, !7, i64 3650, !7, i64 3651, !7, i64 3652, !7, i64 3653, !7, i64 3654, !7, i64 3655, !7, i64 3656, !7, i64 3657, !7, i64 3658, !10, i64 3664, !10, i64 3672, !6, i64 3680, !7, i64 3684, !7, i64 3688, !10, i64 4168, !10, i64 4176}
!22 = !{!"Device", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56}
!23 = !{!"IOBus", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !6, i64 48, !7, i64 56}
!24 = !{!"Membus", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !10, i64 48, !7, i64 56}
!25 = !{!"AprState", !16, i64 0, !16, i64 8, !16, i64 16}
!26 = !{!21, !6, i64 3464}
!27 = !{!21, !7, i64 3487}
!28 = !{!21, !7, i64 3488}
!29 = !{!21, !7, i64 3490}
!30 = !{!21, !7, i64 3489}
!31 = !{!21, !7, i64 3492}
!32 = !{!21, !7, i64 3491}
!33 = !{!21, !7, i64 3493}
!34 = !{!21, !7, i64 3494}
!35 = !{!21, !7, i64 3495}
!36 = !{!21, !7, i64 3496}
!37 = !{!21, !7, i64 3497}
!38 = !{!21, !7, i64 3498}
!39 = !{!21, !7, i64 3499}
!40 = !{!21, !7, i64 3500}
!41 = !{!21, !7, i64 3501}
!42 = !{!21, !7, i64 3502}
!43 = !{!21, !7, i64 3478}
!44 = !{!21, !7, i64 3479}
!45 = !{!21, !7, i64 3480}
!46 = !{!21, !7, i64 3481}
!47 = !{!21, !6, i64 3680}
!48 = distinct !{!48, !49}
!49 = !{!"llvm.loop.mustprogress"}
!50 = !{!51, !6, i64 72}
!51 = !{!"Dx555", !22, i64 0, !10, i64 64, !6, i64 72, !6, i64 76, !6, i64 80, !6, i64 84, !10, i64 88, !10, i64 96, !10, i64 104, !6, i64 112}
!52 = !{!51, !6, i64 80}
!53 = distinct !{!53, !49}
!54 = !{!21, !6, i64 3432}
!55 = !{!21, !16, i64 3440}
!56 = !{!21, !6, i64 3456}
!57 = !{!21, !6, i64 3460}
!58 = !{!21, !7, i64 3477}
!59 = !{!21, !7, i64 3514}
!60 = !{!21, !7, i64 3541}
!61 = !{!21, !7, i64 3513}
!62 = !{!21, !7, i64 3516}
!63 = !{!21, !7, i64 3512}
!64 = !{!21, !16, i64 3392}
!65 = !{!21, !16, i64 3384}
!66 = !{!21, !16, i64 3400}
!67 = !{!21, !7, i64 3532}
!68 = !{!21, !7, i64 3533}
!69 = !{!21, !7, i64 3534}
!70 = !{!21, !7, i64 3535}
!71 = !{!21, !7, i64 3536}
!72 = !{!21, !7, i64 3538}
!73 = !{!21, !7, i64 3539}
!74 = !{!21, !7, i64 3540}
!75 = !{!21, !7, i64 3562}
!76 = !{!21, !7, i64 3563}
!77 = !{!21, !7, i64 3564}
!78 = !{!21, !7, i64 3565}
!79 = !{!21, !7, i64 3569}
!80 = !{!21, !7, i64 3566}
!81 = !{!21, !7, i64 3567}
!82 = !{!21, !7, i64 3568}
!83 = !{!21, !7, i64 3579}
!84 = !{!21, !7, i64 3580}
!85 = !{!21, !7, i64 3581}
!86 = !{!21, !7, i64 3530}
!87 = !{!21, !7, i64 3610}
!88 = !{!21, !7, i64 3611}
!89 = !{!21, !7, i64 3612}
!90 = !{!21, !7, i64 3609}
!91 = !{!21, !7, i64 3604}
!92 = !{!21, !7, i64 3605}
!93 = !{!21, !7, i64 3600}
!94 = !{!21, !7, i64 3601}
!95 = !{!21, !7, i64 3602}
!96 = !{!21, !7, i64 3603}
!97 = !{!21, !7, i64 3596}
!98 = !{!21, !7, i64 3597}
!99 = !{!21, !7, i64 3598}
!100 = !{!21, !7, i64 3599}
!101 = !{!21, !7, i64 3608}
!102 = !{!21, !7, i64 3606}
!103 = !{!21, !7, i64 3607}
!104 = !{!21, !7, i64 3595}
!105 = !{!21, !7, i64 3576}
!106 = !{!21, !7, i64 3586}
!107 = !{!21, !7, i64 3587}
!108 = !{!21, !7, i64 3588}
!109 = !{!21, !7, i64 3589}
!110 = !{!21, !7, i64 3590}
!111 = !{!21, !7, i64 3591}
!112 = !{!21, !7, i64 3592}
!113 = !{!21, !7, i64 3593}
!114 = !{!21, !7, i64 3594}
!115 = !{!21, !7, i64 3585}
!116 = !{!21, !7, i64 3583}
!117 = !{!21, !7, i64 3584}
!118 = !{!21, !7, i64 3543}
!119 = !{!21, !7, i64 3542}
!120 = !{!21, !7, i64 3582}
!121 = !{!21, !19, i64 3470}
!122 = !{!21, !7, i64 3570}
!123 = !{!21, !7, i64 3571}
!124 = !{!21, !7, i64 3572}
!125 = !{!21, !7, i64 3573}
!126 = !{!21, !7, i64 3574}
!127 = !{!21, !7, i64 3575}
!128 = !{!21, !7, i64 3577}
!129 = !{!21, !7, i64 3578}
!130 = !{!21, !7, i64 3517}
!131 = !{!21, !7, i64 3518}
!132 = !{!21, !7, i64 3515}
!133 = !{!21, !7, i64 3556}
!134 = !{!21, !7, i64 3561}
!135 = !{!21, !7, i64 3613}
!136 = !{!21, !7, i64 3550}
!137 = !{!21, !19, i64 3472}
!138 = !{!21, !7, i64 3523}
!139 = !{!21, !7, i64 3545}
!140 = !{!21, !7, i64 3522}
!141 = !{!21, !7, i64 3520}
!142 = !{!21, !7, i64 3521}
!143 = !{!21, !7, i64 3468}
!144 = !{!21, !7, i64 3537}
!145 = !{!21, !7, i64 3531}
!146 = !{!21, !7, i64 3528}
!147 = !{!21, !7, i64 3529}
!148 = !{!21, !7, i64 3525}
!149 = !{!21, !7, i64 3526}
!150 = !{!21, !7, i64 3527}
!151 = !{!21, !7, i64 3524}
!152 = !{!21, !7, i64 3546}
!153 = !{!21, !7, i64 3547}
!154 = !{!21, !7, i64 3548}
!155 = !{!21, !7, i64 3549}
!156 = !{!21, !7, i64 3551}
!157 = !{!21, !6, i64 3552}
!158 = distinct !{!158, !49}


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

@.str = external hidden unnamed_addr constant [28 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @talknetwork(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 {
  %3 = alloca [32 x i8], align 16
  %4 = alloca [4 x i32], align 16
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #6
  %5 = load ptr, ptr %1, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %1, i64 8
  %7 = load ptr, ptr %6, align 8, !tbaa !10
  %8 = getelementptr inbounds i8, ptr %1, i64 16
  %9 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str)
  %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3487
  %10 = icmp eq ptr %5, null
  br i1 %10, label %._crit_edge437, label %.lr.ph436

.lr.ph436:                                        ; preds = %2
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3488
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3489
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3490
  %.sroa.7188.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3492
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3493
  %.sroa.9.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3494
  %.sroa.10.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3495
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3496
  %.sroa.12.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3497
  %.sroa.13.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3498
  %.sroa.14.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3499
  %.sroa.15.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3500
  %.sroa.16.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3501
  %.sroa.7.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 3491
  %11 = getelementptr inbounds i8, ptr %5, i64 3448
  %12 = getelementptr inbounds i8, ptr %3, i64 1
  %13 = getelementptr inbounds i8, ptr %3, i64 2
  %14 = getelementptr inbounds i8, ptr %3, i64 3
  %15 = getelementptr inbounds i8, ptr %3, i64 4
  %16 = getelementptr inbounds i8, ptr %3, i64 5
  %17 = getelementptr inbounds i8, ptr %5, i64 3464
  %18 = getelementptr inbounds i8, ptr %3, i64 6
  %19 = getelementptr inbounds i8, ptr %3, i64 7
  %20 = getelementptr inbounds i8, ptr %3, i64 8
  %21 = getelementptr inbounds i8, ptr %3, i64 10
  %22 = getelementptr inbounds i8, ptr %3, i64 9
  %23 = getelementptr inbounds i8, ptr %3, i64 11
  %24 = getelementptr inbounds i8, ptr %5, i64 3502
  %25 = getelementptr inbounds i8, ptr %3, i64 12
  %26 = getelementptr inbounds i8, ptr %5, i64 3478
  %27 = getelementptr inbounds i8, ptr %5, i64 3479
  %28 = getelementptr inbounds i8, ptr %5, i64 3480
  %29 = getelementptr inbounds i8, ptr %5, i64 3481
  %30 = getelementptr inbounds i8, ptr %5, i64 3680
  %.not417 = icmp eq ptr %7, null
  %31 = getelementptr inbounds i8, ptr %5, i64 3532
  %32 = getelementptr inbounds i8, ptr %5, i64 3533
  %33 = getelementptr inbounds i8, ptr %5, i64 3534
  %34 = getelementptr inbounds i8, ptr %5, i64 3535
  %35 = getelementptr inbounds i8, ptr %5, i64 3536
  %36 = getelementptr inbounds i8, ptr %5, i64 3538
  %37 = getelementptr inbounds i8, ptr %5, i64 3539
  %38 = getelementptr inbounds i8, ptr %5, i64 3540
  %39 = getelementptr inbounds i8, ptr %5, i64 3562
  %40 = getelementptr inbounds i8, ptr %5, i64 3563
  %41 = getelementptr inbounds i8, ptr %5, i64 3564
  %42 = getelementptr inbounds i8, ptr %5, i64 3565
  %43 = getelementptr inbounds i8, ptr %5, i64 3569
  %44 = getelementptr inbounds i8, ptr %5, i64 3566
  %45 = getelementptr inbounds i8, ptr %5, i64 3567
  %46 = getelementptr inbounds i8, ptr %5, i64 3568
  %47 = getelementptr inbounds i8, ptr %5, i64 3579
  %48 = getelementptr inbounds i8, ptr %5, i64 3580
  %49 = getelementptr inbounds i8, ptr %5, i64 3581
  %50 = getelementptr inbounds i8, ptr %5, i64 3530
  %51 = getelementptr inbounds i8, ptr %5, i64 3610
  %52 = getelementptr inbounds i8, ptr %5, i64 3611
  %53 = getelementptr inbounds i8, ptr %5, i64 3612
  %54 = getelementptr inbounds i8, ptr %5, i64 3609
  %55 = getelementptr inbounds i8, ptr %5, i64 3604
  %56 = getelementptr inbounds i8, ptr %5, i64 3605
  %57 = getelementptr inbounds i8, ptr %5, i64 3600
  %58 = getelementptr inbounds i8, ptr %5, i64 3601
  %59 = getelementptr inbounds i8, ptr %5, i64 3602
  %60 = getelementptr inbounds i8, ptr %5, i64 3603
  %61 = getelementptr inbounds i8, ptr %5, i64 3596
  %62 = getelementptr inbounds i8, ptr %5, i64 3597
  %63 = getelementptr inbounds i8, ptr %5, i64 3598
  %64 = getelementptr inbounds i8, ptr %5, i64 3599
  %65 = getelementptr inbounds i8, ptr %5, i64 3432
  %66 = getelementptr inbounds i8, ptr %5, i64 3400
  %67 = getelementptr inbounds i8, ptr %5, i64 3608
  %68 = getelementptr inbounds i8, ptr %5, i64 3606
  %69 = getelementptr inbounds i8, ptr %5, i64 3607
  %70 = getelementptr inbounds i8, ptr %5, i64 3595
  %71 = getelementptr inbounds i8, ptr %5, i64 3576
  %72 = getelementptr inbounds i8, ptr %5, i64 3586
  %73 = getelementptr inbounds i8, ptr %5, i64 3587
  %74 = getelementptr inbounds i8, ptr %5, i64 3588
  %75 = getelementptr inbounds i8, ptr %5, i64 3589
  %76 = getelementptr inbounds i8, ptr %5, i64 3590
  %77 = getelementptr inbounds i8, ptr %5, i64 3591
  %78 = getelementptr inbounds i8, ptr %5, i64 3592
  %79 = getelementptr inbounds i8, ptr %5, i64 3593
  %80 = getelementptr inbounds i8, ptr %5, i64 3594
  %81 = getelementptr inbounds i8, ptr %5, i64 3585
  %82 = getelementptr inbounds i8, ptr %5, i64 3583
  %83 = getelementptr inbounds i8, ptr %5, i64 3584
  %84 = getelementptr inbounds i8, ptr %5, i64 3543
  %85 = getelementptr inbounds i8, ptr %5, i64 3542
  %86 = getelementptr inbounds i8, ptr %5, i64 3582
  %87 = getelementptr inbounds i8, ptr %5, i64 3470
  %88 = getelementptr inbounds i8, ptr %5, i64 3570
  %89 = getelementptr inbounds i8, ptr %5, i64 3571
  %90 = getelementptr inbounds i8, ptr %5, i64 3572
  %91 = getelementptr inbounds i8, ptr %5, i64 3573
  %92 = getelementptr inbounds i8, ptr %5, i64 3574
  %93 = getelementptr inbounds i8, ptr %5, i64 3575
  %94 = getelementptr inbounds i8, ptr %5, i64 3577
  %95 = getelementptr inbounds i8, ptr %5, i64 3578
  %96 = getelementptr inbounds i8, ptr %5, i64 3517
  %97 = getelementptr inbounds i8, ptr %5, i64 3518
  %98 = getelementptr inbounds i8, ptr %5, i64 3515
  %99 = getelementptr inbounds i8, ptr %5, i64 3556
  %100 = getelementptr inbounds i8, ptr %5, i64 3561
  %101 = getelementptr inbounds i8, ptr %5, i64 3460
  %102 = getelementptr inbounds i8, ptr %5, i64 3613
  %103 = getelementptr inbounds i8, ptr %5, i64 3550
  %104 = getelementptr inbounds i8, ptr %5, i64 3472
  %105 = getelementptr inbounds i8, ptr %5, i64 3523
  %106 = getelementptr inbounds i8, ptr %5, i64 3545
  %107 = getelementptr inbounds i8, ptr %5, i64 3522
  %108 = getelementptr inbounds i8, ptr %5, i64 3520
  %109 = getelementptr inbounds i8, ptr %5, i64 3521
  %110 = getelementptr inbounds i8, ptr %5, i64 3468
  %111 = getelementptr inbounds i8, ptr %5, i64 3537
  %112 = getelementptr inbounds i8, ptr %5, i64 3531
  %113 = getelementptr inbounds i8, ptr %5, i64 3528
  %114 = getelementptr inbounds i8, ptr %5, i64 3529
  %115 = getelementptr inbounds i8, ptr %5, i64 3525
  %116 = getelementptr inbounds i8, ptr %5, i64 3526
  %117 = getelementptr inbounds i8, ptr %5, i64 3527
  %118 = getelementptr inbounds i8, ptr %5, i64 3524
  %119 = getelementptr inbounds i8, ptr %3, i64 13
  %120 = getelementptr inbounds i8, ptr %5, i64 3546
  %121 = getelementptr inbounds i8, ptr %5, i64 3547
  %122 = getelementptr inbounds i8, ptr %5, i64 3548
  %123 = getelementptr inbounds i8, ptr %5, i64 3549
  %124 = getelementptr inbounds i8, ptr %5, i64 3551
  %125 = getelementptr inbounds i8, ptr %5, i64 3552
  %126 = getelementptr inbounds i8, ptr %3, i64 14
  %127 = getelementptr inbounds i8, ptr %5, i64 3384
  %128 = getelementptr inbounds i8, ptr %5, i64 3392
  %129 = getelementptr inbounds i8, ptr %5, i64 3477
  %130 = getelementptr inbounds i8, ptr %5, i64 3514
  %131 = getelementptr inbounds i8, ptr %5, i64 3541
  %132 = getelementptr inbounds i8, ptr %5, i64 3513
  %133 = getelementptr inbounds i8, ptr %5, i64 3516
  %134 = getelementptr inbounds i8, ptr %5, i64 3512
  %135 = getelementptr inbounds i8, ptr %3, i64 15
  %136 = getelementptr inbounds i8, ptr %5, i64 3440
  %137 = getelementptr inbounds i8, ptr %5, i64 3456
  %138 = getelementptr inbounds i8, ptr %1, i64 24
  %139 = getelementptr inbounds i8, ptr %1, i64 32
  %140 = getelementptr inbounds i8, ptr %1, i64 40
  br label %141

141:                                              ; preds = %._crit_edge, %.lr.ph436
  %.0394434 = phi i32 [ 0, %.lr.ph436 ], [ %782, %._crit_edge ]
  %.sroa.3.0.copyload = load i8, ptr %.sroa.3.0..sroa_idx, align 1, !tbaa !11
  %.sroa.4.0.copyload = load i8, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !11
  %.sroa.5.0.copyload = load i8, ptr %.sroa.5.0..sroa_idx, align 1, !tbaa !11
  %.sroa.6.0.copyload = load i8, ptr %.sroa.6.0..sroa_idx, align 2, !tbaa !11
  %.sroa.7188.0.copyload = load i8, ptr %.sroa.7188.0..sroa_idx, align 4, !tbaa !11
  %.sroa.8.0.copyload = load i8, ptr %.sroa.8.0..sroa_idx, align 1, !tbaa !11
  %.sroa.9.0.copyload = load i8, ptr %.sroa.9.0..sroa_idx, align 2, !tbaa !11
  %.sroa.10.0.copyload = load i8, ptr %.sroa.10.0..sroa_idx, align 1, !tbaa !11
  %.sroa.11.0.copyload = load i8, ptr %.sroa.11.0..sroa_idx, align 8, !tbaa !11
  %.sroa.12.0.copyload = load i8, ptr %.sroa.12.0..sroa_idx, align 1, !tbaa !11
  %.sroa.13.0.copyload = load i8, ptr %.sroa.13.0..sroa_idx, align 2, !tbaa !11
  %.sroa.14.0.copyload = load i8, ptr %.sroa.14.0..sroa_idx, align 1, !tbaa !11
  %.sroa.15.0.copyload = load i8, ptr %.sroa.15.0..sroa_idx, align 4, !tbaa !11
  %142 = call i32 @readn(i32 noundef %0, ptr noundef nonnull %3, i32 noundef 15) #6
  %.not = icmp eq i32 %142, 0
  br i1 %.not, label %143, label %._crit_edge437

143:                                              ; preds = %141
  %144 = load i8, ptr %3, align 16, !tbaa !11
  %145 = and i8 %144, 63
  %146 = zext nneg i8 %145 to i64
  %147 = shl nuw nsw i64 %146, 30
  %148 = load i8, ptr %12, align 1, !tbaa !11
  %149 = and i8 %148, 63
  %150 = zext nneg i8 %149 to i64
  %151 = shl nuw nsw i64 %150, 24
  %152 = or disjoint i64 %151, %147
  %153 = load i8, ptr %13, align 2, !tbaa !11
  %154 = and i8 %153, 63
  %155 = zext nneg i8 %154 to i64
  %156 = shl nuw nsw i64 %155, 18
  %157 = or disjoint i64 %156, %152
  %158 = load i8, ptr %14, align 1, !tbaa !11
  %159 = and i8 %158, 63
  %160 = zext nneg i8 %159 to i64
  %161 = shl nuw nsw i64 %160, 12
  %162 = or disjoint i64 %161, %157
  %163 = load i8, ptr %15, align 4, !tbaa !11
  %164 = and i8 %163, 63
  %165 = zext nneg i8 %164 to i64
  %166 = shl nuw nsw i64 %165, 6
  %167 = or disjoint i64 %166, %162
  %168 = load i8, ptr %16, align 1, !tbaa !11
  %169 = and i8 %168, 63
  %170 = zext nneg i8 %169 to i64
  %171 = or disjoint i64 %167, %170
  store i64 %171, ptr %11, align 8, !tbaa !12
  %172 = load i8, ptr %18, align 2, !tbaa !11
  %173 = and i8 %172, 63
  %174 = zext nneg i8 %173 to i32
  %175 = shl nuw nsw i32 %174, 12
  %176 = load i8, ptr %19, align 1, !tbaa !11
  %177 = and i8 %176, 63
  %178 = zext nneg i8 %177 to i32
  %179 = shl nuw nsw i32 %178, 6
  %180 = or disjoint i32 %179, %175
  %181 = load i8, ptr %20, align 8, !tbaa !11
  %182 = and i8 %181, 63
  %183 = zext nneg i8 %182 to i32
  %184 = or disjoint i32 %180, %183
  store i32 %184, ptr %17, align 8, !tbaa !21
  %185 = load i8, ptr %21, align 2, !tbaa !11
  %186 = lshr i8 %185, 5
  %.lobit = and i8 %186, 1
  store i8 %.lobit, ptr %.sroa.3.0..sroa_idx, align 1, !tbaa !22
  %187 = load i8, ptr %22, align 1, !tbaa !11
  %188 = lshr i8 %187, 5
  %.lobit401 = and i8 %188, 1
  store i8 %.lobit401, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !23
  %189 = lshr i8 %185, 4
  %.lobit402 = and i8 %189, 1
  store i8 %.lobit402, ptr %.sroa.6.0..sroa_idx, align 2, !tbaa !24
  %190 = lshr i8 %187, 4
  %.lobit403 = and i8 %190, 1
  store i8 %.lobit403, ptr %.sroa.5.0..sroa_idx, align 1, !tbaa !25
  %191 = lshr i8 %185, 3
  %.lobit404 = and i8 %191, 1
  store i8 %.lobit404, ptr %.sroa.7188.0..sroa_idx, align 4, !tbaa !26
  %192 = lshr i8 %187, 3
  %.lobit405 = and i8 %192, 1
  store i8 %.lobit405, ptr %.sroa.7.0..sroa_idx, align 1, !tbaa !27
  %193 = lshr i8 %185, 2
  %.lobit406 = and i8 %193, 1
  store i8 %.lobit406, ptr %.sroa.8.0..sroa_idx, align 1, !tbaa !28
  %194 = lshr i8 %187, 2
  %.lobit407 = and i8 %194, 1
  store i8 %.lobit407, ptr %.sroa.9.0..sroa_idx, align 2, !tbaa !29
  %195 = lshr i8 %185, 1
  %.lobit408 = and i8 %195, 1
  store i8 %.lobit408, ptr %.sroa.10.0..sroa_idx, align 1, !tbaa !30
  %196 = lshr i8 %187, 1
  %.lobit409 = and i8 %196, 1
  store i8 %.lobit409, ptr %.sroa.11.0..sroa_idx, align 8, !tbaa !31
  %197 = and i8 %185, 1
  store i8 %197, ptr %.sroa.12.0..sroa_idx, align 1, !tbaa !32
  %198 = and i8 %187, 1
  store i8 %198, ptr %.sroa.13.0..sroa_idx, align 2, !tbaa !33
  %199 = load i8, ptr %23, align 1, !tbaa !11
  %200 = lshr i8 %199, 3
  %.lobit410 = and i8 %200, 1
  store i8 %.lobit410, ptr %.sroa.14.0..sroa_idx, align 1, !tbaa !34
  %201 = lshr i8 %199, 2
  %.lobit411 = and i8 %201, 1
  store i8 %.lobit411, ptr %.sroa.15.0..sroa_idx, align 4, !tbaa !35
  %202 = lshr i8 %199, 1
  %.lobit412 = and i8 %202, 1
  store i8 %.lobit412, ptr %.sroa.16.0..sroa_idx, align 1, !tbaa !36
  %203 = and i8 %199, 1
  store i8 %203, ptr %24, align 2, !tbaa !37
  %204 = load i8, ptr %25, align 4, !tbaa !11
  %205 = lshr i8 %204, 3
  %.lobit413 = and i8 %205, 1
  store i8 %.lobit413, ptr %26, align 2, !tbaa !38
  %206 = lshr i8 %204, 2
  %.lobit414 = and i8 %206, 1
  store i8 %.lobit414, ptr %27, align 1, !tbaa !39
  %207 = lshr i8 %204, 1
  %.lobit415 = and i8 %207, 1
  store i8 %.lobit415, ptr %28, align 8, !tbaa !40
  %208 = and i8 %204, 1
  store i8 %208, ptr %29, align 1, !tbaa !41
  %.not416 = icmp eq i8 %208, 0
  br i1 %.not416, label %.preheader.preheader, label %209

209:                                              ; preds = %143
  %210 = icmp eq i8 %.lobit, 0
  %211 = icmp ne i8 %.sroa.3.0.copyload, 0
  %or.cond = select i1 %210, i1 true, i1 %211
  br i1 %or.cond, label %212, label %239

212:                                              ; preds = %209
  %213 = icmp eq i8 %.lobit401, 0
  %214 = icmp ne i8 %.sroa.4.0.copyload, 0
  %or.cond5 = select i1 %213, i1 true, i1 %214
  br i1 %or.cond5, label %215, label %239

215:                                              ; preds = %212
  %216 = icmp eq i8 %.lobit402, 0
  %217 = icmp ne i8 %.sroa.6.0.copyload, 0
  %or.cond8 = select i1 %216, i1 true, i1 %217
  br i1 %or.cond8, label %218, label %239

218:                                              ; preds = %215
  %219 = icmp eq i8 %.lobit403, 0
  %220 = icmp ne i8 %.sroa.5.0.copyload, 0
  %or.cond11 = select i1 %219, i1 true, i1 %220
  br i1 %or.cond11, label %221, label %239

221:                                              ; preds = %218
  %222 = icmp eq i8 %.lobit406, 0
  %223 = icmp ne i8 %.sroa.8.0.copyload, 0
  %or.cond14 = select i1 %222, i1 true, i1 %223
  br i1 %or.cond14, label %224, label %239

224:                                              ; preds = %221
  %225 = icmp eq i8 %.lobit407, 0
  %226 = icmp ne i8 %.sroa.9.0.copyload, 0
  %or.cond17 = select i1 %225, i1 true, i1 %226
  br i1 %or.cond17, label %227, label %239

227:                                              ; preds = %224
  %228 = icmp eq i8 %.lobit408, 0
  %229 = icmp ne i8 %.sroa.10.0.copyload, 0
  %or.cond20 = select i1 %228, i1 true, i1 %229
  br i1 %or.cond20, label %230, label %239

230:                                              ; preds = %227
  %231 = icmp eq i8 %.lobit409, 0
  %232 = icmp ne i8 %.sroa.11.0.copyload, 0
  %or.cond23 = select i1 %231, i1 true, i1 %232
  br i1 %or.cond23, label %233, label %239

233:                                              ; preds = %230
  %234 = icmp eq i8 %197, 0
  %235 = icmp ne i8 %.sroa.12.0.copyload, 0
  %or.cond26 = select i1 %234, i1 true, i1 %235
  br i1 %or.cond26, label %236, label %239

236:                                              ; preds = %233
  %237 = icmp eq i8 %198, 0
  %238 = icmp ne i8 %.sroa.13.0.copyload, 0
  %or.cond29 = select i1 %237, i1 true, i1 %238
  br i1 %or.cond29, label %242, label %239

239:                                              ; preds = %236, %233, %230, %227, %224, %221, %218, %215, %212, %209
  %240 = load i32, ptr %30, align 8, !tbaa !42
  %241 = or i32 %240, 1
  store i32 %241, ptr %30, align 8, !tbaa !42
  br label %242

242:                                              ; preds = %239, %236
  %243 = icmp eq i8 %.lobit404, 0
  %244 = icmp ne i8 %.sroa.7188.0.copyload, 0
  %or.cond32 = select i1 %243, i1 true, i1 %244
  br i1 %or.cond32, label %248, label %245

245:                                              ; preds = %242
  %246 = load i32, ptr %30, align 8, !tbaa !42
  %247 = or i32 %246, 2
  store i32 %247, ptr %30, align 8, !tbaa !42
  br label %248

248:                                              ; preds = %245, %242
  br i1 %.not417, label %.preheader.preheader, label %249

249:                                              ; preds = %248
  %250 = icmp eq i8 %.lobit411, 0
  %251 = icmp ne i8 %.sroa.15.0.copyload, 0
  %or.cond35 = select i1 %250, i1 true, i1 %251
  br i1 %or.cond35, label %253, label %252

252:                                              ; preds = %249
  call void @ptr_setmotor(ptr noundef nonnull %7, i32 noundef 1) #6
  %.pre = load i8, ptr %.sroa.14.0..sroa_idx, align 1, !tbaa !34
  br label %253

253:                                              ; preds = %252, %249
  %254 = phi i8 [ %.pre, %252 ], [ %.lobit410, %249 ]
  %255 = icmp eq i8 %254, 0
  %256 = icmp ne i8 %.sroa.14.0.copyload, 0
  %or.cond38 = select i1 %255, i1 true, i1 %256
  br i1 %or.cond38, label %.preheader.preheader, label %257

257:                                              ; preds = %253
  call void @ptr_setmotor(ptr noundef nonnull %7, i32 noundef 0) #6
  br label %.preheader.preheader

.preheader.preheader:                             ; preds = %248, %257, %253, %143
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #6
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, i8 0, i64 16, i1 false), !tbaa !43
  %258 = load ptr, ptr %8, align 8, !tbaa !44
  %259 = icmp eq ptr %258, null
  br i1 %259, label %.preheader.1, label %260

260:                                              ; preds = %.preheader.preheader
  %261 = getelementptr inbounds i8, ptr %258, i64 72
  %262 = load i32, ptr %261, align 8, !tbaa !45
  %263 = add i32 %262, -5
  %or.cond40 = icmp ult i32 %263, -4
  br i1 %or.cond40, label %.preheader.1, label %264

264:                                              ; preds = %260
  %265 = getelementptr inbounds i8, ptr %258, i64 80
  %266 = load i32, ptr %265, align 8, !tbaa !47
  %267 = icmp slt i32 %266, 0
  br i1 %267, label %.preheader.1.sink.split, label %268

268:                                              ; preds = %264
  %.not430 = icmp eq i32 %266, 0
  br i1 %.not430, label %.preheader.1, label %.preheader.1.sink.split

.preheader.1.sink.split:                          ; preds = %268, %264
  %.sink = phi i32 [ 3, %264 ], [ 1, %268 ]
  %269 = add nsw i32 %262, -1
  %270 = zext nneg i32 %269 to i64
  %271 = getelementptr inbounds [4 x i32], ptr %4, i64 0, i64 %270
  store i32 %.sink, ptr %271, align 4, !tbaa !43
  br label %.preheader.1

.preheader.1:                                     ; preds = %.preheader.1.sink.split, %260, %268, %.preheader.preheader
  %272 = load ptr, ptr %138, align 8, !tbaa !44
  %273 = icmp eq ptr %272, null
  br i1 %273, label %.preheader.2, label %274

274:                                              ; preds = %.preheader.1
  %275 = getelementptr inbounds i8, ptr %272, i64 72
  %276 = load i32, ptr %275, align 8, !tbaa !45
  %277 = add i32 %276, -5
  %or.cond40.1 = icmp ult i32 %277, -4
  br i1 %or.cond40.1, label %.preheader.2, label %278

278:                                              ; preds = %274
  %279 = getelementptr inbounds i8, ptr %272, i64 80
  %280 = load i32, ptr %279, align 8, !tbaa !47
  %281 = icmp slt i32 %280, 0
  br i1 %281, label %.preheader.2.sink.split, label %282

282:                                              ; preds = %278
  %.not430.1 = icmp eq i32 %280, 0
  br i1 %.not430.1, label %.preheader.2, label %.preheader.2.sink.split

.preheader.2.sink.split:                          ; preds = %278, %282
  %.sink450 = phi i32 [ 1, %282 ], [ 3, %278 ]
  %283 = add nsw i32 %276, -1
  %284 = zext nneg i32 %283 to i64
  %285 = getelementptr inbounds [4 x i32], ptr %4, i64 0, i64 %284
  store i32 %.sink450, ptr %285, align 4, !tbaa !43
  br label %.preheader.2

.preheader.2:                                     ; preds = %.preheader.2.sink.split, %282, %274, %.preheader.1
  %286 = load ptr, ptr %139, align 8, !tbaa !44
  %287 = icmp eq ptr %286, null
  br i1 %287, label %.preheader.3, label %288

288:                                              ; preds = %.preheader.2
  %289 = getelementptr inbounds i8, ptr %286, i64 72
  %290 = load i32, ptr %289, align 8, !tbaa !45
  %291 = add i32 %290, -5
  %or.cond40.2 = icmp ult i32 %291, -4
  br i1 %or.cond40.2, label %.preheader.3, label %292

292:                                              ; preds = %288
  %293 = getelementptr inbounds i8, ptr %286, i64 80
  %294 = load i32, ptr %293, align 8, !tbaa !47
  %295 = icmp slt i32 %294, 0
  br i1 %295, label %.preheader.3.sink.split, label %296

296:                                              ; preds = %292
  %.not430.2 = icmp eq i32 %294, 0
  br i1 %.not430.2, label %.preheader.3, label %.preheader.3.sink.split

.preheader.3.sink.split:                          ; preds = %292, %296
  %.sink454 = phi i32 [ 1, %296 ], [ 3, %292 ]
  %297 = add nsw i32 %290, -1
  %298 = zext nneg i32 %297 to i64
  %299 = getelementptr inbounds [4 x i32], ptr %4, i64 0, i64 %298
  store i32 %.sink454, ptr %299, align 4, !tbaa !43
  br label %.preheader.3

.preheader.3:                                     ; preds = %.preheader.3.sink.split, %296, %288, %.preheader.2
  %300 = load ptr, ptr %140, align 8, !tbaa !44
  %301 = icmp eq ptr %300, null
  br i1 %301, label %314, label %302

302:                                              ; preds = %.preheader.3
  %303 = getelementptr inbounds i8, ptr %300, i64 72
  %304 = load i32, ptr %303, align 8, !tbaa !45
  %305 = add i32 %304, -5
  %or.cond40.3 = icmp ult i32 %305, -4
  br i1 %or.cond40.3, label %314, label %306

306:                                              ; preds = %302
  %307 = getelementptr inbounds i8, ptr %300, i64 80
  %308 = load i32, ptr %307, align 8, !tbaa !47
  %309 = icmp slt i32 %308, 0
  br i1 %309, label %.sink.split, label %310

310:                                              ; preds = %306
  %.not430.3 = icmp eq i32 %308, 0
  br i1 %.not430.3, label %314, label %.sink.split

.sink.split:                                      ; preds = %306, %310
  %.sink458 = phi i32 [ 1, %310 ], [ 3, %306 ]
  %311 = add nsw i32 %304, -1
  %312 = zext nneg i32 %311 to i64
  %313 = getelementptr inbounds [4 x i32], ptr %4, i64 0, i64 %312
  store i32 %.sink458, ptr %313, align 4, !tbaa !43
  br label %314

314:                                              ; preds = %.sink.split, %310, %302, %.preheader.3
  %315 = load i8, ptr %29, align 1, !tbaa !41
  %.not418.not = icmp eq i8 %315, 0
  %316 = select i1 %.not418.not, i8 64, i8 127
  switch i32 %.0394434, label %.lr.ph.preheader [
    i32 0, label %317
    i32 1, label %366
    i32 2, label %403
    i32 3, label %410
    i32 4, label %459
    i32 5, label %484
  ]

317:                                              ; preds = %314
  store i8 48, ptr %3, align 16, !tbaa !11
  %318 = load i32, ptr %65, align 8, !tbaa !48
  %319 = lshr i32 %318, 12
  %320 = trunc i32 %319 to i8
  %321 = or i8 %320, 64
  %322 = and i8 %321, %316
  store i8 %322, ptr %12, align 1, !tbaa !11
  %323 = lshr i32 %318, 6
  %324 = trunc i32 %323 to i8
  %325 = or i8 %324, 64
  %326 = and i8 %325, %316
  store i8 %326, ptr %13, align 2, !tbaa !11
  %327 = trunc i32 %318 to i8
  %328 = or i8 %327, 64
  %329 = and i8 %328, %316
  store i8 %329, ptr %14, align 1, !tbaa !11
  store i8 49, ptr %15, align 4, !tbaa !11
  %330 = load i64, ptr %136, align 8, !tbaa !49
  %331 = lshr i64 %330, 30
  %332 = trunc i64 %331 to i8
  %333 = or i8 %332, 64
  %334 = and i8 %333, %316
  store i8 %334, ptr %16, align 1, !tbaa !11
  %335 = lshr i64 %330, 24
  %336 = trunc i64 %335 to i8
  %337 = or i8 %336, 64
  %338 = and i8 %337, %316
  store i8 %338, ptr %18, align 2, !tbaa !11
  %339 = lshr i64 %330, 18
  %340 = trunc i64 %339 to i8
  %341 = or i8 %340, 64
  %342 = and i8 %341, %316
  store i8 %342, ptr %19, align 1, !tbaa !11
  store i8 50, ptr %20, align 8, !tbaa !11
  %343 = lshr i64 %330, 12
  %344 = trunc i64 %343 to i8
  %345 = or i8 %344, 64
  %346 = and i8 %345, %316
  store i8 %346, ptr %22, align 1, !tbaa !11
  %347 = lshr i64 %330, 6
  %348 = trunc i64 %347 to i8
  %349 = or i8 %348, 64
  %350 = and i8 %349, %316
  store i8 %350, ptr %21, align 2, !tbaa !11
  %351 = trunc i64 %330 to i8
  %352 = or i8 %351, 64
  %353 = and i8 %352, %316
  store i8 %353, ptr %23, align 1, !tbaa !11
  store i8 51, ptr %25, align 4, !tbaa !11
  %354 = load i32, ptr %137, align 8, !tbaa !50
  %355 = lshr i32 %354, 12
  %356 = trunc i32 %355 to i8
  %357 = or i8 %356, 64
  %358 = and i8 %357, %316
  store i8 %358, ptr %119, align 1, !tbaa !11
  %359 = lshr i32 %354, 6
  %360 = trunc i32 %359 to i8
  %361 = or i8 %360, 64
  %362 = and i8 %361, %316
  store i8 %362, ptr %126, align 2, !tbaa !11
  %363 = trunc i32 %354 to i8
  %364 = or i8 %363, 64
  %365 = and i8 %364, %316
  store i8 %365, ptr %135, align 1, !tbaa !11
  br label %._crit_edge

366:                                              ; preds = %314
  store i8 52, ptr %3, align 16, !tbaa !11
  %367 = load i32, ptr %101, align 4, !tbaa !51
  %368 = lshr i32 %367, 12
  %369 = trunc i32 %368 to i8
  %370 = or i8 %369, 64
  %371 = and i8 %370, %316
  store i8 %371, ptr %12, align 1, !tbaa !11
  %372 = lshr i32 %367, 6
  %373 = trunc i32 %372 to i8
  %374 = or i8 %373, 64
  %375 = and i8 %374, %316
  store i8 %375, ptr %13, align 2, !tbaa !11
  %376 = trunc i32 %367 to i8
  %377 = or i8 %376, 64
  %378 = and i8 %377, %316
  store i8 %378, ptr %14, align 1, !tbaa !11
  store i8 53, ptr %15, align 4, !tbaa !11
  %379 = load i8, ptr %129, align 1, !tbaa !52
  %380 = load i8, ptr %130, align 2, !tbaa !53
  %381 = call i8 @llvm.fshl.i8(i8 %379, i8 %380, i8 5)
  %382 = or i8 %381, 64
  %383 = and i8 %382, %316
  store i8 %383, ptr %16, align 1, !tbaa !11
  %384 = shl i8 %380, 3
  %385 = or i8 %384, 64
  %386 = and i8 %385, %316
  store i8 %386, ptr %18, align 2, !tbaa !11
  store i8 64, ptr %19, align 1, !tbaa !11
  store i8 54, ptr %20, align 8, !tbaa !11
  %387 = load i8, ptr %131, align 1, !tbaa !54
  %388 = load i8, ptr %132, align 1, !tbaa !55
  %389 = call i8 @llvm.fshl.i8(i8 %387, i8 %388, i8 5)
  %390 = or i8 %389, 64
  %391 = and i8 %390, %316
  store i8 %391, ptr %22, align 1, !tbaa !11
  %392 = shl i8 %388, 3
  %393 = or i8 %392, 64
  %394 = and i8 %393, %316
  store i8 %394, ptr %21, align 2, !tbaa !11
  store i8 64, ptr %23, align 1, !tbaa !11
  store i8 55, ptr %25, align 4, !tbaa !11
  %395 = load i8, ptr %133, align 4, !tbaa !56
  %396 = load i8, ptr %134, align 8, !tbaa !57
  %397 = call i8 @llvm.fshl.i8(i8 %395, i8 %396, i8 5)
  %398 = or i8 %397, 64
  %399 = and i8 %398, %316
  store i8 %399, ptr %119, align 1, !tbaa !11
  %400 = shl i8 %396, 3
  %401 = or i8 %400, 64
  %402 = and i8 %401, %316
  store i8 %402, ptr %126, align 2, !tbaa !11
  store i8 64, ptr %135, align 1, !tbaa !11
  br label %._crit_edge

403:                                              ; preds = %314
  store i8 56, ptr %3, align 16, !tbaa !11
  %404 = load <4 x i32>, ptr %4, align 16, !tbaa !43
  %405 = trunc <4 x i32> %404 to <4 x i8>
  %406 = or <4 x i8> %405, <i8 64, i8 64, i8 64, i8 64>
  %407 = insertelement <4 x i8> poison, i8 %316, i64 0
  %408 = shufflevector <4 x i8> %407, <4 x i8> poison, <4 x i32> zeroinitializer
  %409 = and <4 x i8> %406, %408
  store <4 x i8> %409, ptr %12, align 1, !tbaa !11
  br label %.lr.ph.preheader

410:                                              ; preds = %314
  store i8 33, ptr %3, align 16, !tbaa !11
  %411 = load i64, ptr %128, align 8, !tbaa !58
  %412 = lshr i64 %411, 30
  %413 = trunc i64 %412 to i8
  %414 = or i8 %413, 64
  %415 = and i8 %414, %316
  store i8 %415, ptr %12, align 1, !tbaa !11
  %416 = lshr i64 %411, 24
  %417 = trunc i64 %416 to i8
  %418 = or i8 %417, 64
  %419 = and i8 %418, %316
  store i8 %419, ptr %13, align 2, !tbaa !11
  %420 = lshr i64 %411, 18
  %421 = trunc i64 %420 to i8
  %422 = or i8 %421, 64
  %423 = and i8 %422, %316
  store i8 %423, ptr %14, align 1, !tbaa !11
  %424 = lshr i64 %411, 12
  %425 = trunc i64 %424 to i8
  %426 = or i8 %425, 64
  %427 = and i8 %426, %316
  store i8 %427, ptr %15, align 4, !tbaa !11
  %428 = lshr i64 %411, 6
  %429 = trunc i64 %428 to i8
  %430 = or i8 %429, 64
  %431 = and i8 %430, %316
  store i8 %431, ptr %16, align 1, !tbaa !11
  %432 = trunc i64 %411 to i8
  %433 = or i8 %432, 64
  %434 = and i8 %433, %316
  store i8 %434, ptr %18, align 2, !tbaa !11
  store i8 34, ptr %19, align 1, !tbaa !11
  %435 = load i64, ptr %127, align 8, !tbaa !59
  %436 = lshr i64 %435, 30
  %437 = trunc i64 %436 to i8
  %438 = or i8 %437, 64
  %439 = and i8 %438, %316
  store i8 %439, ptr %20, align 8, !tbaa !11
  %440 = lshr i64 %435, 24
  %441 = trunc i64 %440 to i8
  %442 = or i8 %441, 64
  %443 = and i8 %442, %316
  store i8 %443, ptr %22, align 1, !tbaa !11
  %444 = lshr i64 %435, 18
  %445 = trunc i64 %444 to i8
  %446 = or i8 %445, 64
  %447 = and i8 %446, %316
  store i8 %447, ptr %21, align 2, !tbaa !11
  %448 = lshr i64 %435, 12
  %449 = trunc i64 %448 to i8
  %450 = or i8 %449, 64
  %451 = and i8 %450, %316
  store i8 %451, ptr %23, align 1, !tbaa !11
  %452 = lshr i64 %435, 6
  %453 = trunc i64 %452 to i8
  %454 = or i8 %453, 64
  %455 = and i8 %454, %316
  store i8 %455, ptr %25, align 4, !tbaa !11
  %456 = trunc i64 %435 to i8
  %457 = or i8 %456, 64
  %458 = and i8 %457, %316
  store i8 %458, ptr %119, align 1, !tbaa !11
  br label %.lr.ph.preheader

459:                                              ; preds = %314
  store i8 35, ptr %3, align 16, !tbaa !11
  %460 = load i64, ptr %66, align 8, !tbaa !60
  %461 = lshr i64 %460, 30
  %462 = trunc i64 %461 to i8
  %463 = or i8 %462, 64
  %464 = and i8 %463, %316
  store i8 %464, ptr %12, align 1, !tbaa !11
  %465 = lshr i64 %460, 24
  %466 = trunc i64 %465 to i8
  %467 = or i8 %466, 64
  %468 = and i8 %467, %316
  store i8 %468, ptr %13, align 2, !tbaa !11
  %469 = lshr i64 %460, 18
  %470 = trunc i64 %469 to i8
  %471 = or i8 %470, 64
  %472 = and i8 %471, %316
  store i8 %472, ptr %14, align 1, !tbaa !11
  %473 = lshr i64 %460, 12
  %474 = trunc i64 %473 to i8
  %475 = or i8 %474, 64
  %476 = and i8 %475, %316
  store i8 %476, ptr %15, align 4, !tbaa !11
  %477 = lshr i64 %460, 6
  %478 = trunc i64 %477 to i8
  %479 = or i8 %478, 64
  %480 = and i8 %479, %316
  store i8 %480, ptr %16, align 1, !tbaa !11
  %481 = trunc i64 %460 to i8
  %482 = or i8 %481, 64
  %483 = and i8 %482, %316
  store i8 %483, ptr %18, align 2, !tbaa !11
  br label %.lr.ph.preheader

484:                                              ; preds = %314
  store i8 36, ptr %3, align 16, !tbaa !11
  %485 = load i8, ptr %31, align 4, !tbaa !61
  %486 = shl i8 %485, 7
  %487 = load i8, ptr %32, align 1, !tbaa !62
  %488 = shl i8 %487, 6
  %489 = or i8 %488, %486
  %490 = load i8, ptr %33, align 2, !tbaa !63
  %491 = shl i8 %490, 5
  %492 = or i8 %489, %491
  %493 = load i8, ptr %34, align 1, !tbaa !64
  %494 = shl i8 %493, 4
  %495 = or i8 %492, %494
  %496 = load i8, ptr %35, align 8, !tbaa !65
  %497 = shl i8 %496, 3
  %498 = or i8 %495, %497
  %499 = load i8, ptr %36, align 2, !tbaa !66
  %500 = shl i8 %499, 2
  %501 = or i8 %498, %500
  %502 = load i8, ptr %37, align 1, !tbaa !67
  %503 = shl i8 %502, 1
  %504 = or i8 %501, %503
  %505 = load i8, ptr %38, align 4, !tbaa !68
  %506 = or i8 %504, %505
  %507 = select i1 %.not418.not, i8 0, i8 %506
  store i8 %507, ptr %12, align 1, !tbaa !11
  %508 = load i8, ptr %39, align 2, !tbaa !69
  %509 = shl i8 %508, 7
  %510 = load i8, ptr %40, align 1, !tbaa !70
  %511 = shl i8 %510, 6
  %512 = or i8 %511, %509
  %513 = load i8, ptr %41, align 4, !tbaa !71
  %514 = shl i8 %513, 5
  %515 = or i8 %512, %514
  %516 = load i8, ptr %42, align 1, !tbaa !72
  %517 = shl i8 %516, 4
  %518 = or i8 %515, %517
  %519 = load i8, ptr %43, align 1, !tbaa !73
  %520 = shl i8 %519, 3
  %521 = or i8 %518, %520
  %522 = load i8, ptr %44, align 2, !tbaa !74
  %523 = shl i8 %522, 2
  %524 = or i8 %521, %523
  %525 = load i8, ptr %45, align 1, !tbaa !75
  %526 = shl i8 %525, 1
  %527 = or i8 %524, %526
  %528 = load i8, ptr %46, align 8, !tbaa !76
  %529 = or i8 %527, %528
  %530 = select i1 %.not418.not, i8 0, i8 %529
  store i8 %530, ptr %13, align 2, !tbaa !11
  %531 = load i8, ptr %47, align 1, !tbaa !77
  %532 = shl i8 %531, 7
  %533 = load i8, ptr %48, align 4, !tbaa !78
  %534 = shl i8 %533, 6
  %535 = or i8 %534, %532
  %536 = load i8, ptr %49, align 1, !tbaa !79
  %537 = shl i8 %536, 5
  %538 = or i8 %535, %537
  %539 = load i8, ptr %50, align 2, !tbaa !80
  %540 = shl i8 %539, 4
  %541 = or i8 %538, %540
  %542 = load i8, ptr %51, align 2, !tbaa !81
  %543 = shl i8 %542, 3
  %544 = or i8 %541, %543
  %545 = load i8, ptr %52, align 1, !tbaa !82
  %546 = shl i8 %545, 2
  %547 = or i8 %544, %546
  %548 = load i8, ptr %53, align 4, !tbaa !83
  %549 = shl i8 %548, 1
  %550 = or i8 %547, %549
  %551 = load i8, ptr %54, align 1, !tbaa !84
  %552 = or i8 %550, %551
  %553 = select i1 %.not418.not, i8 0, i8 %552
  store i8 %553, ptr %14, align 1, !tbaa !11
  %554 = load i8, ptr %55, align 4, !tbaa !85
  %555 = shl i8 %554, 7
  %556 = load i8, ptr %56, align 1, !tbaa !86
  %557 = shl i8 %556, 6
  %558 = or i8 %557, %555
  %559 = load i8, ptr %57, align 8, !tbaa !87
  %560 = shl i8 %559, 5
  %561 = or i8 %558, %560
  %562 = load i8, ptr %58, align 1, !tbaa !88
  %563 = shl i8 %562, 4
  %564 = or i8 %561, %563
  %565 = load i8, ptr %59, align 2, !tbaa !89
  %566 = shl i8 %565, 3
  %567 = or i8 %564, %566
  %568 = load i8, ptr %60, align 1, !tbaa !90
  %569 = shl i8 %568, 2
  %570 = or i8 %567, %569
  %571 = load i8, ptr %61, align 4, !tbaa !91
  %572 = shl i8 %571, 1
  %573 = or i8 %570, %572
  %574 = load i8, ptr %62, align 1, !tbaa !92
  %575 = or i8 %573, %574
  %576 = select i1 %.not418.not, i8 0, i8 %575
  store i8 %576, ptr %15, align 4, !tbaa !11
  %577 = load i8, ptr %63, align 2, !tbaa !93
  %578 = shl i8 %577, 7
  %579 = load i8, ptr %64, align 1, !tbaa !94
  %580 = shl i8 %579, 6
  %581 = or i8 %580, %578
  %582 = load i32, ptr %65, align 8, !tbaa !48
  %583 = and i32 %582, 2048
  %.not419 = icmp eq i32 %583, 0
  br i1 %.not419, label %..thread428_crit_edge, label %584

..thread428_crit_edge:                            ; preds = %484
  %.pre442 = load i8, ptr %67, align 8, !tbaa !95
  br label %.thread428

584:                                              ; preds = %484
  %585 = load i64, ptr %66, align 8, !tbaa !60
  %586 = and i64 %585, 17179869184
  %.not420 = icmp eq i64 %586, 0
  %.pre443 = load i8, ptr %67, align 8, !tbaa !95
  %.fr = freeze i8 %.pre443
  br i1 %.not420, label %.thread428, label %587

587:                                              ; preds = %584
  %.not421 = icmp eq i8 %.fr, 0
  %spec.select = select i1 %.not421, i8 32, i8 0
  br label %.thread428

.thread428:                                       ; preds = %..thread428_crit_edge, %587, %584
  %588 = phi i8 [ %.fr, %584 ], [ %.pre442, %..thread428_crit_edge ], [ %.fr, %587 ]
  %589 = phi i8 [ 0, %584 ], [ 0, %..thread428_crit_edge ], [ %spec.select, %587 ]
  %590 = or disjoint i8 %581, %589
  %591 = load i8, ptr %68, align 2, !tbaa !96
  %592 = shl i8 %591, 4
  %593 = or i8 %590, %592
  %594 = load i8, ptr %69, align 1, !tbaa !97
  %595 = shl i8 %594, 3
  %596 = or i8 %593, %595
  %597 = shl i8 %588, 2
  %598 = or i8 %596, %597
  %599 = load i8, ptr %70, align 1, !tbaa !98
  %600 = shl i8 %599, 1
  %601 = or i8 %598, %600
  %602 = load i8, ptr %71, align 8, !tbaa !99
  %603 = or i8 %601, %602
  %604 = select i1 %.not418.not, i8 0, i8 %603
  store i8 %604, ptr %16, align 1, !tbaa !11
  %605 = load i8, ptr %72, align 2, !tbaa !100
  %606 = shl i8 %605, 7
  %607 = load i8, ptr %73, align 1, !tbaa !101
  %608 = shl i8 %607, 6
  %609 = or i8 %608, %606
  %610 = load i8, ptr %74, align 4, !tbaa !102
  %611 = shl i8 %610, 5
  %612 = or i8 %609, %611
  %613 = load i8, ptr %75, align 1, !tbaa !103
  %614 = shl i8 %613, 4
  %615 = or i8 %612, %614
  %616 = load i8, ptr %76, align 2, !tbaa !104
  %617 = shl i8 %616, 3
  %618 = or i8 %615, %617
  %619 = load i8, ptr %77, align 1, !tbaa !105
  %620 = shl i8 %619, 2
  %621 = or i8 %618, %620
  %622 = load i8, ptr %78, align 8, !tbaa !106
  %623 = shl i8 %622, 1
  %624 = or i8 %621, %623
  %625 = load i8, ptr %79, align 1, !tbaa !107
  %626 = or i8 %624, %625
  %627 = select i1 %.not418.not, i8 0, i8 %626
  store i8 %627, ptr %18, align 2, !tbaa !11
  %628 = load i8, ptr %80, align 2, !tbaa !108
  %629 = shl i8 %628, 7
  %630 = load i8, ptr %81, align 1, !tbaa !109
  %631 = shl i8 %630, 6
  %632 = or i8 %631, %629
  %633 = load i8, ptr %82, align 1, !tbaa !110
  %634 = shl i8 %633, 5
  %635 = or i8 %632, %634
  %636 = load i8, ptr %83, align 8, !tbaa !111
  %637 = shl i8 %636, 4
  %638 = or i8 %635, %637
  %639 = load i8, ptr %84, align 1, !tbaa !112
  %640 = shl i8 %639, 3
  %641 = or i8 %638, %640
  %642 = load i8, ptr %85, align 2, !tbaa !113
  %643 = shl i8 %642, 2
  %644 = or i8 %641, %643
  %645 = load i8, ptr %86, align 2, !tbaa !114
  %646 = shl i8 %645, 1
  %647 = or i8 %644, %646
  %648 = load i16, ptr %87, align 2, !tbaa !115
  %649 = icmp eq i16 %648, 511
  %650 = zext i1 %649 to i8
  %651 = or i8 %647, %650
  %652 = select i1 %.not418.not, i8 0, i8 %651
  store i8 %652, ptr %19, align 1, !tbaa !11
  %653 = load i8, ptr %88, align 2, !tbaa !116
  %654 = shl i8 %653, 7
  %655 = load i8, ptr %89, align 1, !tbaa !117
  %656 = shl i8 %655, 6
  %657 = or i8 %656, %654
  %658 = load i8, ptr %90, align 4, !tbaa !118
  %659 = shl i8 %658, 5
  %660 = or i8 %657, %659
  %661 = load i8, ptr %91, align 1, !tbaa !119
  %662 = shl i8 %661, 4
  %663 = or i8 %660, %662
  %664 = load i8, ptr %92, align 2, !tbaa !120
  %665 = shl i8 %664, 3
  %666 = or i8 %663, %665
  %667 = load i8, ptr %93, align 1, !tbaa !121
  %668 = shl i8 %667, 2
  %669 = or i8 %666, %668
  %670 = load i8, ptr %94, align 1, !tbaa !122
  %671 = shl i8 %670, 1
  %672 = or i8 %669, %671
  %673 = load i8, ptr %95, align 2, !tbaa !123
  %674 = or i8 %672, %673
  %675 = select i1 %.not418.not, i8 0, i8 %674
  store i8 %675, ptr %20, align 8, !tbaa !11
  %676 = load i8, ptr %96, align 1, !tbaa !124
  %677 = shl i8 %676, 7
  %678 = load i8, ptr %97, align 2, !tbaa !125
  %679 = shl i8 %678, 6
  %680 = or i8 %679, %677
  %681 = load i8, ptr %98, align 1, !tbaa !126
  %.not422 = icmp eq i8 %681, 0
  %682 = select i1 %.not422, i8 0, i8 32
  %683 = or disjoint i8 %680, %682
  %684 = load i8, ptr %99, align 4, !tbaa !127
  %685 = shl i8 %684, 4
  %686 = or i8 %683, %685
  %687 = load i8, ptr %100, align 1, !tbaa !128
  %688 = shl i8 %687, 3
  %689 = or i8 %686, %688
  %690 = load i32, ptr %101, align 4, !tbaa !51
  %691 = load i32, ptr %17, align 8, !tbaa !21
  %692 = icmp eq i32 %690, %691
  %693 = select i1 %692, i8 4, i8 0
  %694 = or disjoint i8 %689, %693
  %695 = load i8, ptr %102, align 1, !tbaa !129
  %696 = shl i8 %695, 1
  %697 = or i8 %694, %696
  %698 = load i8, ptr %103, align 2, !tbaa !130
  %699 = or i8 %697, %698
  %700 = select i1 %.not418.not, i8 0, i8 %699
  store i8 %700, ptr %22, align 1, !tbaa !11
  %701 = load i16, ptr %104, align 8, !tbaa !131
  %702 = trunc i16 %701 to i8
  %703 = select i1 %.not418.not, i8 0, i8 %702
  store i8 %703, ptr %21, align 2, !tbaa !11
  %704 = trunc i16 %648 to i8
  %705 = select i1 %.not418.not, i8 0, i8 %704
  store i8 %705, ptr %23, align 1, !tbaa !11
  %706 = load i8, ptr %105, align 1, !tbaa !132
  %.not423 = icmp eq i8 %706, 0
  %707 = select i1 %.not423, i8 -128, i8 0
  %708 = load i8, ptr %106, align 1, !tbaa !133
  %709 = shl i8 %708, 6
  %710 = load i8, ptr %107, align 2, !tbaa !134
  %711 = shl i8 %710, 5
  %712 = load i8, ptr %108, align 8, !tbaa !135
  %713 = shl i8 %712, 4
  %714 = load i8, ptr %109, align 1, !tbaa !136
  %715 = shl i8 %714, 3
  %716 = load i8, ptr %110, align 4, !tbaa !137
  %717 = shl i8 %716, 2
  %718 = lshr i16 %648, 7
  %719 = trunc i16 %718 to i8
  %720 = and i8 %719, 2
  %721 = lshr i16 %701, 8
  %722 = trunc nuw i16 %721 to i8
  %723 = and i8 %722, 1
  %724 = or disjoint i8 %723, %720
  %725 = or disjoint i8 %724, %709
  %726 = or i8 %711, %707
  %727 = or i8 %726, %725
  %728 = or i8 %727, %713
  %729 = or i8 %728, %715
  %730 = or i8 %729, %717
  %731 = select i1 %.not418.not, i8 0, i8 %730
  store i8 %731, ptr %25, align 4, !tbaa !11
  %732 = load i8, ptr %111, align 1, !tbaa !138
  %733 = shl i8 %732, 7
  %734 = load i8, ptr %112, align 1, !tbaa !139
  %735 = shl i8 %734, 6
  %736 = or i8 %735, %733
  %737 = load i8, ptr %113, align 8, !tbaa !140
  %738 = shl i8 %737, 5
  %739 = or i8 %736, %738
  %740 = load i8, ptr %114, align 1, !tbaa !141
  %741 = shl i8 %740, 4
  %742 = or i8 %739, %741
  %743 = load i8, ptr %115, align 1, !tbaa !142
  %744 = shl i8 %743, 3
  %745 = or i8 %742, %744
  %746 = load i8, ptr %116, align 2, !tbaa !143
  %747 = shl i8 %746, 2
  %748 = or i8 %745, %747
  %749 = load i8, ptr %117, align 1, !tbaa !144
  %750 = shl i8 %749, 1
  %751 = or i8 %748, %750
  %752 = load i8, ptr %118, align 4, !tbaa !145
  %753 = or i8 %751, %752
  %754 = select i1 %.not418.not, i8 0, i8 %753
  store i8 %754, ptr %119, align 1, !tbaa !11
  %755 = load i8, ptr %120, align 2, !tbaa !146
  %756 = zext i8 %755 to i32
  %757 = shl nuw nsw i32 %756, 7
  %758 = load i8, ptr %121, align 1, !tbaa !147
  %759 = zext i8 %758 to i32
  %760 = shl nuw nsw i32 %759, 6
  %761 = or i32 %760, %757
  %762 = load i8, ptr %122, align 4, !tbaa !148
  %763 = zext i8 %762 to i32
  %764 = shl nuw nsw i32 %763, 5
  %765 = or i32 %761, %764
  %766 = load i8, ptr %123, align 1, !tbaa !149
  %767 = zext i8 %766 to i32
  %768 = shl nuw nsw i32 %767, 4
  %769 = or i32 %765, %768
  %770 = load i8, ptr %124, align 1, !tbaa !150
  %771 = zext i8 %770 to i32
  %772 = shl nuw nsw i32 %771, 3
  %773 = or i32 %769, %772
  %774 = load i32, ptr %125, align 8, !tbaa !151
  %775 = and i32 %774, 7
  %776 = or disjoint i32 %773, %775
  %777 = trunc i32 %776 to i8
  %778 = select i1 %.not418.not, i8 0, i8 %777
  store i8 %778, ptr %126, align 2, !tbaa !11
  br label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %314, %.thread428, %459, %410, %403
  %.0.ph = phi i32 [ 5, %403 ], [ 14, %410 ], [ 7, %459 ], [ 15, %.thread428 ], [ 0, %314 ]
  %779 = zext nneg i32 %.0.ph to i64
  %scevgep = getelementptr i8, ptr %3, i64 %779
  %narrow = sub nuw nsw i32 16, %.0.ph
  %780 = zext nneg i32 %narrow to i64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %scevgep, i8 32, i64 %780, i1 false), !tbaa !11
  br label %._crit_edge

._crit_edge:                                      ; preds = %317, %366, %.lr.ph.preheader
  %781 = add nsw i32 %.0394434, 1
  %782 = srem i32 %781, 6
  %783 = call i32 @writen(i32 noundef %0, ptr noundef nonnull %3, i32 noundef 16) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  br label %141

._crit_edge437:                                   ; preds = %141, %2
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #6
  ret void
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #2

declare i32 @readn(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @ptr_setmotor(ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare i32 @writen(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #3

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

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

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "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 #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { 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, !7, i64 0}
!6 = !{!"Foo", !7, i64 0, !7, i64 8, !8, i64 16}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!6, !7, i64 8}
!11 = !{!8, !8, i64 0}
!12 = !{!13, !16, i64 3448}
!13 = !{!"Apr", !14, i64 0, !15, i64 64, !18, i64 3192, !17, i64 3376, !19, i64 3384, !19, i64 3408, !17, i64 3432, !16, i64 3440, !16, i64 3448, !17, i64 3456, !17, i64 3460, !17, i64 3464, !8, i64 3468, !20, i64 3470, !20, i64 3472, !8, i64 3474, !8, i64 3475, !8, i64 3476, !8, i64 3477, !8, i64 3478, !8, i64 3479, !8, i64 3480, !8, i64 3481, !8, i64 3482, !8, i64 3483, !8, i64 3484, !8, i64 3485, !8, i64 3486, !8, i64 3487, !8, i64 3488, !8, i64 3489, !8, i64 3490, !8, i64 3491, !8, i64 3492, !8, i64 3493, !8, i64 3494, !8, i64 3495, !8, i64 3496, !8, i64 3497, !8, i64 3498, !8, i64 3499, !8, i64 3500, !8, i64 3501, !8, i64 3502, !17, i64 3504, !17, i64 3508, !8, i64 3512, !8, i64 3513, !8, i64 3514, !8, i64 3515, !8, i64 3516, !8, i64 3517, !8, i64 3518, !8, i64 3519, !8, i64 3520, !8, i64 3521, !8, i64 3522, !8, i64 3523, !8, i64 3524, !8, i64 3525, !8, i64 3526, !8, i64 3527, !8, i64 3528, !8, i64 3529, !8, i64 3530, !8, i64 3531, !8, i64 3532, !8, i64 3533, !8, i64 3534, !8, i64 3535, !8, i64 3536, !8, i64 3537, !8, i64 3538, !8, i64 3539, !8, i64 3540, !8, i64 3541, !8, i64 3542, !8, i64 3543, !8, i64 3544, !8, i64 3545, !8, i64 3546, !8, i64 3547, !8, i64 3548, !8, i64 3549, !8, i64 3550, !8, i64 3551, !17, i64 3552, !8, i64 3556, !8, i64 3557, !8, i64 3558, !8, i64 3559, !8, i64 3560, !8, i64 3561, !8, i64 3562, !8, i64 3563, !8, i64 3564, !8, i64 3565, !8, i64 3566, !8, i64 3567, !8, i64 3568, !8, i64 3569, !8, i64 3570, !8, i64 3571, !8, i64 3572, !8, i64 3573, !8, i64 3574, !8, i64 3575, !8, i64 3576, !8, i64 3577, !8, i64 3578, !8, i64 3579, !8, i64 3580, !8, i64 3581, !8, i64 3582, !8, i64 3583, !8, i64 3584, !8, i64 3585, !8, i64 3586, !8, i64 3587, !8, i64 3588, !8, i64 3589, !8, i64 3590, !8, i64 3591, !8, i64 3592, !8, i64 3593, !8, i64 3594, !8, i64 3595, !8, i64 3596, !8, i64 3597, !8, i64 3598, !8, i64 3599, !8, i64 3600, !8, i64 3601, !8, i64 3602, !8, i64 3603, !8, i64 3604, !8, i64 3605, !8, i64 3606, !8, i64 3607, !8, i64 3608, !8, i64 3609, !8, i64 3610, !8, i64 3611, !8, i64 3612, !8, i64 3613, !8, i64 3614, !17, i64 3616, !17, i64 3620, !17, i64 3624, !8, i64 3628, !8, i64 3629, !8, i64 3630, !8, i64 3631, !8, i64 3632, !8, i64 3633, !8, i64 3634, !8, i64 3635, !8, i64 3636, !8, i64 3637, !8, i64 3638, !8, i64 3639, !8, i64 3640, !8, i64 3641, !8, i64 3642, !17, i64 3644, !8, i64 3648, !8, i64 3649, !8, i64 3650, !8, i64 3651, !8, i64 3652, !8, i64 3653, !8, i64 3654, !8, i64 3655, !8, i64 3656, !8, i64 3657, !8, i64 3658, !7, i64 3664, !7, i64 3672, !17, i64 3680, !8, i64 3684, !8, i64 3688, !7, i64 4168, !7, i64 4176}
!14 = !{!"Device", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56}
!15 = !{!"IOBus", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !17, i64 48, !8, i64 56}
!16 = !{!"long", !8, i64 0}
!17 = !{!"int", !8, i64 0}
!18 = !{!"Membus", !16, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !16, i64 32, !16, i64 40, !7, i64 48, !8, i64 56}
!19 = !{!"AprState", !16, i64 0, !16, i64 8, !16, i64 16}
!20 = !{!"short", !8, i64 0}
!21 = !{!13, !17, i64 3464}
!22 = !{!13, !8, i64 3487}
!23 = !{!13, !8, i64 3488}
!24 = !{!13, !8, i64 3490}
!25 = !{!13, !8, i64 3489}
!26 = !{!13, !8, i64 3492}
!27 = !{!13, !8, i64 3491}
!28 = !{!13, !8, i64 3493}
!29 = !{!13, !8, i64 3494}
!30 = !{!13, !8, i64 3495}
!31 = !{!13, !8, i64 3496}
!32 = !{!13, !8, i64 3497}
!33 = !{!13, !8, i64 3498}
!34 = !{!13, !8, i64 3499}
!35 = !{!13, !8, i64 3500}
!36 = !{!13, !8, i64 3501}
!37 = !{!13, !8, i64 3502}
!38 = !{!13, !8, i64 3478}
!39 = !{!13, !8, i64 3479}
!40 = !{!13, !8, i64 3480}
!41 = !{!13, !8, i64 3481}
!42 = !{!13, !17, i64 3680}
!43 = !{!17, !17, i64 0}
!44 = !{!7, !7, i64 0}
!45 = !{!46, !17, i64 72}
!46 = !{!"Dx555", !14, i64 0, !7, i64 64, !17, i64 72, !17, i64 76, !17, i64 80, !17, i64 84, !7, i64 88, !7, i64 96, !7, i64 104, !17, i64 112}
!47 = !{!46, !17, i64 80}
!48 = !{!13, !17, i64 3432}
!49 = !{!13, !16, i64 3440}
!50 = !{!13, !17, i64 3456}
!51 = !{!13, !17, i64 3460}
!52 = !{!13, !8, i64 3477}
!53 = !{!13, !8, i64 3514}
!54 = !{!13, !8, i64 3541}
!55 = !{!13, !8, i64 3513}
!56 = !{!13, !8, i64 3516}
!57 = !{!13, !8, i64 3512}
!58 = !{!13, !16, i64 3392}
!59 = !{!13, !16, i64 3384}
!60 = !{!13, !16, i64 3400}
!61 = !{!13, !8, i64 3532}
!62 = !{!13, !8, i64 3533}
!63 = !{!13, !8, i64 3534}
!64 = !{!13, !8, i64 3535}
!65 = !{!13, !8, i64 3536}
!66 = !{!13, !8, i64 3538}
!67 = !{!13, !8, i64 3539}
!68 = !{!13, !8, i64 3540}
!69 = !{!13, !8, i64 3562}
!70 = !{!13, !8, i64 3563}
!71 = !{!13, !8, i64 3564}
!72 = !{!13, !8, i64 3565}
!73 = !{!13, !8, i64 3569}
!74 = !{!13, !8, i64 3566}
!75 = !{!13, !8, i64 3567}
!76 = !{!13, !8, i64 3568}
!77 = !{!13, !8, i64 3579}
!78 = !{!13, !8, i64 3580}
!79 = !{!13, !8, i64 3581}
!80 = !{!13, !8, i64 3530}
!81 = !{!13, !8, i64 3610}
!82 = !{!13, !8, i64 3611}
!83 = !{!13, !8, i64 3612}
!84 = !{!13, !8, i64 3609}
!85 = !{!13, !8, i64 3604}
!86 = !{!13, !8, i64 3605}
!87 = !{!13, !8, i64 3600}
!88 = !{!13, !8, i64 3601}
!89 = !{!13, !8, i64 3602}
!90 = !{!13, !8, i64 3603}
!91 = !{!13, !8, i64 3596}
!92 = !{!13, !8, i64 3597}
!93 = !{!13, !8, i64 3598}
!94 = !{!13, !8, i64 3599}
!95 = !{!13, !8, i64 3608}
!96 = !{!13, !8, i64 3606}
!97 = !{!13, !8, i64 3607}
!98 = !{!13, !8, i64 3595}
!99 = !{!13, !8, i64 3576}
!100 = !{!13, !8, i64 3586}
!101 = !{!13, !8, i64 3587}
!102 = !{!13, !8, i64 3588}
!103 = !{!13, !8, i64 3589}
!104 = !{!13, !8, i64 3590}
!105 = !{!13, !8, i64 3591}
!106 = !{!13, !8, i64 3592}
!107 = !{!13, !8, i64 3593}
!108 = !{!13, !8, i64 3594}
!109 = !{!13, !8, i64 3585}
!110 = !{!13, !8, i64 3583}
!111 = !{!13, !8, i64 3584}
!112 = !{!13, !8, i64 3543}
!113 = !{!13, !8, i64 3542}
!114 = !{!13, !8, i64 3582}
!115 = !{!13, !20, i64 3470}
!116 = !{!13, !8, i64 3570}
!117 = !{!13, !8, i64 3571}
!118 = !{!13, !8, i64 3572}
!119 = !{!13, !8, i64 3573}
!120 = !{!13, !8, i64 3574}
!121 = !{!13, !8, i64 3575}
!122 = !{!13, !8, i64 3577}
!123 = !{!13, !8, i64 3578}
!124 = !{!13, !8, i64 3517}
!125 = !{!13, !8, i64 3518}
!126 = !{!13, !8, i64 3515}
!127 = !{!13, !8, i64 3556}
!128 = !{!13, !8, i64 3561}
!129 = !{!13, !8, i64 3613}
!130 = !{!13, !8, i64 3550}
!131 = !{!13, !20, i64 3472}
!132 = !{!13, !8, i64 3523}
!133 = !{!13, !8, i64 3545}
!134 = !{!13, !8, i64 3522}
!135 = !{!13, !8, i64 3520}
!136 = !{!13, !8, i64 3521}
!137 = !{!13, !8, i64 3468}
!138 = !{!13, !8, i64 3537}
!139 = !{!13, !8, i64 3531}
!140 = !{!13, !8, i64 3528}
!141 = !{!13, !8, i64 3529}
!142 = !{!13, !8, i64 3525}
!143 = !{!13, !8, i64 3526}
!144 = !{!13, !8, i64 3527}
!145 = !{!13, !8, i64 3524}
!146 = !{!13, !8, i64 3546}
!147 = !{!13, !8, i64 3547}
!148 = !{!13, !8, i64 3548}
!149 = !{!13, !8, i64 3549}
!150 = !{!13, !8, i64 3551}
!151 = !{!13, !17, i64 3552}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass