; LLVM IR from facebook/redex :: libredex/PointsToSemantics.ll (ZlsRSoRK14PointsToAction)

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

%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%class.PointsToVariable = type { i32 }
%"struct.std::__detail::_Quoted_string" = type <{ ptr, i8, i8, [6 x i8] }>
%"class.std::basic_string_view" = type { i64, ptr }
%"class.__gnu_cxx::__normal_iterator.79" = type { ptr }
%struct.PointsToOperation = type { i32, %union.anon.49 }
%union.anon.49 = type { ptr }
%"struct.std::pair.61" = type <{ i64, %class.PointsToVariable, [4 x i8] }>

@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@__PRETTY_FUNCTION__._ZlsRSoRK14PointsToAction = external hidden unnamed_addr constant [65 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #4

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16)) #1 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.53") align 8, ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK14PointsToAction(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %class.PointsToVariable, align 4
  %7 = alloca %"struct.std::__detail::_Quoted_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca { ptr, i64 }, align 8
  %12 = alloca %class.PointsToVariable, align 4
  %13 = alloca %"class.std::basic_string_view", align 8
  %14 = alloca %class.PointsToVariable, align 4
  %15 = alloca %class.PointsToVariable, align 4
  %16 = alloca %"class.std::basic_string_view", align 8
  %17 = alloca %class.PointsToVariable, align 4
  %18 = alloca %class.PointsToVariable, align 4
  %19 = alloca %class.PointsToVariable, align 4
  %20 = alloca %class.PointsToVariable, align 4
  %21 = alloca %"class.std::basic_string_view", align 8
  %22 = alloca %class.PointsToVariable, align 4
  %23 = alloca %class.PointsToVariable, align 4
  %24 = alloca %class.PointsToVariable, align 4
  %25 = alloca %"class.std::basic_string_view", align 8
  %26 = alloca %"class.std::basic_string_view", align 8
  %27 = alloca %class.PointsToVariable, align 4
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %class.PointsToVariable, align 4
  %30 = alloca %class.PointsToVariable, align 4
  %31 = alloca %"class.std::basic_string_view", align 8
  %32 = alloca %"class.std::basic_string_view", align 8
  %33 = alloca %class.PointsToVariable, align 4
  %34 = alloca %"class.std::basic_string_view", align 8
  %35 = alloca %"class.std::basic_string_view", align 8
  %36 = alloca %class.PointsToVariable, align 4
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %class.PointsToVariable, align 4
  %39 = alloca %class.PointsToVariable, align 4
  %40 = alloca %"class.std::basic_string_view", align 8
  %41 = alloca %"class.std::basic_string_view", align 8
  %42 = alloca %class.PointsToVariable, align 4
  %43 = alloca %class.PointsToVariable, align 4
  %44 = alloca %class.PointsToVariable, align 4
  %45 = alloca %"class.std::basic_string_view", align 8
  %46 = alloca %"class.std::basic_string_view", align 8
  %47 = alloca %"class.std::vector.53", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %53 = alloca %class.PointsToVariable, align 4
  %54 = alloca %class.PointsToVariable, align 4
  %55 = alloca %"class.std::vector.53", align 8
  %56 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %57 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %58 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %59 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %60 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  %61 = load ptr, ptr %4, align 8, !tbaa !5
  %62 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK14PointsToAction9operationEv(ptr noundef nonnull align 8 dereferenceable(40) %61)
  store ptr %62, ptr %5, align 8, !tbaa !5
  %63 = load ptr, ptr %5, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.PointsToOperation, ptr %63, i32 0, i32 0
  %65 = load i32, ptr %64, align 8, !tbaa !9
  switch i32 %65, label %592 [
    i32 0, label %66
    i32 1, label %84
    i32 2, label %106
    i32 3, label %113
    i32 4, label %134
    i32 5, label %145
    i32 6, label %157
    i32 7, label %184
    i32 8, label %226
    i32 9, label %257
    i32 10, label %294
    i32 11, label %336
    i32 12, label %373
    i32 13, label %410
    i32 14, label %410
    i32 15, label %410
    i32 16, label %410
    i32 17, label %410
    i32 18, label %539
    i32 19, label %546
  ]

66:                                               ; preds = %2
  %67 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %68)
  %70 = getelementptr inbounds %class.PointsToVariable, ptr %6, i32 0, i32 0
  store i32 %69, ptr %70, align 4
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 4 dereferenceable(4) %6)
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %71, ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 16, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %8) #7
  %73 = load ptr, ptr %5, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.PointsToOperation, ptr %73, i32 0, i32 1
  %75 = load ptr, ptr %74, align 8, !tbaa !12
  call void @_ZNK9DexString8str_copyB5cxx11Ev(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(16) %75)
  %76 = invoke { ptr, i64 } @_ZSt6quotedIcSt11char_traitsIcESaIcEEDaRKNSt7__cxx1112basic_stringIT_T0_T1_EES5_S5_(ptr noundef nonnull align 8 dereferenceable(32) %8, i8 noundef signext 34, i8 noundef signext 92)
          to label %77 unwind label %80

77:                                               ; preds = %66
  store { ptr, i64 } %76, ptr %11, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %7, ptr align 8 %11, i64 10, i1 false)
  %78 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detaillsIcSt11char_traitsIcERKNSt7__cxx1112basic_stringIcS2_SaIcEEEEERSt13basic_ostreamIT_T0_ESD_RKNS_14_Quoted_stringIT1_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(10) %7)
          to label %79 unwind label %80

79:                                               ; preds = %77
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %592

80:                                               ; preds = %77, %66
  %81 = landingpad { ptr, i32 }
          cleanup
  %82 = extractvalue { ptr, i32 } %81, 0
  store ptr %82, ptr %9, align 8
  %83 = extractvalue { ptr, i32 } %81, 1
  store i32 %83, ptr %10, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %7) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %594

84:                                               ; preds = %2
  %85 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %86 = load ptr, ptr %4, align 8, !tbaa !5
  %87 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %86)
  %88 = getelementptr inbounds %class.PointsToVariable, ptr %12, i32 0, i32 0
  store i32 %87, ptr %88, align 4
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef @.str.50)
  %91 = load ptr, ptr %5, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.PointsToOperation, ptr %91, i32 0, i32 1
  %93 = load ptr, ptr %92, align 8, !tbaa !12
  %94 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %93)
  %95 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %94)
  %96 = getelementptr inbounds { i64, ptr }, ptr %13, i32 0, i32 0
  %97 = extractvalue { i64, ptr } %95, 0
  store i64 %97, ptr %96, align 8
  %98 = getelementptr inbounds { i64, ptr }, ptr %13, i32 0, i32 1
  %99 = extractvalue { i64, ptr } %95, 1
  store ptr %99, ptr %98, align 8
  %100 = getelementptr inbounds { i64, ptr }, ptr %13, i32 0, i32 0
  %101 = load i64, ptr %100, align 8
  %102 = getelementptr inbounds { i64, ptr }, ptr %13, i32 0, i32 1
  %103 = load ptr, ptr %102, align 8
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %90, i64 %101, ptr %103)
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef @.str.51)
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %592

106:                                              ; preds = %2
  %107 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  %108 = load ptr, ptr %4, align 8, !tbaa !5
  %109 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %108)
  %110 = getelementptr inbounds %class.PointsToVariable, ptr %14, i32 0, i32 0
  store i32 %109, ptr %110, align 4
  %111 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %107, ptr noundef nonnull align 4 dereferenceable(4) %14)
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %111, ptr noundef @.str.52)
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  br label %592

113:                                              ; preds = %2
  %114 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %115 = load ptr, ptr %4, align 8, !tbaa !5
  %116 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %115)
  %117 = getelementptr inbounds %class.PointsToVariable, ptr %15, i32 0, i32 0
  store i32 %116, ptr %117, align 4
  %118 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %114, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %118, ptr noundef @.str.53)
  %120 = load ptr, ptr %5, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.PointsToOperation, ptr %120, i32 0, i32 1
  %122 = load ptr, ptr %121, align 8, !tbaa !12
  %123 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %122)
  %124 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %123)
  %125 = getelementptr inbounds { i64, ptr }, ptr %16, i32 0, i32 0
  %126 = extractvalue { i64, ptr } %124, 0
  store i64 %126, ptr %125, align 8
  %127 = getelementptr inbounds { i64, ptr }, ptr %16, i32 0, i32 1
  %128 = extractvalue { i64, ptr } %124, 1
  store ptr %128, ptr %127, align 8
  %129 = getelementptr inbounds { i64, ptr }, ptr %16, i32 0, i32 0
  %130 = load i64, ptr %129, align 8
  %131 = getelementptr inbounds { i64, ptr }, ptr %16, i32 0, i32 1
  %132 = load ptr, ptr %131, align 8
  %133 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %119, i64 %130, ptr %132)
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %592

134:                                              ; preds = %2
  %135 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %136 = load ptr, ptr %4, align 8, !tbaa !5
  %137 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %136)
  %138 = getelementptr inbounds %class.PointsToVariable, ptr %17, i32 0, i32 0
  store i32 %137, ptr %138, align 4
  %139 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 4 dereferenceable(4) %17)
  %140 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %139, ptr noundef @.str.54)
  %141 = load ptr, ptr %5, align 8, !tbaa !5
  %142 = getelementptr inbounds %struct.PointsToOperation, ptr %141, i32 0, i32 1
  %143 = load i64, ptr %142, align 8, !tbaa !12
  %144 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %140, i64 noundef %143)
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %592

145:                                              ; preds = %2
  %146 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %147 = load ptr, ptr %4, align 8, !tbaa !5
  %148 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %147)
  %149 = getelementptr inbounds %class.PointsToVariable, ptr %18, i32 0, i32 0
  store i32 %148, ptr %149, align 4
  %150 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull align 4 dereferenceable(4) %18)
  %151 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %150, ptr noundef @.str.55)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %152 = load ptr, ptr %4, align 8, !tbaa !5
  %153 = call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %152)
  %154 = getelementptr inbounds %class.PointsToVariable, ptr %19, i32 0, i32 0
  store i32 %153, ptr %154, align 4
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %151, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef @.str.56)
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  br label %592

157:                                              ; preds = %2
  %158 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %159 = load ptr, ptr %4, align 8, !tbaa !5
  %160 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %159)
  %161 = getelementptr inbounds %class.PointsToVariable, ptr %20, i32 0, i32 0
  store i32 %160, ptr %161, align 4
  %162 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %158, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef @.str.57)
  %164 = load ptr, ptr %5, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.PointsToOperation, ptr %164, i32 0, i32 1
  %166 = load ptr, ptr %165, align 8, !tbaa !12
  %167 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %166)
  %168 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %167)
  %169 = getelementptr inbounds { i64, ptr }, ptr %21, i32 0, i32 0
  %170 = extractvalue { i64, ptr } %168, 0
  store i64 %170, ptr %169, align 8
  %171 = getelementptr inbounds { i64, ptr }, ptr %21, i32 0, i32 1
  %172 = extractvalue { i64, ptr } %168, 1
  store ptr %172, ptr %171, align 8
  %173 = getelementptr inbounds { i64, ptr }, ptr %21, i32 0, i32 0
  %174 = load i64, ptr %173, align 8
  %175 = getelementptr inbounds { i64, ptr }, ptr %21, i32 0, i32 1
  %176 = load ptr, ptr %175, align 8
  %177 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %163, i64 %174, ptr %176)
  %178 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef @.str.58)
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %179 = load ptr, ptr %4, align 8, !tbaa !5
  %180 = call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %179)
  %181 = getelementptr inbounds %class.PointsToVariable, ptr %22, i32 0, i32 0
  store i32 %180, ptr %181, align 4
  %182 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %178, ptr noundef nonnull align 4 dereferenceable(4) %22)
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @.str.56)
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %592

184:                                              ; preds = %2
  %185 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %186 = load ptr, ptr %4, align 8, !tbaa !5
  %187 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %186)
  %188 = getelementptr inbounds %class.PointsToVariable, ptr %23, i32 0, i32 0
  store i32 %187, ptr %188, align 4
  %189 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %185, ptr noundef nonnull align 4 dereferenceable(4) %23)
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %189, ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %191 = load ptr, ptr %4, align 8, !tbaa !5
  %192 = call i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %191)
  %193 = getelementptr inbounds %class.PointsToVariable, ptr %24, i32 0, i32 0
  store i32 %192, ptr %193, align 4
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull align 4 dereferenceable(4) %24)
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef @.str.59)
  %196 = load ptr, ptr %5, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.PointsToOperation, ptr %196, i32 0, i32 1
  %198 = load ptr, ptr %197, align 8, !tbaa !12
  %199 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %198)
  %200 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %199)
  %201 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %200)
  %202 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 0
  %203 = extractvalue { i64, ptr } %201, 0
  store i64 %203, ptr %202, align 8
  %204 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 1
  %205 = extractvalue { i64, ptr } %201, 1
  store ptr %205, ptr %204, align 8
  %206 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 0
  %207 = load i64, ptr %206, align 8
  %208 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 1
  %209 = load ptr, ptr %208, align 8
  %210 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %195, i64 %207, ptr %209)
  %211 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef @.str.60)
  %212 = load ptr, ptr %5, align 8, !tbaa !5
  %213 = getelementptr inbounds %struct.PointsToOperation, ptr %212, i32 0, i32 1
  %214 = load ptr, ptr %213, align 8, !tbaa !12
  %215 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %214)
  %216 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %215)
  %217 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 0
  %218 = extractvalue { i64, ptr } %216, 0
  store i64 %218, ptr %217, align 8
  %219 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 1
  %220 = extractvalue { i64, ptr } %216, 1
  store ptr %220, ptr %219, align 8
  %221 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 0
  %222 = load i64, ptr %221, align 8
  %223 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 1
  %224 = load ptr, ptr %223, align 8
  %225 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %211, i64 %222, ptr %224)
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %592

226:                                              ; preds = %2
  %227 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %228 = load ptr, ptr %4, align 8, !tbaa !5
  %229 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %228)
  %230 = getelementptr inbounds %class.PointsToVariable, ptr %27, i32 0, i32 0
  store i32 %229, ptr %230, align 4
  %231 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull align 4 dereferenceable(4) %27)
  %232 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #7
  %233 = load ptr, ptr %5, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.PointsToOperation, ptr %233, i32 0, i32 1
  %235 = load i32, ptr %234, align 8, !tbaa !12
  call void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, i32 noundef %235)
  %236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %237 unwind label %248

237:                                              ; preds = %226
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %236, ptr noundef @.str.61)
          to label %239 unwind label %248

239:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  %240 = load ptr, ptr %4, align 8, !tbaa !5
  %241 = invoke i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %240)
          to label %242 unwind label %252

242:                                              ; preds = %239
  %243 = getelementptr inbounds %class.PointsToVariable, ptr %29, i32 0, i32 0
  store i32 %241, ptr %243, align 4
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %245 unwind label %252

245:                                              ; preds = %242
  %246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef @.str.56)
          to label %247 unwind label %252

247:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %592

248:                                              ; preds = %237, %226
  %249 = landingpad { ptr, i32 }
          cleanup
  %250 = extractvalue { ptr, i32 } %249, 0
  store ptr %250, ptr %9, align 8
  %251 = extractvalue { ptr, i32 } %249, 1
  store i32 %251, ptr %10, align 4
  br label %256

252:                                              ; preds = %245, %242, %239
  %253 = landingpad { ptr, i32 }
          cleanup
  %254 = extractvalue { ptr, i32 } %253, 0
  store ptr %254, ptr %9, align 8
  %255 = extractvalue { ptr, i32 } %253, 1
  store i32 %255, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %256

256:                                              ; preds = %252, %248
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %594

257:                                              ; preds = %2
  %258 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  %259 = load ptr, ptr %4, align 8, !tbaa !5
  %260 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %259)
  %261 = getelementptr inbounds %class.PointsToVariable, ptr %30, i32 0, i32 0
  store i32 %260, ptr %261, align 4
  %262 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef nonnull align 4 dereferenceable(4) %30)
  %263 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %262, ptr noundef @.str.49)
  %264 = load ptr, ptr %5, align 8, !tbaa !5
  %265 = getelementptr inbounds %struct.PointsToOperation, ptr %264, i32 0, i32 1
  %266 = load ptr, ptr %265, align 8, !tbaa !12
  %267 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %266)
  %268 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %267)
  %269 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %268)
  %270 = getelementptr inbounds { i64, ptr }, ptr %31, i32 0, i32 0
  %271 = extractvalue { i64, ptr } %269, 0
  store i64 %271, ptr %270, align 8
  %272 = getelementptr inbounds { i64, ptr }, ptr %31, i32 0, i32 1
  %273 = extractvalue { i64, ptr } %269, 1
  store ptr %273, ptr %272, align 8
  %274 = getelementptr inbounds { i64, ptr }, ptr %31, i32 0, i32 0
  %275 = load i64, ptr %274, align 8
  %276 = getelementptr inbounds { i64, ptr }, ptr %31, i32 0, i32 1
  %277 = load ptr, ptr %276, align 8
  %278 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %263, i64 %275, ptr %277)
  %279 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %278, ptr noundef @.str.60)
  %280 = load ptr, ptr %5, align 8, !tbaa !5
  %281 = getelementptr inbounds %struct.PointsToOperation, ptr %280, i32 0, i32 1
  %282 = load ptr, ptr %281, align 8, !tbaa !12
  %283 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %282)
  %284 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %283)
  %285 = getelementptr inbounds { i64, ptr }, ptr %32, i32 0, i32 0
  %286 = extractvalue { i64, ptr } %284, 0
  store i64 %286, ptr %285, align 8
  %287 = getelementptr inbounds { i64, ptr }, ptr %32, i32 0, i32 1
  %288 = extractvalue { i64, ptr } %284, 1
  store ptr %288, ptr %287, align 8
  %289 = getelementptr inbounds { i64, ptr }, ptr %32, i32 0, i32 0
  %290 = load i64, ptr %289, align 8
  %291 = getelementptr inbounds { i64, ptr }, ptr %32, i32 0, i32 1
  %292 = load ptr, ptr %291, align 8
  %293 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %279, i64 %290, ptr %292)
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %592

294:                                              ; preds = %2
  %295 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  %296 = load ptr, ptr %4, align 8, !tbaa !5
  %297 = call i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40) %296)
  %298 = getelementptr inbounds %class.PointsToVariable, ptr %33, i32 0, i32 0
  store i32 %297, ptr %298, align 4
  %299 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %295, ptr noundef nonnull align 4 dereferenceable(4) %33)
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef @.str.59)
  %301 = load ptr, ptr %5, align 8, !tbaa !5
  %302 = getelementptr inbounds %struct.PointsToOperation, ptr %301, i32 0, i32 1
  %303 = load ptr, ptr %302, align 8, !tbaa !12
  %304 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %303)
  %305 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %304)
  %306 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %305)
  %307 = getelementptr inbounds { i64, ptr }, ptr %34, i32 0, i32 0
  %308 = extractvalue { i64, ptr } %306, 0
  store i64 %308, ptr %307, align 8
  %309 = getelementptr inbounds { i64, ptr }, ptr %34, i32 0, i32 1
  %310 = extractvalue { i64, ptr } %306, 1
  store ptr %310, ptr %309, align 8
  %311 = getelementptr inbounds { i64, ptr }, ptr %34, i32 0, i32 0
  %312 = load i64, ptr %311, align 8
  %313 = getelementptr inbounds { i64, ptr }, ptr %34, i32 0, i32 1
  %314 = load ptr, ptr %313, align 8
  %315 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %300, i64 %312, ptr %314)
  %316 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %315, ptr noundef @.str.60)
  %317 = load ptr, ptr %5, align 8, !tbaa !5
  %318 = getelementptr inbounds %struct.PointsToOperation, ptr %317, i32 0, i32 1
  %319 = load ptr, ptr %318, align 8, !tbaa !12
  %320 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %319)
  %321 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %320)
  %322 = getelementptr inbounds { i64, ptr }, ptr %35, i32 0, i32 0
  %323 = extractvalue { i64, ptr } %321, 0
  store i64 %323, ptr %322, align 8
  %324 = getelementptr inbounds { i64, ptr }, ptr %35, i32 0, i32 1
  %325 = extractvalue { i64, ptr } %321, 1
  store ptr %325, ptr %324, align 8
  %326 = getelementptr inbounds { i64, ptr }, ptr %35, i32 0, i32 0
  %327 = load i64, ptr %326, align 8
  %328 = getelementptr inbounds { i64, ptr }, ptr %35, i32 0, i32 1
  %329 = load ptr, ptr %328, align 8
  %330 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %316, i64 %327, ptr %329)
  %331 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %330, ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #7
  %332 = load ptr, ptr %4, align 8, !tbaa !5
  %333 = call i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %332)
  %334 = getelementptr inbounds %class.PointsToVariable, ptr %36, i32 0, i32 0
  store i32 %333, ptr %334, align 4
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull align 4 dereferenceable(4) %36)
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %592

336:                                              ; preds = %2
  %337 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %37) #7
  %338 = load ptr, ptr %5, align 8, !tbaa !5
  %339 = getelementptr inbounds %struct.PointsToOperation, ptr %338, i32 0, i32 1
  %340 = load i32, ptr %339, align 8, !tbaa !12
  call void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %37, i32 noundef %340)
  %341 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %337, ptr noundef nonnull align 8 dereferenceable(32) %37)
          to label %342 unwind label %359

342:                                              ; preds = %336
  %343 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %341, ptr noundef @.str.61)
          to label %344 unwind label %359

344:                                              ; preds = %342
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %345 = load ptr, ptr %4, align 8, !tbaa !5
  %346 = invoke i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40) %345)
          to label %347 unwind label %363

347:                                              ; preds = %344
  %348 = getelementptr inbounds %class.PointsToVariable, ptr %38, i32 0, i32 0
  store i32 %346, ptr %348, align 4
  %349 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %343, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %350 unwind label %363

350:                                              ; preds = %347
  %351 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %349, ptr noundef @.str.62)
          to label %352 unwind label %363

352:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %353 = load ptr, ptr %4, align 8, !tbaa !5
  %354 = invoke i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %353)
          to label %355 unwind label %367

355:                                              ; preds = %352
  %356 = getelementptr inbounds %class.PointsToVariable, ptr %39, i32 0, i32 0
  store i32 %354, ptr %356, align 4
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %351, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %358 unwind label %367

358:                                              ; preds = %355
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %592

359:                                              ; preds = %342, %336
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %9, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %10, align 4
  br label %372

363:                                              ; preds = %350, %347, %344
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %9, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %10, align 4
  br label %371

367:                                              ; preds = %355, %352
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %9, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %371

371:                                              ; preds = %367, %363
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %372

372:                                              ; preds = %371, %359
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %37) #7
  br label %594

373:                                              ; preds = %2
  %374 = load ptr, ptr %3, align 8, !tbaa !5
  %375 = load ptr, ptr %5, align 8, !tbaa !5
  %376 = getelementptr inbounds %struct.PointsToOperation, ptr %375, i32 0, i32 1
  %377 = load ptr, ptr %376, align 8, !tbaa !12
  %378 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %377)
  %379 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %378)
  %380 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %379)
  %381 = getelementptr inbounds { i64, ptr }, ptr %40, i32 0, i32 0
  %382 = extractvalue { i64, ptr } %380, 0
  store i64 %382, ptr %381, align 8
  %383 = getelementptr inbounds { i64, ptr }, ptr %40, i32 0, i32 1
  %384 = extractvalue { i64, ptr } %380, 1
  store ptr %384, ptr %383, align 8
  %385 = getelementptr inbounds { i64, ptr }, ptr %40, i32 0, i32 0
  %386 = load i64, ptr %385, align 8
  %387 = getelementptr inbounds { i64, ptr }, ptr %40, i32 0, i32 1
  %388 = load ptr, ptr %387, align 8
  %389 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %374, i64 %386, ptr %388)
  %390 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef @.str.60)
  %391 = load ptr, ptr %5, align 8, !tbaa !5
  %392 = getelementptr inbounds %struct.PointsToOperation, ptr %391, i32 0, i32 1
  %393 = load ptr, ptr %392, align 8, !tbaa !12
  %394 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %393)
  %395 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %394)
  %396 = getelementptr inbounds { i64, ptr }, ptr %41, i32 0, i32 0
  %397 = extractvalue { i64, ptr } %395, 0
  store i64 %397, ptr %396, align 8
  %398 = getelementptr inbounds { i64, ptr }, ptr %41, i32 0, i32 1
  %399 = extractvalue { i64, ptr } %395, 1
  store ptr %399, ptr %398, align 8
  %400 = getelementptr inbounds { i64, ptr }, ptr %41, i32 0, i32 0
  %401 = load i64, ptr %400, align 8
  %402 = getelementptr inbounds { i64, ptr }, ptr %41, i32 0, i32 1
  %403 = load ptr, ptr %402, align 8
  %404 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %390, i64 %401, ptr %403)
  %405 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %404, ptr noundef @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %406 = load ptr, ptr %4, align 8, !tbaa !5
  %407 = call i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %406)
  %408 = getelementptr inbounds %class.PointsToVariable, ptr %42, i32 0, i32 0
  store i32 %407, ptr %408, align 4
  %409 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %405, ptr noundef nonnull align 4 dereferenceable(4) %42)
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %592

410:                                              ; preds = %2, %2, %2, %2, %2
  %411 = load ptr, ptr %4, align 8, !tbaa !5
  %412 = call noundef zeroext i1 @_ZNK14PointsToAction8has_destEv(ptr noundef nonnull align 8 dereferenceable(40) %411)
  br i1 %412, label %413, label %420

413:                                              ; preds = %410
  %414 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %415 = load ptr, ptr %4, align 8, !tbaa !5
  %416 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %415)
  %417 = getelementptr inbounds %class.PointsToVariable, ptr %43, i32 0, i32 0
  store i32 %416, ptr %417, align 4
  %418 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %414, ptr noundef nonnull align 4 dereferenceable(4) %43)
  %419 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %418, ptr noundef @.str.49)
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %420

420:                                              ; preds = %413, %410
  %421 = load ptr, ptr %5, align 8, !tbaa !5
  %422 = call noundef zeroext i1 @_ZNK17PointsToOperation14is_static_callEv(ptr noundef nonnull align 8 dereferenceable(16) %421)
  br i1 %422, label %452, label %423

423:                                              ; preds = %420
  %424 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #7
  %425 = load ptr, ptr %4, align 8, !tbaa !5
  %426 = call i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %425)
  %427 = getelementptr inbounds %class.PointsToVariable, ptr %44, i32 0, i32 0
  store i32 %426, ptr %427, align 4
  %428 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %424, ptr noundef nonnull align 4 dereferenceable(4) %44)
  %429 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef @.str.63)
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #7
  %430 = load ptr, ptr %5, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.PointsToOperation, ptr %430, i32 0, i32 0
  %432 = load i32, ptr %431, align 8, !tbaa !9
  switch i32 %432, label %445 [
    i32 13, label %433
    i32 14, label %436
    i32 15, label %439
    i32 16, label %442
  ]

433:                                              ; preds = %423
  %434 = load ptr, ptr %3, align 8, !tbaa !5
  %435 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef @.str.8)
  br label %449

436:                                              ; preds = %423
  %437 = load ptr, ptr %3, align 8, !tbaa !5
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %437, ptr noundef @.str.64)
  br label %449

439:                                              ; preds = %423
  %440 = load ptr, ptr %3, align 8, !tbaa !5
  %441 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %440, ptr noundef @.str.65)
  br label %449

442:                                              ; preds = %423
  %443 = load ptr, ptr %3, align 8, !tbaa !5
  %444 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %443, ptr noundef @.str.66)
  br label %449

445:                                              ; preds = %423
  br label %446

446:                                              ; preds = %447, %445
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.48, ptr noundef @.str.34, i32 noundef 627, ptr noundef @__PRETTY_FUNCTION__._ZlsRSoRK14PointsToAction, i32 noundef 2, ptr noundef @.str.35) #8
  unreachable

447:                                              ; No predecessors!
  br i1 true, label %446, label %448, !llvm.loop !13

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448, %442, %439, %436, %433
  %450 = load ptr, ptr %3, align 8, !tbaa !5
  %451 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef @.str.67)
  br label %452

452:                                              ; preds = %449, %420
  %453 = load ptr, ptr %3, align 8, !tbaa !5
  %454 = load ptr, ptr %5, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.PointsToOperation, ptr %454, i32 0, i32 1
  %456 = load ptr, ptr %455, align 8, !tbaa !12
  %457 = call noundef ptr @_ZNK12DexMethodRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %456)
  %458 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %457)
  %459 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %458)
  %460 = getelementptr inbounds { i64, ptr }, ptr %45, i32 0, i32 0
  %461 = extractvalue { i64, ptr } %459, 0
  store i64 %461, ptr %460, align 8
  %462 = getelementptr inbounds { i64, ptr }, ptr %45, i32 0, i32 1
  %463 = extractvalue { i64, ptr } %459, 1
  store ptr %463, ptr %462, align 8
  %464 = getelementptr inbounds { i64, ptr }, ptr %45, i32 0, i32 0
  %465 = load i64, ptr %464, align 8
  %466 = getelementptr inbounds { i64, ptr }, ptr %45, i32 0, i32 1
  %467 = load ptr, ptr %466, align 8
  %468 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %453, i64 %465, ptr %467)
  %469 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %468, ptr noundef @.str.60)
  %470 = load ptr, ptr %5, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.PointsToOperation, ptr %470, i32 0, i32 1
  %472 = load ptr, ptr %471, align 8, !tbaa !12
  %473 = call noundef ptr @_ZNK12DexMethodRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %472)
  %474 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %473)
  %475 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 0
  %476 = extractvalue { i64, ptr } %474, 0
  store i64 %476, ptr %475, align 8
  %477 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 1
  %478 = extractvalue { i64, ptr } %474, 1
  store ptr %478, ptr %477, align 8
  %479 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 0
  %480 = load i64, ptr %479, align 8
  %481 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 1
  %482 = load ptr, ptr %481, align 8
  %483 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %469, i64 %480, ptr %482)
  %484 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %483, ptr noundef @.str.61)
  call void @llvm.lifetime.start.p0(i64 24, ptr %47) #7
  %485 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind writable sret(%"class.std::vector.53") align 8 %47, ptr noundef nonnull align 8 dereferenceable(40) %485)
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #7
  %486 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  %487 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %48, i32 0, i32 0
  store ptr %486, ptr %487, align 8
  br label %488

488:                                              ; preds = %527, %452
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #7
  %489 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  %490 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %49, i32 0, i32 0
  store ptr %489, ptr %490, align 8
  %491 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #7
  br i1 %491, label %493, label %492

492:                                              ; preds = %488
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %530

493:                                              ; preds = %488
  %494 = load ptr, ptr %3, align 8, !tbaa !5
  %495 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  %496 = getelementptr inbounds %"struct.std::pair.61", ptr %495, i32 0, i32 0
  %497 = load i64, ptr %496, align 8, !tbaa !15
  %498 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %494, i64 noundef %497)
          to label %499 unwind label %518

499:                                              ; preds = %493
  %500 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %498, ptr noundef @.str.68)
          to label %501 unwind label %518

501:                                              ; preds = %499
  %502 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  %503 = getelementptr inbounds %"struct.std::pair.61", ptr %502, i32 0, i32 1
  %504 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %500, ptr noundef nonnull align 4 dereferenceable(4) %503)
          to label %505 unwind label %518

505:                                              ; preds = %501
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %51, ptr align 8 %48, i64 8, i1 false), !tbaa.struct !20
  %506 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %51, i32 0, i32 0
  %507 = load ptr, ptr %506, align 8
  %508 = invoke ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr %507, i64 noundef 1)
          to label %509 unwind label %522

509:                                              ; preds = %505
  %510 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %50, i32 0, i32 0
  store ptr %508, ptr %510, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #7
  %511 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  %512 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %52, i32 0, i32 0
  store ptr %511, ptr %512, align 8
  %513 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br i1 %513, label %514, label %526

514:                                              ; preds = %509
  %515 = load ptr, ptr %3, align 8, !tbaa !5
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %515, ptr noundef @.str.69)
          to label %517 unwind label %518

517:                                              ; preds = %514
  br label %526

518:                                              ; preds = %514, %501, %499, %493
  %519 = landingpad { ptr, i32 }
          cleanup
  %520 = extractvalue { ptr, i32 } %519, 0
  store ptr %520, ptr %9, align 8
  %521 = extractvalue { ptr, i32 } %519, 1
  store i32 %521, ptr %10, align 4
  br label %529

522:                                              ; preds = %505
  %523 = landingpad { ptr, i32 }
          cleanup
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %9, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #7
  br label %529

526:                                              ; preds = %517, %509
  br label %527

527:                                              ; preds = %526
  %528 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #7
  br label %488, !llvm.loop !21

529:                                              ; preds = %522, %518
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #7
  br label %538

530:                                              ; preds = %492
  %531 = load ptr, ptr %3, align 8, !tbaa !5
  %532 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %531, ptr noundef @.str.56)
          to label %533 unwind label %534

533:                                              ; preds = %530
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  br label %592

534:                                              ; preds = %530
  %535 = landingpad { ptr, i32 }
          cleanup
  %536 = extractvalue { ptr, i32 } %535, 0
  store ptr %536, ptr %9, align 8
  %537 = extractvalue { ptr, i32 } %535, 1
  store i32 %537, ptr %10, align 4
  br label %538

538:                                              ; preds = %534, %529
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %47) #7
  br label %594

539:                                              ; preds = %2
  %540 = load ptr, ptr %3, align 8, !tbaa !5
  %541 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %540, ptr noundef @.str.70)
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #7
  %542 = load ptr, ptr %4, align 8, !tbaa !5
  %543 = call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %542)
  %544 = getelementptr inbounds %class.PointsToVariable, ptr %53, i32 0, i32 0
  store i32 %543, ptr %544, align 4
  %545 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %541, ptr noundef nonnull align 4 dereferenceable(4) %53)
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #7
  br label %592

546:                                              ; preds = %2
  %547 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #7
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  %549 = call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %548)
  %550 = getelementptr inbounds %class.PointsToVariable, ptr %54, i32 0, i32 0
  store i32 %549, ptr %550, align 4
  %551 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %547, ptr noundef nonnull align 4 dereferenceable(4) %54)
  %552 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %551, ptr noundef @.str.49)
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %55) #7
  %553 = load ptr, ptr %4, align 8, !tbaa !5
  call void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind writable sret(%"class.std::vector.53") align 8 %55, ptr noundef nonnull align 8 dereferenceable(40) %553)
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #7
  %554 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  %555 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %56, i32 0, i32 0
  store ptr %554, ptr %555, align 8
  br label %556

556:                                              ; preds = %588, %546
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #7
  %557 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  %558 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %57, i32 0, i32 0
  store ptr %557, ptr %558, align 8
  %559 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #7
  br i1 %559, label %561, label %560

560:                                              ; preds = %556
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  br label %591

561:                                              ; preds = %556
  %562 = load ptr, ptr %3, align 8, !tbaa !5
  %563 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  %564 = getelementptr inbounds %"struct.std::pair.61", ptr %563, i32 0, i32 1
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %562, ptr noundef nonnull align 4 dereferenceable(4) %564)
          to label %566 unwind label %579

566:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #7
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %59, ptr align 8 %56, i64 8, i1 false), !tbaa.struct !20
  %567 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %59, i32 0, i32 0
  %568 = load ptr, ptr %567, align 8
  %569 = invoke ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr %568, i64 noundef 1)
          to label %570 unwind label %583

570:                                              ; preds = %566
  %571 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %58, i32 0, i32 0
  store ptr %569, ptr %571, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #7
  %572 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  %573 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.79", ptr %60, i32 0, i32 0
  store ptr %572, ptr %573, align 8
  %574 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  br i1 %574, label %575, label %587

575:                                              ; preds = %570
  %576 = load ptr, ptr %3, align 8, !tbaa !5
  %577 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %576, ptr noundef @.str.71)
          to label %578 unwind label %579

578:                                              ; preds = %575
  br label %587

579:                                              ; preds = %575, %561
  %580 = landingpad { ptr, i32 }
          cleanup
  %581 = extractvalue { ptr, i32 } %580, 0
  store ptr %581, ptr %9, align 8
  %582 = extractvalue { ptr, i32 } %580, 1
  store i32 %582, ptr %10, align 4
  br label %590

583:                                              ; preds = %566
  %584 = landingpad { ptr, i32 }
          cleanup
  %585 = extractvalue { ptr, i32 } %584, 0
  store ptr %585, ptr %9, align 8
  %586 = extractvalue { ptr, i32 } %584, 1
  store i32 %586, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #7
  br label %590

587:                                              ; preds = %578, %570
  br label %588

588:                                              ; preds = %587
  %589 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %56) #7
  br label %556, !llvm.loop !22

590:                                              ; preds = %583, %579
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #7
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #7
  br label %594

591:                                              ; preds = %560
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %55) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %55) #7
  br label %592

592:                                              ; preds = %591, %539, %533, %373, %358, %294, %257, %247, %184, %157, %145, %134, %113, %106, %84, %79, %2
  %593 = load ptr, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  ret ptr %593

594:                                              ; preds = %590, %538, %372, %256, %80
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  br label %595

595:                                              ; preds = %594
  %596 = load ptr, ptr %9, align 8
  %597 = load i32, ptr %10, align 4
  %598 = insertvalue { ptr, i32 } poison, ptr %596, 0
  %599 = insertvalue { ptr, i32 } %598, i32 %597, 1
  resume { ptr, i32 } %599
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detaillsIcSt11char_traitsIcERKNSt7__cxx1112basic_stringIcS2_SaIcEEEEERSt13basic_ostreamIT_T0_ESD_RKNS_14_Quoted_stringIT1_SA_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(10)) #2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZSt6quotedIcSt11char_traitsIcESaIcEEDaRKNSt7__cxx1112basic_stringIT_T0_T1_EES5_S5_(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i8 noundef signext) #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9DexString8str_copyB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8), i64, ptr) #3

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

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #3

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK14PointsToAction8has_destEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #6

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr, i64 noundef) #3

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

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

!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 = !{!"_ZTS17PointsToOperation", !11, i64 0, !7, i64 8}
!11 = !{!"_ZTS21PointsToOperationKind", !7, i64 0}
!12 = !{!7, !7, i64 0}
!13 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !17, i64 0}
!16 = !{!"_ZTSSt4pairIm16PointsToVariableE", !17, i64 0, !18, i64 8}
!17 = !{!"long", !7, i64 0}
!18 = !{!"_ZTS16PointsToVariable", !19, i64 0}
!19 = !{!"int", !7, i64 0}
!20 = !{i64 0, i64 8, !5}
!21 = distinct !{!21, !14}
!22 = distinct !{!22, !14}


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

%"class.std::vector.53" = type { %"struct.std::_Vector_base.54" }
%"struct.std::_Vector_base.54" = type { %"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<unsigned long, PointsToVariable>, std::allocator<std::pair<unsigned long, PointsToVariable>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%class.PointsToVariable = type { i32 }
%"struct.std::__detail::_Quoted_string" = type <{ ptr, i8, i8, [6 x i8] }>
%"class.__gnu_cxx::__normal_iterator.79" = type { ptr }

@.str.8 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [2 x i8], align 1
@__PRETTY_FUNCTION__._ZlsRSoRK14PointsToAction = external hidden unnamed_addr constant [65 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1
@switch.table._ZlsRSoRK14PointsToAction = private unnamed_addr constant [4 x ptr] [ptr @.str.8, ptr @.str.64, ptr @.str.65, ptr @.str.66], align 8

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

; Function Attrs: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #4

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind noalias writable sret(%"class.std::vector.53") align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK14PointsToAction(ptr noundef nonnull returned align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(40) %1) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %3 = alloca %class.PointsToVariable, align 4
  %4 = alloca %"struct.std::__detail::_Quoted_string", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca %class.PointsToVariable, align 4
  %7 = alloca %class.PointsToVariable, align 4
  %8 = alloca %class.PointsToVariable, align 4
  %9 = alloca %class.PointsToVariable, align 4
  %10 = alloca %class.PointsToVariable, align 4
  %11 = alloca %class.PointsToVariable, align 4
  %12 = alloca %class.PointsToVariable, align 4
  %13 = alloca %class.PointsToVariable, align 4
  %14 = alloca %class.PointsToVariable, align 4
  %15 = alloca %class.PointsToVariable, align 4
  %16 = alloca %class.PointsToVariable, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %class.PointsToVariable, align 4
  %19 = alloca %class.PointsToVariable, align 4
  %20 = alloca %class.PointsToVariable, align 4
  %21 = alloca %class.PointsToVariable, align 4
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %class.PointsToVariable, align 4
  %24 = alloca %class.PointsToVariable, align 4
  %25 = alloca %class.PointsToVariable, align 4
  %26 = alloca %class.PointsToVariable, align 4
  %27 = alloca %class.PointsToVariable, align 4
  %28 = alloca %"class.std::vector.53", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %33 = alloca %class.PointsToVariable, align 4
  %34 = alloca %class.PointsToVariable, align 4
  %35 = alloca %"class.std::vector.53", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.79", align 8
  %40 = tail call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK14PointsToAction9operationEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  %41 = load i32, ptr %40, align 8, !tbaa !5
  switch i32 %41, label %336 [
    i32 0, label %42
    i32 1, label %54
    i32 2, label %66
    i32 3, label %70
    i32 4, label %81
    i32 5, label %88
    i32 6, label %95
    i32 7, label %110
    i32 8, label %132
    i32 9, label %153
    i32 10, label %172
    i32 11, label %194
    i32 12, label %219
    i32 13, label %238
    i32 14, label %238
    i32 15, label %238
    i32 16, label %238
    i32 17, label %238
    i32 18, label %306
    i32 19, label %310
  ]

42:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #6
  %43 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %43, ptr %3, align 4
  %44 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %3)
  %45 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #6
  %46 = getelementptr inbounds i8, ptr %40, i64 8
  %47 = load ptr, ptr %46, align 8, !tbaa !10
  call void @_ZNK9DexString8str_copyB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr noundef nonnull align 8 dereferenceable(16) %47)
  %48 = invoke { ptr, i64 } @_ZSt6quotedIcSt11char_traitsIcESaIcEEDaRKNSt7__cxx1112basic_stringIT_T0_T1_EES5_S5_(ptr noundef nonnull align 8 dereferenceable(32) %5, i8 noundef signext 34, i8 noundef signext 92)
          to label %49 unwind label %52

49:                                               ; preds = %42
  %.fca.0.extract = extractvalue { ptr, i64 } %48, 0
  %.fca.1.extract = extractvalue { ptr, i64 } %48, 1
  store ptr %.fca.0.extract, ptr %4, align 8
  %.sroa.228.0..sroa_idx = getelementptr inbounds i8, ptr %4, i64 8
  %.sroa.228.0.extract.trunc = trunc i64 %.fca.1.extract to i16
  store i16 %.sroa.228.0.extract.trunc, ptr %.sroa.228.0..sroa_idx, align 8
  %50 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detaillsIcSt11char_traitsIcERKNSt7__cxx1112basic_stringIcS2_SaIcEEEEERSt13basic_ostreamIT_T0_ESD_RKNS_14_Quoted_stringIT1_SA_EE(ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(10) %4)
          to label %51 unwind label %52

51:                                               ; preds = %49
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %336

52:                                               ; preds = %49, %42
  %53 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #6
  br label %337

54:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #6
  %55 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %55, ptr %6, align 4
  %56 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %6)
  %57 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %56, ptr noundef nonnull @.str.50)
  %58 = getelementptr inbounds i8, ptr %40, i64 8
  %59 = load ptr, ptr %58, align 8, !tbaa !10
  %60 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %59)
  %61 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %60)
  %62 = extractvalue { i64, ptr } %61, 0
  %63 = extractvalue { i64, ptr } %61, 1
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %57, i64 %62, ptr %63)
  %65 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull @.str.51)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #6
  br label %336

66:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #6
  %67 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %67, ptr %7, align 4
  %68 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %7)
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %68, ptr noundef nonnull @.str.52)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #6
  br label %336

70:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #6
  %71 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %71, ptr %8, align 4
  %72 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %8)
  %73 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull @.str.53)
  %74 = getelementptr inbounds i8, ptr %40, i64 8
  %75 = load ptr, ptr %74, align 8, !tbaa !10
  %76 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %75)
  %77 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %76)
  %78 = extractvalue { i64, ptr } %77, 0
  %79 = extractvalue { i64, ptr } %77, 1
  %80 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %73, i64 %78, ptr %79)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #6
  br label %336

81:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #6
  %82 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %82, ptr %9, align 4
  %83 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %9)
  %84 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %83, ptr noundef nonnull @.str.54)
  %85 = getelementptr inbounds i8, ptr %40, i64 8
  %86 = load i64, ptr %85, align 8, !tbaa !10
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %84, i64 noundef %86)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #6
  br label %336

88:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #6
  %89 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %89, ptr %10, align 4
  %90 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %10)
  %91 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef nonnull @.str.55)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #6
  %92 = call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %92, ptr %11, align 4
  %93 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull align 4 dereferenceable(4) %11)
  %94 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull @.str.56)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #6
  br label %336

95:                                               ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #6
  %96 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %96, ptr %12, align 4
  %97 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %12)
  %98 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %97, ptr noundef nonnull @.str.57)
  %99 = getelementptr inbounds i8, ptr %40, i64 8
  %100 = load ptr, ptr %99, align 8, !tbaa !10
  %101 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %100)
  %102 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %101)
  %103 = extractvalue { i64, ptr } %102, 0
  %104 = extractvalue { i64, ptr } %102, 1
  %105 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %98, i64 %103, ptr %104)
  %106 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %105, ptr noundef nonnull @.str.58)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #6
  %107 = call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %107, ptr %13, align 4
  %108 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %106, ptr noundef nonnull align 4 dereferenceable(4) %13)
  %109 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %108, ptr noundef nonnull @.str.56)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #6
  br label %336

110:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #6
  %111 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %111, ptr %14, align 4
  %112 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %14)
  %113 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %112, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #6
  %114 = call i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %114, ptr %15, align 4
  %115 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %113, ptr noundef nonnull align 4 dereferenceable(4) %15)
  %116 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull @.str.59)
  %117 = getelementptr inbounds i8, ptr %40, i64 8
  %118 = load ptr, ptr %117, align 8, !tbaa !10
  %119 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %118)
  %120 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %119)
  %121 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %120)
  %122 = extractvalue { i64, ptr } %121, 0
  %123 = extractvalue { i64, ptr } %121, 1
  %124 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %116, i64 %122, ptr %123)
  %125 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef nonnull @.str.60)
  %126 = load ptr, ptr %117, align 8, !tbaa !10
  %127 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %126)
  %128 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %127)
  %129 = extractvalue { i64, ptr } %128, 0
  %130 = extractvalue { i64, ptr } %128, 1
  %131 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %125, i64 %129, ptr %130)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #6
  br label %336

132:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #6
  %133 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %133, ptr %16, align 4
  %134 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %16)
  %135 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %134, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #6
  %136 = getelementptr inbounds i8, ptr %40, i64 8
  %137 = load i32, ptr %136, align 8, !tbaa !10
  call void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, i32 noundef %137)
  %138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %135, ptr noundef nonnull align 8 dereferenceable(32) %17)
          to label %139 unwind label %148

139:                                              ; preds = %132
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull @.str.61)
          to label %141 unwind label %148

141:                                              ; preds = %139
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #6
  %142 = invoke i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
          to label %143 unwind label %150

143:                                              ; preds = %141
  store i32 %142, ptr %18, align 4
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %140, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %145 unwind label %150

145:                                              ; preds = %143
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @.str.56)
          to label %147 unwind label %150

147:                                              ; preds = %145
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %336

148:                                              ; preds = %139, %132
  %149 = landingpad { ptr, i32 }
          cleanup
  br label %152

150:                                              ; preds = %145, %143, %141
  %151 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #6
  br label %152

152:                                              ; preds = %150, %148
  %.pn119 = phi { ptr, i32 } [ %151, %150 ], [ %149, %148 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #6
  br label %337

153:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #6
  %154 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %154, ptr %19, align 4
  %155 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %19)
  %156 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %155, ptr noundef nonnull @.str.49)
  %157 = getelementptr inbounds i8, ptr %40, i64 8
  %158 = load ptr, ptr %157, align 8, !tbaa !10
  %159 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %158)
  %160 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %159)
  %161 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %160)
  %162 = extractvalue { i64, ptr } %161, 0
  %163 = extractvalue { i64, ptr } %161, 1
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %156, i64 %162, ptr %163)
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str.60)
  %166 = load ptr, ptr %157, align 8, !tbaa !10
  %167 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %166)
  %168 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %167)
  %169 = extractvalue { i64, ptr } %168, 0
  %170 = extractvalue { i64, ptr } %168, 1
  %171 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %165, i64 %169, ptr %170)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #6
  br label %336

172:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #6
  %173 = tail call i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %173, ptr %20, align 4
  %174 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %20)
  %175 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull @.str.59)
  %176 = getelementptr inbounds i8, ptr %40, i64 8
  %177 = load ptr, ptr %176, align 8, !tbaa !10
  %178 = call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %177)
  %179 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %178)
  %180 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %179)
  %181 = extractvalue { i64, ptr } %180, 0
  %182 = extractvalue { i64, ptr } %180, 1
  %183 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %175, i64 %181, ptr %182)
  %184 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %183, ptr noundef nonnull @.str.60)
  %185 = load ptr, ptr %176, align 8, !tbaa !10
  %186 = call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %185)
  %187 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %186)
  %188 = extractvalue { i64, ptr } %187, 0
  %189 = extractvalue { i64, ptr } %187, 1
  %190 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %184, i64 %188, ptr %189)
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #6
  %192 = call i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %192, ptr %21, align 4
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %191, ptr noundef nonnull align 4 dereferenceable(4) %21)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #6
  br label %336

194:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #6
  %195 = getelementptr inbounds i8, ptr %40, i64 8
  %196 = load i32, ptr %195, align 8, !tbaa !10
  call void @_ZN8pts_impl22special_edge_to_stringB5cxx11E19SpecialPointsToEdge(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, i32 noundef %196)
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %198 unwind label %211

198:                                              ; preds = %194
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @.str.61)
          to label %200 unwind label %211

200:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #6
  %201 = invoke i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
          to label %202 unwind label %213

202:                                              ; preds = %200
  store i32 %201, ptr %23, align 4
  %203 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %199, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %204 unwind label %213

204:                                              ; preds = %202
  %205 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %203, ptr noundef nonnull @.str.62)
          to label %206 unwind label %213

206:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #6
  %207 = invoke i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
          to label %208 unwind label %215

208:                                              ; preds = %206
  store i32 %207, ptr %24, align 4
  %209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %205, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %210 unwind label %215

210:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %336

211:                                              ; preds = %198, %194
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %218

213:                                              ; preds = %204, %202, %200
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %217

215:                                              ; preds = %208, %206
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #6
  br label %217

217:                                              ; preds = %215, %213
  %.pn116 = phi { ptr, i32 } [ %216, %215 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #6
  br label %218

218:                                              ; preds = %217, %211
  %.pn116.pn = phi { ptr, i32 } [ %.pn116, %217 ], [ %212, %211 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #6
  br label %337

219:                                              ; preds = %2
  %220 = getelementptr inbounds i8, ptr %40, i64 8
  %221 = load ptr, ptr %220, align 8, !tbaa !10
  %222 = tail call noundef ptr @_ZNK11DexFieldRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %221)
  %223 = tail call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %222)
  %224 = tail call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %223)
  %225 = extractvalue { i64, ptr } %224, 0
  %226 = extractvalue { i64, ptr } %224, 1
  %227 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 %225, ptr %226)
  %228 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %227, ptr noundef nonnull @.str.60)
  %229 = load ptr, ptr %220, align 8, !tbaa !10
  %230 = tail call noundef ptr @_ZNK11DexFieldRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %229)
  %231 = tail call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %230)
  %232 = extractvalue { i64, ptr } %231, 0
  %233 = extractvalue { i64, ptr } %231, 1
  %234 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %228, i64 %232, ptr %233)
  %235 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %234, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #6
  %236 = tail call i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %236, ptr %25, align 4
  %237 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull align 4 dereferenceable(4) %25)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #6
  br label %336

238:                                              ; preds = %2, %2, %2, %2, %2
  %239 = tail call noundef zeroext i1 @_ZNK14PointsToAction8has_destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  br i1 %239, label %240, label %244

240:                                              ; preds = %238
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %26) #6
  %241 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %241, ptr %26, align 4
  %242 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %26)
  %243 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %26) #6
  br label %244

244:                                              ; preds = %240, %238
  %245 = call noundef zeroext i1 @_ZNK17PointsToOperation14is_static_callEv(ptr noundef nonnull align 8 dereferenceable(16) %40)
  br i1 %245, label %256, label %246

246:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %27) #6
  %247 = call i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %247, ptr %27, align 4
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %27)
  %249 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %248, ptr noundef nonnull @.str.63)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %27) #6
  %250 = load i32, ptr %40, align 8, !tbaa !5
  %switch.tableidx = add i32 %250, -13
  %251 = icmp ult i32 %switch.tableidx, 4
  br i1 %251, label %switch.lookup, label %252

252:                                              ; preds = %246
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.34, i32 noundef 627, ptr noundef nonnull @__PRETTY_FUNCTION__._ZlsRSoRK14PointsToAction, i32 noundef 2, ptr noundef nonnull @.str.35) #7
  unreachable

switch.lookup:                                    ; preds = %246
  %253 = zext nneg i32 %switch.tableidx to i64
  %switch.gep = getelementptr inbounds [4 x ptr], ptr @switch.table._ZlsRSoRK14PointsToAction, i64 0, i64 %253
  %switch.load = load ptr, ptr %switch.gep, align 8
  %254 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %switch.load)
  %255 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.67)
  br label %256

256:                                              ; preds = %switch.lookup, %244
  %257 = getelementptr inbounds i8, ptr %40, i64 8
  %258 = load ptr, ptr %257, align 8, !tbaa !10
  %259 = call noundef ptr @_ZNK12DexMethodRef9get_classEv(ptr noundef nonnull align 8 dereferenceable(26) %258)
  %260 = call noundef ptr @_ZNK7DexType8get_nameEv(ptr noundef nonnull align 8 dereferenceable(16) %259)
  %261 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %260)
  %262 = extractvalue { i64, ptr } %261, 0
  %263 = extractvalue { i64, ptr } %261, 1
  %264 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 %262, ptr %263)
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull @.str.60)
  %266 = load ptr, ptr %257, align 8, !tbaa !10
  %267 = call noundef ptr @_ZNK12DexMethodRef8get_nameEv(ptr noundef nonnull align 8 dereferenceable(26) %266)
  %268 = call { i64, ptr } @_ZNK9DexString3strEv(ptr noundef nonnull align 8 dereferenceable(16) %267)
  %269 = extractvalue { i64, ptr } %268, 0
  %270 = extractvalue { i64, ptr } %268, 1
  %271 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8) %265, i64 %269, ptr %270)
  %272 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %271, ptr noundef nonnull @.str.61)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #6
  call void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.53") align 8 %28, ptr noundef nonnull align 8 dereferenceable(40) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #6
  %273 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  store ptr %273, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  %274 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  store ptr %274, ptr %30, align 8
  %275 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  br i1 %275, label %.lr.ph123, label %._crit_edge124

._crit_edge124:                                   ; preds = %297, %256
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.56)
          to label %302 unwind label %303

.lr.ph123:                                        ; preds = %256, %297
  %277 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  %278 = load i64, ptr %277, align 8, !tbaa !11
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8) %0, i64 noundef %278)
          to label %280 unwind label %293

280:                                              ; preds = %.lr.ph123
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef nonnull @.str.68)
          to label %282 unwind label %293

282:                                              ; preds = %280
  %283 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  %284 = getelementptr inbounds i8, ptr %283, i64 8
  %285 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %281, ptr noundef nonnull align 4 dereferenceable(4) %284)
          to label %286 unwind label %293

286:                                              ; preds = %282
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #6
  %.sroa.01.0.copyload = load ptr, ptr %29, align 8, !tbaa !16
  %287 = invoke ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr %.sroa.01.0.copyload, i64 noundef 1)
          to label %288 unwind label %295

288:                                              ; preds = %286
  store ptr %287, ptr %31, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #6
  %289 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  store ptr %289, ptr %32, align 8
  %290 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  br i1 %290, label %291, label %297

291:                                              ; preds = %288
  %292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.69)
          to label %297 unwind label %293

293:                                              ; preds = %291, %282, %280, %.lr.ph123
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %301

295:                                              ; preds = %286
  %296 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #6
  br label %301

297:                                              ; preds = %288, %291
  %298 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #6
  %299 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  store ptr %299, ptr %30, align 8
  %300 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #6
  br i1 %300, label %.lr.ph123, label %._crit_edge124, !llvm.loop !18

301:                                              ; preds = %295, %293
  %.pn113 = phi { ptr, i32 } [ %294, %293 ], [ %296, %295 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #6
  br label %305

302:                                              ; preds = %._crit_edge124
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #6
  br label %336

303:                                              ; preds = %._crit_edge124
  %304 = landingpad { ptr, i32 }
          cleanup
  br label %305

305:                                              ; preds = %303, %301
  %.pn113.pn = phi { ptr, i32 } [ %.pn113, %301 ], [ %304, %303 ]
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #6
  br label %337

306:                                              ; preds = %2
  %307 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.70)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #6
  %308 = tail call i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %308, ptr %33, align 4
  %309 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef nonnull align 4 dereferenceable(4) %33)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #6
  br label %336

310:                                              ; preds = %2
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %34) #6
  %311 = tail call i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40) %1)
  store i32 %311, ptr %34, align 4
  %312 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %34)
  %313 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull @.str.49)
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %34) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %35) #6
  call void @_ZNK14PointsToAction13get_argumentsEv(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.53") align 8 %35, ptr noundef nonnull align 8 dereferenceable(40) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #6
  %314 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  store ptr %314, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  %315 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  store ptr %315, ptr %37, align 8
  %316 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  br i1 %316, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %331, %310
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #6
  br label %336

.lr.ph:                                           ; preds = %310, %331
  %317 = call noundef ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEptEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  %318 = getelementptr inbounds i8, ptr %317, i64 8
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK16PointsToVariable(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull align 4 dereferenceable(4) %318)
          to label %320 unwind label %327

320:                                              ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #6
  %.sroa.0.0.copyload = load ptr, ptr %36, align 8, !tbaa !16
  %321 = invoke ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr %.sroa.0.0.copyload, i64 noundef 1)
          to label %322 unwind label %329

322:                                              ; preds = %320
  store ptr %321, ptr %38, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #6
  %323 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  store ptr %323, ptr %39, align 8
  %324 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  br i1 %324, label %325, label %331

325:                                              ; preds = %322
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull @.str.71)
          to label %331 unwind label %327

327:                                              ; preds = %325, %.lr.ph
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %335

329:                                              ; preds = %320
  %330 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #6
  br label %335

331:                                              ; preds = %322, %325
  %332 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #6
  %333 = call ptr @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  store ptr %333, ptr %37, align 8
  %334 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #6
  br i1 %334, label %.lr.ph, label %._crit_edge, !llvm.loop !20

335:                                              ; preds = %329, %327
  %.pn = phi { ptr, i32 } [ %328, %327 ], [ %330, %329 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #6
  call void @_ZNSt6vectorISt4pairIm16PointsToVariableESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %35) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %35) #6
  br label %337

336:                                              ; preds = %._crit_edge, %306, %302, %219, %210, %172, %153, %147, %110, %95, %88, %81, %70, %66, %54, %51, %2
  ret ptr %0

337:                                              ; preds = %335, %305, %218, %152, %52
  %.pn.pn = phi { ptr, i32 } [ %.pn, %335 ], [ %.pn113.pn, %305 ], [ %.pn116.pn, %218 ], [ %.pn119, %152 ], [ %53, %52 ]
  resume { ptr, i32 } %.pn.pn
}

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detaillsIcSt11char_traitsIcERKNSt7__cxx1112basic_stringIcS2_SaIcEEEEERSt13basic_ostreamIT_T0_ESD_RKNS_14_Quoted_stringIT1_SA_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(10)) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction4destEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local { ptr, i64 } @_ZSt6quotedIcSt11char_traitsIcESaIcEEDaRKNSt7__cxx1112basic_stringIT_T0_T1_EES5_S5_(ptr noundef nonnull align 8 dereferenceable(32), i8 noundef signext, i8 noundef signext) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK9DexString8str_copyB5cxx11Ev(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E(ptr noundef nonnull align 8 dereferenceable(8), i64, ptr) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3srcEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction8instanceEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3lhsEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local i32 @_ZNK14PointsToAction3rhsEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK14PointsToAction8has_destEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPSt4pairIm16PointsToVariableESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESD_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4nextIN9__gnu_cxx17__normal_iteratorIPSt4pairIm16PointsToVariableESt6vectorIS4_SaIS4_EEEEET_SA_NSt15iterator_traitsISA_E15difference_typeE(ptr, i64 noundef) local_unnamed_addr #3

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

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

!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 = !{!"_ZTS17PointsToOperation", !7, i64 0, !8, i64 8}
!7 = !{!"_ZTS21PointsToOperationKind", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!8, !8, i64 0}
!11 = !{!12, !13, i64 0}
!12 = !{!"_ZTSSt4pairIm16PointsToVariableE", !13, i64 0, !14, i64 8}
!13 = !{!"long", !8, i64 0}
!14 = !{!"_ZTS16PointsToVariable", !15, i64 0}
!15 = !{!"int", !8, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"any pointer", !8, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass