; LLVM IR from mhsitu/welding_robot :: coppeliaSim-client/common (luaFunctionData)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.std::_Bit_reference" = type { ptr, i64 }
%struct.SLuaCallBack = type { i32, ptr, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, ptr, i32, ptr, i8, ptr, ptr, i32, ptr, ptr }
%class.CLuaFunctionData = type { ptr, %"class.std::vector", %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<CLuaFunctionDataItem, std::allocator<CLuaFunctionDataItem>>::_Vector_impl" }
%"struct.std::_Vector_base<CLuaFunctionDataItem, std::allocator<CLuaFunctionDataItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<CLuaFunctionDataItem, std::allocator<CLuaFunctionDataItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<CLuaFunctionDataItem, std::allocator<CLuaFunctionDataItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%class.CLuaFunctionDataItem = type <{ ptr, %"class.std::vector.5", %"class.std::vector.0", %"class.std::vector.9", %"class.std::vector.14", %"class.std::vector.19", i32, i8, [3 x i8], i32, [4 x i8] }>
%"class.std::vector.5" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.9" = type { %"struct.std::_Vector_base.10" }
%"struct.std::_Vector_base.10" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl" = type { %"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" }
%"struct.std::_Vector_base<float, std::allocator<float>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl" = type { %"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" }
%"struct.std::_Vector_base<double, std::allocator<double>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.19" = type { %"struct.std::_Vector_base.20" }
%"struct.std::_Vector_base.20" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@simCreateBuffer = external global ptr, align 8

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CLuaFunctionData14writeDataToLuaEP12SLuaCallBack(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef %1) #2 align 2 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %"struct.std::_Bit_reference", align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %"struct.std::_Bit_reference", align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %32 = load ptr, ptr %3, align 8
  %33 = load ptr, ptr %4, align 8, !tbaa !5
  %34 = getelementptr inbounds %struct.SLuaCallBack, ptr %33, i32 0, i32 11
  store i32 0, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  %35 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %36 = call noundef i64 @_ZNKSt6vectorI20CLuaFunctionDataItemSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #4
  %37 = trunc i64 %36 to i32
  store i32 %37, ptr %5, align 4, !tbaa !12
  %38 = load i32, ptr %5, align 4, !tbaa !12
  %39 = icmp sgt i32 %38, 0
  br i1 %39, label %40, label %1019

40:                                               ; preds = %2
  %41 = load i32, ptr %5, align 4, !tbaa !12
  %42 = load ptr, ptr %4, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.SLuaCallBack, ptr %42, i32 0, i32 11
  store i32 %41, ptr %43, align 8, !tbaa !9
  %44 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %45 = load ptr, ptr %4, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.SLuaCallBack, ptr %45, i32 0, i32 11
  %47 = load i32, ptr %46, align 8, !tbaa !9
  %48 = mul nsw i32 %47, 2
  %49 = sext i32 %48 to i64
  %50 = mul i64 %49, 4
  %51 = trunc i64 %50 to i32
  %52 = call noundef ptr %44(i32 noundef %51)
  %53 = load ptr, ptr %4, align 8, !tbaa !5
  %54 = getelementptr inbounds %struct.SLuaCallBack, ptr %53, i32 0, i32 12
  store ptr %52, ptr %54, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  store i32 0, ptr %6, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  store i32 0, ptr %7, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  store i32 0, ptr %8, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  store i32 0, ptr %9, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  store i32 0, ptr %10, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  store i32 0, ptr %11, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  store i32 0, ptr %12, align 4, !tbaa !12
  br label %55

55:                                               ; preds = %531, %40
  %56 = load i32, ptr %12, align 4, !tbaa !12
  %57 = load i32, ptr %5, align 4, !tbaa !12
  %58 = icmp slt i32 %56, %57
  br i1 %58, label %60, label %59

59:                                               ; preds = %55
  store i32 2, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  br label %534

60:                                               ; preds = %55
  %61 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %62 = load i32, ptr %12, align 4, !tbaa !12
  %63 = sext i32 %62 to i64
  %64 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %61, i64 noundef %63) #4
  %65 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %64)
  br i1 %65, label %66, label %324

66:                                               ; preds = %60
  %67 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %68 = load i32, ptr %12, align 4, !tbaa !12
  %69 = sext i32 %68 to i64
  %70 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %67, i64 noundef %69) #4
  %71 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %70)
  %72 = icmp eq i32 %71, -1
  br i1 %72, label %73, label %95

73:                                               ; preds = %66
  %74 = load ptr, ptr %4, align 8, !tbaa !5
  %75 = getelementptr inbounds %struct.SLuaCallBack, ptr %74, i32 0, i32 12
  %76 = load ptr, ptr %75, align 8, !tbaa !13
  %77 = load i32, ptr %12, align 4, !tbaa !12
  %78 = mul nsw i32 %77, 2
  %79 = add nsw i32 %78, 0
  %80 = sext i32 %79 to i64
  %81 = getelementptr inbounds i32, ptr %76, i64 %80
  store i32 8, ptr %81, align 4, !tbaa !12
  %82 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %83 = load i32, ptr %12, align 4, !tbaa !12
  %84 = sext i32 %83 to i64
  %85 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef %84) #4
  %86 = call noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156) %85)
  %87 = load ptr, ptr %4, align 8, !tbaa !5
  %88 = getelementptr inbounds %struct.SLuaCallBack, ptr %87, i32 0, i32 12
  %89 = load ptr, ptr %88, align 8, !tbaa !13
  %90 = load i32, ptr %12, align 4, !tbaa !12
  %91 = mul nsw i32 %90, 2
  %92 = add nsw i32 %91, 1
  %93 = sext i32 %92 to i64
  %94 = getelementptr inbounds i32, ptr %89, i64 %93
  store i32 %86, ptr %94, align 4, !tbaa !12
  br label %95

95:                                               ; preds = %73, %66
  %96 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %97 = load i32, ptr %12, align 4, !tbaa !12
  %98 = sext i32 %97 to i64
  %99 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef %98) #4
  %100 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %99)
  %101 = icmp eq i32 %100, 0
  br i1 %101, label %102, label %137

102:                                              ; preds = %95
  %103 = load ptr, ptr %4, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.SLuaCallBack, ptr %103, i32 0, i32 12
  %105 = load ptr, ptr %104, align 8, !tbaa !13
  %106 = load i32, ptr %12, align 4, !tbaa !12
  %107 = mul nsw i32 %106, 2
  %108 = add nsw i32 %107, 0
  %109 = sext i32 %108 to i64
  %110 = getelementptr inbounds i32, ptr %105, i64 %109
  store i32 9, ptr %110, align 4, !tbaa !12
  %111 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %112 = load i32, ptr %12, align 4, !tbaa !12
  %113 = sext i32 %112 to i64
  %114 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %111, i64 noundef %113) #4
  %115 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %114, i32 0, i32 1
  %116 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %115) #4
  %117 = trunc i64 %116 to i32
  %118 = load ptr, ptr %4, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.SLuaCallBack, ptr %118, i32 0, i32 12
  %120 = load ptr, ptr %119, align 8, !tbaa !13
  %121 = load i32, ptr %12, align 4, !tbaa !12
  %122 = mul nsw i32 %121, 2
  %123 = add nsw i32 %122, 1
  %124 = sext i32 %123 to i64
  %125 = getelementptr inbounds i32, ptr %120, i64 %124
  store i32 %117, ptr %125, align 4, !tbaa !12
  %126 = load ptr, ptr %4, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.SLuaCallBack, ptr %126, i32 0, i32 12
  %128 = load ptr, ptr %127, align 8, !tbaa !13
  %129 = load i32, ptr %12, align 4, !tbaa !12
  %130 = mul nsw i32 %129, 2
  %131 = add nsw i32 %130, 1
  %132 = sext i32 %131 to i64
  %133 = getelementptr inbounds i32, ptr %128, i64 %132
  %134 = load i32, ptr %133, align 4, !tbaa !12
  %135 = load i32, ptr %6, align 4, !tbaa !12
  %136 = add nsw i32 %135, %134
  store i32 %136, ptr %6, align 4, !tbaa !12
  br label %137

137:                                              ; preds = %102, %95
  %138 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %139 = load i32, ptr %12, align 4, !tbaa !12
  %140 = sext i32 %139 to i64
  %141 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %138, i64 noundef %140) #4
  %142 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %141)
  %143 = icmp eq i32 %142, 1
  br i1 %143, label %144, label %179

144:                                              ; preds = %137
  %145 = load ptr, ptr %4, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.SLuaCallBack, ptr %145, i32 0, i32 12
  %147 = load ptr, ptr %146, align 8, !tbaa !13
  %148 = load i32, ptr %12, align 4, !tbaa !12
  %149 = mul nsw i32 %148, 2
  %150 = add nsw i32 %149, 0
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds i32, ptr %147, i64 %151
  store i32 10, ptr %152, align 4, !tbaa !12
  %153 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %154 = load i32, ptr %12, align 4, !tbaa !12
  %155 = sext i32 %154 to i64
  %156 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %153, i64 noundef %155) #4
  %157 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %156, i32 0, i32 2
  %158 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %157) #4
  %159 = trunc i64 %158 to i32
  %160 = load ptr, ptr %4, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.SLuaCallBack, ptr %160, i32 0, i32 12
  %162 = load ptr, ptr %161, align 8, !tbaa !13
  %163 = load i32, ptr %12, align 4, !tbaa !12
  %164 = mul nsw i32 %163, 2
  %165 = add nsw i32 %164, 1
  %166 = sext i32 %165 to i64
  %167 = getelementptr inbounds i32, ptr %162, i64 %166
  store i32 %159, ptr %167, align 4, !tbaa !12
  %168 = load ptr, ptr %4, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.SLuaCallBack, ptr %168, i32 0, i32 12
  %170 = load ptr, ptr %169, align 8, !tbaa !13
  %171 = load i32, ptr %12, align 4, !tbaa !12
  %172 = mul nsw i32 %171, 2
  %173 = add nsw i32 %172, 1
  %174 = sext i32 %173 to i64
  %175 = getelementptr inbounds i32, ptr %170, i64 %174
  %176 = load i32, ptr %175, align 4, !tbaa !12
  %177 = load i32, ptr %7, align 4, !tbaa !12
  %178 = add nsw i32 %177, %176
  store i32 %178, ptr %7, align 4, !tbaa !12
  br label %179

179:                                              ; preds = %144, %137
  %180 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %181 = load i32, ptr %12, align 4, !tbaa !12
  %182 = sext i32 %181 to i64
  %183 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %180, i64 noundef %182) #4
  %184 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %183)
  %185 = icmp eq i32 %184, 2
  br i1 %185, label %186, label %221

186:                                              ; preds = %179
  %187 = load ptr, ptr %4, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.SLuaCallBack, ptr %187, i32 0, i32 12
  %189 = load ptr, ptr %188, align 8, !tbaa !13
  %190 = load i32, ptr %12, align 4, !tbaa !12
  %191 = mul nsw i32 %190, 2
  %192 = add nsw i32 %191, 0
  %193 = sext i32 %192 to i64
  %194 = getelementptr inbounds i32, ptr %189, i64 %193
  store i32 11, ptr %194, align 4, !tbaa !12
  %195 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %196 = load i32, ptr %12, align 4, !tbaa !12
  %197 = sext i32 %196 to i64
  %198 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %195, i64 noundef %197) #4
  %199 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %198, i32 0, i32 3
  %200 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #4
  %201 = trunc i64 %200 to i32
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.SLuaCallBack, ptr %202, i32 0, i32 12
  %204 = load ptr, ptr %203, align 8, !tbaa !13
  %205 = load i32, ptr %12, align 4, !tbaa !12
  %206 = mul nsw i32 %205, 2
  %207 = add nsw i32 %206, 1
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds i32, ptr %204, i64 %208
  store i32 %201, ptr %209, align 4, !tbaa !12
  %210 = load ptr, ptr %4, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.SLuaCallBack, ptr %210, i32 0, i32 12
  %212 = load ptr, ptr %211, align 8, !tbaa !13
  %213 = load i32, ptr %12, align 4, !tbaa !12
  %214 = mul nsw i32 %213, 2
  %215 = add nsw i32 %214, 1
  %216 = sext i32 %215 to i64
  %217 = getelementptr inbounds i32, ptr %212, i64 %216
  %218 = load i32, ptr %217, align 4, !tbaa !12
  %219 = load i32, ptr %8, align 4, !tbaa !12
  %220 = add nsw i32 %219, %218
  store i32 %220, ptr %8, align 4, !tbaa !12
  br label %221

221:                                              ; preds = %186, %179
  %222 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %223 = load i32, ptr %12, align 4, !tbaa !12
  %224 = sext i32 %223 to i64
  %225 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %222, i64 noundef %224) #4
  %226 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %225)
  %227 = icmp eq i32 %226, 5
  br i1 %227, label %228, label %263

228:                                              ; preds = %221
  %229 = load ptr, ptr %4, align 8, !tbaa !5
  %230 = getelementptr inbounds %struct.SLuaCallBack, ptr %229, i32 0, i32 12
  %231 = load ptr, ptr %230, align 8, !tbaa !13
  %232 = load i32, ptr %12, align 4, !tbaa !12
  %233 = mul nsw i32 %232, 2
  %234 = add nsw i32 %233, 0
  %235 = sext i32 %234 to i64
  %236 = getelementptr inbounds i32, ptr %231, i64 %235
  store i32 15, ptr %236, align 4, !tbaa !12
  %237 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %238 = load i32, ptr %12, align 4, !tbaa !12
  %239 = sext i32 %238 to i64
  %240 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %237, i64 noundef %239) #4
  %241 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %240, i32 0, i32 4
  %242 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %241) #4
  %243 = trunc i64 %242 to i32
  %244 = load ptr, ptr %4, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.SLuaCallBack, ptr %244, i32 0, i32 12
  %246 = load ptr, ptr %245, align 8, !tbaa !13
  %247 = load i32, ptr %12, align 4, !tbaa !12
  %248 = mul nsw i32 %247, 2
  %249 = add nsw i32 %248, 1
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds i32, ptr %246, i64 %250
  store i32 %243, ptr %251, align 4, !tbaa !12
  %252 = load ptr, ptr %4, align 8, !tbaa !5
  %253 = getelementptr inbounds %struct.SLuaCallBack, ptr %252, i32 0, i32 12
  %254 = load ptr, ptr %253, align 8, !tbaa !13
  %255 = load i32, ptr %12, align 4, !tbaa !12
  %256 = mul nsw i32 %255, 2
  %257 = add nsw i32 %256, 1
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds i32, ptr %254, i64 %258
  %260 = load i32, ptr %259, align 4, !tbaa !12
  %261 = load i32, ptr %9, align 4, !tbaa !12
  %262 = add nsw i32 %261, %260
  store i32 %262, ptr %9, align 4, !tbaa !12
  br label %263

263:                                              ; preds = %228, %221
  %264 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %265 = load i32, ptr %12, align 4, !tbaa !12
  %266 = sext i32 %265 to i64
  %267 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %264, i64 noundef %266) #4
  %268 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %267)
  %269 = icmp eq i32 %268, 3
  br i1 %269, label %270, label %323

270:                                              ; preds = %263
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  %272 = getelementptr inbounds %struct.SLuaCallBack, ptr %271, i32 0, i32 12
  %273 = load ptr, ptr %272, align 8, !tbaa !13
  %274 = load i32, ptr %12, align 4, !tbaa !12
  %275 = mul nsw i32 %274, 2
  %276 = add nsw i32 %275, 0
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds i32, ptr %273, i64 %277
  store i32 12, ptr %278, align 4, !tbaa !12
  %279 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %280 = load i32, ptr %12, align 4, !tbaa !12
  %281 = sext i32 %280 to i64
  %282 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %279, i64 noundef %281) #4
  %283 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %282, i32 0, i32 5
  %284 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %283) #4
  %285 = trunc i64 %284 to i32
  %286 = load ptr, ptr %4, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.SLuaCallBack, ptr %286, i32 0, i32 12
  %288 = load ptr, ptr %287, align 8, !tbaa !13
  %289 = load i32, ptr %12, align 4, !tbaa !12
  %290 = mul nsw i32 %289, 2
  %291 = add nsw i32 %290, 1
  %292 = sext i32 %291 to i64
  %293 = getelementptr inbounds i32, ptr %288, i64 %292
  store i32 %285, ptr %293, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 0, ptr %14, align 4, !tbaa !12
  br label %294

294:                                              ; preds = %319, %270
  %295 = load i32, ptr %14, align 4, !tbaa !12
  %296 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %297 = load i32, ptr %12, align 4, !tbaa !12
  %298 = sext i32 %297 to i64
  %299 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %298) #4
  %300 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %299, i32 0, i32 5
  %301 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %300) #4
  %302 = trunc i64 %301 to i32
  %303 = icmp slt i32 %295, %302
  br i1 %303, label %305, label %304

304:                                              ; preds = %294
  store i32 5, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  br label %322

305:                                              ; preds = %294
  %306 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %307 = load i32, ptr %12, align 4, !tbaa !12
  %308 = sext i32 %307 to i64
  %309 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %306, i64 noundef %308) #4
  %310 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %309, i32 0, i32 5
  %311 = load i32, ptr %14, align 4, !tbaa !12
  %312 = sext i32 %311 to i64
  %313 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %310, i64 noundef %312) #4
  %314 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %313) #4
  %315 = trunc i64 %314 to i32
  %316 = add nsw i32 %315, 1
  %317 = load i32, ptr %10, align 4, !tbaa !12
  %318 = add nsw i32 %317, %316
  store i32 %318, ptr %10, align 4, !tbaa !12
  br label %319

319:                                              ; preds = %305
  %320 = load i32, ptr %14, align 4, !tbaa !12
  %321 = add nsw i32 %320, 1
  store i32 %321, ptr %14, align 4, !tbaa !12
  br label %294, !llvm.loop !14

322:                                              ; preds = %304
  br label %323

323:                                              ; preds = %322, %263
  br label %530

324:                                              ; preds = %60
  %325 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %326 = load i32, ptr %12, align 4, !tbaa !12
  %327 = sext i32 %326 to i64
  %328 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %325, i64 noundef %327) #4
  %329 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %328)
  %330 = icmp eq i32 %329, -1
  br i1 %330, label %331, label %348

331:                                              ; preds = %324
  %332 = load ptr, ptr %4, align 8, !tbaa !5
  %333 = getelementptr inbounds %struct.SLuaCallBack, ptr %332, i32 0, i32 12
  %334 = load ptr, ptr %333, align 8, !tbaa !13
  %335 = load i32, ptr %12, align 4, !tbaa !12
  %336 = mul nsw i32 %335, 2
  %337 = add nsw i32 %336, 1
  %338 = sext i32 %337 to i64
  %339 = getelementptr inbounds i32, ptr %334, i64 %338
  store i32 0, ptr %339, align 4, !tbaa !12
  %340 = load ptr, ptr %4, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.SLuaCallBack, ptr %340, i32 0, i32 12
  %342 = load ptr, ptr %341, align 8, !tbaa !13
  %343 = load i32, ptr %12, align 4, !tbaa !12
  %344 = mul nsw i32 %343, 2
  %345 = add nsw i32 %344, 0
  %346 = sext i32 %345 to i64
  %347 = getelementptr inbounds i32, ptr %342, i64 %346
  store i32 0, ptr %347, align 4, !tbaa !12
  br label %348

348:                                              ; preds = %331, %324
  %349 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %350 = load i32, ptr %12, align 4, !tbaa !12
  %351 = sext i32 %350 to i64
  %352 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %349, i64 noundef %351) #4
  %353 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %352)
  %354 = icmp eq i32 %353, 0
  br i1 %354, label %355, label %374

355:                                              ; preds = %348
  %356 = load ptr, ptr %4, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.SLuaCallBack, ptr %356, i32 0, i32 12
  %358 = load ptr, ptr %357, align 8, !tbaa !13
  %359 = load i32, ptr %12, align 4, !tbaa !12
  %360 = mul nsw i32 %359, 2
  %361 = add nsw i32 %360, 1
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds i32, ptr %358, i64 %362
  store i32 0, ptr %363, align 4, !tbaa !12
  %364 = load ptr, ptr %4, align 8, !tbaa !5
  %365 = getelementptr inbounds %struct.SLuaCallBack, ptr %364, i32 0, i32 12
  %366 = load ptr, ptr %365, align 8, !tbaa !13
  %367 = load i32, ptr %12, align 4, !tbaa !12
  %368 = mul nsw i32 %367, 2
  %369 = add nsw i32 %368, 0
  %370 = sext i32 %369 to i64
  %371 = getelementptr inbounds i32, ptr %366, i64 %370
  store i32 1, ptr %371, align 4, !tbaa !12
  %372 = load i32, ptr %6, align 4, !tbaa !12
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr %6, align 4, !tbaa !12
  br label %374

374:                                              ; preds = %355, %348
  %375 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %376 = load i32, ptr %12, align 4, !tbaa !12
  %377 = sext i32 %376 to i64
  %378 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %375, i64 noundef %377) #4
  %379 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %378)
  %380 = icmp eq i32 %379, 1
  br i1 %380, label %381, label %400

381:                                              ; preds = %374
  %382 = load ptr, ptr %4, align 8, !tbaa !5
  %383 = getelementptr inbounds %struct.SLuaCallBack, ptr %382, i32 0, i32 12
  %384 = load ptr, ptr %383, align 8, !tbaa !13
  %385 = load i32, ptr %12, align 4, !tbaa !12
  %386 = mul nsw i32 %385, 2
  %387 = add nsw i32 %386, 1
  %388 = sext i32 %387 to i64
  %389 = getelementptr inbounds i32, ptr %384, i64 %388
  store i32 0, ptr %389, align 4, !tbaa !12
  %390 = load ptr, ptr %4, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.SLuaCallBack, ptr %390, i32 0, i32 12
  %392 = load ptr, ptr %391, align 8, !tbaa !13
  %393 = load i32, ptr %12, align 4, !tbaa !12
  %394 = mul nsw i32 %393, 2
  %395 = add nsw i32 %394, 0
  %396 = sext i32 %395 to i64
  %397 = getelementptr inbounds i32, ptr %392, i64 %396
  store i32 2, ptr %397, align 4, !tbaa !12
  %398 = load i32, ptr %7, align 4, !tbaa !12
  %399 = add nsw i32 %398, 1
  store i32 %399, ptr %7, align 4, !tbaa !12
  br label %400

400:                                              ; preds = %381, %374
  %401 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %402 = load i32, ptr %12, align 4, !tbaa !12
  %403 = sext i32 %402 to i64
  %404 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %401, i64 noundef %403) #4
  %405 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %404)
  %406 = icmp eq i32 %405, 2
  br i1 %406, label %407, label %426

407:                                              ; preds = %400
  %408 = load ptr, ptr %4, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.SLuaCallBack, ptr %408, i32 0, i32 12
  %410 = load ptr, ptr %409, align 8, !tbaa !13
  %411 = load i32, ptr %12, align 4, !tbaa !12
  %412 = mul nsw i32 %411, 2
  %413 = add nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds i32, ptr %410, i64 %414
  store i32 0, ptr %415, align 4, !tbaa !12
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.SLuaCallBack, ptr %416, i32 0, i32 12
  %418 = load ptr, ptr %417, align 8, !tbaa !13
  %419 = load i32, ptr %12, align 4, !tbaa !12
  %420 = mul nsw i32 %419, 2
  %421 = add nsw i32 %420, 0
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds i32, ptr %418, i64 %422
  store i32 3, ptr %423, align 4, !tbaa !12
  %424 = load i32, ptr %8, align 4, !tbaa !12
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr %8, align 4, !tbaa !12
  br label %426

426:                                              ; preds = %407, %400
  %427 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %428 = load i32, ptr %12, align 4, !tbaa !12
  %429 = sext i32 %428 to i64
  %430 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %427, i64 noundef %429) #4
  %431 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %430)
  %432 = icmp eq i32 %431, 5
  br i1 %432, label %433, label %452

433:                                              ; preds = %426
  %434 = load ptr, ptr %4, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.SLuaCallBack, ptr %434, i32 0, i32 12
  %436 = load ptr, ptr %435, align 8, !tbaa !13
  %437 = load i32, ptr %12, align 4, !tbaa !12
  %438 = mul nsw i32 %437, 2
  %439 = add nsw i32 %438, 1
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds i32, ptr %436, i64 %440
  store i32 0, ptr %441, align 4, !tbaa !12
  %442 = load ptr, ptr %4, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.SLuaCallBack, ptr %442, i32 0, i32 12
  %444 = load ptr, ptr %443, align 8, !tbaa !13
  %445 = load i32, ptr %12, align 4, !tbaa !12
  %446 = mul nsw i32 %445, 2
  %447 = add nsw i32 %446, 0
  %448 = sext i32 %447 to i64
  %449 = getelementptr inbounds i32, ptr %444, i64 %448
  store i32 7, ptr %449, align 4, !tbaa !12
  %450 = load i32, ptr %9, align 4, !tbaa !12
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr %9, align 4, !tbaa !12
  br label %452

452:                                              ; preds = %433, %426
  %453 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %454 = load i32, ptr %12, align 4, !tbaa !12
  %455 = sext i32 %454 to i64
  %456 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %453, i64 noundef %455) #4
  %457 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %456)
  %458 = icmp eq i32 %457, 3
  br i1 %458, label %459, label %487

459:                                              ; preds = %452
  %460 = load ptr, ptr %4, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.SLuaCallBack, ptr %460, i32 0, i32 12
  %462 = load ptr, ptr %461, align 8, !tbaa !13
  %463 = load i32, ptr %12, align 4, !tbaa !12
  %464 = mul nsw i32 %463, 2
  %465 = add nsw i32 %464, 1
  %466 = sext i32 %465 to i64
  %467 = getelementptr inbounds i32, ptr %462, i64 %466
  store i32 0, ptr %467, align 4, !tbaa !12
  %468 = load ptr, ptr %4, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.SLuaCallBack, ptr %468, i32 0, i32 12
  %470 = load ptr, ptr %469, align 8, !tbaa !13
  %471 = load i32, ptr %12, align 4, !tbaa !12
  %472 = mul nsw i32 %471, 2
  %473 = add nsw i32 %472, 0
  %474 = sext i32 %473 to i64
  %475 = getelementptr inbounds i32, ptr %470, i64 %474
  store i32 4, ptr %475, align 4, !tbaa !12
  %476 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %477 = load i32, ptr %12, align 4, !tbaa !12
  %478 = sext i32 %477 to i64
  %479 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %476, i64 noundef %478) #4
  %480 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %479, i32 0, i32 5
  %481 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %480, i64 noundef 0) #4
  %482 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %481) #4
  %483 = trunc i64 %482 to i32
  %484 = add nsw i32 %483, 1
  %485 = load i32, ptr %10, align 4, !tbaa !12
  %486 = add nsw i32 %485, %484
  store i32 %486, ptr %10, align 4, !tbaa !12
  br label %487

487:                                              ; preds = %459, %452
  %488 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %489 = load i32, ptr %12, align 4, !tbaa !12
  %490 = sext i32 %489 to i64
  %491 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %488, i64 noundef %490) #4
  %492 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %491)
  %493 = icmp eq i32 %492, 4
  br i1 %493, label %494, label %529

494:                                              ; preds = %487
  %495 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %496 = load i32, ptr %12, align 4, !tbaa !12
  %497 = sext i32 %496 to i64
  %498 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %495, i64 noundef %497) #4
  %499 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %498, i32 0, i32 5
  %500 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef 0) #4
  %501 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %500) #4
  %502 = trunc i64 %501 to i32
  %503 = load ptr, ptr %4, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.SLuaCallBack, ptr %503, i32 0, i32 12
  %505 = load ptr, ptr %504, align 8, !tbaa !13
  %506 = load i32, ptr %12, align 4, !tbaa !12
  %507 = mul nsw i32 %506, 2
  %508 = add nsw i32 %507, 1
  %509 = sext i32 %508 to i64
  %510 = getelementptr inbounds i32, ptr %505, i64 %509
  store i32 %502, ptr %510, align 4, !tbaa !12
  %511 = load ptr, ptr %4, align 8, !tbaa !5
  %512 = getelementptr inbounds %struct.SLuaCallBack, ptr %511, i32 0, i32 12
  %513 = load ptr, ptr %512, align 8, !tbaa !13
  %514 = load i32, ptr %12, align 4, !tbaa !12
  %515 = mul nsw i32 %514, 2
  %516 = add nsw i32 %515, 0
  %517 = sext i32 %516 to i64
  %518 = getelementptr inbounds i32, ptr %513, i64 %517
  store i32 6, ptr %518, align 4, !tbaa !12
  %519 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %520 = load i32, ptr %12, align 4, !tbaa !12
  %521 = sext i32 %520 to i64
  %522 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %519, i64 noundef %521) #4
  %523 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %522, i32 0, i32 5
  %524 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %523, i64 noundef 0) #4
  %525 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %524) #4
  %526 = trunc i64 %525 to i32
  %527 = load i32, ptr %11, align 4, !tbaa !12
  %528 = add nsw i32 %527, %526
  store i32 %528, ptr %11, align 4, !tbaa !12
  br label %529

529:                                              ; preds = %494, %487
  br label %530

530:                                              ; preds = %529, %323
  br label %531

531:                                              ; preds = %530
  %532 = load i32, ptr %12, align 4, !tbaa !12
  %533 = add nsw i32 %532, 1
  store i32 %533, ptr %12, align 4, !tbaa !12
  br label %55, !llvm.loop !16

534:                                              ; preds = %59
  %535 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %536 = load i32, ptr %6, align 4, !tbaa !12
  %537 = sext i32 %536 to i64
  %538 = mul i64 %537, 1
  %539 = trunc i64 %538 to i32
  %540 = call noundef ptr %535(i32 noundef %539)
  %541 = load ptr, ptr %4, align 8, !tbaa !5
  %542 = getelementptr inbounds %struct.SLuaCallBack, ptr %541, i32 0, i32 7
  store ptr %540, ptr %542, align 8, !tbaa !17
  %543 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %544 = load i32, ptr %7, align 4, !tbaa !12
  %545 = sext i32 %544 to i64
  %546 = mul i64 %545, 4
  %547 = trunc i64 %546 to i32
  %548 = call noundef ptr %543(i32 noundef %547)
  %549 = load ptr, ptr %4, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.SLuaCallBack, ptr %549, i32 0, i32 8
  store ptr %548, ptr %550, align 8, !tbaa !18
  %551 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %552 = load i32, ptr %8, align 4, !tbaa !12
  %553 = sext i32 %552 to i64
  %554 = mul i64 %553, 4
  %555 = trunc i64 %554 to i32
  %556 = call noundef ptr %551(i32 noundef %555)
  %557 = load ptr, ptr %4, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.SLuaCallBack, ptr %557, i32 0, i32 9
  store ptr %556, ptr %558, align 8, !tbaa !19
  %559 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %560 = load i32, ptr %9, align 4, !tbaa !12
  %561 = sext i32 %560 to i64
  %562 = mul i64 %561, 8
  %563 = trunc i64 %562 to i32
  %564 = call noundef ptr %559(i32 noundef %563)
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.SLuaCallBack, ptr %565, i32 0, i32 18
  store ptr %564, ptr %566, align 8, !tbaa !20
  %567 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %568 = load i32, ptr %10, align 4, !tbaa !12
  %569 = sext i32 %568 to i64
  %570 = mul i64 %569, 1
  %571 = trunc i64 %570 to i32
  %572 = call noundef ptr %567(i32 noundef %571)
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.SLuaCallBack, ptr %573, i32 0, i32 10
  store ptr %572, ptr %574, align 8, !tbaa !21
  %575 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %576 = load i32, ptr %11, align 4, !tbaa !12
  %577 = sext i32 %576 to i64
  %578 = mul i64 %577, 1
  %579 = trunc i64 %578 to i32
  %580 = call noundef ptr %575(i32 noundef %579)
  %581 = load ptr, ptr %4, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.SLuaCallBack, ptr %581, i32 0, i32 15
  store ptr %580, ptr %582, align 8, !tbaa !22
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 0, ptr %15, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  store i32 0, ptr %16, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 0, ptr %17, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  store i32 0, ptr %18, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 0, ptr %20, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 0, ptr %21, align 4, !tbaa !12
  br label %583

583:                                              ; preds = %1015, %534
  %584 = load i32, ptr %21, align 4, !tbaa !12
  %585 = load i32, ptr %5, align 4, !tbaa !12
  %586 = icmp slt i32 %584, %585
  br i1 %586, label %588, label %587

587:                                              ; preds = %583
  store i32 8, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  br label %1018

588:                                              ; preds = %583
  %589 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %590 = load i32, ptr %21, align 4, !tbaa !12
  %591 = sext i32 %590 to i64
  %592 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %589, i64 noundef %591) #4
  %593 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %592)
  br i1 %593, label %594, label %829

594:                                              ; preds = %588
  %595 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %596 = load i32, ptr %21, align 4, !tbaa !12
  %597 = sext i32 %596 to i64
  %598 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %595, i64 noundef %597) #4
  %599 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %598)
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %601, label %639

601:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !12
  br label %602

602:                                              ; preds = %635, %601
  %603 = load i32, ptr %22, align 4, !tbaa !12
  %604 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %605 = load i32, ptr %21, align 4, !tbaa !12
  %606 = sext i32 %605 to i64
  %607 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %604, i64 noundef %606) #4
  %608 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %607, i32 0, i32 1
  %609 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %608) #4
  %610 = trunc i64 %609 to i32
  %611 = icmp slt i32 %603, %610
  br i1 %611, label %613, label %612

612:                                              ; preds = %602
  store i32 11, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  br label %638

613:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #4
  %614 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %615 = load i32, ptr %21, align 4, !tbaa !12
  %616 = sext i32 %615 to i64
  %617 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %614, i64 noundef %616) #4
  %618 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %617, i32 0, i32 1
  %619 = load i32, ptr %22, align 4, !tbaa !12
  %620 = sext i32 %619 to i64
  %621 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %618, i64 noundef %620)
  %622 = getelementptr inbounds { ptr, i64 }, ptr %23, i32 0, i32 0
  %623 = extractvalue { ptr, i64 } %621, 0
  store ptr %623, ptr %622, align 8
  %624 = getelementptr inbounds { ptr, i64 }, ptr %23, i32 0, i32 1
  %625 = extractvalue { ptr, i64 } %621, 1
  store i64 %625, ptr %624, align 8
  %626 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23) #4
  %627 = zext i1 %626 to i8
  %628 = load ptr, ptr %4, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.SLuaCallBack, ptr %628, i32 0, i32 7
  %630 = load ptr, ptr %629, align 8, !tbaa !17
  %631 = load i32, ptr %15, align 4, !tbaa !12
  %632 = add nsw i32 %631, 1
  store i32 %632, ptr %15, align 4, !tbaa !12
  %633 = sext i32 %631 to i64
  %634 = getelementptr inbounds i8, ptr %630, i64 %633
  store i8 %627, ptr %634, align 1, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #4
  br label %635

635:                                              ; preds = %613
  %636 = load i32, ptr %22, align 4, !tbaa !12
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr %22, align 4, !tbaa !12
  br label %602, !llvm.loop !24

638:                                              ; preds = %612
  br label %639

639:                                              ; preds = %638, %594
  %640 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %641 = load i32, ptr %21, align 4, !tbaa !12
  %642 = sext i32 %641 to i64
  %643 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %640, i64 noundef %642) #4
  %644 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %643)
  %645 = icmp eq i32 %644, 1
  br i1 %645, label %646, label %679

646:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 0, ptr %24, align 4, !tbaa !12
  br label %647

647:                                              ; preds = %675, %646
  %648 = load i32, ptr %24, align 4, !tbaa !12
  %649 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %650 = load i32, ptr %21, align 4, !tbaa !12
  %651 = sext i32 %650 to i64
  %652 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %649, i64 noundef %651) #4
  %653 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %652, i32 0, i32 2
  %654 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %653) #4
  %655 = trunc i64 %654 to i32
  %656 = icmp slt i32 %648, %655
  br i1 %656, label %658, label %657

657:                                              ; preds = %647
  store i32 14, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %678

658:                                              ; preds = %647
  %659 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %660 = load i32, ptr %21, align 4, !tbaa !12
  %661 = sext i32 %660 to i64
  %662 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %659, i64 noundef %661) #4
  %663 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %662, i32 0, i32 2
  %664 = load i32, ptr %24, align 4, !tbaa !12
  %665 = sext i32 %664 to i64
  %666 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %663, i64 noundef %665) #4
  %667 = load i32, ptr %666, align 4, !tbaa !12
  %668 = load ptr, ptr %4, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.SLuaCallBack, ptr %668, i32 0, i32 8
  %670 = load ptr, ptr %669, align 8, !tbaa !18
  %671 = load i32, ptr %16, align 4, !tbaa !12
  %672 = add nsw i32 %671, 1
  store i32 %672, ptr %16, align 4, !tbaa !12
  %673 = sext i32 %671 to i64
  %674 = getelementptr inbounds i32, ptr %670, i64 %673
  store i32 %667, ptr %674, align 4, !tbaa !12
  br label %675

675:                                              ; preds = %658
  %676 = load i32, ptr %24, align 4, !tbaa !12
  %677 = add nsw i32 %676, 1
  store i32 %677, ptr %24, align 4, !tbaa !12
  br label %647, !llvm.loop !25

678:                                              ; preds = %657
  br label %679

679:                                              ; preds = %678, %639
  %680 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %681 = load i32, ptr %21, align 4, !tbaa !12
  %682 = sext i32 %681 to i64
  %683 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %680, i64 noundef %682) #4
  %684 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %683)
  %685 = icmp eq i32 %684, 2
  br i1 %685, label %686, label %719

686:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  store i32 0, ptr %25, align 4, !tbaa !12
  br label %687

687:                                              ; preds = %715, %686
  %688 = load i32, ptr %25, align 4, !tbaa !12
  %689 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %690 = load i32, ptr %21, align 4, !tbaa !12
  %691 = sext i32 %690 to i64
  %692 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %689, i64 noundef %691) #4
  %693 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %692, i32 0, i32 3
  %694 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %693) #4
  %695 = trunc i64 %694 to i32
  %696 = icmp slt i32 %688, %695
  br i1 %696, label %698, label %697

697:                                              ; preds = %687
  store i32 17, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  br label %718

698:                                              ; preds = %687
  %699 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %700 = load i32, ptr %21, align 4, !tbaa !12
  %701 = sext i32 %700 to i64
  %702 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef %701) #4
  %703 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %702, i32 0, i32 3
  %704 = load i32, ptr %25, align 4, !tbaa !12
  %705 = sext i32 %704 to i64
  %706 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %703, i64 noundef %705) #4
  %707 = load float, ptr %706, align 4, !tbaa !26
  %708 = load ptr, ptr %4, align 8, !tbaa !5
  %709 = getelementptr inbounds %struct.SLuaCallBack, ptr %708, i32 0, i32 9
  %710 = load ptr, ptr %709, align 8, !tbaa !19
  %711 = load i32, ptr %17, align 4, !tbaa !12
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr %17, align 4, !tbaa !12
  %713 = sext i32 %711 to i64
  %714 = getelementptr inbounds float, ptr %710, i64 %713
  store float %707, ptr %714, align 4, !tbaa !26
  br label %715

715:                                              ; preds = %698
  %716 = load i32, ptr %25, align 4, !tbaa !12
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr %25, align 4, !tbaa !12
  br label %687, !llvm.loop !28

718:                                              ; preds = %697
  br label %719

719:                                              ; preds = %718, %679
  %720 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %721 = load i32, ptr %21, align 4, !tbaa !12
  %722 = sext i32 %721 to i64
  %723 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %720, i64 noundef %722) #4
  %724 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %723)
  %725 = icmp eq i32 %724, 5
  br i1 %725, label %726, label %759

726:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  store i32 0, ptr %26, align 4, !tbaa !12
  br label %727

727:                                              ; preds = %755, %726
  %728 = load i32, ptr %26, align 4, !tbaa !12
  %729 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %730 = load i32, ptr %21, align 4, !tbaa !12
  %731 = sext i32 %730 to i64
  %732 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %729, i64 noundef %731) #4
  %733 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %732, i32 0, i32 4
  %734 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %733) #4
  %735 = trunc i64 %734 to i32
  %736 = icmp slt i32 %728, %735
  br i1 %736, label %738, label %737

737:                                              ; preds = %727
  store i32 20, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  br label %758

738:                                              ; preds = %727
  %739 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %740 = load i32, ptr %21, align 4, !tbaa !12
  %741 = sext i32 %740 to i64
  %742 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %739, i64 noundef %741) #4
  %743 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %742, i32 0, i32 4
  %744 = load i32, ptr %26, align 4, !tbaa !12
  %745 = sext i32 %744 to i64
  %746 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %743, i64 noundef %745) #4
  %747 = load double, ptr %746, align 8, !tbaa !29
  %748 = load ptr, ptr %4, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.SLuaCallBack, ptr %748, i32 0, i32 18
  %750 = load ptr, ptr %749, align 8, !tbaa !20
  %751 = load i32, ptr %18, align 4, !tbaa !12
  %752 = add nsw i32 %751, 1
  store i32 %752, ptr %18, align 4, !tbaa !12
  %753 = sext i32 %751 to i64
  %754 = getelementptr inbounds double, ptr %750, i64 %753
  store double %747, ptr %754, align 8, !tbaa !29
  br label %755

755:                                              ; preds = %738
  %756 = load i32, ptr %26, align 4, !tbaa !12
  %757 = add nsw i32 %756, 1
  store i32 %757, ptr %26, align 4, !tbaa !12
  br label %727, !llvm.loop !31

758:                                              ; preds = %737
  br label %759

759:                                              ; preds = %758, %719
  %760 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %761 = load i32, ptr %21, align 4, !tbaa !12
  %762 = sext i32 %761 to i64
  %763 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %760, i64 noundef %762) #4
  %764 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %763)
  %765 = icmp eq i32 %764, 3
  br i1 %765, label %766, label %828

766:                                              ; preds = %759
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 0, ptr %27, align 4, !tbaa !12
  br label %767

767:                                              ; preds = %824, %766
  %768 = load i32, ptr %27, align 4, !tbaa !12
  %769 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %770 = load i32, ptr %21, align 4, !tbaa !12
  %771 = sext i32 %770 to i64
  %772 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %769, i64 noundef %771) #4
  %773 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %772, i32 0, i32 5
  %774 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %773) #4
  %775 = trunc i64 %774 to i32
  %776 = icmp slt i32 %768, %775
  br i1 %776, label %778, label %777

777:                                              ; preds = %767
  store i32 23, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %827

778:                                              ; preds = %767
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  store i32 0, ptr %28, align 4, !tbaa !12
  br label %779

779:                                              ; preds = %813, %778
  %780 = load i32, ptr %28, align 4, !tbaa !12
  %781 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %782 = load i32, ptr %21, align 4, !tbaa !12
  %783 = sext i32 %782 to i64
  %784 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %781, i64 noundef %783) #4
  %785 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %784, i32 0, i32 5
  %786 = load i32, ptr %27, align 4, !tbaa !12
  %787 = sext i32 %786 to i64
  %788 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %785, i64 noundef %787) #4
  %789 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %788) #4
  %790 = trunc i64 %789 to i32
  %791 = icmp slt i32 %780, %790
  br i1 %791, label %793, label %792

792:                                              ; preds = %779
  store i32 26, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  br label %816

793:                                              ; preds = %779
  %794 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %795 = load i32, ptr %21, align 4, !tbaa !12
  %796 = sext i32 %795 to i64
  %797 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %794, i64 noundef %796) #4
  %798 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %797, i32 0, i32 5
  %799 = load i32, ptr %27, align 4, !tbaa !12
  %800 = sext i32 %799 to i64
  %801 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %798, i64 noundef %800) #4
  %802 = load i32, ptr %28, align 4, !tbaa !12
  %803 = sext i32 %802 to i64
  %804 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %801, i64 noundef %803)
  %805 = load i8, ptr %804, align 1, !tbaa !23
  %806 = load ptr, ptr %4, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.SLuaCallBack, ptr %806, i32 0, i32 10
  %808 = load ptr, ptr %807, align 8, !tbaa !21
  %809 = load i32, ptr %19, align 4, !tbaa !12
  %810 = add nsw i32 %809, 1
  store i32 %810, ptr %19, align 4, !tbaa !12
  %811 = sext i32 %809 to i64
  %812 = getelementptr inbounds i8, ptr %808, i64 %811
  store i8 %805, ptr %812, align 1, !tbaa !23
  br label %813

813:                                              ; preds = %793
  %814 = load i32, ptr %28, align 4, !tbaa !12
  %815 = add nsw i32 %814, 1
  store i32 %815, ptr %28, align 4, !tbaa !12
  br label %779, !llvm.loop !32

816:                                              ; preds = %792
  %817 = load ptr, ptr %4, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.SLuaCallBack, ptr %817, i32 0, i32 10
  %819 = load ptr, ptr %818, align 8, !tbaa !21
  %820 = load i32, ptr %19, align 4, !tbaa !12
  %821 = add nsw i32 %820, 1
  store i32 %821, ptr %19, align 4, !tbaa !12
  %822 = sext i32 %820 to i64
  %823 = getelementptr inbounds i8, ptr %819, i64 %822
  store i8 0, ptr %823, align 1, !tbaa !23
  br label %824

824:                                              ; preds = %816
  %825 = load i32, ptr %27, align 4, !tbaa !12
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr %27, align 4, !tbaa !12
  br label %767, !llvm.loop !33

827:                                              ; preds = %777
  br label %828

828:                                              ; preds = %827, %759
  br label %1014

829:                                              ; preds = %588
  %830 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %831 = load i32, ptr %21, align 4, !tbaa !12
  %832 = sext i32 %831 to i64
  %833 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %830, i64 noundef %832) #4
  %834 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %833)
  %835 = icmp eq i32 %834, 0
  br i1 %835, label %836, label %856

836:                                              ; preds = %829
  call void @llvm.lifetime.start.p0(i64 16, ptr %29) #4
  %837 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %838 = load i32, ptr %21, align 4, !tbaa !12
  %839 = sext i32 %838 to i64
  %840 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %837, i64 noundef %839) #4
  %841 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %840, i32 0, i32 1
  %842 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %841, i64 noundef 0)
  %843 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 0
  %844 = extractvalue { ptr, i64 } %842, 0
  store ptr %844, ptr %843, align 8
  %845 = getelementptr inbounds { ptr, i64 }, ptr %29, i32 0, i32 1
  %846 = extractvalue { ptr, i64 } %842, 1
  store i64 %846, ptr %845, align 8
  %847 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %29) #4
  %848 = zext i1 %847 to i8
  %849 = load ptr, ptr %4, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.SLuaCallBack, ptr %849, i32 0, i32 7
  %851 = load ptr, ptr %850, align 8, !tbaa !17
  %852 = load i32, ptr %15, align 4, !tbaa !12
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr %15, align 4, !tbaa !12
  %854 = sext i32 %852 to i64
  %855 = getelementptr inbounds i8, ptr %851, i64 %854
  store i8 %848, ptr %855, align 1, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 16, ptr %29) #4
  br label %856

856:                                              ; preds = %836, %829
  %857 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %858 = load i32, ptr %21, align 4, !tbaa !12
  %859 = sext i32 %858 to i64
  %860 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %857, i64 noundef %859) #4
  %861 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %860)
  %862 = icmp eq i32 %861, 1
  br i1 %862, label %863, label %878

863:                                              ; preds = %856
  %864 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %865 = load i32, ptr %21, align 4, !tbaa !12
  %866 = sext i32 %865 to i64
  %867 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %864, i64 noundef %866) #4
  %868 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %867, i32 0, i32 2
  %869 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %868, i64 noundef 0) #4
  %870 = load i32, ptr %869, align 4, !tbaa !12
  %871 = load ptr, ptr %4, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.SLuaCallBack, ptr %871, i32 0, i32 8
  %873 = load ptr, ptr %872, align 8, !tbaa !18
  %874 = load i32, ptr %16, align 4, !tbaa !12
  %875 = add nsw i32 %874, 1
  store i32 %875, ptr %16, align 4, !tbaa !12
  %876 = sext i32 %874 to i64
  %877 = getelementptr inbounds i32, ptr %873, i64 %876
  store i32 %870, ptr %877, align 4, !tbaa !12
  br label %878

878:                                              ; preds = %863, %856
  %879 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %880 = load i32, ptr %21, align 4, !tbaa !12
  %881 = sext i32 %880 to i64
  %882 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %879, i64 noundef %881) #4
  %883 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %882)
  %884 = icmp eq i32 %883, 2
  br i1 %884, label %885, label %900

885:                                              ; preds = %878
  %886 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %887 = load i32, ptr %21, align 4, !tbaa !12
  %888 = sext i32 %887 to i64
  %889 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %886, i64 noundef %888) #4
  %890 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %889, i32 0, i32 3
  %891 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %890, i64 noundef 0) #4
  %892 = load float, ptr %891, align 4, !tbaa !26
  %893 = load ptr, ptr %4, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.SLuaCallBack, ptr %893, i32 0, i32 9
  %895 = load ptr, ptr %894, align 8, !tbaa !19
  %896 = load i32, ptr %17, align 4, !tbaa !12
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr %17, align 4, !tbaa !12
  %898 = sext i32 %896 to i64
  %899 = getelementptr inbounds float, ptr %895, i64 %898
  store float %892, ptr %899, align 4, !tbaa !26
  br label %900

900:                                              ; preds = %885, %878
  %901 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %902 = load i32, ptr %21, align 4, !tbaa !12
  %903 = sext i32 %902 to i64
  %904 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %901, i64 noundef %903) #4
  %905 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %904)
  %906 = icmp eq i32 %905, 5
  br i1 %906, label %907, label %922

907:                                              ; preds = %900
  %908 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %909 = load i32, ptr %21, align 4, !tbaa !12
  %910 = sext i32 %909 to i64
  %911 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %908, i64 noundef %910) #4
  %912 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %911, i32 0, i32 4
  %913 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %912, i64 noundef 0) #4
  %914 = load double, ptr %913, align 8, !tbaa !29
  %915 = load ptr, ptr %4, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.SLuaCallBack, ptr %915, i32 0, i32 18
  %917 = load ptr, ptr %916, align 8, !tbaa !20
  %918 = load i32, ptr %18, align 4, !tbaa !12
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr %18, align 4, !tbaa !12
  %920 = sext i32 %918 to i64
  %921 = getelementptr inbounds double, ptr %917, i64 %920
  store double %914, ptr %921, align 8, !tbaa !29
  br label %922

922:                                              ; preds = %907, %900
  %923 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %924 = load i32, ptr %21, align 4, !tbaa !12
  %925 = sext i32 %924 to i64
  %926 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %923, i64 noundef %925) #4
  %927 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %926)
  %928 = icmp eq i32 %927, 3
  br i1 %928, label %929, label %971

929:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  store i32 0, ptr %30, align 4, !tbaa !12
  br label %930

930:                                              ; preds = %960, %929
  %931 = load i32, ptr %30, align 4, !tbaa !12
  %932 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %933 = load i32, ptr %21, align 4, !tbaa !12
  %934 = sext i32 %933 to i64
  %935 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %932, i64 noundef %934) #4
  %936 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %935, i32 0, i32 5
  %937 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %936, i64 noundef 0) #4
  %938 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %937) #4
  %939 = trunc i64 %938 to i32
  %940 = icmp slt i32 %931, %939
  br i1 %940, label %942, label %941

941:                                              ; preds = %930
  store i32 29, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br label %963

942:                                              ; preds = %930
  %943 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %944 = load i32, ptr %21, align 4, !tbaa !12
  %945 = sext i32 %944 to i64
  %946 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %943, i64 noundef %945) #4
  %947 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %946, i32 0, i32 5
  %948 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %947, i64 noundef 0) #4
  %949 = load i32, ptr %30, align 4, !tbaa !12
  %950 = sext i32 %949 to i64
  %951 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %948, i64 noundef %950)
  %952 = load i8, ptr %951, align 1, !tbaa !23
  %953 = load ptr, ptr %4, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.SLuaCallBack, ptr %953, i32 0, i32 10
  %955 = load ptr, ptr %954, align 8, !tbaa !21
  %956 = load i32, ptr %19, align 4, !tbaa !12
  %957 = add nsw i32 %956, 1
  store i32 %957, ptr %19, align 4, !tbaa !12
  %958 = sext i32 %956 to i64
  %959 = getelementptr inbounds i8, ptr %955, i64 %958
  store i8 %952, ptr %959, align 1, !tbaa !23
  br label %960

960:                                              ; preds = %942
  %961 = load i32, ptr %30, align 4, !tbaa !12
  %962 = add nsw i32 %961, 1
  store i32 %962, ptr %30, align 4, !tbaa !12
  br label %930, !llvm.loop !34

963:                                              ; preds = %941
  %964 = load ptr, ptr %4, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.SLuaCallBack, ptr %964, i32 0, i32 10
  %966 = load ptr, ptr %965, align 8, !tbaa !21
  %967 = load i32, ptr %19, align 4, !tbaa !12
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr %19, align 4, !tbaa !12
  %969 = sext i32 %967 to i64
  %970 = getelementptr inbounds i8, ptr %966, i64 %969
  store i8 0, ptr %970, align 1, !tbaa !23
  br label %971

971:                                              ; preds = %963, %922
  %972 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %973 = load i32, ptr %21, align 4, !tbaa !12
  %974 = sext i32 %973 to i64
  %975 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %972, i64 noundef %974) #4
  %976 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %975)
  %977 = icmp eq i32 %976, 4
  br i1 %977, label %978, label %1013

978:                                              ; preds = %971
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  store i32 0, ptr %31, align 4, !tbaa !12
  br label %979

979:                                              ; preds = %1009, %978
  %980 = load i32, ptr %31, align 4, !tbaa !12
  %981 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %982 = load i32, ptr %21, align 4, !tbaa !12
  %983 = sext i32 %982 to i64
  %984 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %981, i64 noundef %983) #4
  %985 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %984, i32 0, i32 5
  %986 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %985, i64 noundef 0) #4
  %987 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %986) #4
  %988 = trunc i64 %987 to i32
  %989 = icmp slt i32 %980, %988
  br i1 %989, label %991, label %990

990:                                              ; preds = %979
  store i32 32, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %1012

991:                                              ; preds = %979
  %992 = getelementptr inbounds %class.CLuaFunctionData, ptr %32, i32 0, i32 2
  %993 = load i32, ptr %21, align 4, !tbaa !12
  %994 = sext i32 %993 to i64
  %995 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %992, i64 noundef %994) #4
  %996 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %995, i32 0, i32 5
  %997 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %996, i64 noundef 0) #4
  %998 = load i32, ptr %31, align 4, !tbaa !12
  %999 = sext i32 %998 to i64
  %1000 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %997, i64 noundef %999)
  %1001 = load i8, ptr %1000, align 1, !tbaa !23
  %1002 = load ptr, ptr %4, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.SLuaCallBack, ptr %1002, i32 0, i32 15
  %1004 = load ptr, ptr %1003, align 8, !tbaa !22
  %1005 = load i32, ptr %20, align 4, !tbaa !12
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr %20, align 4, !tbaa !12
  %1007 = sext i32 %1005 to i64
  %1008 = getelementptr inbounds i8, ptr %1004, i64 %1007
  store i8 %1001, ptr %1008, align 1, !tbaa !23
  br label %1009

1009:                                             ; preds = %991
  %1010 = load i32, ptr %31, align 4, !tbaa !12
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr %31, align 4, !tbaa !12
  br label %979, !llvm.loop !35

1012:                                             ; preds = %990
  br label %1013

1013:                                             ; preds = %1012, %971
  br label %1014

1014:                                             ; preds = %1013, %828
  br label %1015

1015:                                             ; preds = %1014
  %1016 = load i32, ptr %21, align 4, !tbaa !12
  %1017 = add nsw i32 %1016, 1
  store i32 %1017, ptr %21, align 4, !tbaa !12
  br label %583, !llvm.loop !36

1018:                                             ; preds = %587
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  br label %1019

1019:                                             ; preds = %1018, %2
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  ret void
}

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

declare noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156)) #3

declare noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156)) #3

declare noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156)) #3

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) #1 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 = { "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 = { 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, !11, i64 88}
!10 = !{!"_ZTS12SLuaCallBack", !11, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !11, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !11, i64 88, !6, i64 96, !7, i64 104, !6, i64 112, !6, i64 120, !11, i64 128, !6, i64 136, !6, i64 144}
!11 = !{!"int", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = !{!10, !6, i64 96}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = distinct !{!16, !15}
!17 = !{!10, !6, i64 56}
!18 = !{!10, !6, i64 64}
!19 = !{!10, !6, i64 72}
!20 = !{!10, !6, i64 144}
!21 = !{!10, !6, i64 80}
!22 = !{!10, !6, i64 120}
!23 = !{!7, !7, i64 0}
!24 = distinct !{!24, !15}
!25 = distinct !{!25, !15}
!26 = !{!27, !27, i64 0}
!27 = !{!"float", !7, i64 0}
!28 = distinct !{!28, !15}
!29 = !{!30, !30, i64 0}
!30 = !{!"double", !7, i64 0}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = distinct !{!33, !15}
!34 = distinct !{!34, !15}
!35 = distinct !{!35, !15}
!36 = distinct !{!36, !15}


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

%"struct.std::_Bit_reference" = type { ptr, i64 }

@simCreateBuffer = external local_unnamed_addr global ptr, align 8

; 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 nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CLuaFunctionData14writeDataToLuaEP12SLuaCallBack(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr nocapture noundef %1) local_unnamed_addr #2 align 2 {
  %3 = alloca %"struct.std::_Bit_reference", align 8
  %4 = alloca %"struct.std::_Bit_reference", align 8
  %5 = getelementptr inbounds i8, ptr %1, i64 88
  store i32 0, ptr %5, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 32
  %7 = tail call noundef i64 @_ZNKSt6vectorI20CLuaFunctionDataItemSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #4
  %8 = trunc i64 %7 to i32
  %9 = icmp sgt i32 %8, 0
  br i1 %9, label %10, label %.loopexit274

10:                                               ; preds = %2
  store i32 %8, ptr %5, align 8, !tbaa !5
  %11 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %12 = shl i32 %8, 3
  %13 = tail call noundef ptr %11(i32 noundef %12)
  %14 = getelementptr inbounds i8, ptr %1, i64 96
  store ptr %13, ptr %14, align 8, !tbaa !12
  %wide.trip.count = and i64 %7, 2147483647
  br label %38

.lr.ph325:                                        ; preds = %.loopexit275
  %15 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %16 = tail call noundef ptr %15(i32 noundef %.3260)
  %17 = getelementptr inbounds i8, ptr %1, i64 56
  store ptr %16, ptr %17, align 8, !tbaa !13
  %18 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %19 = shl i32 %.3256, 2
  %20 = tail call noundef ptr %18(i32 noundef %19)
  %21 = getelementptr inbounds i8, ptr %1, i64 64
  store ptr %20, ptr %21, align 8, !tbaa !14
  %22 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %23 = shl i32 %.3252, 2
  %24 = tail call noundef ptr %22(i32 noundef %23)
  %25 = getelementptr inbounds i8, ptr %1, i64 72
  store ptr %24, ptr %25, align 8, !tbaa !15
  %26 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %27 = shl i32 %.3248, 3
  %28 = tail call noundef ptr %26(i32 noundef %27)
  %29 = getelementptr inbounds i8, ptr %1, i64 144
  store ptr %28, ptr %29, align 8, !tbaa !16
  %30 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %31 = tail call noundef ptr %30(i32 noundef %.3244)
  %32 = getelementptr inbounds i8, ptr %1, i64 80
  store ptr %31, ptr %32, align 8, !tbaa !17
  %33 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !11
  %34 = tail call noundef ptr %33(i32 noundef %.1240)
  %35 = getelementptr inbounds i8, ptr %1, i64 120
  store ptr %34, ptr %35, align 8, !tbaa !18
  %36 = getelementptr inbounds i8, ptr %4, i64 8
  %37 = getelementptr inbounds i8, ptr %3, i64 8
  br label %239

38:                                               ; preds = %10, %.loopexit275
  %indvars.iv336 = phi i64 [ 0, %10 ], [ %indvars.iv.next337, %.loopexit275 ]
  %.0239283 = phi i32 [ 0, %10 ], [ %.1240, %.loopexit275 ]
  %.0241282 = phi i32 [ 0, %10 ], [ %.3244, %.loopexit275 ]
  %.0245281 = phi i32 [ 0, %10 ], [ %.3248, %.loopexit275 ]
  %.0249280 = phi i32 [ 0, %10 ], [ %.3252, %.loopexit275 ]
  %.0253279 = phi i32 [ 0, %10 ], [ %.3256, %.loopexit275 ]
  %.0257278 = phi i32 [ 0, %10 ], [ %.3260, %.loopexit275 ]
  %39 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %40 = tail call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %39)
  %41 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %42 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %41)
  %43 = icmp eq i32 %42, -1
  br i1 %40, label %44, label %150

44:                                               ; preds = %38
  br i1 %43, label %45, label %54

45:                                               ; preds = %44
  %46 = load ptr, ptr %14, align 8, !tbaa !12
  %47 = shl nuw nsw i64 %indvars.iv336, 1
  %48 = getelementptr inbounds i32, ptr %46, i64 %47
  store i32 8, ptr %48, align 4, !tbaa !19
  %49 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %50 = tail call noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156) %49)
  %51 = load ptr, ptr %14, align 8, !tbaa !12
  %52 = or disjoint i64 %47, 1
  %53 = getelementptr inbounds i32, ptr %51, i64 %52
  store i32 %50, ptr %53, align 4, !tbaa !19
  br label %54

54:                                               ; preds = %45, %44
  %55 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %56 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %55)
  %57 = icmp eq i32 %56, 0
  br i1 %57, label %58, label %70

58:                                               ; preds = %54
  %59 = load ptr, ptr %14, align 8, !tbaa !12
  %60 = shl nuw nsw i64 %indvars.iv336, 1
  %61 = getelementptr inbounds i32, ptr %59, i64 %60
  store i32 9, ptr %61, align 4, !tbaa !19
  %62 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %63 = getelementptr inbounds i8, ptr %62, i64 8
  %64 = tail call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %63) #4
  %65 = trunc i64 %64 to i32
  %66 = load ptr, ptr %14, align 8, !tbaa !12
  %67 = or disjoint i64 %60, 1
  %68 = getelementptr inbounds i32, ptr %66, i64 %67
  store i32 %65, ptr %68, align 4, !tbaa !19
  %69 = add nsw i32 %.0257278, %65
  br label %70

70:                                               ; preds = %58, %54
  %.1258 = phi i32 [ %69, %58 ], [ %.0257278, %54 ]
  %71 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %72 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %71)
  %73 = icmp eq i32 %72, 1
  br i1 %73, label %74, label %86

74:                                               ; preds = %70
  %75 = load ptr, ptr %14, align 8, !tbaa !12
  %76 = shl nuw nsw i64 %indvars.iv336, 1
  %77 = getelementptr inbounds i32, ptr %75, i64 %76
  store i32 10, ptr %77, align 4, !tbaa !19
  %78 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %79 = getelementptr inbounds i8, ptr %78, i64 48
  %80 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %79) #4
  %81 = trunc i64 %80 to i32
  %82 = load ptr, ptr %14, align 8, !tbaa !12
  %83 = or disjoint i64 %76, 1
  %84 = getelementptr inbounds i32, ptr %82, i64 %83
  store i32 %81, ptr %84, align 4, !tbaa !19
  %85 = add nsw i32 %.0253279, %81
  br label %86

86:                                               ; preds = %74, %70
  %.1254 = phi i32 [ %85, %74 ], [ %.0253279, %70 ]
  %87 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %88 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %87)
  %89 = icmp eq i32 %88, 2
  br i1 %89, label %90, label %102

90:                                               ; preds = %86
  %91 = load ptr, ptr %14, align 8, !tbaa !12
  %92 = shl nuw nsw i64 %indvars.iv336, 1
  %93 = getelementptr inbounds i32, ptr %91, i64 %92
  store i32 11, ptr %93, align 4, !tbaa !19
  %94 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %95 = getelementptr inbounds i8, ptr %94, i64 72
  %96 = tail call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %95) #4
  %97 = trunc i64 %96 to i32
  %98 = load ptr, ptr %14, align 8, !tbaa !12
  %99 = or disjoint i64 %92, 1
  %100 = getelementptr inbounds i32, ptr %98, i64 %99
  store i32 %97, ptr %100, align 4, !tbaa !19
  %101 = add nsw i32 %.0249280, %97
  br label %102

102:                                              ; preds = %90, %86
  %.1250 = phi i32 [ %101, %90 ], [ %.0249280, %86 ]
  %103 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %104 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %103)
  %105 = icmp eq i32 %104, 5
  br i1 %105, label %106, label %118

106:                                              ; preds = %102
  %107 = load ptr, ptr %14, align 8, !tbaa !12
  %108 = shl nuw nsw i64 %indvars.iv336, 1
  %109 = getelementptr inbounds i32, ptr %107, i64 %108
  store i32 15, ptr %109, align 4, !tbaa !19
  %110 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %111 = getelementptr inbounds i8, ptr %110, i64 96
  %112 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #4
  %113 = trunc i64 %112 to i32
  %114 = load ptr, ptr %14, align 8, !tbaa !12
  %115 = or disjoint i64 %108, 1
  %116 = getelementptr inbounds i32, ptr %114, i64 %115
  store i32 %113, ptr %116, align 4, !tbaa !19
  %117 = add nsw i32 %.0245281, %113
  br label %118

118:                                              ; preds = %106, %102
  %.1246 = phi i32 [ %117, %106 ], [ %.0245281, %102 ]
  %119 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %120 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %119)
  %121 = icmp eq i32 %120, 3
  br i1 %121, label %122, label %.loopexit275

122:                                              ; preds = %118
  %123 = load ptr, ptr %14, align 8, !tbaa !12
  %124 = shl nuw nsw i64 %indvars.iv336, 1
  %125 = getelementptr inbounds i32, ptr %123, i64 %124
  store i32 12, ptr %125, align 4, !tbaa !19
  %126 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %127 = getelementptr inbounds i8, ptr %126, i64 120
  %128 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %127) #4
  %129 = trunc i64 %128 to i32
  %130 = load ptr, ptr %14, align 8, !tbaa !12
  %131 = or disjoint i64 %124, 1
  %132 = getelementptr inbounds i32, ptr %130, i64 %131
  store i32 %129, ptr %132, align 4, !tbaa !19
  %133 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %134 = getelementptr inbounds i8, ptr %133, i64 120
  %135 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #4
  %136 = trunc i64 %135 to i32
  %137 = icmp sgt i32 %136, 0
  br i1 %137, label %.lr.ph, label %.loopexit275

.lr.ph:                                           ; preds = %122, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %122 ]
  %.1242276 = phi i32 [ %144, %.lr.ph ], [ %.0241282, %122 ]
  %138 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %139 = getelementptr inbounds i8, ptr %138, i64 120
  %140 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %indvars.iv) #4
  %141 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %140) #4
  %142 = trunc i64 %141 to i32
  %143 = add i32 %.1242276, 1
  %144 = add i32 %143, %142
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %145 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %146 = getelementptr inbounds i8, ptr %145, i64 120
  %147 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %146) #4
  %sext = shl i64 %147, 32
  %148 = ashr exact i64 %sext, 32
  %149 = icmp slt i64 %indvars.iv.next, %148
  br i1 %149, label %.lr.ph, label %.loopexit275, !llvm.loop !20

150:                                              ; preds = %38
  br i1 %43, label %151, label %157

151:                                              ; preds = %150
  %152 = load ptr, ptr %14, align 8, !tbaa !12
  %153 = shl nuw nsw i64 %indvars.iv336, 1
  %154 = or disjoint i64 %153, 1
  %155 = getelementptr inbounds i32, ptr %152, i64 %154
  store i32 0, ptr %155, align 4, !tbaa !19
  %156 = getelementptr inbounds i32, ptr %152, i64 %153
  store i32 0, ptr %156, align 4, !tbaa !19
  br label %157

157:                                              ; preds = %151, %150
  %158 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %159 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %158)
  %160 = icmp eq i32 %159, 0
  br i1 %160, label %161, label %168

161:                                              ; preds = %157
  %162 = load ptr, ptr %14, align 8, !tbaa !12
  %163 = shl nuw nsw i64 %indvars.iv336, 1
  %164 = or disjoint i64 %163, 1
  %165 = getelementptr inbounds i32, ptr %162, i64 %164
  store i32 0, ptr %165, align 4, !tbaa !19
  %166 = getelementptr inbounds i32, ptr %162, i64 %163
  store i32 1, ptr %166, align 4, !tbaa !19
  %167 = add nsw i32 %.0257278, 1
  br label %168

168:                                              ; preds = %161, %157
  %.2259 = phi i32 [ %167, %161 ], [ %.0257278, %157 ]
  %169 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %170 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %169)
  %171 = icmp eq i32 %170, 1
  br i1 %171, label %172, label %179

172:                                              ; preds = %168
  %173 = load ptr, ptr %14, align 8, !tbaa !12
  %174 = shl nuw nsw i64 %indvars.iv336, 1
  %175 = or disjoint i64 %174, 1
  %176 = getelementptr inbounds i32, ptr %173, i64 %175
  store i32 0, ptr %176, align 4, !tbaa !19
  %177 = getelementptr inbounds i32, ptr %173, i64 %174
  store i32 2, ptr %177, align 4, !tbaa !19
  %178 = add nsw i32 %.0253279, 1
  br label %179

179:                                              ; preds = %172, %168
  %.2255 = phi i32 [ %178, %172 ], [ %.0253279, %168 ]
  %180 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %181 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %180)
  %182 = icmp eq i32 %181, 2
  br i1 %182, label %183, label %190

183:                                              ; preds = %179
  %184 = load ptr, ptr %14, align 8, !tbaa !12
  %185 = shl nuw nsw i64 %indvars.iv336, 1
  %186 = or disjoint i64 %185, 1
  %187 = getelementptr inbounds i32, ptr %184, i64 %186
  store i32 0, ptr %187, align 4, !tbaa !19
  %188 = getelementptr inbounds i32, ptr %184, i64 %185
  store i32 3, ptr %188, align 4, !tbaa !19
  %189 = add nsw i32 %.0249280, 1
  br label %190

190:                                              ; preds = %183, %179
  %.2251 = phi i32 [ %189, %183 ], [ %.0249280, %179 ]
  %191 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %192 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %191)
  %193 = icmp eq i32 %192, 5
  br i1 %193, label %194, label %201

194:                                              ; preds = %190
  %195 = load ptr, ptr %14, align 8, !tbaa !12
  %196 = shl nuw nsw i64 %indvars.iv336, 1
  %197 = or disjoint i64 %196, 1
  %198 = getelementptr inbounds i32, ptr %195, i64 %197
  store i32 0, ptr %198, align 4, !tbaa !19
  %199 = getelementptr inbounds i32, ptr %195, i64 %196
  store i32 7, ptr %199, align 4, !tbaa !19
  %200 = add nsw i32 %.0245281, 1
  br label %201

201:                                              ; preds = %194, %190
  %.2247 = phi i32 [ %200, %194 ], [ %.0245281, %190 ]
  %202 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %203 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %202)
  %204 = icmp eq i32 %203, 3
  br i1 %204, label %205, label %218

205:                                              ; preds = %201
  %206 = load ptr, ptr %14, align 8, !tbaa !12
  %207 = shl nuw nsw i64 %indvars.iv336, 1
  %208 = or disjoint i64 %207, 1
  %209 = getelementptr inbounds i32, ptr %206, i64 %208
  store i32 0, ptr %209, align 4, !tbaa !19
  %210 = getelementptr inbounds i32, ptr %206, i64 %207
  store i32 4, ptr %210, align 4, !tbaa !19
  %211 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %212 = getelementptr inbounds i8, ptr %211, i64 120
  %213 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %212, i64 noundef 0) #4
  %214 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %213) #4
  %215 = trunc i64 %214 to i32
  %216 = add i32 %.0241282, 1
  %217 = add i32 %216, %215
  br label %218

218:                                              ; preds = %205, %201
  %.2243 = phi i32 [ %217, %205 ], [ %.0241282, %201 ]
  %219 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %220 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %219)
  %221 = icmp eq i32 %220, 4
  br i1 %221, label %222, label %.loopexit275

222:                                              ; preds = %218
  %223 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %224 = getelementptr inbounds i8, ptr %223, i64 120
  %225 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %224, i64 noundef 0) #4
  %226 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %225) #4
  %227 = trunc i64 %226 to i32
  %228 = load ptr, ptr %14, align 8, !tbaa !12
  %229 = shl nuw nsw i64 %indvars.iv336, 1
  %230 = or disjoint i64 %229, 1
  %231 = getelementptr inbounds i32, ptr %228, i64 %230
  store i32 %227, ptr %231, align 4, !tbaa !19
  %232 = getelementptr inbounds i32, ptr %228, i64 %229
  store i32 6, ptr %232, align 4, !tbaa !19
  %233 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv336) #4
  %234 = getelementptr inbounds i8, ptr %233, i64 120
  %235 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %234, i64 noundef 0) #4
  %236 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %235) #4
  %237 = trunc i64 %236 to i32
  %238 = add nsw i32 %.0239283, %237
  br label %.loopexit275

.loopexit275:                                     ; preds = %.lr.ph, %122, %118, %222, %218
  %.3260 = phi i32 [ %.1258, %118 ], [ %.2259, %222 ], [ %.2259, %218 ], [ %.1258, %122 ], [ %.1258, %.lr.ph ]
  %.3256 = phi i32 [ %.1254, %118 ], [ %.2255, %222 ], [ %.2255, %218 ], [ %.1254, %122 ], [ %.1254, %.lr.ph ]
  %.3252 = phi i32 [ %.1250, %118 ], [ %.2251, %222 ], [ %.2251, %218 ], [ %.1250, %122 ], [ %.1250, %.lr.ph ]
  %.3248 = phi i32 [ %.1246, %118 ], [ %.2247, %222 ], [ %.2247, %218 ], [ %.1246, %122 ], [ %.1246, %.lr.ph ]
  %.3244 = phi i32 [ %.0241282, %118 ], [ %.2243, %222 ], [ %.2243, %218 ], [ %.0241282, %122 ], [ %144, %.lr.ph ]
  %.1240 = phi i32 [ %.0239283, %118 ], [ %238, %222 ], [ %.0239283, %218 ], [ %.0239283, %122 ], [ %.0239283, %.lr.ph ]
  %indvars.iv.next337 = add nuw nsw i64 %indvars.iv336, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next337, %wide.trip.count
  br i1 %exitcond.not, label %.lr.ph325, label %38, !llvm.loop !22

239:                                              ; preds = %.lr.ph325, %.loopexit
  %indvars.iv391 = phi i64 [ 0, %.lr.ph325 ], [ %indvars.iv.next392, %.loopexit ]
  %.0213322 = phi i32 [ 0, %.lr.ph325 ], [ %.2, %.loopexit ]
  %.0214321 = phi i32 [ 0, %.lr.ph325 ], [ %.5, %.loopexit ]
  %.0217320 = phi i32 [ 0, %.lr.ph325 ], [ %.4221, %.loopexit ]
  %.0222319 = phi i32 [ 0, %.lr.ph325 ], [ %.4226, %.loopexit ]
  %.0227318 = phi i32 [ 0, %.lr.ph325 ], [ %.4231, %.loopexit ]
  %.0232317 = phi i32 [ 0, %.lr.ph325 ], [ %.4236, %.loopexit ]
  %240 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %241 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %240)
  %242 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %243 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %242)
  %244 = icmp eq i32 %243, 0
  br i1 %241, label %245, label %368

245:                                              ; preds = %239
  br i1 %244, label %.preheader269, label %.loopexit270

.preheader269:                                    ; preds = %245
  %246 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %247 = getelementptr inbounds i8, ptr %246, i64 8
  %248 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %247) #4
  %249 = trunc i64 %248 to i32
  %250 = icmp sgt i32 %249, 0
  br i1 %250, label %.lr.ph295.preheader, label %.loopexit270

.lr.ph295.preheader:                              ; preds = %.preheader269
  %251 = sext i32 %.0232317 to i64
  br label %.lr.ph295

.lr.ph295:                                        ; preds = %.lr.ph295.preheader, %.lr.ph295
  %indvars.iv355 = phi i64 [ %251, %.lr.ph295.preheader ], [ %indvars.iv.next356, %.lr.ph295 ]
  %indvars.iv353 = phi i64 [ 0, %.lr.ph295.preheader ], [ %indvars.iv.next354, %.lr.ph295 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #4
  %252 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %253 = getelementptr inbounds i8, ptr %252, i64 8
  %254 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %253, i64 noundef %indvars.iv353)
  %255 = extractvalue { ptr, i64 } %254, 0
  store ptr %255, ptr %3, align 8
  %256 = extractvalue { ptr, i64 } %254, 1
  store i64 %256, ptr %37, align 8
  %257 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %3) #4
  %258 = zext i1 %257 to i8
  %259 = load ptr, ptr %17, align 8, !tbaa !13
  %indvars.iv.next356 = add nsw i64 %indvars.iv355, 1
  %260 = getelementptr inbounds i8, ptr %259, i64 %indvars.iv355
  store i8 %258, ptr %260, align 1, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #4
  %indvars.iv.next354 = add nuw nsw i64 %indvars.iv353, 1
  %261 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %262 = getelementptr inbounds i8, ptr %261, i64 8
  %263 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %262) #4
  %sext398 = shl i64 %263, 32
  %264 = ashr exact i64 %sext398, 32
  %265 = icmp slt i64 %indvars.iv.next354, %264
  br i1 %265, label %.lr.ph295, label %.loopexit270.loopexit, !llvm.loop !24

.loopexit270.loopexit:                            ; preds = %.lr.ph295
  %266 = trunc nsw i64 %indvars.iv.next356 to i32
  br label %.loopexit270

.loopexit270:                                     ; preds = %.loopexit270.loopexit, %.preheader269, %245
  %.2234 = phi i32 [ %.0232317, %245 ], [ %.0232317, %.preheader269 ], [ %266, %.loopexit270.loopexit ]
  %267 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %268 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %267)
  %269 = icmp eq i32 %268, 1
  br i1 %269, label %.preheader267, label %.loopexit268

.preheader267:                                    ; preds = %.loopexit270
  %270 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %271 = getelementptr inbounds i8, ptr %270, i64 48
  %272 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %271) #4
  %273 = trunc i64 %272 to i32
  %274 = icmp sgt i32 %273, 0
  br i1 %274, label %.lr.ph299.preheader, label %.loopexit268

.lr.ph299.preheader:                              ; preds = %.preheader267
  %275 = sext i32 %.0227318 to i64
  br label %.lr.ph299

.lr.ph299:                                        ; preds = %.lr.ph299.preheader, %.lr.ph299
  %indvars.iv362 = phi i64 [ %275, %.lr.ph299.preheader ], [ %indvars.iv.next363, %.lr.ph299 ]
  %indvars.iv360 = phi i64 [ 0, %.lr.ph299.preheader ], [ %indvars.iv.next361, %.lr.ph299 ]
  %276 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %277 = getelementptr inbounds i8, ptr %276, i64 48
  %278 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %277, i64 noundef %indvars.iv360) #4
  %279 = load i32, ptr %278, align 4, !tbaa !19
  %280 = load ptr, ptr %21, align 8, !tbaa !14
  %indvars.iv.next363 = add nsw i64 %indvars.iv362, 1
  %281 = getelementptr inbounds i32, ptr %280, i64 %indvars.iv362
  store i32 %279, ptr %281, align 4, !tbaa !19
  %indvars.iv.next361 = add nuw nsw i64 %indvars.iv360, 1
  %282 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %283 = getelementptr inbounds i8, ptr %282, i64 48
  %284 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %283) #4
  %sext399 = shl i64 %284, 32
  %285 = ashr exact i64 %sext399, 32
  %286 = icmp slt i64 %indvars.iv.next361, %285
  br i1 %286, label %.lr.ph299, label %.loopexit268.loopexit, !llvm.loop !25

.loopexit268.loopexit:                            ; preds = %.lr.ph299
  %287 = trunc nsw i64 %indvars.iv.next363 to i32
  br label %.loopexit268

.loopexit268:                                     ; preds = %.loopexit268.loopexit, %.preheader267, %.loopexit270
  %.2229 = phi i32 [ %.0227318, %.loopexit270 ], [ %.0227318, %.preheader267 ], [ %287, %.loopexit268.loopexit ]
  %288 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %289 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %288)
  %290 = icmp eq i32 %289, 2
  br i1 %290, label %.preheader265, label %.loopexit266

.preheader265:                                    ; preds = %.loopexit268
  %291 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %292 = getelementptr inbounds i8, ptr %291, i64 72
  %293 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %292) #4
  %294 = trunc i64 %293 to i32
  %295 = icmp sgt i32 %294, 0
  br i1 %295, label %.lr.ph303.preheader, label %.loopexit266

.lr.ph303.preheader:                              ; preds = %.preheader265
  %296 = sext i32 %.0222319 to i64
  br label %.lr.ph303

.lr.ph303:                                        ; preds = %.lr.ph303.preheader, %.lr.ph303
  %indvars.iv369 = phi i64 [ %296, %.lr.ph303.preheader ], [ %indvars.iv.next370, %.lr.ph303 ]
  %indvars.iv367 = phi i64 [ 0, %.lr.ph303.preheader ], [ %indvars.iv.next368, %.lr.ph303 ]
  %297 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %298 = getelementptr inbounds i8, ptr %297, i64 72
  %299 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %298, i64 noundef %indvars.iv367) #4
  %300 = load float, ptr %299, align 4, !tbaa !26
  %301 = load ptr, ptr %25, align 8, !tbaa !15
  %indvars.iv.next370 = add nsw i64 %indvars.iv369, 1
  %302 = getelementptr inbounds float, ptr %301, i64 %indvars.iv369
  store float %300, ptr %302, align 4, !tbaa !26
  %indvars.iv.next368 = add nuw nsw i64 %indvars.iv367, 1
  %303 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %304 = getelementptr inbounds i8, ptr %303, i64 72
  %305 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %304) #4
  %sext400 = shl i64 %305, 32
  %306 = ashr exact i64 %sext400, 32
  %307 = icmp slt i64 %indvars.iv.next368, %306
  br i1 %307, label %.lr.ph303, label %.loopexit266.loopexit, !llvm.loop !28

.loopexit266.loopexit:                            ; preds = %.lr.ph303
  %308 = trunc nsw i64 %indvars.iv.next370 to i32
  br label %.loopexit266

.loopexit266:                                     ; preds = %.loopexit266.loopexit, %.preheader265, %.loopexit268
  %.2224 = phi i32 [ %.0222319, %.loopexit268 ], [ %.0222319, %.preheader265 ], [ %308, %.loopexit266.loopexit ]
  %309 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %310 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %309)
  %311 = icmp eq i32 %310, 5
  br i1 %311, label %.preheader263, label %.loopexit264

.preheader263:                                    ; preds = %.loopexit266
  %312 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %313 = getelementptr inbounds i8, ptr %312, i64 96
  %314 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %313) #4
  %315 = trunc i64 %314 to i32
  %316 = icmp sgt i32 %315, 0
  br i1 %316, label %.lr.ph307.preheader, label %.loopexit264

.lr.ph307.preheader:                              ; preds = %.preheader263
  %317 = sext i32 %.0217320 to i64
  br label %.lr.ph307

.lr.ph307:                                        ; preds = %.lr.ph307.preheader, %.lr.ph307
  %indvars.iv376 = phi i64 [ %317, %.lr.ph307.preheader ], [ %indvars.iv.next377, %.lr.ph307 ]
  %indvars.iv374 = phi i64 [ 0, %.lr.ph307.preheader ], [ %indvars.iv.next375, %.lr.ph307 ]
  %318 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %319 = getelementptr inbounds i8, ptr %318, i64 96
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %319, i64 noundef %indvars.iv374) #4
  %321 = load double, ptr %320, align 8, !tbaa !29
  %322 = load ptr, ptr %29, align 8, !tbaa !16
  %indvars.iv.next377 = add nsw i64 %indvars.iv376, 1
  %323 = getelementptr inbounds double, ptr %322, i64 %indvars.iv376
  store double %321, ptr %323, align 8, !tbaa !29
  %indvars.iv.next375 = add nuw nsw i64 %indvars.iv374, 1
  %324 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %325 = getelementptr inbounds i8, ptr %324, i64 96
  %326 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %325) #4
  %sext401 = shl i64 %326, 32
  %327 = ashr exact i64 %sext401, 32
  %328 = icmp slt i64 %indvars.iv.next375, %327
  br i1 %328, label %.lr.ph307, label %.loopexit264.loopexit, !llvm.loop !31

.loopexit264.loopexit:                            ; preds = %.lr.ph307
  %329 = trunc nsw i64 %indvars.iv.next377 to i32
  br label %.loopexit264

.loopexit264:                                     ; preds = %.loopexit264.loopexit, %.preheader263, %.loopexit266
  %.2219 = phi i32 [ %.0217320, %.loopexit266 ], [ %.0217320, %.preheader263 ], [ %329, %.loopexit264.loopexit ]
  %330 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %331 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %330)
  %332 = icmp eq i32 %331, 3
  br i1 %332, label %.preheader262, label %.loopexit

.preheader262:                                    ; preds = %.loopexit264
  %333 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %334 = getelementptr inbounds i8, ptr %333, i64 120
  %335 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %334) #4
  %336 = trunc i64 %335 to i32
  %337 = icmp sgt i32 %336, 0
  br i1 %337, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %.preheader262, %._crit_edge312
  %indvars.iv388 = phi i64 [ %indvars.iv.next389, %._crit_edge312 ], [ 0, %.preheader262 ]
  %.1215314 = phi i32 [ %347, %._crit_edge312 ], [ %.0214321, %.preheader262 ]
  %338 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %339 = getelementptr inbounds i8, ptr %338, i64 120
  %340 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %339, i64 noundef %indvars.iv388) #4
  %341 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %340) #4
  %342 = trunc i64 %341 to i32
  %343 = icmp sgt i32 %342, 0
  br i1 %343, label %.lr.ph311.preheader, label %._crit_edge312

.lr.ph311.preheader:                              ; preds = %.preheader
  %344 = sext i32 %.1215314 to i64
  br label %.lr.ph311

._crit_edge312.loopexit:                          ; preds = %.lr.ph311
  %345 = trunc nsw i64 %indvars.iv.next384 to i32
  br label %._crit_edge312

._crit_edge312:                                   ; preds = %._crit_edge312.loopexit, %.preheader
  %.2216.lcssa = phi i32 [ %.1215314, %.preheader ], [ %345, %._crit_edge312.loopexit ]
  %346 = load ptr, ptr %32, align 8, !tbaa !17
  %347 = add nsw i32 %.2216.lcssa, 1
  %348 = sext i32 %.2216.lcssa to i64
  %349 = getelementptr inbounds i8, ptr %346, i64 %348
  store i8 0, ptr %349, align 1, !tbaa !23
  %indvars.iv.next389 = add nuw nsw i64 %indvars.iv388, 1
  %350 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %351 = getelementptr inbounds i8, ptr %350, i64 120
  %352 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %351) #4
  %sext403 = shl i64 %352, 32
  %353 = ashr exact i64 %sext403, 32
  %354 = icmp slt i64 %indvars.iv.next389, %353
  br i1 %354, label %.preheader, label %.loopexit, !llvm.loop !32

.lr.ph311:                                        ; preds = %.lr.ph311.preheader, %.lr.ph311
  %indvars.iv383 = phi i64 [ %344, %.lr.ph311.preheader ], [ %indvars.iv.next384, %.lr.ph311 ]
  %indvars.iv381 = phi i64 [ 0, %.lr.ph311.preheader ], [ %indvars.iv.next382, %.lr.ph311 ]
  %355 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %356 = getelementptr inbounds i8, ptr %355, i64 120
  %357 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %356, i64 noundef %indvars.iv388) #4
  %358 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %357, i64 noundef %indvars.iv381)
  %359 = load i8, ptr %358, align 1, !tbaa !23
  %360 = load ptr, ptr %32, align 8, !tbaa !17
  %indvars.iv.next384 = add nsw i64 %indvars.iv383, 1
  %361 = getelementptr inbounds i8, ptr %360, i64 %indvars.iv383
  store i8 %359, ptr %361, align 1, !tbaa !23
  %indvars.iv.next382 = add nuw nsw i64 %indvars.iv381, 1
  %362 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %363 = getelementptr inbounds i8, ptr %362, i64 120
  %364 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %363, i64 noundef %indvars.iv388) #4
  %365 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %364) #4
  %sext402 = shl i64 %365, 32
  %366 = ashr exact i64 %sext402, 32
  %367 = icmp slt i64 %indvars.iv.next382, %366
  br i1 %367, label %.lr.ph311, label %._crit_edge312.loopexit, !llvm.loop !33

368:                                              ; preds = %239
  br i1 %244, label %369, label %381

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #4
  %370 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %371 = getelementptr inbounds i8, ptr %370, i64 8
  %372 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %371, i64 noundef 0)
  %373 = extractvalue { ptr, i64 } %372, 0
  store ptr %373, ptr %4, align 8
  %374 = extractvalue { ptr, i64 } %372, 1
  store i64 %374, ptr %36, align 8
  %375 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #4
  %376 = zext i1 %375 to i8
  %377 = load ptr, ptr %17, align 8, !tbaa !13
  %378 = add nsw i32 %.0232317, 1
  %379 = sext i32 %.0232317 to i64
  %380 = getelementptr inbounds i8, ptr %377, i64 %379
  store i8 %376, ptr %380, align 1, !tbaa !23
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #4
  br label %381

381:                                              ; preds = %369, %368
  %.3235 = phi i32 [ %378, %369 ], [ %.0232317, %368 ]
  %382 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %383 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %382)
  %384 = icmp eq i32 %383, 1
  br i1 %384, label %385, label %394

385:                                              ; preds = %381
  %386 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %387 = getelementptr inbounds i8, ptr %386, i64 48
  %388 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %387, i64 noundef 0) #4
  %389 = load i32, ptr %388, align 4, !tbaa !19
  %390 = load ptr, ptr %21, align 8, !tbaa !14
  %391 = add nsw i32 %.0227318, 1
  %392 = sext i32 %.0227318 to i64
  %393 = getelementptr inbounds i32, ptr %390, i64 %392
  store i32 %389, ptr %393, align 4, !tbaa !19
  br label %394

394:                                              ; preds = %385, %381
  %.3230 = phi i32 [ %391, %385 ], [ %.0227318, %381 ]
  %395 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %396 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %395)
  %397 = icmp eq i32 %396, 2
  br i1 %397, label %398, label %407

398:                                              ; preds = %394
  %399 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %400 = getelementptr inbounds i8, ptr %399, i64 72
  %401 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %400, i64 noundef 0) #4
  %402 = load float, ptr %401, align 4, !tbaa !26
  %403 = load ptr, ptr %25, align 8, !tbaa !15
  %404 = add nsw i32 %.0222319, 1
  %405 = sext i32 %.0222319 to i64
  %406 = getelementptr inbounds float, ptr %403, i64 %405
  store float %402, ptr %406, align 4, !tbaa !26
  br label %407

407:                                              ; preds = %398, %394
  %.3225 = phi i32 [ %404, %398 ], [ %.0222319, %394 ]
  %408 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %409 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %408)
  %410 = icmp eq i32 %409, 5
  br i1 %410, label %411, label %420

411:                                              ; preds = %407
  %412 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %413 = getelementptr inbounds i8, ptr %412, i64 96
  %414 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %413, i64 noundef 0) #4
  %415 = load double, ptr %414, align 8, !tbaa !29
  %416 = load ptr, ptr %29, align 8, !tbaa !16
  %417 = add nsw i32 %.0217320, 1
  %418 = sext i32 %.0217320 to i64
  %419 = getelementptr inbounds double, ptr %416, i64 %418
  store double %415, ptr %419, align 8, !tbaa !29
  br label %420

420:                                              ; preds = %411, %407
  %.3220 = phi i32 [ %417, %411 ], [ %.0217320, %407 ]
  %421 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %422 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %421)
  %423 = icmp eq i32 %422, 3
  br i1 %423, label %.preheader273, label %449

.preheader273:                                    ; preds = %420
  %424 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %425 = getelementptr inbounds i8, ptr %424, i64 120
  %426 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %425, i64 noundef 0) #4
  %427 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %426) #4
  %428 = trunc i64 %427 to i32
  %429 = icmp sgt i32 %428, 0
  br i1 %429, label %.lr.ph287.preheader, label %._crit_edge

.lr.ph287.preheader:                              ; preds = %.preheader273
  %430 = sext i32 %.0214321 to i64
  br label %.lr.ph287

._crit_edge.loopexit:                             ; preds = %.lr.ph287
  %431 = trunc nsw i64 %indvars.iv.next342 to i32
  br label %._crit_edge

._crit_edge:                                      ; preds = %._crit_edge.loopexit, %.preheader273
  %.3.lcssa = phi i32 [ %.0214321, %.preheader273 ], [ %431, %._crit_edge.loopexit ]
  %432 = load ptr, ptr %32, align 8, !tbaa !17
  %433 = add nsw i32 %.3.lcssa, 1
  %434 = sext i32 %.3.lcssa to i64
  %435 = getelementptr inbounds i8, ptr %432, i64 %434
  store i8 0, ptr %435, align 1, !tbaa !23
  br label %449

.lr.ph287:                                        ; preds = %.lr.ph287.preheader, %.lr.ph287
  %indvars.iv341 = phi i64 [ %430, %.lr.ph287.preheader ], [ %indvars.iv.next342, %.lr.ph287 ]
  %indvars.iv339 = phi i64 [ 0, %.lr.ph287.preheader ], [ %indvars.iv.next340, %.lr.ph287 ]
  %436 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %437 = getelementptr inbounds i8, ptr %436, i64 120
  %438 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %437, i64 noundef 0) #4
  %439 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %438, i64 noundef %indvars.iv339)
  %440 = load i8, ptr %439, align 1, !tbaa !23
  %441 = load ptr, ptr %32, align 8, !tbaa !17
  %indvars.iv.next342 = add nsw i64 %indvars.iv341, 1
  %442 = getelementptr inbounds i8, ptr %441, i64 %indvars.iv341
  store i8 %440, ptr %442, align 1, !tbaa !23
  %indvars.iv.next340 = add nuw nsw i64 %indvars.iv339, 1
  %443 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %444 = getelementptr inbounds i8, ptr %443, i64 120
  %445 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %444, i64 noundef 0) #4
  %446 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %445) #4
  %sext396 = shl i64 %446, 32
  %447 = ashr exact i64 %sext396, 32
  %448 = icmp slt i64 %indvars.iv.next340, %447
  br i1 %448, label %.lr.ph287, label %._crit_edge.loopexit, !llvm.loop !34

449:                                              ; preds = %._crit_edge, %420
  %.4 = phi i32 [ %433, %._crit_edge ], [ %.0214321, %420 ]
  %450 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %451 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %450)
  %452 = icmp eq i32 %451, 4
  br i1 %452, label %.preheader271, label %.loopexit

.preheader271:                                    ; preds = %449
  %453 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %454 = getelementptr inbounds i8, ptr %453, i64 120
  %455 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %454, i64 noundef 0) #4
  %456 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %455) #4
  %457 = trunc i64 %456 to i32
  %458 = icmp sgt i32 %457, 0
  br i1 %458, label %.lr.ph291.preheader, label %.loopexit

.lr.ph291.preheader:                              ; preds = %.preheader271
  %459 = sext i32 %.0213322 to i64
  br label %.lr.ph291

.lr.ph291:                                        ; preds = %.lr.ph291.preheader, %.lr.ph291
  %indvars.iv348 = phi i64 [ %459, %.lr.ph291.preheader ], [ %indvars.iv.next349, %.lr.ph291 ]
  %indvars.iv346 = phi i64 [ 0, %.lr.ph291.preheader ], [ %indvars.iv.next347, %.lr.ph291 ]
  %460 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %461 = getelementptr inbounds i8, ptr %460, i64 120
  %462 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %461, i64 noundef 0) #4
  %463 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %462, i64 noundef %indvars.iv346)
  %464 = load i8, ptr %463, align 1, !tbaa !23
  %465 = load ptr, ptr %35, align 8, !tbaa !18
  %indvars.iv.next349 = add nsw i64 %indvars.iv348, 1
  %466 = getelementptr inbounds i8, ptr %465, i64 %indvars.iv348
  store i8 %464, ptr %466, align 1, !tbaa !23
  %indvars.iv.next347 = add nuw nsw i64 %indvars.iv346, 1
  %467 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %6, i64 noundef %indvars.iv391) #4
  %468 = getelementptr inbounds i8, ptr %467, i64 120
  %469 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %468, i64 noundef 0) #4
  %470 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %469) #4
  %sext397 = shl i64 %470, 32
  %471 = ashr exact i64 %sext397, 32
  %472 = icmp slt i64 %indvars.iv.next347, %471
  br i1 %472, label %.lr.ph291, label %.loopexit.loopexit326, !llvm.loop !35

.loopexit.loopexit326:                            ; preds = %.lr.ph291
  %473 = trunc nsw i64 %indvars.iv.next349 to i32
  br label %.loopexit

.loopexit:                                        ; preds = %._crit_edge312, %.loopexit.loopexit326, %.preheader271, %.preheader262, %.loopexit264, %449
  %.4236 = phi i32 [ %.2234, %.loopexit264 ], [ %.3235, %449 ], [ %.2234, %.preheader262 ], [ %.3235, %.preheader271 ], [ %.3235, %.loopexit.loopexit326 ], [ %.2234, %._crit_edge312 ]
  %.4231 = phi i32 [ %.2229, %.loopexit264 ], [ %.3230, %449 ], [ %.2229, %.preheader262 ], [ %.3230, %.preheader271 ], [ %.3230, %.loopexit.loopexit326 ], [ %.2229, %._crit_edge312 ]
  %.4226 = phi i32 [ %.2224, %.loopexit264 ], [ %.3225, %449 ], [ %.2224, %.preheader262 ], [ %.3225, %.preheader271 ], [ %.3225, %.loopexit.loopexit326 ], [ %.2224, %._crit_edge312 ]
  %.4221 = phi i32 [ %.2219, %.loopexit264 ], [ %.3220, %449 ], [ %.2219, %.preheader262 ], [ %.3220, %.preheader271 ], [ %.3220, %.loopexit.loopexit326 ], [ %.2219, %._crit_edge312 ]
  %.5 = phi i32 [ %.0214321, %.loopexit264 ], [ %.4, %449 ], [ %.0214321, %.preheader262 ], [ %.4, %.preheader271 ], [ %.4, %.loopexit.loopexit326 ], [ %347, %._crit_edge312 ]
  %.2 = phi i32 [ %.0213322, %.loopexit264 ], [ %.0213322, %449 ], [ %.0213322, %.preheader262 ], [ %.0213322, %.preheader271 ], [ %473, %.loopexit.loopexit326 ], [ %.0213322, %._crit_edge312 ]
  %indvars.iv.next392 = add nuw nsw i64 %indvars.iv391, 1
  %exitcond395.not = icmp eq i64 %indvars.iv.next392, %wide.trip.count
  br i1 %exitcond395.not, label %.loopexit274, label %239, !llvm.loop !36

.loopexit274:                                     ; preds = %.loopexit, %2
  ret void
}

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

declare noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156)) local_unnamed_addr #3

declare noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156)) local_unnamed_addr #3

declare noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156)) local_unnamed_addr #3

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #1 align 2

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef) local_unnamed_addr #1 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 = { "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 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 88}
!6 = !{!"_ZTS12SLuaCallBack", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !7, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !7, i64 88, !10, i64 96, !8, i64 104, !10, i64 112, !10, i64 120, !7, i64 128, !10, i64 136, !10, i64 144}
!7 = !{!"int", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"any pointer", !8, i64 0}
!11 = !{!10, !10, i64 0}
!12 = !{!6, !10, i64 96}
!13 = !{!6, !10, i64 56}
!14 = !{!6, !10, i64 64}
!15 = !{!6, !10, i64 72}
!16 = !{!6, !10, i64 144}
!17 = !{!6, !10, i64 80}
!18 = !{!6, !10, i64 120}
!19 = !{!7, !7, i64 0}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = distinct !{!22, !21}
!23 = !{!8, !8, i64 0}
!24 = distinct !{!24, !21}
!25 = distinct !{!25, !21}
!26 = !{!27, !27, i64 0}
!27 = !{!"float", !8, i64 0}
!28 = distinct !{!28, !21}
!29 = !{!30, !30, i64 0}
!30 = !{!"double", !8, i64 0}
!31 = distinct !{!31, !21}
!32 = distinct !{!32, !21}
!33 = distinct !{!33, !21}
!34 = distinct !{!34, !21}
!35 = distinct !{!35, !21}
!36 = distinct !{!36, !21}


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