; LLVM IR from hit9/bitproto :: example/C-optimization-mode (example_bp)

; 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.Drone = type { i8, %struct.Position, %struct.Flight, [4 x %struct.Propeller], %struct.Power, %struct.Network, %struct.LandingGear, %struct.PressureSensor }
%struct.Position = type { i32, i32, i32 }
%struct.Flight = type { %struct.Pose, [3 x i32], [3 x i32] }
%struct.Pose = type { i32, i32, i32 }
%struct.Propeller = type { i8, i8, i8 }
%struct.Power = type { i8, i8, i8 }
%struct.Network = type { i8, i32 }
%struct.LandingGear = type { i8 }
%struct.PressureSensor = type { [2 x i32] }

; Function Attrs: nounwind uwtable
define dso_local i32 @EncodeDrone(ptr noundef %0, ptr noundef %1) #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %5 = load ptr, ptr %3, align 8, !tbaa !5
  %6 = getelementptr inbounds %struct.Drone, ptr %5, i32 0, i32 0
  %7 = getelementptr inbounds i8, ptr %6, i64 0
  %8 = load i8, ptr %7, align 4, !tbaa !9
  %9 = zext i8 %8 to i32
  %10 = and i32 %9, 7
  %11 = trunc i32 %10 to i8
  %12 = load ptr, ptr %4, align 8, !tbaa !5
  %13 = getelementptr inbounds i8, ptr %12, i64 0
  store i8 %11, ptr %13, align 1, !tbaa !9
  %14 = load ptr, ptr %3, align 8, !tbaa !5
  %15 = getelementptr inbounds %struct.Drone, ptr %14, i32 0, i32 1
  %16 = getelementptr inbounds %struct.Position, ptr %15, i32 0, i32 0
  %17 = getelementptr inbounds i8, ptr %16, i64 0
  %18 = load i8, ptr %17, align 4, !tbaa !9
  %19 = zext i8 %18 to i32
  %20 = shl i32 %19, 3
  %21 = and i32 %20, 248
  %22 = load ptr, ptr %4, align 8, !tbaa !5
  %23 = getelementptr inbounds i8, ptr %22, i64 0
  %24 = load i8, ptr %23, align 1, !tbaa !9
  %25 = zext i8 %24 to i32
  %26 = or i32 %25, %21
  %27 = trunc i32 %26 to i8
  store i8 %27, ptr %23, align 1, !tbaa !9
  %28 = load ptr, ptr %3, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.Drone, ptr %28, i32 0, i32 1
  %30 = getelementptr inbounds %struct.Position, ptr %29, i32 0, i32 0
  %31 = getelementptr inbounds i8, ptr %30, i64 0
  %32 = load i8, ptr %31, align 4, !tbaa !9
  %33 = zext i8 %32 to i32
  %34 = ashr i32 %33, 5
  %35 = and i32 %34, 7
  %36 = trunc i32 %35 to i8
  %37 = load ptr, ptr %4, align 8, !tbaa !5
  %38 = getelementptr inbounds i8, ptr %37, i64 1
  store i8 %36, ptr %38, align 1, !tbaa !9
  %39 = load ptr, ptr %3, align 8, !tbaa !5
  %40 = getelementptr inbounds %struct.Drone, ptr %39, i32 0, i32 1
  %41 = getelementptr inbounds %struct.Position, ptr %40, i32 0, i32 0
  %42 = getelementptr inbounds i8, ptr %41, i64 1
  %43 = load i8, ptr %42, align 1, !tbaa !9
  %44 = zext i8 %43 to i32
  %45 = shl i32 %44, 3
  %46 = and i32 %45, 248
  %47 = load ptr, ptr %4, align 8, !tbaa !5
  %48 = getelementptr inbounds i8, ptr %47, i64 1
  %49 = load i8, ptr %48, align 1, !tbaa !9
  %50 = zext i8 %49 to i32
  %51 = or i32 %50, %46
  %52 = trunc i32 %51 to i8
  store i8 %52, ptr %48, align 1, !tbaa !9
  %53 = load ptr, ptr %3, align 8, !tbaa !5
  %54 = getelementptr inbounds %struct.Drone, ptr %53, i32 0, i32 1
  %55 = getelementptr inbounds %struct.Position, ptr %54, i32 0, i32 0
  %56 = getelementptr inbounds i8, ptr %55, i64 1
  %57 = load i8, ptr %56, align 1, !tbaa !9
  %58 = zext i8 %57 to i32
  %59 = ashr i32 %58, 5
  %60 = and i32 %59, 7
  %61 = trunc i32 %60 to i8
  %62 = load ptr, ptr %4, align 8, !tbaa !5
  %63 = getelementptr inbounds i8, ptr %62, i64 2
  store i8 %61, ptr %63, align 1, !tbaa !9
  %64 = load ptr, ptr %3, align 8, !tbaa !5
  %65 = getelementptr inbounds %struct.Drone, ptr %64, i32 0, i32 1
  %66 = getelementptr inbounds %struct.Position, ptr %65, i32 0, i32 0
  %67 = getelementptr inbounds i8, ptr %66, i64 2
  %68 = load i8, ptr %67, align 2, !tbaa !9
  %69 = zext i8 %68 to i32
  %70 = shl i32 %69, 3
  %71 = and i32 %70, 248
  %72 = load ptr, ptr %4, align 8, !tbaa !5
  %73 = getelementptr inbounds i8, ptr %72, i64 2
  %74 = load i8, ptr %73, align 1, !tbaa !9
  %75 = zext i8 %74 to i32
  %76 = or i32 %75, %71
  %77 = trunc i32 %76 to i8
  store i8 %77, ptr %73, align 1, !tbaa !9
  %78 = load ptr, ptr %3, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.Drone, ptr %78, i32 0, i32 1
  %80 = getelementptr inbounds %struct.Position, ptr %79, i32 0, i32 0
  %81 = getelementptr inbounds i8, ptr %80, i64 2
  %82 = load i8, ptr %81, align 2, !tbaa !9
  %83 = zext i8 %82 to i32
  %84 = ashr i32 %83, 5
  %85 = and i32 %84, 7
  %86 = trunc i32 %85 to i8
  %87 = load ptr, ptr %4, align 8, !tbaa !5
  %88 = getelementptr inbounds i8, ptr %87, i64 3
  store i8 %86, ptr %88, align 1, !tbaa !9
  %89 = load ptr, ptr %3, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.Drone, ptr %89, i32 0, i32 1
  %91 = getelementptr inbounds %struct.Position, ptr %90, i32 0, i32 0
  %92 = getelementptr inbounds i8, ptr %91, i64 3
  %93 = load i8, ptr %92, align 1, !tbaa !9
  %94 = zext i8 %93 to i32
  %95 = shl i32 %94, 3
  %96 = and i32 %95, 248
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 3
  %99 = load i8, ptr %98, align 1, !tbaa !9
  %100 = zext i8 %99 to i32
  %101 = or i32 %100, %96
  %102 = trunc i32 %101 to i8
  store i8 %102, ptr %98, align 1, !tbaa !9
  %103 = load ptr, ptr %3, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.Drone, ptr %103, i32 0, i32 1
  %105 = getelementptr inbounds %struct.Position, ptr %104, i32 0, i32 0
  %106 = getelementptr inbounds i8, ptr %105, i64 3
  %107 = load i8, ptr %106, align 1, !tbaa !9
  %108 = zext i8 %107 to i32
  %109 = ashr i32 %108, 5
  %110 = and i32 %109, 7
  %111 = trunc i32 %110 to i8
  %112 = load ptr, ptr %4, align 8, !tbaa !5
  %113 = getelementptr inbounds i8, ptr %112, i64 4
  store i8 %111, ptr %113, align 1, !tbaa !9
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.Drone, ptr %114, i32 0, i32 1
  %116 = getelementptr inbounds %struct.Position, ptr %115, i32 0, i32 1
  %117 = getelementptr inbounds i8, ptr %116, i64 0
  %118 = load i8, ptr %117, align 4, !tbaa !9
  %119 = zext i8 %118 to i32
  %120 = shl i32 %119, 3
  %121 = and i32 %120, 248
  %122 = load ptr, ptr %4, align 8, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %122, i64 4
  %124 = load i8, ptr %123, align 1, !tbaa !9
  %125 = zext i8 %124 to i32
  %126 = or i32 %125, %121
  %127 = trunc i32 %126 to i8
  store i8 %127, ptr %123, align 1, !tbaa !9
  %128 = load ptr, ptr %3, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.Drone, ptr %128, i32 0, i32 1
  %130 = getelementptr inbounds %struct.Position, ptr %129, i32 0, i32 1
  %131 = getelementptr inbounds i8, ptr %130, i64 0
  %132 = load i8, ptr %131, align 4, !tbaa !9
  %133 = zext i8 %132 to i32
  %134 = ashr i32 %133, 5
  %135 = and i32 %134, 7
  %136 = trunc i32 %135 to i8
  %137 = load ptr, ptr %4, align 8, !tbaa !5
  %138 = getelementptr inbounds i8, ptr %137, i64 5
  store i8 %136, ptr %138, align 1, !tbaa !9
  %139 = load ptr, ptr %3, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.Drone, ptr %139, i32 0, i32 1
  %141 = getelementptr inbounds %struct.Position, ptr %140, i32 0, i32 1
  %142 = getelementptr inbounds i8, ptr %141, i64 1
  %143 = load i8, ptr %142, align 1, !tbaa !9
  %144 = zext i8 %143 to i32
  %145 = shl i32 %144, 3
  %146 = and i32 %145, 248
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = getelementptr inbounds i8, ptr %147, i64 5
  %149 = load i8, ptr %148, align 1, !tbaa !9
  %150 = zext i8 %149 to i32
  %151 = or i32 %150, %146
  %152 = trunc i32 %151 to i8
  store i8 %152, ptr %148, align 1, !tbaa !9
  %153 = load ptr, ptr %3, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.Drone, ptr %153, i32 0, i32 1
  %155 = getelementptr inbounds %struct.Position, ptr %154, i32 0, i32 1
  %156 = getelementptr inbounds i8, ptr %155, i64 1
  %157 = load i8, ptr %156, align 1, !tbaa !9
  %158 = zext i8 %157 to i32
  %159 = ashr i32 %158, 5
  %160 = and i32 %159, 7
  %161 = trunc i32 %160 to i8
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i64 6
  store i8 %161, ptr %163, align 1, !tbaa !9
  %164 = load ptr, ptr %3, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.Drone, ptr %164, i32 0, i32 1
  %166 = getelementptr inbounds %struct.Position, ptr %165, i32 0, i32 1
  %167 = getelementptr inbounds i8, ptr %166, i64 2
  %168 = load i8, ptr %167, align 2, !tbaa !9
  %169 = zext i8 %168 to i32
  %170 = shl i32 %169, 3
  %171 = and i32 %170, 248
  %172 = load ptr, ptr %4, align 8, !tbaa !5
  %173 = getelementptr inbounds i8, ptr %172, i64 6
  %174 = load i8, ptr %173, align 1, !tbaa !9
  %175 = zext i8 %174 to i32
  %176 = or i32 %175, %171
  %177 = trunc i32 %176 to i8
  store i8 %177, ptr %173, align 1, !tbaa !9
  %178 = load ptr, ptr %3, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.Drone, ptr %178, i32 0, i32 1
  %180 = getelementptr inbounds %struct.Position, ptr %179, i32 0, i32 1
  %181 = getelementptr inbounds i8, ptr %180, i64 2
  %182 = load i8, ptr %181, align 2, !tbaa !9
  %183 = zext i8 %182 to i32
  %184 = ashr i32 %183, 5
  %185 = and i32 %184, 7
  %186 = trunc i32 %185 to i8
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  %188 = getelementptr inbounds i8, ptr %187, i64 7
  store i8 %186, ptr %188, align 1, !tbaa !9
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.Drone, ptr %189, i32 0, i32 1
  %191 = getelementptr inbounds %struct.Position, ptr %190, i32 0, i32 1
  %192 = getelementptr inbounds i8, ptr %191, i64 3
  %193 = load i8, ptr %192, align 1, !tbaa !9
  %194 = zext i8 %193 to i32
  %195 = shl i32 %194, 3
  %196 = and i32 %195, 248
  %197 = load ptr, ptr %4, align 8, !tbaa !5
  %198 = getelementptr inbounds i8, ptr %197, i64 7
  %199 = load i8, ptr %198, align 1, !tbaa !9
  %200 = zext i8 %199 to i32
  %201 = or i32 %200, %196
  %202 = trunc i32 %201 to i8
  store i8 %202, ptr %198, align 1, !tbaa !9
  %203 = load ptr, ptr %3, align 8, !tbaa !5
  %204 = getelementptr inbounds %struct.Drone, ptr %203, i32 0, i32 1
  %205 = getelementptr inbounds %struct.Position, ptr %204, i32 0, i32 1
  %206 = getelementptr inbounds i8, ptr %205, i64 3
  %207 = load i8, ptr %206, align 1, !tbaa !9
  %208 = zext i8 %207 to i32
  %209 = ashr i32 %208, 5
  %210 = and i32 %209, 7
  %211 = trunc i32 %210 to i8
  %212 = load ptr, ptr %4, align 8, !tbaa !5
  %213 = getelementptr inbounds i8, ptr %212, i64 8
  store i8 %211, ptr %213, align 1, !tbaa !9
  %214 = load ptr, ptr %3, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.Drone, ptr %214, i32 0, i32 1
  %216 = getelementptr inbounds %struct.Position, ptr %215, i32 0, i32 2
  %217 = getelementptr inbounds i8, ptr %216, i64 0
  %218 = load i8, ptr %217, align 4, !tbaa !9
  %219 = zext i8 %218 to i32
  %220 = shl i32 %219, 3
  %221 = and i32 %220, 248
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds i8, ptr %222, i64 8
  %224 = load i8, ptr %223, align 1, !tbaa !9
  %225 = zext i8 %224 to i32
  %226 = or i32 %225, %221
  %227 = trunc i32 %226 to i8
  store i8 %227, ptr %223, align 1, !tbaa !9
  %228 = load ptr, ptr %3, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.Drone, ptr %228, i32 0, i32 1
  %230 = getelementptr inbounds %struct.Position, ptr %229, i32 0, i32 2
  %231 = getelementptr inbounds i8, ptr %230, i64 0
  %232 = load i8, ptr %231, align 4, !tbaa !9
  %233 = zext i8 %232 to i32
  %234 = ashr i32 %233, 5
  %235 = and i32 %234, 7
  %236 = trunc i32 %235 to i8
  %237 = load ptr, ptr %4, align 8, !tbaa !5
  %238 = getelementptr inbounds i8, ptr %237, i64 9
  store i8 %236, ptr %238, align 1, !tbaa !9
  %239 = load ptr, ptr %3, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.Drone, ptr %239, i32 0, i32 1
  %241 = getelementptr inbounds %struct.Position, ptr %240, i32 0, i32 2
  %242 = getelementptr inbounds i8, ptr %241, i64 1
  %243 = load i8, ptr %242, align 1, !tbaa !9
  %244 = zext i8 %243 to i32
  %245 = shl i32 %244, 3
  %246 = and i32 %245, 248
  %247 = load ptr, ptr %4, align 8, !tbaa !5
  %248 = getelementptr inbounds i8, ptr %247, i64 9
  %249 = load i8, ptr %248, align 1, !tbaa !9
  %250 = zext i8 %249 to i32
  %251 = or i32 %250, %246
  %252 = trunc i32 %251 to i8
  store i8 %252, ptr %248, align 1, !tbaa !9
  %253 = load ptr, ptr %3, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.Drone, ptr %253, i32 0, i32 1
  %255 = getelementptr inbounds %struct.Position, ptr %254, i32 0, i32 2
  %256 = getelementptr inbounds i8, ptr %255, i64 1
  %257 = load i8, ptr %256, align 1, !tbaa !9
  %258 = zext i8 %257 to i32
  %259 = ashr i32 %258, 5
  %260 = and i32 %259, 7
  %261 = trunc i32 %260 to i8
  %262 = load ptr, ptr %4, align 8, !tbaa !5
  %263 = getelementptr inbounds i8, ptr %262, i64 10
  store i8 %261, ptr %263, align 1, !tbaa !9
  %264 = load ptr, ptr %3, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.Drone, ptr %264, i32 0, i32 1
  %266 = getelementptr inbounds %struct.Position, ptr %265, i32 0, i32 2
  %267 = getelementptr inbounds i8, ptr %266, i64 2
  %268 = load i8, ptr %267, align 2, !tbaa !9
  %269 = zext i8 %268 to i32
  %270 = shl i32 %269, 3
  %271 = and i32 %270, 248
  %272 = load ptr, ptr %4, align 8, !tbaa !5
  %273 = getelementptr inbounds i8, ptr %272, i64 10
  %274 = load i8, ptr %273, align 1, !tbaa !9
  %275 = zext i8 %274 to i32
  %276 = or i32 %275, %271
  %277 = trunc i32 %276 to i8
  store i8 %277, ptr %273, align 1, !tbaa !9
  %278 = load ptr, ptr %3, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.Drone, ptr %278, i32 0, i32 1
  %280 = getelementptr inbounds %struct.Position, ptr %279, i32 0, i32 2
  %281 = getelementptr inbounds i8, ptr %280, i64 2
  %282 = load i8, ptr %281, align 2, !tbaa !9
  %283 = zext i8 %282 to i32
  %284 = ashr i32 %283, 5
  %285 = and i32 %284, 7
  %286 = trunc i32 %285 to i8
  %287 = load ptr, ptr %4, align 8, !tbaa !5
  %288 = getelementptr inbounds i8, ptr %287, i64 11
  store i8 %286, ptr %288, align 1, !tbaa !9
  %289 = load ptr, ptr %3, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.Drone, ptr %289, i32 0, i32 1
  %291 = getelementptr inbounds %struct.Position, ptr %290, i32 0, i32 2
  %292 = getelementptr inbounds i8, ptr %291, i64 3
  %293 = load i8, ptr %292, align 1, !tbaa !9
  %294 = zext i8 %293 to i32
  %295 = shl i32 %294, 3
  %296 = and i32 %295, 248
  %297 = load ptr, ptr %4, align 8, !tbaa !5
  %298 = getelementptr inbounds i8, ptr %297, i64 11
  %299 = load i8, ptr %298, align 1, !tbaa !9
  %300 = zext i8 %299 to i32
  %301 = or i32 %300, %296
  %302 = trunc i32 %301 to i8
  store i8 %302, ptr %298, align 1, !tbaa !9
  %303 = load ptr, ptr %3, align 8, !tbaa !5
  %304 = getelementptr inbounds %struct.Drone, ptr %303, i32 0, i32 1
  %305 = getelementptr inbounds %struct.Position, ptr %304, i32 0, i32 2
  %306 = getelementptr inbounds i8, ptr %305, i64 3
  %307 = load i8, ptr %306, align 1, !tbaa !9
  %308 = zext i8 %307 to i32
  %309 = ashr i32 %308, 5
  %310 = and i32 %309, 7
  %311 = trunc i32 %310 to i8
  %312 = load ptr, ptr %4, align 8, !tbaa !5
  %313 = getelementptr inbounds i8, ptr %312, i64 12
  store i8 %311, ptr %313, align 1, !tbaa !9
  %314 = load ptr, ptr %3, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.Drone, ptr %314, i32 0, i32 2
  %316 = getelementptr inbounds %struct.Flight, ptr %315, i32 0, i32 0
  %317 = getelementptr inbounds %struct.Pose, ptr %316, i32 0, i32 0
  %318 = getelementptr inbounds i8, ptr %317, i64 0
  %319 = load i8, ptr %318, align 4, !tbaa !9
  %320 = zext i8 %319 to i32
  %321 = shl i32 %320, 3
  %322 = and i32 %321, 248
  %323 = load ptr, ptr %4, align 8, !tbaa !5
  %324 = getelementptr inbounds i8, ptr %323, i64 12
  %325 = load i8, ptr %324, align 1, !tbaa !9
  %326 = zext i8 %325 to i32
  %327 = or i32 %326, %322
  %328 = trunc i32 %327 to i8
  store i8 %328, ptr %324, align 1, !tbaa !9
  %329 = load ptr, ptr %3, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.Drone, ptr %329, i32 0, i32 2
  %331 = getelementptr inbounds %struct.Flight, ptr %330, i32 0, i32 0
  %332 = getelementptr inbounds %struct.Pose, ptr %331, i32 0, i32 0
  %333 = getelementptr inbounds i8, ptr %332, i64 0
  %334 = load i8, ptr %333, align 4, !tbaa !9
  %335 = zext i8 %334 to i32
  %336 = ashr i32 %335, 5
  %337 = and i32 %336, 7
  %338 = trunc i32 %337 to i8
  %339 = load ptr, ptr %4, align 8, !tbaa !5
  %340 = getelementptr inbounds i8, ptr %339, i64 13
  store i8 %338, ptr %340, align 1, !tbaa !9
  %341 = load ptr, ptr %3, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.Drone, ptr %341, i32 0, i32 2
  %343 = getelementptr inbounds %struct.Flight, ptr %342, i32 0, i32 0
  %344 = getelementptr inbounds %struct.Pose, ptr %343, i32 0, i32 0
  %345 = getelementptr inbounds i8, ptr %344, i64 1
  %346 = load i8, ptr %345, align 1, !tbaa !9
  %347 = zext i8 %346 to i32
  %348 = shl i32 %347, 3
  %349 = and i32 %348, 248
  %350 = load ptr, ptr %4, align 8, !tbaa !5
  %351 = getelementptr inbounds i8, ptr %350, i64 13
  %352 = load i8, ptr %351, align 1, !tbaa !9
  %353 = zext i8 %352 to i32
  %354 = or i32 %353, %349
  %355 = trunc i32 %354 to i8
  store i8 %355, ptr %351, align 1, !tbaa !9
  %356 = load ptr, ptr %3, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.Drone, ptr %356, i32 0, i32 2
  %358 = getelementptr inbounds %struct.Flight, ptr %357, i32 0, i32 0
  %359 = getelementptr inbounds %struct.Pose, ptr %358, i32 0, i32 0
  %360 = getelementptr inbounds i8, ptr %359, i64 1
  %361 = load i8, ptr %360, align 1, !tbaa !9
  %362 = zext i8 %361 to i32
  %363 = ashr i32 %362, 5
  %364 = and i32 %363, 7
  %365 = trunc i32 %364 to i8
  %366 = load ptr, ptr %4, align 8, !tbaa !5
  %367 = getelementptr inbounds i8, ptr %366, i64 14
  store i8 %365, ptr %367, align 1, !tbaa !9
  %368 = load ptr, ptr %3, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.Drone, ptr %368, i32 0, i32 2
  %370 = getelementptr inbounds %struct.Flight, ptr %369, i32 0, i32 0
  %371 = getelementptr inbounds %struct.Pose, ptr %370, i32 0, i32 0
  %372 = getelementptr inbounds i8, ptr %371, i64 2
  %373 = load i8, ptr %372, align 2, !tbaa !9
  %374 = zext i8 %373 to i32
  %375 = shl i32 %374, 3
  %376 = and i32 %375, 248
  %377 = load ptr, ptr %4, align 8, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %377, i64 14
  %379 = load i8, ptr %378, align 1, !tbaa !9
  %380 = zext i8 %379 to i32
  %381 = or i32 %380, %376
  %382 = trunc i32 %381 to i8
  store i8 %382, ptr %378, align 1, !tbaa !9
  %383 = load ptr, ptr %3, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.Drone, ptr %383, i32 0, i32 2
  %385 = getelementptr inbounds %struct.Flight, ptr %384, i32 0, i32 0
  %386 = getelementptr inbounds %struct.Pose, ptr %385, i32 0, i32 0
  %387 = getelementptr inbounds i8, ptr %386, i64 2
  %388 = load i8, ptr %387, align 2, !tbaa !9
  %389 = zext i8 %388 to i32
  %390 = ashr i32 %389, 5
  %391 = and i32 %390, 7
  %392 = trunc i32 %391 to i8
  %393 = load ptr, ptr %4, align 8, !tbaa !5
  %394 = getelementptr inbounds i8, ptr %393, i64 15
  store i8 %392, ptr %394, align 1, !tbaa !9
  %395 = load ptr, ptr %3, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.Drone, ptr %395, i32 0, i32 2
  %397 = getelementptr inbounds %struct.Flight, ptr %396, i32 0, i32 0
  %398 = getelementptr inbounds %struct.Pose, ptr %397, i32 0, i32 0
  %399 = getelementptr inbounds i8, ptr %398, i64 3
  %400 = load i8, ptr %399, align 1, !tbaa !9
  %401 = zext i8 %400 to i32
  %402 = shl i32 %401, 3
  %403 = and i32 %402, 248
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = getelementptr inbounds i8, ptr %404, i64 15
  %406 = load i8, ptr %405, align 1, !tbaa !9
  %407 = zext i8 %406 to i32
  %408 = or i32 %407, %403
  %409 = trunc i32 %408 to i8
  store i8 %409, ptr %405, align 1, !tbaa !9
  %410 = load ptr, ptr %3, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.Drone, ptr %410, i32 0, i32 2
  %412 = getelementptr inbounds %struct.Flight, ptr %411, i32 0, i32 0
  %413 = getelementptr inbounds %struct.Pose, ptr %412, i32 0, i32 0
  %414 = getelementptr inbounds i8, ptr %413, i64 3
  %415 = load i8, ptr %414, align 1, !tbaa !9
  %416 = zext i8 %415 to i32
  %417 = ashr i32 %416, 5
  %418 = and i32 %417, 7
  %419 = trunc i32 %418 to i8
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = getelementptr inbounds i8, ptr %420, i64 16
  store i8 %419, ptr %421, align 1, !tbaa !9
  %422 = load ptr, ptr %3, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.Drone, ptr %422, i32 0, i32 2
  %424 = getelementptr inbounds %struct.Flight, ptr %423, i32 0, i32 0
  %425 = getelementptr inbounds %struct.Pose, ptr %424, i32 0, i32 1
  %426 = getelementptr inbounds i8, ptr %425, i64 0
  %427 = load i8, ptr %426, align 4, !tbaa !9
  %428 = zext i8 %427 to i32
  %429 = shl i32 %428, 3
  %430 = and i32 %429, 248
  %431 = load ptr, ptr %4, align 8, !tbaa !5
  %432 = getelementptr inbounds i8, ptr %431, i64 16
  %433 = load i8, ptr %432, align 1, !tbaa !9
  %434 = zext i8 %433 to i32
  %435 = or i32 %434, %430
  %436 = trunc i32 %435 to i8
  store i8 %436, ptr %432, align 1, !tbaa !9
  %437 = load ptr, ptr %3, align 8, !tbaa !5
  %438 = getelementptr inbounds %struct.Drone, ptr %437, i32 0, i32 2
  %439 = getelementptr inbounds %struct.Flight, ptr %438, i32 0, i32 0
  %440 = getelementptr inbounds %struct.Pose, ptr %439, i32 0, i32 1
  %441 = getelementptr inbounds i8, ptr %440, i64 0
  %442 = load i8, ptr %441, align 4, !tbaa !9
  %443 = zext i8 %442 to i32
  %444 = ashr i32 %443, 5
  %445 = and i32 %444, 7
  %446 = trunc i32 %445 to i8
  %447 = load ptr, ptr %4, align 8, !tbaa !5
  %448 = getelementptr inbounds i8, ptr %447, i64 17
  store i8 %446, ptr %448, align 1, !tbaa !9
  %449 = load ptr, ptr %3, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.Drone, ptr %449, i32 0, i32 2
  %451 = getelementptr inbounds %struct.Flight, ptr %450, i32 0, i32 0
  %452 = getelementptr inbounds %struct.Pose, ptr %451, i32 0, i32 1
  %453 = getelementptr inbounds i8, ptr %452, i64 1
  %454 = load i8, ptr %453, align 1, !tbaa !9
  %455 = zext i8 %454 to i32
  %456 = shl i32 %455, 3
  %457 = and i32 %456, 248
  %458 = load ptr, ptr %4, align 8, !tbaa !5
  %459 = getelementptr inbounds i8, ptr %458, i64 17
  %460 = load i8, ptr %459, align 1, !tbaa !9
  %461 = zext i8 %460 to i32
  %462 = or i32 %461, %457
  %463 = trunc i32 %462 to i8
  store i8 %463, ptr %459, align 1, !tbaa !9
  %464 = load ptr, ptr %3, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.Drone, ptr %464, i32 0, i32 2
  %466 = getelementptr inbounds %struct.Flight, ptr %465, i32 0, i32 0
  %467 = getelementptr inbounds %struct.Pose, ptr %466, i32 0, i32 1
  %468 = getelementptr inbounds i8, ptr %467, i64 1
  %469 = load i8, ptr %468, align 1, !tbaa !9
  %470 = zext i8 %469 to i32
  %471 = ashr i32 %470, 5
  %472 = and i32 %471, 7
  %473 = trunc i32 %472 to i8
  %474 = load ptr, ptr %4, align 8, !tbaa !5
  %475 = getelementptr inbounds i8, ptr %474, i64 18
  store i8 %473, ptr %475, align 1, !tbaa !9
  %476 = load ptr, ptr %3, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.Drone, ptr %476, i32 0, i32 2
  %478 = getelementptr inbounds %struct.Flight, ptr %477, i32 0, i32 0
  %479 = getelementptr inbounds %struct.Pose, ptr %478, i32 0, i32 1
  %480 = getelementptr inbounds i8, ptr %479, i64 2
  %481 = load i8, ptr %480, align 2, !tbaa !9
  %482 = zext i8 %481 to i32
  %483 = shl i32 %482, 3
  %484 = and i32 %483, 248
  %485 = load ptr, ptr %4, align 8, !tbaa !5
  %486 = getelementptr inbounds i8, ptr %485, i64 18
  %487 = load i8, ptr %486, align 1, !tbaa !9
  %488 = zext i8 %487 to i32
  %489 = or i32 %488, %484
  %490 = trunc i32 %489 to i8
  store i8 %490, ptr %486, align 1, !tbaa !9
  %491 = load ptr, ptr %3, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.Drone, ptr %491, i32 0, i32 2
  %493 = getelementptr inbounds %struct.Flight, ptr %492, i32 0, i32 0
  %494 = getelementptr inbounds %struct.Pose, ptr %493, i32 0, i32 1
  %495 = getelementptr inbounds i8, ptr %494, i64 2
  %496 = load i8, ptr %495, align 2, !tbaa !9
  %497 = zext i8 %496 to i32
  %498 = ashr i32 %497, 5
  %499 = and i32 %498, 7
  %500 = trunc i32 %499 to i8
  %501 = load ptr, ptr %4, align 8, !tbaa !5
  %502 = getelementptr inbounds i8, ptr %501, i64 19
  store i8 %500, ptr %502, align 1, !tbaa !9
  %503 = load ptr, ptr %3, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.Drone, ptr %503, i32 0, i32 2
  %505 = getelementptr inbounds %struct.Flight, ptr %504, i32 0, i32 0
  %506 = getelementptr inbounds %struct.Pose, ptr %505, i32 0, i32 1
  %507 = getelementptr inbounds i8, ptr %506, i64 3
  %508 = load i8, ptr %507, align 1, !tbaa !9
  %509 = zext i8 %508 to i32
  %510 = shl i32 %509, 3
  %511 = and i32 %510, 248
  %512 = load ptr, ptr %4, align 8, !tbaa !5
  %513 = getelementptr inbounds i8, ptr %512, i64 19
  %514 = load i8, ptr %513, align 1, !tbaa !9
  %515 = zext i8 %514 to i32
  %516 = or i32 %515, %511
  %517 = trunc i32 %516 to i8
  store i8 %517, ptr %513, align 1, !tbaa !9
  %518 = load ptr, ptr %3, align 8, !tbaa !5
  %519 = getelementptr inbounds %struct.Drone, ptr %518, i32 0, i32 2
  %520 = getelementptr inbounds %struct.Flight, ptr %519, i32 0, i32 0
  %521 = getelementptr inbounds %struct.Pose, ptr %520, i32 0, i32 1
  %522 = getelementptr inbounds i8, ptr %521, i64 3
  %523 = load i8, ptr %522, align 1, !tbaa !9
  %524 = zext i8 %523 to i32
  %525 = ashr i32 %524, 5
  %526 = and i32 %525, 7
  %527 = trunc i32 %526 to i8
  %528 = load ptr, ptr %4, align 8, !tbaa !5
  %529 = getelementptr inbounds i8, ptr %528, i64 20
  store i8 %527, ptr %529, align 1, !tbaa !9
  %530 = load ptr, ptr %3, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.Drone, ptr %530, i32 0, i32 2
  %532 = getelementptr inbounds %struct.Flight, ptr %531, i32 0, i32 0
  %533 = getelementptr inbounds %struct.Pose, ptr %532, i32 0, i32 2
  %534 = getelementptr inbounds i8, ptr %533, i64 0
  %535 = load i8, ptr %534, align 4, !tbaa !9
  %536 = zext i8 %535 to i32
  %537 = shl i32 %536, 3
  %538 = and i32 %537, 248
  %539 = load ptr, ptr %4, align 8, !tbaa !5
  %540 = getelementptr inbounds i8, ptr %539, i64 20
  %541 = load i8, ptr %540, align 1, !tbaa !9
  %542 = zext i8 %541 to i32
  %543 = or i32 %542, %538
  %544 = trunc i32 %543 to i8
  store i8 %544, ptr %540, align 1, !tbaa !9
  %545 = load ptr, ptr %3, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.Drone, ptr %545, i32 0, i32 2
  %547 = getelementptr inbounds %struct.Flight, ptr %546, i32 0, i32 0
  %548 = getelementptr inbounds %struct.Pose, ptr %547, i32 0, i32 2
  %549 = getelementptr inbounds i8, ptr %548, i64 0
  %550 = load i8, ptr %549, align 4, !tbaa !9
  %551 = zext i8 %550 to i32
  %552 = ashr i32 %551, 5
  %553 = and i32 %552, 7
  %554 = trunc i32 %553 to i8
  %555 = load ptr, ptr %4, align 8, !tbaa !5
  %556 = getelementptr inbounds i8, ptr %555, i64 21
  store i8 %554, ptr %556, align 1, !tbaa !9
  %557 = load ptr, ptr %3, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.Drone, ptr %557, i32 0, i32 2
  %559 = getelementptr inbounds %struct.Flight, ptr %558, i32 0, i32 0
  %560 = getelementptr inbounds %struct.Pose, ptr %559, i32 0, i32 2
  %561 = getelementptr inbounds i8, ptr %560, i64 1
  %562 = load i8, ptr %561, align 1, !tbaa !9
  %563 = zext i8 %562 to i32
  %564 = shl i32 %563, 3
  %565 = and i32 %564, 248
  %566 = load ptr, ptr %4, align 8, !tbaa !5
  %567 = getelementptr inbounds i8, ptr %566, i64 21
  %568 = load i8, ptr %567, align 1, !tbaa !9
  %569 = zext i8 %568 to i32
  %570 = or i32 %569, %565
  %571 = trunc i32 %570 to i8
  store i8 %571, ptr %567, align 1, !tbaa !9
  %572 = load ptr, ptr %3, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.Drone, ptr %572, i32 0, i32 2
  %574 = getelementptr inbounds %struct.Flight, ptr %573, i32 0, i32 0
  %575 = getelementptr inbounds %struct.Pose, ptr %574, i32 0, i32 2
  %576 = getelementptr inbounds i8, ptr %575, i64 1
  %577 = load i8, ptr %576, align 1, !tbaa !9
  %578 = zext i8 %577 to i32
  %579 = ashr i32 %578, 5
  %580 = and i32 %579, 7
  %581 = trunc i32 %580 to i8
  %582 = load ptr, ptr %4, align 8, !tbaa !5
  %583 = getelementptr inbounds i8, ptr %582, i64 22
  store i8 %581, ptr %583, align 1, !tbaa !9
  %584 = load ptr, ptr %3, align 8, !tbaa !5
  %585 = getelementptr inbounds %struct.Drone, ptr %584, i32 0, i32 2
  %586 = getelementptr inbounds %struct.Flight, ptr %585, i32 0, i32 0
  %587 = getelementptr inbounds %struct.Pose, ptr %586, i32 0, i32 2
  %588 = getelementptr inbounds i8, ptr %587, i64 2
  %589 = load i8, ptr %588, align 2, !tbaa !9
  %590 = zext i8 %589 to i32
  %591 = shl i32 %590, 3
  %592 = and i32 %591, 248
  %593 = load ptr, ptr %4, align 8, !tbaa !5
  %594 = getelementptr inbounds i8, ptr %593, i64 22
  %595 = load i8, ptr %594, align 1, !tbaa !9
  %596 = zext i8 %595 to i32
  %597 = or i32 %596, %592
  %598 = trunc i32 %597 to i8
  store i8 %598, ptr %594, align 1, !tbaa !9
  %599 = load ptr, ptr %3, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.Drone, ptr %599, i32 0, i32 2
  %601 = getelementptr inbounds %struct.Flight, ptr %600, i32 0, i32 0
  %602 = getelementptr inbounds %struct.Pose, ptr %601, i32 0, i32 2
  %603 = getelementptr inbounds i8, ptr %602, i64 2
  %604 = load i8, ptr %603, align 2, !tbaa !9
  %605 = zext i8 %604 to i32
  %606 = ashr i32 %605, 5
  %607 = and i32 %606, 7
  %608 = trunc i32 %607 to i8
  %609 = load ptr, ptr %4, align 8, !tbaa !5
  %610 = getelementptr inbounds i8, ptr %609, i64 23
  store i8 %608, ptr %610, align 1, !tbaa !9
  %611 = load ptr, ptr %3, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.Drone, ptr %611, i32 0, i32 2
  %613 = getelementptr inbounds %struct.Flight, ptr %612, i32 0, i32 0
  %614 = getelementptr inbounds %struct.Pose, ptr %613, i32 0, i32 2
  %615 = getelementptr inbounds i8, ptr %614, i64 3
  %616 = load i8, ptr %615, align 1, !tbaa !9
  %617 = zext i8 %616 to i32
  %618 = shl i32 %617, 3
  %619 = and i32 %618, 248
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds i8, ptr %620, i64 23
  %622 = load i8, ptr %621, align 1, !tbaa !9
  %623 = zext i8 %622 to i32
  %624 = or i32 %623, %619
  %625 = trunc i32 %624 to i8
  store i8 %625, ptr %621, align 1, !tbaa !9
  %626 = load ptr, ptr %3, align 8, !tbaa !5
  %627 = getelementptr inbounds %struct.Drone, ptr %626, i32 0, i32 2
  %628 = getelementptr inbounds %struct.Flight, ptr %627, i32 0, i32 0
  %629 = getelementptr inbounds %struct.Pose, ptr %628, i32 0, i32 2
  %630 = getelementptr inbounds i8, ptr %629, i64 3
  %631 = load i8, ptr %630, align 1, !tbaa !9
  %632 = zext i8 %631 to i32
  %633 = ashr i32 %632, 5
  %634 = and i32 %633, 7
  %635 = trunc i32 %634 to i8
  %636 = load ptr, ptr %4, align 8, !tbaa !5
  %637 = getelementptr inbounds i8, ptr %636, i64 24
  store i8 %635, ptr %637, align 1, !tbaa !9
  %638 = load ptr, ptr %3, align 8, !tbaa !5
  %639 = getelementptr inbounds %struct.Drone, ptr %638, i32 0, i32 2
  %640 = getelementptr inbounds %struct.Flight, ptr %639, i32 0, i32 1
  %641 = getelementptr inbounds [3 x i32], ptr %640, i64 0, i64 0
  %642 = getelementptr inbounds i8, ptr %641, i64 0
  %643 = load i8, ptr %642, align 4, !tbaa !9
  %644 = zext i8 %643 to i32
  %645 = shl i32 %644, 3
  %646 = and i32 %645, 248
  %647 = load ptr, ptr %4, align 8, !tbaa !5
  %648 = getelementptr inbounds i8, ptr %647, i64 24
  %649 = load i8, ptr %648, align 1, !tbaa !9
  %650 = zext i8 %649 to i32
  %651 = or i32 %650, %646
  %652 = trunc i32 %651 to i8
  store i8 %652, ptr %648, align 1, !tbaa !9
  %653 = load ptr, ptr %3, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.Drone, ptr %653, i32 0, i32 2
  %655 = getelementptr inbounds %struct.Flight, ptr %654, i32 0, i32 1
  %656 = getelementptr inbounds [3 x i32], ptr %655, i64 0, i64 0
  %657 = getelementptr inbounds i8, ptr %656, i64 0
  %658 = load i8, ptr %657, align 4, !tbaa !9
  %659 = zext i8 %658 to i32
  %660 = ashr i32 %659, 5
  %661 = and i32 %660, 7
  %662 = trunc i32 %661 to i8
  %663 = load ptr, ptr %4, align 8, !tbaa !5
  %664 = getelementptr inbounds i8, ptr %663, i64 25
  store i8 %662, ptr %664, align 1, !tbaa !9
  %665 = load ptr, ptr %3, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.Drone, ptr %665, i32 0, i32 2
  %667 = getelementptr inbounds %struct.Flight, ptr %666, i32 0, i32 1
  %668 = getelementptr inbounds [3 x i32], ptr %667, i64 0, i64 0
  %669 = getelementptr inbounds i8, ptr %668, i64 1
  %670 = load i8, ptr %669, align 1, !tbaa !9
  %671 = zext i8 %670 to i32
  %672 = shl i32 %671, 3
  %673 = and i32 %672, 248
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  %675 = getelementptr inbounds i8, ptr %674, i64 25
  %676 = load i8, ptr %675, align 1, !tbaa !9
  %677 = zext i8 %676 to i32
  %678 = or i32 %677, %673
  %679 = trunc i32 %678 to i8
  store i8 %679, ptr %675, align 1, !tbaa !9
  %680 = load ptr, ptr %3, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.Drone, ptr %680, i32 0, i32 2
  %682 = getelementptr inbounds %struct.Flight, ptr %681, i32 0, i32 1
  %683 = getelementptr inbounds [3 x i32], ptr %682, i64 0, i64 0
  %684 = getelementptr inbounds i8, ptr %683, i64 1
  %685 = load i8, ptr %684, align 1, !tbaa !9
  %686 = zext i8 %685 to i32
  %687 = ashr i32 %686, 5
  %688 = and i32 %687, 7
  %689 = trunc i32 %688 to i8
  %690 = load ptr, ptr %4, align 8, !tbaa !5
  %691 = getelementptr inbounds i8, ptr %690, i64 26
  store i8 %689, ptr %691, align 1, !tbaa !9
  %692 = load ptr, ptr %3, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.Drone, ptr %692, i32 0, i32 2
  %694 = getelementptr inbounds %struct.Flight, ptr %693, i32 0, i32 1
  %695 = getelementptr inbounds [3 x i32], ptr %694, i64 0, i64 0
  %696 = getelementptr inbounds i8, ptr %695, i64 2
  %697 = load i8, ptr %696, align 2, !tbaa !9
  %698 = zext i8 %697 to i32
  %699 = shl i32 %698, 3
  %700 = and i32 %699, 248
  %701 = load ptr, ptr %4, align 8, !tbaa !5
  %702 = getelementptr inbounds i8, ptr %701, i64 26
  %703 = load i8, ptr %702, align 1, !tbaa !9
  %704 = zext i8 %703 to i32
  %705 = or i32 %704, %700
  %706 = trunc i32 %705 to i8
  store i8 %706, ptr %702, align 1, !tbaa !9
  %707 = load ptr, ptr %3, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.Drone, ptr %707, i32 0, i32 2
  %709 = getelementptr inbounds %struct.Flight, ptr %708, i32 0, i32 1
  %710 = getelementptr inbounds [3 x i32], ptr %709, i64 0, i64 0
  %711 = getelementptr inbounds i8, ptr %710, i64 2
  %712 = load i8, ptr %711, align 2, !tbaa !9
  %713 = zext i8 %712 to i32
  %714 = ashr i32 %713, 5
  %715 = and i32 %714, 7
  %716 = trunc i32 %715 to i8
  %717 = load ptr, ptr %4, align 8, !tbaa !5
  %718 = getelementptr inbounds i8, ptr %717, i64 27
  store i8 %716, ptr %718, align 1, !tbaa !9
  %719 = load ptr, ptr %3, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.Drone, ptr %719, i32 0, i32 2
  %721 = getelementptr inbounds %struct.Flight, ptr %720, i32 0, i32 1
  %722 = getelementptr inbounds [3 x i32], ptr %721, i64 0, i64 0
  %723 = getelementptr inbounds i8, ptr %722, i64 3
  %724 = load i8, ptr %723, align 1, !tbaa !9
  %725 = zext i8 %724 to i32
  %726 = shl i32 %725, 3
  %727 = and i32 %726, 248
  %728 = load ptr, ptr %4, align 8, !tbaa !5
  %729 = getelementptr inbounds i8, ptr %728, i64 27
  %730 = load i8, ptr %729, align 1, !tbaa !9
  %731 = zext i8 %730 to i32
  %732 = or i32 %731, %727
  %733 = trunc i32 %732 to i8
  store i8 %733, ptr %729, align 1, !tbaa !9
  %734 = load ptr, ptr %3, align 8, !tbaa !5
  %735 = getelementptr inbounds %struct.Drone, ptr %734, i32 0, i32 2
  %736 = getelementptr inbounds %struct.Flight, ptr %735, i32 0, i32 1
  %737 = getelementptr inbounds [3 x i32], ptr %736, i64 0, i64 0
  %738 = getelementptr inbounds i8, ptr %737, i64 3
  %739 = load i8, ptr %738, align 1, !tbaa !9
  %740 = zext i8 %739 to i32
  %741 = ashr i32 %740, 5
  %742 = and i32 %741, 7
  %743 = trunc i32 %742 to i8
  %744 = load ptr, ptr %4, align 8, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %744, i64 28
  store i8 %743, ptr %745, align 1, !tbaa !9
  %746 = load ptr, ptr %3, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.Drone, ptr %746, i32 0, i32 2
  %748 = getelementptr inbounds %struct.Flight, ptr %747, i32 0, i32 1
  %749 = getelementptr inbounds [3 x i32], ptr %748, i64 0, i64 1
  %750 = getelementptr inbounds i8, ptr %749, i64 0
  %751 = load i8, ptr %750, align 4, !tbaa !9
  %752 = zext i8 %751 to i32
  %753 = shl i32 %752, 3
  %754 = and i32 %753, 248
  %755 = load ptr, ptr %4, align 8, !tbaa !5
  %756 = getelementptr inbounds i8, ptr %755, i64 28
  %757 = load i8, ptr %756, align 1, !tbaa !9
  %758 = zext i8 %757 to i32
  %759 = or i32 %758, %754
  %760 = trunc i32 %759 to i8
  store i8 %760, ptr %756, align 1, !tbaa !9
  %761 = load ptr, ptr %3, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.Drone, ptr %761, i32 0, i32 2
  %763 = getelementptr inbounds %struct.Flight, ptr %762, i32 0, i32 1
  %764 = getelementptr inbounds [3 x i32], ptr %763, i64 0, i64 1
  %765 = getelementptr inbounds i8, ptr %764, i64 0
  %766 = load i8, ptr %765, align 4, !tbaa !9
  %767 = zext i8 %766 to i32
  %768 = ashr i32 %767, 5
  %769 = and i32 %768, 7
  %770 = trunc i32 %769 to i8
  %771 = load ptr, ptr %4, align 8, !tbaa !5
  %772 = getelementptr inbounds i8, ptr %771, i64 29
  store i8 %770, ptr %772, align 1, !tbaa !9
  %773 = load ptr, ptr %3, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.Drone, ptr %773, i32 0, i32 2
  %775 = getelementptr inbounds %struct.Flight, ptr %774, i32 0, i32 1
  %776 = getelementptr inbounds [3 x i32], ptr %775, i64 0, i64 1
  %777 = getelementptr inbounds i8, ptr %776, i64 1
  %778 = load i8, ptr %777, align 1, !tbaa !9
  %779 = zext i8 %778 to i32
  %780 = shl i32 %779, 3
  %781 = and i32 %780, 248
  %782 = load ptr, ptr %4, align 8, !tbaa !5
  %783 = getelementptr inbounds i8, ptr %782, i64 29
  %784 = load i8, ptr %783, align 1, !tbaa !9
  %785 = zext i8 %784 to i32
  %786 = or i32 %785, %781
  %787 = trunc i32 %786 to i8
  store i8 %787, ptr %783, align 1, !tbaa !9
  %788 = load ptr, ptr %3, align 8, !tbaa !5
  %789 = getelementptr inbounds %struct.Drone, ptr %788, i32 0, i32 2
  %790 = getelementptr inbounds %struct.Flight, ptr %789, i32 0, i32 1
  %791 = getelementptr inbounds [3 x i32], ptr %790, i64 0, i64 1
  %792 = getelementptr inbounds i8, ptr %791, i64 1
  %793 = load i8, ptr %792, align 1, !tbaa !9
  %794 = zext i8 %793 to i32
  %795 = ashr i32 %794, 5
  %796 = and i32 %795, 7
  %797 = trunc i32 %796 to i8
  %798 = load ptr, ptr %4, align 8, !tbaa !5
  %799 = getelementptr inbounds i8, ptr %798, i64 30
  store i8 %797, ptr %799, align 1, !tbaa !9
  %800 = load ptr, ptr %3, align 8, !tbaa !5
  %801 = getelementptr inbounds %struct.Drone, ptr %800, i32 0, i32 2
  %802 = getelementptr inbounds %struct.Flight, ptr %801, i32 0, i32 1
  %803 = getelementptr inbounds [3 x i32], ptr %802, i64 0, i64 1
  %804 = getelementptr inbounds i8, ptr %803, i64 2
  %805 = load i8, ptr %804, align 2, !tbaa !9
  %806 = zext i8 %805 to i32
  %807 = shl i32 %806, 3
  %808 = and i32 %807, 248
  %809 = load ptr, ptr %4, align 8, !tbaa !5
  %810 = getelementptr inbounds i8, ptr %809, i64 30
  %811 = load i8, ptr %810, align 1, !tbaa !9
  %812 = zext i8 %811 to i32
  %813 = or i32 %812, %808
  %814 = trunc i32 %813 to i8
  store i8 %814, ptr %810, align 1, !tbaa !9
  %815 = load ptr, ptr %3, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.Drone, ptr %815, i32 0, i32 2
  %817 = getelementptr inbounds %struct.Flight, ptr %816, i32 0, i32 1
  %818 = getelementptr inbounds [3 x i32], ptr %817, i64 0, i64 1
  %819 = getelementptr inbounds i8, ptr %818, i64 2
  %820 = load i8, ptr %819, align 2, !tbaa !9
  %821 = zext i8 %820 to i32
  %822 = ashr i32 %821, 5
  %823 = and i32 %822, 7
  %824 = trunc i32 %823 to i8
  %825 = load ptr, ptr %4, align 8, !tbaa !5
  %826 = getelementptr inbounds i8, ptr %825, i64 31
  store i8 %824, ptr %826, align 1, !tbaa !9
  %827 = load ptr, ptr %3, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.Drone, ptr %827, i32 0, i32 2
  %829 = getelementptr inbounds %struct.Flight, ptr %828, i32 0, i32 1
  %830 = getelementptr inbounds [3 x i32], ptr %829, i64 0, i64 1
  %831 = getelementptr inbounds i8, ptr %830, i64 3
  %832 = load i8, ptr %831, align 1, !tbaa !9
  %833 = zext i8 %832 to i32
  %834 = shl i32 %833, 3
  %835 = and i32 %834, 248
  %836 = load ptr, ptr %4, align 8, !tbaa !5
  %837 = getelementptr inbounds i8, ptr %836, i64 31
  %838 = load i8, ptr %837, align 1, !tbaa !9
  %839 = zext i8 %838 to i32
  %840 = or i32 %839, %835
  %841 = trunc i32 %840 to i8
  store i8 %841, ptr %837, align 1, !tbaa !9
  %842 = load ptr, ptr %3, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.Drone, ptr %842, i32 0, i32 2
  %844 = getelementptr inbounds %struct.Flight, ptr %843, i32 0, i32 1
  %845 = getelementptr inbounds [3 x i32], ptr %844, i64 0, i64 1
  %846 = getelementptr inbounds i8, ptr %845, i64 3
  %847 = load i8, ptr %846, align 1, !tbaa !9
  %848 = zext i8 %847 to i32
  %849 = ashr i32 %848, 5
  %850 = and i32 %849, 7
  %851 = trunc i32 %850 to i8
  %852 = load ptr, ptr %4, align 8, !tbaa !5
  %853 = getelementptr inbounds i8, ptr %852, i64 32
  store i8 %851, ptr %853, align 1, !tbaa !9
  %854 = load ptr, ptr %3, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.Drone, ptr %854, i32 0, i32 2
  %856 = getelementptr inbounds %struct.Flight, ptr %855, i32 0, i32 1
  %857 = getelementptr inbounds [3 x i32], ptr %856, i64 0, i64 2
  %858 = getelementptr inbounds i8, ptr %857, i64 0
  %859 = load i8, ptr %858, align 4, !tbaa !9
  %860 = zext i8 %859 to i32
  %861 = shl i32 %860, 3
  %862 = and i32 %861, 248
  %863 = load ptr, ptr %4, align 8, !tbaa !5
  %864 = getelementptr inbounds i8, ptr %863, i64 32
  %865 = load i8, ptr %864, align 1, !tbaa !9
  %866 = zext i8 %865 to i32
  %867 = or i32 %866, %862
  %868 = trunc i32 %867 to i8
  store i8 %868, ptr %864, align 1, !tbaa !9
  %869 = load ptr, ptr %3, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.Drone, ptr %869, i32 0, i32 2
  %871 = getelementptr inbounds %struct.Flight, ptr %870, i32 0, i32 1
  %872 = getelementptr inbounds [3 x i32], ptr %871, i64 0, i64 2
  %873 = getelementptr inbounds i8, ptr %872, i64 0
  %874 = load i8, ptr %873, align 4, !tbaa !9
  %875 = zext i8 %874 to i32
  %876 = ashr i32 %875, 5
  %877 = and i32 %876, 7
  %878 = trunc i32 %877 to i8
  %879 = load ptr, ptr %4, align 8, !tbaa !5
  %880 = getelementptr inbounds i8, ptr %879, i64 33
  store i8 %878, ptr %880, align 1, !tbaa !9
  %881 = load ptr, ptr %3, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.Drone, ptr %881, i32 0, i32 2
  %883 = getelementptr inbounds %struct.Flight, ptr %882, i32 0, i32 1
  %884 = getelementptr inbounds [3 x i32], ptr %883, i64 0, i64 2
  %885 = getelementptr inbounds i8, ptr %884, i64 1
  %886 = load i8, ptr %885, align 1, !tbaa !9
  %887 = zext i8 %886 to i32
  %888 = shl i32 %887, 3
  %889 = and i32 %888, 248
  %890 = load ptr, ptr %4, align 8, !tbaa !5
  %891 = getelementptr inbounds i8, ptr %890, i64 33
  %892 = load i8, ptr %891, align 1, !tbaa !9
  %893 = zext i8 %892 to i32
  %894 = or i32 %893, %889
  %895 = trunc i32 %894 to i8
  store i8 %895, ptr %891, align 1, !tbaa !9
  %896 = load ptr, ptr %3, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.Drone, ptr %896, i32 0, i32 2
  %898 = getelementptr inbounds %struct.Flight, ptr %897, i32 0, i32 1
  %899 = getelementptr inbounds [3 x i32], ptr %898, i64 0, i64 2
  %900 = getelementptr inbounds i8, ptr %899, i64 1
  %901 = load i8, ptr %900, align 1, !tbaa !9
  %902 = zext i8 %901 to i32
  %903 = ashr i32 %902, 5
  %904 = and i32 %903, 7
  %905 = trunc i32 %904 to i8
  %906 = load ptr, ptr %4, align 8, !tbaa !5
  %907 = getelementptr inbounds i8, ptr %906, i64 34
  store i8 %905, ptr %907, align 1, !tbaa !9
  %908 = load ptr, ptr %3, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.Drone, ptr %908, i32 0, i32 2
  %910 = getelementptr inbounds %struct.Flight, ptr %909, i32 0, i32 1
  %911 = getelementptr inbounds [3 x i32], ptr %910, i64 0, i64 2
  %912 = getelementptr inbounds i8, ptr %911, i64 2
  %913 = load i8, ptr %912, align 2, !tbaa !9
  %914 = zext i8 %913 to i32
  %915 = shl i32 %914, 3
  %916 = and i32 %915, 248
  %917 = load ptr, ptr %4, align 8, !tbaa !5
  %918 = getelementptr inbounds i8, ptr %917, i64 34
  %919 = load i8, ptr %918, align 1, !tbaa !9
  %920 = zext i8 %919 to i32
  %921 = or i32 %920, %916
  %922 = trunc i32 %921 to i8
  store i8 %922, ptr %918, align 1, !tbaa !9
  %923 = load ptr, ptr %3, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.Drone, ptr %923, i32 0, i32 2
  %925 = getelementptr inbounds %struct.Flight, ptr %924, i32 0, i32 1
  %926 = getelementptr inbounds [3 x i32], ptr %925, i64 0, i64 2
  %927 = getelementptr inbounds i8, ptr %926, i64 2
  %928 = load i8, ptr %927, align 2, !tbaa !9
  %929 = zext i8 %928 to i32
  %930 = ashr i32 %929, 5
  %931 = and i32 %930, 7
  %932 = trunc i32 %931 to i8
  %933 = load ptr, ptr %4, align 8, !tbaa !5
  %934 = getelementptr inbounds i8, ptr %933, i64 35
  store i8 %932, ptr %934, align 1, !tbaa !9
  %935 = load ptr, ptr %3, align 8, !tbaa !5
  %936 = getelementptr inbounds %struct.Drone, ptr %935, i32 0, i32 2
  %937 = getelementptr inbounds %struct.Flight, ptr %936, i32 0, i32 1
  %938 = getelementptr inbounds [3 x i32], ptr %937, i64 0, i64 2
  %939 = getelementptr inbounds i8, ptr %938, i64 3
  %940 = load i8, ptr %939, align 1, !tbaa !9
  %941 = zext i8 %940 to i32
  %942 = shl i32 %941, 3
  %943 = and i32 %942, 248
  %944 = load ptr, ptr %4, align 8, !tbaa !5
  %945 = getelementptr inbounds i8, ptr %944, i64 35
  %946 = load i8, ptr %945, align 1, !tbaa !9
  %947 = zext i8 %946 to i32
  %948 = or i32 %947, %943
  %949 = trunc i32 %948 to i8
  store i8 %949, ptr %945, align 1, !tbaa !9
  %950 = load ptr, ptr %3, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.Drone, ptr %950, i32 0, i32 2
  %952 = getelementptr inbounds %struct.Flight, ptr %951, i32 0, i32 1
  %953 = getelementptr inbounds [3 x i32], ptr %952, i64 0, i64 2
  %954 = getelementptr inbounds i8, ptr %953, i64 3
  %955 = load i8, ptr %954, align 1, !tbaa !9
  %956 = zext i8 %955 to i32
  %957 = ashr i32 %956, 5
  %958 = and i32 %957, 7
  %959 = trunc i32 %958 to i8
  %960 = load ptr, ptr %4, align 8, !tbaa !5
  %961 = getelementptr inbounds i8, ptr %960, i64 36
  store i8 %959, ptr %961, align 1, !tbaa !9
  %962 = load ptr, ptr %3, align 8, !tbaa !5
  %963 = getelementptr inbounds %struct.Drone, ptr %962, i32 0, i32 2
  %964 = getelementptr inbounds %struct.Flight, ptr %963, i32 0, i32 2
  %965 = getelementptr inbounds [3 x i32], ptr %964, i64 0, i64 0
  %966 = getelementptr inbounds i8, ptr %965, i64 0
  %967 = load i8, ptr %966, align 4, !tbaa !9
  %968 = zext i8 %967 to i32
  %969 = shl i32 %968, 3
  %970 = and i32 %969, 248
  %971 = load ptr, ptr %4, align 8, !tbaa !5
  %972 = getelementptr inbounds i8, ptr %971, i64 36
  %973 = load i8, ptr %972, align 1, !tbaa !9
  %974 = zext i8 %973 to i32
  %975 = or i32 %974, %970
  %976 = trunc i32 %975 to i8
  store i8 %976, ptr %972, align 1, !tbaa !9
  %977 = load ptr, ptr %3, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.Drone, ptr %977, i32 0, i32 2
  %979 = getelementptr inbounds %struct.Flight, ptr %978, i32 0, i32 2
  %980 = getelementptr inbounds [3 x i32], ptr %979, i64 0, i64 0
  %981 = getelementptr inbounds i8, ptr %980, i64 0
  %982 = load i8, ptr %981, align 4, !tbaa !9
  %983 = zext i8 %982 to i32
  %984 = ashr i32 %983, 5
  %985 = and i32 %984, 7
  %986 = trunc i32 %985 to i8
  %987 = load ptr, ptr %4, align 8, !tbaa !5
  %988 = getelementptr inbounds i8, ptr %987, i64 37
  store i8 %986, ptr %988, align 1, !tbaa !9
  %989 = load ptr, ptr %3, align 8, !tbaa !5
  %990 = getelementptr inbounds %struct.Drone, ptr %989, i32 0, i32 2
  %991 = getelementptr inbounds %struct.Flight, ptr %990, i32 0, i32 2
  %992 = getelementptr inbounds [3 x i32], ptr %991, i64 0, i64 0
  %993 = getelementptr inbounds i8, ptr %992, i64 1
  %994 = load i8, ptr %993, align 1, !tbaa !9
  %995 = zext i8 %994 to i32
  %996 = shl i32 %995, 3
  %997 = and i32 %996, 248
  %998 = load ptr, ptr %4, align 8, !tbaa !5
  %999 = getelementptr inbounds i8, ptr %998, i64 37
  %1000 = load i8, ptr %999, align 1, !tbaa !9
  %1001 = zext i8 %1000 to i32
  %1002 = or i32 %1001, %997
  %1003 = trunc i32 %1002 to i8
  store i8 %1003, ptr %999, align 1, !tbaa !9
  %1004 = load ptr, ptr %3, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.Drone, ptr %1004, i32 0, i32 2
  %1006 = getelementptr inbounds %struct.Flight, ptr %1005, i32 0, i32 2
  %1007 = getelementptr inbounds [3 x i32], ptr %1006, i64 0, i64 0
  %1008 = getelementptr inbounds i8, ptr %1007, i64 1
  %1009 = load i8, ptr %1008, align 1, !tbaa !9
  %1010 = zext i8 %1009 to i32
  %1011 = ashr i32 %1010, 5
  %1012 = and i32 %1011, 7
  %1013 = trunc i32 %1012 to i8
  %1014 = load ptr, ptr %4, align 8, !tbaa !5
  %1015 = getelementptr inbounds i8, ptr %1014, i64 38
  store i8 %1013, ptr %1015, align 1, !tbaa !9
  %1016 = load ptr, ptr %3, align 8, !tbaa !5
  %1017 = getelementptr inbounds %struct.Drone, ptr %1016, i32 0, i32 2
  %1018 = getelementptr inbounds %struct.Flight, ptr %1017, i32 0, i32 2
  %1019 = getelementptr inbounds [3 x i32], ptr %1018, i64 0, i64 0
  %1020 = getelementptr inbounds i8, ptr %1019, i64 2
  %1021 = load i8, ptr %1020, align 2, !tbaa !9
  %1022 = zext i8 %1021 to i32
  %1023 = shl i32 %1022, 3
  %1024 = and i32 %1023, 248
  %1025 = load ptr, ptr %4, align 8, !tbaa !5
  %1026 = getelementptr inbounds i8, ptr %1025, i64 38
  %1027 = load i8, ptr %1026, align 1, !tbaa !9
  %1028 = zext i8 %1027 to i32
  %1029 = or i32 %1028, %1024
  %1030 = trunc i32 %1029 to i8
  store i8 %1030, ptr %1026, align 1, !tbaa !9
  %1031 = load ptr, ptr %3, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.Drone, ptr %1031, i32 0, i32 2
  %1033 = getelementptr inbounds %struct.Flight, ptr %1032, i32 0, i32 2
  %1034 = getelementptr inbounds [3 x i32], ptr %1033, i64 0, i64 0
  %1035 = getelementptr inbounds i8, ptr %1034, i64 2
  %1036 = load i8, ptr %1035, align 2, !tbaa !9
  %1037 = zext i8 %1036 to i32
  %1038 = ashr i32 %1037, 5
  %1039 = and i32 %1038, 7
  %1040 = trunc i32 %1039 to i8
  %1041 = load ptr, ptr %4, align 8, !tbaa !5
  %1042 = getelementptr inbounds i8, ptr %1041, i64 39
  store i8 %1040, ptr %1042, align 1, !tbaa !9
  %1043 = load ptr, ptr %3, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.Drone, ptr %1043, i32 0, i32 2
  %1045 = getelementptr inbounds %struct.Flight, ptr %1044, i32 0, i32 2
  %1046 = getelementptr inbounds [3 x i32], ptr %1045, i64 0, i64 0
  %1047 = getelementptr inbounds i8, ptr %1046, i64 3
  %1048 = load i8, ptr %1047, align 1, !tbaa !9
  %1049 = zext i8 %1048 to i32
  %1050 = shl i32 %1049, 3
  %1051 = and i32 %1050, 248
  %1052 = load ptr, ptr %4, align 8, !tbaa !5
  %1053 = getelementptr inbounds i8, ptr %1052, i64 39
  %1054 = load i8, ptr %1053, align 1, !tbaa !9
  %1055 = zext i8 %1054 to i32
  %1056 = or i32 %1055, %1051
  %1057 = trunc i32 %1056 to i8
  store i8 %1057, ptr %1053, align 1, !tbaa !9
  %1058 = load ptr, ptr %3, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.Drone, ptr %1058, i32 0, i32 2
  %1060 = getelementptr inbounds %struct.Flight, ptr %1059, i32 0, i32 2
  %1061 = getelementptr inbounds [3 x i32], ptr %1060, i64 0, i64 0
  %1062 = getelementptr inbounds i8, ptr %1061, i64 3
  %1063 = load i8, ptr %1062, align 1, !tbaa !9
  %1064 = zext i8 %1063 to i32
  %1065 = ashr i32 %1064, 5
  %1066 = and i32 %1065, 7
  %1067 = trunc i32 %1066 to i8
  %1068 = load ptr, ptr %4, align 8, !tbaa !5
  %1069 = getelementptr inbounds i8, ptr %1068, i64 40
  store i8 %1067, ptr %1069, align 1, !tbaa !9
  %1070 = load ptr, ptr %3, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.Drone, ptr %1070, i32 0, i32 2
  %1072 = getelementptr inbounds %struct.Flight, ptr %1071, i32 0, i32 2
  %1073 = getelementptr inbounds [3 x i32], ptr %1072, i64 0, i64 1
  %1074 = getelementptr inbounds i8, ptr %1073, i64 0
  %1075 = load i8, ptr %1074, align 4, !tbaa !9
  %1076 = zext i8 %1075 to i32
  %1077 = shl i32 %1076, 3
  %1078 = and i32 %1077, 248
  %1079 = load ptr, ptr %4, align 8, !tbaa !5
  %1080 = getelementptr inbounds i8, ptr %1079, i64 40
  %1081 = load i8, ptr %1080, align 1, !tbaa !9
  %1082 = zext i8 %1081 to i32
  %1083 = or i32 %1082, %1078
  %1084 = trunc i32 %1083 to i8
  store i8 %1084, ptr %1080, align 1, !tbaa !9
  %1085 = load ptr, ptr %3, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.Drone, ptr %1085, i32 0, i32 2
  %1087 = getelementptr inbounds %struct.Flight, ptr %1086, i32 0, i32 2
  %1088 = getelementptr inbounds [3 x i32], ptr %1087, i64 0, i64 1
  %1089 = getelementptr inbounds i8, ptr %1088, i64 0
  %1090 = load i8, ptr %1089, align 4, !tbaa !9
  %1091 = zext i8 %1090 to i32
  %1092 = ashr i32 %1091, 5
  %1093 = and i32 %1092, 7
  %1094 = trunc i32 %1093 to i8
  %1095 = load ptr, ptr %4, align 8, !tbaa !5
  %1096 = getelementptr inbounds i8, ptr %1095, i64 41
  store i8 %1094, ptr %1096, align 1, !tbaa !9
  %1097 = load ptr, ptr %3, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.Drone, ptr %1097, i32 0, i32 2
  %1099 = getelementptr inbounds %struct.Flight, ptr %1098, i32 0, i32 2
  %1100 = getelementptr inbounds [3 x i32], ptr %1099, i64 0, i64 1
  %1101 = getelementptr inbounds i8, ptr %1100, i64 1
  %1102 = load i8, ptr %1101, align 1, !tbaa !9
  %1103 = zext i8 %1102 to i32
  %1104 = shl i32 %1103, 3
  %1105 = and i32 %1104, 248
  %1106 = load ptr, ptr %4, align 8, !tbaa !5
  %1107 = getelementptr inbounds i8, ptr %1106, i64 41
  %1108 = load i8, ptr %1107, align 1, !tbaa !9
  %1109 = zext i8 %1108 to i32
  %1110 = or i32 %1109, %1105
  %1111 = trunc i32 %1110 to i8
  store i8 %1111, ptr %1107, align 1, !tbaa !9
  %1112 = load ptr, ptr %3, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.Drone, ptr %1112, i32 0, i32 2
  %1114 = getelementptr inbounds %struct.Flight, ptr %1113, i32 0, i32 2
  %1115 = getelementptr inbounds [3 x i32], ptr %1114, i64 0, i64 1
  %1116 = getelementptr inbounds i8, ptr %1115, i64 1
  %1117 = load i8, ptr %1116, align 1, !tbaa !9
  %1118 = zext i8 %1117 to i32
  %1119 = ashr i32 %1118, 5
  %1120 = and i32 %1119, 7
  %1121 = trunc i32 %1120 to i8
  %1122 = load ptr, ptr %4, align 8, !tbaa !5
  %1123 = getelementptr inbounds i8, ptr %1122, i64 42
  store i8 %1121, ptr %1123, align 1, !tbaa !9
  %1124 = load ptr, ptr %3, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.Drone, ptr %1124, i32 0, i32 2
  %1126 = getelementptr inbounds %struct.Flight, ptr %1125, i32 0, i32 2
  %1127 = getelementptr inbounds [3 x i32], ptr %1126, i64 0, i64 1
  %1128 = getelementptr inbounds i8, ptr %1127, i64 2
  %1129 = load i8, ptr %1128, align 2, !tbaa !9
  %1130 = zext i8 %1129 to i32
  %1131 = shl i32 %1130, 3
  %1132 = and i32 %1131, 248
  %1133 = load ptr, ptr %4, align 8, !tbaa !5
  %1134 = getelementptr inbounds i8, ptr %1133, i64 42
  %1135 = load i8, ptr %1134, align 1, !tbaa !9
  %1136 = zext i8 %1135 to i32
  %1137 = or i32 %1136, %1132
  %1138 = trunc i32 %1137 to i8
  store i8 %1138, ptr %1134, align 1, !tbaa !9
  %1139 = load ptr, ptr %3, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.Drone, ptr %1139, i32 0, i32 2
  %1141 = getelementptr inbounds %struct.Flight, ptr %1140, i32 0, i32 2
  %1142 = getelementptr inbounds [3 x i32], ptr %1141, i64 0, i64 1
  %1143 = getelementptr inbounds i8, ptr %1142, i64 2
  %1144 = load i8, ptr %1143, align 2, !tbaa !9
  %1145 = zext i8 %1144 to i32
  %1146 = ashr i32 %1145, 5
  %1147 = and i32 %1146, 7
  %1148 = trunc i32 %1147 to i8
  %1149 = load ptr, ptr %4, align 8, !tbaa !5
  %1150 = getelementptr inbounds i8, ptr %1149, i64 43
  store i8 %1148, ptr %1150, align 1, !tbaa !9
  %1151 = load ptr, ptr %3, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.Drone, ptr %1151, i32 0, i32 2
  %1153 = getelementptr inbounds %struct.Flight, ptr %1152, i32 0, i32 2
  %1154 = getelementptr inbounds [3 x i32], ptr %1153, i64 0, i64 1
  %1155 = getelementptr inbounds i8, ptr %1154, i64 3
  %1156 = load i8, ptr %1155, align 1, !tbaa !9
  %1157 = zext i8 %1156 to i32
  %1158 = shl i32 %1157, 3
  %1159 = and i32 %1158, 248
  %1160 = load ptr, ptr %4, align 8, !tbaa !5
  %1161 = getelementptr inbounds i8, ptr %1160, i64 43
  %1162 = load i8, ptr %1161, align 1, !tbaa !9
  %1163 = zext i8 %1162 to i32
  %1164 = or i32 %1163, %1159
  %1165 = trunc i32 %1164 to i8
  store i8 %1165, ptr %1161, align 1, !tbaa !9
  %1166 = load ptr, ptr %3, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.Drone, ptr %1166, i32 0, i32 2
  %1168 = getelementptr inbounds %struct.Flight, ptr %1167, i32 0, i32 2
  %1169 = getelementptr inbounds [3 x i32], ptr %1168, i64 0, i64 1
  %1170 = getelementptr inbounds i8, ptr %1169, i64 3
  %1171 = load i8, ptr %1170, align 1, !tbaa !9
  %1172 = zext i8 %1171 to i32
  %1173 = ashr i32 %1172, 5
  %1174 = and i32 %1173, 7
  %1175 = trunc i32 %1174 to i8
  %1176 = load ptr, ptr %4, align 8, !tbaa !5
  %1177 = getelementptr inbounds i8, ptr %1176, i64 44
  store i8 %1175, ptr %1177, align 1, !tbaa !9
  %1178 = load ptr, ptr %3, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.Drone, ptr %1178, i32 0, i32 2
  %1180 = getelementptr inbounds %struct.Flight, ptr %1179, i32 0, i32 2
  %1181 = getelementptr inbounds [3 x i32], ptr %1180, i64 0, i64 2
  %1182 = getelementptr inbounds i8, ptr %1181, i64 0
  %1183 = load i8, ptr %1182, align 4, !tbaa !9
  %1184 = zext i8 %1183 to i32
  %1185 = shl i32 %1184, 3
  %1186 = and i32 %1185, 248
  %1187 = load ptr, ptr %4, align 8, !tbaa !5
  %1188 = getelementptr inbounds i8, ptr %1187, i64 44
  %1189 = load i8, ptr %1188, align 1, !tbaa !9
  %1190 = zext i8 %1189 to i32
  %1191 = or i32 %1190, %1186
  %1192 = trunc i32 %1191 to i8
  store i8 %1192, ptr %1188, align 1, !tbaa !9
  %1193 = load ptr, ptr %3, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.Drone, ptr %1193, i32 0, i32 2
  %1195 = getelementptr inbounds %struct.Flight, ptr %1194, i32 0, i32 2
  %1196 = getelementptr inbounds [3 x i32], ptr %1195, i64 0, i64 2
  %1197 = getelementptr inbounds i8, ptr %1196, i64 0
  %1198 = load i8, ptr %1197, align 4, !tbaa !9
  %1199 = zext i8 %1198 to i32
  %1200 = ashr i32 %1199, 5
  %1201 = and i32 %1200, 7
  %1202 = trunc i32 %1201 to i8
  %1203 = load ptr, ptr %4, align 8, !tbaa !5
  %1204 = getelementptr inbounds i8, ptr %1203, i64 45
  store i8 %1202, ptr %1204, align 1, !tbaa !9
  %1205 = load ptr, ptr %3, align 8, !tbaa !5
  %1206 = getelementptr inbounds %struct.Drone, ptr %1205, i32 0, i32 2
  %1207 = getelementptr inbounds %struct.Flight, ptr %1206, i32 0, i32 2
  %1208 = getelementptr inbounds [3 x i32], ptr %1207, i64 0, i64 2
  %1209 = getelementptr inbounds i8, ptr %1208, i64 1
  %1210 = load i8, ptr %1209, align 1, !tbaa !9
  %1211 = zext i8 %1210 to i32
  %1212 = shl i32 %1211, 3
  %1213 = and i32 %1212, 248
  %1214 = load ptr, ptr %4, align 8, !tbaa !5
  %1215 = getelementptr inbounds i8, ptr %1214, i64 45
  %1216 = load i8, ptr %1215, align 1, !tbaa !9
  %1217 = zext i8 %1216 to i32
  %1218 = or i32 %1217, %1213
  %1219 = trunc i32 %1218 to i8
  store i8 %1219, ptr %1215, align 1, !tbaa !9
  %1220 = load ptr, ptr %3, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.Drone, ptr %1220, i32 0, i32 2
  %1222 = getelementptr inbounds %struct.Flight, ptr %1221, i32 0, i32 2
  %1223 = getelementptr inbounds [3 x i32], ptr %1222, i64 0, i64 2
  %1224 = getelementptr inbounds i8, ptr %1223, i64 1
  %1225 = load i8, ptr %1224, align 1, !tbaa !9
  %1226 = zext i8 %1225 to i32
  %1227 = ashr i32 %1226, 5
  %1228 = and i32 %1227, 7
  %1229 = trunc i32 %1228 to i8
  %1230 = load ptr, ptr %4, align 8, !tbaa !5
  %1231 = getelementptr inbounds i8, ptr %1230, i64 46
  store i8 %1229, ptr %1231, align 1, !tbaa !9
  %1232 = load ptr, ptr %3, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.Drone, ptr %1232, i32 0, i32 2
  %1234 = getelementptr inbounds %struct.Flight, ptr %1233, i32 0, i32 2
  %1235 = getelementptr inbounds [3 x i32], ptr %1234, i64 0, i64 2
  %1236 = getelementptr inbounds i8, ptr %1235, i64 2
  %1237 = load i8, ptr %1236, align 2, !tbaa !9
  %1238 = zext i8 %1237 to i32
  %1239 = shl i32 %1238, 3
  %1240 = and i32 %1239, 248
  %1241 = load ptr, ptr %4, align 8, !tbaa !5
  %1242 = getelementptr inbounds i8, ptr %1241, i64 46
  %1243 = load i8, ptr %1242, align 1, !tbaa !9
  %1244 = zext i8 %1243 to i32
  %1245 = or i32 %1244, %1240
  %1246 = trunc i32 %1245 to i8
  store i8 %1246, ptr %1242, align 1, !tbaa !9
  %1247 = load ptr, ptr %3, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.Drone, ptr %1247, i32 0, i32 2
  %1249 = getelementptr inbounds %struct.Flight, ptr %1248, i32 0, i32 2
  %1250 = getelementptr inbounds [3 x i32], ptr %1249, i64 0, i64 2
  %1251 = getelementptr inbounds i8, ptr %1250, i64 2
  %1252 = load i8, ptr %1251, align 2, !tbaa !9
  %1253 = zext i8 %1252 to i32
  %1254 = ashr i32 %1253, 5
  %1255 = and i32 %1254, 7
  %1256 = trunc i32 %1255 to i8
  %1257 = load ptr, ptr %4, align 8, !tbaa !5
  %1258 = getelementptr inbounds i8, ptr %1257, i64 47
  store i8 %1256, ptr %1258, align 1, !tbaa !9
  %1259 = load ptr, ptr %3, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.Drone, ptr %1259, i32 0, i32 2
  %1261 = getelementptr inbounds %struct.Flight, ptr %1260, i32 0, i32 2
  %1262 = getelementptr inbounds [3 x i32], ptr %1261, i64 0, i64 2
  %1263 = getelementptr inbounds i8, ptr %1262, i64 3
  %1264 = load i8, ptr %1263, align 1, !tbaa !9
  %1265 = zext i8 %1264 to i32
  %1266 = shl i32 %1265, 3
  %1267 = and i32 %1266, 248
  %1268 = load ptr, ptr %4, align 8, !tbaa !5
  %1269 = getelementptr inbounds i8, ptr %1268, i64 47
  %1270 = load i8, ptr %1269, align 1, !tbaa !9
  %1271 = zext i8 %1270 to i32
  %1272 = or i32 %1271, %1267
  %1273 = trunc i32 %1272 to i8
  store i8 %1273, ptr %1269, align 1, !tbaa !9
  %1274 = load ptr, ptr %3, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.Drone, ptr %1274, i32 0, i32 2
  %1276 = getelementptr inbounds %struct.Flight, ptr %1275, i32 0, i32 2
  %1277 = getelementptr inbounds [3 x i32], ptr %1276, i64 0, i64 2
  %1278 = getelementptr inbounds i8, ptr %1277, i64 3
  %1279 = load i8, ptr %1278, align 1, !tbaa !9
  %1280 = zext i8 %1279 to i32
  %1281 = ashr i32 %1280, 5
  %1282 = and i32 %1281, 7
  %1283 = trunc i32 %1282 to i8
  %1284 = load ptr, ptr %4, align 8, !tbaa !5
  %1285 = getelementptr inbounds i8, ptr %1284, i64 48
  store i8 %1283, ptr %1285, align 1, !tbaa !9
  %1286 = load ptr, ptr %3, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.Drone, ptr %1286, i32 0, i32 3
  %1288 = getelementptr inbounds [4 x %struct.Propeller], ptr %1287, i64 0, i64 0
  %1289 = getelementptr inbounds %struct.Propeller, ptr %1288, i32 0, i32 0
  %1290 = getelementptr inbounds i8, ptr %1289, i64 0
  %1291 = load i8, ptr %1290, align 4, !tbaa !9
  %1292 = zext i8 %1291 to i32
  %1293 = shl i32 %1292, 3
  %1294 = and i32 %1293, 248
  %1295 = load ptr, ptr %4, align 8, !tbaa !5
  %1296 = getelementptr inbounds i8, ptr %1295, i64 48
  %1297 = load i8, ptr %1296, align 1, !tbaa !9
  %1298 = zext i8 %1297 to i32
  %1299 = or i32 %1298, %1294
  %1300 = trunc i32 %1299 to i8
  store i8 %1300, ptr %1296, align 1, !tbaa !9
  %1301 = load ptr, ptr %3, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.Drone, ptr %1301, i32 0, i32 3
  %1303 = getelementptr inbounds [4 x %struct.Propeller], ptr %1302, i64 0, i64 0
  %1304 = getelementptr inbounds %struct.Propeller, ptr %1303, i32 0, i32 0
  %1305 = getelementptr inbounds i8, ptr %1304, i64 0
  %1306 = load i8, ptr %1305, align 4, !tbaa !9
  %1307 = zext i8 %1306 to i32
  %1308 = ashr i32 %1307, 5
  %1309 = and i32 %1308, 7
  %1310 = trunc i32 %1309 to i8
  %1311 = load ptr, ptr %4, align 8, !tbaa !5
  %1312 = getelementptr inbounds i8, ptr %1311, i64 49
  store i8 %1310, ptr %1312, align 1, !tbaa !9
  %1313 = load ptr, ptr %3, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.Drone, ptr %1313, i32 0, i32 3
  %1315 = getelementptr inbounds [4 x %struct.Propeller], ptr %1314, i64 0, i64 0
  %1316 = getelementptr inbounds %struct.Propeller, ptr %1315, i32 0, i32 1
  %1317 = getelementptr inbounds i8, ptr %1316, i64 0
  %1318 = load i8, ptr %1317, align 1, !tbaa !9
  %1319 = zext i8 %1318 to i32
  %1320 = shl i32 %1319, 3
  %1321 = and i32 %1320, 24
  %1322 = load ptr, ptr %4, align 8, !tbaa !5
  %1323 = getelementptr inbounds i8, ptr %1322, i64 49
  %1324 = load i8, ptr %1323, align 1, !tbaa !9
  %1325 = zext i8 %1324 to i32
  %1326 = or i32 %1325, %1321
  %1327 = trunc i32 %1326 to i8
  store i8 %1327, ptr %1323, align 1, !tbaa !9
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.Drone, ptr %1328, i32 0, i32 3
  %1330 = getelementptr inbounds [4 x %struct.Propeller], ptr %1329, i64 0, i64 0
  %1331 = getelementptr inbounds %struct.Propeller, ptr %1330, i32 0, i32 2
  %1332 = getelementptr inbounds i8, ptr %1331, i64 0
  %1333 = load i8, ptr %1332, align 2, !tbaa !9
  %1334 = zext i8 %1333 to i32
  %1335 = shl i32 %1334, 5
  %1336 = and i32 %1335, 96
  %1337 = load ptr, ptr %4, align 8, !tbaa !5
  %1338 = getelementptr inbounds i8, ptr %1337, i64 49
  %1339 = load i8, ptr %1338, align 1, !tbaa !9
  %1340 = zext i8 %1339 to i32
  %1341 = or i32 %1340, %1336
  %1342 = trunc i32 %1341 to i8
  store i8 %1342, ptr %1338, align 1, !tbaa !9
  %1343 = load ptr, ptr %3, align 8, !tbaa !5
  %1344 = getelementptr inbounds %struct.Drone, ptr %1343, i32 0, i32 3
  %1345 = getelementptr inbounds [4 x %struct.Propeller], ptr %1344, i64 0, i64 1
  %1346 = getelementptr inbounds %struct.Propeller, ptr %1345, i32 0, i32 0
  %1347 = getelementptr inbounds i8, ptr %1346, i64 0
  %1348 = load i8, ptr %1347, align 1, !tbaa !9
  %1349 = zext i8 %1348 to i32
  %1350 = shl i32 %1349, 7
  %1351 = and i32 %1350, 128
  %1352 = load ptr, ptr %4, align 8, !tbaa !5
  %1353 = getelementptr inbounds i8, ptr %1352, i64 49
  %1354 = load i8, ptr %1353, align 1, !tbaa !9
  %1355 = zext i8 %1354 to i32
  %1356 = or i32 %1355, %1351
  %1357 = trunc i32 %1356 to i8
  store i8 %1357, ptr %1353, align 1, !tbaa !9
  %1358 = load ptr, ptr %3, align 8, !tbaa !5
  %1359 = getelementptr inbounds %struct.Drone, ptr %1358, i32 0, i32 3
  %1360 = getelementptr inbounds [4 x %struct.Propeller], ptr %1359, i64 0, i64 1
  %1361 = getelementptr inbounds %struct.Propeller, ptr %1360, i32 0, i32 0
  %1362 = getelementptr inbounds i8, ptr %1361, i64 0
  %1363 = load i8, ptr %1362, align 1, !tbaa !9
  %1364 = zext i8 %1363 to i32
  %1365 = ashr i32 %1364, 1
  %1366 = and i32 %1365, 127
  %1367 = trunc i32 %1366 to i8
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = getelementptr inbounds i8, ptr %1368, i64 50
  store i8 %1367, ptr %1369, align 1, !tbaa !9
  %1370 = load ptr, ptr %3, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.Drone, ptr %1370, i32 0, i32 3
  %1372 = getelementptr inbounds [4 x %struct.Propeller], ptr %1371, i64 0, i64 1
  %1373 = getelementptr inbounds %struct.Propeller, ptr %1372, i32 0, i32 1
  %1374 = getelementptr inbounds i8, ptr %1373, i64 0
  %1375 = load i8, ptr %1374, align 1, !tbaa !9
  %1376 = zext i8 %1375 to i32
  %1377 = shl i32 %1376, 7
  %1378 = and i32 %1377, 128
  %1379 = load ptr, ptr %4, align 8, !tbaa !5
  %1380 = getelementptr inbounds i8, ptr %1379, i64 50
  %1381 = load i8, ptr %1380, align 1, !tbaa !9
  %1382 = zext i8 %1381 to i32
  %1383 = or i32 %1382, %1378
  %1384 = trunc i32 %1383 to i8
  store i8 %1384, ptr %1380, align 1, !tbaa !9
  %1385 = load ptr, ptr %3, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.Drone, ptr %1385, i32 0, i32 3
  %1387 = getelementptr inbounds [4 x %struct.Propeller], ptr %1386, i64 0, i64 1
  %1388 = getelementptr inbounds %struct.Propeller, ptr %1387, i32 0, i32 1
  %1389 = getelementptr inbounds i8, ptr %1388, i64 0
  %1390 = load i8, ptr %1389, align 1, !tbaa !9
  %1391 = zext i8 %1390 to i32
  %1392 = ashr i32 %1391, 1
  %1393 = and i32 %1392, 1
  %1394 = trunc i32 %1393 to i8
  %1395 = load ptr, ptr %4, align 8, !tbaa !5
  %1396 = getelementptr inbounds i8, ptr %1395, i64 51
  store i8 %1394, ptr %1396, align 1, !tbaa !9
  %1397 = load ptr, ptr %3, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.Drone, ptr %1397, i32 0, i32 3
  %1399 = getelementptr inbounds [4 x %struct.Propeller], ptr %1398, i64 0, i64 1
  %1400 = getelementptr inbounds %struct.Propeller, ptr %1399, i32 0, i32 2
  %1401 = getelementptr inbounds i8, ptr %1400, i64 0
  %1402 = load i8, ptr %1401, align 1, !tbaa !9
  %1403 = zext i8 %1402 to i32
  %1404 = shl i32 %1403, 1
  %1405 = and i32 %1404, 6
  %1406 = load ptr, ptr %4, align 8, !tbaa !5
  %1407 = getelementptr inbounds i8, ptr %1406, i64 51
  %1408 = load i8, ptr %1407, align 1, !tbaa !9
  %1409 = zext i8 %1408 to i32
  %1410 = or i32 %1409, %1405
  %1411 = trunc i32 %1410 to i8
  store i8 %1411, ptr %1407, align 1, !tbaa !9
  %1412 = load ptr, ptr %3, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.Drone, ptr %1412, i32 0, i32 3
  %1414 = getelementptr inbounds [4 x %struct.Propeller], ptr %1413, i64 0, i64 2
  %1415 = getelementptr inbounds %struct.Propeller, ptr %1414, i32 0, i32 0
  %1416 = getelementptr inbounds i8, ptr %1415, i64 0
  %1417 = load i8, ptr %1416, align 2, !tbaa !9
  %1418 = zext i8 %1417 to i32
  %1419 = shl i32 %1418, 3
  %1420 = and i32 %1419, 248
  %1421 = load ptr, ptr %4, align 8, !tbaa !5
  %1422 = getelementptr inbounds i8, ptr %1421, i64 51
  %1423 = load i8, ptr %1422, align 1, !tbaa !9
  %1424 = zext i8 %1423 to i32
  %1425 = or i32 %1424, %1420
  %1426 = trunc i32 %1425 to i8
  store i8 %1426, ptr %1422, align 1, !tbaa !9
  %1427 = load ptr, ptr %3, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.Drone, ptr %1427, i32 0, i32 3
  %1429 = getelementptr inbounds [4 x %struct.Propeller], ptr %1428, i64 0, i64 2
  %1430 = getelementptr inbounds %struct.Propeller, ptr %1429, i32 0, i32 0
  %1431 = getelementptr inbounds i8, ptr %1430, i64 0
  %1432 = load i8, ptr %1431, align 2, !tbaa !9
  %1433 = zext i8 %1432 to i32
  %1434 = ashr i32 %1433, 5
  %1435 = and i32 %1434, 7
  %1436 = trunc i32 %1435 to i8
  %1437 = load ptr, ptr %4, align 8, !tbaa !5
  %1438 = getelementptr inbounds i8, ptr %1437, i64 52
  store i8 %1436, ptr %1438, align 1, !tbaa !9
  %1439 = load ptr, ptr %3, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.Drone, ptr %1439, i32 0, i32 3
  %1441 = getelementptr inbounds [4 x %struct.Propeller], ptr %1440, i64 0, i64 2
  %1442 = getelementptr inbounds %struct.Propeller, ptr %1441, i32 0, i32 1
  %1443 = getelementptr inbounds i8, ptr %1442, i64 0
  %1444 = load i8, ptr %1443, align 1, !tbaa !9
  %1445 = zext i8 %1444 to i32
  %1446 = shl i32 %1445, 3
  %1447 = and i32 %1446, 24
  %1448 = load ptr, ptr %4, align 8, !tbaa !5
  %1449 = getelementptr inbounds i8, ptr %1448, i64 52
  %1450 = load i8, ptr %1449, align 1, !tbaa !9
  %1451 = zext i8 %1450 to i32
  %1452 = or i32 %1451, %1447
  %1453 = trunc i32 %1452 to i8
  store i8 %1453, ptr %1449, align 1, !tbaa !9
  %1454 = load ptr, ptr %3, align 8, !tbaa !5
  %1455 = getelementptr inbounds %struct.Drone, ptr %1454, i32 0, i32 3
  %1456 = getelementptr inbounds [4 x %struct.Propeller], ptr %1455, i64 0, i64 2
  %1457 = getelementptr inbounds %struct.Propeller, ptr %1456, i32 0, i32 2
  %1458 = getelementptr inbounds i8, ptr %1457, i64 0
  %1459 = load i8, ptr %1458, align 2, !tbaa !9
  %1460 = zext i8 %1459 to i32
  %1461 = shl i32 %1460, 5
  %1462 = and i32 %1461, 96
  %1463 = load ptr, ptr %4, align 8, !tbaa !5
  %1464 = getelementptr inbounds i8, ptr %1463, i64 52
  %1465 = load i8, ptr %1464, align 1, !tbaa !9
  %1466 = zext i8 %1465 to i32
  %1467 = or i32 %1466, %1462
  %1468 = trunc i32 %1467 to i8
  store i8 %1468, ptr %1464, align 1, !tbaa !9
  %1469 = load ptr, ptr %3, align 8, !tbaa !5
  %1470 = getelementptr inbounds %struct.Drone, ptr %1469, i32 0, i32 3
  %1471 = getelementptr inbounds [4 x %struct.Propeller], ptr %1470, i64 0, i64 3
  %1472 = getelementptr inbounds %struct.Propeller, ptr %1471, i32 0, i32 0
  %1473 = getelementptr inbounds i8, ptr %1472, i64 0
  %1474 = load i8, ptr %1473, align 1, !tbaa !9
  %1475 = zext i8 %1474 to i32
  %1476 = shl i32 %1475, 7
  %1477 = and i32 %1476, 128
  %1478 = load ptr, ptr %4, align 8, !tbaa !5
  %1479 = getelementptr inbounds i8, ptr %1478, i64 52
  %1480 = load i8, ptr %1479, align 1, !tbaa !9
  %1481 = zext i8 %1480 to i32
  %1482 = or i32 %1481, %1477
  %1483 = trunc i32 %1482 to i8
  store i8 %1483, ptr %1479, align 1, !tbaa !9
  %1484 = load ptr, ptr %3, align 8, !tbaa !5
  %1485 = getelementptr inbounds %struct.Drone, ptr %1484, i32 0, i32 3
  %1486 = getelementptr inbounds [4 x %struct.Propeller], ptr %1485, i64 0, i64 3
  %1487 = getelementptr inbounds %struct.Propeller, ptr %1486, i32 0, i32 0
  %1488 = getelementptr inbounds i8, ptr %1487, i64 0
  %1489 = load i8, ptr %1488, align 1, !tbaa !9
  %1490 = zext i8 %1489 to i32
  %1491 = ashr i32 %1490, 1
  %1492 = and i32 %1491, 127
  %1493 = trunc i32 %1492 to i8
  %1494 = load ptr, ptr %4, align 8, !tbaa !5
  %1495 = getelementptr inbounds i8, ptr %1494, i64 53
  store i8 %1493, ptr %1495, align 1, !tbaa !9
  %1496 = load ptr, ptr %3, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.Drone, ptr %1496, i32 0, i32 3
  %1498 = getelementptr inbounds [4 x %struct.Propeller], ptr %1497, i64 0, i64 3
  %1499 = getelementptr inbounds %struct.Propeller, ptr %1498, i32 0, i32 1
  %1500 = getelementptr inbounds i8, ptr %1499, i64 0
  %1501 = load i8, ptr %1500, align 1, !tbaa !9
  %1502 = zext i8 %1501 to i32
  %1503 = shl i32 %1502, 7
  %1504 = and i32 %1503, 128
  %1505 = load ptr, ptr %4, align 8, !tbaa !5
  %1506 = getelementptr inbounds i8, ptr %1505, i64 53
  %1507 = load i8, ptr %1506, align 1, !tbaa !9
  %1508 = zext i8 %1507 to i32
  %1509 = or i32 %1508, %1504
  %1510 = trunc i32 %1509 to i8
  store i8 %1510, ptr %1506, align 1, !tbaa !9
  %1511 = load ptr, ptr %3, align 8, !tbaa !5
  %1512 = getelementptr inbounds %struct.Drone, ptr %1511, i32 0, i32 3
  %1513 = getelementptr inbounds [4 x %struct.Propeller], ptr %1512, i64 0, i64 3
  %1514 = getelementptr inbounds %struct.Propeller, ptr %1513, i32 0, i32 1
  %1515 = getelementptr inbounds i8, ptr %1514, i64 0
  %1516 = load i8, ptr %1515, align 1, !tbaa !9
  %1517 = zext i8 %1516 to i32
  %1518 = ashr i32 %1517, 1
  %1519 = and i32 %1518, 1
  %1520 = trunc i32 %1519 to i8
  %1521 = load ptr, ptr %4, align 8, !tbaa !5
  %1522 = getelementptr inbounds i8, ptr %1521, i64 54
  store i8 %1520, ptr %1522, align 1, !tbaa !9
  %1523 = load ptr, ptr %3, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.Drone, ptr %1523, i32 0, i32 3
  %1525 = getelementptr inbounds [4 x %struct.Propeller], ptr %1524, i64 0, i64 3
  %1526 = getelementptr inbounds %struct.Propeller, ptr %1525, i32 0, i32 2
  %1527 = getelementptr inbounds i8, ptr %1526, i64 0
  %1528 = load i8, ptr %1527, align 1, !tbaa !9
  %1529 = zext i8 %1528 to i32
  %1530 = shl i32 %1529, 1
  %1531 = and i32 %1530, 6
  %1532 = load ptr, ptr %4, align 8, !tbaa !5
  %1533 = getelementptr inbounds i8, ptr %1532, i64 54
  %1534 = load i8, ptr %1533, align 1, !tbaa !9
  %1535 = zext i8 %1534 to i32
  %1536 = or i32 %1535, %1531
  %1537 = trunc i32 %1536 to i8
  store i8 %1537, ptr %1533, align 1, !tbaa !9
  %1538 = load ptr, ptr %3, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.Drone, ptr %1538, i32 0, i32 4
  %1540 = getelementptr inbounds %struct.Power, ptr %1539, i32 0, i32 0
  %1541 = getelementptr inbounds i8, ptr %1540, i64 0
  %1542 = load i8, ptr %1541, align 4, !tbaa !9
  %1543 = zext i8 %1542 to i32
  %1544 = shl i32 %1543, 3
  %1545 = and i32 %1544, 248
  %1546 = load ptr, ptr %4, align 8, !tbaa !5
  %1547 = getelementptr inbounds i8, ptr %1546, i64 54
  %1548 = load i8, ptr %1547, align 1, !tbaa !9
  %1549 = zext i8 %1548 to i32
  %1550 = or i32 %1549, %1545
  %1551 = trunc i32 %1550 to i8
  store i8 %1551, ptr %1547, align 1, !tbaa !9
  %1552 = load ptr, ptr %3, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.Drone, ptr %1552, i32 0, i32 4
  %1554 = getelementptr inbounds %struct.Power, ptr %1553, i32 0, i32 0
  %1555 = getelementptr inbounds i8, ptr %1554, i64 0
  %1556 = load i8, ptr %1555, align 4, !tbaa !9
  %1557 = zext i8 %1556 to i32
  %1558 = ashr i32 %1557, 5
  %1559 = and i32 %1558, 7
  %1560 = trunc i32 %1559 to i8
  %1561 = load ptr, ptr %4, align 8, !tbaa !5
  %1562 = getelementptr inbounds i8, ptr %1561, i64 55
  store i8 %1560, ptr %1562, align 1, !tbaa !9
  %1563 = load ptr, ptr %3, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.Drone, ptr %1563, i32 0, i32 4
  %1565 = getelementptr inbounds %struct.Power, ptr %1564, i32 0, i32 1
  %1566 = getelementptr inbounds i8, ptr %1565, i64 0
  %1567 = load i8, ptr %1566, align 1, !tbaa !9
  %1568 = zext i8 %1567 to i32
  %1569 = shl i32 %1568, 3
  %1570 = and i32 %1569, 24
  %1571 = load ptr, ptr %4, align 8, !tbaa !5
  %1572 = getelementptr inbounds i8, ptr %1571, i64 55
  %1573 = load i8, ptr %1572, align 1, !tbaa !9
  %1574 = zext i8 %1573 to i32
  %1575 = or i32 %1574, %1570
  %1576 = trunc i32 %1575 to i8
  store i8 %1576, ptr %1572, align 1, !tbaa !9
  %1577 = load ptr, ptr %3, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.Drone, ptr %1577, i32 0, i32 4
  %1579 = getelementptr inbounds %struct.Power, ptr %1578, i32 0, i32 2
  %1580 = getelementptr inbounds i8, ptr %1579, i64 0
  %1581 = load i8, ptr %1580, align 2, !tbaa !9
  %1582 = zext i8 %1581 to i32
  %1583 = shl i32 %1582, 5
  %1584 = and i32 %1583, 32
  %1585 = load ptr, ptr %4, align 8, !tbaa !5
  %1586 = getelementptr inbounds i8, ptr %1585, i64 55
  %1587 = load i8, ptr %1586, align 1, !tbaa !9
  %1588 = zext i8 %1587 to i32
  %1589 = or i32 %1588, %1584
  %1590 = trunc i32 %1589 to i8
  store i8 %1590, ptr %1586, align 1, !tbaa !9
  %1591 = load ptr, ptr %3, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.Drone, ptr %1591, i32 0, i32 5
  %1593 = getelementptr inbounds %struct.Network, ptr %1592, i32 0, i32 0
  %1594 = getelementptr inbounds i8, ptr %1593, i64 0
  %1595 = load i8, ptr %1594, align 4, !tbaa !9
  %1596 = zext i8 %1595 to i32
  %1597 = shl i32 %1596, 6
  %1598 = and i32 %1597, 192
  %1599 = load ptr, ptr %4, align 8, !tbaa !5
  %1600 = getelementptr inbounds i8, ptr %1599, i64 55
  %1601 = load i8, ptr %1600, align 1, !tbaa !9
  %1602 = zext i8 %1601 to i32
  %1603 = or i32 %1602, %1598
  %1604 = trunc i32 %1603 to i8
  store i8 %1604, ptr %1600, align 1, !tbaa !9
  %1605 = load ptr, ptr %3, align 8, !tbaa !5
  %1606 = getelementptr inbounds %struct.Drone, ptr %1605, i32 0, i32 5
  %1607 = getelementptr inbounds %struct.Network, ptr %1606, i32 0, i32 0
  %1608 = getelementptr inbounds i8, ptr %1607, i64 0
  %1609 = load i8, ptr %1608, align 4, !tbaa !9
  %1610 = zext i8 %1609 to i32
  %1611 = ashr i32 %1610, 2
  %1612 = and i32 %1611, 3
  %1613 = trunc i32 %1612 to i8
  %1614 = load ptr, ptr %4, align 8, !tbaa !5
  %1615 = getelementptr inbounds i8, ptr %1614, i64 56
  store i8 %1613, ptr %1615, align 1, !tbaa !9
  %1616 = load ptr, ptr %3, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.Drone, ptr %1616, i32 0, i32 5
  %1618 = getelementptr inbounds %struct.Network, ptr %1617, i32 0, i32 1
  %1619 = getelementptr inbounds i8, ptr %1618, i64 0
  %1620 = load i8, ptr %1619, align 4, !tbaa !9
  %1621 = zext i8 %1620 to i32
  %1622 = shl i32 %1621, 2
  %1623 = and i32 %1622, 252
  %1624 = load ptr, ptr %4, align 8, !tbaa !5
  %1625 = getelementptr inbounds i8, ptr %1624, i64 56
  %1626 = load i8, ptr %1625, align 1, !tbaa !9
  %1627 = zext i8 %1626 to i32
  %1628 = or i32 %1627, %1623
  %1629 = trunc i32 %1628 to i8
  store i8 %1629, ptr %1625, align 1, !tbaa !9
  %1630 = load ptr, ptr %3, align 8, !tbaa !5
  %1631 = getelementptr inbounds %struct.Drone, ptr %1630, i32 0, i32 5
  %1632 = getelementptr inbounds %struct.Network, ptr %1631, i32 0, i32 1
  %1633 = getelementptr inbounds i8, ptr %1632, i64 0
  %1634 = load i8, ptr %1633, align 4, !tbaa !9
  %1635 = zext i8 %1634 to i32
  %1636 = ashr i32 %1635, 6
  %1637 = and i32 %1636, 3
  %1638 = trunc i32 %1637 to i8
  %1639 = load ptr, ptr %4, align 8, !tbaa !5
  %1640 = getelementptr inbounds i8, ptr %1639, i64 57
  store i8 %1638, ptr %1640, align 1, !tbaa !9
  %1641 = load ptr, ptr %3, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.Drone, ptr %1641, i32 0, i32 5
  %1643 = getelementptr inbounds %struct.Network, ptr %1642, i32 0, i32 1
  %1644 = getelementptr inbounds i8, ptr %1643, i64 1
  %1645 = load i8, ptr %1644, align 1, !tbaa !9
  %1646 = zext i8 %1645 to i32
  %1647 = shl i32 %1646, 2
  %1648 = and i32 %1647, 252
  %1649 = load ptr, ptr %4, align 8, !tbaa !5
  %1650 = getelementptr inbounds i8, ptr %1649, i64 57
  %1651 = load i8, ptr %1650, align 1, !tbaa !9
  %1652 = zext i8 %1651 to i32
  %1653 = or i32 %1652, %1648
  %1654 = trunc i32 %1653 to i8
  store i8 %1654, ptr %1650, align 1, !tbaa !9
  %1655 = load ptr, ptr %3, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.Drone, ptr %1655, i32 0, i32 5
  %1657 = getelementptr inbounds %struct.Network, ptr %1656, i32 0, i32 1
  %1658 = getelementptr inbounds i8, ptr %1657, i64 1
  %1659 = load i8, ptr %1658, align 1, !tbaa !9
  %1660 = zext i8 %1659 to i32
  %1661 = ashr i32 %1660, 6
  %1662 = and i32 %1661, 3
  %1663 = trunc i32 %1662 to i8
  %1664 = load ptr, ptr %4, align 8, !tbaa !5
  %1665 = getelementptr inbounds i8, ptr %1664, i64 58
  store i8 %1663, ptr %1665, align 1, !tbaa !9
  %1666 = load ptr, ptr %3, align 8, !tbaa !5
  %1667 = getelementptr inbounds %struct.Drone, ptr %1666, i32 0, i32 5
  %1668 = getelementptr inbounds %struct.Network, ptr %1667, i32 0, i32 1
  %1669 = getelementptr inbounds i8, ptr %1668, i64 2
  %1670 = load i8, ptr %1669, align 2, !tbaa !9
  %1671 = zext i8 %1670 to i32
  %1672 = shl i32 %1671, 2
  %1673 = and i32 %1672, 252
  %1674 = load ptr, ptr %4, align 8, !tbaa !5
  %1675 = getelementptr inbounds i8, ptr %1674, i64 58
  %1676 = load i8, ptr %1675, align 1, !tbaa !9
  %1677 = zext i8 %1676 to i32
  %1678 = or i32 %1677, %1673
  %1679 = trunc i32 %1678 to i8
  store i8 %1679, ptr %1675, align 1, !tbaa !9
  %1680 = load ptr, ptr %3, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.Drone, ptr %1680, i32 0, i32 5
  %1682 = getelementptr inbounds %struct.Network, ptr %1681, i32 0, i32 1
  %1683 = getelementptr inbounds i8, ptr %1682, i64 2
  %1684 = load i8, ptr %1683, align 2, !tbaa !9
  %1685 = zext i8 %1684 to i32
  %1686 = ashr i32 %1685, 6
  %1687 = and i32 %1686, 3
  %1688 = trunc i32 %1687 to i8
  %1689 = load ptr, ptr %4, align 8, !tbaa !5
  %1690 = getelementptr inbounds i8, ptr %1689, i64 59
  store i8 %1688, ptr %1690, align 1, !tbaa !9
  %1691 = load ptr, ptr %3, align 8, !tbaa !5
  %1692 = getelementptr inbounds %struct.Drone, ptr %1691, i32 0, i32 5
  %1693 = getelementptr inbounds %struct.Network, ptr %1692, i32 0, i32 1
  %1694 = getelementptr inbounds i8, ptr %1693, i64 3
  %1695 = load i8, ptr %1694, align 1, !tbaa !9
  %1696 = zext i8 %1695 to i32
  %1697 = shl i32 %1696, 2
  %1698 = and i32 %1697, 252
  %1699 = load ptr, ptr %4, align 8, !tbaa !5
  %1700 = getelementptr inbounds i8, ptr %1699, i64 59
  %1701 = load i8, ptr %1700, align 1, !tbaa !9
  %1702 = zext i8 %1701 to i32
  %1703 = or i32 %1702, %1698
  %1704 = trunc i32 %1703 to i8
  store i8 %1704, ptr %1700, align 1, !tbaa !9
  %1705 = load ptr, ptr %3, align 8, !tbaa !5
  %1706 = getelementptr inbounds %struct.Drone, ptr %1705, i32 0, i32 5
  %1707 = getelementptr inbounds %struct.Network, ptr %1706, i32 0, i32 1
  %1708 = getelementptr inbounds i8, ptr %1707, i64 3
  %1709 = load i8, ptr %1708, align 1, !tbaa !9
  %1710 = zext i8 %1709 to i32
  %1711 = ashr i32 %1710, 6
  %1712 = and i32 %1711, 3
  %1713 = trunc i32 %1712 to i8
  %1714 = load ptr, ptr %4, align 8, !tbaa !5
  %1715 = getelementptr inbounds i8, ptr %1714, i64 60
  store i8 %1713, ptr %1715, align 1, !tbaa !9
  %1716 = load ptr, ptr %3, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.Drone, ptr %1716, i32 0, i32 6
  %1718 = getelementptr inbounds %struct.LandingGear, ptr %1717, i32 0, i32 0
  %1719 = getelementptr inbounds i8, ptr %1718, i64 0
  %1720 = load i8, ptr %1719, align 4, !tbaa !9
  %1721 = zext i8 %1720 to i32
  %1722 = shl i32 %1721, 2
  %1723 = and i32 %1722, 12
  %1724 = load ptr, ptr %4, align 8, !tbaa !5
  %1725 = getelementptr inbounds i8, ptr %1724, i64 60
  %1726 = load i8, ptr %1725, align 1, !tbaa !9
  %1727 = zext i8 %1726 to i32
  %1728 = or i32 %1727, %1723
  %1729 = trunc i32 %1728 to i8
  store i8 %1729, ptr %1725, align 1, !tbaa !9
  %1730 = load ptr, ptr %3, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.Drone, ptr %1730, i32 0, i32 7
  %1732 = getelementptr inbounds %struct.PressureSensor, ptr %1731, i32 0, i32 0
  %1733 = getelementptr inbounds [2 x i32], ptr %1732, i64 0, i64 0
  %1734 = getelementptr inbounds i8, ptr %1733, i64 0
  %1735 = load i8, ptr %1734, align 4, !tbaa !9
  %1736 = zext i8 %1735 to i32
  %1737 = shl i32 %1736, 4
  %1738 = and i32 %1737, 240
  %1739 = load ptr, ptr %4, align 8, !tbaa !5
  %1740 = getelementptr inbounds i8, ptr %1739, i64 60
  %1741 = load i8, ptr %1740, align 1, !tbaa !9
  %1742 = zext i8 %1741 to i32
  %1743 = or i32 %1742, %1738
  %1744 = trunc i32 %1743 to i8
  store i8 %1744, ptr %1740, align 1, !tbaa !9
  %1745 = load ptr, ptr %3, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.Drone, ptr %1745, i32 0, i32 7
  %1747 = getelementptr inbounds %struct.PressureSensor, ptr %1746, i32 0, i32 0
  %1748 = getelementptr inbounds [2 x i32], ptr %1747, i64 0, i64 0
  %1749 = getelementptr inbounds i8, ptr %1748, i64 0
  %1750 = load i8, ptr %1749, align 4, !tbaa !9
  %1751 = zext i8 %1750 to i32
  %1752 = ashr i32 %1751, 4
  %1753 = and i32 %1752, 15
  %1754 = trunc i32 %1753 to i8
  %1755 = load ptr, ptr %4, align 8, !tbaa !5
  %1756 = getelementptr inbounds i8, ptr %1755, i64 61
  store i8 %1754, ptr %1756, align 1, !tbaa !9
  %1757 = load ptr, ptr %3, align 8, !tbaa !5
  %1758 = getelementptr inbounds %struct.Drone, ptr %1757, i32 0, i32 7
  %1759 = getelementptr inbounds %struct.PressureSensor, ptr %1758, i32 0, i32 0
  %1760 = getelementptr inbounds [2 x i32], ptr %1759, i64 0, i64 0
  %1761 = getelementptr inbounds i8, ptr %1760, i64 1
  %1762 = load i8, ptr %1761, align 1, !tbaa !9
  %1763 = zext i8 %1762 to i32
  %1764 = shl i32 %1763, 4
  %1765 = and i32 %1764, 240
  %1766 = load ptr, ptr %4, align 8, !tbaa !5
  %1767 = getelementptr inbounds i8, ptr %1766, i64 61
  %1768 = load i8, ptr %1767, align 1, !tbaa !9
  %1769 = zext i8 %1768 to i32
  %1770 = or i32 %1769, %1765
  %1771 = trunc i32 %1770 to i8
  store i8 %1771, ptr %1767, align 1, !tbaa !9
  %1772 = load ptr, ptr %3, align 8, !tbaa !5
  %1773 = getelementptr inbounds %struct.Drone, ptr %1772, i32 0, i32 7
  %1774 = getelementptr inbounds %struct.PressureSensor, ptr %1773, i32 0, i32 0
  %1775 = getelementptr inbounds [2 x i32], ptr %1774, i64 0, i64 0
  %1776 = getelementptr inbounds i8, ptr %1775, i64 1
  %1777 = load i8, ptr %1776, align 1, !tbaa !9
  %1778 = zext i8 %1777 to i32
  %1779 = ashr i32 %1778, 4
  %1780 = and i32 %1779, 15
  %1781 = trunc i32 %1780 to i8
  %1782 = load ptr, ptr %4, align 8, !tbaa !5
  %1783 = getelementptr inbounds i8, ptr %1782, i64 62
  store i8 %1781, ptr %1783, align 1, !tbaa !9
  %1784 = load ptr, ptr %3, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.Drone, ptr %1784, i32 0, i32 7
  %1786 = getelementptr inbounds %struct.PressureSensor, ptr %1785, i32 0, i32 0
  %1787 = getelementptr inbounds [2 x i32], ptr %1786, i64 0, i64 0
  %1788 = getelementptr inbounds i8, ptr %1787, i64 2
  %1789 = load i8, ptr %1788, align 2, !tbaa !9
  %1790 = zext i8 %1789 to i32
  %1791 = shl i32 %1790, 4
  %1792 = and i32 %1791, 240
  %1793 = load ptr, ptr %4, align 8, !tbaa !5
  %1794 = getelementptr inbounds i8, ptr %1793, i64 62
  %1795 = load i8, ptr %1794, align 1, !tbaa !9
  %1796 = zext i8 %1795 to i32
  %1797 = or i32 %1796, %1792
  %1798 = trunc i32 %1797 to i8
  store i8 %1798, ptr %1794, align 1, !tbaa !9
  %1799 = load ptr, ptr %3, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.Drone, ptr %1799, i32 0, i32 7
  %1801 = getelementptr inbounds %struct.PressureSensor, ptr %1800, i32 0, i32 0
  %1802 = getelementptr inbounds [2 x i32], ptr %1801, i64 0, i64 0
  %1803 = getelementptr inbounds i8, ptr %1802, i64 2
  %1804 = load i8, ptr %1803, align 2, !tbaa !9
  %1805 = zext i8 %1804 to i32
  %1806 = ashr i32 %1805, 4
  %1807 = and i32 %1806, 15
  %1808 = trunc i32 %1807 to i8
  %1809 = load ptr, ptr %4, align 8, !tbaa !5
  %1810 = getelementptr inbounds i8, ptr %1809, i64 63
  store i8 %1808, ptr %1810, align 1, !tbaa !9
  %1811 = load ptr, ptr %3, align 8, !tbaa !5
  %1812 = getelementptr inbounds %struct.Drone, ptr %1811, i32 0, i32 7
  %1813 = getelementptr inbounds %struct.PressureSensor, ptr %1812, i32 0, i32 0
  %1814 = getelementptr inbounds [2 x i32], ptr %1813, i64 0, i64 1
  %1815 = getelementptr inbounds i8, ptr %1814, i64 0
  %1816 = load i8, ptr %1815, align 4, !tbaa !9
  %1817 = zext i8 %1816 to i32
  %1818 = shl i32 %1817, 4
  %1819 = and i32 %1818, 240
  %1820 = load ptr, ptr %4, align 8, !tbaa !5
  %1821 = getelementptr inbounds i8, ptr %1820, i64 63
  %1822 = load i8, ptr %1821, align 1, !tbaa !9
  %1823 = zext i8 %1822 to i32
  %1824 = or i32 %1823, %1819
  %1825 = trunc i32 %1824 to i8
  store i8 %1825, ptr %1821, align 1, !tbaa !9
  %1826 = load ptr, ptr %3, align 8, !tbaa !5
  %1827 = getelementptr inbounds %struct.Drone, ptr %1826, i32 0, i32 7
  %1828 = getelementptr inbounds %struct.PressureSensor, ptr %1827, i32 0, i32 0
  %1829 = getelementptr inbounds [2 x i32], ptr %1828, i64 0, i64 1
  %1830 = getelementptr inbounds i8, ptr %1829, i64 0
  %1831 = load i8, ptr %1830, align 4, !tbaa !9
  %1832 = zext i8 %1831 to i32
  %1833 = ashr i32 %1832, 4
  %1834 = and i32 %1833, 15
  %1835 = trunc i32 %1834 to i8
  %1836 = load ptr, ptr %4, align 8, !tbaa !5
  %1837 = getelementptr inbounds i8, ptr %1836, i64 64
  store i8 %1835, ptr %1837, align 1, !tbaa !9
  %1838 = load ptr, ptr %3, align 8, !tbaa !5
  %1839 = getelementptr inbounds %struct.Drone, ptr %1838, i32 0, i32 7
  %1840 = getelementptr inbounds %struct.PressureSensor, ptr %1839, i32 0, i32 0
  %1841 = getelementptr inbounds [2 x i32], ptr %1840, i64 0, i64 1
  %1842 = getelementptr inbounds i8, ptr %1841, i64 1
  %1843 = load i8, ptr %1842, align 1, !tbaa !9
  %1844 = zext i8 %1843 to i32
  %1845 = shl i32 %1844, 4
  %1846 = and i32 %1845, 240
  %1847 = load ptr, ptr %4, align 8, !tbaa !5
  %1848 = getelementptr inbounds i8, ptr %1847, i64 64
  %1849 = load i8, ptr %1848, align 1, !tbaa !9
  %1850 = zext i8 %1849 to i32
  %1851 = or i32 %1850, %1846
  %1852 = trunc i32 %1851 to i8
  store i8 %1852, ptr %1848, align 1, !tbaa !9
  %1853 = load ptr, ptr %3, align 8, !tbaa !5
  %1854 = getelementptr inbounds %struct.Drone, ptr %1853, i32 0, i32 7
  %1855 = getelementptr inbounds %struct.PressureSensor, ptr %1854, i32 0, i32 0
  %1856 = getelementptr inbounds [2 x i32], ptr %1855, i64 0, i64 1
  %1857 = getelementptr inbounds i8, ptr %1856, i64 1
  %1858 = load i8, ptr %1857, align 1, !tbaa !9
  %1859 = zext i8 %1858 to i32
  %1860 = ashr i32 %1859, 4
  %1861 = and i32 %1860, 15
  %1862 = trunc i32 %1861 to i8
  %1863 = load ptr, ptr %4, align 8, !tbaa !5
  %1864 = getelementptr inbounds i8, ptr %1863, i64 65
  store i8 %1862, ptr %1864, align 1, !tbaa !9
  %1865 = load ptr, ptr %3, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.Drone, ptr %1865, i32 0, i32 7
  %1867 = getelementptr inbounds %struct.PressureSensor, ptr %1866, i32 0, i32 0
  %1868 = getelementptr inbounds [2 x i32], ptr %1867, i64 0, i64 1
  %1869 = getelementptr inbounds i8, ptr %1868, i64 2
  %1870 = load i8, ptr %1869, align 2, !tbaa !9
  %1871 = zext i8 %1870 to i32
  %1872 = shl i32 %1871, 4
  %1873 = and i32 %1872, 240
  %1874 = load ptr, ptr %4, align 8, !tbaa !5
  %1875 = getelementptr inbounds i8, ptr %1874, i64 65
  %1876 = load i8, ptr %1875, align 1, !tbaa !9
  %1877 = zext i8 %1876 to i32
  %1878 = or i32 %1877, %1873
  %1879 = trunc i32 %1878 to i8
  store i8 %1879, ptr %1875, align 1, !tbaa !9
  %1880 = load ptr, ptr %3, align 8, !tbaa !5
  %1881 = getelementptr inbounds %struct.Drone, ptr %1880, i32 0, i32 7
  %1882 = getelementptr inbounds %struct.PressureSensor, ptr %1881, i32 0, i32 0
  %1883 = getelementptr inbounds [2 x i32], ptr %1882, i64 0, i64 1
  %1884 = getelementptr inbounds i8, ptr %1883, i64 2
  %1885 = load i8, ptr %1884, align 2, !tbaa !9
  %1886 = zext i8 %1885 to i32
  %1887 = ashr i32 %1886, 4
  %1888 = and i32 %1887, 15
  %1889 = trunc i32 %1888 to i8
  %1890 = load ptr, ptr %4, align 8, !tbaa !5
  %1891 = getelementptr inbounds i8, ptr %1890, i64 66
  store i8 %1889, ptr %1891, align 1, !tbaa !9
  ret i32 0
}

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

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

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


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

; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable
define dso_local noundef i32 @EncodeDrone(ptr noundef readonly %0, ptr noundef writeonly %1) local_unnamed_addr #0 {
  %3 = load i8, ptr %0, align 4, !tbaa !5
  %4 = and i8 %3, 7
  store i8 %4, ptr %1, align 1, !tbaa !5
  %5 = getelementptr inbounds i8, ptr %0, i64 4
  %6 = load i8, ptr %5, align 4, !tbaa !5
  %7 = shl i8 %6, 3
  %8 = or disjoint i8 %7, %4
  store i8 %8, ptr %1, align 1, !tbaa !5
  %9 = load i8, ptr %5, align 4, !tbaa !5
  %10 = lshr i8 %9, 5
  %11 = getelementptr inbounds i8, ptr %1, i64 1
  store i8 %10, ptr %11, align 1, !tbaa !5
  %12 = getelementptr inbounds i8, ptr %0, i64 5
  %13 = load i8, ptr %12, align 1, !tbaa !5
  %14 = shl i8 %13, 3
  %15 = or disjoint i8 %14, %10
  store i8 %15, ptr %11, align 1, !tbaa !5
  %16 = load i8, ptr %12, align 1, !tbaa !5
  %17 = lshr i8 %16, 5
  %18 = getelementptr inbounds i8, ptr %1, i64 2
  store i8 %17, ptr %18, align 1, !tbaa !5
  %19 = getelementptr inbounds i8, ptr %0, i64 6
  %20 = load i8, ptr %19, align 2, !tbaa !5
  %21 = shl i8 %20, 3
  %22 = or disjoint i8 %21, %17
  store i8 %22, ptr %18, align 1, !tbaa !5
  %23 = load i8, ptr %19, align 2, !tbaa !5
  %24 = lshr i8 %23, 5
  %25 = getelementptr inbounds i8, ptr %1, i64 3
  store i8 %24, ptr %25, align 1, !tbaa !5
  %26 = getelementptr inbounds i8, ptr %0, i64 7
  %27 = load i8, ptr %26, align 1, !tbaa !5
  %28 = shl i8 %27, 3
  %29 = or disjoint i8 %28, %24
  store i8 %29, ptr %25, align 1, !tbaa !5
  %30 = load i8, ptr %26, align 1, !tbaa !5
  %31 = lshr i8 %30, 5
  %32 = getelementptr inbounds i8, ptr %1, i64 4
  store i8 %31, ptr %32, align 1, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %0, i64 8
  %34 = load i8, ptr %33, align 4, !tbaa !5
  %35 = shl i8 %34, 3
  %36 = or disjoint i8 %35, %31
  store i8 %36, ptr %32, align 1, !tbaa !5
  %37 = load i8, ptr %33, align 4, !tbaa !5
  %38 = lshr i8 %37, 5
  %39 = getelementptr inbounds i8, ptr %1, i64 5
  store i8 %38, ptr %39, align 1, !tbaa !5
  %40 = getelementptr inbounds i8, ptr %0, i64 9
  %41 = load i8, ptr %40, align 1, !tbaa !5
  %42 = shl i8 %41, 3
  %43 = or disjoint i8 %42, %38
  store i8 %43, ptr %39, align 1, !tbaa !5
  %44 = load i8, ptr %40, align 1, !tbaa !5
  %45 = lshr i8 %44, 5
  %46 = getelementptr inbounds i8, ptr %1, i64 6
  store i8 %45, ptr %46, align 1, !tbaa !5
  %47 = getelementptr inbounds i8, ptr %0, i64 10
  %48 = load i8, ptr %47, align 2, !tbaa !5
  %49 = shl i8 %48, 3
  %50 = or disjoint i8 %49, %45
  store i8 %50, ptr %46, align 1, !tbaa !5
  %51 = load i8, ptr %47, align 2, !tbaa !5
  %52 = lshr i8 %51, 5
  %53 = getelementptr inbounds i8, ptr %1, i64 7
  store i8 %52, ptr %53, align 1, !tbaa !5
  %54 = getelementptr inbounds i8, ptr %0, i64 11
  %55 = load i8, ptr %54, align 1, !tbaa !5
  %56 = shl i8 %55, 3
  %57 = or disjoint i8 %56, %52
  store i8 %57, ptr %53, align 1, !tbaa !5
  %58 = load i8, ptr %54, align 1, !tbaa !5
  %59 = lshr i8 %58, 5
  %60 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 %59, ptr %60, align 1, !tbaa !5
  %61 = getelementptr inbounds i8, ptr %0, i64 12
  %62 = load i8, ptr %61, align 4, !tbaa !5
  %63 = shl i8 %62, 3
  %64 = or disjoint i8 %63, %59
  store i8 %64, ptr %60, align 1, !tbaa !5
  %65 = load i8, ptr %61, align 4, !tbaa !5
  %66 = lshr i8 %65, 5
  %67 = getelementptr inbounds i8, ptr %1, i64 9
  store i8 %66, ptr %67, align 1, !tbaa !5
  %68 = getelementptr inbounds i8, ptr %0, i64 13
  %69 = load i8, ptr %68, align 1, !tbaa !5
  %70 = shl i8 %69, 3
  %71 = or disjoint i8 %70, %66
  store i8 %71, ptr %67, align 1, !tbaa !5
  %72 = load i8, ptr %68, align 1, !tbaa !5
  %73 = lshr i8 %72, 5
  %74 = getelementptr inbounds i8, ptr %1, i64 10
  store i8 %73, ptr %74, align 1, !tbaa !5
  %75 = getelementptr inbounds i8, ptr %0, i64 14
  %76 = load i8, ptr %75, align 2, !tbaa !5
  %77 = shl i8 %76, 3
  %78 = or disjoint i8 %77, %73
  store i8 %78, ptr %74, align 1, !tbaa !5
  %79 = load i8, ptr %75, align 2, !tbaa !5
  %80 = lshr i8 %79, 5
  %81 = getelementptr inbounds i8, ptr %1, i64 11
  store i8 %80, ptr %81, align 1, !tbaa !5
  %82 = getelementptr inbounds i8, ptr %0, i64 15
  %83 = load i8, ptr %82, align 1, !tbaa !5
  %84 = shl i8 %83, 3
  %85 = or disjoint i8 %84, %80
  store i8 %85, ptr %81, align 1, !tbaa !5
  %86 = load i8, ptr %82, align 1, !tbaa !5
  %87 = lshr i8 %86, 5
  %88 = getelementptr inbounds i8, ptr %1, i64 12
  store i8 %87, ptr %88, align 1, !tbaa !5
  %89 = getelementptr inbounds i8, ptr %0, i64 16
  %90 = load i8, ptr %89, align 4, !tbaa !5
  %91 = shl i8 %90, 3
  %92 = or disjoint i8 %91, %87
  store i8 %92, ptr %88, align 1, !tbaa !5
  %93 = load i8, ptr %89, align 4, !tbaa !5
  %94 = lshr i8 %93, 5
  %95 = getelementptr inbounds i8, ptr %1, i64 13
  store i8 %94, ptr %95, align 1, !tbaa !5
  %96 = getelementptr inbounds i8, ptr %0, i64 17
  %97 = load i8, ptr %96, align 1, !tbaa !5
  %98 = shl i8 %97, 3
  %99 = or disjoint i8 %98, %94
  store i8 %99, ptr %95, align 1, !tbaa !5
  %100 = load i8, ptr %96, align 1, !tbaa !5
  %101 = lshr i8 %100, 5
  %102 = getelementptr inbounds i8, ptr %1, i64 14
  store i8 %101, ptr %102, align 1, !tbaa !5
  %103 = getelementptr inbounds i8, ptr %0, i64 18
  %104 = load i8, ptr %103, align 2, !tbaa !5
  %105 = shl i8 %104, 3
  %106 = or disjoint i8 %105, %101
  store i8 %106, ptr %102, align 1, !tbaa !5
  %107 = load i8, ptr %103, align 2, !tbaa !5
  %108 = lshr i8 %107, 5
  %109 = getelementptr inbounds i8, ptr %1, i64 15
  store i8 %108, ptr %109, align 1, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %0, i64 19
  %111 = load i8, ptr %110, align 1, !tbaa !5
  %112 = shl i8 %111, 3
  %113 = or disjoint i8 %112, %108
  store i8 %113, ptr %109, align 1, !tbaa !5
  %114 = load i8, ptr %110, align 1, !tbaa !5
  %115 = lshr i8 %114, 5
  %116 = getelementptr inbounds i8, ptr %1, i64 16
  store i8 %115, ptr %116, align 1, !tbaa !5
  %117 = getelementptr inbounds i8, ptr %0, i64 20
  %118 = load i8, ptr %117, align 4, !tbaa !5
  %119 = shl i8 %118, 3
  %120 = or disjoint i8 %119, %115
  store i8 %120, ptr %116, align 1, !tbaa !5
  %121 = load i8, ptr %117, align 4, !tbaa !5
  %122 = lshr i8 %121, 5
  %123 = getelementptr inbounds i8, ptr %1, i64 17
  store i8 %122, ptr %123, align 1, !tbaa !5
  %124 = getelementptr inbounds i8, ptr %0, i64 21
  %125 = load i8, ptr %124, align 1, !tbaa !5
  %126 = shl i8 %125, 3
  %127 = or disjoint i8 %126, %122
  store i8 %127, ptr %123, align 1, !tbaa !5
  %128 = load i8, ptr %124, align 1, !tbaa !5
  %129 = lshr i8 %128, 5
  %130 = getelementptr inbounds i8, ptr %1, i64 18
  store i8 %129, ptr %130, align 1, !tbaa !5
  %131 = getelementptr inbounds i8, ptr %0, i64 22
  %132 = load i8, ptr %131, align 2, !tbaa !5
  %133 = shl i8 %132, 3
  %134 = or disjoint i8 %133, %129
  store i8 %134, ptr %130, align 1, !tbaa !5
  %135 = load i8, ptr %131, align 2, !tbaa !5
  %136 = lshr i8 %135, 5
  %137 = getelementptr inbounds i8, ptr %1, i64 19
  store i8 %136, ptr %137, align 1, !tbaa !5
  %138 = getelementptr inbounds i8, ptr %0, i64 23
  %139 = load i8, ptr %138, align 1, !tbaa !5
  %140 = shl i8 %139, 3
  %141 = or disjoint i8 %140, %136
  store i8 %141, ptr %137, align 1, !tbaa !5
  %142 = load i8, ptr %138, align 1, !tbaa !5
  %143 = lshr i8 %142, 5
  %144 = getelementptr inbounds i8, ptr %1, i64 20
  store i8 %143, ptr %144, align 1, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %0, i64 24
  %146 = load i8, ptr %145, align 4, !tbaa !5
  %147 = shl i8 %146, 3
  %148 = or disjoint i8 %147, %143
  store i8 %148, ptr %144, align 1, !tbaa !5
  %149 = load i8, ptr %145, align 4, !tbaa !5
  %150 = lshr i8 %149, 5
  %151 = getelementptr inbounds i8, ptr %1, i64 21
  store i8 %150, ptr %151, align 1, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %0, i64 25
  %153 = load i8, ptr %152, align 1, !tbaa !5
  %154 = shl i8 %153, 3
  %155 = or disjoint i8 %154, %150
  store i8 %155, ptr %151, align 1, !tbaa !5
  %156 = load i8, ptr %152, align 1, !tbaa !5
  %157 = lshr i8 %156, 5
  %158 = getelementptr inbounds i8, ptr %1, i64 22
  store i8 %157, ptr %158, align 1, !tbaa !5
  %159 = getelementptr inbounds i8, ptr %0, i64 26
  %160 = load i8, ptr %159, align 2, !tbaa !5
  %161 = shl i8 %160, 3
  %162 = or disjoint i8 %161, %157
  store i8 %162, ptr %158, align 1, !tbaa !5
  %163 = load i8, ptr %159, align 2, !tbaa !5
  %164 = lshr i8 %163, 5
  %165 = getelementptr inbounds i8, ptr %1, i64 23
  store i8 %164, ptr %165, align 1, !tbaa !5
  %166 = getelementptr inbounds i8, ptr %0, i64 27
  %167 = load i8, ptr %166, align 1, !tbaa !5
  %168 = shl i8 %167, 3
  %169 = or disjoint i8 %168, %164
  store i8 %169, ptr %165, align 1, !tbaa !5
  %170 = load i8, ptr %166, align 1, !tbaa !5
  %171 = lshr i8 %170, 5
  %172 = getelementptr inbounds i8, ptr %1, i64 24
  store i8 %171, ptr %172, align 1, !tbaa !5
  %173 = getelementptr inbounds i8, ptr %0, i64 28
  %174 = load i8, ptr %173, align 4, !tbaa !5
  %175 = shl i8 %174, 3
  %176 = or disjoint i8 %175, %171
  store i8 %176, ptr %172, align 1, !tbaa !5
  %177 = load i8, ptr %173, align 4, !tbaa !5
  %178 = lshr i8 %177, 5
  %179 = getelementptr inbounds i8, ptr %1, i64 25
  store i8 %178, ptr %179, align 1, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %0, i64 29
  %181 = load i8, ptr %180, align 1, !tbaa !5
  %182 = shl i8 %181, 3
  %183 = or disjoint i8 %182, %178
  store i8 %183, ptr %179, align 1, !tbaa !5
  %184 = load i8, ptr %180, align 1, !tbaa !5
  %185 = lshr i8 %184, 5
  %186 = getelementptr inbounds i8, ptr %1, i64 26
  store i8 %185, ptr %186, align 1, !tbaa !5
  %187 = getelementptr inbounds i8, ptr %0, i64 30
  %188 = load i8, ptr %187, align 2, !tbaa !5
  %189 = shl i8 %188, 3
  %190 = or disjoint i8 %189, %185
  store i8 %190, ptr %186, align 1, !tbaa !5
  %191 = load i8, ptr %187, align 2, !tbaa !5
  %192 = lshr i8 %191, 5
  %193 = getelementptr inbounds i8, ptr %1, i64 27
  store i8 %192, ptr %193, align 1, !tbaa !5
  %194 = getelementptr inbounds i8, ptr %0, i64 31
  %195 = load i8, ptr %194, align 1, !tbaa !5
  %196 = shl i8 %195, 3
  %197 = or disjoint i8 %196, %192
  store i8 %197, ptr %193, align 1, !tbaa !5
  %198 = load i8, ptr %194, align 1, !tbaa !5
  %199 = lshr i8 %198, 5
  %200 = getelementptr inbounds i8, ptr %1, i64 28
  store i8 %199, ptr %200, align 1, !tbaa !5
  %201 = getelementptr inbounds i8, ptr %0, i64 32
  %202 = load i8, ptr %201, align 4, !tbaa !5
  %203 = shl i8 %202, 3
  %204 = or disjoint i8 %203, %199
  store i8 %204, ptr %200, align 1, !tbaa !5
  %205 = load i8, ptr %201, align 4, !tbaa !5
  %206 = lshr i8 %205, 5
  %207 = getelementptr inbounds i8, ptr %1, i64 29
  store i8 %206, ptr %207, align 1, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %0, i64 33
  %209 = load i8, ptr %208, align 1, !tbaa !5
  %210 = shl i8 %209, 3
  %211 = or disjoint i8 %210, %206
  store i8 %211, ptr %207, align 1, !tbaa !5
  %212 = load i8, ptr %208, align 1, !tbaa !5
  %213 = lshr i8 %212, 5
  %214 = getelementptr inbounds i8, ptr %1, i64 30
  store i8 %213, ptr %214, align 1, !tbaa !5
  %215 = getelementptr inbounds i8, ptr %0, i64 34
  %216 = load i8, ptr %215, align 2, !tbaa !5
  %217 = shl i8 %216, 3
  %218 = or disjoint i8 %217, %213
  store i8 %218, ptr %214, align 1, !tbaa !5
  %219 = load i8, ptr %215, align 2, !tbaa !5
  %220 = lshr i8 %219, 5
  %221 = getelementptr inbounds i8, ptr %1, i64 31
  store i8 %220, ptr %221, align 1, !tbaa !5
  %222 = getelementptr inbounds i8, ptr %0, i64 35
  %223 = load i8, ptr %222, align 1, !tbaa !5
  %224 = shl i8 %223, 3
  %225 = or disjoint i8 %224, %220
  store i8 %225, ptr %221, align 1, !tbaa !5
  %226 = load i8, ptr %222, align 1, !tbaa !5
  %227 = lshr i8 %226, 5
  %228 = getelementptr inbounds i8, ptr %1, i64 32
  store i8 %227, ptr %228, align 1, !tbaa !5
  %229 = getelementptr inbounds i8, ptr %0, i64 36
  %230 = load i8, ptr %229, align 4, !tbaa !5
  %231 = shl i8 %230, 3
  %232 = or disjoint i8 %231, %227
  store i8 %232, ptr %228, align 1, !tbaa !5
  %233 = load i8, ptr %229, align 4, !tbaa !5
  %234 = lshr i8 %233, 5
  %235 = getelementptr inbounds i8, ptr %1, i64 33
  store i8 %234, ptr %235, align 1, !tbaa !5
  %236 = getelementptr inbounds i8, ptr %0, i64 37
  %237 = load i8, ptr %236, align 1, !tbaa !5
  %238 = shl i8 %237, 3
  %239 = or disjoint i8 %238, %234
  store i8 %239, ptr %235, align 1, !tbaa !5
  %240 = load i8, ptr %236, align 1, !tbaa !5
  %241 = lshr i8 %240, 5
  %242 = getelementptr inbounds i8, ptr %1, i64 34
  store i8 %241, ptr %242, align 1, !tbaa !5
  %243 = getelementptr inbounds i8, ptr %0, i64 38
  %244 = load i8, ptr %243, align 2, !tbaa !5
  %245 = shl i8 %244, 3
  %246 = or disjoint i8 %245, %241
  store i8 %246, ptr %242, align 1, !tbaa !5
  %247 = load i8, ptr %243, align 2, !tbaa !5
  %248 = lshr i8 %247, 5
  %249 = getelementptr inbounds i8, ptr %1, i64 35
  store i8 %248, ptr %249, align 1, !tbaa !5
  %250 = getelementptr inbounds i8, ptr %0, i64 39
  %251 = load i8, ptr %250, align 1, !tbaa !5
  %252 = shl i8 %251, 3
  %253 = or disjoint i8 %252, %248
  store i8 %253, ptr %249, align 1, !tbaa !5
  %254 = load i8, ptr %250, align 1, !tbaa !5
  %255 = lshr i8 %254, 5
  %256 = getelementptr inbounds i8, ptr %1, i64 36
  store i8 %255, ptr %256, align 1, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %0, i64 40
  %258 = load i8, ptr %257, align 4, !tbaa !5
  %259 = shl i8 %258, 3
  %260 = or disjoint i8 %259, %255
  store i8 %260, ptr %256, align 1, !tbaa !5
  %261 = load i8, ptr %257, align 4, !tbaa !5
  %262 = lshr i8 %261, 5
  %263 = getelementptr inbounds i8, ptr %1, i64 37
  store i8 %262, ptr %263, align 1, !tbaa !5
  %264 = getelementptr inbounds i8, ptr %0, i64 41
  %265 = load i8, ptr %264, align 1, !tbaa !5
  %266 = shl i8 %265, 3
  %267 = or disjoint i8 %266, %262
  store i8 %267, ptr %263, align 1, !tbaa !5
  %268 = load i8, ptr %264, align 1, !tbaa !5
  %269 = lshr i8 %268, 5
  %270 = getelementptr inbounds i8, ptr %1, i64 38
  store i8 %269, ptr %270, align 1, !tbaa !5
  %271 = getelementptr inbounds i8, ptr %0, i64 42
  %272 = load i8, ptr %271, align 2, !tbaa !5
  %273 = shl i8 %272, 3
  %274 = or disjoint i8 %273, %269
  store i8 %274, ptr %270, align 1, !tbaa !5
  %275 = load i8, ptr %271, align 2, !tbaa !5
  %276 = lshr i8 %275, 5
  %277 = getelementptr inbounds i8, ptr %1, i64 39
  store i8 %276, ptr %277, align 1, !tbaa !5
  %278 = getelementptr inbounds i8, ptr %0, i64 43
  %279 = load i8, ptr %278, align 1, !tbaa !5
  %280 = shl i8 %279, 3
  %281 = or disjoint i8 %280, %276
  store i8 %281, ptr %277, align 1, !tbaa !5
  %282 = load i8, ptr %278, align 1, !tbaa !5
  %283 = lshr i8 %282, 5
  %284 = getelementptr inbounds i8, ptr %1, i64 40
  store i8 %283, ptr %284, align 1, !tbaa !5
  %285 = getelementptr inbounds i8, ptr %0, i64 44
  %286 = load i8, ptr %285, align 4, !tbaa !5
  %287 = shl i8 %286, 3
  %288 = or disjoint i8 %287, %283
  store i8 %288, ptr %284, align 1, !tbaa !5
  %289 = load i8, ptr %285, align 4, !tbaa !5
  %290 = lshr i8 %289, 5
  %291 = getelementptr inbounds i8, ptr %1, i64 41
  store i8 %290, ptr %291, align 1, !tbaa !5
  %292 = getelementptr inbounds i8, ptr %0, i64 45
  %293 = load i8, ptr %292, align 1, !tbaa !5
  %294 = shl i8 %293, 3
  %295 = or disjoint i8 %294, %290
  store i8 %295, ptr %291, align 1, !tbaa !5
  %296 = load i8, ptr %292, align 1, !tbaa !5
  %297 = lshr i8 %296, 5
  %298 = getelementptr inbounds i8, ptr %1, i64 42
  store i8 %297, ptr %298, align 1, !tbaa !5
  %299 = getelementptr inbounds i8, ptr %0, i64 46
  %300 = load i8, ptr %299, align 2, !tbaa !5
  %301 = shl i8 %300, 3
  %302 = or disjoint i8 %301, %297
  store i8 %302, ptr %298, align 1, !tbaa !5
  %303 = load i8, ptr %299, align 2, !tbaa !5
  %304 = lshr i8 %303, 5
  %305 = getelementptr inbounds i8, ptr %1, i64 43
  store i8 %304, ptr %305, align 1, !tbaa !5
  %306 = getelementptr inbounds i8, ptr %0, i64 47
  %307 = load i8, ptr %306, align 1, !tbaa !5
  %308 = shl i8 %307, 3
  %309 = or disjoint i8 %308, %304
  store i8 %309, ptr %305, align 1, !tbaa !5
  %310 = load i8, ptr %306, align 1, !tbaa !5
  %311 = lshr i8 %310, 5
  %312 = getelementptr inbounds i8, ptr %1, i64 44
  store i8 %311, ptr %312, align 1, !tbaa !5
  %313 = getelementptr inbounds i8, ptr %0, i64 48
  %314 = load i8, ptr %313, align 4, !tbaa !5
  %315 = shl i8 %314, 3
  %316 = or disjoint i8 %315, %311
  store i8 %316, ptr %312, align 1, !tbaa !5
  %317 = load i8, ptr %313, align 4, !tbaa !5
  %318 = lshr i8 %317, 5
  %319 = getelementptr inbounds i8, ptr %1, i64 45
  store i8 %318, ptr %319, align 1, !tbaa !5
  %320 = getelementptr inbounds i8, ptr %0, i64 49
  %321 = load i8, ptr %320, align 1, !tbaa !5
  %322 = shl i8 %321, 3
  %323 = or disjoint i8 %322, %318
  store i8 %323, ptr %319, align 1, !tbaa !5
  %324 = load i8, ptr %320, align 1, !tbaa !5
  %325 = lshr i8 %324, 5
  %326 = getelementptr inbounds i8, ptr %1, i64 46
  store i8 %325, ptr %326, align 1, !tbaa !5
  %327 = getelementptr inbounds i8, ptr %0, i64 50
  %328 = load i8, ptr %327, align 2, !tbaa !5
  %329 = shl i8 %328, 3
  %330 = or disjoint i8 %329, %325
  store i8 %330, ptr %326, align 1, !tbaa !5
  %331 = load i8, ptr %327, align 2, !tbaa !5
  %332 = lshr i8 %331, 5
  %333 = getelementptr inbounds i8, ptr %1, i64 47
  store i8 %332, ptr %333, align 1, !tbaa !5
  %334 = getelementptr inbounds i8, ptr %0, i64 51
  %335 = load i8, ptr %334, align 1, !tbaa !5
  %336 = shl i8 %335, 3
  %337 = or disjoint i8 %336, %332
  store i8 %337, ptr %333, align 1, !tbaa !5
  %338 = load i8, ptr %334, align 1, !tbaa !5
  %339 = lshr i8 %338, 5
  %340 = getelementptr inbounds i8, ptr %1, i64 48
  store i8 %339, ptr %340, align 1, !tbaa !5
  %341 = getelementptr inbounds i8, ptr %0, i64 52
  %342 = load i8, ptr %341, align 4, !tbaa !5
  %343 = shl i8 %342, 3
  %344 = or disjoint i8 %343, %339
  store i8 %344, ptr %340, align 1, !tbaa !5
  %345 = load i8, ptr %341, align 4, !tbaa !5
  %346 = lshr i8 %345, 5
  %347 = getelementptr inbounds i8, ptr %1, i64 49
  store i8 %346, ptr %347, align 1, !tbaa !5
  %348 = getelementptr inbounds i8, ptr %0, i64 53
  %349 = load i8, ptr %348, align 1, !tbaa !5
  %350 = shl i8 %349, 3
  %351 = and i8 %350, 24
  %352 = or disjoint i8 %351, %346
  store i8 %352, ptr %347, align 1, !tbaa !5
  %353 = getelementptr inbounds i8, ptr %0, i64 54
  %354 = load i8, ptr %353, align 2, !tbaa !5
  %355 = shl i8 %354, 5
  %356 = and i8 %355, 96
  %357 = or disjoint i8 %356, %352
  store i8 %357, ptr %347, align 1, !tbaa !5
  %358 = getelementptr inbounds i8, ptr %0, i64 55
  %359 = load i8, ptr %358, align 1, !tbaa !5
  %360 = shl i8 %359, 7
  %361 = or disjoint i8 %360, %357
  store i8 %361, ptr %347, align 1, !tbaa !5
  %362 = load i8, ptr %358, align 1, !tbaa !5
  %363 = lshr i8 %362, 1
  %364 = getelementptr inbounds i8, ptr %1, i64 50
  store i8 %363, ptr %364, align 1, !tbaa !5
  %365 = getelementptr inbounds i8, ptr %0, i64 56
  %366 = load i8, ptr %365, align 1, !tbaa !5
  %367 = shl i8 %366, 7
  %368 = or disjoint i8 %367, %363
  store i8 %368, ptr %364, align 1, !tbaa !5
  %369 = load i8, ptr %365, align 1, !tbaa !5
  %370 = lshr i8 %369, 1
  %371 = and i8 %370, 1
  %372 = getelementptr inbounds i8, ptr %1, i64 51
  store i8 %371, ptr %372, align 1, !tbaa !5
  %373 = getelementptr inbounds i8, ptr %0, i64 57
  %374 = load i8, ptr %373, align 1, !tbaa !5
  %375 = shl i8 %374, 1
  %376 = and i8 %375, 6
  %377 = or disjoint i8 %376, %371
  store i8 %377, ptr %372, align 1, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %0, i64 58
  %379 = load i8, ptr %378, align 2, !tbaa !5
  %380 = shl i8 %379, 3
  %381 = or disjoint i8 %380, %377
  store i8 %381, ptr %372, align 1, !tbaa !5
  %382 = load i8, ptr %378, align 2, !tbaa !5
  %383 = lshr i8 %382, 5
  %384 = getelementptr inbounds i8, ptr %1, i64 52
  store i8 %383, ptr %384, align 1, !tbaa !5
  %385 = getelementptr inbounds i8, ptr %0, i64 59
  %386 = load i8, ptr %385, align 1, !tbaa !5
  %387 = shl i8 %386, 3
  %388 = and i8 %387, 24
  %389 = or disjoint i8 %388, %383
  store i8 %389, ptr %384, align 1, !tbaa !5
  %390 = getelementptr inbounds i8, ptr %0, i64 60
  %391 = load i8, ptr %390, align 2, !tbaa !5
  %392 = shl i8 %391, 5
  %393 = and i8 %392, 96
  %394 = or disjoint i8 %393, %389
  store i8 %394, ptr %384, align 1, !tbaa !5
  %395 = getelementptr inbounds i8, ptr %0, i64 61
  %396 = load i8, ptr %395, align 1, !tbaa !5
  %397 = shl i8 %396, 7
  %398 = or disjoint i8 %397, %394
  store i8 %398, ptr %384, align 1, !tbaa !5
  %399 = load i8, ptr %395, align 1, !tbaa !5
  %400 = lshr i8 %399, 1
  %401 = getelementptr inbounds i8, ptr %1, i64 53
  store i8 %400, ptr %401, align 1, !tbaa !5
  %402 = getelementptr inbounds i8, ptr %0, i64 62
  %403 = load i8, ptr %402, align 1, !tbaa !5
  %404 = shl i8 %403, 7
  %405 = or disjoint i8 %404, %400
  store i8 %405, ptr %401, align 1, !tbaa !5
  %406 = load i8, ptr %402, align 1, !tbaa !5
  %407 = lshr i8 %406, 1
  %408 = and i8 %407, 1
  %409 = getelementptr inbounds i8, ptr %1, i64 54
  store i8 %408, ptr %409, align 1, !tbaa !5
  %410 = getelementptr inbounds i8, ptr %0, i64 63
  %411 = load i8, ptr %410, align 1, !tbaa !5
  %412 = shl i8 %411, 1
  %413 = and i8 %412, 6
  %414 = or disjoint i8 %413, %408
  store i8 %414, ptr %409, align 1, !tbaa !5
  %415 = getelementptr inbounds i8, ptr %0, i64 64
  %416 = load i8, ptr %415, align 4, !tbaa !5
  %417 = shl i8 %416, 3
  %418 = or disjoint i8 %417, %414
  store i8 %418, ptr %409, align 1, !tbaa !5
  %419 = load i8, ptr %415, align 4, !tbaa !5
  %420 = lshr i8 %419, 5
  %421 = getelementptr inbounds i8, ptr %1, i64 55
  store i8 %420, ptr %421, align 1, !tbaa !5
  %422 = getelementptr inbounds i8, ptr %0, i64 65
  %423 = load i8, ptr %422, align 1, !tbaa !5
  %424 = shl i8 %423, 3
  %425 = and i8 %424, 24
  %426 = or disjoint i8 %425, %420
  store i8 %426, ptr %421, align 1, !tbaa !5
  %427 = getelementptr inbounds i8, ptr %0, i64 66
  %428 = load i8, ptr %427, align 2, !tbaa !5
  %429 = shl i8 %428, 5
  %430 = and i8 %429, 32
  %431 = or disjoint i8 %430, %426
  store i8 %431, ptr %421, align 1, !tbaa !5
  %432 = getelementptr inbounds i8, ptr %0, i64 68
  %433 = load i8, ptr %432, align 4, !tbaa !5
  %434 = shl i8 %433, 6
  %435 = or disjoint i8 %434, %431
  store i8 %435, ptr %421, align 1, !tbaa !5
  %436 = load i8, ptr %432, align 4, !tbaa !5
  %437 = lshr i8 %436, 2
  %438 = and i8 %437, 3
  %439 = getelementptr inbounds i8, ptr %1, i64 56
  store i8 %438, ptr %439, align 1, !tbaa !5
  %440 = getelementptr inbounds i8, ptr %0, i64 72
  %441 = load i8, ptr %440, align 4, !tbaa !5
  %442 = shl i8 %441, 2
  %443 = or disjoint i8 %442, %438
  store i8 %443, ptr %439, align 1, !tbaa !5
  %444 = load i8, ptr %440, align 4, !tbaa !5
  %445 = lshr i8 %444, 6
  %446 = getelementptr inbounds i8, ptr %1, i64 57
  store i8 %445, ptr %446, align 1, !tbaa !5
  %447 = getelementptr inbounds i8, ptr %0, i64 73
  %448 = load i8, ptr %447, align 1, !tbaa !5
  %449 = shl i8 %448, 2
  %450 = or disjoint i8 %449, %445
  store i8 %450, ptr %446, align 1, !tbaa !5
  %451 = load i8, ptr %447, align 1, !tbaa !5
  %452 = lshr i8 %451, 6
  %453 = getelementptr inbounds i8, ptr %1, i64 58
  store i8 %452, ptr %453, align 1, !tbaa !5
  %454 = getelementptr inbounds i8, ptr %0, i64 74
  %455 = load i8, ptr %454, align 2, !tbaa !5
  %456 = shl i8 %455, 2
  %457 = or disjoint i8 %456, %452
  store i8 %457, ptr %453, align 1, !tbaa !5
  %458 = load i8, ptr %454, align 2, !tbaa !5
  %459 = lshr i8 %458, 6
  %460 = getelementptr inbounds i8, ptr %1, i64 59
  store i8 %459, ptr %460, align 1, !tbaa !5
  %461 = getelementptr inbounds i8, ptr %0, i64 75
  %462 = load i8, ptr %461, align 1, !tbaa !5
  %463 = shl i8 %462, 2
  %464 = or disjoint i8 %463, %459
  store i8 %464, ptr %460, align 1, !tbaa !5
  %465 = load i8, ptr %461, align 1, !tbaa !5
  %466 = lshr i8 %465, 6
  %467 = getelementptr inbounds i8, ptr %1, i64 60
  store i8 %466, ptr %467, align 1, !tbaa !5
  %468 = getelementptr inbounds i8, ptr %0, i64 76
  %469 = load i8, ptr %468, align 4, !tbaa !5
  %470 = shl i8 %469, 2
  %471 = and i8 %470, 12
  %472 = or disjoint i8 %471, %466
  store i8 %472, ptr %467, align 1, !tbaa !5
  %473 = getelementptr inbounds i8, ptr %0, i64 80
  %474 = load i8, ptr %473, align 4, !tbaa !5
  %475 = shl i8 %474, 4
  %476 = or disjoint i8 %475, %472
  store i8 %476, ptr %467, align 1, !tbaa !5
  %477 = load i8, ptr %473, align 4, !tbaa !5
  %478 = lshr i8 %477, 4
  %479 = getelementptr inbounds i8, ptr %1, i64 61
  store i8 %478, ptr %479, align 1, !tbaa !5
  %480 = getelementptr inbounds i8, ptr %0, i64 81
  %481 = load i8, ptr %480, align 1, !tbaa !5
  %482 = shl i8 %481, 4
  %483 = or disjoint i8 %482, %478
  store i8 %483, ptr %479, align 1, !tbaa !5
  %484 = load i8, ptr %480, align 1, !tbaa !5
  %485 = lshr i8 %484, 4
  %486 = getelementptr inbounds i8, ptr %1, i64 62
  store i8 %485, ptr %486, align 1, !tbaa !5
  %487 = getelementptr inbounds i8, ptr %0, i64 82
  %488 = load i8, ptr %487, align 2, !tbaa !5
  %489 = shl i8 %488, 4
  %490 = or disjoint i8 %489, %485
  store i8 %490, ptr %486, align 1, !tbaa !5
  %491 = load i8, ptr %487, align 2, !tbaa !5
  %492 = lshr i8 %491, 4
  %493 = getelementptr inbounds i8, ptr %1, i64 63
  store i8 %492, ptr %493, align 1, !tbaa !5
  %494 = getelementptr inbounds i8, ptr %0, i64 84
  %495 = load i8, ptr %494, align 4, !tbaa !5
  %496 = shl i8 %495, 4
  %497 = or disjoint i8 %496, %492
  store i8 %497, ptr %493, align 1, !tbaa !5
  %498 = load i8, ptr %494, align 4, !tbaa !5
  %499 = lshr i8 %498, 4
  %500 = getelementptr inbounds i8, ptr %1, i64 64
  store i8 %499, ptr %500, align 1, !tbaa !5
  %501 = getelementptr inbounds i8, ptr %0, i64 85
  %502 = load i8, ptr %501, align 1, !tbaa !5
  %503 = shl i8 %502, 4
  %504 = or disjoint i8 %503, %499
  store i8 %504, ptr %500, align 1, !tbaa !5
  %505 = load i8, ptr %501, align 1, !tbaa !5
  %506 = lshr i8 %505, 4
  %507 = getelementptr inbounds i8, ptr %1, i64 65
  store i8 %506, ptr %507, align 1, !tbaa !5
  %508 = getelementptr inbounds i8, ptr %0, i64 86
  %509 = load i8, ptr %508, align 2, !tbaa !5
  %510 = shl i8 %509, 4
  %511 = or disjoint i8 %510, %506
  store i8 %511, ptr %507, align 1, !tbaa !5
  %512 = load i8, ptr %508, align 2, !tbaa !5
  %513 = lshr i8 %512, 4
  %514 = getelementptr inbounds i8, ptr %1, i64 66
  store i8 %513, ptr %514, align 1, !tbaa !5
  ret i32 0
}

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

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

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


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