; LLVM IR from ArefMq/SoccerBallDetection :: src/modules/FRHT.ll (ZN7MVision4FRHT13resizeCirlcleERNS_6CircleEiRKNS_13ColorAnalyzerE)

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

%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl" }
%"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl" = type { %"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MVision::Vector2D" = type { float, float }
%"class.MVision::Circle" = type { %"class.MVision::Vector2D", float }
%"class.MVision::FRHT" = type { %class.Debugable, ptr, %"class.std::vector" }
%class.Debugable = type { ptr, ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<MVision::Circle, std::allocator<MVision::Circle>>::_Vector_impl" }
%"struct.std::_Vector_base<MVision::Circle, std::allocator<MVision::Circle>>::_Vector_impl" = type { %"struct.std::_Vector_base<MVision::Circle, std::allocator<MVision::Circle>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MVision::Circle, std::allocator<MVision::Circle>>::_Vector_impl_data" = type { ptr, ptr, ptr }

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

declare noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24)) #4

declare noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24)) #4

declare void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN7MVision4FRHT10fitACircleERKNS_8Vector2DES3_S3_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) #5 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision6Circle7radiousEv(ptr noundef nonnull align 4 dereferenceable(12)) #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7MVision4FRHT13resizeCirlcleERNS_6CircleEiRKNS_13ColorAnalyzerE(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 4 dereferenceable(12) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(56) %3) #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca %"class.std::vector.10", align 8
  %13 = alloca float, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca %"class.MVision::Vector2D", align 4
  %17 = alloca %"class.MVision::Vector2D", align 4
  %18 = alloca %"class.MVision::Vector2D", align 4
  %19 = alloca %"class.MVision::Vector2D", align 4
  %20 = alloca %"class.MVision::Vector2D", align 4
  %21 = alloca %"class.MVision::Vector2D", align 4
  %22 = alloca %"class.MVision::Vector2D", align 4
  %23 = alloca %"class.MVision::Vector2D", align 4
  %24 = alloca %"class.MVision::Circle", align 4
  %25 = alloca { <2 x float>, float }, align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store i32 %2, ptr %7, align 4, !tbaa !9
  store ptr %3, ptr %8, align 8, !tbaa !5
  %26 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store i32 100, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #7
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %27 = load ptr, ptr %6, align 8, !tbaa !5
  %28 = invoke noundef float @_ZNK7MVision6Circle7radiousEv(ptr noundef nonnull align 4 dereferenceable(12) %27)
          to label %29 unwind label %103

29:                                               ; preds = %4
  store float %28, ptr %13, align 4, !tbaa !11
  %30 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %31 = icmp ult i64 %30, 3
  br i1 %31, label %32, label %163

32:                                               ; preds = %29
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %33 = load ptr, ptr %6, align 8, !tbaa !5
  %34 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %33)
          to label %35 unwind label %107

35:                                               ; preds = %32
  %36 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %34)
          to label %37 unwind label %107

37:                                               ; preds = %35
  %38 = fadd float %36, 0.000000e+00
  %39 = load ptr, ptr %6, align 8, !tbaa !5
  %40 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %39)
          to label %41 unwind label %107

41:                                               ; preds = %37
  %42 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %40)
          to label %43 unwind label %107

43:                                               ; preds = %41
  %44 = load float, ptr %13, align 4, !tbaa !11
  %45 = fneg float %44
  %46 = fadd float %42, %45
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %16, float noundef %38, float noundef %46)
          to label %47 unwind label %107

47:                                               ; preds = %43
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %48

48:                                               ; preds = %117, %47
  %49 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %50 unwind label %107

50:                                               ; preds = %48
  %51 = fcmp oge float %49, 0.000000e+00
  br i1 %51, label %52, label %88

52:                                               ; preds = %50
  %53 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %54 unwind label %107

54:                                               ; preds = %52
  %55 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %56 = load ptr, ptr %55, align 8, !tbaa !13
  %57 = getelementptr inbounds i8, ptr %56, i64 16
  %58 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %57)
          to label %59 unwind label %107

59:                                               ; preds = %54
  %60 = uitofp i32 %58 to float
  %61 = fcmp olt float %53, %60
  br i1 %61, label %62, label %88

62:                                               ; preds = %59
  %63 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %64 unwind label %107

64:                                               ; preds = %62
  %65 = fcmp oge float %63, 0.000000e+00
  br i1 %65, label %66, label %88

66:                                               ; preds = %64
  %67 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %68 unwind label %107

68:                                               ; preds = %66
  %69 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %70 = load ptr, ptr %69, align 8, !tbaa !13
  %71 = getelementptr inbounds i8, ptr %70, i64 16
  %72 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %71)
          to label %73 unwind label %107

73:                                               ; preds = %68
  %74 = uitofp i32 %72 to float
  %75 = fcmp olt float %67, %74
  br i1 %75, label %76, label %88

76:                                               ; preds = %73
  %77 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %78 unwind label %107

78:                                               ; preds = %76
  %79 = load i32, ptr %7, align 4, !tbaa !9
  %80 = sitofp i32 %79 to float
  %81 = fcmp ogt float %77, %80
  br i1 %81, label %82, label %88

82:                                               ; preds = %78
  %83 = load i32, ptr %10, align 4, !tbaa !9
  %84 = icmp slt i32 %83, 100
  br i1 %84, label %85, label %88

85:                                               ; preds = %82
  %86 = load i32, ptr %9, align 4, !tbaa !9
  %87 = icmp slt i32 %86, 5
  br label %88

88:                                               ; preds = %85, %82, %78, %73, %64, %59, %50
  %89 = phi i1 [ false, %82 ], [ false, %78 ], [ false, %73 ], [ false, %64 ], [ false, %59 ], [ false, %50 ], [ %87, %85 ]
  br i1 %89, label %90, label %120

90:                                               ; preds = %88
  %91 = load ptr, ptr %8, align 8, !tbaa !5
  %92 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %93 unwind label %107

93:                                               ; preds = %90
  %94 = fptosi float %92 to i32
  %95 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %96 unwind label %107

96:                                               ; preds = %93
  %97 = fptosi float %95 to i32
  %98 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %91, i32 noundef %94, i32 noundef %97)
          to label %99 unwind label %107

99:                                               ; preds = %96
  br i1 %98, label %100, label %111

100:                                              ; preds = %99
  %101 = load i32, ptr %9, align 4, !tbaa !9
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr %9, align 4, !tbaa !9
  br label %112

103:                                              ; preds = %4
  %104 = landingpad { ptr, i32 }
          cleanup
  %105 = extractvalue { ptr, i32 } %104, 0
  store ptr %105, ptr %14, align 8
  %106 = extractvalue { ptr, i32 } %104, 1
  store i32 %106, ptr %15, align 4
  br label %1127

107:                                              ; preds = %160, %154, %146, %144, %140, %132, %130, %124, %120, %112, %96, %93, %90, %76, %68, %66, %62, %54, %52, %48, %43, %41, %37, %35, %32
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %14, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %1127

111:                                              ; preds = %99
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %112

112:                                              ; preds = %111, %100
  %113 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %114 unwind label %107

114:                                              ; preds = %112
  %115 = load float, ptr %113, align 4, !tbaa !11
  %116 = fadd float %115, -1.000000e+00
  store float %116, ptr %113, align 4, !tbaa !11
  br label %117

117:                                              ; preds = %114
  %118 = load i32, ptr %10, align 4, !tbaa !9
  %119 = add nsw i32 %118, 1
  store i32 %119, ptr %10, align 4, !tbaa !9
  br label %48, !llvm.loop !20

120:                                              ; preds = %88
  %121 = load i32, ptr %9, align 4, !tbaa !9
  %122 = sitofp i32 %121 to float
  %123 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %124 unwind label %107

124:                                              ; preds = %120
  %125 = load float, ptr %123, align 4, !tbaa !11
  %126 = fadd float %125, %122
  store float %126, ptr %123, align 4, !tbaa !11
  %127 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %128 unwind label %107

128:                                              ; preds = %124
  %129 = fcmp oge float %127, 0.000000e+00
  br i1 %129, label %130, label %162

130:                                              ; preds = %128
  %131 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %132 unwind label %107

132:                                              ; preds = %130
  %133 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %134 = load ptr, ptr %133, align 8, !tbaa !13
  %135 = getelementptr inbounds i8, ptr %134, i64 16
  %136 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %135)
          to label %137 unwind label %107

137:                                              ; preds = %132
  %138 = uitofp i32 %136 to float
  %139 = fcmp olt float %131, %138
  br i1 %139, label %140, label %162

140:                                              ; preds = %137
  %141 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %142 unwind label %107

142:                                              ; preds = %140
  %143 = fcmp oge float %141, 0.000000e+00
  br i1 %143, label %144, label %162

144:                                              ; preds = %142
  %145 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %146 unwind label %107

146:                                              ; preds = %144
  %147 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %148 = load ptr, ptr %147, align 8, !tbaa !13
  %149 = getelementptr inbounds i8, ptr %148, i64 16
  %150 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %149)
          to label %151 unwind label %107

151:                                              ; preds = %146
  %152 = uitofp i32 %150 to float
  %153 = fcmp olt float %145, %152
  br i1 %153, label %154, label %162

154:                                              ; preds = %151
  %155 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %156 unwind label %107

156:                                              ; preds = %154
  %157 = load i32, ptr %7, align 4, !tbaa !9
  %158 = sitofp i32 %157 to float
  %159 = fcmp ogt float %155, %158
  br i1 %159, label %160, label %162

160:                                              ; preds = %156
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %16)
          to label %161 unwind label %107

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161, %156, %151, %142, %137, %128
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  br label %163

163:                                              ; preds = %162, %29
  %164 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %165 = icmp ult i64 %164, 3
  br i1 %165, label %166, label %292

166:                                              ; preds = %163
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  %167 = load ptr, ptr %6, align 8, !tbaa !5
  %168 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %167)
          to label %169 unwind label %236

169:                                              ; preds = %166
  %170 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %168)
          to label %171 unwind label %236

171:                                              ; preds = %169
  %172 = load float, ptr %13, align 4, !tbaa !11
  %173 = fadd float %170, %172
  %174 = load ptr, ptr %6, align 8, !tbaa !5
  %175 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %174)
          to label %176 unwind label %236

176:                                              ; preds = %171
  %177 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %175)
          to label %178 unwind label %236

178:                                              ; preds = %176
  %179 = fadd float %177, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %17, float noundef %173, float noundef %179)
          to label %180 unwind label %236

180:                                              ; preds = %178
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %181

181:                                              ; preds = %246, %180
  %182 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %183 unwind label %236

183:                                              ; preds = %181
  %184 = fcmp oge float %182, 0.000000e+00
  br i1 %184, label %185, label %221

185:                                              ; preds = %183
  %186 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %187 unwind label %236

187:                                              ; preds = %185
  %188 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %189 = load ptr, ptr %188, align 8, !tbaa !13
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  %191 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %190)
          to label %192 unwind label %236

192:                                              ; preds = %187
  %193 = uitofp i32 %191 to float
  %194 = fcmp olt float %186, %193
  br i1 %194, label %195, label %221

195:                                              ; preds = %192
  %196 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %197 unwind label %236

197:                                              ; preds = %195
  %198 = fcmp oge float %196, 0.000000e+00
  br i1 %198, label %199, label %221

199:                                              ; preds = %197
  %200 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %201 unwind label %236

201:                                              ; preds = %199
  %202 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %203 = load ptr, ptr %202, align 8, !tbaa !13
  %204 = getelementptr inbounds i8, ptr %203, i64 16
  %205 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %204)
          to label %206 unwind label %236

206:                                              ; preds = %201
  %207 = uitofp i32 %205 to float
  %208 = fcmp olt float %200, %207
  br i1 %208, label %209, label %221

209:                                              ; preds = %206
  %210 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %211 unwind label %236

211:                                              ; preds = %209
  %212 = load i32, ptr %7, align 4, !tbaa !9
  %213 = sitofp i32 %212 to float
  %214 = fcmp ogt float %210, %213
  br i1 %214, label %215, label %221

215:                                              ; preds = %211
  %216 = load i32, ptr %10, align 4, !tbaa !9
  %217 = icmp slt i32 %216, 100
  br i1 %217, label %218, label %221

218:                                              ; preds = %215
  %219 = load i32, ptr %9, align 4, !tbaa !9
  %220 = icmp slt i32 %219, 5
  br label %221

221:                                              ; preds = %218, %215, %211, %206, %197, %192, %183
  %222 = phi i1 [ false, %215 ], [ false, %211 ], [ false, %206 ], [ false, %197 ], [ false, %192 ], [ false, %183 ], [ %220, %218 ]
  br i1 %222, label %223, label %249

223:                                              ; preds = %221
  %224 = load ptr, ptr %8, align 8, !tbaa !5
  %225 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %226 unwind label %236

226:                                              ; preds = %223
  %227 = fptosi float %225 to i32
  %228 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %229 unwind label %236

229:                                              ; preds = %226
  %230 = fptosi float %228 to i32
  %231 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %224, i32 noundef %227, i32 noundef %230)
          to label %232 unwind label %236

232:                                              ; preds = %229
  br i1 %231, label %233, label %240

233:                                              ; preds = %232
  %234 = load i32, ptr %9, align 4, !tbaa !9
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr %9, align 4, !tbaa !9
  br label %241

236:                                              ; preds = %289, %283, %275, %273, %269, %261, %259, %253, %249, %241, %229, %226, %223, %209, %201, %199, %195, %187, %185, %181, %178, %176, %171, %169, %166
  %237 = landingpad { ptr, i32 }
          cleanup
  %238 = extractvalue { ptr, i32 } %237, 0
  store ptr %238, ptr %14, align 8
  %239 = extractvalue { ptr, i32 } %237, 1
  store i32 %239, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %1127

240:                                              ; preds = %232
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %241

241:                                              ; preds = %240, %233
  %242 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %243 unwind label %236

243:                                              ; preds = %241
  %244 = load float, ptr %242, align 4, !tbaa !11
  %245 = fadd float %244, 1.000000e+00
  store float %245, ptr %242, align 4, !tbaa !11
  br label %246

246:                                              ; preds = %243
  %247 = load i32, ptr %10, align 4, !tbaa !9
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr %10, align 4, !tbaa !9
  br label %181, !llvm.loop !22

249:                                              ; preds = %221
  %250 = load i32, ptr %9, align 4, !tbaa !9
  %251 = sitofp i32 %250 to float
  %252 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %253 unwind label %236

253:                                              ; preds = %249
  %254 = load float, ptr %252, align 4, !tbaa !11
  %255 = fsub float %254, %251
  store float %255, ptr %252, align 4, !tbaa !11
  %256 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %257 unwind label %236

257:                                              ; preds = %253
  %258 = fcmp oge float %256, 0.000000e+00
  br i1 %258, label %259, label %291

259:                                              ; preds = %257
  %260 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %261 unwind label %236

261:                                              ; preds = %259
  %262 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %263 = load ptr, ptr %262, align 8, !tbaa !13
  %264 = getelementptr inbounds i8, ptr %263, i64 16
  %265 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %264)
          to label %266 unwind label %236

266:                                              ; preds = %261
  %267 = uitofp i32 %265 to float
  %268 = fcmp olt float %260, %267
  br i1 %268, label %269, label %291

269:                                              ; preds = %266
  %270 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %271 unwind label %236

271:                                              ; preds = %269
  %272 = fcmp oge float %270, 0.000000e+00
  br i1 %272, label %273, label %291

273:                                              ; preds = %271
  %274 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %275 unwind label %236

275:                                              ; preds = %273
  %276 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %277 = load ptr, ptr %276, align 8, !tbaa !13
  %278 = getelementptr inbounds i8, ptr %277, i64 16
  %279 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %278)
          to label %280 unwind label %236

280:                                              ; preds = %275
  %281 = uitofp i32 %279 to float
  %282 = fcmp olt float %274, %281
  br i1 %282, label %283, label %291

283:                                              ; preds = %280
  %284 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %285 unwind label %236

285:                                              ; preds = %283
  %286 = load i32, ptr %7, align 4, !tbaa !9
  %287 = sitofp i32 %286 to float
  %288 = fcmp ogt float %284, %287
  br i1 %288, label %289, label %291

289:                                              ; preds = %285
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %17)
          to label %290 unwind label %236

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290, %285, %280, %271, %266, %257
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %292

292:                                              ; preds = %291, %163
  %293 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %294 = icmp ult i64 %293, 3
  br i1 %294, label %295, label %422

295:                                              ; preds = %292
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %296 = load ptr, ptr %6, align 8, !tbaa !5
  %297 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %296)
          to label %298 unwind label %366

298:                                              ; preds = %295
  %299 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %297)
          to label %300 unwind label %366

300:                                              ; preds = %298
  %301 = load float, ptr %13, align 4, !tbaa !11
  %302 = fneg float %301
  %303 = fadd float %299, %302
  %304 = load ptr, ptr %6, align 8, !tbaa !5
  %305 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %304)
          to label %306 unwind label %366

306:                                              ; preds = %300
  %307 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %305)
          to label %308 unwind label %366

308:                                              ; preds = %306
  %309 = fadd float %307, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %18, float noundef %303, float noundef %309)
          to label %310 unwind label %366

310:                                              ; preds = %308
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %311

311:                                              ; preds = %376, %310
  %312 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %313 unwind label %366

313:                                              ; preds = %311
  %314 = fcmp oge float %312, 0.000000e+00
  br i1 %314, label %315, label %351

315:                                              ; preds = %313
  %316 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %317 unwind label %366

317:                                              ; preds = %315
  %318 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %319 = load ptr, ptr %318, align 8, !tbaa !13
  %320 = getelementptr inbounds i8, ptr %319, i64 16
  %321 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %320)
          to label %322 unwind label %366

322:                                              ; preds = %317
  %323 = uitofp i32 %321 to float
  %324 = fcmp olt float %316, %323
  br i1 %324, label %325, label %351

325:                                              ; preds = %322
  %326 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %327 unwind label %366

327:                                              ; preds = %325
  %328 = fcmp oge float %326, 0.000000e+00
  br i1 %328, label %329, label %351

329:                                              ; preds = %327
  %330 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %331 unwind label %366

331:                                              ; preds = %329
  %332 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %333 = load ptr, ptr %332, align 8, !tbaa !13
  %334 = getelementptr inbounds i8, ptr %333, i64 16
  %335 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %334)
          to label %336 unwind label %366

336:                                              ; preds = %331
  %337 = uitofp i32 %335 to float
  %338 = fcmp olt float %330, %337
  br i1 %338, label %339, label %351

339:                                              ; preds = %336
  %340 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %341 unwind label %366

341:                                              ; preds = %339
  %342 = load i32, ptr %7, align 4, !tbaa !9
  %343 = sitofp i32 %342 to float
  %344 = fcmp ogt float %340, %343
  br i1 %344, label %345, label %351

345:                                              ; preds = %341
  %346 = load i32, ptr %10, align 4, !tbaa !9
  %347 = icmp slt i32 %346, 100
  br i1 %347, label %348, label %351

348:                                              ; preds = %345
  %349 = load i32, ptr %9, align 4, !tbaa !9
  %350 = icmp slt i32 %349, 5
  br label %351

351:                                              ; preds = %348, %345, %341, %336, %327, %322, %313
  %352 = phi i1 [ false, %345 ], [ false, %341 ], [ false, %336 ], [ false, %327 ], [ false, %322 ], [ false, %313 ], [ %350, %348 ]
  br i1 %352, label %353, label %379

353:                                              ; preds = %351
  %354 = load ptr, ptr %8, align 8, !tbaa !5
  %355 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %356 unwind label %366

356:                                              ; preds = %353
  %357 = fptosi float %355 to i32
  %358 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %359 unwind label %366

359:                                              ; preds = %356
  %360 = fptosi float %358 to i32
  %361 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %354, i32 noundef %357, i32 noundef %360)
          to label %362 unwind label %366

362:                                              ; preds = %359
  br i1 %361, label %363, label %370

363:                                              ; preds = %362
  %364 = load i32, ptr %9, align 4, !tbaa !9
  %365 = add nsw i32 %364, 1
  store i32 %365, ptr %9, align 4, !tbaa !9
  br label %371

366:                                              ; preds = %419, %413, %405, %403, %399, %391, %389, %383, %379, %371, %359, %356, %353, %339, %331, %329, %325, %317, %315, %311, %308, %306, %300, %298, %295
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %14, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %1127

370:                                              ; preds = %362
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %371

371:                                              ; preds = %370, %363
  %372 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %373 unwind label %366

373:                                              ; preds = %371
  %374 = load float, ptr %372, align 4, !tbaa !11
  %375 = fadd float %374, -1.000000e+00
  store float %375, ptr %372, align 4, !tbaa !11
  br label %376

376:                                              ; preds = %373
  %377 = load i32, ptr %10, align 4, !tbaa !9
  %378 = add nsw i32 %377, 1
  store i32 %378, ptr %10, align 4, !tbaa !9
  br label %311, !llvm.loop !23

379:                                              ; preds = %351
  %380 = load i32, ptr %9, align 4, !tbaa !9
  %381 = sitofp i32 %380 to float
  %382 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %383 unwind label %366

383:                                              ; preds = %379
  %384 = load float, ptr %382, align 4, !tbaa !11
  %385 = fadd float %384, %381
  store float %385, ptr %382, align 4, !tbaa !11
  %386 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %387 unwind label %366

387:                                              ; preds = %383
  %388 = fcmp oge float %386, 0.000000e+00
  br i1 %388, label %389, label %421

389:                                              ; preds = %387
  %390 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %391 unwind label %366

391:                                              ; preds = %389
  %392 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %393 = load ptr, ptr %392, align 8, !tbaa !13
  %394 = getelementptr inbounds i8, ptr %393, i64 16
  %395 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %394)
          to label %396 unwind label %366

396:                                              ; preds = %391
  %397 = uitofp i32 %395 to float
  %398 = fcmp olt float %390, %397
  br i1 %398, label %399, label %421

399:                                              ; preds = %396
  %400 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %401 unwind label %366

401:                                              ; preds = %399
  %402 = fcmp oge float %400, 0.000000e+00
  br i1 %402, label %403, label %421

403:                                              ; preds = %401
  %404 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %405 unwind label %366

405:                                              ; preds = %403
  %406 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %407 = load ptr, ptr %406, align 8, !tbaa !13
  %408 = getelementptr inbounds i8, ptr %407, i64 16
  %409 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %408)
          to label %410 unwind label %366

410:                                              ; preds = %405
  %411 = uitofp i32 %409 to float
  %412 = fcmp olt float %404, %411
  br i1 %412, label %413, label %421

413:                                              ; preds = %410
  %414 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %415 unwind label %366

415:                                              ; preds = %413
  %416 = load i32, ptr %7, align 4, !tbaa !9
  %417 = sitofp i32 %416 to float
  %418 = fcmp ogt float %414, %417
  br i1 %418, label %419, label %421

419:                                              ; preds = %415
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %18)
          to label %420 unwind label %366

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420, %415, %410, %401, %396, %387
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %422

422:                                              ; preds = %421, %292
  %423 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %424 = icmp ult i64 %423, 3
  br i1 %424, label %425, label %561

425:                                              ; preds = %422
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %426 = load ptr, ptr %6, align 8, !tbaa !5
  %427 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %426)
          to label %428 unwind label %495

428:                                              ; preds = %425
  %429 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %427)
          to label %430 unwind label %495

430:                                              ; preds = %428
  %431 = load float, ptr %13, align 4, !tbaa !11
  %432 = fadd float %429, %431
  %433 = load ptr, ptr %6, align 8, !tbaa !5
  %434 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %433)
          to label %435 unwind label %495

435:                                              ; preds = %430
  %436 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %434)
          to label %437 unwind label %495

437:                                              ; preds = %435
  %438 = fadd float %436, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %19, float noundef %432, float noundef %438)
          to label %439 unwind label %495

439:                                              ; preds = %437
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %440

440:                                              ; preds = %509, %439
  %441 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %442 unwind label %495

442:                                              ; preds = %440
  %443 = fcmp oge float %441, 0.000000e+00
  br i1 %443, label %444, label %480

444:                                              ; preds = %442
  %445 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %446 unwind label %495

446:                                              ; preds = %444
  %447 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %448 = load ptr, ptr %447, align 8, !tbaa !13
  %449 = getelementptr inbounds i8, ptr %448, i64 16
  %450 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %449)
          to label %451 unwind label %495

451:                                              ; preds = %446
  %452 = uitofp i32 %450 to float
  %453 = fcmp olt float %445, %452
  br i1 %453, label %454, label %480

454:                                              ; preds = %451
  %455 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %456 unwind label %495

456:                                              ; preds = %454
  %457 = fcmp oge float %455, 0.000000e+00
  br i1 %457, label %458, label %480

458:                                              ; preds = %456
  %459 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %460 unwind label %495

460:                                              ; preds = %458
  %461 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %462 = load ptr, ptr %461, align 8, !tbaa !13
  %463 = getelementptr inbounds i8, ptr %462, i64 16
  %464 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %463)
          to label %465 unwind label %495

465:                                              ; preds = %460
  %466 = uitofp i32 %464 to float
  %467 = fcmp olt float %459, %466
  br i1 %467, label %468, label %480

468:                                              ; preds = %465
  %469 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %470 unwind label %495

470:                                              ; preds = %468
  %471 = load i32, ptr %7, align 4, !tbaa !9
  %472 = sitofp i32 %471 to float
  %473 = fcmp ogt float %469, %472
  br i1 %473, label %474, label %480

474:                                              ; preds = %470
  %475 = load i32, ptr %10, align 4, !tbaa !9
  %476 = icmp slt i32 %475, 100
  br i1 %476, label %477, label %480

477:                                              ; preds = %474
  %478 = load i32, ptr %9, align 4, !tbaa !9
  %479 = icmp slt i32 %478, 5
  br label %480

480:                                              ; preds = %477, %474, %470, %465, %456, %451, %442
  %481 = phi i1 [ false, %474 ], [ false, %470 ], [ false, %465 ], [ false, %456 ], [ false, %451 ], [ false, %442 ], [ %479, %477 ]
  br i1 %481, label %482, label %512

482:                                              ; preds = %480
  %483 = load ptr, ptr %8, align 8, !tbaa !5
  %484 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %485 unwind label %495

485:                                              ; preds = %482
  %486 = fptosi float %484 to i32
  %487 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %488 unwind label %495

488:                                              ; preds = %485
  %489 = fptosi float %487 to i32
  %490 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %483, i32 noundef %486, i32 noundef %489)
          to label %491 unwind label %495

491:                                              ; preds = %488
  br i1 %490, label %492, label %499

492:                                              ; preds = %491
  %493 = load i32, ptr %9, align 4, !tbaa !9
  %494 = add nsw i32 %493, 1
  store i32 %494, ptr %9, align 4, !tbaa !9
  br label %500

495:                                              ; preds = %558, %552, %544, %542, %538, %530, %528, %522, %516, %512, %502, %500, %488, %485, %482, %468, %460, %458, %454, %446, %444, %440, %437, %435, %430, %428, %425
  %496 = landingpad { ptr, i32 }
          cleanup
  %497 = extractvalue { ptr, i32 } %496, 0
  store ptr %497, ptr %14, align 8
  %498 = extractvalue { ptr, i32 } %496, 1
  store i32 %498, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %1127

499:                                              ; preds = %491
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %500

500:                                              ; preds = %499, %492
  %501 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %502 unwind label %495

502:                                              ; preds = %500
  %503 = load float, ptr %501, align 4, !tbaa !11
  %504 = fadd float %503, -1.000000e+00
  store float %504, ptr %501, align 4, !tbaa !11
  %505 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %506 unwind label %495

506:                                              ; preds = %502
  %507 = load float, ptr %505, align 4, !tbaa !11
  %508 = fadd float %507, 1.000000e+00
  store float %508, ptr %505, align 4, !tbaa !11
  br label %509

509:                                              ; preds = %506
  %510 = load i32, ptr %10, align 4, !tbaa !9
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr %10, align 4, !tbaa !9
  br label %440, !llvm.loop !24

512:                                              ; preds = %480
  %513 = load i32, ptr %9, align 4, !tbaa !9
  %514 = sitofp i32 %513 to float
  %515 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %516 unwind label %495

516:                                              ; preds = %512
  %517 = load float, ptr %515, align 4, !tbaa !11
  %518 = fadd float %517, %514
  store float %518, ptr %515, align 4, !tbaa !11
  %519 = load i32, ptr %9, align 4, !tbaa !9
  %520 = sitofp i32 %519 to float
  %521 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %522 unwind label %495

522:                                              ; preds = %516
  %523 = load float, ptr %521, align 4, !tbaa !11
  %524 = fsub float %523, %520
  store float %524, ptr %521, align 4, !tbaa !11
  %525 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %526 unwind label %495

526:                                              ; preds = %522
  %527 = fcmp oge float %525, 0.000000e+00
  br i1 %527, label %528, label %560

528:                                              ; preds = %526
  %529 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %530 unwind label %495

530:                                              ; preds = %528
  %531 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %532 = load ptr, ptr %531, align 8, !tbaa !13
  %533 = getelementptr inbounds i8, ptr %532, i64 16
  %534 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %533)
          to label %535 unwind label %495

535:                                              ; preds = %530
  %536 = uitofp i32 %534 to float
  %537 = fcmp olt float %529, %536
  br i1 %537, label %538, label %560

538:                                              ; preds = %535
  %539 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %540 unwind label %495

540:                                              ; preds = %538
  %541 = fcmp oge float %539, 0.000000e+00
  br i1 %541, label %542, label %560

542:                                              ; preds = %540
  %543 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %544 unwind label %495

544:                                              ; preds = %542
  %545 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %546 = load ptr, ptr %545, align 8, !tbaa !13
  %547 = getelementptr inbounds i8, ptr %546, i64 16
  %548 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %547)
          to label %549 unwind label %495

549:                                              ; preds = %544
  %550 = uitofp i32 %548 to float
  %551 = fcmp olt float %543, %550
  br i1 %551, label %552, label %560

552:                                              ; preds = %549
  %553 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %554 unwind label %495

554:                                              ; preds = %552
  %555 = load i32, ptr %7, align 4, !tbaa !9
  %556 = sitofp i32 %555 to float
  %557 = fcmp ogt float %553, %556
  br i1 %557, label %558, label %560

558:                                              ; preds = %554
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %19)
          to label %559 unwind label %495

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559, %554, %549, %540, %535, %526
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  br label %561

561:                                              ; preds = %560, %422
  %562 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %563 = icmp ult i64 %562, 3
  br i1 %563, label %564, label %700

564:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %565 = load ptr, ptr %6, align 8, !tbaa !5
  %566 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %565)
          to label %567 unwind label %634

567:                                              ; preds = %564
  %568 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %566)
          to label %569 unwind label %634

569:                                              ; preds = %567
  %570 = load float, ptr %13, align 4, !tbaa !11
  %571 = fadd float %568, %570
  %572 = load ptr, ptr %6, align 8, !tbaa !5
  %573 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %572)
          to label %574 unwind label %634

574:                                              ; preds = %569
  %575 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %573)
          to label %576 unwind label %634

576:                                              ; preds = %574
  %577 = fadd float %575, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %20, float noundef %571, float noundef %577)
          to label %578 unwind label %634

578:                                              ; preds = %576
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %579

579:                                              ; preds = %648, %578
  %580 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %581 unwind label %634

581:                                              ; preds = %579
  %582 = fcmp oge float %580, 0.000000e+00
  br i1 %582, label %583, label %619

583:                                              ; preds = %581
  %584 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %585 unwind label %634

585:                                              ; preds = %583
  %586 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %587 = load ptr, ptr %586, align 8, !tbaa !13
  %588 = getelementptr inbounds i8, ptr %587, i64 16
  %589 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %588)
          to label %590 unwind label %634

590:                                              ; preds = %585
  %591 = uitofp i32 %589 to float
  %592 = fcmp olt float %584, %591
  br i1 %592, label %593, label %619

593:                                              ; preds = %590
  %594 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %595 unwind label %634

595:                                              ; preds = %593
  %596 = fcmp oge float %594, 0.000000e+00
  br i1 %596, label %597, label %619

597:                                              ; preds = %595
  %598 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %599 unwind label %634

599:                                              ; preds = %597
  %600 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %601 = load ptr, ptr %600, align 8, !tbaa !13
  %602 = getelementptr inbounds i8, ptr %601, i64 16
  %603 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %602)
          to label %604 unwind label %634

604:                                              ; preds = %599
  %605 = uitofp i32 %603 to float
  %606 = fcmp olt float %598, %605
  br i1 %606, label %607, label %619

607:                                              ; preds = %604
  %608 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %609 unwind label %634

609:                                              ; preds = %607
  %610 = load i32, ptr %7, align 4, !tbaa !9
  %611 = sitofp i32 %610 to float
  %612 = fcmp ogt float %608, %611
  br i1 %612, label %613, label %619

613:                                              ; preds = %609
  %614 = load i32, ptr %10, align 4, !tbaa !9
  %615 = icmp slt i32 %614, 100
  br i1 %615, label %616, label %619

616:                                              ; preds = %613
  %617 = load i32, ptr %9, align 4, !tbaa !9
  %618 = icmp slt i32 %617, 5
  br label %619

619:                                              ; preds = %616, %613, %609, %604, %595, %590, %581
  %620 = phi i1 [ false, %613 ], [ false, %609 ], [ false, %604 ], [ false, %595 ], [ false, %590 ], [ false, %581 ], [ %618, %616 ]
  br i1 %620, label %621, label %651

621:                                              ; preds = %619
  %622 = load ptr, ptr %8, align 8, !tbaa !5
  %623 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %624 unwind label %634

624:                                              ; preds = %621
  %625 = fptosi float %623 to i32
  %626 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %627 unwind label %634

627:                                              ; preds = %624
  %628 = fptosi float %626 to i32
  %629 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %622, i32 noundef %625, i32 noundef %628)
          to label %630 unwind label %634

630:                                              ; preds = %627
  br i1 %629, label %631, label %638

631:                                              ; preds = %630
  %632 = load i32, ptr %9, align 4, !tbaa !9
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr %9, align 4, !tbaa !9
  br label %639

634:                                              ; preds = %697, %691, %683, %681, %677, %669, %667, %661, %655, %651, %641, %639, %627, %624, %621, %607, %599, %597, %593, %585, %583, %579, %576, %574, %569, %567, %564
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %14, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %1127

638:                                              ; preds = %630
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %639

639:                                              ; preds = %638, %631
  %640 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %641 unwind label %634

641:                                              ; preds = %639
  %642 = load float, ptr %640, align 4, !tbaa !11
  %643 = fadd float %642, -1.000000e+00
  store float %643, ptr %640, align 4, !tbaa !11
  %644 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %645 unwind label %634

645:                                              ; preds = %641
  %646 = load float, ptr %644, align 4, !tbaa !11
  %647 = fadd float %646, -1.000000e+00
  store float %647, ptr %644, align 4, !tbaa !11
  br label %648

648:                                              ; preds = %645
  %649 = load i32, ptr %10, align 4, !tbaa !9
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr %10, align 4, !tbaa !9
  br label %579, !llvm.loop !25

651:                                              ; preds = %619
  %652 = load i32, ptr %9, align 4, !tbaa !9
  %653 = sitofp i32 %652 to float
  %654 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %655 unwind label %634

655:                                              ; preds = %651
  %656 = load float, ptr %654, align 4, !tbaa !11
  %657 = fadd float %656, %653
  store float %657, ptr %654, align 4, !tbaa !11
  %658 = load i32, ptr %9, align 4, !tbaa !9
  %659 = sitofp i32 %658 to float
  %660 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %661 unwind label %634

661:                                              ; preds = %655
  %662 = load float, ptr %660, align 4, !tbaa !11
  %663 = fadd float %662, %659
  store float %663, ptr %660, align 4, !tbaa !11
  %664 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %665 unwind label %634

665:                                              ; preds = %661
  %666 = fcmp oge float %664, 0.000000e+00
  br i1 %666, label %667, label %699

667:                                              ; preds = %665
  %668 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %669 unwind label %634

669:                                              ; preds = %667
  %670 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %671 = load ptr, ptr %670, align 8, !tbaa !13
  %672 = getelementptr inbounds i8, ptr %671, i64 16
  %673 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %672)
          to label %674 unwind label %634

674:                                              ; preds = %669
  %675 = uitofp i32 %673 to float
  %676 = fcmp olt float %668, %675
  br i1 %676, label %677, label %699

677:                                              ; preds = %674
  %678 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %679 unwind label %634

679:                                              ; preds = %677
  %680 = fcmp oge float %678, 0.000000e+00
  br i1 %680, label %681, label %699

681:                                              ; preds = %679
  %682 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %683 unwind label %634

683:                                              ; preds = %681
  %684 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %685 = load ptr, ptr %684, align 8, !tbaa !13
  %686 = getelementptr inbounds i8, ptr %685, i64 16
  %687 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %686)
          to label %688 unwind label %634

688:                                              ; preds = %683
  %689 = uitofp i32 %687 to float
  %690 = fcmp olt float %682, %689
  br i1 %690, label %691, label %699

691:                                              ; preds = %688
  %692 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %693 unwind label %634

693:                                              ; preds = %691
  %694 = load i32, ptr %7, align 4, !tbaa !9
  %695 = sitofp i32 %694 to float
  %696 = fcmp ogt float %692, %695
  br i1 %696, label %697, label %699

697:                                              ; preds = %693
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %20)
          to label %698 unwind label %634

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698, %693, %688, %679, %674, %665
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %700

700:                                              ; preds = %699, %561
  %701 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %702 = icmp ult i64 %701, 3
  br i1 %702, label %703, label %839

703:                                              ; preds = %700
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  %704 = load ptr, ptr %6, align 8, !tbaa !5
  %705 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %704)
          to label %706 unwind label %773

706:                                              ; preds = %703
  %707 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %705)
          to label %708 unwind label %773

708:                                              ; preds = %706
  %709 = load float, ptr %13, align 4, !tbaa !11
  %710 = fadd float %707, %709
  %711 = load ptr, ptr %6, align 8, !tbaa !5
  %712 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %711)
          to label %713 unwind label %773

713:                                              ; preds = %708
  %714 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %712)
          to label %715 unwind label %773

715:                                              ; preds = %713
  %716 = fadd float %714, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %21, float noundef %710, float noundef %716)
          to label %717 unwind label %773

717:                                              ; preds = %715
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %718

718:                                              ; preds = %787, %717
  %719 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %720 unwind label %773

720:                                              ; preds = %718
  %721 = fcmp oge float %719, 0.000000e+00
  br i1 %721, label %722, label %758

722:                                              ; preds = %720
  %723 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %724 unwind label %773

724:                                              ; preds = %722
  %725 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %726 = load ptr, ptr %725, align 8, !tbaa !13
  %727 = getelementptr inbounds i8, ptr %726, i64 16
  %728 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %727)
          to label %729 unwind label %773

729:                                              ; preds = %724
  %730 = uitofp i32 %728 to float
  %731 = fcmp olt float %723, %730
  br i1 %731, label %732, label %758

732:                                              ; preds = %729
  %733 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %734 unwind label %773

734:                                              ; preds = %732
  %735 = fcmp oge float %733, 0.000000e+00
  br i1 %735, label %736, label %758

736:                                              ; preds = %734
  %737 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %738 unwind label %773

738:                                              ; preds = %736
  %739 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %740 = load ptr, ptr %739, align 8, !tbaa !13
  %741 = getelementptr inbounds i8, ptr %740, i64 16
  %742 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %741)
          to label %743 unwind label %773

743:                                              ; preds = %738
  %744 = uitofp i32 %742 to float
  %745 = fcmp olt float %737, %744
  br i1 %745, label %746, label %758

746:                                              ; preds = %743
  %747 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %748 unwind label %773

748:                                              ; preds = %746
  %749 = load i32, ptr %7, align 4, !tbaa !9
  %750 = sitofp i32 %749 to float
  %751 = fcmp ogt float %747, %750
  br i1 %751, label %752, label %758

752:                                              ; preds = %748
  %753 = load i32, ptr %10, align 4, !tbaa !9
  %754 = icmp slt i32 %753, 100
  br i1 %754, label %755, label %758

755:                                              ; preds = %752
  %756 = load i32, ptr %9, align 4, !tbaa !9
  %757 = icmp slt i32 %756, 5
  br label %758

758:                                              ; preds = %755, %752, %748, %743, %734, %729, %720
  %759 = phi i1 [ false, %752 ], [ false, %748 ], [ false, %743 ], [ false, %734 ], [ false, %729 ], [ false, %720 ], [ %757, %755 ]
  br i1 %759, label %760, label %790

760:                                              ; preds = %758
  %761 = load ptr, ptr %8, align 8, !tbaa !5
  %762 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %763 unwind label %773

763:                                              ; preds = %760
  %764 = fptosi float %762 to i32
  %765 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %766 unwind label %773

766:                                              ; preds = %763
  %767 = fptosi float %765 to i32
  %768 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %761, i32 noundef %764, i32 noundef %767)
          to label %769 unwind label %773

769:                                              ; preds = %766
  br i1 %768, label %770, label %777

770:                                              ; preds = %769
  %771 = load i32, ptr %9, align 4, !tbaa !9
  %772 = add nsw i32 %771, 1
  store i32 %772, ptr %9, align 4, !tbaa !9
  br label %778

773:                                              ; preds = %836, %830, %822, %820, %816, %808, %806, %800, %794, %790, %780, %778, %766, %763, %760, %746, %738, %736, %732, %724, %722, %718, %715, %713, %708, %706, %703
  %774 = landingpad { ptr, i32 }
          cleanup
  %775 = extractvalue { ptr, i32 } %774, 0
  store ptr %775, ptr %14, align 8
  %776 = extractvalue { ptr, i32 } %774, 1
  store i32 %776, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %1127

777:                                              ; preds = %769
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %778

778:                                              ; preds = %777, %770
  %779 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %780 unwind label %773

780:                                              ; preds = %778
  %781 = load float, ptr %779, align 4, !tbaa !11
  %782 = fadd float %781, 1.000000e+00
  store float %782, ptr %779, align 4, !tbaa !11
  %783 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %784 unwind label %773

784:                                              ; preds = %780
  %785 = load float, ptr %783, align 4, !tbaa !11
  %786 = fadd float %785, 1.000000e+00
  store float %786, ptr %783, align 4, !tbaa !11
  br label %787

787:                                              ; preds = %784
  %788 = load i32, ptr %10, align 4, !tbaa !9
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %10, align 4, !tbaa !9
  br label %718, !llvm.loop !26

790:                                              ; preds = %758
  %791 = load i32, ptr %9, align 4, !tbaa !9
  %792 = sitofp i32 %791 to float
  %793 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %794 unwind label %773

794:                                              ; preds = %790
  %795 = load float, ptr %793, align 4, !tbaa !11
  %796 = fsub float %795, %792
  store float %796, ptr %793, align 4, !tbaa !11
  %797 = load i32, ptr %9, align 4, !tbaa !9
  %798 = sitofp i32 %797 to float
  %799 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %800 unwind label %773

800:                                              ; preds = %794
  %801 = load float, ptr %799, align 4, !tbaa !11
  %802 = fsub float %801, %798
  store float %802, ptr %799, align 4, !tbaa !11
  %803 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %804 unwind label %773

804:                                              ; preds = %800
  %805 = fcmp oge float %803, 0.000000e+00
  br i1 %805, label %806, label %838

806:                                              ; preds = %804
  %807 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %808 unwind label %773

808:                                              ; preds = %806
  %809 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %810 = load ptr, ptr %809, align 8, !tbaa !13
  %811 = getelementptr inbounds i8, ptr %810, i64 16
  %812 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %811)
          to label %813 unwind label %773

813:                                              ; preds = %808
  %814 = uitofp i32 %812 to float
  %815 = fcmp olt float %807, %814
  br i1 %815, label %816, label %838

816:                                              ; preds = %813
  %817 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %818 unwind label %773

818:                                              ; preds = %816
  %819 = fcmp oge float %817, 0.000000e+00
  br i1 %819, label %820, label %838

820:                                              ; preds = %818
  %821 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %822 unwind label %773

822:                                              ; preds = %820
  %823 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %824 = load ptr, ptr %823, align 8, !tbaa !13
  %825 = getelementptr inbounds i8, ptr %824, i64 16
  %826 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %825)
          to label %827 unwind label %773

827:                                              ; preds = %822
  %828 = uitofp i32 %826 to float
  %829 = fcmp olt float %821, %828
  br i1 %829, label %830, label %838

830:                                              ; preds = %827
  %831 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %832 unwind label %773

832:                                              ; preds = %830
  %833 = load i32, ptr %7, align 4, !tbaa !9
  %834 = sitofp i32 %833 to float
  %835 = fcmp ogt float %831, %834
  br i1 %835, label %836, label %838

836:                                              ; preds = %832
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %21)
          to label %837 unwind label %773

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837, %832, %827, %818, %813, %804
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  br label %839

839:                                              ; preds = %838, %700
  %840 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %841 = icmp ult i64 %840, 3
  br i1 %841, label %842, label %978

842:                                              ; preds = %839
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  %843 = load ptr, ptr %6, align 8, !tbaa !5
  %844 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %843)
          to label %845 unwind label %912

845:                                              ; preds = %842
  %846 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %844)
          to label %847 unwind label %912

847:                                              ; preds = %845
  %848 = load float, ptr %13, align 4, !tbaa !11
  %849 = fadd float %846, %848
  %850 = load ptr, ptr %6, align 8, !tbaa !5
  %851 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %850)
          to label %852 unwind label %912

852:                                              ; preds = %847
  %853 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %851)
          to label %854 unwind label %912

854:                                              ; preds = %852
  %855 = fadd float %853, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %22, float noundef %849, float noundef %855)
          to label %856 unwind label %912

856:                                              ; preds = %854
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %857

857:                                              ; preds = %926, %856
  %858 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %859 unwind label %912

859:                                              ; preds = %857
  %860 = fcmp oge float %858, 0.000000e+00
  br i1 %860, label %861, label %897

861:                                              ; preds = %859
  %862 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %863 unwind label %912

863:                                              ; preds = %861
  %864 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %865 = load ptr, ptr %864, align 8, !tbaa !13
  %866 = getelementptr inbounds i8, ptr %865, i64 16
  %867 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %866)
          to label %868 unwind label %912

868:                                              ; preds = %863
  %869 = uitofp i32 %867 to float
  %870 = fcmp olt float %862, %869
  br i1 %870, label %871, label %897

871:                                              ; preds = %868
  %872 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %873 unwind label %912

873:                                              ; preds = %871
  %874 = fcmp oge float %872, 0.000000e+00
  br i1 %874, label %875, label %897

875:                                              ; preds = %873
  %876 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %877 unwind label %912

877:                                              ; preds = %875
  %878 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %879 = load ptr, ptr %878, align 8, !tbaa !13
  %880 = getelementptr inbounds i8, ptr %879, i64 16
  %881 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %880)
          to label %882 unwind label %912

882:                                              ; preds = %877
  %883 = uitofp i32 %881 to float
  %884 = fcmp olt float %876, %883
  br i1 %884, label %885, label %897

885:                                              ; preds = %882
  %886 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %887 unwind label %912

887:                                              ; preds = %885
  %888 = load i32, ptr %7, align 4, !tbaa !9
  %889 = sitofp i32 %888 to float
  %890 = fcmp ogt float %886, %889
  br i1 %890, label %891, label %897

891:                                              ; preds = %887
  %892 = load i32, ptr %10, align 4, !tbaa !9
  %893 = icmp slt i32 %892, 100
  br i1 %893, label %894, label %897

894:                                              ; preds = %891
  %895 = load i32, ptr %9, align 4, !tbaa !9
  %896 = icmp slt i32 %895, 5
  br label %897

897:                                              ; preds = %894, %891, %887, %882, %873, %868, %859
  %898 = phi i1 [ false, %891 ], [ false, %887 ], [ false, %882 ], [ false, %873 ], [ false, %868 ], [ false, %859 ], [ %896, %894 ]
  br i1 %898, label %899, label %929

899:                                              ; preds = %897
  %900 = load ptr, ptr %8, align 8, !tbaa !5
  %901 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %902 unwind label %912

902:                                              ; preds = %899
  %903 = fptosi float %901 to i32
  %904 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %905 unwind label %912

905:                                              ; preds = %902
  %906 = fptosi float %904 to i32
  %907 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %900, i32 noundef %903, i32 noundef %906)
          to label %908 unwind label %912

908:                                              ; preds = %905
  br i1 %907, label %909, label %916

909:                                              ; preds = %908
  %910 = load i32, ptr %9, align 4, !tbaa !9
  %911 = add nsw i32 %910, 1
  store i32 %911, ptr %9, align 4, !tbaa !9
  br label %917

912:                                              ; preds = %975, %969, %961, %959, %955, %947, %945, %939, %933, %929, %919, %917, %905, %902, %899, %885, %877, %875, %871, %863, %861, %857, %854, %852, %847, %845, %842
  %913 = landingpad { ptr, i32 }
          cleanup
  %914 = extractvalue { ptr, i32 } %913, 0
  store ptr %914, ptr %14, align 8
  %915 = extractvalue { ptr, i32 } %913, 1
  store i32 %915, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %1127

916:                                              ; preds = %908
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %917

917:                                              ; preds = %916, %909
  %918 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %919 unwind label %912

919:                                              ; preds = %917
  %920 = load float, ptr %918, align 4, !tbaa !11
  %921 = fadd float %920, 1.000000e+00
  store float %921, ptr %918, align 4, !tbaa !11
  %922 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %923 unwind label %912

923:                                              ; preds = %919
  %924 = load float, ptr %922, align 4, !tbaa !11
  %925 = fadd float %924, -1.000000e+00
  store float %925, ptr %922, align 4, !tbaa !11
  br label %926

926:                                              ; preds = %923
  %927 = load i32, ptr %10, align 4, !tbaa !9
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr %10, align 4, !tbaa !9
  br label %857, !llvm.loop !27

929:                                              ; preds = %897
  %930 = load i32, ptr %9, align 4, !tbaa !9
  %931 = sitofp i32 %930 to float
  %932 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %933 unwind label %912

933:                                              ; preds = %929
  %934 = load float, ptr %932, align 4, !tbaa !11
  %935 = fsub float %934, %931
  store float %935, ptr %932, align 4, !tbaa !11
  %936 = load i32, ptr %9, align 4, !tbaa !9
  %937 = sitofp i32 %936 to float
  %938 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %939 unwind label %912

939:                                              ; preds = %933
  %940 = load float, ptr %938, align 4, !tbaa !11
  %941 = fadd float %940, %937
  store float %941, ptr %938, align 4, !tbaa !11
  %942 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %943 unwind label %912

943:                                              ; preds = %939
  %944 = fcmp oge float %942, 0.000000e+00
  br i1 %944, label %945, label %977

945:                                              ; preds = %943
  %946 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %947 unwind label %912

947:                                              ; preds = %945
  %948 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %949 = load ptr, ptr %948, align 8, !tbaa !13
  %950 = getelementptr inbounds i8, ptr %949, i64 16
  %951 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %950)
          to label %952 unwind label %912

952:                                              ; preds = %947
  %953 = uitofp i32 %951 to float
  %954 = fcmp olt float %946, %953
  br i1 %954, label %955, label %977

955:                                              ; preds = %952
  %956 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %957 unwind label %912

957:                                              ; preds = %955
  %958 = fcmp oge float %956, 0.000000e+00
  br i1 %958, label %959, label %977

959:                                              ; preds = %957
  %960 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %961 unwind label %912

961:                                              ; preds = %959
  %962 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %963 = load ptr, ptr %962, align 8, !tbaa !13
  %964 = getelementptr inbounds i8, ptr %963, i64 16
  %965 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %964)
          to label %966 unwind label %912

966:                                              ; preds = %961
  %967 = uitofp i32 %965 to float
  %968 = fcmp olt float %960, %967
  br i1 %968, label %969, label %977

969:                                              ; preds = %966
  %970 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %971 unwind label %912

971:                                              ; preds = %969
  %972 = load i32, ptr %7, align 4, !tbaa !9
  %973 = sitofp i32 %972 to float
  %974 = fcmp ogt float %970, %973
  br i1 %974, label %975, label %977

975:                                              ; preds = %971
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %22)
          to label %976 unwind label %912

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976, %971, %966, %957, %952, %943
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  br label %978

978:                                              ; preds = %977, %839
  %979 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %980 = icmp ult i64 %979, 3
  br i1 %980, label %981, label %1107

981:                                              ; preds = %978
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  %982 = load ptr, ptr %6, align 8, !tbaa !5
  %983 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %982)
          to label %984 unwind label %1051

984:                                              ; preds = %981
  %985 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %983)
          to label %986 unwind label %1051

986:                                              ; preds = %984
  %987 = load float, ptr %13, align 4, !tbaa !11
  %988 = fadd float %985, %987
  %989 = load ptr, ptr %6, align 8, !tbaa !5
  %990 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %989)
          to label %991 unwind label %1051

991:                                              ; preds = %986
  %992 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %990)
          to label %993 unwind label %1051

993:                                              ; preds = %991
  %994 = fadd float %992, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %23, float noundef %988, float noundef %994)
          to label %995 unwind label %1051

995:                                              ; preds = %993
  store i32 0, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %10, align 4, !tbaa !9
  br label %996

996:                                              ; preds = %1061, %995
  %997 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %998 unwind label %1051

998:                                              ; preds = %996
  %999 = fcmp oge float %997, 0.000000e+00
  br i1 %999, label %1000, label %1036

1000:                                             ; preds = %998
  %1001 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1002 unwind label %1051

1002:                                             ; preds = %1000
  %1003 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %1004 = load ptr, ptr %1003, align 8, !tbaa !13
  %1005 = getelementptr inbounds i8, ptr %1004, i64 16
  %1006 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %1005)
          to label %1007 unwind label %1051

1007:                                             ; preds = %1002
  %1008 = uitofp i32 %1006 to float
  %1009 = fcmp olt float %1001, %1008
  br i1 %1009, label %1010, label %1036

1010:                                             ; preds = %1007
  %1011 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1012 unwind label %1051

1012:                                             ; preds = %1010
  %1013 = fcmp oge float %1011, 0.000000e+00
  br i1 %1013, label %1014, label %1036

1014:                                             ; preds = %1012
  %1015 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1016 unwind label %1051

1016:                                             ; preds = %1014
  %1017 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %1018 = load ptr, ptr %1017, align 8, !tbaa !13
  %1019 = getelementptr inbounds i8, ptr %1018, i64 16
  %1020 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %1019)
          to label %1021 unwind label %1051

1021:                                             ; preds = %1016
  %1022 = uitofp i32 %1020 to float
  %1023 = fcmp olt float %1015, %1022
  br i1 %1023, label %1024, label %1036

1024:                                             ; preds = %1021
  %1025 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1026 unwind label %1051

1026:                                             ; preds = %1024
  %1027 = load i32, ptr %7, align 4, !tbaa !9
  %1028 = sitofp i32 %1027 to float
  %1029 = fcmp ogt float %1025, %1028
  br i1 %1029, label %1030, label %1036

1030:                                             ; preds = %1026
  %1031 = load i32, ptr %10, align 4, !tbaa !9
  %1032 = icmp slt i32 %1031, 100
  br i1 %1032, label %1033, label %1036

1033:                                             ; preds = %1030
  %1034 = load i32, ptr %9, align 4, !tbaa !9
  %1035 = icmp slt i32 %1034, 5
  br label %1036

1036:                                             ; preds = %1033, %1030, %1026, %1021, %1012, %1007, %998
  %1037 = phi i1 [ false, %1030 ], [ false, %1026 ], [ false, %1021 ], [ false, %1012 ], [ false, %1007 ], [ false, %998 ], [ %1035, %1033 ]
  br i1 %1037, label %1038, label %1064

1038:                                             ; preds = %1036
  %1039 = load ptr, ptr %8, align 8, !tbaa !5
  %1040 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1041 unwind label %1051

1041:                                             ; preds = %1038
  %1042 = fptosi float %1040 to i32
  %1043 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1044 unwind label %1051

1044:                                             ; preds = %1041
  %1045 = fptosi float %1043 to i32
  %1046 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %1039, i32 noundef %1042, i32 noundef %1045)
          to label %1047 unwind label %1051

1047:                                             ; preds = %1044
  br i1 %1046, label %1048, label %1055

1048:                                             ; preds = %1047
  %1049 = load i32, ptr %9, align 4, !tbaa !9
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr %9, align 4, !tbaa !9
  br label %1056

1051:                                             ; preds = %1104, %1098, %1090, %1088, %1084, %1076, %1074, %1068, %1064, %1056, %1044, %1041, %1038, %1024, %1016, %1014, %1010, %1002, %1000, %996, %993, %991, %986, %984, %981
  %1052 = landingpad { ptr, i32 }
          cleanup
  %1053 = extractvalue { ptr, i32 } %1052, 0
  store ptr %1053, ptr %14, align 8
  %1054 = extractvalue { ptr, i32 } %1052, 1
  store i32 %1054, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %1127

1055:                                             ; preds = %1047
  store i32 0, ptr %9, align 4, !tbaa !9
  br label %1056

1056:                                             ; preds = %1055, %1048
  %1057 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1058 unwind label %1051

1058:                                             ; preds = %1056
  %1059 = load float, ptr %1057, align 4, !tbaa !11
  %1060 = fadd float %1059, 1.000000e+00
  store float %1060, ptr %1057, align 4, !tbaa !11
  br label %1061

1061:                                             ; preds = %1058
  %1062 = load i32, ptr %10, align 4, !tbaa !9
  %1063 = add nsw i32 %1062, 1
  store i32 %1063, ptr %10, align 4, !tbaa !9
  br label %996, !llvm.loop !28

1064:                                             ; preds = %1036
  %1065 = load i32, ptr %9, align 4, !tbaa !9
  %1066 = sitofp i32 %1065 to float
  %1067 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1068 unwind label %1051

1068:                                             ; preds = %1064
  %1069 = load float, ptr %1067, align 4, !tbaa !11
  %1070 = fsub float %1069, %1066
  store float %1070, ptr %1067, align 4, !tbaa !11
  %1071 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1072 unwind label %1051

1072:                                             ; preds = %1068
  %1073 = fcmp oge float %1071, 0.000000e+00
  br i1 %1073, label %1074, label %1106

1074:                                             ; preds = %1072
  %1075 = invoke noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1076 unwind label %1051

1076:                                             ; preds = %1074
  %1077 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %1078 = load ptr, ptr %1077, align 8, !tbaa !13
  %1079 = getelementptr inbounds i8, ptr %1078, i64 16
  %1080 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %1079)
          to label %1081 unwind label %1051

1081:                                             ; preds = %1076
  %1082 = uitofp i32 %1080 to float
  %1083 = fcmp olt float %1075, %1082
  br i1 %1083, label %1084, label %1106

1084:                                             ; preds = %1081
  %1085 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1086 unwind label %1051

1086:                                             ; preds = %1084
  %1087 = fcmp oge float %1085, 0.000000e+00
  br i1 %1087, label %1088, label %1106

1088:                                             ; preds = %1086
  %1089 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1090 unwind label %1051

1090:                                             ; preds = %1088
  %1091 = getelementptr inbounds %"class.MVision::FRHT", ptr %26, i32 0, i32 1
  %1092 = load ptr, ptr %1091, align 8, !tbaa !13
  %1093 = getelementptr inbounds i8, ptr %1092, i64 16
  %1094 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %1093)
          to label %1095 unwind label %1051

1095:                                             ; preds = %1090
  %1096 = uitofp i32 %1094 to float
  %1097 = fcmp olt float %1089, %1096
  br i1 %1097, label %1098, label %1106

1098:                                             ; preds = %1095
  %1099 = invoke noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1100 unwind label %1051

1100:                                             ; preds = %1098
  %1101 = load i32, ptr %7, align 4, !tbaa !9
  %1102 = sitofp i32 %1101 to float
  %1103 = fcmp ogt float %1099, %1102
  br i1 %1103, label %1104, label %1106

1104:                                             ; preds = %1100
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 4 dereferenceable(8) %23)
          to label %1105 unwind label %1051

1105:                                             ; preds = %1104
  br label %1106

1106:                                             ; preds = %1105, %1100, %1095, %1086, %1081, %1072
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  br label %1107

1107:                                             ; preds = %1106, %978
  %1108 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  %1109 = icmp ugt i64 %1108, 2
  br i1 %1109, label %1110, label %1126

1110:                                             ; preds = %1107
  call void @llvm.lifetime.start.p0(i64 12, ptr %24) #7
  %1111 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 0)
          to label %1112 unwind label %1122

1112:                                             ; preds = %1110
  %1113 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 1)
          to label %1114 unwind label %1122

1114:                                             ; preds = %1112
  %1115 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef 2)
          to label %1116 unwind label %1122

1116:                                             ; preds = %1114
  %1117 = invoke { <2 x float>, float } @_ZN7MVision4FRHT10fitACircleERKNS_8Vector2DES3_S3_(ptr noundef nonnull align 4 dereferenceable(8) %1111, ptr noundef nonnull align 4 dereferenceable(8) %1113, ptr noundef nonnull align 4 dereferenceable(8) %1115)
          to label %1118 unwind label %1122

1118:                                             ; preds = %1116
  store { <2 x float>, float } %1117, ptr %25, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 4 %24, ptr align 8 %25, i64 12, i1 false)
  %1119 = load ptr, ptr %6, align 8, !tbaa !5
  %1120 = invoke noundef nonnull align 4 dereferenceable(12) ptr @_ZN7MVision6CircleaSERKS0_(ptr noundef nonnull align 4 dereferenceable(12) %1119, ptr noundef nonnull align 4 dereferenceable(12) %24)
          to label %1121 unwind label %1122

1121:                                             ; preds = %1118
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #7
  br label %1126

1122:                                             ; preds = %1118, %1116, %1114, %1112, %1110
  %1123 = landingpad { ptr, i32 }
          cleanup
  %1124 = extractvalue { ptr, i32 } %1123, 0
  store ptr %1124, ptr %14, align 8
  %1125 = extractvalue { ptr, i32 } %1123, 1
  store i32 %1125, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 12, ptr %24) #7
  br label %1127

1126:                                             ; preds = %1121, %1107
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  ret void

1127:                                             ; preds = %1122, %1051, %912, %773, %634, %495, %366, %236, %107, %103
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  br label %1128

1128:                                             ; preds = %1127
  %1129 = load ptr, ptr %14, align 8
  %1130 = load i32, ptr %15, align 4
  %1131 = insertvalue { ptr, i32 } poison, ptr %1129, 0
  %1132 = insertvalue { ptr, i32 } %1131, i32 %1130, 1
  resume { ptr, i32 } %1132
}

declare noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN7MVision6CircleaSERKS0_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) #3 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 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 #3 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="64" "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 nounwind willreturn memory(argmem: readwrite) }
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++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"float", !7, i64 0}
!13 = !{!14, !6, i64 16}
!14 = !{!"_ZTSN7MVision4FRHTE", !15, i64 0, !6, i64 16, !16, i64 24}
!15 = !{!"_ZTS9Debugable", !6, i64 8}
!16 = !{!"_ZTSSt6vectorIN7MVision6CircleESaIS1_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIN7MVision6CircleESaIS1_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN7MVision6CircleESaIS1_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIN7MVision6CircleESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = distinct !{!22, !21}
!23 = distinct !{!23, !21}
!24 = distinct !{!24, !21}
!25 = distinct !{!25, !21}
!26 = distinct !{!26, !21}
!27 = distinct !{!27, !21}
!28 = distinct !{!28, !21}


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

%"class.std::vector.10" = type { %"struct.std::_Vector_base.11" }
%"struct.std::_Vector_base.11" = type { %"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl" }
%"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl" = type { %"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MVision::Vector2D, std::allocator<MVision::Vector2D>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.MVision::Vector2D" = type { float, float }
%"class.MVision::Circle" = type { %"class.MVision::Vector2D", float }

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 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: mustprogress uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3 align 2

declare noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

declare void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8), float noundef, float noundef) unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local { <2 x float>, float } @_ZN7MVision4FRHT10fitACircleERKNS_8Vector2DES3_S3_(ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef float @_ZNK7MVision6Circle7radiousEv(ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN7MVision4FRHT13resizeCirlcleERNS_6CircleEiRKNS_13ColorAnalyzerE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(48) %0, ptr noundef nonnull align 4 dereferenceable(12) %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(56) %3) local_unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.std::vector.10", align 8
  %6 = alloca %"class.MVision::Vector2D", align 4
  %7 = alloca %"class.MVision::Vector2D", align 4
  %8 = alloca %"class.MVision::Vector2D", align 4
  %9 = alloca %"class.MVision::Vector2D", align 4
  %10 = alloca %"class.MVision::Vector2D", align 4
  %11 = alloca %"class.MVision::Vector2D", align 4
  %12 = alloca %"class.MVision::Vector2D", align 4
  %13 = alloca %"class.MVision::Vector2D", align 4
  %14 = alloca %"class.MVision::Circle", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) #6
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %15 = call noundef float @_ZNK7MVision6Circle7radiousEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %16 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %17 = icmp ult i64 %16, 3
  br i1 %17, label %18, label %100

18:                                               ; preds = %4
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #6
  %19 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %20 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %19)
  %21 = fadd float %20, 0.000000e+00
  %22 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %23 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %22)
  %24 = fsub float %23, %15
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %6, float noundef %21, float noundef %24)
          to label %.preheader188 unwind label %.loopexit.split-lp190

.preheader188:                                    ; preds = %18
  %25 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %26 = fcmp ult float %25, 0.000000e+00
  br i1 %26, label %.critedge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader188
  %27 = getelementptr inbounds i8, ptr %0, i64 16
  %28 = sitofp i32 %2 to float
  br label %29

29:                                               ; preds = %.lr.ph, %59
  %.0203 = phi i32 [ 0, %.lr.ph ], [ %.1, %59 ]
  %.0141202 = phi i32 [ 0, %.lr.ph ], [ %64, %59 ]
  %30 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %31 = load ptr, ptr %27, align 8, !tbaa !5
  %32 = getelementptr inbounds i8, ptr %31, i64 16
  %33 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %32)
          to label %34 unwind label %.loopexit189

34:                                               ; preds = %29
  %35 = uitofp i32 %33 to float
  %36 = fcmp olt float %30, %35
  br i1 %36, label %37, label %.critedge

37:                                               ; preds = %34
  %38 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %39 = fcmp ult float %38, 0.000000e+00
  br i1 %39, label %.critedge, label %40

40:                                               ; preds = %37
  %41 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %42 = load ptr, ptr %27, align 8, !tbaa !5
  %43 = getelementptr inbounds i8, ptr %42, i64 16
  %44 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %43)
          to label %45 unwind label %.loopexit189

45:                                               ; preds = %40
  %46 = uitofp i32 %44 to float
  %47 = fcmp olt float %41, %46
  br i1 %47, label %48, label %.critedge

48:                                               ; preds = %45
  %49 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %50 = fcmp ogt float %49, %28
  %51 = icmp ult i32 %.0141202, 100
  %or.cond = select i1 %50, i1 %51, i1 false
  %52 = icmp slt i32 %.0203, 5
  %or.cond31 = select i1 %or.cond, i1 %52, i1 false
  br i1 %or.cond31, label %53, label %.critedge

53:                                               ; preds = %48
  %54 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %55 = fptosi float %54 to i32
  %56 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %57 = fptosi float %56 to i32
  %58 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %55, i32 noundef %57)
          to label %59 unwind label %.loopexit189

59:                                               ; preds = %53
  %60 = add nsw i32 %.0203, 1
  %.1 = select i1 %58, i32 %60, i32 0
  %61 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %62 = load float, ptr %61, align 4, !tbaa !15
  %63 = fadd float %62, -1.000000e+00
  store float %63, ptr %61, align 4, !tbaa !15
  %64 = add nuw nsw i32 %.0141202, 1
  %65 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %66 = fcmp ult float %65, 0.000000e+00
  br i1 %66, label %.critedge, label %29, !llvm.loop !17

.loopexit189:                                     ; preds = %29, %40, %53
  %lpad.loopexit191 = landingpad { ptr, i32 }
          cleanup
  br label %67

.loopexit.split-lp190:                            ; preds = %18, %74, %86, %98
  %lpad.loopexit.split-lp192 = landingpad { ptr, i32 }
          cleanup
  br label %67

67:                                               ; preds = %.loopexit.split-lp190, %.loopexit189
  %lpad.phi193 = phi { ptr, i32 } [ %lpad.loopexit191, %.loopexit189 ], [ %lpad.loopexit.split-lp192, %.loopexit.split-lp190 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  br label %735

.critedge:                                        ; preds = %59, %34, %37, %45, %48, %.preheader188
  %.0.lcssa = phi i32 [ 0, %.preheader188 ], [ %.0203, %48 ], [ %.0203, %45 ], [ %.0203, %37 ], [ %.0203, %34 ], [ %.1, %59 ]
  %68 = sitofp i32 %.0.lcssa to float
  %69 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %70 = load float, ptr %69, align 4, !tbaa !15
  %71 = fadd float %70, %68
  store float %71, ptr %69, align 4, !tbaa !15
  %72 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %73 = fcmp ult float %72, 0.000000e+00
  br i1 %73, label %99, label %74

74:                                               ; preds = %.critedge
  %75 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %76 = getelementptr inbounds i8, ptr %0, i64 16
  %77 = load ptr, ptr %76, align 8, !tbaa !5
  %78 = getelementptr inbounds i8, ptr %77, i64 16
  %79 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %78)
          to label %80 unwind label %.loopexit.split-lp190

80:                                               ; preds = %74
  %81 = uitofp i32 %79 to float
  %82 = fcmp olt float %75, %81
  br i1 %82, label %83, label %99

83:                                               ; preds = %80
  %84 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %85 = fcmp ult float %84, 0.000000e+00
  br i1 %85, label %99, label %86

86:                                               ; preds = %83
  %87 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %88 = load ptr, ptr %76, align 8, !tbaa !5
  %89 = getelementptr inbounds i8, ptr %88, i64 16
  %90 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %89)
          to label %91 unwind label %.loopexit.split-lp190

91:                                               ; preds = %86
  %92 = uitofp i32 %90 to float
  %93 = fcmp olt float %87, %92
  br i1 %93, label %94, label %99

94:                                               ; preds = %91
  %95 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %6)
  %96 = sitofp i32 %2 to float
  %97 = fcmp ogt float %95, %96
  br i1 %97, label %98, label %99

98:                                               ; preds = %94
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %6)
          to label %99 unwind label %.loopexit.split-lp190

99:                                               ; preds = %98, %94, %91, %83, %80, %.critedge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #6
  br label %100

100:                                              ; preds = %99, %4
  %101 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %102 = icmp ult i64 %101, 3
  br i1 %102, label %103, label %185

103:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #6
  %104 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %105 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %104)
  %106 = fadd float %15, %105
  %107 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %108 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %107)
  %109 = fadd float %108, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %7, float noundef %106, float noundef %109)
          to label %.preheader182 unwind label %.loopexit.split-lp184

.preheader182:                                    ; preds = %103
  %110 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %111 = fcmp ult float %110, 0.000000e+00
  br i1 %111, label %.critedge5, label %.lr.ph214

.lr.ph214:                                        ; preds = %.preheader182
  %112 = getelementptr inbounds i8, ptr %0, i64 16
  %113 = sitofp i32 %2 to float
  br label %114

114:                                              ; preds = %.lr.ph214, %144
  %.2213 = phi i32 [ 0, %.lr.ph214 ], [ %.3, %144 ]
  %.1142212 = phi i32 [ 0, %.lr.ph214 ], [ %149, %144 ]
  %115 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %116 = load ptr, ptr %112, align 8, !tbaa !5
  %117 = getelementptr inbounds i8, ptr %116, i64 16
  %118 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %117)
          to label %119 unwind label %.loopexit183

119:                                              ; preds = %114
  %120 = uitofp i32 %118 to float
  %121 = fcmp olt float %115, %120
  br i1 %121, label %122, label %.critedge5

122:                                              ; preds = %119
  %123 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %124 = fcmp ult float %123, 0.000000e+00
  br i1 %124, label %.critedge5, label %125

125:                                              ; preds = %122
  %126 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %127 = load ptr, ptr %112, align 8, !tbaa !5
  %128 = getelementptr inbounds i8, ptr %127, i64 16
  %129 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %128)
          to label %130 unwind label %.loopexit183

130:                                              ; preds = %125
  %131 = uitofp i32 %129 to float
  %132 = fcmp olt float %126, %131
  br i1 %132, label %133, label %.critedge5

133:                                              ; preds = %130
  %134 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %135 = fcmp ogt float %134, %113
  %136 = icmp ult i32 %.1142212, 100
  %or.cond3 = select i1 %135, i1 %136, i1 false
  %137 = icmp slt i32 %.2213, 5
  %or.cond33 = select i1 %or.cond3, i1 %137, i1 false
  br i1 %or.cond33, label %138, label %.critedge5

138:                                              ; preds = %133
  %139 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %140 = fptosi float %139 to i32
  %141 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %142 = fptosi float %141 to i32
  %143 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %140, i32 noundef %142)
          to label %144 unwind label %.loopexit183

144:                                              ; preds = %138
  %145 = add nsw i32 %.2213, 1
  %.3 = select i1 %143, i32 %145, i32 0
  %146 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %147 = load float, ptr %146, align 4, !tbaa !15
  %148 = fadd float %147, 1.000000e+00
  store float %148, ptr %146, align 4, !tbaa !15
  %149 = add nuw nsw i32 %.1142212, 1
  %150 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %151 = fcmp ult float %150, 0.000000e+00
  br i1 %151, label %.critedge5, label %114, !llvm.loop !19

.loopexit183:                                     ; preds = %114, %125, %138
  %lpad.loopexit185 = landingpad { ptr, i32 }
          cleanup
  br label %152

.loopexit.split-lp184:                            ; preds = %103, %159, %171, %183
  %lpad.loopexit.split-lp186 = landingpad { ptr, i32 }
          cleanup
  br label %152

152:                                              ; preds = %.loopexit.split-lp184, %.loopexit183
  %lpad.phi187 = phi { ptr, i32 } [ %lpad.loopexit185, %.loopexit183 ], [ %lpad.loopexit.split-lp186, %.loopexit.split-lp184 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  br label %735

.critedge5:                                       ; preds = %144, %119, %122, %130, %133, %.preheader182
  %.2.lcssa = phi i32 [ 0, %.preheader182 ], [ %.2213, %133 ], [ %.2213, %130 ], [ %.2213, %122 ], [ %.2213, %119 ], [ %.3, %144 ]
  %153 = sitofp i32 %.2.lcssa to float
  %154 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %155 = load float, ptr %154, align 4, !tbaa !15
  %156 = fsub float %155, %153
  store float %156, ptr %154, align 4, !tbaa !15
  %157 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %158 = fcmp ult float %157, 0.000000e+00
  br i1 %158, label %184, label %159

159:                                              ; preds = %.critedge5
  %160 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %161 = getelementptr inbounds i8, ptr %0, i64 16
  %162 = load ptr, ptr %161, align 8, !tbaa !5
  %163 = getelementptr inbounds i8, ptr %162, i64 16
  %164 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %163)
          to label %165 unwind label %.loopexit.split-lp184

165:                                              ; preds = %159
  %166 = uitofp i32 %164 to float
  %167 = fcmp olt float %160, %166
  br i1 %167, label %168, label %184

168:                                              ; preds = %165
  %169 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %170 = fcmp ult float %169, 0.000000e+00
  br i1 %170, label %184, label %171

171:                                              ; preds = %168
  %172 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %173 = load ptr, ptr %161, align 8, !tbaa !5
  %174 = getelementptr inbounds i8, ptr %173, i64 16
  %175 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %174)
          to label %176 unwind label %.loopexit.split-lp184

176:                                              ; preds = %171
  %177 = uitofp i32 %175 to float
  %178 = fcmp olt float %172, %177
  br i1 %178, label %179, label %184

179:                                              ; preds = %176
  %180 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %7)
  %181 = sitofp i32 %2 to float
  %182 = fcmp ogt float %180, %181
  br i1 %182, label %183, label %184

183:                                              ; preds = %179
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %7)
          to label %184 unwind label %.loopexit.split-lp184

184:                                              ; preds = %183, %179, %176, %168, %165, %.critedge5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #6
  br label %185

185:                                              ; preds = %184, %100
  %186 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %187 = icmp ult i64 %186, 3
  br i1 %187, label %188, label %270

188:                                              ; preds = %185
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #6
  %189 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %190 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %189)
  %191 = fsub float %190, %15
  %192 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %193 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %192)
  %194 = fadd float %193, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %8, float noundef %191, float noundef %194)
          to label %.preheader176 unwind label %.loopexit.split-lp178

.preheader176:                                    ; preds = %188
  %195 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %196 = fcmp ult float %195, 0.000000e+00
  br i1 %196, label %.critedge9, label %.lr.ph226

.lr.ph226:                                        ; preds = %.preheader176
  %197 = getelementptr inbounds i8, ptr %0, i64 16
  %198 = sitofp i32 %2 to float
  br label %199

199:                                              ; preds = %.lr.ph226, %229
  %.4225 = phi i32 [ 0, %.lr.ph226 ], [ %.5, %229 ]
  %.2143224 = phi i32 [ 0, %.lr.ph226 ], [ %234, %229 ]
  %200 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %201 = load ptr, ptr %197, align 8, !tbaa !5
  %202 = getelementptr inbounds i8, ptr %201, i64 16
  %203 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %202)
          to label %204 unwind label %.loopexit177

204:                                              ; preds = %199
  %205 = uitofp i32 %203 to float
  %206 = fcmp olt float %200, %205
  br i1 %206, label %207, label %.critedge9

207:                                              ; preds = %204
  %208 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %209 = fcmp ult float %208, 0.000000e+00
  br i1 %209, label %.critedge9, label %210

210:                                              ; preds = %207
  %211 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %212 = load ptr, ptr %197, align 8, !tbaa !5
  %213 = getelementptr inbounds i8, ptr %212, i64 16
  %214 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %213)
          to label %215 unwind label %.loopexit177

215:                                              ; preds = %210
  %216 = uitofp i32 %214 to float
  %217 = fcmp olt float %211, %216
  br i1 %217, label %218, label %.critedge9

218:                                              ; preds = %215
  %219 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %220 = fcmp ogt float %219, %198
  %221 = icmp ult i32 %.2143224, 100
  %or.cond7 = select i1 %220, i1 %221, i1 false
  %222 = icmp slt i32 %.4225, 5
  %or.cond35 = select i1 %or.cond7, i1 %222, i1 false
  br i1 %or.cond35, label %223, label %.critedge9

223:                                              ; preds = %218
  %224 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %225 = fptosi float %224 to i32
  %226 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %227 = fptosi float %226 to i32
  %228 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %225, i32 noundef %227)
          to label %229 unwind label %.loopexit177

229:                                              ; preds = %223
  %230 = add nsw i32 %.4225, 1
  %.5 = select i1 %228, i32 %230, i32 0
  %231 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %232 = load float, ptr %231, align 4, !tbaa !15
  %233 = fadd float %232, -1.000000e+00
  store float %233, ptr %231, align 4, !tbaa !15
  %234 = add nuw nsw i32 %.2143224, 1
  %235 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %236 = fcmp ult float %235, 0.000000e+00
  br i1 %236, label %.critedge9, label %199, !llvm.loop !20

.loopexit177:                                     ; preds = %199, %210, %223
  %lpad.loopexit179 = landingpad { ptr, i32 }
          cleanup
  br label %237

.loopexit.split-lp178:                            ; preds = %188, %244, %256, %268
  %lpad.loopexit.split-lp180 = landingpad { ptr, i32 }
          cleanup
  br label %237

237:                                              ; preds = %.loopexit.split-lp178, %.loopexit177
  %lpad.phi181 = phi { ptr, i32 } [ %lpad.loopexit179, %.loopexit177 ], [ %lpad.loopexit.split-lp180, %.loopexit.split-lp178 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  br label %735

.critedge9:                                       ; preds = %229, %204, %207, %215, %218, %.preheader176
  %.4.lcssa = phi i32 [ 0, %.preheader176 ], [ %.4225, %218 ], [ %.4225, %215 ], [ %.4225, %207 ], [ %.4225, %204 ], [ %.5, %229 ]
  %238 = sitofp i32 %.4.lcssa to float
  %239 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %240 = load float, ptr %239, align 4, !tbaa !15
  %241 = fadd float %240, %238
  store float %241, ptr %239, align 4, !tbaa !15
  %242 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %243 = fcmp ult float %242, 0.000000e+00
  br i1 %243, label %269, label %244

244:                                              ; preds = %.critedge9
  %245 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %246 = getelementptr inbounds i8, ptr %0, i64 16
  %247 = load ptr, ptr %246, align 8, !tbaa !5
  %248 = getelementptr inbounds i8, ptr %247, i64 16
  %249 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %248)
          to label %250 unwind label %.loopexit.split-lp178

250:                                              ; preds = %244
  %251 = uitofp i32 %249 to float
  %252 = fcmp olt float %245, %251
  br i1 %252, label %253, label %269

253:                                              ; preds = %250
  %254 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %255 = fcmp ult float %254, 0.000000e+00
  br i1 %255, label %269, label %256

256:                                              ; preds = %253
  %257 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %258 = load ptr, ptr %246, align 8, !tbaa !5
  %259 = getelementptr inbounds i8, ptr %258, i64 16
  %260 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %259)
          to label %261 unwind label %.loopexit.split-lp178

261:                                              ; preds = %256
  %262 = uitofp i32 %260 to float
  %263 = fcmp olt float %257, %262
  br i1 %263, label %264, label %269

264:                                              ; preds = %261
  %265 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %8)
  %266 = sitofp i32 %2 to float
  %267 = fcmp ogt float %265, %266
  br i1 %267, label %268, label %269

268:                                              ; preds = %264
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %8)
          to label %269 unwind label %.loopexit.split-lp178

269:                                              ; preds = %268, %264, %261, %253, %250, %.critedge9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #6
  br label %270

270:                                              ; preds = %269, %185
  %271 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %272 = icmp ult i64 %271, 3
  br i1 %272, label %273, label %361

273:                                              ; preds = %270
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #6
  %274 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %275 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %274)
  %276 = fadd float %15, %275
  %277 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %278 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %277)
  %279 = fadd float %278, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %9, float noundef %276, float noundef %279)
          to label %.preheader170 unwind label %.loopexit.split-lp172

.preheader170:                                    ; preds = %273
  %280 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %281 = fcmp ult float %280, 0.000000e+00
  br i1 %281, label %.critedge13, label %.lr.ph238

.lr.ph238:                                        ; preds = %.preheader170
  %282 = getelementptr inbounds i8, ptr %0, i64 16
  %283 = sitofp i32 %2 to float
  br label %284

284:                                              ; preds = %.lr.ph238, %314
  %.6237 = phi i32 [ 0, %.lr.ph238 ], [ %.7, %314 ]
  %.3144236 = phi i32 [ 0, %.lr.ph238 ], [ %322, %314 ]
  %285 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %286 = load ptr, ptr %282, align 8, !tbaa !5
  %287 = getelementptr inbounds i8, ptr %286, i64 16
  %288 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %287)
          to label %289 unwind label %.loopexit171

289:                                              ; preds = %284
  %290 = uitofp i32 %288 to float
  %291 = fcmp olt float %285, %290
  br i1 %291, label %292, label %.critedge13

292:                                              ; preds = %289
  %293 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %294 = fcmp ult float %293, 0.000000e+00
  br i1 %294, label %.critedge13, label %295

295:                                              ; preds = %292
  %296 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %297 = load ptr, ptr %282, align 8, !tbaa !5
  %298 = getelementptr inbounds i8, ptr %297, i64 16
  %299 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %298)
          to label %300 unwind label %.loopexit171

300:                                              ; preds = %295
  %301 = uitofp i32 %299 to float
  %302 = fcmp olt float %296, %301
  br i1 %302, label %303, label %.critedge13

303:                                              ; preds = %300
  %304 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %305 = fcmp ogt float %304, %283
  %306 = icmp ult i32 %.3144236, 100
  %or.cond11 = select i1 %305, i1 %306, i1 false
  %307 = icmp slt i32 %.6237, 5
  %or.cond37 = select i1 %or.cond11, i1 %307, i1 false
  br i1 %or.cond37, label %308, label %.critedge13

308:                                              ; preds = %303
  %309 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %310 = fptosi float %309 to i32
  %311 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %312 = fptosi float %311 to i32
  %313 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %310, i32 noundef %312)
          to label %314 unwind label %.loopexit171

314:                                              ; preds = %308
  %315 = add nsw i32 %.6237, 1
  %.7 = select i1 %313, i32 %315, i32 0
  %316 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %317 = load float, ptr %316, align 4, !tbaa !15
  %318 = fadd float %317, -1.000000e+00
  store float %318, ptr %316, align 4, !tbaa !15
  %319 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %320 = load float, ptr %319, align 4, !tbaa !15
  %321 = fadd float %320, 1.000000e+00
  store float %321, ptr %319, align 4, !tbaa !15
  %322 = add nuw nsw i32 %.3144236, 1
  %323 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %324 = fcmp ult float %323, 0.000000e+00
  br i1 %324, label %.critedge13, label %284, !llvm.loop !21

.loopexit171:                                     ; preds = %284, %295, %308
  %lpad.loopexit173 = landingpad { ptr, i32 }
          cleanup
  br label %325

.loopexit.split-lp172:                            ; preds = %273, %335, %347, %359
  %lpad.loopexit.split-lp174 = landingpad { ptr, i32 }
          cleanup
  br label %325

325:                                              ; preds = %.loopexit.split-lp172, %.loopexit171
  %lpad.phi175 = phi { ptr, i32 } [ %lpad.loopexit173, %.loopexit171 ], [ %lpad.loopexit.split-lp174, %.loopexit.split-lp172 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %735

.critedge13:                                      ; preds = %314, %289, %292, %300, %303, %.preheader170
  %.6.lcssa = phi i32 [ 0, %.preheader170 ], [ %.6237, %303 ], [ %.6237, %300 ], [ %.6237, %292 ], [ %.6237, %289 ], [ %.7, %314 ]
  %326 = sitofp i32 %.6.lcssa to float
  %327 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %328 = load float, ptr %327, align 4, !tbaa !15
  %329 = fadd float %328, %326
  store float %329, ptr %327, align 4, !tbaa !15
  %330 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %331 = load float, ptr %330, align 4, !tbaa !15
  %332 = fsub float %331, %326
  store float %332, ptr %330, align 4, !tbaa !15
  %333 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %334 = fcmp ult float %333, 0.000000e+00
  br i1 %334, label %360, label %335

335:                                              ; preds = %.critedge13
  %336 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %337 = getelementptr inbounds i8, ptr %0, i64 16
  %338 = load ptr, ptr %337, align 8, !tbaa !5
  %339 = getelementptr inbounds i8, ptr %338, i64 16
  %340 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %339)
          to label %341 unwind label %.loopexit.split-lp172

341:                                              ; preds = %335
  %342 = uitofp i32 %340 to float
  %343 = fcmp olt float %336, %342
  br i1 %343, label %344, label %360

344:                                              ; preds = %341
  %345 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %346 = fcmp ult float %345, 0.000000e+00
  br i1 %346, label %360, label %347

347:                                              ; preds = %344
  %348 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %349 = load ptr, ptr %337, align 8, !tbaa !5
  %350 = getelementptr inbounds i8, ptr %349, i64 16
  %351 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %350)
          to label %352 unwind label %.loopexit.split-lp172

352:                                              ; preds = %347
  %353 = uitofp i32 %351 to float
  %354 = fcmp olt float %348, %353
  br i1 %354, label %355, label %360

355:                                              ; preds = %352
  %356 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %9)
  %357 = sitofp i32 %2 to float
  %358 = fcmp ogt float %356, %357
  br i1 %358, label %359, label %360

359:                                              ; preds = %355
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %9)
          to label %360 unwind label %.loopexit.split-lp172

360:                                              ; preds = %359, %355, %352, %344, %341, %.critedge13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #6
  br label %361

361:                                              ; preds = %360, %270
  %362 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %363 = icmp ult i64 %362, 3
  br i1 %363, label %364, label %452

364:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #6
  %365 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %366 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %365)
  %367 = fadd float %15, %366
  %368 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %369 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %368)
  %370 = fadd float %369, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %10, float noundef %367, float noundef %370)
          to label %.preheader164 unwind label %.loopexit.split-lp166

.preheader164:                                    ; preds = %364
  %371 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %372 = fcmp ult float %371, 0.000000e+00
  br i1 %372, label %.critedge17, label %.lr.ph250

.lr.ph250:                                        ; preds = %.preheader164
  %373 = getelementptr inbounds i8, ptr %0, i64 16
  %374 = sitofp i32 %2 to float
  br label %375

375:                                              ; preds = %.lr.ph250, %405
  %.8249 = phi i32 [ 0, %.lr.ph250 ], [ %.9, %405 ]
  %.4145248 = phi i32 [ 0, %.lr.ph250 ], [ %413, %405 ]
  %376 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %377 = load ptr, ptr %373, align 8, !tbaa !5
  %378 = getelementptr inbounds i8, ptr %377, i64 16
  %379 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %378)
          to label %380 unwind label %.loopexit165

380:                                              ; preds = %375
  %381 = uitofp i32 %379 to float
  %382 = fcmp olt float %376, %381
  br i1 %382, label %383, label %.critedge17

383:                                              ; preds = %380
  %384 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %385 = fcmp ult float %384, 0.000000e+00
  br i1 %385, label %.critedge17, label %386

386:                                              ; preds = %383
  %387 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %388 = load ptr, ptr %373, align 8, !tbaa !5
  %389 = getelementptr inbounds i8, ptr %388, i64 16
  %390 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %389)
          to label %391 unwind label %.loopexit165

391:                                              ; preds = %386
  %392 = uitofp i32 %390 to float
  %393 = fcmp olt float %387, %392
  br i1 %393, label %394, label %.critedge17

394:                                              ; preds = %391
  %395 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %396 = fcmp ogt float %395, %374
  %397 = icmp ult i32 %.4145248, 100
  %or.cond15 = select i1 %396, i1 %397, i1 false
  %398 = icmp slt i32 %.8249, 5
  %or.cond39 = select i1 %or.cond15, i1 %398, i1 false
  br i1 %or.cond39, label %399, label %.critedge17

399:                                              ; preds = %394
  %400 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %401 = fptosi float %400 to i32
  %402 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %403 = fptosi float %402 to i32
  %404 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %401, i32 noundef %403)
          to label %405 unwind label %.loopexit165

405:                                              ; preds = %399
  %406 = add nsw i32 %.8249, 1
  %.9 = select i1 %404, i32 %406, i32 0
  %407 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %408 = load float, ptr %407, align 4, !tbaa !15
  %409 = fadd float %408, -1.000000e+00
  store float %409, ptr %407, align 4, !tbaa !15
  %410 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %411 = load float, ptr %410, align 4, !tbaa !15
  %412 = fadd float %411, -1.000000e+00
  store float %412, ptr %410, align 4, !tbaa !15
  %413 = add nuw nsw i32 %.4145248, 1
  %414 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %415 = fcmp ult float %414, 0.000000e+00
  br i1 %415, label %.critedge17, label %375, !llvm.loop !22

.loopexit165:                                     ; preds = %375, %386, %399
  %lpad.loopexit167 = landingpad { ptr, i32 }
          cleanup
  br label %416

.loopexit.split-lp166:                            ; preds = %364, %426, %438, %450
  %lpad.loopexit.split-lp168 = landingpad { ptr, i32 }
          cleanup
  br label %416

416:                                              ; preds = %.loopexit.split-lp166, %.loopexit165
  %lpad.phi169 = phi { ptr, i32 } [ %lpad.loopexit167, %.loopexit165 ], [ %lpad.loopexit.split-lp168, %.loopexit.split-lp166 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %735

.critedge17:                                      ; preds = %405, %380, %383, %391, %394, %.preheader164
  %.8.lcssa = phi i32 [ 0, %.preheader164 ], [ %.8249, %394 ], [ %.8249, %391 ], [ %.8249, %383 ], [ %.8249, %380 ], [ %.9, %405 ]
  %417 = sitofp i32 %.8.lcssa to float
  %418 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %419 = load float, ptr %418, align 4, !tbaa !15
  %420 = fadd float %419, %417
  store float %420, ptr %418, align 4, !tbaa !15
  %421 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %422 = load float, ptr %421, align 4, !tbaa !15
  %423 = fadd float %422, %417
  store float %423, ptr %421, align 4, !tbaa !15
  %424 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %425 = fcmp ult float %424, 0.000000e+00
  br i1 %425, label %451, label %426

426:                                              ; preds = %.critedge17
  %427 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %428 = getelementptr inbounds i8, ptr %0, i64 16
  %429 = load ptr, ptr %428, align 8, !tbaa !5
  %430 = getelementptr inbounds i8, ptr %429, i64 16
  %431 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %430)
          to label %432 unwind label %.loopexit.split-lp166

432:                                              ; preds = %426
  %433 = uitofp i32 %431 to float
  %434 = fcmp olt float %427, %433
  br i1 %434, label %435, label %451

435:                                              ; preds = %432
  %436 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %437 = fcmp ult float %436, 0.000000e+00
  br i1 %437, label %451, label %438

438:                                              ; preds = %435
  %439 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %440 = load ptr, ptr %428, align 8, !tbaa !5
  %441 = getelementptr inbounds i8, ptr %440, i64 16
  %442 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %441)
          to label %443 unwind label %.loopexit.split-lp166

443:                                              ; preds = %438
  %444 = uitofp i32 %442 to float
  %445 = fcmp olt float %439, %444
  br i1 %445, label %446, label %451

446:                                              ; preds = %443
  %447 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %10)
  %448 = sitofp i32 %2 to float
  %449 = fcmp ogt float %447, %448
  br i1 %449, label %450, label %451

450:                                              ; preds = %446
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %10)
          to label %451 unwind label %.loopexit.split-lp166

451:                                              ; preds = %450, %446, %443, %435, %432, %.critedge17
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #6
  br label %452

452:                                              ; preds = %451, %361
  %453 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %454 = icmp ult i64 %453, 3
  br i1 %454, label %455, label %543

455:                                              ; preds = %452
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #6
  %456 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %457 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %456)
  %458 = fadd float %15, %457
  %459 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %460 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %459)
  %461 = fadd float %460, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %11, float noundef %458, float noundef %461)
          to label %.preheader158 unwind label %.loopexit.split-lp160

.preheader158:                                    ; preds = %455
  %462 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %463 = fcmp ult float %462, 0.000000e+00
  br i1 %463, label %.critedge21, label %.lr.ph262

.lr.ph262:                                        ; preds = %.preheader158
  %464 = getelementptr inbounds i8, ptr %0, i64 16
  %465 = sitofp i32 %2 to float
  br label %466

466:                                              ; preds = %.lr.ph262, %496
  %.10261 = phi i32 [ 0, %.lr.ph262 ], [ %.11, %496 ]
  %.5146260 = phi i32 [ 0, %.lr.ph262 ], [ %504, %496 ]
  %467 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %468 = load ptr, ptr %464, align 8, !tbaa !5
  %469 = getelementptr inbounds i8, ptr %468, i64 16
  %470 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %469)
          to label %471 unwind label %.loopexit159

471:                                              ; preds = %466
  %472 = uitofp i32 %470 to float
  %473 = fcmp olt float %467, %472
  br i1 %473, label %474, label %.critedge21

474:                                              ; preds = %471
  %475 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %476 = fcmp ult float %475, 0.000000e+00
  br i1 %476, label %.critedge21, label %477

477:                                              ; preds = %474
  %478 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %479 = load ptr, ptr %464, align 8, !tbaa !5
  %480 = getelementptr inbounds i8, ptr %479, i64 16
  %481 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %480)
          to label %482 unwind label %.loopexit159

482:                                              ; preds = %477
  %483 = uitofp i32 %481 to float
  %484 = fcmp olt float %478, %483
  br i1 %484, label %485, label %.critedge21

485:                                              ; preds = %482
  %486 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %487 = fcmp ogt float %486, %465
  %488 = icmp ult i32 %.5146260, 100
  %or.cond19 = select i1 %487, i1 %488, i1 false
  %489 = icmp slt i32 %.10261, 5
  %or.cond41 = select i1 %or.cond19, i1 %489, i1 false
  br i1 %or.cond41, label %490, label %.critedge21

490:                                              ; preds = %485
  %491 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %492 = fptosi float %491 to i32
  %493 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %494 = fptosi float %493 to i32
  %495 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %492, i32 noundef %494)
          to label %496 unwind label %.loopexit159

496:                                              ; preds = %490
  %497 = add nsw i32 %.10261, 1
  %.11 = select i1 %495, i32 %497, i32 0
  %498 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %499 = load float, ptr %498, align 4, !tbaa !15
  %500 = fadd float %499, 1.000000e+00
  store float %500, ptr %498, align 4, !tbaa !15
  %501 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %502 = load float, ptr %501, align 4, !tbaa !15
  %503 = fadd float %502, 1.000000e+00
  store float %503, ptr %501, align 4, !tbaa !15
  %504 = add nuw nsw i32 %.5146260, 1
  %505 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %506 = fcmp ult float %505, 0.000000e+00
  br i1 %506, label %.critedge21, label %466, !llvm.loop !23

.loopexit159:                                     ; preds = %466, %477, %490
  %lpad.loopexit161 = landingpad { ptr, i32 }
          cleanup
  br label %507

.loopexit.split-lp160:                            ; preds = %455, %517, %529, %541
  %lpad.loopexit.split-lp162 = landingpad { ptr, i32 }
          cleanup
  br label %507

507:                                              ; preds = %.loopexit.split-lp160, %.loopexit159
  %lpad.phi163 = phi { ptr, i32 } [ %lpad.loopexit161, %.loopexit159 ], [ %lpad.loopexit.split-lp162, %.loopexit.split-lp160 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %735

.critedge21:                                      ; preds = %496, %471, %474, %482, %485, %.preheader158
  %.10.lcssa = phi i32 [ 0, %.preheader158 ], [ %.10261, %485 ], [ %.10261, %482 ], [ %.10261, %474 ], [ %.10261, %471 ], [ %.11, %496 ]
  %508 = sitofp i32 %.10.lcssa to float
  %509 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %510 = load float, ptr %509, align 4, !tbaa !15
  %511 = fsub float %510, %508
  store float %511, ptr %509, align 4, !tbaa !15
  %512 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %513 = load float, ptr %512, align 4, !tbaa !15
  %514 = fsub float %513, %508
  store float %514, ptr %512, align 4, !tbaa !15
  %515 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %516 = fcmp ult float %515, 0.000000e+00
  br i1 %516, label %542, label %517

517:                                              ; preds = %.critedge21
  %518 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %519 = getelementptr inbounds i8, ptr %0, i64 16
  %520 = load ptr, ptr %519, align 8, !tbaa !5
  %521 = getelementptr inbounds i8, ptr %520, i64 16
  %522 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %521)
          to label %523 unwind label %.loopexit.split-lp160

523:                                              ; preds = %517
  %524 = uitofp i32 %522 to float
  %525 = fcmp olt float %518, %524
  br i1 %525, label %526, label %542

526:                                              ; preds = %523
  %527 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %528 = fcmp ult float %527, 0.000000e+00
  br i1 %528, label %542, label %529

529:                                              ; preds = %526
  %530 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %531 = load ptr, ptr %519, align 8, !tbaa !5
  %532 = getelementptr inbounds i8, ptr %531, i64 16
  %533 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %532)
          to label %534 unwind label %.loopexit.split-lp160

534:                                              ; preds = %529
  %535 = uitofp i32 %533 to float
  %536 = fcmp olt float %530, %535
  br i1 %536, label %537, label %542

537:                                              ; preds = %534
  %538 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %11)
  %539 = sitofp i32 %2 to float
  %540 = fcmp ogt float %538, %539
  br i1 %540, label %541, label %542

541:                                              ; preds = %537
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %11)
          to label %542 unwind label %.loopexit.split-lp160

542:                                              ; preds = %541, %537, %534, %526, %523, %.critedge21
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #6
  br label %543

543:                                              ; preds = %542, %452
  %544 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %545 = icmp ult i64 %544, 3
  br i1 %545, label %546, label %634

546:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #6
  %547 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %548 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %547)
  %549 = fadd float %15, %548
  %550 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %551 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %550)
  %552 = fadd float %551, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %12, float noundef %549, float noundef %552)
          to label %.preheader152 unwind label %.loopexit.split-lp154

.preheader152:                                    ; preds = %546
  %553 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %554 = fcmp ult float %553, 0.000000e+00
  br i1 %554, label %.critedge25, label %.lr.ph274

.lr.ph274:                                        ; preds = %.preheader152
  %555 = getelementptr inbounds i8, ptr %0, i64 16
  %556 = sitofp i32 %2 to float
  br label %557

557:                                              ; preds = %.lr.ph274, %587
  %.12273 = phi i32 [ 0, %.lr.ph274 ], [ %.13, %587 ]
  %.6147272 = phi i32 [ 0, %.lr.ph274 ], [ %595, %587 ]
  %558 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %559 = load ptr, ptr %555, align 8, !tbaa !5
  %560 = getelementptr inbounds i8, ptr %559, i64 16
  %561 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %560)
          to label %562 unwind label %.loopexit153

562:                                              ; preds = %557
  %563 = uitofp i32 %561 to float
  %564 = fcmp olt float %558, %563
  br i1 %564, label %565, label %.critedge25

565:                                              ; preds = %562
  %566 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %567 = fcmp ult float %566, 0.000000e+00
  br i1 %567, label %.critedge25, label %568

568:                                              ; preds = %565
  %569 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %570 = load ptr, ptr %555, align 8, !tbaa !5
  %571 = getelementptr inbounds i8, ptr %570, i64 16
  %572 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %571)
          to label %573 unwind label %.loopexit153

573:                                              ; preds = %568
  %574 = uitofp i32 %572 to float
  %575 = fcmp olt float %569, %574
  br i1 %575, label %576, label %.critedge25

576:                                              ; preds = %573
  %577 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %578 = fcmp ogt float %577, %556
  %579 = icmp ult i32 %.6147272, 100
  %or.cond23 = select i1 %578, i1 %579, i1 false
  %580 = icmp slt i32 %.12273, 5
  %or.cond43 = select i1 %or.cond23, i1 %580, i1 false
  br i1 %or.cond43, label %581, label %.critedge25

581:                                              ; preds = %576
  %582 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %583 = fptosi float %582 to i32
  %584 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %585 = fptosi float %584 to i32
  %586 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %583, i32 noundef %585)
          to label %587 unwind label %.loopexit153

587:                                              ; preds = %581
  %588 = add nsw i32 %.12273, 1
  %.13 = select i1 %586, i32 %588, i32 0
  %589 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %590 = load float, ptr %589, align 4, !tbaa !15
  %591 = fadd float %590, 1.000000e+00
  store float %591, ptr %589, align 4, !tbaa !15
  %592 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %593 = load float, ptr %592, align 4, !tbaa !15
  %594 = fadd float %593, -1.000000e+00
  store float %594, ptr %592, align 4, !tbaa !15
  %595 = add nuw nsw i32 %.6147272, 1
  %596 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %597 = fcmp ult float %596, 0.000000e+00
  br i1 %597, label %.critedge25, label %557, !llvm.loop !24

.loopexit153:                                     ; preds = %557, %568, %581
  %lpad.loopexit155 = landingpad { ptr, i32 }
          cleanup
  br label %598

.loopexit.split-lp154:                            ; preds = %546, %608, %620, %632
  %lpad.loopexit.split-lp156 = landingpad { ptr, i32 }
          cleanup
  br label %598

598:                                              ; preds = %.loopexit.split-lp154, %.loopexit153
  %lpad.phi157 = phi { ptr, i32 } [ %lpad.loopexit155, %.loopexit153 ], [ %lpad.loopexit.split-lp156, %.loopexit.split-lp154 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %735

.critedge25:                                      ; preds = %587, %562, %565, %573, %576, %.preheader152
  %.12.lcssa = phi i32 [ 0, %.preheader152 ], [ %.12273, %576 ], [ %.12273, %573 ], [ %.12273, %565 ], [ %.12273, %562 ], [ %.13, %587 ]
  %599 = sitofp i32 %.12.lcssa to float
  %600 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %601 = load float, ptr %600, align 4, !tbaa !15
  %602 = fsub float %601, %599
  store float %602, ptr %600, align 4, !tbaa !15
  %603 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %604 = load float, ptr %603, align 4, !tbaa !15
  %605 = fadd float %604, %599
  store float %605, ptr %603, align 4, !tbaa !15
  %606 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %607 = fcmp ult float %606, 0.000000e+00
  br i1 %607, label %633, label %608

608:                                              ; preds = %.critedge25
  %609 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %610 = getelementptr inbounds i8, ptr %0, i64 16
  %611 = load ptr, ptr %610, align 8, !tbaa !5
  %612 = getelementptr inbounds i8, ptr %611, i64 16
  %613 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %612)
          to label %614 unwind label %.loopexit.split-lp154

614:                                              ; preds = %608
  %615 = uitofp i32 %613 to float
  %616 = fcmp olt float %609, %615
  br i1 %616, label %617, label %633

617:                                              ; preds = %614
  %618 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %619 = fcmp ult float %618, 0.000000e+00
  br i1 %619, label %633, label %620

620:                                              ; preds = %617
  %621 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %622 = load ptr, ptr %610, align 8, !tbaa !5
  %623 = getelementptr inbounds i8, ptr %622, i64 16
  %624 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %623)
          to label %625 unwind label %.loopexit.split-lp154

625:                                              ; preds = %620
  %626 = uitofp i32 %624 to float
  %627 = fcmp olt float %621, %626
  br i1 %627, label %628, label %633

628:                                              ; preds = %625
  %629 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %12)
  %630 = sitofp i32 %2 to float
  %631 = fcmp ogt float %629, %630
  br i1 %631, label %632, label %633

632:                                              ; preds = %628
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %12)
          to label %633 unwind label %.loopexit.split-lp154

633:                                              ; preds = %632, %628, %625, %617, %614, %.critedge25
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #6
  br label %634

634:                                              ; preds = %633, %543
  %635 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %636 = icmp ult i64 %635, 3
  br i1 %636, label %637, label %719

637:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #6
  %638 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %639 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %638)
  %640 = fadd float %15, %639
  %641 = call noundef nonnull align 4 dereferenceable(8) ptr @_ZNK7MVision6Circle11translationEv(ptr noundef nonnull align 4 dereferenceable(12) %1)
  %642 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %641)
  %643 = fadd float %642, 0.000000e+00
  invoke void @_ZN7MVision8Vector2DC1Eff(ptr noundef nonnull align 4 dereferenceable(8) %13, float noundef %640, float noundef %643)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %637
  %644 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %645 = fcmp ult float %644, 0.000000e+00
  br i1 %645, label %.critedge29, label %.lr.ph286

.lr.ph286:                                        ; preds = %.preheader
  %646 = getelementptr inbounds i8, ptr %0, i64 16
  %647 = sitofp i32 %2 to float
  br label %648

648:                                              ; preds = %.lr.ph286, %678
  %.14285 = phi i32 [ 0, %.lr.ph286 ], [ %.15, %678 ]
  %.7148284 = phi i32 [ 0, %.lr.ph286 ], [ %683, %678 ]
  %649 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %650 = load ptr, ptr %646, align 8, !tbaa !5
  %651 = getelementptr inbounds i8, ptr %650, i64 16
  %652 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %651)
          to label %653 unwind label %.loopexit

653:                                              ; preds = %648
  %654 = uitofp i32 %652 to float
  %655 = fcmp olt float %649, %654
  br i1 %655, label %656, label %.critedge29.loopexit

656:                                              ; preds = %653
  %657 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %658 = fcmp ult float %657, 0.000000e+00
  br i1 %658, label %.critedge29.loopexit, label %659

659:                                              ; preds = %656
  %660 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %661 = load ptr, ptr %646, align 8, !tbaa !5
  %662 = getelementptr inbounds i8, ptr %661, i64 16
  %663 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %662)
          to label %664 unwind label %.loopexit

664:                                              ; preds = %659
  %665 = uitofp i32 %663 to float
  %666 = fcmp olt float %660, %665
  br i1 %666, label %667, label %.critedge29.loopexit

667:                                              ; preds = %664
  %668 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %669 = fcmp ogt float %668, %647
  %670 = icmp ult i32 %.7148284, 100
  %or.cond27 = select i1 %669, i1 %670, i1 false
  %671 = icmp slt i32 %.14285, 5
  %or.cond45 = select i1 %or.cond27, i1 %671, i1 false
  br i1 %or.cond45, label %672, label %.critedge29.loopexit

672:                                              ; preds = %667
  %673 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %674 = fptosi float %673 to i32
  %675 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %676 = fptosi float %675 to i32
  %677 = invoke noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56) %3, i32 noundef %674, i32 noundef %676)
          to label %678 unwind label %.loopexit

678:                                              ; preds = %672
  %679 = add nsw i32 %.14285, 1
  %.15 = select i1 %677, i32 %679, i32 0
  %680 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %681 = load float, ptr %680, align 4, !tbaa !15
  %682 = fadd float %681, 1.000000e+00
  store float %682, ptr %680, align 4, !tbaa !15
  %683 = add nuw nsw i32 %.7148284, 1
  %684 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %685 = fcmp ult float %684, 0.000000e+00
  br i1 %685, label %.critedge29.loopexit, label %648, !llvm.loop !25

.loopexit:                                        ; preds = %648, %659, %672
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %686

.loopexit.split-lp:                               ; preds = %637, %693, %705, %717
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %686

686:                                              ; preds = %.loopexit.split-lp, %.loopexit
  %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %735

.critedge29.loopexit:                             ; preds = %667, %664, %656, %653, %678
  %.14.lcssa.ph = phi i32 [ %.15, %678 ], [ %.14285, %653 ], [ %.14285, %656 ], [ %.14285, %664 ], [ %.14285, %667 ]
  %687 = sitofp i32 %.14.lcssa.ph to float
  br label %.critedge29

.critedge29:                                      ; preds = %.critedge29.loopexit, %.preheader
  %.14.lcssa = phi float [ 0.000000e+00, %.preheader ], [ %687, %.critedge29.loopexit ]
  %688 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %689 = load float, ptr %688, align 4, !tbaa !15
  %690 = fsub float %689, %.14.lcssa
  store float %690, ptr %688, align 4, !tbaa !15
  %691 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %692 = fcmp ult float %691, 0.000000e+00
  br i1 %692, label %718, label %693

693:                                              ; preds = %.critedge29
  %694 = call noundef float @_ZNK7MVision8Vector2D1xEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %695 = getelementptr inbounds i8, ptr %0, i64 16
  %696 = load ptr, ptr %695, align 8, !tbaa !5
  %697 = getelementptr inbounds i8, ptr %696, i64 16
  %698 = invoke noundef i32 @_ZNK7MVision5Image5widthEv(ptr noundef nonnull align 8 dereferenceable(24) %697)
          to label %699 unwind label %.loopexit.split-lp

699:                                              ; preds = %693
  %700 = uitofp i32 %698 to float
  %701 = fcmp olt float %694, %700
  br i1 %701, label %702, label %718

702:                                              ; preds = %699
  %703 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %704 = fcmp ult float %703, 0.000000e+00
  br i1 %704, label %718, label %705

705:                                              ; preds = %702
  %706 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %707 = load ptr, ptr %695, align 8, !tbaa !5
  %708 = getelementptr inbounds i8, ptr %707, i64 16
  %709 = invoke noundef i32 @_ZNK7MVision5Image6heightEv(ptr noundef nonnull align 8 dereferenceable(24) %708)
          to label %710 unwind label %.loopexit.split-lp

710:                                              ; preds = %705
  %711 = uitofp i32 %709 to float
  %712 = fcmp olt float %706, %711
  br i1 %712, label %713, label %718

713:                                              ; preds = %710
  %714 = call noundef float @_ZNK7MVision8Vector2D1yEv(ptr noundef nonnull align 4 dereferenceable(8) %13)
  %715 = sitofp i32 %2 to float
  %716 = fcmp ogt float %714, %715
  br i1 %716, label %717, label %718

717:                                              ; preds = %713
  invoke void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE9push_backERKS1_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 4 dereferenceable(8) %13)
          to label %718 unwind label %.loopexit.split-lp

718:                                              ; preds = %717, %713, %710, %702, %699, %.critedge29
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #6
  br label %719

719:                                              ; preds = %718, %634
  %720 = call noundef i64 @_ZNKSt6vectorIN7MVision8Vector2DESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  %721 = icmp ugt i64 %720, 2
  br i1 %721, label %722, label %734

722:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %14) #6
  %723 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 0)
          to label %724 unwind label %732

724:                                              ; preds = %722
  %725 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 1)
          to label %726 unwind label %732

726:                                              ; preds = %724
  %727 = invoke noundef nonnull align 4 dereferenceable(8) ptr @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %5, i64 noundef 2)
          to label %728 unwind label %732

728:                                              ; preds = %726
  %729 = invoke { <2 x float>, float } @_ZN7MVision4FRHT10fitACircleERKNS_8Vector2DES3_S3_(ptr noundef nonnull align 4 dereferenceable(8) %723, ptr noundef nonnull align 4 dereferenceable(8) %725, ptr noundef nonnull align 4 dereferenceable(8) %727)
          to label %730 unwind label %732

730:                                              ; preds = %728
  %.fca.0.extract = extractvalue { <2 x float>, float } %729, 0
  %.fca.1.extract = extractvalue { <2 x float>, float } %729, 1
  store <2 x float> %.fca.0.extract, ptr %14, align 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %14, i64 8
  store float %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  %731 = call noundef nonnull align 4 dereferenceable(12) ptr @_ZN7MVision6CircleaSERKS0_(ptr noundef nonnull align 4 dereferenceable(12) %1, ptr noundef nonnull align 4 dereferenceable(12) %14)
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %14) #6
  br label %734

732:                                              ; preds = %728, %726, %724, %722
  %733 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %14) #6
  br label %735

734:                                              ; preds = %730, %719
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  ret void

735:                                              ; preds = %732, %686, %598, %507, %416, %325, %237, %152, %67
  %.pn = phi { ptr, i32 } [ %lpad.phi193, %67 ], [ %lpad.phi187, %152 ], [ %lpad.phi181, %237 ], [ %lpad.phi175, %325 ], [ %lpad.phi169, %416 ], [ %lpad.phi163, %507 ], [ %lpad.phi157, %598 ], [ %lpad.phi, %686 ], [ %733, %732 ]
  call void @_ZNSt6vectorIN7MVision8Vector2DESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #6
  resume { ptr, i32 } %.pn
}

declare noundef zeroext i1 @_ZNK7MVision13ColorAnalyzer7isGreenEii(ptr noundef nonnull align 8 dereferenceable(56), i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_yEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZN7MVision8Vector2D9mutable_xEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(12) ptr @_ZN7MVision6CircleaSERKS0_(ptr noundef nonnull align 4 dereferenceable(12), ptr noundef nonnull align 4 dereferenceable(12)) local_unnamed_addr #3 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress 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 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 #3 = { inlinehint mustprogress 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 uwtable "min-legal-vector-width"="64" "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 = { 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, !8, i64 16}
!6 = !{!"_ZTSN7MVision4FRHTE", !7, i64 0, !8, i64 16, !11, i64 24}
!7 = !{!"_ZTS9Debugable", !8, i64 8}
!8 = !{!"any pointer", !9, i64 0}
!9 = !{!"omnipotent char", !10, i64 0}
!10 = !{!"Simple C++ TBAA"}
!11 = !{!"_ZTSSt6vectorIN7MVision6CircleESaIS1_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIN7MVision6CircleESaIS1_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIN7MVision6CircleESaIS1_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN7MVision6CircleESaIS1_EE17_Vector_impl_dataE", !8, i64 0, !8, i64 8, !8, i64 16}
!15 = !{!16, !16, i64 0}
!16 = !{!"float", !9, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = distinct !{!19, !18}
!20 = distinct !{!20, !18}
!21 = distinct !{!21, !18}
!22 = distinct !{!22, !18}
!23 = distinct !{!23, !18}
!24 = distinct !{!24, !18}
!25 = distinct !{!25, !18}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass