; LLVM IR from facebook/redex :: tools/common/Formatters.ll (Z20format_encoded_valueB5cxx11P10ddump_dataPPKh)

; 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::__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.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.std::_Setfill" = type { i8 }
%"struct.std::_Setw" = type { i32 }
%struct.ddump_data = type { i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.dex_proto_id = type { i32, i32, i32 }

@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw(ptr noundef nonnull align 8 dereferenceable(8), i32) #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E(ptr noundef nonnull align 8 dereferenceable(8), i8) #2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext) #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #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 void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20format_encoded_valueB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef %1, ptr noundef %2) #1 personality ptr @__gxx_personality_v0 {
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca %"struct.std::_Setfill", align 1
  %14 = alloca %"struct.std::_Setw", align 4
  %15 = alloca %"struct.std::_Setfill", align 1
  %16 = alloca %"struct.std::_Setw", align 4
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %4, align 8
  store ptr %1, ptr %5, align 8, !tbaa !5
  store ptr %2, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 376, ptr %7) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7)
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  %32 = load ptr, ptr %6, align 8, !tbaa !5
  %33 = load ptr, ptr %32, align 8, !tbaa !5
  store ptr %33, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #6
  %34 = load ptr, ptr %8, align 8, !tbaa !5
  %35 = getelementptr inbounds i8, ptr %34, i32 1
  store ptr %35, ptr %8, align 8, !tbaa !5
  %36 = load i8, ptr %34, align 1, !tbaa !9
  store i8 %36, ptr %9, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #6
  %37 = load i8, ptr %9, align 1, !tbaa !9
  %38 = zext i8 %37 to i32
  %39 = ashr i32 %38, 5
  %40 = trunc i32 %39 to i8
  store i8 %40, ptr %10, align 1, !tbaa !9
  %41 = load i8, ptr %9, align 1, !tbaa !9
  %42 = zext i8 %41 to i32
  %43 = and i32 %42, 31
  %44 = trunc i32 %43 to i8
  store i8 %44, ptr %9, align 1, !tbaa !9
  %45 = load i8, ptr %9, align 1, !tbaa !9
  %46 = zext i8 %45 to i32
  switch i32 %46, label %344 [
    i32 0, label %47
    i32 2, label %47
    i32 3, label %47
    i32 4, label %47
    i32 6, label %47
    i32 16, label %47
    i32 17, label %47
    i32 22, label %47
    i32 25, label %47
    i32 26, label %47
    i32 27, label %47
    i32 21, label %121
    i32 24, label %210
    i32 23, label %246
    i32 28, label %281
    i32 29, label %312
    i32 30, label %330
    i32 31, label %333
  ]

47:                                               ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3
  %48 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.23)
          to label %49 unwind label %114

49:                                               ; preds = %47
  %50 = load i8, ptr %9, align 1, !tbaa !9
  %51 = invoke noundef ptr @_ZN12_GLOBAL__N_115value_to_stringEh(i8 noundef zeroext %50)
          to label %52 unwind label %114

52:                                               ; preds = %49
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef %51)
          to label %54 unwind label %114

54:                                               ; preds = %52
  %55 = load i8, ptr %9, align 1, !tbaa !9
  %56 = load i8, ptr %10, align 1, !tbaa !9
  %57 = invoke noundef ptr @_ZN12_GLOBAL__N_110check_sizeEhh(i8 noundef zeroext %55, i8 noundef zeroext %56)
          to label %58 unwind label %114

58:                                               ; preds = %54
  %59 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr noundef %57)
          to label %60 unwind label %114

60:                                               ; preds = %58
  %61 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %59, ptr noundef @.str.24)
          to label %62 unwind label %114

62:                                               ; preds = %60
  %63 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %64 unwind label %114

64:                                               ; preds = %62
  %65 = invoke i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
          to label %66 unwind label %114

66:                                               ; preds = %64
  %67 = getelementptr inbounds %"struct.std::_Setfill", ptr %13, i32 0, i32 0
  store i8 %65, ptr %67, align 1
  %68 = getelementptr inbounds %"struct.std::_Setfill", ptr %13, i32 0, i32 0
  %69 = load i8, ptr %68, align 1
  %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %63, i8 %69)
          to label %71 unwind label %114

71:                                               ; preds = %66
  %72 = invoke i32 @_ZSt4setwi(i32 noundef 2)
          to label %73 unwind label %114

73:                                               ; preds = %71
  %74 = getelementptr inbounds %"struct.std::_Setw", ptr %14, i32 0, i32 0
  store i32 %72, ptr %74, align 4
  %75 = getelementptr inbounds %"struct.std::_Setw", ptr %14, i32 0, i32 0
  %76 = load i32, ptr %75, align 4
  %77 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw(ptr noundef nonnull align 8 dereferenceable(8) %70, i32 %76)
          to label %78 unwind label %114

78:                                               ; preds = %73
  %79 = load ptr, ptr %8, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i32 1
  store ptr %80, ptr %8, align 8, !tbaa !5
  %81 = load i8, ptr %79, align 1, !tbaa !9
  %82 = zext i8 %81 to i32
  %83 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %77, i32 noundef %82)
          to label %84 unwind label %114

84:                                               ; preds = %78
  br label %85

85:                                               ; preds = %113, %84
  %86 = load i8, ptr %10, align 1, !tbaa !9
  %87 = add i8 %86, -1
  store i8 %87, ptr %10, align 1, !tbaa !9
  %88 = icmp ne i8 %86, 0
  br i1 %88, label %89, label %118

89:                                               ; preds = %85
  %90 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.24)
          to label %91 unwind label %114

91:                                               ; preds = %89
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %90, ptr noundef @_ZSt3hexRSt8ios_base)
          to label %93 unwind label %114

93:                                               ; preds = %91
  %94 = invoke i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
          to label %95 unwind label %114

95:                                               ; preds = %93
  %96 = getelementptr inbounds %"struct.std::_Setfill", ptr %15, i32 0, i32 0
  store i8 %94, ptr %96, align 1
  %97 = getelementptr inbounds %"struct.std::_Setfill", ptr %15, i32 0, i32 0
  %98 = load i8, ptr %97, align 1
  %99 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %92, i8 %98)
          to label %100 unwind label %114

100:                                              ; preds = %95
  %101 = invoke i32 @_ZSt4setwi(i32 noundef 2)
          to label %102 unwind label %114

102:                                              ; preds = %100
  %103 = getelementptr inbounds %"struct.std::_Setw", ptr %16, i32 0, i32 0
  store i32 %101, ptr %103, align 4
  %104 = getelementptr inbounds %"struct.std::_Setw", ptr %16, i32 0, i32 0
  %105 = load i32, ptr %104, align 4
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw(ptr noundef nonnull align 8 dereferenceable(8) %99, i32 %105)
          to label %107 unwind label %114

107:                                              ; preds = %102
  %108 = load ptr, ptr %8, align 8, !tbaa !5
  %109 = getelementptr inbounds i8, ptr %108, i32 1
  store ptr %109, ptr %8, align 8, !tbaa !5
  %110 = load i8, ptr %108, align 1, !tbaa !9
  %111 = zext i8 %110 to i32
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %106, i32 noundef %111)
          to label %113 unwind label %114

113:                                              ; preds = %107
  br label %85, !llvm.loop !10

114:                                              ; preds = %347, %344, %341, %335, %333, %330, %312, %118, %107, %102, %100, %95, %93, %91, %89, %78, %73, %71, %66, %64, %62, %60, %58, %54, %52, %49, %47
  %115 = landingpad { ptr, i32 }
          cleanup
  %116 = extractvalue { ptr, i32 } %115, 0
  store ptr %116, ptr %11, align 8
  %117 = extractvalue { ptr, i32 } %115, 1
  store i32 %117, ptr %12, align 4
  br label %351

118:                                              ; preds = %85
  %119 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.25)
          to label %120 unwind label %114

120:                                              ; preds = %118
  br label %347

121:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  store ptr null, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  %122 = load ptr, ptr %8, align 8, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %122, i32 1
  store ptr %123, ptr %8, align 8, !tbaa !5
  %124 = load i8, ptr %122, align 1, !tbaa !9
  %125 = zext i8 %124 to i32
  store i32 %125, ptr %18, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %126 = load ptr, ptr %5, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.ddump_data, ptr %126, i32 0, i32 11
  %128 = load ptr, ptr %127, align 8, !tbaa !14
  %129 = load i32, ptr %18, align 4, !tbaa !12
  %130 = zext i32 %129 to i64
  %131 = getelementptr inbounds %struct.dex_proto_id, ptr %128, i64 %130
  store ptr %131, ptr %19, align 8, !tbaa !5
  %132 = load ptr, ptr %19, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.dex_proto_id, ptr %132, i32 0, i32 1
  %134 = load i32, ptr %133, align 1, !tbaa !17
  %135 = icmp ne i32 %134, 0
  br i1 %135, label %136, label %148

136:                                              ; preds = %121
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  %138 = load ptr, ptr %19, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.dex_proto_id, ptr %138, i32 0, i32 1
  %140 = load i32, ptr %139, align 1, !tbaa !17
  %141 = trunc i32 %140 to i16
  %142 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef %137, i16 noundef zeroext %141)
          to label %143 unwind label %144

143:                                              ; preds = %136
  store ptr %142, ptr %17, align 8, !tbaa !5
  br label %148

144:                                              ; preds = %206, %153, %150, %148, %136
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %11, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %12, align 4
  br label %209

148:                                              ; preds = %143, %121
  %149 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.26)
          to label %150 unwind label %144

150:                                              ; preds = %148
  %151 = load ptr, ptr %17, align 8, !tbaa !5
  %152 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %149, ptr noundef %151)
          to label %153 unwind label %144

153:                                              ; preds = %150
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %152, ptr noundef @.str.27)
          to label %155 unwind label %144

155:                                              ; preds = %153
  %156 = load ptr, ptr %19, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.dex_proto_id, ptr %156, i32 0, i32 2
  %158 = load i32, ptr %157, align 1, !tbaa !19
  %159 = icmp ne i32 %158, 0
  br i1 %159, label %160, label %206

160:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  %161 = load ptr, ptr %5, align 8, !tbaa !5
  %162 = getelementptr inbounds %struct.ddump_data, ptr %161, i32 0, i32 2
  %163 = load ptr, ptr %162, align 8, !tbaa !20
  %164 = load ptr, ptr %19, align 8, !tbaa !5
  %165 = getelementptr inbounds %struct.dex_proto_id, ptr %164, i32 0, i32 2
  %166 = load i32, ptr %165, align 1, !tbaa !19
  %167 = zext i32 %166 to i64
  %168 = getelementptr inbounds i8, ptr %163, i64 %167
  store ptr %168, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #6
  %169 = load ptr, ptr %20, align 8, !tbaa !5
  %170 = getelementptr inbounds i32, ptr %169, i32 1
  store ptr %170, ptr %20, align 8, !tbaa !5
  %171 = load i32, ptr %169, align 4, !tbaa !12
  store i32 %171, ptr %21, align 4, !tbaa !12
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %172 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %172, ptr %22, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  store i32 0, ptr %23, align 4, !tbaa !12
  br label %173

173:                                              ; preds = %202, %160
  %174 = load i32, ptr %23, align 4, !tbaa !12
  %175 = load i32, ptr %21, align 4, !tbaa !12
  %176 = icmp slt i32 %174, %175
  br i1 %176, label %178, label %177

177:                                              ; preds = %173
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  br label %205

178:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %179 = load ptr, ptr %5, align 8, !tbaa !5
  %180 = load ptr, ptr %22, align 8, !tbaa !5
  %181 = getelementptr inbounds i16, ptr %180, i32 1
  store ptr %181, ptr %22, align 8, !tbaa !5
  %182 = load i16, ptr %180, align 2, !tbaa !21
  %183 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef %179, i16 noundef zeroext %182)
          to label %184 unwind label %191

184:                                              ; preds = %178
  store ptr %183, ptr %24, align 8, !tbaa !5
  %185 = load i32, ptr %23, align 4, !tbaa !12
  %186 = icmp eq i32 %185, 0
  br i1 %186, label %187, label %195

187:                                              ; preds = %184
  %188 = load ptr, ptr %24, align 8, !tbaa !5
  %189 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef %188)
          to label %190 unwind label %191

190:                                              ; preds = %187
  br label %201

191:                                              ; preds = %197, %195, %187, %178
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %11, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %209

195:                                              ; preds = %184
  %196 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.24)
          to label %197 unwind label %191

197:                                              ; preds = %195
  %198 = load ptr, ptr %24, align 8, !tbaa !5
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %196, ptr noundef %198)
          to label %200 unwind label %191

200:                                              ; preds = %197
  br label %201

201:                                              ; preds = %200, %190
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  br label %202

202:                                              ; preds = %201
  %203 = load i32, ptr %23, align 4, !tbaa !12
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr %23, align 4, !tbaa !12
  br label %173, !llvm.loop !23

205:                                              ; preds = %177
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  br label %206

206:                                              ; preds = %205, %155
  %207 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.28)
          to label %208 unwind label %144

208:                                              ; preds = %206
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %347

209:                                              ; preds = %191, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  br label %351

210:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  store i32 8, ptr %26, align 4, !tbaa !12
  %211 = load ptr, ptr %8, align 8, !tbaa !5
  %212 = getelementptr inbounds i8, ptr %211, i32 1
  store ptr %212, ptr %8, align 8, !tbaa !5
  %213 = load i8, ptr %211, align 1, !tbaa !9
  %214 = zext i8 %213 to i32
  store i32 %214, ptr %25, align 4, !tbaa !12
  br label %215

215:                                              ; preds = %219, %210
  %216 = load i8, ptr %10, align 1, !tbaa !9
  %217 = add i8 %216, -1
  store i8 %217, ptr %10, align 1, !tbaa !9
  %218 = icmp ne i8 %216, 0
  br i1 %218, label %219, label %230

219:                                              ; preds = %215
  %220 = load ptr, ptr %8, align 8, !tbaa !5
  %221 = getelementptr inbounds i8, ptr %220, i32 1
  store ptr %221, ptr %8, align 8, !tbaa !5
  %222 = load i8, ptr %220, align 1, !tbaa !9
  %223 = zext i8 %222 to i32
  %224 = load i32, ptr %26, align 4, !tbaa !12
  %225 = shl i32 %223, %224
  %226 = load i32, ptr %25, align 4, !tbaa !12
  %227 = or i32 %226, %225
  store i32 %227, ptr %25, align 4, !tbaa !12
  %228 = load i32, ptr %26, align 4, !tbaa !12
  %229 = add i32 %228, 8
  store i32 %229, ptr %26, align 4, !tbaa !12
  br label %215, !llvm.loop !24

230:                                              ; preds = %215
  %231 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.29)
          to label %232 unwind label %242

232:                                              ; preds = %230
  %233 = load ptr, ptr %5, align 8, !tbaa !5
  %234 = load i32, ptr %25, align 4, !tbaa !12
  %235 = trunc i32 %234 to i16
  %236 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef %233, i16 noundef zeroext %235)
          to label %237 unwind label %242

237:                                              ; preds = %232
  %238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %231, ptr noundef %236)
          to label %239 unwind label %242

239:                                              ; preds = %237
  %240 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %238, ptr noundef @.str.30)
          to label %241 unwind label %242

241:                                              ; preds = %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %347

242:                                              ; preds = %239, %237, %232, %230
  %243 = landingpad { ptr, i32 }
          cleanup
  %244 = extractvalue { ptr, i32 } %243, 0
  store ptr %244, ptr %11, align 8
  %245 = extractvalue { ptr, i32 } %243, 1
  store i32 %245, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  br label %351

246:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  store i32 8, ptr %28, align 4, !tbaa !12
  %247 = load ptr, ptr %8, align 8, !tbaa !5
  %248 = getelementptr inbounds i8, ptr %247, i32 1
  store ptr %248, ptr %8, align 8, !tbaa !5
  %249 = load i8, ptr %247, align 1, !tbaa !9
  %250 = zext i8 %249 to i32
  store i32 %250, ptr %27, align 4, !tbaa !12
  br label %251

251:                                              ; preds = %255, %246
  %252 = load i8, ptr %10, align 1, !tbaa !9
  %253 = add i8 %252, -1
  store i8 %253, ptr %10, align 1, !tbaa !9
  %254 = icmp ne i8 %252, 0
  br i1 %254, label %255, label %266

255:                                              ; preds = %251
  %256 = load ptr, ptr %8, align 8, !tbaa !5
  %257 = getelementptr inbounds i8, ptr %256, i32 1
  store ptr %257, ptr %8, align 8, !tbaa !5
  %258 = load i8, ptr %256, align 1, !tbaa !9
  %259 = zext i8 %258 to i32
  %260 = load i32, ptr %28, align 4, !tbaa !12
  %261 = shl i32 %259, %260
  %262 = load i32, ptr %27, align 4, !tbaa !12
  %263 = or i32 %262, %261
  store i32 %263, ptr %27, align 4, !tbaa !12
  %264 = load i32, ptr %28, align 4, !tbaa !12
  %265 = add i32 %264, 8
  store i32 %265, ptr %28, align 4, !tbaa !12
  br label %251, !llvm.loop !25

266:                                              ; preds = %251
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.31)
          to label %268 unwind label %277

268:                                              ; preds = %266
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = load i32, ptr %27, align 4, !tbaa !12
  %271 = invoke noundef ptr @_Z17dex_string_by_idxP10ddump_dataj(ptr noundef %269, i32 noundef %270)
          to label %272 unwind label %277

272:                                              ; preds = %268
  %273 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef %271)
          to label %274 unwind label %277

274:                                              ; preds = %272
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %273, ptr noundef @.str.30)
          to label %276 unwind label %277

276:                                              ; preds = %274
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %347

277:                                              ; preds = %274, %272, %268, %266
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %11, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %12, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  br label %351

281:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #6
  %282 = invoke noundef i32 @_Z12read_uleb128PPKh(ptr noundef %8)
          to label %283 unwind label %295

283:                                              ; preds = %281
  store i32 %282, ptr %29, align 4, !tbaa !12
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.32)
          to label %285 unwind label %295

285:                                              ; preds = %283
  br label %286

286:                                              ; preds = %294, %285
  %287 = load i32, ptr %29, align 4, !tbaa !12
  %288 = add i32 %287, -1
  store i32 %288, ptr %29, align 4, !tbaa !12
  %289 = icmp ne i32 %287, 0
  br i1 %289, label %290, label %308

290:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #6
  %291 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_Z20format_encoded_valueB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef %291, ptr noundef %8)
          to label %292 unwind label %299

292:                                              ; preds = %290
  %293 = 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) %7, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %294 unwind label %303

294:                                              ; preds = %292
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  br label %286, !llvm.loop !26

295:                                              ; preds = %308, %283, %281
  %296 = landingpad { ptr, i32 }
          cleanup
  %297 = extractvalue { ptr, i32 } %296, 0
  store ptr %297, ptr %11, align 8
  %298 = extractvalue { ptr, i32 } %296, 1
  store i32 %298, ptr %12, align 4
  br label %311

299:                                              ; preds = %290
  %300 = landingpad { ptr, i32 }
          cleanup
  %301 = extractvalue { ptr, i32 } %300, 0
  store ptr %301, ptr %11, align 8
  %302 = extractvalue { ptr, i32 } %300, 1
  store i32 %302, ptr %12, align 4
  br label %307

303:                                              ; preds = %292
  %304 = landingpad { ptr, i32 }
          cleanup
  %305 = extractvalue { ptr, i32 } %304, 0
  store ptr %305, ptr %11, align 8
  %306 = extractvalue { ptr, i32 } %304, 1
  store i32 %306, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #6
  br label %307

307:                                              ; preds = %303, %299
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #6
  br label %311

308:                                              ; preds = %286
  %309 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.25)
          to label %310 unwind label %295

310:                                              ; preds = %308
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %347

311:                                              ; preds = %307, %295
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  br label %351

312:                                              ; preds = %3
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.33)
          to label %314 unwind label %114

314:                                              ; preds = %312
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #6
  %315 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_Z17format_annotationB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef %315, ptr noundef %8)
          to label %316 unwind label %321

316:                                              ; preds = %314
  %317 = 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) %313, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %318 unwind label %325

318:                                              ; preds = %316
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef @.str.25)
          to label %320 unwind label %325

320:                                              ; preds = %318
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  br label %347

321:                                              ; preds = %314
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %11, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %12, align 4
  br label %329

325:                                              ; preds = %318, %316
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %11, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %12, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #6
  br label %329

329:                                              ; preds = %325, %321
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #6
  br label %351

330:                                              ; preds = %3
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.34)
          to label %332 unwind label %114

332:                                              ; preds = %330
  br label %347

333:                                              ; preds = %3
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.35)
          to label %335 unwind label %114

335:                                              ; preds = %333
  %336 = load i8, ptr %10, align 1, !tbaa !9
  %337 = icmp ne i8 %336, 0
  %338 = zext i1 %337 to i64
  %339 = select i1 %337, ptr @.str.36, ptr @.str.37
  %340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %334, ptr noundef %339)
          to label %341 unwind label %114

341:                                              ; preds = %335
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef @.str.25)
          to label %343 unwind label %114

343:                                              ; preds = %341
  br label %347

344:                                              ; preds = %3
  %345 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef @.str.38)
          to label %346 unwind label %114

346:                                              ; preds = %344
  br label %347

347:                                              ; preds = %346, %343, %332, %320, %310, %276, %241, %208, %120
  %348 = load ptr, ptr %8, align 8, !tbaa !5
  %349 = load ptr, ptr %6, align 8, !tbaa !5
  store ptr %348, ptr %349, align 8, !tbaa !5
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(112) %7)
          to label %350 unwind label %114

350:                                              ; preds = %347
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #6
  call void @llvm.lifetime.end.p0(i64 376, ptr %7) #6
  ret void

351:                                              ; preds = %329, %311, %277, %242, %209, %114
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %7) #6
  call void @llvm.lifetime.end.p0(i64 376, ptr %7) #6
  br label %352

352:                                              ; preds = %351
  %353 = load ptr, ptr %11, align 8
  %354 = load i32, ptr %12, align 4
  %355 = insertvalue { ptr, i32 } poison, ptr %353, 0
  %356 = insertvalue { ptr, i32 } %355, i32 %354, 1
  resume { ptr, i32 } %356
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115value_to_stringEh(i8 noundef zeroext) #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_110check_sizeEhh(i8 noundef zeroext, i8 noundef zeroext) #4

declare noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef, i16 noundef zeroext) #5

declare noundef ptr @_Z17dex_string_by_idxP10ddump_dataj(ptr noundef, i32 noundef) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z12read_uleb128PPKh(ptr noundef) #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!13, !13, i64 0}
!13 = !{!"int", !7, i64 0}
!14 = !{!15, !6, i64 88}
!15 = !{!"_ZTS10ddump_data", !16, i64 0, !16, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !13, i64 4}
!18 = !{!"_ZTS12dex_proto_id", !13, i64 0, !13, i64 4, !13, i64 8}
!19 = !{!18, !13, i64 8}
!20 = !{!15, !6, i64 16}
!21 = !{!22, !22, i64 0}
!22 = !{!"short", !7, i64 0}
!23 = distinct !{!23, !11}
!24 = distinct !{!24, !11}
!25 = distinct !{!25, !11}
!26 = distinct !{!26, !11}


; 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::__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.std::__cxx11::basic_ostringstream" = type { %"class.std::basic_ostream.base", %"class.std::__cxx11::basic_stringbuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::__cxx11::basic_stringbuf" = type { %"class.std::basic_streambuf", i32, %"class.std::__cxx11::basic_string" }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%struct.dex_proto_id = type { i32, i32, i32 }

@.str.23 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [16 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext) local_unnamed_addr #3

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) local_unnamed_addr #3

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3hexRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #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 void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(112)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112)) unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_Z20format_encoded_valueB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef %1, ptr nocapture noundef %2) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::__cxx11::basic_ostringstream", align 8
  %5 = alloca ptr, align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %4) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(112) %4)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #6
  %8 = load ptr, ptr %2, align 8, !tbaa !5
  %9 = getelementptr inbounds i8, ptr %8, i64 1
  store ptr %9, ptr %5, align 8, !tbaa !5
  %10 = load i8, ptr %8, align 1, !tbaa !9
  %11 = lshr i8 %10, 5
  %12 = and i8 %10, 31
  switch i8 %12, label %202 [
    i8 0, label %13
    i8 2, label %13
    i8 3, label %13
    i8 4, label %13
    i8 6, label %13
    i8 16, label %13
    i8 17, label %13
    i8 22, label %13
    i8 25, label %13
    i8 26, label %13
    i8 27, label %13
    i8 21, label %57
    i8 24, label %104
    i8 23, label %137
    i8 28, label %169
    i8 29, label %184
    i8 30, label %.invoke
    i8 31, label %197
  ]

13:                                               ; preds = %3, %3, %3, %3, %3, %3, %3, %3, %3, %3, %3
  %14 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.23)
          to label %15 unwind label %.loopexit.split-lp

15:                                               ; preds = %13
  %16 = call noundef ptr @_ZN12_GLOBAL__N_115value_to_stringEh(i8 noundef zeroext %12)
  %17 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef %16)
          to label %18 unwind label %.loopexit.split-lp

18:                                               ; preds = %15
  %19 = call noundef ptr @_ZN12_GLOBAL__N_110check_sizeEhh(i8 noundef zeroext %12, i8 noundef zeroext %11)
  %20 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %19)
          to label %21 unwind label %.loopexit.split-lp

21:                                               ; preds = %18
  %22 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull @.str.24)
          to label %23 unwind label %.loopexit.split-lp

23:                                               ; preds = %21
  %24 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %25 unwind label %.loopexit.split-lp

25:                                               ; preds = %23
  %26 = call i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
  %27 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %24, i8 %26)
          to label %28 unwind label %.loopexit.split-lp

28:                                               ; preds = %25
  %29 = call i32 @_ZSt4setwi(i32 noundef 2)
  %30 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw(ptr noundef nonnull align 8 dereferenceable(8) %27, i32 %29)
          to label %31 unwind label %.loopexit.split-lp

31:                                               ; preds = %28
  %32 = load ptr, ptr %5, align 8, !tbaa !5
  %33 = getelementptr inbounds i8, ptr %32, i64 1
  store ptr %33, ptr %5, align 8, !tbaa !5
  %34 = load i8, ptr %32, align 1, !tbaa !9
  %35 = zext i8 %34 to i32
  %36 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %30, i32 noundef %35)
          to label %.preheader unwind label %.loopexit.split-lp

.preheader:                                       ; preds = %31, %48
  %.054 = phi i8 [ %37, %48 ], [ %11, %31 ]
  %37 = add nsw i8 %.054, -1
  %.not77 = icmp eq i8 %.054, 0
  br i1 %.not77, label %.invoke, label %38

38:                                               ; preds = %.preheader
  %39 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.24)
          to label %40 unwind label %.loopexit

40:                                               ; preds = %38
  %41 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull @_ZSt3hexRSt8ios_base)
          to label %42 unwind label %.loopexit

42:                                               ; preds = %40
  %43 = call i8 @_ZSt7setfillIcESt8_SetfillIT_ES1_(i8 noundef signext 48)
  %44 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St8_SetfillIS3_E(ptr noundef nonnull align 8 dereferenceable(8) %41, i8 %43)
          to label %45 unwind label %.loopexit

45:                                               ; preds = %42
  %46 = call i32 @_ZSt4setwi(i32 noundef 2)
  %47 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St5_Setw(ptr noundef nonnull align 8 dereferenceable(8) %44, i32 %46)
          to label %48 unwind label %.loopexit

48:                                               ; preds = %45
  %49 = load ptr, ptr %5, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %49, i64 1
  store ptr %50, ptr %5, align 8, !tbaa !5
  %51 = load i8, ptr %49, align 1, !tbaa !9
  %52 = zext i8 %51 to i32
  %53 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %47, i32 noundef %52)
          to label %.preheader unwind label %.loopexit, !llvm.loop !10

.loopexit:                                        ; preds = %38, %40, %42, %45, %48
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %206

.loopexit.split-lp:                               ; preds = %.invoke, %13, %15, %18, %21, %23, %25, %28, %31, %184, %197, %199, %203
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %206

.invoke:                                          ; preds = %.preheader, %199, %3, %202
  %54 = phi ptr [ %4, %202 ], [ %4, %3 ], [ %201, %199 ], [ %4, %.preheader ]
  %55 = phi ptr [ @.str.38, %202 ], [ @.str.34, %3 ], [ @.str.25, %199 ], [ @.str.25, %.preheader ]
  %56 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull %55)
          to label %203 unwind label %.loopexit.split-lp

57:                                               ; preds = %3
  %58 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %58, ptr %5, align 8, !tbaa !5
  %59 = load i8, ptr %9, align 1, !tbaa !9
  %60 = getelementptr inbounds i8, ptr %1, i64 88
  %61 = load ptr, ptr %60, align 8, !tbaa !12
  %62 = zext i8 %59 to i64
  %63 = getelementptr inbounds %struct.dex_proto_id, ptr %61, i64 %62
  %64 = getelementptr inbounds i8, ptr %63, i64 4
  %65 = load i32, ptr %64, align 1, !tbaa !15
  %.not73 = icmp eq i32 %65, 0
  br i1 %.not73, label %71, label %66

66:                                               ; preds = %57
  %67 = trunc i32 %65 to i16
  %68 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef nonnull %1, i16 noundef zeroext %67)
          to label %71 unwind label %69

69:                                               ; preds = %.loopexit80, %75, %73, %71, %66
  %70 = landingpad { ptr, i32 }
          cleanup
  br label %206

71:                                               ; preds = %66, %57
  %.063 = phi ptr [ null, %57 ], [ %68, %66 ]
  %72 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.26)
          to label %73 unwind label %69

73:                                               ; preds = %71
  %74 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef %.063)
          to label %75 unwind label %69

75:                                               ; preds = %73
  %76 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull @.str.27)
          to label %77 unwind label %69

77:                                               ; preds = %75
  %78 = getelementptr inbounds i8, ptr %63, i64 8
  %79 = load i32, ptr %78, align 1, !tbaa !18
  %.not74 = icmp eq i32 %79, 0
  br i1 %.not74, label %.loopexit80, label %80

80:                                               ; preds = %77
  %81 = getelementptr inbounds i8, ptr %1, i64 16
  %82 = load ptr, ptr %81, align 8, !tbaa !19
  %83 = zext i32 %79 to i64
  %84 = getelementptr inbounds i8, ptr %82, i64 %83
  %85 = load i32, ptr %84, align 4, !tbaa !20
  %86 = icmp sgt i32 %85, 0
  br i1 %86, label %.lr.ph102.preheader, label %.loopexit80

.lr.ph102.preheader:                              ; preds = %80
  %87 = getelementptr inbounds i8, ptr %84, i64 4
  %88 = getelementptr inbounds i8, ptr %84, i64 6
  %89 = load i16, ptr %87, align 2, !tbaa !21
  %90 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef nonnull %1, i16 noundef zeroext %89)
          to label %91 unwind label %.loopexit.split-lp106

91:                                               ; preds = %.lr.ph102.preheader
  %92 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef %90)
          to label %93 unwind label %.loopexit.split-lp106

93:                                               ; preds = %91
  %exitcond.peel.not = icmp eq i32 %85, 1
  br i1 %exitcond.peel.not, label %.loopexit80, label %.lr.ph102

.lr.ph102:                                        ; preds = %93, %101
  %.052100 = phi i32 [ %102, %101 ], [ 1, %93 ]
  %.05399 = phi ptr [ %94, %101 ], [ %88, %93 ]
  %94 = getelementptr inbounds i8, ptr %.05399, i64 2
  %95 = load i16, ptr %.05399, align 2, !tbaa !21
  %96 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef %1, i16 noundef zeroext %95)
          to label %97 unwind label %.loopexit105

.loopexit105:                                     ; preds = %.lr.ph102, %97, %99
  %lpad.loopexit107 = landingpad { ptr, i32 }
          cleanup
  br label %206

.loopexit.split-lp106:                            ; preds = %.lr.ph102.preheader, %91
  %lpad.loopexit.split-lp108 = landingpad { ptr, i32 }
          cleanup
  br label %206

97:                                               ; preds = %.lr.ph102
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.24)
          to label %99 unwind label %.loopexit105

99:                                               ; preds = %97
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef %96)
          to label %101 unwind label %.loopexit105

101:                                              ; preds = %99
  %102 = add nuw nsw i32 %.052100, 1
  %exitcond.not = icmp eq i32 %102, %85
  br i1 %exitcond.not, label %.loopexit80, label %.lr.ph102, !llvm.loop !23

.loopexit80:                                      ; preds = %101, %93, %80, %77
  %103 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.28)
          to label %203 unwind label %69

104:                                              ; preds = %3
  %105 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %105, ptr %5, align 8, !tbaa !5
  %106 = load i8, ptr %9, align 1, !tbaa !9
  %107 = zext i8 %106 to i32
  %.not7291 = icmp ult i8 %10, 32
  br i1 %.not7291, label %._crit_edge97, label %.lr.ph96

.lr.ph96:                                         ; preds = %104
  %108 = getelementptr inbounds i8, ptr %8, i64 3
  store ptr %108, ptr %5, align 8, !tbaa !5
  %109 = load i8, ptr %105, align 1, !tbaa !9
  %110 = zext i8 %109 to i32
  %111 = shl nuw nsw i32 %110, 8
  %112 = or disjoint i32 %111, %107
  %.not72 = icmp eq i8 %11, 1
  br i1 %.not72, label %._crit_edge97, label %.lr.ph96.1, !llvm.loop !25

.lr.ph96.1:                                       ; preds = %.lr.ph96
  %113 = getelementptr inbounds i8, ptr %8, i64 4
  store ptr %113, ptr %5, align 8, !tbaa !5
  %114 = load i8, ptr %108, align 1, !tbaa !9
  %115 = zext i8 %114 to i32
  %116 = shl nuw nsw i32 %115, 16
  %117 = or disjoint i32 %116, %112
  %.not72.1 = icmp eq i8 %11, 2
  br i1 %.not72.1, label %._crit_edge97, label %.lr.ph96.2, !llvm.loop !25

.lr.ph96.2:                                       ; preds = %.lr.ph96.1
  %118 = getelementptr inbounds i8, ptr %8, i64 5
  store ptr %118, ptr %5, align 8, !tbaa !5
  %119 = load i8, ptr %113, align 1, !tbaa !9
  %120 = zext i8 %119 to i32
  %121 = shl nuw i32 %120, 24
  %122 = or disjoint i32 %121, %117
  %.not72.2 = icmp eq i8 %11, 3
  br i1 %.not72.2, label %._crit_edge97, label %.lr.ph96.3, !llvm.loop !25

.lr.ph96.3:                                       ; preds = %.lr.ph96.2
  %123 = getelementptr inbounds i8, ptr %8, i64 6
  store ptr %123, ptr %5, align 8, !tbaa !5
  %.not72.3 = icmp eq i8 %11, 4
  br i1 %.not72.3, label %._crit_edge97, label %.lr.ph96.4, !llvm.loop !25

.lr.ph96.4:                                       ; preds = %.lr.ph96.3
  %124 = getelementptr inbounds i8, ptr %8, i64 7
  store ptr %124, ptr %5, align 8, !tbaa !5
  %.not72.4 = icmp eq i8 %11, 5
  br i1 %.not72.4, label %._crit_edge97, label %.lr.ph96.5, !llvm.loop !25

.lr.ph96.5:                                       ; preds = %.lr.ph96.4
  %125 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr %125, ptr %5, align 8, !tbaa !5
  %.not72.5 = icmp eq i8 %11, 6
  br i1 %.not72.5, label %._crit_edge97, label %.lr.ph96.6, !llvm.loop !25

.lr.ph96.6:                                       ; preds = %.lr.ph96.5
  %126 = getelementptr inbounds i8, ptr %8, i64 9
  store ptr %126, ptr %5, align 8, !tbaa !5
  br label %._crit_edge97

._crit_edge97:                                    ; preds = %.lr.ph96, %.lr.ph96.1, %.lr.ph96.2, %.lr.ph96.3, %.lr.ph96.4, %.lr.ph96.5, %.lr.ph96.6, %104
  %.051.lcssa = phi i32 [ %107, %104 ], [ %112, %.lr.ph96 ], [ %117, %.lr.ph96.1 ], [ %122, %.lr.ph96.2 ], [ poison, %.lr.ph96.3 ], [ poison, %.lr.ph96.4 ], [ poison, %.lr.ph96.5 ], [ poison, %.lr.ph96.6 ]
  %127 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.29)
          to label %128 unwind label %135

128:                                              ; preds = %._crit_edge97
  %129 = trunc i32 %.051.lcssa to i16
  %130 = invoke noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef %1, i16 noundef zeroext %129)
          to label %131 unwind label %135

131:                                              ; preds = %128
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %127, ptr noundef %130)
          to label %133 unwind label %135

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %132, ptr noundef nonnull @.str.30)
          to label %203 unwind label %135

135:                                              ; preds = %133, %131, %128, %._crit_edge97
  %136 = landingpad { ptr, i32 }
          cleanup
  br label %206

137:                                              ; preds = %3
  %138 = getelementptr inbounds i8, ptr %8, i64 2
  store ptr %138, ptr %5, align 8, !tbaa !5
  %139 = load i8, ptr %9, align 1, !tbaa !9
  %140 = zext i8 %139 to i32
  %.not7183 = icmp ult i8 %10, 32
  br i1 %.not7183, label %._crit_edge89, label %.lr.ph88

.lr.ph88:                                         ; preds = %137
  %141 = getelementptr inbounds i8, ptr %8, i64 3
  store ptr %141, ptr %5, align 8, !tbaa !5
  %142 = load i8, ptr %138, align 1, !tbaa !9
  %143 = zext i8 %142 to i32
  %144 = shl nuw nsw i32 %143, 8
  %145 = or disjoint i32 %144, %140
  %.not71 = icmp eq i8 %11, 1
  br i1 %.not71, label %._crit_edge89, label %.lr.ph88.1, !llvm.loop !26

.lr.ph88.1:                                       ; preds = %.lr.ph88
  %146 = getelementptr inbounds i8, ptr %8, i64 4
  store ptr %146, ptr %5, align 8, !tbaa !5
  %147 = load i8, ptr %141, align 1, !tbaa !9
  %148 = zext i8 %147 to i32
  %149 = shl nuw nsw i32 %148, 16
  %150 = or disjoint i32 %149, %145
  %.not71.1 = icmp eq i8 %11, 2
  br i1 %.not71.1, label %._crit_edge89, label %.lr.ph88.2, !llvm.loop !26

.lr.ph88.2:                                       ; preds = %.lr.ph88.1
  %151 = getelementptr inbounds i8, ptr %8, i64 5
  store ptr %151, ptr %5, align 8, !tbaa !5
  %152 = load i8, ptr %146, align 1, !tbaa !9
  %153 = zext i8 %152 to i32
  %154 = shl nuw i32 %153, 24
  %155 = or disjoint i32 %154, %150
  %.not71.2 = icmp eq i8 %11, 3
  br i1 %.not71.2, label %._crit_edge89, label %.lr.ph88.3, !llvm.loop !26

.lr.ph88.3:                                       ; preds = %.lr.ph88.2
  %156 = getelementptr inbounds i8, ptr %8, i64 6
  store ptr %156, ptr %5, align 8, !tbaa !5
  %.not71.3 = icmp eq i8 %11, 4
  br i1 %.not71.3, label %._crit_edge89, label %.lr.ph88.4, !llvm.loop !26

.lr.ph88.4:                                       ; preds = %.lr.ph88.3
  %157 = getelementptr inbounds i8, ptr %8, i64 7
  store ptr %157, ptr %5, align 8, !tbaa !5
  %.not71.4 = icmp eq i8 %11, 5
  br i1 %.not71.4, label %._crit_edge89, label %.lr.ph88.5, !llvm.loop !26

.lr.ph88.5:                                       ; preds = %.lr.ph88.4
  %158 = getelementptr inbounds i8, ptr %8, i64 8
  store ptr %158, ptr %5, align 8, !tbaa !5
  %.not71.5 = icmp eq i8 %11, 6
  br i1 %.not71.5, label %._crit_edge89, label %.lr.ph88.6, !llvm.loop !26

.lr.ph88.6:                                       ; preds = %.lr.ph88.5
  %159 = getelementptr inbounds i8, ptr %8, i64 9
  store ptr %159, ptr %5, align 8, !tbaa !5
  br label %._crit_edge89

._crit_edge89:                                    ; preds = %.lr.ph88, %.lr.ph88.1, %.lr.ph88.2, %.lr.ph88.3, %.lr.ph88.4, %.lr.ph88.5, %.lr.ph88.6, %137
  %.049.lcssa = phi i32 [ %140, %137 ], [ %145, %.lr.ph88 ], [ %150, %.lr.ph88.1 ], [ %155, %.lr.ph88.2 ], [ poison, %.lr.ph88.3 ], [ poison, %.lr.ph88.4 ], [ poison, %.lr.ph88.5 ], [ poison, %.lr.ph88.6 ]
  %160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.31)
          to label %161 unwind label %167

161:                                              ; preds = %._crit_edge89
  %162 = invoke noundef ptr @_Z17dex_string_by_idxP10ddump_dataj(ptr noundef %1, i32 noundef %.049.lcssa)
          to label %163 unwind label %167

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef %162)
          to label %165 unwind label %167

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str.30)
          to label %203 unwind label %167

167:                                              ; preds = %165, %163, %161, %._crit_edge89
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %206

169:                                              ; preds = %3
  %170 = call noundef i32 @_Z12read_uleb128PPKh(ptr noundef nonnull %5)
  %171 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.32)
          to label %.preheader81 unwind label %176

.preheader81:                                     ; preds = %169
  %.not6782 = icmp eq i32 %170, 0
  br i1 %.not6782, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader81, %175
  %.in = phi i32 [ %172, %175 ], [ %170, %.preheader81 ]
  %172 = add i32 %.in, -1
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #6
  invoke void @_Z20format_encoded_valueB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr noundef %1, ptr noundef nonnull %5)
          to label %173 unwind label %178

173:                                              ; preds = %.lr.ph
  %174 = 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) %4, ptr noundef nonnull align 8 dereferenceable(32) %6)
          to label %175 unwind label %180

175:                                              ; preds = %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  %.not67 = icmp eq i32 %172, 0
  br i1 %.not67, label %._crit_edge, label %.lr.ph, !llvm.loop !27

176:                                              ; preds = %._crit_edge, %169
  %177 = landingpad { ptr, i32 }
          cleanup
  br label %206

178:                                              ; preds = %.lr.ph
  %179 = landingpad { ptr, i32 }
          cleanup
  br label %182

180:                                              ; preds = %173
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #6
  br label %182

182:                                              ; preds = %180, %178
  %.pn68 = phi { ptr, i32 } [ %181, %180 ], [ %179, %178 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #6
  br label %206

._crit_edge:                                      ; preds = %175, %.preheader81
  %183 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.25)
          to label %203 unwind label %176

184:                                              ; preds = %3
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.33)
          to label %186 unwind label %.loopexit.split-lp

186:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #6
  invoke void @_Z17format_annotationB5cxx11P10ddump_dataPPKh(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef %1, ptr noundef nonnull %5)
          to label %187 unwind label %192

187:                                              ; preds = %186
  %188 = 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) %185, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %189 unwind label %194

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %188, ptr noundef nonnull @.str.25)
          to label %191 unwind label %194

191:                                              ; preds = %189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %203

192:                                              ; preds = %186
  %193 = landingpad { ptr, i32 }
          cleanup
  br label %196

194:                                              ; preds = %189, %187
  %195 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #6
  br label %196

196:                                              ; preds = %194, %192
  %.pn = phi { ptr, i32 } [ %195, %194 ], [ %193, %192 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #6
  br label %206

197:                                              ; preds = %3
  %198 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull @.str.35)
          to label %199 unwind label %.loopexit.split-lp

199:                                              ; preds = %197
  %.not = icmp ult i8 %10, 32
  %200 = select i1 %.not, ptr @.str.37, ptr @.str.36
  %201 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %198, ptr noundef nonnull %200)
          to label %.invoke unwind label %.loopexit.split-lp

202:                                              ; preds = %3
  br label %.invoke

203:                                              ; preds = %.invoke, %._crit_edge, %165, %133, %.loopexit80, %191
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %204, ptr %2, align 8, !tbaa !5
  invoke void @_ZNKSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEE3strEv(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(112) %4)
          to label %205 unwind label %.loopexit.split-lp

205:                                              ; preds = %203
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %4) #6
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %4) #6
  ret void

206:                                              ; preds = %.loopexit105, %.loopexit.split-lp106, %.loopexit, %.loopexit.split-lp, %176, %182, %69, %196, %167, %135
  %.pn78 = phi { ptr, i32 } [ %.pn, %196 ], [ %168, %167 ], [ %136, %135 ], [ %70, %69 ], [ %.pn68, %182 ], [ %177, %176 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %lpad.loopexit107, %.loopexit105 ], [ %lpad.loopexit.split-lp108, %.loopexit.split-lp106 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #6
  call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %4) #6
  call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %4) #6
  resume { ptr, i32 } %.pn78
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_115value_to_stringEh(i8 noundef zeroext) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef ptr @_ZN12_GLOBAL__N_110check_sizeEhh(i8 noundef zeroext, i8 noundef zeroext) local_unnamed_addr #4

declare noundef ptr @_Z22dex_string_by_type_idxP10ddump_datat(ptr noundef, i16 noundef zeroext) local_unnamed_addr #5

declare noundef ptr @_Z17dex_string_by_idxP10ddump_dataj(ptr noundef, i32 noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z12read_uleb128PPKh(ptr noundef) local_unnamed_addr #3

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = distinct !{!10, !11}
!11 = !{!"llvm.loop.mustprogress"}
!12 = !{!13, !6, i64 88}
!13 = !{!"_ZTS10ddump_data", !14, i64 0, !14, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!14 = !{!"long", !7, i64 0}
!15 = !{!16, !17, i64 4}
!16 = !{!"_ZTS12dex_proto_id", !17, i64 0, !17, i64 4, !17, i64 8}
!17 = !{!"int", !7, i64 0}
!18 = !{!16, !17, i64 8}
!19 = !{!13, !6, i64 16}
!20 = !{!17, !17, i64 0}
!21 = !{!22, !22, i64 0}
!22 = !{!"short", !7, i64 0}
!23 = distinct !{!23, !11, !24}
!24 = !{!"llvm.loop.peeled.count", i32 1}
!25 = distinct !{!25, !11}
!26 = distinct !{!26, !11}
!27 = distinct !{!27, !11}


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