; LLVM IR from caryll/otfcc :: lib/libcff (cff-parser)

; 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.cff_Index = type { i32, i32, i8, ptr, ptr }
%struct.cff_IOutlineBuilder = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.cff_Value = type { i32, %union.anon.2 }
%union.anon.2 = type { double }
%struct.cff_Stack = type { ptr, [32 x %struct.cff_Value], i32, i32, i8 }
%struct.otfcc_Options = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr }
%struct.otfcc_ILogger = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [92 x i8], align 1

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @__caryll_allocate_clean(i64 noundef, i64 noundef) #1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @cff_parseOutline(ptr noundef %0, i32 noundef %1, ptr noundef byval(%struct.cff_Index) align 8 %2, ptr noundef byval(%struct.cff_Index) align 8 %3, ptr noundef %4, ptr noundef %5, ptr noundef byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %7) #3 {
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i16, align 2
  %15 = alloca i16, align 2
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca %struct.cff_Value, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca double, align 8
  %29 = alloca i16, align 2
  %30 = alloca double, align 8
  %31 = alloca double, align 8
  %32 = alloca i8, align 1
  %33 = alloca double, align 8
  %34 = alloca i16, align 2
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  %37 = alloca i32, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i8, align 1
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca double, align 8
  %44 = alloca double, align 8
  %45 = alloca double, align 8
  %46 = alloca double, align 8
  %47 = alloca double, align 8
  %48 = alloca double, align 8
  %49 = alloca double, align 8
  %50 = alloca double, align 8
  %51 = alloca double, align 8
  %52 = alloca double, align 8
  %53 = alloca double, align 8
  %54 = alloca double, align 8
  %55 = alloca double, align 8
  %56 = alloca double, align 8
  %57 = alloca double, align 8
  %58 = alloca double, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca double, align 8
  %62 = alloca double, align 8
  %63 = alloca double, align 8
  %64 = alloca double, align 8
  %65 = alloca double, align 8
  %66 = alloca double, align 8
  %67 = alloca double, align 8
  %68 = alloca double, align 8
  %69 = alloca double, align 8
  %70 = alloca i8, align 1
  %71 = alloca i8, align 1
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i8, align 1
  %76 = alloca i8, align 1
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  store ptr %0, ptr %9, align 8, !tbaa !5
  store i32 %1, ptr %10, align 4, !tbaa !9
  store ptr %4, ptr %11, align 8, !tbaa !5
  store ptr %5, ptr %12, align 8, !tbaa !5
  store ptr %7, ptr %13, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %14) #7
  %79 = getelementptr inbounds %struct.cff_Index, ptr %2, i32 0, i32 1
  %80 = load i32, ptr %79, align 4, !tbaa !11
  %81 = trunc i32 %80 to i16
  %82 = call zeroext i16 @compute_subr_bias(i16 noundef zeroext %81)
  store i16 %82, ptr %14, align 2, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 2, ptr %15) #7
  %83 = getelementptr inbounds %struct.cff_Index, ptr %3, i32 0, i32 1
  %84 = load i32, ptr %83, align 4, !tbaa !11
  %85 = trunc i32 %84 to i16
  %86 = call zeroext i16 @compute_subr_bias(i16 noundef zeroext %85)
  store i16 %86, ptr %15, align 2, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %87 = load ptr, ptr %9, align 8, !tbaa !5
  store ptr %87, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %88 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 0
  %89 = load ptr, ptr %88, align 8, !tbaa !15
  store ptr %89, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %90 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 1
  %91 = load ptr, ptr %90, align 8, !tbaa !17
  store ptr %91, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %92 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 2
  %93 = load ptr, ptr %92, align 8, !tbaa !18
  store ptr %93, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %94 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 3
  %95 = load ptr, ptr %94, align 8, !tbaa !19
  store ptr %95, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %96 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 4
  %97 = load ptr, ptr %96, align 8, !tbaa !20
  store ptr %97, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %98 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 5
  %99 = load ptr, ptr %98, align 8, !tbaa !21
  store ptr %99, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %100 = getelementptr inbounds %struct.cff_IOutlineBuilder, ptr %6, i32 0, i32 6
  %101 = load ptr, ptr %100, align 8, !tbaa !22
  store ptr %101, ptr %27, align 8, !tbaa !5
  %102 = load ptr, ptr %21, align 8, !tbaa !5
  %103 = icmp ne ptr %102, null
  br i1 %103, label %105, label %104

104:                                              ; preds = %8
  store ptr @callback_nopSetWidth, ptr %21, align 8, !tbaa !5
  br label %105

105:                                              ; preds = %104, %8
  %106 = load ptr, ptr %22, align 8, !tbaa !5
  %107 = icmp ne ptr %106, null
  br i1 %107, label %109, label %108

108:                                              ; preds = %105
  store ptr @callback_nopNewContour, ptr %22, align 8, !tbaa !5
  br label %109

109:                                              ; preds = %108, %105
  %110 = load ptr, ptr %23, align 8, !tbaa !5
  %111 = icmp ne ptr %110, null
  br i1 %111, label %113, label %112

112:                                              ; preds = %109
  store ptr @callback_nopLineTo, ptr %23, align 8, !tbaa !5
  br label %113

113:                                              ; preds = %112, %109
  %114 = load ptr, ptr %24, align 8, !tbaa !5
  %115 = icmp ne ptr %114, null
  br i1 %115, label %117, label %116

116:                                              ; preds = %113
  store ptr @callback_nopCurveTo, ptr %24, align 8, !tbaa !5
  br label %117

117:                                              ; preds = %116, %113
  %118 = load ptr, ptr %25, align 8, !tbaa !5
  %119 = icmp ne ptr %118, null
  br i1 %119, label %121, label %120

120:                                              ; preds = %117
  store ptr @callback_nopsetHint, ptr %25, align 8, !tbaa !5
  br label %121

121:                                              ; preds = %120, %117
  %122 = load ptr, ptr %26, align 8, !tbaa !5
  %123 = icmp ne ptr %122, null
  br i1 %123, label %125, label %124

124:                                              ; preds = %121
  store ptr @callback_nopsetMask, ptr %26, align 8, !tbaa !5
  br label %125

125:                                              ; preds = %124, %121
  %126 = load ptr, ptr %27, align 8, !tbaa !5
  %127 = icmp ne ptr %126, null
  br i1 %127, label %129, label %128

128:                                              ; preds = %125
  store ptr @callback_nopgetrand, ptr %27, align 8, !tbaa !5
  br label %129

129:                                              ; preds = %128, %125
  br label %130

130:                                              ; preds = %3526, %129
  %131 = load ptr, ptr %16, align 8, !tbaa !5
  %132 = load ptr, ptr %9, align 8, !tbaa !5
  %133 = load i32, ptr %10, align 4, !tbaa !9
  %134 = zext i32 %133 to i64
  %135 = getelementptr inbounds i8, ptr %132, i64 %134
  %136 = icmp ult ptr %131, %135
  br i1 %136, label %137, label %3531

137:                                              ; preds = %130
  %138 = load ptr, ptr %16, align 8, !tbaa !5
  %139 = call i32 @cff_decodeCS2Token(ptr noundef %138, ptr noundef %20)
  store i32 %139, ptr %17, align 4, !tbaa !9
  %140 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 0
  %141 = load i32, ptr %140, align 8, !tbaa !23
  switch i32 %141, label %3526 [
    i32 1, label %142
    i32 2, label %3516
    i32 3, label %3516
  ]

142:                                              ; preds = %137
  %143 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 1
  %144 = load i32, ptr %143, align 8, !tbaa !25
  switch i32 %144, label %3502 [
    i32 1, label %145
    i32 3, label %145
    i32 18, label %145
    i32 23, label %145
    i32 19, label %231
    i32 20, label %231
    i32 4, label %452
    i32 21, label %505
    i32 22, label %569
    i32 14, label %622
    i32 5, label %642
    i32 7, label %675
    i32 6, label %758
    i32 8, label %841
    i32 24, label %910
    i32 25, label %1004
    i32 26, label %1106
    i32 27, label %1245
    i32 30, label %1384
    i32 31, label %1623
    i32 3106, label %1862
    i32 3107, label %1934
    i32 3108, label %2029
    i32 3109, label %2127
    i32 3075, label %2304
    i32 3076, label %2366
    i32 3077, label %2428
    i32 3081, label %2470
    i32 3082, label %2517
    i32 3083, label %2573
    i32 3084, label %2629
    i32 3086, label %2685
    i32 3087, label %2725
    i32 3090, label %2783
    i32 3092, label %2804
    i32 3093, label %2856
    i32 3094, label %2903
    i32 3095, label %2987
    i32 3096, label %3013
    i32 3098, label %3069
    i32 3099, label %3109
    i32 3100, label %3147
    i32 3101, label %3208
    i32 3102, label %3260
    i32 11, label %3369
    i32 10, label %3370
    i32 29, label %3436
  ]

145:                                              ; preds = %142, %142, %142, %142
  %146 = load ptr, ptr %11, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.cff_Stack, ptr %146, i32 0, i32 2
  %148 = load i32, ptr %147, align 8, !tbaa !26
  %149 = urem i32 %148, 2
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %160

151:                                              ; preds = %145
  %152 = load ptr, ptr %21, align 8, !tbaa !5
  %153 = load ptr, ptr %12, align 8, !tbaa !5
  %154 = load ptr, ptr %11, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.cff_Stack, ptr %154, i32 0, i32 0
  %156 = load ptr, ptr %155, align 8, !tbaa !28
  %157 = getelementptr inbounds %struct.cff_Value, ptr %156, i64 0
  %158 = getelementptr inbounds %struct.cff_Value, ptr %157, i32 0, i32 1
  %159 = load double, ptr %158, align 8, !tbaa !25
  call void %152(ptr noundef %153, double noundef %159)
  br label %160

160:                                              ; preds = %151, %145
  %161 = load ptr, ptr %11, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.cff_Stack, ptr %161, i32 0, i32 2
  %163 = load i32, ptr %162, align 8, !tbaa !26
  %164 = lshr i32 %163, 1
  %165 = load ptr, ptr %11, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.cff_Stack, ptr %165, i32 0, i32 4
  %167 = load i8, ptr %166, align 8, !tbaa !29
  %168 = zext i8 %167 to i32
  %169 = add i32 %168, %164
  %170 = trunc i32 %169 to i8
  store i8 %170, ptr %166, align 8, !tbaa !29
  store double 0.000000e+00, ptr %28, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 2, ptr %29) #7
  %171 = load ptr, ptr %11, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.cff_Stack, ptr %171, i32 0, i32 2
  %173 = load i32, ptr %172, align 8, !tbaa !26
  %174 = urem i32 %173, 2
  %175 = trunc i32 %174 to i16
  store i16 %175, ptr %29, align 2, !tbaa !13
  br label %176

176:                                              ; preds = %223, %160
  %177 = load i16, ptr %29, align 2, !tbaa !13
  %178 = zext i16 %177 to i32
  %179 = load ptr, ptr %11, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.cff_Stack, ptr %179, i32 0, i32 2
  %181 = load i32, ptr %180, align 8, !tbaa !26
  %182 = icmp ult i32 %178, %181
  br i1 %182, label %184, label %183

183:                                              ; preds = %176
  call void @llvm.lifetime.end.p0(i64 2, ptr %29) #7
  br label %228

184:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #7
  %185 = load ptr, ptr %11, align 8, !tbaa !5
  %186 = getelementptr inbounds %struct.cff_Stack, ptr %185, i32 0, i32 0
  %187 = load ptr, ptr %186, align 8, !tbaa !28
  %188 = load i16, ptr %29, align 2, !tbaa !13
  %189 = zext i16 %188 to i64
  %190 = getelementptr inbounds %struct.cff_Value, ptr %187, i64 %189
  %191 = getelementptr inbounds %struct.cff_Value, ptr %190, i32 0, i32 1
  %192 = load double, ptr %191, align 8, !tbaa !25
  store double %192, ptr %30, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #7
  %193 = load ptr, ptr %11, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.cff_Stack, ptr %193, i32 0, i32 0
  %195 = load ptr, ptr %194, align 8, !tbaa !28
  %196 = load i16, ptr %29, align 2, !tbaa !13
  %197 = zext i16 %196 to i32
  %198 = add nsw i32 %197, 1
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds %struct.cff_Value, ptr %195, i64 %199
  %201 = getelementptr inbounds %struct.cff_Value, ptr %200, i32 0, i32 1
  %202 = load double, ptr %201, align 8, !tbaa !25
  store double %202, ptr %31, align 8, !tbaa !30
  %203 = load ptr, ptr %25, align 8, !tbaa !5
  %204 = load ptr, ptr %12, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 1
  %206 = load i32, ptr %205, align 8, !tbaa !25
  %207 = icmp eq i32 %206, 3
  br i1 %207, label %212, label %208

208:                                              ; preds = %184
  %209 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 1
  %210 = load i32, ptr %209, align 8, !tbaa !25
  %211 = icmp eq i32 %210, 23
  br label %212

212:                                              ; preds = %208, %184
  %213 = phi i1 [ true, %184 ], [ %211, %208 ]
  %214 = load double, ptr %30, align 8, !tbaa !30
  %215 = load double, ptr %28, align 8, !tbaa !30
  %216 = fadd double %214, %215
  %217 = load double, ptr %31, align 8, !tbaa !30
  call void %203(ptr noundef %204, i1 noundef zeroext %213, double noundef %216, double noundef %217)
  %218 = load double, ptr %30, align 8, !tbaa !30
  %219 = load double, ptr %31, align 8, !tbaa !30
  %220 = fadd double %218, %219
  %221 = load double, ptr %28, align 8, !tbaa !30
  %222 = fadd double %221, %220
  store double %222, ptr %28, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #7
  br label %223

223:                                              ; preds = %212
  %224 = load i16, ptr %29, align 2, !tbaa !13
  %225 = zext i16 %224 to i32
  %226 = add nsw i32 %225, 2
  %227 = trunc i32 %226 to i16
  store i16 %227, ptr %29, align 2, !tbaa !13
  br label %176, !llvm.loop !32

228:                                              ; preds = %183
  %229 = load ptr, ptr %11, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.cff_Stack, ptr %229, i32 0, i32 2
  store i32 0, ptr %230, align 8, !tbaa !26
  br label %3515

231:                                              ; preds = %142, %142
  %232 = load ptr, ptr %11, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.cff_Stack, ptr %232, i32 0, i32 2
  %234 = load i32, ptr %233, align 8, !tbaa !26
  %235 = urem i32 %234, 2
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %246

237:                                              ; preds = %231
  %238 = load ptr, ptr %21, align 8, !tbaa !5
  %239 = load ptr, ptr %12, align 8, !tbaa !5
  %240 = load ptr, ptr %11, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.cff_Stack, ptr %240, i32 0, i32 0
  %242 = load ptr, ptr %241, align 8, !tbaa !28
  %243 = getelementptr inbounds %struct.cff_Value, ptr %242, i64 0
  %244 = getelementptr inbounds %struct.cff_Value, ptr %243, i32 0, i32 1
  %245 = load double, ptr %244, align 8, !tbaa !25
  call void %238(ptr noundef %239, double noundef %245)
  br label %246

246:                                              ; preds = %237, %231
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #7
  %247 = load ptr, ptr %11, align 8, !tbaa !5
  %248 = getelementptr inbounds %struct.cff_Stack, ptr %247, i32 0, i32 4
  %249 = load i8, ptr %248, align 8, !tbaa !29
  %250 = zext i8 %249 to i32
  %251 = icmp sgt i32 %250, 0
  %252 = zext i1 %251 to i8
  store i8 %252, ptr %32, align 1, !tbaa !34
  %253 = load ptr, ptr %11, align 8, !tbaa !5
  %254 = getelementptr inbounds %struct.cff_Stack, ptr %253, i32 0, i32 2
  %255 = load i32, ptr %254, align 8, !tbaa !26
  %256 = lshr i32 %255, 1
  %257 = load ptr, ptr %11, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.cff_Stack, ptr %257, i32 0, i32 4
  %259 = load i8, ptr %258, align 8, !tbaa !29
  %260 = zext i8 %259 to i32
  %261 = add i32 %260, %256
  %262 = trunc i32 %261 to i8
  store i8 %262, ptr %258, align 8, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #7
  store double 0.000000e+00, ptr %33, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 2, ptr %34) #7
  %263 = load ptr, ptr %11, align 8, !tbaa !5
  %264 = getelementptr inbounds %struct.cff_Stack, ptr %263, i32 0, i32 2
  %265 = load i32, ptr %264, align 8, !tbaa !26
  %266 = urem i32 %265, 2
  %267 = trunc i32 %266 to i16
  store i16 %267, ptr %34, align 2, !tbaa !13
  br label %268

268:                                              ; preds = %308, %246
  %269 = load i16, ptr %34, align 2, !tbaa !13
  %270 = zext i16 %269 to i32
  %271 = load ptr, ptr %11, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.cff_Stack, ptr %271, i32 0, i32 2
  %273 = load i32, ptr %272, align 8, !tbaa !26
  %274 = icmp ult i32 %270, %273
  br i1 %274, label %276, label %275

275:                                              ; preds = %268
  call void @llvm.lifetime.end.p0(i64 2, ptr %34) #7
  br label %313

276:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #7
  %277 = load ptr, ptr %11, align 8, !tbaa !5
  %278 = getelementptr inbounds %struct.cff_Stack, ptr %277, i32 0, i32 0
  %279 = load ptr, ptr %278, align 8, !tbaa !28
  %280 = load i16, ptr %34, align 2, !tbaa !13
  %281 = zext i16 %280 to i64
  %282 = getelementptr inbounds %struct.cff_Value, ptr %279, i64 %281
  %283 = getelementptr inbounds %struct.cff_Value, ptr %282, i32 0, i32 1
  %284 = load double, ptr %283, align 8, !tbaa !25
  store double %284, ptr %35, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %285 = load ptr, ptr %11, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.cff_Stack, ptr %285, i32 0, i32 0
  %287 = load ptr, ptr %286, align 8, !tbaa !28
  %288 = load i16, ptr %34, align 2, !tbaa !13
  %289 = zext i16 %288 to i32
  %290 = add nsw i32 %289, 1
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds %struct.cff_Value, ptr %287, i64 %291
  %293 = getelementptr inbounds %struct.cff_Value, ptr %292, i32 0, i32 1
  %294 = load double, ptr %293, align 8, !tbaa !25
  store double %294, ptr %36, align 8, !tbaa !30
  %295 = load ptr, ptr %25, align 8, !tbaa !5
  %296 = load ptr, ptr %12, align 8, !tbaa !5
  %297 = load i8, ptr %32, align 1, !tbaa !34, !range !36, !noundef !37
  %298 = trunc i8 %297 to i1
  %299 = load double, ptr %35, align 8, !tbaa !30
  %300 = load double, ptr %33, align 8, !tbaa !30
  %301 = fadd double %299, %300
  %302 = load double, ptr %36, align 8, !tbaa !30
  call void %295(ptr noundef %296, i1 noundef zeroext %298, double noundef %301, double noundef %302)
  %303 = load double, ptr %35, align 8, !tbaa !30
  %304 = load double, ptr %36, align 8, !tbaa !30
  %305 = fadd double %303, %304
  %306 = load double, ptr %33, align 8, !tbaa !30
  %307 = fadd double %306, %305
  store double %307, ptr %33, align 8, !tbaa !30
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #7
  br label %308

308:                                              ; preds = %276
  %309 = load i16, ptr %34, align 2, !tbaa !13
  %310 = zext i16 %309 to i32
  %311 = add nsw i32 %310, 2
  %312 = trunc i32 %311 to i16
  store i16 %312, ptr %34, align 2, !tbaa !13
  br label %268, !llvm.loop !38

313:                                              ; preds = %275
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %314 = load ptr, ptr %11, align 8, !tbaa !5
  %315 = getelementptr inbounds %struct.cff_Stack, ptr %314, i32 0, i32 4
  %316 = load i8, ptr %315, align 8, !tbaa !29
  %317 = zext i8 %316 to i32
  %318 = add nsw i32 %317, 7
  %319 = ashr i32 %318, 3
  store i32 %319, ptr %37, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #7
  %320 = load ptr, ptr %11, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.cff_Stack, ptr %320, i32 0, i32 4
  %322 = load i8, ptr %321, align 8, !tbaa !29
  %323 = zext i8 %322 to i32
  %324 = add nsw i32 %323, 7
  %325 = sext i32 %324 to i64
  %326 = mul i64 1, %325
  %327 = call ptr @__caryll_allocate_clean(i64 noundef %326, i64 noundef 405)
  store ptr %327, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  store i32 0, ptr %39, align 4, !tbaa !9
  br label %328

328:                                              ; preds = %437, %313
  %329 = load i32, ptr %39, align 4, !tbaa !9
  %330 = load i32, ptr %37, align 4, !tbaa !9
  %331 = icmp ult i32 %329, %330
  br i1 %331, label %333, label %332

332:                                              ; preds = %328
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %440

333:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #7
  %334 = load ptr, ptr %16, align 8, !tbaa !5
  %335 = load i32, ptr %17, align 4, !tbaa !9
  %336 = load i32, ptr %39, align 4, !tbaa !9
  %337 = add i32 %335, %336
  %338 = zext i32 %337 to i64
  %339 = getelementptr inbounds i8, ptr %334, i64 %338
  %340 = load i8, ptr %339, align 1, !tbaa !25
  store i8 %340, ptr %40, align 1, !tbaa !25
  %341 = load i8, ptr %40, align 1, !tbaa !25
  %342 = zext i8 %341 to i32
  %343 = ashr i32 %342, 7
  %344 = and i32 %343, 1
  %345 = icmp ne i32 %344, 0
  %346 = load ptr, ptr %38, align 8, !tbaa !5
  %347 = load i32, ptr %39, align 4, !tbaa !9
  %348 = shl i32 %347, 3
  %349 = add i32 %348, 0
  %350 = zext i32 %349 to i64
  %351 = getelementptr inbounds i8, ptr %346, i64 %350
  %352 = zext i1 %345 to i8
  store i8 %352, ptr %351, align 1, !tbaa !34
  %353 = load i8, ptr %40, align 1, !tbaa !25
  %354 = zext i8 %353 to i32
  %355 = ashr i32 %354, 6
  %356 = and i32 %355, 1
  %357 = icmp ne i32 %356, 0
  %358 = load ptr, ptr %38, align 8, !tbaa !5
  %359 = load i32, ptr %39, align 4, !tbaa !9
  %360 = shl i32 %359, 3
  %361 = add i32 %360, 1
  %362 = zext i32 %361 to i64
  %363 = getelementptr inbounds i8, ptr %358, i64 %362
  %364 = zext i1 %357 to i8
  store i8 %364, ptr %363, align 1, !tbaa !34
  %365 = load i8, ptr %40, align 1, !tbaa !25
  %366 = zext i8 %365 to i32
  %367 = ashr i32 %366, 5
  %368 = and i32 %367, 1
  %369 = icmp ne i32 %368, 0
  %370 = load ptr, ptr %38, align 8, !tbaa !5
  %371 = load i32, ptr %39, align 4, !tbaa !9
  %372 = shl i32 %371, 3
  %373 = add i32 %372, 2
  %374 = zext i32 %373 to i64
  %375 = getelementptr inbounds i8, ptr %370, i64 %374
  %376 = zext i1 %369 to i8
  store i8 %376, ptr %375, align 1, !tbaa !34
  %377 = load i8, ptr %40, align 1, !tbaa !25
  %378 = zext i8 %377 to i32
  %379 = ashr i32 %378, 4
  %380 = and i32 %379, 1
  %381 = icmp ne i32 %380, 0
  %382 = load ptr, ptr %38, align 8, !tbaa !5
  %383 = load i32, ptr %39, align 4, !tbaa !9
  %384 = shl i32 %383, 3
  %385 = add i32 %384, 3
  %386 = zext i32 %385 to i64
  %387 = getelementptr inbounds i8, ptr %382, i64 %386
  %388 = zext i1 %381 to i8
  store i8 %388, ptr %387, align 1, !tbaa !34
  %389 = load i8, ptr %40, align 1, !tbaa !25
  %390 = zext i8 %389 to i32
  %391 = ashr i32 %390, 3
  %392 = and i32 %391, 1
  %393 = icmp ne i32 %392, 0
  %394 = load ptr, ptr %38, align 8, !tbaa !5
  %395 = load i32, ptr %39, align 4, !tbaa !9
  %396 = shl i32 %395, 3
  %397 = add i32 %396, 4
  %398 = zext i32 %397 to i64
  %399 = getelementptr inbounds i8, ptr %394, i64 %398
  %400 = zext i1 %393 to i8
  store i8 %400, ptr %399, align 1, !tbaa !34
  %401 = load i8, ptr %40, align 1, !tbaa !25
  %402 = zext i8 %401 to i32
  %403 = ashr i32 %402, 2
  %404 = and i32 %403, 1
  %405 = icmp ne i32 %404, 0
  %406 = load ptr, ptr %38, align 8, !tbaa !5
  %407 = load i32, ptr %39, align 4, !tbaa !9
  %408 = shl i32 %407, 3
  %409 = add i32 %408, 5
  %410 = zext i32 %409 to i64
  %411 = getelementptr inbounds i8, ptr %406, i64 %410
  %412 = zext i1 %405 to i8
  store i8 %412, ptr %411, align 1, !tbaa !34
  %413 = load i8, ptr %40, align 1, !tbaa !25
  %414 = zext i8 %413 to i32
  %415 = ashr i32 %414, 1
  %416 = and i32 %415, 1
  %417 = icmp ne i32 %416, 0
  %418 = load ptr, ptr %38, align 8, !tbaa !5
  %419 = load i32, ptr %39, align 4, !tbaa !9
  %420 = shl i32 %419, 3
  %421 = add i32 %420, 6
  %422 = zext i32 %421 to i64
  %423 = getelementptr inbounds i8, ptr %418, i64 %422
  %424 = zext i1 %417 to i8
  store i8 %424, ptr %423, align 1, !tbaa !34
  %425 = load i8, ptr %40, align 1, !tbaa !25
  %426 = zext i8 %425 to i32
  %427 = ashr i32 %426, 0
  %428 = and i32 %427, 1
  %429 = icmp ne i32 %428, 0
  %430 = load ptr, ptr %38, align 8, !tbaa !5
  %431 = load i32, ptr %39, align 4, !tbaa !9
  %432 = shl i32 %431, 3
  %433 = add i32 %432, 7
  %434 = zext i32 %433 to i64
  %435 = getelementptr inbounds i8, ptr %430, i64 %434
  %436 = zext i1 %429 to i8
  store i8 %436, ptr %435, align 1, !tbaa !34
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #7
  br label %437

437:                                              ; preds = %333
  %438 = load i32, ptr %39, align 4, !tbaa !9
  %439 = add i32 %438, 1
  store i32 %439, ptr %39, align 4, !tbaa !9
  br label %328, !llvm.loop !39

440:                                              ; preds = %332
  %441 = load ptr, ptr %26, align 8, !tbaa !5
  %442 = load ptr, ptr %12, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 1
  %444 = load i32, ptr %443, align 8, !tbaa !25
  %445 = icmp eq i32 %444, 20
  %446 = load ptr, ptr %38, align 8, !tbaa !5
  call void %441(ptr noundef %442, i1 noundef zeroext %445, ptr noundef %446)
  %447 = load i32, ptr %37, align 4, !tbaa !9
  %448 = load i32, ptr %17, align 4, !tbaa !9
  %449 = add i32 %448, %447
  store i32 %449, ptr %17, align 4, !tbaa !9
  %450 = load ptr, ptr %11, align 8, !tbaa !5
  %451 = getelementptr inbounds %struct.cff_Stack, ptr %450, i32 0, i32 2
  store i32 0, ptr %451, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #7
  br label %3515

452:                                              ; preds = %142
  %453 = load ptr, ptr %11, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.cff_Stack, ptr %453, i32 0, i32 2
  %455 = load i32, ptr %454, align 8, !tbaa !26
  %456 = icmp ult i32 %455, 1
  br i1 %456, label %457, label %468

457:                                              ; preds = %452
  %458 = load ptr, ptr %13, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.otfcc_Options, ptr %458, i32 0, i32 24
  %460 = load ptr, ptr %459, align 8, !tbaa !40
  %461 = getelementptr inbounds %struct.otfcc_ILogger, ptr %460, i32 0, i32 6
  %462 = load ptr, ptr %461, align 8, !tbaa !42
  %463 = load ptr, ptr %13, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.otfcc_Options, ptr %463, i32 0, i32 24
  %465 = load ptr, ptr %464, align 8, !tbaa !40
  %466 = call ptr @sdsempty()
  %467 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %466, ptr noundef @.str, ptr noundef @.str.1, i32 noundef 4)
  call void %462(ptr noundef %465, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %467)
  br label %3515

468:                                              ; preds = %452
  %469 = load ptr, ptr %11, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.cff_Stack, ptr %469, i32 0, i32 2
  %471 = load i32, ptr %470, align 8, !tbaa !26
  %472 = icmp ugt i32 %471, 1
  br i1 %472, label %473, label %487

473:                                              ; preds = %468
  %474 = load ptr, ptr %21, align 8, !tbaa !5
  %475 = load ptr, ptr %12, align 8, !tbaa !5
  %476 = load ptr, ptr %11, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.cff_Stack, ptr %476, i32 0, i32 0
  %478 = load ptr, ptr %477, align 8, !tbaa !28
  %479 = load ptr, ptr %11, align 8, !tbaa !5
  %480 = getelementptr inbounds %struct.cff_Stack, ptr %479, i32 0, i32 2
  %481 = load i32, ptr %480, align 8, !tbaa !26
  %482 = sub i32 %481, 2
  %483 = zext i32 %482 to i64
  %484 = getelementptr inbounds %struct.cff_Value, ptr %478, i64 %483
  %485 = getelementptr inbounds %struct.cff_Value, ptr %484, i32 0, i32 1
  %486 = load double, ptr %485, align 8, !tbaa !25
  call void %474(ptr noundef %475, double noundef %486)
  br label %487

487:                                              ; preds = %473, %468
  %488 = load ptr, ptr %22, align 8, !tbaa !5
  %489 = load ptr, ptr %12, align 8, !tbaa !5
  call void %488(ptr noundef %489)
  %490 = load ptr, ptr %23, align 8, !tbaa !5
  %491 = load ptr, ptr %12, align 8, !tbaa !5
  %492 = load ptr, ptr %11, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.cff_Stack, ptr %492, i32 0, i32 0
  %494 = load ptr, ptr %493, align 8, !tbaa !28
  %495 = load ptr, ptr %11, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.cff_Stack, ptr %495, i32 0, i32 2
  %497 = load i32, ptr %496, align 8, !tbaa !26
  %498 = sub i32 %497, 1
  %499 = zext i32 %498 to i64
  %500 = getelementptr inbounds %struct.cff_Value, ptr %494, i64 %499
  %501 = getelementptr inbounds %struct.cff_Value, ptr %500, i32 0, i32 1
  %502 = load double, ptr %501, align 8, !tbaa !25
  call void %490(ptr noundef %491, double noundef 0.000000e+00, double noundef %502)
  %503 = load ptr, ptr %11, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.cff_Stack, ptr %503, i32 0, i32 2
  store i32 0, ptr %504, align 8, !tbaa !26
  br label %3515

505:                                              ; preds = %142
  %506 = load ptr, ptr %11, align 8, !tbaa !5
  %507 = getelementptr inbounds %struct.cff_Stack, ptr %506, i32 0, i32 2
  %508 = load i32, ptr %507, align 8, !tbaa !26
  %509 = icmp ult i32 %508, 2
  br i1 %509, label %510, label %521

510:                                              ; preds = %505
  %511 = load ptr, ptr %13, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.otfcc_Options, ptr %511, i32 0, i32 24
  %513 = load ptr, ptr %512, align 8, !tbaa !40
  %514 = getelementptr inbounds %struct.otfcc_ILogger, ptr %513, i32 0, i32 6
  %515 = load ptr, ptr %514, align 8, !tbaa !42
  %516 = load ptr, ptr %13, align 8, !tbaa !5
  %517 = getelementptr inbounds %struct.otfcc_Options, ptr %516, i32 0, i32 24
  %518 = load ptr, ptr %517, align 8, !tbaa !40
  %519 = call ptr @sdsempty()
  %520 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %519, ptr noundef @.str, ptr noundef @.str.2, i32 noundef 21)
  call void %515(ptr noundef %518, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %520)
  br label %3515

521:                                              ; preds = %505
  %522 = load ptr, ptr %11, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.cff_Stack, ptr %522, i32 0, i32 2
  %524 = load i32, ptr %523, align 8, !tbaa !26
  %525 = icmp ugt i32 %524, 2
  br i1 %525, label %526, label %540

526:                                              ; preds = %521
  %527 = load ptr, ptr %21, align 8, !tbaa !5
  %528 = load ptr, ptr %12, align 8, !tbaa !5
  %529 = load ptr, ptr %11, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.cff_Stack, ptr %529, i32 0, i32 0
  %531 = load ptr, ptr %530, align 8, !tbaa !28
  %532 = load ptr, ptr %11, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.cff_Stack, ptr %532, i32 0, i32 2
  %534 = load i32, ptr %533, align 8, !tbaa !26
  %535 = sub i32 %534, 3
  %536 = zext i32 %535 to i64
  %537 = getelementptr inbounds %struct.cff_Value, ptr %531, i64 %536
  %538 = getelementptr inbounds %struct.cff_Value, ptr %537, i32 0, i32 1
  %539 = load double, ptr %538, align 8, !tbaa !25
  call void %527(ptr noundef %528, double noundef %539)
  br label %540

540:                                              ; preds = %526, %521
  %541 = load ptr, ptr %22, align 8, !tbaa !5
  %542 = load ptr, ptr %12, align 8, !tbaa !5
  call void %541(ptr noundef %542)
  %543 = load ptr, ptr %23, align 8, !tbaa !5
  %544 = load ptr, ptr %12, align 8, !tbaa !5
  %545 = load ptr, ptr %11, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.cff_Stack, ptr %545, i32 0, i32 0
  %547 = load ptr, ptr %546, align 8, !tbaa !28
  %548 = load ptr, ptr %11, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.cff_Stack, ptr %548, i32 0, i32 2
  %550 = load i32, ptr %549, align 8, !tbaa !26
  %551 = sub i32 %550, 2
  %552 = zext i32 %551 to i64
  %553 = getelementptr inbounds %struct.cff_Value, ptr %547, i64 %552
  %554 = getelementptr inbounds %struct.cff_Value, ptr %553, i32 0, i32 1
  %555 = load double, ptr %554, align 8, !tbaa !25
  %556 = load ptr, ptr %11, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.cff_Stack, ptr %556, i32 0, i32 0
  %558 = load ptr, ptr %557, align 8, !tbaa !28
  %559 = load ptr, ptr %11, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.cff_Stack, ptr %559, i32 0, i32 2
  %561 = load i32, ptr %560, align 8, !tbaa !26
  %562 = sub i32 %561, 1
  %563 = zext i32 %562 to i64
  %564 = getelementptr inbounds %struct.cff_Value, ptr %558, i64 %563
  %565 = getelementptr inbounds %struct.cff_Value, ptr %564, i32 0, i32 1
  %566 = load double, ptr %565, align 8, !tbaa !25
  call void %543(ptr noundef %544, double noundef %555, double noundef %566)
  %567 = load ptr, ptr %11, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.cff_Stack, ptr %567, i32 0, i32 2
  store i32 0, ptr %568, align 8, !tbaa !26
  br label %3515

569:                                              ; preds = %142
  %570 = load ptr, ptr %11, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.cff_Stack, ptr %570, i32 0, i32 2
  %572 = load i32, ptr %571, align 8, !tbaa !26
  %573 = icmp ult i32 %572, 1
  br i1 %573, label %574, label %585

574:                                              ; preds = %569
  %575 = load ptr, ptr %13, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.otfcc_Options, ptr %575, i32 0, i32 24
  %577 = load ptr, ptr %576, align 8, !tbaa !40
  %578 = getelementptr inbounds %struct.otfcc_ILogger, ptr %577, i32 0, i32 6
  %579 = load ptr, ptr %578, align 8, !tbaa !42
  %580 = load ptr, ptr %13, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.otfcc_Options, ptr %580, i32 0, i32 24
  %582 = load ptr, ptr %581, align 8, !tbaa !40
  %583 = call ptr @sdsempty()
  %584 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %583, ptr noundef @.str, ptr noundef @.str.3, i32 noundef 22)
  call void %579(ptr noundef %582, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %584)
  br label %3515

585:                                              ; preds = %569
  %586 = load ptr, ptr %11, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.cff_Stack, ptr %586, i32 0, i32 2
  %588 = load i32, ptr %587, align 8, !tbaa !26
  %589 = icmp ugt i32 %588, 1
  br i1 %589, label %590, label %604

590:                                              ; preds = %585
  %591 = load ptr, ptr %21, align 8, !tbaa !5
  %592 = load ptr, ptr %12, align 8, !tbaa !5
  %593 = load ptr, ptr %11, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.cff_Stack, ptr %593, i32 0, i32 0
  %595 = load ptr, ptr %594, align 8, !tbaa !28
  %596 = load ptr, ptr %11, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.cff_Stack, ptr %596, i32 0, i32 2
  %598 = load i32, ptr %597, align 8, !tbaa !26
  %599 = sub i32 %598, 2
  %600 = zext i32 %599 to i64
  %601 = getelementptr inbounds %struct.cff_Value, ptr %595, i64 %600
  %602 = getelementptr inbounds %struct.cff_Value, ptr %601, i32 0, i32 1
  %603 = load double, ptr %602, align 8, !tbaa !25
  call void %591(ptr noundef %592, double noundef %603)
  br label %604

604:                                              ; preds = %590, %585
  %605 = load ptr, ptr %22, align 8, !tbaa !5
  %606 = load ptr, ptr %12, align 8, !tbaa !5
  call void %605(ptr noundef %606)
  %607 = load ptr, ptr %23, align 8, !tbaa !5
  %608 = load ptr, ptr %12, align 8, !tbaa !5
  %609 = load ptr, ptr %11, align 8, !tbaa !5
  %610 = getelementptr inbounds %struct.cff_Stack, ptr %609, i32 0, i32 0
  %611 = load ptr, ptr %610, align 8, !tbaa !28
  %612 = load ptr, ptr %11, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.cff_Stack, ptr %612, i32 0, i32 2
  %614 = load i32, ptr %613, align 8, !tbaa !26
  %615 = sub i32 %614, 1
  %616 = zext i32 %615 to i64
  %617 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %616
  %618 = getelementptr inbounds %struct.cff_Value, ptr %617, i32 0, i32 1
  %619 = load double, ptr %618, align 8, !tbaa !25
  call void %607(ptr noundef %608, double noundef %619, double noundef 0.000000e+00)
  %620 = load ptr, ptr %11, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.cff_Stack, ptr %620, i32 0, i32 2
  store i32 0, ptr %621, align 8, !tbaa !26
  br label %3515

622:                                              ; preds = %142
  %623 = load ptr, ptr %11, align 8, !tbaa !5
  %624 = getelementptr inbounds %struct.cff_Stack, ptr %623, i32 0, i32 2
  %625 = load i32, ptr %624, align 8, !tbaa !26
  %626 = icmp ugt i32 %625, 0
  br i1 %626, label %627, label %641

627:                                              ; preds = %622
  %628 = load ptr, ptr %21, align 8, !tbaa !5
  %629 = load ptr, ptr %12, align 8, !tbaa !5
  %630 = load ptr, ptr %11, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.cff_Stack, ptr %630, i32 0, i32 0
  %632 = load ptr, ptr %631, align 8, !tbaa !28
  %633 = load ptr, ptr %11, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.cff_Stack, ptr %633, i32 0, i32 2
  %635 = load i32, ptr %634, align 8, !tbaa !26
  %636 = sub i32 %635, 1
  %637 = zext i32 %636 to i64
  %638 = getelementptr inbounds %struct.cff_Value, ptr %632, i64 %637
  %639 = getelementptr inbounds %struct.cff_Value, ptr %638, i32 0, i32 1
  %640 = load double, ptr %639, align 8, !tbaa !25
  call void %628(ptr noundef %629, double noundef %640)
  br label %641

641:                                              ; preds = %627, %622
  br label %3515

642:                                              ; preds = %142
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %643

643:                                              ; preds = %669, %642
  %644 = load i32, ptr %18, align 4, !tbaa !9
  %645 = load ptr, ptr %11, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.cff_Stack, ptr %645, i32 0, i32 2
  %647 = load i32, ptr %646, align 8, !tbaa !26
  %648 = icmp ult i32 %644, %647
  br i1 %648, label %649, label %672

649:                                              ; preds = %643
  %650 = load ptr, ptr %23, align 8, !tbaa !5
  %651 = load ptr, ptr %12, align 8, !tbaa !5
  %652 = load ptr, ptr %11, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.cff_Stack, ptr %652, i32 0, i32 0
  %654 = load ptr, ptr %653, align 8, !tbaa !28
  %655 = load i32, ptr %18, align 4, !tbaa !9
  %656 = zext i32 %655 to i64
  %657 = getelementptr inbounds %struct.cff_Value, ptr %654, i64 %656
  %658 = getelementptr inbounds %struct.cff_Value, ptr %657, i32 0, i32 1
  %659 = load double, ptr %658, align 8, !tbaa !25
  %660 = load ptr, ptr %11, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.cff_Stack, ptr %660, i32 0, i32 0
  %662 = load ptr, ptr %661, align 8, !tbaa !28
  %663 = load i32, ptr %18, align 4, !tbaa !9
  %664 = add i32 %663, 1
  %665 = zext i32 %664 to i64
  %666 = getelementptr inbounds %struct.cff_Value, ptr %662, i64 %665
  %667 = getelementptr inbounds %struct.cff_Value, ptr %666, i32 0, i32 1
  %668 = load double, ptr %667, align 8, !tbaa !25
  call void %650(ptr noundef %651, double noundef %659, double noundef %668)
  br label %669

669:                                              ; preds = %649
  %670 = load i32, ptr %18, align 4, !tbaa !9
  %671 = add i32 %670, 2
  store i32 %671, ptr %18, align 4, !tbaa !9
  br label %643, !llvm.loop !44

672:                                              ; preds = %643
  %673 = load ptr, ptr %11, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.cff_Stack, ptr %673, i32 0, i32 2
  store i32 0, ptr %674, align 8, !tbaa !26
  br label %3515

675:                                              ; preds = %142
  %676 = load ptr, ptr %11, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.cff_Stack, ptr %676, i32 0, i32 2
  %678 = load i32, ptr %677, align 8, !tbaa !26
  %679 = urem i32 %678, 2
  %680 = icmp eq i32 %679, 1
  br i1 %680, label %681, label %722

681:                                              ; preds = %675
  %682 = load ptr, ptr %23, align 8, !tbaa !5
  %683 = load ptr, ptr %12, align 8, !tbaa !5
  %684 = load ptr, ptr %11, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.cff_Stack, ptr %684, i32 0, i32 0
  %686 = load ptr, ptr %685, align 8, !tbaa !28
  %687 = getelementptr inbounds %struct.cff_Value, ptr %686, i64 0
  %688 = getelementptr inbounds %struct.cff_Value, ptr %687, i32 0, i32 1
  %689 = load double, ptr %688, align 8, !tbaa !25
  call void %682(ptr noundef %683, double noundef 0.000000e+00, double noundef %689)
  store i32 1, ptr %18, align 4, !tbaa !9
  br label %690

690:                                              ; preds = %718, %681
  %691 = load i32, ptr %18, align 4, !tbaa !9
  %692 = load ptr, ptr %11, align 8, !tbaa !5
  %693 = getelementptr inbounds %struct.cff_Stack, ptr %692, i32 0, i32 2
  %694 = load i32, ptr %693, align 8, !tbaa !26
  %695 = icmp ult i32 %691, %694
  br i1 %695, label %696, label %721

696:                                              ; preds = %690
  %697 = load ptr, ptr %23, align 8, !tbaa !5
  %698 = load ptr, ptr %12, align 8, !tbaa !5
  %699 = load ptr, ptr %11, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.cff_Stack, ptr %699, i32 0, i32 0
  %701 = load ptr, ptr %700, align 8, !tbaa !28
  %702 = load i32, ptr %18, align 4, !tbaa !9
  %703 = zext i32 %702 to i64
  %704 = getelementptr inbounds %struct.cff_Value, ptr %701, i64 %703
  %705 = getelementptr inbounds %struct.cff_Value, ptr %704, i32 0, i32 1
  %706 = load double, ptr %705, align 8, !tbaa !25
  call void %697(ptr noundef %698, double noundef %706, double noundef 0.000000e+00)
  %707 = load ptr, ptr %23, align 8, !tbaa !5
  %708 = load ptr, ptr %12, align 8, !tbaa !5
  %709 = load ptr, ptr %11, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.cff_Stack, ptr %709, i32 0, i32 0
  %711 = load ptr, ptr %710, align 8, !tbaa !28
  %712 = load i32, ptr %18, align 4, !tbaa !9
  %713 = add i32 %712, 1
  %714 = zext i32 %713 to i64
  %715 = getelementptr inbounds %struct.cff_Value, ptr %711, i64 %714
  %716 = getelementptr inbounds %struct.cff_Value, ptr %715, i32 0, i32 1
  %717 = load double, ptr %716, align 8, !tbaa !25
  call void %707(ptr noundef %708, double noundef 0.000000e+00, double noundef %717)
  br label %718

718:                                              ; preds = %696
  %719 = load i32, ptr %18, align 4, !tbaa !9
  %720 = add i32 %719, 2
  store i32 %720, ptr %18, align 4, !tbaa !9
  br label %690, !llvm.loop !45

721:                                              ; preds = %690
  br label %755

722:                                              ; preds = %675
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %723

723:                                              ; preds = %751, %722
  %724 = load i32, ptr %18, align 4, !tbaa !9
  %725 = load ptr, ptr %11, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.cff_Stack, ptr %725, i32 0, i32 2
  %727 = load i32, ptr %726, align 8, !tbaa !26
  %728 = icmp ult i32 %724, %727
  br i1 %728, label %729, label %754

729:                                              ; preds = %723
  %730 = load ptr, ptr %23, align 8, !tbaa !5
  %731 = load ptr, ptr %12, align 8, !tbaa !5
  %732 = load ptr, ptr %11, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.cff_Stack, ptr %732, i32 0, i32 0
  %734 = load ptr, ptr %733, align 8, !tbaa !28
  %735 = load i32, ptr %18, align 4, !tbaa !9
  %736 = zext i32 %735 to i64
  %737 = getelementptr inbounds %struct.cff_Value, ptr %734, i64 %736
  %738 = getelementptr inbounds %struct.cff_Value, ptr %737, i32 0, i32 1
  %739 = load double, ptr %738, align 8, !tbaa !25
  call void %730(ptr noundef %731, double noundef 0.000000e+00, double noundef %739)
  %740 = load ptr, ptr %23, align 8, !tbaa !5
  %741 = load ptr, ptr %12, align 8, !tbaa !5
  %742 = load ptr, ptr %11, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.cff_Stack, ptr %742, i32 0, i32 0
  %744 = load ptr, ptr %743, align 8, !tbaa !28
  %745 = load i32, ptr %18, align 4, !tbaa !9
  %746 = add i32 %745, 1
  %747 = zext i32 %746 to i64
  %748 = getelementptr inbounds %struct.cff_Value, ptr %744, i64 %747
  %749 = getelementptr inbounds %struct.cff_Value, ptr %748, i32 0, i32 1
  %750 = load double, ptr %749, align 8, !tbaa !25
  call void %740(ptr noundef %741, double noundef %750, double noundef 0.000000e+00)
  br label %751

751:                                              ; preds = %729
  %752 = load i32, ptr %18, align 4, !tbaa !9
  %753 = add i32 %752, 2
  store i32 %753, ptr %18, align 4, !tbaa !9
  br label %723, !llvm.loop !46

754:                                              ; preds = %723
  br label %755

755:                                              ; preds = %754, %721
  %756 = load ptr, ptr %11, align 8, !tbaa !5
  %757 = getelementptr inbounds %struct.cff_Stack, ptr %756, i32 0, i32 2
  store i32 0, ptr %757, align 8, !tbaa !26
  br label %3515

758:                                              ; preds = %142
  %759 = load ptr, ptr %11, align 8, !tbaa !5
  %760 = getelementptr inbounds %struct.cff_Stack, ptr %759, i32 0, i32 2
  %761 = load i32, ptr %760, align 8, !tbaa !26
  %762 = urem i32 %761, 2
  %763 = icmp eq i32 %762, 1
  br i1 %763, label %764, label %805

764:                                              ; preds = %758
  %765 = load ptr, ptr %23, align 8, !tbaa !5
  %766 = load ptr, ptr %12, align 8, !tbaa !5
  %767 = load ptr, ptr %11, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.cff_Stack, ptr %767, i32 0, i32 0
  %769 = load ptr, ptr %768, align 8, !tbaa !28
  %770 = getelementptr inbounds %struct.cff_Value, ptr %769, i64 0
  %771 = getelementptr inbounds %struct.cff_Value, ptr %770, i32 0, i32 1
  %772 = load double, ptr %771, align 8, !tbaa !25
  call void %765(ptr noundef %766, double noundef %772, double noundef 0.000000e+00)
  store i32 1, ptr %18, align 4, !tbaa !9
  br label %773

773:                                              ; preds = %801, %764
  %774 = load i32, ptr %18, align 4, !tbaa !9
  %775 = load ptr, ptr %11, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.cff_Stack, ptr %775, i32 0, i32 2
  %777 = load i32, ptr %776, align 8, !tbaa !26
  %778 = icmp ult i32 %774, %777
  br i1 %778, label %779, label %804

779:                                              ; preds = %773
  %780 = load ptr, ptr %23, align 8, !tbaa !5
  %781 = load ptr, ptr %12, align 8, !tbaa !5
  %782 = load ptr, ptr %11, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.cff_Stack, ptr %782, i32 0, i32 0
  %784 = load ptr, ptr %783, align 8, !tbaa !28
  %785 = load i32, ptr %18, align 4, !tbaa !9
  %786 = zext i32 %785 to i64
  %787 = getelementptr inbounds %struct.cff_Value, ptr %784, i64 %786
  %788 = getelementptr inbounds %struct.cff_Value, ptr %787, i32 0, i32 1
  %789 = load double, ptr %788, align 8, !tbaa !25
  call void %780(ptr noundef %781, double noundef 0.000000e+00, double noundef %789)
  %790 = load ptr, ptr %23, align 8, !tbaa !5
  %791 = load ptr, ptr %12, align 8, !tbaa !5
  %792 = load ptr, ptr %11, align 8, !tbaa !5
  %793 = getelementptr inbounds %struct.cff_Stack, ptr %792, i32 0, i32 0
  %794 = load ptr, ptr %793, align 8, !tbaa !28
  %795 = load i32, ptr %18, align 4, !tbaa !9
  %796 = add i32 %795, 1
  %797 = zext i32 %796 to i64
  %798 = getelementptr inbounds %struct.cff_Value, ptr %794, i64 %797
  %799 = getelementptr inbounds %struct.cff_Value, ptr %798, i32 0, i32 1
  %800 = load double, ptr %799, align 8, !tbaa !25
  call void %790(ptr noundef %791, double noundef %800, double noundef 0.000000e+00)
  br label %801

801:                                              ; preds = %779
  %802 = load i32, ptr %18, align 4, !tbaa !9
  %803 = add i32 %802, 2
  store i32 %803, ptr %18, align 4, !tbaa !9
  br label %773, !llvm.loop !47

804:                                              ; preds = %773
  br label %838

805:                                              ; preds = %758
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %806

806:                                              ; preds = %834, %805
  %807 = load i32, ptr %18, align 4, !tbaa !9
  %808 = load ptr, ptr %11, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.cff_Stack, ptr %808, i32 0, i32 2
  %810 = load i32, ptr %809, align 8, !tbaa !26
  %811 = icmp ult i32 %807, %810
  br i1 %811, label %812, label %837

812:                                              ; preds = %806
  %813 = load ptr, ptr %23, align 8, !tbaa !5
  %814 = load ptr, ptr %12, align 8, !tbaa !5
  %815 = load ptr, ptr %11, align 8, !tbaa !5
  %816 = getelementptr inbounds %struct.cff_Stack, ptr %815, i32 0, i32 0
  %817 = load ptr, ptr %816, align 8, !tbaa !28
  %818 = load i32, ptr %18, align 4, !tbaa !9
  %819 = zext i32 %818 to i64
  %820 = getelementptr inbounds %struct.cff_Value, ptr %817, i64 %819
  %821 = getelementptr inbounds %struct.cff_Value, ptr %820, i32 0, i32 1
  %822 = load double, ptr %821, align 8, !tbaa !25
  call void %813(ptr noundef %814, double noundef %822, double noundef 0.000000e+00)
  %823 = load ptr, ptr %23, align 8, !tbaa !5
  %824 = load ptr, ptr %12, align 8, !tbaa !5
  %825 = load ptr, ptr %11, align 8, !tbaa !5
  %826 = getelementptr inbounds %struct.cff_Stack, ptr %825, i32 0, i32 0
  %827 = load ptr, ptr %826, align 8, !tbaa !28
  %828 = load i32, ptr %18, align 4, !tbaa !9
  %829 = add i32 %828, 1
  %830 = zext i32 %829 to i64
  %831 = getelementptr inbounds %struct.cff_Value, ptr %827, i64 %830
  %832 = getelementptr inbounds %struct.cff_Value, ptr %831, i32 0, i32 1
  %833 = load double, ptr %832, align 8, !tbaa !25
  call void %823(ptr noundef %824, double noundef 0.000000e+00, double noundef %833)
  br label %834

834:                                              ; preds = %812
  %835 = load i32, ptr %18, align 4, !tbaa !9
  %836 = add i32 %835, 2
  store i32 %836, ptr %18, align 4, !tbaa !9
  br label %806, !llvm.loop !48

837:                                              ; preds = %806
  br label %838

838:                                              ; preds = %837, %804
  %839 = load ptr, ptr %11, align 8, !tbaa !5
  %840 = getelementptr inbounds %struct.cff_Stack, ptr %839, i32 0, i32 2
  store i32 0, ptr %840, align 8, !tbaa !26
  br label %3515

841:                                              ; preds = %142
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %842

842:                                              ; preds = %904, %841
  %843 = load i32, ptr %18, align 4, !tbaa !9
  %844 = load ptr, ptr %11, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.cff_Stack, ptr %844, i32 0, i32 2
  %846 = load i32, ptr %845, align 8, !tbaa !26
  %847 = icmp ult i32 %843, %846
  br i1 %847, label %848, label %907

848:                                              ; preds = %842
  %849 = load ptr, ptr %24, align 8, !tbaa !5
  %850 = load ptr, ptr %12, align 8, !tbaa !5
  %851 = load ptr, ptr %11, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.cff_Stack, ptr %851, i32 0, i32 0
  %853 = load ptr, ptr %852, align 8, !tbaa !28
  %854 = load i32, ptr %18, align 4, !tbaa !9
  %855 = zext i32 %854 to i64
  %856 = getelementptr inbounds %struct.cff_Value, ptr %853, i64 %855
  %857 = getelementptr inbounds %struct.cff_Value, ptr %856, i32 0, i32 1
  %858 = load double, ptr %857, align 8, !tbaa !25
  %859 = load ptr, ptr %11, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.cff_Stack, ptr %859, i32 0, i32 0
  %861 = load ptr, ptr %860, align 8, !tbaa !28
  %862 = load i32, ptr %18, align 4, !tbaa !9
  %863 = add i32 %862, 1
  %864 = zext i32 %863 to i64
  %865 = getelementptr inbounds %struct.cff_Value, ptr %861, i64 %864
  %866 = getelementptr inbounds %struct.cff_Value, ptr %865, i32 0, i32 1
  %867 = load double, ptr %866, align 8, !tbaa !25
  %868 = load ptr, ptr %11, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.cff_Stack, ptr %868, i32 0, i32 0
  %870 = load ptr, ptr %869, align 8, !tbaa !28
  %871 = load i32, ptr %18, align 4, !tbaa !9
  %872 = add i32 %871, 2
  %873 = zext i32 %872 to i64
  %874 = getelementptr inbounds %struct.cff_Value, ptr %870, i64 %873
  %875 = getelementptr inbounds %struct.cff_Value, ptr %874, i32 0, i32 1
  %876 = load double, ptr %875, align 8, !tbaa !25
  %877 = load ptr, ptr %11, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.cff_Stack, ptr %877, i32 0, i32 0
  %879 = load ptr, ptr %878, align 8, !tbaa !28
  %880 = load i32, ptr %18, align 4, !tbaa !9
  %881 = add i32 %880, 3
  %882 = zext i32 %881 to i64
  %883 = getelementptr inbounds %struct.cff_Value, ptr %879, i64 %882
  %884 = getelementptr inbounds %struct.cff_Value, ptr %883, i32 0, i32 1
  %885 = load double, ptr %884, align 8, !tbaa !25
  %886 = load ptr, ptr %11, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.cff_Stack, ptr %886, i32 0, i32 0
  %888 = load ptr, ptr %887, align 8, !tbaa !28
  %889 = load i32, ptr %18, align 4, !tbaa !9
  %890 = add i32 %889, 4
  %891 = zext i32 %890 to i64
  %892 = getelementptr inbounds %struct.cff_Value, ptr %888, i64 %891
  %893 = getelementptr inbounds %struct.cff_Value, ptr %892, i32 0, i32 1
  %894 = load double, ptr %893, align 8, !tbaa !25
  %895 = load ptr, ptr %11, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.cff_Stack, ptr %895, i32 0, i32 0
  %897 = load ptr, ptr %896, align 8, !tbaa !28
  %898 = load i32, ptr %18, align 4, !tbaa !9
  %899 = add i32 %898, 5
  %900 = zext i32 %899 to i64
  %901 = getelementptr inbounds %struct.cff_Value, ptr %897, i64 %900
  %902 = getelementptr inbounds %struct.cff_Value, ptr %901, i32 0, i32 1
  %903 = load double, ptr %902, align 8, !tbaa !25
  call void %849(ptr noundef %850, double noundef %858, double noundef %867, double noundef %876, double noundef %885, double noundef %894, double noundef %903)
  br label %904

904:                                              ; preds = %848
  %905 = load i32, ptr %18, align 4, !tbaa !9
  %906 = add i32 %905, 6
  store i32 %906, ptr %18, align 4, !tbaa !9
  br label %842, !llvm.loop !49

907:                                              ; preds = %842
  %908 = load ptr, ptr %11, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.cff_Stack, ptr %908, i32 0, i32 2
  store i32 0, ptr %909, align 8, !tbaa !26
  br label %3515

910:                                              ; preds = %142
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %911

911:                                              ; preds = %974, %910
  %912 = load i32, ptr %18, align 4, !tbaa !9
  %913 = load ptr, ptr %11, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.cff_Stack, ptr %913, i32 0, i32 2
  %915 = load i32, ptr %914, align 8, !tbaa !26
  %916 = sub i32 %915, 2
  %917 = icmp ult i32 %912, %916
  br i1 %917, label %918, label %977

918:                                              ; preds = %911
  %919 = load ptr, ptr %24, align 8, !tbaa !5
  %920 = load ptr, ptr %12, align 8, !tbaa !5
  %921 = load ptr, ptr %11, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.cff_Stack, ptr %921, i32 0, i32 0
  %923 = load ptr, ptr %922, align 8, !tbaa !28
  %924 = load i32, ptr %18, align 4, !tbaa !9
  %925 = zext i32 %924 to i64
  %926 = getelementptr inbounds %struct.cff_Value, ptr %923, i64 %925
  %927 = getelementptr inbounds %struct.cff_Value, ptr %926, i32 0, i32 1
  %928 = load double, ptr %927, align 8, !tbaa !25
  %929 = load ptr, ptr %11, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.cff_Stack, ptr %929, i32 0, i32 0
  %931 = load ptr, ptr %930, align 8, !tbaa !28
  %932 = load i32, ptr %18, align 4, !tbaa !9
  %933 = add i32 %932, 1
  %934 = zext i32 %933 to i64
  %935 = getelementptr inbounds %struct.cff_Value, ptr %931, i64 %934
  %936 = getelementptr inbounds %struct.cff_Value, ptr %935, i32 0, i32 1
  %937 = load double, ptr %936, align 8, !tbaa !25
  %938 = load ptr, ptr %11, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.cff_Stack, ptr %938, i32 0, i32 0
  %940 = load ptr, ptr %939, align 8, !tbaa !28
  %941 = load i32, ptr %18, align 4, !tbaa !9
  %942 = add i32 %941, 2
  %943 = zext i32 %942 to i64
  %944 = getelementptr inbounds %struct.cff_Value, ptr %940, i64 %943
  %945 = getelementptr inbounds %struct.cff_Value, ptr %944, i32 0, i32 1
  %946 = load double, ptr %945, align 8, !tbaa !25
  %947 = load ptr, ptr %11, align 8, !tbaa !5
  %948 = getelementptr inbounds %struct.cff_Stack, ptr %947, i32 0, i32 0
  %949 = load ptr, ptr %948, align 8, !tbaa !28
  %950 = load i32, ptr %18, align 4, !tbaa !9
  %951 = add i32 %950, 3
  %952 = zext i32 %951 to i64
  %953 = getelementptr inbounds %struct.cff_Value, ptr %949, i64 %952
  %954 = getelementptr inbounds %struct.cff_Value, ptr %953, i32 0, i32 1
  %955 = load double, ptr %954, align 8, !tbaa !25
  %956 = load ptr, ptr %11, align 8, !tbaa !5
  %957 = getelementptr inbounds %struct.cff_Stack, ptr %956, i32 0, i32 0
  %958 = load ptr, ptr %957, align 8, !tbaa !28
  %959 = load i32, ptr %18, align 4, !tbaa !9
  %960 = add i32 %959, 4
  %961 = zext i32 %960 to i64
  %962 = getelementptr inbounds %struct.cff_Value, ptr %958, i64 %961
  %963 = getelementptr inbounds %struct.cff_Value, ptr %962, i32 0, i32 1
  %964 = load double, ptr %963, align 8, !tbaa !25
  %965 = load ptr, ptr %11, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.cff_Stack, ptr %965, i32 0, i32 0
  %967 = load ptr, ptr %966, align 8, !tbaa !28
  %968 = load i32, ptr %18, align 4, !tbaa !9
  %969 = add i32 %968, 5
  %970 = zext i32 %969 to i64
  %971 = getelementptr inbounds %struct.cff_Value, ptr %967, i64 %970
  %972 = getelementptr inbounds %struct.cff_Value, ptr %971, i32 0, i32 1
  %973 = load double, ptr %972, align 8, !tbaa !25
  call void %919(ptr noundef %920, double noundef %928, double noundef %937, double noundef %946, double noundef %955, double noundef %964, double noundef %973)
  br label %974

974:                                              ; preds = %918
  %975 = load i32, ptr %18, align 4, !tbaa !9
  %976 = add i32 %975, 6
  store i32 %976, ptr %18, align 4, !tbaa !9
  br label %911, !llvm.loop !50

977:                                              ; preds = %911
  %978 = load ptr, ptr %23, align 8, !tbaa !5
  %979 = load ptr, ptr %12, align 8, !tbaa !5
  %980 = load ptr, ptr %11, align 8, !tbaa !5
  %981 = getelementptr inbounds %struct.cff_Stack, ptr %980, i32 0, i32 0
  %982 = load ptr, ptr %981, align 8, !tbaa !28
  %983 = load ptr, ptr %11, align 8, !tbaa !5
  %984 = getelementptr inbounds %struct.cff_Stack, ptr %983, i32 0, i32 2
  %985 = load i32, ptr %984, align 8, !tbaa !26
  %986 = sub i32 %985, 2
  %987 = zext i32 %986 to i64
  %988 = getelementptr inbounds %struct.cff_Value, ptr %982, i64 %987
  %989 = getelementptr inbounds %struct.cff_Value, ptr %988, i32 0, i32 1
  %990 = load double, ptr %989, align 8, !tbaa !25
  %991 = load ptr, ptr %11, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.cff_Stack, ptr %991, i32 0, i32 0
  %993 = load ptr, ptr %992, align 8, !tbaa !28
  %994 = load ptr, ptr %11, align 8, !tbaa !5
  %995 = getelementptr inbounds %struct.cff_Stack, ptr %994, i32 0, i32 2
  %996 = load i32, ptr %995, align 8, !tbaa !26
  %997 = sub i32 %996, 1
  %998 = zext i32 %997 to i64
  %999 = getelementptr inbounds %struct.cff_Value, ptr %993, i64 %998
  %1000 = getelementptr inbounds %struct.cff_Value, ptr %999, i32 0, i32 1
  %1001 = load double, ptr %1000, align 8, !tbaa !25
  call void %978(ptr noundef %979, double noundef %990, double noundef %1001)
  %1002 = load ptr, ptr %11, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.cff_Stack, ptr %1002, i32 0, i32 2
  store i32 0, ptr %1003, align 8, !tbaa !26
  br label %3515

1004:                                             ; preds = %142
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1005

1005:                                             ; preds = %1032, %1004
  %1006 = load i32, ptr %18, align 4, !tbaa !9
  %1007 = load ptr, ptr %11, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.cff_Stack, ptr %1007, i32 0, i32 2
  %1009 = load i32, ptr %1008, align 8, !tbaa !26
  %1010 = sub i32 %1009, 6
  %1011 = icmp ult i32 %1006, %1010
  br i1 %1011, label %1012, label %1035

1012:                                             ; preds = %1005
  %1013 = load ptr, ptr %23, align 8, !tbaa !5
  %1014 = load ptr, ptr %12, align 8, !tbaa !5
  %1015 = load ptr, ptr %11, align 8, !tbaa !5
  %1016 = getelementptr inbounds %struct.cff_Stack, ptr %1015, i32 0, i32 0
  %1017 = load ptr, ptr %1016, align 8, !tbaa !28
  %1018 = load i32, ptr %18, align 4, !tbaa !9
  %1019 = zext i32 %1018 to i64
  %1020 = getelementptr inbounds %struct.cff_Value, ptr %1017, i64 %1019
  %1021 = getelementptr inbounds %struct.cff_Value, ptr %1020, i32 0, i32 1
  %1022 = load double, ptr %1021, align 8, !tbaa !25
  %1023 = load ptr, ptr %11, align 8, !tbaa !5
  %1024 = getelementptr inbounds %struct.cff_Stack, ptr %1023, i32 0, i32 0
  %1025 = load ptr, ptr %1024, align 8, !tbaa !28
  %1026 = load i32, ptr %18, align 4, !tbaa !9
  %1027 = add i32 %1026, 1
  %1028 = zext i32 %1027 to i64
  %1029 = getelementptr inbounds %struct.cff_Value, ptr %1025, i64 %1028
  %1030 = getelementptr inbounds %struct.cff_Value, ptr %1029, i32 0, i32 1
  %1031 = load double, ptr %1030, align 8, !tbaa !25
  call void %1013(ptr noundef %1014, double noundef %1022, double noundef %1031)
  br label %1032

1032:                                             ; preds = %1012
  %1033 = load i32, ptr %18, align 4, !tbaa !9
  %1034 = add i32 %1033, 2
  store i32 %1034, ptr %18, align 4, !tbaa !9
  br label %1005, !llvm.loop !51

1035:                                             ; preds = %1005
  %1036 = load ptr, ptr %24, align 8, !tbaa !5
  %1037 = load ptr, ptr %12, align 8, !tbaa !5
  %1038 = load ptr, ptr %11, align 8, !tbaa !5
  %1039 = getelementptr inbounds %struct.cff_Stack, ptr %1038, i32 0, i32 0
  %1040 = load ptr, ptr %1039, align 8, !tbaa !28
  %1041 = load ptr, ptr %11, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.cff_Stack, ptr %1041, i32 0, i32 2
  %1043 = load i32, ptr %1042, align 8, !tbaa !26
  %1044 = sub i32 %1043, 6
  %1045 = zext i32 %1044 to i64
  %1046 = getelementptr inbounds %struct.cff_Value, ptr %1040, i64 %1045
  %1047 = getelementptr inbounds %struct.cff_Value, ptr %1046, i32 0, i32 1
  %1048 = load double, ptr %1047, align 8, !tbaa !25
  %1049 = load ptr, ptr %11, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.cff_Stack, ptr %1049, i32 0, i32 0
  %1051 = load ptr, ptr %1050, align 8, !tbaa !28
  %1052 = load ptr, ptr %11, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.cff_Stack, ptr %1052, i32 0, i32 2
  %1054 = load i32, ptr %1053, align 8, !tbaa !26
  %1055 = sub i32 %1054, 5
  %1056 = zext i32 %1055 to i64
  %1057 = getelementptr inbounds %struct.cff_Value, ptr %1051, i64 %1056
  %1058 = getelementptr inbounds %struct.cff_Value, ptr %1057, i32 0, i32 1
  %1059 = load double, ptr %1058, align 8, !tbaa !25
  %1060 = load ptr, ptr %11, align 8, !tbaa !5
  %1061 = getelementptr inbounds %struct.cff_Stack, ptr %1060, i32 0, i32 0
  %1062 = load ptr, ptr %1061, align 8, !tbaa !28
  %1063 = load ptr, ptr %11, align 8, !tbaa !5
  %1064 = getelementptr inbounds %struct.cff_Stack, ptr %1063, i32 0, i32 2
  %1065 = load i32, ptr %1064, align 8, !tbaa !26
  %1066 = sub i32 %1065, 4
  %1067 = zext i32 %1066 to i64
  %1068 = getelementptr inbounds %struct.cff_Value, ptr %1062, i64 %1067
  %1069 = getelementptr inbounds %struct.cff_Value, ptr %1068, i32 0, i32 1
  %1070 = load double, ptr %1069, align 8, !tbaa !25
  %1071 = load ptr, ptr %11, align 8, !tbaa !5
  %1072 = getelementptr inbounds %struct.cff_Stack, ptr %1071, i32 0, i32 0
  %1073 = load ptr, ptr %1072, align 8, !tbaa !28
  %1074 = load ptr, ptr %11, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.cff_Stack, ptr %1074, i32 0, i32 2
  %1076 = load i32, ptr %1075, align 8, !tbaa !26
  %1077 = sub i32 %1076, 3
  %1078 = zext i32 %1077 to i64
  %1079 = getelementptr inbounds %struct.cff_Value, ptr %1073, i64 %1078
  %1080 = getelementptr inbounds %struct.cff_Value, ptr %1079, i32 0, i32 1
  %1081 = load double, ptr %1080, align 8, !tbaa !25
  %1082 = load ptr, ptr %11, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.cff_Stack, ptr %1082, i32 0, i32 0
  %1084 = load ptr, ptr %1083, align 8, !tbaa !28
  %1085 = load ptr, ptr %11, align 8, !tbaa !5
  %1086 = getelementptr inbounds %struct.cff_Stack, ptr %1085, i32 0, i32 2
  %1087 = load i32, ptr %1086, align 8, !tbaa !26
  %1088 = sub i32 %1087, 2
  %1089 = zext i32 %1088 to i64
  %1090 = getelementptr inbounds %struct.cff_Value, ptr %1084, i64 %1089
  %1091 = getelementptr inbounds %struct.cff_Value, ptr %1090, i32 0, i32 1
  %1092 = load double, ptr %1091, align 8, !tbaa !25
  %1093 = load ptr, ptr %11, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.cff_Stack, ptr %1093, i32 0, i32 0
  %1095 = load ptr, ptr %1094, align 8, !tbaa !28
  %1096 = load ptr, ptr %11, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.cff_Stack, ptr %1096, i32 0, i32 2
  %1098 = load i32, ptr %1097, align 8, !tbaa !26
  %1099 = sub i32 %1098, 1
  %1100 = zext i32 %1099 to i64
  %1101 = getelementptr inbounds %struct.cff_Value, ptr %1095, i64 %1100
  %1102 = getelementptr inbounds %struct.cff_Value, ptr %1101, i32 0, i32 1
  %1103 = load double, ptr %1102, align 8, !tbaa !25
  call void %1036(ptr noundef %1037, double noundef %1048, double noundef %1059, double noundef %1070, double noundef %1081, double noundef %1092, double noundef %1103)
  %1104 = load ptr, ptr %11, align 8, !tbaa !5
  %1105 = getelementptr inbounds %struct.cff_Stack, ptr %1104, i32 0, i32 2
  store i32 0, ptr %1105, align 8, !tbaa !26
  br label %3515

1106:                                             ; preds = %142
  %1107 = load ptr, ptr %11, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.cff_Stack, ptr %1107, i32 0, i32 2
  %1109 = load i32, ptr %1108, align 8, !tbaa !26
  %1110 = urem i32 %1109, 4
  %1111 = icmp eq i32 %1110, 1
  br i1 %1111, label %1112, label %1193

1112:                                             ; preds = %1106
  %1113 = load ptr, ptr %24, align 8, !tbaa !5
  %1114 = load ptr, ptr %12, align 8, !tbaa !5
  %1115 = load ptr, ptr %11, align 8, !tbaa !5
  %1116 = getelementptr inbounds %struct.cff_Stack, ptr %1115, i32 0, i32 0
  %1117 = load ptr, ptr %1116, align 8, !tbaa !28
  %1118 = getelementptr inbounds %struct.cff_Value, ptr %1117, i64 0
  %1119 = getelementptr inbounds %struct.cff_Value, ptr %1118, i32 0, i32 1
  %1120 = load double, ptr %1119, align 8, !tbaa !25
  %1121 = load ptr, ptr %11, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.cff_Stack, ptr %1121, i32 0, i32 0
  %1123 = load ptr, ptr %1122, align 8, !tbaa !28
  %1124 = getelementptr inbounds %struct.cff_Value, ptr %1123, i64 1
  %1125 = getelementptr inbounds %struct.cff_Value, ptr %1124, i32 0, i32 1
  %1126 = load double, ptr %1125, align 8, !tbaa !25
  %1127 = load ptr, ptr %11, align 8, !tbaa !5
  %1128 = getelementptr inbounds %struct.cff_Stack, ptr %1127, i32 0, i32 0
  %1129 = load ptr, ptr %1128, align 8, !tbaa !28
  %1130 = getelementptr inbounds %struct.cff_Value, ptr %1129, i64 2
  %1131 = getelementptr inbounds %struct.cff_Value, ptr %1130, i32 0, i32 1
  %1132 = load double, ptr %1131, align 8, !tbaa !25
  %1133 = load ptr, ptr %11, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.cff_Stack, ptr %1133, i32 0, i32 0
  %1135 = load ptr, ptr %1134, align 8, !tbaa !28
  %1136 = getelementptr inbounds %struct.cff_Value, ptr %1135, i64 3
  %1137 = getelementptr inbounds %struct.cff_Value, ptr %1136, i32 0, i32 1
  %1138 = load double, ptr %1137, align 8, !tbaa !25
  %1139 = load ptr, ptr %11, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.cff_Stack, ptr %1139, i32 0, i32 0
  %1141 = load ptr, ptr %1140, align 8, !tbaa !28
  %1142 = getelementptr inbounds %struct.cff_Value, ptr %1141, i64 4
  %1143 = getelementptr inbounds %struct.cff_Value, ptr %1142, i32 0, i32 1
  %1144 = load double, ptr %1143, align 8, !tbaa !25
  call void %1113(ptr noundef %1114, double noundef %1120, double noundef %1126, double noundef %1132, double noundef %1138, double noundef 0.000000e+00, double noundef %1144)
  store i32 5, ptr %18, align 4, !tbaa !9
  br label %1145

1145:                                             ; preds = %1189, %1112
  %1146 = load i32, ptr %18, align 4, !tbaa !9
  %1147 = load ptr, ptr %11, align 8, !tbaa !5
  %1148 = getelementptr inbounds %struct.cff_Stack, ptr %1147, i32 0, i32 2
  %1149 = load i32, ptr %1148, align 8, !tbaa !26
  %1150 = icmp ult i32 %1146, %1149
  br i1 %1150, label %1151, label %1192

1151:                                             ; preds = %1145
  %1152 = load ptr, ptr %24, align 8, !tbaa !5
  %1153 = load ptr, ptr %12, align 8, !tbaa !5
  %1154 = load ptr, ptr %11, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.cff_Stack, ptr %1154, i32 0, i32 0
  %1156 = load ptr, ptr %1155, align 8, !tbaa !28
  %1157 = load i32, ptr %18, align 4, !tbaa !9
  %1158 = zext i32 %1157 to i64
  %1159 = getelementptr inbounds %struct.cff_Value, ptr %1156, i64 %1158
  %1160 = getelementptr inbounds %struct.cff_Value, ptr %1159, i32 0, i32 1
  %1161 = load double, ptr %1160, align 8, !tbaa !25
  %1162 = load ptr, ptr %11, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.cff_Stack, ptr %1162, i32 0, i32 0
  %1164 = load ptr, ptr %1163, align 8, !tbaa !28
  %1165 = load i32, ptr %18, align 4, !tbaa !9
  %1166 = add i32 %1165, 1
  %1167 = zext i32 %1166 to i64
  %1168 = getelementptr inbounds %struct.cff_Value, ptr %1164, i64 %1167
  %1169 = getelementptr inbounds %struct.cff_Value, ptr %1168, i32 0, i32 1
  %1170 = load double, ptr %1169, align 8, !tbaa !25
  %1171 = load ptr, ptr %11, align 8, !tbaa !5
  %1172 = getelementptr inbounds %struct.cff_Stack, ptr %1171, i32 0, i32 0
  %1173 = load ptr, ptr %1172, align 8, !tbaa !28
  %1174 = load i32, ptr %18, align 4, !tbaa !9
  %1175 = add i32 %1174, 2
  %1176 = zext i32 %1175 to i64
  %1177 = getelementptr inbounds %struct.cff_Value, ptr %1173, i64 %1176
  %1178 = getelementptr inbounds %struct.cff_Value, ptr %1177, i32 0, i32 1
  %1179 = load double, ptr %1178, align 8, !tbaa !25
  %1180 = load ptr, ptr %11, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.cff_Stack, ptr %1180, i32 0, i32 0
  %1182 = load ptr, ptr %1181, align 8, !tbaa !28
  %1183 = load i32, ptr %18, align 4, !tbaa !9
  %1184 = add i32 %1183, 3
  %1185 = zext i32 %1184 to i64
  %1186 = getelementptr inbounds %struct.cff_Value, ptr %1182, i64 %1185
  %1187 = getelementptr inbounds %struct.cff_Value, ptr %1186, i32 0, i32 1
  %1188 = load double, ptr %1187, align 8, !tbaa !25
  call void %1152(ptr noundef %1153, double noundef 0.000000e+00, double noundef %1161, double noundef %1170, double noundef %1179, double noundef 0.000000e+00, double noundef %1188)
  br label %1189

1189:                                             ; preds = %1151
  %1190 = load i32, ptr %18, align 4, !tbaa !9
  %1191 = add i32 %1190, 4
  store i32 %1191, ptr %18, align 4, !tbaa !9
  br label %1145, !llvm.loop !52

1192:                                             ; preds = %1145
  br label %1242

1193:                                             ; preds = %1106
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1194

1194:                                             ; preds = %1238, %1193
  %1195 = load i32, ptr %18, align 4, !tbaa !9
  %1196 = load ptr, ptr %11, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.cff_Stack, ptr %1196, i32 0, i32 2
  %1198 = load i32, ptr %1197, align 8, !tbaa !26
  %1199 = icmp ult i32 %1195, %1198
  br i1 %1199, label %1200, label %1241

1200:                                             ; preds = %1194
  %1201 = load ptr, ptr %24, align 8, !tbaa !5
  %1202 = load ptr, ptr %12, align 8, !tbaa !5
  %1203 = load ptr, ptr %11, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.cff_Stack, ptr %1203, i32 0, i32 0
  %1205 = load ptr, ptr %1204, align 8, !tbaa !28
  %1206 = load i32, ptr %18, align 4, !tbaa !9
  %1207 = zext i32 %1206 to i64
  %1208 = getelementptr inbounds %struct.cff_Value, ptr %1205, i64 %1207
  %1209 = getelementptr inbounds %struct.cff_Value, ptr %1208, i32 0, i32 1
  %1210 = load double, ptr %1209, align 8, !tbaa !25
  %1211 = load ptr, ptr %11, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.cff_Stack, ptr %1211, i32 0, i32 0
  %1213 = load ptr, ptr %1212, align 8, !tbaa !28
  %1214 = load i32, ptr %18, align 4, !tbaa !9
  %1215 = add i32 %1214, 1
  %1216 = zext i32 %1215 to i64
  %1217 = getelementptr inbounds %struct.cff_Value, ptr %1213, i64 %1216
  %1218 = getelementptr inbounds %struct.cff_Value, ptr %1217, i32 0, i32 1
  %1219 = load double, ptr %1218, align 8, !tbaa !25
  %1220 = load ptr, ptr %11, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.cff_Stack, ptr %1220, i32 0, i32 0
  %1222 = load ptr, ptr %1221, align 8, !tbaa !28
  %1223 = load i32, ptr %18, align 4, !tbaa !9
  %1224 = add i32 %1223, 2
  %1225 = zext i32 %1224 to i64
  %1226 = getelementptr inbounds %struct.cff_Value, ptr %1222, i64 %1225
  %1227 = getelementptr inbounds %struct.cff_Value, ptr %1226, i32 0, i32 1
  %1228 = load double, ptr %1227, align 8, !tbaa !25
  %1229 = load ptr, ptr %11, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.cff_Stack, ptr %1229, i32 0, i32 0
  %1231 = load ptr, ptr %1230, align 8, !tbaa !28
  %1232 = load i32, ptr %18, align 4, !tbaa !9
  %1233 = add i32 %1232, 3
  %1234 = zext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.cff_Value, ptr %1231, i64 %1234
  %1236 = getelementptr inbounds %struct.cff_Value, ptr %1235, i32 0, i32 1
  %1237 = load double, ptr %1236, align 8, !tbaa !25
  call void %1201(ptr noundef %1202, double noundef 0.000000e+00, double noundef %1210, double noundef %1219, double noundef %1228, double noundef 0.000000e+00, double noundef %1237)
  br label %1238

1238:                                             ; preds = %1200
  %1239 = load i32, ptr %18, align 4, !tbaa !9
  %1240 = add i32 %1239, 4
  store i32 %1240, ptr %18, align 4, !tbaa !9
  br label %1194, !llvm.loop !53

1241:                                             ; preds = %1194
  br label %1242

1242:                                             ; preds = %1241, %1192
  %1243 = load ptr, ptr %11, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.cff_Stack, ptr %1243, i32 0, i32 2
  store i32 0, ptr %1244, align 8, !tbaa !26
  br label %3515

1245:                                             ; preds = %142
  %1246 = load ptr, ptr %11, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.cff_Stack, ptr %1246, i32 0, i32 2
  %1248 = load i32, ptr %1247, align 8, !tbaa !26
  %1249 = urem i32 %1248, 4
  %1250 = icmp eq i32 %1249, 1
  br i1 %1250, label %1251, label %1332

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr %24, align 8, !tbaa !5
  %1253 = load ptr, ptr %12, align 8, !tbaa !5
  %1254 = load ptr, ptr %11, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.cff_Stack, ptr %1254, i32 0, i32 0
  %1256 = load ptr, ptr %1255, align 8, !tbaa !28
  %1257 = getelementptr inbounds %struct.cff_Value, ptr %1256, i64 1
  %1258 = getelementptr inbounds %struct.cff_Value, ptr %1257, i32 0, i32 1
  %1259 = load double, ptr %1258, align 8, !tbaa !25
  %1260 = load ptr, ptr %11, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.cff_Stack, ptr %1260, i32 0, i32 0
  %1262 = load ptr, ptr %1261, align 8, !tbaa !28
  %1263 = getelementptr inbounds %struct.cff_Value, ptr %1262, i64 0
  %1264 = getelementptr inbounds %struct.cff_Value, ptr %1263, i32 0, i32 1
  %1265 = load double, ptr %1264, align 8, !tbaa !25
  %1266 = load ptr, ptr %11, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.cff_Stack, ptr %1266, i32 0, i32 0
  %1268 = load ptr, ptr %1267, align 8, !tbaa !28
  %1269 = getelementptr inbounds %struct.cff_Value, ptr %1268, i64 2
  %1270 = getelementptr inbounds %struct.cff_Value, ptr %1269, i32 0, i32 1
  %1271 = load double, ptr %1270, align 8, !tbaa !25
  %1272 = load ptr, ptr %11, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.cff_Stack, ptr %1272, i32 0, i32 0
  %1274 = load ptr, ptr %1273, align 8, !tbaa !28
  %1275 = getelementptr inbounds %struct.cff_Value, ptr %1274, i64 3
  %1276 = getelementptr inbounds %struct.cff_Value, ptr %1275, i32 0, i32 1
  %1277 = load double, ptr %1276, align 8, !tbaa !25
  %1278 = load ptr, ptr %11, align 8, !tbaa !5
  %1279 = getelementptr inbounds %struct.cff_Stack, ptr %1278, i32 0, i32 0
  %1280 = load ptr, ptr %1279, align 8, !tbaa !28
  %1281 = getelementptr inbounds %struct.cff_Value, ptr %1280, i64 4
  %1282 = getelementptr inbounds %struct.cff_Value, ptr %1281, i32 0, i32 1
  %1283 = load double, ptr %1282, align 8, !tbaa !25
  call void %1252(ptr noundef %1253, double noundef %1259, double noundef %1265, double noundef %1271, double noundef %1277, double noundef %1283, double noundef 0.000000e+00)
  store i32 5, ptr %18, align 4, !tbaa !9
  br label %1284

1284:                                             ; preds = %1328, %1251
  %1285 = load i32, ptr %18, align 4, !tbaa !9
  %1286 = load ptr, ptr %11, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.cff_Stack, ptr %1286, i32 0, i32 2
  %1288 = load i32, ptr %1287, align 8, !tbaa !26
  %1289 = icmp ult i32 %1285, %1288
  br i1 %1289, label %1290, label %1331

1290:                                             ; preds = %1284
  %1291 = load ptr, ptr %24, align 8, !tbaa !5
  %1292 = load ptr, ptr %12, align 8, !tbaa !5
  %1293 = load ptr, ptr %11, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.cff_Stack, ptr %1293, i32 0, i32 0
  %1295 = load ptr, ptr %1294, align 8, !tbaa !28
  %1296 = load i32, ptr %18, align 4, !tbaa !9
  %1297 = zext i32 %1296 to i64
  %1298 = getelementptr inbounds %struct.cff_Value, ptr %1295, i64 %1297
  %1299 = getelementptr inbounds %struct.cff_Value, ptr %1298, i32 0, i32 1
  %1300 = load double, ptr %1299, align 8, !tbaa !25
  %1301 = load ptr, ptr %11, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.cff_Stack, ptr %1301, i32 0, i32 0
  %1303 = load ptr, ptr %1302, align 8, !tbaa !28
  %1304 = load i32, ptr %18, align 4, !tbaa !9
  %1305 = add i32 %1304, 1
  %1306 = zext i32 %1305 to i64
  %1307 = getelementptr inbounds %struct.cff_Value, ptr %1303, i64 %1306
  %1308 = getelementptr inbounds %struct.cff_Value, ptr %1307, i32 0, i32 1
  %1309 = load double, ptr %1308, align 8, !tbaa !25
  %1310 = load ptr, ptr %11, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.cff_Stack, ptr %1310, i32 0, i32 0
  %1312 = load ptr, ptr %1311, align 8, !tbaa !28
  %1313 = load i32, ptr %18, align 4, !tbaa !9
  %1314 = add i32 %1313, 2
  %1315 = zext i32 %1314 to i64
  %1316 = getelementptr inbounds %struct.cff_Value, ptr %1312, i64 %1315
  %1317 = getelementptr inbounds %struct.cff_Value, ptr %1316, i32 0, i32 1
  %1318 = load double, ptr %1317, align 8, !tbaa !25
  %1319 = load ptr, ptr %11, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.cff_Stack, ptr %1319, i32 0, i32 0
  %1321 = load ptr, ptr %1320, align 8, !tbaa !28
  %1322 = load i32, ptr %18, align 4, !tbaa !9
  %1323 = add i32 %1322, 3
  %1324 = zext i32 %1323 to i64
  %1325 = getelementptr inbounds %struct.cff_Value, ptr %1321, i64 %1324
  %1326 = getelementptr inbounds %struct.cff_Value, ptr %1325, i32 0, i32 1
  %1327 = load double, ptr %1326, align 8, !tbaa !25
  call void %1291(ptr noundef %1292, double noundef %1300, double noundef 0.000000e+00, double noundef %1309, double noundef %1318, double noundef %1327, double noundef 0.000000e+00)
  br label %1328

1328:                                             ; preds = %1290
  %1329 = load i32, ptr %18, align 4, !tbaa !9
  %1330 = add i32 %1329, 4
  store i32 %1330, ptr %18, align 4, !tbaa !9
  br label %1284, !llvm.loop !54

1331:                                             ; preds = %1284
  br label %1381

1332:                                             ; preds = %1245
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1333

1333:                                             ; preds = %1377, %1332
  %1334 = load i32, ptr %18, align 4, !tbaa !9
  %1335 = load ptr, ptr %11, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.cff_Stack, ptr %1335, i32 0, i32 2
  %1337 = load i32, ptr %1336, align 8, !tbaa !26
  %1338 = icmp ult i32 %1334, %1337
  br i1 %1338, label %1339, label %1380

1339:                                             ; preds = %1333
  %1340 = load ptr, ptr %24, align 8, !tbaa !5
  %1341 = load ptr, ptr %12, align 8, !tbaa !5
  %1342 = load ptr, ptr %11, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.cff_Stack, ptr %1342, i32 0, i32 0
  %1344 = load ptr, ptr %1343, align 8, !tbaa !28
  %1345 = load i32, ptr %18, align 4, !tbaa !9
  %1346 = zext i32 %1345 to i64
  %1347 = getelementptr inbounds %struct.cff_Value, ptr %1344, i64 %1346
  %1348 = getelementptr inbounds %struct.cff_Value, ptr %1347, i32 0, i32 1
  %1349 = load double, ptr %1348, align 8, !tbaa !25
  %1350 = load ptr, ptr %11, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.cff_Stack, ptr %1350, i32 0, i32 0
  %1352 = load ptr, ptr %1351, align 8, !tbaa !28
  %1353 = load i32, ptr %18, align 4, !tbaa !9
  %1354 = add i32 %1353, 1
  %1355 = zext i32 %1354 to i64
  %1356 = getelementptr inbounds %struct.cff_Value, ptr %1352, i64 %1355
  %1357 = getelementptr inbounds %struct.cff_Value, ptr %1356, i32 0, i32 1
  %1358 = load double, ptr %1357, align 8, !tbaa !25
  %1359 = load ptr, ptr %11, align 8, !tbaa !5
  %1360 = getelementptr inbounds %struct.cff_Stack, ptr %1359, i32 0, i32 0
  %1361 = load ptr, ptr %1360, align 8, !tbaa !28
  %1362 = load i32, ptr %18, align 4, !tbaa !9
  %1363 = add i32 %1362, 2
  %1364 = zext i32 %1363 to i64
  %1365 = getelementptr inbounds %struct.cff_Value, ptr %1361, i64 %1364
  %1366 = getelementptr inbounds %struct.cff_Value, ptr %1365, i32 0, i32 1
  %1367 = load double, ptr %1366, align 8, !tbaa !25
  %1368 = load ptr, ptr %11, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.cff_Stack, ptr %1368, i32 0, i32 0
  %1370 = load ptr, ptr %1369, align 8, !tbaa !28
  %1371 = load i32, ptr %18, align 4, !tbaa !9
  %1372 = add i32 %1371, 3
  %1373 = zext i32 %1372 to i64
  %1374 = getelementptr inbounds %struct.cff_Value, ptr %1370, i64 %1373
  %1375 = getelementptr inbounds %struct.cff_Value, ptr %1374, i32 0, i32 1
  %1376 = load double, ptr %1375, align 8, !tbaa !25
  call void %1340(ptr noundef %1341, double noundef %1349, double noundef 0.000000e+00, double noundef %1358, double noundef %1367, double noundef %1376, double noundef 0.000000e+00)
  br label %1377

1377:                                             ; preds = %1339
  %1378 = load i32, ptr %18, align 4, !tbaa !9
  %1379 = add i32 %1378, 4
  store i32 %1379, ptr %18, align 4, !tbaa !9
  br label %1333, !llvm.loop !55

1380:                                             ; preds = %1333
  br label %1381

1381:                                             ; preds = %1380, %1331
  %1382 = load ptr, ptr %11, align 8, !tbaa !5
  %1383 = getelementptr inbounds %struct.cff_Stack, ptr %1382, i32 0, i32 2
  store i32 0, ptr %1383, align 8, !tbaa !26
  br label %3515

1384:                                             ; preds = %142
  %1385 = load ptr, ptr %11, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.cff_Stack, ptr %1385, i32 0, i32 2
  %1387 = load i32, ptr %1386, align 8, !tbaa !26
  %1388 = urem i32 %1387, 4
  %1389 = icmp eq i32 %1388, 1
  br i1 %1389, label %1390, label %1396

1390:                                             ; preds = %1384
  %1391 = load ptr, ptr %11, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.cff_Stack, ptr %1391, i32 0, i32 2
  %1393 = load i32, ptr %1392, align 8, !tbaa !26
  %1394 = sub i32 %1393, 5
  %1395 = udiv i32 %1394, 4
  store i32 %1395, ptr %19, align 4, !tbaa !9
  br label %1401

1396:                                             ; preds = %1384
  %1397 = load ptr, ptr %11, align 8, !tbaa !5
  %1398 = getelementptr inbounds %struct.cff_Stack, ptr %1397, i32 0, i32 2
  %1399 = load i32, ptr %1398, align 8, !tbaa !26
  %1400 = udiv i32 %1399, 4
  store i32 %1400, ptr %19, align 4, !tbaa !9
  br label %1401

1401:                                             ; preds = %1396, %1390
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1402

1402:                                             ; preds = %1489, %1401
  %1403 = load i32, ptr %18, align 4, !tbaa !9
  %1404 = load i32, ptr %19, align 4, !tbaa !9
  %1405 = mul i32 4, %1404
  %1406 = icmp ult i32 %1403, %1405
  br i1 %1406, label %1407, label %1492

1407:                                             ; preds = %1402
  %1408 = load i32, ptr %18, align 4, !tbaa !9
  %1409 = udiv i32 %1408, 4
  %1410 = urem i32 %1409, 2
  %1411 = icmp eq i32 %1410, 0
  br i1 %1411, label %1412, label %1450

1412:                                             ; preds = %1407
  %1413 = load ptr, ptr %24, align 8, !tbaa !5
  %1414 = load ptr, ptr %12, align 8, !tbaa !5
  %1415 = load ptr, ptr %11, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.cff_Stack, ptr %1415, i32 0, i32 0
  %1417 = load ptr, ptr %1416, align 8, !tbaa !28
  %1418 = load i32, ptr %18, align 4, !tbaa !9
  %1419 = zext i32 %1418 to i64
  %1420 = getelementptr inbounds %struct.cff_Value, ptr %1417, i64 %1419
  %1421 = getelementptr inbounds %struct.cff_Value, ptr %1420, i32 0, i32 1
  %1422 = load double, ptr %1421, align 8, !tbaa !25
  %1423 = load ptr, ptr %11, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.cff_Stack, ptr %1423, i32 0, i32 0
  %1425 = load ptr, ptr %1424, align 8, !tbaa !28
  %1426 = load i32, ptr %18, align 4, !tbaa !9
  %1427 = add i32 %1426, 1
  %1428 = zext i32 %1427 to i64
  %1429 = getelementptr inbounds %struct.cff_Value, ptr %1425, i64 %1428
  %1430 = getelementptr inbounds %struct.cff_Value, ptr %1429, i32 0, i32 1
  %1431 = load double, ptr %1430, align 8, !tbaa !25
  %1432 = load ptr, ptr %11, align 8, !tbaa !5
  %1433 = getelementptr inbounds %struct.cff_Stack, ptr %1432, i32 0, i32 0
  %1434 = load ptr, ptr %1433, align 8, !tbaa !28
  %1435 = load i32, ptr %18, align 4, !tbaa !9
  %1436 = add i32 %1435, 2
  %1437 = zext i32 %1436 to i64
  %1438 = getelementptr inbounds %struct.cff_Value, ptr %1434, i64 %1437
  %1439 = getelementptr inbounds %struct.cff_Value, ptr %1438, i32 0, i32 1
  %1440 = load double, ptr %1439, align 8, !tbaa !25
  %1441 = load ptr, ptr %11, align 8, !tbaa !5
  %1442 = getelementptr inbounds %struct.cff_Stack, ptr %1441, i32 0, i32 0
  %1443 = load ptr, ptr %1442, align 8, !tbaa !28
  %1444 = load i32, ptr %18, align 4, !tbaa !9
  %1445 = add i32 %1444, 3
  %1446 = zext i32 %1445 to i64
  %1447 = getelementptr inbounds %struct.cff_Value, ptr %1443, i64 %1446
  %1448 = getelementptr inbounds %struct.cff_Value, ptr %1447, i32 0, i32 1
  %1449 = load double, ptr %1448, align 8, !tbaa !25
  call void %1413(ptr noundef %1414, double noundef 0.000000e+00, double noundef %1422, double noundef %1431, double noundef %1440, double noundef %1449, double noundef 0.000000e+00)
  br label %1488

1450:                                             ; preds = %1407
  %1451 = load ptr, ptr %24, align 8, !tbaa !5
  %1452 = load ptr, ptr %12, align 8, !tbaa !5
  %1453 = load ptr, ptr %11, align 8, !tbaa !5
  %1454 = getelementptr inbounds %struct.cff_Stack, ptr %1453, i32 0, i32 0
  %1455 = load ptr, ptr %1454, align 8, !tbaa !28
  %1456 = load i32, ptr %18, align 4, !tbaa !9
  %1457 = zext i32 %1456 to i64
  %1458 = getelementptr inbounds %struct.cff_Value, ptr %1455, i64 %1457
  %1459 = getelementptr inbounds %struct.cff_Value, ptr %1458, i32 0, i32 1
  %1460 = load double, ptr %1459, align 8, !tbaa !25
  %1461 = load ptr, ptr %11, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.cff_Stack, ptr %1461, i32 0, i32 0
  %1463 = load ptr, ptr %1462, align 8, !tbaa !28
  %1464 = load i32, ptr %18, align 4, !tbaa !9
  %1465 = add i32 %1464, 1
  %1466 = zext i32 %1465 to i64
  %1467 = getelementptr inbounds %struct.cff_Value, ptr %1463, i64 %1466
  %1468 = getelementptr inbounds %struct.cff_Value, ptr %1467, i32 0, i32 1
  %1469 = load double, ptr %1468, align 8, !tbaa !25
  %1470 = load ptr, ptr %11, align 8, !tbaa !5
  %1471 = getelementptr inbounds %struct.cff_Stack, ptr %1470, i32 0, i32 0
  %1472 = load ptr, ptr %1471, align 8, !tbaa !28
  %1473 = load i32, ptr %18, align 4, !tbaa !9
  %1474 = add i32 %1473, 2
  %1475 = zext i32 %1474 to i64
  %1476 = getelementptr inbounds %struct.cff_Value, ptr %1472, i64 %1475
  %1477 = getelementptr inbounds %struct.cff_Value, ptr %1476, i32 0, i32 1
  %1478 = load double, ptr %1477, align 8, !tbaa !25
  %1479 = load ptr, ptr %11, align 8, !tbaa !5
  %1480 = getelementptr inbounds %struct.cff_Stack, ptr %1479, i32 0, i32 0
  %1481 = load ptr, ptr %1480, align 8, !tbaa !28
  %1482 = load i32, ptr %18, align 4, !tbaa !9
  %1483 = add i32 %1482, 3
  %1484 = zext i32 %1483 to i64
  %1485 = getelementptr inbounds %struct.cff_Value, ptr %1481, i64 %1484
  %1486 = getelementptr inbounds %struct.cff_Value, ptr %1485, i32 0, i32 1
  %1487 = load double, ptr %1486, align 8, !tbaa !25
  call void %1451(ptr noundef %1452, double noundef %1460, double noundef 0.000000e+00, double noundef %1469, double noundef %1478, double noundef 0.000000e+00, double noundef %1487)
  br label %1488

1488:                                             ; preds = %1450, %1412
  br label %1489

1489:                                             ; preds = %1488
  %1490 = load i32, ptr %18, align 4, !tbaa !9
  %1491 = add i32 %1490, 4
  store i32 %1491, ptr %18, align 4, !tbaa !9
  br label %1402, !llvm.loop !56

1492:                                             ; preds = %1402
  %1493 = load ptr, ptr %11, align 8, !tbaa !5
  %1494 = getelementptr inbounds %struct.cff_Stack, ptr %1493, i32 0, i32 2
  %1495 = load i32, ptr %1494, align 8, !tbaa !26
  %1496 = urem i32 %1495, 8
  %1497 = icmp eq i32 %1496, 5
  br i1 %1497, label %1498, label %1556

1498:                                             ; preds = %1492
  %1499 = load ptr, ptr %24, align 8, !tbaa !5
  %1500 = load ptr, ptr %12, align 8, !tbaa !5
  %1501 = load ptr, ptr %11, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.cff_Stack, ptr %1501, i32 0, i32 0
  %1503 = load ptr, ptr %1502, align 8, !tbaa !28
  %1504 = load ptr, ptr %11, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.cff_Stack, ptr %1504, i32 0, i32 2
  %1506 = load i32, ptr %1505, align 8, !tbaa !26
  %1507 = sub i32 %1506, 5
  %1508 = zext i32 %1507 to i64
  %1509 = getelementptr inbounds %struct.cff_Value, ptr %1503, i64 %1508
  %1510 = getelementptr inbounds %struct.cff_Value, ptr %1509, i32 0, i32 1
  %1511 = load double, ptr %1510, align 8, !tbaa !25
  %1512 = load ptr, ptr %11, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.cff_Stack, ptr %1512, i32 0, i32 0
  %1514 = load ptr, ptr %1513, align 8, !tbaa !28
  %1515 = load ptr, ptr %11, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.cff_Stack, ptr %1515, i32 0, i32 2
  %1517 = load i32, ptr %1516, align 8, !tbaa !26
  %1518 = sub i32 %1517, 4
  %1519 = zext i32 %1518 to i64
  %1520 = getelementptr inbounds %struct.cff_Value, ptr %1514, i64 %1519
  %1521 = getelementptr inbounds %struct.cff_Value, ptr %1520, i32 0, i32 1
  %1522 = load double, ptr %1521, align 8, !tbaa !25
  %1523 = load ptr, ptr %11, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.cff_Stack, ptr %1523, i32 0, i32 0
  %1525 = load ptr, ptr %1524, align 8, !tbaa !28
  %1526 = load ptr, ptr %11, align 8, !tbaa !5
  %1527 = getelementptr inbounds %struct.cff_Stack, ptr %1526, i32 0, i32 2
  %1528 = load i32, ptr %1527, align 8, !tbaa !26
  %1529 = sub i32 %1528, 3
  %1530 = zext i32 %1529 to i64
  %1531 = getelementptr inbounds %struct.cff_Value, ptr %1525, i64 %1530
  %1532 = getelementptr inbounds %struct.cff_Value, ptr %1531, i32 0, i32 1
  %1533 = load double, ptr %1532, align 8, !tbaa !25
  %1534 = load ptr, ptr %11, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.cff_Stack, ptr %1534, i32 0, i32 0
  %1536 = load ptr, ptr %1535, align 8, !tbaa !28
  %1537 = load ptr, ptr %11, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.cff_Stack, ptr %1537, i32 0, i32 2
  %1539 = load i32, ptr %1538, align 8, !tbaa !26
  %1540 = sub i32 %1539, 2
  %1541 = zext i32 %1540 to i64
  %1542 = getelementptr inbounds %struct.cff_Value, ptr %1536, i64 %1541
  %1543 = getelementptr inbounds %struct.cff_Value, ptr %1542, i32 0, i32 1
  %1544 = load double, ptr %1543, align 8, !tbaa !25
  %1545 = load ptr, ptr %11, align 8, !tbaa !5
  %1546 = getelementptr inbounds %struct.cff_Stack, ptr %1545, i32 0, i32 0
  %1547 = load ptr, ptr %1546, align 8, !tbaa !28
  %1548 = load ptr, ptr %11, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.cff_Stack, ptr %1548, i32 0, i32 2
  %1550 = load i32, ptr %1549, align 8, !tbaa !26
  %1551 = sub i32 %1550, 1
  %1552 = zext i32 %1551 to i64
  %1553 = getelementptr inbounds %struct.cff_Value, ptr %1547, i64 %1552
  %1554 = getelementptr inbounds %struct.cff_Value, ptr %1553, i32 0, i32 1
  %1555 = load double, ptr %1554, align 8, !tbaa !25
  call void %1499(ptr noundef %1500, double noundef 0.000000e+00, double noundef %1511, double noundef %1522, double noundef %1533, double noundef %1544, double noundef %1555)
  br label %1556

1556:                                             ; preds = %1498, %1492
  %1557 = load ptr, ptr %11, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.cff_Stack, ptr %1557, i32 0, i32 2
  %1559 = load i32, ptr %1558, align 8, !tbaa !26
  %1560 = urem i32 %1559, 8
  %1561 = icmp eq i32 %1560, 1
  br i1 %1561, label %1562, label %1620

1562:                                             ; preds = %1556
  %1563 = load ptr, ptr %24, align 8, !tbaa !5
  %1564 = load ptr, ptr %12, align 8, !tbaa !5
  %1565 = load ptr, ptr %11, align 8, !tbaa !5
  %1566 = getelementptr inbounds %struct.cff_Stack, ptr %1565, i32 0, i32 0
  %1567 = load ptr, ptr %1566, align 8, !tbaa !28
  %1568 = load ptr, ptr %11, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.cff_Stack, ptr %1568, i32 0, i32 2
  %1570 = load i32, ptr %1569, align 8, !tbaa !26
  %1571 = sub i32 %1570, 5
  %1572 = zext i32 %1571 to i64
  %1573 = getelementptr inbounds %struct.cff_Value, ptr %1567, i64 %1572
  %1574 = getelementptr inbounds %struct.cff_Value, ptr %1573, i32 0, i32 1
  %1575 = load double, ptr %1574, align 8, !tbaa !25
  %1576 = load ptr, ptr %11, align 8, !tbaa !5
  %1577 = getelementptr inbounds %struct.cff_Stack, ptr %1576, i32 0, i32 0
  %1578 = load ptr, ptr %1577, align 8, !tbaa !28
  %1579 = load ptr, ptr %11, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.cff_Stack, ptr %1579, i32 0, i32 2
  %1581 = load i32, ptr %1580, align 8, !tbaa !26
  %1582 = sub i32 %1581, 4
  %1583 = zext i32 %1582 to i64
  %1584 = getelementptr inbounds %struct.cff_Value, ptr %1578, i64 %1583
  %1585 = getelementptr inbounds %struct.cff_Value, ptr %1584, i32 0, i32 1
  %1586 = load double, ptr %1585, align 8, !tbaa !25
  %1587 = load ptr, ptr %11, align 8, !tbaa !5
  %1588 = getelementptr inbounds %struct.cff_Stack, ptr %1587, i32 0, i32 0
  %1589 = load ptr, ptr %1588, align 8, !tbaa !28
  %1590 = load ptr, ptr %11, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.cff_Stack, ptr %1590, i32 0, i32 2
  %1592 = load i32, ptr %1591, align 8, !tbaa !26
  %1593 = sub i32 %1592, 3
  %1594 = zext i32 %1593 to i64
  %1595 = getelementptr inbounds %struct.cff_Value, ptr %1589, i64 %1594
  %1596 = getelementptr inbounds %struct.cff_Value, ptr %1595, i32 0, i32 1
  %1597 = load double, ptr %1596, align 8, !tbaa !25
  %1598 = load ptr, ptr %11, align 8, !tbaa !5
  %1599 = getelementptr inbounds %struct.cff_Stack, ptr %1598, i32 0, i32 0
  %1600 = load ptr, ptr %1599, align 8, !tbaa !28
  %1601 = load ptr, ptr %11, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.cff_Stack, ptr %1601, i32 0, i32 2
  %1603 = load i32, ptr %1602, align 8, !tbaa !26
  %1604 = sub i32 %1603, 1
  %1605 = zext i32 %1604 to i64
  %1606 = getelementptr inbounds %struct.cff_Value, ptr %1600, i64 %1605
  %1607 = getelementptr inbounds %struct.cff_Value, ptr %1606, i32 0, i32 1
  %1608 = load double, ptr %1607, align 8, !tbaa !25
  %1609 = load ptr, ptr %11, align 8, !tbaa !5
  %1610 = getelementptr inbounds %struct.cff_Stack, ptr %1609, i32 0, i32 0
  %1611 = load ptr, ptr %1610, align 8, !tbaa !28
  %1612 = load ptr, ptr %11, align 8, !tbaa !5
  %1613 = getelementptr inbounds %struct.cff_Stack, ptr %1612, i32 0, i32 2
  %1614 = load i32, ptr %1613, align 8, !tbaa !26
  %1615 = sub i32 %1614, 2
  %1616 = zext i32 %1615 to i64
  %1617 = getelementptr inbounds %struct.cff_Value, ptr %1611, i64 %1616
  %1618 = getelementptr inbounds %struct.cff_Value, ptr %1617, i32 0, i32 1
  %1619 = load double, ptr %1618, align 8, !tbaa !25
  call void %1563(ptr noundef %1564, double noundef %1575, double noundef 0.000000e+00, double noundef %1586, double noundef %1597, double noundef %1608, double noundef %1619)
  br label %1620

1620:                                             ; preds = %1562, %1556
  %1621 = load ptr, ptr %11, align 8, !tbaa !5
  %1622 = getelementptr inbounds %struct.cff_Stack, ptr %1621, i32 0, i32 2
  store i32 0, ptr %1622, align 8, !tbaa !26
  br label %3515

1623:                                             ; preds = %142
  %1624 = load ptr, ptr %11, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.cff_Stack, ptr %1624, i32 0, i32 2
  %1626 = load i32, ptr %1625, align 8, !tbaa !26
  %1627 = urem i32 %1626, 4
  %1628 = icmp eq i32 %1627, 1
  br i1 %1628, label %1629, label %1635

1629:                                             ; preds = %1623
  %1630 = load ptr, ptr %11, align 8, !tbaa !5
  %1631 = getelementptr inbounds %struct.cff_Stack, ptr %1630, i32 0, i32 2
  %1632 = load i32, ptr %1631, align 8, !tbaa !26
  %1633 = sub i32 %1632, 5
  %1634 = udiv i32 %1633, 4
  store i32 %1634, ptr %19, align 4, !tbaa !9
  br label %1640

1635:                                             ; preds = %1623
  %1636 = load ptr, ptr %11, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.cff_Stack, ptr %1636, i32 0, i32 2
  %1638 = load i32, ptr %1637, align 8, !tbaa !26
  %1639 = udiv i32 %1638, 4
  store i32 %1639, ptr %19, align 4, !tbaa !9
  br label %1640

1640:                                             ; preds = %1635, %1629
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %1641

1641:                                             ; preds = %1728, %1640
  %1642 = load i32, ptr %18, align 4, !tbaa !9
  %1643 = load i32, ptr %19, align 4, !tbaa !9
  %1644 = mul i32 4, %1643
  %1645 = icmp ult i32 %1642, %1644
  br i1 %1645, label %1646, label %1731

1646:                                             ; preds = %1641
  %1647 = load i32, ptr %18, align 4, !tbaa !9
  %1648 = udiv i32 %1647, 4
  %1649 = urem i32 %1648, 2
  %1650 = icmp eq i32 %1649, 0
  br i1 %1650, label %1651, label %1689

1651:                                             ; preds = %1646
  %1652 = load ptr, ptr %24, align 8, !tbaa !5
  %1653 = load ptr, ptr %12, align 8, !tbaa !5
  %1654 = load ptr, ptr %11, align 8, !tbaa !5
  %1655 = getelementptr inbounds %struct.cff_Stack, ptr %1654, i32 0, i32 0
  %1656 = load ptr, ptr %1655, align 8, !tbaa !28
  %1657 = load i32, ptr %18, align 4, !tbaa !9
  %1658 = zext i32 %1657 to i64
  %1659 = getelementptr inbounds %struct.cff_Value, ptr %1656, i64 %1658
  %1660 = getelementptr inbounds %struct.cff_Value, ptr %1659, i32 0, i32 1
  %1661 = load double, ptr %1660, align 8, !tbaa !25
  %1662 = load ptr, ptr %11, align 8, !tbaa !5
  %1663 = getelementptr inbounds %struct.cff_Stack, ptr %1662, i32 0, i32 0
  %1664 = load ptr, ptr %1663, align 8, !tbaa !28
  %1665 = load i32, ptr %18, align 4, !tbaa !9
  %1666 = add i32 %1665, 1
  %1667 = zext i32 %1666 to i64
  %1668 = getelementptr inbounds %struct.cff_Value, ptr %1664, i64 %1667
  %1669 = getelementptr inbounds %struct.cff_Value, ptr %1668, i32 0, i32 1
  %1670 = load double, ptr %1669, align 8, !tbaa !25
  %1671 = load ptr, ptr %11, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.cff_Stack, ptr %1671, i32 0, i32 0
  %1673 = load ptr, ptr %1672, align 8, !tbaa !28
  %1674 = load i32, ptr %18, align 4, !tbaa !9
  %1675 = add i32 %1674, 2
  %1676 = zext i32 %1675 to i64
  %1677 = getelementptr inbounds %struct.cff_Value, ptr %1673, i64 %1676
  %1678 = getelementptr inbounds %struct.cff_Value, ptr %1677, i32 0, i32 1
  %1679 = load double, ptr %1678, align 8, !tbaa !25
  %1680 = load ptr, ptr %11, align 8, !tbaa !5
  %1681 = getelementptr inbounds %struct.cff_Stack, ptr %1680, i32 0, i32 0
  %1682 = load ptr, ptr %1681, align 8, !tbaa !28
  %1683 = load i32, ptr %18, align 4, !tbaa !9
  %1684 = add i32 %1683, 3
  %1685 = zext i32 %1684 to i64
  %1686 = getelementptr inbounds %struct.cff_Value, ptr %1682, i64 %1685
  %1687 = getelementptr inbounds %struct.cff_Value, ptr %1686, i32 0, i32 1
  %1688 = load double, ptr %1687, align 8, !tbaa !25
  call void %1652(ptr noundef %1653, double noundef %1661, double noundef 0.000000e+00, double noundef %1670, double noundef %1679, double noundef 0.000000e+00, double noundef %1688)
  br label %1727

1689:                                             ; preds = %1646
  %1690 = load ptr, ptr %24, align 8, !tbaa !5
  %1691 = load ptr, ptr %12, align 8, !tbaa !5
  %1692 = load ptr, ptr %11, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.cff_Stack, ptr %1692, i32 0, i32 0
  %1694 = load ptr, ptr %1693, align 8, !tbaa !28
  %1695 = load i32, ptr %18, align 4, !tbaa !9
  %1696 = zext i32 %1695 to i64
  %1697 = getelementptr inbounds %struct.cff_Value, ptr %1694, i64 %1696
  %1698 = getelementptr inbounds %struct.cff_Value, ptr %1697, i32 0, i32 1
  %1699 = load double, ptr %1698, align 8, !tbaa !25
  %1700 = load ptr, ptr %11, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.cff_Stack, ptr %1700, i32 0, i32 0
  %1702 = load ptr, ptr %1701, align 8, !tbaa !28
  %1703 = load i32, ptr %18, align 4, !tbaa !9
  %1704 = add i32 %1703, 1
  %1705 = zext i32 %1704 to i64
  %1706 = getelementptr inbounds %struct.cff_Value, ptr %1702, i64 %1705
  %1707 = getelementptr inbounds %struct.cff_Value, ptr %1706, i32 0, i32 1
  %1708 = load double, ptr %1707, align 8, !tbaa !25
  %1709 = load ptr, ptr %11, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.cff_Stack, ptr %1709, i32 0, i32 0
  %1711 = load ptr, ptr %1710, align 8, !tbaa !28
  %1712 = load i32, ptr %18, align 4, !tbaa !9
  %1713 = add i32 %1712, 2
  %1714 = zext i32 %1713 to i64
  %1715 = getelementptr inbounds %struct.cff_Value, ptr %1711, i64 %1714
  %1716 = getelementptr inbounds %struct.cff_Value, ptr %1715, i32 0, i32 1
  %1717 = load double, ptr %1716, align 8, !tbaa !25
  %1718 = load ptr, ptr %11, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.cff_Stack, ptr %1718, i32 0, i32 0
  %1720 = load ptr, ptr %1719, align 8, !tbaa !28
  %1721 = load i32, ptr %18, align 4, !tbaa !9
  %1722 = add i32 %1721, 3
  %1723 = zext i32 %1722 to i64
  %1724 = getelementptr inbounds %struct.cff_Value, ptr %1720, i64 %1723
  %1725 = getelementptr inbounds %struct.cff_Value, ptr %1724, i32 0, i32 1
  %1726 = load double, ptr %1725, align 8, !tbaa !25
  call void %1690(ptr noundef %1691, double noundef 0.000000e+00, double noundef %1699, double noundef %1708, double noundef %1717, double noundef %1726, double noundef 0.000000e+00)
  br label %1727

1727:                                             ; preds = %1689, %1651
  br label %1728

1728:                                             ; preds = %1727
  %1729 = load i32, ptr %18, align 4, !tbaa !9
  %1730 = add i32 %1729, 4
  store i32 %1730, ptr %18, align 4, !tbaa !9
  br label %1641, !llvm.loop !57

1731:                                             ; preds = %1641
  %1732 = load ptr, ptr %11, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.cff_Stack, ptr %1732, i32 0, i32 2
  %1734 = load i32, ptr %1733, align 8, !tbaa !26
  %1735 = urem i32 %1734, 8
  %1736 = icmp eq i32 %1735, 5
  br i1 %1736, label %1737, label %1795

1737:                                             ; preds = %1731
  %1738 = load ptr, ptr %24, align 8, !tbaa !5
  %1739 = load ptr, ptr %12, align 8, !tbaa !5
  %1740 = load ptr, ptr %11, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.cff_Stack, ptr %1740, i32 0, i32 0
  %1742 = load ptr, ptr %1741, align 8, !tbaa !28
  %1743 = load ptr, ptr %11, align 8, !tbaa !5
  %1744 = getelementptr inbounds %struct.cff_Stack, ptr %1743, i32 0, i32 2
  %1745 = load i32, ptr %1744, align 8, !tbaa !26
  %1746 = sub i32 %1745, 5
  %1747 = zext i32 %1746 to i64
  %1748 = getelementptr inbounds %struct.cff_Value, ptr %1742, i64 %1747
  %1749 = getelementptr inbounds %struct.cff_Value, ptr %1748, i32 0, i32 1
  %1750 = load double, ptr %1749, align 8, !tbaa !25
  %1751 = load ptr, ptr %11, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.cff_Stack, ptr %1751, i32 0, i32 0
  %1753 = load ptr, ptr %1752, align 8, !tbaa !28
  %1754 = load ptr, ptr %11, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.cff_Stack, ptr %1754, i32 0, i32 2
  %1756 = load i32, ptr %1755, align 8, !tbaa !26
  %1757 = sub i32 %1756, 4
  %1758 = zext i32 %1757 to i64
  %1759 = getelementptr inbounds %struct.cff_Value, ptr %1753, i64 %1758
  %1760 = getelementptr inbounds %struct.cff_Value, ptr %1759, i32 0, i32 1
  %1761 = load double, ptr %1760, align 8, !tbaa !25
  %1762 = load ptr, ptr %11, align 8, !tbaa !5
  %1763 = getelementptr inbounds %struct.cff_Stack, ptr %1762, i32 0, i32 0
  %1764 = load ptr, ptr %1763, align 8, !tbaa !28
  %1765 = load ptr, ptr %11, align 8, !tbaa !5
  %1766 = getelementptr inbounds %struct.cff_Stack, ptr %1765, i32 0, i32 2
  %1767 = load i32, ptr %1766, align 8, !tbaa !26
  %1768 = sub i32 %1767, 3
  %1769 = zext i32 %1768 to i64
  %1770 = getelementptr inbounds %struct.cff_Value, ptr %1764, i64 %1769
  %1771 = getelementptr inbounds %struct.cff_Value, ptr %1770, i32 0, i32 1
  %1772 = load double, ptr %1771, align 8, !tbaa !25
  %1773 = load ptr, ptr %11, align 8, !tbaa !5
  %1774 = getelementptr inbounds %struct.cff_Stack, ptr %1773, i32 0, i32 0
  %1775 = load ptr, ptr %1774, align 8, !tbaa !28
  %1776 = load ptr, ptr %11, align 8, !tbaa !5
  %1777 = getelementptr inbounds %struct.cff_Stack, ptr %1776, i32 0, i32 2
  %1778 = load i32, ptr %1777, align 8, !tbaa !26
  %1779 = sub i32 %1778, 1
  %1780 = zext i32 %1779 to i64
  %1781 = getelementptr inbounds %struct.cff_Value, ptr %1775, i64 %1780
  %1782 = getelementptr inbounds %struct.cff_Value, ptr %1781, i32 0, i32 1
  %1783 = load double, ptr %1782, align 8, !tbaa !25
  %1784 = load ptr, ptr %11, align 8, !tbaa !5
  %1785 = getelementptr inbounds %struct.cff_Stack, ptr %1784, i32 0, i32 0
  %1786 = load ptr, ptr %1785, align 8, !tbaa !28
  %1787 = load ptr, ptr %11, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.cff_Stack, ptr %1787, i32 0, i32 2
  %1789 = load i32, ptr %1788, align 8, !tbaa !26
  %1790 = sub i32 %1789, 2
  %1791 = zext i32 %1790 to i64
  %1792 = getelementptr inbounds %struct.cff_Value, ptr %1786, i64 %1791
  %1793 = getelementptr inbounds %struct.cff_Value, ptr %1792, i32 0, i32 1
  %1794 = load double, ptr %1793, align 8, !tbaa !25
  call void %1738(ptr noundef %1739, double noundef %1750, double noundef 0.000000e+00, double noundef %1761, double noundef %1772, double noundef %1783, double noundef %1794)
  br label %1795

1795:                                             ; preds = %1737, %1731
  %1796 = load ptr, ptr %11, align 8, !tbaa !5
  %1797 = getelementptr inbounds %struct.cff_Stack, ptr %1796, i32 0, i32 2
  %1798 = load i32, ptr %1797, align 8, !tbaa !26
  %1799 = urem i32 %1798, 8
  %1800 = icmp eq i32 %1799, 1
  br i1 %1800, label %1801, label %1859

1801:                                             ; preds = %1795
  %1802 = load ptr, ptr %24, align 8, !tbaa !5
  %1803 = load ptr, ptr %12, align 8, !tbaa !5
  %1804 = load ptr, ptr %11, align 8, !tbaa !5
  %1805 = getelementptr inbounds %struct.cff_Stack, ptr %1804, i32 0, i32 0
  %1806 = load ptr, ptr %1805, align 8, !tbaa !28
  %1807 = load ptr, ptr %11, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.cff_Stack, ptr %1807, i32 0, i32 2
  %1809 = load i32, ptr %1808, align 8, !tbaa !26
  %1810 = sub i32 %1809, 5
  %1811 = zext i32 %1810 to i64
  %1812 = getelementptr inbounds %struct.cff_Value, ptr %1806, i64 %1811
  %1813 = getelementptr inbounds %struct.cff_Value, ptr %1812, i32 0, i32 1
  %1814 = load double, ptr %1813, align 8, !tbaa !25
  %1815 = load ptr, ptr %11, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.cff_Stack, ptr %1815, i32 0, i32 0
  %1817 = load ptr, ptr %1816, align 8, !tbaa !28
  %1818 = load ptr, ptr %11, align 8, !tbaa !5
  %1819 = getelementptr inbounds %struct.cff_Stack, ptr %1818, i32 0, i32 2
  %1820 = load i32, ptr %1819, align 8, !tbaa !26
  %1821 = sub i32 %1820, 4
  %1822 = zext i32 %1821 to i64
  %1823 = getelementptr inbounds %struct.cff_Value, ptr %1817, i64 %1822
  %1824 = getelementptr inbounds %struct.cff_Value, ptr %1823, i32 0, i32 1
  %1825 = load double, ptr %1824, align 8, !tbaa !25
  %1826 = load ptr, ptr %11, align 8, !tbaa !5
  %1827 = getelementptr inbounds %struct.cff_Stack, ptr %1826, i32 0, i32 0
  %1828 = load ptr, ptr %1827, align 8, !tbaa !28
  %1829 = load ptr, ptr %11, align 8, !tbaa !5
  %1830 = getelementptr inbounds %struct.cff_Stack, ptr %1829, i32 0, i32 2
  %1831 = load i32, ptr %1830, align 8, !tbaa !26
  %1832 = sub i32 %1831, 3
  %1833 = zext i32 %1832 to i64
  %1834 = getelementptr inbounds %struct.cff_Value, ptr %1828, i64 %1833
  %1835 = getelementptr inbounds %struct.cff_Value, ptr %1834, i32 0, i32 1
  %1836 = load double, ptr %1835, align 8, !tbaa !25
  %1837 = load ptr, ptr %11, align 8, !tbaa !5
  %1838 = getelementptr inbounds %struct.cff_Stack, ptr %1837, i32 0, i32 0
  %1839 = load ptr, ptr %1838, align 8, !tbaa !28
  %1840 = load ptr, ptr %11, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.cff_Stack, ptr %1840, i32 0, i32 2
  %1842 = load i32, ptr %1841, align 8, !tbaa !26
  %1843 = sub i32 %1842, 2
  %1844 = zext i32 %1843 to i64
  %1845 = getelementptr inbounds %struct.cff_Value, ptr %1839, i64 %1844
  %1846 = getelementptr inbounds %struct.cff_Value, ptr %1845, i32 0, i32 1
  %1847 = load double, ptr %1846, align 8, !tbaa !25
  %1848 = load ptr, ptr %11, align 8, !tbaa !5
  %1849 = getelementptr inbounds %struct.cff_Stack, ptr %1848, i32 0, i32 0
  %1850 = load ptr, ptr %1849, align 8, !tbaa !28
  %1851 = load ptr, ptr %11, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.cff_Stack, ptr %1851, i32 0, i32 2
  %1853 = load i32, ptr %1852, align 8, !tbaa !26
  %1854 = sub i32 %1853, 1
  %1855 = zext i32 %1854 to i64
  %1856 = getelementptr inbounds %struct.cff_Value, ptr %1850, i64 %1855
  %1857 = getelementptr inbounds %struct.cff_Value, ptr %1856, i32 0, i32 1
  %1858 = load double, ptr %1857, align 8, !tbaa !25
  call void %1802(ptr noundef %1803, double noundef 0.000000e+00, double noundef %1814, double noundef %1825, double noundef %1836, double noundef %1847, double noundef %1858)
  br label %1859

1859:                                             ; preds = %1801, %1795
  %1860 = load ptr, ptr %11, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.cff_Stack, ptr %1860, i32 0, i32 2
  store i32 0, ptr %1861, align 8, !tbaa !26
  br label %3515

1862:                                             ; preds = %142
  %1863 = load ptr, ptr %11, align 8, !tbaa !5
  %1864 = getelementptr inbounds %struct.cff_Stack, ptr %1863, i32 0, i32 2
  %1865 = load i32, ptr %1864, align 8, !tbaa !26
  %1866 = icmp ult i32 %1865, 7
  br i1 %1866, label %1867, label %1878

1867:                                             ; preds = %1862
  %1868 = load ptr, ptr %13, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.otfcc_Options, ptr %1868, i32 0, i32 24
  %1870 = load ptr, ptr %1869, align 8, !tbaa !40
  %1871 = getelementptr inbounds %struct.otfcc_ILogger, ptr %1870, i32 0, i32 6
  %1872 = load ptr, ptr %1871, align 8, !tbaa !42
  %1873 = load ptr, ptr %13, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.otfcc_Options, ptr %1873, i32 0, i32 24
  %1875 = load ptr, ptr %1874, align 8, !tbaa !40
  %1876 = call ptr @sdsempty()
  %1877 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1876, ptr noundef @.str, ptr noundef @.str.4, i32 noundef 3106)
  call void %1872(ptr noundef %1875, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1877)
  br label %3515

1878:                                             ; preds = %1862
  %1879 = load ptr, ptr %24, align 8, !tbaa !5
  %1880 = load ptr, ptr %12, align 8, !tbaa !5
  %1881 = load ptr, ptr %11, align 8, !tbaa !5
  %1882 = getelementptr inbounds %struct.cff_Stack, ptr %1881, i32 0, i32 0
  %1883 = load ptr, ptr %1882, align 8, !tbaa !28
  %1884 = getelementptr inbounds %struct.cff_Value, ptr %1883, i64 0
  %1885 = getelementptr inbounds %struct.cff_Value, ptr %1884, i32 0, i32 1
  %1886 = load double, ptr %1885, align 8, !tbaa !25
  %1887 = load ptr, ptr %11, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.cff_Stack, ptr %1887, i32 0, i32 0
  %1889 = load ptr, ptr %1888, align 8, !tbaa !28
  %1890 = getelementptr inbounds %struct.cff_Value, ptr %1889, i64 1
  %1891 = getelementptr inbounds %struct.cff_Value, ptr %1890, i32 0, i32 1
  %1892 = load double, ptr %1891, align 8, !tbaa !25
  %1893 = load ptr, ptr %11, align 8, !tbaa !5
  %1894 = getelementptr inbounds %struct.cff_Stack, ptr %1893, i32 0, i32 0
  %1895 = load ptr, ptr %1894, align 8, !tbaa !28
  %1896 = getelementptr inbounds %struct.cff_Value, ptr %1895, i64 2
  %1897 = getelementptr inbounds %struct.cff_Value, ptr %1896, i32 0, i32 1
  %1898 = load double, ptr %1897, align 8, !tbaa !25
  %1899 = load ptr, ptr %11, align 8, !tbaa !5
  %1900 = getelementptr inbounds %struct.cff_Stack, ptr %1899, i32 0, i32 0
  %1901 = load ptr, ptr %1900, align 8, !tbaa !28
  %1902 = getelementptr inbounds %struct.cff_Value, ptr %1901, i64 3
  %1903 = getelementptr inbounds %struct.cff_Value, ptr %1902, i32 0, i32 1
  %1904 = load double, ptr %1903, align 8, !tbaa !25
  call void %1879(ptr noundef %1880, double noundef %1886, double noundef 0.000000e+00, double noundef %1892, double noundef %1898, double noundef %1904, double noundef 0.000000e+00)
  %1905 = load ptr, ptr %24, align 8, !tbaa !5
  %1906 = load ptr, ptr %12, align 8, !tbaa !5
  %1907 = load ptr, ptr %11, align 8, !tbaa !5
  %1908 = getelementptr inbounds %struct.cff_Stack, ptr %1907, i32 0, i32 0
  %1909 = load ptr, ptr %1908, align 8, !tbaa !28
  %1910 = getelementptr inbounds %struct.cff_Value, ptr %1909, i64 4
  %1911 = getelementptr inbounds %struct.cff_Value, ptr %1910, i32 0, i32 1
  %1912 = load double, ptr %1911, align 8, !tbaa !25
  %1913 = load ptr, ptr %11, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.cff_Stack, ptr %1913, i32 0, i32 0
  %1915 = load ptr, ptr %1914, align 8, !tbaa !28
  %1916 = getelementptr inbounds %struct.cff_Value, ptr %1915, i64 5
  %1917 = getelementptr inbounds %struct.cff_Value, ptr %1916, i32 0, i32 1
  %1918 = load double, ptr %1917, align 8, !tbaa !25
  %1919 = load ptr, ptr %11, align 8, !tbaa !5
  %1920 = getelementptr inbounds %struct.cff_Stack, ptr %1919, i32 0, i32 0
  %1921 = load ptr, ptr %1920, align 8, !tbaa !28
  %1922 = getelementptr inbounds %struct.cff_Value, ptr %1921, i64 2
  %1923 = getelementptr inbounds %struct.cff_Value, ptr %1922, i32 0, i32 1
  %1924 = load double, ptr %1923, align 8, !tbaa !25
  %1925 = fneg double %1924
  %1926 = load ptr, ptr %11, align 8, !tbaa !5
  %1927 = getelementptr inbounds %struct.cff_Stack, ptr %1926, i32 0, i32 0
  %1928 = load ptr, ptr %1927, align 8, !tbaa !28
  %1929 = getelementptr inbounds %struct.cff_Value, ptr %1928, i64 6
  %1930 = getelementptr inbounds %struct.cff_Value, ptr %1929, i32 0, i32 1
  %1931 = load double, ptr %1930, align 8, !tbaa !25
  call void %1905(ptr noundef %1906, double noundef %1912, double noundef 0.000000e+00, double noundef %1918, double noundef %1925, double noundef %1931, double noundef 0.000000e+00)
  %1932 = load ptr, ptr %11, align 8, !tbaa !5
  %1933 = getelementptr inbounds %struct.cff_Stack, ptr %1932, i32 0, i32 2
  store i32 0, ptr %1933, align 8, !tbaa !26
  br label %3515

1934:                                             ; preds = %142
  %1935 = load ptr, ptr %11, align 8, !tbaa !5
  %1936 = getelementptr inbounds %struct.cff_Stack, ptr %1935, i32 0, i32 2
  %1937 = load i32, ptr %1936, align 8, !tbaa !26
  %1938 = icmp ult i32 %1937, 12
  br i1 %1938, label %1939, label %1950

1939:                                             ; preds = %1934
  %1940 = load ptr, ptr %13, align 8, !tbaa !5
  %1941 = getelementptr inbounds %struct.otfcc_Options, ptr %1940, i32 0, i32 24
  %1942 = load ptr, ptr %1941, align 8, !tbaa !40
  %1943 = getelementptr inbounds %struct.otfcc_ILogger, ptr %1942, i32 0, i32 6
  %1944 = load ptr, ptr %1943, align 8, !tbaa !42
  %1945 = load ptr, ptr %13, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.otfcc_Options, ptr %1945, i32 0, i32 24
  %1947 = load ptr, ptr %1946, align 8, !tbaa !40
  %1948 = call ptr @sdsempty()
  %1949 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1948, ptr noundef @.str, ptr noundef @.str.5, i32 noundef 3107)
  call void %1944(ptr noundef %1947, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1949)
  br label %3515

1950:                                             ; preds = %1934
  %1951 = load ptr, ptr %24, align 8, !tbaa !5
  %1952 = load ptr, ptr %12, align 8, !tbaa !5
  %1953 = load ptr, ptr %11, align 8, !tbaa !5
  %1954 = getelementptr inbounds %struct.cff_Stack, ptr %1953, i32 0, i32 0
  %1955 = load ptr, ptr %1954, align 8, !tbaa !28
  %1956 = getelementptr inbounds %struct.cff_Value, ptr %1955, i64 0
  %1957 = getelementptr inbounds %struct.cff_Value, ptr %1956, i32 0, i32 1
  %1958 = load double, ptr %1957, align 8, !tbaa !25
  %1959 = load ptr, ptr %11, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.cff_Stack, ptr %1959, i32 0, i32 0
  %1961 = load ptr, ptr %1960, align 8, !tbaa !28
  %1962 = getelementptr inbounds %struct.cff_Value, ptr %1961, i64 1
  %1963 = getelementptr inbounds %struct.cff_Value, ptr %1962, i32 0, i32 1
  %1964 = load double, ptr %1963, align 8, !tbaa !25
  %1965 = load ptr, ptr %11, align 8, !tbaa !5
  %1966 = getelementptr inbounds %struct.cff_Stack, ptr %1965, i32 0, i32 0
  %1967 = load ptr, ptr %1966, align 8, !tbaa !28
  %1968 = getelementptr inbounds %struct.cff_Value, ptr %1967, i64 2
  %1969 = getelementptr inbounds %struct.cff_Value, ptr %1968, i32 0, i32 1
  %1970 = load double, ptr %1969, align 8, !tbaa !25
  %1971 = load ptr, ptr %11, align 8, !tbaa !5
  %1972 = getelementptr inbounds %struct.cff_Stack, ptr %1971, i32 0, i32 0
  %1973 = load ptr, ptr %1972, align 8, !tbaa !28
  %1974 = getelementptr inbounds %struct.cff_Value, ptr %1973, i64 3
  %1975 = getelementptr inbounds %struct.cff_Value, ptr %1974, i32 0, i32 1
  %1976 = load double, ptr %1975, align 8, !tbaa !25
  %1977 = load ptr, ptr %11, align 8, !tbaa !5
  %1978 = getelementptr inbounds %struct.cff_Stack, ptr %1977, i32 0, i32 0
  %1979 = load ptr, ptr %1978, align 8, !tbaa !28
  %1980 = getelementptr inbounds %struct.cff_Value, ptr %1979, i64 4
  %1981 = getelementptr inbounds %struct.cff_Value, ptr %1980, i32 0, i32 1
  %1982 = load double, ptr %1981, align 8, !tbaa !25
  %1983 = load ptr, ptr %11, align 8, !tbaa !5
  %1984 = getelementptr inbounds %struct.cff_Stack, ptr %1983, i32 0, i32 0
  %1985 = load ptr, ptr %1984, align 8, !tbaa !28
  %1986 = getelementptr inbounds %struct.cff_Value, ptr %1985, i64 5
  %1987 = getelementptr inbounds %struct.cff_Value, ptr %1986, i32 0, i32 1
  %1988 = load double, ptr %1987, align 8, !tbaa !25
  call void %1951(ptr noundef %1952, double noundef %1958, double noundef %1964, double noundef %1970, double noundef %1976, double noundef %1982, double noundef %1988)
  %1989 = load ptr, ptr %24, align 8, !tbaa !5
  %1990 = load ptr, ptr %12, align 8, !tbaa !5
  %1991 = load ptr, ptr %11, align 8, !tbaa !5
  %1992 = getelementptr inbounds %struct.cff_Stack, ptr %1991, i32 0, i32 0
  %1993 = load ptr, ptr %1992, align 8, !tbaa !28
  %1994 = getelementptr inbounds %struct.cff_Value, ptr %1993, i64 6
  %1995 = getelementptr inbounds %struct.cff_Value, ptr %1994, i32 0, i32 1
  %1996 = load double, ptr %1995, align 8, !tbaa !25
  %1997 = load ptr, ptr %11, align 8, !tbaa !5
  %1998 = getelementptr inbounds %struct.cff_Stack, ptr %1997, i32 0, i32 0
  %1999 = load ptr, ptr %1998, align 8, !tbaa !28
  %2000 = getelementptr inbounds %struct.cff_Value, ptr %1999, i64 7
  %2001 = getelementptr inbounds %struct.cff_Value, ptr %2000, i32 0, i32 1
  %2002 = load double, ptr %2001, align 8, !tbaa !25
  %2003 = load ptr, ptr %11, align 8, !tbaa !5
  %2004 = getelementptr inbounds %struct.cff_Stack, ptr %2003, i32 0, i32 0
  %2005 = load ptr, ptr %2004, align 8, !tbaa !28
  %2006 = getelementptr inbounds %struct.cff_Value, ptr %2005, i64 8
  %2007 = getelementptr inbounds %struct.cff_Value, ptr %2006, i32 0, i32 1
  %2008 = load double, ptr %2007, align 8, !tbaa !25
  %2009 = load ptr, ptr %11, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.cff_Stack, ptr %2009, i32 0, i32 0
  %2011 = load ptr, ptr %2010, align 8, !tbaa !28
  %2012 = getelementptr inbounds %struct.cff_Value, ptr %2011, i64 9
  %2013 = getelementptr inbounds %struct.cff_Value, ptr %2012, i32 0, i32 1
  %2014 = load double, ptr %2013, align 8, !tbaa !25
  %2015 = load ptr, ptr %11, align 8, !tbaa !5
  %2016 = getelementptr inbounds %struct.cff_Stack, ptr %2015, i32 0, i32 0
  %2017 = load ptr, ptr %2016, align 8, !tbaa !28
  %2018 = getelementptr inbounds %struct.cff_Value, ptr %2017, i64 10
  %2019 = getelementptr inbounds %struct.cff_Value, ptr %2018, i32 0, i32 1
  %2020 = load double, ptr %2019, align 8, !tbaa !25
  %2021 = load ptr, ptr %11, align 8, !tbaa !5
  %2022 = getelementptr inbounds %struct.cff_Stack, ptr %2021, i32 0, i32 0
  %2023 = load ptr, ptr %2022, align 8, !tbaa !28
  %2024 = getelementptr inbounds %struct.cff_Value, ptr %2023, i64 11
  %2025 = getelementptr inbounds %struct.cff_Value, ptr %2024, i32 0, i32 1
  %2026 = load double, ptr %2025, align 8, !tbaa !25
  call void %1989(ptr noundef %1990, double noundef %1996, double noundef %2002, double noundef %2008, double noundef %2014, double noundef %2020, double noundef %2026)
  %2027 = load ptr, ptr %11, align 8, !tbaa !5
  %2028 = getelementptr inbounds %struct.cff_Stack, ptr %2027, i32 0, i32 2
  store i32 0, ptr %2028, align 8, !tbaa !26
  br label %3515

2029:                                             ; preds = %142
  %2030 = load ptr, ptr %11, align 8, !tbaa !5
  %2031 = getelementptr inbounds %struct.cff_Stack, ptr %2030, i32 0, i32 2
  %2032 = load i32, ptr %2031, align 8, !tbaa !26
  %2033 = icmp ult i32 %2032, 9
  br i1 %2033, label %2034, label %2045

2034:                                             ; preds = %2029
  %2035 = load ptr, ptr %13, align 8, !tbaa !5
  %2036 = getelementptr inbounds %struct.otfcc_Options, ptr %2035, i32 0, i32 24
  %2037 = load ptr, ptr %2036, align 8, !tbaa !40
  %2038 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2037, i32 0, i32 6
  %2039 = load ptr, ptr %2038, align 8, !tbaa !42
  %2040 = load ptr, ptr %13, align 8, !tbaa !5
  %2041 = getelementptr inbounds %struct.otfcc_Options, ptr %2040, i32 0, i32 24
  %2042 = load ptr, ptr %2041, align 8, !tbaa !40
  %2043 = call ptr @sdsempty()
  %2044 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2043, ptr noundef @.str, ptr noundef @.str.6, i32 noundef 3108)
  call void %2039(ptr noundef %2042, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2044)
  br label %3515

2045:                                             ; preds = %2029
  %2046 = load ptr, ptr %24, align 8, !tbaa !5
  %2047 = load ptr, ptr %12, align 8, !tbaa !5
  %2048 = load ptr, ptr %11, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.cff_Stack, ptr %2048, i32 0, i32 0
  %2050 = load ptr, ptr %2049, align 8, !tbaa !28
  %2051 = getelementptr inbounds %struct.cff_Value, ptr %2050, i64 0
  %2052 = getelementptr inbounds %struct.cff_Value, ptr %2051, i32 0, i32 1
  %2053 = load double, ptr %2052, align 8, !tbaa !25
  %2054 = load ptr, ptr %11, align 8, !tbaa !5
  %2055 = getelementptr inbounds %struct.cff_Stack, ptr %2054, i32 0, i32 0
  %2056 = load ptr, ptr %2055, align 8, !tbaa !28
  %2057 = getelementptr inbounds %struct.cff_Value, ptr %2056, i64 1
  %2058 = getelementptr inbounds %struct.cff_Value, ptr %2057, i32 0, i32 1
  %2059 = load double, ptr %2058, align 8, !tbaa !25
  %2060 = load ptr, ptr %11, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.cff_Stack, ptr %2060, i32 0, i32 0
  %2062 = load ptr, ptr %2061, align 8, !tbaa !28
  %2063 = getelementptr inbounds %struct.cff_Value, ptr %2062, i64 2
  %2064 = getelementptr inbounds %struct.cff_Value, ptr %2063, i32 0, i32 1
  %2065 = load double, ptr %2064, align 8, !tbaa !25
  %2066 = load ptr, ptr %11, align 8, !tbaa !5
  %2067 = getelementptr inbounds %struct.cff_Stack, ptr %2066, i32 0, i32 0
  %2068 = load ptr, ptr %2067, align 8, !tbaa !28
  %2069 = getelementptr inbounds %struct.cff_Value, ptr %2068, i64 3
  %2070 = getelementptr inbounds %struct.cff_Value, ptr %2069, i32 0, i32 1
  %2071 = load double, ptr %2070, align 8, !tbaa !25
  %2072 = load ptr, ptr %11, align 8, !tbaa !5
  %2073 = getelementptr inbounds %struct.cff_Stack, ptr %2072, i32 0, i32 0
  %2074 = load ptr, ptr %2073, align 8, !tbaa !28
  %2075 = getelementptr inbounds %struct.cff_Value, ptr %2074, i64 4
  %2076 = getelementptr inbounds %struct.cff_Value, ptr %2075, i32 0, i32 1
  %2077 = load double, ptr %2076, align 8, !tbaa !25
  call void %2046(ptr noundef %2047, double noundef %2053, double noundef %2059, double noundef %2065, double noundef %2071, double noundef %2077, double noundef 0.000000e+00)
  %2078 = load ptr, ptr %24, align 8, !tbaa !5
  %2079 = load ptr, ptr %12, align 8, !tbaa !5
  %2080 = load ptr, ptr %11, align 8, !tbaa !5
  %2081 = getelementptr inbounds %struct.cff_Stack, ptr %2080, i32 0, i32 0
  %2082 = load ptr, ptr %2081, align 8, !tbaa !28
  %2083 = getelementptr inbounds %struct.cff_Value, ptr %2082, i64 5
  %2084 = getelementptr inbounds %struct.cff_Value, ptr %2083, i32 0, i32 1
  %2085 = load double, ptr %2084, align 8, !tbaa !25
  %2086 = load ptr, ptr %11, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.cff_Stack, ptr %2086, i32 0, i32 0
  %2088 = load ptr, ptr %2087, align 8, !tbaa !28
  %2089 = getelementptr inbounds %struct.cff_Value, ptr %2088, i64 6
  %2090 = getelementptr inbounds %struct.cff_Value, ptr %2089, i32 0, i32 1
  %2091 = load double, ptr %2090, align 8, !tbaa !25
  %2092 = load ptr, ptr %11, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.cff_Stack, ptr %2092, i32 0, i32 0
  %2094 = load ptr, ptr %2093, align 8, !tbaa !28
  %2095 = getelementptr inbounds %struct.cff_Value, ptr %2094, i64 7
  %2096 = getelementptr inbounds %struct.cff_Value, ptr %2095, i32 0, i32 1
  %2097 = load double, ptr %2096, align 8, !tbaa !25
  %2098 = load ptr, ptr %11, align 8, !tbaa !5
  %2099 = getelementptr inbounds %struct.cff_Stack, ptr %2098, i32 0, i32 0
  %2100 = load ptr, ptr %2099, align 8, !tbaa !28
  %2101 = getelementptr inbounds %struct.cff_Value, ptr %2100, i64 8
  %2102 = getelementptr inbounds %struct.cff_Value, ptr %2101, i32 0, i32 1
  %2103 = load double, ptr %2102, align 8, !tbaa !25
  %2104 = load ptr, ptr %11, align 8, !tbaa !5
  %2105 = getelementptr inbounds %struct.cff_Stack, ptr %2104, i32 0, i32 0
  %2106 = load ptr, ptr %2105, align 8, !tbaa !28
  %2107 = getelementptr inbounds %struct.cff_Value, ptr %2106, i64 1
  %2108 = getelementptr inbounds %struct.cff_Value, ptr %2107, i32 0, i32 1
  %2109 = load double, ptr %2108, align 8, !tbaa !25
  %2110 = load ptr, ptr %11, align 8, !tbaa !5
  %2111 = getelementptr inbounds %struct.cff_Stack, ptr %2110, i32 0, i32 0
  %2112 = load ptr, ptr %2111, align 8, !tbaa !28
  %2113 = getelementptr inbounds %struct.cff_Value, ptr %2112, i64 3
  %2114 = getelementptr inbounds %struct.cff_Value, ptr %2113, i32 0, i32 1
  %2115 = load double, ptr %2114, align 8, !tbaa !25
  %2116 = fadd double %2109, %2115
  %2117 = load ptr, ptr %11, align 8, !tbaa !5
  %2118 = getelementptr inbounds %struct.cff_Stack, ptr %2117, i32 0, i32 0
  %2119 = load ptr, ptr %2118, align 8, !tbaa !28
  %2120 = getelementptr inbounds %struct.cff_Value, ptr %2119, i64 7
  %2121 = getelementptr inbounds %struct.cff_Value, ptr %2120, i32 0, i32 1
  %2122 = load double, ptr %2121, align 8, !tbaa !25
  %2123 = fadd double %2116, %2122
  %2124 = fneg double %2123
  call void %2078(ptr noundef %2079, double noundef %2085, double noundef 0.000000e+00, double noundef %2091, double noundef %2097, double noundef %2103, double noundef %2124)
  %2125 = load ptr, ptr %11, align 8, !tbaa !5
  %2126 = getelementptr inbounds %struct.cff_Stack, ptr %2125, i32 0, i32 2
  store i32 0, ptr %2126, align 8, !tbaa !26
  br label %3515

2127:                                             ; preds = %142
  %2128 = load ptr, ptr %11, align 8, !tbaa !5
  %2129 = getelementptr inbounds %struct.cff_Stack, ptr %2128, i32 0, i32 2
  %2130 = load i32, ptr %2129, align 8, !tbaa !26
  %2131 = icmp ult i32 %2130, 11
  br i1 %2131, label %2132, label %2143

2132:                                             ; preds = %2127
  %2133 = load ptr, ptr %13, align 8, !tbaa !5
  %2134 = getelementptr inbounds %struct.otfcc_Options, ptr %2133, i32 0, i32 24
  %2135 = load ptr, ptr %2134, align 8, !tbaa !40
  %2136 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2135, i32 0, i32 6
  %2137 = load ptr, ptr %2136, align 8, !tbaa !42
  %2138 = load ptr, ptr %13, align 8, !tbaa !5
  %2139 = getelementptr inbounds %struct.otfcc_Options, ptr %2138, i32 0, i32 24
  %2140 = load ptr, ptr %2139, align 8, !tbaa !40
  %2141 = call ptr @sdsempty()
  %2142 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2141, ptr noundef @.str, ptr noundef @.str.7, i32 noundef 3109)
  call void %2137(ptr noundef %2140, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2142)
  br label %3515

2143:                                             ; preds = %2127
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #7
  %2144 = load ptr, ptr %11, align 8, !tbaa !5
  %2145 = getelementptr inbounds %struct.cff_Stack, ptr %2144, i32 0, i32 0
  %2146 = load ptr, ptr %2145, align 8, !tbaa !28
  %2147 = getelementptr inbounds %struct.cff_Value, ptr %2146, i64 0
  %2148 = getelementptr inbounds %struct.cff_Value, ptr %2147, i32 0, i32 1
  %2149 = load double, ptr %2148, align 8, !tbaa !25
  %2150 = load ptr, ptr %11, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.cff_Stack, ptr %2150, i32 0, i32 0
  %2152 = load ptr, ptr %2151, align 8, !tbaa !28
  %2153 = getelementptr inbounds %struct.cff_Value, ptr %2152, i64 2
  %2154 = getelementptr inbounds %struct.cff_Value, ptr %2153, i32 0, i32 1
  %2155 = load double, ptr %2154, align 8, !tbaa !25
  %2156 = fadd double %2149, %2155
  %2157 = load ptr, ptr %11, align 8, !tbaa !5
  %2158 = getelementptr inbounds %struct.cff_Stack, ptr %2157, i32 0, i32 0
  %2159 = load ptr, ptr %2158, align 8, !tbaa !28
  %2160 = getelementptr inbounds %struct.cff_Value, ptr %2159, i64 4
  %2161 = getelementptr inbounds %struct.cff_Value, ptr %2160, i32 0, i32 1
  %2162 = load double, ptr %2161, align 8, !tbaa !25
  %2163 = fadd double %2156, %2162
  %2164 = load ptr, ptr %11, align 8, !tbaa !5
  %2165 = getelementptr inbounds %struct.cff_Stack, ptr %2164, i32 0, i32 0
  %2166 = load ptr, ptr %2165, align 8, !tbaa !28
  %2167 = getelementptr inbounds %struct.cff_Value, ptr %2166, i64 6
  %2168 = getelementptr inbounds %struct.cff_Value, ptr %2167, i32 0, i32 1
  %2169 = load double, ptr %2168, align 8, !tbaa !25
  %2170 = fadd double %2163, %2169
  %2171 = load ptr, ptr %11, align 8, !tbaa !5
  %2172 = getelementptr inbounds %struct.cff_Stack, ptr %2171, i32 0, i32 0
  %2173 = load ptr, ptr %2172, align 8, !tbaa !28
  %2174 = getelementptr inbounds %struct.cff_Value, ptr %2173, i64 8
  %2175 = getelementptr inbounds %struct.cff_Value, ptr %2174, i32 0, i32 1
  %2176 = load double, ptr %2175, align 8, !tbaa !25
  %2177 = fadd double %2170, %2176
  store double %2177, ptr %41, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #7
  %2178 = load ptr, ptr %11, align 8, !tbaa !5
  %2179 = getelementptr inbounds %struct.cff_Stack, ptr %2178, i32 0, i32 0
  %2180 = load ptr, ptr %2179, align 8, !tbaa !28
  %2181 = getelementptr inbounds %struct.cff_Value, ptr %2180, i64 1
  %2182 = getelementptr inbounds %struct.cff_Value, ptr %2181, i32 0, i32 1
  %2183 = load double, ptr %2182, align 8, !tbaa !25
  %2184 = load ptr, ptr %11, align 8, !tbaa !5
  %2185 = getelementptr inbounds %struct.cff_Stack, ptr %2184, i32 0, i32 0
  %2186 = load ptr, ptr %2185, align 8, !tbaa !28
  %2187 = getelementptr inbounds %struct.cff_Value, ptr %2186, i64 3
  %2188 = getelementptr inbounds %struct.cff_Value, ptr %2187, i32 0, i32 1
  %2189 = load double, ptr %2188, align 8, !tbaa !25
  %2190 = fadd double %2183, %2189
  %2191 = load ptr, ptr %11, align 8, !tbaa !5
  %2192 = getelementptr inbounds %struct.cff_Stack, ptr %2191, i32 0, i32 0
  %2193 = load ptr, ptr %2192, align 8, !tbaa !28
  %2194 = getelementptr inbounds %struct.cff_Value, ptr %2193, i64 5
  %2195 = getelementptr inbounds %struct.cff_Value, ptr %2194, i32 0, i32 1
  %2196 = load double, ptr %2195, align 8, !tbaa !25
  %2197 = fadd double %2190, %2196
  %2198 = load ptr, ptr %11, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.cff_Stack, ptr %2198, i32 0, i32 0
  %2200 = load ptr, ptr %2199, align 8, !tbaa !28
  %2201 = getelementptr inbounds %struct.cff_Value, ptr %2200, i64 7
  %2202 = getelementptr inbounds %struct.cff_Value, ptr %2201, i32 0, i32 1
  %2203 = load double, ptr %2202, align 8, !tbaa !25
  %2204 = fadd double %2197, %2203
  %2205 = load ptr, ptr %11, align 8, !tbaa !5
  %2206 = getelementptr inbounds %struct.cff_Stack, ptr %2205, i32 0, i32 0
  %2207 = load ptr, ptr %2206, align 8, !tbaa !28
  %2208 = getelementptr inbounds %struct.cff_Value, ptr %2207, i64 9
  %2209 = getelementptr inbounds %struct.cff_Value, ptr %2208, i32 0, i32 1
  %2210 = load double, ptr %2209, align 8, !tbaa !25
  %2211 = fadd double %2204, %2210
  store double %2211, ptr %42, align 8, !tbaa !30
  %2212 = load double, ptr %41, align 8, !tbaa !30
  %2213 = call double @llvm.fabs.f64(double %2212)
  %2214 = load double, ptr %42, align 8, !tbaa !30
  %2215 = call double @llvm.fabs.f64(double %2214)
  %2216 = fcmp ogt double %2213, %2215
  br i1 %2216, label %2217, label %2226

2217:                                             ; preds = %2143
  %2218 = load ptr, ptr %11, align 8, !tbaa !5
  %2219 = getelementptr inbounds %struct.cff_Stack, ptr %2218, i32 0, i32 0
  %2220 = load ptr, ptr %2219, align 8, !tbaa !28
  %2221 = getelementptr inbounds %struct.cff_Value, ptr %2220, i64 10
  %2222 = getelementptr inbounds %struct.cff_Value, ptr %2221, i32 0, i32 1
  %2223 = load double, ptr %2222, align 8, !tbaa !25
  store double %2223, ptr %41, align 8, !tbaa !30
  %2224 = load double, ptr %42, align 8, !tbaa !30
  %2225 = fneg double %2224
  store double %2225, ptr %42, align 8, !tbaa !30
  br label %2235

2226:                                             ; preds = %2143
  %2227 = load double, ptr %41, align 8, !tbaa !30
  %2228 = fneg double %2227
  store double %2228, ptr %41, align 8, !tbaa !30
  %2229 = load ptr, ptr %11, align 8, !tbaa !5
  %2230 = getelementptr inbounds %struct.cff_Stack, ptr %2229, i32 0, i32 0
  %2231 = load ptr, ptr %2230, align 8, !tbaa !28
  %2232 = getelementptr inbounds %struct.cff_Value, ptr %2231, i64 10
  %2233 = getelementptr inbounds %struct.cff_Value, ptr %2232, i32 0, i32 1
  %2234 = load double, ptr %2233, align 8, !tbaa !25
  store double %2234, ptr %42, align 8, !tbaa !30
  br label %2235

2235:                                             ; preds = %2226, %2217
  %2236 = load ptr, ptr %24, align 8, !tbaa !5
  %2237 = load ptr, ptr %12, align 8, !tbaa !5
  %2238 = load ptr, ptr %11, align 8, !tbaa !5
  %2239 = getelementptr inbounds %struct.cff_Stack, ptr %2238, i32 0, i32 0
  %2240 = load ptr, ptr %2239, align 8, !tbaa !28
  %2241 = getelementptr inbounds %struct.cff_Value, ptr %2240, i64 0
  %2242 = getelementptr inbounds %struct.cff_Value, ptr %2241, i32 0, i32 1
  %2243 = load double, ptr %2242, align 8, !tbaa !25
  %2244 = load ptr, ptr %11, align 8, !tbaa !5
  %2245 = getelementptr inbounds %struct.cff_Stack, ptr %2244, i32 0, i32 0
  %2246 = load ptr, ptr %2245, align 8, !tbaa !28
  %2247 = getelementptr inbounds %struct.cff_Value, ptr %2246, i64 1
  %2248 = getelementptr inbounds %struct.cff_Value, ptr %2247, i32 0, i32 1
  %2249 = load double, ptr %2248, align 8, !tbaa !25
  %2250 = load ptr, ptr %11, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.cff_Stack, ptr %2250, i32 0, i32 0
  %2252 = load ptr, ptr %2251, align 8, !tbaa !28
  %2253 = getelementptr inbounds %struct.cff_Value, ptr %2252, i64 2
  %2254 = getelementptr inbounds %struct.cff_Value, ptr %2253, i32 0, i32 1
  %2255 = load double, ptr %2254, align 8, !tbaa !25
  %2256 = load ptr, ptr %11, align 8, !tbaa !5
  %2257 = getelementptr inbounds %struct.cff_Stack, ptr %2256, i32 0, i32 0
  %2258 = load ptr, ptr %2257, align 8, !tbaa !28
  %2259 = getelementptr inbounds %struct.cff_Value, ptr %2258, i64 3
  %2260 = getelementptr inbounds %struct.cff_Value, ptr %2259, i32 0, i32 1
  %2261 = load double, ptr %2260, align 8, !tbaa !25
  %2262 = load ptr, ptr %11, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.cff_Stack, ptr %2262, i32 0, i32 0
  %2264 = load ptr, ptr %2263, align 8, !tbaa !28
  %2265 = getelementptr inbounds %struct.cff_Value, ptr %2264, i64 4
  %2266 = getelementptr inbounds %struct.cff_Value, ptr %2265, i32 0, i32 1
  %2267 = load double, ptr %2266, align 8, !tbaa !25
  %2268 = load ptr, ptr %11, align 8, !tbaa !5
  %2269 = getelementptr inbounds %struct.cff_Stack, ptr %2268, i32 0, i32 0
  %2270 = load ptr, ptr %2269, align 8, !tbaa !28
  %2271 = getelementptr inbounds %struct.cff_Value, ptr %2270, i64 5
  %2272 = getelementptr inbounds %struct.cff_Value, ptr %2271, i32 0, i32 1
  %2273 = load double, ptr %2272, align 8, !tbaa !25
  call void %2236(ptr noundef %2237, double noundef %2243, double noundef %2249, double noundef %2255, double noundef %2261, double noundef %2267, double noundef %2273)
  %2274 = load ptr, ptr %24, align 8, !tbaa !5
  %2275 = load ptr, ptr %12, align 8, !tbaa !5
  %2276 = load ptr, ptr %11, align 8, !tbaa !5
  %2277 = getelementptr inbounds %struct.cff_Stack, ptr %2276, i32 0, i32 0
  %2278 = load ptr, ptr %2277, align 8, !tbaa !28
  %2279 = getelementptr inbounds %struct.cff_Value, ptr %2278, i64 6
  %2280 = getelementptr inbounds %struct.cff_Value, ptr %2279, i32 0, i32 1
  %2281 = load double, ptr %2280, align 8, !tbaa !25
  %2282 = load ptr, ptr %11, align 8, !tbaa !5
  %2283 = getelementptr inbounds %struct.cff_Stack, ptr %2282, i32 0, i32 0
  %2284 = load ptr, ptr %2283, align 8, !tbaa !28
  %2285 = getelementptr inbounds %struct.cff_Value, ptr %2284, i64 7
  %2286 = getelementptr inbounds %struct.cff_Value, ptr %2285, i32 0, i32 1
  %2287 = load double, ptr %2286, align 8, !tbaa !25
  %2288 = load ptr, ptr %11, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.cff_Stack, ptr %2288, i32 0, i32 0
  %2290 = load ptr, ptr %2289, align 8, !tbaa !28
  %2291 = getelementptr inbounds %struct.cff_Value, ptr %2290, i64 8
  %2292 = getelementptr inbounds %struct.cff_Value, ptr %2291, i32 0, i32 1
  %2293 = load double, ptr %2292, align 8, !tbaa !25
  %2294 = load ptr, ptr %11, align 8, !tbaa !5
  %2295 = getelementptr inbounds %struct.cff_Stack, ptr %2294, i32 0, i32 0
  %2296 = load ptr, ptr %2295, align 8, !tbaa !28
  %2297 = getelementptr inbounds %struct.cff_Value, ptr %2296, i64 9
  %2298 = getelementptr inbounds %struct.cff_Value, ptr %2297, i32 0, i32 1
  %2299 = load double, ptr %2298, align 8, !tbaa !25
  %2300 = load double, ptr %41, align 8, !tbaa !30
  %2301 = load double, ptr %42, align 8, !tbaa !30
  call void %2274(ptr noundef %2275, double noundef %2281, double noundef %2287, double noundef %2293, double noundef %2299, double noundef %2300, double noundef %2301)
  %2302 = load ptr, ptr %11, align 8, !tbaa !5
  %2303 = getelementptr inbounds %struct.cff_Stack, ptr %2302, i32 0, i32 2
  store i32 0, ptr %2303, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #7
  br label %3515

2304:                                             ; preds = %142
  %2305 = load ptr, ptr %11, align 8, !tbaa !5
  %2306 = getelementptr inbounds %struct.cff_Stack, ptr %2305, i32 0, i32 2
  %2307 = load i32, ptr %2306, align 8, !tbaa !26
  %2308 = icmp ult i32 %2307, 2
  br i1 %2308, label %2309, label %2320

2309:                                             ; preds = %2304
  %2310 = load ptr, ptr %13, align 8, !tbaa !5
  %2311 = getelementptr inbounds %struct.otfcc_Options, ptr %2310, i32 0, i32 24
  %2312 = load ptr, ptr %2311, align 8, !tbaa !40
  %2313 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2312, i32 0, i32 6
  %2314 = load ptr, ptr %2313, align 8, !tbaa !42
  %2315 = load ptr, ptr %13, align 8, !tbaa !5
  %2316 = getelementptr inbounds %struct.otfcc_Options, ptr %2315, i32 0, i32 24
  %2317 = load ptr, ptr %2316, align 8, !tbaa !40
  %2318 = call ptr @sdsempty()
  %2319 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2318, ptr noundef @.str, ptr noundef @.str.8, i32 noundef 3075)
  call void %2314(ptr noundef %2317, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2319)
  br label %3515

2320:                                             ; preds = %2304
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #7
  %2321 = load ptr, ptr %11, align 8, !tbaa !5
  %2322 = getelementptr inbounds %struct.cff_Stack, ptr %2321, i32 0, i32 0
  %2323 = load ptr, ptr %2322, align 8, !tbaa !28
  %2324 = load ptr, ptr %11, align 8, !tbaa !5
  %2325 = getelementptr inbounds %struct.cff_Stack, ptr %2324, i32 0, i32 2
  %2326 = load i32, ptr %2325, align 8, !tbaa !26
  %2327 = sub i32 %2326, 1
  %2328 = zext i32 %2327 to i64
  %2329 = getelementptr inbounds %struct.cff_Value, ptr %2323, i64 %2328
  %2330 = getelementptr inbounds %struct.cff_Value, ptr %2329, i32 0, i32 1
  %2331 = load double, ptr %2330, align 8, !tbaa !25
  store double %2331, ptr %43, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #7
  %2332 = load ptr, ptr %11, align 8, !tbaa !5
  %2333 = getelementptr inbounds %struct.cff_Stack, ptr %2332, i32 0, i32 0
  %2334 = load ptr, ptr %2333, align 8, !tbaa !28
  %2335 = load ptr, ptr %11, align 8, !tbaa !5
  %2336 = getelementptr inbounds %struct.cff_Stack, ptr %2335, i32 0, i32 2
  %2337 = load i32, ptr %2336, align 8, !tbaa !26
  %2338 = sub i32 %2337, 2
  %2339 = zext i32 %2338 to i64
  %2340 = getelementptr inbounds %struct.cff_Value, ptr %2334, i64 %2339
  %2341 = getelementptr inbounds %struct.cff_Value, ptr %2340, i32 0, i32 1
  %2342 = load double, ptr %2341, align 8, !tbaa !25
  store double %2342, ptr %44, align 8, !tbaa !30
  %2343 = load double, ptr %43, align 8, !tbaa !30
  %2344 = fcmp une double %2343, 0.000000e+00
  br i1 %2344, label %2345, label %2348

2345:                                             ; preds = %2320
  %2346 = load double, ptr %44, align 8, !tbaa !30
  %2347 = fcmp une double %2346, 0.000000e+00
  br label %2348

2348:                                             ; preds = %2345, %2320
  %2349 = phi i1 [ false, %2320 ], [ %2347, %2345 ]
  %2350 = zext i1 %2349 to i64
  %2351 = select i1 %2349, double 1.000000e+00, double 0.000000e+00
  %2352 = load ptr, ptr %11, align 8, !tbaa !5
  %2353 = getelementptr inbounds %struct.cff_Stack, ptr %2352, i32 0, i32 0
  %2354 = load ptr, ptr %2353, align 8, !tbaa !28
  %2355 = load ptr, ptr %11, align 8, !tbaa !5
  %2356 = getelementptr inbounds %struct.cff_Stack, ptr %2355, i32 0, i32 2
  %2357 = load i32, ptr %2356, align 8, !tbaa !26
  %2358 = sub i32 %2357, 2
  %2359 = zext i32 %2358 to i64
  %2360 = getelementptr inbounds %struct.cff_Value, ptr %2354, i64 %2359
  %2361 = getelementptr inbounds %struct.cff_Value, ptr %2360, i32 0, i32 1
  store double %2351, ptr %2361, align 8, !tbaa !25
  %2362 = load ptr, ptr %11, align 8, !tbaa !5
  %2363 = getelementptr inbounds %struct.cff_Stack, ptr %2362, i32 0, i32 2
  %2364 = load i32, ptr %2363, align 8, !tbaa !26
  %2365 = sub i32 %2364, 1
  store i32 %2365, ptr %2363, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #7
  br label %3515

2366:                                             ; preds = %142
  %2367 = load ptr, ptr %11, align 8, !tbaa !5
  %2368 = getelementptr inbounds %struct.cff_Stack, ptr %2367, i32 0, i32 2
  %2369 = load i32, ptr %2368, align 8, !tbaa !26
  %2370 = icmp ult i32 %2369, 2
  br i1 %2370, label %2371, label %2382

2371:                                             ; preds = %2366
  %2372 = load ptr, ptr %13, align 8, !tbaa !5
  %2373 = getelementptr inbounds %struct.otfcc_Options, ptr %2372, i32 0, i32 24
  %2374 = load ptr, ptr %2373, align 8, !tbaa !40
  %2375 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2374, i32 0, i32 6
  %2376 = load ptr, ptr %2375, align 8, !tbaa !42
  %2377 = load ptr, ptr %13, align 8, !tbaa !5
  %2378 = getelementptr inbounds %struct.otfcc_Options, ptr %2377, i32 0, i32 24
  %2379 = load ptr, ptr %2378, align 8, !tbaa !40
  %2380 = call ptr @sdsempty()
  %2381 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2380, ptr noundef @.str, ptr noundef @.str.9, i32 noundef 3076)
  call void %2376(ptr noundef %2379, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2381)
  br label %3515

2382:                                             ; preds = %2366
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #7
  %2383 = load ptr, ptr %11, align 8, !tbaa !5
  %2384 = getelementptr inbounds %struct.cff_Stack, ptr %2383, i32 0, i32 0
  %2385 = load ptr, ptr %2384, align 8, !tbaa !28
  %2386 = load ptr, ptr %11, align 8, !tbaa !5
  %2387 = getelementptr inbounds %struct.cff_Stack, ptr %2386, i32 0, i32 2
  %2388 = load i32, ptr %2387, align 8, !tbaa !26
  %2389 = sub i32 %2388, 1
  %2390 = zext i32 %2389 to i64
  %2391 = getelementptr inbounds %struct.cff_Value, ptr %2385, i64 %2390
  %2392 = getelementptr inbounds %struct.cff_Value, ptr %2391, i32 0, i32 1
  %2393 = load double, ptr %2392, align 8, !tbaa !25
  store double %2393, ptr %45, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #7
  %2394 = load ptr, ptr %11, align 8, !tbaa !5
  %2395 = getelementptr inbounds %struct.cff_Stack, ptr %2394, i32 0, i32 0
  %2396 = load ptr, ptr %2395, align 8, !tbaa !28
  %2397 = load ptr, ptr %11, align 8, !tbaa !5
  %2398 = getelementptr inbounds %struct.cff_Stack, ptr %2397, i32 0, i32 2
  %2399 = load i32, ptr %2398, align 8, !tbaa !26
  %2400 = sub i32 %2399, 2
  %2401 = zext i32 %2400 to i64
  %2402 = getelementptr inbounds %struct.cff_Value, ptr %2396, i64 %2401
  %2403 = getelementptr inbounds %struct.cff_Value, ptr %2402, i32 0, i32 1
  %2404 = load double, ptr %2403, align 8, !tbaa !25
  store double %2404, ptr %46, align 8, !tbaa !30
  %2405 = load double, ptr %45, align 8, !tbaa !30
  %2406 = fcmp une double %2405, 0.000000e+00
  br i1 %2406, label %2410, label %2407

2407:                                             ; preds = %2382
  %2408 = load double, ptr %46, align 8, !tbaa !30
  %2409 = fcmp une double %2408, 0.000000e+00
  br label %2410

2410:                                             ; preds = %2407, %2382
  %2411 = phi i1 [ true, %2382 ], [ %2409, %2407 ]
  %2412 = zext i1 %2411 to i64
  %2413 = select i1 %2411, double 1.000000e+00, double 0.000000e+00
  %2414 = load ptr, ptr %11, align 8, !tbaa !5
  %2415 = getelementptr inbounds %struct.cff_Stack, ptr %2414, i32 0, i32 0
  %2416 = load ptr, ptr %2415, align 8, !tbaa !28
  %2417 = load ptr, ptr %11, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.cff_Stack, ptr %2417, i32 0, i32 2
  %2419 = load i32, ptr %2418, align 8, !tbaa !26
  %2420 = sub i32 %2419, 2
  %2421 = zext i32 %2420 to i64
  %2422 = getelementptr inbounds %struct.cff_Value, ptr %2416, i64 %2421
  %2423 = getelementptr inbounds %struct.cff_Value, ptr %2422, i32 0, i32 1
  store double %2413, ptr %2423, align 8, !tbaa !25
  %2424 = load ptr, ptr %11, align 8, !tbaa !5
  %2425 = getelementptr inbounds %struct.cff_Stack, ptr %2424, i32 0, i32 2
  %2426 = load i32, ptr %2425, align 8, !tbaa !26
  %2427 = sub i32 %2426, 1
  store i32 %2427, ptr %2425, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #7
  br label %3515

2428:                                             ; preds = %142
  %2429 = load ptr, ptr %11, align 8, !tbaa !5
  %2430 = getelementptr inbounds %struct.cff_Stack, ptr %2429, i32 0, i32 2
  %2431 = load i32, ptr %2430, align 8, !tbaa !26
  %2432 = icmp ult i32 %2431, 1
  br i1 %2432, label %2433, label %2444

2433:                                             ; preds = %2428
  %2434 = load ptr, ptr %13, align 8, !tbaa !5
  %2435 = getelementptr inbounds %struct.otfcc_Options, ptr %2434, i32 0, i32 24
  %2436 = load ptr, ptr %2435, align 8, !tbaa !40
  %2437 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2436, i32 0, i32 6
  %2438 = load ptr, ptr %2437, align 8, !tbaa !42
  %2439 = load ptr, ptr %13, align 8, !tbaa !5
  %2440 = getelementptr inbounds %struct.otfcc_Options, ptr %2439, i32 0, i32 24
  %2441 = load ptr, ptr %2440, align 8, !tbaa !40
  %2442 = call ptr @sdsempty()
  %2443 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2442, ptr noundef @.str, ptr noundef @.str.10, i32 noundef 3077)
  call void %2438(ptr noundef %2441, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2443)
  br label %3515

2444:                                             ; preds = %2428
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #7
  %2445 = load ptr, ptr %11, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.cff_Stack, ptr %2445, i32 0, i32 0
  %2447 = load ptr, ptr %2446, align 8, !tbaa !28
  %2448 = load ptr, ptr %11, align 8, !tbaa !5
  %2449 = getelementptr inbounds %struct.cff_Stack, ptr %2448, i32 0, i32 2
  %2450 = load i32, ptr %2449, align 8, !tbaa !26
  %2451 = sub i32 %2450, 1
  %2452 = zext i32 %2451 to i64
  %2453 = getelementptr inbounds %struct.cff_Value, ptr %2447, i64 %2452
  %2454 = getelementptr inbounds %struct.cff_Value, ptr %2453, i32 0, i32 1
  %2455 = load double, ptr %2454, align 8, !tbaa !25
  store double %2455, ptr %47, align 8, !tbaa !30
  %2456 = load double, ptr %47, align 8, !tbaa !30
  %2457 = fcmp une double %2456, 0.000000e+00
  %2458 = zext i1 %2457 to i64
  %2459 = select i1 %2457, double 0.000000e+00, double 1.000000e+00
  %2460 = load ptr, ptr %11, align 8, !tbaa !5
  %2461 = getelementptr inbounds %struct.cff_Stack, ptr %2460, i32 0, i32 0
  %2462 = load ptr, ptr %2461, align 8, !tbaa !28
  %2463 = load ptr, ptr %11, align 8, !tbaa !5
  %2464 = getelementptr inbounds %struct.cff_Stack, ptr %2463, i32 0, i32 2
  %2465 = load i32, ptr %2464, align 8, !tbaa !26
  %2466 = sub i32 %2465, 1
  %2467 = zext i32 %2466 to i64
  %2468 = getelementptr inbounds %struct.cff_Value, ptr %2462, i64 %2467
  %2469 = getelementptr inbounds %struct.cff_Value, ptr %2468, i32 0, i32 1
  store double %2459, ptr %2469, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #7
  br label %3515

2470:                                             ; preds = %142
  %2471 = load ptr, ptr %11, align 8, !tbaa !5
  %2472 = getelementptr inbounds %struct.cff_Stack, ptr %2471, i32 0, i32 2
  %2473 = load i32, ptr %2472, align 8, !tbaa !26
  %2474 = icmp ult i32 %2473, 1
  br i1 %2474, label %2475, label %2486

2475:                                             ; preds = %2470
  %2476 = load ptr, ptr %13, align 8, !tbaa !5
  %2477 = getelementptr inbounds %struct.otfcc_Options, ptr %2476, i32 0, i32 24
  %2478 = load ptr, ptr %2477, align 8, !tbaa !40
  %2479 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2478, i32 0, i32 6
  %2480 = load ptr, ptr %2479, align 8, !tbaa !42
  %2481 = load ptr, ptr %13, align 8, !tbaa !5
  %2482 = getelementptr inbounds %struct.otfcc_Options, ptr %2481, i32 0, i32 24
  %2483 = load ptr, ptr %2482, align 8, !tbaa !40
  %2484 = call ptr @sdsempty()
  %2485 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2484, ptr noundef @.str, ptr noundef @.str.11, i32 noundef 3081)
  call void %2480(ptr noundef %2483, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2485)
  br label %3515

2486:                                             ; preds = %2470
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %2487 = load ptr, ptr %11, align 8, !tbaa !5
  %2488 = getelementptr inbounds %struct.cff_Stack, ptr %2487, i32 0, i32 0
  %2489 = load ptr, ptr %2488, align 8, !tbaa !28
  %2490 = load ptr, ptr %11, align 8, !tbaa !5
  %2491 = getelementptr inbounds %struct.cff_Stack, ptr %2490, i32 0, i32 2
  %2492 = load i32, ptr %2491, align 8, !tbaa !26
  %2493 = sub i32 %2492, 1
  %2494 = zext i32 %2493 to i64
  %2495 = getelementptr inbounds %struct.cff_Value, ptr %2489, i64 %2494
  %2496 = getelementptr inbounds %struct.cff_Value, ptr %2495, i32 0, i32 1
  %2497 = load double, ptr %2496, align 8, !tbaa !25
  store double %2497, ptr %48, align 8, !tbaa !30
  %2498 = load double, ptr %48, align 8, !tbaa !30
  %2499 = fcmp olt double %2498, 0.000000e+00
  br i1 %2499, label %2500, label %2503

2500:                                             ; preds = %2486
  %2501 = load double, ptr %48, align 8, !tbaa !30
  %2502 = fneg double %2501
  br label %2505

2503:                                             ; preds = %2486
  %2504 = load double, ptr %48, align 8, !tbaa !30
  br label %2505

2505:                                             ; preds = %2503, %2500
  %2506 = phi double [ %2502, %2500 ], [ %2504, %2503 ]
  %2507 = load ptr, ptr %11, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.cff_Stack, ptr %2507, i32 0, i32 0
  %2509 = load ptr, ptr %2508, align 8, !tbaa !28
  %2510 = load ptr, ptr %11, align 8, !tbaa !5
  %2511 = getelementptr inbounds %struct.cff_Stack, ptr %2510, i32 0, i32 2
  %2512 = load i32, ptr %2511, align 8, !tbaa !26
  %2513 = sub i32 %2512, 1
  %2514 = zext i32 %2513 to i64
  %2515 = getelementptr inbounds %struct.cff_Value, ptr %2509, i64 %2514
  %2516 = getelementptr inbounds %struct.cff_Value, ptr %2515, i32 0, i32 1
  store double %2506, ptr %2516, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %3515

2517:                                             ; preds = %142
  %2518 = load ptr, ptr %11, align 8, !tbaa !5
  %2519 = getelementptr inbounds %struct.cff_Stack, ptr %2518, i32 0, i32 2
  %2520 = load i32, ptr %2519, align 8, !tbaa !26
  %2521 = icmp ult i32 %2520, 2
  br i1 %2521, label %2522, label %2533

2522:                                             ; preds = %2517
  %2523 = load ptr, ptr %13, align 8, !tbaa !5
  %2524 = getelementptr inbounds %struct.otfcc_Options, ptr %2523, i32 0, i32 24
  %2525 = load ptr, ptr %2524, align 8, !tbaa !40
  %2526 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2525, i32 0, i32 6
  %2527 = load ptr, ptr %2526, align 8, !tbaa !42
  %2528 = load ptr, ptr %13, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.otfcc_Options, ptr %2528, i32 0, i32 24
  %2530 = load ptr, ptr %2529, align 8, !tbaa !40
  %2531 = call ptr @sdsempty()
  %2532 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2531, ptr noundef @.str, ptr noundef @.str.12, i32 noundef 3082)
  call void %2527(ptr noundef %2530, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2532)
  br label %3515

2533:                                             ; preds = %2517
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %2534 = load ptr, ptr %11, align 8, !tbaa !5
  %2535 = getelementptr inbounds %struct.cff_Stack, ptr %2534, i32 0, i32 0
  %2536 = load ptr, ptr %2535, align 8, !tbaa !28
  %2537 = load ptr, ptr %11, align 8, !tbaa !5
  %2538 = getelementptr inbounds %struct.cff_Stack, ptr %2537, i32 0, i32 2
  %2539 = load i32, ptr %2538, align 8, !tbaa !26
  %2540 = sub i32 %2539, 1
  %2541 = zext i32 %2540 to i64
  %2542 = getelementptr inbounds %struct.cff_Value, ptr %2536, i64 %2541
  %2543 = getelementptr inbounds %struct.cff_Value, ptr %2542, i32 0, i32 1
  %2544 = load double, ptr %2543, align 8, !tbaa !25
  store double %2544, ptr %49, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  %2545 = load ptr, ptr %11, align 8, !tbaa !5
  %2546 = getelementptr inbounds %struct.cff_Stack, ptr %2545, i32 0, i32 0
  %2547 = load ptr, ptr %2546, align 8, !tbaa !28
  %2548 = load ptr, ptr %11, align 8, !tbaa !5
  %2549 = getelementptr inbounds %struct.cff_Stack, ptr %2548, i32 0, i32 2
  %2550 = load i32, ptr %2549, align 8, !tbaa !26
  %2551 = sub i32 %2550, 2
  %2552 = zext i32 %2551 to i64
  %2553 = getelementptr inbounds %struct.cff_Value, ptr %2547, i64 %2552
  %2554 = getelementptr inbounds %struct.cff_Value, ptr %2553, i32 0, i32 1
  %2555 = load double, ptr %2554, align 8, !tbaa !25
  store double %2555, ptr %50, align 8, !tbaa !30
  %2556 = load double, ptr %49, align 8, !tbaa !30
  %2557 = load double, ptr %50, align 8, !tbaa !30
  %2558 = fadd double %2556, %2557
  %2559 = load ptr, ptr %11, align 8, !tbaa !5
  %2560 = getelementptr inbounds %struct.cff_Stack, ptr %2559, i32 0, i32 0
  %2561 = load ptr, ptr %2560, align 8, !tbaa !28
  %2562 = load ptr, ptr %11, align 8, !tbaa !5
  %2563 = getelementptr inbounds %struct.cff_Stack, ptr %2562, i32 0, i32 2
  %2564 = load i32, ptr %2563, align 8, !tbaa !26
  %2565 = sub i32 %2564, 2
  %2566 = zext i32 %2565 to i64
  %2567 = getelementptr inbounds %struct.cff_Value, ptr %2561, i64 %2566
  %2568 = getelementptr inbounds %struct.cff_Value, ptr %2567, i32 0, i32 1
  store double %2558, ptr %2568, align 8, !tbaa !25
  %2569 = load ptr, ptr %11, align 8, !tbaa !5
  %2570 = getelementptr inbounds %struct.cff_Stack, ptr %2569, i32 0, i32 2
  %2571 = load i32, ptr %2570, align 8, !tbaa !26
  %2572 = sub i32 %2571, 1
  store i32 %2572, ptr %2570, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br label %3515

2573:                                             ; preds = %142
  %2574 = load ptr, ptr %11, align 8, !tbaa !5
  %2575 = getelementptr inbounds %struct.cff_Stack, ptr %2574, i32 0, i32 2
  %2576 = load i32, ptr %2575, align 8, !tbaa !26
  %2577 = icmp ult i32 %2576, 2
  br i1 %2577, label %2578, label %2589

2578:                                             ; preds = %2573
  %2579 = load ptr, ptr %13, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.otfcc_Options, ptr %2579, i32 0, i32 24
  %2581 = load ptr, ptr %2580, align 8, !tbaa !40
  %2582 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2581, i32 0, i32 6
  %2583 = load ptr, ptr %2582, align 8, !tbaa !42
  %2584 = load ptr, ptr %13, align 8, !tbaa !5
  %2585 = getelementptr inbounds %struct.otfcc_Options, ptr %2584, i32 0, i32 24
  %2586 = load ptr, ptr %2585, align 8, !tbaa !40
  %2587 = call ptr @sdsempty()
  %2588 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2587, ptr noundef @.str, ptr noundef @.str.13, i32 noundef 3083)
  call void %2583(ptr noundef %2586, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2588)
  br label %3515

2589:                                             ; preds = %2573
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #7
  %2590 = load ptr, ptr %11, align 8, !tbaa !5
  %2591 = getelementptr inbounds %struct.cff_Stack, ptr %2590, i32 0, i32 0
  %2592 = load ptr, ptr %2591, align 8, !tbaa !28
  %2593 = load ptr, ptr %11, align 8, !tbaa !5
  %2594 = getelementptr inbounds %struct.cff_Stack, ptr %2593, i32 0, i32 2
  %2595 = load i32, ptr %2594, align 8, !tbaa !26
  %2596 = sub i32 %2595, 2
  %2597 = zext i32 %2596 to i64
  %2598 = getelementptr inbounds %struct.cff_Value, ptr %2592, i64 %2597
  %2599 = getelementptr inbounds %struct.cff_Value, ptr %2598, i32 0, i32 1
  %2600 = load double, ptr %2599, align 8, !tbaa !25
  store double %2600, ptr %51, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %2601 = load ptr, ptr %11, align 8, !tbaa !5
  %2602 = getelementptr inbounds %struct.cff_Stack, ptr %2601, i32 0, i32 0
  %2603 = load ptr, ptr %2602, align 8, !tbaa !28
  %2604 = load ptr, ptr %11, align 8, !tbaa !5
  %2605 = getelementptr inbounds %struct.cff_Stack, ptr %2604, i32 0, i32 2
  %2606 = load i32, ptr %2605, align 8, !tbaa !26
  %2607 = sub i32 %2606, 1
  %2608 = zext i32 %2607 to i64
  %2609 = getelementptr inbounds %struct.cff_Value, ptr %2603, i64 %2608
  %2610 = getelementptr inbounds %struct.cff_Value, ptr %2609, i32 0, i32 1
  %2611 = load double, ptr %2610, align 8, !tbaa !25
  store double %2611, ptr %52, align 8, !tbaa !30
  %2612 = load double, ptr %51, align 8, !tbaa !30
  %2613 = load double, ptr %52, align 8, !tbaa !30
  %2614 = fsub double %2612, %2613
  %2615 = load ptr, ptr %11, align 8, !tbaa !5
  %2616 = getelementptr inbounds %struct.cff_Stack, ptr %2615, i32 0, i32 0
  %2617 = load ptr, ptr %2616, align 8, !tbaa !28
  %2618 = load ptr, ptr %11, align 8, !tbaa !5
  %2619 = getelementptr inbounds %struct.cff_Stack, ptr %2618, i32 0, i32 2
  %2620 = load i32, ptr %2619, align 8, !tbaa !26
  %2621 = sub i32 %2620, 2
  %2622 = zext i32 %2621 to i64
  %2623 = getelementptr inbounds %struct.cff_Value, ptr %2617, i64 %2622
  %2624 = getelementptr inbounds %struct.cff_Value, ptr %2623, i32 0, i32 1
  store double %2614, ptr %2624, align 8, !tbaa !25
  %2625 = load ptr, ptr %11, align 8, !tbaa !5
  %2626 = getelementptr inbounds %struct.cff_Stack, ptr %2625, i32 0, i32 2
  %2627 = load i32, ptr %2626, align 8, !tbaa !26
  %2628 = sub i32 %2627, 1
  store i32 %2628, ptr %2626, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #7
  br label %3515

2629:                                             ; preds = %142
  %2630 = load ptr, ptr %11, align 8, !tbaa !5
  %2631 = getelementptr inbounds %struct.cff_Stack, ptr %2630, i32 0, i32 2
  %2632 = load i32, ptr %2631, align 8, !tbaa !26
  %2633 = icmp ult i32 %2632, 2
  br i1 %2633, label %2634, label %2645

2634:                                             ; preds = %2629
  %2635 = load ptr, ptr %13, align 8, !tbaa !5
  %2636 = getelementptr inbounds %struct.otfcc_Options, ptr %2635, i32 0, i32 24
  %2637 = load ptr, ptr %2636, align 8, !tbaa !40
  %2638 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2637, i32 0, i32 6
  %2639 = load ptr, ptr %2638, align 8, !tbaa !42
  %2640 = load ptr, ptr %13, align 8, !tbaa !5
  %2641 = getelementptr inbounds %struct.otfcc_Options, ptr %2640, i32 0, i32 24
  %2642 = load ptr, ptr %2641, align 8, !tbaa !40
  %2643 = call ptr @sdsempty()
  %2644 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2643, ptr noundef @.str, ptr noundef @.str.14, i32 noundef 3084)
  call void %2639(ptr noundef %2642, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2644)
  br label %3515

2645:                                             ; preds = %2629
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #7
  %2646 = load ptr, ptr %11, align 8, !tbaa !5
  %2647 = getelementptr inbounds %struct.cff_Stack, ptr %2646, i32 0, i32 0
  %2648 = load ptr, ptr %2647, align 8, !tbaa !28
  %2649 = load ptr, ptr %11, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.cff_Stack, ptr %2649, i32 0, i32 2
  %2651 = load i32, ptr %2650, align 8, !tbaa !26
  %2652 = sub i32 %2651, 2
  %2653 = zext i32 %2652 to i64
  %2654 = getelementptr inbounds %struct.cff_Value, ptr %2648, i64 %2653
  %2655 = getelementptr inbounds %struct.cff_Value, ptr %2654, i32 0, i32 1
  %2656 = load double, ptr %2655, align 8, !tbaa !25
  store double %2656, ptr %53, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #7
  %2657 = load ptr, ptr %11, align 8, !tbaa !5
  %2658 = getelementptr inbounds %struct.cff_Stack, ptr %2657, i32 0, i32 0
  %2659 = load ptr, ptr %2658, align 8, !tbaa !28
  %2660 = load ptr, ptr %11, align 8, !tbaa !5
  %2661 = getelementptr inbounds %struct.cff_Stack, ptr %2660, i32 0, i32 2
  %2662 = load i32, ptr %2661, align 8, !tbaa !26
  %2663 = sub i32 %2662, 1
  %2664 = zext i32 %2663 to i64
  %2665 = getelementptr inbounds %struct.cff_Value, ptr %2659, i64 %2664
  %2666 = getelementptr inbounds %struct.cff_Value, ptr %2665, i32 0, i32 1
  %2667 = load double, ptr %2666, align 8, !tbaa !25
  store double %2667, ptr %54, align 8, !tbaa !30
  %2668 = load double, ptr %53, align 8, !tbaa !30
  %2669 = load double, ptr %54, align 8, !tbaa !30
  %2670 = fdiv double %2668, %2669
  %2671 = load ptr, ptr %11, align 8, !tbaa !5
  %2672 = getelementptr inbounds %struct.cff_Stack, ptr %2671, i32 0, i32 0
  %2673 = load ptr, ptr %2672, align 8, !tbaa !28
  %2674 = load ptr, ptr %11, align 8, !tbaa !5
  %2675 = getelementptr inbounds %struct.cff_Stack, ptr %2674, i32 0, i32 2
  %2676 = load i32, ptr %2675, align 8, !tbaa !26
  %2677 = sub i32 %2676, 2
  %2678 = zext i32 %2677 to i64
  %2679 = getelementptr inbounds %struct.cff_Value, ptr %2673, i64 %2678
  %2680 = getelementptr inbounds %struct.cff_Value, ptr %2679, i32 0, i32 1
  store double %2670, ptr %2680, align 8, !tbaa !25
  %2681 = load ptr, ptr %11, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.cff_Stack, ptr %2681, i32 0, i32 2
  %2683 = load i32, ptr %2682, align 8, !tbaa !26
  %2684 = sub i32 %2683, 1
  store i32 %2684, ptr %2682, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #7
  br label %3515

2685:                                             ; preds = %142
  %2686 = load ptr, ptr %11, align 8, !tbaa !5
  %2687 = getelementptr inbounds %struct.cff_Stack, ptr %2686, i32 0, i32 2
  %2688 = load i32, ptr %2687, align 8, !tbaa !26
  %2689 = icmp ult i32 %2688, 1
  br i1 %2689, label %2690, label %2701

2690:                                             ; preds = %2685
  %2691 = load ptr, ptr %13, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.otfcc_Options, ptr %2691, i32 0, i32 24
  %2693 = load ptr, ptr %2692, align 8, !tbaa !40
  %2694 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2693, i32 0, i32 6
  %2695 = load ptr, ptr %2694, align 8, !tbaa !42
  %2696 = load ptr, ptr %13, align 8, !tbaa !5
  %2697 = getelementptr inbounds %struct.otfcc_Options, ptr %2696, i32 0, i32 24
  %2698 = load ptr, ptr %2697, align 8, !tbaa !40
  %2699 = call ptr @sdsempty()
  %2700 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2699, ptr noundef @.str, ptr noundef @.str.15, i32 noundef 3086)
  call void %2695(ptr noundef %2698, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2700)
  br label %3515

2701:                                             ; preds = %2685
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #7
  %2702 = load ptr, ptr %11, align 8, !tbaa !5
  %2703 = getelementptr inbounds %struct.cff_Stack, ptr %2702, i32 0, i32 0
  %2704 = load ptr, ptr %2703, align 8, !tbaa !28
  %2705 = load ptr, ptr %11, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.cff_Stack, ptr %2705, i32 0, i32 2
  %2707 = load i32, ptr %2706, align 8, !tbaa !26
  %2708 = sub i32 %2707, 1
  %2709 = zext i32 %2708 to i64
  %2710 = getelementptr inbounds %struct.cff_Value, ptr %2704, i64 %2709
  %2711 = getelementptr inbounds %struct.cff_Value, ptr %2710, i32 0, i32 1
  %2712 = load double, ptr %2711, align 8, !tbaa !25
  store double %2712, ptr %55, align 8, !tbaa !30
  %2713 = load double, ptr %55, align 8, !tbaa !30
  %2714 = fneg double %2713
  %2715 = load ptr, ptr %11, align 8, !tbaa !5
  %2716 = getelementptr inbounds %struct.cff_Stack, ptr %2715, i32 0, i32 0
  %2717 = load ptr, ptr %2716, align 8, !tbaa !28
  %2718 = load ptr, ptr %11, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.cff_Stack, ptr %2718, i32 0, i32 2
  %2720 = load i32, ptr %2719, align 8, !tbaa !26
  %2721 = sub i32 %2720, 1
  %2722 = zext i32 %2721 to i64
  %2723 = getelementptr inbounds %struct.cff_Value, ptr %2717, i64 %2722
  %2724 = getelementptr inbounds %struct.cff_Value, ptr %2723, i32 0, i32 1
  store double %2714, ptr %2724, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #7
  br label %3515

2725:                                             ; preds = %142
  %2726 = load ptr, ptr %11, align 8, !tbaa !5
  %2727 = getelementptr inbounds %struct.cff_Stack, ptr %2726, i32 0, i32 2
  %2728 = load i32, ptr %2727, align 8, !tbaa !26
  %2729 = icmp ult i32 %2728, 2
  br i1 %2729, label %2730, label %2741

2730:                                             ; preds = %2725
  %2731 = load ptr, ptr %13, align 8, !tbaa !5
  %2732 = getelementptr inbounds %struct.otfcc_Options, ptr %2731, i32 0, i32 24
  %2733 = load ptr, ptr %2732, align 8, !tbaa !40
  %2734 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2733, i32 0, i32 6
  %2735 = load ptr, ptr %2734, align 8, !tbaa !42
  %2736 = load ptr, ptr %13, align 8, !tbaa !5
  %2737 = getelementptr inbounds %struct.otfcc_Options, ptr %2736, i32 0, i32 24
  %2738 = load ptr, ptr %2737, align 8, !tbaa !40
  %2739 = call ptr @sdsempty()
  %2740 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2739, ptr noundef @.str, ptr noundef @.str.16, i32 noundef 3087)
  call void %2735(ptr noundef %2738, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2740)
  br label %3515

2741:                                             ; preds = %2725
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %2742 = load ptr, ptr %11, align 8, !tbaa !5
  %2743 = getelementptr inbounds %struct.cff_Stack, ptr %2742, i32 0, i32 0
  %2744 = load ptr, ptr %2743, align 8, !tbaa !28
  %2745 = load ptr, ptr %11, align 8, !tbaa !5
  %2746 = getelementptr inbounds %struct.cff_Stack, ptr %2745, i32 0, i32 2
  %2747 = load i32, ptr %2746, align 8, !tbaa !26
  %2748 = sub i32 %2747, 1
  %2749 = zext i32 %2748 to i64
  %2750 = getelementptr inbounds %struct.cff_Value, ptr %2744, i64 %2749
  %2751 = getelementptr inbounds %struct.cff_Value, ptr %2750, i32 0, i32 1
  %2752 = load double, ptr %2751, align 8, !tbaa !25
  store double %2752, ptr %56, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %2753 = load ptr, ptr %11, align 8, !tbaa !5
  %2754 = getelementptr inbounds %struct.cff_Stack, ptr %2753, i32 0, i32 0
  %2755 = load ptr, ptr %2754, align 8, !tbaa !28
  %2756 = load ptr, ptr %11, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.cff_Stack, ptr %2756, i32 0, i32 2
  %2758 = load i32, ptr %2757, align 8, !tbaa !26
  %2759 = sub i32 %2758, 2
  %2760 = zext i32 %2759 to i64
  %2761 = getelementptr inbounds %struct.cff_Value, ptr %2755, i64 %2760
  %2762 = getelementptr inbounds %struct.cff_Value, ptr %2761, i32 0, i32 1
  %2763 = load double, ptr %2762, align 8, !tbaa !25
  store double %2763, ptr %57, align 8, !tbaa !30
  %2764 = load double, ptr %56, align 8, !tbaa !30
  %2765 = load double, ptr %57, align 8, !tbaa !30
  %2766 = fcmp oeq double %2764, %2765
  %2767 = zext i1 %2766 to i64
  %2768 = select i1 %2766, double 1.000000e+00, double 0.000000e+00
  %2769 = load ptr, ptr %11, align 8, !tbaa !5
  %2770 = getelementptr inbounds %struct.cff_Stack, ptr %2769, i32 0, i32 0
  %2771 = load ptr, ptr %2770, align 8, !tbaa !28
  %2772 = load ptr, ptr %11, align 8, !tbaa !5
  %2773 = getelementptr inbounds %struct.cff_Stack, ptr %2772, i32 0, i32 2
  %2774 = load i32, ptr %2773, align 8, !tbaa !26
  %2775 = sub i32 %2774, 2
  %2776 = zext i32 %2775 to i64
  %2777 = getelementptr inbounds %struct.cff_Value, ptr %2771, i64 %2776
  %2778 = getelementptr inbounds %struct.cff_Value, ptr %2777, i32 0, i32 1
  store double %2768, ptr %2778, align 8, !tbaa !25
  %2779 = load ptr, ptr %11, align 8, !tbaa !5
  %2780 = getelementptr inbounds %struct.cff_Stack, ptr %2779, i32 0, i32 2
  %2781 = load i32, ptr %2780, align 8, !tbaa !26
  %2782 = sub i32 %2781, 1
  store i32 %2782, ptr %2780, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %3515

2783:                                             ; preds = %142
  %2784 = load ptr, ptr %11, align 8, !tbaa !5
  %2785 = getelementptr inbounds %struct.cff_Stack, ptr %2784, i32 0, i32 2
  %2786 = load i32, ptr %2785, align 8, !tbaa !26
  %2787 = icmp ult i32 %2786, 1
  br i1 %2787, label %2788, label %2799

2788:                                             ; preds = %2783
  %2789 = load ptr, ptr %13, align 8, !tbaa !5
  %2790 = getelementptr inbounds %struct.otfcc_Options, ptr %2789, i32 0, i32 24
  %2791 = load ptr, ptr %2790, align 8, !tbaa !40
  %2792 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2791, i32 0, i32 6
  %2793 = load ptr, ptr %2792, align 8, !tbaa !42
  %2794 = load ptr, ptr %13, align 8, !tbaa !5
  %2795 = getelementptr inbounds %struct.otfcc_Options, ptr %2794, i32 0, i32 24
  %2796 = load ptr, ptr %2795, align 8, !tbaa !40
  %2797 = call ptr @sdsempty()
  %2798 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2797, ptr noundef @.str, ptr noundef @.str.17, i32 noundef 3090)
  call void %2793(ptr noundef %2796, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2798)
  br label %3515

2799:                                             ; preds = %2783
  %2800 = load ptr, ptr %11, align 8, !tbaa !5
  %2801 = getelementptr inbounds %struct.cff_Stack, ptr %2800, i32 0, i32 2
  %2802 = load i32, ptr %2801, align 8, !tbaa !26
  %2803 = sub i32 %2802, 1
  store i32 %2803, ptr %2801, align 8, !tbaa !26
  br label %3515

2804:                                             ; preds = %142
  %2805 = load ptr, ptr %11, align 8, !tbaa !5
  %2806 = getelementptr inbounds %struct.cff_Stack, ptr %2805, i32 0, i32 2
  %2807 = load i32, ptr %2806, align 8, !tbaa !26
  %2808 = icmp ult i32 %2807, 2
  br i1 %2808, label %2809, label %2820

2809:                                             ; preds = %2804
  %2810 = load ptr, ptr %13, align 8, !tbaa !5
  %2811 = getelementptr inbounds %struct.otfcc_Options, ptr %2810, i32 0, i32 24
  %2812 = load ptr, ptr %2811, align 8, !tbaa !40
  %2813 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2812, i32 0, i32 6
  %2814 = load ptr, ptr %2813, align 8, !tbaa !42
  %2815 = load ptr, ptr %13, align 8, !tbaa !5
  %2816 = getelementptr inbounds %struct.otfcc_Options, ptr %2815, i32 0, i32 24
  %2817 = load ptr, ptr %2816, align 8, !tbaa !40
  %2818 = call ptr @sdsempty()
  %2819 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2818, ptr noundef @.str, ptr noundef @.str.18, i32 noundef 3092)
  call void %2814(ptr noundef %2817, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2819)
  br label %3515

2820:                                             ; preds = %2804
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  %2821 = load ptr, ptr %11, align 8, !tbaa !5
  %2822 = getelementptr inbounds %struct.cff_Stack, ptr %2821, i32 0, i32 0
  %2823 = load ptr, ptr %2822, align 8, !tbaa !28
  %2824 = load ptr, ptr %11, align 8, !tbaa !5
  %2825 = getelementptr inbounds %struct.cff_Stack, ptr %2824, i32 0, i32 2
  %2826 = load i32, ptr %2825, align 8, !tbaa !26
  %2827 = sub i32 %2826, 2
  %2828 = zext i32 %2827 to i64
  %2829 = getelementptr inbounds %struct.cff_Value, ptr %2823, i64 %2828
  %2830 = getelementptr inbounds %struct.cff_Value, ptr %2829, i32 0, i32 1
  %2831 = load double, ptr %2830, align 8, !tbaa !25
  store double %2831, ptr %58, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  %2832 = load ptr, ptr %11, align 8, !tbaa !5
  %2833 = getelementptr inbounds %struct.cff_Stack, ptr %2832, i32 0, i32 0
  %2834 = load ptr, ptr %2833, align 8, !tbaa !28
  %2835 = load ptr, ptr %11, align 8, !tbaa !5
  %2836 = getelementptr inbounds %struct.cff_Stack, ptr %2835, i32 0, i32 2
  %2837 = load i32, ptr %2836, align 8, !tbaa !26
  %2838 = sub i32 %2837, 1
  %2839 = zext i32 %2838 to i64
  %2840 = getelementptr inbounds %struct.cff_Value, ptr %2834, i64 %2839
  %2841 = getelementptr inbounds %struct.cff_Value, ptr %2840, i32 0, i32 1
  %2842 = load double, ptr %2841, align 8, !tbaa !25
  %2843 = fptosi double %2842 to i32
  store i32 %2843, ptr %59, align 4, !tbaa !9
  %2844 = load double, ptr %58, align 8, !tbaa !30
  %2845 = load ptr, ptr %11, align 8, !tbaa !5
  %2846 = getelementptr inbounds %struct.cff_Stack, ptr %2845, i32 0, i32 1
  %2847 = load i32, ptr %59, align 4, !tbaa !9
  %2848 = srem i32 %2847, 32
  %2849 = sext i32 %2848 to i64
  %2850 = getelementptr inbounds [32 x %struct.cff_Value], ptr %2846, i64 0, i64 %2849
  %2851 = getelementptr inbounds %struct.cff_Value, ptr %2850, i32 0, i32 1
  store double %2844, ptr %2851, align 8, !tbaa !25
  %2852 = load ptr, ptr %11, align 8, !tbaa !5
  %2853 = getelementptr inbounds %struct.cff_Stack, ptr %2852, i32 0, i32 2
  %2854 = load i32, ptr %2853, align 8, !tbaa !26
  %2855 = sub i32 %2854, 2
  store i32 %2855, ptr %2853, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  br label %3515

2856:                                             ; preds = %142
  %2857 = load ptr, ptr %11, align 8, !tbaa !5
  %2858 = getelementptr inbounds %struct.cff_Stack, ptr %2857, i32 0, i32 2
  %2859 = load i32, ptr %2858, align 8, !tbaa !26
  %2860 = icmp ult i32 %2859, 1
  br i1 %2860, label %2861, label %2872

2861:                                             ; preds = %2856
  %2862 = load ptr, ptr %13, align 8, !tbaa !5
  %2863 = getelementptr inbounds %struct.otfcc_Options, ptr %2862, i32 0, i32 24
  %2864 = load ptr, ptr %2863, align 8, !tbaa !40
  %2865 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2864, i32 0, i32 6
  %2866 = load ptr, ptr %2865, align 8, !tbaa !42
  %2867 = load ptr, ptr %13, align 8, !tbaa !5
  %2868 = getelementptr inbounds %struct.otfcc_Options, ptr %2867, i32 0, i32 24
  %2869 = load ptr, ptr %2868, align 8, !tbaa !40
  %2870 = call ptr @sdsempty()
  %2871 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2870, ptr noundef @.str, ptr noundef @.str.19, i32 noundef 3093)
  call void %2866(ptr noundef %2869, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2871)
  br label %3515

2872:                                             ; preds = %2856
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #7
  %2873 = load ptr, ptr %11, align 8, !tbaa !5
  %2874 = getelementptr inbounds %struct.cff_Stack, ptr %2873, i32 0, i32 0
  %2875 = load ptr, ptr %2874, align 8, !tbaa !28
  %2876 = load ptr, ptr %11, align 8, !tbaa !5
  %2877 = getelementptr inbounds %struct.cff_Stack, ptr %2876, i32 0, i32 2
  %2878 = load i32, ptr %2877, align 8, !tbaa !26
  %2879 = sub i32 %2878, 1
  %2880 = zext i32 %2879 to i64
  %2881 = getelementptr inbounds %struct.cff_Value, ptr %2875, i64 %2880
  %2882 = getelementptr inbounds %struct.cff_Value, ptr %2881, i32 0, i32 1
  %2883 = load double, ptr %2882, align 8, !tbaa !25
  %2884 = fptosi double %2883 to i32
  store i32 %2884, ptr %60, align 4, !tbaa !9
  %2885 = load ptr, ptr %11, align 8, !tbaa !5
  %2886 = getelementptr inbounds %struct.cff_Stack, ptr %2885, i32 0, i32 1
  %2887 = load i32, ptr %60, align 4, !tbaa !9
  %2888 = srem i32 %2887, 32
  %2889 = sext i32 %2888 to i64
  %2890 = getelementptr inbounds [32 x %struct.cff_Value], ptr %2886, i64 0, i64 %2889
  %2891 = getelementptr inbounds %struct.cff_Value, ptr %2890, i32 0, i32 1
  %2892 = load double, ptr %2891, align 8, !tbaa !25
  %2893 = load ptr, ptr %11, align 8, !tbaa !5
  %2894 = getelementptr inbounds %struct.cff_Stack, ptr %2893, i32 0, i32 0
  %2895 = load ptr, ptr %2894, align 8, !tbaa !28
  %2896 = load ptr, ptr %11, align 8, !tbaa !5
  %2897 = getelementptr inbounds %struct.cff_Stack, ptr %2896, i32 0, i32 2
  %2898 = load i32, ptr %2897, align 8, !tbaa !26
  %2899 = sub i32 %2898, 1
  %2900 = zext i32 %2899 to i64
  %2901 = getelementptr inbounds %struct.cff_Value, ptr %2895, i64 %2900
  %2902 = getelementptr inbounds %struct.cff_Value, ptr %2901, i32 0, i32 1
  store double %2892, ptr %2902, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #7
  br label %3515

2903:                                             ; preds = %142
  %2904 = load ptr, ptr %11, align 8, !tbaa !5
  %2905 = getelementptr inbounds %struct.cff_Stack, ptr %2904, i32 0, i32 2
  %2906 = load i32, ptr %2905, align 8, !tbaa !26
  %2907 = icmp ult i32 %2906, 4
  br i1 %2907, label %2908, label %2919

2908:                                             ; preds = %2903
  %2909 = load ptr, ptr %13, align 8, !tbaa !5
  %2910 = getelementptr inbounds %struct.otfcc_Options, ptr %2909, i32 0, i32 24
  %2911 = load ptr, ptr %2910, align 8, !tbaa !40
  %2912 = getelementptr inbounds %struct.otfcc_ILogger, ptr %2911, i32 0, i32 6
  %2913 = load ptr, ptr %2912, align 8, !tbaa !42
  %2914 = load ptr, ptr %13, align 8, !tbaa !5
  %2915 = getelementptr inbounds %struct.otfcc_Options, ptr %2914, i32 0, i32 24
  %2916 = load ptr, ptr %2915, align 8, !tbaa !40
  %2917 = call ptr @sdsempty()
  %2918 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %2917, ptr noundef @.str, ptr noundef @.str.20, i32 noundef 3094)
  call void %2913(ptr noundef %2916, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %2918)
  br label %3515

2919:                                             ; preds = %2903
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #7
  %2920 = load ptr, ptr %11, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.cff_Stack, ptr %2920, i32 0, i32 0
  %2922 = load ptr, ptr %2921, align 8, !tbaa !28
  %2923 = load ptr, ptr %11, align 8, !tbaa !5
  %2924 = getelementptr inbounds %struct.cff_Stack, ptr %2923, i32 0, i32 2
  %2925 = load i32, ptr %2924, align 8, !tbaa !26
  %2926 = sub i32 %2925, 1
  %2927 = zext i32 %2926 to i64
  %2928 = getelementptr inbounds %struct.cff_Value, ptr %2922, i64 %2927
  %2929 = getelementptr inbounds %struct.cff_Value, ptr %2928, i32 0, i32 1
  %2930 = load double, ptr %2929, align 8, !tbaa !25
  store double %2930, ptr %61, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #7
  %2931 = load ptr, ptr %11, align 8, !tbaa !5
  %2932 = getelementptr inbounds %struct.cff_Stack, ptr %2931, i32 0, i32 0
  %2933 = load ptr, ptr %2932, align 8, !tbaa !28
  %2934 = load ptr, ptr %11, align 8, !tbaa !5
  %2935 = getelementptr inbounds %struct.cff_Stack, ptr %2934, i32 0, i32 2
  %2936 = load i32, ptr %2935, align 8, !tbaa !26
  %2937 = sub i32 %2936, 2
  %2938 = zext i32 %2937 to i64
  %2939 = getelementptr inbounds %struct.cff_Value, ptr %2933, i64 %2938
  %2940 = getelementptr inbounds %struct.cff_Value, ptr %2939, i32 0, i32 1
  %2941 = load double, ptr %2940, align 8, !tbaa !25
  store double %2941, ptr %62, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #7
  %2942 = load ptr, ptr %11, align 8, !tbaa !5
  %2943 = getelementptr inbounds %struct.cff_Stack, ptr %2942, i32 0, i32 0
  %2944 = load ptr, ptr %2943, align 8, !tbaa !28
  %2945 = load ptr, ptr %11, align 8, !tbaa !5
  %2946 = getelementptr inbounds %struct.cff_Stack, ptr %2945, i32 0, i32 2
  %2947 = load i32, ptr %2946, align 8, !tbaa !26
  %2948 = sub i32 %2947, 3
  %2949 = zext i32 %2948 to i64
  %2950 = getelementptr inbounds %struct.cff_Value, ptr %2944, i64 %2949
  %2951 = getelementptr inbounds %struct.cff_Value, ptr %2950, i32 0, i32 1
  %2952 = load double, ptr %2951, align 8, !tbaa !25
  store double %2952, ptr %63, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #7
  %2953 = load ptr, ptr %11, align 8, !tbaa !5
  %2954 = getelementptr inbounds %struct.cff_Stack, ptr %2953, i32 0, i32 0
  %2955 = load ptr, ptr %2954, align 8, !tbaa !28
  %2956 = load ptr, ptr %11, align 8, !tbaa !5
  %2957 = getelementptr inbounds %struct.cff_Stack, ptr %2956, i32 0, i32 2
  %2958 = load i32, ptr %2957, align 8, !tbaa !26
  %2959 = sub i32 %2958, 4
  %2960 = zext i32 %2959 to i64
  %2961 = getelementptr inbounds %struct.cff_Value, ptr %2955, i64 %2960
  %2962 = getelementptr inbounds %struct.cff_Value, ptr %2961, i32 0, i32 1
  %2963 = load double, ptr %2962, align 8, !tbaa !25
  store double %2963, ptr %64, align 8, !tbaa !30
  %2964 = load double, ptr %62, align 8, !tbaa !30
  %2965 = load double, ptr %61, align 8, !tbaa !30
  %2966 = fcmp ole double %2964, %2965
  br i1 %2966, label %2967, label %2969

2967:                                             ; preds = %2919
  %2968 = load double, ptr %64, align 8, !tbaa !30
  br label %2971

2969:                                             ; preds = %2919
  %2970 = load double, ptr %63, align 8, !tbaa !30
  br label %2971

2971:                                             ; preds = %2969, %2967
  %2972 = phi double [ %2968, %2967 ], [ %2970, %2969 ]
  %2973 = load ptr, ptr %11, align 8, !tbaa !5
  %2974 = getelementptr inbounds %struct.cff_Stack, ptr %2973, i32 0, i32 0
  %2975 = load ptr, ptr %2974, align 8, !tbaa !28
  %2976 = load ptr, ptr %11, align 8, !tbaa !5
  %2977 = getelementptr inbounds %struct.cff_Stack, ptr %2976, i32 0, i32 2
  %2978 = load i32, ptr %2977, align 8, !tbaa !26
  %2979 = sub i32 %2978, 4
  %2980 = zext i32 %2979 to i64
  %2981 = getelementptr inbounds %struct.cff_Value, ptr %2975, i64 %2980
  %2982 = getelementptr inbounds %struct.cff_Value, ptr %2981, i32 0, i32 1
  store double %2972, ptr %2982, align 8, !tbaa !25
  %2983 = load ptr, ptr %11, align 8, !tbaa !5
  %2984 = getelementptr inbounds %struct.cff_Stack, ptr %2983, i32 0, i32 2
  %2985 = load i32, ptr %2984, align 8, !tbaa !26
  %2986 = sub i32 %2985, 3
  store i32 %2986, ptr %2984, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #7
  br label %3515

2987:                                             ; preds = %142
  %2988 = load ptr, ptr %11, align 8, !tbaa !5
  %2989 = getelementptr inbounds %struct.cff_Stack, ptr %2988, i32 0, i32 0
  %2990 = load ptr, ptr %2989, align 8, !tbaa !28
  %2991 = load ptr, ptr %11, align 8, !tbaa !5
  %2992 = getelementptr inbounds %struct.cff_Stack, ptr %2991, i32 0, i32 2
  %2993 = load i32, ptr %2992, align 8, !tbaa !26
  %2994 = zext i32 %2993 to i64
  %2995 = getelementptr inbounds %struct.cff_Value, ptr %2990, i64 %2994
  %2996 = getelementptr inbounds %struct.cff_Value, ptr %2995, i32 0, i32 0
  store i32 3, ptr %2996, align 8, !tbaa !23
  %2997 = load ptr, ptr %27, align 8, !tbaa !5
  %2998 = load ptr, ptr %12, align 8, !tbaa !5
  %2999 = call double %2997(ptr noundef %2998)
  %3000 = load ptr, ptr %11, align 8, !tbaa !5
  %3001 = getelementptr inbounds %struct.cff_Stack, ptr %3000, i32 0, i32 0
  %3002 = load ptr, ptr %3001, align 8, !tbaa !28
  %3003 = load ptr, ptr %11, align 8, !tbaa !5
  %3004 = getelementptr inbounds %struct.cff_Stack, ptr %3003, i32 0, i32 2
  %3005 = load i32, ptr %3004, align 8, !tbaa !26
  %3006 = zext i32 %3005 to i64
  %3007 = getelementptr inbounds %struct.cff_Value, ptr %3002, i64 %3006
  %3008 = getelementptr inbounds %struct.cff_Value, ptr %3007, i32 0, i32 1
  store double %2999, ptr %3008, align 8, !tbaa !25
  %3009 = load ptr, ptr %11, align 8, !tbaa !5
  %3010 = getelementptr inbounds %struct.cff_Stack, ptr %3009, i32 0, i32 2
  %3011 = load i32, ptr %3010, align 8, !tbaa !26
  %3012 = add i32 %3011, 1
  store i32 %3012, ptr %3010, align 8, !tbaa !26
  br label %3515

3013:                                             ; preds = %142
  %3014 = load ptr, ptr %11, align 8, !tbaa !5
  %3015 = getelementptr inbounds %struct.cff_Stack, ptr %3014, i32 0, i32 2
  %3016 = load i32, ptr %3015, align 8, !tbaa !26
  %3017 = icmp ult i32 %3016, 2
  br i1 %3017, label %3018, label %3029

3018:                                             ; preds = %3013
  %3019 = load ptr, ptr %13, align 8, !tbaa !5
  %3020 = getelementptr inbounds %struct.otfcc_Options, ptr %3019, i32 0, i32 24
  %3021 = load ptr, ptr %3020, align 8, !tbaa !40
  %3022 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3021, i32 0, i32 6
  %3023 = load ptr, ptr %3022, align 8, !tbaa !42
  %3024 = load ptr, ptr %13, align 8, !tbaa !5
  %3025 = getelementptr inbounds %struct.otfcc_Options, ptr %3024, i32 0, i32 24
  %3026 = load ptr, ptr %3025, align 8, !tbaa !40
  %3027 = call ptr @sdsempty()
  %3028 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3027, ptr noundef @.str, ptr noundef @.str.21, i32 noundef 3096)
  call void %3023(ptr noundef %3026, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3028)
  br label %3515

3029:                                             ; preds = %3013
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #7
  %3030 = load ptr, ptr %11, align 8, !tbaa !5
  %3031 = getelementptr inbounds %struct.cff_Stack, ptr %3030, i32 0, i32 0
  %3032 = load ptr, ptr %3031, align 8, !tbaa !28
  %3033 = load ptr, ptr %11, align 8, !tbaa !5
  %3034 = getelementptr inbounds %struct.cff_Stack, ptr %3033, i32 0, i32 2
  %3035 = load i32, ptr %3034, align 8, !tbaa !26
  %3036 = sub i32 %3035, 1
  %3037 = zext i32 %3036 to i64
  %3038 = getelementptr inbounds %struct.cff_Value, ptr %3032, i64 %3037
  %3039 = getelementptr inbounds %struct.cff_Value, ptr %3038, i32 0, i32 1
  %3040 = load double, ptr %3039, align 8, !tbaa !25
  store double %3040, ptr %65, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #7
  %3041 = load ptr, ptr %11, align 8, !tbaa !5
  %3042 = getelementptr inbounds %struct.cff_Stack, ptr %3041, i32 0, i32 0
  %3043 = load ptr, ptr %3042, align 8, !tbaa !28
  %3044 = load ptr, ptr %11, align 8, !tbaa !5
  %3045 = getelementptr inbounds %struct.cff_Stack, ptr %3044, i32 0, i32 2
  %3046 = load i32, ptr %3045, align 8, !tbaa !26
  %3047 = sub i32 %3046, 2
  %3048 = zext i32 %3047 to i64
  %3049 = getelementptr inbounds %struct.cff_Value, ptr %3043, i64 %3048
  %3050 = getelementptr inbounds %struct.cff_Value, ptr %3049, i32 0, i32 1
  %3051 = load double, ptr %3050, align 8, !tbaa !25
  store double %3051, ptr %66, align 8, !tbaa !30
  %3052 = load double, ptr %65, align 8, !tbaa !30
  %3053 = load double, ptr %66, align 8, !tbaa !30
  %3054 = fmul double %3052, %3053
  %3055 = load ptr, ptr %11, align 8, !tbaa !5
  %3056 = getelementptr inbounds %struct.cff_Stack, ptr %3055, i32 0, i32 0
  %3057 = load ptr, ptr %3056, align 8, !tbaa !28
  %3058 = load ptr, ptr %11, align 8, !tbaa !5
  %3059 = getelementptr inbounds %struct.cff_Stack, ptr %3058, i32 0, i32 2
  %3060 = load i32, ptr %3059, align 8, !tbaa !26
  %3061 = sub i32 %3060, 2
  %3062 = zext i32 %3061 to i64
  %3063 = getelementptr inbounds %struct.cff_Value, ptr %3057, i64 %3062
  %3064 = getelementptr inbounds %struct.cff_Value, ptr %3063, i32 0, i32 1
  store double %3054, ptr %3064, align 8, !tbaa !25
  %3065 = load ptr, ptr %11, align 8, !tbaa !5
  %3066 = getelementptr inbounds %struct.cff_Stack, ptr %3065, i32 0, i32 2
  %3067 = load i32, ptr %3066, align 8, !tbaa !26
  %3068 = sub i32 %3067, 1
  store i32 %3068, ptr %3066, align 8, !tbaa !26
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #7
  br label %3515

3069:                                             ; preds = %142
  %3070 = load ptr, ptr %11, align 8, !tbaa !5
  %3071 = getelementptr inbounds %struct.cff_Stack, ptr %3070, i32 0, i32 2
  %3072 = load i32, ptr %3071, align 8, !tbaa !26
  %3073 = icmp ult i32 %3072, 1
  br i1 %3073, label %3074, label %3085

3074:                                             ; preds = %3069
  %3075 = load ptr, ptr %13, align 8, !tbaa !5
  %3076 = getelementptr inbounds %struct.otfcc_Options, ptr %3075, i32 0, i32 24
  %3077 = load ptr, ptr %3076, align 8, !tbaa !40
  %3078 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3077, i32 0, i32 6
  %3079 = load ptr, ptr %3078, align 8, !tbaa !42
  %3080 = load ptr, ptr %13, align 8, !tbaa !5
  %3081 = getelementptr inbounds %struct.otfcc_Options, ptr %3080, i32 0, i32 24
  %3082 = load ptr, ptr %3081, align 8, !tbaa !40
  %3083 = call ptr @sdsempty()
  %3084 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3083, ptr noundef @.str, ptr noundef @.str.22, i32 noundef 3098)
  call void %3079(ptr noundef %3082, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3084)
  br label %3515

3085:                                             ; preds = %3069
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #7
  %3086 = load ptr, ptr %11, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.cff_Stack, ptr %3086, i32 0, i32 0
  %3088 = load ptr, ptr %3087, align 8, !tbaa !28
  %3089 = load ptr, ptr %11, align 8, !tbaa !5
  %3090 = getelementptr inbounds %struct.cff_Stack, ptr %3089, i32 0, i32 2
  %3091 = load i32, ptr %3090, align 8, !tbaa !26
  %3092 = sub i32 %3091, 1
  %3093 = zext i32 %3092 to i64
  %3094 = getelementptr inbounds %struct.cff_Value, ptr %3088, i64 %3093
  %3095 = getelementptr inbounds %struct.cff_Value, ptr %3094, i32 0, i32 1
  %3096 = load double, ptr %3095, align 8, !tbaa !25
  store double %3096, ptr %67, align 8, !tbaa !30
  %3097 = load double, ptr %67, align 8, !tbaa !30
  %3098 = call double @sqrt(double noundef %3097) #7
  %3099 = load ptr, ptr %11, align 8, !tbaa !5
  %3100 = getelementptr inbounds %struct.cff_Stack, ptr %3099, i32 0, i32 0
  %3101 = load ptr, ptr %3100, align 8, !tbaa !28
  %3102 = load ptr, ptr %11, align 8, !tbaa !5
  %3103 = getelementptr inbounds %struct.cff_Stack, ptr %3102, i32 0, i32 2
  %3104 = load i32, ptr %3103, align 8, !tbaa !26
  %3105 = sub i32 %3104, 1
  %3106 = zext i32 %3105 to i64
  %3107 = getelementptr inbounds %struct.cff_Value, ptr %3101, i64 %3106
  %3108 = getelementptr inbounds %struct.cff_Value, ptr %3107, i32 0, i32 1
  store double %3098, ptr %3108, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #7
  br label %3515

3109:                                             ; preds = %142
  %3110 = load ptr, ptr %11, align 8, !tbaa !5
  %3111 = getelementptr inbounds %struct.cff_Stack, ptr %3110, i32 0, i32 2
  %3112 = load i32, ptr %3111, align 8, !tbaa !26
  %3113 = icmp ult i32 %3112, 1
  br i1 %3113, label %3114, label %3125

3114:                                             ; preds = %3109
  %3115 = load ptr, ptr %13, align 8, !tbaa !5
  %3116 = getelementptr inbounds %struct.otfcc_Options, ptr %3115, i32 0, i32 24
  %3117 = load ptr, ptr %3116, align 8, !tbaa !40
  %3118 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3117, i32 0, i32 6
  %3119 = load ptr, ptr %3118, align 8, !tbaa !42
  %3120 = load ptr, ptr %13, align 8, !tbaa !5
  %3121 = getelementptr inbounds %struct.otfcc_Options, ptr %3120, i32 0, i32 24
  %3122 = load ptr, ptr %3121, align 8, !tbaa !40
  %3123 = call ptr @sdsempty()
  %3124 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3123, ptr noundef @.str, ptr noundef @.str.23, i32 noundef 3099)
  call void %3119(ptr noundef %3122, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3124)
  br label %3515

3125:                                             ; preds = %3109
  %3126 = load ptr, ptr %11, align 8, !tbaa !5
  %3127 = getelementptr inbounds %struct.cff_Stack, ptr %3126, i32 0, i32 0
  %3128 = load ptr, ptr %3127, align 8, !tbaa !28
  %3129 = load ptr, ptr %11, align 8, !tbaa !5
  %3130 = getelementptr inbounds %struct.cff_Stack, ptr %3129, i32 0, i32 2
  %3131 = load i32, ptr %3130, align 8, !tbaa !26
  %3132 = zext i32 %3131 to i64
  %3133 = getelementptr inbounds %struct.cff_Value, ptr %3128, i64 %3132
  %3134 = load ptr, ptr %11, align 8, !tbaa !5
  %3135 = getelementptr inbounds %struct.cff_Stack, ptr %3134, i32 0, i32 0
  %3136 = load ptr, ptr %3135, align 8, !tbaa !28
  %3137 = load ptr, ptr %11, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.cff_Stack, ptr %3137, i32 0, i32 2
  %3139 = load i32, ptr %3138, align 8, !tbaa !26
  %3140 = sub i32 %3139, 1
  %3141 = zext i32 %3140 to i64
  %3142 = getelementptr inbounds %struct.cff_Value, ptr %3136, i64 %3141
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3133, ptr align 8 %3142, i64 16, i1 false), !tbaa.struct !58
  %3143 = load ptr, ptr %11, align 8, !tbaa !5
  %3144 = getelementptr inbounds %struct.cff_Stack, ptr %3143, i32 0, i32 2
  %3145 = load i32, ptr %3144, align 8, !tbaa !26
  %3146 = add i32 %3145, 1
  store i32 %3146, ptr %3144, align 8, !tbaa !26
  br label %3515

3147:                                             ; preds = %142
  %3148 = load ptr, ptr %11, align 8, !tbaa !5
  %3149 = getelementptr inbounds %struct.cff_Stack, ptr %3148, i32 0, i32 2
  %3150 = load i32, ptr %3149, align 8, !tbaa !26
  %3151 = icmp ult i32 %3150, 2
  br i1 %3151, label %3152, label %3163

3152:                                             ; preds = %3147
  %3153 = load ptr, ptr %13, align 8, !tbaa !5
  %3154 = getelementptr inbounds %struct.otfcc_Options, ptr %3153, i32 0, i32 24
  %3155 = load ptr, ptr %3154, align 8, !tbaa !40
  %3156 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3155, i32 0, i32 6
  %3157 = load ptr, ptr %3156, align 8, !tbaa !42
  %3158 = load ptr, ptr %13, align 8, !tbaa !5
  %3159 = getelementptr inbounds %struct.otfcc_Options, ptr %3158, i32 0, i32 24
  %3160 = load ptr, ptr %3159, align 8, !tbaa !40
  %3161 = call ptr @sdsempty()
  %3162 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3161, ptr noundef @.str, ptr noundef @.str.24, i32 noundef 3100)
  call void %3157(ptr noundef %3160, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3162)
  br label %3515

3163:                                             ; preds = %3147
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #7
  %3164 = load ptr, ptr %11, align 8, !tbaa !5
  %3165 = getelementptr inbounds %struct.cff_Stack, ptr %3164, i32 0, i32 0
  %3166 = load ptr, ptr %3165, align 8, !tbaa !28
  %3167 = load ptr, ptr %11, align 8, !tbaa !5
  %3168 = getelementptr inbounds %struct.cff_Stack, ptr %3167, i32 0, i32 2
  %3169 = load i32, ptr %3168, align 8, !tbaa !26
  %3170 = sub i32 %3169, 1
  %3171 = zext i32 %3170 to i64
  %3172 = getelementptr inbounds %struct.cff_Value, ptr %3166, i64 %3171
  %3173 = getelementptr inbounds %struct.cff_Value, ptr %3172, i32 0, i32 1
  %3174 = load double, ptr %3173, align 8, !tbaa !25
  store double %3174, ptr %68, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #7
  %3175 = load ptr, ptr %11, align 8, !tbaa !5
  %3176 = getelementptr inbounds %struct.cff_Stack, ptr %3175, i32 0, i32 0
  %3177 = load ptr, ptr %3176, align 8, !tbaa !28
  %3178 = load ptr, ptr %11, align 8, !tbaa !5
  %3179 = getelementptr inbounds %struct.cff_Stack, ptr %3178, i32 0, i32 2
  %3180 = load i32, ptr %3179, align 8, !tbaa !26
  %3181 = sub i32 %3180, 2
  %3182 = zext i32 %3181 to i64
  %3183 = getelementptr inbounds %struct.cff_Value, ptr %3177, i64 %3182
  %3184 = getelementptr inbounds %struct.cff_Value, ptr %3183, i32 0, i32 1
  %3185 = load double, ptr %3184, align 8, !tbaa !25
  store double %3185, ptr %69, align 8, !tbaa !30
  %3186 = load double, ptr %69, align 8, !tbaa !30
  %3187 = load ptr, ptr %11, align 8, !tbaa !5
  %3188 = getelementptr inbounds %struct.cff_Stack, ptr %3187, i32 0, i32 0
  %3189 = load ptr, ptr %3188, align 8, !tbaa !28
  %3190 = load ptr, ptr %11, align 8, !tbaa !5
  %3191 = getelementptr inbounds %struct.cff_Stack, ptr %3190, i32 0, i32 2
  %3192 = load i32, ptr %3191, align 8, !tbaa !26
  %3193 = sub i32 %3192, 1
  %3194 = zext i32 %3193 to i64
  %3195 = getelementptr inbounds %struct.cff_Value, ptr %3189, i64 %3194
  %3196 = getelementptr inbounds %struct.cff_Value, ptr %3195, i32 0, i32 1
  store double %3186, ptr %3196, align 8, !tbaa !25
  %3197 = load double, ptr %68, align 8, !tbaa !30
  %3198 = load ptr, ptr %11, align 8, !tbaa !5
  %3199 = getelementptr inbounds %struct.cff_Stack, ptr %3198, i32 0, i32 0
  %3200 = load ptr, ptr %3199, align 8, !tbaa !28
  %3201 = load ptr, ptr %11, align 8, !tbaa !5
  %3202 = getelementptr inbounds %struct.cff_Stack, ptr %3201, i32 0, i32 2
  %3203 = load i32, ptr %3202, align 8, !tbaa !26
  %3204 = sub i32 %3203, 2
  %3205 = zext i32 %3204 to i64
  %3206 = getelementptr inbounds %struct.cff_Value, ptr %3200, i64 %3205
  %3207 = getelementptr inbounds %struct.cff_Value, ptr %3206, i32 0, i32 1
  store double %3197, ptr %3207, align 8, !tbaa !25
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #7
  br label %3515

3208:                                             ; preds = %142
  %3209 = load ptr, ptr %11, align 8, !tbaa !5
  %3210 = getelementptr inbounds %struct.cff_Stack, ptr %3209, i32 0, i32 2
  %3211 = load i32, ptr %3210, align 8, !tbaa !26
  %3212 = icmp ult i32 %3211, 2
  br i1 %3212, label %3213, label %3224

3213:                                             ; preds = %3208
  %3214 = load ptr, ptr %13, align 8, !tbaa !5
  %3215 = getelementptr inbounds %struct.otfcc_Options, ptr %3214, i32 0, i32 24
  %3216 = load ptr, ptr %3215, align 8, !tbaa !40
  %3217 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3216, i32 0, i32 6
  %3218 = load ptr, ptr %3217, align 8, !tbaa !42
  %3219 = load ptr, ptr %13, align 8, !tbaa !5
  %3220 = getelementptr inbounds %struct.otfcc_Options, ptr %3219, i32 0, i32 24
  %3221 = load ptr, ptr %3220, align 8, !tbaa !40
  %3222 = call ptr @sdsempty()
  %3223 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3222, ptr noundef @.str, ptr noundef @.str.25, i32 noundef 3101)
  call void %3218(ptr noundef %3221, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3223)
  br label %3515

3224:                                             ; preds = %3208
  call void @llvm.lifetime.start.p0(i64 1, ptr %70) #7
  %3225 = load ptr, ptr %11, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.cff_Stack, ptr %3225, i32 0, i32 2
  %3227 = load i32, ptr %3226, align 8, !tbaa !26
  %3228 = sub i32 %3227, 1
  %3229 = trunc i32 %3228 to i8
  store i8 %3229, ptr %70, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %71) #7
  %3230 = load i8, ptr %70, align 1, !tbaa !25
  %3231 = zext i8 %3230 to i32
  %3232 = sub nsw i32 %3231, 1
  %3233 = load ptr, ptr %11, align 8, !tbaa !5
  %3234 = getelementptr inbounds %struct.cff_Stack, ptr %3233, i32 0, i32 0
  %3235 = load ptr, ptr %3234, align 8, !tbaa !28
  %3236 = load i8, ptr %70, align 1, !tbaa !25
  %3237 = zext i8 %3236 to i64
  %3238 = getelementptr inbounds %struct.cff_Value, ptr %3235, i64 %3237
  %3239 = getelementptr inbounds %struct.cff_Value, ptr %3238, i32 0, i32 1
  %3240 = load double, ptr %3239, align 8, !tbaa !25
  %3241 = fptoui double %3240 to i8
  %3242 = zext i8 %3241 to i32
  %3243 = load i8, ptr %70, align 1, !tbaa !25
  %3244 = zext i8 %3243 to i32
  %3245 = srem i32 %3242, %3244
  %3246 = sub nsw i32 %3232, %3245
  %3247 = trunc i32 %3246 to i8
  store i8 %3247, ptr %71, align 1, !tbaa !25
  %3248 = load ptr, ptr %11, align 8, !tbaa !5
  %3249 = getelementptr inbounds %struct.cff_Stack, ptr %3248, i32 0, i32 0
  %3250 = load ptr, ptr %3249, align 8, !tbaa !28
  %3251 = load i8, ptr %70, align 1, !tbaa !25
  %3252 = zext i8 %3251 to i64
  %3253 = getelementptr inbounds %struct.cff_Value, ptr %3250, i64 %3252
  %3254 = load ptr, ptr %11, align 8, !tbaa !5
  %3255 = getelementptr inbounds %struct.cff_Stack, ptr %3254, i32 0, i32 0
  %3256 = load ptr, ptr %3255, align 8, !tbaa !28
  %3257 = load i8, ptr %71, align 1, !tbaa !25
  %3258 = zext i8 %3257 to i64
  %3259 = getelementptr inbounds %struct.cff_Value, ptr %3256, i64 %3258
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3253, ptr align 8 %3259, i64 16, i1 false), !tbaa.struct !58
  call void @llvm.lifetime.end.p0(i64 1, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %70) #7
  br label %3515

3260:                                             ; preds = %142
  %3261 = load ptr, ptr %11, align 8, !tbaa !5
  %3262 = getelementptr inbounds %struct.cff_Stack, ptr %3261, i32 0, i32 2
  %3263 = load i32, ptr %3262, align 8, !tbaa !26
  %3264 = icmp ult i32 %3263, 2
  br i1 %3264, label %3265, label %3276

3265:                                             ; preds = %3260
  %3266 = load ptr, ptr %13, align 8, !tbaa !5
  %3267 = getelementptr inbounds %struct.otfcc_Options, ptr %3266, i32 0, i32 24
  %3268 = load ptr, ptr %3267, align 8, !tbaa !40
  %3269 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3268, i32 0, i32 6
  %3270 = load ptr, ptr %3269, align 8, !tbaa !42
  %3271 = load ptr, ptr %13, align 8, !tbaa !5
  %3272 = getelementptr inbounds %struct.otfcc_Options, ptr %3271, i32 0, i32 24
  %3273 = load ptr, ptr %3272, align 8, !tbaa !40
  %3274 = call ptr @sdsempty()
  %3275 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3274, ptr noundef @.str, ptr noundef @.str.26, i32 noundef 3102)
  call void %3270(ptr noundef %3273, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3275)
  br label %3515

3276:                                             ; preds = %3260
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #7
  %3277 = load ptr, ptr %11, align 8, !tbaa !5
  %3278 = getelementptr inbounds %struct.cff_Stack, ptr %3277, i32 0, i32 0
  %3279 = load ptr, ptr %3278, align 8, !tbaa !28
  %3280 = load ptr, ptr %11, align 8, !tbaa !5
  %3281 = getelementptr inbounds %struct.cff_Stack, ptr %3280, i32 0, i32 2
  %3282 = load i32, ptr %3281, align 8, !tbaa !26
  %3283 = sub i32 %3282, 1
  %3284 = zext i32 %3283 to i64
  %3285 = getelementptr inbounds %struct.cff_Value, ptr %3279, i64 %3284
  %3286 = getelementptr inbounds %struct.cff_Value, ptr %3285, i32 0, i32 1
  %3287 = load double, ptr %3286, align 8, !tbaa !25
  %3288 = fptosi double %3287 to i32
  store i32 %3288, ptr %72, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #7
  %3289 = load ptr, ptr %11, align 8, !tbaa !5
  %3290 = getelementptr inbounds %struct.cff_Stack, ptr %3289, i32 0, i32 0
  %3291 = load ptr, ptr %3290, align 8, !tbaa !28
  %3292 = load ptr, ptr %11, align 8, !tbaa !5
  %3293 = getelementptr inbounds %struct.cff_Stack, ptr %3292, i32 0, i32 2
  %3294 = load i32, ptr %3293, align 8, !tbaa !26
  %3295 = sub i32 %3294, 2
  %3296 = zext i32 %3295 to i64
  %3297 = getelementptr inbounds %struct.cff_Value, ptr %3291, i64 %3296
  %3298 = getelementptr inbounds %struct.cff_Value, ptr %3297, i32 0, i32 1
  %3299 = load double, ptr %3298, align 8, !tbaa !25
  %3300 = fptoui double %3299 to i32
  store i32 %3300, ptr %73, align 4, !tbaa !9
  %3301 = load ptr, ptr %11, align 8, !tbaa !5
  %3302 = getelementptr inbounds %struct.cff_Stack, ptr %3301, i32 0, i32 2
  %3303 = load i32, ptr %3302, align 8, !tbaa !26
  %3304 = load i32, ptr %73, align 4, !tbaa !9
  %3305 = add i32 2, %3304
  %3306 = icmp ult i32 %3303, %3305
  br i1 %3306, label %3307, label %3318

3307:                                             ; preds = %3276
  %3308 = load ptr, ptr %13, align 8, !tbaa !5
  %3309 = getelementptr inbounds %struct.otfcc_Options, ptr %3308, i32 0, i32 24
  %3310 = load ptr, ptr %3309, align 8, !tbaa !40
  %3311 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3310, i32 0, i32 6
  %3312 = load ptr, ptr %3311, align 8, !tbaa !42
  %3313 = load ptr, ptr %13, align 8, !tbaa !5
  %3314 = getelementptr inbounds %struct.otfcc_Options, ptr %3313, i32 0, i32 24
  %3315 = load ptr, ptr %3314, align 8, !tbaa !40
  %3316 = call ptr @sdsempty()
  %3317 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3316, ptr noundef @.str, ptr noundef @.str.26, i32 noundef 3102)
  call void %3312(ptr noundef %3315, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3317)
  store i32 5, ptr %74, align 4
  br label %3368

3318:                                             ; preds = %3276
  %3319 = load i32, ptr %72, align 4, !tbaa !9
  %3320 = sub nsw i32 0, %3319
  %3321 = load i32, ptr %73, align 4, !tbaa !9
  %3322 = urem i32 %3320, %3321
  store i32 %3322, ptr %72, align 4, !tbaa !9
  %3323 = load i32, ptr %72, align 4, !tbaa !9
  %3324 = icmp slt i32 %3323, 0
  br i1 %3324, label %3325, label %3329

3325:                                             ; preds = %3318
  %3326 = load i32, ptr %73, align 4, !tbaa !9
  %3327 = load i32, ptr %72, align 4, !tbaa !9
  %3328 = add i32 %3327, %3326
  store i32 %3328, ptr %72, align 4, !tbaa !9
  br label %3329

3329:                                             ; preds = %3325, %3318
  %3330 = load i32, ptr %72, align 4, !tbaa !9
  %3331 = icmp ne i32 %3330, 0
  br i1 %3331, label %3333, label %3332

3332:                                             ; preds = %3329
  store i32 5, ptr %74, align 4
  br label %3368

3333:                                             ; preds = %3329
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #7
  %3334 = load ptr, ptr %11, align 8, !tbaa !5
  %3335 = getelementptr inbounds %struct.cff_Stack, ptr %3334, i32 0, i32 2
  %3336 = load i32, ptr %3335, align 8, !tbaa !26
  %3337 = sub i32 %3336, 3
  %3338 = trunc i32 %3337 to i8
  store i8 %3338, ptr %75, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 1, ptr %76) #7
  %3339 = load ptr, ptr %11, align 8, !tbaa !5
  %3340 = getelementptr inbounds %struct.cff_Stack, ptr %3339, i32 0, i32 2
  %3341 = load i32, ptr %3340, align 8, !tbaa !26
  %3342 = sub i32 %3341, 2
  %3343 = load i32, ptr %73, align 4, !tbaa !9
  %3344 = sub i32 %3342, %3343
  %3345 = trunc i32 %3344 to i8
  store i8 %3345, ptr %76, align 1, !tbaa !25
  %3346 = load ptr, ptr %11, align 8, !tbaa !5
  %3347 = load i8, ptr %76, align 1, !tbaa !25
  %3348 = load i8, ptr %75, align 1, !tbaa !25
  call void @reverseStack(ptr noundef %3346, i8 noundef zeroext %3347, i8 noundef zeroext %3348)
  %3349 = load ptr, ptr %11, align 8, !tbaa !5
  %3350 = load i8, ptr %75, align 1, !tbaa !25
  %3351 = zext i8 %3350 to i32
  %3352 = load i32, ptr %72, align 4, !tbaa !9
  %3353 = sub nsw i32 %3351, %3352
  %3354 = add nsw i32 %3353, 1
  %3355 = trunc i32 %3354 to i8
  %3356 = load i8, ptr %75, align 1, !tbaa !25
  call void @reverseStack(ptr noundef %3349, i8 noundef zeroext %3355, i8 noundef zeroext %3356)
  %3357 = load ptr, ptr %11, align 8, !tbaa !5
  %3358 = load i8, ptr %76, align 1, !tbaa !25
  %3359 = load i8, ptr %75, align 1, !tbaa !25
  %3360 = zext i8 %3359 to i32
  %3361 = load i32, ptr %72, align 4, !tbaa !9
  %3362 = sub nsw i32 %3360, %3361
  %3363 = trunc i32 %3362 to i8
  call void @reverseStack(ptr noundef %3357, i8 noundef zeroext %3358, i8 noundef zeroext %3363)
  %3364 = load ptr, ptr %11, align 8, !tbaa !5
  %3365 = getelementptr inbounds %struct.cff_Stack, ptr %3364, i32 0, i32 2
  %3366 = load i32, ptr %3365, align 8, !tbaa !26
  %3367 = sub i32 %3366, 2
  store i32 %3367, ptr %3365, align 8, !tbaa !26
  store i32 5, ptr %74, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %76) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #7
  br label %3368

3368:                                             ; preds = %3333, %3332, %3307
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #7
  br label %3515

3369:                                             ; preds = %142
  store i32 1, ptr %74, align 4
  br label %3532

3370:                                             ; preds = %142
  %3371 = load ptr, ptr %11, align 8, !tbaa !5
  %3372 = getelementptr inbounds %struct.cff_Stack, ptr %3371, i32 0, i32 2
  %3373 = load i32, ptr %3372, align 8, !tbaa !26
  %3374 = icmp ult i32 %3373, 1
  br i1 %3374, label %3375, label %3386

3375:                                             ; preds = %3370
  %3376 = load ptr, ptr %13, align 8, !tbaa !5
  %3377 = getelementptr inbounds %struct.otfcc_Options, ptr %3376, i32 0, i32 24
  %3378 = load ptr, ptr %3377, align 8, !tbaa !40
  %3379 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3378, i32 0, i32 6
  %3380 = load ptr, ptr %3379, align 8, !tbaa !42
  %3381 = load ptr, ptr %13, align 8, !tbaa !5
  %3382 = getelementptr inbounds %struct.otfcc_Options, ptr %3381, i32 0, i32 24
  %3383 = load ptr, ptr %3382, align 8, !tbaa !40
  %3384 = call ptr @sdsempty()
  %3385 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3384, ptr noundef @.str, ptr noundef @.str.27, i32 noundef 10)
  call void %3380(ptr noundef %3383, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3385)
  br label %3515

3386:                                             ; preds = %3370
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #7
  %3387 = load ptr, ptr %11, align 8, !tbaa !5
  %3388 = getelementptr inbounds %struct.cff_Stack, ptr %3387, i32 0, i32 0
  %3389 = load ptr, ptr %3388, align 8, !tbaa !28
  %3390 = load ptr, ptr %11, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.cff_Stack, ptr %3390, i32 0, i32 2
  %3392 = load i32, ptr %3391, align 8, !tbaa !26
  %3393 = add i32 %3392, -1
  store i32 %3393, ptr %3391, align 8, !tbaa !26
  %3394 = zext i32 %3393 to i64
  %3395 = getelementptr inbounds %struct.cff_Value, ptr %3389, i64 %3394
  %3396 = getelementptr inbounds %struct.cff_Value, ptr %3395, i32 0, i32 1
  %3397 = load double, ptr %3396, align 8, !tbaa !25
  %3398 = fptoui double %3397 to i32
  store i32 %3398, ptr %77, align 4, !tbaa !9
  %3399 = getelementptr inbounds %struct.cff_Index, ptr %3, i32 0, i32 4
  %3400 = load ptr, ptr %3399, align 8, !tbaa !59
  %3401 = getelementptr inbounds %struct.cff_Index, ptr %3, i32 0, i32 3
  %3402 = load ptr, ptr %3401, align 8, !tbaa !60
  %3403 = load i16, ptr %15, align 2, !tbaa !13
  %3404 = zext i16 %3403 to i32
  %3405 = load i32, ptr %77, align 4, !tbaa !9
  %3406 = add i32 %3404, %3405
  %3407 = zext i32 %3406 to i64
  %3408 = getelementptr inbounds i32, ptr %3402, i64 %3407
  %3409 = load i32, ptr %3408, align 4, !tbaa !9
  %3410 = zext i32 %3409 to i64
  %3411 = getelementptr inbounds i8, ptr %3400, i64 %3410
  %3412 = getelementptr inbounds i8, ptr %3411, i64 -1
  %3413 = getelementptr inbounds %struct.cff_Index, ptr %3, i32 0, i32 3
  %3414 = load ptr, ptr %3413, align 8, !tbaa !60
  %3415 = load i16, ptr %15, align 2, !tbaa !13
  %3416 = zext i16 %3415 to i32
  %3417 = load i32, ptr %77, align 4, !tbaa !9
  %3418 = add i32 %3416, %3417
  %3419 = add i32 %3418, 1
  %3420 = zext i32 %3419 to i64
  %3421 = getelementptr inbounds i32, ptr %3414, i64 %3420
  %3422 = load i32, ptr %3421, align 4, !tbaa !9
  %3423 = getelementptr inbounds %struct.cff_Index, ptr %3, i32 0, i32 3
  %3424 = load ptr, ptr %3423, align 8, !tbaa !60
  %3425 = load i16, ptr %15, align 2, !tbaa !13
  %3426 = zext i16 %3425 to i32
  %3427 = load i32, ptr %77, align 4, !tbaa !9
  %3428 = add i32 %3426, %3427
  %3429 = zext i32 %3428 to i64
  %3430 = getelementptr inbounds i32, ptr %3424, i64 %3429
  %3431 = load i32, ptr %3430, align 4, !tbaa !9
  %3432 = sub i32 %3422, %3431
  %3433 = load ptr, ptr %11, align 8, !tbaa !5
  %3434 = load ptr, ptr %12, align 8, !tbaa !5
  %3435 = load ptr, ptr %13, align 8, !tbaa !5
  call void @cff_parseOutline(ptr noundef %3412, i32 noundef %3432, ptr noundef byval(%struct.cff_Index) align 8 %2, ptr noundef byval(%struct.cff_Index) align 8 %3, ptr noundef %3433, ptr noundef %3434, ptr noundef byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %3435)
  store i32 5, ptr %74, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #7
  br label %3515

3436:                                             ; preds = %142
  %3437 = load ptr, ptr %11, align 8, !tbaa !5
  %3438 = getelementptr inbounds %struct.cff_Stack, ptr %3437, i32 0, i32 2
  %3439 = load i32, ptr %3438, align 8, !tbaa !26
  %3440 = icmp ult i32 %3439, 1
  br i1 %3440, label %3441, label %3452

3441:                                             ; preds = %3436
  %3442 = load ptr, ptr %13, align 8, !tbaa !5
  %3443 = getelementptr inbounds %struct.otfcc_Options, ptr %3442, i32 0, i32 24
  %3444 = load ptr, ptr %3443, align 8, !tbaa !40
  %3445 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3444, i32 0, i32 6
  %3446 = load ptr, ptr %3445, align 8, !tbaa !42
  %3447 = load ptr, ptr %13, align 8, !tbaa !5
  %3448 = getelementptr inbounds %struct.otfcc_Options, ptr %3447, i32 0, i32 24
  %3449 = load ptr, ptr %3448, align 8, !tbaa !40
  %3450 = call ptr @sdsempty()
  %3451 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3450, ptr noundef @.str, ptr noundef @.str.28, i32 noundef 29)
  call void %3446(ptr noundef %3449, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3451)
  br label %3515

3452:                                             ; preds = %3436
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  %3453 = load ptr, ptr %11, align 8, !tbaa !5
  %3454 = getelementptr inbounds %struct.cff_Stack, ptr %3453, i32 0, i32 0
  %3455 = load ptr, ptr %3454, align 8, !tbaa !28
  %3456 = load ptr, ptr %11, align 8, !tbaa !5
  %3457 = getelementptr inbounds %struct.cff_Stack, ptr %3456, i32 0, i32 2
  %3458 = load i32, ptr %3457, align 8, !tbaa !26
  %3459 = add i32 %3458, -1
  store i32 %3459, ptr %3457, align 8, !tbaa !26
  %3460 = zext i32 %3459 to i64
  %3461 = getelementptr inbounds %struct.cff_Value, ptr %3455, i64 %3460
  %3462 = getelementptr inbounds %struct.cff_Value, ptr %3461, i32 0, i32 1
  %3463 = load double, ptr %3462, align 8, !tbaa !25
  %3464 = fptoui double %3463 to i32
  store i32 %3464, ptr %78, align 4, !tbaa !9
  %3465 = getelementptr inbounds %struct.cff_Index, ptr %2, i32 0, i32 4
  %3466 = load ptr, ptr %3465, align 8, !tbaa !59
  %3467 = getelementptr inbounds %struct.cff_Index, ptr %2, i32 0, i32 3
  %3468 = load ptr, ptr %3467, align 8, !tbaa !60
  %3469 = load i16, ptr %14, align 2, !tbaa !13
  %3470 = zext i16 %3469 to i32
  %3471 = load i32, ptr %78, align 4, !tbaa !9
  %3472 = add i32 %3470, %3471
  %3473 = zext i32 %3472 to i64
  %3474 = getelementptr inbounds i32, ptr %3468, i64 %3473
  %3475 = load i32, ptr %3474, align 4, !tbaa !9
  %3476 = zext i32 %3475 to i64
  %3477 = getelementptr inbounds i8, ptr %3466, i64 %3476
  %3478 = getelementptr inbounds i8, ptr %3477, i64 -1
  %3479 = getelementptr inbounds %struct.cff_Index, ptr %2, i32 0, i32 3
  %3480 = load ptr, ptr %3479, align 8, !tbaa !60
  %3481 = load i16, ptr %14, align 2, !tbaa !13
  %3482 = zext i16 %3481 to i32
  %3483 = load i32, ptr %78, align 4, !tbaa !9
  %3484 = add i32 %3482, %3483
  %3485 = add i32 %3484, 1
  %3486 = zext i32 %3485 to i64
  %3487 = getelementptr inbounds i32, ptr %3480, i64 %3486
  %3488 = load i32, ptr %3487, align 4, !tbaa !9
  %3489 = getelementptr inbounds %struct.cff_Index, ptr %2, i32 0, i32 3
  %3490 = load ptr, ptr %3489, align 8, !tbaa !60
  %3491 = load i16, ptr %14, align 2, !tbaa !13
  %3492 = zext i16 %3491 to i32
  %3493 = load i32, ptr %78, align 4, !tbaa !9
  %3494 = add i32 %3492, %3493
  %3495 = zext i32 %3494 to i64
  %3496 = getelementptr inbounds i32, ptr %3490, i64 %3495
  %3497 = load i32, ptr %3496, align 4, !tbaa !9
  %3498 = sub i32 %3488, %3497
  %3499 = load ptr, ptr %11, align 8, !tbaa !5
  %3500 = load ptr, ptr %12, align 8, !tbaa !5
  %3501 = load ptr, ptr %13, align 8, !tbaa !5
  call void @cff_parseOutline(ptr noundef %3478, i32 noundef %3498, ptr noundef byval(%struct.cff_Index) align 8 %2, ptr noundef byval(%struct.cff_Index) align 8 %3, ptr noundef %3499, ptr noundef %3500, ptr noundef byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %3501)
  store i32 5, ptr %74, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %3515

3502:                                             ; preds = %142
  %3503 = load ptr, ptr %13, align 8, !tbaa !5
  %3504 = getelementptr inbounds %struct.otfcc_Options, ptr %3503, i32 0, i32 24
  %3505 = load ptr, ptr %3504, align 8, !tbaa !40
  %3506 = getelementptr inbounds %struct.otfcc_ILogger, ptr %3505, i32 0, i32 6
  %3507 = load ptr, ptr %3506, align 8, !tbaa !42
  %3508 = load ptr, ptr %13, align 8, !tbaa !5
  %3509 = getelementptr inbounds %struct.otfcc_Options, ptr %3508, i32 0, i32 24
  %3510 = load ptr, ptr %3509, align 8, !tbaa !40
  %3511 = call ptr @sdsempty()
  %3512 = getelementptr inbounds %struct.cff_Value, ptr %20, i32 0, i32 1
  %3513 = load i32, ptr %3512, align 8, !tbaa !25
  %3514 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %3511, ptr noundef @.str.29, i32 noundef %3513)
  call void %3507(ptr noundef %3510, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %3514)
  store i32 1, ptr %74, align 4
  br label %3532

3515:                                             ; preds = %3452, %3441, %3386, %3375, %3368, %3265, %3224, %3213, %3163, %3152, %3125, %3114, %3085, %3074, %3029, %3018, %2987, %2971, %2908, %2872, %2861, %2820, %2809, %2799, %2788, %2741, %2730, %2701, %2690, %2645, %2634, %2589, %2578, %2533, %2522, %2505, %2475, %2444, %2433, %2410, %2371, %2348, %2309, %2235, %2132, %2045, %2034, %1950, %1939, %1878, %1867, %1859, %1620, %1381, %1242, %1035, %977, %907, %838, %755, %672, %641, %604, %574, %540, %510, %487, %457, %440, %228
  br label %3526

3516:                                             ; preds = %137, %137
  %3517 = load ptr, ptr %11, align 8, !tbaa !5
  %3518 = getelementptr inbounds %struct.cff_Stack, ptr %3517, i32 0, i32 0
  %3519 = load ptr, ptr %3518, align 8, !tbaa !28
  %3520 = load ptr, ptr %11, align 8, !tbaa !5
  %3521 = getelementptr inbounds %struct.cff_Stack, ptr %3520, i32 0, i32 2
  %3522 = load i32, ptr %3521, align 8, !tbaa !26
  %3523 = add i32 %3522, 1
  store i32 %3523, ptr %3521, align 8, !tbaa !26
  %3524 = zext i32 %3522 to i64
  %3525 = getelementptr inbounds %struct.cff_Value, ptr %3519, i64 %3524
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3525, ptr align 8 %20, i64 16, i1 false), !tbaa.struct !58
  br label %3526

3526:                                             ; preds = %3516, %3515, %137
  %3527 = load i32, ptr %17, align 4, !tbaa !9
  %3528 = load ptr, ptr %16, align 8, !tbaa !5
  %3529 = zext i32 %3527 to i64
  %3530 = getelementptr inbounds i8, ptr %3528, i64 %3529
  store ptr %3530, ptr %16, align 8, !tbaa !5
  br label %130, !llvm.loop !61

3531:                                             ; preds = %130
  store i32 0, ptr %74, align 4
  br label %3532

3532:                                             ; preds = %3531, %3502, %3369
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 2, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 2, ptr %14) #7
  %3533 = load i32, ptr %74, align 4
  switch i32 %3533, label %3535 [
    i32 0, label %3534
    i32 1, label %3534
  ]

3534:                                             ; preds = %3532, %3532
  ret void

3535:                                             ; preds = %3532
  unreachable
}

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i16 @compute_subr_bias(i16 noundef zeroext) #1

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopSetWidth(ptr noundef, double noundef) #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopNewContour(ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopLineTo(ptr noundef, double noundef, double noundef) #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopCurveTo(ptr noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopsetHint(ptr noundef, i1 noundef zeroext, double noundef, double noundef) #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopsetMask(ptr noundef, i1 noundef zeroext, ptr noundef) #3

; Function Attrs: nounwind uwtable
declare hidden double @callback_nopgetrand(ptr noundef) #3

declare i32 @cff_decodeCS2Token(ptr noundef, ptr noundef) #4

declare ptr @sdscatprintf(ptr noundef, ptr noundef, ...) #4

declare ptr @sdsempty() #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fabs.f64(double) #5

; Function Attrs: nounwind
declare double @sqrt(double noundef) #6

; Function Attrs: nounwind uwtable
declare hidden void @reverseStack(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) #3

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { "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 #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { 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 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 4}
!12 = !{!"", !10, i64 0, !10, i64 4, !7, i64 8, !6, i64 16, !6, i64 24}
!13 = !{!14, !14, i64 0}
!14 = !{!"short", !7, i64 0}
!15 = !{!16, !6, i64 0}
!16 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48}
!17 = !{!16, !6, i64 8}
!18 = !{!16, !6, i64 16}
!19 = !{!16, !6, i64 24}
!20 = !{!16, !6, i64 32}
!21 = !{!16, !6, i64 40}
!22 = !{!16, !6, i64 48}
!23 = !{!24, !10, i64 0}
!24 = !{!"", !10, i64 0, !7, i64 8}
!25 = !{!7, !7, i64 0}
!26 = !{!27, !10, i64 520}
!27 = !{!"", !6, i64 0, !7, i64 8, !10, i64 520, !10, i64 524, !7, i64 528}
!28 = !{!27, !6, i64 0}
!29 = !{!27, !7, i64 528}
!30 = !{!31, !31, i64 0}
!31 = !{!"double", !7, i64 0}
!32 = distinct !{!32, !33}
!33 = !{!"llvm.loop.mustprogress"}
!34 = !{!35, !35, i64 0}
!35 = !{!"_Bool", !7, i64 0}
!36 = !{i8 0, i8 2}
!37 = !{}
!38 = distinct !{!38, !33}
!39 = distinct !{!39, !33}
!40 = !{!41, !6, i64 32}
!41 = !{!"", !35, i64 0, !35, i64 1, !35, i64 2, !35, i64 3, !35, i64 4, !35, i64 5, !35, i64 6, !35, i64 7, !35, i64 8, !35, i64 9, !35, i64 10, !35, i64 11, !35, i64 12, !35, i64 13, !35, i64 14, !35, i64 15, !35, i64 16, !35, i64 17, !35, i64 18, !35, i64 19, !35, i64 20, !35, i64 21, !35, i64 22, !6, i64 24, !6, i64 32}
!42 = !{!43, !6, i64 48}
!43 = !{!"otfcc_ILogger", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}
!44 = distinct !{!44, !33}
!45 = distinct !{!45, !33}
!46 = distinct !{!46, !33}
!47 = distinct !{!47, !33}
!48 = distinct !{!48, !33}
!49 = distinct !{!49, !33}
!50 = distinct !{!50, !33}
!51 = distinct !{!51, !33}
!52 = distinct !{!52, !33}
!53 = distinct !{!53, !33}
!54 = distinct !{!54, !33}
!55 = distinct !{!55, !33}
!56 = distinct !{!56, !33}
!57 = distinct !{!57, !33}
!58 = !{i64 0, i64 4, !9, i64 8, i64 8, !25}
!59 = !{!12, !6, i64 24}
!60 = !{!12, !6, i64 16}
!61 = distinct !{!61, !33}


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

%struct.cff_Index = type { i32, i32, i8, ptr, ptr }
%struct.cff_IOutlineBuilder = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.cff_Value = type { i32, %union.anon.2 }
%union.anon.2 = type { double }

@.str = external hidden unnamed_addr constant [91 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [92 x i8], align 1

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @__caryll_allocate_clean(i64 noundef, i64 noundef) local_unnamed_addr #1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @cff_parseOutline(ptr noundef %0, i32 noundef %1, ptr noundef byval(%struct.cff_Index) align 8 %2, ptr noundef byval(%struct.cff_Index) align 8 %3, ptr noundef %4, ptr noundef %5, ptr noundef byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %7) local_unnamed_addr #3 {
  %9 = alloca %struct.cff_Value, align 8
  %10 = getelementptr inbounds i8, ptr %2, i64 4
  %11 = load i32, ptr %10, align 4, !tbaa !5
  %12 = trunc i32 %11 to i16
  %13 = tail call zeroext i16 @compute_subr_bias(i16 noundef zeroext %12)
  %14 = getelementptr inbounds i8, ptr %3, i64 4
  %15 = load i32, ptr %14, align 4, !tbaa !5
  %16 = trunc i32 %15 to i16
  %17 = tail call zeroext i16 @compute_subr_bias(i16 noundef zeroext %16)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #7
  %18 = load ptr, ptr %6, align 8, !tbaa !11
  %19 = getelementptr inbounds i8, ptr %6, i64 8
  %20 = load ptr, ptr %19, align 8, !tbaa !13
  %21 = getelementptr inbounds i8, ptr %6, i64 16
  %22 = load ptr, ptr %21, align 8, !tbaa !14
  %23 = getelementptr inbounds i8, ptr %6, i64 24
  %24 = load ptr, ptr %23, align 8, !tbaa !15
  %25 = getelementptr inbounds i8, ptr %6, i64 32
  %26 = load ptr, ptr %25, align 8, !tbaa !16
  %27 = getelementptr inbounds i8, ptr %6, i64 40
  %28 = load ptr, ptr %27, align 8, !tbaa !17
  %29 = getelementptr inbounds i8, ptr %6, i64 48
  %30 = load ptr, ptr %29, align 8, !tbaa !18
  %.not = icmp eq ptr %18, null
  %spec.store.select = select i1 %.not, ptr @callback_nopSetWidth, ptr %18
  %.not864 = icmp eq ptr %20, null
  %spec.store.select4 = select i1 %.not864, ptr @callback_nopNewContour, ptr %20
  %.not865 = icmp eq ptr %22, null
  %spec.store.select1 = select i1 %.not865, ptr @callback_nopLineTo, ptr %22
  %.not866 = icmp eq ptr %24, null
  %spec.store.select6 = select i1 %.not866, ptr @callback_nopCurveTo, ptr %24
  %.not867 = icmp eq ptr %26, null
  %spec.store.select2 = select i1 %.not867, ptr @callback_nopsetHint, ptr %26
  %.not868 = icmp eq ptr %28, null
  %spec.store.select5 = select i1 %.not868, ptr @callback_nopsetMask, ptr %28
  %.not869 = icmp eq ptr %30, null
  %spec.store.select3 = select i1 %.not869, ptr @callback_nopgetrand, ptr %30
  %31 = zext i32 %1 to i64
  %32 = getelementptr inbounds i8, ptr %0, i64 %31
  %.not966 = icmp eq i32 %1, 0
  br i1 %.not966, label %.loopexit899, label %.lr.ph964

.lr.ph964:                                        ; preds = %8
  %33 = getelementptr inbounds i8, ptr %4, i64 520
  %34 = getelementptr inbounds i8, ptr %9, i64 8
  %35 = getelementptr inbounds i8, ptr %2, i64 24
  %36 = getelementptr inbounds i8, ptr %2, i64 16
  %37 = zext i16 %13 to i32
  %38 = getelementptr inbounds i8, ptr %7, i64 32
  %39 = getelementptr inbounds i8, ptr %3, i64 24
  %40 = getelementptr inbounds i8, ptr %3, i64 16
  %41 = zext i16 %17 to i32
  %42 = getelementptr inbounds i8, ptr %4, i64 8
  %43 = getelementptr inbounds i8, ptr %4, i64 528
  br label %44

44:                                               ; preds = %.lr.ph964, %1419
  %.0962 = phi ptr [ %0, %.lr.ph964 ], [ %1421, %1419 ]
  %45 = call i32 @cff_decodeCS2Token(ptr noundef %.0962, ptr noundef nonnull %9) #7
  %46 = load i32, ptr %9, align 8, !tbaa !19
  switch i32 %46, label %1419 [
    i32 1, label %47
    i32 2, label %1413
    i32 3, label %1413
  ]

47:                                               ; preds = %44
  %48 = load i32, ptr %34, align 8, !tbaa !21
  switch i32 %48, label %1406 [
    i32 1, label %53
    i32 3, label %53
    i32 18, label %53
    i32 23, label %53
    i32 19, label %87
    i32 20, label %87
    i32 4, label %218
    i32 21, label %239
    i32 22, label %266
    i32 14, label %287
    i32 5, label %.preheader
    i32 7, label %306
    i32 6, label %339
    i32 8, label %.preheader890
    i32 24, label %.preheader891
    i32 25, label %.preheader892
    i32 26, label %471
    i32 27, label %527
    i32 30, label %583
    i32 31, label %659
    i32 3106, label %735
    i32 3107, label %764
    i32 3108, label %800
    i32 3109, label %837
    i32 3075, label %906
    i32 3076, label %931
    i32 3077, label %956
    i32 3081, label %973
    i32 3082, label %991
    i32 3083, label %1013
    i32 3084, label %1035
    i32 3086, label %1057
    i32 3087, label %1073
    i32 3090, label %1096
    i32 3092, label %1107
    i32 3093, label %1130
    i32 3094, label %1150
    i32 3095, label %1181
    i32 3096, label %1193
    i32 3098, label %1215
    i32 3099, label %1236
    i32 3100, label %1254
    i32 3101, label %1278
    i32 3102, label %1301
    i32 11, label %.loopexit899
    i32 10, label %1346
    i32 29, label %1376
  ]

.preheader892:                                    ; preds = %47
  %49 = load i32, ptr %33, align 8, !tbaa !22
  %.not971 = icmp eq i32 %49, 6
  br i1 %.not971, label %._crit_edge925, label %.lr.ph924

.preheader891:                                    ; preds = %47
  %50 = load i32, ptr %33, align 8, !tbaa !22
  %.not972 = icmp eq i32 %50, 2
  br i1 %.not972, label %._crit_edge929, label %.lr.ph928

.preheader890:                                    ; preds = %47
  %51 = load i32, ptr %33, align 8, !tbaa !22
  %.not973 = icmp eq i32 %51, 0
  br i1 %.not973, label %._crit_edge934, label %.lr.ph933

.preheader:                                       ; preds = %47
  %52 = load i32, ptr %33, align 8, !tbaa !22
  %.not976 = icmp eq i32 %52, 0
  br i1 %.not976, label %._crit_edge947, label %.lr.ph946

53:                                               ; preds = %47, %47, %47, %47
  %54 = load i32, ptr %33, align 8, !tbaa !22
  %55 = and i32 %54, 1
  %.not884 = icmp eq i32 %55, 0
  br i1 %.not884, label %60, label %56

56:                                               ; preds = %53
  %57 = load ptr, ptr %4, align 8, !tbaa !24
  %58 = getelementptr inbounds i8, ptr %57, i64 8
  %59 = load double, ptr %58, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %59) #7
  %.pre998 = load i32, ptr %33, align 8, !tbaa !22
  %.pre999 = and i32 %.pre998, 1
  br label %60

60:                                               ; preds = %56, %53
  %.pre-phi = phi i32 [ %.pre999, %56 ], [ 0, %53 ]
  %61 = phi i32 [ %.pre998, %56 ], [ %54, %53 ]
  %62 = lshr i32 %61, 1
  %63 = load i8, ptr %43, align 8, !tbaa !25
  %64 = trunc i32 %62 to i8
  %65 = add i8 %63, %64
  store i8 %65, ptr %43, align 8, !tbaa !25
  %66 = icmp ugt i32 %61, %.pre-phi
  br i1 %66, label %.lr.ph960.preheader, label %._crit_edge961

.lr.ph960.preheader:                              ; preds = %60
  %67 = trunc i32 %61 to i16
  %68 = and i16 %67, 1
  br label %.lr.ph960

._crit_edge961:                                   ; preds = %.lr.ph960, %60
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

.lr.ph960:                                        ; preds = %.lr.ph960.preheader, %.lr.ph960
  %.0825958 = phi double [ %82, %.lr.ph960 ], [ 0.000000e+00, %.lr.ph960.preheader ]
  %.0826957 = phi i16 [ %83, %.lr.ph960 ], [ %68, %.lr.ph960.preheader ]
  %69 = load ptr, ptr %4, align 8, !tbaa !24
  %70 = zext i16 %.0826957 to i64
  %71 = getelementptr inbounds %struct.cff_Value, ptr %69, i64 %70, i32 1
  %72 = load double, ptr %71, align 8, !tbaa !21
  %73 = getelementptr inbounds %struct.cff_Value, ptr %69, i64 %70
  %74 = getelementptr inbounds i8, ptr %73, i64 24
  %75 = load double, ptr %74, align 8, !tbaa !21
  %76 = load i32, ptr %34, align 8
  %77 = icmp eq i32 %76, 3
  %78 = icmp eq i32 %76, 23
  %79 = or i1 %77, %78
  %80 = fadd double %.0825958, %72
  call void %spec.store.select2(ptr noundef %5, i1 noundef zeroext %79, double noundef %80, double noundef %75) #7
  %81 = fadd double %72, %75
  %82 = fadd double %.0825958, %81
  %83 = add i16 %.0826957, 2
  %84 = zext i16 %83 to i32
  %85 = load i32, ptr %33, align 8, !tbaa !22
  %86 = icmp ugt i32 %85, %84
  br i1 %86, label %.lr.ph960, label %._crit_edge961, !llvm.loop !26

87:                                               ; preds = %47, %47
  %88 = load i32, ptr %33, align 8, !tbaa !22
  %89 = and i32 %88, 1
  %.not877 = icmp eq i32 %89, 0
  br i1 %.not877, label %94, label %90

90:                                               ; preds = %87
  %91 = load ptr, ptr %4, align 8, !tbaa !24
  %92 = getelementptr inbounds i8, ptr %91, i64 8
  %93 = load double, ptr %92, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %93) #7
  %.pre996 = load i32, ptr %33, align 8, !tbaa !22
  %.pre1000 = and i32 %.pre996, 1
  br label %94

94:                                               ; preds = %90, %87
  %.pre-phi1001 = phi i32 [ %.pre1000, %90 ], [ 0, %87 ]
  %95 = phi i32 [ %.pre996, %90 ], [ %88, %87 ]
  %96 = load i8, ptr %43, align 8, !tbaa !25
  %97 = icmp ne i8 %96, 0
  %98 = lshr i32 %95, 1
  %99 = trunc i32 %98 to i8
  %100 = add i8 %96, %99
  store i8 %100, ptr %43, align 8, !tbaa !25
  %101 = icmp ugt i32 %95, %.pre-phi1001
  br i1 %101, label %.lr.ph951.preheader, label %._crit_edge952

.lr.ph951.preheader:                              ; preds = %94
  %102 = trunc i32 %95 to i16
  %103 = and i16 %102, 1
  br label %.lr.ph951

._crit_edge952.loopexit:                          ; preds = %.lr.ph951
  %.pre997 = load i8, ptr %43, align 8, !tbaa !25
  br label %._crit_edge952

._crit_edge952:                                   ; preds = %._crit_edge952.loopexit, %94
  %104 = phi i8 [ %.pre997, %._crit_edge952.loopexit ], [ %100, %94 ]
  %105 = zext i8 %104 to i32
  %106 = add nuw nsw i32 %105, 7
  %107 = lshr i32 %106, 3
  %108 = zext nneg i32 %106 to i64
  %109 = call ptr @__caryll_allocate_clean(i64 noundef %108, i64 noundef 405)
  %.not977 = icmp eq i8 %104, 0
  br i1 %.not977, label %._crit_edge956, label %iter.check

iter.check:                                       ; preds = %._crit_edge952
  %wide.trip.count = zext nneg i32 %107 to i64
  %min.iters.check = icmp ult i8 %104, 57
  br i1 %min.iters.check, label %.lr.ph955.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %110 = add nsw i64 %wide.trip.count, -1
  %111 = trunc nsw i64 %110 to i32
  %112 = xor i32 %45, -1
  %113 = icmp ult i32 %112, %111
  %114 = icmp ugt i64 %110, 4294967295
  %115 = or i1 %113, %114
  br i1 %115, label %.lr.ph955.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck
  %116 = shl nuw nsw i64 %wide.trip.count, 3
  %scevgep = getelementptr i8, ptr %109, i64 %116
  %117 = zext i32 %45 to i64
  %scevgep1018 = getelementptr i8, ptr %.0962, i64 %117
  %118 = add nuw nsw i64 %wide.trip.count, %117
  %scevgep1019 = getelementptr i8, ptr %.0962, i64 %118
  %bound0 = icmp ult ptr %109, %scevgep1019
  %bound1 = icmp ult ptr %scevgep1018, %scevgep
  %found.conflict = and i1 %bound0, %bound1
  br i1 %found.conflict, label %.lr.ph955.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.memcheck
  %min.iters.check1020 = icmp ult i8 %104, 121
  br i1 %min.iters.check1020, label %vec.epilog.ph, label %vector.ph

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i64 %wide.trip.count, 48
  %invariant.gep = getelementptr i8, ptr %109, i64 -7
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %119 = trunc i64 %index to i32
  %120 = add i32 %45, %119
  %121 = zext i32 %120 to i64
  %122 = getelementptr inbounds i8, ptr %.0962, i64 %121
  %wide.load = load <16 x i8>, ptr %122, align 1, !tbaa !21, !alias.scope !28
  %123 = shl nuw nsw i64 %index, 3
  %124 = lshr <16 x i8> %wide.load, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
  %125 = lshr <16 x i8> %wide.load, <i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6>
  %126 = and <16 x i8> %125, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %127 = lshr <16 x i8> %wide.load, <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5>
  %128 = and <16 x i8> %127, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %129 = lshr <16 x i8> %wide.load, <i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4>
  %130 = and <16 x i8> %129, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %131 = lshr <16 x i8> %wide.load, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
  %132 = and <16 x i8> %131, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %133 = lshr <16 x i8> %wide.load, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
  %134 = and <16 x i8> %133, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %135 = lshr <16 x i8> %wide.load, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %136 = and <16 x i8> %135, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %137 = and <16 x i8> %wide.load, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %138 = or disjoint i64 %123, 7
  %gep = getelementptr i8, ptr %invariant.gep, i64 %138
  %139 = shufflevector <16 x i8> %124, <16 x i8> %126, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %140 = shufflevector <16 x i8> %128, <16 x i8> %130, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %141 = shufflevector <16 x i8> %132, <16 x i8> %134, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %142 = shufflevector <16 x i8> %136, <16 x i8> %137, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %143 = shufflevector <32 x i8> %139, <32 x i8> %140, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
  %144 = shufflevector <32 x i8> %141, <32 x i8> %142, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
  %interleaved.vec = shufflevector <64 x i8> %143, <64 x i8> %144, <128 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 112, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 97, i32 113, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 98, i32 114, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 99, i32 115, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 116, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 101, i32 117, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 102, i32 118, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 103, i32 119, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 120, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 105, i32 121, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 106, i32 122, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 107, i32 123, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 124, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 109, i32 125, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 110, i32 126, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95, i32 111, i32 127>
  store <128 x i8> %interleaved.vec, ptr %gep, align 1, !tbaa !31
  %index.next = add nuw i64 %index, 16
  %145 = icmp eq i64 %index.next, %n.vec
  br i1 %145, label %middle.block, label %vector.body, !llvm.loop !33

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count
  br i1 %cmp.n, label %._crit_edge956, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  %n.vec.remaining = and i64 %wide.trip.count, 8
  %min.epilog.iters.check.not.not = icmp eq i64 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check.not.not, label %.lr.ph955.preheader, label %vec.epilog.ph

.lr.ph955.preheader:                              ; preds = %vec.epilog.middle.block, %vector.memcheck, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %indvars.iv990.ph = phi i64 [ 0, %iter.check ], [ 0, %vector.memcheck ], [ 0, %vector.scevcheck ], [ %n.vec, %vec.epilog.iter.check ], [ %n.vec1022, %vec.epilog.middle.block ]
  br label %.lr.ph955

vec.epilog.ph:                                    ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
  %vec.epilog.resume.val = phi i64 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec1022 = and i64 %wide.trip.count, 56
  %invariant.gep1040 = getelementptr i8, ptr %109, i64 -7
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index1023 = phi i64 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next1026, %vec.epilog.vector.body ]
  %146 = trunc i64 %index1023 to i32
  %147 = add i32 %45, %146
  %148 = zext i32 %147 to i64
  %149 = getelementptr inbounds i8, ptr %.0962, i64 %148
  %wide.load1024 = load <8 x i8>, ptr %149, align 1, !tbaa !21, !alias.scope !36
  %150 = shl nuw nsw i64 %index1023, 3
  %151 = lshr <8 x i8> %wide.load1024, <i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7, i8 7>
  %152 = lshr <8 x i8> %wide.load1024, <i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6>
  %153 = and <8 x i8> %152, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %154 = lshr <8 x i8> %wide.load1024, <i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5, i8 5>
  %155 = and <8 x i8> %154, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %156 = lshr <8 x i8> %wide.load1024, <i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4, i8 4>
  %157 = and <8 x i8> %156, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %158 = lshr <8 x i8> %wide.load1024, <i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3, i8 3>
  %159 = and <8 x i8> %158, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %160 = lshr <8 x i8> %wide.load1024, <i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2, i8 2>
  %161 = and <8 x i8> %160, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %162 = lshr <8 x i8> %wide.load1024, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %163 = and <8 x i8> %162, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %164 = and <8 x i8> %wide.load1024, <i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1, i8 1>
  %165 = or disjoint i64 %150, 7
  %gep1041 = getelementptr i8, ptr %invariant.gep1040, i64 %165
  %166 = shufflevector <8 x i8> %151, <8 x i8> %153, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
  %167 = shufflevector <8 x i8> %155, <8 x i8> %157, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
  %168 = shufflevector <8 x i8> %159, <8 x i8> %161, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
  %169 = shufflevector <8 x i8> %163, <8 x i8> %164, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
  %170 = shufflevector <16 x i8> %166, <16 x i8> %167, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %171 = shufflevector <16 x i8> %168, <16 x i8> %169, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
  %interleaved.vec1025 = shufflevector <32 x i8> %170, <32 x i8> %171, <64 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 56, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 57, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 58, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 59, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 60, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 61, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 62, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55, i32 63>
  store <64 x i8> %interleaved.vec1025, ptr %gep1041, align 1, !tbaa !31
  %index.next1026 = add nuw i64 %index1023, 8
  %172 = icmp eq i64 %index.next1026, %n.vec1022
  br i1 %172, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !39

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n1027 = icmp eq i64 %n.vec1022, %wide.trip.count
  br i1 %cmp.n1027, label %._crit_edge956, label %.lr.ph955.preheader

.lr.ph951:                                        ; preds = %.lr.ph951.preheader, %.lr.ph951
  %.0827949 = phi double [ %182, %.lr.ph951 ], [ 0.000000e+00, %.lr.ph951.preheader ]
  %.0828948 = phi i16 [ %183, %.lr.ph951 ], [ %103, %.lr.ph951.preheader ]
  %173 = load ptr, ptr %4, align 8, !tbaa !24
  %174 = zext i16 %.0828948 to i64
  %175 = getelementptr inbounds %struct.cff_Value, ptr %173, i64 %174, i32 1
  %176 = load double, ptr %175, align 8, !tbaa !21
  %177 = getelementptr inbounds %struct.cff_Value, ptr %173, i64 %174
  %178 = getelementptr inbounds i8, ptr %177, i64 24
  %179 = load double, ptr %178, align 8, !tbaa !21
  %180 = fadd double %.0827949, %176
  call void %spec.store.select2(ptr noundef %5, i1 noundef zeroext %97, double noundef %180, double noundef %179) #7
  %181 = fadd double %176, %179
  %182 = fadd double %.0827949, %181
  %183 = add i16 %.0828948, 2
  %184 = zext i16 %183 to i32
  %185 = load i32, ptr %33, align 8, !tbaa !22
  %186 = icmp ugt i32 %185, %184
  br i1 %186, label %.lr.ph951, label %._crit_edge952.loopexit, !llvm.loop !40

._crit_edge956:                                   ; preds = %.lr.ph955, %middle.block, %vec.epilog.middle.block, %._crit_edge952
  %187 = load i32, ptr %34, align 8, !tbaa !21
  %188 = icmp eq i32 %187, 20
  call void %spec.store.select5(ptr noundef %5, i1 noundef zeroext %188, ptr noundef %109) #7
  %189 = add i32 %107, %45
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

.lr.ph955:                                        ; preds = %.lr.ph955.preheader, %.lr.ph955
  %indvars.iv990 = phi i64 [ %indvars.iv.next991, %.lr.ph955 ], [ %indvars.iv990.ph, %.lr.ph955.preheader ]
  %190 = trunc nuw nsw i64 %indvars.iv990 to i32
  %191 = add i32 %45, %190
  %192 = zext i32 %191 to i64
  %193 = getelementptr inbounds i8, ptr %.0962, i64 %192
  %194 = load i8, ptr %193, align 1, !tbaa !21
  %195 = shl nuw nsw i64 %indvars.iv990, 3
  %196 = getelementptr inbounds i8, ptr %109, i64 %195
  %.lobit = lshr i8 %194, 7
  store i8 %.lobit, ptr %196, align 1, !tbaa !31
  %197 = or disjoint i64 %195, 1
  %198 = getelementptr inbounds i8, ptr %109, i64 %197
  %199 = lshr i8 %194, 6
  %.lobit878 = and i8 %199, 1
  store i8 %.lobit878, ptr %198, align 1, !tbaa !31
  %200 = or disjoint i64 %195, 2
  %201 = getelementptr inbounds i8, ptr %109, i64 %200
  %202 = lshr i8 %194, 5
  %.lobit879 = and i8 %202, 1
  store i8 %.lobit879, ptr %201, align 1, !tbaa !31
  %203 = or disjoint i64 %195, 3
  %204 = getelementptr inbounds i8, ptr %109, i64 %203
  %205 = lshr i8 %194, 4
  %.lobit880 = and i8 %205, 1
  store i8 %.lobit880, ptr %204, align 1, !tbaa !31
  %206 = or disjoint i64 %195, 4
  %207 = getelementptr inbounds i8, ptr %109, i64 %206
  %208 = lshr i8 %194, 3
  %.lobit881 = and i8 %208, 1
  store i8 %.lobit881, ptr %207, align 1, !tbaa !31
  %209 = or disjoint i64 %195, 5
  %210 = getelementptr inbounds i8, ptr %109, i64 %209
  %211 = lshr i8 %194, 2
  %.lobit882 = and i8 %211, 1
  store i8 %.lobit882, ptr %210, align 1, !tbaa !31
  %212 = or disjoint i64 %195, 6
  %213 = getelementptr inbounds i8, ptr %109, i64 %212
  %214 = lshr i8 %194, 1
  %.lobit883 = and i8 %214, 1
  store i8 %.lobit883, ptr %213, align 1, !tbaa !31
  %215 = and i8 %194, 1
  %216 = or disjoint i64 %195, 7
  %217 = getelementptr inbounds i8, ptr %109, i64 %216
  store i8 %215, ptr %217, align 1, !tbaa !31
  %indvars.iv.next991 = add nuw nsw i64 %indvars.iv990, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next991, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge956, label %.lr.ph955, !llvm.loop !41

218:                                              ; preds = %47
  %219 = load i32, ptr %33, align 8, !tbaa !22
  switch i32 %219, label %226 [
    i32 0, label %220
    i32 1, label %232
  ]

220:                                              ; preds = %218
  %221 = load ptr, ptr %38, align 8, !tbaa !42
  %222 = getelementptr inbounds i8, ptr %221, i64 48
  %223 = load ptr, ptr %222, align 8, !tbaa !44
  %224 = call ptr @sdsempty() #7
  %225 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %224, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 4) #7
  call void %223(ptr noundef %221, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %225) #7
  br label %1419

226:                                              ; preds = %218
  %227 = load ptr, ptr %4, align 8, !tbaa !24
  %228 = add i32 %219, -2
  %229 = zext i32 %228 to i64
  %230 = getelementptr inbounds %struct.cff_Value, ptr %227, i64 %229, i32 1
  %231 = load double, ptr %230, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %231) #7
  br label %232

232:                                              ; preds = %218, %226
  call void %spec.store.select4(ptr noundef %5) #7
  %233 = load ptr, ptr %4, align 8, !tbaa !24
  %234 = load i32, ptr %33, align 8, !tbaa !22
  %235 = add i32 %234, -1
  %236 = zext i32 %235 to i64
  %237 = getelementptr inbounds %struct.cff_Value, ptr %233, i64 %236, i32 1
  %238 = load double, ptr %237, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %238) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

239:                                              ; preds = %47
  %240 = load i32, ptr %33, align 8, !tbaa !22
  %241 = icmp ult i32 %240, 2
  br i1 %241, label %242, label %248

242:                                              ; preds = %239
  %243 = load ptr, ptr %38, align 8, !tbaa !42
  %244 = getelementptr inbounds i8, ptr %243, i64 48
  %245 = load ptr, ptr %244, align 8, !tbaa !44
  %246 = call ptr @sdsempty() #7
  %247 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %246, ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, i32 noundef 21) #7
  call void %245(ptr noundef %243, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %247) #7
  br label %1419

248:                                              ; preds = %239
  %.not875 = icmp eq i32 %240, 2
  br i1 %.not875, label %255, label %249

249:                                              ; preds = %248
  %250 = load ptr, ptr %4, align 8, !tbaa !24
  %251 = add i32 %240, -3
  %252 = zext i32 %251 to i64
  %253 = getelementptr inbounds %struct.cff_Value, ptr %250, i64 %252, i32 1
  %254 = load double, ptr %253, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %254) #7
  br label %255

255:                                              ; preds = %249, %248
  call void %spec.store.select4(ptr noundef %5) #7
  %256 = load ptr, ptr %4, align 8, !tbaa !24
  %257 = load i32, ptr %33, align 8, !tbaa !22
  %258 = add i32 %257, -2
  %259 = zext i32 %258 to i64
  %260 = getelementptr inbounds %struct.cff_Value, ptr %256, i64 %259, i32 1
  %261 = load double, ptr %260, align 8, !tbaa !21
  %262 = add i32 %257, -1
  %263 = zext i32 %262 to i64
  %264 = getelementptr inbounds %struct.cff_Value, ptr %256, i64 %263, i32 1
  %265 = load double, ptr %264, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %261, double noundef %265) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

266:                                              ; preds = %47
  %267 = load i32, ptr %33, align 8, !tbaa !22
  switch i32 %267, label %274 [
    i32 0, label %268
    i32 1, label %280
  ]

268:                                              ; preds = %266
  %269 = load ptr, ptr %38, align 8, !tbaa !42
  %270 = getelementptr inbounds i8, ptr %269, i64 48
  %271 = load ptr, ptr %270, align 8, !tbaa !44
  %272 = call ptr @sdsempty() #7
  %273 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %272, ptr noundef nonnull @.str, ptr noundef nonnull @.str.3, i32 noundef 22) #7
  call void %271(ptr noundef %269, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %273) #7
  br label %1419

274:                                              ; preds = %266
  %275 = load ptr, ptr %4, align 8, !tbaa !24
  %276 = add i32 %267, -2
  %277 = zext i32 %276 to i64
  %278 = getelementptr inbounds %struct.cff_Value, ptr %275, i64 %277, i32 1
  %279 = load double, ptr %278, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %279) #7
  br label %280

280:                                              ; preds = %266, %274
  call void %spec.store.select4(ptr noundef %5) #7
  %281 = load ptr, ptr %4, align 8, !tbaa !24
  %282 = load i32, ptr %33, align 8, !tbaa !22
  %283 = add i32 %282, -1
  %284 = zext i32 %283 to i64
  %285 = getelementptr inbounds %struct.cff_Value, ptr %281, i64 %284, i32 1
  %286 = load double, ptr %285, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %286, double noundef 0.000000e+00) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

287:                                              ; preds = %47
  %288 = load i32, ptr %33, align 8, !tbaa !22
  %.not873 = icmp eq i32 %288, 0
  br i1 %.not873, label %1419, label %289

289:                                              ; preds = %287
  %290 = load ptr, ptr %4, align 8, !tbaa !24
  %291 = add i32 %288, -1
  %292 = zext i32 %291 to i64
  %293 = getelementptr inbounds %struct.cff_Value, ptr %290, i64 %292, i32 1
  %294 = load double, ptr %293, align 8, !tbaa !21
  call void %spec.store.select(ptr noundef %5, double noundef %294) #7
  br label %1419

.lr.ph946:                                        ; preds = %.preheader, %.lr.ph946
  %.0821945 = phi i32 [ %303, %.lr.ph946 ], [ 0, %.preheader ]
  %295 = load ptr, ptr %4, align 8, !tbaa !24
  %296 = zext i32 %.0821945 to i64
  %297 = getelementptr inbounds %struct.cff_Value, ptr %295, i64 %296, i32 1
  %298 = load double, ptr %297, align 8, !tbaa !21
  %299 = or disjoint i32 %.0821945, 1
  %300 = zext i32 %299 to i64
  %301 = getelementptr inbounds %struct.cff_Value, ptr %295, i64 %300, i32 1
  %302 = load double, ptr %301, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %298, double noundef %302) #7
  %303 = add i32 %.0821945, 2
  %304 = load i32, ptr %33, align 8, !tbaa !22
  %305 = icmp ult i32 %303, %304
  br i1 %305, label %.lr.ph946, label %._crit_edge947, !llvm.loop !46

._crit_edge947:                                   ; preds = %.lr.ph946, %.preheader
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

306:                                              ; preds = %47
  %307 = load i32, ptr %33, align 8, !tbaa !22
  %308 = and i32 %307, 1
  %.not872 = icmp eq i32 %308, 0
  br i1 %.not872, label %.preheader885, label %309

.preheader885:                                    ; preds = %306
  %.not975 = icmp eq i32 %307, 0
  br i1 %.not975, label %.loopexit, label %.lr.ph944

309:                                              ; preds = %306
  %310 = load ptr, ptr %4, align 8, !tbaa !24
  %311 = getelementptr inbounds i8, ptr %310, i64 8
  %312 = load double, ptr %311, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %312) #7
  %313 = load i32, ptr %33, align 8, !tbaa !22
  %314 = icmp ugt i32 %313, 1
  br i1 %314, label %.lr.ph942, label %.loopexit

.lr.ph942:                                        ; preds = %309, %.lr.ph942
  %.1940 = phi i32 [ %324, %.lr.ph942 ], [ 1, %309 ]
  %315 = load ptr, ptr %4, align 8, !tbaa !24
  %316 = zext i32 %.1940 to i64
  %317 = getelementptr inbounds %struct.cff_Value, ptr %315, i64 %316, i32 1
  %318 = load double, ptr %317, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %318, double noundef 0.000000e+00) #7
  %319 = load ptr, ptr %4, align 8, !tbaa !24
  %320 = add nuw i32 %.1940, 1
  %321 = zext i32 %320 to i64
  %322 = getelementptr inbounds %struct.cff_Value, ptr %319, i64 %321, i32 1
  %323 = load double, ptr %322, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %323) #7
  %324 = add i32 %.1940, 2
  %325 = load i32, ptr %33, align 8, !tbaa !22
  %326 = icmp ult i32 %324, %325
  br i1 %326, label %.lr.ph942, label %.loopexit, !llvm.loop !47

.lr.ph944:                                        ; preds = %.preheader885, %.lr.ph944
  %.2943 = phi i32 [ %336, %.lr.ph944 ], [ 0, %.preheader885 ]
  %327 = load ptr, ptr %4, align 8, !tbaa !24
  %328 = zext i32 %.2943 to i64
  %329 = getelementptr inbounds %struct.cff_Value, ptr %327, i64 %328, i32 1
  %330 = load double, ptr %329, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %330) #7
  %331 = load ptr, ptr %4, align 8, !tbaa !24
  %332 = or disjoint i32 %.2943, 1
  %333 = zext i32 %332 to i64
  %334 = getelementptr inbounds %struct.cff_Value, ptr %331, i64 %333, i32 1
  %335 = load double, ptr %334, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %335, double noundef 0.000000e+00) #7
  %336 = add i32 %.2943, 2
  %337 = load i32, ptr %33, align 8, !tbaa !22
  %338 = icmp ult i32 %336, %337
  br i1 %338, label %.lr.ph944, label %.loopexit, !llvm.loop !48

.loopexit:                                        ; preds = %.lr.ph942, %.lr.ph944, %309, %.preheader885
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

339:                                              ; preds = %47
  %340 = load i32, ptr %33, align 8, !tbaa !22
  %341 = and i32 %340, 1
  %.not871 = icmp eq i32 %341, 0
  br i1 %.not871, label %.preheader887, label %342

.preheader887:                                    ; preds = %339
  %.not974 = icmp eq i32 %340, 0
  br i1 %.not974, label %.loopexit888, label %.lr.ph939

342:                                              ; preds = %339
  %343 = load ptr, ptr %4, align 8, !tbaa !24
  %344 = getelementptr inbounds i8, ptr %343, i64 8
  %345 = load double, ptr %344, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %345, double noundef 0.000000e+00) #7
  %346 = load i32, ptr %33, align 8, !tbaa !22
  %347 = icmp ugt i32 %346, 1
  br i1 %347, label %.lr.ph937, label %.loopexit888

.lr.ph937:                                        ; preds = %342, %.lr.ph937
  %.3935 = phi i32 [ %357, %.lr.ph937 ], [ 1, %342 ]
  %348 = load ptr, ptr %4, align 8, !tbaa !24
  %349 = zext i32 %.3935 to i64
  %350 = getelementptr inbounds %struct.cff_Value, ptr %348, i64 %349, i32 1
  %351 = load double, ptr %350, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %351) #7
  %352 = load ptr, ptr %4, align 8, !tbaa !24
  %353 = add nuw i32 %.3935, 1
  %354 = zext i32 %353 to i64
  %355 = getelementptr inbounds %struct.cff_Value, ptr %352, i64 %354, i32 1
  %356 = load double, ptr %355, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %356, double noundef 0.000000e+00) #7
  %357 = add i32 %.3935, 2
  %358 = load i32, ptr %33, align 8, !tbaa !22
  %359 = icmp ult i32 %357, %358
  br i1 %359, label %.lr.ph937, label %.loopexit888, !llvm.loop !49

.lr.ph939:                                        ; preds = %.preheader887, %.lr.ph939
  %.4938 = phi i32 [ %369, %.lr.ph939 ], [ 0, %.preheader887 ]
  %360 = load ptr, ptr %4, align 8, !tbaa !24
  %361 = zext i32 %.4938 to i64
  %362 = getelementptr inbounds %struct.cff_Value, ptr %360, i64 %361, i32 1
  %363 = load double, ptr %362, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %363, double noundef 0.000000e+00) #7
  %364 = load ptr, ptr %4, align 8, !tbaa !24
  %365 = or disjoint i32 %.4938, 1
  %366 = zext i32 %365 to i64
  %367 = getelementptr inbounds %struct.cff_Value, ptr %364, i64 %366, i32 1
  %368 = load double, ptr %367, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef 0.000000e+00, double noundef %368) #7
  %369 = add i32 %.4938, 2
  %370 = load i32, ptr %33, align 8, !tbaa !22
  %371 = icmp ult i32 %369, %370
  br i1 %371, label %.lr.ph939, label %.loopexit888, !llvm.loop !50

.loopexit888:                                     ; preds = %.lr.ph937, %.lr.ph939, %342, %.preheader887
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

.lr.ph933:                                        ; preds = %.preheader890, %.lr.ph933
  %.5932 = phi i32 [ %396, %.lr.ph933 ], [ 0, %.preheader890 ]
  %372 = load ptr, ptr %4, align 8, !tbaa !24
  %373 = zext i32 %.5932 to i64
  %374 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %373, i32 1
  %375 = load double, ptr %374, align 8, !tbaa !21
  %376 = or disjoint i32 %.5932, 1
  %377 = zext i32 %376 to i64
  %378 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %377, i32 1
  %379 = load double, ptr %378, align 8, !tbaa !21
  %380 = add i32 %.5932, 2
  %381 = zext i32 %380 to i64
  %382 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %381, i32 1
  %383 = load double, ptr %382, align 8, !tbaa !21
  %384 = add i32 %.5932, 3
  %385 = zext i32 %384 to i64
  %386 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %385, i32 1
  %387 = load double, ptr %386, align 8, !tbaa !21
  %388 = add i32 %.5932, 4
  %389 = zext i32 %388 to i64
  %390 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %389, i32 1
  %391 = load double, ptr %390, align 8, !tbaa !21
  %392 = add i32 %.5932, 5
  %393 = zext i32 %392 to i64
  %394 = getelementptr inbounds %struct.cff_Value, ptr %372, i64 %393, i32 1
  %395 = load double, ptr %394, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %375, double noundef %379, double noundef %383, double noundef %387, double noundef %391, double noundef %395) #7
  %396 = add i32 %.5932, 6
  %397 = load i32, ptr %33, align 8, !tbaa !22
  %398 = icmp ult i32 %396, %397
  br i1 %398, label %.lr.ph933, label %._crit_edge934, !llvm.loop !51

._crit_edge934:                                   ; preds = %.lr.ph933, %.preheader890
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

.lr.ph928:                                        ; preds = %.preheader891, %.lr.ph928
  %.6927 = phi i32 [ %423, %.lr.ph928 ], [ 0, %.preheader891 ]
  %399 = load ptr, ptr %4, align 8, !tbaa !24
  %400 = zext i32 %.6927 to i64
  %401 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %400, i32 1
  %402 = load double, ptr %401, align 8, !tbaa !21
  %403 = or disjoint i32 %.6927, 1
  %404 = zext i32 %403 to i64
  %405 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %404, i32 1
  %406 = load double, ptr %405, align 8, !tbaa !21
  %407 = add i32 %.6927, 2
  %408 = zext i32 %407 to i64
  %409 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %408, i32 1
  %410 = load double, ptr %409, align 8, !tbaa !21
  %411 = add i32 %.6927, 3
  %412 = zext i32 %411 to i64
  %413 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %412, i32 1
  %414 = load double, ptr %413, align 8, !tbaa !21
  %415 = add i32 %.6927, 4
  %416 = zext i32 %415 to i64
  %417 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %416, i32 1
  %418 = load double, ptr %417, align 8, !tbaa !21
  %419 = add i32 %.6927, 5
  %420 = zext i32 %419 to i64
  %421 = getelementptr inbounds %struct.cff_Value, ptr %399, i64 %420, i32 1
  %422 = load double, ptr %421, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %402, double noundef %406, double noundef %410, double noundef %414, double noundef %418, double noundef %422) #7
  %423 = add i32 %.6927, 6
  %424 = load i32, ptr %33, align 8, !tbaa !22
  %425 = add i32 %424, -2
  %426 = icmp ult i32 %423, %425
  br i1 %426, label %.lr.ph928, label %._crit_edge929, !llvm.loop !52

._crit_edge929:                                   ; preds = %.lr.ph928, %.preheader891
  %.lcssa903 = phi i32 [ 2, %.preheader891 ], [ %424, %.lr.ph928 ]
  %.lcssa902 = phi i32 [ 0, %.preheader891 ], [ %425, %.lr.ph928 ]
  %427 = load ptr, ptr %4, align 8, !tbaa !24
  %428 = zext i32 %.lcssa902 to i64
  %429 = getelementptr inbounds %struct.cff_Value, ptr %427, i64 %428, i32 1
  %430 = load double, ptr %429, align 8, !tbaa !21
  %431 = add i32 %.lcssa903, -1
  %432 = zext i32 %431 to i64
  %433 = getelementptr inbounds %struct.cff_Value, ptr %427, i64 %432, i32 1
  %434 = load double, ptr %433, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %430, double noundef %434) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

.lr.ph924:                                        ; preds = %.preheader892, %.lr.ph924
  %.7923 = phi i32 [ %443, %.lr.ph924 ], [ 0, %.preheader892 ]
  %435 = load ptr, ptr %4, align 8, !tbaa !24
  %436 = zext i32 %.7923 to i64
  %437 = getelementptr inbounds %struct.cff_Value, ptr %435, i64 %436, i32 1
  %438 = load double, ptr %437, align 8, !tbaa !21
  %439 = or disjoint i32 %.7923, 1
  %440 = zext i32 %439 to i64
  %441 = getelementptr inbounds %struct.cff_Value, ptr %435, i64 %440, i32 1
  %442 = load double, ptr %441, align 8, !tbaa !21
  call void %spec.store.select1(ptr noundef %5, double noundef %438, double noundef %442) #7
  %443 = add i32 %.7923, 2
  %444 = load i32, ptr %33, align 8, !tbaa !22
  %445 = add i32 %444, -6
  %446 = icmp ult i32 %443, %445
  br i1 %446, label %.lr.ph924, label %._crit_edge925, !llvm.loop !53

._crit_edge925:                                   ; preds = %.lr.ph924, %.preheader892
  %.lcssa900 = phi i32 [ 6, %.preheader892 ], [ %444, %.lr.ph924 ]
  %.lcssa = phi i32 [ 0, %.preheader892 ], [ %445, %.lr.ph924 ]
  %447 = load ptr, ptr %4, align 8, !tbaa !24
  %448 = zext i32 %.lcssa to i64
  %449 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %448, i32 1
  %450 = load double, ptr %449, align 8, !tbaa !21
  %451 = add i32 %.lcssa900, -5
  %452 = zext i32 %451 to i64
  %453 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %452, i32 1
  %454 = load double, ptr %453, align 8, !tbaa !21
  %455 = add i32 %.lcssa900, -4
  %456 = zext i32 %455 to i64
  %457 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %456, i32 1
  %458 = load double, ptr %457, align 8, !tbaa !21
  %459 = add i32 %.lcssa900, -3
  %460 = zext i32 %459 to i64
  %461 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %460, i32 1
  %462 = load double, ptr %461, align 8, !tbaa !21
  %463 = add i32 %.lcssa900, -2
  %464 = zext i32 %463 to i64
  %465 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %464, i32 1
  %466 = load double, ptr %465, align 8, !tbaa !21
  %467 = add i32 %.lcssa900, -1
  %468 = zext i32 %467 to i64
  %469 = getelementptr inbounds %struct.cff_Value, ptr %447, i64 %468, i32 1
  %470 = load double, ptr %469, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %450, double noundef %454, double noundef %458, double noundef %462, double noundef %466, double noundef %470) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

471:                                              ; preds = %47
  %472 = load i32, ptr %33, align 8, !tbaa !22
  %473 = and i32 %472, 3
  %474 = icmp eq i32 %473, 1
  br i1 %474, label %475, label %.preheader894

.preheader894:                                    ; preds = %471
  %.not970 = icmp eq i32 %472, 0
  br i1 %.not970, label %.loopexit893, label %.lr.ph919

475:                                              ; preds = %471
  %476 = load ptr, ptr %4, align 8, !tbaa !24
  %477 = getelementptr inbounds i8, ptr %476, i64 8
  %478 = load double, ptr %477, align 8, !tbaa !21
  %479 = getelementptr inbounds i8, ptr %476, i64 24
  %480 = load double, ptr %479, align 8, !tbaa !21
  %481 = getelementptr inbounds i8, ptr %476, i64 40
  %482 = load double, ptr %481, align 8, !tbaa !21
  %483 = getelementptr inbounds i8, ptr %476, i64 56
  %484 = load double, ptr %483, align 8, !tbaa !21
  %485 = getelementptr inbounds i8, ptr %476, i64 72
  %486 = load double, ptr %485, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %478, double noundef %480, double noundef %482, double noundef %484, double noundef 0.000000e+00, double noundef %486) #7
  %487 = load i32, ptr %33, align 8, !tbaa !22
  %488 = icmp ugt i32 %487, 5
  br i1 %488, label %.lr.ph922, label %.loopexit893

.lr.ph922:                                        ; preds = %475, %.lr.ph922
  %.8920 = phi i32 [ %505, %.lr.ph922 ], [ 5, %475 ]
  %489 = load ptr, ptr %4, align 8, !tbaa !24
  %490 = zext i32 %.8920 to i64
  %491 = getelementptr inbounds %struct.cff_Value, ptr %489, i64 %490, i32 1
  %492 = load double, ptr %491, align 8, !tbaa !21
  %493 = add nuw nsw i32 %.8920, 1
  %494 = zext i32 %493 to i64
  %495 = getelementptr inbounds %struct.cff_Value, ptr %489, i64 %494, i32 1
  %496 = load double, ptr %495, align 8, !tbaa !21
  %497 = add nuw nsw i32 %.8920, 2
  %498 = zext i32 %497 to i64
  %499 = getelementptr inbounds %struct.cff_Value, ptr %489, i64 %498, i32 1
  %500 = load double, ptr %499, align 8, !tbaa !21
  %501 = add i32 %.8920, 3
  %502 = zext i32 %501 to i64
  %503 = getelementptr inbounds %struct.cff_Value, ptr %489, i64 %502, i32 1
  %504 = load double, ptr %503, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %492, double noundef %496, double noundef %500, double noundef 0.000000e+00, double noundef %504) #7
  %505 = add i32 %.8920, 4
  %506 = load i32, ptr %33, align 8, !tbaa !22
  %507 = icmp ult i32 %505, %506
  br i1 %507, label %.lr.ph922, label %.loopexit893, !llvm.loop !54

.lr.ph919:                                        ; preds = %.preheader894, %.lr.ph919
  %.9918 = phi i32 [ %524, %.lr.ph919 ], [ 0, %.preheader894 ]
  %508 = load ptr, ptr %4, align 8, !tbaa !24
  %509 = zext i32 %.9918 to i64
  %510 = getelementptr inbounds %struct.cff_Value, ptr %508, i64 %509, i32 1
  %511 = load double, ptr %510, align 8, !tbaa !21
  %512 = or disjoint i32 %.9918, 1
  %513 = zext i32 %512 to i64
  %514 = getelementptr inbounds %struct.cff_Value, ptr %508, i64 %513, i32 1
  %515 = load double, ptr %514, align 8, !tbaa !21
  %516 = or disjoint i32 %.9918, 2
  %517 = zext i32 %516 to i64
  %518 = getelementptr inbounds %struct.cff_Value, ptr %508, i64 %517, i32 1
  %519 = load double, ptr %518, align 8, !tbaa !21
  %520 = or disjoint i32 %.9918, 3
  %521 = zext i32 %520 to i64
  %522 = getelementptr inbounds %struct.cff_Value, ptr %508, i64 %521, i32 1
  %523 = load double, ptr %522, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %511, double noundef %515, double noundef %519, double noundef 0.000000e+00, double noundef %523) #7
  %524 = add i32 %.9918, 4
  %525 = load i32, ptr %33, align 8, !tbaa !22
  %526 = icmp ult i32 %524, %525
  br i1 %526, label %.lr.ph919, label %.loopexit893, !llvm.loop !55

.loopexit893:                                     ; preds = %.lr.ph919, %.lr.ph922, %.preheader894, %475
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

527:                                              ; preds = %47
  %528 = load i32, ptr %33, align 8, !tbaa !22
  %529 = and i32 %528, 3
  %530 = icmp eq i32 %529, 1
  br i1 %530, label %531, label %.preheader897

.preheader897:                                    ; preds = %527
  %.not969 = icmp eq i32 %528, 0
  br i1 %.not969, label %.loopexit896, label %.lr.ph914

531:                                              ; preds = %527
  %532 = load ptr, ptr %4, align 8, !tbaa !24
  %533 = getelementptr inbounds i8, ptr %532, i64 24
  %534 = load double, ptr %533, align 8, !tbaa !21
  %535 = getelementptr inbounds i8, ptr %532, i64 8
  %536 = load double, ptr %535, align 8, !tbaa !21
  %537 = getelementptr inbounds i8, ptr %532, i64 40
  %538 = load double, ptr %537, align 8, !tbaa !21
  %539 = getelementptr inbounds i8, ptr %532, i64 56
  %540 = load double, ptr %539, align 8, !tbaa !21
  %541 = getelementptr inbounds i8, ptr %532, i64 72
  %542 = load double, ptr %541, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %534, double noundef %536, double noundef %538, double noundef %540, double noundef %542, double noundef 0.000000e+00) #7
  %543 = load i32, ptr %33, align 8, !tbaa !22
  %544 = icmp ugt i32 %543, 5
  br i1 %544, label %.lr.ph917, label %.loopexit896

.lr.ph917:                                        ; preds = %531, %.lr.ph917
  %.10915 = phi i32 [ %561, %.lr.ph917 ], [ 5, %531 ]
  %545 = load ptr, ptr %4, align 8, !tbaa !24
  %546 = zext i32 %.10915 to i64
  %547 = getelementptr inbounds %struct.cff_Value, ptr %545, i64 %546, i32 1
  %548 = load double, ptr %547, align 8, !tbaa !21
  %549 = add nuw nsw i32 %.10915, 1
  %550 = zext i32 %549 to i64
  %551 = getelementptr inbounds %struct.cff_Value, ptr %545, i64 %550, i32 1
  %552 = load double, ptr %551, align 8, !tbaa !21
  %553 = add nuw nsw i32 %.10915, 2
  %554 = zext i32 %553 to i64
  %555 = getelementptr inbounds %struct.cff_Value, ptr %545, i64 %554, i32 1
  %556 = load double, ptr %555, align 8, !tbaa !21
  %557 = add i32 %.10915, 3
  %558 = zext i32 %557 to i64
  %559 = getelementptr inbounds %struct.cff_Value, ptr %545, i64 %558, i32 1
  %560 = load double, ptr %559, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %548, double noundef 0.000000e+00, double noundef %552, double noundef %556, double noundef %560, double noundef 0.000000e+00) #7
  %561 = add i32 %.10915, 4
  %562 = load i32, ptr %33, align 8, !tbaa !22
  %563 = icmp ult i32 %561, %562
  br i1 %563, label %.lr.ph917, label %.loopexit896, !llvm.loop !56

.lr.ph914:                                        ; preds = %.preheader897, %.lr.ph914
  %.11913 = phi i32 [ %580, %.lr.ph914 ], [ 0, %.preheader897 ]
  %564 = load ptr, ptr %4, align 8, !tbaa !24
  %565 = zext i32 %.11913 to i64
  %566 = getelementptr inbounds %struct.cff_Value, ptr %564, i64 %565, i32 1
  %567 = load double, ptr %566, align 8, !tbaa !21
  %568 = or disjoint i32 %.11913, 1
  %569 = zext i32 %568 to i64
  %570 = getelementptr inbounds %struct.cff_Value, ptr %564, i64 %569, i32 1
  %571 = load double, ptr %570, align 8, !tbaa !21
  %572 = or disjoint i32 %.11913, 2
  %573 = zext i32 %572 to i64
  %574 = getelementptr inbounds %struct.cff_Value, ptr %564, i64 %573, i32 1
  %575 = load double, ptr %574, align 8, !tbaa !21
  %576 = or disjoint i32 %.11913, 3
  %577 = zext i32 %576 to i64
  %578 = getelementptr inbounds %struct.cff_Value, ptr %564, i64 %577, i32 1
  %579 = load double, ptr %578, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %567, double noundef 0.000000e+00, double noundef %571, double noundef %575, double noundef %579, double noundef 0.000000e+00) #7
  %580 = add i32 %.11913, 4
  %581 = load i32, ptr %33, align 8, !tbaa !22
  %582 = icmp ult i32 %580, %581
  br i1 %582, label %.lr.ph914, label %.loopexit896, !llvm.loop !57

.loopexit896:                                     ; preds = %.lr.ph914, %.lr.ph917, %.preheader897, %531
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

583:                                              ; preds = %47
  %584 = load i32, ptr %33, align 8, !tbaa !22
  %585 = and i32 %584, 3
  %586 = icmp eq i32 %585, 1
  %587 = add i32 %584, -5
  %.0822.in = select i1 %586, i32 %587, i32 %584
  %.0822 = and i32 %.0822.in, -4
  %.not968 = icmp eq i32 %.0822, 0
  br i1 %.not968, label %._crit_edge912, label %.lr.ph911.preheader

.lr.ph911.preheader:                              ; preds = %583
  %588 = zext i32 %.0822 to i64
  br label %.lr.ph911

.lr.ph911:                                        ; preds = %.lr.ph911.preheader, %605
  %indvars.iv987 = phi i64 [ 0, %.lr.ph911.preheader ], [ %indvars.iv.next988, %605 ]
  %589 = and i64 %indvars.iv987, 4
  %590 = icmp eq i64 %589, 0
  %591 = load ptr, ptr %4, align 8, !tbaa !24
  %592 = getelementptr inbounds %struct.cff_Value, ptr %591, i64 %indvars.iv987, i32 1
  %593 = load double, ptr %592, align 8, !tbaa !21
  %594 = or disjoint i64 %indvars.iv987, 1
  %595 = getelementptr inbounds %struct.cff_Value, ptr %591, i64 %594, i32 1
  %596 = load double, ptr %595, align 8, !tbaa !21
  %597 = or disjoint i64 %indvars.iv987, 2
  %598 = getelementptr inbounds %struct.cff_Value, ptr %591, i64 %597, i32 1
  %599 = load double, ptr %598, align 8, !tbaa !21
  %600 = or disjoint i64 %indvars.iv987, 3
  %601 = getelementptr inbounds %struct.cff_Value, ptr %591, i64 %600, i32 1
  %602 = load double, ptr %601, align 8, !tbaa !21
  br i1 %590, label %603, label %604

603:                                              ; preds = %.lr.ph911
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %593, double noundef %596, double noundef %599, double noundef %602, double noundef 0.000000e+00) #7
  br label %605

604:                                              ; preds = %.lr.ph911
  call void %spec.store.select6(ptr noundef %5, double noundef %593, double noundef 0.000000e+00, double noundef %596, double noundef %599, double noundef 0.000000e+00, double noundef %602) #7
  br label %605

605:                                              ; preds = %603, %604
  %indvars.iv.next988 = add nuw nsw i64 %indvars.iv987, 4
  %606 = icmp ult i64 %indvars.iv.next988, %588
  br i1 %606, label %.lr.ph911, label %._crit_edge912.loopexit, !llvm.loop !58

._crit_edge912.loopexit:                          ; preds = %605
  %.pre994 = load i32, ptr %33, align 8, !tbaa !22
  br label %._crit_edge912

._crit_edge912:                                   ; preds = %._crit_edge912.loopexit, %583
  %607 = phi i32 [ %.pre994, %._crit_edge912.loopexit ], [ %584, %583 ]
  %608 = and i32 %607, 7
  %609 = icmp eq i32 %608, 5
  br i1 %609, label %610, label %632

610:                                              ; preds = %._crit_edge912
  %611 = load ptr, ptr %4, align 8, !tbaa !24
  %612 = add nsw i32 %607, -5
  %613 = zext i32 %612 to i64
  %614 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %613, i32 1
  %615 = load double, ptr %614, align 8, !tbaa !21
  %616 = add nsw i32 %607, -4
  %617 = zext i32 %616 to i64
  %618 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %617, i32 1
  %619 = load double, ptr %618, align 8, !tbaa !21
  %620 = add nsw i32 %607, -3
  %621 = zext i32 %620 to i64
  %622 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %621, i32 1
  %623 = load double, ptr %622, align 8, !tbaa !21
  %624 = add nsw i32 %607, -2
  %625 = zext i32 %624 to i64
  %626 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %625, i32 1
  %627 = load double, ptr %626, align 8, !tbaa !21
  %628 = add nsw i32 %607, -1
  %629 = zext i32 %628 to i64
  %630 = getelementptr inbounds %struct.cff_Value, ptr %611, i64 %629, i32 1
  %631 = load double, ptr %630, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %615, double noundef %619, double noundef %623, double noundef %627, double noundef %631) #7
  %.pre995 = load i32, ptr %33, align 8, !tbaa !22
  br label %632

632:                                              ; preds = %610, %._crit_edge912
  %633 = phi i32 [ %.pre995, %610 ], [ %607, %._crit_edge912 ]
  %634 = and i32 %633, 7
  %635 = icmp eq i32 %634, 1
  br i1 %635, label %636, label %658

636:                                              ; preds = %632
  %637 = load ptr, ptr %4, align 8, !tbaa !24
  %638 = add i32 %633, -5
  %639 = zext i32 %638 to i64
  %640 = getelementptr inbounds %struct.cff_Value, ptr %637, i64 %639, i32 1
  %641 = load double, ptr %640, align 8, !tbaa !21
  %642 = add i32 %633, -4
  %643 = zext i32 %642 to i64
  %644 = getelementptr inbounds %struct.cff_Value, ptr %637, i64 %643, i32 1
  %645 = load double, ptr %644, align 8, !tbaa !21
  %646 = add i32 %633, -3
  %647 = zext i32 %646 to i64
  %648 = getelementptr inbounds %struct.cff_Value, ptr %637, i64 %647, i32 1
  %649 = load double, ptr %648, align 8, !tbaa !21
  %650 = add nsw i32 %633, -1
  %651 = zext i32 %650 to i64
  %652 = getelementptr inbounds %struct.cff_Value, ptr %637, i64 %651, i32 1
  %653 = load double, ptr %652, align 8, !tbaa !21
  %654 = add i32 %633, -2
  %655 = zext i32 %654 to i64
  %656 = getelementptr inbounds %struct.cff_Value, ptr %637, i64 %655, i32 1
  %657 = load double, ptr %656, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %641, double noundef 0.000000e+00, double noundef %645, double noundef %649, double noundef %653, double noundef %657) #7
  br label %658

658:                                              ; preds = %636, %632
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

659:                                              ; preds = %47
  %660 = load i32, ptr %33, align 8, !tbaa !22
  %661 = and i32 %660, 3
  %662 = icmp eq i32 %661, 1
  %663 = add i32 %660, -5
  %.1823.in = select i1 %662, i32 %663, i32 %660
  %.1823 = and i32 %.1823.in, -4
  %.not967 = icmp eq i32 %.1823, 0
  br i1 %.not967, label %._crit_edge, label %.lr.ph.preheader

.lr.ph.preheader:                                 ; preds = %659
  %664 = zext i32 %.1823 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %681
  %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %681 ]
  %665 = and i64 %indvars.iv, 4
  %666 = icmp eq i64 %665, 0
  %667 = load ptr, ptr %4, align 8, !tbaa !24
  %668 = getelementptr inbounds %struct.cff_Value, ptr %667, i64 %indvars.iv, i32 1
  %669 = load double, ptr %668, align 8, !tbaa !21
  %670 = or disjoint i64 %indvars.iv, 1
  %671 = getelementptr inbounds %struct.cff_Value, ptr %667, i64 %670, i32 1
  %672 = load double, ptr %671, align 8, !tbaa !21
  %673 = or disjoint i64 %indvars.iv, 2
  %674 = getelementptr inbounds %struct.cff_Value, ptr %667, i64 %673, i32 1
  %675 = load double, ptr %674, align 8, !tbaa !21
  %676 = or disjoint i64 %indvars.iv, 3
  %677 = getelementptr inbounds %struct.cff_Value, ptr %667, i64 %676, i32 1
  %678 = load double, ptr %677, align 8, !tbaa !21
  br i1 %666, label %679, label %680

679:                                              ; preds = %.lr.ph
  call void %spec.store.select6(ptr noundef %5, double noundef %669, double noundef 0.000000e+00, double noundef %672, double noundef %675, double noundef 0.000000e+00, double noundef %678) #7
  br label %681

680:                                              ; preds = %.lr.ph
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %669, double noundef %672, double noundef %675, double noundef %678, double noundef 0.000000e+00) #7
  br label %681

681:                                              ; preds = %679, %680
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 4
  %682 = icmp ult i64 %indvars.iv.next, %664
  br i1 %682, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !59

._crit_edge.loopexit:                             ; preds = %681
  %.pre = load i32, ptr %33, align 8, !tbaa !22
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %659
  %683 = phi i32 [ %.pre, %._crit_edge.loopexit ], [ %660, %659 ]
  %684 = and i32 %683, 7
  %685 = icmp eq i32 %684, 5
  br i1 %685, label %686, label %708

686:                                              ; preds = %._crit_edge
  %687 = load ptr, ptr %4, align 8, !tbaa !24
  %688 = add nsw i32 %683, -5
  %689 = zext i32 %688 to i64
  %690 = getelementptr inbounds %struct.cff_Value, ptr %687, i64 %689, i32 1
  %691 = load double, ptr %690, align 8, !tbaa !21
  %692 = add nsw i32 %683, -4
  %693 = zext i32 %692 to i64
  %694 = getelementptr inbounds %struct.cff_Value, ptr %687, i64 %693, i32 1
  %695 = load double, ptr %694, align 8, !tbaa !21
  %696 = add nsw i32 %683, -3
  %697 = zext i32 %696 to i64
  %698 = getelementptr inbounds %struct.cff_Value, ptr %687, i64 %697, i32 1
  %699 = load double, ptr %698, align 8, !tbaa !21
  %700 = add nsw i32 %683, -1
  %701 = zext i32 %700 to i64
  %702 = getelementptr inbounds %struct.cff_Value, ptr %687, i64 %701, i32 1
  %703 = load double, ptr %702, align 8, !tbaa !21
  %704 = add nsw i32 %683, -2
  %705 = zext i32 %704 to i64
  %706 = getelementptr inbounds %struct.cff_Value, ptr %687, i64 %705, i32 1
  %707 = load double, ptr %706, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %691, double noundef 0.000000e+00, double noundef %695, double noundef %699, double noundef %703, double noundef %707) #7
  %.pre993 = load i32, ptr %33, align 8, !tbaa !22
  br label %708

708:                                              ; preds = %686, %._crit_edge
  %709 = phi i32 [ %.pre993, %686 ], [ %683, %._crit_edge ]
  %710 = and i32 %709, 7
  %711 = icmp eq i32 %710, 1
  br i1 %711, label %712, label %734

712:                                              ; preds = %708
  %713 = load ptr, ptr %4, align 8, !tbaa !24
  %714 = add i32 %709, -5
  %715 = zext i32 %714 to i64
  %716 = getelementptr inbounds %struct.cff_Value, ptr %713, i64 %715, i32 1
  %717 = load double, ptr %716, align 8, !tbaa !21
  %718 = add i32 %709, -4
  %719 = zext i32 %718 to i64
  %720 = getelementptr inbounds %struct.cff_Value, ptr %713, i64 %719, i32 1
  %721 = load double, ptr %720, align 8, !tbaa !21
  %722 = add i32 %709, -3
  %723 = zext i32 %722 to i64
  %724 = getelementptr inbounds %struct.cff_Value, ptr %713, i64 %723, i32 1
  %725 = load double, ptr %724, align 8, !tbaa !21
  %726 = add i32 %709, -2
  %727 = zext i32 %726 to i64
  %728 = getelementptr inbounds %struct.cff_Value, ptr %713, i64 %727, i32 1
  %729 = load double, ptr %728, align 8, !tbaa !21
  %730 = add nsw i32 %709, -1
  %731 = zext i32 %730 to i64
  %732 = getelementptr inbounds %struct.cff_Value, ptr %713, i64 %731, i32 1
  %733 = load double, ptr %732, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef 0.000000e+00, double noundef %717, double noundef %721, double noundef %725, double noundef %729, double noundef %733) #7
  br label %734

734:                                              ; preds = %712, %708
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

735:                                              ; preds = %47
  %736 = load i32, ptr %33, align 8, !tbaa !22
  %737 = icmp ult i32 %736, 7
  br i1 %737, label %738, label %744

738:                                              ; preds = %735
  %739 = load ptr, ptr %38, align 8, !tbaa !42
  %740 = getelementptr inbounds i8, ptr %739, i64 48
  %741 = load ptr, ptr %740, align 8, !tbaa !44
  %742 = call ptr @sdsempty() #7
  %743 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %742, ptr noundef nonnull @.str, ptr noundef nonnull @.str.4, i32 noundef 3106) #7
  call void %741(ptr noundef %739, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %743) #7
  br label %1419

744:                                              ; preds = %735
  %745 = load ptr, ptr %4, align 8, !tbaa !24
  %746 = getelementptr inbounds i8, ptr %745, i64 8
  %747 = load double, ptr %746, align 8, !tbaa !21
  %748 = getelementptr inbounds i8, ptr %745, i64 24
  %749 = load double, ptr %748, align 8, !tbaa !21
  %750 = getelementptr inbounds i8, ptr %745, i64 40
  %751 = load double, ptr %750, align 8, !tbaa !21
  %752 = getelementptr inbounds i8, ptr %745, i64 56
  %753 = load double, ptr %752, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %747, double noundef 0.000000e+00, double noundef %749, double noundef %751, double noundef %753, double noundef 0.000000e+00) #7
  %754 = load ptr, ptr %4, align 8, !tbaa !24
  %755 = getelementptr inbounds i8, ptr %754, i64 72
  %756 = load double, ptr %755, align 8, !tbaa !21
  %757 = getelementptr inbounds i8, ptr %754, i64 88
  %758 = load double, ptr %757, align 8, !tbaa !21
  %759 = getelementptr inbounds i8, ptr %754, i64 40
  %760 = load double, ptr %759, align 8, !tbaa !21
  %761 = fneg double %760
  %762 = getelementptr inbounds i8, ptr %754, i64 104
  %763 = load double, ptr %762, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %756, double noundef 0.000000e+00, double noundef %758, double noundef %761, double noundef %763, double noundef 0.000000e+00) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

764:                                              ; preds = %47
  %765 = load i32, ptr %33, align 8, !tbaa !22
  %766 = icmp ult i32 %765, 12
  br i1 %766, label %767, label %773

767:                                              ; preds = %764
  %768 = load ptr, ptr %38, align 8, !tbaa !42
  %769 = getelementptr inbounds i8, ptr %768, i64 48
  %770 = load ptr, ptr %769, align 8, !tbaa !44
  %771 = call ptr @sdsempty() #7
  %772 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %771, ptr noundef nonnull @.str, ptr noundef nonnull @.str.5, i32 noundef 3107) #7
  call void %770(ptr noundef %768, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %772) #7
  br label %1419

773:                                              ; preds = %764
  %774 = load ptr, ptr %4, align 8, !tbaa !24
  %775 = getelementptr inbounds i8, ptr %774, i64 8
  %776 = load double, ptr %775, align 8, !tbaa !21
  %777 = getelementptr inbounds i8, ptr %774, i64 24
  %778 = load double, ptr %777, align 8, !tbaa !21
  %779 = getelementptr inbounds i8, ptr %774, i64 40
  %780 = load double, ptr %779, align 8, !tbaa !21
  %781 = getelementptr inbounds i8, ptr %774, i64 56
  %782 = load double, ptr %781, align 8, !tbaa !21
  %783 = getelementptr inbounds i8, ptr %774, i64 72
  %784 = load double, ptr %783, align 8, !tbaa !21
  %785 = getelementptr inbounds i8, ptr %774, i64 88
  %786 = load double, ptr %785, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %776, double noundef %778, double noundef %780, double noundef %782, double noundef %784, double noundef %786) #7
  %787 = load ptr, ptr %4, align 8, !tbaa !24
  %788 = getelementptr inbounds i8, ptr %787, i64 104
  %789 = load double, ptr %788, align 8, !tbaa !21
  %790 = getelementptr inbounds i8, ptr %787, i64 120
  %791 = load double, ptr %790, align 8, !tbaa !21
  %792 = getelementptr inbounds i8, ptr %787, i64 136
  %793 = load double, ptr %792, align 8, !tbaa !21
  %794 = getelementptr inbounds i8, ptr %787, i64 152
  %795 = load double, ptr %794, align 8, !tbaa !21
  %796 = getelementptr inbounds i8, ptr %787, i64 168
  %797 = load double, ptr %796, align 8, !tbaa !21
  %798 = getelementptr inbounds i8, ptr %787, i64 184
  %799 = load double, ptr %798, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %789, double noundef %791, double noundef %793, double noundef %795, double noundef %797, double noundef %799) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

800:                                              ; preds = %47
  %801 = load i32, ptr %33, align 8, !tbaa !22
  %802 = icmp ult i32 %801, 9
  br i1 %802, label %803, label %809

803:                                              ; preds = %800
  %804 = load ptr, ptr %38, align 8, !tbaa !42
  %805 = getelementptr inbounds i8, ptr %804, i64 48
  %806 = load ptr, ptr %805, align 8, !tbaa !44
  %807 = call ptr @sdsempty() #7
  %808 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %807, ptr noundef nonnull @.str, ptr noundef nonnull @.str.6, i32 noundef 3108) #7
  call void %806(ptr noundef %804, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %808) #7
  br label %1419

809:                                              ; preds = %800
  %810 = load ptr, ptr %4, align 8, !tbaa !24
  %811 = getelementptr inbounds i8, ptr %810, i64 8
  %812 = load double, ptr %811, align 8, !tbaa !21
  %813 = getelementptr inbounds i8, ptr %810, i64 24
  %814 = load double, ptr %813, align 8, !tbaa !21
  %815 = getelementptr inbounds i8, ptr %810, i64 40
  %816 = load double, ptr %815, align 8, !tbaa !21
  %817 = getelementptr inbounds i8, ptr %810, i64 56
  %818 = load double, ptr %817, align 8, !tbaa !21
  %819 = getelementptr inbounds i8, ptr %810, i64 72
  %820 = load double, ptr %819, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %812, double noundef %814, double noundef %816, double noundef %818, double noundef %820, double noundef 0.000000e+00) #7
  %821 = load ptr, ptr %4, align 8, !tbaa !24
  %822 = getelementptr inbounds i8, ptr %821, i64 88
  %823 = load double, ptr %822, align 8, !tbaa !21
  %824 = getelementptr inbounds i8, ptr %821, i64 104
  %825 = load double, ptr %824, align 8, !tbaa !21
  %826 = getelementptr inbounds i8, ptr %821, i64 120
  %827 = load double, ptr %826, align 8, !tbaa !21
  %828 = getelementptr inbounds i8, ptr %821, i64 136
  %829 = load double, ptr %828, align 8, !tbaa !21
  %830 = getelementptr inbounds i8, ptr %821, i64 24
  %831 = load double, ptr %830, align 8, !tbaa !21
  %832 = getelementptr inbounds i8, ptr %821, i64 56
  %833 = load double, ptr %832, align 8, !tbaa !21
  %834 = fadd double %831, %833
  %835 = fadd double %827, %834
  %836 = fneg double %835
  call void %spec.store.select6(ptr noundef %5, double noundef %823, double noundef 0.000000e+00, double noundef %825, double noundef %827, double noundef %829, double noundef %836) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

837:                                              ; preds = %47
  %838 = load i32, ptr %33, align 8, !tbaa !22
  %839 = icmp ult i32 %838, 11
  br i1 %839, label %840, label %846

840:                                              ; preds = %837
  %841 = load ptr, ptr %38, align 8, !tbaa !42
  %842 = getelementptr inbounds i8, ptr %841, i64 48
  %843 = load ptr, ptr %842, align 8, !tbaa !44
  %844 = call ptr @sdsempty() #7
  %845 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %844, ptr noundef nonnull @.str, ptr noundef nonnull @.str.7, i32 noundef 3109) #7
  call void %843(ptr noundef %841, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %845) #7
  br label %1419

846:                                              ; preds = %837
  %847 = load ptr, ptr %4, align 8, !tbaa !24
  %848 = getelementptr inbounds i8, ptr %847, i64 8
  %849 = load double, ptr %848, align 8, !tbaa !21
  %850 = getelementptr inbounds i8, ptr %847, i64 40
  %851 = load double, ptr %850, align 8, !tbaa !21
  %852 = getelementptr inbounds i8, ptr %847, i64 72
  %853 = load double, ptr %852, align 8, !tbaa !21
  %854 = getelementptr inbounds i8, ptr %847, i64 104
  %855 = load double, ptr %854, align 8, !tbaa !21
  %856 = getelementptr inbounds i8, ptr %847, i64 136
  %857 = load double, ptr %856, align 8, !tbaa !21
  %858 = getelementptr inbounds i8, ptr %847, i64 24
  %859 = load double, ptr %858, align 8, !tbaa !21
  %860 = getelementptr inbounds i8, ptr %847, i64 56
  %861 = load double, ptr %860, align 8, !tbaa !21
  %862 = getelementptr inbounds i8, ptr %847, i64 88
  %863 = load double, ptr %862, align 8, !tbaa !21
  %864 = getelementptr inbounds i8, ptr %847, i64 120
  %865 = load double, ptr %864, align 8, !tbaa !21
  %866 = getelementptr inbounds i8, ptr %847, i64 152
  %867 = load double, ptr %866, align 8, !tbaa !21
  %868 = insertelement <2 x double> poison, double %849, i64 0
  %869 = insertelement <2 x double> %868, double %859, i64 1
  %870 = insertelement <2 x double> poison, double %851, i64 0
  %871 = insertelement <2 x double> %870, double %861, i64 1
  %872 = fadd <2 x double> %869, %871
  %873 = insertelement <2 x double> poison, double %853, i64 0
  %874 = insertelement <2 x double> %873, double %863, i64 1
  %875 = fadd <2 x double> %872, %874
  %876 = insertelement <2 x double> poison, double %855, i64 0
  %877 = insertelement <2 x double> %876, double %865, i64 1
  %878 = fadd <2 x double> %875, %877
  %879 = insertelement <2 x double> poison, double %857, i64 0
  %880 = insertelement <2 x double> %879, double %867, i64 1
  %881 = fadd <2 x double> %878, %880
  %882 = call <2 x double> @llvm.fabs.v2f64(<2 x double> %881)
  %883 = extractelement <2 x double> %882, i64 0
  %884 = extractelement <2 x double> %882, i64 1
  %885 = fcmp ogt double %883, %884
  br i1 %885, label %886, label %891

886:                                              ; preds = %846
  %887 = getelementptr inbounds i8, ptr %847, i64 168
  %888 = load double, ptr %887, align 8, !tbaa !21
  %889 = extractelement <2 x double> %881, i64 1
  %890 = fneg double %889
  br label %896

891:                                              ; preds = %846
  %892 = extractelement <2 x double> %881, i64 0
  %893 = fneg double %892
  %894 = getelementptr inbounds i8, ptr %847, i64 168
  %895 = load double, ptr %894, align 8, !tbaa !21
  br label %896

896:                                              ; preds = %891, %886
  %.0831 = phi double [ %890, %886 ], [ %895, %891 ]
  %.0830 = phi double [ %888, %886 ], [ %893, %891 ]
  call void %spec.store.select6(ptr noundef %5, double noundef %849, double noundef %859, double noundef %851, double noundef %861, double noundef %853, double noundef %863) #7
  %897 = load ptr, ptr %4, align 8, !tbaa !24
  %898 = getelementptr inbounds i8, ptr %897, i64 104
  %899 = load double, ptr %898, align 8, !tbaa !21
  %900 = getelementptr inbounds i8, ptr %897, i64 120
  %901 = load double, ptr %900, align 8, !tbaa !21
  %902 = getelementptr inbounds i8, ptr %897, i64 136
  %903 = load double, ptr %902, align 8, !tbaa !21
  %904 = getelementptr inbounds i8, ptr %897, i64 152
  %905 = load double, ptr %904, align 8, !tbaa !21
  call void %spec.store.select6(ptr noundef %5, double noundef %899, double noundef %901, double noundef %903, double noundef %905, double noundef %.0830, double noundef %.0831) #7
  store i32 0, ptr %33, align 8, !tbaa !22
  br label %1419

906:                                              ; preds = %47
  %907 = load i32, ptr %33, align 8, !tbaa !22
  %908 = icmp ult i32 %907, 2
  br i1 %908, label %909, label %915

909:                                              ; preds = %906
  %910 = load ptr, ptr %38, align 8, !tbaa !42
  %911 = getelementptr inbounds i8, ptr %910, i64 48
  %912 = load ptr, ptr %911, align 8, !tbaa !44
  %913 = call ptr @sdsempty() #7
  %914 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %913, ptr noundef nonnull @.str, ptr noundef nonnull @.str.8, i32 noundef 3075) #7
  call void %912(ptr noundef %910, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %914) #7
  br label %1419

915:                                              ; preds = %906
  %916 = load ptr, ptr %4, align 8, !tbaa !24
  %917 = add i32 %907, -1
  %918 = zext i32 %917 to i64
  %919 = getelementptr inbounds %struct.cff_Value, ptr %916, i64 %918, i32 1
  %920 = load double, ptr %919, align 8, !tbaa !21
  %921 = add i32 %907, -2
  %922 = zext i32 %921 to i64
  %923 = getelementptr inbounds %struct.cff_Value, ptr %916, i64 %922, i32 1
  %924 = load double, ptr %923, align 8, !tbaa !21
  %925 = fcmp une double %920, 0.000000e+00
  %926 = fcmp une double %924, 0.000000e+00
  %927 = select i1 %925, i1 %926, i1 false
  %928 = select i1 %927, double 1.000000e+00, double 0.000000e+00
  store double %928, ptr %923, align 8, !tbaa !21
  %929 = load i32, ptr %33, align 8, !tbaa !22
  %930 = add i32 %929, -1
  store i32 %930, ptr %33, align 8, !tbaa !22
  br label %1419

931:                                              ; preds = %47
  %932 = load i32, ptr %33, align 8, !tbaa !22
  %933 = icmp ult i32 %932, 2
  br i1 %933, label %934, label %940

934:                                              ; preds = %931
  %935 = load ptr, ptr %38, align 8, !tbaa !42
  %936 = getelementptr inbounds i8, ptr %935, i64 48
  %937 = load ptr, ptr %936, align 8, !tbaa !44
  %938 = call ptr @sdsempty() #7
  %939 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %938, ptr noundef nonnull @.str, ptr noundef nonnull @.str.9, i32 noundef 3076) #7
  call void %937(ptr noundef %935, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %939) #7
  br label %1419

940:                                              ; preds = %931
  %941 = load ptr, ptr %4, align 8, !tbaa !24
  %942 = add i32 %932, -1
  %943 = zext i32 %942 to i64
  %944 = getelementptr inbounds %struct.cff_Value, ptr %941, i64 %943, i32 1
  %945 = load double, ptr %944, align 8, !tbaa !21
  %946 = add i32 %932, -2
  %947 = zext i32 %946 to i64
  %948 = getelementptr inbounds %struct.cff_Value, ptr %941, i64 %947, i32 1
  %949 = load double, ptr %948, align 8, !tbaa !21
  %950 = fcmp une double %945, 0.000000e+00
  %951 = fcmp une double %949, 0.000000e+00
  %952 = select i1 %950, i1 true, i1 %951
  %953 = select i1 %952, double 1.000000e+00, double 0.000000e+00
  store double %953, ptr %948, align 8, !tbaa !21
  %954 = load i32, ptr %33, align 8, !tbaa !22
  %955 = add i32 %954, -1
  store i32 %955, ptr %33, align 8, !tbaa !22
  br label %1419

956:                                              ; preds = %47
  %957 = load i32, ptr %33, align 8, !tbaa !22
  %958 = icmp eq i32 %957, 0
  br i1 %958, label %959, label %965

959:                                              ; preds = %956
  %960 = load ptr, ptr %38, align 8, !tbaa !42
  %961 = getelementptr inbounds i8, ptr %960, i64 48
  %962 = load ptr, ptr %961, align 8, !tbaa !44
  %963 = call ptr @sdsempty() #7
  %964 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %963, ptr noundef nonnull @.str, ptr noundef nonnull @.str.10, i32 noundef 3077) #7
  call void %962(ptr noundef %960, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %964) #7
  br label %1419

965:                                              ; preds = %956
  %966 = load ptr, ptr %4, align 8, !tbaa !24
  %967 = add i32 %957, -1
  %968 = zext i32 %967 to i64
  %969 = getelementptr inbounds %struct.cff_Value, ptr %966, i64 %968, i32 1
  %970 = load double, ptr %969, align 8, !tbaa !21
  %971 = fcmp une double %970, 0.000000e+00
  %972 = select i1 %971, double 0.000000e+00, double 1.000000e+00
  store double %972, ptr %969, align 8, !tbaa !21
  br label %1419

973:                                              ; preds = %47
  %974 = load i32, ptr %33, align 8, !tbaa !22
  %975 = icmp eq i32 %974, 0
  br i1 %975, label %976, label %982

976:                                              ; preds = %973
  %977 = load ptr, ptr %38, align 8, !tbaa !42
  %978 = getelementptr inbounds i8, ptr %977, i64 48
  %979 = load ptr, ptr %978, align 8, !tbaa !44
  %980 = call ptr @sdsempty() #7
  %981 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %980, ptr noundef nonnull @.str, ptr noundef nonnull @.str.11, i32 noundef 3081) #7
  call void %979(ptr noundef %977, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %981) #7
  br label %1419

982:                                              ; preds = %973
  %983 = load ptr, ptr %4, align 8, !tbaa !24
  %984 = add i32 %974, -1
  %985 = zext i32 %984 to i64
  %986 = getelementptr inbounds %struct.cff_Value, ptr %983, i64 %985, i32 1
  %987 = load double, ptr %986, align 8, !tbaa !21
  %988 = fcmp olt double %987, 0.000000e+00
  %989 = fneg double %987
  %990 = select i1 %988, double %989, double %987
  store double %990, ptr %986, align 8, !tbaa !21
  br label %1419

991:                                              ; preds = %47
  %992 = load i32, ptr %33, align 8, !tbaa !22
  %993 = icmp ult i32 %992, 2
  br i1 %993, label %994, label %1000

994:                                              ; preds = %991
  %995 = load ptr, ptr %38, align 8, !tbaa !42
  %996 = getelementptr inbounds i8, ptr %995, i64 48
  %997 = load ptr, ptr %996, align 8, !tbaa !44
  %998 = call ptr @sdsempty() #7
  %999 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %998, ptr noundef nonnull @.str, ptr noundef nonnull @.str.12, i32 noundef 3082) #7
  call void %997(ptr noundef %995, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %999) #7
  br label %1419

1000:                                             ; preds = %991
  %1001 = load ptr, ptr %4, align 8, !tbaa !24
  %1002 = add i32 %992, -1
  %1003 = zext i32 %1002 to i64
  %1004 = getelementptr inbounds %struct.cff_Value, ptr %1001, i64 %1003, i32 1
  %1005 = load double, ptr %1004, align 8, !tbaa !21
  %1006 = add i32 %992, -2
  %1007 = zext i32 %1006 to i64
  %1008 = getelementptr inbounds %struct.cff_Value, ptr %1001, i64 %1007, i32 1
  %1009 = load double, ptr %1008, align 8, !tbaa !21
  %1010 = fadd double %1005, %1009
  store double %1010, ptr %1008, align 8, !tbaa !21
  %1011 = load i32, ptr %33, align 8, !tbaa !22
  %1012 = add i32 %1011, -1
  store i32 %1012, ptr %33, align 8, !tbaa !22
  br label %1419

1013:                                             ; preds = %47
  %1014 = load i32, ptr %33, align 8, !tbaa !22
  %1015 = icmp ult i32 %1014, 2
  br i1 %1015, label %1016, label %1022

1016:                                             ; preds = %1013
  %1017 = load ptr, ptr %38, align 8, !tbaa !42
  %1018 = getelementptr inbounds i8, ptr %1017, i64 48
  %1019 = load ptr, ptr %1018, align 8, !tbaa !44
  %1020 = call ptr @sdsempty() #7
  %1021 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1020, ptr noundef nonnull @.str, ptr noundef nonnull @.str.13, i32 noundef 3083) #7
  call void %1019(ptr noundef %1017, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1021) #7
  br label %1419

1022:                                             ; preds = %1013
  %1023 = load ptr, ptr %4, align 8, !tbaa !24
  %1024 = add i32 %1014, -2
  %1025 = zext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.cff_Value, ptr %1023, i64 %1025, i32 1
  %1027 = load double, ptr %1026, align 8, !tbaa !21
  %1028 = add i32 %1014, -1
  %1029 = zext i32 %1028 to i64
  %1030 = getelementptr inbounds %struct.cff_Value, ptr %1023, i64 %1029, i32 1
  %1031 = load double, ptr %1030, align 8, !tbaa !21
  %1032 = fsub double %1027, %1031
  store double %1032, ptr %1026, align 8, !tbaa !21
  %1033 = load i32, ptr %33, align 8, !tbaa !22
  %1034 = add i32 %1033, -1
  store i32 %1034, ptr %33, align 8, !tbaa !22
  br label %1419

1035:                                             ; preds = %47
  %1036 = load i32, ptr %33, align 8, !tbaa !22
  %1037 = icmp ult i32 %1036, 2
  br i1 %1037, label %1038, label %1044

1038:                                             ; preds = %1035
  %1039 = load ptr, ptr %38, align 8, !tbaa !42
  %1040 = getelementptr inbounds i8, ptr %1039, i64 48
  %1041 = load ptr, ptr %1040, align 8, !tbaa !44
  %1042 = call ptr @sdsempty() #7
  %1043 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1042, ptr noundef nonnull @.str, ptr noundef nonnull @.str.14, i32 noundef 3084) #7
  call void %1041(ptr noundef %1039, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1043) #7
  br label %1419

1044:                                             ; preds = %1035
  %1045 = load ptr, ptr %4, align 8, !tbaa !24
  %1046 = add i32 %1036, -2
  %1047 = zext i32 %1046 to i64
  %1048 = getelementptr inbounds %struct.cff_Value, ptr %1045, i64 %1047, i32 1
  %1049 = load double, ptr %1048, align 8, !tbaa !21
  %1050 = add i32 %1036, -1
  %1051 = zext i32 %1050 to i64
  %1052 = getelementptr inbounds %struct.cff_Value, ptr %1045, i64 %1051, i32 1
  %1053 = load double, ptr %1052, align 8, !tbaa !21
  %1054 = fdiv double %1049, %1053
  store double %1054, ptr %1048, align 8, !tbaa !21
  %1055 = load i32, ptr %33, align 8, !tbaa !22
  %1056 = add i32 %1055, -1
  store i32 %1056, ptr %33, align 8, !tbaa !22
  br label %1419

1057:                                             ; preds = %47
  %1058 = load i32, ptr %33, align 8, !tbaa !22
  %1059 = icmp eq i32 %1058, 0
  br i1 %1059, label %1060, label %1066

1060:                                             ; preds = %1057
  %1061 = load ptr, ptr %38, align 8, !tbaa !42
  %1062 = getelementptr inbounds i8, ptr %1061, i64 48
  %1063 = load ptr, ptr %1062, align 8, !tbaa !44
  %1064 = call ptr @sdsempty() #7
  %1065 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1064, ptr noundef nonnull @.str, ptr noundef nonnull @.str.15, i32 noundef 3086) #7
  call void %1063(ptr noundef %1061, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1065) #7
  br label %1419

1066:                                             ; preds = %1057
  %1067 = load ptr, ptr %4, align 8, !tbaa !24
  %1068 = add i32 %1058, -1
  %1069 = zext i32 %1068 to i64
  %1070 = getelementptr inbounds %struct.cff_Value, ptr %1067, i64 %1069, i32 1
  %1071 = load double, ptr %1070, align 8, !tbaa !21
  %1072 = fneg double %1071
  store double %1072, ptr %1070, align 8, !tbaa !21
  br label %1419

1073:                                             ; preds = %47
  %1074 = load i32, ptr %33, align 8, !tbaa !22
  %1075 = icmp ult i32 %1074, 2
  br i1 %1075, label %1076, label %1082

1076:                                             ; preds = %1073
  %1077 = load ptr, ptr %38, align 8, !tbaa !42
  %1078 = getelementptr inbounds i8, ptr %1077, i64 48
  %1079 = load ptr, ptr %1078, align 8, !tbaa !44
  %1080 = call ptr @sdsempty() #7
  %1081 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1080, ptr noundef nonnull @.str, ptr noundef nonnull @.str.16, i32 noundef 3087) #7
  call void %1079(ptr noundef %1077, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1081) #7
  br label %1419

1082:                                             ; preds = %1073
  %1083 = load ptr, ptr %4, align 8, !tbaa !24
  %1084 = add i32 %1074, -1
  %1085 = zext i32 %1084 to i64
  %1086 = getelementptr inbounds %struct.cff_Value, ptr %1083, i64 %1085, i32 1
  %1087 = load double, ptr %1086, align 8, !tbaa !21
  %1088 = add i32 %1074, -2
  %1089 = zext i32 %1088 to i64
  %1090 = getelementptr inbounds %struct.cff_Value, ptr %1083, i64 %1089, i32 1
  %1091 = load double, ptr %1090, align 8, !tbaa !21
  %1092 = fcmp oeq double %1087, %1091
  %1093 = select i1 %1092, double 1.000000e+00, double 0.000000e+00
  store double %1093, ptr %1090, align 8, !tbaa !21
  %1094 = load i32, ptr %33, align 8, !tbaa !22
  %1095 = add i32 %1094, -1
  store i32 %1095, ptr %33, align 8, !tbaa !22
  br label %1419

1096:                                             ; preds = %47
  %1097 = load i32, ptr %33, align 8, !tbaa !22
  %1098 = icmp eq i32 %1097, 0
  br i1 %1098, label %1099, label %1105

1099:                                             ; preds = %1096
  %1100 = load ptr, ptr %38, align 8, !tbaa !42
  %1101 = getelementptr inbounds i8, ptr %1100, i64 48
  %1102 = load ptr, ptr %1101, align 8, !tbaa !44
  %1103 = call ptr @sdsempty() #7
  %1104 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1103, ptr noundef nonnull @.str, ptr noundef nonnull @.str.17, i32 noundef 3090) #7
  call void %1102(ptr noundef %1100, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1104) #7
  br label %1419

1105:                                             ; preds = %1096
  %1106 = add i32 %1097, -1
  store i32 %1106, ptr %33, align 8, !tbaa !22
  br label %1419

1107:                                             ; preds = %47
  %1108 = load i32, ptr %33, align 8, !tbaa !22
  %1109 = icmp ult i32 %1108, 2
  br i1 %1109, label %1110, label %1116

1110:                                             ; preds = %1107
  %1111 = load ptr, ptr %38, align 8, !tbaa !42
  %1112 = getelementptr inbounds i8, ptr %1111, i64 48
  %1113 = load ptr, ptr %1112, align 8, !tbaa !44
  %1114 = call ptr @sdsempty() #7
  %1115 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1114, ptr noundef nonnull @.str, ptr noundef nonnull @.str.18, i32 noundef 3092) #7
  call void %1113(ptr noundef %1111, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1115) #7
  br label %1419

1116:                                             ; preds = %1107
  %1117 = load ptr, ptr %4, align 8, !tbaa !24
  %1118 = add i32 %1108, -2
  %1119 = zext i32 %1118 to i64
  %1120 = getelementptr inbounds %struct.cff_Value, ptr %1117, i64 %1119, i32 1
  %1121 = load double, ptr %1120, align 8, !tbaa !21
  %1122 = add i32 %1108, -1
  %1123 = zext i32 %1122 to i64
  %1124 = getelementptr inbounds %struct.cff_Value, ptr %1117, i64 %1123, i32 1
  %1125 = load double, ptr %1124, align 8, !tbaa !21
  %1126 = fptosi double %1125 to i32
  %1127 = srem i32 %1126, 32
  %1128 = sext i32 %1127 to i64
  %1129 = getelementptr inbounds [32 x %struct.cff_Value], ptr %42, i64 0, i64 %1128, i32 1
  store double %1121, ptr %1129, align 8, !tbaa !21
  store i32 %1118, ptr %33, align 8, !tbaa !22
  br label %1419

1130:                                             ; preds = %47
  %1131 = load i32, ptr %33, align 8, !tbaa !22
  %1132 = icmp eq i32 %1131, 0
  br i1 %1132, label %1133, label %1139

1133:                                             ; preds = %1130
  %1134 = load ptr, ptr %38, align 8, !tbaa !42
  %1135 = getelementptr inbounds i8, ptr %1134, i64 48
  %1136 = load ptr, ptr %1135, align 8, !tbaa !44
  %1137 = call ptr @sdsempty() #7
  %1138 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1137, ptr noundef nonnull @.str, ptr noundef nonnull @.str.19, i32 noundef 3093) #7
  call void %1136(ptr noundef %1134, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1138) #7
  br label %1419

1139:                                             ; preds = %1130
  %1140 = load ptr, ptr %4, align 8, !tbaa !24
  %1141 = add i32 %1131, -1
  %1142 = zext i32 %1141 to i64
  %1143 = getelementptr inbounds %struct.cff_Value, ptr %1140, i64 %1142, i32 1
  %1144 = load double, ptr %1143, align 8, !tbaa !21
  %1145 = fptosi double %1144 to i32
  %1146 = srem i32 %1145, 32
  %1147 = sext i32 %1146 to i64
  %1148 = getelementptr inbounds [32 x %struct.cff_Value], ptr %42, i64 0, i64 %1147, i32 1
  %1149 = load double, ptr %1148, align 8, !tbaa !21
  store double %1149, ptr %1143, align 8, !tbaa !21
  br label %1419

1150:                                             ; preds = %47
  %1151 = load i32, ptr %33, align 8, !tbaa !22
  %1152 = icmp ult i32 %1151, 4
  br i1 %1152, label %1153, label %1159

1153:                                             ; preds = %1150
  %1154 = load ptr, ptr %38, align 8, !tbaa !42
  %1155 = getelementptr inbounds i8, ptr %1154, i64 48
  %1156 = load ptr, ptr %1155, align 8, !tbaa !44
  %1157 = call ptr @sdsempty() #7
  %1158 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1157, ptr noundef nonnull @.str, ptr noundef nonnull @.str.20, i32 noundef 3094) #7
  call void %1156(ptr noundef %1154, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1158) #7
  br label %1419

1159:                                             ; preds = %1150
  %1160 = load ptr, ptr %4, align 8, !tbaa !24
  %1161 = add i32 %1151, -1
  %1162 = zext i32 %1161 to i64
  %1163 = getelementptr inbounds %struct.cff_Value, ptr %1160, i64 %1162, i32 1
  %1164 = load double, ptr %1163, align 8, !tbaa !21
  %1165 = add i32 %1151, -2
  %1166 = zext i32 %1165 to i64
  %1167 = getelementptr inbounds %struct.cff_Value, ptr %1160, i64 %1166, i32 1
  %1168 = load double, ptr %1167, align 8, !tbaa !21
  %1169 = add i32 %1151, -3
  %1170 = zext i32 %1169 to i64
  %1171 = getelementptr inbounds %struct.cff_Value, ptr %1160, i64 %1170, i32 1
  %1172 = load double, ptr %1171, align 8, !tbaa !21
  %1173 = add i32 %1151, -4
  %1174 = zext i32 %1173 to i64
  %1175 = getelementptr inbounds %struct.cff_Value, ptr %1160, i64 %1174, i32 1
  %1176 = load double, ptr %1175, align 8, !tbaa !21
  %1177 = fcmp ole double %1168, %1164
  %1178 = select i1 %1177, double %1176, double %1172
  store double %1178, ptr %1175, align 8, !tbaa !21
  %1179 = load i32, ptr %33, align 8, !tbaa !22
  %1180 = add i32 %1179, -3
  store i32 %1180, ptr %33, align 8, !tbaa !22
  br label %1419

1181:                                             ; preds = %47
  %1182 = load ptr, ptr %4, align 8, !tbaa !24
  %1183 = load i32, ptr %33, align 8, !tbaa !22
  %1184 = zext i32 %1183 to i64
  %1185 = getelementptr inbounds %struct.cff_Value, ptr %1182, i64 %1184
  store i32 3, ptr %1185, align 8, !tbaa !19
  %1186 = call double %spec.store.select3(ptr noundef %5) #7
  %1187 = load ptr, ptr %4, align 8, !tbaa !24
  %1188 = load i32, ptr %33, align 8, !tbaa !22
  %1189 = zext i32 %1188 to i64
  %1190 = getelementptr inbounds %struct.cff_Value, ptr %1187, i64 %1189, i32 1
  store double %1186, ptr %1190, align 8, !tbaa !21
  %1191 = load i32, ptr %33, align 8, !tbaa !22
  %1192 = add i32 %1191, 1
  store i32 %1192, ptr %33, align 8, !tbaa !22
  br label %1419

1193:                                             ; preds = %47
  %1194 = load i32, ptr %33, align 8, !tbaa !22
  %1195 = icmp ult i32 %1194, 2
  br i1 %1195, label %1196, label %1202

1196:                                             ; preds = %1193
  %1197 = load ptr, ptr %38, align 8, !tbaa !42
  %1198 = getelementptr inbounds i8, ptr %1197, i64 48
  %1199 = load ptr, ptr %1198, align 8, !tbaa !44
  %1200 = call ptr @sdsempty() #7
  %1201 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1200, ptr noundef nonnull @.str, ptr noundef nonnull @.str.21, i32 noundef 3096) #7
  call void %1199(ptr noundef %1197, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1201) #7
  br label %1419

1202:                                             ; preds = %1193
  %1203 = load ptr, ptr %4, align 8, !tbaa !24
  %1204 = add i32 %1194, -1
  %1205 = zext i32 %1204 to i64
  %1206 = getelementptr inbounds %struct.cff_Value, ptr %1203, i64 %1205, i32 1
  %1207 = load double, ptr %1206, align 8, !tbaa !21
  %1208 = add i32 %1194, -2
  %1209 = zext i32 %1208 to i64
  %1210 = getelementptr inbounds %struct.cff_Value, ptr %1203, i64 %1209, i32 1
  %1211 = load double, ptr %1210, align 8, !tbaa !21
  %1212 = fmul double %1207, %1211
  store double %1212, ptr %1210, align 8, !tbaa !21
  %1213 = load i32, ptr %33, align 8, !tbaa !22
  %1214 = add i32 %1213, -1
  store i32 %1214, ptr %33, align 8, !tbaa !22
  br label %1419

1215:                                             ; preds = %47
  %1216 = load i32, ptr %33, align 8, !tbaa !22
  %1217 = icmp eq i32 %1216, 0
  br i1 %1217, label %1218, label %1224

1218:                                             ; preds = %1215
  %1219 = load ptr, ptr %38, align 8, !tbaa !42
  %1220 = getelementptr inbounds i8, ptr %1219, i64 48
  %1221 = load ptr, ptr %1220, align 8, !tbaa !44
  %1222 = call ptr @sdsempty() #7
  %1223 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1222, ptr noundef nonnull @.str, ptr noundef nonnull @.str.22, i32 noundef 3098) #7
  call void %1221(ptr noundef %1219, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1223) #7
  br label %1419

1224:                                             ; preds = %1215
  %1225 = load ptr, ptr %4, align 8, !tbaa !24
  %1226 = add i32 %1216, -1
  %1227 = zext i32 %1226 to i64
  %1228 = getelementptr inbounds %struct.cff_Value, ptr %1225, i64 %1227, i32 1
  %1229 = load double, ptr %1228, align 8, !tbaa !21
  %1230 = call double @sqrt(double noundef %1229) #7
  %1231 = load ptr, ptr %4, align 8, !tbaa !24
  %1232 = load i32, ptr %33, align 8, !tbaa !22
  %1233 = add i32 %1232, -1
  %1234 = zext i32 %1233 to i64
  %1235 = getelementptr inbounds %struct.cff_Value, ptr %1231, i64 %1234, i32 1
  store double %1230, ptr %1235, align 8, !tbaa !21
  br label %1419

1236:                                             ; preds = %47
  %1237 = load i32, ptr %33, align 8, !tbaa !22
  %1238 = icmp eq i32 %1237, 0
  br i1 %1238, label %1239, label %1245

1239:                                             ; preds = %1236
  %1240 = load ptr, ptr %38, align 8, !tbaa !42
  %1241 = getelementptr inbounds i8, ptr %1240, i64 48
  %1242 = load ptr, ptr %1241, align 8, !tbaa !44
  %1243 = call ptr @sdsempty() #7
  %1244 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1243, ptr noundef nonnull @.str, ptr noundef nonnull @.str.23, i32 noundef 3099) #7
  call void %1242(ptr noundef %1240, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1244) #7
  br label %1419

1245:                                             ; preds = %1236
  %1246 = load ptr, ptr %4, align 8, !tbaa !24
  %1247 = zext i32 %1237 to i64
  %1248 = getelementptr inbounds %struct.cff_Value, ptr %1246, i64 %1247
  %1249 = add i32 %1237, -1
  %1250 = zext i32 %1249 to i64
  %1251 = getelementptr inbounds %struct.cff_Value, ptr %1246, i64 %1250
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1248, ptr noundef nonnull align 8 dereferenceable(16) %1251, i64 16, i1 false), !tbaa.struct !60
  %1252 = load i32, ptr %33, align 8, !tbaa !22
  %1253 = add i32 %1252, 1
  store i32 %1253, ptr %33, align 8, !tbaa !22
  br label %1419

1254:                                             ; preds = %47
  %1255 = load i32, ptr %33, align 8, !tbaa !22
  %1256 = icmp ult i32 %1255, 2
  br i1 %1256, label %1257, label %1263

1257:                                             ; preds = %1254
  %1258 = load ptr, ptr %38, align 8, !tbaa !42
  %1259 = getelementptr inbounds i8, ptr %1258, i64 48
  %1260 = load ptr, ptr %1259, align 8, !tbaa !44
  %1261 = call ptr @sdsempty() #7
  %1262 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1261, ptr noundef nonnull @.str, ptr noundef nonnull @.str.24, i32 noundef 3100) #7
  call void %1260(ptr noundef %1258, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1262) #7
  br label %1419

1263:                                             ; preds = %1254
  %1264 = load ptr, ptr %4, align 8, !tbaa !24
  %1265 = add i32 %1255, -1
  %1266 = zext i32 %1265 to i64
  %1267 = getelementptr inbounds %struct.cff_Value, ptr %1264, i64 %1266, i32 1
  %1268 = load double, ptr %1267, align 8, !tbaa !21
  %1269 = add i32 %1255, -2
  %1270 = zext i32 %1269 to i64
  %1271 = getelementptr inbounds %struct.cff_Value, ptr %1264, i64 %1270, i32 1
  %1272 = load double, ptr %1271, align 8, !tbaa !21
  store double %1272, ptr %1267, align 8, !tbaa !21
  %1273 = load ptr, ptr %4, align 8, !tbaa !24
  %1274 = load i32, ptr %33, align 8, !tbaa !22
  %1275 = add i32 %1274, -2
  %1276 = zext i32 %1275 to i64
  %1277 = getelementptr inbounds %struct.cff_Value, ptr %1273, i64 %1276, i32 1
  store double %1268, ptr %1277, align 8, !tbaa !21
  br label %1419

1278:                                             ; preds = %47
  %1279 = load i32, ptr %33, align 8, !tbaa !22
  %1280 = icmp ult i32 %1279, 2
  br i1 %1280, label %1281, label %1287

1281:                                             ; preds = %1278
  %1282 = load ptr, ptr %38, align 8, !tbaa !42
  %1283 = getelementptr inbounds i8, ptr %1282, i64 48
  %1284 = load ptr, ptr %1283, align 8, !tbaa !44
  %1285 = call ptr @sdsempty() #7
  %1286 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1285, ptr noundef nonnull @.str, ptr noundef nonnull @.str.25, i32 noundef 3101) #7
  call void %1284(ptr noundef %1282, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1286) #7
  br label %1419

1287:                                             ; preds = %1278
  %1288 = trunc i32 %1279 to i8
  %1289 = add i8 %1288, -1
  %1290 = load ptr, ptr %4, align 8, !tbaa !24
  %1291 = zext i8 %1289 to i64
  %1292 = getelementptr inbounds %struct.cff_Value, ptr %1290, i64 %1291
  %1293 = getelementptr inbounds i8, ptr %1292, i64 8
  %1294 = load double, ptr %1293, align 8, !tbaa !21
  %1295 = fptoui double %1294 to i8
  %1296 = urem i8 %1295, %1289
  %1297 = xor i8 %1296, -1
  %1298 = add i8 %1289, %1297
  %1299 = zext i8 %1298 to i64
  %1300 = getelementptr inbounds %struct.cff_Value, ptr %1290, i64 %1299
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1292, ptr noundef nonnull align 8 dereferenceable(16) %1300, i64 16, i1 false), !tbaa.struct !60
  br label %1419

1301:                                             ; preds = %47
  %1302 = load i32, ptr %33, align 8, !tbaa !22
  %1303 = icmp ult i32 %1302, 2
  br i1 %1303, label %1304, label %1310

1304:                                             ; preds = %1301
  %1305 = load ptr, ptr %38, align 8, !tbaa !42
  %1306 = getelementptr inbounds i8, ptr %1305, i64 48
  %1307 = load ptr, ptr %1306, align 8, !tbaa !44
  %1308 = call ptr @sdsempty() #7
  %1309 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1308, ptr noundef nonnull @.str, ptr noundef nonnull @.str.26, i32 noundef 3102) #7
  call void %1307(ptr noundef %1305, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1309) #7
  br label %1419

1310:                                             ; preds = %1301
  %1311 = load ptr, ptr %4, align 8, !tbaa !24
  %1312 = add i32 %1302, -2
  %1313 = zext i32 %1312 to i64
  %1314 = getelementptr inbounds %struct.cff_Value, ptr %1311, i64 %1313, i32 1
  %1315 = load double, ptr %1314, align 8, !tbaa !21
  %1316 = fptoui double %1315 to i32
  %1317 = add i32 %1316, 2
  %1318 = icmp ult i32 %1302, %1317
  br i1 %1318, label %1319, label %1325

1319:                                             ; preds = %1310
  %1320 = load ptr, ptr %38, align 8, !tbaa !42
  %1321 = getelementptr inbounds i8, ptr %1320, i64 48
  %1322 = load ptr, ptr %1321, align 8, !tbaa !44
  %1323 = call ptr @sdsempty() #7
  %1324 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1323, ptr noundef nonnull @.str, ptr noundef nonnull @.str.26, i32 noundef 3102) #7
  call void %1322(ptr noundef %1320, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1324) #7
  br label %1419

1325:                                             ; preds = %1310
  %1326 = add i32 %1302, -1
  %1327 = zext i32 %1326 to i64
  %1328 = getelementptr inbounds %struct.cff_Value, ptr %1311, i64 %1327, i32 1
  %1329 = load double, ptr %1328, align 8, !tbaa !21
  %1330 = fptosi double %1329 to i32
  %1331 = sub nsw i32 0, %1330
  %1332 = urem i32 %1331, %1316
  %1333 = icmp slt i32 %1332, 0
  %1334 = select i1 %1333, i32 %1316, i32 0
  %spec.select = add i32 %1334, %1332
  %.not870 = icmp eq i32 %spec.select, 0
  br i1 %.not870, label %1419, label %1335

1335:                                             ; preds = %1325
  %1336 = trunc i32 %1302 to i8
  %1337 = add i8 %1336, -3
  %1338 = add i32 %1302, 254
  %1339 = sub i32 %1338, %1316
  %1340 = trunc i32 %1339 to i8
  call void @reverseStack(ptr noundef nonnull %4, i8 noundef zeroext %1340, i8 noundef zeroext %1337)
  %1341 = trunc i32 %spec.select to i8
  %1342 = sub i8 %1337, %1341
  %1343 = add i8 %1342, 1
  call void @reverseStack(ptr noundef nonnull %4, i8 noundef zeroext %1343, i8 noundef zeroext %1337)
  call void @reverseStack(ptr noundef nonnull %4, i8 noundef zeroext %1340, i8 noundef zeroext %1342)
  %1344 = load i32, ptr %33, align 8, !tbaa !22
  %1345 = add i32 %1344, -2
  store i32 %1345, ptr %33, align 8, !tbaa !22
  br label %1419

1346:                                             ; preds = %47
  %1347 = load i32, ptr %33, align 8, !tbaa !22
  %1348 = icmp eq i32 %1347, 0
  br i1 %1348, label %1349, label %1355

1349:                                             ; preds = %1346
  %1350 = load ptr, ptr %38, align 8, !tbaa !42
  %1351 = getelementptr inbounds i8, ptr %1350, i64 48
  %1352 = load ptr, ptr %1351, align 8, !tbaa !44
  %1353 = call ptr @sdsempty() #7
  %1354 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1353, ptr noundef nonnull @.str, ptr noundef nonnull @.str.27, i32 noundef 10) #7
  call void %1352(ptr noundef %1350, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1354) #7
  br label %1419

1355:                                             ; preds = %1346
  %1356 = load ptr, ptr %4, align 8, !tbaa !24
  %1357 = add i32 %1347, -1
  store i32 %1357, ptr %33, align 8, !tbaa !22
  %1358 = zext i32 %1357 to i64
  %1359 = getelementptr inbounds %struct.cff_Value, ptr %1356, i64 %1358, i32 1
  %1360 = load double, ptr %1359, align 8, !tbaa !21
  %1361 = fptoui double %1360 to i32
  %1362 = load ptr, ptr %39, align 8, !tbaa !62
  %1363 = load ptr, ptr %40, align 8, !tbaa !63
  %1364 = add i32 %1361, %41
  %1365 = zext i32 %1364 to i64
  %1366 = getelementptr inbounds i32, ptr %1363, i64 %1365
  %1367 = load i32, ptr %1366, align 4, !tbaa !61
  %1368 = zext i32 %1367 to i64
  %1369 = getelementptr inbounds i8, ptr %1362, i64 %1368
  %1370 = getelementptr inbounds i8, ptr %1369, i64 -1
  %1371 = add i32 %1364, 1
  %1372 = zext i32 %1371 to i64
  %1373 = getelementptr inbounds i32, ptr %1363, i64 %1372
  %1374 = load i32, ptr %1373, align 4, !tbaa !61
  %1375 = sub i32 %1374, %1367
  call void @cff_parseOutline(ptr noundef nonnull %1370, i32 noundef %1375, ptr noundef nonnull byval(%struct.cff_Index) align 8 %2, ptr noundef nonnull byval(%struct.cff_Index) align 8 %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %7)
  br label %1419

1376:                                             ; preds = %47
  %1377 = load i32, ptr %33, align 8, !tbaa !22
  %1378 = icmp eq i32 %1377, 0
  br i1 %1378, label %1379, label %1385

1379:                                             ; preds = %1376
  %1380 = load ptr, ptr %38, align 8, !tbaa !42
  %1381 = getelementptr inbounds i8, ptr %1380, i64 48
  %1382 = load ptr, ptr %1381, align 8, !tbaa !44
  %1383 = call ptr @sdsempty() #7
  %1384 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1383, ptr noundef nonnull @.str, ptr noundef nonnull @.str.28, i32 noundef 29) #7
  call void %1382(ptr noundef %1380, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1384) #7
  br label %1419

1385:                                             ; preds = %1376
  %1386 = load ptr, ptr %4, align 8, !tbaa !24
  %1387 = add i32 %1377, -1
  store i32 %1387, ptr %33, align 8, !tbaa !22
  %1388 = zext i32 %1387 to i64
  %1389 = getelementptr inbounds %struct.cff_Value, ptr %1386, i64 %1388, i32 1
  %1390 = load double, ptr %1389, align 8, !tbaa !21
  %1391 = fptoui double %1390 to i32
  %1392 = load ptr, ptr %35, align 8, !tbaa !62
  %1393 = load ptr, ptr %36, align 8, !tbaa !63
  %1394 = add i32 %1391, %37
  %1395 = zext i32 %1394 to i64
  %1396 = getelementptr inbounds i32, ptr %1393, i64 %1395
  %1397 = load i32, ptr %1396, align 4, !tbaa !61
  %1398 = zext i32 %1397 to i64
  %1399 = getelementptr inbounds i8, ptr %1392, i64 %1398
  %1400 = getelementptr inbounds i8, ptr %1399, i64 -1
  %1401 = add i32 %1394, 1
  %1402 = zext i32 %1401 to i64
  %1403 = getelementptr inbounds i32, ptr %1393, i64 %1402
  %1404 = load i32, ptr %1403, align 4, !tbaa !61
  %1405 = sub i32 %1404, %1397
  call void @cff_parseOutline(ptr noundef nonnull %1400, i32 noundef %1405, ptr noundef nonnull byval(%struct.cff_Index) align 8 %2, ptr noundef nonnull byval(%struct.cff_Index) align 8 %3, ptr noundef nonnull %4, ptr noundef %5, ptr noundef nonnull byval(%struct.cff_IOutlineBuilder) align 8 %6, ptr noundef %7)
  br label %1419

1406:                                             ; preds = %47
  %1407 = load ptr, ptr %38, align 8, !tbaa !42
  %1408 = getelementptr inbounds i8, ptr %1407, i64 48
  %1409 = load ptr, ptr %1408, align 8, !tbaa !44
  %1410 = call ptr @sdsempty() #7
  %1411 = load i32, ptr %34, align 8, !tbaa !21
  %1412 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1410, ptr noundef nonnull @.str.29, i32 noundef %1411) #7
  call void %1409(ptr noundef %1407, i8 noundef zeroext 1, i32 noundef 1, ptr noundef %1412) #7
  br label %.loopexit899

1413:                                             ; preds = %44, %44
  %1414 = load ptr, ptr %4, align 8, !tbaa !24
  %1415 = load i32, ptr %33, align 8, !tbaa !22
  %1416 = add i32 %1415, 1
  store i32 %1416, ptr %33, align 8, !tbaa !22
  %1417 = zext i32 %1415 to i64
  %1418 = getelementptr inbounds %struct.cff_Value, ptr %1414, i64 %1417
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %1418, ptr noundef nonnull align 8 dereferenceable(16) %9, i64 16, i1 false), !tbaa.struct !60
  br label %1419

1419:                                             ; preds = %1319, %1335, %1325, %._crit_edge961, %._crit_edge956, %220, %232, %242, %255, %268, %280, %._crit_edge947, %.loopexit, %.loopexit888, %._crit_edge934, %._crit_edge929, %._crit_edge925, %.loopexit893, %.loopexit896, %658, %734, %738, %744, %767, %773, %803, %809, %840, %896, %909, %915, %934, %940, %959, %965, %976, %982, %994, %1000, %1016, %1022, %1038, %1044, %1060, %1066, %1076, %1082, %1099, %1105, %1110, %1116, %1133, %1139, %1153, %1159, %1181, %1196, %1202, %1218, %1224, %1239, %1245, %1257, %1263, %1281, %1287, %1304, %1349, %1355, %1379, %1385, %289, %287, %1413, %44
  %.0820 = phi i32 [ %45, %44 ], [ %45, %1413 ], [ %45, %1379 ], [ %45, %1385 ], [ %45, %1349 ], [ %45, %1355 ], [ %45, %1304 ], [ %45, %1281 ], [ %45, %1287 ], [ %45, %1257 ], [ %45, %1263 ], [ %45, %1239 ], [ %45, %1245 ], [ %45, %1218 ], [ %45, %1224 ], [ %45, %1196 ], [ %45, %1202 ], [ %45, %1181 ], [ %45, %1153 ], [ %45, %1159 ], [ %45, %1133 ], [ %45, %1139 ], [ %45, %1110 ], [ %45, %1116 ], [ %45, %1099 ], [ %45, %1105 ], [ %45, %1076 ], [ %45, %1082 ], [ %45, %1060 ], [ %45, %1066 ], [ %45, %1038 ], [ %45, %1044 ], [ %45, %1016 ], [ %45, %1022 ], [ %45, %994 ], [ %45, %1000 ], [ %45, %976 ], [ %45, %982 ], [ %45, %959 ], [ %45, %965 ], [ %45, %934 ], [ %45, %940 ], [ %45, %909 ], [ %45, %915 ], [ %45, %840 ], [ %45, %896 ], [ %45, %803 ], [ %45, %809 ], [ %45, %767 ], [ %45, %773 ], [ %45, %738 ], [ %45, %744 ], [ %45, %734 ], [ %45, %658 ], [ %45, %.loopexit896 ], [ %45, %.loopexit893 ], [ %45, %._crit_edge925 ], [ %45, %._crit_edge929 ], [ %45, %._crit_edge934 ], [ %45, %.loopexit888 ], [ %45, %.loopexit ], [ %45, %._crit_edge947 ], [ %45, %289 ], [ %45, %287 ], [ %45, %268 ], [ %45, %280 ], [ %45, %242 ], [ %45, %255 ], [ %45, %220 ], [ %45, %232 ], [ %189, %._crit_edge956 ], [ %45, %._crit_edge961 ], [ %45, %1325 ], [ %45, %1335 ], [ %45, %1319 ]
  %1420 = zext i32 %.0820 to i64
  %1421 = getelementptr inbounds i8, ptr %.0962, i64 %1420
  %1422 = icmp ult ptr %1421, %32
  br i1 %1422, label %44, label %.loopexit899, !llvm.loop !64

.loopexit899:                                     ; preds = %47, %1419, %8, %1406
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #7
  ret void
}

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i16 @compute_subr_bias(i16 noundef zeroext) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopSetWidth(ptr noundef, double noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopNewContour(ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopLineTo(ptr noundef, double noundef, double noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopCurveTo(ptr noundef, double noundef, double noundef, double noundef, double noundef, double noundef, double noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopsetHint(ptr noundef, i1 noundef zeroext, double noundef, double noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden void @callback_nopsetMask(ptr noundef, i1 noundef zeroext, ptr noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden double @callback_nopgetrand(ptr noundef) local_unnamed_addr #3

declare i32 @cff_decodeCS2Token(ptr noundef, ptr noundef) local_unnamed_addr #4

declare ptr @sdscatprintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #4

declare ptr @sdsempty() local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare double @sqrt(double noundef) local_unnamed_addr #5

; Function Attrs: nounwind uwtable
declare hidden void @reverseStack(ptr noundef, i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <2 x double> @llvm.fabs.v2f64(<2 x double>) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 4}
!6 = !{!"", !7, i64 0, !7, i64 4, !8, i64 8, !10, i64 16, !10, i64 24}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!12, !10, i64 0}
!12 = !{!"", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48}
!13 = !{!12, !10, i64 8}
!14 = !{!12, !10, i64 16}
!15 = !{!12, !10, i64 24}
!16 = !{!12, !10, i64 32}
!17 = !{!12, !10, i64 40}
!18 = !{!12, !10, i64 48}
!19 = !{!20, !7, i64 0}
!20 = !{!"", !7, i64 0, !8, i64 8}
!21 = !{!8, !8, i64 0}
!22 = !{!23, !7, i64 520}
!23 = !{!"", !10, i64 0, !8, i64 8, !7, i64 520, !7, i64 524, !8, i64 528}
!24 = !{!23, !10, i64 0}
!25 = !{!23, !8, i64 528}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!29}
!29 = distinct !{!29, !30}
!30 = distinct !{!30, !"LVerDomain"}
!31 = !{!32, !32, i64 0}
!32 = !{!"_Bool", !8, i64 0}
!33 = distinct !{!33, !27, !34, !35}
!34 = !{!"llvm.loop.isvectorized", i32 1}
!35 = !{!"llvm.loop.unroll.runtime.disable"}
!36 = !{!37}
!37 = distinct !{!37, !38}
!38 = distinct !{!38, !"LVerDomain"}
!39 = distinct !{!39, !27, !34, !35}
!40 = distinct !{!40, !27}
!41 = distinct !{!41, !27, !34}
!42 = !{!43, !10, i64 32}
!43 = !{!"", !32, i64 0, !32, i64 1, !32, i64 2, !32, i64 3, !32, i64 4, !32, i64 5, !32, i64 6, !32, i64 7, !32, i64 8, !32, i64 9, !32, i64 10, !32, i64 11, !32, i64 12, !32, i64 13, !32, i64 14, !32, i64 15, !32, i64 16, !32, i64 17, !32, i64 18, !32, i64 19, !32, i64 20, !32, i64 21, !32, i64 22, !10, i64 24, !10, i64 32}
!44 = !{!45, !10, i64 48}
!45 = !{!"otfcc_ILogger", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88}
!46 = distinct !{!46, !27}
!47 = distinct !{!47, !27}
!48 = distinct !{!48, !27}
!49 = distinct !{!49, !27}
!50 = distinct !{!50, !27}
!51 = distinct !{!51, !27}
!52 = distinct !{!52, !27}
!53 = distinct !{!53, !27}
!54 = distinct !{!54, !27}
!55 = distinct !{!55, !27}
!56 = distinct !{!56, !27}
!57 = distinct !{!57, !27}
!58 = distinct !{!58, !27}
!59 = distinct !{!59, !27}
!60 = !{i64 0, i64 4, !61, i64 8, i64 8, !21}
!61 = !{!7, !7, i64 0}
!62 = !{!6, !10, i64 24}
!63 = !{!6, !10, i64 16}
!64 = distinct !{!64, !27}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass