; 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 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)) #2

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

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

; 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) #3 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CLuaFunctionData30writeDataToLua_luaFunctionCallEP12SLuaCallBackPKi(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef %1, ptr noundef %2) #3 align 2 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %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 i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca %"struct.std::_Bit_reference", align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca %"struct.std::_Bit_reference", align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  store ptr %0, ptr %4, align 8, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  %35 = load ptr, ptr %4, align 8
  %36 = load ptr, ptr %5, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.SLuaCallBack, ptr %36, i32 0, i32 0
  store i32 -1, ptr %37, align 8, !tbaa !9
  %38 = load ptr, ptr %5, align 8, !tbaa !5
  %39 = getelementptr inbounds %struct.SLuaCallBack, ptr %38, i32 0, i32 5
  store i32 0, ptr %39, align 8, !tbaa !12
  %40 = load ptr, ptr %5, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.SLuaCallBack, ptr %40, i32 0, i32 1
  store ptr null, ptr %41, align 8, !tbaa !13
  %42 = load ptr, ptr %5, align 8, !tbaa !5
  %43 = getelementptr inbounds %struct.SLuaCallBack, ptr %42, i32 0, i32 2
  store ptr null, ptr %43, align 8, !tbaa !14
  %44 = load ptr, ptr %5, align 8, !tbaa !5
  %45 = getelementptr inbounds %struct.SLuaCallBack, ptr %44, i32 0, i32 3
  store ptr null, ptr %45, align 8, !tbaa !15
  %46 = load ptr, ptr %5, align 8, !tbaa !5
  %47 = getelementptr inbounds %struct.SLuaCallBack, ptr %46, i32 0, i32 17
  store ptr null, ptr %47, align 8, !tbaa !16
  %48 = load ptr, ptr %5, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.SLuaCallBack, ptr %48, i32 0, i32 4
  store ptr null, ptr %49, align 8, !tbaa !17
  %50 = load ptr, ptr %5, align 8, !tbaa !5
  %51 = getelementptr inbounds %struct.SLuaCallBack, ptr %50, i32 0, i32 14
  store ptr null, ptr %51, align 8, !tbaa !18
  %52 = load ptr, ptr %5, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.SLuaCallBack, ptr %52, i32 0, i32 6
  store ptr null, ptr %53, align 8, !tbaa !19
  %54 = load ptr, ptr %6, align 8, !tbaa !5
  %55 = getelementptr inbounds i32, ptr %54, i64 0
  %56 = load i32, ptr %55, align 4, !tbaa !20
  %57 = load ptr, ptr %5, align 8, !tbaa !5
  %58 = getelementptr inbounds %struct.SLuaCallBack, ptr %57, i32 0, i32 11
  store i32 %56, ptr %58, align 8, !tbaa !21
  %59 = load ptr, ptr %5, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.SLuaCallBack, ptr %59, i32 0, i32 7
  store ptr null, ptr %60, align 8, !tbaa !22
  %61 = load ptr, ptr %5, align 8, !tbaa !5
  %62 = getelementptr inbounds %struct.SLuaCallBack, ptr %61, i32 0, i32 8
  store ptr null, ptr %62, align 8, !tbaa !23
  %63 = load ptr, ptr %5, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.SLuaCallBack, ptr %63, i32 0, i32 9
  store ptr null, ptr %64, align 8, !tbaa !24
  %65 = load ptr, ptr %5, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.SLuaCallBack, ptr %65, i32 0, i32 18
  store ptr null, ptr %66, align 8, !tbaa !25
  %67 = load ptr, ptr %5, align 8, !tbaa !5
  %68 = getelementptr inbounds %struct.SLuaCallBack, ptr %67, i32 0, i32 10
  store ptr null, ptr %68, align 8, !tbaa !26
  %69 = load ptr, ptr %5, align 8, !tbaa !5
  %70 = getelementptr inbounds %struct.SLuaCallBack, ptr %69, i32 0, i32 15
  store ptr null, ptr %70, align 8, !tbaa !27
  %71 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %72 = load ptr, ptr %5, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.SLuaCallBack, ptr %72, i32 0, i32 11
  %74 = load i32, ptr %73, align 8, !tbaa !21
  %75 = mul nsw i32 %74, 2
  %76 = sext i32 %75 to i64
  %77 = mul i64 %76, 4
  %78 = trunc i64 %77 to i32
  %79 = call noundef ptr %71(i32 noundef %78)
  %80 = load ptr, ptr %5, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.SLuaCallBack, ptr %80, i32 0, i32 12
  store ptr %79, ptr %81, align 8, !tbaa !28
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  store i32 0, ptr %7, align 4, !tbaa !20
  br label %82

82:                                               ; preds = %103, %3
  %83 = load i32, ptr %7, align 4, !tbaa !20
  %84 = load ptr, ptr %5, align 8, !tbaa !5
  %85 = getelementptr inbounds %struct.SLuaCallBack, ptr %84, i32 0, i32 11
  %86 = load i32, ptr %85, align 8, !tbaa !21
  %87 = mul nsw i32 %86, 2
  %88 = icmp slt i32 %83, %87
  br i1 %88, label %90, label %89

89:                                               ; preds = %82
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  br label %106

90:                                               ; preds = %82
  %91 = load ptr, ptr %6, align 8, !tbaa !5
  %92 = load i32, ptr %7, align 4, !tbaa !20
  %93 = add nsw i32 1, %92
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds i32, ptr %91, i64 %94
  %96 = load i32, ptr %95, align 4, !tbaa !20
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = getelementptr inbounds %struct.SLuaCallBack, ptr %97, i32 0, i32 12
  %99 = load ptr, ptr %98, align 8, !tbaa !28
  %100 = load i32, ptr %7, align 4, !tbaa !20
  %101 = sext i32 %100 to i64
  %102 = getelementptr inbounds i32, ptr %99, i64 %101
  store i32 %96, ptr %102, align 4, !tbaa !20
  br label %103

103:                                              ; preds = %90
  %104 = load i32, ptr %7, align 4, !tbaa !20
  %105 = add nsw i32 %104, 1
  store i32 %105, ptr %7, align 4, !tbaa !20
  br label %82, !llvm.loop !29

106:                                              ; preds = %89
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %107 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %108 = call noundef i64 @_ZNKSt6vectorI20CLuaFunctionDataItemSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #4
  %109 = trunc i64 %108 to i32
  store i32 %109, ptr %8, align 4, !tbaa !20
  %110 = load i32, ptr %8, align 4, !tbaa !20
  %111 = icmp sgt i32 %110, 0
  br i1 %111, label %112, label %1091

112:                                              ; preds = %106
  %113 = load i32, ptr %8, align 4, !tbaa !20
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.SLuaCallBack, ptr %114, i32 0, i32 5
  store i32 %113, ptr %115, align 8, !tbaa !12
  %116 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %117 = load ptr, ptr %5, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.SLuaCallBack, ptr %117, i32 0, i32 5
  %119 = load i32, ptr %118, align 8, !tbaa !12
  %120 = mul nsw i32 %119, 2
  %121 = sext i32 %120 to i64
  %122 = mul i64 %121, 4
  %123 = trunc i64 %122 to i32
  %124 = call noundef ptr %116(i32 noundef %123)
  %125 = load ptr, ptr %5, align 8, !tbaa !5
  %126 = getelementptr inbounds %struct.SLuaCallBack, ptr %125, i32 0, i32 6
  store ptr %124, ptr %126, align 8, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  store i32 0, ptr %9, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  store i32 0, ptr %10, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  store i32 0, ptr %11, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  store i32 0, ptr %12, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  store i32 0, ptr %13, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  store i32 0, ptr %14, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  store i32 0, ptr %15, align 4, !tbaa !20
  br label %127

127:                                              ; preds = %603, %112
  %128 = load i32, ptr %15, align 4, !tbaa !20
  %129 = load i32, ptr %8, align 4, !tbaa !20
  %130 = icmp slt i32 %128, %129
  br i1 %130, label %132, label %131

131:                                              ; preds = %127
  store i32 5, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  br label %606

132:                                              ; preds = %127
  %133 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %134 = load i32, ptr %15, align 4, !tbaa !20
  %135 = sext i32 %134 to i64
  %136 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %133, i64 noundef %135) #4
  %137 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %136)
  br i1 %137, label %138, label %396

138:                                              ; preds = %132
  %139 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %140 = load i32, ptr %15, align 4, !tbaa !20
  %141 = sext i32 %140 to i64
  %142 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %139, i64 noundef %141) #4
  %143 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %142)
  %144 = icmp eq i32 %143, -1
  br i1 %144, label %145, label %167

145:                                              ; preds = %138
  %146 = load ptr, ptr %5, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.SLuaCallBack, ptr %146, i32 0, i32 6
  %148 = load ptr, ptr %147, align 8, !tbaa !19
  %149 = load i32, ptr %15, align 4, !tbaa !20
  %150 = mul nsw i32 %149, 2
  %151 = add nsw i32 %150, 0
  %152 = sext i32 %151 to i64
  %153 = getelementptr inbounds i32, ptr %148, i64 %152
  store i32 8, ptr %153, align 4, !tbaa !20
  %154 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %155 = load i32, ptr %15, align 4, !tbaa !20
  %156 = sext i32 %155 to i64
  %157 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %154, i64 noundef %156) #4
  %158 = call noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156) %157)
  %159 = load ptr, ptr %5, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.SLuaCallBack, ptr %159, i32 0, i32 6
  %161 = load ptr, ptr %160, align 8, !tbaa !19
  %162 = load i32, ptr %15, align 4, !tbaa !20
  %163 = mul nsw i32 %162, 2
  %164 = add nsw i32 %163, 1
  %165 = sext i32 %164 to i64
  %166 = getelementptr inbounds i32, ptr %161, i64 %165
  store i32 %158, ptr %166, align 4, !tbaa !20
  br label %167

167:                                              ; preds = %145, %138
  %168 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %169 = load i32, ptr %15, align 4, !tbaa !20
  %170 = sext i32 %169 to i64
  %171 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %168, i64 noundef %170) #4
  %172 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %171)
  %173 = icmp eq i32 %172, 0
  br i1 %173, label %174, label %209

174:                                              ; preds = %167
  %175 = load ptr, ptr %5, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.SLuaCallBack, ptr %175, i32 0, i32 6
  %177 = load ptr, ptr %176, align 8, !tbaa !19
  %178 = load i32, ptr %15, align 4, !tbaa !20
  %179 = mul nsw i32 %178, 2
  %180 = add nsw i32 %179, 0
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds i32, ptr %177, i64 %181
  store i32 9, ptr %182, align 4, !tbaa !20
  %183 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %184 = load i32, ptr %15, align 4, !tbaa !20
  %185 = sext i32 %184 to i64
  %186 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %183, i64 noundef %185) #4
  %187 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %186, i32 0, i32 1
  %188 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %187) #4
  %189 = trunc i64 %188 to i32
  %190 = load ptr, ptr %5, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.SLuaCallBack, ptr %190, i32 0, i32 6
  %192 = load ptr, ptr %191, align 8, !tbaa !19
  %193 = load i32, ptr %15, align 4, !tbaa !20
  %194 = mul nsw i32 %193, 2
  %195 = add nsw i32 %194, 1
  %196 = sext i32 %195 to i64
  %197 = getelementptr inbounds i32, ptr %192, i64 %196
  store i32 %189, ptr %197, align 4, !tbaa !20
  %198 = load ptr, ptr %5, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.SLuaCallBack, ptr %198, i32 0, i32 6
  %200 = load ptr, ptr %199, align 8, !tbaa !19
  %201 = load i32, ptr %15, align 4, !tbaa !20
  %202 = mul nsw i32 %201, 2
  %203 = add nsw i32 %202, 1
  %204 = sext i32 %203 to i64
  %205 = getelementptr inbounds i32, ptr %200, i64 %204
  %206 = load i32, ptr %205, align 4, !tbaa !20
  %207 = load i32, ptr %9, align 4, !tbaa !20
  %208 = add nsw i32 %207, %206
  store i32 %208, ptr %9, align 4, !tbaa !20
  br label %209

209:                                              ; preds = %174, %167
  %210 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %211 = load i32, ptr %15, align 4, !tbaa !20
  %212 = sext i32 %211 to i64
  %213 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %210, i64 noundef %212) #4
  %214 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %213)
  %215 = icmp eq i32 %214, 1
  br i1 %215, label %216, label %251

216:                                              ; preds = %209
  %217 = load ptr, ptr %5, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.SLuaCallBack, ptr %217, i32 0, i32 6
  %219 = load ptr, ptr %218, align 8, !tbaa !19
  %220 = load i32, ptr %15, align 4, !tbaa !20
  %221 = mul nsw i32 %220, 2
  %222 = add nsw i32 %221, 0
  %223 = sext i32 %222 to i64
  %224 = getelementptr inbounds i32, ptr %219, i64 %223
  store i32 10, ptr %224, align 4, !tbaa !20
  %225 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %226 = load i32, ptr %15, align 4, !tbaa !20
  %227 = sext i32 %226 to i64
  %228 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %225, i64 noundef %227) #4
  %229 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %228, i32 0, i32 2
  %230 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %229) #4
  %231 = trunc i64 %230 to i32
  %232 = load ptr, ptr %5, align 8, !tbaa !5
  %233 = getelementptr inbounds %struct.SLuaCallBack, ptr %232, i32 0, i32 6
  %234 = load ptr, ptr %233, align 8, !tbaa !19
  %235 = load i32, ptr %15, align 4, !tbaa !20
  %236 = mul nsw i32 %235, 2
  %237 = add nsw i32 %236, 1
  %238 = sext i32 %237 to i64
  %239 = getelementptr inbounds i32, ptr %234, i64 %238
  store i32 %231, ptr %239, align 4, !tbaa !20
  %240 = load ptr, ptr %5, align 8, !tbaa !5
  %241 = getelementptr inbounds %struct.SLuaCallBack, ptr %240, i32 0, i32 6
  %242 = load ptr, ptr %241, align 8, !tbaa !19
  %243 = load i32, ptr %15, align 4, !tbaa !20
  %244 = mul nsw i32 %243, 2
  %245 = add nsw i32 %244, 1
  %246 = sext i32 %245 to i64
  %247 = getelementptr inbounds i32, ptr %242, i64 %246
  %248 = load i32, ptr %247, align 4, !tbaa !20
  %249 = load i32, ptr %10, align 4, !tbaa !20
  %250 = add nsw i32 %249, %248
  store i32 %250, ptr %10, align 4, !tbaa !20
  br label %251

251:                                              ; preds = %216, %209
  %252 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %253 = load i32, ptr %15, align 4, !tbaa !20
  %254 = sext i32 %253 to i64
  %255 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %252, i64 noundef %254) #4
  %256 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %255)
  %257 = icmp eq i32 %256, 2
  br i1 %257, label %258, label %293

258:                                              ; preds = %251
  %259 = load ptr, ptr %5, align 8, !tbaa !5
  %260 = getelementptr inbounds %struct.SLuaCallBack, ptr %259, i32 0, i32 6
  %261 = load ptr, ptr %260, align 8, !tbaa !19
  %262 = load i32, ptr %15, align 4, !tbaa !20
  %263 = mul nsw i32 %262, 2
  %264 = add nsw i32 %263, 0
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds i32, ptr %261, i64 %265
  store i32 11, ptr %266, align 4, !tbaa !20
  %267 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %268 = load i32, ptr %15, align 4, !tbaa !20
  %269 = sext i32 %268 to i64
  %270 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %267, i64 noundef %269) #4
  %271 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %270, i32 0, i32 3
  %272 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %271) #4
  %273 = trunc i64 %272 to i32
  %274 = load ptr, ptr %5, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.SLuaCallBack, ptr %274, i32 0, i32 6
  %276 = load ptr, ptr %275, align 8, !tbaa !19
  %277 = load i32, ptr %15, align 4, !tbaa !20
  %278 = mul nsw i32 %277, 2
  %279 = add nsw i32 %278, 1
  %280 = sext i32 %279 to i64
  %281 = getelementptr inbounds i32, ptr %276, i64 %280
  store i32 %273, ptr %281, align 4, !tbaa !20
  %282 = load ptr, ptr %5, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.SLuaCallBack, ptr %282, i32 0, i32 6
  %284 = load ptr, ptr %283, align 8, !tbaa !19
  %285 = load i32, ptr %15, align 4, !tbaa !20
  %286 = mul nsw i32 %285, 2
  %287 = add nsw i32 %286, 1
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds i32, ptr %284, i64 %288
  %290 = load i32, ptr %289, align 4, !tbaa !20
  %291 = load i32, ptr %11, align 4, !tbaa !20
  %292 = add nsw i32 %291, %290
  store i32 %292, ptr %11, align 4, !tbaa !20
  br label %293

293:                                              ; preds = %258, %251
  %294 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %295 = load i32, ptr %15, align 4, !tbaa !20
  %296 = sext i32 %295 to i64
  %297 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %294, i64 noundef %296) #4
  %298 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %297)
  %299 = icmp eq i32 %298, 5
  br i1 %299, label %300, label %335

300:                                              ; preds = %293
  %301 = load ptr, ptr %5, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.SLuaCallBack, ptr %301, i32 0, i32 6
  %303 = load ptr, ptr %302, align 8, !tbaa !19
  %304 = load i32, ptr %15, align 4, !tbaa !20
  %305 = mul nsw i32 %304, 2
  %306 = add nsw i32 %305, 0
  %307 = sext i32 %306 to i64
  %308 = getelementptr inbounds i32, ptr %303, i64 %307
  store i32 15, ptr %308, align 4, !tbaa !20
  %309 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %310 = load i32, ptr %15, align 4, !tbaa !20
  %311 = sext i32 %310 to i64
  %312 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %309, i64 noundef %311) #4
  %313 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %312, i32 0, i32 4
  %314 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %313) #4
  %315 = trunc i64 %314 to i32
  %316 = load ptr, ptr %5, align 8, !tbaa !5
  %317 = getelementptr inbounds %struct.SLuaCallBack, ptr %316, i32 0, i32 6
  %318 = load ptr, ptr %317, align 8, !tbaa !19
  %319 = load i32, ptr %15, align 4, !tbaa !20
  %320 = mul nsw i32 %319, 2
  %321 = add nsw i32 %320, 1
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds i32, ptr %318, i64 %322
  store i32 %315, ptr %323, align 4, !tbaa !20
  %324 = load ptr, ptr %5, align 8, !tbaa !5
  %325 = getelementptr inbounds %struct.SLuaCallBack, ptr %324, i32 0, i32 6
  %326 = load ptr, ptr %325, align 8, !tbaa !19
  %327 = load i32, ptr %15, align 4, !tbaa !20
  %328 = mul nsw i32 %327, 2
  %329 = add nsw i32 %328, 1
  %330 = sext i32 %329 to i64
  %331 = getelementptr inbounds i32, ptr %326, i64 %330
  %332 = load i32, ptr %331, align 4, !tbaa !20
  %333 = load i32, ptr %12, align 4, !tbaa !20
  %334 = add nsw i32 %333, %332
  store i32 %334, ptr %12, align 4, !tbaa !20
  br label %335

335:                                              ; preds = %300, %293
  %336 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %337 = load i32, ptr %15, align 4, !tbaa !20
  %338 = sext i32 %337 to i64
  %339 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %336, i64 noundef %338) #4
  %340 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %339)
  %341 = icmp eq i32 %340, 3
  br i1 %341, label %342, label %395

342:                                              ; preds = %335
  %343 = load ptr, ptr %5, align 8, !tbaa !5
  %344 = getelementptr inbounds %struct.SLuaCallBack, ptr %343, i32 0, i32 6
  %345 = load ptr, ptr %344, align 8, !tbaa !19
  %346 = load i32, ptr %15, align 4, !tbaa !20
  %347 = mul nsw i32 %346, 2
  %348 = add nsw i32 %347, 0
  %349 = sext i32 %348 to i64
  %350 = getelementptr inbounds i32, ptr %345, i64 %349
  store i32 12, ptr %350, align 4, !tbaa !20
  %351 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %352 = load i32, ptr %15, align 4, !tbaa !20
  %353 = sext i32 %352 to i64
  %354 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %351, i64 noundef %353) #4
  %355 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %354, i32 0, i32 5
  %356 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %355) #4
  %357 = trunc i64 %356 to i32
  %358 = load ptr, ptr %5, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.SLuaCallBack, ptr %358, i32 0, i32 6
  %360 = load ptr, ptr %359, align 8, !tbaa !19
  %361 = load i32, ptr %15, align 4, !tbaa !20
  %362 = mul nsw i32 %361, 2
  %363 = add nsw i32 %362, 1
  %364 = sext i32 %363 to i64
  %365 = getelementptr inbounds i32, ptr %360, i64 %364
  store i32 %357, ptr %365, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  store i32 0, ptr %17, align 4, !tbaa !20
  br label %366

366:                                              ; preds = %391, %342
  %367 = load i32, ptr %17, align 4, !tbaa !20
  %368 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %369 = load i32, ptr %15, align 4, !tbaa !20
  %370 = sext i32 %369 to i64
  %371 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %368, i64 noundef %370) #4
  %372 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %371, i32 0, i32 5
  %373 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %372) #4
  %374 = trunc i64 %373 to i32
  %375 = icmp slt i32 %367, %374
  br i1 %375, label %377, label %376

376:                                              ; preds = %366
  store i32 8, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  br label %394

377:                                              ; preds = %366
  %378 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %379 = load i32, ptr %15, align 4, !tbaa !20
  %380 = sext i32 %379 to i64
  %381 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %378, i64 noundef %380) #4
  %382 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %381, i32 0, i32 5
  %383 = load i32, ptr %17, align 4, !tbaa !20
  %384 = sext i32 %383 to i64
  %385 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef %384) #4
  %386 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %385) #4
  %387 = trunc i64 %386 to i32
  %388 = add nsw i32 %387, 1
  %389 = load i32, ptr %13, align 4, !tbaa !20
  %390 = add nsw i32 %389, %388
  store i32 %390, ptr %13, align 4, !tbaa !20
  br label %391

391:                                              ; preds = %377
  %392 = load i32, ptr %17, align 4, !tbaa !20
  %393 = add nsw i32 %392, 1
  store i32 %393, ptr %17, align 4, !tbaa !20
  br label %366, !llvm.loop !31

394:                                              ; preds = %376
  br label %395

395:                                              ; preds = %394, %335
  br label %602

396:                                              ; preds = %132
  %397 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %398 = load i32, ptr %15, align 4, !tbaa !20
  %399 = sext i32 %398 to i64
  %400 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %397, i64 noundef %399) #4
  %401 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %400)
  %402 = icmp eq i32 %401, -1
  br i1 %402, label %403, label %420

403:                                              ; preds = %396
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.SLuaCallBack, ptr %404, i32 0, i32 6
  %406 = load ptr, ptr %405, align 8, !tbaa !19
  %407 = load i32, ptr %15, align 4, !tbaa !20
  %408 = mul nsw i32 %407, 2
  %409 = add nsw i32 %408, 1
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds i32, ptr %406, i64 %410
  store i32 0, ptr %411, align 4, !tbaa !20
  %412 = load ptr, ptr %5, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct.SLuaCallBack, ptr %412, i32 0, i32 6
  %414 = load ptr, ptr %413, align 8, !tbaa !19
  %415 = load i32, ptr %15, align 4, !tbaa !20
  %416 = mul nsw i32 %415, 2
  %417 = add nsw i32 %416, 0
  %418 = sext i32 %417 to i64
  %419 = getelementptr inbounds i32, ptr %414, i64 %418
  store i32 0, ptr %419, align 4, !tbaa !20
  br label %420

420:                                              ; preds = %403, %396
  %421 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %422 = load i32, ptr %15, align 4, !tbaa !20
  %423 = sext i32 %422 to i64
  %424 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %421, i64 noundef %423) #4
  %425 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %424)
  %426 = icmp eq i32 %425, 0
  br i1 %426, label %427, label %446

427:                                              ; preds = %420
  %428 = load ptr, ptr %5, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.SLuaCallBack, ptr %428, i32 0, i32 6
  %430 = load ptr, ptr %429, align 8, !tbaa !19
  %431 = load i32, ptr %15, align 4, !tbaa !20
  %432 = mul nsw i32 %431, 2
  %433 = add nsw i32 %432, 1
  %434 = sext i32 %433 to i64
  %435 = getelementptr inbounds i32, ptr %430, i64 %434
  store i32 0, ptr %435, align 4, !tbaa !20
  %436 = load ptr, ptr %5, align 8, !tbaa !5
  %437 = getelementptr inbounds %struct.SLuaCallBack, ptr %436, i32 0, i32 6
  %438 = load ptr, ptr %437, align 8, !tbaa !19
  %439 = load i32, ptr %15, align 4, !tbaa !20
  %440 = mul nsw i32 %439, 2
  %441 = add nsw i32 %440, 0
  %442 = sext i32 %441 to i64
  %443 = getelementptr inbounds i32, ptr %438, i64 %442
  store i32 1, ptr %443, align 4, !tbaa !20
  %444 = load i32, ptr %9, align 4, !tbaa !20
  %445 = add nsw i32 %444, 1
  store i32 %445, ptr %9, align 4, !tbaa !20
  br label %446

446:                                              ; preds = %427, %420
  %447 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %448 = load i32, ptr %15, align 4, !tbaa !20
  %449 = sext i32 %448 to i64
  %450 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %447, i64 noundef %449) #4
  %451 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %450)
  %452 = icmp eq i32 %451, 1
  br i1 %452, label %453, label %472

453:                                              ; preds = %446
  %454 = load ptr, ptr %5, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.SLuaCallBack, ptr %454, i32 0, i32 6
  %456 = load ptr, ptr %455, align 8, !tbaa !19
  %457 = load i32, ptr %15, align 4, !tbaa !20
  %458 = mul nsw i32 %457, 2
  %459 = add nsw i32 %458, 1
  %460 = sext i32 %459 to i64
  %461 = getelementptr inbounds i32, ptr %456, i64 %460
  store i32 0, ptr %461, align 4, !tbaa !20
  %462 = load ptr, ptr %5, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.SLuaCallBack, ptr %462, i32 0, i32 6
  %464 = load ptr, ptr %463, align 8, !tbaa !19
  %465 = load i32, ptr %15, align 4, !tbaa !20
  %466 = mul nsw i32 %465, 2
  %467 = add nsw i32 %466, 0
  %468 = sext i32 %467 to i64
  %469 = getelementptr inbounds i32, ptr %464, i64 %468
  store i32 2, ptr %469, align 4, !tbaa !20
  %470 = load i32, ptr %10, align 4, !tbaa !20
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %10, align 4, !tbaa !20
  br label %472

472:                                              ; preds = %453, %446
  %473 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %474 = load i32, ptr %15, align 4, !tbaa !20
  %475 = sext i32 %474 to i64
  %476 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %473, i64 noundef %475) #4
  %477 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %476)
  %478 = icmp eq i32 %477, 2
  br i1 %478, label %479, label %498

479:                                              ; preds = %472
  %480 = load ptr, ptr %5, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.SLuaCallBack, ptr %480, i32 0, i32 6
  %482 = load ptr, ptr %481, align 8, !tbaa !19
  %483 = load i32, ptr %15, align 4, !tbaa !20
  %484 = mul nsw i32 %483, 2
  %485 = add nsw i32 %484, 1
  %486 = sext i32 %485 to i64
  %487 = getelementptr inbounds i32, ptr %482, i64 %486
  store i32 0, ptr %487, align 4, !tbaa !20
  %488 = load ptr, ptr %5, align 8, !tbaa !5
  %489 = getelementptr inbounds %struct.SLuaCallBack, ptr %488, i32 0, i32 6
  %490 = load ptr, ptr %489, align 8, !tbaa !19
  %491 = load i32, ptr %15, align 4, !tbaa !20
  %492 = mul nsw i32 %491, 2
  %493 = add nsw i32 %492, 0
  %494 = sext i32 %493 to i64
  %495 = getelementptr inbounds i32, ptr %490, i64 %494
  store i32 3, ptr %495, align 4, !tbaa !20
  %496 = load i32, ptr %11, align 4, !tbaa !20
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr %11, align 4, !tbaa !20
  br label %498

498:                                              ; preds = %479, %472
  %499 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %500 = load i32, ptr %15, align 4, !tbaa !20
  %501 = sext i32 %500 to i64
  %502 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %499, i64 noundef %501) #4
  %503 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %502)
  %504 = icmp eq i32 %503, 5
  br i1 %504, label %505, label %524

505:                                              ; preds = %498
  %506 = load ptr, ptr %5, align 8, !tbaa !5
  %507 = getelementptr inbounds %struct.SLuaCallBack, ptr %506, i32 0, i32 6
  %508 = load ptr, ptr %507, align 8, !tbaa !19
  %509 = load i32, ptr %15, align 4, !tbaa !20
  %510 = mul nsw i32 %509, 2
  %511 = add nsw i32 %510, 1
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds i32, ptr %508, i64 %512
  store i32 0, ptr %513, align 4, !tbaa !20
  %514 = load ptr, ptr %5, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.SLuaCallBack, ptr %514, i32 0, i32 6
  %516 = load ptr, ptr %515, align 8, !tbaa !19
  %517 = load i32, ptr %15, align 4, !tbaa !20
  %518 = mul nsw i32 %517, 2
  %519 = add nsw i32 %518, 0
  %520 = sext i32 %519 to i64
  %521 = getelementptr inbounds i32, ptr %516, i64 %520
  store i32 7, ptr %521, align 4, !tbaa !20
  %522 = load i32, ptr %12, align 4, !tbaa !20
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr %12, align 4, !tbaa !20
  br label %524

524:                                              ; preds = %505, %498
  %525 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %526 = load i32, ptr %15, align 4, !tbaa !20
  %527 = sext i32 %526 to i64
  %528 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %525, i64 noundef %527) #4
  %529 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %528)
  %530 = icmp eq i32 %529, 3
  br i1 %530, label %531, label %559

531:                                              ; preds = %524
  %532 = load ptr, ptr %5, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.SLuaCallBack, ptr %532, i32 0, i32 6
  %534 = load ptr, ptr %533, align 8, !tbaa !19
  %535 = load i32, ptr %15, align 4, !tbaa !20
  %536 = mul nsw i32 %535, 2
  %537 = add nsw i32 %536, 1
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds i32, ptr %534, i64 %538
  store i32 0, ptr %539, align 4, !tbaa !20
  %540 = load ptr, ptr %5, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.SLuaCallBack, ptr %540, i32 0, i32 6
  %542 = load ptr, ptr %541, align 8, !tbaa !19
  %543 = load i32, ptr %15, align 4, !tbaa !20
  %544 = mul nsw i32 %543, 2
  %545 = add nsw i32 %544, 0
  %546 = sext i32 %545 to i64
  %547 = getelementptr inbounds i32, ptr %542, i64 %546
  store i32 4, ptr %547, align 4, !tbaa !20
  %548 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %549 = load i32, ptr %15, align 4, !tbaa !20
  %550 = sext i32 %549 to i64
  %551 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %548, i64 noundef %550) #4
  %552 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %551, i32 0, i32 5
  %553 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %552, i64 noundef 0) #4
  %554 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %553) #4
  %555 = trunc i64 %554 to i32
  %556 = add nsw i32 %555, 1
  %557 = load i32, ptr %13, align 4, !tbaa !20
  %558 = add nsw i32 %557, %556
  store i32 %558, ptr %13, align 4, !tbaa !20
  br label %559

559:                                              ; preds = %531, %524
  %560 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %561 = load i32, ptr %15, align 4, !tbaa !20
  %562 = sext i32 %561 to i64
  %563 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %560, i64 noundef %562) #4
  %564 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %563)
  %565 = icmp eq i32 %564, 4
  br i1 %565, label %566, label %601

566:                                              ; preds = %559
  %567 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %568 = load i32, ptr %15, align 4, !tbaa !20
  %569 = sext i32 %568 to i64
  %570 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %567, i64 noundef %569) #4
  %571 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %570, i32 0, i32 5
  %572 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %571, i64 noundef 0) #4
  %573 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %572) #4
  %574 = trunc i64 %573 to i32
  %575 = load ptr, ptr %5, align 8, !tbaa !5
  %576 = getelementptr inbounds %struct.SLuaCallBack, ptr %575, i32 0, i32 6
  %577 = load ptr, ptr %576, align 8, !tbaa !19
  %578 = load i32, ptr %15, align 4, !tbaa !20
  %579 = mul nsw i32 %578, 2
  %580 = add nsw i32 %579, 1
  %581 = sext i32 %580 to i64
  %582 = getelementptr inbounds i32, ptr %577, i64 %581
  store i32 %574, ptr %582, align 4, !tbaa !20
  %583 = load ptr, ptr %5, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.SLuaCallBack, ptr %583, i32 0, i32 6
  %585 = load ptr, ptr %584, align 8, !tbaa !19
  %586 = load i32, ptr %15, align 4, !tbaa !20
  %587 = mul nsw i32 %586, 2
  %588 = add nsw i32 %587, 0
  %589 = sext i32 %588 to i64
  %590 = getelementptr inbounds i32, ptr %585, i64 %589
  store i32 6, ptr %590, align 4, !tbaa !20
  %591 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %592 = load i32, ptr %15, align 4, !tbaa !20
  %593 = sext i32 %592 to i64
  %594 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %591, i64 noundef %593) #4
  %595 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %594, i32 0, i32 5
  %596 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %595, i64 noundef 0) #4
  %597 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %596) #4
  %598 = trunc i64 %597 to i32
  %599 = load i32, ptr %14, align 4, !tbaa !20
  %600 = add nsw i32 %599, %598
  store i32 %600, ptr %14, align 4, !tbaa !20
  br label %601

601:                                              ; preds = %566, %559
  br label %602

602:                                              ; preds = %601, %395
  br label %603

603:                                              ; preds = %602
  %604 = load i32, ptr %15, align 4, !tbaa !20
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr %15, align 4, !tbaa !20
  br label %127, !llvm.loop !32

606:                                              ; preds = %131
  %607 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %608 = load i32, ptr %9, align 4, !tbaa !20
  %609 = sext i32 %608 to i64
  %610 = mul i64 %609, 1
  %611 = trunc i64 %610 to i32
  %612 = call noundef ptr %607(i32 noundef %611)
  %613 = load ptr, ptr %5, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.SLuaCallBack, ptr %613, i32 0, i32 1
  store ptr %612, ptr %614, align 8, !tbaa !13
  %615 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %616 = load i32, ptr %10, align 4, !tbaa !20
  %617 = sext i32 %616 to i64
  %618 = mul i64 %617, 4
  %619 = trunc i64 %618 to i32
  %620 = call noundef ptr %615(i32 noundef %619)
  %621 = load ptr, ptr %5, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.SLuaCallBack, ptr %621, i32 0, i32 2
  store ptr %620, ptr %622, align 8, !tbaa !14
  %623 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %624 = load i32, ptr %11, align 4, !tbaa !20
  %625 = sext i32 %624 to i64
  %626 = mul i64 %625, 4
  %627 = trunc i64 %626 to i32
  %628 = call noundef ptr %623(i32 noundef %627)
  %629 = load ptr, ptr %5, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.SLuaCallBack, ptr %629, i32 0, i32 3
  store ptr %628, ptr %630, align 8, !tbaa !15
  %631 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %632 = load i32, ptr %12, align 4, !tbaa !20
  %633 = sext i32 %632 to i64
  %634 = mul i64 %633, 8
  %635 = trunc i64 %634 to i32
  %636 = call noundef ptr %631(i32 noundef %635)
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.SLuaCallBack, ptr %637, i32 0, i32 17
  store ptr %636, ptr %638, align 8, !tbaa !16
  %639 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %640 = load i32, ptr %13, align 4, !tbaa !20
  %641 = sext i32 %640 to i64
  %642 = mul i64 %641, 1
  %643 = trunc i64 %642 to i32
  %644 = call noundef ptr %639(i32 noundef %643)
  %645 = load ptr, ptr %5, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.SLuaCallBack, ptr %645, i32 0, i32 4
  store ptr %644, ptr %646, align 8, !tbaa !17
  %647 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !5
  %648 = load i32, ptr %14, align 4, !tbaa !20
  %649 = sext i32 %648 to i64
  %650 = mul i64 %649, 1
  %651 = trunc i64 %650 to i32
  %652 = call noundef ptr %647(i32 noundef %651)
  %653 = load ptr, ptr %5, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.SLuaCallBack, ptr %653, i32 0, i32 14
  store ptr %652, ptr %654, align 8, !tbaa !18
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  store i32 0, ptr %18, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  store i32 0, ptr %19, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  store i32 0, ptr %20, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  store i32 0, ptr %21, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  store i32 0, ptr %22, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  store i32 0, ptr %23, align 4, !tbaa !20
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  store i32 0, ptr %24, align 4, !tbaa !20
  br label %655

655:                                              ; preds = %1087, %606
  %656 = load i32, ptr %24, align 4, !tbaa !20
  %657 = load i32, ptr %8, align 4, !tbaa !20
  %658 = icmp slt i32 %656, %657
  br i1 %658, label %660, label %659

659:                                              ; preds = %655
  store i32 11, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  br label %1090

660:                                              ; preds = %655
  %661 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %662 = load i32, ptr %24, align 4, !tbaa !20
  %663 = sext i32 %662 to i64
  %664 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %661, i64 noundef %663) #4
  %665 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %664)
  br i1 %665, label %666, label %901

666:                                              ; preds = %660
  %667 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %668 = load i32, ptr %24, align 4, !tbaa !20
  %669 = sext i32 %668 to i64
  %670 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %667, i64 noundef %669) #4
  %671 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %670)
  %672 = icmp eq i32 %671, 0
  br i1 %672, label %673, label %711

673:                                              ; preds = %666
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  store i32 0, ptr %25, align 4, !tbaa !20
  br label %674

674:                                              ; preds = %707, %673
  %675 = load i32, ptr %25, align 4, !tbaa !20
  %676 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %677 = load i32, ptr %24, align 4, !tbaa !20
  %678 = sext i32 %677 to i64
  %679 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %676, i64 noundef %678) #4
  %680 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %679, i32 0, i32 1
  %681 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %680) #4
  %682 = trunc i64 %681 to i32
  %683 = icmp slt i32 %675, %682
  br i1 %683, label %685, label %684

684:                                              ; preds = %674
  store i32 14, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  br label %710

685:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #4
  %686 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %687 = load i32, ptr %24, align 4, !tbaa !20
  %688 = sext i32 %687 to i64
  %689 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %686, i64 noundef %688) #4
  %690 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %689, i32 0, i32 1
  %691 = load i32, ptr %25, align 4, !tbaa !20
  %692 = sext i32 %691 to i64
  %693 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %690, i64 noundef %692)
  %694 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 0
  %695 = extractvalue { ptr, i64 } %693, 0
  store ptr %695, ptr %694, align 8
  %696 = getelementptr inbounds { ptr, i64 }, ptr %26, i32 0, i32 1
  %697 = extractvalue { ptr, i64 } %693, 1
  store i64 %697, ptr %696, align 8
  %698 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %26) #4
  %699 = zext i1 %698 to i8
  %700 = load ptr, ptr %5, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.SLuaCallBack, ptr %700, i32 0, i32 1
  %702 = load ptr, ptr %701, align 8, !tbaa !13
  %703 = load i32, ptr %18, align 4, !tbaa !20
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr %18, align 4, !tbaa !20
  %705 = sext i32 %703 to i64
  %706 = getelementptr inbounds i8, ptr %702, i64 %705
  store i8 %699, ptr %706, align 1, !tbaa !33
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #4
  br label %707

707:                                              ; preds = %685
  %708 = load i32, ptr %25, align 4, !tbaa !20
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr %25, align 4, !tbaa !20
  br label %674, !llvm.loop !34

710:                                              ; preds = %684
  br label %711

711:                                              ; preds = %710, %666
  %712 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %713 = load i32, ptr %24, align 4, !tbaa !20
  %714 = sext i32 %713 to i64
  %715 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %712, i64 noundef %714) #4
  %716 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %715)
  %717 = icmp eq i32 %716, 1
  br i1 %717, label %718, label %751

718:                                              ; preds = %711
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  store i32 0, ptr %27, align 4, !tbaa !20
  br label %719

719:                                              ; preds = %747, %718
  %720 = load i32, ptr %27, align 4, !tbaa !20
  %721 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %722 = load i32, ptr %24, align 4, !tbaa !20
  %723 = sext i32 %722 to i64
  %724 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %721, i64 noundef %723) #4
  %725 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %724, i32 0, i32 2
  %726 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %725) #4
  %727 = trunc i64 %726 to i32
  %728 = icmp slt i32 %720, %727
  br i1 %728, label %730, label %729

729:                                              ; preds = %719
  store i32 17, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  br label %750

730:                                              ; preds = %719
  %731 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %732 = load i32, ptr %24, align 4, !tbaa !20
  %733 = sext i32 %732 to i64
  %734 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %731, i64 noundef %733) #4
  %735 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %734, i32 0, i32 2
  %736 = load i32, ptr %27, align 4, !tbaa !20
  %737 = sext i32 %736 to i64
  %738 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %735, i64 noundef %737) #4
  %739 = load i32, ptr %738, align 4, !tbaa !20
  %740 = load ptr, ptr %5, align 8, !tbaa !5
  %741 = getelementptr inbounds %struct.SLuaCallBack, ptr %740, i32 0, i32 2
  %742 = load ptr, ptr %741, align 8, !tbaa !14
  %743 = load i32, ptr %19, align 4, !tbaa !20
  %744 = add nsw i32 %743, 1
  store i32 %744, ptr %19, align 4, !tbaa !20
  %745 = sext i32 %743 to i64
  %746 = getelementptr inbounds i32, ptr %742, i64 %745
  store i32 %739, ptr %746, align 4, !tbaa !20
  br label %747

747:                                              ; preds = %730
  %748 = load i32, ptr %27, align 4, !tbaa !20
  %749 = add nsw i32 %748, 1
  store i32 %749, ptr %27, align 4, !tbaa !20
  br label %719, !llvm.loop !35

750:                                              ; preds = %729
  br label %751

751:                                              ; preds = %750, %711
  %752 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %753 = load i32, ptr %24, align 4, !tbaa !20
  %754 = sext i32 %753 to i64
  %755 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %752, i64 noundef %754) #4
  %756 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %755)
  %757 = icmp eq i32 %756, 2
  br i1 %757, label %758, label %791

758:                                              ; preds = %751
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  store i32 0, ptr %28, align 4, !tbaa !20
  br label %759

759:                                              ; preds = %787, %758
  %760 = load i32, ptr %28, align 4, !tbaa !20
  %761 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %762 = load i32, ptr %24, align 4, !tbaa !20
  %763 = sext i32 %762 to i64
  %764 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %761, i64 noundef %763) #4
  %765 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %764, i32 0, i32 3
  %766 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %765) #4
  %767 = trunc i64 %766 to i32
  %768 = icmp slt i32 %760, %767
  br i1 %768, label %770, label %769

769:                                              ; preds = %759
  store i32 20, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  br label %790

770:                                              ; preds = %759
  %771 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %772 = load i32, ptr %24, align 4, !tbaa !20
  %773 = sext i32 %772 to i64
  %774 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %771, i64 noundef %773) #4
  %775 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %774, i32 0, i32 3
  %776 = load i32, ptr %28, align 4, !tbaa !20
  %777 = sext i32 %776 to i64
  %778 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %775, i64 noundef %777) #4
  %779 = load float, ptr %778, align 4, !tbaa !36
  %780 = load ptr, ptr %5, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.SLuaCallBack, ptr %780, i32 0, i32 3
  %782 = load ptr, ptr %781, align 8, !tbaa !15
  %783 = load i32, ptr %20, align 4, !tbaa !20
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr %20, align 4, !tbaa !20
  %785 = sext i32 %783 to i64
  %786 = getelementptr inbounds float, ptr %782, i64 %785
  store float %779, ptr %786, align 4, !tbaa !36
  br label %787

787:                                              ; preds = %770
  %788 = load i32, ptr %28, align 4, !tbaa !20
  %789 = add nsw i32 %788, 1
  store i32 %789, ptr %28, align 4, !tbaa !20
  br label %759, !llvm.loop !38

790:                                              ; preds = %769
  br label %791

791:                                              ; preds = %790, %751
  %792 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %793 = load i32, ptr %24, align 4, !tbaa !20
  %794 = sext i32 %793 to i64
  %795 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %792, i64 noundef %794) #4
  %796 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %795)
  %797 = icmp eq i32 %796, 5
  br i1 %797, label %798, label %831

798:                                              ; preds = %791
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  store i32 0, ptr %29, align 4, !tbaa !20
  br label %799

799:                                              ; preds = %827, %798
  %800 = load i32, ptr %29, align 4, !tbaa !20
  %801 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %802 = load i32, ptr %24, align 4, !tbaa !20
  %803 = sext i32 %802 to i64
  %804 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %801, i64 noundef %803) #4
  %805 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %804, i32 0, i32 4
  %806 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %805) #4
  %807 = trunc i64 %806 to i32
  %808 = icmp slt i32 %800, %807
  br i1 %808, label %810, label %809

809:                                              ; preds = %799
  store i32 23, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  br label %830

810:                                              ; preds = %799
  %811 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %812 = load i32, ptr %24, align 4, !tbaa !20
  %813 = sext i32 %812 to i64
  %814 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %811, i64 noundef %813) #4
  %815 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %814, i32 0, i32 4
  %816 = load i32, ptr %29, align 4, !tbaa !20
  %817 = sext i32 %816 to i64
  %818 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %815, i64 noundef %817) #4
  %819 = load double, ptr %818, align 8, !tbaa !39
  %820 = load ptr, ptr %5, align 8, !tbaa !5
  %821 = getelementptr inbounds %struct.SLuaCallBack, ptr %820, i32 0, i32 17
  %822 = load ptr, ptr %821, align 8, !tbaa !16
  %823 = load i32, ptr %21, align 4, !tbaa !20
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr %21, align 4, !tbaa !20
  %825 = sext i32 %823 to i64
  %826 = getelementptr inbounds double, ptr %822, i64 %825
  store double %819, ptr %826, align 8, !tbaa !39
  br label %827

827:                                              ; preds = %810
  %828 = load i32, ptr %29, align 4, !tbaa !20
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr %29, align 4, !tbaa !20
  br label %799, !llvm.loop !41

830:                                              ; preds = %809
  br label %831

831:                                              ; preds = %830, %791
  %832 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %833 = load i32, ptr %24, align 4, !tbaa !20
  %834 = sext i32 %833 to i64
  %835 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %832, i64 noundef %834) #4
  %836 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %835)
  %837 = icmp eq i32 %836, 3
  br i1 %837, label %838, label %900

838:                                              ; preds = %831
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #4
  store i32 0, ptr %30, align 4, !tbaa !20
  br label %839

839:                                              ; preds = %896, %838
  %840 = load i32, ptr %30, align 4, !tbaa !20
  %841 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %842 = load i32, ptr %24, align 4, !tbaa !20
  %843 = sext i32 %842 to i64
  %844 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %841, i64 noundef %843) #4
  %845 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %844, i32 0, i32 5
  %846 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %845) #4
  %847 = trunc i64 %846 to i32
  %848 = icmp slt i32 %840, %847
  br i1 %848, label %850, label %849

849:                                              ; preds = %839
  store i32 26, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #4
  br label %899

850:                                              ; preds = %839
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  store i32 0, ptr %31, align 4, !tbaa !20
  br label %851

851:                                              ; preds = %885, %850
  %852 = load i32, ptr %31, align 4, !tbaa !20
  %853 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %854 = load i32, ptr %24, align 4, !tbaa !20
  %855 = sext i32 %854 to i64
  %856 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %853, i64 noundef %855) #4
  %857 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %856, i32 0, i32 5
  %858 = load i32, ptr %30, align 4, !tbaa !20
  %859 = sext i32 %858 to i64
  %860 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %857, i64 noundef %859) #4
  %861 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %860) #4
  %862 = trunc i64 %861 to i32
  %863 = icmp slt i32 %852, %862
  br i1 %863, label %865, label %864

864:                                              ; preds = %851
  store i32 29, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  br label %888

865:                                              ; preds = %851
  %866 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %867 = load i32, ptr %24, align 4, !tbaa !20
  %868 = sext i32 %867 to i64
  %869 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %866, i64 noundef %868) #4
  %870 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %869, i32 0, i32 5
  %871 = load i32, ptr %30, align 4, !tbaa !20
  %872 = sext i32 %871 to i64
  %873 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %870, i64 noundef %872) #4
  %874 = load i32, ptr %31, align 4, !tbaa !20
  %875 = sext i32 %874 to i64
  %876 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %873, i64 noundef %875)
  %877 = load i8, ptr %876, align 1, !tbaa !33
  %878 = load ptr, ptr %5, align 8, !tbaa !5
  %879 = getelementptr inbounds %struct.SLuaCallBack, ptr %878, i32 0, i32 4
  %880 = load ptr, ptr %879, align 8, !tbaa !17
  %881 = load i32, ptr %22, align 4, !tbaa !20
  %882 = add nsw i32 %881, 1
  store i32 %882, ptr %22, align 4, !tbaa !20
  %883 = sext i32 %881 to i64
  %884 = getelementptr inbounds i8, ptr %880, i64 %883
  store i8 %877, ptr %884, align 1, !tbaa !33
  br label %885

885:                                              ; preds = %865
  %886 = load i32, ptr %31, align 4, !tbaa !20
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr %31, align 4, !tbaa !20
  br label %851, !llvm.loop !42

888:                                              ; preds = %864
  %889 = load ptr, ptr %5, align 8, !tbaa !5
  %890 = getelementptr inbounds %struct.SLuaCallBack, ptr %889, i32 0, i32 4
  %891 = load ptr, ptr %890, align 8, !tbaa !17
  %892 = load i32, ptr %22, align 4, !tbaa !20
  %893 = add nsw i32 %892, 1
  store i32 %893, ptr %22, align 4, !tbaa !20
  %894 = sext i32 %892 to i64
  %895 = getelementptr inbounds i8, ptr %891, i64 %894
  store i8 0, ptr %895, align 1, !tbaa !33
  br label %896

896:                                              ; preds = %888
  %897 = load i32, ptr %30, align 4, !tbaa !20
  %898 = add nsw i32 %897, 1
  store i32 %898, ptr %30, align 4, !tbaa !20
  br label %839, !llvm.loop !43

899:                                              ; preds = %849
  br label %900

900:                                              ; preds = %899, %831
  br label %1086

901:                                              ; preds = %660
  %902 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %903 = load i32, ptr %24, align 4, !tbaa !20
  %904 = sext i32 %903 to i64
  %905 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %902, i64 noundef %904) #4
  %906 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %905)
  %907 = icmp eq i32 %906, 0
  br i1 %907, label %908, label %928

908:                                              ; preds = %901
  call void @llvm.lifetime.start.p0(i64 16, ptr %32) #4
  %909 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %910 = load i32, ptr %24, align 4, !tbaa !20
  %911 = sext i32 %910 to i64
  %912 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %909, i64 noundef %911) #4
  %913 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %912, i32 0, i32 1
  %914 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %913, i64 noundef 0)
  %915 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 0
  %916 = extractvalue { ptr, i64 } %914, 0
  store ptr %916, ptr %915, align 8
  %917 = getelementptr inbounds { ptr, i64 }, ptr %32, i32 0, i32 1
  %918 = extractvalue { ptr, i64 } %914, 1
  store i64 %918, ptr %917, align 8
  %919 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %32) #4
  %920 = zext i1 %919 to i8
  %921 = load ptr, ptr %5, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.SLuaCallBack, ptr %921, i32 0, i32 1
  %923 = load ptr, ptr %922, align 8, !tbaa !13
  %924 = load i32, ptr %18, align 4, !tbaa !20
  %925 = add nsw i32 %924, 1
  store i32 %925, ptr %18, align 4, !tbaa !20
  %926 = sext i32 %924 to i64
  %927 = getelementptr inbounds i8, ptr %923, i64 %926
  store i8 %920, ptr %927, align 1, !tbaa !33
  call void @llvm.lifetime.end.p0(i64 16, ptr %32) #4
  br label %928

928:                                              ; preds = %908, %901
  %929 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %930 = load i32, ptr %24, align 4, !tbaa !20
  %931 = sext i32 %930 to i64
  %932 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %929, i64 noundef %931) #4
  %933 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %932)
  %934 = icmp eq i32 %933, 1
  br i1 %934, label %935, label %950

935:                                              ; preds = %928
  %936 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %937 = load i32, ptr %24, align 4, !tbaa !20
  %938 = sext i32 %937 to i64
  %939 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %936, i64 noundef %938) #4
  %940 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %939, i32 0, i32 2
  %941 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %940, i64 noundef 0) #4
  %942 = load i32, ptr %941, align 4, !tbaa !20
  %943 = load ptr, ptr %5, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.SLuaCallBack, ptr %943, i32 0, i32 2
  %945 = load ptr, ptr %944, align 8, !tbaa !14
  %946 = load i32, ptr %19, align 4, !tbaa !20
  %947 = add nsw i32 %946, 1
  store i32 %947, ptr %19, align 4, !tbaa !20
  %948 = sext i32 %946 to i64
  %949 = getelementptr inbounds i32, ptr %945, i64 %948
  store i32 %942, ptr %949, align 4, !tbaa !20
  br label %950

950:                                              ; preds = %935, %928
  %951 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %952 = load i32, ptr %24, align 4, !tbaa !20
  %953 = sext i32 %952 to i64
  %954 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %951, i64 noundef %953) #4
  %955 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %954)
  %956 = icmp eq i32 %955, 2
  br i1 %956, label %957, label %972

957:                                              ; preds = %950
  %958 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %959 = load i32, ptr %24, align 4, !tbaa !20
  %960 = sext i32 %959 to i64
  %961 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %958, i64 noundef %960) #4
  %962 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %961, i32 0, i32 3
  %963 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %962, i64 noundef 0) #4
  %964 = load float, ptr %963, align 4, !tbaa !36
  %965 = load ptr, ptr %5, align 8, !tbaa !5
  %966 = getelementptr inbounds %struct.SLuaCallBack, ptr %965, i32 0, i32 3
  %967 = load ptr, ptr %966, align 8, !tbaa !15
  %968 = load i32, ptr %20, align 4, !tbaa !20
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr %20, align 4, !tbaa !20
  %970 = sext i32 %968 to i64
  %971 = getelementptr inbounds float, ptr %967, i64 %970
  store float %964, ptr %971, align 4, !tbaa !36
  br label %972

972:                                              ; preds = %957, %950
  %973 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %974 = load i32, ptr %24, align 4, !tbaa !20
  %975 = sext i32 %974 to i64
  %976 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %973, i64 noundef %975) #4
  %977 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %976)
  %978 = icmp eq i32 %977, 5
  br i1 %978, label %979, label %994

979:                                              ; preds = %972
  %980 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %981 = load i32, ptr %24, align 4, !tbaa !20
  %982 = sext i32 %981 to i64
  %983 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %980, i64 noundef %982) #4
  %984 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %983, i32 0, i32 4
  %985 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %984, i64 noundef 0) #4
  %986 = load double, ptr %985, align 8, !tbaa !39
  %987 = load ptr, ptr %5, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.SLuaCallBack, ptr %987, i32 0, i32 17
  %989 = load ptr, ptr %988, align 8, !tbaa !16
  %990 = load i32, ptr %21, align 4, !tbaa !20
  %991 = add nsw i32 %990, 1
  store i32 %991, ptr %21, align 4, !tbaa !20
  %992 = sext i32 %990 to i64
  %993 = getelementptr inbounds double, ptr %989, i64 %992
  store double %986, ptr %993, align 8, !tbaa !39
  br label %994

994:                                              ; preds = %979, %972
  %995 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %996 = load i32, ptr %24, align 4, !tbaa !20
  %997 = sext i32 %996 to i64
  %998 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %995, i64 noundef %997) #4
  %999 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %998)
  %1000 = icmp eq i32 %999, 3
  br i1 %1000, label %1001, label %1043

1001:                                             ; preds = %994
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #4
  store i32 0, ptr %33, align 4, !tbaa !20
  br label %1002

1002:                                             ; preds = %1032, %1001
  %1003 = load i32, ptr %33, align 4, !tbaa !20
  %1004 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %1005 = load i32, ptr %24, align 4, !tbaa !20
  %1006 = sext i32 %1005 to i64
  %1007 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1004, i64 noundef %1006) #4
  %1008 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %1007, i32 0, i32 5
  %1009 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1008, i64 noundef 0) #4
  %1010 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %1009) #4
  %1011 = trunc i64 %1010 to i32
  %1012 = icmp slt i32 %1003, %1011
  br i1 %1012, label %1014, label %1013

1013:                                             ; preds = %1002
  store i32 32, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #4
  br label %1035

1014:                                             ; preds = %1002
  %1015 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %1016 = load i32, ptr %24, align 4, !tbaa !20
  %1017 = sext i32 %1016 to i64
  %1018 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1015, i64 noundef %1017) #4
  %1019 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %1018, i32 0, i32 5
  %1020 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1019, i64 noundef 0) #4
  %1021 = load i32, ptr %33, align 4, !tbaa !20
  %1022 = sext i32 %1021 to i64
  %1023 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1020, i64 noundef %1022)
  %1024 = load i8, ptr %1023, align 1, !tbaa !33
  %1025 = load ptr, ptr %5, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.SLuaCallBack, ptr %1025, i32 0, i32 4
  %1027 = load ptr, ptr %1026, align 8, !tbaa !17
  %1028 = load i32, ptr %22, align 4, !tbaa !20
  %1029 = add nsw i32 %1028, 1
  store i32 %1029, ptr %22, align 4, !tbaa !20
  %1030 = sext i32 %1028 to i64
  %1031 = getelementptr inbounds i8, ptr %1027, i64 %1030
  store i8 %1024, ptr %1031, align 1, !tbaa !33
  br label %1032

1032:                                             ; preds = %1014
  %1033 = load i32, ptr %33, align 4, !tbaa !20
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %33, align 4, !tbaa !20
  br label %1002, !llvm.loop !44

1035:                                             ; preds = %1013
  %1036 = load ptr, ptr %5, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.SLuaCallBack, ptr %1036, i32 0, i32 4
  %1038 = load ptr, ptr %1037, align 8, !tbaa !17
  %1039 = load i32, ptr %22, align 4, !tbaa !20
  %1040 = add nsw i32 %1039, 1
  store i32 %1040, ptr %22, align 4, !tbaa !20
  %1041 = sext i32 %1039 to i64
  %1042 = getelementptr inbounds i8, ptr %1038, i64 %1041
  store i8 0, ptr %1042, align 1, !tbaa !33
  br label %1043

1043:                                             ; preds = %1035, %994
  %1044 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %1045 = load i32, ptr %24, align 4, !tbaa !20
  %1046 = sext i32 %1045 to i64
  %1047 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1044, i64 noundef %1046) #4
  %1048 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %1047)
  %1049 = icmp eq i32 %1048, 4
  br i1 %1049, label %1050, label %1085

1050:                                             ; preds = %1043
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #4
  store i32 0, ptr %34, align 4, !tbaa !20
  br label %1051

1051:                                             ; preds = %1081, %1050
  %1052 = load i32, ptr %34, align 4, !tbaa !20
  %1053 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %1054 = load i32, ptr %24, align 4, !tbaa !20
  %1055 = sext i32 %1054 to i64
  %1056 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1053, i64 noundef %1055) #4
  %1057 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %1056, i32 0, i32 5
  %1058 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1057, i64 noundef 0) #4
  %1059 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %1058) #4
  %1060 = trunc i64 %1059 to i32
  %1061 = icmp slt i32 %1052, %1060
  br i1 %1061, label %1063, label %1062

1062:                                             ; preds = %1051
  store i32 35, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #4
  br label %1084

1063:                                             ; preds = %1051
  %1064 = getelementptr inbounds %class.CLuaFunctionData, ptr %35, i32 0, i32 1
  %1065 = load i32, ptr %24, align 4, !tbaa !20
  %1066 = sext i32 %1065 to i64
  %1067 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1064, i64 noundef %1066) #4
  %1068 = getelementptr inbounds %class.CLuaFunctionDataItem, ptr %1067, i32 0, i32 5
  %1069 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1068, i64 noundef 0) #4
  %1070 = load i32, ptr %34, align 4, !tbaa !20
  %1071 = sext i32 %1070 to i64
  %1072 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %1069, i64 noundef %1071)
  %1073 = load i8, ptr %1072, align 1, !tbaa !33
  %1074 = load ptr, ptr %5, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.SLuaCallBack, ptr %1074, i32 0, i32 14
  %1076 = load ptr, ptr %1075, align 8, !tbaa !18
  %1077 = load i32, ptr %23, align 4, !tbaa !20
  %1078 = add nsw i32 %1077, 1
  store i32 %1078, ptr %23, align 4, !tbaa !20
  %1079 = sext i32 %1077 to i64
  %1080 = getelementptr inbounds i8, ptr %1076, i64 %1079
  store i8 %1073, ptr %1080, align 1, !tbaa !33
  br label %1081

1081:                                             ; preds = %1063
  %1082 = load i32, ptr %34, align 4, !tbaa !20
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr %34, align 4, !tbaa !20
  br label %1051, !llvm.loop !45

1084:                                             ; preds = %1062
  br label %1085

1085:                                             ; preds = %1084, %1043
  br label %1086

1086:                                             ; preds = %1085, %900
  br label %1087

1087:                                             ; preds = %1086
  %1088 = load i32, ptr %24, align 4, !tbaa !20
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr %24, align 4, !tbaa !20
  br label %655, !llvm.loop !46

1090:                                             ; preds = %659
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  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 %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #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
  br label %1091

1091:                                             ; preds = %1090, %106
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  ret void
}

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 = { "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 = { 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 #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 0}
!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 = !{!10, !11, i64 40}
!13 = !{!10, !6, i64 8}
!14 = !{!10, !6, i64 16}
!15 = !{!10, !6, i64 24}
!16 = !{!10, !6, i64 136}
!17 = !{!10, !6, i64 32}
!18 = !{!10, !6, i64 112}
!19 = !{!10, !6, i64 48}
!20 = !{!11, !11, i64 0}
!21 = !{!10, !11, i64 88}
!22 = !{!10, !6, i64 56}
!23 = !{!10, !6, i64 64}
!24 = !{!10, !6, i64 72}
!25 = !{!10, !6, i64 144}
!26 = !{!10, !6, i64 80}
!27 = !{!10, !6, i64 120}
!28 = !{!10, !6, i64 96}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}
!33 = !{!7, !7, i64 0}
!34 = distinct !{!34, !30}
!35 = distinct !{!35, !30}
!36 = !{!37, !37, i64 0}
!37 = !{!"float", !7, i64 0}
!38 = distinct !{!38, !30}
!39 = !{!40, !40, i64 0}
!40 = !{!"double", !7, i64 0}
!41 = distinct !{!41, !30}
!42 = distinct !{!42, !30}
!43 = distinct !{!43, !30}
!44 = distinct !{!44, !30}
!45 = distinct !{!45, !30}
!46 = distinct !{!46, !30}


; 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 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 #2

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

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

; 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 #3 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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN16CLuaFunctionData30writeDataToLua_luaFunctionCallEP12SLuaCallBackPKi(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr nocapture noundef %1, ptr nocapture noundef readonly %2) local_unnamed_addr #3 align 2 {
  %4 = alloca %"struct.std::_Bit_reference", align 8
  %5 = alloca %"struct.std::_Bit_reference", align 8
  store i32 -1, ptr %1, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %1, i64 40
  %7 = getelementptr inbounds i8, ptr %1, i64 8
  %8 = getelementptr inbounds i8, ptr %1, i64 16
  %9 = getelementptr inbounds i8, ptr %1, i64 24
  %10 = getelementptr inbounds i8, ptr %1, i64 136
  store ptr null, ptr %10, align 8, !tbaa !11
  %11 = getelementptr inbounds i8, ptr %1, i64 32
  %12 = getelementptr inbounds i8, ptr %1, i64 112
  store ptr null, ptr %12, align 8, !tbaa !12
  %13 = getelementptr inbounds i8, ptr %1, i64 48
  store ptr null, ptr %13, align 8, !tbaa !13
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %7, i8 0, i64 36, i1 false)
  %14 = load i32, ptr %2, align 4, !tbaa !14
  %15 = getelementptr inbounds i8, ptr %1, i64 88
  store i32 %14, ptr %15, align 8, !tbaa !15
  %16 = getelementptr inbounds i8, ptr %1, i64 56
  %17 = getelementptr inbounds i8, ptr %1, i64 144
  store ptr null, ptr %17, align 8, !tbaa !16
  %18 = getelementptr inbounds i8, ptr %1, i64 120
  store ptr null, ptr %18, align 8, !tbaa !17
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %16, i8 0, i64 32, i1 false)
  %19 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %20 = shl i32 %14, 3
  %21 = tail call noundef ptr %19(i32 noundef %20)
  %22 = getelementptr inbounds i8, ptr %1, i64 96
  store ptr %21, ptr %22, align 8, !tbaa !19
  %23 = load i32, ptr %15, align 8, !tbaa !15
  %24 = icmp sgt i32 %23, 0
  br i1 %24, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %.lr.ph, %3
  %25 = getelementptr inbounds i8, ptr %0, i64 8
  %26 = tail call noundef i64 @_ZNKSt6vectorI20CLuaFunctionDataItemSaIS0_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %25) #5
  %27 = trunc i64 %26 to i32
  %28 = icmp sgt i32 %27, 0
  br i1 %28, label %36, label %.loopexit300

.lr.ph:                                           ; preds = %3, %.lr.ph
  %indvars.iv = phi i64 [ %indvars.iv.next, %.lr.ph ], [ 0, %3 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %29 = getelementptr inbounds i32, ptr %2, i64 %indvars.iv.next
  %30 = load i32, ptr %29, align 4, !tbaa !14
  %31 = getelementptr inbounds i32, ptr %21, i64 %indvars.iv
  store i32 %30, ptr %31, align 4, !tbaa !14
  %32 = load i32, ptr %15, align 8, !tbaa !15
  %33 = shl nsw i32 %32, 1
  %34 = sext i32 %33 to i64
  %35 = icmp slt i64 %indvars.iv.next, %34
  br i1 %35, label %.lr.ph, label %._crit_edge, !llvm.loop !20

36:                                               ; preds = %._crit_edge
  store i32 %27, ptr %6, align 8, !tbaa !22
  %37 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %38 = shl i32 %27, 3
  %39 = tail call noundef ptr %37(i32 noundef %38)
  store ptr %39, ptr %13, align 8, !tbaa !13
  %wide.trip.count = and i64 %26, 2147483647
  br label %57

.lr.ph355:                                        ; preds = %.loopexit301
  %40 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %41 = tail call noundef ptr %40(i32 noundef %.3285)
  store ptr %41, ptr %7, align 8, !tbaa !23
  %42 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %43 = shl i32 %.3281, 2
  %44 = tail call noundef ptr %42(i32 noundef %43)
  store ptr %44, ptr %8, align 8, !tbaa !24
  %45 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %46 = shl i32 %.3277, 2
  %47 = tail call noundef ptr %45(i32 noundef %46)
  store ptr %47, ptr %9, align 8, !tbaa !25
  %48 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %49 = shl i32 %.3273, 3
  %50 = tail call noundef ptr %48(i32 noundef %49)
  store ptr %50, ptr %10, align 8, !tbaa !11
  %51 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %52 = tail call noundef ptr %51(i32 noundef %.3269)
  store ptr %52, ptr %11, align 8, !tbaa !26
  %53 = load ptr, ptr @simCreateBuffer, align 8, !tbaa !18
  %54 = tail call noundef ptr %53(i32 noundef %.1265)
  store ptr %54, ptr %12, align 8, !tbaa !12
  %55 = getelementptr inbounds i8, ptr %5, i64 8
  %56 = getelementptr inbounds i8, ptr %4, i64 8
  br label %258

57:                                               ; preds = %36, %.loopexit301
  %indvars.iv369 = phi i64 [ 0, %36 ], [ %indvars.iv.next370, %.loopexit301 ]
  %.0264312 = phi i32 [ 0, %36 ], [ %.1265, %.loopexit301 ]
  %.0266311 = phi i32 [ 0, %36 ], [ %.3269, %.loopexit301 ]
  %.0270310 = phi i32 [ 0, %36 ], [ %.3273, %.loopexit301 ]
  %.0274309 = phi i32 [ 0, %36 ], [ %.3277, %.loopexit301 ]
  %.0278308 = phi i32 [ 0, %36 ], [ %.3281, %.loopexit301 ]
  %.0282307 = phi i32 [ 0, %36 ], [ %.3285, %.loopexit301 ]
  %58 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %59 = tail call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %58)
  %60 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %61 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %60)
  %62 = icmp eq i32 %61, -1
  br i1 %59, label %63, label %169

63:                                               ; preds = %57
  br i1 %62, label %64, label %73

64:                                               ; preds = %63
  %65 = load ptr, ptr %13, align 8, !tbaa !13
  %66 = shl nuw nsw i64 %indvars.iv369, 1
  %67 = getelementptr inbounds i32, ptr %65, i64 %66
  store i32 8, ptr %67, align 4, !tbaa !14
  %68 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %69 = tail call noundef i32 @_ZN20CLuaFunctionDataItem15getNilTableSizeEv(ptr noundef nonnull align 8 dereferenceable(156) %68)
  %70 = load ptr, ptr %13, align 8, !tbaa !13
  %71 = or disjoint i64 %66, 1
  %72 = getelementptr inbounds i32, ptr %70, i64 %71
  store i32 %69, ptr %72, align 4, !tbaa !14
  br label %73

73:                                               ; preds = %64, %63
  %74 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %75 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %74)
  %76 = icmp eq i32 %75, 0
  br i1 %76, label %77, label %89

77:                                               ; preds = %73
  %78 = load ptr, ptr %13, align 8, !tbaa !13
  %79 = shl nuw nsw i64 %indvars.iv369, 1
  %80 = getelementptr inbounds i32, ptr %78, i64 %79
  store i32 9, ptr %80, align 4, !tbaa !14
  %81 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %82 = getelementptr inbounds i8, ptr %81, i64 8
  %83 = tail call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %82) #5
  %84 = trunc i64 %83 to i32
  %85 = load ptr, ptr %13, align 8, !tbaa !13
  %86 = or disjoint i64 %79, 1
  %87 = getelementptr inbounds i32, ptr %85, i64 %86
  store i32 %84, ptr %87, align 4, !tbaa !14
  %88 = add nsw i32 %.0282307, %84
  br label %89

89:                                               ; preds = %77, %73
  %.1283 = phi i32 [ %88, %77 ], [ %.0282307, %73 ]
  %90 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %91 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %90)
  %92 = icmp eq i32 %91, 1
  br i1 %92, label %93, label %105

93:                                               ; preds = %89
  %94 = load ptr, ptr %13, align 8, !tbaa !13
  %95 = shl nuw nsw i64 %indvars.iv369, 1
  %96 = getelementptr inbounds i32, ptr %94, i64 %95
  store i32 10, ptr %96, align 4, !tbaa !14
  %97 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %98 = getelementptr inbounds i8, ptr %97, i64 48
  %99 = tail call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %98) #5
  %100 = trunc i64 %99 to i32
  %101 = load ptr, ptr %13, align 8, !tbaa !13
  %102 = or disjoint i64 %95, 1
  %103 = getelementptr inbounds i32, ptr %101, i64 %102
  store i32 %100, ptr %103, align 4, !tbaa !14
  %104 = add nsw i32 %.0278308, %100
  br label %105

105:                                              ; preds = %93, %89
  %.1279 = phi i32 [ %104, %93 ], [ %.0278308, %89 ]
  %106 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %107 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %106)
  %108 = icmp eq i32 %107, 2
  br i1 %108, label %109, label %121

109:                                              ; preds = %105
  %110 = load ptr, ptr %13, align 8, !tbaa !13
  %111 = shl nuw nsw i64 %indvars.iv369, 1
  %112 = getelementptr inbounds i32, ptr %110, i64 %111
  store i32 11, ptr %112, align 4, !tbaa !14
  %113 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %114 = getelementptr inbounds i8, ptr %113, i64 72
  %115 = tail call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %114) #5
  %116 = trunc i64 %115 to i32
  %117 = load ptr, ptr %13, align 8, !tbaa !13
  %118 = or disjoint i64 %111, 1
  %119 = getelementptr inbounds i32, ptr %117, i64 %118
  store i32 %116, ptr %119, align 4, !tbaa !14
  %120 = add nsw i32 %.0274309, %116
  br label %121

121:                                              ; preds = %109, %105
  %.1275 = phi i32 [ %120, %109 ], [ %.0274309, %105 ]
  %122 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %123 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %122)
  %124 = icmp eq i32 %123, 5
  br i1 %124, label %125, label %137

125:                                              ; preds = %121
  %126 = load ptr, ptr %13, align 8, !tbaa !13
  %127 = shl nuw nsw i64 %indvars.iv369, 1
  %128 = getelementptr inbounds i32, ptr %126, i64 %127
  store i32 15, ptr %128, align 4, !tbaa !14
  %129 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %130 = getelementptr inbounds i8, ptr %129, i64 96
  %131 = tail call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %130) #5
  %132 = trunc i64 %131 to i32
  %133 = load ptr, ptr %13, align 8, !tbaa !13
  %134 = or disjoint i64 %127, 1
  %135 = getelementptr inbounds i32, ptr %133, i64 %134
  store i32 %132, ptr %135, align 4, !tbaa !14
  %136 = add nsw i32 %.0270310, %132
  br label %137

137:                                              ; preds = %125, %121
  %.1271 = phi i32 [ %136, %125 ], [ %.0270310, %121 ]
  %138 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %139 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %138)
  %140 = icmp eq i32 %139, 3
  br i1 %140, label %141, label %.loopexit301

141:                                              ; preds = %137
  %142 = load ptr, ptr %13, align 8, !tbaa !13
  %143 = shl nuw nsw i64 %indvars.iv369, 1
  %144 = getelementptr inbounds i32, ptr %142, i64 %143
  store i32 12, ptr %144, align 4, !tbaa !14
  %145 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %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) #5
  %148 = trunc i64 %147 to i32
  %149 = load ptr, ptr %13, align 8, !tbaa !13
  %150 = or disjoint i64 %143, 1
  %151 = getelementptr inbounds i32, ptr %149, i64 %150
  store i32 %148, ptr %151, align 4, !tbaa !14
  %152 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %153 = getelementptr inbounds i8, ptr %152, i64 120
  %154 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %153) #5
  %155 = trunc i64 %154 to i32
  %156 = icmp sgt i32 %155, 0
  br i1 %156, label %.lr.ph306, label %.loopexit301

.lr.ph306:                                        ; preds = %141, %.lr.ph306
  %indvars.iv366 = phi i64 [ %indvars.iv.next367, %.lr.ph306 ], [ 0, %141 ]
  %.1267303 = phi i32 [ %163, %.lr.ph306 ], [ %.0266311, %141 ]
  %157 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %158 = getelementptr inbounds i8, ptr %157, i64 120
  %159 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %158, i64 noundef %indvars.iv366) #5
  %160 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %159) #5
  %161 = trunc i64 %160 to i32
  %162 = add i32 %.1267303, 1
  %163 = add i32 %162, %161
  %indvars.iv.next367 = add nuw nsw i64 %indvars.iv366, 1
  %164 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %165 = getelementptr inbounds i8, ptr %164, i64 120
  %166 = tail call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %165) #5
  %sext = shl i64 %166, 32
  %167 = ashr exact i64 %sext, 32
  %168 = icmp slt i64 %indvars.iv.next367, %167
  br i1 %168, label %.lr.ph306, label %.loopexit301, !llvm.loop !27

169:                                              ; preds = %57
  br i1 %62, label %170, label %176

170:                                              ; preds = %169
  %171 = load ptr, ptr %13, align 8, !tbaa !13
  %172 = shl nuw nsw i64 %indvars.iv369, 1
  %173 = or disjoint i64 %172, 1
  %174 = getelementptr inbounds i32, ptr %171, i64 %173
  store i32 0, ptr %174, align 4, !tbaa !14
  %175 = getelementptr inbounds i32, ptr %171, i64 %172
  store i32 0, ptr %175, align 4, !tbaa !14
  br label %176

176:                                              ; preds = %170, %169
  %177 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %178 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %177)
  %179 = icmp eq i32 %178, 0
  br i1 %179, label %180, label %187

180:                                              ; preds = %176
  %181 = load ptr, ptr %13, align 8, !tbaa !13
  %182 = shl nuw nsw i64 %indvars.iv369, 1
  %183 = or disjoint i64 %182, 1
  %184 = getelementptr inbounds i32, ptr %181, i64 %183
  store i32 0, ptr %184, align 4, !tbaa !14
  %185 = getelementptr inbounds i32, ptr %181, i64 %182
  store i32 1, ptr %185, align 4, !tbaa !14
  %186 = add nsw i32 %.0282307, 1
  br label %187

187:                                              ; preds = %180, %176
  %.2284 = phi i32 [ %186, %180 ], [ %.0282307, %176 ]
  %188 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %189 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %188)
  %190 = icmp eq i32 %189, 1
  br i1 %190, label %191, label %198

191:                                              ; preds = %187
  %192 = load ptr, ptr %13, align 8, !tbaa !13
  %193 = shl nuw nsw i64 %indvars.iv369, 1
  %194 = or disjoint i64 %193, 1
  %195 = getelementptr inbounds i32, ptr %192, i64 %194
  store i32 0, ptr %195, align 4, !tbaa !14
  %196 = getelementptr inbounds i32, ptr %192, i64 %193
  store i32 2, ptr %196, align 4, !tbaa !14
  %197 = add nsw i32 %.0278308, 1
  br label %198

198:                                              ; preds = %191, %187
  %.2280 = phi i32 [ %197, %191 ], [ %.0278308, %187 ]
  %199 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %200 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %199)
  %201 = icmp eq i32 %200, 2
  br i1 %201, label %202, label %209

202:                                              ; preds = %198
  %203 = load ptr, ptr %13, align 8, !tbaa !13
  %204 = shl nuw nsw i64 %indvars.iv369, 1
  %205 = or disjoint i64 %204, 1
  %206 = getelementptr inbounds i32, ptr %203, i64 %205
  store i32 0, ptr %206, align 4, !tbaa !14
  %207 = getelementptr inbounds i32, ptr %203, i64 %204
  store i32 3, ptr %207, align 4, !tbaa !14
  %208 = add nsw i32 %.0274309, 1
  br label %209

209:                                              ; preds = %202, %198
  %.2276 = phi i32 [ %208, %202 ], [ %.0274309, %198 ]
  %210 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %211 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %210)
  %212 = icmp eq i32 %211, 5
  br i1 %212, label %213, label %220

213:                                              ; preds = %209
  %214 = load ptr, ptr %13, align 8, !tbaa !13
  %215 = shl nuw nsw i64 %indvars.iv369, 1
  %216 = or disjoint i64 %215, 1
  %217 = getelementptr inbounds i32, ptr %214, i64 %216
  store i32 0, ptr %217, align 4, !tbaa !14
  %218 = getelementptr inbounds i32, ptr %214, i64 %215
  store i32 7, ptr %218, align 4, !tbaa !14
  %219 = add nsw i32 %.0270310, 1
  br label %220

220:                                              ; preds = %213, %209
  %.2272 = phi i32 [ %219, %213 ], [ %.0270310, %209 ]
  %221 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %222 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %221)
  %223 = icmp eq i32 %222, 3
  br i1 %223, label %224, label %237

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

237:                                              ; preds = %224, %220
  %.2268 = phi i32 [ %236, %224 ], [ %.0266311, %220 ]
  %238 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %239 = tail call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %238)
  %240 = icmp eq i32 %239, 4
  br i1 %240, label %241, label %.loopexit301

241:                                              ; preds = %237
  %242 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %243 = getelementptr inbounds i8, ptr %242, i64 120
  %244 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %243, i64 noundef 0) #5
  %245 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %244) #5
  %246 = trunc i64 %245 to i32
  %247 = load ptr, ptr %13, align 8, !tbaa !13
  %248 = shl nuw nsw i64 %indvars.iv369, 1
  %249 = or disjoint i64 %248, 1
  %250 = getelementptr inbounds i32, ptr %247, i64 %249
  store i32 %246, ptr %250, align 4, !tbaa !14
  %251 = getelementptr inbounds i32, ptr %247, i64 %248
  store i32 6, ptr %251, align 4, !tbaa !14
  %252 = tail call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv369) #5
  %253 = getelementptr inbounds i8, ptr %252, i64 120
  %254 = tail call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %253, i64 noundef 0) #5
  %255 = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %254) #5
  %256 = trunc i64 %255 to i32
  %257 = add nsw i32 %.0264312, %256
  br label %.loopexit301

.loopexit301:                                     ; preds = %.lr.ph306, %141, %137, %241, %237
  %.3285 = phi i32 [ %.1283, %137 ], [ %.2284, %241 ], [ %.2284, %237 ], [ %.1283, %141 ], [ %.1283, %.lr.ph306 ]
  %.3281 = phi i32 [ %.1279, %137 ], [ %.2280, %241 ], [ %.2280, %237 ], [ %.1279, %141 ], [ %.1279, %.lr.ph306 ]
  %.3277 = phi i32 [ %.1275, %137 ], [ %.2276, %241 ], [ %.2276, %237 ], [ %.1275, %141 ], [ %.1275, %.lr.ph306 ]
  %.3273 = phi i32 [ %.1271, %137 ], [ %.2272, %241 ], [ %.2272, %237 ], [ %.1271, %141 ], [ %.1271, %.lr.ph306 ]
  %.3269 = phi i32 [ %.0266311, %137 ], [ %.2268, %241 ], [ %.2268, %237 ], [ %.0266311, %141 ], [ %163, %.lr.ph306 ]
  %.1265 = phi i32 [ %.0264312, %137 ], [ %257, %241 ], [ %.0264312, %237 ], [ %.0264312, %141 ], [ %.0264312, %.lr.ph306 ]
  %indvars.iv.next370 = add nuw nsw i64 %indvars.iv369, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next370, %wide.trip.count
  br i1 %exitcond.not, label %.lr.ph355, label %57, !llvm.loop !28

258:                                              ; preds = %.lr.ph355, %.loopexit
  %indvars.iv424 = phi i64 [ 0, %.lr.ph355 ], [ %indvars.iv.next425, %.loopexit ]
  %.0238352 = phi i32 [ 0, %.lr.ph355 ], [ %.2, %.loopexit ]
  %.0239351 = phi i32 [ 0, %.lr.ph355 ], [ %.5, %.loopexit ]
  %.0242350 = phi i32 [ 0, %.lr.ph355 ], [ %.4246, %.loopexit ]
  %.0247349 = phi i32 [ 0, %.lr.ph355 ], [ %.4251, %.loopexit ]
  %.0252348 = phi i32 [ 0, %.lr.ph355 ], [ %.4256, %.loopexit ]
  %.0257347 = phi i32 [ 0, %.lr.ph355 ], [ %.4261, %.loopexit ]
  %259 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %260 = call noundef zeroext i1 @_ZN20CLuaFunctionDataItem7isTableEv(ptr noundef nonnull align 8 dereferenceable(156) %259)
  %261 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %262 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %261)
  %263 = icmp eq i32 %262, 0
  br i1 %260, label %264, label %387

264:                                              ; preds = %258
  br i1 %263, label %.preheader295, label %.loopexit296

.preheader295:                                    ; preds = %264
  %265 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %266 = getelementptr inbounds i8, ptr %265, i64 8
  %267 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %266) #5
  %268 = trunc i64 %267 to i32
  %269 = icmp sgt i32 %268, 0
  br i1 %269, label %.lr.ph325.preheader, label %.loopexit296

.lr.ph325.preheader:                              ; preds = %.preheader295
  %270 = sext i32 %.0257347 to i64
  br label %.lr.ph325

.lr.ph325:                                        ; preds = %.lr.ph325.preheader, %.lr.ph325
  %indvars.iv388 = phi i64 [ %270, %.lr.ph325.preheader ], [ %indvars.iv.next389, %.lr.ph325 ]
  %indvars.iv386 = phi i64 [ 0, %.lr.ph325.preheader ], [ %indvars.iv.next387, %.lr.ph325 ]
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #5
  %271 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %272 = getelementptr inbounds i8, ptr %271, i64 8
  %273 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %272, i64 noundef %indvars.iv386)
  %274 = extractvalue { ptr, i64 } %273, 0
  store ptr %274, ptr %4, align 8
  %275 = extractvalue { ptr, i64 } %273, 1
  store i64 %275, ptr %56, align 8
  %276 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %4) #5
  %277 = zext i1 %276 to i8
  %278 = load ptr, ptr %7, align 8, !tbaa !23
  %indvars.iv.next389 = add nsw i64 %indvars.iv388, 1
  %279 = getelementptr inbounds i8, ptr %278, i64 %indvars.iv388
  store i8 %277, ptr %279, align 1, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #5
  %indvars.iv.next387 = add nuw nsw i64 %indvars.iv386, 1
  %280 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %281 = getelementptr inbounds i8, ptr %280, i64 8
  %282 = call noundef i64 @_ZNKSt6vectorIbSaIbEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(40) %281) #5
  %sext431 = shl i64 %282, 32
  %283 = ashr exact i64 %sext431, 32
  %284 = icmp slt i64 %indvars.iv.next387, %283
  br i1 %284, label %.lr.ph325, label %.loopexit296.loopexit, !llvm.loop !30

.loopexit296.loopexit:                            ; preds = %.lr.ph325
  %285 = trunc nsw i64 %indvars.iv.next389 to i32
  br label %.loopexit296

.loopexit296:                                     ; preds = %.loopexit296.loopexit, %.preheader295, %264
  %.2259 = phi i32 [ %.0257347, %264 ], [ %.0257347, %.preheader295 ], [ %285, %.loopexit296.loopexit ]
  %286 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %287 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %286)
  %288 = icmp eq i32 %287, 1
  br i1 %288, label %.preheader293, label %.loopexit294

.preheader293:                                    ; preds = %.loopexit296
  %289 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %290 = getelementptr inbounds i8, ptr %289, i64 48
  %291 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %290) #5
  %292 = trunc i64 %291 to i32
  %293 = icmp sgt i32 %292, 0
  br i1 %293, label %.lr.ph329.preheader, label %.loopexit294

.lr.ph329.preheader:                              ; preds = %.preheader293
  %294 = sext i32 %.0252348 to i64
  br label %.lr.ph329

.lr.ph329:                                        ; preds = %.lr.ph329.preheader, %.lr.ph329
  %indvars.iv395 = phi i64 [ %294, %.lr.ph329.preheader ], [ %indvars.iv.next396, %.lr.ph329 ]
  %indvars.iv393 = phi i64 [ 0, %.lr.ph329.preheader ], [ %indvars.iv.next394, %.lr.ph329 ]
  %295 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %296 = getelementptr inbounds i8, ptr %295, i64 48
  %297 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %296, i64 noundef %indvars.iv393) #5
  %298 = load i32, ptr %297, align 4, !tbaa !14
  %299 = load ptr, ptr %8, align 8, !tbaa !24
  %indvars.iv.next396 = add nsw i64 %indvars.iv395, 1
  %300 = getelementptr inbounds i32, ptr %299, i64 %indvars.iv395
  store i32 %298, ptr %300, align 4, !tbaa !14
  %indvars.iv.next394 = add nuw nsw i64 %indvars.iv393, 1
  %301 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %302 = getelementptr inbounds i8, ptr %301, i64 48
  %303 = call noundef i64 @_ZNKSt6vectorIiSaIiEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %302) #5
  %sext432 = shl i64 %303, 32
  %304 = ashr exact i64 %sext432, 32
  %305 = icmp slt i64 %indvars.iv.next394, %304
  br i1 %305, label %.lr.ph329, label %.loopexit294.loopexit, !llvm.loop !31

.loopexit294.loopexit:                            ; preds = %.lr.ph329
  %306 = trunc nsw i64 %indvars.iv.next396 to i32
  br label %.loopexit294

.loopexit294:                                     ; preds = %.loopexit294.loopexit, %.preheader293, %.loopexit296
  %.2254 = phi i32 [ %.0252348, %.loopexit296 ], [ %.0252348, %.preheader293 ], [ %306, %.loopexit294.loopexit ]
  %307 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %308 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %307)
  %309 = icmp eq i32 %308, 2
  br i1 %309, label %.preheader291, label %.loopexit292

.preheader291:                                    ; preds = %.loopexit294
  %310 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %311 = getelementptr inbounds i8, ptr %310, i64 72
  %312 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %311) #5
  %313 = trunc i64 %312 to i32
  %314 = icmp sgt i32 %313, 0
  br i1 %314, label %.lr.ph333.preheader, label %.loopexit292

.lr.ph333.preheader:                              ; preds = %.preheader291
  %315 = sext i32 %.0247349 to i64
  br label %.lr.ph333

.lr.ph333:                                        ; preds = %.lr.ph333.preheader, %.lr.ph333
  %indvars.iv402 = phi i64 [ %315, %.lr.ph333.preheader ], [ %indvars.iv.next403, %.lr.ph333 ]
  %indvars.iv400 = phi i64 [ 0, %.lr.ph333.preheader ], [ %indvars.iv.next401, %.lr.ph333 ]
  %316 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %317 = getelementptr inbounds i8, ptr %316, i64 72
  %318 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef %indvars.iv400) #5
  %319 = load float, ptr %318, align 4, !tbaa !32
  %320 = load ptr, ptr %9, align 8, !tbaa !25
  %indvars.iv.next403 = add nsw i64 %indvars.iv402, 1
  %321 = getelementptr inbounds float, ptr %320, i64 %indvars.iv402
  store float %319, ptr %321, align 4, !tbaa !32
  %indvars.iv.next401 = add nuw nsw i64 %indvars.iv400, 1
  %322 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %323 = getelementptr inbounds i8, ptr %322, i64 72
  %324 = call noundef i64 @_ZNKSt6vectorIfSaIfEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %323) #5
  %sext433 = shl i64 %324, 32
  %325 = ashr exact i64 %sext433, 32
  %326 = icmp slt i64 %indvars.iv.next401, %325
  br i1 %326, label %.lr.ph333, label %.loopexit292.loopexit, !llvm.loop !34

.loopexit292.loopexit:                            ; preds = %.lr.ph333
  %327 = trunc nsw i64 %indvars.iv.next403 to i32
  br label %.loopexit292

.loopexit292:                                     ; preds = %.loopexit292.loopexit, %.preheader291, %.loopexit294
  %.2249 = phi i32 [ %.0247349, %.loopexit294 ], [ %.0247349, %.preheader291 ], [ %327, %.loopexit292.loopexit ]
  %328 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %329 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %328)
  %330 = icmp eq i32 %329, 5
  br i1 %330, label %.preheader289, label %.loopexit290

.preheader289:                                    ; preds = %.loopexit292
  %331 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %332 = getelementptr inbounds i8, ptr %331, i64 96
  %333 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %332) #5
  %334 = trunc i64 %333 to i32
  %335 = icmp sgt i32 %334, 0
  br i1 %335, label %.lr.ph337.preheader, label %.loopexit290

.lr.ph337.preheader:                              ; preds = %.preheader289
  %336 = sext i32 %.0242350 to i64
  br label %.lr.ph337

.lr.ph337:                                        ; preds = %.lr.ph337.preheader, %.lr.ph337
  %indvars.iv409 = phi i64 [ %336, %.lr.ph337.preheader ], [ %indvars.iv.next410, %.lr.ph337 ]
  %indvars.iv407 = phi i64 [ 0, %.lr.ph337.preheader ], [ %indvars.iv.next408, %.lr.ph337 ]
  %337 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %338 = getelementptr inbounds i8, ptr %337, i64 96
  %339 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %338, i64 noundef %indvars.iv407) #5
  %340 = load double, ptr %339, align 8, !tbaa !35
  %341 = load ptr, ptr %10, align 8, !tbaa !11
  %indvars.iv.next410 = add nsw i64 %indvars.iv409, 1
  %342 = getelementptr inbounds double, ptr %341, i64 %indvars.iv409
  store double %340, ptr %342, align 8, !tbaa !35
  %indvars.iv.next408 = add nuw nsw i64 %indvars.iv407, 1
  %343 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %344 = getelementptr inbounds i8, ptr %343, i64 96
  %345 = call noundef i64 @_ZNKSt6vectorIdSaIdEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %344) #5
  %sext434 = shl i64 %345, 32
  %346 = ashr exact i64 %sext434, 32
  %347 = icmp slt i64 %indvars.iv.next408, %346
  br i1 %347, label %.lr.ph337, label %.loopexit290.loopexit, !llvm.loop !37

.loopexit290.loopexit:                            ; preds = %.lr.ph337
  %348 = trunc nsw i64 %indvars.iv.next410 to i32
  br label %.loopexit290

.loopexit290:                                     ; preds = %.loopexit290.loopexit, %.preheader289, %.loopexit292
  %.2244 = phi i32 [ %.0242350, %.loopexit292 ], [ %.0242350, %.preheader289 ], [ %348, %.loopexit290.loopexit ]
  %349 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %350 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %349)
  %351 = icmp eq i32 %350, 3
  br i1 %351, label %.preheader288, label %.loopexit

.preheader288:                                    ; preds = %.loopexit290
  %352 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %353 = getelementptr inbounds i8, ptr %352, i64 120
  %354 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %353) #5
  %355 = trunc i64 %354 to i32
  %356 = icmp sgt i32 %355, 0
  br i1 %356, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %.preheader288, %._crit_edge342
  %indvars.iv421 = phi i64 [ %indvars.iv.next422, %._crit_edge342 ], [ 0, %.preheader288 ]
  %.1240344 = phi i32 [ %366, %._crit_edge342 ], [ %.0239351, %.preheader288 ]
  %357 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %358 = getelementptr inbounds i8, ptr %357, i64 120
  %359 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %indvars.iv421) #5
  %360 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %359) #5
  %361 = trunc i64 %360 to i32
  %362 = icmp sgt i32 %361, 0
  br i1 %362, label %.lr.ph341.preheader, label %._crit_edge342

.lr.ph341.preheader:                              ; preds = %.preheader
  %363 = sext i32 %.1240344 to i64
  br label %.lr.ph341

._crit_edge342.loopexit:                          ; preds = %.lr.ph341
  %364 = trunc nsw i64 %indvars.iv.next417 to i32
  br label %._crit_edge342

._crit_edge342:                                   ; preds = %._crit_edge342.loopexit, %.preheader
  %.2241.lcssa = phi i32 [ %.1240344, %.preheader ], [ %364, %._crit_edge342.loopexit ]
  %365 = load ptr, ptr %11, align 8, !tbaa !26
  %366 = add nsw i32 %.2241.lcssa, 1
  %367 = sext i32 %.2241.lcssa to i64
  %368 = getelementptr inbounds i8, ptr %365, i64 %367
  store i8 0, ptr %368, align 1, !tbaa !29
  %indvars.iv.next422 = add nuw nsw i64 %indvars.iv421, 1
  %369 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %370 = getelementptr inbounds i8, ptr %369, i64 120
  %371 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %370) #5
  %sext436 = shl i64 %371, 32
  %372 = ashr exact i64 %sext436, 32
  %373 = icmp slt i64 %indvars.iv.next422, %372
  br i1 %373, label %.preheader, label %.loopexit, !llvm.loop !38

.lr.ph341:                                        ; preds = %.lr.ph341.preheader, %.lr.ph341
  %indvars.iv416 = phi i64 [ %363, %.lr.ph341.preheader ], [ %indvars.iv.next417, %.lr.ph341 ]
  %indvars.iv414 = phi i64 [ 0, %.lr.ph341.preheader ], [ %indvars.iv.next415, %.lr.ph341 ]
  %374 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %375 = getelementptr inbounds i8, ptr %374, i64 120
  %376 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %375, i64 noundef %indvars.iv421) #5
  %377 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %376, i64 noundef %indvars.iv414)
  %378 = load i8, ptr %377, align 1, !tbaa !29
  %379 = load ptr, ptr %11, align 8, !tbaa !26
  %indvars.iv.next417 = add nsw i64 %indvars.iv416, 1
  %380 = getelementptr inbounds i8, ptr %379, i64 %indvars.iv416
  store i8 %378, ptr %380, align 1, !tbaa !29
  %indvars.iv.next415 = add nuw nsw i64 %indvars.iv414, 1
  %381 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %382 = getelementptr inbounds i8, ptr %381, i64 120
  %383 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %382, i64 noundef %indvars.iv421) #5
  %384 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %383) #5
  %sext435 = shl i64 %384, 32
  %385 = ashr exact i64 %sext435, 32
  %386 = icmp slt i64 %indvars.iv.next415, %385
  br i1 %386, label %.lr.ph341, label %._crit_edge342.loopexit, !llvm.loop !39

387:                                              ; preds = %258
  br i1 %263, label %388, label %400

388:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #5
  %389 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %390 = getelementptr inbounds i8, ptr %389, i64 8
  %391 = call { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %390, i64 noundef 0)
  %392 = extractvalue { ptr, i64 } %391, 0
  store ptr %392, ptr %5, align 8
  %393 = extractvalue { ptr, i64 } %391, 1
  store i64 %393, ptr %55, align 8
  %394 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %5) #5
  %395 = zext i1 %394 to i8
  %396 = load ptr, ptr %7, align 8, !tbaa !23
  %397 = add nsw i32 %.0257347, 1
  %398 = sext i32 %.0257347 to i64
  %399 = getelementptr inbounds i8, ptr %396, i64 %398
  store i8 %395, ptr %399, align 1, !tbaa !29
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #5
  br label %400

400:                                              ; preds = %388, %387
  %.3260 = phi i32 [ %397, %388 ], [ %.0257347, %387 ]
  %401 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %402 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %401)
  %403 = icmp eq i32 %402, 1
  br i1 %403, label %404, label %413

404:                                              ; preds = %400
  %405 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %406 = getelementptr inbounds i8, ptr %405, i64 48
  %407 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIiSaIiEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %406, i64 noundef 0) #5
  %408 = load i32, ptr %407, align 4, !tbaa !14
  %409 = load ptr, ptr %8, align 8, !tbaa !24
  %410 = add nsw i32 %.0252348, 1
  %411 = sext i32 %.0252348 to i64
  %412 = getelementptr inbounds i32, ptr %409, i64 %411
  store i32 %408, ptr %412, align 4, !tbaa !14
  br label %413

413:                                              ; preds = %404, %400
  %.3255 = phi i32 [ %410, %404 ], [ %.0252348, %400 ]
  %414 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %415 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %414)
  %416 = icmp eq i32 %415, 2
  br i1 %416, label %417, label %426

417:                                              ; preds = %413
  %418 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %419 = getelementptr inbounds i8, ptr %418, i64 72
  %420 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIfSaIfEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %419, i64 noundef 0) #5
  %421 = load float, ptr %420, align 4, !tbaa !32
  %422 = load ptr, ptr %9, align 8, !tbaa !25
  %423 = add nsw i32 %.0247349, 1
  %424 = sext i32 %.0247349 to i64
  %425 = getelementptr inbounds float, ptr %422, i64 %424
  store float %421, ptr %425, align 4, !tbaa !32
  br label %426

426:                                              ; preds = %417, %413
  %.3250 = phi i32 [ %423, %417 ], [ %.0247349, %413 ]
  %427 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %428 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %427)
  %429 = icmp eq i32 %428, 5
  br i1 %429, label %430, label %439

430:                                              ; preds = %426
  %431 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %432 = getelementptr inbounds i8, ptr %431, i64 96
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIdSaIdEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %432, i64 noundef 0) #5
  %434 = load double, ptr %433, align 8, !tbaa !35
  %435 = load ptr, ptr %10, align 8, !tbaa !11
  %436 = add nsw i32 %.0242350, 1
  %437 = sext i32 %.0242350 to i64
  %438 = getelementptr inbounds double, ptr %435, i64 %437
  store double %434, ptr %438, align 8, !tbaa !35
  br label %439

439:                                              ; preds = %430, %426
  %.3245 = phi i32 [ %436, %430 ], [ %.0242350, %426 ]
  %440 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %441 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %440)
  %442 = icmp eq i32 %441, 3
  br i1 %442, label %.preheader299, label %468

.preheader299:                                    ; preds = %439
  %443 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %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) #5
  %446 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %445) #5
  %447 = trunc i64 %446 to i32
  %448 = icmp sgt i32 %447, 0
  br i1 %448, label %.lr.ph316.preheader, label %._crit_edge317

.lr.ph316.preheader:                              ; preds = %.preheader299
  %449 = sext i32 %.0239351 to i64
  br label %.lr.ph316

._crit_edge317.loopexit:                          ; preds = %.lr.ph316
  %450 = trunc nsw i64 %indvars.iv.next375 to i32
  br label %._crit_edge317

._crit_edge317:                                   ; preds = %._crit_edge317.loopexit, %.preheader299
  %.3.lcssa = phi i32 [ %.0239351, %.preheader299 ], [ %450, %._crit_edge317.loopexit ]
  %451 = load ptr, ptr %11, align 8, !tbaa !26
  %452 = add nsw i32 %.3.lcssa, 1
  %453 = sext i32 %.3.lcssa to i64
  %454 = getelementptr inbounds i8, ptr %451, i64 %453
  store i8 0, ptr %454, align 1, !tbaa !29
  br label %468

.lr.ph316:                                        ; preds = %.lr.ph316.preheader, %.lr.ph316
  %indvars.iv374 = phi i64 [ %449, %.lr.ph316.preheader ], [ %indvars.iv.next375, %.lr.ph316 ]
  %indvars.iv372 = phi i64 [ 0, %.lr.ph316.preheader ], [ %indvars.iv.next373, %.lr.ph316 ]
  %455 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %456 = getelementptr inbounds i8, ptr %455, i64 120
  %457 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %456, i64 noundef 0) #5
  %458 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %457, i64 noundef %indvars.iv372)
  %459 = load i8, ptr %458, align 1, !tbaa !29
  %460 = load ptr, ptr %11, align 8, !tbaa !26
  %indvars.iv.next375 = add nsw i64 %indvars.iv374, 1
  %461 = getelementptr inbounds i8, ptr %460, i64 %indvars.iv374
  store i8 %459, ptr %461, align 1, !tbaa !29
  %indvars.iv.next373 = add nuw nsw i64 %indvars.iv372, 1
  %462 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %463 = getelementptr inbounds i8, ptr %462, i64 120
  %464 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %463, i64 noundef 0) #5
  %465 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %464) #5
  %sext429 = shl i64 %465, 32
  %466 = ashr exact i64 %sext429, 32
  %467 = icmp slt i64 %indvars.iv.next373, %466
  br i1 %467, label %.lr.ph316, label %._crit_edge317.loopexit, !llvm.loop !40

468:                                              ; preds = %._crit_edge317, %439
  %.4 = phi i32 [ %452, %._crit_edge317 ], [ %.0239351, %439 ]
  %469 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %470 = call noundef i32 @_ZN20CLuaFunctionDataItem7getTypeEv(ptr noundef nonnull align 8 dereferenceable(156) %469)
  %471 = icmp eq i32 %470, 4
  br i1 %471, label %.preheader297, label %.loopexit

.preheader297:                                    ; preds = %468
  %472 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %473 = getelementptr inbounds i8, ptr %472, i64 120
  %474 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %473, i64 noundef 0) #5
  %475 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %474) #5
  %476 = trunc i64 %475 to i32
  %477 = icmp sgt i32 %476, 0
  br i1 %477, label %.lr.ph321.preheader, label %.loopexit

.lr.ph321.preheader:                              ; preds = %.preheader297
  %478 = sext i32 %.0238352 to i64
  br label %.lr.ph321

.lr.ph321:                                        ; preds = %.lr.ph321.preheader, %.lr.ph321
  %indvars.iv381 = phi i64 [ %478, %.lr.ph321.preheader ], [ %indvars.iv.next382, %.lr.ph321 ]
  %indvars.iv379 = phi i64 [ 0, %.lr.ph321.preheader ], [ %indvars.iv.next380, %.lr.ph321 ]
  %479 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %480 = getelementptr inbounds i8, ptr %479, i64 120
  %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) #5
  %482 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(32) %481, i64 noundef %indvars.iv379)
  %483 = load i8, ptr %482, align 1, !tbaa !29
  %484 = load ptr, ptr %12, align 8, !tbaa !12
  %indvars.iv.next382 = add nsw i64 %indvars.iv381, 1
  %485 = getelementptr inbounds i8, ptr %484, i64 %indvars.iv381
  store i8 %483, ptr %485, align 1, !tbaa !29
  %indvars.iv.next380 = add nuw nsw i64 %indvars.iv379, 1
  %486 = call noundef nonnull align 8 dereferenceable(156) ptr @_ZNSt6vectorI20CLuaFunctionDataItemSaIS0_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %25, i64 noundef %indvars.iv424) #5
  %487 = getelementptr inbounds i8, ptr %486, i64 120
  %488 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %487, i64 noundef 0) #5
  %489 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %488) #5
  %sext430 = shl i64 %489, 32
  %490 = ashr exact i64 %sext430, 32
  %491 = icmp slt i64 %indvars.iv.next380, %490
  br i1 %491, label %.lr.ph321, label %.loopexit.loopexit356, !llvm.loop !41

.loopexit.loopexit356:                            ; preds = %.lr.ph321
  %492 = trunc nsw i64 %indvars.iv.next382 to i32
  br label %.loopexit

.loopexit:                                        ; preds = %._crit_edge342, %.loopexit.loopexit356, %.preheader297, %.preheader288, %.loopexit290, %468
  %.4261 = phi i32 [ %.2259, %.loopexit290 ], [ %.3260, %468 ], [ %.2259, %.preheader288 ], [ %.3260, %.preheader297 ], [ %.3260, %.loopexit.loopexit356 ], [ %.2259, %._crit_edge342 ]
  %.4256 = phi i32 [ %.2254, %.loopexit290 ], [ %.3255, %468 ], [ %.2254, %.preheader288 ], [ %.3255, %.preheader297 ], [ %.3255, %.loopexit.loopexit356 ], [ %.2254, %._crit_edge342 ]
  %.4251 = phi i32 [ %.2249, %.loopexit290 ], [ %.3250, %468 ], [ %.2249, %.preheader288 ], [ %.3250, %.preheader297 ], [ %.3250, %.loopexit.loopexit356 ], [ %.2249, %._crit_edge342 ]
  %.4246 = phi i32 [ %.2244, %.loopexit290 ], [ %.3245, %468 ], [ %.2244, %.preheader288 ], [ %.3245, %.preheader297 ], [ %.3245, %.loopexit.loopexit356 ], [ %.2244, %._crit_edge342 ]
  %.5 = phi i32 [ %.0239351, %.loopexit290 ], [ %.4, %468 ], [ %.0239351, %.preheader288 ], [ %.4, %.preheader297 ], [ %.4, %.loopexit.loopexit356 ], [ %366, %._crit_edge342 ]
  %.2 = phi i32 [ %.0238352, %.loopexit290 ], [ %.0238352, %468 ], [ %.0238352, %.preheader288 ], [ %.0238352, %.preheader297 ], [ %492, %.loopexit.loopexit356 ], [ %.0238352, %._crit_edge342 ]
  %indvars.iv.next425 = add nuw nsw i64 %indvars.iv424, 1
  %exitcond428.not = icmp eq i64 %indvars.iv.next425, %wide.trip.count
  br i1 %exitcond428.not, label %.loopexit300, label %258, !llvm.loop !42

.loopexit300:                                     ; preds = %.loopexit, %._crit_edge
  ret void
}

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

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 = { "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 = { 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 #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { 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 0}
!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 = !{!6, !10, i64 136}
!12 = !{!6, !10, i64 112}
!13 = !{!6, !10, i64 48}
!14 = !{!7, !7, i64 0}
!15 = !{!6, !7, i64 88}
!16 = !{!6, !10, i64 144}
!17 = !{!6, !10, i64 120}
!18 = !{!10, !10, i64 0}
!19 = !{!6, !10, i64 96}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = !{!6, !7, i64 40}
!23 = !{!6, !10, i64 8}
!24 = !{!6, !10, i64 16}
!25 = !{!6, !10, i64 24}
!26 = !{!6, !10, i64 32}
!27 = distinct !{!27, !21}
!28 = distinct !{!28, !21}
!29 = !{!8, !8, i64 0}
!30 = distinct !{!30, !21}
!31 = distinct !{!31, !21}
!32 = !{!33, !33, i64 0}
!33 = !{!"float", !8, i64 0}
!34 = distinct !{!34, !21}
!35 = !{!36, !36, i64 0}
!36 = !{!"double", !8, i64 0}
!37 = distinct !{!37, !21}
!38 = distinct !{!38, !21}
!39 = distinct !{!39, !21}
!40 = distinct !{!40, !21}
!41 = distinct !{!41, !21}
!42 = distinct !{!42, !21}


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