; LLVM IR from cvra/robot-software :: lib/cmp (cmp)

; 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.cmp_object_s = type { i8, %union.cmp_object_data_u }
%union.cmp_object_data_u = type { i64 }
%struct.cmp_ctx_s = type { i8, ptr, ptr, ptr }
%struct.cmp_ext_s = type { i8, i32 }

; Function Attrs: nounwind uwtable
declare hidden zeroext i16 @be16(i16 noundef zeroext) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @be32(i32 noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i64 @be64(i64 noundef) #0

; Function Attrs: nounwind uwtable
declare hidden float @befloat(float noundef) #0

; Function Attrs: nounwind uwtable
declare hidden double @bedouble(double noundef) #0

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

; Function Attrs: nounwind uwtable
define dso_local zeroext i1 @cmp_read_object(ptr noundef %0, ptr noundef %1) #0 {
  %3 = alloca i1, align 1
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca i32, align 4
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca i16, align 2
  %12 = alloca i8, align 1
  %13 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #2
  store i8 0, ptr %6, align 1, !tbaa !9
  %14 = load ptr, ptr %4, align 8, !tbaa !5
  %15 = call zeroext i1 @read_type_marker(ptr noundef %14, ptr noundef %6)
  br i1 %15, label %17, label %16

16:                                               ; preds = %2
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

17:                                               ; preds = %2
  %18 = load i8, ptr %6, align 1, !tbaa !9
  %19 = zext i8 %18 to i32
  %20 = icmp sle i32 %19, 127
  br i1 %20, label %21, label %27

21:                                               ; preds = %17
  %22 = load ptr, ptr %5, align 8, !tbaa !5
  %23 = getelementptr inbounds %struct.cmp_object_s, ptr %22, i32 0, i32 0
  store i8 0, ptr %23, align 8, !tbaa !10
  %24 = load i8, ptr %6, align 1, !tbaa !9
  %25 = load ptr, ptr %5, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.cmp_object_s, ptr %25, i32 0, i32 1
  store i8 %24, ptr %26, align 8, !tbaa !9
  br label %832

27:                                               ; preds = %17
  %28 = load i8, ptr %6, align 1, !tbaa !9
  %29 = zext i8 %28 to i32
  %30 = icmp sle i32 %29, 143
  br i1 %30, label %31, label %39

31:                                               ; preds = %27
  %32 = load ptr, ptr %5, align 8, !tbaa !5
  %33 = getelementptr inbounds %struct.cmp_object_s, ptr %32, i32 0, i32 0
  store i8 1, ptr %33, align 8, !tbaa !10
  %34 = load i8, ptr %6, align 1, !tbaa !9
  %35 = zext i8 %34 to i32
  %36 = and i32 %35, 15
  %37 = load ptr, ptr %5, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.cmp_object_s, ptr %37, i32 0, i32 1
  store i32 %36, ptr %38, align 8, !tbaa !9
  br label %831

39:                                               ; preds = %27
  %40 = load i8, ptr %6, align 1, !tbaa !9
  %41 = zext i8 %40 to i32
  %42 = icmp sle i32 %41, 159
  br i1 %42, label %43, label %51

43:                                               ; preds = %39
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.cmp_object_s, ptr %44, i32 0, i32 0
  store i8 2, ptr %45, align 8, !tbaa !10
  %46 = load i8, ptr %6, align 1, !tbaa !9
  %47 = zext i8 %46 to i32
  %48 = and i32 %47, 15
  %49 = load ptr, ptr %5, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.cmp_object_s, ptr %49, i32 0, i32 1
  store i32 %48, ptr %50, align 8, !tbaa !9
  br label %830

51:                                               ; preds = %39
  %52 = load i8, ptr %6, align 1, !tbaa !9
  %53 = zext i8 %52 to i32
  %54 = icmp sle i32 %53, 191
  br i1 %54, label %55, label %63

55:                                               ; preds = %51
  %56 = load ptr, ptr %5, align 8, !tbaa !5
  %57 = getelementptr inbounds %struct.cmp_object_s, ptr %56, i32 0, i32 0
  store i8 3, ptr %57, align 8, !tbaa !10
  %58 = load i8, ptr %6, align 1, !tbaa !9
  %59 = zext i8 %58 to i32
  %60 = and i32 %59, 31
  %61 = load ptr, ptr %5, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.cmp_object_s, ptr %61, i32 0, i32 1
  store i32 %60, ptr %62, align 8, !tbaa !9
  br label %829

63:                                               ; preds = %51
  %64 = load i8, ptr %6, align 1, !tbaa !9
  %65 = zext i8 %64 to i32
  %66 = icmp eq i32 %65, 192
  br i1 %66, label %67, label %72

67:                                               ; preds = %63
  %68 = load ptr, ptr %5, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.cmp_object_s, ptr %68, i32 0, i32 0
  store i8 4, ptr %69, align 8, !tbaa !10
  %70 = load ptr, ptr %5, align 8, !tbaa !5
  %71 = getelementptr inbounds %struct.cmp_object_s, ptr %70, i32 0, i32 1
  store i8 0, ptr %71, align 8, !tbaa !9
  br label %828

72:                                               ; preds = %63
  %73 = load i8, ptr %6, align 1, !tbaa !9
  %74 = zext i8 %73 to i32
  %75 = icmp eq i32 %74, 194
  br i1 %75, label %76, label %81

76:                                               ; preds = %72
  %77 = load ptr, ptr %5, align 8, !tbaa !5
  %78 = getelementptr inbounds %struct.cmp_object_s, ptr %77, i32 0, i32 0
  store i8 5, ptr %78, align 8, !tbaa !10
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.cmp_object_s, ptr %79, i32 0, i32 1
  store i8 0, ptr %80, align 8, !tbaa !9
  br label %827

81:                                               ; preds = %72
  %82 = load i8, ptr %6, align 1, !tbaa !9
  %83 = zext i8 %82 to i32
  %84 = icmp eq i32 %83, 195
  br i1 %84, label %85, label %90

85:                                               ; preds = %81
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.cmp_object_s, ptr %86, i32 0, i32 0
  store i8 5, ptr %87, align 8, !tbaa !10
  %88 = load ptr, ptr %5, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.cmp_object_s, ptr %88, i32 0, i32 1
  store i8 1, ptr %89, align 8, !tbaa !9
  br label %826

90:                                               ; preds = %81
  %91 = load i8, ptr %6, align 1, !tbaa !9
  %92 = zext i8 %91 to i32
  %93 = icmp eq i32 %92, 196
  br i1 %93, label %94, label %114

94:                                               ; preds = %90
  %95 = load ptr, ptr %5, align 8, !tbaa !5
  %96 = getelementptr inbounds %struct.cmp_object_s, ptr %95, i32 0, i32 0
  store i8 6, ptr %96, align 8, !tbaa !10
  %97 = load ptr, ptr %4, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.cmp_ctx_s, ptr %97, i32 0, i32 2
  %99 = load ptr, ptr %98, align 8, !tbaa !12
  %100 = load ptr, ptr %4, align 8, !tbaa !5
  %101 = load ptr, ptr %5, align 8, !tbaa !5
  %102 = getelementptr inbounds %struct.cmp_object_s, ptr %101, i32 0, i32 1
  %103 = call zeroext i1 %99(ptr noundef %100, ptr noundef %102, i64 noundef 1)
  br i1 %103, label %107, label %104

104:                                              ; preds = %94
  %105 = load ptr, ptr %4, align 8, !tbaa !5
  %106 = getelementptr inbounds %struct.cmp_ctx_s, ptr %105, i32 0, i32 0
  store i8 14, ptr %106, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

107:                                              ; preds = %94
  %108 = load ptr, ptr %5, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.cmp_object_s, ptr %108, i32 0, i32 1
  %110 = load i8, ptr %109, align 8, !tbaa !9
  %111 = zext i8 %110 to i32
  %112 = load ptr, ptr %5, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.cmp_object_s, ptr %112, i32 0, i32 1
  store i32 %111, ptr %113, align 8, !tbaa !9
  br label %825

114:                                              ; preds = %90
  %115 = load i8, ptr %6, align 1, !tbaa !9
  %116 = zext i8 %115 to i32
  %117 = icmp eq i32 %116, 197
  br i1 %117, label %118, label %139

118:                                              ; preds = %114
  %119 = load ptr, ptr %5, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.cmp_object_s, ptr %119, i32 0, i32 0
  store i8 7, ptr %120, align 8, !tbaa !10
  %121 = load ptr, ptr %4, align 8, !tbaa !5
  %122 = getelementptr inbounds %struct.cmp_ctx_s, ptr %121, i32 0, i32 2
  %123 = load ptr, ptr %122, align 8, !tbaa !12
  %124 = load ptr, ptr %4, align 8, !tbaa !5
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.cmp_object_s, ptr %125, i32 0, i32 1
  %127 = call zeroext i1 %123(ptr noundef %124, ptr noundef %126, i64 noundef 2)
  br i1 %127, label %131, label %128

128:                                              ; preds = %118
  %129 = load ptr, ptr %4, align 8, !tbaa !5
  %130 = getelementptr inbounds %struct.cmp_ctx_s, ptr %129, i32 0, i32 0
  store i8 14, ptr %130, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

131:                                              ; preds = %118
  %132 = load ptr, ptr %5, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.cmp_object_s, ptr %132, i32 0, i32 1
  %134 = load i16, ptr %133, align 8, !tbaa !9
  %135 = call zeroext i16 @be16(i16 noundef zeroext %134)
  %136 = zext i16 %135 to i32
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.cmp_object_s, ptr %137, i32 0, i32 1
  store i32 %136, ptr %138, align 8, !tbaa !9
  br label %824

139:                                              ; preds = %114
  %140 = load i8, ptr %6, align 1, !tbaa !9
  %141 = zext i8 %140 to i32
  %142 = icmp eq i32 %141, 198
  br i1 %142, label %143, label %163

143:                                              ; preds = %139
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  %145 = getelementptr inbounds %struct.cmp_object_s, ptr %144, i32 0, i32 0
  store i8 8, ptr %145, align 8, !tbaa !10
  %146 = load ptr, ptr %4, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.cmp_ctx_s, ptr %146, i32 0, i32 2
  %148 = load ptr, ptr %147, align 8, !tbaa !12
  %149 = load ptr, ptr %4, align 8, !tbaa !5
  %150 = load ptr, ptr %5, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.cmp_object_s, ptr %150, i32 0, i32 1
  %152 = call zeroext i1 %148(ptr noundef %149, ptr noundef %151, i64 noundef 4)
  br i1 %152, label %156, label %153

153:                                              ; preds = %143
  %154 = load ptr, ptr %4, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.cmp_ctx_s, ptr %154, i32 0, i32 0
  store i8 14, ptr %155, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

156:                                              ; preds = %143
  %157 = load ptr, ptr %5, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.cmp_object_s, ptr %157, i32 0, i32 1
  %159 = load i32, ptr %158, align 8, !tbaa !9
  %160 = call i32 @be32(i32 noundef %159)
  %161 = load ptr, ptr %5, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.cmp_object_s, ptr %161, i32 0, i32 1
  store i32 %160, ptr %162, align 8, !tbaa !9
  br label %823

163:                                              ; preds = %139
  %164 = load i8, ptr %6, align 1, !tbaa !9
  %165 = zext i8 %164 to i32
  %166 = icmp eq i32 %165, 199
  br i1 %166, label %167, label %200

167:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #2
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #2
  %168 = load ptr, ptr %5, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.cmp_object_s, ptr %168, i32 0, i32 0
  store i8 9, ptr %169, align 8, !tbaa !10
  %170 = load ptr, ptr %4, align 8, !tbaa !5
  %171 = getelementptr inbounds %struct.cmp_ctx_s, ptr %170, i32 0, i32 2
  %172 = load ptr, ptr %171, align 8, !tbaa !12
  %173 = load ptr, ptr %4, align 8, !tbaa !5
  %174 = call zeroext i1 %172(ptr noundef %173, ptr noundef %8, i64 noundef 1)
  br i1 %174, label %178, label %175

175:                                              ; preds = %167
  %176 = load ptr, ptr %4, align 8, !tbaa !5
  %177 = getelementptr inbounds %struct.cmp_ctx_s, ptr %176, i32 0, i32 0
  store i8 14, ptr %177, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %197

178:                                              ; preds = %167
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.cmp_ctx_s, ptr %179, i32 0, i32 2
  %181 = load ptr, ptr %180, align 8, !tbaa !12
  %182 = load ptr, ptr %4, align 8, !tbaa !5
  %183 = call zeroext i1 %181(ptr noundef %182, ptr noundef %9, i64 noundef 1)
  br i1 %183, label %187, label %184

184:                                              ; preds = %178
  %185 = load ptr, ptr %4, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.cmp_ctx_s, ptr %185, i32 0, i32 0
  store i8 11, ptr %186, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %197

187:                                              ; preds = %178
  %188 = load i8, ptr %8, align 1, !tbaa !9
  %189 = zext i8 %188 to i32
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.cmp_object_s, ptr %190, i32 0, i32 1
  %192 = getelementptr inbounds %struct.cmp_ext_s, ptr %191, i32 0, i32 1
  store i32 %189, ptr %192, align 4, !tbaa !9
  %193 = load i8, ptr %9, align 1, !tbaa !9
  %194 = load ptr, ptr %5, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.cmp_object_s, ptr %194, i32 0, i32 1
  %196 = getelementptr inbounds %struct.cmp_ext_s, ptr %195, i32 0, i32 0
  store i8 %193, ptr %196, align 8, !tbaa !9
  store i32 0, ptr %7, align 4
  br label %197

197:                                              ; preds = %187, %184, %175
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #2
  %198 = load i32, ptr %7, align 4
  switch i32 %198, label %833 [
    i32 0, label %199
  ]

199:                                              ; preds = %197
  br label %822

200:                                              ; preds = %163
  %201 = load i8, ptr %6, align 1, !tbaa !9
  %202 = zext i8 %201 to i32
  %203 = icmp eq i32 %202, 200
  br i1 %203, label %204, label %238

204:                                              ; preds = %200
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #2
  call void @llvm.lifetime.start.p0(i64 2, ptr %11) #2
  %205 = load ptr, ptr %5, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.cmp_object_s, ptr %205, i32 0, i32 0
  store i8 10, ptr %206, align 8, !tbaa !10
  %207 = load ptr, ptr %4, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.cmp_ctx_s, ptr %207, i32 0, i32 2
  %209 = load ptr, ptr %208, align 8, !tbaa !12
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = call zeroext i1 %209(ptr noundef %210, ptr noundef %11, i64 noundef 2)
  br i1 %211, label %215, label %212

212:                                              ; preds = %204
  %213 = load ptr, ptr %4, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.cmp_ctx_s, ptr %213, i32 0, i32 0
  store i8 14, ptr %214, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %235

215:                                              ; preds = %204
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.cmp_ctx_s, ptr %216, i32 0, i32 2
  %218 = load ptr, ptr %217, align 8, !tbaa !12
  %219 = load ptr, ptr %4, align 8, !tbaa !5
  %220 = call zeroext i1 %218(ptr noundef %219, ptr noundef %10, i64 noundef 1)
  br i1 %220, label %224, label %221

221:                                              ; preds = %215
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.cmp_ctx_s, ptr %222, i32 0, i32 0
  store i8 11, ptr %223, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %235

224:                                              ; preds = %215
  %225 = load i16, ptr %11, align 2, !tbaa !15
  %226 = call zeroext i16 @be16(i16 noundef zeroext %225)
  %227 = zext i16 %226 to i32
  %228 = load ptr, ptr %5, align 8, !tbaa !5
  %229 = getelementptr inbounds %struct.cmp_object_s, ptr %228, i32 0, i32 1
  %230 = getelementptr inbounds %struct.cmp_ext_s, ptr %229, i32 0, i32 1
  store i32 %227, ptr %230, align 4, !tbaa !9
  %231 = load i8, ptr %10, align 1, !tbaa !9
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.cmp_object_s, ptr %232, i32 0, i32 1
  %234 = getelementptr inbounds %struct.cmp_ext_s, ptr %233, i32 0, i32 0
  store i8 %231, ptr %234, align 8, !tbaa !9
  store i32 0, ptr %7, align 4
  br label %235

235:                                              ; preds = %224, %221, %212
  call void @llvm.lifetime.end.p0(i64 2, ptr %11) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #2
  %236 = load i32, ptr %7, align 4
  switch i32 %236, label %833 [
    i32 0, label %237
  ]

237:                                              ; preds = %235
  br label %821

238:                                              ; preds = %200
  %239 = load i8, ptr %6, align 1, !tbaa !9
  %240 = zext i8 %239 to i32
  %241 = icmp eq i32 %240, 201
  br i1 %241, label %242, label %275

242:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #2
  %243 = load ptr, ptr %5, align 8, !tbaa !5
  %244 = getelementptr inbounds %struct.cmp_object_s, ptr %243, i32 0, i32 0
  store i8 11, ptr %244, align 8, !tbaa !10
  %245 = load ptr, ptr %4, align 8, !tbaa !5
  %246 = getelementptr inbounds %struct.cmp_ctx_s, ptr %245, i32 0, i32 2
  %247 = load ptr, ptr %246, align 8, !tbaa !12
  %248 = load ptr, ptr %4, align 8, !tbaa !5
  %249 = call zeroext i1 %247(ptr noundef %248, ptr noundef %13, i64 noundef 4)
  br i1 %249, label %253, label %250

250:                                              ; preds = %242
  %251 = load ptr, ptr %4, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.cmp_ctx_s, ptr %251, i32 0, i32 0
  store i8 14, ptr %252, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %272

253:                                              ; preds = %242
  %254 = load ptr, ptr %4, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.cmp_ctx_s, ptr %254, i32 0, i32 2
  %256 = load ptr, ptr %255, align 8, !tbaa !12
  %257 = load ptr, ptr %4, align 8, !tbaa !5
  %258 = call zeroext i1 %256(ptr noundef %257, ptr noundef %12, i64 noundef 1)
  br i1 %258, label %262, label %259

259:                                              ; preds = %253
  %260 = load ptr, ptr %4, align 8, !tbaa !5
  %261 = getelementptr inbounds %struct.cmp_ctx_s, ptr %260, i32 0, i32 0
  store i8 11, ptr %261, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %272

262:                                              ; preds = %253
  %263 = load i32, ptr %13, align 4, !tbaa !17
  %264 = call i32 @be32(i32 noundef %263)
  %265 = load ptr, ptr %5, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.cmp_object_s, ptr %265, i32 0, i32 1
  %267 = getelementptr inbounds %struct.cmp_ext_s, ptr %266, i32 0, i32 1
  store i32 %264, ptr %267, align 4, !tbaa !9
  %268 = load i8, ptr %12, align 1, !tbaa !9
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = getelementptr inbounds %struct.cmp_object_s, ptr %269, i32 0, i32 1
  %271 = getelementptr inbounds %struct.cmp_ext_s, ptr %270, i32 0, i32 0
  store i8 %268, ptr %271, align 8, !tbaa !9
  store i32 0, ptr %7, align 4
  br label %272

272:                                              ; preds = %262, %259, %250
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #2
  %273 = load i32, ptr %7, align 4
  switch i32 %273, label %833 [
    i32 0, label %274
  ]

274:                                              ; preds = %272
  br label %820

275:                                              ; preds = %238
  %276 = load i8, ptr %6, align 1, !tbaa !9
  %277 = zext i8 %276 to i32
  %278 = icmp eq i32 %277, 202
  br i1 %278, label %279, label %299

279:                                              ; preds = %275
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.cmp_object_s, ptr %280, i32 0, i32 0
  store i8 12, ptr %281, align 8, !tbaa !10
  %282 = load ptr, ptr %4, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.cmp_ctx_s, ptr %282, i32 0, i32 2
  %284 = load ptr, ptr %283, align 8, !tbaa !12
  %285 = load ptr, ptr %4, align 8, !tbaa !5
  %286 = load ptr, ptr %5, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.cmp_object_s, ptr %286, i32 0, i32 1
  %288 = call zeroext i1 %284(ptr noundef %285, ptr noundef %287, i64 noundef 4)
  br i1 %288, label %292, label %289

289:                                              ; preds = %279
  %290 = load ptr, ptr %4, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.cmp_ctx_s, ptr %290, i32 0, i32 0
  store i8 9, ptr %291, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

292:                                              ; preds = %279
  %293 = load ptr, ptr %5, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.cmp_object_s, ptr %293, i32 0, i32 1
  %295 = load float, ptr %294, align 8, !tbaa !9
  %296 = call float @befloat(float noundef %295)
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.cmp_object_s, ptr %297, i32 0, i32 1
  store float %296, ptr %298, align 8, !tbaa !9
  br label %819

299:                                              ; preds = %275
  %300 = load i8, ptr %6, align 1, !tbaa !9
  %301 = zext i8 %300 to i32
  %302 = icmp eq i32 %301, 203
  br i1 %302, label %303, label %323

303:                                              ; preds = %299
  %304 = load ptr, ptr %5, align 8, !tbaa !5
  %305 = getelementptr inbounds %struct.cmp_object_s, ptr %304, i32 0, i32 0
  store i8 13, ptr %305, align 8, !tbaa !10
  %306 = load ptr, ptr %4, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.cmp_ctx_s, ptr %306, i32 0, i32 2
  %308 = load ptr, ptr %307, align 8, !tbaa !12
  %309 = load ptr, ptr %4, align 8, !tbaa !5
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = getelementptr inbounds %struct.cmp_object_s, ptr %310, i32 0, i32 1
  %312 = call zeroext i1 %308(ptr noundef %309, ptr noundef %311, i64 noundef 8)
  br i1 %312, label %316, label %313

313:                                              ; preds = %303
  %314 = load ptr, ptr %4, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.cmp_ctx_s, ptr %314, i32 0, i32 0
  store i8 9, ptr %315, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

316:                                              ; preds = %303
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.cmp_object_s, ptr %317, i32 0, i32 1
  %319 = load double, ptr %318, align 8, !tbaa !9
  %320 = call double @bedouble(double noundef %319)
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.cmp_object_s, ptr %321, i32 0, i32 1
  store double %320, ptr %322, align 8, !tbaa !9
  br label %818

323:                                              ; preds = %299
  %324 = load i8, ptr %6, align 1, !tbaa !9
  %325 = zext i8 %324 to i32
  %326 = icmp eq i32 %325, 204
  br i1 %326, label %327, label %341

327:                                              ; preds = %323
  %328 = load ptr, ptr %5, align 8, !tbaa !5
  %329 = getelementptr inbounds %struct.cmp_object_s, ptr %328, i32 0, i32 0
  store i8 14, ptr %329, align 8, !tbaa !10
  %330 = load ptr, ptr %4, align 8, !tbaa !5
  %331 = getelementptr inbounds %struct.cmp_ctx_s, ptr %330, i32 0, i32 2
  %332 = load ptr, ptr %331, align 8, !tbaa !12
  %333 = load ptr, ptr %4, align 8, !tbaa !5
  %334 = load ptr, ptr %5, align 8, !tbaa !5
  %335 = getelementptr inbounds %struct.cmp_object_s, ptr %334, i32 0, i32 1
  %336 = call zeroext i1 %332(ptr noundef %333, ptr noundef %335, i64 noundef 1)
  br i1 %336, label %340, label %337

337:                                              ; preds = %327
  %338 = load ptr, ptr %4, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.cmp_ctx_s, ptr %338, i32 0, i32 0
  store i8 9, ptr %339, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

340:                                              ; preds = %327
  br label %817

341:                                              ; preds = %323
  %342 = load i8, ptr %6, align 1, !tbaa !9
  %343 = zext i8 %342 to i32
  %344 = icmp eq i32 %343, 205
  br i1 %344, label %345, label %365

345:                                              ; preds = %341
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.cmp_object_s, ptr %346, i32 0, i32 0
  store i8 15, ptr %347, align 8, !tbaa !10
  %348 = load ptr, ptr %4, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.cmp_ctx_s, ptr %348, i32 0, i32 2
  %350 = load ptr, ptr %349, align 8, !tbaa !12
  %351 = load ptr, ptr %4, align 8, !tbaa !5
  %352 = load ptr, ptr %5, align 8, !tbaa !5
  %353 = getelementptr inbounds %struct.cmp_object_s, ptr %352, i32 0, i32 1
  %354 = call zeroext i1 %350(ptr noundef %351, ptr noundef %353, i64 noundef 2)
  br i1 %354, label %358, label %355

355:                                              ; preds = %345
  %356 = load ptr, ptr %4, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.cmp_ctx_s, ptr %356, i32 0, i32 0
  store i8 9, ptr %357, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

358:                                              ; preds = %345
  %359 = load ptr, ptr %5, align 8, !tbaa !5
  %360 = getelementptr inbounds %struct.cmp_object_s, ptr %359, i32 0, i32 1
  %361 = load i16, ptr %360, align 8, !tbaa !9
  %362 = call zeroext i16 @be16(i16 noundef zeroext %361)
  %363 = load ptr, ptr %5, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.cmp_object_s, ptr %363, i32 0, i32 1
  store i16 %362, ptr %364, align 8, !tbaa !9
  br label %816

365:                                              ; preds = %341
  %366 = load i8, ptr %6, align 1, !tbaa !9
  %367 = zext i8 %366 to i32
  %368 = icmp eq i32 %367, 206
  br i1 %368, label %369, label %389

369:                                              ; preds = %365
  %370 = load ptr, ptr %5, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.cmp_object_s, ptr %370, i32 0, i32 0
  store i8 16, ptr %371, align 8, !tbaa !10
  %372 = load ptr, ptr %4, align 8, !tbaa !5
  %373 = getelementptr inbounds %struct.cmp_ctx_s, ptr %372, i32 0, i32 2
  %374 = load ptr, ptr %373, align 8, !tbaa !12
  %375 = load ptr, ptr %4, align 8, !tbaa !5
  %376 = load ptr, ptr %5, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.cmp_object_s, ptr %376, i32 0, i32 1
  %378 = call zeroext i1 %374(ptr noundef %375, ptr noundef %377, i64 noundef 4)
  br i1 %378, label %382, label %379

379:                                              ; preds = %369
  %380 = load ptr, ptr %4, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.cmp_ctx_s, ptr %380, i32 0, i32 0
  store i8 9, ptr %381, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

382:                                              ; preds = %369
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.cmp_object_s, ptr %383, i32 0, i32 1
  %385 = load i32, ptr %384, align 8, !tbaa !9
  %386 = call i32 @be32(i32 noundef %385)
  %387 = load ptr, ptr %5, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.cmp_object_s, ptr %387, i32 0, i32 1
  store i32 %386, ptr %388, align 8, !tbaa !9
  br label %815

389:                                              ; preds = %365
  %390 = load i8, ptr %6, align 1, !tbaa !9
  %391 = zext i8 %390 to i32
  %392 = icmp eq i32 %391, 207
  br i1 %392, label %393, label %413

393:                                              ; preds = %389
  %394 = load ptr, ptr %5, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.cmp_object_s, ptr %394, i32 0, i32 0
  store i8 17, ptr %395, align 8, !tbaa !10
  %396 = load ptr, ptr %4, align 8, !tbaa !5
  %397 = getelementptr inbounds %struct.cmp_ctx_s, ptr %396, i32 0, i32 2
  %398 = load ptr, ptr %397, align 8, !tbaa !12
  %399 = load ptr, ptr %4, align 8, !tbaa !5
  %400 = load ptr, ptr %5, align 8, !tbaa !5
  %401 = getelementptr inbounds %struct.cmp_object_s, ptr %400, i32 0, i32 1
  %402 = call zeroext i1 %398(ptr noundef %399, ptr noundef %401, i64 noundef 8)
  br i1 %402, label %406, label %403

403:                                              ; preds = %393
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.cmp_ctx_s, ptr %404, i32 0, i32 0
  store i8 9, ptr %405, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

406:                                              ; preds = %393
  %407 = load ptr, ptr %5, align 8, !tbaa !5
  %408 = getelementptr inbounds %struct.cmp_object_s, ptr %407, i32 0, i32 1
  %409 = load i64, ptr %408, align 8, !tbaa !9
  %410 = call i64 @be64(i64 noundef %409)
  %411 = load ptr, ptr %5, align 8, !tbaa !5
  %412 = getelementptr inbounds %struct.cmp_object_s, ptr %411, i32 0, i32 1
  store i64 %410, ptr %412, align 8, !tbaa !9
  br label %814

413:                                              ; preds = %389
  %414 = load i8, ptr %6, align 1, !tbaa !9
  %415 = zext i8 %414 to i32
  %416 = icmp eq i32 %415, 208
  br i1 %416, label %417, label %431

417:                                              ; preds = %413
  %418 = load ptr, ptr %5, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.cmp_object_s, ptr %418, i32 0, i32 0
  store i8 18, ptr %419, align 8, !tbaa !10
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.cmp_ctx_s, ptr %420, i32 0, i32 2
  %422 = load ptr, ptr %421, align 8, !tbaa !12
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = load ptr, ptr %5, align 8, !tbaa !5
  %425 = getelementptr inbounds %struct.cmp_object_s, ptr %424, i32 0, i32 1
  %426 = call zeroext i1 %422(ptr noundef %423, ptr noundef %425, i64 noundef 1)
  br i1 %426, label %430, label %427

427:                                              ; preds = %417
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.cmp_ctx_s, ptr %428, i32 0, i32 0
  store i8 9, ptr %429, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

430:                                              ; preds = %417
  br label %813

431:                                              ; preds = %413
  %432 = load i8, ptr %6, align 1, !tbaa !9
  %433 = zext i8 %432 to i32
  %434 = icmp eq i32 %433, 209
  br i1 %434, label %435, label %455

435:                                              ; preds = %431
  %436 = load ptr, ptr %5, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.cmp_object_s, ptr %436, i32 0, i32 0
  store i8 19, ptr %437, align 8, !tbaa !10
  %438 = load ptr, ptr %4, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.cmp_ctx_s, ptr %438, i32 0, i32 2
  %440 = load ptr, ptr %439, align 8, !tbaa !12
  %441 = load ptr, ptr %4, align 8, !tbaa !5
  %442 = load ptr, ptr %5, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.cmp_object_s, ptr %442, i32 0, i32 1
  %444 = call zeroext i1 %440(ptr noundef %441, ptr noundef %443, i64 noundef 2)
  br i1 %444, label %448, label %445

445:                                              ; preds = %435
  %446 = load ptr, ptr %4, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.cmp_ctx_s, ptr %446, i32 0, i32 0
  store i8 9, ptr %447, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

448:                                              ; preds = %435
  %449 = load ptr, ptr %5, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.cmp_object_s, ptr %449, i32 0, i32 1
  %451 = load i16, ptr %450, align 8, !tbaa !9
  %452 = call zeroext i16 @be16(i16 noundef zeroext %451)
  %453 = load ptr, ptr %5, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.cmp_object_s, ptr %453, i32 0, i32 1
  store i16 %452, ptr %454, align 8, !tbaa !9
  br label %812

455:                                              ; preds = %431
  %456 = load i8, ptr %6, align 1, !tbaa !9
  %457 = zext i8 %456 to i32
  %458 = icmp eq i32 %457, 210
  br i1 %458, label %459, label %479

459:                                              ; preds = %455
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.cmp_object_s, ptr %460, i32 0, i32 0
  store i8 20, ptr %461, align 8, !tbaa !10
  %462 = load ptr, ptr %4, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.cmp_ctx_s, ptr %462, i32 0, i32 2
  %464 = load ptr, ptr %463, align 8, !tbaa !12
  %465 = load ptr, ptr %4, align 8, !tbaa !5
  %466 = load ptr, ptr %5, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.cmp_object_s, ptr %466, i32 0, i32 1
  %468 = call zeroext i1 %464(ptr noundef %465, ptr noundef %467, i64 noundef 4)
  br i1 %468, label %472, label %469

469:                                              ; preds = %459
  %470 = load ptr, ptr %4, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.cmp_ctx_s, ptr %470, i32 0, i32 0
  store i8 9, ptr %471, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

472:                                              ; preds = %459
  %473 = load ptr, ptr %5, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.cmp_object_s, ptr %473, i32 0, i32 1
  %475 = load i32, ptr %474, align 8, !tbaa !9
  %476 = call i32 @be32(i32 noundef %475)
  %477 = load ptr, ptr %5, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.cmp_object_s, ptr %477, i32 0, i32 1
  store i32 %476, ptr %478, align 8, !tbaa !9
  br label %811

479:                                              ; preds = %455
  %480 = load i8, ptr %6, align 1, !tbaa !9
  %481 = zext i8 %480 to i32
  %482 = icmp eq i32 %481, 211
  br i1 %482, label %483, label %503

483:                                              ; preds = %479
  %484 = load ptr, ptr %5, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.cmp_object_s, ptr %484, i32 0, i32 0
  store i8 21, ptr %485, align 8, !tbaa !10
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.cmp_ctx_s, ptr %486, i32 0, i32 2
  %488 = load ptr, ptr %487, align 8, !tbaa !12
  %489 = load ptr, ptr %4, align 8, !tbaa !5
  %490 = load ptr, ptr %5, align 8, !tbaa !5
  %491 = getelementptr inbounds %struct.cmp_object_s, ptr %490, i32 0, i32 1
  %492 = call zeroext i1 %488(ptr noundef %489, ptr noundef %491, i64 noundef 8)
  br i1 %492, label %496, label %493

493:                                              ; preds = %483
  %494 = load ptr, ptr %4, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.cmp_ctx_s, ptr %494, i32 0, i32 0
  store i8 9, ptr %495, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

496:                                              ; preds = %483
  %497 = load ptr, ptr %5, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.cmp_object_s, ptr %497, i32 0, i32 1
  %499 = load i64, ptr %498, align 8, !tbaa !9
  %500 = call i64 @be64(i64 noundef %499)
  %501 = load ptr, ptr %5, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct.cmp_object_s, ptr %501, i32 0, i32 1
  store i64 %500, ptr %502, align 8, !tbaa !9
  br label %810

503:                                              ; preds = %479
  %504 = load i8, ptr %6, align 1, !tbaa !9
  %505 = zext i8 %504 to i32
  %506 = icmp eq i32 %505, 212
  br i1 %506, label %507, label %525

507:                                              ; preds = %503
  %508 = load ptr, ptr %5, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.cmp_object_s, ptr %508, i32 0, i32 0
  store i8 22, ptr %509, align 8, !tbaa !10
  %510 = load ptr, ptr %4, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.cmp_ctx_s, ptr %510, i32 0, i32 2
  %512 = load ptr, ptr %511, align 8, !tbaa !12
  %513 = load ptr, ptr %4, align 8, !tbaa !5
  %514 = load ptr, ptr %5, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.cmp_object_s, ptr %514, i32 0, i32 1
  %516 = getelementptr inbounds %struct.cmp_ext_s, ptr %515, i32 0, i32 0
  %517 = call zeroext i1 %512(ptr noundef %513, ptr noundef %516, i64 noundef 1)
  br i1 %517, label %521, label %518

518:                                              ; preds = %507
  %519 = load ptr, ptr %4, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.cmp_ctx_s, ptr %519, i32 0, i32 0
  store i8 11, ptr %520, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

521:                                              ; preds = %507
  %522 = load ptr, ptr %5, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.cmp_object_s, ptr %522, i32 0, i32 1
  %524 = getelementptr inbounds %struct.cmp_ext_s, ptr %523, i32 0, i32 1
  store i32 1, ptr %524, align 4, !tbaa !9
  br label %809

525:                                              ; preds = %503
  %526 = load i8, ptr %6, align 1, !tbaa !9
  %527 = zext i8 %526 to i32
  %528 = icmp eq i32 %527, 213
  br i1 %528, label %529, label %547

529:                                              ; preds = %525
  %530 = load ptr, ptr %5, align 8, !tbaa !5
  %531 = getelementptr inbounds %struct.cmp_object_s, ptr %530, i32 0, i32 0
  store i8 23, ptr %531, align 8, !tbaa !10
  %532 = load ptr, ptr %4, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.cmp_ctx_s, ptr %532, i32 0, i32 2
  %534 = load ptr, ptr %533, align 8, !tbaa !12
  %535 = load ptr, ptr %4, align 8, !tbaa !5
  %536 = load ptr, ptr %5, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.cmp_object_s, ptr %536, i32 0, i32 1
  %538 = getelementptr inbounds %struct.cmp_ext_s, ptr %537, i32 0, i32 0
  %539 = call zeroext i1 %534(ptr noundef %535, ptr noundef %538, i64 noundef 1)
  br i1 %539, label %543, label %540

540:                                              ; preds = %529
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.cmp_ctx_s, ptr %541, i32 0, i32 0
  store i8 11, ptr %542, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

543:                                              ; preds = %529
  %544 = load ptr, ptr %5, align 8, !tbaa !5
  %545 = getelementptr inbounds %struct.cmp_object_s, ptr %544, i32 0, i32 1
  %546 = getelementptr inbounds %struct.cmp_ext_s, ptr %545, i32 0, i32 1
  store i32 2, ptr %546, align 4, !tbaa !9
  br label %808

547:                                              ; preds = %525
  %548 = load i8, ptr %6, align 1, !tbaa !9
  %549 = zext i8 %548 to i32
  %550 = icmp eq i32 %549, 214
  br i1 %550, label %551, label %569

551:                                              ; preds = %547
  %552 = load ptr, ptr %5, align 8, !tbaa !5
  %553 = getelementptr inbounds %struct.cmp_object_s, ptr %552, i32 0, i32 0
  store i8 24, ptr %553, align 8, !tbaa !10
  %554 = load ptr, ptr %4, align 8, !tbaa !5
  %555 = getelementptr inbounds %struct.cmp_ctx_s, ptr %554, i32 0, i32 2
  %556 = load ptr, ptr %555, align 8, !tbaa !12
  %557 = load ptr, ptr %4, align 8, !tbaa !5
  %558 = load ptr, ptr %5, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.cmp_object_s, ptr %558, i32 0, i32 1
  %560 = getelementptr inbounds %struct.cmp_ext_s, ptr %559, i32 0, i32 0
  %561 = call zeroext i1 %556(ptr noundef %557, ptr noundef %560, i64 noundef 1)
  br i1 %561, label %565, label %562

562:                                              ; preds = %551
  %563 = load ptr, ptr %4, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.cmp_ctx_s, ptr %563, i32 0, i32 0
  store i8 11, ptr %564, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

565:                                              ; preds = %551
  %566 = load ptr, ptr %5, align 8, !tbaa !5
  %567 = getelementptr inbounds %struct.cmp_object_s, ptr %566, i32 0, i32 1
  %568 = getelementptr inbounds %struct.cmp_ext_s, ptr %567, i32 0, i32 1
  store i32 4, ptr %568, align 4, !tbaa !9
  br label %807

569:                                              ; preds = %547
  %570 = load i8, ptr %6, align 1, !tbaa !9
  %571 = zext i8 %570 to i32
  %572 = icmp eq i32 %571, 215
  br i1 %572, label %573, label %591

573:                                              ; preds = %569
  %574 = load ptr, ptr %5, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.cmp_object_s, ptr %574, i32 0, i32 0
  store i8 25, ptr %575, align 8, !tbaa !10
  %576 = load ptr, ptr %4, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.cmp_ctx_s, ptr %576, i32 0, i32 2
  %578 = load ptr, ptr %577, align 8, !tbaa !12
  %579 = load ptr, ptr %4, align 8, !tbaa !5
  %580 = load ptr, ptr %5, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.cmp_object_s, ptr %580, i32 0, i32 1
  %582 = getelementptr inbounds %struct.cmp_ext_s, ptr %581, i32 0, i32 0
  %583 = call zeroext i1 %578(ptr noundef %579, ptr noundef %582, i64 noundef 1)
  br i1 %583, label %587, label %584

584:                                              ; preds = %573
  %585 = load ptr, ptr %4, align 8, !tbaa !5
  %586 = getelementptr inbounds %struct.cmp_ctx_s, ptr %585, i32 0, i32 0
  store i8 11, ptr %586, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

587:                                              ; preds = %573
  %588 = load ptr, ptr %5, align 8, !tbaa !5
  %589 = getelementptr inbounds %struct.cmp_object_s, ptr %588, i32 0, i32 1
  %590 = getelementptr inbounds %struct.cmp_ext_s, ptr %589, i32 0, i32 1
  store i32 8, ptr %590, align 4, !tbaa !9
  br label %806

591:                                              ; preds = %569
  %592 = load i8, ptr %6, align 1, !tbaa !9
  %593 = zext i8 %592 to i32
  %594 = icmp eq i32 %593, 216
  br i1 %594, label %595, label %613

595:                                              ; preds = %591
  %596 = load ptr, ptr %5, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.cmp_object_s, ptr %596, i32 0, i32 0
  store i8 26, ptr %597, align 8, !tbaa !10
  %598 = load ptr, ptr %4, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.cmp_ctx_s, ptr %598, i32 0, i32 2
  %600 = load ptr, ptr %599, align 8, !tbaa !12
  %601 = load ptr, ptr %4, align 8, !tbaa !5
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.cmp_object_s, ptr %602, i32 0, i32 1
  %604 = getelementptr inbounds %struct.cmp_ext_s, ptr %603, i32 0, i32 0
  %605 = call zeroext i1 %600(ptr noundef %601, ptr noundef %604, i64 noundef 1)
  br i1 %605, label %609, label %606

606:                                              ; preds = %595
  %607 = load ptr, ptr %4, align 8, !tbaa !5
  %608 = getelementptr inbounds %struct.cmp_ctx_s, ptr %607, i32 0, i32 0
  store i8 11, ptr %608, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

609:                                              ; preds = %595
  %610 = load ptr, ptr %5, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.cmp_object_s, ptr %610, i32 0, i32 1
  %612 = getelementptr inbounds %struct.cmp_ext_s, ptr %611, i32 0, i32 1
  store i32 16, ptr %612, align 4, !tbaa !9
  br label %805

613:                                              ; preds = %591
  %614 = load i8, ptr %6, align 1, !tbaa !9
  %615 = zext i8 %614 to i32
  %616 = icmp eq i32 %615, 217
  br i1 %616, label %617, label %637

617:                                              ; preds = %613
  %618 = load ptr, ptr %5, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.cmp_object_s, ptr %618, i32 0, i32 0
  store i8 27, ptr %619, align 8, !tbaa !10
  %620 = load ptr, ptr %4, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.cmp_ctx_s, ptr %620, i32 0, i32 2
  %622 = load ptr, ptr %621, align 8, !tbaa !12
  %623 = load ptr, ptr %4, align 8, !tbaa !5
  %624 = load ptr, ptr %5, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.cmp_object_s, ptr %624, i32 0, i32 1
  %626 = call zeroext i1 %622(ptr noundef %623, ptr noundef %625, i64 noundef 1)
  br i1 %626, label %630, label %627

627:                                              ; preds = %617
  %628 = load ptr, ptr %4, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.cmp_ctx_s, ptr %628, i32 0, i32 0
  store i8 9, ptr %629, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

630:                                              ; preds = %617
  %631 = load ptr, ptr %5, align 8, !tbaa !5
  %632 = getelementptr inbounds %struct.cmp_object_s, ptr %631, i32 0, i32 1
  %633 = load i8, ptr %632, align 8, !tbaa !9
  %634 = zext i8 %633 to i32
  %635 = load ptr, ptr %5, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.cmp_object_s, ptr %635, i32 0, i32 1
  store i32 %634, ptr %636, align 8, !tbaa !9
  br label %804

637:                                              ; preds = %613
  %638 = load i8, ptr %6, align 1, !tbaa !9
  %639 = zext i8 %638 to i32
  %640 = icmp eq i32 %639, 218
  br i1 %640, label %641, label %662

641:                                              ; preds = %637
  %642 = load ptr, ptr %5, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.cmp_object_s, ptr %642, i32 0, i32 0
  store i8 28, ptr %643, align 8, !tbaa !10
  %644 = load ptr, ptr %4, align 8, !tbaa !5
  %645 = getelementptr inbounds %struct.cmp_ctx_s, ptr %644, i32 0, i32 2
  %646 = load ptr, ptr %645, align 8, !tbaa !12
  %647 = load ptr, ptr %4, align 8, !tbaa !5
  %648 = load ptr, ptr %5, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.cmp_object_s, ptr %648, i32 0, i32 1
  %650 = call zeroext i1 %646(ptr noundef %647, ptr noundef %649, i64 noundef 2)
  br i1 %650, label %654, label %651

651:                                              ; preds = %641
  %652 = load ptr, ptr %4, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.cmp_ctx_s, ptr %652, i32 0, i32 0
  store i8 9, ptr %653, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

654:                                              ; preds = %641
  %655 = load ptr, ptr %5, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.cmp_object_s, ptr %655, i32 0, i32 1
  %657 = load i16, ptr %656, align 8, !tbaa !9
  %658 = call zeroext i16 @be16(i16 noundef zeroext %657)
  %659 = zext i16 %658 to i32
  %660 = load ptr, ptr %5, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.cmp_object_s, ptr %660, i32 0, i32 1
  store i32 %659, ptr %661, align 8, !tbaa !9
  br label %803

662:                                              ; preds = %637
  %663 = load i8, ptr %6, align 1, !tbaa !9
  %664 = zext i8 %663 to i32
  %665 = icmp eq i32 %664, 219
  br i1 %665, label %666, label %686

666:                                              ; preds = %662
  %667 = load ptr, ptr %5, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.cmp_object_s, ptr %667, i32 0, i32 0
  store i8 29, ptr %668, align 8, !tbaa !10
  %669 = load ptr, ptr %4, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.cmp_ctx_s, ptr %669, i32 0, i32 2
  %671 = load ptr, ptr %670, align 8, !tbaa !12
  %672 = load ptr, ptr %4, align 8, !tbaa !5
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.cmp_object_s, ptr %673, i32 0, i32 1
  %675 = call zeroext i1 %671(ptr noundef %672, ptr noundef %674, i64 noundef 4)
  br i1 %675, label %679, label %676

676:                                              ; preds = %666
  %677 = load ptr, ptr %4, align 8, !tbaa !5
  %678 = getelementptr inbounds %struct.cmp_ctx_s, ptr %677, i32 0, i32 0
  store i8 9, ptr %678, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

679:                                              ; preds = %666
  %680 = load ptr, ptr %5, align 8, !tbaa !5
  %681 = getelementptr inbounds %struct.cmp_object_s, ptr %680, i32 0, i32 1
  %682 = load i32, ptr %681, align 8, !tbaa !9
  %683 = call i32 @be32(i32 noundef %682)
  %684 = load ptr, ptr %5, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.cmp_object_s, ptr %684, i32 0, i32 1
  store i32 %683, ptr %685, align 8, !tbaa !9
  br label %802

686:                                              ; preds = %662
  %687 = load i8, ptr %6, align 1, !tbaa !9
  %688 = zext i8 %687 to i32
  %689 = icmp eq i32 %688, 220
  br i1 %689, label %690, label %711

690:                                              ; preds = %686
  %691 = load ptr, ptr %5, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.cmp_object_s, ptr %691, i32 0, i32 0
  store i8 30, ptr %692, align 8, !tbaa !10
  %693 = load ptr, ptr %4, align 8, !tbaa !5
  %694 = getelementptr inbounds %struct.cmp_ctx_s, ptr %693, i32 0, i32 2
  %695 = load ptr, ptr %694, align 8, !tbaa !12
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = load ptr, ptr %5, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.cmp_object_s, ptr %697, i32 0, i32 1
  %699 = call zeroext i1 %695(ptr noundef %696, ptr noundef %698, i64 noundef 2)
  br i1 %699, label %703, label %700

700:                                              ; preds = %690
  %701 = load ptr, ptr %4, align 8, !tbaa !5
  %702 = getelementptr inbounds %struct.cmp_ctx_s, ptr %701, i32 0, i32 0
  store i8 9, ptr %702, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

703:                                              ; preds = %690
  %704 = load ptr, ptr %5, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.cmp_object_s, ptr %704, i32 0, i32 1
  %706 = load i16, ptr %705, align 8, !tbaa !9
  %707 = call zeroext i16 @be16(i16 noundef zeroext %706)
  %708 = zext i16 %707 to i32
  %709 = load ptr, ptr %5, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.cmp_object_s, ptr %709, i32 0, i32 1
  store i32 %708, ptr %710, align 8, !tbaa !9
  br label %801

711:                                              ; preds = %686
  %712 = load i8, ptr %6, align 1, !tbaa !9
  %713 = zext i8 %712 to i32
  %714 = icmp eq i32 %713, 221
  br i1 %714, label %715, label %735

715:                                              ; preds = %711
  %716 = load ptr, ptr %5, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.cmp_object_s, ptr %716, i32 0, i32 0
  store i8 31, ptr %717, align 8, !tbaa !10
  %718 = load ptr, ptr %4, align 8, !tbaa !5
  %719 = getelementptr inbounds %struct.cmp_ctx_s, ptr %718, i32 0, i32 2
  %720 = load ptr, ptr %719, align 8, !tbaa !12
  %721 = load ptr, ptr %4, align 8, !tbaa !5
  %722 = load ptr, ptr %5, align 8, !tbaa !5
  %723 = getelementptr inbounds %struct.cmp_object_s, ptr %722, i32 0, i32 1
  %724 = call zeroext i1 %720(ptr noundef %721, ptr noundef %723, i64 noundef 4)
  br i1 %724, label %728, label %725

725:                                              ; preds = %715
  %726 = load ptr, ptr %4, align 8, !tbaa !5
  %727 = getelementptr inbounds %struct.cmp_ctx_s, ptr %726, i32 0, i32 0
  store i8 9, ptr %727, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

728:                                              ; preds = %715
  %729 = load ptr, ptr %5, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.cmp_object_s, ptr %729, i32 0, i32 1
  %731 = load i32, ptr %730, align 8, !tbaa !9
  %732 = call i32 @be32(i32 noundef %731)
  %733 = load ptr, ptr %5, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.cmp_object_s, ptr %733, i32 0, i32 1
  store i32 %732, ptr %734, align 8, !tbaa !9
  br label %800

735:                                              ; preds = %711
  %736 = load i8, ptr %6, align 1, !tbaa !9
  %737 = zext i8 %736 to i32
  %738 = icmp eq i32 %737, 222
  br i1 %738, label %739, label %760

739:                                              ; preds = %735
  %740 = load ptr, ptr %5, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.cmp_object_s, ptr %740, i32 0, i32 0
  store i8 32, ptr %741, align 8, !tbaa !10
  %742 = load ptr, ptr %4, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.cmp_ctx_s, ptr %742, i32 0, i32 2
  %744 = load ptr, ptr %743, align 8, !tbaa !12
  %745 = load ptr, ptr %4, align 8, !tbaa !5
  %746 = load ptr, ptr %5, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.cmp_object_s, ptr %746, i32 0, i32 1
  %748 = call zeroext i1 %744(ptr noundef %745, ptr noundef %747, i64 noundef 2)
  br i1 %748, label %752, label %749

749:                                              ; preds = %739
  %750 = load ptr, ptr %4, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.cmp_ctx_s, ptr %750, i32 0, i32 0
  store i8 9, ptr %751, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

752:                                              ; preds = %739
  %753 = load ptr, ptr %5, align 8, !tbaa !5
  %754 = getelementptr inbounds %struct.cmp_object_s, ptr %753, i32 0, i32 1
  %755 = load i16, ptr %754, align 8, !tbaa !9
  %756 = call zeroext i16 @be16(i16 noundef zeroext %755)
  %757 = zext i16 %756 to i32
  %758 = load ptr, ptr %5, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.cmp_object_s, ptr %758, i32 0, i32 1
  store i32 %757, ptr %759, align 8, !tbaa !9
  br label %799

760:                                              ; preds = %735
  %761 = load i8, ptr %6, align 1, !tbaa !9
  %762 = zext i8 %761 to i32
  %763 = icmp eq i32 %762, 223
  br i1 %763, label %764, label %784

764:                                              ; preds = %760
  %765 = load ptr, ptr %5, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.cmp_object_s, ptr %765, i32 0, i32 0
  store i8 33, ptr %766, align 8, !tbaa !10
  %767 = load ptr, ptr %4, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.cmp_ctx_s, ptr %767, i32 0, i32 2
  %769 = load ptr, ptr %768, align 8, !tbaa !12
  %770 = load ptr, ptr %4, align 8, !tbaa !5
  %771 = load ptr, ptr %5, align 8, !tbaa !5
  %772 = getelementptr inbounds %struct.cmp_object_s, ptr %771, i32 0, i32 1
  %773 = call zeroext i1 %769(ptr noundef %770, ptr noundef %772, i64 noundef 4)
  br i1 %773, label %777, label %774

774:                                              ; preds = %764
  %775 = load ptr, ptr %4, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.cmp_ctx_s, ptr %775, i32 0, i32 0
  store i8 9, ptr %776, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

777:                                              ; preds = %764
  %778 = load ptr, ptr %5, align 8, !tbaa !5
  %779 = getelementptr inbounds %struct.cmp_object_s, ptr %778, i32 0, i32 1
  %780 = load i32, ptr %779, align 8, !tbaa !9
  %781 = call i32 @be32(i32 noundef %780)
  %782 = load ptr, ptr %5, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.cmp_object_s, ptr %782, i32 0, i32 1
  store i32 %781, ptr %783, align 8, !tbaa !9
  br label %798

784:                                              ; preds = %760
  %785 = load i8, ptr %6, align 1, !tbaa !9
  %786 = zext i8 %785 to i32
  %787 = icmp sge i32 %786, 224
  br i1 %787, label %788, label %794

788:                                              ; preds = %784
  %789 = load ptr, ptr %5, align 8, !tbaa !5
  %790 = getelementptr inbounds %struct.cmp_object_s, ptr %789, i32 0, i32 0
  store i8 34, ptr %790, align 8, !tbaa !10
  %791 = load i8, ptr %6, align 1, !tbaa !9
  %792 = load ptr, ptr %5, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.cmp_object_s, ptr %792, i32 0, i32 1
  store i8 %791, ptr %793, align 8, !tbaa !9
  br label %797

794:                                              ; preds = %784
  %795 = load ptr, ptr %4, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.cmp_ctx_s, ptr %795, i32 0, i32 0
  store i8 13, ptr %796, align 8, !tbaa !14
  store i1 false, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

797:                                              ; preds = %788
  br label %798

798:                                              ; preds = %797, %777
  br label %799

799:                                              ; preds = %798, %752
  br label %800

800:                                              ; preds = %799, %728
  br label %801

801:                                              ; preds = %800, %703
  br label %802

802:                                              ; preds = %801, %679
  br label %803

803:                                              ; preds = %802, %654
  br label %804

804:                                              ; preds = %803, %630
  br label %805

805:                                              ; preds = %804, %609
  br label %806

806:                                              ; preds = %805, %587
  br label %807

807:                                              ; preds = %806, %565
  br label %808

808:                                              ; preds = %807, %543
  br label %809

809:                                              ; preds = %808, %521
  br label %810

810:                                              ; preds = %809, %496
  br label %811

811:                                              ; preds = %810, %472
  br label %812

812:                                              ; preds = %811, %448
  br label %813

813:                                              ; preds = %812, %430
  br label %814

814:                                              ; preds = %813, %406
  br label %815

815:                                              ; preds = %814, %382
  br label %816

816:                                              ; preds = %815, %358
  br label %817

817:                                              ; preds = %816, %340
  br label %818

818:                                              ; preds = %817, %316
  br label %819

819:                                              ; preds = %818, %292
  br label %820

820:                                              ; preds = %819, %274
  br label %821

821:                                              ; preds = %820, %237
  br label %822

822:                                              ; preds = %821, %199
  br label %823

823:                                              ; preds = %822, %156
  br label %824

824:                                              ; preds = %823, %131
  br label %825

825:                                              ; preds = %824, %107
  br label %826

826:                                              ; preds = %825, %85
  br label %827

827:                                              ; preds = %826, %76
  br label %828

828:                                              ; preds = %827, %67
  br label %829

829:                                              ; preds = %828, %55
  br label %830

830:                                              ; preds = %829, %43
  br label %831

831:                                              ; preds = %830, %31
  br label %832

832:                                              ; preds = %831, %21
  store i1 true, ptr %3, align 1
  store i32 1, ptr %7, align 4
  br label %833

833:                                              ; preds = %832, %794, %774, %749, %725, %700, %676, %651, %627, %606, %584, %562, %540, %518, %493, %469, %445, %427, %403, %379, %355, %337, %313, %289, %272, %235, %197, %153, %128, %104, %16
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #2
  %834 = load i1, ptr %3, align 1
  ret i1 %834
}

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

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @read_type_marker(ptr noundef, ptr noundef) #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" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind }

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

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


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

; Function Attrs: nounwind uwtable
declare hidden zeroext i16 @be16(i16 noundef zeroext) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @be32(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i64 @be64(i64 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden float @befloat(float noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden double @bedouble(double noundef) local_unnamed_addr #0

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

; Function Attrs: nounwind uwtable
define dso_local noundef zeroext i1 @cmp_read_object(ptr noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = alloca i8, align 1
  %4 = alloca i8, align 1
  %5 = alloca i8, align 1
  %6 = alloca i8, align 1
  %7 = alloca i16, align 2
  %8 = alloca i8, align 1
  %9 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #2
  store i8 0, ptr %3, align 1, !tbaa !5
  %10 = call zeroext i1 @read_type_marker(ptr noundef %0, ptr noundef nonnull %3)
  br i1 %10, label %11, label %304

11:                                               ; preds = %2
  %12 = load i8, ptr %3, align 1, !tbaa !5
  %13 = icmp sgt i8 %12, -1
  br i1 %13, label %14, label %16

14:                                               ; preds = %11
  store i8 0, ptr %1, align 8, !tbaa !8
  %15 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 %12, ptr %15, align 8, !tbaa !5
  br label %304

16:                                               ; preds = %11
  %17 = icmp ult i8 %12, -112
  br i1 %17, label %18, label %22

18:                                               ; preds = %16
  store i8 1, ptr %1, align 8, !tbaa !8
  %19 = and i8 %12, 15
  %20 = zext nneg i8 %19 to i32
  %21 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %20, ptr %21, align 8, !tbaa !5
  br label %304

22:                                               ; preds = %16
  %23 = icmp ult i8 %12, -96
  br i1 %23, label %24, label %28

24:                                               ; preds = %22
  store i8 2, ptr %1, align 8, !tbaa !8
  %25 = and i8 %12, 15
  %26 = zext nneg i8 %25 to i32
  %27 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %26, ptr %27, align 8, !tbaa !5
  br label %304

28:                                               ; preds = %22
  %29 = icmp ult i8 %12, -64
  br i1 %29, label %30, label %34

30:                                               ; preds = %28
  store i8 3, ptr %1, align 8, !tbaa !8
  %31 = and i8 %12, 31
  %32 = zext nneg i8 %31 to i32
  %33 = getelementptr inbounds i8, ptr %1, i64 8
  store i32 %32, ptr %33, align 8, !tbaa !5
  br label %304

34:                                               ; preds = %28
  switch i8 %12, label %299 [
    i8 -64, label %35
    i8 -62, label %37
    i8 -61, label %39
    i8 -60, label %41
    i8 -59, label %50
    i8 -58, label %60
    i8 -57, label %69
    i8 -56, label %82
    i8 -55, label %96
    i8 -54, label %109
    i8 -53, label %118
    i8 -52, label %127
    i8 -51, label %133
    i8 -50, label %142
    i8 -49, label %151
    i8 -48, label %160
    i8 -47, label %166
    i8 -46, label %175
    i8 -45, label %184
    i8 -44, label %193
    i8 -43, label %201
    i8 -42, label %209
    i8 -41, label %217
    i8 -40, label %225
    i8 -39, label %233
    i8 -38, label %242
    i8 -37, label %252
    i8 -36, label %261
    i8 -35, label %271
    i8 -34, label %280
    i8 -33, label %290
  ]

35:                                               ; preds = %34
  store i8 4, ptr %1, align 8, !tbaa !8
  %36 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 0, ptr %36, align 8, !tbaa !5
  br label %304

37:                                               ; preds = %34
  store i8 5, ptr %1, align 8, !tbaa !8
  %38 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 0, ptr %38, align 8, !tbaa !5
  br label %304

39:                                               ; preds = %34
  store i8 5, ptr %1, align 8, !tbaa !8
  %40 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 1, ptr %40, align 8, !tbaa !5
  br label %304

41:                                               ; preds = %34
  store i8 6, ptr %1, align 8, !tbaa !8
  %42 = getelementptr inbounds i8, ptr %0, i64 16
  %43 = load ptr, ptr %42, align 8, !tbaa !10
  %44 = getelementptr inbounds i8, ptr %1, i64 8
  %45 = call zeroext i1 %43(ptr noundef %0, ptr noundef nonnull %44, i64 noundef 1) #2
  br i1 %45, label %47, label %46

46:                                               ; preds = %41
  store i8 14, ptr %0, align 8, !tbaa !13
  br label %304

47:                                               ; preds = %41
  %48 = load i8, ptr %44, align 8, !tbaa !5
  %49 = zext i8 %48 to i32
  store i32 %49, ptr %44, align 8, !tbaa !5
  br label %304

50:                                               ; preds = %34
  store i8 7, ptr %1, align 8, !tbaa !8
  %51 = getelementptr inbounds i8, ptr %0, i64 16
  %52 = load ptr, ptr %51, align 8, !tbaa !10
  %53 = getelementptr inbounds i8, ptr %1, i64 8
  %54 = call zeroext i1 %52(ptr noundef %0, ptr noundef nonnull %53, i64 noundef 2) #2
  br i1 %54, label %56, label %55

55:                                               ; preds = %50
  store i8 14, ptr %0, align 8, !tbaa !13
  br label %304

56:                                               ; preds = %50
  %57 = load i16, ptr %53, align 8, !tbaa !5
  %58 = call zeroext i16 @be16(i16 noundef zeroext %57)
  %59 = zext i16 %58 to i32
  store i32 %59, ptr %53, align 8, !tbaa !5
  br label %304

60:                                               ; preds = %34
  store i8 8, ptr %1, align 8, !tbaa !8
  %61 = getelementptr inbounds i8, ptr %0, i64 16
  %62 = load ptr, ptr %61, align 8, !tbaa !10
  %63 = getelementptr inbounds i8, ptr %1, i64 8
  %64 = call zeroext i1 %62(ptr noundef %0, ptr noundef nonnull %63, i64 noundef 4) #2
  br i1 %64, label %66, label %65

65:                                               ; preds = %60
  store i8 14, ptr %0, align 8, !tbaa !13
  br label %304

66:                                               ; preds = %60
  %67 = load i32, ptr %63, align 8, !tbaa !5
  %68 = call i32 @be32(i32 noundef %67)
  store i32 %68, ptr %63, align 8, !tbaa !5
  br label %304

69:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #2
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #2
  store i8 9, ptr %1, align 8, !tbaa !8
  %70 = getelementptr inbounds i8, ptr %0, i64 16
  %71 = load ptr, ptr %70, align 8, !tbaa !10
  %72 = call zeroext i1 %71(ptr noundef %0, ptr noundef nonnull %4, i64 noundef 1) #2
  br i1 %72, label %73, label %81

73:                                               ; preds = %69
  %74 = load ptr, ptr %70, align 8, !tbaa !10
  %75 = call zeroext i1 %74(ptr noundef nonnull %0, ptr noundef nonnull %5, i64 noundef 1) #2
  br i1 %75, label %.critedge, label %81

.critedge:                                        ; preds = %73
  %76 = load i8, ptr %4, align 1, !tbaa !5
  %77 = zext i8 %76 to i32
  %78 = getelementptr inbounds i8, ptr %1, i64 8
  %79 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %77, ptr %79, align 4, !tbaa !5
  %80 = load i8, ptr %5, align 1, !tbaa !5
  store i8 %80, ptr %78, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #2
  br label %304

81:                                               ; preds = %73, %69
  %storemerge225 = phi i8 [ 14, %69 ], [ 11, %73 ]
  store i8 %storemerge225, ptr %0, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #2
  br label %304

82:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #2
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %7) #2
  store i8 10, ptr %1, align 8, !tbaa !8
  %83 = getelementptr inbounds i8, ptr %0, i64 16
  %84 = load ptr, ptr %83, align 8, !tbaa !10
  %85 = call zeroext i1 %84(ptr noundef %0, ptr noundef nonnull %7, i64 noundef 2) #2
  br i1 %85, label %86, label %95

86:                                               ; preds = %82
  %87 = load ptr, ptr %83, align 8, !tbaa !10
  %88 = call zeroext i1 %87(ptr noundef nonnull %0, ptr noundef nonnull %6, i64 noundef 1) #2
  br i1 %88, label %.critedge221, label %95

.critedge221:                                     ; preds = %86
  %89 = load i16, ptr %7, align 2, !tbaa !14
  %90 = call zeroext i16 @be16(i16 noundef zeroext %89)
  %91 = zext i16 %90 to i32
  %92 = getelementptr inbounds i8, ptr %1, i64 8
  %93 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %91, ptr %93, align 4, !tbaa !5
  %94 = load i8, ptr %6, align 1, !tbaa !5
  store i8 %94, ptr %92, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #2
  br label %304

95:                                               ; preds = %86, %82
  %storemerge224 = phi i8 [ 14, %82 ], [ 11, %86 ]
  store i8 %storemerge224, ptr %0, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %7) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #2
  br label %304

96:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #2
  store i8 11, ptr %1, align 8, !tbaa !8
  %97 = getelementptr inbounds i8, ptr %0, i64 16
  %98 = load ptr, ptr %97, align 8, !tbaa !10
  %99 = call zeroext i1 %98(ptr noundef %0, ptr noundef nonnull %9, i64 noundef 4) #2
  br i1 %99, label %100, label %108

100:                                              ; preds = %96
  %101 = load ptr, ptr %97, align 8, !tbaa !10
  %102 = call zeroext i1 %101(ptr noundef nonnull %0, ptr noundef nonnull %8, i64 noundef 1) #2
  br i1 %102, label %.critedge223, label %108

.critedge223:                                     ; preds = %100
  %103 = load i32, ptr %9, align 4, !tbaa !16
  %104 = call i32 @be32(i32 noundef %103)
  %105 = getelementptr inbounds i8, ptr %1, i64 8
  %106 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 %104, ptr %106, align 4, !tbaa !5
  %107 = load i8, ptr %8, align 1, !tbaa !5
  store i8 %107, ptr %105, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #2
  br label %304

108:                                              ; preds = %100, %96
  %storemerge = phi i8 [ 14, %96 ], [ 11, %100 ]
  store i8 %storemerge, ptr %0, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #2
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #2
  br label %304

109:                                              ; preds = %34
  store i8 12, ptr %1, align 8, !tbaa !8
  %110 = getelementptr inbounds i8, ptr %0, i64 16
  %111 = load ptr, ptr %110, align 8, !tbaa !10
  %112 = getelementptr inbounds i8, ptr %1, i64 8
  %113 = call zeroext i1 %111(ptr noundef %0, ptr noundef nonnull %112, i64 noundef 4) #2
  br i1 %113, label %115, label %114

114:                                              ; preds = %109
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

115:                                              ; preds = %109
  %116 = load float, ptr %112, align 8, !tbaa !5
  %117 = call float @befloat(float noundef %116)
  store float %117, ptr %112, align 8, !tbaa !5
  br label %304

118:                                              ; preds = %34
  store i8 13, ptr %1, align 8, !tbaa !8
  %119 = getelementptr inbounds i8, ptr %0, i64 16
  %120 = load ptr, ptr %119, align 8, !tbaa !10
  %121 = getelementptr inbounds i8, ptr %1, i64 8
  %122 = call zeroext i1 %120(ptr noundef %0, ptr noundef nonnull %121, i64 noundef 8) #2
  br i1 %122, label %124, label %123

123:                                              ; preds = %118
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

124:                                              ; preds = %118
  %125 = load double, ptr %121, align 8, !tbaa !5
  %126 = call double @bedouble(double noundef %125)
  store double %126, ptr %121, align 8, !tbaa !5
  br label %304

127:                                              ; preds = %34
  store i8 14, ptr %1, align 8, !tbaa !8
  %128 = getelementptr inbounds i8, ptr %0, i64 16
  %129 = load ptr, ptr %128, align 8, !tbaa !10
  %130 = getelementptr inbounds i8, ptr %1, i64 8
  %131 = call zeroext i1 %129(ptr noundef %0, ptr noundef nonnull %130, i64 noundef 1) #2
  br i1 %131, label %304, label %132

132:                                              ; preds = %127
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

133:                                              ; preds = %34
  store i8 15, ptr %1, align 8, !tbaa !8
  %134 = getelementptr inbounds i8, ptr %0, i64 16
  %135 = load ptr, ptr %134, align 8, !tbaa !10
  %136 = getelementptr inbounds i8, ptr %1, i64 8
  %137 = call zeroext i1 %135(ptr noundef %0, ptr noundef nonnull %136, i64 noundef 2) #2
  br i1 %137, label %139, label %138

138:                                              ; preds = %133
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

139:                                              ; preds = %133
  %140 = load i16, ptr %136, align 8, !tbaa !5
  %141 = call zeroext i16 @be16(i16 noundef zeroext %140)
  store i16 %141, ptr %136, align 8, !tbaa !5
  br label %304

142:                                              ; preds = %34
  store i8 16, ptr %1, align 8, !tbaa !8
  %143 = getelementptr inbounds i8, ptr %0, i64 16
  %144 = load ptr, ptr %143, align 8, !tbaa !10
  %145 = getelementptr inbounds i8, ptr %1, i64 8
  %146 = call zeroext i1 %144(ptr noundef %0, ptr noundef nonnull %145, i64 noundef 4) #2
  br i1 %146, label %148, label %147

147:                                              ; preds = %142
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

148:                                              ; preds = %142
  %149 = load i32, ptr %145, align 8, !tbaa !5
  %150 = call i32 @be32(i32 noundef %149)
  store i32 %150, ptr %145, align 8, !tbaa !5
  br label %304

151:                                              ; preds = %34
  store i8 17, ptr %1, align 8, !tbaa !8
  %152 = getelementptr inbounds i8, ptr %0, i64 16
  %153 = load ptr, ptr %152, align 8, !tbaa !10
  %154 = getelementptr inbounds i8, ptr %1, i64 8
  %155 = call zeroext i1 %153(ptr noundef %0, ptr noundef nonnull %154, i64 noundef 8) #2
  br i1 %155, label %157, label %156

156:                                              ; preds = %151
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

157:                                              ; preds = %151
  %158 = load i64, ptr %154, align 8, !tbaa !5
  %159 = call i64 @be64(i64 noundef %158)
  store i64 %159, ptr %154, align 8, !tbaa !5
  br label %304

160:                                              ; preds = %34
  store i8 18, ptr %1, align 8, !tbaa !8
  %161 = getelementptr inbounds i8, ptr %0, i64 16
  %162 = load ptr, ptr %161, align 8, !tbaa !10
  %163 = getelementptr inbounds i8, ptr %1, i64 8
  %164 = call zeroext i1 %162(ptr noundef %0, ptr noundef nonnull %163, i64 noundef 1) #2
  br i1 %164, label %304, label %165

165:                                              ; preds = %160
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

166:                                              ; preds = %34
  store i8 19, ptr %1, align 8, !tbaa !8
  %167 = getelementptr inbounds i8, ptr %0, i64 16
  %168 = load ptr, ptr %167, align 8, !tbaa !10
  %169 = getelementptr inbounds i8, ptr %1, i64 8
  %170 = call zeroext i1 %168(ptr noundef %0, ptr noundef nonnull %169, i64 noundef 2) #2
  br i1 %170, label %172, label %171

171:                                              ; preds = %166
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

172:                                              ; preds = %166
  %173 = load i16, ptr %169, align 8, !tbaa !5
  %174 = call zeroext i16 @be16(i16 noundef zeroext %173)
  store i16 %174, ptr %169, align 8, !tbaa !5
  br label %304

175:                                              ; preds = %34
  store i8 20, ptr %1, align 8, !tbaa !8
  %176 = getelementptr inbounds i8, ptr %0, i64 16
  %177 = load ptr, ptr %176, align 8, !tbaa !10
  %178 = getelementptr inbounds i8, ptr %1, i64 8
  %179 = call zeroext i1 %177(ptr noundef %0, ptr noundef nonnull %178, i64 noundef 4) #2
  br i1 %179, label %181, label %180

180:                                              ; preds = %175
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

181:                                              ; preds = %175
  %182 = load i32, ptr %178, align 8, !tbaa !5
  %183 = call i32 @be32(i32 noundef %182)
  store i32 %183, ptr %178, align 8, !tbaa !5
  br label %304

184:                                              ; preds = %34
  store i8 21, ptr %1, align 8, !tbaa !8
  %185 = getelementptr inbounds i8, ptr %0, i64 16
  %186 = load ptr, ptr %185, align 8, !tbaa !10
  %187 = getelementptr inbounds i8, ptr %1, i64 8
  %188 = call zeroext i1 %186(ptr noundef %0, ptr noundef nonnull %187, i64 noundef 8) #2
  br i1 %188, label %190, label %189

189:                                              ; preds = %184
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

190:                                              ; preds = %184
  %191 = load i64, ptr %187, align 8, !tbaa !5
  %192 = call i64 @be64(i64 noundef %191)
  store i64 %192, ptr %187, align 8, !tbaa !5
  br label %304

193:                                              ; preds = %34
  store i8 22, ptr %1, align 8, !tbaa !8
  %194 = getelementptr inbounds i8, ptr %0, i64 16
  %195 = load ptr, ptr %194, align 8, !tbaa !10
  %196 = getelementptr inbounds i8, ptr %1, i64 8
  %197 = call zeroext i1 %195(ptr noundef %0, ptr noundef nonnull %196, i64 noundef 1) #2
  br i1 %197, label %199, label %198

198:                                              ; preds = %193
  store i8 11, ptr %0, align 8, !tbaa !13
  br label %304

199:                                              ; preds = %193
  %200 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 1, ptr %200, align 4, !tbaa !5
  br label %304

201:                                              ; preds = %34
  store i8 23, ptr %1, align 8, !tbaa !8
  %202 = getelementptr inbounds i8, ptr %0, i64 16
  %203 = load ptr, ptr %202, align 8, !tbaa !10
  %204 = getelementptr inbounds i8, ptr %1, i64 8
  %205 = call zeroext i1 %203(ptr noundef %0, ptr noundef nonnull %204, i64 noundef 1) #2
  br i1 %205, label %207, label %206

206:                                              ; preds = %201
  store i8 11, ptr %0, align 8, !tbaa !13
  br label %304

207:                                              ; preds = %201
  %208 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 2, ptr %208, align 4, !tbaa !5
  br label %304

209:                                              ; preds = %34
  store i8 24, ptr %1, align 8, !tbaa !8
  %210 = getelementptr inbounds i8, ptr %0, i64 16
  %211 = load ptr, ptr %210, align 8, !tbaa !10
  %212 = getelementptr inbounds i8, ptr %1, i64 8
  %213 = call zeroext i1 %211(ptr noundef %0, ptr noundef nonnull %212, i64 noundef 1) #2
  br i1 %213, label %215, label %214

214:                                              ; preds = %209
  store i8 11, ptr %0, align 8, !tbaa !13
  br label %304

215:                                              ; preds = %209
  %216 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 4, ptr %216, align 4, !tbaa !5
  br label %304

217:                                              ; preds = %34
  store i8 25, ptr %1, align 8, !tbaa !8
  %218 = getelementptr inbounds i8, ptr %0, i64 16
  %219 = load ptr, ptr %218, align 8, !tbaa !10
  %220 = getelementptr inbounds i8, ptr %1, i64 8
  %221 = call zeroext i1 %219(ptr noundef %0, ptr noundef nonnull %220, i64 noundef 1) #2
  br i1 %221, label %223, label %222

222:                                              ; preds = %217
  store i8 11, ptr %0, align 8, !tbaa !13
  br label %304

223:                                              ; preds = %217
  %224 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 8, ptr %224, align 4, !tbaa !5
  br label %304

225:                                              ; preds = %34
  store i8 26, ptr %1, align 8, !tbaa !8
  %226 = getelementptr inbounds i8, ptr %0, i64 16
  %227 = load ptr, ptr %226, align 8, !tbaa !10
  %228 = getelementptr inbounds i8, ptr %1, i64 8
  %229 = call zeroext i1 %227(ptr noundef %0, ptr noundef nonnull %228, i64 noundef 1) #2
  br i1 %229, label %231, label %230

230:                                              ; preds = %225
  store i8 11, ptr %0, align 8, !tbaa !13
  br label %304

231:                                              ; preds = %225
  %232 = getelementptr inbounds i8, ptr %1, i64 12
  store i32 16, ptr %232, align 4, !tbaa !5
  br label %304

233:                                              ; preds = %34
  store i8 27, ptr %1, align 8, !tbaa !8
  %234 = getelementptr inbounds i8, ptr %0, i64 16
  %235 = load ptr, ptr %234, align 8, !tbaa !10
  %236 = getelementptr inbounds i8, ptr %1, i64 8
  %237 = call zeroext i1 %235(ptr noundef %0, ptr noundef nonnull %236, i64 noundef 1) #2
  br i1 %237, label %239, label %238

238:                                              ; preds = %233
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

239:                                              ; preds = %233
  %240 = load i8, ptr %236, align 8, !tbaa !5
  %241 = zext i8 %240 to i32
  store i32 %241, ptr %236, align 8, !tbaa !5
  br label %304

242:                                              ; preds = %34
  store i8 28, ptr %1, align 8, !tbaa !8
  %243 = getelementptr inbounds i8, ptr %0, i64 16
  %244 = load ptr, ptr %243, align 8, !tbaa !10
  %245 = getelementptr inbounds i8, ptr %1, i64 8
  %246 = call zeroext i1 %244(ptr noundef %0, ptr noundef nonnull %245, i64 noundef 2) #2
  br i1 %246, label %248, label %247

247:                                              ; preds = %242
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

248:                                              ; preds = %242
  %249 = load i16, ptr %245, align 8, !tbaa !5
  %250 = call zeroext i16 @be16(i16 noundef zeroext %249)
  %251 = zext i16 %250 to i32
  store i32 %251, ptr %245, align 8, !tbaa !5
  br label %304

252:                                              ; preds = %34
  store i8 29, ptr %1, align 8, !tbaa !8
  %253 = getelementptr inbounds i8, ptr %0, i64 16
  %254 = load ptr, ptr %253, align 8, !tbaa !10
  %255 = getelementptr inbounds i8, ptr %1, i64 8
  %256 = call zeroext i1 %254(ptr noundef %0, ptr noundef nonnull %255, i64 noundef 4) #2
  br i1 %256, label %258, label %257

257:                                              ; preds = %252
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

258:                                              ; preds = %252
  %259 = load i32, ptr %255, align 8, !tbaa !5
  %260 = call i32 @be32(i32 noundef %259)
  store i32 %260, ptr %255, align 8, !tbaa !5
  br label %304

261:                                              ; preds = %34
  store i8 30, ptr %1, align 8, !tbaa !8
  %262 = getelementptr inbounds i8, ptr %0, i64 16
  %263 = load ptr, ptr %262, align 8, !tbaa !10
  %264 = getelementptr inbounds i8, ptr %1, i64 8
  %265 = call zeroext i1 %263(ptr noundef %0, ptr noundef nonnull %264, i64 noundef 2) #2
  br i1 %265, label %267, label %266

266:                                              ; preds = %261
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

267:                                              ; preds = %261
  %268 = load i16, ptr %264, align 8, !tbaa !5
  %269 = call zeroext i16 @be16(i16 noundef zeroext %268)
  %270 = zext i16 %269 to i32
  store i32 %270, ptr %264, align 8, !tbaa !5
  br label %304

271:                                              ; preds = %34
  store i8 31, ptr %1, align 8, !tbaa !8
  %272 = getelementptr inbounds i8, ptr %0, i64 16
  %273 = load ptr, ptr %272, align 8, !tbaa !10
  %274 = getelementptr inbounds i8, ptr %1, i64 8
  %275 = call zeroext i1 %273(ptr noundef %0, ptr noundef nonnull %274, i64 noundef 4) #2
  br i1 %275, label %277, label %276

276:                                              ; preds = %271
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

277:                                              ; preds = %271
  %278 = load i32, ptr %274, align 8, !tbaa !5
  %279 = call i32 @be32(i32 noundef %278)
  store i32 %279, ptr %274, align 8, !tbaa !5
  br label %304

280:                                              ; preds = %34
  store i8 32, ptr %1, align 8, !tbaa !8
  %281 = getelementptr inbounds i8, ptr %0, i64 16
  %282 = load ptr, ptr %281, align 8, !tbaa !10
  %283 = getelementptr inbounds i8, ptr %1, i64 8
  %284 = call zeroext i1 %282(ptr noundef %0, ptr noundef nonnull %283, i64 noundef 2) #2
  br i1 %284, label %286, label %285

285:                                              ; preds = %280
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

286:                                              ; preds = %280
  %287 = load i16, ptr %283, align 8, !tbaa !5
  %288 = call zeroext i16 @be16(i16 noundef zeroext %287)
  %289 = zext i16 %288 to i32
  store i32 %289, ptr %283, align 8, !tbaa !5
  br label %304

290:                                              ; preds = %34
  store i8 33, ptr %1, align 8, !tbaa !8
  %291 = getelementptr inbounds i8, ptr %0, i64 16
  %292 = load ptr, ptr %291, align 8, !tbaa !10
  %293 = getelementptr inbounds i8, ptr %1, i64 8
  %294 = call zeroext i1 %292(ptr noundef %0, ptr noundef nonnull %293, i64 noundef 4) #2
  br i1 %294, label %296, label %295

295:                                              ; preds = %290
  store i8 9, ptr %0, align 8, !tbaa !13
  br label %304

296:                                              ; preds = %290
  %297 = load i32, ptr %293, align 8, !tbaa !5
  %298 = call i32 @be32(i32 noundef %297)
  store i32 %298, ptr %293, align 8, !tbaa !5
  br label %304

299:                                              ; preds = %34
  %300 = icmp ugt i8 %12, -33
  br i1 %300, label %301, label %303

301:                                              ; preds = %299
  store i8 34, ptr %1, align 8, !tbaa !8
  %302 = getelementptr inbounds i8, ptr %1, i64 8
  store i8 %12, ptr %302, align 8, !tbaa !5
  br label %304

303:                                              ; preds = %299
  store i8 13, ptr %0, align 8, !tbaa !13
  br label %304

304:                                              ; preds = %14, %24, %35, %39, %56, %124, %139, %157, %172, %190, %207, %223, %239, %258, %277, %296, %301, %286, %267, %248, %231, %215, %199, %181, %160, %148, %127, %115, %66, %47, %37, %30, %18, %.critedge, %.critedge221, %.critedge223, %108, %95, %81, %2, %303, %295, %285, %276, %266, %257, %247, %238, %230, %222, %214, %206, %198, %189, %180, %171, %165, %156, %147, %138, %132, %123, %114, %65, %55, %46
  %.3 = phi i1 [ false, %46 ], [ false, %55 ], [ false, %65 ], [ false, %81 ], [ false, %95 ], [ false, %108 ], [ false, %114 ], [ false, %123 ], [ false, %132 ], [ false, %138 ], [ false, %147 ], [ false, %156 ], [ false, %165 ], [ false, %171 ], [ false, %180 ], [ false, %189 ], [ false, %198 ], [ false, %206 ], [ false, %214 ], [ false, %222 ], [ false, %230 ], [ false, %238 ], [ false, %247 ], [ false, %257 ], [ false, %266 ], [ false, %276 ], [ false, %285 ], [ false, %295 ], [ false, %303 ], [ false, %2 ], [ true, %.critedge223 ], [ true, %.critedge221 ], [ true, %.critedge ], [ true, %18 ], [ true, %30 ], [ true, %37 ], [ true, %47 ], [ true, %66 ], [ true, %115 ], [ true, %127 ], [ true, %148 ], [ true, %160 ], [ true, %181 ], [ true, %199 ], [ true, %215 ], [ true, %231 ], [ true, %248 ], [ true, %267 ], [ true, %286 ], [ true, %301 ], [ true, %296 ], [ true, %277 ], [ true, %258 ], [ true, %239 ], [ true, %223 ], [ true, %207 ], [ true, %190 ], [ true, %172 ], [ true, %157 ], [ true, %139 ], [ true, %124 ], [ true, %56 ], [ true, %39 ], [ true, %35 ], [ true, %24 ], [ true, %14 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #2
  ret i1 %.3
}

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

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @read_type_marker(ptr noundef, ptr noundef) local_unnamed_addr #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" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nounwind }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass