; LLVM IR from bytecodealliance/sightglass :: benchmarks/bz2 (benchmark)

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

%struct.DState = type { ptr, i32, i8, i32, i8, i32, i32, i32, i32, i32, i8, i32, i32, i32, i32, i32, [256 x i32], i32, [257 x i32], [257 x i32], ptr, ptr, ptr, i32, i32, i32, i32, i32, [256 x i8], [16 x i8], [256 x i8], [4096 x i8], [16 x i32], [18002 x i8], [18002 x i8], [6 x [258 x i8]], [6 x [258 x i32]], [6 x [258 x i32]], [6 x [258 x i32]], [6 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr }
%struct.bz_stream = type { ptr, i32, i32, i32, ptr, i32, i32, i32, ptr, ptr, ptr, ptr }

@BZ2_rNums = external dso_local global [512 x i32], align 16

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

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

; Function Attrs: inlinehint nounwind uwtable
declare dso_local i32 @BZ2_indexIntoF(i32 noundef, ptr noundef) #1

; Function Attrs: nounwind uwtable
define dso_local i32 @BZ2_decompress(ptr noundef %0) #2 {
  %2 = alloca ptr, align 8
  %3 = alloca i8, align 1
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca [6 x i8], align 1
  %56 = alloca i8, align 1
  %57 = alloca i8, align 1
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #3
  %88 = load ptr, ptr %2, align 8, !tbaa !5
  %89 = getelementptr inbounds %struct.DState, ptr %88, i32 0, i32 0
  %90 = load ptr, ptr %89, align 8, !tbaa !9
  store ptr %90, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #3
  %91 = load ptr, ptr %2, align 8, !tbaa !5
  %92 = getelementptr inbounds %struct.DState, ptr %91, i32 0, i32 1
  %93 = load i32, ptr %92, align 8, !tbaa !12
  %94 = icmp eq i32 %93, 10
  br i1 %94, label %95, label %144

95:                                               ; preds = %1
  %96 = load ptr, ptr %2, align 8, !tbaa !5
  %97 = getelementptr inbounds %struct.DState, ptr %96, i32 0, i32 40
  store i32 0, ptr %97, align 4, !tbaa !13
  %98 = load ptr, ptr %2, align 8, !tbaa !5
  %99 = getelementptr inbounds %struct.DState, ptr %98, i32 0, i32 41
  store i32 0, ptr %99, align 8, !tbaa !14
  %100 = load ptr, ptr %2, align 8, !tbaa !5
  %101 = getelementptr inbounds %struct.DState, ptr %100, i32 0, i32 42
  store i32 0, ptr %101, align 4, !tbaa !15
  %102 = load ptr, ptr %2, align 8, !tbaa !5
  %103 = getelementptr inbounds %struct.DState, ptr %102, i32 0, i32 43
  store i32 0, ptr %103, align 8, !tbaa !16
  %104 = load ptr, ptr %2, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.DState, ptr %104, i32 0, i32 44
  store i32 0, ptr %105, align 4, !tbaa !17
  %106 = load ptr, ptr %2, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.DState, ptr %106, i32 0, i32 45
  store i32 0, ptr %107, align 8, !tbaa !18
  %108 = load ptr, ptr %2, align 8, !tbaa !5
  %109 = getelementptr inbounds %struct.DState, ptr %108, i32 0, i32 46
  store i32 0, ptr %109, align 4, !tbaa !19
  %110 = load ptr, ptr %2, align 8, !tbaa !5
  %111 = getelementptr inbounds %struct.DState, ptr %110, i32 0, i32 47
  store i32 0, ptr %111, align 8, !tbaa !20
  %112 = load ptr, ptr %2, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.DState, ptr %112, i32 0, i32 48
  store i32 0, ptr %113, align 4, !tbaa !21
  %114 = load ptr, ptr %2, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.DState, ptr %114, i32 0, i32 49
  store i32 0, ptr %115, align 8, !tbaa !22
  %116 = load ptr, ptr %2, align 8, !tbaa !5
  %117 = getelementptr inbounds %struct.DState, ptr %116, i32 0, i32 50
  store i32 0, ptr %117, align 4, !tbaa !23
  %118 = load ptr, ptr %2, align 8, !tbaa !5
  %119 = getelementptr inbounds %struct.DState, ptr %118, i32 0, i32 51
  store i32 0, ptr %119, align 8, !tbaa !24
  %120 = load ptr, ptr %2, align 8, !tbaa !5
  %121 = getelementptr inbounds %struct.DState, ptr %120, i32 0, i32 52
  store i32 0, ptr %121, align 4, !tbaa !25
  %122 = load ptr, ptr %2, align 8, !tbaa !5
  %123 = getelementptr inbounds %struct.DState, ptr %122, i32 0, i32 53
  store i32 0, ptr %123, align 8, !tbaa !26
  %124 = load ptr, ptr %2, align 8, !tbaa !5
  %125 = getelementptr inbounds %struct.DState, ptr %124, i32 0, i32 54
  store i32 0, ptr %125, align 4, !tbaa !27
  %126 = load ptr, ptr %2, align 8, !tbaa !5
  %127 = getelementptr inbounds %struct.DState, ptr %126, i32 0, i32 55
  store i32 0, ptr %127, align 8, !tbaa !28
  %128 = load ptr, ptr %2, align 8, !tbaa !5
  %129 = getelementptr inbounds %struct.DState, ptr %128, i32 0, i32 56
  store i32 0, ptr %129, align 4, !tbaa !29
  %130 = load ptr, ptr %2, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct.DState, ptr %130, i32 0, i32 57
  store i32 0, ptr %131, align 8, !tbaa !30
  %132 = load ptr, ptr %2, align 8, !tbaa !5
  %133 = getelementptr inbounds %struct.DState, ptr %132, i32 0, i32 58
  store i32 0, ptr %133, align 4, !tbaa !31
  %134 = load ptr, ptr %2, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct.DState, ptr %134, i32 0, i32 59
  store i32 0, ptr %135, align 8, !tbaa !32
  %136 = load ptr, ptr %2, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.DState, ptr %136, i32 0, i32 60
  store i32 0, ptr %137, align 4, !tbaa !33
  %138 = load ptr, ptr %2, align 8, !tbaa !5
  %139 = getelementptr inbounds %struct.DState, ptr %138, i32 0, i32 61
  store ptr null, ptr %139, align 8, !tbaa !34
  %140 = load ptr, ptr %2, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.DState, ptr %140, i32 0, i32 62
  store ptr null, ptr %141, align 8, !tbaa !35
  %142 = load ptr, ptr %2, align 8, !tbaa !5
  %143 = getelementptr inbounds %struct.DState, ptr %142, i32 0, i32 63
  store ptr null, ptr %143, align 8, !tbaa !36
  br label %144

144:                                              ; preds = %95, %1
  %145 = load ptr, ptr %2, align 8, !tbaa !5
  %146 = getelementptr inbounds %struct.DState, ptr %145, i32 0, i32 40
  %147 = load i32, ptr %146, align 4, !tbaa !13
  store i32 %147, ptr %8, align 4, !tbaa !37
  %148 = load ptr, ptr %2, align 8, !tbaa !5
  %149 = getelementptr inbounds %struct.DState, ptr %148, i32 0, i32 41
  %150 = load i32, ptr %149, align 8, !tbaa !14
  store i32 %150, ptr %9, align 4, !tbaa !37
  %151 = load ptr, ptr %2, align 8, !tbaa !5
  %152 = getelementptr inbounds %struct.DState, ptr %151, i32 0, i32 42
  %153 = load i32, ptr %152, align 4, !tbaa !15
  store i32 %153, ptr %10, align 4, !tbaa !37
  %154 = load ptr, ptr %2, align 8, !tbaa !5
  %155 = getelementptr inbounds %struct.DState, ptr %154, i32 0, i32 43
  %156 = load i32, ptr %155, align 8, !tbaa !16
  store i32 %156, ptr %11, align 4, !tbaa !37
  %157 = load ptr, ptr %2, align 8, !tbaa !5
  %158 = getelementptr inbounds %struct.DState, ptr %157, i32 0, i32 44
  %159 = load i32, ptr %158, align 4, !tbaa !17
  store i32 %159, ptr %12, align 4, !tbaa !37
  %160 = load ptr, ptr %2, align 8, !tbaa !5
  %161 = getelementptr inbounds %struct.DState, ptr %160, i32 0, i32 45
  %162 = load i32, ptr %161, align 8, !tbaa !18
  store i32 %162, ptr %13, align 4, !tbaa !37
  %163 = load ptr, ptr %2, align 8, !tbaa !5
  %164 = getelementptr inbounds %struct.DState, ptr %163, i32 0, i32 46
  %165 = load i32, ptr %164, align 4, !tbaa !19
  store i32 %165, ptr %14, align 4, !tbaa !37
  %166 = load ptr, ptr %2, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.DState, ptr %166, i32 0, i32 47
  %168 = load i32, ptr %167, align 8, !tbaa !20
  store i32 %168, ptr %15, align 4, !tbaa !37
  %169 = load ptr, ptr %2, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.DState, ptr %169, i32 0, i32 48
  %171 = load i32, ptr %170, align 4, !tbaa !21
  store i32 %171, ptr %16, align 4, !tbaa !37
  %172 = load ptr, ptr %2, align 8, !tbaa !5
  %173 = getelementptr inbounds %struct.DState, ptr %172, i32 0, i32 49
  %174 = load i32, ptr %173, align 8, !tbaa !22
  store i32 %174, ptr %17, align 4, !tbaa !37
  %175 = load ptr, ptr %2, align 8, !tbaa !5
  %176 = getelementptr inbounds %struct.DState, ptr %175, i32 0, i32 50
  %177 = load i32, ptr %176, align 4, !tbaa !23
  store i32 %177, ptr %18, align 4, !tbaa !37
  %178 = load ptr, ptr %2, align 8, !tbaa !5
  %179 = getelementptr inbounds %struct.DState, ptr %178, i32 0, i32 51
  %180 = load i32, ptr %179, align 8, !tbaa !24
  store i32 %180, ptr %19, align 4, !tbaa !37
  %181 = load ptr, ptr %2, align 8, !tbaa !5
  %182 = getelementptr inbounds %struct.DState, ptr %181, i32 0, i32 52
  %183 = load i32, ptr %182, align 4, !tbaa !25
  store i32 %183, ptr %20, align 4, !tbaa !37
  %184 = load ptr, ptr %2, align 8, !tbaa !5
  %185 = getelementptr inbounds %struct.DState, ptr %184, i32 0, i32 53
  %186 = load i32, ptr %185, align 8, !tbaa !26
  store i32 %186, ptr %21, align 4, !tbaa !37
  %187 = load ptr, ptr %2, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.DState, ptr %187, i32 0, i32 54
  %189 = load i32, ptr %188, align 4, !tbaa !27
  store i32 %189, ptr %22, align 4, !tbaa !37
  %190 = load ptr, ptr %2, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.DState, ptr %190, i32 0, i32 55
  %192 = load i32, ptr %191, align 8, !tbaa !28
  store i32 %192, ptr %23, align 4, !tbaa !37
  %193 = load ptr, ptr %2, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.DState, ptr %193, i32 0, i32 56
  %195 = load i32, ptr %194, align 4, !tbaa !29
  store i32 %195, ptr %24, align 4, !tbaa !37
  %196 = load ptr, ptr %2, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.DState, ptr %196, i32 0, i32 57
  %198 = load i32, ptr %197, align 8, !tbaa !30
  store i32 %198, ptr %25, align 4, !tbaa !37
  %199 = load ptr, ptr %2, align 8, !tbaa !5
  %200 = getelementptr inbounds %struct.DState, ptr %199, i32 0, i32 58
  %201 = load i32, ptr %200, align 4, !tbaa !31
  store i32 %201, ptr %26, align 4, !tbaa !37
  %202 = load ptr, ptr %2, align 8, !tbaa !5
  %203 = getelementptr inbounds %struct.DState, ptr %202, i32 0, i32 59
  %204 = load i32, ptr %203, align 8, !tbaa !32
  store i32 %204, ptr %27, align 4, !tbaa !37
  %205 = load ptr, ptr %2, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.DState, ptr %205, i32 0, i32 60
  %207 = load i32, ptr %206, align 4, !tbaa !33
  store i32 %207, ptr %28, align 4, !tbaa !37
  %208 = load ptr, ptr %2, align 8, !tbaa !5
  %209 = getelementptr inbounds %struct.DState, ptr %208, i32 0, i32 61
  %210 = load ptr, ptr %209, align 8, !tbaa !34
  store ptr %210, ptr %29, align 8, !tbaa !5
  %211 = load ptr, ptr %2, align 8, !tbaa !5
  %212 = getelementptr inbounds %struct.DState, ptr %211, i32 0, i32 62
  %213 = load ptr, ptr %212, align 8, !tbaa !35
  store ptr %213, ptr %30, align 8, !tbaa !5
  %214 = load ptr, ptr %2, align 8, !tbaa !5
  %215 = getelementptr inbounds %struct.DState, ptr %214, i32 0, i32 63
  %216 = load ptr, ptr %215, align 8, !tbaa !36
  store ptr %216, ptr %31, align 8, !tbaa !5
  store i32 0, ptr %4, align 4, !tbaa !37
  %217 = load ptr, ptr %2, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.DState, ptr %217, i32 0, i32 1
  %219 = load i32, ptr %218, align 8, !tbaa !12
  switch i32 %219, label %5779 [
    i32 10, label %220
    i32 11, label %310
    i32 12, label %400
    i32 13, label %490
    i32 14, label %665
    i32 15, label %760
    i32 16, label %850
    i32 17, label %940
    i32 18, label %1030
    i32 19, label %1120
    i32 20, label %1222
    i32 21, label %1316
    i32 22, label %1410
    i32 23, label %1504
    i32 24, label %1598
    i32 25, label %1687
    i32 26, label %1781
    i32 27, label %1875
    i32 28, label %1990
    i32 29, label %2124
    i32 30, label %2242
    i32 31, label %2333
    i32 32, label %2428
    i32 33, label %2600
    i32 34, label %2698
    i32 35, label %2788
    i32 36, label %3102
    i32 37, label %3209
    i32 38, label %3406
    i32 39, label %3513
    i32 40, label %4075
    i32 41, label %4182
    i32 42, label %4949
    i32 43, label %5039
    i32 44, label %5129
    i32 45, label %5219
    i32 46, label %5309
    i32 47, label %5401
    i32 48, label %5495
    i32 49, label %5589
    i32 50, label %5683
  ]

220:                                              ; preds = %144
  %221 = load ptr, ptr %2, align 8, !tbaa !5
  %222 = getelementptr inbounds %struct.DState, ptr %221, i32 0, i32 1
  store i32 10, ptr %222, align 8, !tbaa !12
  br label %223

223:                                              ; preds = %303, %220
  br label %224

224:                                              ; preds = %223
  %225 = load ptr, ptr %2, align 8, !tbaa !5
  %226 = getelementptr inbounds %struct.DState, ptr %225, i32 0, i32 8
  %227 = load i32, ptr %226, align 4, !tbaa !38
  %228 = icmp sge i32 %227, 8
  br i1 %228, label %229, label %245

229:                                              ; preds = %224
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #3
  %230 = load ptr, ptr %2, align 8, !tbaa !5
  %231 = getelementptr inbounds %struct.DState, ptr %230, i32 0, i32 7
  %232 = load i32, ptr %231, align 8, !tbaa !39
  %233 = load ptr, ptr %2, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.DState, ptr %233, i32 0, i32 8
  %235 = load i32, ptr %234, align 4, !tbaa !38
  %236 = sub nsw i32 %235, 8
  %237 = lshr i32 %232, %236
  %238 = and i32 %237, 255
  store i32 %238, ptr %32, align 4, !tbaa !37
  %239 = load ptr, ptr %2, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.DState, ptr %239, i32 0, i32 8
  %241 = load i32, ptr %240, align 4, !tbaa !38
  %242 = sub nsw i32 %241, 8
  store i32 %242, ptr %240, align 4, !tbaa !38
  %243 = load i32, ptr %32, align 4, !tbaa !37
  %244 = trunc i32 %243 to i8
  store i8 %244, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #3
  br label %304

245:                                              ; preds = %224
  %246 = load ptr, ptr %2, align 8, !tbaa !5
  %247 = getelementptr inbounds %struct.DState, ptr %246, i32 0, i32 0
  %248 = load ptr, ptr %247, align 8, !tbaa !9
  %249 = getelementptr inbounds %struct.bz_stream, ptr %248, i32 0, i32 1
  %250 = load i32, ptr %249, align 8, !tbaa !41
  %251 = icmp eq i32 %250, 0
  br i1 %251, label %252, label %253

252:                                              ; preds = %245
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

253:                                              ; preds = %245
  %254 = load ptr, ptr %2, align 8, !tbaa !5
  %255 = getelementptr inbounds %struct.DState, ptr %254, i32 0, i32 7
  %256 = load i32, ptr %255, align 8, !tbaa !39
  %257 = shl i32 %256, 8
  %258 = load ptr, ptr %2, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.DState, ptr %258, i32 0, i32 0
  %260 = load ptr, ptr %259, align 8, !tbaa !9
  %261 = getelementptr inbounds %struct.bz_stream, ptr %260, i32 0, i32 0
  %262 = load ptr, ptr %261, align 8, !tbaa !43
  %263 = load i8, ptr %262, align 1, !tbaa !40
  %264 = zext i8 %263 to i32
  %265 = or i32 %257, %264
  %266 = load ptr, ptr %2, align 8, !tbaa !5
  %267 = getelementptr inbounds %struct.DState, ptr %266, i32 0, i32 7
  store i32 %265, ptr %267, align 8, !tbaa !39
  %268 = load ptr, ptr %2, align 8, !tbaa !5
  %269 = getelementptr inbounds %struct.DState, ptr %268, i32 0, i32 8
  %270 = load i32, ptr %269, align 4, !tbaa !38
  %271 = add nsw i32 %270, 8
  store i32 %271, ptr %269, align 4, !tbaa !38
  %272 = load ptr, ptr %2, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.DState, ptr %272, i32 0, i32 0
  %274 = load ptr, ptr %273, align 8, !tbaa !9
  %275 = getelementptr inbounds %struct.bz_stream, ptr %274, i32 0, i32 0
  %276 = load ptr, ptr %275, align 8, !tbaa !43
  %277 = getelementptr inbounds i8, ptr %276, i32 1
  store ptr %277, ptr %275, align 8, !tbaa !43
  %278 = load ptr, ptr %2, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.DState, ptr %278, i32 0, i32 0
  %280 = load ptr, ptr %279, align 8, !tbaa !9
  %281 = getelementptr inbounds %struct.bz_stream, ptr %280, i32 0, i32 1
  %282 = load i32, ptr %281, align 8, !tbaa !41
  %283 = add i32 %282, -1
  store i32 %283, ptr %281, align 8, !tbaa !41
  %284 = load ptr, ptr %2, align 8, !tbaa !5
  %285 = getelementptr inbounds %struct.DState, ptr %284, i32 0, i32 0
  %286 = load ptr, ptr %285, align 8, !tbaa !9
  %287 = getelementptr inbounds %struct.bz_stream, ptr %286, i32 0, i32 2
  %288 = load i32, ptr %287, align 4, !tbaa !44
  %289 = add i32 %288, 1
  store i32 %289, ptr %287, align 4, !tbaa !44
  %290 = load ptr, ptr %2, align 8, !tbaa !5
  %291 = getelementptr inbounds %struct.DState, ptr %290, i32 0, i32 0
  %292 = load ptr, ptr %291, align 8, !tbaa !9
  %293 = getelementptr inbounds %struct.bz_stream, ptr %292, i32 0, i32 2
  %294 = load i32, ptr %293, align 4, !tbaa !44
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %303

296:                                              ; preds = %253
  %297 = load ptr, ptr %2, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.DState, ptr %297, i32 0, i32 0
  %299 = load ptr, ptr %298, align 8, !tbaa !9
  %300 = getelementptr inbounds %struct.bz_stream, ptr %299, i32 0, i32 3
  %301 = load i32, ptr %300, align 8, !tbaa !45
  %302 = add i32 %301, 1
  store i32 %302, ptr %300, align 8, !tbaa !45
  br label %303

303:                                              ; preds = %296, %253
  br label %223

304:                                              ; preds = %229
  %305 = load i8, ptr %3, align 1, !tbaa !40
  %306 = zext i8 %305 to i32
  %307 = icmp ne i32 %306, 66
  br i1 %307, label %308, label %309

308:                                              ; preds = %304
  store i32 -5, ptr %4, align 4, !tbaa !37
  br label %5781

309:                                              ; preds = %304
  br label %310

310:                                              ; preds = %309, %144
  %311 = load ptr, ptr %2, align 8, !tbaa !5
  %312 = getelementptr inbounds %struct.DState, ptr %311, i32 0, i32 1
  store i32 11, ptr %312, align 8, !tbaa !12
  br label %313

313:                                              ; preds = %393, %310
  br label %314

314:                                              ; preds = %313
  %315 = load ptr, ptr %2, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.DState, ptr %315, i32 0, i32 8
  %317 = load i32, ptr %316, align 4, !tbaa !38
  %318 = icmp sge i32 %317, 8
  br i1 %318, label %319, label %335

319:                                              ; preds = %314
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  %320 = load ptr, ptr %2, align 8, !tbaa !5
  %321 = getelementptr inbounds %struct.DState, ptr %320, i32 0, i32 7
  %322 = load i32, ptr %321, align 8, !tbaa !39
  %323 = load ptr, ptr %2, align 8, !tbaa !5
  %324 = getelementptr inbounds %struct.DState, ptr %323, i32 0, i32 8
  %325 = load i32, ptr %324, align 4, !tbaa !38
  %326 = sub nsw i32 %325, 8
  %327 = lshr i32 %322, %326
  %328 = and i32 %327, 255
  store i32 %328, ptr %33, align 4, !tbaa !37
  %329 = load ptr, ptr %2, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.DState, ptr %329, i32 0, i32 8
  %331 = load i32, ptr %330, align 4, !tbaa !38
  %332 = sub nsw i32 %331, 8
  store i32 %332, ptr %330, align 4, !tbaa !38
  %333 = load i32, ptr %33, align 4, !tbaa !37
  %334 = trunc i32 %333 to i8
  store i8 %334, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  br label %394

335:                                              ; preds = %314
  %336 = load ptr, ptr %2, align 8, !tbaa !5
  %337 = getelementptr inbounds %struct.DState, ptr %336, i32 0, i32 0
  %338 = load ptr, ptr %337, align 8, !tbaa !9
  %339 = getelementptr inbounds %struct.bz_stream, ptr %338, i32 0, i32 1
  %340 = load i32, ptr %339, align 8, !tbaa !41
  %341 = icmp eq i32 %340, 0
  br i1 %341, label %342, label %343

342:                                              ; preds = %335
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

343:                                              ; preds = %335
  %344 = load ptr, ptr %2, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.DState, ptr %344, i32 0, i32 7
  %346 = load i32, ptr %345, align 8, !tbaa !39
  %347 = shl i32 %346, 8
  %348 = load ptr, ptr %2, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.DState, ptr %348, i32 0, i32 0
  %350 = load ptr, ptr %349, align 8, !tbaa !9
  %351 = getelementptr inbounds %struct.bz_stream, ptr %350, i32 0, i32 0
  %352 = load ptr, ptr %351, align 8, !tbaa !43
  %353 = load i8, ptr %352, align 1, !tbaa !40
  %354 = zext i8 %353 to i32
  %355 = or i32 %347, %354
  %356 = load ptr, ptr %2, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.DState, ptr %356, i32 0, i32 7
  store i32 %355, ptr %357, align 8, !tbaa !39
  %358 = load ptr, ptr %2, align 8, !tbaa !5
  %359 = getelementptr inbounds %struct.DState, ptr %358, i32 0, i32 8
  %360 = load i32, ptr %359, align 4, !tbaa !38
  %361 = add nsw i32 %360, 8
  store i32 %361, ptr %359, align 4, !tbaa !38
  %362 = load ptr, ptr %2, align 8, !tbaa !5
  %363 = getelementptr inbounds %struct.DState, ptr %362, i32 0, i32 0
  %364 = load ptr, ptr %363, align 8, !tbaa !9
  %365 = getelementptr inbounds %struct.bz_stream, ptr %364, i32 0, i32 0
  %366 = load ptr, ptr %365, align 8, !tbaa !43
  %367 = getelementptr inbounds i8, ptr %366, i32 1
  store ptr %367, ptr %365, align 8, !tbaa !43
  %368 = load ptr, ptr %2, align 8, !tbaa !5
  %369 = getelementptr inbounds %struct.DState, ptr %368, i32 0, i32 0
  %370 = load ptr, ptr %369, align 8, !tbaa !9
  %371 = getelementptr inbounds %struct.bz_stream, ptr %370, i32 0, i32 1
  %372 = load i32, ptr %371, align 8, !tbaa !41
  %373 = add i32 %372, -1
  store i32 %373, ptr %371, align 8, !tbaa !41
  %374 = load ptr, ptr %2, align 8, !tbaa !5
  %375 = getelementptr inbounds %struct.DState, ptr %374, i32 0, i32 0
  %376 = load ptr, ptr %375, align 8, !tbaa !9
  %377 = getelementptr inbounds %struct.bz_stream, ptr %376, i32 0, i32 2
  %378 = load i32, ptr %377, align 4, !tbaa !44
  %379 = add i32 %378, 1
  store i32 %379, ptr %377, align 4, !tbaa !44
  %380 = load ptr, ptr %2, align 8, !tbaa !5
  %381 = getelementptr inbounds %struct.DState, ptr %380, i32 0, i32 0
  %382 = load ptr, ptr %381, align 8, !tbaa !9
  %383 = getelementptr inbounds %struct.bz_stream, ptr %382, i32 0, i32 2
  %384 = load i32, ptr %383, align 4, !tbaa !44
  %385 = icmp eq i32 %384, 0
  br i1 %385, label %386, label %393

386:                                              ; preds = %343
  %387 = load ptr, ptr %2, align 8, !tbaa !5
  %388 = getelementptr inbounds %struct.DState, ptr %387, i32 0, i32 0
  %389 = load ptr, ptr %388, align 8, !tbaa !9
  %390 = getelementptr inbounds %struct.bz_stream, ptr %389, i32 0, i32 3
  %391 = load i32, ptr %390, align 8, !tbaa !45
  %392 = add i32 %391, 1
  store i32 %392, ptr %390, align 8, !tbaa !45
  br label %393

393:                                              ; preds = %386, %343
  br label %313

394:                                              ; preds = %319
  %395 = load i8, ptr %3, align 1, !tbaa !40
  %396 = zext i8 %395 to i32
  %397 = icmp ne i32 %396, 90
  br i1 %397, label %398, label %399

398:                                              ; preds = %394
  store i32 -5, ptr %4, align 4, !tbaa !37
  br label %5781

399:                                              ; preds = %394
  br label %400

400:                                              ; preds = %399, %144
  %401 = load ptr, ptr %2, align 8, !tbaa !5
  %402 = getelementptr inbounds %struct.DState, ptr %401, i32 0, i32 1
  store i32 12, ptr %402, align 8, !tbaa !12
  br label %403

403:                                              ; preds = %483, %400
  br label %404

404:                                              ; preds = %403
  %405 = load ptr, ptr %2, align 8, !tbaa !5
  %406 = getelementptr inbounds %struct.DState, ptr %405, i32 0, i32 8
  %407 = load i32, ptr %406, align 4, !tbaa !38
  %408 = icmp sge i32 %407, 8
  br i1 %408, label %409, label %425

409:                                              ; preds = %404
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  %410 = load ptr, ptr %2, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.DState, ptr %410, i32 0, i32 7
  %412 = load i32, ptr %411, align 8, !tbaa !39
  %413 = load ptr, ptr %2, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.DState, ptr %413, i32 0, i32 8
  %415 = load i32, ptr %414, align 4, !tbaa !38
  %416 = sub nsw i32 %415, 8
  %417 = lshr i32 %412, %416
  %418 = and i32 %417, 255
  store i32 %418, ptr %34, align 4, !tbaa !37
  %419 = load ptr, ptr %2, align 8, !tbaa !5
  %420 = getelementptr inbounds %struct.DState, ptr %419, i32 0, i32 8
  %421 = load i32, ptr %420, align 4, !tbaa !38
  %422 = sub nsw i32 %421, 8
  store i32 %422, ptr %420, align 4, !tbaa !38
  %423 = load i32, ptr %34, align 4, !tbaa !37
  %424 = trunc i32 %423 to i8
  store i8 %424, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  br label %484

425:                                              ; preds = %404
  %426 = load ptr, ptr %2, align 8, !tbaa !5
  %427 = getelementptr inbounds %struct.DState, ptr %426, i32 0, i32 0
  %428 = load ptr, ptr %427, align 8, !tbaa !9
  %429 = getelementptr inbounds %struct.bz_stream, ptr %428, i32 0, i32 1
  %430 = load i32, ptr %429, align 8, !tbaa !41
  %431 = icmp eq i32 %430, 0
  br i1 %431, label %432, label %433

432:                                              ; preds = %425
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

433:                                              ; preds = %425
  %434 = load ptr, ptr %2, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct.DState, ptr %434, i32 0, i32 7
  %436 = load i32, ptr %435, align 8, !tbaa !39
  %437 = shl i32 %436, 8
  %438 = load ptr, ptr %2, align 8, !tbaa !5
  %439 = getelementptr inbounds %struct.DState, ptr %438, i32 0, i32 0
  %440 = load ptr, ptr %439, align 8, !tbaa !9
  %441 = getelementptr inbounds %struct.bz_stream, ptr %440, i32 0, i32 0
  %442 = load ptr, ptr %441, align 8, !tbaa !43
  %443 = load i8, ptr %442, align 1, !tbaa !40
  %444 = zext i8 %443 to i32
  %445 = or i32 %437, %444
  %446 = load ptr, ptr %2, align 8, !tbaa !5
  %447 = getelementptr inbounds %struct.DState, ptr %446, i32 0, i32 7
  store i32 %445, ptr %447, align 8, !tbaa !39
  %448 = load ptr, ptr %2, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.DState, ptr %448, i32 0, i32 8
  %450 = load i32, ptr %449, align 4, !tbaa !38
  %451 = add nsw i32 %450, 8
  store i32 %451, ptr %449, align 4, !tbaa !38
  %452 = load ptr, ptr %2, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.DState, ptr %452, i32 0, i32 0
  %454 = load ptr, ptr %453, align 8, !tbaa !9
  %455 = getelementptr inbounds %struct.bz_stream, ptr %454, i32 0, i32 0
  %456 = load ptr, ptr %455, align 8, !tbaa !43
  %457 = getelementptr inbounds i8, ptr %456, i32 1
  store ptr %457, ptr %455, align 8, !tbaa !43
  %458 = load ptr, ptr %2, align 8, !tbaa !5
  %459 = getelementptr inbounds %struct.DState, ptr %458, i32 0, i32 0
  %460 = load ptr, ptr %459, align 8, !tbaa !9
  %461 = getelementptr inbounds %struct.bz_stream, ptr %460, i32 0, i32 1
  %462 = load i32, ptr %461, align 8, !tbaa !41
  %463 = add i32 %462, -1
  store i32 %463, ptr %461, align 8, !tbaa !41
  %464 = load ptr, ptr %2, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.DState, ptr %464, i32 0, i32 0
  %466 = load ptr, ptr %465, align 8, !tbaa !9
  %467 = getelementptr inbounds %struct.bz_stream, ptr %466, i32 0, i32 2
  %468 = load i32, ptr %467, align 4, !tbaa !44
  %469 = add i32 %468, 1
  store i32 %469, ptr %467, align 4, !tbaa !44
  %470 = load ptr, ptr %2, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.DState, ptr %470, i32 0, i32 0
  %472 = load ptr, ptr %471, align 8, !tbaa !9
  %473 = getelementptr inbounds %struct.bz_stream, ptr %472, i32 0, i32 2
  %474 = load i32, ptr %473, align 4, !tbaa !44
  %475 = icmp eq i32 %474, 0
  br i1 %475, label %476, label %483

476:                                              ; preds = %433
  %477 = load ptr, ptr %2, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.DState, ptr %477, i32 0, i32 0
  %479 = load ptr, ptr %478, align 8, !tbaa !9
  %480 = getelementptr inbounds %struct.bz_stream, ptr %479, i32 0, i32 3
  %481 = load i32, ptr %480, align 8, !tbaa !45
  %482 = add i32 %481, 1
  store i32 %482, ptr %480, align 8, !tbaa !45
  br label %483

483:                                              ; preds = %476, %433
  br label %403

484:                                              ; preds = %409
  %485 = load i8, ptr %3, align 1, !tbaa !40
  %486 = zext i8 %485 to i32
  %487 = icmp ne i32 %486, 104
  br i1 %487, label %488, label %489

488:                                              ; preds = %484
  store i32 -5, ptr %4, align 4, !tbaa !37
  br label %5781

489:                                              ; preds = %484
  br label %490

490:                                              ; preds = %489, %144
  %491 = load ptr, ptr %2, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.DState, ptr %491, i32 0, i32 1
  store i32 13, ptr %492, align 8, !tbaa !12
  br label %493

493:                                              ; preds = %574, %490
  br label %494

494:                                              ; preds = %493
  %495 = load ptr, ptr %2, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.DState, ptr %495, i32 0, i32 8
  %497 = load i32, ptr %496, align 4, !tbaa !38
  %498 = icmp sge i32 %497, 8
  br i1 %498, label %499, label %516

499:                                              ; preds = %494
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  %500 = load ptr, ptr %2, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.DState, ptr %500, i32 0, i32 7
  %502 = load i32, ptr %501, align 8, !tbaa !39
  %503 = load ptr, ptr %2, align 8, !tbaa !5
  %504 = getelementptr inbounds %struct.DState, ptr %503, i32 0, i32 8
  %505 = load i32, ptr %504, align 4, !tbaa !38
  %506 = sub nsw i32 %505, 8
  %507 = lshr i32 %502, %506
  %508 = and i32 %507, 255
  store i32 %508, ptr %35, align 4, !tbaa !37
  %509 = load ptr, ptr %2, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.DState, ptr %509, i32 0, i32 8
  %511 = load i32, ptr %510, align 4, !tbaa !38
  %512 = sub nsw i32 %511, 8
  store i32 %512, ptr %510, align 4, !tbaa !38
  %513 = load i32, ptr %35, align 4, !tbaa !37
  %514 = load ptr, ptr %2, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.DState, ptr %514, i32 0, i32 9
  store i32 %513, ptr %515, align 8, !tbaa !46
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  br label %575

516:                                              ; preds = %494
  %517 = load ptr, ptr %2, align 8, !tbaa !5
  %518 = getelementptr inbounds %struct.DState, ptr %517, i32 0, i32 0
  %519 = load ptr, ptr %518, align 8, !tbaa !9
  %520 = getelementptr inbounds %struct.bz_stream, ptr %519, i32 0, i32 1
  %521 = load i32, ptr %520, align 8, !tbaa !41
  %522 = icmp eq i32 %521, 0
  br i1 %522, label %523, label %524

523:                                              ; preds = %516
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

524:                                              ; preds = %516
  %525 = load ptr, ptr %2, align 8, !tbaa !5
  %526 = getelementptr inbounds %struct.DState, ptr %525, i32 0, i32 7
  %527 = load i32, ptr %526, align 8, !tbaa !39
  %528 = shl i32 %527, 8
  %529 = load ptr, ptr %2, align 8, !tbaa !5
  %530 = getelementptr inbounds %struct.DState, ptr %529, i32 0, i32 0
  %531 = load ptr, ptr %530, align 8, !tbaa !9
  %532 = getelementptr inbounds %struct.bz_stream, ptr %531, i32 0, i32 0
  %533 = load ptr, ptr %532, align 8, !tbaa !43
  %534 = load i8, ptr %533, align 1, !tbaa !40
  %535 = zext i8 %534 to i32
  %536 = or i32 %528, %535
  %537 = load ptr, ptr %2, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.DState, ptr %537, i32 0, i32 7
  store i32 %536, ptr %538, align 8, !tbaa !39
  %539 = load ptr, ptr %2, align 8, !tbaa !5
  %540 = getelementptr inbounds %struct.DState, ptr %539, i32 0, i32 8
  %541 = load i32, ptr %540, align 4, !tbaa !38
  %542 = add nsw i32 %541, 8
  store i32 %542, ptr %540, align 4, !tbaa !38
  %543 = load ptr, ptr %2, align 8, !tbaa !5
  %544 = getelementptr inbounds %struct.DState, ptr %543, i32 0, i32 0
  %545 = load ptr, ptr %544, align 8, !tbaa !9
  %546 = getelementptr inbounds %struct.bz_stream, ptr %545, i32 0, i32 0
  %547 = load ptr, ptr %546, align 8, !tbaa !43
  %548 = getelementptr inbounds i8, ptr %547, i32 1
  store ptr %548, ptr %546, align 8, !tbaa !43
  %549 = load ptr, ptr %2, align 8, !tbaa !5
  %550 = getelementptr inbounds %struct.DState, ptr %549, i32 0, i32 0
  %551 = load ptr, ptr %550, align 8, !tbaa !9
  %552 = getelementptr inbounds %struct.bz_stream, ptr %551, i32 0, i32 1
  %553 = load i32, ptr %552, align 8, !tbaa !41
  %554 = add i32 %553, -1
  store i32 %554, ptr %552, align 8, !tbaa !41
  %555 = load ptr, ptr %2, align 8, !tbaa !5
  %556 = getelementptr inbounds %struct.DState, ptr %555, i32 0, i32 0
  %557 = load ptr, ptr %556, align 8, !tbaa !9
  %558 = getelementptr inbounds %struct.bz_stream, ptr %557, i32 0, i32 2
  %559 = load i32, ptr %558, align 4, !tbaa !44
  %560 = add i32 %559, 1
  store i32 %560, ptr %558, align 4, !tbaa !44
  %561 = load ptr, ptr %2, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.DState, ptr %561, i32 0, i32 0
  %563 = load ptr, ptr %562, align 8, !tbaa !9
  %564 = getelementptr inbounds %struct.bz_stream, ptr %563, i32 0, i32 2
  %565 = load i32, ptr %564, align 4, !tbaa !44
  %566 = icmp eq i32 %565, 0
  br i1 %566, label %567, label %574

567:                                              ; preds = %524
  %568 = load ptr, ptr %2, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.DState, ptr %568, i32 0, i32 0
  %570 = load ptr, ptr %569, align 8, !tbaa !9
  %571 = getelementptr inbounds %struct.bz_stream, ptr %570, i32 0, i32 3
  %572 = load i32, ptr %571, align 8, !tbaa !45
  %573 = add i32 %572, 1
  store i32 %573, ptr %571, align 8, !tbaa !45
  br label %574

574:                                              ; preds = %567, %524
  br label %493

575:                                              ; preds = %499
  %576 = load ptr, ptr %2, align 8, !tbaa !5
  %577 = getelementptr inbounds %struct.DState, ptr %576, i32 0, i32 9
  %578 = load i32, ptr %577, align 8, !tbaa !46
  %579 = icmp slt i32 %578, 49
  br i1 %579, label %585, label %580

580:                                              ; preds = %575
  %581 = load ptr, ptr %2, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.DState, ptr %581, i32 0, i32 9
  %583 = load i32, ptr %582, align 8, !tbaa !46
  %584 = icmp sgt i32 %583, 57
  br i1 %584, label %585, label %586

585:                                              ; preds = %580, %575
  store i32 -5, ptr %4, align 4, !tbaa !37
  br label %5781

586:                                              ; preds = %580
  %587 = load ptr, ptr %2, align 8, !tbaa !5
  %588 = getelementptr inbounds %struct.DState, ptr %587, i32 0, i32 9
  %589 = load i32, ptr %588, align 8, !tbaa !46
  %590 = sub nsw i32 %589, 48
  store i32 %590, ptr %588, align 8, !tbaa !46
  %591 = load ptr, ptr %2, align 8, !tbaa !5
  %592 = getelementptr inbounds %struct.DState, ptr %591, i32 0, i32 10
  %593 = load i8, ptr %592, align 4, !tbaa !47
  %594 = icmp ne i8 %593, 0
  br i1 %594, label %595, label %641

595:                                              ; preds = %586
  %596 = load ptr, ptr %7, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.bz_stream, ptr %596, i32 0, i32 9
  %598 = load ptr, ptr %597, align 8, !tbaa !48
  %599 = load ptr, ptr %7, align 8, !tbaa !5
  %600 = getelementptr inbounds %struct.bz_stream, ptr %599, i32 0, i32 11
  %601 = load ptr, ptr %600, align 8, !tbaa !49
  %602 = load ptr, ptr %2, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.DState, ptr %602, i32 0, i32 9
  %604 = load i32, ptr %603, align 8, !tbaa !46
  %605 = mul nsw i32 %604, 100000
  %606 = sext i32 %605 to i64
  %607 = mul i64 %606, 2
  %608 = trunc i64 %607 to i32
  %609 = call ptr %598(ptr noundef %601, i32 noundef %608, i32 noundef 1)
  %610 = load ptr, ptr %2, align 8, !tbaa !5
  %611 = getelementptr inbounds %struct.DState, ptr %610, i32 0, i32 21
  store ptr %609, ptr %611, align 8, !tbaa !50
  %612 = load ptr, ptr %7, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.bz_stream, ptr %612, i32 0, i32 9
  %614 = load ptr, ptr %613, align 8, !tbaa !48
  %615 = load ptr, ptr %7, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.bz_stream, ptr %615, i32 0, i32 11
  %617 = load ptr, ptr %616, align 8, !tbaa !49
  %618 = load ptr, ptr %2, align 8, !tbaa !5
  %619 = getelementptr inbounds %struct.DState, ptr %618, i32 0, i32 9
  %620 = load i32, ptr %619, align 8, !tbaa !46
  %621 = mul nsw i32 %620, 100000
  %622 = add nsw i32 1, %621
  %623 = ashr i32 %622, 1
  %624 = sext i32 %623 to i64
  %625 = mul i64 %624, 1
  %626 = trunc i64 %625 to i32
  %627 = call ptr %614(ptr noundef %617, i32 noundef %626, i32 noundef 1)
  %628 = load ptr, ptr %2, align 8, !tbaa !5
  %629 = getelementptr inbounds %struct.DState, ptr %628, i32 0, i32 22
  store ptr %627, ptr %629, align 8, !tbaa !51
  %630 = load ptr, ptr %2, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.DState, ptr %630, i32 0, i32 21
  %632 = load ptr, ptr %631, align 8, !tbaa !50
  %633 = icmp eq ptr %632, null
  br i1 %633, label %639, label %634

634:                                              ; preds = %595
  %635 = load ptr, ptr %2, align 8, !tbaa !5
  %636 = getelementptr inbounds %struct.DState, ptr %635, i32 0, i32 22
  %637 = load ptr, ptr %636, align 8, !tbaa !51
  %638 = icmp eq ptr %637, null
  br i1 %638, label %639, label %640

639:                                              ; preds = %634, %595
  store i32 -3, ptr %4, align 4, !tbaa !37
  br label %5781

640:                                              ; preds = %634
  br label %664

641:                                              ; preds = %586
  %642 = load ptr, ptr %7, align 8, !tbaa !5
  %643 = getelementptr inbounds %struct.bz_stream, ptr %642, i32 0, i32 9
  %644 = load ptr, ptr %643, align 8, !tbaa !48
  %645 = load ptr, ptr %7, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.bz_stream, ptr %645, i32 0, i32 11
  %647 = load ptr, ptr %646, align 8, !tbaa !49
  %648 = load ptr, ptr %2, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.DState, ptr %648, i32 0, i32 9
  %650 = load i32, ptr %649, align 8, !tbaa !46
  %651 = mul nsw i32 %650, 100000
  %652 = sext i32 %651 to i64
  %653 = mul i64 %652, 4
  %654 = trunc i64 %653 to i32
  %655 = call ptr %644(ptr noundef %647, i32 noundef %654, i32 noundef 1)
  %656 = load ptr, ptr %2, align 8, !tbaa !5
  %657 = getelementptr inbounds %struct.DState, ptr %656, i32 0, i32 20
  store ptr %655, ptr %657, align 8, !tbaa !52
  %658 = load ptr, ptr %2, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.DState, ptr %658, i32 0, i32 20
  %660 = load ptr, ptr %659, align 8, !tbaa !52
  %661 = icmp eq ptr %660, null
  br i1 %661, label %662, label %663

662:                                              ; preds = %641
  store i32 -3, ptr %4, align 4, !tbaa !37
  br label %5781

663:                                              ; preds = %641
  br label %664

664:                                              ; preds = %663, %640
  br label %665

665:                                              ; preds = %664, %144
  %666 = load ptr, ptr %2, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.DState, ptr %666, i32 0, i32 1
  store i32 14, ptr %667, align 8, !tbaa !12
  br label %668

668:                                              ; preds = %748, %665
  br label %669

669:                                              ; preds = %668
  %670 = load ptr, ptr %2, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.DState, ptr %670, i32 0, i32 8
  %672 = load i32, ptr %671, align 4, !tbaa !38
  %673 = icmp sge i32 %672, 8
  br i1 %673, label %674, label %690

674:                                              ; preds = %669
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  %675 = load ptr, ptr %2, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.DState, ptr %675, i32 0, i32 7
  %677 = load i32, ptr %676, align 8, !tbaa !39
  %678 = load ptr, ptr %2, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.DState, ptr %678, i32 0, i32 8
  %680 = load i32, ptr %679, align 4, !tbaa !38
  %681 = sub nsw i32 %680, 8
  %682 = lshr i32 %677, %681
  %683 = and i32 %682, 255
  store i32 %683, ptr %36, align 4, !tbaa !37
  %684 = load ptr, ptr %2, align 8, !tbaa !5
  %685 = getelementptr inbounds %struct.DState, ptr %684, i32 0, i32 8
  %686 = load i32, ptr %685, align 4, !tbaa !38
  %687 = sub nsw i32 %686, 8
  store i32 %687, ptr %685, align 4, !tbaa !38
  %688 = load i32, ptr %36, align 4, !tbaa !37
  %689 = trunc i32 %688 to i8
  store i8 %689, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  br label %749

690:                                              ; preds = %669
  %691 = load ptr, ptr %2, align 8, !tbaa !5
  %692 = getelementptr inbounds %struct.DState, ptr %691, i32 0, i32 0
  %693 = load ptr, ptr %692, align 8, !tbaa !9
  %694 = getelementptr inbounds %struct.bz_stream, ptr %693, i32 0, i32 1
  %695 = load i32, ptr %694, align 8, !tbaa !41
  %696 = icmp eq i32 %695, 0
  br i1 %696, label %697, label %698

697:                                              ; preds = %690
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

698:                                              ; preds = %690
  %699 = load ptr, ptr %2, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.DState, ptr %699, i32 0, i32 7
  %701 = load i32, ptr %700, align 8, !tbaa !39
  %702 = shl i32 %701, 8
  %703 = load ptr, ptr %2, align 8, !tbaa !5
  %704 = getelementptr inbounds %struct.DState, ptr %703, i32 0, i32 0
  %705 = load ptr, ptr %704, align 8, !tbaa !9
  %706 = getelementptr inbounds %struct.bz_stream, ptr %705, i32 0, i32 0
  %707 = load ptr, ptr %706, align 8, !tbaa !43
  %708 = load i8, ptr %707, align 1, !tbaa !40
  %709 = zext i8 %708 to i32
  %710 = or i32 %702, %709
  %711 = load ptr, ptr %2, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.DState, ptr %711, i32 0, i32 7
  store i32 %710, ptr %712, align 8, !tbaa !39
  %713 = load ptr, ptr %2, align 8, !tbaa !5
  %714 = getelementptr inbounds %struct.DState, ptr %713, i32 0, i32 8
  %715 = load i32, ptr %714, align 4, !tbaa !38
  %716 = add nsw i32 %715, 8
  store i32 %716, ptr %714, align 4, !tbaa !38
  %717 = load ptr, ptr %2, align 8, !tbaa !5
  %718 = getelementptr inbounds %struct.DState, ptr %717, i32 0, i32 0
  %719 = load ptr, ptr %718, align 8, !tbaa !9
  %720 = getelementptr inbounds %struct.bz_stream, ptr %719, i32 0, i32 0
  %721 = load ptr, ptr %720, align 8, !tbaa !43
  %722 = getelementptr inbounds i8, ptr %721, i32 1
  store ptr %722, ptr %720, align 8, !tbaa !43
  %723 = load ptr, ptr %2, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.DState, ptr %723, i32 0, i32 0
  %725 = load ptr, ptr %724, align 8, !tbaa !9
  %726 = getelementptr inbounds %struct.bz_stream, ptr %725, i32 0, i32 1
  %727 = load i32, ptr %726, align 8, !tbaa !41
  %728 = add i32 %727, -1
  store i32 %728, ptr %726, align 8, !tbaa !41
  %729 = load ptr, ptr %2, align 8, !tbaa !5
  %730 = getelementptr inbounds %struct.DState, ptr %729, i32 0, i32 0
  %731 = load ptr, ptr %730, align 8, !tbaa !9
  %732 = getelementptr inbounds %struct.bz_stream, ptr %731, i32 0, i32 2
  %733 = load i32, ptr %732, align 4, !tbaa !44
  %734 = add i32 %733, 1
  store i32 %734, ptr %732, align 4, !tbaa !44
  %735 = load ptr, ptr %2, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.DState, ptr %735, i32 0, i32 0
  %737 = load ptr, ptr %736, align 8, !tbaa !9
  %738 = getelementptr inbounds %struct.bz_stream, ptr %737, i32 0, i32 2
  %739 = load i32, ptr %738, align 4, !tbaa !44
  %740 = icmp eq i32 %739, 0
  br i1 %740, label %741, label %748

741:                                              ; preds = %698
  %742 = load ptr, ptr %2, align 8, !tbaa !5
  %743 = getelementptr inbounds %struct.DState, ptr %742, i32 0, i32 0
  %744 = load ptr, ptr %743, align 8, !tbaa !9
  %745 = getelementptr inbounds %struct.bz_stream, ptr %744, i32 0, i32 3
  %746 = load i32, ptr %745, align 8, !tbaa !45
  %747 = add i32 %746, 1
  store i32 %747, ptr %745, align 8, !tbaa !45
  br label %748

748:                                              ; preds = %741, %698
  br label %668

749:                                              ; preds = %674
  %750 = load i8, ptr %3, align 1, !tbaa !40
  %751 = zext i8 %750 to i32
  %752 = icmp eq i32 %751, 23
  br i1 %752, label %753, label %754

753:                                              ; preds = %749
  br label %4948

754:                                              ; preds = %749
  %755 = load i8, ptr %3, align 1, !tbaa !40
  %756 = zext i8 %755 to i32
  %757 = icmp ne i32 %756, 49
  br i1 %757, label %758, label %759

758:                                              ; preds = %754
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

759:                                              ; preds = %754
  br label %760

760:                                              ; preds = %759, %144
  %761 = load ptr, ptr %2, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.DState, ptr %761, i32 0, i32 1
  store i32 15, ptr %762, align 8, !tbaa !12
  br label %763

763:                                              ; preds = %843, %760
  br label %764

764:                                              ; preds = %763
  %765 = load ptr, ptr %2, align 8, !tbaa !5
  %766 = getelementptr inbounds %struct.DState, ptr %765, i32 0, i32 8
  %767 = load i32, ptr %766, align 4, !tbaa !38
  %768 = icmp sge i32 %767, 8
  br i1 %768, label %769, label %785

769:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  %770 = load ptr, ptr %2, align 8, !tbaa !5
  %771 = getelementptr inbounds %struct.DState, ptr %770, i32 0, i32 7
  %772 = load i32, ptr %771, align 8, !tbaa !39
  %773 = load ptr, ptr %2, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.DState, ptr %773, i32 0, i32 8
  %775 = load i32, ptr %774, align 4, !tbaa !38
  %776 = sub nsw i32 %775, 8
  %777 = lshr i32 %772, %776
  %778 = and i32 %777, 255
  store i32 %778, ptr %37, align 4, !tbaa !37
  %779 = load ptr, ptr %2, align 8, !tbaa !5
  %780 = getelementptr inbounds %struct.DState, ptr %779, i32 0, i32 8
  %781 = load i32, ptr %780, align 4, !tbaa !38
  %782 = sub nsw i32 %781, 8
  store i32 %782, ptr %780, align 4, !tbaa !38
  %783 = load i32, ptr %37, align 4, !tbaa !37
  %784 = trunc i32 %783 to i8
  store i8 %784, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  br label %844

785:                                              ; preds = %764
  %786 = load ptr, ptr %2, align 8, !tbaa !5
  %787 = getelementptr inbounds %struct.DState, ptr %786, i32 0, i32 0
  %788 = load ptr, ptr %787, align 8, !tbaa !9
  %789 = getelementptr inbounds %struct.bz_stream, ptr %788, i32 0, i32 1
  %790 = load i32, ptr %789, align 8, !tbaa !41
  %791 = icmp eq i32 %790, 0
  br i1 %791, label %792, label %793

792:                                              ; preds = %785
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

793:                                              ; preds = %785
  %794 = load ptr, ptr %2, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.DState, ptr %794, i32 0, i32 7
  %796 = load i32, ptr %795, align 8, !tbaa !39
  %797 = shl i32 %796, 8
  %798 = load ptr, ptr %2, align 8, !tbaa !5
  %799 = getelementptr inbounds %struct.DState, ptr %798, i32 0, i32 0
  %800 = load ptr, ptr %799, align 8, !tbaa !9
  %801 = getelementptr inbounds %struct.bz_stream, ptr %800, i32 0, i32 0
  %802 = load ptr, ptr %801, align 8, !tbaa !43
  %803 = load i8, ptr %802, align 1, !tbaa !40
  %804 = zext i8 %803 to i32
  %805 = or i32 %797, %804
  %806 = load ptr, ptr %2, align 8, !tbaa !5
  %807 = getelementptr inbounds %struct.DState, ptr %806, i32 0, i32 7
  store i32 %805, ptr %807, align 8, !tbaa !39
  %808 = load ptr, ptr %2, align 8, !tbaa !5
  %809 = getelementptr inbounds %struct.DState, ptr %808, i32 0, i32 8
  %810 = load i32, ptr %809, align 4, !tbaa !38
  %811 = add nsw i32 %810, 8
  store i32 %811, ptr %809, align 4, !tbaa !38
  %812 = load ptr, ptr %2, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.DState, ptr %812, i32 0, i32 0
  %814 = load ptr, ptr %813, align 8, !tbaa !9
  %815 = getelementptr inbounds %struct.bz_stream, ptr %814, i32 0, i32 0
  %816 = load ptr, ptr %815, align 8, !tbaa !43
  %817 = getelementptr inbounds i8, ptr %816, i32 1
  store ptr %817, ptr %815, align 8, !tbaa !43
  %818 = load ptr, ptr %2, align 8, !tbaa !5
  %819 = getelementptr inbounds %struct.DState, ptr %818, i32 0, i32 0
  %820 = load ptr, ptr %819, align 8, !tbaa !9
  %821 = getelementptr inbounds %struct.bz_stream, ptr %820, i32 0, i32 1
  %822 = load i32, ptr %821, align 8, !tbaa !41
  %823 = add i32 %822, -1
  store i32 %823, ptr %821, align 8, !tbaa !41
  %824 = load ptr, ptr %2, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.DState, ptr %824, i32 0, i32 0
  %826 = load ptr, ptr %825, align 8, !tbaa !9
  %827 = getelementptr inbounds %struct.bz_stream, ptr %826, i32 0, i32 2
  %828 = load i32, ptr %827, align 4, !tbaa !44
  %829 = add i32 %828, 1
  store i32 %829, ptr %827, align 4, !tbaa !44
  %830 = load ptr, ptr %2, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.DState, ptr %830, i32 0, i32 0
  %832 = load ptr, ptr %831, align 8, !tbaa !9
  %833 = getelementptr inbounds %struct.bz_stream, ptr %832, i32 0, i32 2
  %834 = load i32, ptr %833, align 4, !tbaa !44
  %835 = icmp eq i32 %834, 0
  br i1 %835, label %836, label %843

836:                                              ; preds = %793
  %837 = load ptr, ptr %2, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.DState, ptr %837, i32 0, i32 0
  %839 = load ptr, ptr %838, align 8, !tbaa !9
  %840 = getelementptr inbounds %struct.bz_stream, ptr %839, i32 0, i32 3
  %841 = load i32, ptr %840, align 8, !tbaa !45
  %842 = add i32 %841, 1
  store i32 %842, ptr %840, align 8, !tbaa !45
  br label %843

843:                                              ; preds = %836, %793
  br label %763

844:                                              ; preds = %769
  %845 = load i8, ptr %3, align 1, !tbaa !40
  %846 = zext i8 %845 to i32
  %847 = icmp ne i32 %846, 65
  br i1 %847, label %848, label %849

848:                                              ; preds = %844
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

849:                                              ; preds = %844
  br label %850

850:                                              ; preds = %849, %144
  %851 = load ptr, ptr %2, align 8, !tbaa !5
  %852 = getelementptr inbounds %struct.DState, ptr %851, i32 0, i32 1
  store i32 16, ptr %852, align 8, !tbaa !12
  br label %853

853:                                              ; preds = %933, %850
  br label %854

854:                                              ; preds = %853
  %855 = load ptr, ptr %2, align 8, !tbaa !5
  %856 = getelementptr inbounds %struct.DState, ptr %855, i32 0, i32 8
  %857 = load i32, ptr %856, align 4, !tbaa !38
  %858 = icmp sge i32 %857, 8
  br i1 %858, label %859, label %875

859:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #3
  %860 = load ptr, ptr %2, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.DState, ptr %860, i32 0, i32 7
  %862 = load i32, ptr %861, align 8, !tbaa !39
  %863 = load ptr, ptr %2, align 8, !tbaa !5
  %864 = getelementptr inbounds %struct.DState, ptr %863, i32 0, i32 8
  %865 = load i32, ptr %864, align 4, !tbaa !38
  %866 = sub nsw i32 %865, 8
  %867 = lshr i32 %862, %866
  %868 = and i32 %867, 255
  store i32 %868, ptr %38, align 4, !tbaa !37
  %869 = load ptr, ptr %2, align 8, !tbaa !5
  %870 = getelementptr inbounds %struct.DState, ptr %869, i32 0, i32 8
  %871 = load i32, ptr %870, align 4, !tbaa !38
  %872 = sub nsw i32 %871, 8
  store i32 %872, ptr %870, align 4, !tbaa !38
  %873 = load i32, ptr %38, align 4, !tbaa !37
  %874 = trunc i32 %873 to i8
  store i8 %874, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #3
  br label %934

875:                                              ; preds = %854
  %876 = load ptr, ptr %2, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.DState, ptr %876, i32 0, i32 0
  %878 = load ptr, ptr %877, align 8, !tbaa !9
  %879 = getelementptr inbounds %struct.bz_stream, ptr %878, i32 0, i32 1
  %880 = load i32, ptr %879, align 8, !tbaa !41
  %881 = icmp eq i32 %880, 0
  br i1 %881, label %882, label %883

882:                                              ; preds = %875
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

883:                                              ; preds = %875
  %884 = load ptr, ptr %2, align 8, !tbaa !5
  %885 = getelementptr inbounds %struct.DState, ptr %884, i32 0, i32 7
  %886 = load i32, ptr %885, align 8, !tbaa !39
  %887 = shl i32 %886, 8
  %888 = load ptr, ptr %2, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.DState, ptr %888, i32 0, i32 0
  %890 = load ptr, ptr %889, align 8, !tbaa !9
  %891 = getelementptr inbounds %struct.bz_stream, ptr %890, i32 0, i32 0
  %892 = load ptr, ptr %891, align 8, !tbaa !43
  %893 = load i8, ptr %892, align 1, !tbaa !40
  %894 = zext i8 %893 to i32
  %895 = or i32 %887, %894
  %896 = load ptr, ptr %2, align 8, !tbaa !5
  %897 = getelementptr inbounds %struct.DState, ptr %896, i32 0, i32 7
  store i32 %895, ptr %897, align 8, !tbaa !39
  %898 = load ptr, ptr %2, align 8, !tbaa !5
  %899 = getelementptr inbounds %struct.DState, ptr %898, i32 0, i32 8
  %900 = load i32, ptr %899, align 4, !tbaa !38
  %901 = add nsw i32 %900, 8
  store i32 %901, ptr %899, align 4, !tbaa !38
  %902 = load ptr, ptr %2, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.DState, ptr %902, i32 0, i32 0
  %904 = load ptr, ptr %903, align 8, !tbaa !9
  %905 = getelementptr inbounds %struct.bz_stream, ptr %904, i32 0, i32 0
  %906 = load ptr, ptr %905, align 8, !tbaa !43
  %907 = getelementptr inbounds i8, ptr %906, i32 1
  store ptr %907, ptr %905, align 8, !tbaa !43
  %908 = load ptr, ptr %2, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.DState, ptr %908, i32 0, i32 0
  %910 = load ptr, ptr %909, align 8, !tbaa !9
  %911 = getelementptr inbounds %struct.bz_stream, ptr %910, i32 0, i32 1
  %912 = load i32, ptr %911, align 8, !tbaa !41
  %913 = add i32 %912, -1
  store i32 %913, ptr %911, align 8, !tbaa !41
  %914 = load ptr, ptr %2, align 8, !tbaa !5
  %915 = getelementptr inbounds %struct.DState, ptr %914, i32 0, i32 0
  %916 = load ptr, ptr %915, align 8, !tbaa !9
  %917 = getelementptr inbounds %struct.bz_stream, ptr %916, i32 0, i32 2
  %918 = load i32, ptr %917, align 4, !tbaa !44
  %919 = add i32 %918, 1
  store i32 %919, ptr %917, align 4, !tbaa !44
  %920 = load ptr, ptr %2, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.DState, ptr %920, i32 0, i32 0
  %922 = load ptr, ptr %921, align 8, !tbaa !9
  %923 = getelementptr inbounds %struct.bz_stream, ptr %922, i32 0, i32 2
  %924 = load i32, ptr %923, align 4, !tbaa !44
  %925 = icmp eq i32 %924, 0
  br i1 %925, label %926, label %933

926:                                              ; preds = %883
  %927 = load ptr, ptr %2, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.DState, ptr %927, i32 0, i32 0
  %929 = load ptr, ptr %928, align 8, !tbaa !9
  %930 = getelementptr inbounds %struct.bz_stream, ptr %929, i32 0, i32 3
  %931 = load i32, ptr %930, align 8, !tbaa !45
  %932 = add i32 %931, 1
  store i32 %932, ptr %930, align 8, !tbaa !45
  br label %933

933:                                              ; preds = %926, %883
  br label %853

934:                                              ; preds = %859
  %935 = load i8, ptr %3, align 1, !tbaa !40
  %936 = zext i8 %935 to i32
  %937 = icmp ne i32 %936, 89
  br i1 %937, label %938, label %939

938:                                              ; preds = %934
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

939:                                              ; preds = %934
  br label %940

940:                                              ; preds = %939, %144
  %941 = load ptr, ptr %2, align 8, !tbaa !5
  %942 = getelementptr inbounds %struct.DState, ptr %941, i32 0, i32 1
  store i32 17, ptr %942, align 8, !tbaa !12
  br label %943

943:                                              ; preds = %1023, %940
  br label %944

944:                                              ; preds = %943
  %945 = load ptr, ptr %2, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.DState, ptr %945, i32 0, i32 8
  %947 = load i32, ptr %946, align 4, !tbaa !38
  %948 = icmp sge i32 %947, 8
  br i1 %948, label %949, label %965

949:                                              ; preds = %944
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  %950 = load ptr, ptr %2, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.DState, ptr %950, i32 0, i32 7
  %952 = load i32, ptr %951, align 8, !tbaa !39
  %953 = load ptr, ptr %2, align 8, !tbaa !5
  %954 = getelementptr inbounds %struct.DState, ptr %953, i32 0, i32 8
  %955 = load i32, ptr %954, align 4, !tbaa !38
  %956 = sub nsw i32 %955, 8
  %957 = lshr i32 %952, %956
  %958 = and i32 %957, 255
  store i32 %958, ptr %39, align 4, !tbaa !37
  %959 = load ptr, ptr %2, align 8, !tbaa !5
  %960 = getelementptr inbounds %struct.DState, ptr %959, i32 0, i32 8
  %961 = load i32, ptr %960, align 4, !tbaa !38
  %962 = sub nsw i32 %961, 8
  store i32 %962, ptr %960, align 4, !tbaa !38
  %963 = load i32, ptr %39, align 4, !tbaa !37
  %964 = trunc i32 %963 to i8
  store i8 %964, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  br label %1024

965:                                              ; preds = %944
  %966 = load ptr, ptr %2, align 8, !tbaa !5
  %967 = getelementptr inbounds %struct.DState, ptr %966, i32 0, i32 0
  %968 = load ptr, ptr %967, align 8, !tbaa !9
  %969 = getelementptr inbounds %struct.bz_stream, ptr %968, i32 0, i32 1
  %970 = load i32, ptr %969, align 8, !tbaa !41
  %971 = icmp eq i32 %970, 0
  br i1 %971, label %972, label %973

972:                                              ; preds = %965
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

973:                                              ; preds = %965
  %974 = load ptr, ptr %2, align 8, !tbaa !5
  %975 = getelementptr inbounds %struct.DState, ptr %974, i32 0, i32 7
  %976 = load i32, ptr %975, align 8, !tbaa !39
  %977 = shl i32 %976, 8
  %978 = load ptr, ptr %2, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.DState, ptr %978, i32 0, i32 0
  %980 = load ptr, ptr %979, align 8, !tbaa !9
  %981 = getelementptr inbounds %struct.bz_stream, ptr %980, i32 0, i32 0
  %982 = load ptr, ptr %981, align 8, !tbaa !43
  %983 = load i8, ptr %982, align 1, !tbaa !40
  %984 = zext i8 %983 to i32
  %985 = or i32 %977, %984
  %986 = load ptr, ptr %2, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.DState, ptr %986, i32 0, i32 7
  store i32 %985, ptr %987, align 8, !tbaa !39
  %988 = load ptr, ptr %2, align 8, !tbaa !5
  %989 = getelementptr inbounds %struct.DState, ptr %988, i32 0, i32 8
  %990 = load i32, ptr %989, align 4, !tbaa !38
  %991 = add nsw i32 %990, 8
  store i32 %991, ptr %989, align 4, !tbaa !38
  %992 = load ptr, ptr %2, align 8, !tbaa !5
  %993 = getelementptr inbounds %struct.DState, ptr %992, i32 0, i32 0
  %994 = load ptr, ptr %993, align 8, !tbaa !9
  %995 = getelementptr inbounds %struct.bz_stream, ptr %994, i32 0, i32 0
  %996 = load ptr, ptr %995, align 8, !tbaa !43
  %997 = getelementptr inbounds i8, ptr %996, i32 1
  store ptr %997, ptr %995, align 8, !tbaa !43
  %998 = load ptr, ptr %2, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.DState, ptr %998, i32 0, i32 0
  %1000 = load ptr, ptr %999, align 8, !tbaa !9
  %1001 = getelementptr inbounds %struct.bz_stream, ptr %1000, i32 0, i32 1
  %1002 = load i32, ptr %1001, align 8, !tbaa !41
  %1003 = add i32 %1002, -1
  store i32 %1003, ptr %1001, align 8, !tbaa !41
  %1004 = load ptr, ptr %2, align 8, !tbaa !5
  %1005 = getelementptr inbounds %struct.DState, ptr %1004, i32 0, i32 0
  %1006 = load ptr, ptr %1005, align 8, !tbaa !9
  %1007 = getelementptr inbounds %struct.bz_stream, ptr %1006, i32 0, i32 2
  %1008 = load i32, ptr %1007, align 4, !tbaa !44
  %1009 = add i32 %1008, 1
  store i32 %1009, ptr %1007, align 4, !tbaa !44
  %1010 = load ptr, ptr %2, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.DState, ptr %1010, i32 0, i32 0
  %1012 = load ptr, ptr %1011, align 8, !tbaa !9
  %1013 = getelementptr inbounds %struct.bz_stream, ptr %1012, i32 0, i32 2
  %1014 = load i32, ptr %1013, align 4, !tbaa !44
  %1015 = icmp eq i32 %1014, 0
  br i1 %1015, label %1016, label %1023

1016:                                             ; preds = %973
  %1017 = load ptr, ptr %2, align 8, !tbaa !5
  %1018 = getelementptr inbounds %struct.DState, ptr %1017, i32 0, i32 0
  %1019 = load ptr, ptr %1018, align 8, !tbaa !9
  %1020 = getelementptr inbounds %struct.bz_stream, ptr %1019, i32 0, i32 3
  %1021 = load i32, ptr %1020, align 8, !tbaa !45
  %1022 = add i32 %1021, 1
  store i32 %1022, ptr %1020, align 8, !tbaa !45
  br label %1023

1023:                                             ; preds = %1016, %973
  br label %943

1024:                                             ; preds = %949
  %1025 = load i8, ptr %3, align 1, !tbaa !40
  %1026 = zext i8 %1025 to i32
  %1027 = icmp ne i32 %1026, 38
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1024
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

1029:                                             ; preds = %1024
  br label %1030

1030:                                             ; preds = %1029, %144
  %1031 = load ptr, ptr %2, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.DState, ptr %1031, i32 0, i32 1
  store i32 18, ptr %1032, align 8, !tbaa !12
  br label %1033

1033:                                             ; preds = %1113, %1030
  br label %1034

1034:                                             ; preds = %1033
  %1035 = load ptr, ptr %2, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.DState, ptr %1035, i32 0, i32 8
  %1037 = load i32, ptr %1036, align 4, !tbaa !38
  %1038 = icmp sge i32 %1037, 8
  br i1 %1038, label %1039, label %1055

1039:                                             ; preds = %1034
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #3
  %1040 = load ptr, ptr %2, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.DState, ptr %1040, i32 0, i32 7
  %1042 = load i32, ptr %1041, align 8, !tbaa !39
  %1043 = load ptr, ptr %2, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.DState, ptr %1043, i32 0, i32 8
  %1045 = load i32, ptr %1044, align 4, !tbaa !38
  %1046 = sub nsw i32 %1045, 8
  %1047 = lshr i32 %1042, %1046
  %1048 = and i32 %1047, 255
  store i32 %1048, ptr %40, align 4, !tbaa !37
  %1049 = load ptr, ptr %2, align 8, !tbaa !5
  %1050 = getelementptr inbounds %struct.DState, ptr %1049, i32 0, i32 8
  %1051 = load i32, ptr %1050, align 4, !tbaa !38
  %1052 = sub nsw i32 %1051, 8
  store i32 %1052, ptr %1050, align 4, !tbaa !38
  %1053 = load i32, ptr %40, align 4, !tbaa !37
  %1054 = trunc i32 %1053 to i8
  store i8 %1054, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #3
  br label %1114

1055:                                             ; preds = %1034
  %1056 = load ptr, ptr %2, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.DState, ptr %1056, i32 0, i32 0
  %1058 = load ptr, ptr %1057, align 8, !tbaa !9
  %1059 = getelementptr inbounds %struct.bz_stream, ptr %1058, i32 0, i32 1
  %1060 = load i32, ptr %1059, align 8, !tbaa !41
  %1061 = icmp eq i32 %1060, 0
  br i1 %1061, label %1062, label %1063

1062:                                             ; preds = %1055
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1063:                                             ; preds = %1055
  %1064 = load ptr, ptr %2, align 8, !tbaa !5
  %1065 = getelementptr inbounds %struct.DState, ptr %1064, i32 0, i32 7
  %1066 = load i32, ptr %1065, align 8, !tbaa !39
  %1067 = shl i32 %1066, 8
  %1068 = load ptr, ptr %2, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.DState, ptr %1068, i32 0, i32 0
  %1070 = load ptr, ptr %1069, align 8, !tbaa !9
  %1071 = getelementptr inbounds %struct.bz_stream, ptr %1070, i32 0, i32 0
  %1072 = load ptr, ptr %1071, align 8, !tbaa !43
  %1073 = load i8, ptr %1072, align 1, !tbaa !40
  %1074 = zext i8 %1073 to i32
  %1075 = or i32 %1067, %1074
  %1076 = load ptr, ptr %2, align 8, !tbaa !5
  %1077 = getelementptr inbounds %struct.DState, ptr %1076, i32 0, i32 7
  store i32 %1075, ptr %1077, align 8, !tbaa !39
  %1078 = load ptr, ptr %2, align 8, !tbaa !5
  %1079 = getelementptr inbounds %struct.DState, ptr %1078, i32 0, i32 8
  %1080 = load i32, ptr %1079, align 4, !tbaa !38
  %1081 = add nsw i32 %1080, 8
  store i32 %1081, ptr %1079, align 4, !tbaa !38
  %1082 = load ptr, ptr %2, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.DState, ptr %1082, i32 0, i32 0
  %1084 = load ptr, ptr %1083, align 8, !tbaa !9
  %1085 = getelementptr inbounds %struct.bz_stream, ptr %1084, i32 0, i32 0
  %1086 = load ptr, ptr %1085, align 8, !tbaa !43
  %1087 = getelementptr inbounds i8, ptr %1086, i32 1
  store ptr %1087, ptr %1085, align 8, !tbaa !43
  %1088 = load ptr, ptr %2, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.DState, ptr %1088, i32 0, i32 0
  %1090 = load ptr, ptr %1089, align 8, !tbaa !9
  %1091 = getelementptr inbounds %struct.bz_stream, ptr %1090, i32 0, i32 1
  %1092 = load i32, ptr %1091, align 8, !tbaa !41
  %1093 = add i32 %1092, -1
  store i32 %1093, ptr %1091, align 8, !tbaa !41
  %1094 = load ptr, ptr %2, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.DState, ptr %1094, i32 0, i32 0
  %1096 = load ptr, ptr %1095, align 8, !tbaa !9
  %1097 = getelementptr inbounds %struct.bz_stream, ptr %1096, i32 0, i32 2
  %1098 = load i32, ptr %1097, align 4, !tbaa !44
  %1099 = add i32 %1098, 1
  store i32 %1099, ptr %1097, align 4, !tbaa !44
  %1100 = load ptr, ptr %2, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.DState, ptr %1100, i32 0, i32 0
  %1102 = load ptr, ptr %1101, align 8, !tbaa !9
  %1103 = getelementptr inbounds %struct.bz_stream, ptr %1102, i32 0, i32 2
  %1104 = load i32, ptr %1103, align 4, !tbaa !44
  %1105 = icmp eq i32 %1104, 0
  br i1 %1105, label %1106, label %1113

1106:                                             ; preds = %1063
  %1107 = load ptr, ptr %2, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.DState, ptr %1107, i32 0, i32 0
  %1109 = load ptr, ptr %1108, align 8, !tbaa !9
  %1110 = getelementptr inbounds %struct.bz_stream, ptr %1109, i32 0, i32 3
  %1111 = load i32, ptr %1110, align 8, !tbaa !45
  %1112 = add i32 %1111, 1
  store i32 %1112, ptr %1110, align 8, !tbaa !45
  br label %1113

1113:                                             ; preds = %1106, %1063
  br label %1033

1114:                                             ; preds = %1039
  %1115 = load i8, ptr %3, align 1, !tbaa !40
  %1116 = zext i8 %1115 to i32
  %1117 = icmp ne i32 %1116, 83
  br i1 %1117, label %1118, label %1119

1118:                                             ; preds = %1114
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

1119:                                             ; preds = %1114
  br label %1120

1120:                                             ; preds = %1119, %144
  %1121 = load ptr, ptr %2, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.DState, ptr %1121, i32 0, i32 1
  store i32 19, ptr %1122, align 8, !tbaa !12
  br label %1123

1123:                                             ; preds = %1203, %1120
  br label %1124

1124:                                             ; preds = %1123
  %1125 = load ptr, ptr %2, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.DState, ptr %1125, i32 0, i32 8
  %1127 = load i32, ptr %1126, align 4, !tbaa !38
  %1128 = icmp sge i32 %1127, 8
  br i1 %1128, label %1129, label %1145

1129:                                             ; preds = %1124
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #3
  %1130 = load ptr, ptr %2, align 8, !tbaa !5
  %1131 = getelementptr inbounds %struct.DState, ptr %1130, i32 0, i32 7
  %1132 = load i32, ptr %1131, align 8, !tbaa !39
  %1133 = load ptr, ptr %2, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.DState, ptr %1133, i32 0, i32 8
  %1135 = load i32, ptr %1134, align 4, !tbaa !38
  %1136 = sub nsw i32 %1135, 8
  %1137 = lshr i32 %1132, %1136
  %1138 = and i32 %1137, 255
  store i32 %1138, ptr %41, align 4, !tbaa !37
  %1139 = load ptr, ptr %2, align 8, !tbaa !5
  %1140 = getelementptr inbounds %struct.DState, ptr %1139, i32 0, i32 8
  %1141 = load i32, ptr %1140, align 4, !tbaa !38
  %1142 = sub nsw i32 %1141, 8
  store i32 %1142, ptr %1140, align 4, !tbaa !38
  %1143 = load i32, ptr %41, align 4, !tbaa !37
  %1144 = trunc i32 %1143 to i8
  store i8 %1144, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #3
  br label %1204

1145:                                             ; preds = %1124
  %1146 = load ptr, ptr %2, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.DState, ptr %1146, i32 0, i32 0
  %1148 = load ptr, ptr %1147, align 8, !tbaa !9
  %1149 = getelementptr inbounds %struct.bz_stream, ptr %1148, i32 0, i32 1
  %1150 = load i32, ptr %1149, align 8, !tbaa !41
  %1151 = icmp eq i32 %1150, 0
  br i1 %1151, label %1152, label %1153

1152:                                             ; preds = %1145
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1153:                                             ; preds = %1145
  %1154 = load ptr, ptr %2, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.DState, ptr %1154, i32 0, i32 7
  %1156 = load i32, ptr %1155, align 8, !tbaa !39
  %1157 = shl i32 %1156, 8
  %1158 = load ptr, ptr %2, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.DState, ptr %1158, i32 0, i32 0
  %1160 = load ptr, ptr %1159, align 8, !tbaa !9
  %1161 = getelementptr inbounds %struct.bz_stream, ptr %1160, i32 0, i32 0
  %1162 = load ptr, ptr %1161, align 8, !tbaa !43
  %1163 = load i8, ptr %1162, align 1, !tbaa !40
  %1164 = zext i8 %1163 to i32
  %1165 = or i32 %1157, %1164
  %1166 = load ptr, ptr %2, align 8, !tbaa !5
  %1167 = getelementptr inbounds %struct.DState, ptr %1166, i32 0, i32 7
  store i32 %1165, ptr %1167, align 8, !tbaa !39
  %1168 = load ptr, ptr %2, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.DState, ptr %1168, i32 0, i32 8
  %1170 = load i32, ptr %1169, align 4, !tbaa !38
  %1171 = add nsw i32 %1170, 8
  store i32 %1171, ptr %1169, align 4, !tbaa !38
  %1172 = load ptr, ptr %2, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.DState, ptr %1172, i32 0, i32 0
  %1174 = load ptr, ptr %1173, align 8, !tbaa !9
  %1175 = getelementptr inbounds %struct.bz_stream, ptr %1174, i32 0, i32 0
  %1176 = load ptr, ptr %1175, align 8, !tbaa !43
  %1177 = getelementptr inbounds i8, ptr %1176, i32 1
  store ptr %1177, ptr %1175, align 8, !tbaa !43
  %1178 = load ptr, ptr %2, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.DState, ptr %1178, i32 0, i32 0
  %1180 = load ptr, ptr %1179, align 8, !tbaa !9
  %1181 = getelementptr inbounds %struct.bz_stream, ptr %1180, i32 0, i32 1
  %1182 = load i32, ptr %1181, align 8, !tbaa !41
  %1183 = add i32 %1182, -1
  store i32 %1183, ptr %1181, align 8, !tbaa !41
  %1184 = load ptr, ptr %2, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.DState, ptr %1184, i32 0, i32 0
  %1186 = load ptr, ptr %1185, align 8, !tbaa !9
  %1187 = getelementptr inbounds %struct.bz_stream, ptr %1186, i32 0, i32 2
  %1188 = load i32, ptr %1187, align 4, !tbaa !44
  %1189 = add i32 %1188, 1
  store i32 %1189, ptr %1187, align 4, !tbaa !44
  %1190 = load ptr, ptr %2, align 8, !tbaa !5
  %1191 = getelementptr inbounds %struct.DState, ptr %1190, i32 0, i32 0
  %1192 = load ptr, ptr %1191, align 8, !tbaa !9
  %1193 = getelementptr inbounds %struct.bz_stream, ptr %1192, i32 0, i32 2
  %1194 = load i32, ptr %1193, align 4, !tbaa !44
  %1195 = icmp eq i32 %1194, 0
  br i1 %1195, label %1196, label %1203

1196:                                             ; preds = %1153
  %1197 = load ptr, ptr %2, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.DState, ptr %1197, i32 0, i32 0
  %1199 = load ptr, ptr %1198, align 8, !tbaa !9
  %1200 = getelementptr inbounds %struct.bz_stream, ptr %1199, i32 0, i32 3
  %1201 = load i32, ptr %1200, align 8, !tbaa !45
  %1202 = add i32 %1201, 1
  store i32 %1202, ptr %1200, align 8, !tbaa !45
  br label %1203

1203:                                             ; preds = %1196, %1153
  br label %1123

1204:                                             ; preds = %1129
  %1205 = load i8, ptr %3, align 1, !tbaa !40
  %1206 = zext i8 %1205 to i32
  %1207 = icmp ne i32 %1206, 89
  br i1 %1207, label %1208, label %1209

1208:                                             ; preds = %1204
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

1209:                                             ; preds = %1204
  %1210 = load ptr, ptr %2, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.DState, ptr %1210, i32 0, i32 11
  %1212 = load i32, ptr %1211, align 8, !tbaa !53
  %1213 = add nsw i32 %1212, 1
  store i32 %1213, ptr %1211, align 8, !tbaa !53
  %1214 = load ptr, ptr %2, align 8, !tbaa !5
  %1215 = getelementptr inbounds %struct.DState, ptr %1214, i32 0, i32 12
  %1216 = load i32, ptr %1215, align 4, !tbaa !54
  %1217 = icmp sge i32 %1216, 2
  br i1 %1217, label %1218, label %1219

1218:                                             ; preds = %1209
  br label %1219

1219:                                             ; preds = %1218, %1209
  %1220 = load ptr, ptr %2, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.DState, ptr %1220, i32 0, i32 23
  store i32 0, ptr %1221, align 8, !tbaa !55
  br label %1222

1222:                                             ; preds = %1219, %144
  %1223 = load ptr, ptr %2, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.DState, ptr %1223, i32 0, i32 1
  store i32 20, ptr %1224, align 8, !tbaa !12
  br label %1225

1225:                                             ; preds = %1305, %1222
  br label %1226

1226:                                             ; preds = %1225
  %1227 = load ptr, ptr %2, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.DState, ptr %1227, i32 0, i32 8
  %1229 = load i32, ptr %1228, align 4, !tbaa !38
  %1230 = icmp sge i32 %1229, 8
  br i1 %1230, label %1231, label %1247

1231:                                             ; preds = %1226
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #3
  %1232 = load ptr, ptr %2, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.DState, ptr %1232, i32 0, i32 7
  %1234 = load i32, ptr %1233, align 8, !tbaa !39
  %1235 = load ptr, ptr %2, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.DState, ptr %1235, i32 0, i32 8
  %1237 = load i32, ptr %1236, align 4, !tbaa !38
  %1238 = sub nsw i32 %1237, 8
  %1239 = lshr i32 %1234, %1238
  %1240 = and i32 %1239, 255
  store i32 %1240, ptr %42, align 4, !tbaa !37
  %1241 = load ptr, ptr %2, align 8, !tbaa !5
  %1242 = getelementptr inbounds %struct.DState, ptr %1241, i32 0, i32 8
  %1243 = load i32, ptr %1242, align 4, !tbaa !38
  %1244 = sub nsw i32 %1243, 8
  store i32 %1244, ptr %1242, align 4, !tbaa !38
  %1245 = load i32, ptr %42, align 4, !tbaa !37
  %1246 = trunc i32 %1245 to i8
  store i8 %1246, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  br label %1306

1247:                                             ; preds = %1226
  %1248 = load ptr, ptr %2, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.DState, ptr %1248, i32 0, i32 0
  %1250 = load ptr, ptr %1249, align 8, !tbaa !9
  %1251 = getelementptr inbounds %struct.bz_stream, ptr %1250, i32 0, i32 1
  %1252 = load i32, ptr %1251, align 8, !tbaa !41
  %1253 = icmp eq i32 %1252, 0
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1247
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1255:                                             ; preds = %1247
  %1256 = load ptr, ptr %2, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.DState, ptr %1256, i32 0, i32 7
  %1258 = load i32, ptr %1257, align 8, !tbaa !39
  %1259 = shl i32 %1258, 8
  %1260 = load ptr, ptr %2, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.DState, ptr %1260, i32 0, i32 0
  %1262 = load ptr, ptr %1261, align 8, !tbaa !9
  %1263 = getelementptr inbounds %struct.bz_stream, ptr %1262, i32 0, i32 0
  %1264 = load ptr, ptr %1263, align 8, !tbaa !43
  %1265 = load i8, ptr %1264, align 1, !tbaa !40
  %1266 = zext i8 %1265 to i32
  %1267 = or i32 %1259, %1266
  %1268 = load ptr, ptr %2, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.DState, ptr %1268, i32 0, i32 7
  store i32 %1267, ptr %1269, align 8, !tbaa !39
  %1270 = load ptr, ptr %2, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.DState, ptr %1270, i32 0, i32 8
  %1272 = load i32, ptr %1271, align 4, !tbaa !38
  %1273 = add nsw i32 %1272, 8
  store i32 %1273, ptr %1271, align 4, !tbaa !38
  %1274 = load ptr, ptr %2, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.DState, ptr %1274, i32 0, i32 0
  %1276 = load ptr, ptr %1275, align 8, !tbaa !9
  %1277 = getelementptr inbounds %struct.bz_stream, ptr %1276, i32 0, i32 0
  %1278 = load ptr, ptr %1277, align 8, !tbaa !43
  %1279 = getelementptr inbounds i8, ptr %1278, i32 1
  store ptr %1279, ptr %1277, align 8, !tbaa !43
  %1280 = load ptr, ptr %2, align 8, !tbaa !5
  %1281 = getelementptr inbounds %struct.DState, ptr %1280, i32 0, i32 0
  %1282 = load ptr, ptr %1281, align 8, !tbaa !9
  %1283 = getelementptr inbounds %struct.bz_stream, ptr %1282, i32 0, i32 1
  %1284 = load i32, ptr %1283, align 8, !tbaa !41
  %1285 = add i32 %1284, -1
  store i32 %1285, ptr %1283, align 8, !tbaa !41
  %1286 = load ptr, ptr %2, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.DState, ptr %1286, i32 0, i32 0
  %1288 = load ptr, ptr %1287, align 8, !tbaa !9
  %1289 = getelementptr inbounds %struct.bz_stream, ptr %1288, i32 0, i32 2
  %1290 = load i32, ptr %1289, align 4, !tbaa !44
  %1291 = add i32 %1290, 1
  store i32 %1291, ptr %1289, align 4, !tbaa !44
  %1292 = load ptr, ptr %2, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.DState, ptr %1292, i32 0, i32 0
  %1294 = load ptr, ptr %1293, align 8, !tbaa !9
  %1295 = getelementptr inbounds %struct.bz_stream, ptr %1294, i32 0, i32 2
  %1296 = load i32, ptr %1295, align 4, !tbaa !44
  %1297 = icmp eq i32 %1296, 0
  br i1 %1297, label %1298, label %1305

1298:                                             ; preds = %1255
  %1299 = load ptr, ptr %2, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.DState, ptr %1299, i32 0, i32 0
  %1301 = load ptr, ptr %1300, align 8, !tbaa !9
  %1302 = getelementptr inbounds %struct.bz_stream, ptr %1301, i32 0, i32 3
  %1303 = load i32, ptr %1302, align 8, !tbaa !45
  %1304 = add i32 %1303, 1
  store i32 %1304, ptr %1302, align 8, !tbaa !45
  br label %1305

1305:                                             ; preds = %1298, %1255
  br label %1225

1306:                                             ; preds = %1231
  %1307 = load ptr, ptr %2, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.DState, ptr %1307, i32 0, i32 23
  %1309 = load i32, ptr %1308, align 8, !tbaa !55
  %1310 = shl i32 %1309, 8
  %1311 = load i8, ptr %3, align 1, !tbaa !40
  %1312 = zext i8 %1311 to i32
  %1313 = or i32 %1310, %1312
  %1314 = load ptr, ptr %2, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.DState, ptr %1314, i32 0, i32 23
  store i32 %1313, ptr %1315, align 8, !tbaa !55
  br label %1316

1316:                                             ; preds = %1306, %144
  %1317 = load ptr, ptr %2, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.DState, ptr %1317, i32 0, i32 1
  store i32 21, ptr %1318, align 8, !tbaa !12
  br label %1319

1319:                                             ; preds = %1399, %1316
  br label %1320

1320:                                             ; preds = %1319
  %1321 = load ptr, ptr %2, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.DState, ptr %1321, i32 0, i32 8
  %1323 = load i32, ptr %1322, align 4, !tbaa !38
  %1324 = icmp sge i32 %1323, 8
  br i1 %1324, label %1325, label %1341

1325:                                             ; preds = %1320
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #3
  %1326 = load ptr, ptr %2, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.DState, ptr %1326, i32 0, i32 7
  %1328 = load i32, ptr %1327, align 8, !tbaa !39
  %1329 = load ptr, ptr %2, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.DState, ptr %1329, i32 0, i32 8
  %1331 = load i32, ptr %1330, align 4, !tbaa !38
  %1332 = sub nsw i32 %1331, 8
  %1333 = lshr i32 %1328, %1332
  %1334 = and i32 %1333, 255
  store i32 %1334, ptr %43, align 4, !tbaa !37
  %1335 = load ptr, ptr %2, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.DState, ptr %1335, i32 0, i32 8
  %1337 = load i32, ptr %1336, align 4, !tbaa !38
  %1338 = sub nsw i32 %1337, 8
  store i32 %1338, ptr %1336, align 4, !tbaa !38
  %1339 = load i32, ptr %43, align 4, !tbaa !37
  %1340 = trunc i32 %1339 to i8
  store i8 %1340, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  br label %1400

1341:                                             ; preds = %1320
  %1342 = load ptr, ptr %2, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.DState, ptr %1342, i32 0, i32 0
  %1344 = load ptr, ptr %1343, align 8, !tbaa !9
  %1345 = getelementptr inbounds %struct.bz_stream, ptr %1344, i32 0, i32 1
  %1346 = load i32, ptr %1345, align 8, !tbaa !41
  %1347 = icmp eq i32 %1346, 0
  br i1 %1347, label %1348, label %1349

1348:                                             ; preds = %1341
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1349:                                             ; preds = %1341
  %1350 = load ptr, ptr %2, align 8, !tbaa !5
  %1351 = getelementptr inbounds %struct.DState, ptr %1350, i32 0, i32 7
  %1352 = load i32, ptr %1351, align 8, !tbaa !39
  %1353 = shl i32 %1352, 8
  %1354 = load ptr, ptr %2, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.DState, ptr %1354, i32 0, i32 0
  %1356 = load ptr, ptr %1355, align 8, !tbaa !9
  %1357 = getelementptr inbounds %struct.bz_stream, ptr %1356, i32 0, i32 0
  %1358 = load ptr, ptr %1357, align 8, !tbaa !43
  %1359 = load i8, ptr %1358, align 1, !tbaa !40
  %1360 = zext i8 %1359 to i32
  %1361 = or i32 %1353, %1360
  %1362 = load ptr, ptr %2, align 8, !tbaa !5
  %1363 = getelementptr inbounds %struct.DState, ptr %1362, i32 0, i32 7
  store i32 %1361, ptr %1363, align 8, !tbaa !39
  %1364 = load ptr, ptr %2, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.DState, ptr %1364, i32 0, i32 8
  %1366 = load i32, ptr %1365, align 4, !tbaa !38
  %1367 = add nsw i32 %1366, 8
  store i32 %1367, ptr %1365, align 4, !tbaa !38
  %1368 = load ptr, ptr %2, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.DState, ptr %1368, i32 0, i32 0
  %1370 = load ptr, ptr %1369, align 8, !tbaa !9
  %1371 = getelementptr inbounds %struct.bz_stream, ptr %1370, i32 0, i32 0
  %1372 = load ptr, ptr %1371, align 8, !tbaa !43
  %1373 = getelementptr inbounds i8, ptr %1372, i32 1
  store ptr %1373, ptr %1371, align 8, !tbaa !43
  %1374 = load ptr, ptr %2, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.DState, ptr %1374, i32 0, i32 0
  %1376 = load ptr, ptr %1375, align 8, !tbaa !9
  %1377 = getelementptr inbounds %struct.bz_stream, ptr %1376, i32 0, i32 1
  %1378 = load i32, ptr %1377, align 8, !tbaa !41
  %1379 = add i32 %1378, -1
  store i32 %1379, ptr %1377, align 8, !tbaa !41
  %1380 = load ptr, ptr %2, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.DState, ptr %1380, i32 0, i32 0
  %1382 = load ptr, ptr %1381, align 8, !tbaa !9
  %1383 = getelementptr inbounds %struct.bz_stream, ptr %1382, i32 0, i32 2
  %1384 = load i32, ptr %1383, align 4, !tbaa !44
  %1385 = add i32 %1384, 1
  store i32 %1385, ptr %1383, align 4, !tbaa !44
  %1386 = load ptr, ptr %2, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.DState, ptr %1386, i32 0, i32 0
  %1388 = load ptr, ptr %1387, align 8, !tbaa !9
  %1389 = getelementptr inbounds %struct.bz_stream, ptr %1388, i32 0, i32 2
  %1390 = load i32, ptr %1389, align 4, !tbaa !44
  %1391 = icmp eq i32 %1390, 0
  br i1 %1391, label %1392, label %1399

1392:                                             ; preds = %1349
  %1393 = load ptr, ptr %2, align 8, !tbaa !5
  %1394 = getelementptr inbounds %struct.DState, ptr %1393, i32 0, i32 0
  %1395 = load ptr, ptr %1394, align 8, !tbaa !9
  %1396 = getelementptr inbounds %struct.bz_stream, ptr %1395, i32 0, i32 3
  %1397 = load i32, ptr %1396, align 8, !tbaa !45
  %1398 = add i32 %1397, 1
  store i32 %1398, ptr %1396, align 8, !tbaa !45
  br label %1399

1399:                                             ; preds = %1392, %1349
  br label %1319

1400:                                             ; preds = %1325
  %1401 = load ptr, ptr %2, align 8, !tbaa !5
  %1402 = getelementptr inbounds %struct.DState, ptr %1401, i32 0, i32 23
  %1403 = load i32, ptr %1402, align 8, !tbaa !55
  %1404 = shl i32 %1403, 8
  %1405 = load i8, ptr %3, align 1, !tbaa !40
  %1406 = zext i8 %1405 to i32
  %1407 = or i32 %1404, %1406
  %1408 = load ptr, ptr %2, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.DState, ptr %1408, i32 0, i32 23
  store i32 %1407, ptr %1409, align 8, !tbaa !55
  br label %1410

1410:                                             ; preds = %1400, %144
  %1411 = load ptr, ptr %2, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.DState, ptr %1411, i32 0, i32 1
  store i32 22, ptr %1412, align 8, !tbaa !12
  br label %1413

1413:                                             ; preds = %1493, %1410
  br label %1414

1414:                                             ; preds = %1413
  %1415 = load ptr, ptr %2, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.DState, ptr %1415, i32 0, i32 8
  %1417 = load i32, ptr %1416, align 4, !tbaa !38
  %1418 = icmp sge i32 %1417, 8
  br i1 %1418, label %1419, label %1435

1419:                                             ; preds = %1414
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  %1420 = load ptr, ptr %2, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.DState, ptr %1420, i32 0, i32 7
  %1422 = load i32, ptr %1421, align 8, !tbaa !39
  %1423 = load ptr, ptr %2, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.DState, ptr %1423, i32 0, i32 8
  %1425 = load i32, ptr %1424, align 4, !tbaa !38
  %1426 = sub nsw i32 %1425, 8
  %1427 = lshr i32 %1422, %1426
  %1428 = and i32 %1427, 255
  store i32 %1428, ptr %44, align 4, !tbaa !37
  %1429 = load ptr, ptr %2, align 8, !tbaa !5
  %1430 = getelementptr inbounds %struct.DState, ptr %1429, i32 0, i32 8
  %1431 = load i32, ptr %1430, align 4, !tbaa !38
  %1432 = sub nsw i32 %1431, 8
  store i32 %1432, ptr %1430, align 4, !tbaa !38
  %1433 = load i32, ptr %44, align 4, !tbaa !37
  %1434 = trunc i32 %1433 to i8
  store i8 %1434, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  br label %1494

1435:                                             ; preds = %1414
  %1436 = load ptr, ptr %2, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.DState, ptr %1436, i32 0, i32 0
  %1438 = load ptr, ptr %1437, align 8, !tbaa !9
  %1439 = getelementptr inbounds %struct.bz_stream, ptr %1438, i32 0, i32 1
  %1440 = load i32, ptr %1439, align 8, !tbaa !41
  %1441 = icmp eq i32 %1440, 0
  br i1 %1441, label %1442, label %1443

1442:                                             ; preds = %1435
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1443:                                             ; preds = %1435
  %1444 = load ptr, ptr %2, align 8, !tbaa !5
  %1445 = getelementptr inbounds %struct.DState, ptr %1444, i32 0, i32 7
  %1446 = load i32, ptr %1445, align 8, !tbaa !39
  %1447 = shl i32 %1446, 8
  %1448 = load ptr, ptr %2, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.DState, ptr %1448, i32 0, i32 0
  %1450 = load ptr, ptr %1449, align 8, !tbaa !9
  %1451 = getelementptr inbounds %struct.bz_stream, ptr %1450, i32 0, i32 0
  %1452 = load ptr, ptr %1451, align 8, !tbaa !43
  %1453 = load i8, ptr %1452, align 1, !tbaa !40
  %1454 = zext i8 %1453 to i32
  %1455 = or i32 %1447, %1454
  %1456 = load ptr, ptr %2, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.DState, ptr %1456, i32 0, i32 7
  store i32 %1455, ptr %1457, align 8, !tbaa !39
  %1458 = load ptr, ptr %2, align 8, !tbaa !5
  %1459 = getelementptr inbounds %struct.DState, ptr %1458, i32 0, i32 8
  %1460 = load i32, ptr %1459, align 4, !tbaa !38
  %1461 = add nsw i32 %1460, 8
  store i32 %1461, ptr %1459, align 4, !tbaa !38
  %1462 = load ptr, ptr %2, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.DState, ptr %1462, i32 0, i32 0
  %1464 = load ptr, ptr %1463, align 8, !tbaa !9
  %1465 = getelementptr inbounds %struct.bz_stream, ptr %1464, i32 0, i32 0
  %1466 = load ptr, ptr %1465, align 8, !tbaa !43
  %1467 = getelementptr inbounds i8, ptr %1466, i32 1
  store ptr %1467, ptr %1465, align 8, !tbaa !43
  %1468 = load ptr, ptr %2, align 8, !tbaa !5
  %1469 = getelementptr inbounds %struct.DState, ptr %1468, i32 0, i32 0
  %1470 = load ptr, ptr %1469, align 8, !tbaa !9
  %1471 = getelementptr inbounds %struct.bz_stream, ptr %1470, i32 0, i32 1
  %1472 = load i32, ptr %1471, align 8, !tbaa !41
  %1473 = add i32 %1472, -1
  store i32 %1473, ptr %1471, align 8, !tbaa !41
  %1474 = load ptr, ptr %2, align 8, !tbaa !5
  %1475 = getelementptr inbounds %struct.DState, ptr %1474, i32 0, i32 0
  %1476 = load ptr, ptr %1475, align 8, !tbaa !9
  %1477 = getelementptr inbounds %struct.bz_stream, ptr %1476, i32 0, i32 2
  %1478 = load i32, ptr %1477, align 4, !tbaa !44
  %1479 = add i32 %1478, 1
  store i32 %1479, ptr %1477, align 4, !tbaa !44
  %1480 = load ptr, ptr %2, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.DState, ptr %1480, i32 0, i32 0
  %1482 = load ptr, ptr %1481, align 8, !tbaa !9
  %1483 = getelementptr inbounds %struct.bz_stream, ptr %1482, i32 0, i32 2
  %1484 = load i32, ptr %1483, align 4, !tbaa !44
  %1485 = icmp eq i32 %1484, 0
  br i1 %1485, label %1486, label %1493

1486:                                             ; preds = %1443
  %1487 = load ptr, ptr %2, align 8, !tbaa !5
  %1488 = getelementptr inbounds %struct.DState, ptr %1487, i32 0, i32 0
  %1489 = load ptr, ptr %1488, align 8, !tbaa !9
  %1490 = getelementptr inbounds %struct.bz_stream, ptr %1489, i32 0, i32 3
  %1491 = load i32, ptr %1490, align 8, !tbaa !45
  %1492 = add i32 %1491, 1
  store i32 %1492, ptr %1490, align 8, !tbaa !45
  br label %1493

1493:                                             ; preds = %1486, %1443
  br label %1413

1494:                                             ; preds = %1419
  %1495 = load ptr, ptr %2, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.DState, ptr %1495, i32 0, i32 23
  %1497 = load i32, ptr %1496, align 8, !tbaa !55
  %1498 = shl i32 %1497, 8
  %1499 = load i8, ptr %3, align 1, !tbaa !40
  %1500 = zext i8 %1499 to i32
  %1501 = or i32 %1498, %1500
  %1502 = load ptr, ptr %2, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.DState, ptr %1502, i32 0, i32 23
  store i32 %1501, ptr %1503, align 8, !tbaa !55
  br label %1504

1504:                                             ; preds = %1494, %144
  %1505 = load ptr, ptr %2, align 8, !tbaa !5
  %1506 = getelementptr inbounds %struct.DState, ptr %1505, i32 0, i32 1
  store i32 23, ptr %1506, align 8, !tbaa !12
  br label %1507

1507:                                             ; preds = %1587, %1504
  br label %1508

1508:                                             ; preds = %1507
  %1509 = load ptr, ptr %2, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.DState, ptr %1509, i32 0, i32 8
  %1511 = load i32, ptr %1510, align 4, !tbaa !38
  %1512 = icmp sge i32 %1511, 8
  br i1 %1512, label %1513, label %1529

1513:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  %1514 = load ptr, ptr %2, align 8, !tbaa !5
  %1515 = getelementptr inbounds %struct.DState, ptr %1514, i32 0, i32 7
  %1516 = load i32, ptr %1515, align 8, !tbaa !39
  %1517 = load ptr, ptr %2, align 8, !tbaa !5
  %1518 = getelementptr inbounds %struct.DState, ptr %1517, i32 0, i32 8
  %1519 = load i32, ptr %1518, align 4, !tbaa !38
  %1520 = sub nsw i32 %1519, 8
  %1521 = lshr i32 %1516, %1520
  %1522 = and i32 %1521, 255
  store i32 %1522, ptr %45, align 4, !tbaa !37
  %1523 = load ptr, ptr %2, align 8, !tbaa !5
  %1524 = getelementptr inbounds %struct.DState, ptr %1523, i32 0, i32 8
  %1525 = load i32, ptr %1524, align 4, !tbaa !38
  %1526 = sub nsw i32 %1525, 8
  store i32 %1526, ptr %1524, align 4, !tbaa !38
  %1527 = load i32, ptr %45, align 4, !tbaa !37
  %1528 = trunc i32 %1527 to i8
  store i8 %1528, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  br label %1588

1529:                                             ; preds = %1508
  %1530 = load ptr, ptr %2, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.DState, ptr %1530, i32 0, i32 0
  %1532 = load ptr, ptr %1531, align 8, !tbaa !9
  %1533 = getelementptr inbounds %struct.bz_stream, ptr %1532, i32 0, i32 1
  %1534 = load i32, ptr %1533, align 8, !tbaa !41
  %1535 = icmp eq i32 %1534, 0
  br i1 %1535, label %1536, label %1537

1536:                                             ; preds = %1529
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1537:                                             ; preds = %1529
  %1538 = load ptr, ptr %2, align 8, !tbaa !5
  %1539 = getelementptr inbounds %struct.DState, ptr %1538, i32 0, i32 7
  %1540 = load i32, ptr %1539, align 8, !tbaa !39
  %1541 = shl i32 %1540, 8
  %1542 = load ptr, ptr %2, align 8, !tbaa !5
  %1543 = getelementptr inbounds %struct.DState, ptr %1542, i32 0, i32 0
  %1544 = load ptr, ptr %1543, align 8, !tbaa !9
  %1545 = getelementptr inbounds %struct.bz_stream, ptr %1544, i32 0, i32 0
  %1546 = load ptr, ptr %1545, align 8, !tbaa !43
  %1547 = load i8, ptr %1546, align 1, !tbaa !40
  %1548 = zext i8 %1547 to i32
  %1549 = or i32 %1541, %1548
  %1550 = load ptr, ptr %2, align 8, !tbaa !5
  %1551 = getelementptr inbounds %struct.DState, ptr %1550, i32 0, i32 7
  store i32 %1549, ptr %1551, align 8, !tbaa !39
  %1552 = load ptr, ptr %2, align 8, !tbaa !5
  %1553 = getelementptr inbounds %struct.DState, ptr %1552, i32 0, i32 8
  %1554 = load i32, ptr %1553, align 4, !tbaa !38
  %1555 = add nsw i32 %1554, 8
  store i32 %1555, ptr %1553, align 4, !tbaa !38
  %1556 = load ptr, ptr %2, align 8, !tbaa !5
  %1557 = getelementptr inbounds %struct.DState, ptr %1556, i32 0, i32 0
  %1558 = load ptr, ptr %1557, align 8, !tbaa !9
  %1559 = getelementptr inbounds %struct.bz_stream, ptr %1558, i32 0, i32 0
  %1560 = load ptr, ptr %1559, align 8, !tbaa !43
  %1561 = getelementptr inbounds i8, ptr %1560, i32 1
  store ptr %1561, ptr %1559, align 8, !tbaa !43
  %1562 = load ptr, ptr %2, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.DState, ptr %1562, i32 0, i32 0
  %1564 = load ptr, ptr %1563, align 8, !tbaa !9
  %1565 = getelementptr inbounds %struct.bz_stream, ptr %1564, i32 0, i32 1
  %1566 = load i32, ptr %1565, align 8, !tbaa !41
  %1567 = add i32 %1566, -1
  store i32 %1567, ptr %1565, align 8, !tbaa !41
  %1568 = load ptr, ptr %2, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.DState, ptr %1568, i32 0, i32 0
  %1570 = load ptr, ptr %1569, align 8, !tbaa !9
  %1571 = getelementptr inbounds %struct.bz_stream, ptr %1570, i32 0, i32 2
  %1572 = load i32, ptr %1571, align 4, !tbaa !44
  %1573 = add i32 %1572, 1
  store i32 %1573, ptr %1571, align 4, !tbaa !44
  %1574 = load ptr, ptr %2, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.DState, ptr %1574, i32 0, i32 0
  %1576 = load ptr, ptr %1575, align 8, !tbaa !9
  %1577 = getelementptr inbounds %struct.bz_stream, ptr %1576, i32 0, i32 2
  %1578 = load i32, ptr %1577, align 4, !tbaa !44
  %1579 = icmp eq i32 %1578, 0
  br i1 %1579, label %1580, label %1587

1580:                                             ; preds = %1537
  %1581 = load ptr, ptr %2, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.DState, ptr %1581, i32 0, i32 0
  %1583 = load ptr, ptr %1582, align 8, !tbaa !9
  %1584 = getelementptr inbounds %struct.bz_stream, ptr %1583, i32 0, i32 3
  %1585 = load i32, ptr %1584, align 8, !tbaa !45
  %1586 = add i32 %1585, 1
  store i32 %1586, ptr %1584, align 8, !tbaa !45
  br label %1587

1587:                                             ; preds = %1580, %1537
  br label %1507

1588:                                             ; preds = %1513
  %1589 = load ptr, ptr %2, align 8, !tbaa !5
  %1590 = getelementptr inbounds %struct.DState, ptr %1589, i32 0, i32 23
  %1591 = load i32, ptr %1590, align 8, !tbaa !55
  %1592 = shl i32 %1591, 8
  %1593 = load i8, ptr %3, align 1, !tbaa !40
  %1594 = zext i8 %1593 to i32
  %1595 = or i32 %1592, %1594
  %1596 = load ptr, ptr %2, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.DState, ptr %1596, i32 0, i32 23
  store i32 %1595, ptr %1597, align 8, !tbaa !55
  br label %1598

1598:                                             ; preds = %1588, %144
  %1599 = load ptr, ptr %2, align 8, !tbaa !5
  %1600 = getelementptr inbounds %struct.DState, ptr %1599, i32 0, i32 1
  store i32 24, ptr %1600, align 8, !tbaa !12
  br label %1601

1601:                                             ; preds = %1683, %1598
  br label %1602

1602:                                             ; preds = %1601
  %1603 = load ptr, ptr %2, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.DState, ptr %1603, i32 0, i32 8
  %1605 = load i32, ptr %1604, align 4, !tbaa !38
  %1606 = icmp sge i32 %1605, 1
  br i1 %1606, label %1607, label %1625

1607:                                             ; preds = %1602
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #3
  %1608 = load ptr, ptr %2, align 8, !tbaa !5
  %1609 = getelementptr inbounds %struct.DState, ptr %1608, i32 0, i32 7
  %1610 = load i32, ptr %1609, align 8, !tbaa !39
  %1611 = load ptr, ptr %2, align 8, !tbaa !5
  %1612 = getelementptr inbounds %struct.DState, ptr %1611, i32 0, i32 8
  %1613 = load i32, ptr %1612, align 4, !tbaa !38
  %1614 = sub nsw i32 %1613, 1
  %1615 = lshr i32 %1610, %1614
  %1616 = and i32 %1615, 1
  store i32 %1616, ptr %46, align 4, !tbaa !37
  %1617 = load ptr, ptr %2, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.DState, ptr %1617, i32 0, i32 8
  %1619 = load i32, ptr %1618, align 4, !tbaa !38
  %1620 = sub nsw i32 %1619, 1
  store i32 %1620, ptr %1618, align 4, !tbaa !38
  %1621 = load i32, ptr %46, align 4, !tbaa !37
  %1622 = trunc i32 %1621 to i8
  %1623 = load ptr, ptr %2, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.DState, ptr %1623, i32 0, i32 4
  store i8 %1622, ptr %1624, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #3
  br label %1684

1625:                                             ; preds = %1602
  %1626 = load ptr, ptr %2, align 8, !tbaa !5
  %1627 = getelementptr inbounds %struct.DState, ptr %1626, i32 0, i32 0
  %1628 = load ptr, ptr %1627, align 8, !tbaa !9
  %1629 = getelementptr inbounds %struct.bz_stream, ptr %1628, i32 0, i32 1
  %1630 = load i32, ptr %1629, align 8, !tbaa !41
  %1631 = icmp eq i32 %1630, 0
  br i1 %1631, label %1632, label %1633

1632:                                             ; preds = %1625
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1633:                                             ; preds = %1625
  %1634 = load ptr, ptr %2, align 8, !tbaa !5
  %1635 = getelementptr inbounds %struct.DState, ptr %1634, i32 0, i32 7
  %1636 = load i32, ptr %1635, align 8, !tbaa !39
  %1637 = shl i32 %1636, 8
  %1638 = load ptr, ptr %2, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.DState, ptr %1638, i32 0, i32 0
  %1640 = load ptr, ptr %1639, align 8, !tbaa !9
  %1641 = getelementptr inbounds %struct.bz_stream, ptr %1640, i32 0, i32 0
  %1642 = load ptr, ptr %1641, align 8, !tbaa !43
  %1643 = load i8, ptr %1642, align 1, !tbaa !40
  %1644 = zext i8 %1643 to i32
  %1645 = or i32 %1637, %1644
  %1646 = load ptr, ptr %2, align 8, !tbaa !5
  %1647 = getelementptr inbounds %struct.DState, ptr %1646, i32 0, i32 7
  store i32 %1645, ptr %1647, align 8, !tbaa !39
  %1648 = load ptr, ptr %2, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.DState, ptr %1648, i32 0, i32 8
  %1650 = load i32, ptr %1649, align 4, !tbaa !38
  %1651 = add nsw i32 %1650, 8
  store i32 %1651, ptr %1649, align 4, !tbaa !38
  %1652 = load ptr, ptr %2, align 8, !tbaa !5
  %1653 = getelementptr inbounds %struct.DState, ptr %1652, i32 0, i32 0
  %1654 = load ptr, ptr %1653, align 8, !tbaa !9
  %1655 = getelementptr inbounds %struct.bz_stream, ptr %1654, i32 0, i32 0
  %1656 = load ptr, ptr %1655, align 8, !tbaa !43
  %1657 = getelementptr inbounds i8, ptr %1656, i32 1
  store ptr %1657, ptr %1655, align 8, !tbaa !43
  %1658 = load ptr, ptr %2, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.DState, ptr %1658, i32 0, i32 0
  %1660 = load ptr, ptr %1659, align 8, !tbaa !9
  %1661 = getelementptr inbounds %struct.bz_stream, ptr %1660, i32 0, i32 1
  %1662 = load i32, ptr %1661, align 8, !tbaa !41
  %1663 = add i32 %1662, -1
  store i32 %1663, ptr %1661, align 8, !tbaa !41
  %1664 = load ptr, ptr %2, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.DState, ptr %1664, i32 0, i32 0
  %1666 = load ptr, ptr %1665, align 8, !tbaa !9
  %1667 = getelementptr inbounds %struct.bz_stream, ptr %1666, i32 0, i32 2
  %1668 = load i32, ptr %1667, align 4, !tbaa !44
  %1669 = add i32 %1668, 1
  store i32 %1669, ptr %1667, align 4, !tbaa !44
  %1670 = load ptr, ptr %2, align 8, !tbaa !5
  %1671 = getelementptr inbounds %struct.DState, ptr %1670, i32 0, i32 0
  %1672 = load ptr, ptr %1671, align 8, !tbaa !9
  %1673 = getelementptr inbounds %struct.bz_stream, ptr %1672, i32 0, i32 2
  %1674 = load i32, ptr %1673, align 4, !tbaa !44
  %1675 = icmp eq i32 %1674, 0
  br i1 %1675, label %1676, label %1683

1676:                                             ; preds = %1633
  %1677 = load ptr, ptr %2, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.DState, ptr %1677, i32 0, i32 0
  %1679 = load ptr, ptr %1678, align 8, !tbaa !9
  %1680 = getelementptr inbounds %struct.bz_stream, ptr %1679, i32 0, i32 3
  %1681 = load i32, ptr %1680, align 8, !tbaa !45
  %1682 = add i32 %1681, 1
  store i32 %1682, ptr %1680, align 8, !tbaa !45
  br label %1683

1683:                                             ; preds = %1676, %1633
  br label %1601

1684:                                             ; preds = %1607
  %1685 = load ptr, ptr %2, align 8, !tbaa !5
  %1686 = getelementptr inbounds %struct.DState, ptr %1685, i32 0, i32 13
  store i32 0, ptr %1686, align 8, !tbaa !57
  br label %1687

1687:                                             ; preds = %1684, %144
  %1688 = load ptr, ptr %2, align 8, !tbaa !5
  %1689 = getelementptr inbounds %struct.DState, ptr %1688, i32 0, i32 1
  store i32 25, ptr %1689, align 8, !tbaa !12
  br label %1690

1690:                                             ; preds = %1770, %1687
  br label %1691

1691:                                             ; preds = %1690
  %1692 = load ptr, ptr %2, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.DState, ptr %1692, i32 0, i32 8
  %1694 = load i32, ptr %1693, align 4, !tbaa !38
  %1695 = icmp sge i32 %1694, 8
  br i1 %1695, label %1696, label %1712

1696:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  %1697 = load ptr, ptr %2, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.DState, ptr %1697, i32 0, i32 7
  %1699 = load i32, ptr %1698, align 8, !tbaa !39
  %1700 = load ptr, ptr %2, align 8, !tbaa !5
  %1701 = getelementptr inbounds %struct.DState, ptr %1700, i32 0, i32 8
  %1702 = load i32, ptr %1701, align 4, !tbaa !38
  %1703 = sub nsw i32 %1702, 8
  %1704 = lshr i32 %1699, %1703
  %1705 = and i32 %1704, 255
  store i32 %1705, ptr %47, align 4, !tbaa !37
  %1706 = load ptr, ptr %2, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.DState, ptr %1706, i32 0, i32 8
  %1708 = load i32, ptr %1707, align 4, !tbaa !38
  %1709 = sub nsw i32 %1708, 8
  store i32 %1709, ptr %1707, align 4, !tbaa !38
  %1710 = load i32, ptr %47, align 4, !tbaa !37
  %1711 = trunc i32 %1710 to i8
  store i8 %1711, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  br label %1771

1712:                                             ; preds = %1691
  %1713 = load ptr, ptr %2, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.DState, ptr %1713, i32 0, i32 0
  %1715 = load ptr, ptr %1714, align 8, !tbaa !9
  %1716 = getelementptr inbounds %struct.bz_stream, ptr %1715, i32 0, i32 1
  %1717 = load i32, ptr %1716, align 8, !tbaa !41
  %1718 = icmp eq i32 %1717, 0
  br i1 %1718, label %1719, label %1720

1719:                                             ; preds = %1712
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1720:                                             ; preds = %1712
  %1721 = load ptr, ptr %2, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.DState, ptr %1721, i32 0, i32 7
  %1723 = load i32, ptr %1722, align 8, !tbaa !39
  %1724 = shl i32 %1723, 8
  %1725 = load ptr, ptr %2, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.DState, ptr %1725, i32 0, i32 0
  %1727 = load ptr, ptr %1726, align 8, !tbaa !9
  %1728 = getelementptr inbounds %struct.bz_stream, ptr %1727, i32 0, i32 0
  %1729 = load ptr, ptr %1728, align 8, !tbaa !43
  %1730 = load i8, ptr %1729, align 1, !tbaa !40
  %1731 = zext i8 %1730 to i32
  %1732 = or i32 %1724, %1731
  %1733 = load ptr, ptr %2, align 8, !tbaa !5
  %1734 = getelementptr inbounds %struct.DState, ptr %1733, i32 0, i32 7
  store i32 %1732, ptr %1734, align 8, !tbaa !39
  %1735 = load ptr, ptr %2, align 8, !tbaa !5
  %1736 = getelementptr inbounds %struct.DState, ptr %1735, i32 0, i32 8
  %1737 = load i32, ptr %1736, align 4, !tbaa !38
  %1738 = add nsw i32 %1737, 8
  store i32 %1738, ptr %1736, align 4, !tbaa !38
  %1739 = load ptr, ptr %2, align 8, !tbaa !5
  %1740 = getelementptr inbounds %struct.DState, ptr %1739, i32 0, i32 0
  %1741 = load ptr, ptr %1740, align 8, !tbaa !9
  %1742 = getelementptr inbounds %struct.bz_stream, ptr %1741, i32 0, i32 0
  %1743 = load ptr, ptr %1742, align 8, !tbaa !43
  %1744 = getelementptr inbounds i8, ptr %1743, i32 1
  store ptr %1744, ptr %1742, align 8, !tbaa !43
  %1745 = load ptr, ptr %2, align 8, !tbaa !5
  %1746 = getelementptr inbounds %struct.DState, ptr %1745, i32 0, i32 0
  %1747 = load ptr, ptr %1746, align 8, !tbaa !9
  %1748 = getelementptr inbounds %struct.bz_stream, ptr %1747, i32 0, i32 1
  %1749 = load i32, ptr %1748, align 8, !tbaa !41
  %1750 = add i32 %1749, -1
  store i32 %1750, ptr %1748, align 8, !tbaa !41
  %1751 = load ptr, ptr %2, align 8, !tbaa !5
  %1752 = getelementptr inbounds %struct.DState, ptr %1751, i32 0, i32 0
  %1753 = load ptr, ptr %1752, align 8, !tbaa !9
  %1754 = getelementptr inbounds %struct.bz_stream, ptr %1753, i32 0, i32 2
  %1755 = load i32, ptr %1754, align 4, !tbaa !44
  %1756 = add i32 %1755, 1
  store i32 %1756, ptr %1754, align 4, !tbaa !44
  %1757 = load ptr, ptr %2, align 8, !tbaa !5
  %1758 = getelementptr inbounds %struct.DState, ptr %1757, i32 0, i32 0
  %1759 = load ptr, ptr %1758, align 8, !tbaa !9
  %1760 = getelementptr inbounds %struct.bz_stream, ptr %1759, i32 0, i32 2
  %1761 = load i32, ptr %1760, align 4, !tbaa !44
  %1762 = icmp eq i32 %1761, 0
  br i1 %1762, label %1763, label %1770

1763:                                             ; preds = %1720
  %1764 = load ptr, ptr %2, align 8, !tbaa !5
  %1765 = getelementptr inbounds %struct.DState, ptr %1764, i32 0, i32 0
  %1766 = load ptr, ptr %1765, align 8, !tbaa !9
  %1767 = getelementptr inbounds %struct.bz_stream, ptr %1766, i32 0, i32 3
  %1768 = load i32, ptr %1767, align 8, !tbaa !45
  %1769 = add i32 %1768, 1
  store i32 %1769, ptr %1767, align 8, !tbaa !45
  br label %1770

1770:                                             ; preds = %1763, %1720
  br label %1690

1771:                                             ; preds = %1696
  %1772 = load ptr, ptr %2, align 8, !tbaa !5
  %1773 = getelementptr inbounds %struct.DState, ptr %1772, i32 0, i32 13
  %1774 = load i32, ptr %1773, align 8, !tbaa !57
  %1775 = shl i32 %1774, 8
  %1776 = load i8, ptr %3, align 1, !tbaa !40
  %1777 = zext i8 %1776 to i32
  %1778 = or i32 %1775, %1777
  %1779 = load ptr, ptr %2, align 8, !tbaa !5
  %1780 = getelementptr inbounds %struct.DState, ptr %1779, i32 0, i32 13
  store i32 %1778, ptr %1780, align 8, !tbaa !57
  br label %1781

1781:                                             ; preds = %1771, %144
  %1782 = load ptr, ptr %2, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.DState, ptr %1782, i32 0, i32 1
  store i32 26, ptr %1783, align 8, !tbaa !12
  br label %1784

1784:                                             ; preds = %1864, %1781
  br label %1785

1785:                                             ; preds = %1784
  %1786 = load ptr, ptr %2, align 8, !tbaa !5
  %1787 = getelementptr inbounds %struct.DState, ptr %1786, i32 0, i32 8
  %1788 = load i32, ptr %1787, align 4, !tbaa !38
  %1789 = icmp sge i32 %1788, 8
  br i1 %1789, label %1790, label %1806

1790:                                             ; preds = %1785
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #3
  %1791 = load ptr, ptr %2, align 8, !tbaa !5
  %1792 = getelementptr inbounds %struct.DState, ptr %1791, i32 0, i32 7
  %1793 = load i32, ptr %1792, align 8, !tbaa !39
  %1794 = load ptr, ptr %2, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.DState, ptr %1794, i32 0, i32 8
  %1796 = load i32, ptr %1795, align 4, !tbaa !38
  %1797 = sub nsw i32 %1796, 8
  %1798 = lshr i32 %1793, %1797
  %1799 = and i32 %1798, 255
  store i32 %1799, ptr %48, align 4, !tbaa !37
  %1800 = load ptr, ptr %2, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.DState, ptr %1800, i32 0, i32 8
  %1802 = load i32, ptr %1801, align 4, !tbaa !38
  %1803 = sub nsw i32 %1802, 8
  store i32 %1803, ptr %1801, align 4, !tbaa !38
  %1804 = load i32, ptr %48, align 4, !tbaa !37
  %1805 = trunc i32 %1804 to i8
  store i8 %1805, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  br label %1865

1806:                                             ; preds = %1785
  %1807 = load ptr, ptr %2, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.DState, ptr %1807, i32 0, i32 0
  %1809 = load ptr, ptr %1808, align 8, !tbaa !9
  %1810 = getelementptr inbounds %struct.bz_stream, ptr %1809, i32 0, i32 1
  %1811 = load i32, ptr %1810, align 8, !tbaa !41
  %1812 = icmp eq i32 %1811, 0
  br i1 %1812, label %1813, label %1814

1813:                                             ; preds = %1806
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1814:                                             ; preds = %1806
  %1815 = load ptr, ptr %2, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.DState, ptr %1815, i32 0, i32 7
  %1817 = load i32, ptr %1816, align 8, !tbaa !39
  %1818 = shl i32 %1817, 8
  %1819 = load ptr, ptr %2, align 8, !tbaa !5
  %1820 = getelementptr inbounds %struct.DState, ptr %1819, i32 0, i32 0
  %1821 = load ptr, ptr %1820, align 8, !tbaa !9
  %1822 = getelementptr inbounds %struct.bz_stream, ptr %1821, i32 0, i32 0
  %1823 = load ptr, ptr %1822, align 8, !tbaa !43
  %1824 = load i8, ptr %1823, align 1, !tbaa !40
  %1825 = zext i8 %1824 to i32
  %1826 = or i32 %1818, %1825
  %1827 = load ptr, ptr %2, align 8, !tbaa !5
  %1828 = getelementptr inbounds %struct.DState, ptr %1827, i32 0, i32 7
  store i32 %1826, ptr %1828, align 8, !tbaa !39
  %1829 = load ptr, ptr %2, align 8, !tbaa !5
  %1830 = getelementptr inbounds %struct.DState, ptr %1829, i32 0, i32 8
  %1831 = load i32, ptr %1830, align 4, !tbaa !38
  %1832 = add nsw i32 %1831, 8
  store i32 %1832, ptr %1830, align 4, !tbaa !38
  %1833 = load ptr, ptr %2, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.DState, ptr %1833, i32 0, i32 0
  %1835 = load ptr, ptr %1834, align 8, !tbaa !9
  %1836 = getelementptr inbounds %struct.bz_stream, ptr %1835, i32 0, i32 0
  %1837 = load ptr, ptr %1836, align 8, !tbaa !43
  %1838 = getelementptr inbounds i8, ptr %1837, i32 1
  store ptr %1838, ptr %1836, align 8, !tbaa !43
  %1839 = load ptr, ptr %2, align 8, !tbaa !5
  %1840 = getelementptr inbounds %struct.DState, ptr %1839, i32 0, i32 0
  %1841 = load ptr, ptr %1840, align 8, !tbaa !9
  %1842 = getelementptr inbounds %struct.bz_stream, ptr %1841, i32 0, i32 1
  %1843 = load i32, ptr %1842, align 8, !tbaa !41
  %1844 = add i32 %1843, -1
  store i32 %1844, ptr %1842, align 8, !tbaa !41
  %1845 = load ptr, ptr %2, align 8, !tbaa !5
  %1846 = getelementptr inbounds %struct.DState, ptr %1845, i32 0, i32 0
  %1847 = load ptr, ptr %1846, align 8, !tbaa !9
  %1848 = getelementptr inbounds %struct.bz_stream, ptr %1847, i32 0, i32 2
  %1849 = load i32, ptr %1848, align 4, !tbaa !44
  %1850 = add i32 %1849, 1
  store i32 %1850, ptr %1848, align 4, !tbaa !44
  %1851 = load ptr, ptr %2, align 8, !tbaa !5
  %1852 = getelementptr inbounds %struct.DState, ptr %1851, i32 0, i32 0
  %1853 = load ptr, ptr %1852, align 8, !tbaa !9
  %1854 = getelementptr inbounds %struct.bz_stream, ptr %1853, i32 0, i32 2
  %1855 = load i32, ptr %1854, align 4, !tbaa !44
  %1856 = icmp eq i32 %1855, 0
  br i1 %1856, label %1857, label %1864

1857:                                             ; preds = %1814
  %1858 = load ptr, ptr %2, align 8, !tbaa !5
  %1859 = getelementptr inbounds %struct.DState, ptr %1858, i32 0, i32 0
  %1860 = load ptr, ptr %1859, align 8, !tbaa !9
  %1861 = getelementptr inbounds %struct.bz_stream, ptr %1860, i32 0, i32 3
  %1862 = load i32, ptr %1861, align 8, !tbaa !45
  %1863 = add i32 %1862, 1
  store i32 %1863, ptr %1861, align 8, !tbaa !45
  br label %1864

1864:                                             ; preds = %1857, %1814
  br label %1784

1865:                                             ; preds = %1790
  %1866 = load ptr, ptr %2, align 8, !tbaa !5
  %1867 = getelementptr inbounds %struct.DState, ptr %1866, i32 0, i32 13
  %1868 = load i32, ptr %1867, align 8, !tbaa !57
  %1869 = shl i32 %1868, 8
  %1870 = load i8, ptr %3, align 1, !tbaa !40
  %1871 = zext i8 %1870 to i32
  %1872 = or i32 %1869, %1871
  %1873 = load ptr, ptr %2, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.DState, ptr %1873, i32 0, i32 13
  store i32 %1872, ptr %1874, align 8, !tbaa !57
  br label %1875

1875:                                             ; preds = %1865, %144
  %1876 = load ptr, ptr %2, align 8, !tbaa !5
  %1877 = getelementptr inbounds %struct.DState, ptr %1876, i32 0, i32 1
  store i32 27, ptr %1877, align 8, !tbaa !12
  br label %1878

1878:                                             ; preds = %1958, %1875
  br label %1879

1879:                                             ; preds = %1878
  %1880 = load ptr, ptr %2, align 8, !tbaa !5
  %1881 = getelementptr inbounds %struct.DState, ptr %1880, i32 0, i32 8
  %1882 = load i32, ptr %1881, align 4, !tbaa !38
  %1883 = icmp sge i32 %1882, 8
  br i1 %1883, label %1884, label %1900

1884:                                             ; preds = %1879
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #3
  %1885 = load ptr, ptr %2, align 8, !tbaa !5
  %1886 = getelementptr inbounds %struct.DState, ptr %1885, i32 0, i32 7
  %1887 = load i32, ptr %1886, align 8, !tbaa !39
  %1888 = load ptr, ptr %2, align 8, !tbaa !5
  %1889 = getelementptr inbounds %struct.DState, ptr %1888, i32 0, i32 8
  %1890 = load i32, ptr %1889, align 4, !tbaa !38
  %1891 = sub nsw i32 %1890, 8
  %1892 = lshr i32 %1887, %1891
  %1893 = and i32 %1892, 255
  store i32 %1893, ptr %49, align 4, !tbaa !37
  %1894 = load ptr, ptr %2, align 8, !tbaa !5
  %1895 = getelementptr inbounds %struct.DState, ptr %1894, i32 0, i32 8
  %1896 = load i32, ptr %1895, align 4, !tbaa !38
  %1897 = sub nsw i32 %1896, 8
  store i32 %1897, ptr %1895, align 4, !tbaa !38
  %1898 = load i32, ptr %49, align 4, !tbaa !37
  %1899 = trunc i32 %1898 to i8
  store i8 %1899, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #3
  br label %1959

1900:                                             ; preds = %1879
  %1901 = load ptr, ptr %2, align 8, !tbaa !5
  %1902 = getelementptr inbounds %struct.DState, ptr %1901, i32 0, i32 0
  %1903 = load ptr, ptr %1902, align 8, !tbaa !9
  %1904 = getelementptr inbounds %struct.bz_stream, ptr %1903, i32 0, i32 1
  %1905 = load i32, ptr %1904, align 8, !tbaa !41
  %1906 = icmp eq i32 %1905, 0
  br i1 %1906, label %1907, label %1908

1907:                                             ; preds = %1900
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

1908:                                             ; preds = %1900
  %1909 = load ptr, ptr %2, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.DState, ptr %1909, i32 0, i32 7
  %1911 = load i32, ptr %1910, align 8, !tbaa !39
  %1912 = shl i32 %1911, 8
  %1913 = load ptr, ptr %2, align 8, !tbaa !5
  %1914 = getelementptr inbounds %struct.DState, ptr %1913, i32 0, i32 0
  %1915 = load ptr, ptr %1914, align 8, !tbaa !9
  %1916 = getelementptr inbounds %struct.bz_stream, ptr %1915, i32 0, i32 0
  %1917 = load ptr, ptr %1916, align 8, !tbaa !43
  %1918 = load i8, ptr %1917, align 1, !tbaa !40
  %1919 = zext i8 %1918 to i32
  %1920 = or i32 %1912, %1919
  %1921 = load ptr, ptr %2, align 8, !tbaa !5
  %1922 = getelementptr inbounds %struct.DState, ptr %1921, i32 0, i32 7
  store i32 %1920, ptr %1922, align 8, !tbaa !39
  %1923 = load ptr, ptr %2, align 8, !tbaa !5
  %1924 = getelementptr inbounds %struct.DState, ptr %1923, i32 0, i32 8
  %1925 = load i32, ptr %1924, align 4, !tbaa !38
  %1926 = add nsw i32 %1925, 8
  store i32 %1926, ptr %1924, align 4, !tbaa !38
  %1927 = load ptr, ptr %2, align 8, !tbaa !5
  %1928 = getelementptr inbounds %struct.DState, ptr %1927, i32 0, i32 0
  %1929 = load ptr, ptr %1928, align 8, !tbaa !9
  %1930 = getelementptr inbounds %struct.bz_stream, ptr %1929, i32 0, i32 0
  %1931 = load ptr, ptr %1930, align 8, !tbaa !43
  %1932 = getelementptr inbounds i8, ptr %1931, i32 1
  store ptr %1932, ptr %1930, align 8, !tbaa !43
  %1933 = load ptr, ptr %2, align 8, !tbaa !5
  %1934 = getelementptr inbounds %struct.DState, ptr %1933, i32 0, i32 0
  %1935 = load ptr, ptr %1934, align 8, !tbaa !9
  %1936 = getelementptr inbounds %struct.bz_stream, ptr %1935, i32 0, i32 1
  %1937 = load i32, ptr %1936, align 8, !tbaa !41
  %1938 = add i32 %1937, -1
  store i32 %1938, ptr %1936, align 8, !tbaa !41
  %1939 = load ptr, ptr %2, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.DState, ptr %1939, i32 0, i32 0
  %1941 = load ptr, ptr %1940, align 8, !tbaa !9
  %1942 = getelementptr inbounds %struct.bz_stream, ptr %1941, i32 0, i32 2
  %1943 = load i32, ptr %1942, align 4, !tbaa !44
  %1944 = add i32 %1943, 1
  store i32 %1944, ptr %1942, align 4, !tbaa !44
  %1945 = load ptr, ptr %2, align 8, !tbaa !5
  %1946 = getelementptr inbounds %struct.DState, ptr %1945, i32 0, i32 0
  %1947 = load ptr, ptr %1946, align 8, !tbaa !9
  %1948 = getelementptr inbounds %struct.bz_stream, ptr %1947, i32 0, i32 2
  %1949 = load i32, ptr %1948, align 4, !tbaa !44
  %1950 = icmp eq i32 %1949, 0
  br i1 %1950, label %1951, label %1958

1951:                                             ; preds = %1908
  %1952 = load ptr, ptr %2, align 8, !tbaa !5
  %1953 = getelementptr inbounds %struct.DState, ptr %1952, i32 0, i32 0
  %1954 = load ptr, ptr %1953, align 8, !tbaa !9
  %1955 = getelementptr inbounds %struct.bz_stream, ptr %1954, i32 0, i32 3
  %1956 = load i32, ptr %1955, align 8, !tbaa !45
  %1957 = add i32 %1956, 1
  store i32 %1957, ptr %1955, align 8, !tbaa !45
  br label %1958

1958:                                             ; preds = %1951, %1908
  br label %1878

1959:                                             ; preds = %1884
  %1960 = load ptr, ptr %2, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.DState, ptr %1960, i32 0, i32 13
  %1962 = load i32, ptr %1961, align 8, !tbaa !57
  %1963 = shl i32 %1962, 8
  %1964 = load i8, ptr %3, align 1, !tbaa !40
  %1965 = zext i8 %1964 to i32
  %1966 = or i32 %1963, %1965
  %1967 = load ptr, ptr %2, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.DState, ptr %1967, i32 0, i32 13
  store i32 %1966, ptr %1968, align 8, !tbaa !57
  %1969 = load ptr, ptr %2, align 8, !tbaa !5
  %1970 = getelementptr inbounds %struct.DState, ptr %1969, i32 0, i32 13
  %1971 = load i32, ptr %1970, align 8, !tbaa !57
  %1972 = icmp slt i32 %1971, 0
  br i1 %1972, label %1973, label %1974

1973:                                             ; preds = %1959
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

1974:                                             ; preds = %1959
  %1975 = load ptr, ptr %2, align 8, !tbaa !5
  %1976 = getelementptr inbounds %struct.DState, ptr %1975, i32 0, i32 13
  %1977 = load i32, ptr %1976, align 8, !tbaa !57
  %1978 = load ptr, ptr %2, align 8, !tbaa !5
  %1979 = getelementptr inbounds %struct.DState, ptr %1978, i32 0, i32 9
  %1980 = load i32, ptr %1979, align 8, !tbaa !46
  %1981 = mul nsw i32 100000, %1980
  %1982 = add nsw i32 10, %1981
  %1983 = icmp sgt i32 %1977, %1982
  br i1 %1983, label %1984, label %1985

1984:                                             ; preds = %1974
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

1985:                                             ; preds = %1974
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %1986

1986:                                             ; preds = %2091, %1985
  %1987 = load i32, ptr %8, align 4, !tbaa !37
  %1988 = icmp slt i32 %1987, 16
  br i1 %1988, label %1989, label %2094

1989:                                             ; preds = %1986
  br label %1990

1990:                                             ; preds = %1989, %144
  %1991 = load ptr, ptr %2, align 8, !tbaa !5
  %1992 = getelementptr inbounds %struct.DState, ptr %1991, i32 0, i32 1
  store i32 28, ptr %1992, align 8, !tbaa !12
  br label %1993

1993:                                             ; preds = %2073, %1990
  br label %1994

1994:                                             ; preds = %1993
  %1995 = load ptr, ptr %2, align 8, !tbaa !5
  %1996 = getelementptr inbounds %struct.DState, ptr %1995, i32 0, i32 8
  %1997 = load i32, ptr %1996, align 4, !tbaa !38
  %1998 = icmp sge i32 %1997, 1
  br i1 %1998, label %1999, label %2015

1999:                                             ; preds = %1994
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #3
  %2000 = load ptr, ptr %2, align 8, !tbaa !5
  %2001 = getelementptr inbounds %struct.DState, ptr %2000, i32 0, i32 7
  %2002 = load i32, ptr %2001, align 8, !tbaa !39
  %2003 = load ptr, ptr %2, align 8, !tbaa !5
  %2004 = getelementptr inbounds %struct.DState, ptr %2003, i32 0, i32 8
  %2005 = load i32, ptr %2004, align 4, !tbaa !38
  %2006 = sub nsw i32 %2005, 1
  %2007 = lshr i32 %2002, %2006
  %2008 = and i32 %2007, 1
  store i32 %2008, ptr %50, align 4, !tbaa !37
  %2009 = load ptr, ptr %2, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.DState, ptr %2009, i32 0, i32 8
  %2011 = load i32, ptr %2010, align 4, !tbaa !38
  %2012 = sub nsw i32 %2011, 1
  store i32 %2012, ptr %2010, align 4, !tbaa !38
  %2013 = load i32, ptr %50, align 4, !tbaa !37
  %2014 = trunc i32 %2013 to i8
  store i8 %2014, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  br label %2074

2015:                                             ; preds = %1994
  %2016 = load ptr, ptr %2, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.DState, ptr %2016, i32 0, i32 0
  %2018 = load ptr, ptr %2017, align 8, !tbaa !9
  %2019 = getelementptr inbounds %struct.bz_stream, ptr %2018, i32 0, i32 1
  %2020 = load i32, ptr %2019, align 8, !tbaa !41
  %2021 = icmp eq i32 %2020, 0
  br i1 %2021, label %2022, label %2023

2022:                                             ; preds = %2015
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2023:                                             ; preds = %2015
  %2024 = load ptr, ptr %2, align 8, !tbaa !5
  %2025 = getelementptr inbounds %struct.DState, ptr %2024, i32 0, i32 7
  %2026 = load i32, ptr %2025, align 8, !tbaa !39
  %2027 = shl i32 %2026, 8
  %2028 = load ptr, ptr %2, align 8, !tbaa !5
  %2029 = getelementptr inbounds %struct.DState, ptr %2028, i32 0, i32 0
  %2030 = load ptr, ptr %2029, align 8, !tbaa !9
  %2031 = getelementptr inbounds %struct.bz_stream, ptr %2030, i32 0, i32 0
  %2032 = load ptr, ptr %2031, align 8, !tbaa !43
  %2033 = load i8, ptr %2032, align 1, !tbaa !40
  %2034 = zext i8 %2033 to i32
  %2035 = or i32 %2027, %2034
  %2036 = load ptr, ptr %2, align 8, !tbaa !5
  %2037 = getelementptr inbounds %struct.DState, ptr %2036, i32 0, i32 7
  store i32 %2035, ptr %2037, align 8, !tbaa !39
  %2038 = load ptr, ptr %2, align 8, !tbaa !5
  %2039 = getelementptr inbounds %struct.DState, ptr %2038, i32 0, i32 8
  %2040 = load i32, ptr %2039, align 4, !tbaa !38
  %2041 = add nsw i32 %2040, 8
  store i32 %2041, ptr %2039, align 4, !tbaa !38
  %2042 = load ptr, ptr %2, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.DState, ptr %2042, i32 0, i32 0
  %2044 = load ptr, ptr %2043, align 8, !tbaa !9
  %2045 = getelementptr inbounds %struct.bz_stream, ptr %2044, i32 0, i32 0
  %2046 = load ptr, ptr %2045, align 8, !tbaa !43
  %2047 = getelementptr inbounds i8, ptr %2046, i32 1
  store ptr %2047, ptr %2045, align 8, !tbaa !43
  %2048 = load ptr, ptr %2, align 8, !tbaa !5
  %2049 = getelementptr inbounds %struct.DState, ptr %2048, i32 0, i32 0
  %2050 = load ptr, ptr %2049, align 8, !tbaa !9
  %2051 = getelementptr inbounds %struct.bz_stream, ptr %2050, i32 0, i32 1
  %2052 = load i32, ptr %2051, align 8, !tbaa !41
  %2053 = add i32 %2052, -1
  store i32 %2053, ptr %2051, align 8, !tbaa !41
  %2054 = load ptr, ptr %2, align 8, !tbaa !5
  %2055 = getelementptr inbounds %struct.DState, ptr %2054, i32 0, i32 0
  %2056 = load ptr, ptr %2055, align 8, !tbaa !9
  %2057 = getelementptr inbounds %struct.bz_stream, ptr %2056, i32 0, i32 2
  %2058 = load i32, ptr %2057, align 4, !tbaa !44
  %2059 = add i32 %2058, 1
  store i32 %2059, ptr %2057, align 4, !tbaa !44
  %2060 = load ptr, ptr %2, align 8, !tbaa !5
  %2061 = getelementptr inbounds %struct.DState, ptr %2060, i32 0, i32 0
  %2062 = load ptr, ptr %2061, align 8, !tbaa !9
  %2063 = getelementptr inbounds %struct.bz_stream, ptr %2062, i32 0, i32 2
  %2064 = load i32, ptr %2063, align 4, !tbaa !44
  %2065 = icmp eq i32 %2064, 0
  br i1 %2065, label %2066, label %2073

2066:                                             ; preds = %2023
  %2067 = load ptr, ptr %2, align 8, !tbaa !5
  %2068 = getelementptr inbounds %struct.DState, ptr %2067, i32 0, i32 0
  %2069 = load ptr, ptr %2068, align 8, !tbaa !9
  %2070 = getelementptr inbounds %struct.bz_stream, ptr %2069, i32 0, i32 3
  %2071 = load i32, ptr %2070, align 8, !tbaa !45
  %2072 = add i32 %2071, 1
  store i32 %2072, ptr %2070, align 8, !tbaa !45
  br label %2073

2073:                                             ; preds = %2066, %2023
  br label %1993

2074:                                             ; preds = %1999
  %2075 = load i8, ptr %3, align 1, !tbaa !40
  %2076 = zext i8 %2075 to i32
  %2077 = icmp eq i32 %2076, 1
  br i1 %2077, label %2078, label %2084

2078:                                             ; preds = %2074
  %2079 = load ptr, ptr %2, align 8, !tbaa !5
  %2080 = getelementptr inbounds %struct.DState, ptr %2079, i32 0, i32 29
  %2081 = load i32, ptr %8, align 4, !tbaa !37
  %2082 = sext i32 %2081 to i64
  %2083 = getelementptr inbounds [16 x i8], ptr %2080, i64 0, i64 %2082
  store i8 1, ptr %2083, align 1, !tbaa !40
  br label %2090

2084:                                             ; preds = %2074
  %2085 = load ptr, ptr %2, align 8, !tbaa !5
  %2086 = getelementptr inbounds %struct.DState, ptr %2085, i32 0, i32 29
  %2087 = load i32, ptr %8, align 4, !tbaa !37
  %2088 = sext i32 %2087 to i64
  %2089 = getelementptr inbounds [16 x i8], ptr %2086, i64 0, i64 %2088
  store i8 0, ptr %2089, align 1, !tbaa !40
  br label %2090

2090:                                             ; preds = %2084, %2078
  br label %2091

2091:                                             ; preds = %2090
  %2092 = load i32, ptr %8, align 4, !tbaa !37
  %2093 = add nsw i32 %2092, 1
  store i32 %2093, ptr %8, align 4, !tbaa !37
  br label %1986, !llvm.loop !58

2094:                                             ; preds = %1986
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2095

2095:                                             ; preds = %2104, %2094
  %2096 = load i32, ptr %8, align 4, !tbaa !37
  %2097 = icmp slt i32 %2096, 256
  br i1 %2097, label %2098, label %2107

2098:                                             ; preds = %2095
  %2099 = load ptr, ptr %2, align 8, !tbaa !5
  %2100 = getelementptr inbounds %struct.DState, ptr %2099, i32 0, i32 28
  %2101 = load i32, ptr %8, align 4, !tbaa !37
  %2102 = sext i32 %2101 to i64
  %2103 = getelementptr inbounds [256 x i8], ptr %2100, i64 0, i64 %2102
  store i8 0, ptr %2103, align 1, !tbaa !40
  br label %2104

2104:                                             ; preds = %2098
  %2105 = load i32, ptr %8, align 4, !tbaa !37
  %2106 = add nsw i32 %2105, 1
  store i32 %2106, ptr %8, align 4, !tbaa !37
  br label %2095, !llvm.loop !60

2107:                                             ; preds = %2095
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2108

2108:                                             ; preds = %2227, %2107
  %2109 = load i32, ptr %8, align 4, !tbaa !37
  %2110 = icmp slt i32 %2109, 16
  br i1 %2110, label %2111, label %2230

2111:                                             ; preds = %2108
  %2112 = load ptr, ptr %2, align 8, !tbaa !5
  %2113 = getelementptr inbounds %struct.DState, ptr %2112, i32 0, i32 29
  %2114 = load i32, ptr %8, align 4, !tbaa !37
  %2115 = sext i32 %2114 to i64
  %2116 = getelementptr inbounds [16 x i8], ptr %2113, i64 0, i64 %2115
  %2117 = load i8, ptr %2116, align 1, !tbaa !40
  %2118 = icmp ne i8 %2117, 0
  br i1 %2118, label %2119, label %2226

2119:                                             ; preds = %2111
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2120

2120:                                             ; preds = %2222, %2119
  %2121 = load i32, ptr %9, align 4, !tbaa !37
  %2122 = icmp slt i32 %2121, 16
  br i1 %2122, label %2123, label %2225

2123:                                             ; preds = %2120
  br label %2124

2124:                                             ; preds = %2123, %144
  %2125 = load ptr, ptr %2, align 8, !tbaa !5
  %2126 = getelementptr inbounds %struct.DState, ptr %2125, i32 0, i32 1
  store i32 29, ptr %2126, align 8, !tbaa !12
  br label %2127

2127:                                             ; preds = %2207, %2124
  br label %2128

2128:                                             ; preds = %2127
  %2129 = load ptr, ptr %2, align 8, !tbaa !5
  %2130 = getelementptr inbounds %struct.DState, ptr %2129, i32 0, i32 8
  %2131 = load i32, ptr %2130, align 4, !tbaa !38
  %2132 = icmp sge i32 %2131, 1
  br i1 %2132, label %2133, label %2149

2133:                                             ; preds = %2128
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #3
  %2134 = load ptr, ptr %2, align 8, !tbaa !5
  %2135 = getelementptr inbounds %struct.DState, ptr %2134, i32 0, i32 7
  %2136 = load i32, ptr %2135, align 8, !tbaa !39
  %2137 = load ptr, ptr %2, align 8, !tbaa !5
  %2138 = getelementptr inbounds %struct.DState, ptr %2137, i32 0, i32 8
  %2139 = load i32, ptr %2138, align 4, !tbaa !38
  %2140 = sub nsw i32 %2139, 1
  %2141 = lshr i32 %2136, %2140
  %2142 = and i32 %2141, 1
  store i32 %2142, ptr %51, align 4, !tbaa !37
  %2143 = load ptr, ptr %2, align 8, !tbaa !5
  %2144 = getelementptr inbounds %struct.DState, ptr %2143, i32 0, i32 8
  %2145 = load i32, ptr %2144, align 4, !tbaa !38
  %2146 = sub nsw i32 %2145, 1
  store i32 %2146, ptr %2144, align 4, !tbaa !38
  %2147 = load i32, ptr %51, align 4, !tbaa !37
  %2148 = trunc i32 %2147 to i8
  store i8 %2148, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #3
  br label %2208

2149:                                             ; preds = %2128
  %2150 = load ptr, ptr %2, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.DState, ptr %2150, i32 0, i32 0
  %2152 = load ptr, ptr %2151, align 8, !tbaa !9
  %2153 = getelementptr inbounds %struct.bz_stream, ptr %2152, i32 0, i32 1
  %2154 = load i32, ptr %2153, align 8, !tbaa !41
  %2155 = icmp eq i32 %2154, 0
  br i1 %2155, label %2156, label %2157

2156:                                             ; preds = %2149
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2157:                                             ; preds = %2149
  %2158 = load ptr, ptr %2, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.DState, ptr %2158, i32 0, i32 7
  %2160 = load i32, ptr %2159, align 8, !tbaa !39
  %2161 = shl i32 %2160, 8
  %2162 = load ptr, ptr %2, align 8, !tbaa !5
  %2163 = getelementptr inbounds %struct.DState, ptr %2162, i32 0, i32 0
  %2164 = load ptr, ptr %2163, align 8, !tbaa !9
  %2165 = getelementptr inbounds %struct.bz_stream, ptr %2164, i32 0, i32 0
  %2166 = load ptr, ptr %2165, align 8, !tbaa !43
  %2167 = load i8, ptr %2166, align 1, !tbaa !40
  %2168 = zext i8 %2167 to i32
  %2169 = or i32 %2161, %2168
  %2170 = load ptr, ptr %2, align 8, !tbaa !5
  %2171 = getelementptr inbounds %struct.DState, ptr %2170, i32 0, i32 7
  store i32 %2169, ptr %2171, align 8, !tbaa !39
  %2172 = load ptr, ptr %2, align 8, !tbaa !5
  %2173 = getelementptr inbounds %struct.DState, ptr %2172, i32 0, i32 8
  %2174 = load i32, ptr %2173, align 4, !tbaa !38
  %2175 = add nsw i32 %2174, 8
  store i32 %2175, ptr %2173, align 4, !tbaa !38
  %2176 = load ptr, ptr %2, align 8, !tbaa !5
  %2177 = getelementptr inbounds %struct.DState, ptr %2176, i32 0, i32 0
  %2178 = load ptr, ptr %2177, align 8, !tbaa !9
  %2179 = getelementptr inbounds %struct.bz_stream, ptr %2178, i32 0, i32 0
  %2180 = load ptr, ptr %2179, align 8, !tbaa !43
  %2181 = getelementptr inbounds i8, ptr %2180, i32 1
  store ptr %2181, ptr %2179, align 8, !tbaa !43
  %2182 = load ptr, ptr %2, align 8, !tbaa !5
  %2183 = getelementptr inbounds %struct.DState, ptr %2182, i32 0, i32 0
  %2184 = load ptr, ptr %2183, align 8, !tbaa !9
  %2185 = getelementptr inbounds %struct.bz_stream, ptr %2184, i32 0, i32 1
  %2186 = load i32, ptr %2185, align 8, !tbaa !41
  %2187 = add i32 %2186, -1
  store i32 %2187, ptr %2185, align 8, !tbaa !41
  %2188 = load ptr, ptr %2, align 8, !tbaa !5
  %2189 = getelementptr inbounds %struct.DState, ptr %2188, i32 0, i32 0
  %2190 = load ptr, ptr %2189, align 8, !tbaa !9
  %2191 = getelementptr inbounds %struct.bz_stream, ptr %2190, i32 0, i32 2
  %2192 = load i32, ptr %2191, align 4, !tbaa !44
  %2193 = add i32 %2192, 1
  store i32 %2193, ptr %2191, align 4, !tbaa !44
  %2194 = load ptr, ptr %2, align 8, !tbaa !5
  %2195 = getelementptr inbounds %struct.DState, ptr %2194, i32 0, i32 0
  %2196 = load ptr, ptr %2195, align 8, !tbaa !9
  %2197 = getelementptr inbounds %struct.bz_stream, ptr %2196, i32 0, i32 2
  %2198 = load i32, ptr %2197, align 4, !tbaa !44
  %2199 = icmp eq i32 %2198, 0
  br i1 %2199, label %2200, label %2207

2200:                                             ; preds = %2157
  %2201 = load ptr, ptr %2, align 8, !tbaa !5
  %2202 = getelementptr inbounds %struct.DState, ptr %2201, i32 0, i32 0
  %2203 = load ptr, ptr %2202, align 8, !tbaa !9
  %2204 = getelementptr inbounds %struct.bz_stream, ptr %2203, i32 0, i32 3
  %2205 = load i32, ptr %2204, align 8, !tbaa !45
  %2206 = add i32 %2205, 1
  store i32 %2206, ptr %2204, align 8, !tbaa !45
  br label %2207

2207:                                             ; preds = %2200, %2157
  br label %2127

2208:                                             ; preds = %2133
  %2209 = load i8, ptr %3, align 1, !tbaa !40
  %2210 = zext i8 %2209 to i32
  %2211 = icmp eq i32 %2210, 1
  br i1 %2211, label %2212, label %2221

2212:                                             ; preds = %2208
  %2213 = load ptr, ptr %2, align 8, !tbaa !5
  %2214 = getelementptr inbounds %struct.DState, ptr %2213, i32 0, i32 28
  %2215 = load i32, ptr %8, align 4, !tbaa !37
  %2216 = mul nsw i32 %2215, 16
  %2217 = load i32, ptr %9, align 4, !tbaa !37
  %2218 = add nsw i32 %2216, %2217
  %2219 = sext i32 %2218 to i64
  %2220 = getelementptr inbounds [256 x i8], ptr %2214, i64 0, i64 %2219
  store i8 1, ptr %2220, align 1, !tbaa !40
  br label %2221

2221:                                             ; preds = %2212, %2208
  br label %2222

2222:                                             ; preds = %2221
  %2223 = load i32, ptr %9, align 4, !tbaa !37
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr %9, align 4, !tbaa !37
  br label %2120, !llvm.loop !61

2225:                                             ; preds = %2120
  br label %2226

2226:                                             ; preds = %2225, %2111
  br label %2227

2227:                                             ; preds = %2226
  %2228 = load i32, ptr %8, align 4, !tbaa !37
  %2229 = add nsw i32 %2228, 1
  store i32 %2229, ptr %8, align 4, !tbaa !37
  br label %2108, !llvm.loop !62

2230:                                             ; preds = %2108
  %2231 = load ptr, ptr %2, align 8, !tbaa !5
  call void @makeMaps_d(ptr noundef %2231)
  %2232 = load ptr, ptr %2, align 8, !tbaa !5
  %2233 = getelementptr inbounds %struct.DState, ptr %2232, i32 0, i32 27
  %2234 = load i32, ptr %2233, align 8, !tbaa !63
  %2235 = icmp eq i32 %2234, 0
  br i1 %2235, label %2236, label %2237

2236:                                             ; preds = %2230
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

2237:                                             ; preds = %2230
  %2238 = load ptr, ptr %2, align 8, !tbaa !5
  %2239 = getelementptr inbounds %struct.DState, ptr %2238, i32 0, i32 27
  %2240 = load i32, ptr %2239, align 8, !tbaa !63
  %2241 = add nsw i32 %2240, 2
  store i32 %2241, ptr %11, align 4, !tbaa !37
  br label %2242

2242:                                             ; preds = %2237, %144
  %2243 = load ptr, ptr %2, align 8, !tbaa !5
  %2244 = getelementptr inbounds %struct.DState, ptr %2243, i32 0, i32 1
  store i32 30, ptr %2244, align 8, !tbaa !12
  br label %2245

2245:                                             ; preds = %2324, %2242
  br label %2246

2246:                                             ; preds = %2245
  %2247 = load ptr, ptr %2, align 8, !tbaa !5
  %2248 = getelementptr inbounds %struct.DState, ptr %2247, i32 0, i32 8
  %2249 = load i32, ptr %2248, align 4, !tbaa !38
  %2250 = icmp sge i32 %2249, 3
  br i1 %2250, label %2251, label %2266

2251:                                             ; preds = %2246
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #3
  %2252 = load ptr, ptr %2, align 8, !tbaa !5
  %2253 = getelementptr inbounds %struct.DState, ptr %2252, i32 0, i32 7
  %2254 = load i32, ptr %2253, align 8, !tbaa !39
  %2255 = load ptr, ptr %2, align 8, !tbaa !5
  %2256 = getelementptr inbounds %struct.DState, ptr %2255, i32 0, i32 8
  %2257 = load i32, ptr %2256, align 4, !tbaa !38
  %2258 = sub nsw i32 %2257, 3
  %2259 = lshr i32 %2254, %2258
  %2260 = and i32 %2259, 7
  store i32 %2260, ptr %52, align 4, !tbaa !37
  %2261 = load ptr, ptr %2, align 8, !tbaa !5
  %2262 = getelementptr inbounds %struct.DState, ptr %2261, i32 0, i32 8
  %2263 = load i32, ptr %2262, align 4, !tbaa !38
  %2264 = sub nsw i32 %2263, 3
  store i32 %2264, ptr %2262, align 4, !tbaa !38
  %2265 = load i32, ptr %52, align 4, !tbaa !37
  store i32 %2265, ptr %12, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  br label %2325

2266:                                             ; preds = %2246
  %2267 = load ptr, ptr %2, align 8, !tbaa !5
  %2268 = getelementptr inbounds %struct.DState, ptr %2267, i32 0, i32 0
  %2269 = load ptr, ptr %2268, align 8, !tbaa !9
  %2270 = getelementptr inbounds %struct.bz_stream, ptr %2269, i32 0, i32 1
  %2271 = load i32, ptr %2270, align 8, !tbaa !41
  %2272 = icmp eq i32 %2271, 0
  br i1 %2272, label %2273, label %2274

2273:                                             ; preds = %2266
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2274:                                             ; preds = %2266
  %2275 = load ptr, ptr %2, align 8, !tbaa !5
  %2276 = getelementptr inbounds %struct.DState, ptr %2275, i32 0, i32 7
  %2277 = load i32, ptr %2276, align 8, !tbaa !39
  %2278 = shl i32 %2277, 8
  %2279 = load ptr, ptr %2, align 8, !tbaa !5
  %2280 = getelementptr inbounds %struct.DState, ptr %2279, i32 0, i32 0
  %2281 = load ptr, ptr %2280, align 8, !tbaa !9
  %2282 = getelementptr inbounds %struct.bz_stream, ptr %2281, i32 0, i32 0
  %2283 = load ptr, ptr %2282, align 8, !tbaa !43
  %2284 = load i8, ptr %2283, align 1, !tbaa !40
  %2285 = zext i8 %2284 to i32
  %2286 = or i32 %2278, %2285
  %2287 = load ptr, ptr %2, align 8, !tbaa !5
  %2288 = getelementptr inbounds %struct.DState, ptr %2287, i32 0, i32 7
  store i32 %2286, ptr %2288, align 8, !tbaa !39
  %2289 = load ptr, ptr %2, align 8, !tbaa !5
  %2290 = getelementptr inbounds %struct.DState, ptr %2289, i32 0, i32 8
  %2291 = load i32, ptr %2290, align 4, !tbaa !38
  %2292 = add nsw i32 %2291, 8
  store i32 %2292, ptr %2290, align 4, !tbaa !38
  %2293 = load ptr, ptr %2, align 8, !tbaa !5
  %2294 = getelementptr inbounds %struct.DState, ptr %2293, i32 0, i32 0
  %2295 = load ptr, ptr %2294, align 8, !tbaa !9
  %2296 = getelementptr inbounds %struct.bz_stream, ptr %2295, i32 0, i32 0
  %2297 = load ptr, ptr %2296, align 8, !tbaa !43
  %2298 = getelementptr inbounds i8, ptr %2297, i32 1
  store ptr %2298, ptr %2296, align 8, !tbaa !43
  %2299 = load ptr, ptr %2, align 8, !tbaa !5
  %2300 = getelementptr inbounds %struct.DState, ptr %2299, i32 0, i32 0
  %2301 = load ptr, ptr %2300, align 8, !tbaa !9
  %2302 = getelementptr inbounds %struct.bz_stream, ptr %2301, i32 0, i32 1
  %2303 = load i32, ptr %2302, align 8, !tbaa !41
  %2304 = add i32 %2303, -1
  store i32 %2304, ptr %2302, align 8, !tbaa !41
  %2305 = load ptr, ptr %2, align 8, !tbaa !5
  %2306 = getelementptr inbounds %struct.DState, ptr %2305, i32 0, i32 0
  %2307 = load ptr, ptr %2306, align 8, !tbaa !9
  %2308 = getelementptr inbounds %struct.bz_stream, ptr %2307, i32 0, i32 2
  %2309 = load i32, ptr %2308, align 4, !tbaa !44
  %2310 = add i32 %2309, 1
  store i32 %2310, ptr %2308, align 4, !tbaa !44
  %2311 = load ptr, ptr %2, align 8, !tbaa !5
  %2312 = getelementptr inbounds %struct.DState, ptr %2311, i32 0, i32 0
  %2313 = load ptr, ptr %2312, align 8, !tbaa !9
  %2314 = getelementptr inbounds %struct.bz_stream, ptr %2313, i32 0, i32 2
  %2315 = load i32, ptr %2314, align 4, !tbaa !44
  %2316 = icmp eq i32 %2315, 0
  br i1 %2316, label %2317, label %2324

2317:                                             ; preds = %2274
  %2318 = load ptr, ptr %2, align 8, !tbaa !5
  %2319 = getelementptr inbounds %struct.DState, ptr %2318, i32 0, i32 0
  %2320 = load ptr, ptr %2319, align 8, !tbaa !9
  %2321 = getelementptr inbounds %struct.bz_stream, ptr %2320, i32 0, i32 3
  %2322 = load i32, ptr %2321, align 8, !tbaa !45
  %2323 = add i32 %2322, 1
  store i32 %2323, ptr %2321, align 8, !tbaa !45
  br label %2324

2324:                                             ; preds = %2317, %2274
  br label %2245

2325:                                             ; preds = %2251
  %2326 = load i32, ptr %12, align 4, !tbaa !37
  %2327 = icmp slt i32 %2326, 2
  br i1 %2327, label %2331, label %2328

2328:                                             ; preds = %2325
  %2329 = load i32, ptr %12, align 4, !tbaa !37
  %2330 = icmp sgt i32 %2329, 6
  br i1 %2330, label %2331, label %2332

2331:                                             ; preds = %2328, %2325
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

2332:                                             ; preds = %2328
  br label %2333

2333:                                             ; preds = %2332, %144
  %2334 = load ptr, ptr %2, align 8, !tbaa !5
  %2335 = getelementptr inbounds %struct.DState, ptr %2334, i32 0, i32 1
  store i32 31, ptr %2335, align 8, !tbaa !12
  br label %2336

2336:                                             ; preds = %2415, %2333
  br label %2337

2337:                                             ; preds = %2336
  %2338 = load ptr, ptr %2, align 8, !tbaa !5
  %2339 = getelementptr inbounds %struct.DState, ptr %2338, i32 0, i32 8
  %2340 = load i32, ptr %2339, align 4, !tbaa !38
  %2341 = icmp sge i32 %2340, 15
  br i1 %2341, label %2342, label %2357

2342:                                             ; preds = %2337
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #3
  %2343 = load ptr, ptr %2, align 8, !tbaa !5
  %2344 = getelementptr inbounds %struct.DState, ptr %2343, i32 0, i32 7
  %2345 = load i32, ptr %2344, align 8, !tbaa !39
  %2346 = load ptr, ptr %2, align 8, !tbaa !5
  %2347 = getelementptr inbounds %struct.DState, ptr %2346, i32 0, i32 8
  %2348 = load i32, ptr %2347, align 4, !tbaa !38
  %2349 = sub nsw i32 %2348, 15
  %2350 = lshr i32 %2345, %2349
  %2351 = and i32 %2350, 32767
  store i32 %2351, ptr %53, align 4, !tbaa !37
  %2352 = load ptr, ptr %2, align 8, !tbaa !5
  %2353 = getelementptr inbounds %struct.DState, ptr %2352, i32 0, i32 8
  %2354 = load i32, ptr %2353, align 4, !tbaa !38
  %2355 = sub nsw i32 %2354, 15
  store i32 %2355, ptr %2353, align 4, !tbaa !38
  %2356 = load i32, ptr %53, align 4, !tbaa !37
  store i32 %2356, ptr %13, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  br label %2416

2357:                                             ; preds = %2337
  %2358 = load ptr, ptr %2, align 8, !tbaa !5
  %2359 = getelementptr inbounds %struct.DState, ptr %2358, i32 0, i32 0
  %2360 = load ptr, ptr %2359, align 8, !tbaa !9
  %2361 = getelementptr inbounds %struct.bz_stream, ptr %2360, i32 0, i32 1
  %2362 = load i32, ptr %2361, align 8, !tbaa !41
  %2363 = icmp eq i32 %2362, 0
  br i1 %2363, label %2364, label %2365

2364:                                             ; preds = %2357
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2365:                                             ; preds = %2357
  %2366 = load ptr, ptr %2, align 8, !tbaa !5
  %2367 = getelementptr inbounds %struct.DState, ptr %2366, i32 0, i32 7
  %2368 = load i32, ptr %2367, align 8, !tbaa !39
  %2369 = shl i32 %2368, 8
  %2370 = load ptr, ptr %2, align 8, !tbaa !5
  %2371 = getelementptr inbounds %struct.DState, ptr %2370, i32 0, i32 0
  %2372 = load ptr, ptr %2371, align 8, !tbaa !9
  %2373 = getelementptr inbounds %struct.bz_stream, ptr %2372, i32 0, i32 0
  %2374 = load ptr, ptr %2373, align 8, !tbaa !43
  %2375 = load i8, ptr %2374, align 1, !tbaa !40
  %2376 = zext i8 %2375 to i32
  %2377 = or i32 %2369, %2376
  %2378 = load ptr, ptr %2, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.DState, ptr %2378, i32 0, i32 7
  store i32 %2377, ptr %2379, align 8, !tbaa !39
  %2380 = load ptr, ptr %2, align 8, !tbaa !5
  %2381 = getelementptr inbounds %struct.DState, ptr %2380, i32 0, i32 8
  %2382 = load i32, ptr %2381, align 4, !tbaa !38
  %2383 = add nsw i32 %2382, 8
  store i32 %2383, ptr %2381, align 4, !tbaa !38
  %2384 = load ptr, ptr %2, align 8, !tbaa !5
  %2385 = getelementptr inbounds %struct.DState, ptr %2384, i32 0, i32 0
  %2386 = load ptr, ptr %2385, align 8, !tbaa !9
  %2387 = getelementptr inbounds %struct.bz_stream, ptr %2386, i32 0, i32 0
  %2388 = load ptr, ptr %2387, align 8, !tbaa !43
  %2389 = getelementptr inbounds i8, ptr %2388, i32 1
  store ptr %2389, ptr %2387, align 8, !tbaa !43
  %2390 = load ptr, ptr %2, align 8, !tbaa !5
  %2391 = getelementptr inbounds %struct.DState, ptr %2390, i32 0, i32 0
  %2392 = load ptr, ptr %2391, align 8, !tbaa !9
  %2393 = getelementptr inbounds %struct.bz_stream, ptr %2392, i32 0, i32 1
  %2394 = load i32, ptr %2393, align 8, !tbaa !41
  %2395 = add i32 %2394, -1
  store i32 %2395, ptr %2393, align 8, !tbaa !41
  %2396 = load ptr, ptr %2, align 8, !tbaa !5
  %2397 = getelementptr inbounds %struct.DState, ptr %2396, i32 0, i32 0
  %2398 = load ptr, ptr %2397, align 8, !tbaa !9
  %2399 = getelementptr inbounds %struct.bz_stream, ptr %2398, i32 0, i32 2
  %2400 = load i32, ptr %2399, align 4, !tbaa !44
  %2401 = add i32 %2400, 1
  store i32 %2401, ptr %2399, align 4, !tbaa !44
  %2402 = load ptr, ptr %2, align 8, !tbaa !5
  %2403 = getelementptr inbounds %struct.DState, ptr %2402, i32 0, i32 0
  %2404 = load ptr, ptr %2403, align 8, !tbaa !9
  %2405 = getelementptr inbounds %struct.bz_stream, ptr %2404, i32 0, i32 2
  %2406 = load i32, ptr %2405, align 4, !tbaa !44
  %2407 = icmp eq i32 %2406, 0
  br i1 %2407, label %2408, label %2415

2408:                                             ; preds = %2365
  %2409 = load ptr, ptr %2, align 8, !tbaa !5
  %2410 = getelementptr inbounds %struct.DState, ptr %2409, i32 0, i32 0
  %2411 = load ptr, ptr %2410, align 8, !tbaa !9
  %2412 = getelementptr inbounds %struct.bz_stream, ptr %2411, i32 0, i32 3
  %2413 = load i32, ptr %2412, align 8, !tbaa !45
  %2414 = add i32 %2413, 1
  store i32 %2414, ptr %2412, align 8, !tbaa !45
  br label %2415

2415:                                             ; preds = %2408, %2365
  br label %2336

2416:                                             ; preds = %2342
  %2417 = load i32, ptr %13, align 4, !tbaa !37
  %2418 = icmp slt i32 %2417, 1
  br i1 %2418, label %2419, label %2420

2419:                                             ; preds = %2416
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

2420:                                             ; preds = %2416
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2421

2421:                                             ; preds = %2533, %2420
  %2422 = load i32, ptr %8, align 4, !tbaa !37
  %2423 = load i32, ptr %13, align 4, !tbaa !37
  %2424 = icmp slt i32 %2422, %2423
  br i1 %2424, label %2425, label %2536

2425:                                             ; preds = %2421
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2426

2426:                                             ; preds = %2524, %2425
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427, %144
  %2429 = load ptr, ptr %2, align 8, !tbaa !5
  %2430 = getelementptr inbounds %struct.DState, ptr %2429, i32 0, i32 1
  store i32 32, ptr %2430, align 8, !tbaa !12
  br label %2431

2431:                                             ; preds = %2511, %2428
  br label %2432

2432:                                             ; preds = %2431
  %2433 = load ptr, ptr %2, align 8, !tbaa !5
  %2434 = getelementptr inbounds %struct.DState, ptr %2433, i32 0, i32 8
  %2435 = load i32, ptr %2434, align 4, !tbaa !38
  %2436 = icmp sge i32 %2435, 1
  br i1 %2436, label %2437, label %2453

2437:                                             ; preds = %2432
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  %2438 = load ptr, ptr %2, align 8, !tbaa !5
  %2439 = getelementptr inbounds %struct.DState, ptr %2438, i32 0, i32 7
  %2440 = load i32, ptr %2439, align 8, !tbaa !39
  %2441 = load ptr, ptr %2, align 8, !tbaa !5
  %2442 = getelementptr inbounds %struct.DState, ptr %2441, i32 0, i32 8
  %2443 = load i32, ptr %2442, align 4, !tbaa !38
  %2444 = sub nsw i32 %2443, 1
  %2445 = lshr i32 %2440, %2444
  %2446 = and i32 %2445, 1
  store i32 %2446, ptr %54, align 4, !tbaa !37
  %2447 = load ptr, ptr %2, align 8, !tbaa !5
  %2448 = getelementptr inbounds %struct.DState, ptr %2447, i32 0, i32 8
  %2449 = load i32, ptr %2448, align 4, !tbaa !38
  %2450 = sub nsw i32 %2449, 1
  store i32 %2450, ptr %2448, align 4, !tbaa !38
  %2451 = load i32, ptr %54, align 4, !tbaa !37
  %2452 = trunc i32 %2451 to i8
  store i8 %2452, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  br label %2512

2453:                                             ; preds = %2432
  %2454 = load ptr, ptr %2, align 8, !tbaa !5
  %2455 = getelementptr inbounds %struct.DState, ptr %2454, i32 0, i32 0
  %2456 = load ptr, ptr %2455, align 8, !tbaa !9
  %2457 = getelementptr inbounds %struct.bz_stream, ptr %2456, i32 0, i32 1
  %2458 = load i32, ptr %2457, align 8, !tbaa !41
  %2459 = icmp eq i32 %2458, 0
  br i1 %2459, label %2460, label %2461

2460:                                             ; preds = %2453
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2461:                                             ; preds = %2453
  %2462 = load ptr, ptr %2, align 8, !tbaa !5
  %2463 = getelementptr inbounds %struct.DState, ptr %2462, i32 0, i32 7
  %2464 = load i32, ptr %2463, align 8, !tbaa !39
  %2465 = shl i32 %2464, 8
  %2466 = load ptr, ptr %2, align 8, !tbaa !5
  %2467 = getelementptr inbounds %struct.DState, ptr %2466, i32 0, i32 0
  %2468 = load ptr, ptr %2467, align 8, !tbaa !9
  %2469 = getelementptr inbounds %struct.bz_stream, ptr %2468, i32 0, i32 0
  %2470 = load ptr, ptr %2469, align 8, !tbaa !43
  %2471 = load i8, ptr %2470, align 1, !tbaa !40
  %2472 = zext i8 %2471 to i32
  %2473 = or i32 %2465, %2472
  %2474 = load ptr, ptr %2, align 8, !tbaa !5
  %2475 = getelementptr inbounds %struct.DState, ptr %2474, i32 0, i32 7
  store i32 %2473, ptr %2475, align 8, !tbaa !39
  %2476 = load ptr, ptr %2, align 8, !tbaa !5
  %2477 = getelementptr inbounds %struct.DState, ptr %2476, i32 0, i32 8
  %2478 = load i32, ptr %2477, align 4, !tbaa !38
  %2479 = add nsw i32 %2478, 8
  store i32 %2479, ptr %2477, align 4, !tbaa !38
  %2480 = load ptr, ptr %2, align 8, !tbaa !5
  %2481 = getelementptr inbounds %struct.DState, ptr %2480, i32 0, i32 0
  %2482 = load ptr, ptr %2481, align 8, !tbaa !9
  %2483 = getelementptr inbounds %struct.bz_stream, ptr %2482, i32 0, i32 0
  %2484 = load ptr, ptr %2483, align 8, !tbaa !43
  %2485 = getelementptr inbounds i8, ptr %2484, i32 1
  store ptr %2485, ptr %2483, align 8, !tbaa !43
  %2486 = load ptr, ptr %2, align 8, !tbaa !5
  %2487 = getelementptr inbounds %struct.DState, ptr %2486, i32 0, i32 0
  %2488 = load ptr, ptr %2487, align 8, !tbaa !9
  %2489 = getelementptr inbounds %struct.bz_stream, ptr %2488, i32 0, i32 1
  %2490 = load i32, ptr %2489, align 8, !tbaa !41
  %2491 = add i32 %2490, -1
  store i32 %2491, ptr %2489, align 8, !tbaa !41
  %2492 = load ptr, ptr %2, align 8, !tbaa !5
  %2493 = getelementptr inbounds %struct.DState, ptr %2492, i32 0, i32 0
  %2494 = load ptr, ptr %2493, align 8, !tbaa !9
  %2495 = getelementptr inbounds %struct.bz_stream, ptr %2494, i32 0, i32 2
  %2496 = load i32, ptr %2495, align 4, !tbaa !44
  %2497 = add i32 %2496, 1
  store i32 %2497, ptr %2495, align 4, !tbaa !44
  %2498 = load ptr, ptr %2, align 8, !tbaa !5
  %2499 = getelementptr inbounds %struct.DState, ptr %2498, i32 0, i32 0
  %2500 = load ptr, ptr %2499, align 8, !tbaa !9
  %2501 = getelementptr inbounds %struct.bz_stream, ptr %2500, i32 0, i32 2
  %2502 = load i32, ptr %2501, align 4, !tbaa !44
  %2503 = icmp eq i32 %2502, 0
  br i1 %2503, label %2504, label %2511

2504:                                             ; preds = %2461
  %2505 = load ptr, ptr %2, align 8, !tbaa !5
  %2506 = getelementptr inbounds %struct.DState, ptr %2505, i32 0, i32 0
  %2507 = load ptr, ptr %2506, align 8, !tbaa !9
  %2508 = getelementptr inbounds %struct.bz_stream, ptr %2507, i32 0, i32 3
  %2509 = load i32, ptr %2508, align 8, !tbaa !45
  %2510 = add i32 %2509, 1
  store i32 %2510, ptr %2508, align 8, !tbaa !45
  br label %2511

2511:                                             ; preds = %2504, %2461
  br label %2431

2512:                                             ; preds = %2437
  %2513 = load i8, ptr %3, align 1, !tbaa !40
  %2514 = zext i8 %2513 to i32
  %2515 = icmp eq i32 %2514, 0
  br i1 %2515, label %2516, label %2517

2516:                                             ; preds = %2512
  br label %2525

2517:                                             ; preds = %2512
  %2518 = load i32, ptr %9, align 4, !tbaa !37
  %2519 = add nsw i32 %2518, 1
  store i32 %2519, ptr %9, align 4, !tbaa !37
  %2520 = load i32, ptr %9, align 4, !tbaa !37
  %2521 = load i32, ptr %12, align 4, !tbaa !37
  %2522 = icmp sge i32 %2520, %2521
  br i1 %2522, label %2523, label %2524

2523:                                             ; preds = %2517
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

2524:                                             ; preds = %2517
  br label %2426

2525:                                             ; preds = %2516
  %2526 = load i32, ptr %9, align 4, !tbaa !37
  %2527 = trunc i32 %2526 to i8
  %2528 = load ptr, ptr %2, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.DState, ptr %2528, i32 0, i32 34
  %2530 = load i32, ptr %8, align 4, !tbaa !37
  %2531 = sext i32 %2530 to i64
  %2532 = getelementptr inbounds [18002 x i8], ptr %2529, i64 0, i64 %2531
  store i8 %2527, ptr %2532, align 1, !tbaa !40
  br label %2533

2533:                                             ; preds = %2525
  %2534 = load i32, ptr %8, align 4, !tbaa !37
  %2535 = add nsw i32 %2534, 1
  store i32 %2535, ptr %8, align 4, !tbaa !37
  br label %2421, !llvm.loop !64

2536:                                             ; preds = %2421
  call void @llvm.lifetime.start.p0(i64 6, ptr %55) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #3
  store i8 0, ptr %57, align 1, !tbaa !40
  br label %2537

2537:                                             ; preds = %2547, %2536
  %2538 = load i8, ptr %57, align 1, !tbaa !40
  %2539 = zext i8 %2538 to i32
  %2540 = load i32, ptr %12, align 4, !tbaa !37
  %2541 = icmp slt i32 %2539, %2540
  br i1 %2541, label %2542, label %2550

2542:                                             ; preds = %2537
  %2543 = load i8, ptr %57, align 1, !tbaa !40
  %2544 = load i8, ptr %57, align 1, !tbaa !40
  %2545 = zext i8 %2544 to i64
  %2546 = getelementptr inbounds [6 x i8], ptr %55, i64 0, i64 %2545
  store i8 %2543, ptr %2546, align 1, !tbaa !40
  br label %2547

2547:                                             ; preds = %2542
  %2548 = load i8, ptr %57, align 1, !tbaa !40
  %2549 = add i8 %2548, 1
  store i8 %2549, ptr %57, align 1, !tbaa !40
  br label %2537, !llvm.loop !65

2550:                                             ; preds = %2537
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2551

2551:                                             ; preds = %2591, %2550
  %2552 = load i32, ptr %8, align 4, !tbaa !37
  %2553 = load i32, ptr %13, align 4, !tbaa !37
  %2554 = icmp slt i32 %2552, %2553
  br i1 %2554, label %2555, label %2594

2555:                                             ; preds = %2551
  %2556 = load ptr, ptr %2, align 8, !tbaa !5
  %2557 = getelementptr inbounds %struct.DState, ptr %2556, i32 0, i32 34
  %2558 = load i32, ptr %8, align 4, !tbaa !37
  %2559 = sext i32 %2558 to i64
  %2560 = getelementptr inbounds [18002 x i8], ptr %2557, i64 0, i64 %2559
  %2561 = load i8, ptr %2560, align 1, !tbaa !40
  store i8 %2561, ptr %57, align 1, !tbaa !40
  %2562 = load i8, ptr %57, align 1, !tbaa !40
  %2563 = zext i8 %2562 to i64
  %2564 = getelementptr inbounds [6 x i8], ptr %55, i64 0, i64 %2563
  %2565 = load i8, ptr %2564, align 1, !tbaa !40
  store i8 %2565, ptr %56, align 1, !tbaa !40
  br label %2566

2566:                                             ; preds = %2570, %2555
  %2567 = load i8, ptr %57, align 1, !tbaa !40
  %2568 = zext i8 %2567 to i32
  %2569 = icmp sgt i32 %2568, 0
  br i1 %2569, label %2570, label %2582

2570:                                             ; preds = %2566
  %2571 = load i8, ptr %57, align 1, !tbaa !40
  %2572 = zext i8 %2571 to i32
  %2573 = sub nsw i32 %2572, 1
  %2574 = sext i32 %2573 to i64
  %2575 = getelementptr inbounds [6 x i8], ptr %55, i64 0, i64 %2574
  %2576 = load i8, ptr %2575, align 1, !tbaa !40
  %2577 = load i8, ptr %57, align 1, !tbaa !40
  %2578 = zext i8 %2577 to i64
  %2579 = getelementptr inbounds [6 x i8], ptr %55, i64 0, i64 %2578
  store i8 %2576, ptr %2579, align 1, !tbaa !40
  %2580 = load i8, ptr %57, align 1, !tbaa !40
  %2581 = add i8 %2580, -1
  store i8 %2581, ptr %57, align 1, !tbaa !40
  br label %2566, !llvm.loop !66

2582:                                             ; preds = %2566
  %2583 = load i8, ptr %56, align 1, !tbaa !40
  %2584 = getelementptr inbounds [6 x i8], ptr %55, i64 0, i64 0
  store i8 %2583, ptr %2584, align 1, !tbaa !40
  %2585 = load i8, ptr %56, align 1, !tbaa !40
  %2586 = load ptr, ptr %2, align 8, !tbaa !5
  %2587 = getelementptr inbounds %struct.DState, ptr %2586, i32 0, i32 33
  %2588 = load i32, ptr %8, align 4, !tbaa !37
  %2589 = sext i32 %2588 to i64
  %2590 = getelementptr inbounds [18002 x i8], ptr %2587, i64 0, i64 %2589
  store i8 %2585, ptr %2590, align 1, !tbaa !40
  br label %2591

2591:                                             ; preds = %2582
  %2592 = load i32, ptr %8, align 4, !tbaa !37
  %2593 = add nsw i32 %2592, 1
  store i32 %2593, ptr %8, align 4, !tbaa !37
  br label %2551, !llvm.loop !67

2594:                                             ; preds = %2551
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #3
  call void @llvm.lifetime.end.p0(i64 6, ptr %55) #3
  store i32 0, ptr %10, align 4, !tbaa !37
  br label %2595

2595:                                             ; preds = %2898, %2594
  %2596 = load i32, ptr %10, align 4, !tbaa !37
  %2597 = load i32, ptr %12, align 4, !tbaa !37
  %2598 = icmp slt i32 %2596, %2597
  br i1 %2598, label %2599, label %2901

2599:                                             ; preds = %2595
  br label %2600

2600:                                             ; preds = %2599, %144
  %2601 = load ptr, ptr %2, align 8, !tbaa !5
  %2602 = getelementptr inbounds %struct.DState, ptr %2601, i32 0, i32 1
  store i32 33, ptr %2602, align 8, !tbaa !12
  br label %2603

2603:                                             ; preds = %2682, %2600
  br label %2604

2604:                                             ; preds = %2603
  %2605 = load ptr, ptr %2, align 8, !tbaa !5
  %2606 = getelementptr inbounds %struct.DState, ptr %2605, i32 0, i32 8
  %2607 = load i32, ptr %2606, align 4, !tbaa !38
  %2608 = icmp sge i32 %2607, 5
  br i1 %2608, label %2609, label %2624

2609:                                             ; preds = %2604
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #3
  %2610 = load ptr, ptr %2, align 8, !tbaa !5
  %2611 = getelementptr inbounds %struct.DState, ptr %2610, i32 0, i32 7
  %2612 = load i32, ptr %2611, align 8, !tbaa !39
  %2613 = load ptr, ptr %2, align 8, !tbaa !5
  %2614 = getelementptr inbounds %struct.DState, ptr %2613, i32 0, i32 8
  %2615 = load i32, ptr %2614, align 4, !tbaa !38
  %2616 = sub nsw i32 %2615, 5
  %2617 = lshr i32 %2612, %2616
  %2618 = and i32 %2617, 31
  store i32 %2618, ptr %58, align 4, !tbaa !37
  %2619 = load ptr, ptr %2, align 8, !tbaa !5
  %2620 = getelementptr inbounds %struct.DState, ptr %2619, i32 0, i32 8
  %2621 = load i32, ptr %2620, align 4, !tbaa !38
  %2622 = sub nsw i32 %2621, 5
  store i32 %2622, ptr %2620, align 4, !tbaa !38
  %2623 = load i32, ptr %58, align 4, !tbaa !37
  store i32 %2623, ptr %22, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  br label %2683

2624:                                             ; preds = %2604
  %2625 = load ptr, ptr %2, align 8, !tbaa !5
  %2626 = getelementptr inbounds %struct.DState, ptr %2625, i32 0, i32 0
  %2627 = load ptr, ptr %2626, align 8, !tbaa !9
  %2628 = getelementptr inbounds %struct.bz_stream, ptr %2627, i32 0, i32 1
  %2629 = load i32, ptr %2628, align 8, !tbaa !41
  %2630 = icmp eq i32 %2629, 0
  br i1 %2630, label %2631, label %2632

2631:                                             ; preds = %2624
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2632:                                             ; preds = %2624
  %2633 = load ptr, ptr %2, align 8, !tbaa !5
  %2634 = getelementptr inbounds %struct.DState, ptr %2633, i32 0, i32 7
  %2635 = load i32, ptr %2634, align 8, !tbaa !39
  %2636 = shl i32 %2635, 8
  %2637 = load ptr, ptr %2, align 8, !tbaa !5
  %2638 = getelementptr inbounds %struct.DState, ptr %2637, i32 0, i32 0
  %2639 = load ptr, ptr %2638, align 8, !tbaa !9
  %2640 = getelementptr inbounds %struct.bz_stream, ptr %2639, i32 0, i32 0
  %2641 = load ptr, ptr %2640, align 8, !tbaa !43
  %2642 = load i8, ptr %2641, align 1, !tbaa !40
  %2643 = zext i8 %2642 to i32
  %2644 = or i32 %2636, %2643
  %2645 = load ptr, ptr %2, align 8, !tbaa !5
  %2646 = getelementptr inbounds %struct.DState, ptr %2645, i32 0, i32 7
  store i32 %2644, ptr %2646, align 8, !tbaa !39
  %2647 = load ptr, ptr %2, align 8, !tbaa !5
  %2648 = getelementptr inbounds %struct.DState, ptr %2647, i32 0, i32 8
  %2649 = load i32, ptr %2648, align 4, !tbaa !38
  %2650 = add nsw i32 %2649, 8
  store i32 %2650, ptr %2648, align 4, !tbaa !38
  %2651 = load ptr, ptr %2, align 8, !tbaa !5
  %2652 = getelementptr inbounds %struct.DState, ptr %2651, i32 0, i32 0
  %2653 = load ptr, ptr %2652, align 8, !tbaa !9
  %2654 = getelementptr inbounds %struct.bz_stream, ptr %2653, i32 0, i32 0
  %2655 = load ptr, ptr %2654, align 8, !tbaa !43
  %2656 = getelementptr inbounds i8, ptr %2655, i32 1
  store ptr %2656, ptr %2654, align 8, !tbaa !43
  %2657 = load ptr, ptr %2, align 8, !tbaa !5
  %2658 = getelementptr inbounds %struct.DState, ptr %2657, i32 0, i32 0
  %2659 = load ptr, ptr %2658, align 8, !tbaa !9
  %2660 = getelementptr inbounds %struct.bz_stream, ptr %2659, i32 0, i32 1
  %2661 = load i32, ptr %2660, align 8, !tbaa !41
  %2662 = add i32 %2661, -1
  store i32 %2662, ptr %2660, align 8, !tbaa !41
  %2663 = load ptr, ptr %2, align 8, !tbaa !5
  %2664 = getelementptr inbounds %struct.DState, ptr %2663, i32 0, i32 0
  %2665 = load ptr, ptr %2664, align 8, !tbaa !9
  %2666 = getelementptr inbounds %struct.bz_stream, ptr %2665, i32 0, i32 2
  %2667 = load i32, ptr %2666, align 4, !tbaa !44
  %2668 = add i32 %2667, 1
  store i32 %2668, ptr %2666, align 4, !tbaa !44
  %2669 = load ptr, ptr %2, align 8, !tbaa !5
  %2670 = getelementptr inbounds %struct.DState, ptr %2669, i32 0, i32 0
  %2671 = load ptr, ptr %2670, align 8, !tbaa !9
  %2672 = getelementptr inbounds %struct.bz_stream, ptr %2671, i32 0, i32 2
  %2673 = load i32, ptr %2672, align 4, !tbaa !44
  %2674 = icmp eq i32 %2673, 0
  br i1 %2674, label %2675, label %2682

2675:                                             ; preds = %2632
  %2676 = load ptr, ptr %2, align 8, !tbaa !5
  %2677 = getelementptr inbounds %struct.DState, ptr %2676, i32 0, i32 0
  %2678 = load ptr, ptr %2677, align 8, !tbaa !9
  %2679 = getelementptr inbounds %struct.bz_stream, ptr %2678, i32 0, i32 3
  %2680 = load i32, ptr %2679, align 8, !tbaa !45
  %2681 = add i32 %2680, 1
  store i32 %2681, ptr %2679, align 8, !tbaa !45
  br label %2682

2682:                                             ; preds = %2675, %2632
  br label %2603

2683:                                             ; preds = %2609
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2684

2684:                                             ; preds = %2894, %2683
  %2685 = load i32, ptr %8, align 4, !tbaa !37
  %2686 = load i32, ptr %11, align 4, !tbaa !37
  %2687 = icmp slt i32 %2685, %2686
  br i1 %2687, label %2688, label %2897

2688:                                             ; preds = %2684
  br label %2689

2689:                                             ; preds = %2882, %2688
  br label %2690

2690:                                             ; preds = %2689
  %2691 = load i32, ptr %22, align 4, !tbaa !37
  %2692 = icmp slt i32 %2691, 1
  br i1 %2692, label %2696, label %2693

2693:                                             ; preds = %2690
  %2694 = load i32, ptr %22, align 4, !tbaa !37
  %2695 = icmp sgt i32 %2694, 20
  br i1 %2695, label %2696, label %2697

2696:                                             ; preds = %2693, %2690
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

2697:                                             ; preds = %2693
  br label %2698

2698:                                             ; preds = %2697, %144
  %2699 = load ptr, ptr %2, align 8, !tbaa !5
  %2700 = getelementptr inbounds %struct.DState, ptr %2699, i32 0, i32 1
  store i32 34, ptr %2700, align 8, !tbaa !12
  br label %2701

2701:                                             ; preds = %2781, %2698
  br label %2702

2702:                                             ; preds = %2701
  %2703 = load ptr, ptr %2, align 8, !tbaa !5
  %2704 = getelementptr inbounds %struct.DState, ptr %2703, i32 0, i32 8
  %2705 = load i32, ptr %2704, align 4, !tbaa !38
  %2706 = icmp sge i32 %2705, 1
  br i1 %2706, label %2707, label %2723

2707:                                             ; preds = %2702
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  %2708 = load ptr, ptr %2, align 8, !tbaa !5
  %2709 = getelementptr inbounds %struct.DState, ptr %2708, i32 0, i32 7
  %2710 = load i32, ptr %2709, align 8, !tbaa !39
  %2711 = load ptr, ptr %2, align 8, !tbaa !5
  %2712 = getelementptr inbounds %struct.DState, ptr %2711, i32 0, i32 8
  %2713 = load i32, ptr %2712, align 4, !tbaa !38
  %2714 = sub nsw i32 %2713, 1
  %2715 = lshr i32 %2710, %2714
  %2716 = and i32 %2715, 1
  store i32 %2716, ptr %59, align 4, !tbaa !37
  %2717 = load ptr, ptr %2, align 8, !tbaa !5
  %2718 = getelementptr inbounds %struct.DState, ptr %2717, i32 0, i32 8
  %2719 = load i32, ptr %2718, align 4, !tbaa !38
  %2720 = sub nsw i32 %2719, 1
  store i32 %2720, ptr %2718, align 4, !tbaa !38
  %2721 = load i32, ptr %59, align 4, !tbaa !37
  %2722 = trunc i32 %2721 to i8
  store i8 %2722, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  br label %2782

2723:                                             ; preds = %2702
  %2724 = load ptr, ptr %2, align 8, !tbaa !5
  %2725 = getelementptr inbounds %struct.DState, ptr %2724, i32 0, i32 0
  %2726 = load ptr, ptr %2725, align 8, !tbaa !9
  %2727 = getelementptr inbounds %struct.bz_stream, ptr %2726, i32 0, i32 1
  %2728 = load i32, ptr %2727, align 8, !tbaa !41
  %2729 = icmp eq i32 %2728, 0
  br i1 %2729, label %2730, label %2731

2730:                                             ; preds = %2723
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2731:                                             ; preds = %2723
  %2732 = load ptr, ptr %2, align 8, !tbaa !5
  %2733 = getelementptr inbounds %struct.DState, ptr %2732, i32 0, i32 7
  %2734 = load i32, ptr %2733, align 8, !tbaa !39
  %2735 = shl i32 %2734, 8
  %2736 = load ptr, ptr %2, align 8, !tbaa !5
  %2737 = getelementptr inbounds %struct.DState, ptr %2736, i32 0, i32 0
  %2738 = load ptr, ptr %2737, align 8, !tbaa !9
  %2739 = getelementptr inbounds %struct.bz_stream, ptr %2738, i32 0, i32 0
  %2740 = load ptr, ptr %2739, align 8, !tbaa !43
  %2741 = load i8, ptr %2740, align 1, !tbaa !40
  %2742 = zext i8 %2741 to i32
  %2743 = or i32 %2735, %2742
  %2744 = load ptr, ptr %2, align 8, !tbaa !5
  %2745 = getelementptr inbounds %struct.DState, ptr %2744, i32 0, i32 7
  store i32 %2743, ptr %2745, align 8, !tbaa !39
  %2746 = load ptr, ptr %2, align 8, !tbaa !5
  %2747 = getelementptr inbounds %struct.DState, ptr %2746, i32 0, i32 8
  %2748 = load i32, ptr %2747, align 4, !tbaa !38
  %2749 = add nsw i32 %2748, 8
  store i32 %2749, ptr %2747, align 4, !tbaa !38
  %2750 = load ptr, ptr %2, align 8, !tbaa !5
  %2751 = getelementptr inbounds %struct.DState, ptr %2750, i32 0, i32 0
  %2752 = load ptr, ptr %2751, align 8, !tbaa !9
  %2753 = getelementptr inbounds %struct.bz_stream, ptr %2752, i32 0, i32 0
  %2754 = load ptr, ptr %2753, align 8, !tbaa !43
  %2755 = getelementptr inbounds i8, ptr %2754, i32 1
  store ptr %2755, ptr %2753, align 8, !tbaa !43
  %2756 = load ptr, ptr %2, align 8, !tbaa !5
  %2757 = getelementptr inbounds %struct.DState, ptr %2756, i32 0, i32 0
  %2758 = load ptr, ptr %2757, align 8, !tbaa !9
  %2759 = getelementptr inbounds %struct.bz_stream, ptr %2758, i32 0, i32 1
  %2760 = load i32, ptr %2759, align 8, !tbaa !41
  %2761 = add i32 %2760, -1
  store i32 %2761, ptr %2759, align 8, !tbaa !41
  %2762 = load ptr, ptr %2, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.DState, ptr %2762, i32 0, i32 0
  %2764 = load ptr, ptr %2763, align 8, !tbaa !9
  %2765 = getelementptr inbounds %struct.bz_stream, ptr %2764, i32 0, i32 2
  %2766 = load i32, ptr %2765, align 4, !tbaa !44
  %2767 = add i32 %2766, 1
  store i32 %2767, ptr %2765, align 4, !tbaa !44
  %2768 = load ptr, ptr %2, align 8, !tbaa !5
  %2769 = getelementptr inbounds %struct.DState, ptr %2768, i32 0, i32 0
  %2770 = load ptr, ptr %2769, align 8, !tbaa !9
  %2771 = getelementptr inbounds %struct.bz_stream, ptr %2770, i32 0, i32 2
  %2772 = load i32, ptr %2771, align 4, !tbaa !44
  %2773 = icmp eq i32 %2772, 0
  br i1 %2773, label %2774, label %2781

2774:                                             ; preds = %2731
  %2775 = load ptr, ptr %2, align 8, !tbaa !5
  %2776 = getelementptr inbounds %struct.DState, ptr %2775, i32 0, i32 0
  %2777 = load ptr, ptr %2776, align 8, !tbaa !9
  %2778 = getelementptr inbounds %struct.bz_stream, ptr %2777, i32 0, i32 3
  %2779 = load i32, ptr %2778, align 8, !tbaa !45
  %2780 = add i32 %2779, 1
  store i32 %2780, ptr %2778, align 8, !tbaa !45
  br label %2781

2781:                                             ; preds = %2774, %2731
  br label %2701

2782:                                             ; preds = %2707
  %2783 = load i8, ptr %3, align 1, !tbaa !40
  %2784 = zext i8 %2783 to i32
  %2785 = icmp eq i32 %2784, 0
  br i1 %2785, label %2786, label %2787

2786:                                             ; preds = %2782
  br label %2883

2787:                                             ; preds = %2782
  br label %2788

2788:                                             ; preds = %2787, %144
  %2789 = load ptr, ptr %2, align 8, !tbaa !5
  %2790 = getelementptr inbounds %struct.DState, ptr %2789, i32 0, i32 1
  store i32 35, ptr %2790, align 8, !tbaa !12
  br label %2791

2791:                                             ; preds = %2871, %2788
  br label %2792

2792:                                             ; preds = %2791
  %2793 = load ptr, ptr %2, align 8, !tbaa !5
  %2794 = getelementptr inbounds %struct.DState, ptr %2793, i32 0, i32 8
  %2795 = load i32, ptr %2794, align 4, !tbaa !38
  %2796 = icmp sge i32 %2795, 1
  br i1 %2796, label %2797, label %2813

2797:                                             ; preds = %2792
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  %2798 = load ptr, ptr %2, align 8, !tbaa !5
  %2799 = getelementptr inbounds %struct.DState, ptr %2798, i32 0, i32 7
  %2800 = load i32, ptr %2799, align 8, !tbaa !39
  %2801 = load ptr, ptr %2, align 8, !tbaa !5
  %2802 = getelementptr inbounds %struct.DState, ptr %2801, i32 0, i32 8
  %2803 = load i32, ptr %2802, align 4, !tbaa !38
  %2804 = sub nsw i32 %2803, 1
  %2805 = lshr i32 %2800, %2804
  %2806 = and i32 %2805, 1
  store i32 %2806, ptr %60, align 4, !tbaa !37
  %2807 = load ptr, ptr %2, align 8, !tbaa !5
  %2808 = getelementptr inbounds %struct.DState, ptr %2807, i32 0, i32 8
  %2809 = load i32, ptr %2808, align 4, !tbaa !38
  %2810 = sub nsw i32 %2809, 1
  store i32 %2810, ptr %2808, align 4, !tbaa !38
  %2811 = load i32, ptr %60, align 4, !tbaa !37
  %2812 = trunc i32 %2811 to i8
  store i8 %2812, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  br label %2872

2813:                                             ; preds = %2792
  %2814 = load ptr, ptr %2, align 8, !tbaa !5
  %2815 = getelementptr inbounds %struct.DState, ptr %2814, i32 0, i32 0
  %2816 = load ptr, ptr %2815, align 8, !tbaa !9
  %2817 = getelementptr inbounds %struct.bz_stream, ptr %2816, i32 0, i32 1
  %2818 = load i32, ptr %2817, align 8, !tbaa !41
  %2819 = icmp eq i32 %2818, 0
  br i1 %2819, label %2820, label %2821

2820:                                             ; preds = %2813
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

2821:                                             ; preds = %2813
  %2822 = load ptr, ptr %2, align 8, !tbaa !5
  %2823 = getelementptr inbounds %struct.DState, ptr %2822, i32 0, i32 7
  %2824 = load i32, ptr %2823, align 8, !tbaa !39
  %2825 = shl i32 %2824, 8
  %2826 = load ptr, ptr %2, align 8, !tbaa !5
  %2827 = getelementptr inbounds %struct.DState, ptr %2826, i32 0, i32 0
  %2828 = load ptr, ptr %2827, align 8, !tbaa !9
  %2829 = getelementptr inbounds %struct.bz_stream, ptr %2828, i32 0, i32 0
  %2830 = load ptr, ptr %2829, align 8, !tbaa !43
  %2831 = load i8, ptr %2830, align 1, !tbaa !40
  %2832 = zext i8 %2831 to i32
  %2833 = or i32 %2825, %2832
  %2834 = load ptr, ptr %2, align 8, !tbaa !5
  %2835 = getelementptr inbounds %struct.DState, ptr %2834, i32 0, i32 7
  store i32 %2833, ptr %2835, align 8, !tbaa !39
  %2836 = load ptr, ptr %2, align 8, !tbaa !5
  %2837 = getelementptr inbounds %struct.DState, ptr %2836, i32 0, i32 8
  %2838 = load i32, ptr %2837, align 4, !tbaa !38
  %2839 = add nsw i32 %2838, 8
  store i32 %2839, ptr %2837, align 4, !tbaa !38
  %2840 = load ptr, ptr %2, align 8, !tbaa !5
  %2841 = getelementptr inbounds %struct.DState, ptr %2840, i32 0, i32 0
  %2842 = load ptr, ptr %2841, align 8, !tbaa !9
  %2843 = getelementptr inbounds %struct.bz_stream, ptr %2842, i32 0, i32 0
  %2844 = load ptr, ptr %2843, align 8, !tbaa !43
  %2845 = getelementptr inbounds i8, ptr %2844, i32 1
  store ptr %2845, ptr %2843, align 8, !tbaa !43
  %2846 = load ptr, ptr %2, align 8, !tbaa !5
  %2847 = getelementptr inbounds %struct.DState, ptr %2846, i32 0, i32 0
  %2848 = load ptr, ptr %2847, align 8, !tbaa !9
  %2849 = getelementptr inbounds %struct.bz_stream, ptr %2848, i32 0, i32 1
  %2850 = load i32, ptr %2849, align 8, !tbaa !41
  %2851 = add i32 %2850, -1
  store i32 %2851, ptr %2849, align 8, !tbaa !41
  %2852 = load ptr, ptr %2, align 8, !tbaa !5
  %2853 = getelementptr inbounds %struct.DState, ptr %2852, i32 0, i32 0
  %2854 = load ptr, ptr %2853, align 8, !tbaa !9
  %2855 = getelementptr inbounds %struct.bz_stream, ptr %2854, i32 0, i32 2
  %2856 = load i32, ptr %2855, align 4, !tbaa !44
  %2857 = add i32 %2856, 1
  store i32 %2857, ptr %2855, align 4, !tbaa !44
  %2858 = load ptr, ptr %2, align 8, !tbaa !5
  %2859 = getelementptr inbounds %struct.DState, ptr %2858, i32 0, i32 0
  %2860 = load ptr, ptr %2859, align 8, !tbaa !9
  %2861 = getelementptr inbounds %struct.bz_stream, ptr %2860, i32 0, i32 2
  %2862 = load i32, ptr %2861, align 4, !tbaa !44
  %2863 = icmp eq i32 %2862, 0
  br i1 %2863, label %2864, label %2871

2864:                                             ; preds = %2821
  %2865 = load ptr, ptr %2, align 8, !tbaa !5
  %2866 = getelementptr inbounds %struct.DState, ptr %2865, i32 0, i32 0
  %2867 = load ptr, ptr %2866, align 8, !tbaa !9
  %2868 = getelementptr inbounds %struct.bz_stream, ptr %2867, i32 0, i32 3
  %2869 = load i32, ptr %2868, align 8, !tbaa !45
  %2870 = add i32 %2869, 1
  store i32 %2870, ptr %2868, align 8, !tbaa !45
  br label %2871

2871:                                             ; preds = %2864, %2821
  br label %2791

2872:                                             ; preds = %2797
  %2873 = load i8, ptr %3, align 1, !tbaa !40
  %2874 = zext i8 %2873 to i32
  %2875 = icmp eq i32 %2874, 0
  br i1 %2875, label %2876, label %2879

2876:                                             ; preds = %2872
  %2877 = load i32, ptr %22, align 4, !tbaa !37
  %2878 = add nsw i32 %2877, 1
  store i32 %2878, ptr %22, align 4, !tbaa !37
  br label %2882

2879:                                             ; preds = %2872
  %2880 = load i32, ptr %22, align 4, !tbaa !37
  %2881 = add nsw i32 %2880, -1
  store i32 %2881, ptr %22, align 4, !tbaa !37
  br label %2882

2882:                                             ; preds = %2879, %2876
  br label %2689

2883:                                             ; preds = %2786
  %2884 = load i32, ptr %22, align 4, !tbaa !37
  %2885 = trunc i32 %2884 to i8
  %2886 = load ptr, ptr %2, align 8, !tbaa !5
  %2887 = getelementptr inbounds %struct.DState, ptr %2886, i32 0, i32 35
  %2888 = load i32, ptr %10, align 4, !tbaa !37
  %2889 = sext i32 %2888 to i64
  %2890 = getelementptr inbounds [6 x [258 x i8]], ptr %2887, i64 0, i64 %2889
  %2891 = load i32, ptr %8, align 4, !tbaa !37
  %2892 = sext i32 %2891 to i64
  %2893 = getelementptr inbounds [258 x i8], ptr %2890, i64 0, i64 %2892
  store i8 %2885, ptr %2893, align 1, !tbaa !40
  br label %2894

2894:                                             ; preds = %2883
  %2895 = load i32, ptr %8, align 4, !tbaa !37
  %2896 = add nsw i32 %2895, 1
  store i32 %2896, ptr %8, align 4, !tbaa !37
  br label %2684, !llvm.loop !68

2897:                                             ; preds = %2684
  br label %2898

2898:                                             ; preds = %2897
  %2899 = load i32, ptr %10, align 4, !tbaa !37
  %2900 = add nsw i32 %2899, 1
  store i32 %2900, ptr %10, align 4, !tbaa !37
  br label %2595, !llvm.loop !69

2901:                                             ; preds = %2595
  store i32 0, ptr %10, align 4, !tbaa !37
  br label %2902

2902:                                             ; preds = %2997, %2901
  %2903 = load i32, ptr %10, align 4, !tbaa !37
  %2904 = load i32, ptr %12, align 4, !tbaa !37
  %2905 = icmp slt i32 %2903, %2904
  br i1 %2905, label %2906, label %3000

2906:                                             ; preds = %2902
  store i32 32, ptr %5, align 4, !tbaa !37
  store i32 0, ptr %6, align 4, !tbaa !37
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %2907

2907:                                             ; preds = %2960, %2906
  %2908 = load i32, ptr %8, align 4, !tbaa !37
  %2909 = load i32, ptr %11, align 4, !tbaa !37
  %2910 = icmp slt i32 %2908, %2909
  br i1 %2910, label %2911, label %2963

2911:                                             ; preds = %2907
  %2912 = load ptr, ptr %2, align 8, !tbaa !5
  %2913 = getelementptr inbounds %struct.DState, ptr %2912, i32 0, i32 35
  %2914 = load i32, ptr %10, align 4, !tbaa !37
  %2915 = sext i32 %2914 to i64
  %2916 = getelementptr inbounds [6 x [258 x i8]], ptr %2913, i64 0, i64 %2915
  %2917 = load i32, ptr %8, align 4, !tbaa !37
  %2918 = sext i32 %2917 to i64
  %2919 = getelementptr inbounds [258 x i8], ptr %2916, i64 0, i64 %2918
  %2920 = load i8, ptr %2919, align 1, !tbaa !40
  %2921 = zext i8 %2920 to i32
  %2922 = load i32, ptr %6, align 4, !tbaa !37
  %2923 = icmp sgt i32 %2921, %2922
  br i1 %2923, label %2924, label %2935

2924:                                             ; preds = %2911
  %2925 = load ptr, ptr %2, align 8, !tbaa !5
  %2926 = getelementptr inbounds %struct.DState, ptr %2925, i32 0, i32 35
  %2927 = load i32, ptr %10, align 4, !tbaa !37
  %2928 = sext i32 %2927 to i64
  %2929 = getelementptr inbounds [6 x [258 x i8]], ptr %2926, i64 0, i64 %2928
  %2930 = load i32, ptr %8, align 4, !tbaa !37
  %2931 = sext i32 %2930 to i64
  %2932 = getelementptr inbounds [258 x i8], ptr %2929, i64 0, i64 %2931
  %2933 = load i8, ptr %2932, align 1, !tbaa !40
  %2934 = zext i8 %2933 to i32
  store i32 %2934, ptr %6, align 4, !tbaa !37
  br label %2935

2935:                                             ; preds = %2924, %2911
  %2936 = load ptr, ptr %2, align 8, !tbaa !5
  %2937 = getelementptr inbounds %struct.DState, ptr %2936, i32 0, i32 35
  %2938 = load i32, ptr %10, align 4, !tbaa !37
  %2939 = sext i32 %2938 to i64
  %2940 = getelementptr inbounds [6 x [258 x i8]], ptr %2937, i64 0, i64 %2939
  %2941 = load i32, ptr %8, align 4, !tbaa !37
  %2942 = sext i32 %2941 to i64
  %2943 = getelementptr inbounds [258 x i8], ptr %2940, i64 0, i64 %2942
  %2944 = load i8, ptr %2943, align 1, !tbaa !40
  %2945 = zext i8 %2944 to i32
  %2946 = load i32, ptr %5, align 4, !tbaa !37
  %2947 = icmp slt i32 %2945, %2946
  br i1 %2947, label %2948, label %2959

2948:                                             ; preds = %2935
  %2949 = load ptr, ptr %2, align 8, !tbaa !5
  %2950 = getelementptr inbounds %struct.DState, ptr %2949, i32 0, i32 35
  %2951 = load i32, ptr %10, align 4, !tbaa !37
  %2952 = sext i32 %2951 to i64
  %2953 = getelementptr inbounds [6 x [258 x i8]], ptr %2950, i64 0, i64 %2952
  %2954 = load i32, ptr %8, align 4, !tbaa !37
  %2955 = sext i32 %2954 to i64
  %2956 = getelementptr inbounds [258 x i8], ptr %2953, i64 0, i64 %2955
  %2957 = load i8, ptr %2956, align 1, !tbaa !40
  %2958 = zext i8 %2957 to i32
  store i32 %2958, ptr %5, align 4, !tbaa !37
  br label %2959

2959:                                             ; preds = %2948, %2935
  br label %2960

2960:                                             ; preds = %2959
  %2961 = load i32, ptr %8, align 4, !tbaa !37
  %2962 = add nsw i32 %2961, 1
  store i32 %2962, ptr %8, align 4, !tbaa !37
  br label %2907, !llvm.loop !70

2963:                                             ; preds = %2907
  %2964 = load ptr, ptr %2, align 8, !tbaa !5
  %2965 = getelementptr inbounds %struct.DState, ptr %2964, i32 0, i32 36
  %2966 = load i32, ptr %10, align 4, !tbaa !37
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds [6 x [258 x i32]], ptr %2965, i64 0, i64 %2967
  %2969 = getelementptr inbounds [258 x i32], ptr %2968, i64 0, i64 0
  %2970 = load ptr, ptr %2, align 8, !tbaa !5
  %2971 = getelementptr inbounds %struct.DState, ptr %2970, i32 0, i32 37
  %2972 = load i32, ptr %10, align 4, !tbaa !37
  %2973 = sext i32 %2972 to i64
  %2974 = getelementptr inbounds [6 x [258 x i32]], ptr %2971, i64 0, i64 %2973
  %2975 = getelementptr inbounds [258 x i32], ptr %2974, i64 0, i64 0
  %2976 = load ptr, ptr %2, align 8, !tbaa !5
  %2977 = getelementptr inbounds %struct.DState, ptr %2976, i32 0, i32 38
  %2978 = load i32, ptr %10, align 4, !tbaa !37
  %2979 = sext i32 %2978 to i64
  %2980 = getelementptr inbounds [6 x [258 x i32]], ptr %2977, i64 0, i64 %2979
  %2981 = getelementptr inbounds [258 x i32], ptr %2980, i64 0, i64 0
  %2982 = load ptr, ptr %2, align 8, !tbaa !5
  %2983 = getelementptr inbounds %struct.DState, ptr %2982, i32 0, i32 35
  %2984 = load i32, ptr %10, align 4, !tbaa !37
  %2985 = sext i32 %2984 to i64
  %2986 = getelementptr inbounds [6 x [258 x i8]], ptr %2983, i64 0, i64 %2985
  %2987 = getelementptr inbounds [258 x i8], ptr %2986, i64 0, i64 0
  %2988 = load i32, ptr %5, align 4, !tbaa !37
  %2989 = load i32, ptr %6, align 4, !tbaa !37
  %2990 = load i32, ptr %11, align 4, !tbaa !37
  call void @BZ2_hbCreateDecodeTables(ptr noundef %2969, ptr noundef %2975, ptr noundef %2981, ptr noundef %2987, i32 noundef %2988, i32 noundef %2989, i32 noundef %2990)
  %2991 = load i32, ptr %5, align 4, !tbaa !37
  %2992 = load ptr, ptr %2, align 8, !tbaa !5
  %2993 = getelementptr inbounds %struct.DState, ptr %2992, i32 0, i32 39
  %2994 = load i32, ptr %10, align 4, !tbaa !37
  %2995 = sext i32 %2994 to i64
  %2996 = getelementptr inbounds [6 x i32], ptr %2993, i64 0, i64 %2995
  store i32 %2991, ptr %2996, align 4, !tbaa !37
  br label %2997

2997:                                             ; preds = %2963
  %2998 = load i32, ptr %10, align 4, !tbaa !37
  %2999 = add nsw i32 %2998, 1
  store i32 %2999, ptr %10, align 4, !tbaa !37
  br label %2902, !llvm.loop !71

3000:                                             ; preds = %2902
  %3001 = load ptr, ptr %2, align 8, !tbaa !5
  %3002 = getelementptr inbounds %struct.DState, ptr %3001, i32 0, i32 27
  %3003 = load i32, ptr %3002, align 8, !tbaa !63
  %3004 = add nsw i32 %3003, 1
  store i32 %3004, ptr %14, align 4, !tbaa !37
  %3005 = load ptr, ptr %2, align 8, !tbaa !5
  %3006 = getelementptr inbounds %struct.DState, ptr %3005, i32 0, i32 9
  %3007 = load i32, ptr %3006, align 8, !tbaa !46
  %3008 = mul nsw i32 100000, %3007
  store i32 %3008, ptr %18, align 4, !tbaa !37
  store i32 -1, ptr %15, align 4, !tbaa !37
  store i32 0, ptr %16, align 4, !tbaa !37
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %3009

3009:                                             ; preds = %3018, %3000
  %3010 = load i32, ptr %8, align 4, !tbaa !37
  %3011 = icmp sle i32 %3010, 255
  br i1 %3011, label %3012, label %3021

3012:                                             ; preds = %3009
  %3013 = load ptr, ptr %2, align 8, !tbaa !5
  %3014 = getelementptr inbounds %struct.DState, ptr %3013, i32 0, i32 16
  %3015 = load i32, ptr %8, align 4, !tbaa !37
  %3016 = sext i32 %3015 to i64
  %3017 = getelementptr inbounds [256 x i32], ptr %3014, i64 0, i64 %3016
  store i32 0, ptr %3017, align 4, !tbaa !37
  br label %3018

3018:                                             ; preds = %3012
  %3019 = load i32, ptr %8, align 4, !tbaa !37
  %3020 = add nsw i32 %3019, 1
  store i32 %3020, ptr %8, align 4, !tbaa !37
  br label %3009, !llvm.loop !72

3021:                                             ; preds = %3009
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #3
  store i32 4095, ptr %63, align 4, !tbaa !37
  store i32 15, ptr %61, align 4, !tbaa !37
  br label %3022

3022:                                             ; preds = %3053, %3021
  %3023 = load i32, ptr %61, align 4, !tbaa !37
  %3024 = icmp sge i32 %3023, 0
  br i1 %3024, label %3025, label %3056

3025:                                             ; preds = %3022
  store i32 15, ptr %62, align 4, !tbaa !37
  br label %3026

3026:                                             ; preds = %3042, %3025
  %3027 = load i32, ptr %62, align 4, !tbaa !37
  %3028 = icmp sge i32 %3027, 0
  br i1 %3028, label %3029, label %3045

3029:                                             ; preds = %3026
  %3030 = load i32, ptr %61, align 4, !tbaa !37
  %3031 = mul nsw i32 %3030, 16
  %3032 = load i32, ptr %62, align 4, !tbaa !37
  %3033 = add nsw i32 %3031, %3032
  %3034 = trunc i32 %3033 to i8
  %3035 = load ptr, ptr %2, align 8, !tbaa !5
  %3036 = getelementptr inbounds %struct.DState, ptr %3035, i32 0, i32 31
  %3037 = load i32, ptr %63, align 4, !tbaa !37
  %3038 = sext i32 %3037 to i64
  %3039 = getelementptr inbounds [4096 x i8], ptr %3036, i64 0, i64 %3038
  store i8 %3034, ptr %3039, align 1, !tbaa !40
  %3040 = load i32, ptr %63, align 4, !tbaa !37
  %3041 = add nsw i32 %3040, -1
  store i32 %3041, ptr %63, align 4, !tbaa !37
  br label %3042

3042:                                             ; preds = %3029
  %3043 = load i32, ptr %62, align 4, !tbaa !37
  %3044 = add nsw i32 %3043, -1
  store i32 %3044, ptr %62, align 4, !tbaa !37
  br label %3026, !llvm.loop !73

3045:                                             ; preds = %3026
  %3046 = load i32, ptr %63, align 4, !tbaa !37
  %3047 = add nsw i32 %3046, 1
  %3048 = load ptr, ptr %2, align 8, !tbaa !5
  %3049 = getelementptr inbounds %struct.DState, ptr %3048, i32 0, i32 32
  %3050 = load i32, ptr %61, align 4, !tbaa !37
  %3051 = sext i32 %3050 to i64
  %3052 = getelementptr inbounds [16 x i32], ptr %3049, i64 0, i64 %3051
  store i32 %3047, ptr %3052, align 4, !tbaa !37
  br label %3053

3053:                                             ; preds = %3045
  %3054 = load i32, ptr %61, align 4, !tbaa !37
  %3055 = add nsw i32 %3054, -1
  store i32 %3055, ptr %61, align 4, !tbaa !37
  br label %3022, !llvm.loop !74

3056:                                             ; preds = %3022
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  store i32 0, ptr %19, align 4, !tbaa !37
  %3057 = load i32, ptr %16, align 4, !tbaa !37
  %3058 = icmp eq i32 %3057, 0
  br i1 %3058, label %3059, label %3098

3059:                                             ; preds = %3056
  %3060 = load i32, ptr %15, align 4, !tbaa !37
  %3061 = add nsw i32 %3060, 1
  store i32 %3061, ptr %15, align 4, !tbaa !37
  %3062 = load i32, ptr %15, align 4, !tbaa !37
  %3063 = load i32, ptr %13, align 4, !tbaa !37
  %3064 = icmp sge i32 %3062, %3063
  br i1 %3064, label %3065, label %3066

3065:                                             ; preds = %3059
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3066:                                             ; preds = %3059
  store i32 50, ptr %16, align 4, !tbaa !37
  %3067 = load ptr, ptr %2, align 8, !tbaa !5
  %3068 = getelementptr inbounds %struct.DState, ptr %3067, i32 0, i32 33
  %3069 = load i32, ptr %15, align 4, !tbaa !37
  %3070 = sext i32 %3069 to i64
  %3071 = getelementptr inbounds [18002 x i8], ptr %3068, i64 0, i64 %3070
  %3072 = load i8, ptr %3071, align 1, !tbaa !40
  %3073 = zext i8 %3072 to i32
  store i32 %3073, ptr %27, align 4, !tbaa !37
  %3074 = load ptr, ptr %2, align 8, !tbaa !5
  %3075 = getelementptr inbounds %struct.DState, ptr %3074, i32 0, i32 39
  %3076 = load i32, ptr %27, align 4, !tbaa !37
  %3077 = sext i32 %3076 to i64
  %3078 = getelementptr inbounds [6 x i32], ptr %3075, i64 0, i64 %3077
  %3079 = load i32, ptr %3078, align 4, !tbaa !37
  store i32 %3079, ptr %28, align 4, !tbaa !37
  %3080 = load ptr, ptr %2, align 8, !tbaa !5
  %3081 = getelementptr inbounds %struct.DState, ptr %3080, i32 0, i32 36
  %3082 = load i32, ptr %27, align 4, !tbaa !37
  %3083 = sext i32 %3082 to i64
  %3084 = getelementptr inbounds [6 x [258 x i32]], ptr %3081, i64 0, i64 %3083
  %3085 = getelementptr inbounds [258 x i32], ptr %3084, i64 0, i64 0
  store ptr %3085, ptr %29, align 8, !tbaa !5
  %3086 = load ptr, ptr %2, align 8, !tbaa !5
  %3087 = getelementptr inbounds %struct.DState, ptr %3086, i32 0, i32 38
  %3088 = load i32, ptr %27, align 4, !tbaa !37
  %3089 = sext i32 %3088 to i64
  %3090 = getelementptr inbounds [6 x [258 x i32]], ptr %3087, i64 0, i64 %3089
  %3091 = getelementptr inbounds [258 x i32], ptr %3090, i64 0, i64 0
  store ptr %3091, ptr %31, align 8, !tbaa !5
  %3092 = load ptr, ptr %2, align 8, !tbaa !5
  %3093 = getelementptr inbounds %struct.DState, ptr %3092, i32 0, i32 37
  %3094 = load i32, ptr %27, align 4, !tbaa !37
  %3095 = sext i32 %3094 to i64
  %3096 = getelementptr inbounds [6 x [258 x i32]], ptr %3093, i64 0, i64 %3095
  %3097 = getelementptr inbounds [258 x i32], ptr %3096, i64 0, i64 0
  store ptr %3097, ptr %30, align 8, !tbaa !5
  br label %3098

3098:                                             ; preds = %3066, %3056
  %3099 = load i32, ptr %16, align 4, !tbaa !37
  %3100 = add nsw i32 %3099, -1
  store i32 %3100, ptr %16, align 4, !tbaa !37
  %3101 = load i32, ptr %28, align 4, !tbaa !37
  store i32 %3101, ptr %24, align 4, !tbaa !37
  br label %3102

3102:                                             ; preds = %3098, %144
  %3103 = load ptr, ptr %2, align 8, !tbaa !5
  %3104 = getelementptr inbounds %struct.DState, ptr %3103, i32 0, i32 1
  store i32 36, ptr %3104, align 8, !tbaa !12
  br label %3105

3105:                                             ; preds = %3190, %3102
  br label %3106

3106:                                             ; preds = %3105
  %3107 = load ptr, ptr %2, align 8, !tbaa !5
  %3108 = getelementptr inbounds %struct.DState, ptr %3107, i32 0, i32 8
  %3109 = load i32, ptr %3108, align 4, !tbaa !38
  %3110 = load i32, ptr %24, align 4, !tbaa !37
  %3111 = icmp sge i32 %3109, %3110
  br i1 %3111, label %3112, label %3132

3112:                                             ; preds = %3106
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  %3113 = load ptr, ptr %2, align 8, !tbaa !5
  %3114 = getelementptr inbounds %struct.DState, ptr %3113, i32 0, i32 7
  %3115 = load i32, ptr %3114, align 8, !tbaa !39
  %3116 = load ptr, ptr %2, align 8, !tbaa !5
  %3117 = getelementptr inbounds %struct.DState, ptr %3116, i32 0, i32 8
  %3118 = load i32, ptr %3117, align 4, !tbaa !38
  %3119 = load i32, ptr %24, align 4, !tbaa !37
  %3120 = sub nsw i32 %3118, %3119
  %3121 = lshr i32 %3115, %3120
  %3122 = load i32, ptr %24, align 4, !tbaa !37
  %3123 = shl i32 1, %3122
  %3124 = sub nsw i32 %3123, 1
  %3125 = and i32 %3121, %3124
  store i32 %3125, ptr %64, align 4, !tbaa !37
  %3126 = load i32, ptr %24, align 4, !tbaa !37
  %3127 = load ptr, ptr %2, align 8, !tbaa !5
  %3128 = getelementptr inbounds %struct.DState, ptr %3127, i32 0, i32 8
  %3129 = load i32, ptr %3128, align 4, !tbaa !38
  %3130 = sub nsw i32 %3129, %3126
  store i32 %3130, ptr %3128, align 4, !tbaa !38
  %3131 = load i32, ptr %64, align 4, !tbaa !37
  store i32 %3131, ptr %25, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  br label %3191

3132:                                             ; preds = %3106
  %3133 = load ptr, ptr %2, align 8, !tbaa !5
  %3134 = getelementptr inbounds %struct.DState, ptr %3133, i32 0, i32 0
  %3135 = load ptr, ptr %3134, align 8, !tbaa !9
  %3136 = getelementptr inbounds %struct.bz_stream, ptr %3135, i32 0, i32 1
  %3137 = load i32, ptr %3136, align 8, !tbaa !41
  %3138 = icmp eq i32 %3137, 0
  br i1 %3138, label %3139, label %3140

3139:                                             ; preds = %3132
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

3140:                                             ; preds = %3132
  %3141 = load ptr, ptr %2, align 8, !tbaa !5
  %3142 = getelementptr inbounds %struct.DState, ptr %3141, i32 0, i32 7
  %3143 = load i32, ptr %3142, align 8, !tbaa !39
  %3144 = shl i32 %3143, 8
  %3145 = load ptr, ptr %2, align 8, !tbaa !5
  %3146 = getelementptr inbounds %struct.DState, ptr %3145, i32 0, i32 0
  %3147 = load ptr, ptr %3146, align 8, !tbaa !9
  %3148 = getelementptr inbounds %struct.bz_stream, ptr %3147, i32 0, i32 0
  %3149 = load ptr, ptr %3148, align 8, !tbaa !43
  %3150 = load i8, ptr %3149, align 1, !tbaa !40
  %3151 = zext i8 %3150 to i32
  %3152 = or i32 %3144, %3151
  %3153 = load ptr, ptr %2, align 8, !tbaa !5
  %3154 = getelementptr inbounds %struct.DState, ptr %3153, i32 0, i32 7
  store i32 %3152, ptr %3154, align 8, !tbaa !39
  %3155 = load ptr, ptr %2, align 8, !tbaa !5
  %3156 = getelementptr inbounds %struct.DState, ptr %3155, i32 0, i32 8
  %3157 = load i32, ptr %3156, align 4, !tbaa !38
  %3158 = add nsw i32 %3157, 8
  store i32 %3158, ptr %3156, align 4, !tbaa !38
  %3159 = load ptr, ptr %2, align 8, !tbaa !5
  %3160 = getelementptr inbounds %struct.DState, ptr %3159, i32 0, i32 0
  %3161 = load ptr, ptr %3160, align 8, !tbaa !9
  %3162 = getelementptr inbounds %struct.bz_stream, ptr %3161, i32 0, i32 0
  %3163 = load ptr, ptr %3162, align 8, !tbaa !43
  %3164 = getelementptr inbounds i8, ptr %3163, i32 1
  store ptr %3164, ptr %3162, align 8, !tbaa !43
  %3165 = load ptr, ptr %2, align 8, !tbaa !5
  %3166 = getelementptr inbounds %struct.DState, ptr %3165, i32 0, i32 0
  %3167 = load ptr, ptr %3166, align 8, !tbaa !9
  %3168 = getelementptr inbounds %struct.bz_stream, ptr %3167, i32 0, i32 1
  %3169 = load i32, ptr %3168, align 8, !tbaa !41
  %3170 = add i32 %3169, -1
  store i32 %3170, ptr %3168, align 8, !tbaa !41
  %3171 = load ptr, ptr %2, align 8, !tbaa !5
  %3172 = getelementptr inbounds %struct.DState, ptr %3171, i32 0, i32 0
  %3173 = load ptr, ptr %3172, align 8, !tbaa !9
  %3174 = getelementptr inbounds %struct.bz_stream, ptr %3173, i32 0, i32 2
  %3175 = load i32, ptr %3174, align 4, !tbaa !44
  %3176 = add i32 %3175, 1
  store i32 %3176, ptr %3174, align 4, !tbaa !44
  %3177 = load ptr, ptr %2, align 8, !tbaa !5
  %3178 = getelementptr inbounds %struct.DState, ptr %3177, i32 0, i32 0
  %3179 = load ptr, ptr %3178, align 8, !tbaa !9
  %3180 = getelementptr inbounds %struct.bz_stream, ptr %3179, i32 0, i32 2
  %3181 = load i32, ptr %3180, align 4, !tbaa !44
  %3182 = icmp eq i32 %3181, 0
  br i1 %3182, label %3183, label %3190

3183:                                             ; preds = %3140
  %3184 = load ptr, ptr %2, align 8, !tbaa !5
  %3185 = getelementptr inbounds %struct.DState, ptr %3184, i32 0, i32 0
  %3186 = load ptr, ptr %3185, align 8, !tbaa !9
  %3187 = getelementptr inbounds %struct.bz_stream, ptr %3186, i32 0, i32 3
  %3188 = load i32, ptr %3187, align 8, !tbaa !45
  %3189 = add i32 %3188, 1
  store i32 %3189, ptr %3187, align 8, !tbaa !45
  br label %3190

3190:                                             ; preds = %3183, %3140
  br label %3105

3191:                                             ; preds = %3112
  br label %3192

3192:                                             ; preds = %3292, %3191
  br label %3193

3193:                                             ; preds = %3192
  %3194 = load i32, ptr %24, align 4, !tbaa !37
  %3195 = icmp sgt i32 %3194, 20
  br i1 %3195, label %3196, label %3197

3196:                                             ; preds = %3193
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3197:                                             ; preds = %3193
  %3198 = load i32, ptr %25, align 4, !tbaa !37
  %3199 = load ptr, ptr %29, align 8, !tbaa !5
  %3200 = load i32, ptr %24, align 4, !tbaa !37
  %3201 = sext i32 %3200 to i64
  %3202 = getelementptr inbounds i32, ptr %3199, i64 %3201
  %3203 = load i32, ptr %3202, align 4, !tbaa !37
  %3204 = icmp sle i32 %3198, %3203
  br i1 %3204, label %3205, label %3206

3205:                                             ; preds = %3197
  br label %3297

3206:                                             ; preds = %3197
  %3207 = load i32, ptr %24, align 4, !tbaa !37
  %3208 = add nsw i32 %3207, 1
  store i32 %3208, ptr %24, align 4, !tbaa !37
  br label %3209

3209:                                             ; preds = %3206, %144
  %3210 = load ptr, ptr %2, align 8, !tbaa !5
  %3211 = getelementptr inbounds %struct.DState, ptr %3210, i32 0, i32 1
  store i32 37, ptr %3211, align 8, !tbaa !12
  br label %3212

3212:                                             ; preds = %3291, %3209
  br label %3213

3213:                                             ; preds = %3212
  %3214 = load ptr, ptr %2, align 8, !tbaa !5
  %3215 = getelementptr inbounds %struct.DState, ptr %3214, i32 0, i32 8
  %3216 = load i32, ptr %3215, align 4, !tbaa !38
  %3217 = icmp sge i32 %3216, 1
  br i1 %3217, label %3218, label %3233

3218:                                             ; preds = %3213
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #3
  %3219 = load ptr, ptr %2, align 8, !tbaa !5
  %3220 = getelementptr inbounds %struct.DState, ptr %3219, i32 0, i32 7
  %3221 = load i32, ptr %3220, align 8, !tbaa !39
  %3222 = load ptr, ptr %2, align 8, !tbaa !5
  %3223 = getelementptr inbounds %struct.DState, ptr %3222, i32 0, i32 8
  %3224 = load i32, ptr %3223, align 4, !tbaa !38
  %3225 = sub nsw i32 %3224, 1
  %3226 = lshr i32 %3221, %3225
  %3227 = and i32 %3226, 1
  store i32 %3227, ptr %65, align 4, !tbaa !37
  %3228 = load ptr, ptr %2, align 8, !tbaa !5
  %3229 = getelementptr inbounds %struct.DState, ptr %3228, i32 0, i32 8
  %3230 = load i32, ptr %3229, align 4, !tbaa !38
  %3231 = sub nsw i32 %3230, 1
  store i32 %3231, ptr %3229, align 4, !tbaa !38
  %3232 = load i32, ptr %65, align 4, !tbaa !37
  store i32 %3232, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  br label %3292

3233:                                             ; preds = %3213
  %3234 = load ptr, ptr %2, align 8, !tbaa !5
  %3235 = getelementptr inbounds %struct.DState, ptr %3234, i32 0, i32 0
  %3236 = load ptr, ptr %3235, align 8, !tbaa !9
  %3237 = getelementptr inbounds %struct.bz_stream, ptr %3236, i32 0, i32 1
  %3238 = load i32, ptr %3237, align 8, !tbaa !41
  %3239 = icmp eq i32 %3238, 0
  br i1 %3239, label %3240, label %3241

3240:                                             ; preds = %3233
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

3241:                                             ; preds = %3233
  %3242 = load ptr, ptr %2, align 8, !tbaa !5
  %3243 = getelementptr inbounds %struct.DState, ptr %3242, i32 0, i32 7
  %3244 = load i32, ptr %3243, align 8, !tbaa !39
  %3245 = shl i32 %3244, 8
  %3246 = load ptr, ptr %2, align 8, !tbaa !5
  %3247 = getelementptr inbounds %struct.DState, ptr %3246, i32 0, i32 0
  %3248 = load ptr, ptr %3247, align 8, !tbaa !9
  %3249 = getelementptr inbounds %struct.bz_stream, ptr %3248, i32 0, i32 0
  %3250 = load ptr, ptr %3249, align 8, !tbaa !43
  %3251 = load i8, ptr %3250, align 1, !tbaa !40
  %3252 = zext i8 %3251 to i32
  %3253 = or i32 %3245, %3252
  %3254 = load ptr, ptr %2, align 8, !tbaa !5
  %3255 = getelementptr inbounds %struct.DState, ptr %3254, i32 0, i32 7
  store i32 %3253, ptr %3255, align 8, !tbaa !39
  %3256 = load ptr, ptr %2, align 8, !tbaa !5
  %3257 = getelementptr inbounds %struct.DState, ptr %3256, i32 0, i32 8
  %3258 = load i32, ptr %3257, align 4, !tbaa !38
  %3259 = add nsw i32 %3258, 8
  store i32 %3259, ptr %3257, align 4, !tbaa !38
  %3260 = load ptr, ptr %2, align 8, !tbaa !5
  %3261 = getelementptr inbounds %struct.DState, ptr %3260, i32 0, i32 0
  %3262 = load ptr, ptr %3261, align 8, !tbaa !9
  %3263 = getelementptr inbounds %struct.bz_stream, ptr %3262, i32 0, i32 0
  %3264 = load ptr, ptr %3263, align 8, !tbaa !43
  %3265 = getelementptr inbounds i8, ptr %3264, i32 1
  store ptr %3265, ptr %3263, align 8, !tbaa !43
  %3266 = load ptr, ptr %2, align 8, !tbaa !5
  %3267 = getelementptr inbounds %struct.DState, ptr %3266, i32 0, i32 0
  %3268 = load ptr, ptr %3267, align 8, !tbaa !9
  %3269 = getelementptr inbounds %struct.bz_stream, ptr %3268, i32 0, i32 1
  %3270 = load i32, ptr %3269, align 8, !tbaa !41
  %3271 = add i32 %3270, -1
  store i32 %3271, ptr %3269, align 8, !tbaa !41
  %3272 = load ptr, ptr %2, align 8, !tbaa !5
  %3273 = getelementptr inbounds %struct.DState, ptr %3272, i32 0, i32 0
  %3274 = load ptr, ptr %3273, align 8, !tbaa !9
  %3275 = getelementptr inbounds %struct.bz_stream, ptr %3274, i32 0, i32 2
  %3276 = load i32, ptr %3275, align 4, !tbaa !44
  %3277 = add i32 %3276, 1
  store i32 %3277, ptr %3275, align 4, !tbaa !44
  %3278 = load ptr, ptr %2, align 8, !tbaa !5
  %3279 = getelementptr inbounds %struct.DState, ptr %3278, i32 0, i32 0
  %3280 = load ptr, ptr %3279, align 8, !tbaa !9
  %3281 = getelementptr inbounds %struct.bz_stream, ptr %3280, i32 0, i32 2
  %3282 = load i32, ptr %3281, align 4, !tbaa !44
  %3283 = icmp eq i32 %3282, 0
  br i1 %3283, label %3284, label %3291

3284:                                             ; preds = %3241
  %3285 = load ptr, ptr %2, align 8, !tbaa !5
  %3286 = getelementptr inbounds %struct.DState, ptr %3285, i32 0, i32 0
  %3287 = load ptr, ptr %3286, align 8, !tbaa !9
  %3288 = getelementptr inbounds %struct.bz_stream, ptr %3287, i32 0, i32 3
  %3289 = load i32, ptr %3288, align 8, !tbaa !45
  %3290 = add i32 %3289, 1
  store i32 %3290, ptr %3288, align 8, !tbaa !45
  br label %3291

3291:                                             ; preds = %3284, %3241
  br label %3212

3292:                                             ; preds = %3218
  %3293 = load i32, ptr %25, align 4, !tbaa !37
  %3294 = shl i32 %3293, 1
  %3295 = load i32, ptr %26, align 4, !tbaa !37
  %3296 = or i32 %3294, %3295
  store i32 %3296, ptr %25, align 4, !tbaa !37
  br label %3192

3297:                                             ; preds = %3205
  %3298 = load i32, ptr %25, align 4, !tbaa !37
  %3299 = load ptr, ptr %30, align 8, !tbaa !5
  %3300 = load i32, ptr %24, align 4, !tbaa !37
  %3301 = sext i32 %3300 to i64
  %3302 = getelementptr inbounds i32, ptr %3299, i64 %3301
  %3303 = load i32, ptr %3302, align 4, !tbaa !37
  %3304 = sub nsw i32 %3298, %3303
  %3305 = icmp slt i32 %3304, 0
  br i1 %3305, label %3315, label %3306

3306:                                             ; preds = %3297
  %3307 = load i32, ptr %25, align 4, !tbaa !37
  %3308 = load ptr, ptr %30, align 8, !tbaa !5
  %3309 = load i32, ptr %24, align 4, !tbaa !37
  %3310 = sext i32 %3309 to i64
  %3311 = getelementptr inbounds i32, ptr %3308, i64 %3310
  %3312 = load i32, ptr %3311, align 4, !tbaa !37
  %3313 = sub nsw i32 %3307, %3312
  %3314 = icmp sge i32 %3313, 258
  br i1 %3314, label %3315, label %3316

3315:                                             ; preds = %3306, %3297
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3316:                                             ; preds = %3306
  %3317 = load ptr, ptr %31, align 8, !tbaa !5
  %3318 = load i32, ptr %25, align 4, !tbaa !37
  %3319 = load ptr, ptr %30, align 8, !tbaa !5
  %3320 = load i32, ptr %24, align 4, !tbaa !37
  %3321 = sext i32 %3320 to i64
  %3322 = getelementptr inbounds i32, ptr %3319, i64 %3321
  %3323 = load i32, ptr %3322, align 4, !tbaa !37
  %3324 = sub nsw i32 %3318, %3323
  %3325 = sext i32 %3324 to i64
  %3326 = getelementptr inbounds i32, ptr %3317, i64 %3325
  %3327 = load i32, ptr %3326, align 4, !tbaa !37
  store i32 %3327, ptr %17, align 4, !tbaa !37
  br label %3328

3328:                                             ; preds = %4289, %3715, %3316
  br label %3329

3329:                                             ; preds = %3328
  %3330 = load i32, ptr %17, align 4, !tbaa !37
  %3331 = load i32, ptr %14, align 4, !tbaa !37
  %3332 = icmp eq i32 %3330, %3331
  br i1 %3332, label %3333, label %3334

3333:                                             ; preds = %3329
  br label %4301

3334:                                             ; preds = %3329
  %3335 = load i32, ptr %17, align 4, !tbaa !37
  %3336 = icmp eq i32 %3335, 0
  br i1 %3336, label %3340, label %3337

3337:                                             ; preds = %3334
  %3338 = load i32, ptr %17, align 4, !tbaa !37
  %3339 = icmp eq i32 %3338, 1
  br i1 %3339, label %3340, label %3716

3340:                                             ; preds = %3337, %3334
  store i32 -1, ptr %20, align 4, !tbaa !37
  store i32 1, ptr %21, align 4, !tbaa !37
  br label %3341

3341:                                             ; preds = %3638, %3340
  %3342 = load i32, ptr %17, align 4, !tbaa !37
  %3343 = icmp eq i32 %3342, 0
  br i1 %3343, label %3344, label %3349

3344:                                             ; preds = %3341
  %3345 = load i32, ptr %20, align 4, !tbaa !37
  %3346 = load i32, ptr %21, align 4, !tbaa !37
  %3347 = mul nsw i32 1, %3346
  %3348 = add nsw i32 %3345, %3347
  store i32 %3348, ptr %20, align 4, !tbaa !37
  br label %3358

3349:                                             ; preds = %3341
  %3350 = load i32, ptr %17, align 4, !tbaa !37
  %3351 = icmp eq i32 %3350, 1
  br i1 %3351, label %3352, label %3357

3352:                                             ; preds = %3349
  %3353 = load i32, ptr %20, align 4, !tbaa !37
  %3354 = load i32, ptr %21, align 4, !tbaa !37
  %3355 = mul nsw i32 2, %3354
  %3356 = add nsw i32 %3353, %3355
  store i32 %3356, ptr %20, align 4, !tbaa !37
  br label %3357

3357:                                             ; preds = %3352, %3349
  br label %3358

3358:                                             ; preds = %3357, %3344
  %3359 = load i32, ptr %21, align 4, !tbaa !37
  %3360 = mul nsw i32 %3359, 2
  store i32 %3360, ptr %21, align 4, !tbaa !37
  %3361 = load i32, ptr %16, align 4, !tbaa !37
  %3362 = icmp eq i32 %3361, 0
  br i1 %3362, label %3363, label %3402

3363:                                             ; preds = %3358
  %3364 = load i32, ptr %15, align 4, !tbaa !37
  %3365 = add nsw i32 %3364, 1
  store i32 %3365, ptr %15, align 4, !tbaa !37
  %3366 = load i32, ptr %15, align 4, !tbaa !37
  %3367 = load i32, ptr %13, align 4, !tbaa !37
  %3368 = icmp sge i32 %3366, %3367
  br i1 %3368, label %3369, label %3370

3369:                                             ; preds = %3363
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3370:                                             ; preds = %3363
  store i32 50, ptr %16, align 4, !tbaa !37
  %3371 = load ptr, ptr %2, align 8, !tbaa !5
  %3372 = getelementptr inbounds %struct.DState, ptr %3371, i32 0, i32 33
  %3373 = load i32, ptr %15, align 4, !tbaa !37
  %3374 = sext i32 %3373 to i64
  %3375 = getelementptr inbounds [18002 x i8], ptr %3372, i64 0, i64 %3374
  %3376 = load i8, ptr %3375, align 1, !tbaa !40
  %3377 = zext i8 %3376 to i32
  store i32 %3377, ptr %27, align 4, !tbaa !37
  %3378 = load ptr, ptr %2, align 8, !tbaa !5
  %3379 = getelementptr inbounds %struct.DState, ptr %3378, i32 0, i32 39
  %3380 = load i32, ptr %27, align 4, !tbaa !37
  %3381 = sext i32 %3380 to i64
  %3382 = getelementptr inbounds [6 x i32], ptr %3379, i64 0, i64 %3381
  %3383 = load i32, ptr %3382, align 4, !tbaa !37
  store i32 %3383, ptr %28, align 4, !tbaa !37
  %3384 = load ptr, ptr %2, align 8, !tbaa !5
  %3385 = getelementptr inbounds %struct.DState, ptr %3384, i32 0, i32 36
  %3386 = load i32, ptr %27, align 4, !tbaa !37
  %3387 = sext i32 %3386 to i64
  %3388 = getelementptr inbounds [6 x [258 x i32]], ptr %3385, i64 0, i64 %3387
  %3389 = getelementptr inbounds [258 x i32], ptr %3388, i64 0, i64 0
  store ptr %3389, ptr %29, align 8, !tbaa !5
  %3390 = load ptr, ptr %2, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.DState, ptr %3390, i32 0, i32 38
  %3392 = load i32, ptr %27, align 4, !tbaa !37
  %3393 = sext i32 %3392 to i64
  %3394 = getelementptr inbounds [6 x [258 x i32]], ptr %3391, i64 0, i64 %3393
  %3395 = getelementptr inbounds [258 x i32], ptr %3394, i64 0, i64 0
  store ptr %3395, ptr %31, align 8, !tbaa !5
  %3396 = load ptr, ptr %2, align 8, !tbaa !5
  %3397 = getelementptr inbounds %struct.DState, ptr %3396, i32 0, i32 37
  %3398 = load i32, ptr %27, align 4, !tbaa !37
  %3399 = sext i32 %3398 to i64
  %3400 = getelementptr inbounds [6 x [258 x i32]], ptr %3397, i64 0, i64 %3399
  %3401 = getelementptr inbounds [258 x i32], ptr %3400, i64 0, i64 0
  store ptr %3401, ptr %30, align 8, !tbaa !5
  br label %3402

3402:                                             ; preds = %3370, %3358
  %3403 = load i32, ptr %16, align 4, !tbaa !37
  %3404 = add nsw i32 %3403, -1
  store i32 %3404, ptr %16, align 4, !tbaa !37
  %3405 = load i32, ptr %28, align 4, !tbaa !37
  store i32 %3405, ptr %24, align 4, !tbaa !37
  br label %3406

3406:                                             ; preds = %3402, %144
  %3407 = load ptr, ptr %2, align 8, !tbaa !5
  %3408 = getelementptr inbounds %struct.DState, ptr %3407, i32 0, i32 1
  store i32 38, ptr %3408, align 8, !tbaa !12
  br label %3409

3409:                                             ; preds = %3494, %3406
  br label %3410

3410:                                             ; preds = %3409
  %3411 = load ptr, ptr %2, align 8, !tbaa !5
  %3412 = getelementptr inbounds %struct.DState, ptr %3411, i32 0, i32 8
  %3413 = load i32, ptr %3412, align 4, !tbaa !38
  %3414 = load i32, ptr %24, align 4, !tbaa !37
  %3415 = icmp sge i32 %3413, %3414
  br i1 %3415, label %3416, label %3436

3416:                                             ; preds = %3410
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #3
  %3417 = load ptr, ptr %2, align 8, !tbaa !5
  %3418 = getelementptr inbounds %struct.DState, ptr %3417, i32 0, i32 7
  %3419 = load i32, ptr %3418, align 8, !tbaa !39
  %3420 = load ptr, ptr %2, align 8, !tbaa !5
  %3421 = getelementptr inbounds %struct.DState, ptr %3420, i32 0, i32 8
  %3422 = load i32, ptr %3421, align 4, !tbaa !38
  %3423 = load i32, ptr %24, align 4, !tbaa !37
  %3424 = sub nsw i32 %3422, %3423
  %3425 = lshr i32 %3419, %3424
  %3426 = load i32, ptr %24, align 4, !tbaa !37
  %3427 = shl i32 1, %3426
  %3428 = sub nsw i32 %3427, 1
  %3429 = and i32 %3425, %3428
  store i32 %3429, ptr %66, align 4, !tbaa !37
  %3430 = load i32, ptr %24, align 4, !tbaa !37
  %3431 = load ptr, ptr %2, align 8, !tbaa !5
  %3432 = getelementptr inbounds %struct.DState, ptr %3431, i32 0, i32 8
  %3433 = load i32, ptr %3432, align 4, !tbaa !38
  %3434 = sub nsw i32 %3433, %3430
  store i32 %3434, ptr %3432, align 4, !tbaa !38
  %3435 = load i32, ptr %66, align 4, !tbaa !37
  store i32 %3435, ptr %25, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  br label %3495

3436:                                             ; preds = %3410
  %3437 = load ptr, ptr %2, align 8, !tbaa !5
  %3438 = getelementptr inbounds %struct.DState, ptr %3437, i32 0, i32 0
  %3439 = load ptr, ptr %3438, align 8, !tbaa !9
  %3440 = getelementptr inbounds %struct.bz_stream, ptr %3439, i32 0, i32 1
  %3441 = load i32, ptr %3440, align 8, !tbaa !41
  %3442 = icmp eq i32 %3441, 0
  br i1 %3442, label %3443, label %3444

3443:                                             ; preds = %3436
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

3444:                                             ; preds = %3436
  %3445 = load ptr, ptr %2, align 8, !tbaa !5
  %3446 = getelementptr inbounds %struct.DState, ptr %3445, i32 0, i32 7
  %3447 = load i32, ptr %3446, align 8, !tbaa !39
  %3448 = shl i32 %3447, 8
  %3449 = load ptr, ptr %2, align 8, !tbaa !5
  %3450 = getelementptr inbounds %struct.DState, ptr %3449, i32 0, i32 0
  %3451 = load ptr, ptr %3450, align 8, !tbaa !9
  %3452 = getelementptr inbounds %struct.bz_stream, ptr %3451, i32 0, i32 0
  %3453 = load ptr, ptr %3452, align 8, !tbaa !43
  %3454 = load i8, ptr %3453, align 1, !tbaa !40
  %3455 = zext i8 %3454 to i32
  %3456 = or i32 %3448, %3455
  %3457 = load ptr, ptr %2, align 8, !tbaa !5
  %3458 = getelementptr inbounds %struct.DState, ptr %3457, i32 0, i32 7
  store i32 %3456, ptr %3458, align 8, !tbaa !39
  %3459 = load ptr, ptr %2, align 8, !tbaa !5
  %3460 = getelementptr inbounds %struct.DState, ptr %3459, i32 0, i32 8
  %3461 = load i32, ptr %3460, align 4, !tbaa !38
  %3462 = add nsw i32 %3461, 8
  store i32 %3462, ptr %3460, align 4, !tbaa !38
  %3463 = load ptr, ptr %2, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.DState, ptr %3463, i32 0, i32 0
  %3465 = load ptr, ptr %3464, align 8, !tbaa !9
  %3466 = getelementptr inbounds %struct.bz_stream, ptr %3465, i32 0, i32 0
  %3467 = load ptr, ptr %3466, align 8, !tbaa !43
  %3468 = getelementptr inbounds i8, ptr %3467, i32 1
  store ptr %3468, ptr %3466, align 8, !tbaa !43
  %3469 = load ptr, ptr %2, align 8, !tbaa !5
  %3470 = getelementptr inbounds %struct.DState, ptr %3469, i32 0, i32 0
  %3471 = load ptr, ptr %3470, align 8, !tbaa !9
  %3472 = getelementptr inbounds %struct.bz_stream, ptr %3471, i32 0, i32 1
  %3473 = load i32, ptr %3472, align 8, !tbaa !41
  %3474 = add i32 %3473, -1
  store i32 %3474, ptr %3472, align 8, !tbaa !41
  %3475 = load ptr, ptr %2, align 8, !tbaa !5
  %3476 = getelementptr inbounds %struct.DState, ptr %3475, i32 0, i32 0
  %3477 = load ptr, ptr %3476, align 8, !tbaa !9
  %3478 = getelementptr inbounds %struct.bz_stream, ptr %3477, i32 0, i32 2
  %3479 = load i32, ptr %3478, align 4, !tbaa !44
  %3480 = add i32 %3479, 1
  store i32 %3480, ptr %3478, align 4, !tbaa !44
  %3481 = load ptr, ptr %2, align 8, !tbaa !5
  %3482 = getelementptr inbounds %struct.DState, ptr %3481, i32 0, i32 0
  %3483 = load ptr, ptr %3482, align 8, !tbaa !9
  %3484 = getelementptr inbounds %struct.bz_stream, ptr %3483, i32 0, i32 2
  %3485 = load i32, ptr %3484, align 4, !tbaa !44
  %3486 = icmp eq i32 %3485, 0
  br i1 %3486, label %3487, label %3494

3487:                                             ; preds = %3444
  %3488 = load ptr, ptr %2, align 8, !tbaa !5
  %3489 = getelementptr inbounds %struct.DState, ptr %3488, i32 0, i32 0
  %3490 = load ptr, ptr %3489, align 8, !tbaa !9
  %3491 = getelementptr inbounds %struct.bz_stream, ptr %3490, i32 0, i32 3
  %3492 = load i32, ptr %3491, align 8, !tbaa !45
  %3493 = add i32 %3492, 1
  store i32 %3493, ptr %3491, align 8, !tbaa !45
  br label %3494

3494:                                             ; preds = %3487, %3444
  br label %3409

3495:                                             ; preds = %3416
  br label %3496

3496:                                             ; preds = %3596, %3495
  br label %3497

3497:                                             ; preds = %3496
  %3498 = load i32, ptr %24, align 4, !tbaa !37
  %3499 = icmp sgt i32 %3498, 20
  br i1 %3499, label %3500, label %3501

3500:                                             ; preds = %3497
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3501:                                             ; preds = %3497
  %3502 = load i32, ptr %25, align 4, !tbaa !37
  %3503 = load ptr, ptr %29, align 8, !tbaa !5
  %3504 = load i32, ptr %24, align 4, !tbaa !37
  %3505 = sext i32 %3504 to i64
  %3506 = getelementptr inbounds i32, ptr %3503, i64 %3505
  %3507 = load i32, ptr %3506, align 4, !tbaa !37
  %3508 = icmp sle i32 %3502, %3507
  br i1 %3508, label %3509, label %3510

3509:                                             ; preds = %3501
  br label %3601

3510:                                             ; preds = %3501
  %3511 = load i32, ptr %24, align 4, !tbaa !37
  %3512 = add nsw i32 %3511, 1
  store i32 %3512, ptr %24, align 4, !tbaa !37
  br label %3513

3513:                                             ; preds = %3510, %144
  %3514 = load ptr, ptr %2, align 8, !tbaa !5
  %3515 = getelementptr inbounds %struct.DState, ptr %3514, i32 0, i32 1
  store i32 39, ptr %3515, align 8, !tbaa !12
  br label %3516

3516:                                             ; preds = %3595, %3513
  br label %3517

3517:                                             ; preds = %3516
  %3518 = load ptr, ptr %2, align 8, !tbaa !5
  %3519 = getelementptr inbounds %struct.DState, ptr %3518, i32 0, i32 8
  %3520 = load i32, ptr %3519, align 4, !tbaa !38
  %3521 = icmp sge i32 %3520, 1
  br i1 %3521, label %3522, label %3537

3522:                                             ; preds = %3517
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #3
  %3523 = load ptr, ptr %2, align 8, !tbaa !5
  %3524 = getelementptr inbounds %struct.DState, ptr %3523, i32 0, i32 7
  %3525 = load i32, ptr %3524, align 8, !tbaa !39
  %3526 = load ptr, ptr %2, align 8, !tbaa !5
  %3527 = getelementptr inbounds %struct.DState, ptr %3526, i32 0, i32 8
  %3528 = load i32, ptr %3527, align 4, !tbaa !38
  %3529 = sub nsw i32 %3528, 1
  %3530 = lshr i32 %3525, %3529
  %3531 = and i32 %3530, 1
  store i32 %3531, ptr %67, align 4, !tbaa !37
  %3532 = load ptr, ptr %2, align 8, !tbaa !5
  %3533 = getelementptr inbounds %struct.DState, ptr %3532, i32 0, i32 8
  %3534 = load i32, ptr %3533, align 4, !tbaa !38
  %3535 = sub nsw i32 %3534, 1
  store i32 %3535, ptr %3533, align 4, !tbaa !38
  %3536 = load i32, ptr %67, align 4, !tbaa !37
  store i32 %3536, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  br label %3596

3537:                                             ; preds = %3517
  %3538 = load ptr, ptr %2, align 8, !tbaa !5
  %3539 = getelementptr inbounds %struct.DState, ptr %3538, i32 0, i32 0
  %3540 = load ptr, ptr %3539, align 8, !tbaa !9
  %3541 = getelementptr inbounds %struct.bz_stream, ptr %3540, i32 0, i32 1
  %3542 = load i32, ptr %3541, align 8, !tbaa !41
  %3543 = icmp eq i32 %3542, 0
  br i1 %3543, label %3544, label %3545

3544:                                             ; preds = %3537
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

3545:                                             ; preds = %3537
  %3546 = load ptr, ptr %2, align 8, !tbaa !5
  %3547 = getelementptr inbounds %struct.DState, ptr %3546, i32 0, i32 7
  %3548 = load i32, ptr %3547, align 8, !tbaa !39
  %3549 = shl i32 %3548, 8
  %3550 = load ptr, ptr %2, align 8, !tbaa !5
  %3551 = getelementptr inbounds %struct.DState, ptr %3550, i32 0, i32 0
  %3552 = load ptr, ptr %3551, align 8, !tbaa !9
  %3553 = getelementptr inbounds %struct.bz_stream, ptr %3552, i32 0, i32 0
  %3554 = load ptr, ptr %3553, align 8, !tbaa !43
  %3555 = load i8, ptr %3554, align 1, !tbaa !40
  %3556 = zext i8 %3555 to i32
  %3557 = or i32 %3549, %3556
  %3558 = load ptr, ptr %2, align 8, !tbaa !5
  %3559 = getelementptr inbounds %struct.DState, ptr %3558, i32 0, i32 7
  store i32 %3557, ptr %3559, align 8, !tbaa !39
  %3560 = load ptr, ptr %2, align 8, !tbaa !5
  %3561 = getelementptr inbounds %struct.DState, ptr %3560, i32 0, i32 8
  %3562 = load i32, ptr %3561, align 4, !tbaa !38
  %3563 = add nsw i32 %3562, 8
  store i32 %3563, ptr %3561, align 4, !tbaa !38
  %3564 = load ptr, ptr %2, align 8, !tbaa !5
  %3565 = getelementptr inbounds %struct.DState, ptr %3564, i32 0, i32 0
  %3566 = load ptr, ptr %3565, align 8, !tbaa !9
  %3567 = getelementptr inbounds %struct.bz_stream, ptr %3566, i32 0, i32 0
  %3568 = load ptr, ptr %3567, align 8, !tbaa !43
  %3569 = getelementptr inbounds i8, ptr %3568, i32 1
  store ptr %3569, ptr %3567, align 8, !tbaa !43
  %3570 = load ptr, ptr %2, align 8, !tbaa !5
  %3571 = getelementptr inbounds %struct.DState, ptr %3570, i32 0, i32 0
  %3572 = load ptr, ptr %3571, align 8, !tbaa !9
  %3573 = getelementptr inbounds %struct.bz_stream, ptr %3572, i32 0, i32 1
  %3574 = load i32, ptr %3573, align 8, !tbaa !41
  %3575 = add i32 %3574, -1
  store i32 %3575, ptr %3573, align 8, !tbaa !41
  %3576 = load ptr, ptr %2, align 8, !tbaa !5
  %3577 = getelementptr inbounds %struct.DState, ptr %3576, i32 0, i32 0
  %3578 = load ptr, ptr %3577, align 8, !tbaa !9
  %3579 = getelementptr inbounds %struct.bz_stream, ptr %3578, i32 0, i32 2
  %3580 = load i32, ptr %3579, align 4, !tbaa !44
  %3581 = add i32 %3580, 1
  store i32 %3581, ptr %3579, align 4, !tbaa !44
  %3582 = load ptr, ptr %2, align 8, !tbaa !5
  %3583 = getelementptr inbounds %struct.DState, ptr %3582, i32 0, i32 0
  %3584 = load ptr, ptr %3583, align 8, !tbaa !9
  %3585 = getelementptr inbounds %struct.bz_stream, ptr %3584, i32 0, i32 2
  %3586 = load i32, ptr %3585, align 4, !tbaa !44
  %3587 = icmp eq i32 %3586, 0
  br i1 %3587, label %3588, label %3595

3588:                                             ; preds = %3545
  %3589 = load ptr, ptr %2, align 8, !tbaa !5
  %3590 = getelementptr inbounds %struct.DState, ptr %3589, i32 0, i32 0
  %3591 = load ptr, ptr %3590, align 8, !tbaa !9
  %3592 = getelementptr inbounds %struct.bz_stream, ptr %3591, i32 0, i32 3
  %3593 = load i32, ptr %3592, align 8, !tbaa !45
  %3594 = add i32 %3593, 1
  store i32 %3594, ptr %3592, align 8, !tbaa !45
  br label %3595

3595:                                             ; preds = %3588, %3545
  br label %3516

3596:                                             ; preds = %3522
  %3597 = load i32, ptr %25, align 4, !tbaa !37
  %3598 = shl i32 %3597, 1
  %3599 = load i32, ptr %26, align 4, !tbaa !37
  %3600 = or i32 %3598, %3599
  store i32 %3600, ptr %25, align 4, !tbaa !37
  br label %3496

3601:                                             ; preds = %3509
  %3602 = load i32, ptr %25, align 4, !tbaa !37
  %3603 = load ptr, ptr %30, align 8, !tbaa !5
  %3604 = load i32, ptr %24, align 4, !tbaa !37
  %3605 = sext i32 %3604 to i64
  %3606 = getelementptr inbounds i32, ptr %3603, i64 %3605
  %3607 = load i32, ptr %3606, align 4, !tbaa !37
  %3608 = sub nsw i32 %3602, %3607
  %3609 = icmp slt i32 %3608, 0
  br i1 %3609, label %3619, label %3610

3610:                                             ; preds = %3601
  %3611 = load i32, ptr %25, align 4, !tbaa !37
  %3612 = load ptr, ptr %30, align 8, !tbaa !5
  %3613 = load i32, ptr %24, align 4, !tbaa !37
  %3614 = sext i32 %3613 to i64
  %3615 = getelementptr inbounds i32, ptr %3612, i64 %3614
  %3616 = load i32, ptr %3615, align 4, !tbaa !37
  %3617 = sub nsw i32 %3611, %3616
  %3618 = icmp sge i32 %3617, 258
  br i1 %3618, label %3619, label %3620

3619:                                             ; preds = %3610, %3601
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3620:                                             ; preds = %3610
  %3621 = load ptr, ptr %31, align 8, !tbaa !5
  %3622 = load i32, ptr %25, align 4, !tbaa !37
  %3623 = load ptr, ptr %30, align 8, !tbaa !5
  %3624 = load i32, ptr %24, align 4, !tbaa !37
  %3625 = sext i32 %3624 to i64
  %3626 = getelementptr inbounds i32, ptr %3623, i64 %3625
  %3627 = load i32, ptr %3626, align 4, !tbaa !37
  %3628 = sub nsw i32 %3622, %3627
  %3629 = sext i32 %3628 to i64
  %3630 = getelementptr inbounds i32, ptr %3621, i64 %3629
  %3631 = load i32, ptr %3630, align 4, !tbaa !37
  store i32 %3631, ptr %17, align 4, !tbaa !37
  br label %3632

3632:                                             ; preds = %3620
  %3633 = load i32, ptr %17, align 4, !tbaa !37
  %3634 = icmp eq i32 %3633, 0
  br i1 %3634, label %3638, label %3635

3635:                                             ; preds = %3632
  %3636 = load i32, ptr %17, align 4, !tbaa !37
  %3637 = icmp eq i32 %3636, 1
  br label %3638

3638:                                             ; preds = %3635, %3632
  %3639 = phi i1 [ true, %3632 ], [ %3637, %3635 ]
  br i1 %3639, label %3341, label %3640, !llvm.loop !75

3640:                                             ; preds = %3638
  %3641 = load i32, ptr %20, align 4, !tbaa !37
  %3642 = add nsw i32 %3641, 1
  store i32 %3642, ptr %20, align 4, !tbaa !37
  %3643 = load ptr, ptr %2, align 8, !tbaa !5
  %3644 = getelementptr inbounds %struct.DState, ptr %3643, i32 0, i32 30
  %3645 = load ptr, ptr %2, align 8, !tbaa !5
  %3646 = getelementptr inbounds %struct.DState, ptr %3645, i32 0, i32 31
  %3647 = load ptr, ptr %2, align 8, !tbaa !5
  %3648 = getelementptr inbounds %struct.DState, ptr %3647, i32 0, i32 32
  %3649 = getelementptr inbounds [16 x i32], ptr %3648, i64 0, i64 0
  %3650 = load i32, ptr %3649, align 4, !tbaa !37
  %3651 = sext i32 %3650 to i64
  %3652 = getelementptr inbounds [4096 x i8], ptr %3646, i64 0, i64 %3651
  %3653 = load i8, ptr %3652, align 1, !tbaa !40
  %3654 = zext i8 %3653 to i64
  %3655 = getelementptr inbounds [256 x i8], ptr %3644, i64 0, i64 %3654
  %3656 = load i8, ptr %3655, align 1, !tbaa !40
  store i8 %3656, ptr %3, align 1, !tbaa !40
  %3657 = load i32, ptr %20, align 4, !tbaa !37
  %3658 = load ptr, ptr %2, align 8, !tbaa !5
  %3659 = getelementptr inbounds %struct.DState, ptr %3658, i32 0, i32 16
  %3660 = load i8, ptr %3, align 1, !tbaa !40
  %3661 = zext i8 %3660 to i64
  %3662 = getelementptr inbounds [256 x i32], ptr %3659, i64 0, i64 %3661
  %3663 = load i32, ptr %3662, align 4, !tbaa !37
  %3664 = add nsw i32 %3663, %3657
  store i32 %3664, ptr %3662, align 4, !tbaa !37
  %3665 = load ptr, ptr %2, align 8, !tbaa !5
  %3666 = getelementptr inbounds %struct.DState, ptr %3665, i32 0, i32 10
  %3667 = load i8, ptr %3666, align 4, !tbaa !47
  %3668 = icmp ne i8 %3667, 0
  br i1 %3668, label %3669, label %3692

3669:                                             ; preds = %3640
  br label %3670

3670:                                             ; preds = %3678, %3669
  %3671 = load i32, ptr %20, align 4, !tbaa !37
  %3672 = icmp sgt i32 %3671, 0
  br i1 %3672, label %3673, label %3691

3673:                                             ; preds = %3670
  %3674 = load i32, ptr %19, align 4, !tbaa !37
  %3675 = load i32, ptr %18, align 4, !tbaa !37
  %3676 = icmp sge i32 %3674, %3675
  br i1 %3676, label %3677, label %3678

3677:                                             ; preds = %3673
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3678:                                             ; preds = %3673
  %3679 = load i8, ptr %3, align 1, !tbaa !40
  %3680 = zext i8 %3679 to i16
  %3681 = load ptr, ptr %2, align 8, !tbaa !5
  %3682 = getelementptr inbounds %struct.DState, ptr %3681, i32 0, i32 21
  %3683 = load ptr, ptr %3682, align 8, !tbaa !50
  %3684 = load i32, ptr %19, align 4, !tbaa !37
  %3685 = sext i32 %3684 to i64
  %3686 = getelementptr inbounds i16, ptr %3683, i64 %3685
  store i16 %3680, ptr %3686, align 2, !tbaa !76
  %3687 = load i32, ptr %19, align 4, !tbaa !37
  %3688 = add nsw i32 %3687, 1
  store i32 %3688, ptr %19, align 4, !tbaa !37
  %3689 = load i32, ptr %20, align 4, !tbaa !37
  %3690 = add nsw i32 %3689, -1
  store i32 %3690, ptr %20, align 4, !tbaa !37
  br label %3670, !llvm.loop !78

3691:                                             ; preds = %3670
  br label %3715

3692:                                             ; preds = %3640
  br label %3693

3693:                                             ; preds = %3701, %3692
  %3694 = load i32, ptr %20, align 4, !tbaa !37
  %3695 = icmp sgt i32 %3694, 0
  br i1 %3695, label %3696, label %3714

3696:                                             ; preds = %3693
  %3697 = load i32, ptr %19, align 4, !tbaa !37
  %3698 = load i32, ptr %18, align 4, !tbaa !37
  %3699 = icmp sge i32 %3697, %3698
  br i1 %3699, label %3700, label %3701

3700:                                             ; preds = %3696
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3701:                                             ; preds = %3696
  %3702 = load i8, ptr %3, align 1, !tbaa !40
  %3703 = zext i8 %3702 to i32
  %3704 = load ptr, ptr %2, align 8, !tbaa !5
  %3705 = getelementptr inbounds %struct.DState, ptr %3704, i32 0, i32 20
  %3706 = load ptr, ptr %3705, align 8, !tbaa !52
  %3707 = load i32, ptr %19, align 4, !tbaa !37
  %3708 = sext i32 %3707 to i64
  %3709 = getelementptr inbounds i32, ptr %3706, i64 %3708
  store i32 %3703, ptr %3709, align 4, !tbaa !37
  %3710 = load i32, ptr %19, align 4, !tbaa !37
  %3711 = add nsw i32 %3710, 1
  store i32 %3711, ptr %19, align 4, !tbaa !37
  %3712 = load i32, ptr %20, align 4, !tbaa !37
  %3713 = add nsw i32 %3712, -1
  store i32 %3713, ptr %20, align 4, !tbaa !37
  br label %3693, !llvm.loop !79

3714:                                             ; preds = %3693
  br label %3715

3715:                                             ; preds = %3714, %3691
  br label %3328

3716:                                             ; preds = %3337
  %3717 = load i32, ptr %19, align 4, !tbaa !37
  %3718 = load i32, ptr %18, align 4, !tbaa !37
  %3719 = icmp sge i32 %3717, %3718
  br i1 %3719, label %3720, label %3721

3720:                                             ; preds = %3716
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

3721:                                             ; preds = %3716
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  %3722 = load i32, ptr %17, align 4, !tbaa !37
  %3723 = sub nsw i32 %3722, 1
  store i32 %3723, ptr %74, align 4, !tbaa !37
  %3724 = load i32, ptr %74, align 4, !tbaa !37
  %3725 = icmp ult i32 %3724, 16
  br i1 %3725, label %3726, label %3829

3726:                                             ; preds = %3721
  %3727 = load ptr, ptr %2, align 8, !tbaa !5
  %3728 = getelementptr inbounds %struct.DState, ptr %3727, i32 0, i32 32
  %3729 = getelementptr inbounds [16 x i32], ptr %3728, i64 0, i64 0
  %3730 = load i32, ptr %3729, align 4, !tbaa !37
  store i32 %3730, ptr %71, align 4, !tbaa !37
  %3731 = load ptr, ptr %2, align 8, !tbaa !5
  %3732 = getelementptr inbounds %struct.DState, ptr %3731, i32 0, i32 31
  %3733 = load i32, ptr %71, align 4, !tbaa !37
  %3734 = load i32, ptr %74, align 4, !tbaa !37
  %3735 = add i32 %3733, %3734
  %3736 = zext i32 %3735 to i64
  %3737 = getelementptr inbounds [4096 x i8], ptr %3732, i64 0, i64 %3736
  %3738 = load i8, ptr %3737, align 1, !tbaa !40
  store i8 %3738, ptr %3, align 1, !tbaa !40
  br label %3739

3739:                                             ; preds = %3742, %3726
  %3740 = load i32, ptr %74, align 4, !tbaa !37
  %3741 = icmp ugt i32 %3740, 3
  br i1 %3741, label %3742, label %3799

3742:                                             ; preds = %3739
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  %3743 = load i32, ptr %71, align 4, !tbaa !37
  %3744 = load i32, ptr %74, align 4, !tbaa !37
  %3745 = add i32 %3743, %3744
  store i32 %3745, ptr %75, align 4, !tbaa !37
  %3746 = load ptr, ptr %2, align 8, !tbaa !5
  %3747 = getelementptr inbounds %struct.DState, ptr %3746, i32 0, i32 31
  %3748 = load i32, ptr %75, align 4, !tbaa !37
  %3749 = sub nsw i32 %3748, 1
  %3750 = sext i32 %3749 to i64
  %3751 = getelementptr inbounds [4096 x i8], ptr %3747, i64 0, i64 %3750
  %3752 = load i8, ptr %3751, align 1, !tbaa !40
  %3753 = load ptr, ptr %2, align 8, !tbaa !5
  %3754 = getelementptr inbounds %struct.DState, ptr %3753, i32 0, i32 31
  %3755 = load i32, ptr %75, align 4, !tbaa !37
  %3756 = sext i32 %3755 to i64
  %3757 = getelementptr inbounds [4096 x i8], ptr %3754, i64 0, i64 %3756
  store i8 %3752, ptr %3757, align 1, !tbaa !40
  %3758 = load ptr, ptr %2, align 8, !tbaa !5
  %3759 = getelementptr inbounds %struct.DState, ptr %3758, i32 0, i32 31
  %3760 = load i32, ptr %75, align 4, !tbaa !37
  %3761 = sub nsw i32 %3760, 2
  %3762 = sext i32 %3761 to i64
  %3763 = getelementptr inbounds [4096 x i8], ptr %3759, i64 0, i64 %3762
  %3764 = load i8, ptr %3763, align 1, !tbaa !40
  %3765 = load ptr, ptr %2, align 8, !tbaa !5
  %3766 = getelementptr inbounds %struct.DState, ptr %3765, i32 0, i32 31
  %3767 = load i32, ptr %75, align 4, !tbaa !37
  %3768 = sub nsw i32 %3767, 1
  %3769 = sext i32 %3768 to i64
  %3770 = getelementptr inbounds [4096 x i8], ptr %3766, i64 0, i64 %3769
  store i8 %3764, ptr %3770, align 1, !tbaa !40
  %3771 = load ptr, ptr %2, align 8, !tbaa !5
  %3772 = getelementptr inbounds %struct.DState, ptr %3771, i32 0, i32 31
  %3773 = load i32, ptr %75, align 4, !tbaa !37
  %3774 = sub nsw i32 %3773, 3
  %3775 = sext i32 %3774 to i64
  %3776 = getelementptr inbounds [4096 x i8], ptr %3772, i64 0, i64 %3775
  %3777 = load i8, ptr %3776, align 1, !tbaa !40
  %3778 = load ptr, ptr %2, align 8, !tbaa !5
  %3779 = getelementptr inbounds %struct.DState, ptr %3778, i32 0, i32 31
  %3780 = load i32, ptr %75, align 4, !tbaa !37
  %3781 = sub nsw i32 %3780, 2
  %3782 = sext i32 %3781 to i64
  %3783 = getelementptr inbounds [4096 x i8], ptr %3779, i64 0, i64 %3782
  store i8 %3777, ptr %3783, align 1, !tbaa !40
  %3784 = load ptr, ptr %2, align 8, !tbaa !5
  %3785 = getelementptr inbounds %struct.DState, ptr %3784, i32 0, i32 31
  %3786 = load i32, ptr %75, align 4, !tbaa !37
  %3787 = sub nsw i32 %3786, 4
  %3788 = sext i32 %3787 to i64
  %3789 = getelementptr inbounds [4096 x i8], ptr %3785, i64 0, i64 %3788
  %3790 = load i8, ptr %3789, align 1, !tbaa !40
  %3791 = load ptr, ptr %2, align 8, !tbaa !5
  %3792 = getelementptr inbounds %struct.DState, ptr %3791, i32 0, i32 31
  %3793 = load i32, ptr %75, align 4, !tbaa !37
  %3794 = sub nsw i32 %3793, 3
  %3795 = sext i32 %3794 to i64
  %3796 = getelementptr inbounds [4096 x i8], ptr %3792, i64 0, i64 %3795
  store i8 %3790, ptr %3796, align 1, !tbaa !40
  %3797 = load i32, ptr %74, align 4, !tbaa !37
  %3798 = sub i32 %3797, 4
  store i32 %3798, ptr %74, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  br label %3739, !llvm.loop !80

3799:                                             ; preds = %3739
  br label %3800

3800:                                             ; preds = %3803, %3799
  %3801 = load i32, ptr %74, align 4, !tbaa !37
  %3802 = icmp ugt i32 %3801, 0
  br i1 %3802, label %3803, label %3822

3803:                                             ; preds = %3800
  %3804 = load ptr, ptr %2, align 8, !tbaa !5
  %3805 = getelementptr inbounds %struct.DState, ptr %3804, i32 0, i32 31
  %3806 = load i32, ptr %71, align 4, !tbaa !37
  %3807 = load i32, ptr %74, align 4, !tbaa !37
  %3808 = add i32 %3806, %3807
  %3809 = sub i32 %3808, 1
  %3810 = zext i32 %3809 to i64
  %3811 = getelementptr inbounds [4096 x i8], ptr %3805, i64 0, i64 %3810
  %3812 = load i8, ptr %3811, align 1, !tbaa !40
  %3813 = load ptr, ptr %2, align 8, !tbaa !5
  %3814 = getelementptr inbounds %struct.DState, ptr %3813, i32 0, i32 31
  %3815 = load i32, ptr %71, align 4, !tbaa !37
  %3816 = load i32, ptr %74, align 4, !tbaa !37
  %3817 = add i32 %3815, %3816
  %3818 = zext i32 %3817 to i64
  %3819 = getelementptr inbounds [4096 x i8], ptr %3814, i64 0, i64 %3818
  store i8 %3812, ptr %3819, align 1, !tbaa !40
  %3820 = load i32, ptr %74, align 4, !tbaa !37
  %3821 = add i32 %3820, -1
  store i32 %3821, ptr %74, align 4, !tbaa !37
  br label %3800, !llvm.loop !81

3822:                                             ; preds = %3800
  %3823 = load i8, ptr %3, align 1, !tbaa !40
  %3824 = load ptr, ptr %2, align 8, !tbaa !5
  %3825 = getelementptr inbounds %struct.DState, ptr %3824, i32 0, i32 31
  %3826 = load i32, ptr %71, align 4, !tbaa !37
  %3827 = sext i32 %3826 to i64
  %3828 = getelementptr inbounds [4096 x i8], ptr %3825, i64 0, i64 %3827
  store i8 %3823, ptr %3828, align 1, !tbaa !40
  br label %3982

3829:                                             ; preds = %3721
  %3830 = load i32, ptr %74, align 4, !tbaa !37
  %3831 = udiv i32 %3830, 16
  store i32 %3831, ptr %72, align 4, !tbaa !37
  %3832 = load i32, ptr %74, align 4, !tbaa !37
  %3833 = urem i32 %3832, 16
  store i32 %3833, ptr %73, align 4, !tbaa !37
  %3834 = load ptr, ptr %2, align 8, !tbaa !5
  %3835 = getelementptr inbounds %struct.DState, ptr %3834, i32 0, i32 32
  %3836 = load i32, ptr %72, align 4, !tbaa !37
  %3837 = sext i32 %3836 to i64
  %3838 = getelementptr inbounds [16 x i32], ptr %3835, i64 0, i64 %3837
  %3839 = load i32, ptr %3838, align 4, !tbaa !37
  %3840 = load i32, ptr %73, align 4, !tbaa !37
  %3841 = add nsw i32 %3839, %3840
  store i32 %3841, ptr %71, align 4, !tbaa !37
  %3842 = load ptr, ptr %2, align 8, !tbaa !5
  %3843 = getelementptr inbounds %struct.DState, ptr %3842, i32 0, i32 31
  %3844 = load i32, ptr %71, align 4, !tbaa !37
  %3845 = sext i32 %3844 to i64
  %3846 = getelementptr inbounds [4096 x i8], ptr %3843, i64 0, i64 %3845
  %3847 = load i8, ptr %3846, align 1, !tbaa !40
  store i8 %3847, ptr %3, align 1, !tbaa !40
  br label %3848

3848:                                             ; preds = %3857, %3829
  %3849 = load i32, ptr %71, align 4, !tbaa !37
  %3850 = load ptr, ptr %2, align 8, !tbaa !5
  %3851 = getelementptr inbounds %struct.DState, ptr %3850, i32 0, i32 32
  %3852 = load i32, ptr %72, align 4, !tbaa !37
  %3853 = sext i32 %3852 to i64
  %3854 = getelementptr inbounds [16 x i32], ptr %3851, i64 0, i64 %3853
  %3855 = load i32, ptr %3854, align 4, !tbaa !37
  %3856 = icmp sgt i32 %3849, %3855
  br i1 %3856, label %3857, label %3872

3857:                                             ; preds = %3848
  %3858 = load ptr, ptr %2, align 8, !tbaa !5
  %3859 = getelementptr inbounds %struct.DState, ptr %3858, i32 0, i32 31
  %3860 = load i32, ptr %71, align 4, !tbaa !37
  %3861 = sub nsw i32 %3860, 1
  %3862 = sext i32 %3861 to i64
  %3863 = getelementptr inbounds [4096 x i8], ptr %3859, i64 0, i64 %3862
  %3864 = load i8, ptr %3863, align 1, !tbaa !40
  %3865 = load ptr, ptr %2, align 8, !tbaa !5
  %3866 = getelementptr inbounds %struct.DState, ptr %3865, i32 0, i32 31
  %3867 = load i32, ptr %71, align 4, !tbaa !37
  %3868 = sext i32 %3867 to i64
  %3869 = getelementptr inbounds [4096 x i8], ptr %3866, i64 0, i64 %3868
  store i8 %3864, ptr %3869, align 1, !tbaa !40
  %3870 = load i32, ptr %71, align 4, !tbaa !37
  %3871 = add nsw i32 %3870, -1
  store i32 %3871, ptr %71, align 4, !tbaa !37
  br label %3848, !llvm.loop !82

3872:                                             ; preds = %3848
  %3873 = load ptr, ptr %2, align 8, !tbaa !5
  %3874 = getelementptr inbounds %struct.DState, ptr %3873, i32 0, i32 32
  %3875 = load i32, ptr %72, align 4, !tbaa !37
  %3876 = sext i32 %3875 to i64
  %3877 = getelementptr inbounds [16 x i32], ptr %3874, i64 0, i64 %3876
  %3878 = load i32, ptr %3877, align 4, !tbaa !37
  %3879 = add nsw i32 %3878, 1
  store i32 %3879, ptr %3877, align 4, !tbaa !37
  br label %3880

3880:                                             ; preds = %3883, %3872
  %3881 = load i32, ptr %72, align 4, !tbaa !37
  %3882 = icmp sgt i32 %3881, 0
  br i1 %3882, label %3883, label %3917

3883:                                             ; preds = %3880
  %3884 = load ptr, ptr %2, align 8, !tbaa !5
  %3885 = getelementptr inbounds %struct.DState, ptr %3884, i32 0, i32 32
  %3886 = load i32, ptr %72, align 4, !tbaa !37
  %3887 = sext i32 %3886 to i64
  %3888 = getelementptr inbounds [16 x i32], ptr %3885, i64 0, i64 %3887
  %3889 = load i32, ptr %3888, align 4, !tbaa !37
  %3890 = add nsw i32 %3889, -1
  store i32 %3890, ptr %3888, align 4, !tbaa !37
  %3891 = load ptr, ptr %2, align 8, !tbaa !5
  %3892 = getelementptr inbounds %struct.DState, ptr %3891, i32 0, i32 31
  %3893 = load ptr, ptr %2, align 8, !tbaa !5
  %3894 = getelementptr inbounds %struct.DState, ptr %3893, i32 0, i32 32
  %3895 = load i32, ptr %72, align 4, !tbaa !37
  %3896 = sub nsw i32 %3895, 1
  %3897 = sext i32 %3896 to i64
  %3898 = getelementptr inbounds [16 x i32], ptr %3894, i64 0, i64 %3897
  %3899 = load i32, ptr %3898, align 4, !tbaa !37
  %3900 = add nsw i32 %3899, 16
  %3901 = sub nsw i32 %3900, 1
  %3902 = sext i32 %3901 to i64
  %3903 = getelementptr inbounds [4096 x i8], ptr %3892, i64 0, i64 %3902
  %3904 = load i8, ptr %3903, align 1, !tbaa !40
  %3905 = load ptr, ptr %2, align 8, !tbaa !5
  %3906 = getelementptr inbounds %struct.DState, ptr %3905, i32 0, i32 31
  %3907 = load ptr, ptr %2, align 8, !tbaa !5
  %3908 = getelementptr inbounds %struct.DState, ptr %3907, i32 0, i32 32
  %3909 = load i32, ptr %72, align 4, !tbaa !37
  %3910 = sext i32 %3909 to i64
  %3911 = getelementptr inbounds [16 x i32], ptr %3908, i64 0, i64 %3910
  %3912 = load i32, ptr %3911, align 4, !tbaa !37
  %3913 = sext i32 %3912 to i64
  %3914 = getelementptr inbounds [4096 x i8], ptr %3906, i64 0, i64 %3913
  store i8 %3904, ptr %3914, align 1, !tbaa !40
  %3915 = load i32, ptr %72, align 4, !tbaa !37
  %3916 = add nsw i32 %3915, -1
  store i32 %3916, ptr %72, align 4, !tbaa !37
  br label %3880, !llvm.loop !83

3917:                                             ; preds = %3880
  %3918 = load ptr, ptr %2, align 8, !tbaa !5
  %3919 = getelementptr inbounds %struct.DState, ptr %3918, i32 0, i32 32
  %3920 = getelementptr inbounds [16 x i32], ptr %3919, i64 0, i64 0
  %3921 = load i32, ptr %3920, align 4, !tbaa !37
  %3922 = add nsw i32 %3921, -1
  store i32 %3922, ptr %3920, align 4, !tbaa !37
  %3923 = load i8, ptr %3, align 1, !tbaa !40
  %3924 = load ptr, ptr %2, align 8, !tbaa !5
  %3925 = getelementptr inbounds %struct.DState, ptr %3924, i32 0, i32 31
  %3926 = load ptr, ptr %2, align 8, !tbaa !5
  %3927 = getelementptr inbounds %struct.DState, ptr %3926, i32 0, i32 32
  %3928 = getelementptr inbounds [16 x i32], ptr %3927, i64 0, i64 0
  %3929 = load i32, ptr %3928, align 4, !tbaa !37
  %3930 = sext i32 %3929 to i64
  %3931 = getelementptr inbounds [4096 x i8], ptr %3925, i64 0, i64 %3930
  store i8 %3923, ptr %3931, align 1, !tbaa !40
  %3932 = load ptr, ptr %2, align 8, !tbaa !5
  %3933 = getelementptr inbounds %struct.DState, ptr %3932, i32 0, i32 32
  %3934 = getelementptr inbounds [16 x i32], ptr %3933, i64 0, i64 0
  %3935 = load i32, ptr %3934, align 4, !tbaa !37
  %3936 = icmp eq i32 %3935, 0
  br i1 %3936, label %3937, label %3981

3937:                                             ; preds = %3917
  store i32 4095, ptr %70, align 4, !tbaa !37
  store i32 15, ptr %68, align 4, !tbaa !37
  br label %3938

3938:                                             ; preds = %3977, %3937
  %3939 = load i32, ptr %68, align 4, !tbaa !37
  %3940 = icmp sge i32 %3939, 0
  br i1 %3940, label %3941, label %3980

3941:                                             ; preds = %3938
  store i32 15, ptr %69, align 4, !tbaa !37
  br label %3942

3942:                                             ; preds = %3966, %3941
  %3943 = load i32, ptr %69, align 4, !tbaa !37
  %3944 = icmp sge i32 %3943, 0
  br i1 %3944, label %3945, label %3969

3945:                                             ; preds = %3942
  %3946 = load ptr, ptr %2, align 8, !tbaa !5
  %3947 = getelementptr inbounds %struct.DState, ptr %3946, i32 0, i32 31
  %3948 = load ptr, ptr %2, align 8, !tbaa !5
  %3949 = getelementptr inbounds %struct.DState, ptr %3948, i32 0, i32 32
  %3950 = load i32, ptr %68, align 4, !tbaa !37
  %3951 = sext i32 %3950 to i64
  %3952 = getelementptr inbounds [16 x i32], ptr %3949, i64 0, i64 %3951
  %3953 = load i32, ptr %3952, align 4, !tbaa !37
  %3954 = load i32, ptr %69, align 4, !tbaa !37
  %3955 = add nsw i32 %3953, %3954
  %3956 = sext i32 %3955 to i64
  %3957 = getelementptr inbounds [4096 x i8], ptr %3947, i64 0, i64 %3956
  %3958 = load i8, ptr %3957, align 1, !tbaa !40
  %3959 = load ptr, ptr %2, align 8, !tbaa !5
  %3960 = getelementptr inbounds %struct.DState, ptr %3959, i32 0, i32 31
  %3961 = load i32, ptr %70, align 4, !tbaa !37
  %3962 = sext i32 %3961 to i64
  %3963 = getelementptr inbounds [4096 x i8], ptr %3960, i64 0, i64 %3962
  store i8 %3958, ptr %3963, align 1, !tbaa !40
  %3964 = load i32, ptr %70, align 4, !tbaa !37
  %3965 = add nsw i32 %3964, -1
  store i32 %3965, ptr %70, align 4, !tbaa !37
  br label %3966

3966:                                             ; preds = %3945
  %3967 = load i32, ptr %69, align 4, !tbaa !37
  %3968 = add nsw i32 %3967, -1
  store i32 %3968, ptr %69, align 4, !tbaa !37
  br label %3942, !llvm.loop !84

3969:                                             ; preds = %3942
  %3970 = load i32, ptr %70, align 4, !tbaa !37
  %3971 = add nsw i32 %3970, 1
  %3972 = load ptr, ptr %2, align 8, !tbaa !5
  %3973 = getelementptr inbounds %struct.DState, ptr %3972, i32 0, i32 32
  %3974 = load i32, ptr %68, align 4, !tbaa !37
  %3975 = sext i32 %3974 to i64
  %3976 = getelementptr inbounds [16 x i32], ptr %3973, i64 0, i64 %3975
  store i32 %3971, ptr %3976, align 4, !tbaa !37
  br label %3977

3977:                                             ; preds = %3969
  %3978 = load i32, ptr %68, align 4, !tbaa !37
  %3979 = add nsw i32 %3978, -1
  store i32 %3979, ptr %68, align 4, !tbaa !37
  br label %3938, !llvm.loop !85

3980:                                             ; preds = %3938
  br label %3981

3981:                                             ; preds = %3980, %3917
  br label %3982

3982:                                             ; preds = %3981, %3822
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  %3983 = load ptr, ptr %2, align 8, !tbaa !5
  %3984 = getelementptr inbounds %struct.DState, ptr %3983, i32 0, i32 16
  %3985 = load ptr, ptr %2, align 8, !tbaa !5
  %3986 = getelementptr inbounds %struct.DState, ptr %3985, i32 0, i32 30
  %3987 = load i8, ptr %3, align 1, !tbaa !40
  %3988 = zext i8 %3987 to i64
  %3989 = getelementptr inbounds [256 x i8], ptr %3986, i64 0, i64 %3988
  %3990 = load i8, ptr %3989, align 1, !tbaa !40
  %3991 = zext i8 %3990 to i64
  %3992 = getelementptr inbounds [256 x i32], ptr %3984, i64 0, i64 %3991
  %3993 = load i32, ptr %3992, align 4, !tbaa !37
  %3994 = add nsw i32 %3993, 1
  store i32 %3994, ptr %3992, align 4, !tbaa !37
  %3995 = load ptr, ptr %2, align 8, !tbaa !5
  %3996 = getelementptr inbounds %struct.DState, ptr %3995, i32 0, i32 10
  %3997 = load i8, ptr %3996, align 4, !tbaa !47
  %3998 = icmp ne i8 %3997, 0
  br i1 %3998, label %3999, label %4013

3999:                                             ; preds = %3982
  %4000 = load ptr, ptr %2, align 8, !tbaa !5
  %4001 = getelementptr inbounds %struct.DState, ptr %4000, i32 0, i32 30
  %4002 = load i8, ptr %3, align 1, !tbaa !40
  %4003 = zext i8 %4002 to i64
  %4004 = getelementptr inbounds [256 x i8], ptr %4001, i64 0, i64 %4003
  %4005 = load i8, ptr %4004, align 1, !tbaa !40
  %4006 = zext i8 %4005 to i16
  %4007 = load ptr, ptr %2, align 8, !tbaa !5
  %4008 = getelementptr inbounds %struct.DState, ptr %4007, i32 0, i32 21
  %4009 = load ptr, ptr %4008, align 8, !tbaa !50
  %4010 = load i32, ptr %19, align 4, !tbaa !37
  %4011 = sext i32 %4010 to i64
  %4012 = getelementptr inbounds i16, ptr %4009, i64 %4011
  store i16 %4006, ptr %4012, align 2, !tbaa !76
  br label %4027

4013:                                             ; preds = %3982
  %4014 = load ptr, ptr %2, align 8, !tbaa !5
  %4015 = getelementptr inbounds %struct.DState, ptr %4014, i32 0, i32 30
  %4016 = load i8, ptr %3, align 1, !tbaa !40
  %4017 = zext i8 %4016 to i64
  %4018 = getelementptr inbounds [256 x i8], ptr %4015, i64 0, i64 %4017
  %4019 = load i8, ptr %4018, align 1, !tbaa !40
  %4020 = zext i8 %4019 to i32
  %4021 = load ptr, ptr %2, align 8, !tbaa !5
  %4022 = getelementptr inbounds %struct.DState, ptr %4021, i32 0, i32 20
  %4023 = load ptr, ptr %4022, align 8, !tbaa !52
  %4024 = load i32, ptr %19, align 4, !tbaa !37
  %4025 = sext i32 %4024 to i64
  %4026 = getelementptr inbounds i32, ptr %4023, i64 %4025
  store i32 %4020, ptr %4026, align 4, !tbaa !37
  br label %4027

4027:                                             ; preds = %4013, %3999
  %4028 = load i32, ptr %19, align 4, !tbaa !37
  %4029 = add nsw i32 %4028, 1
  store i32 %4029, ptr %19, align 4, !tbaa !37
  %4030 = load i32, ptr %16, align 4, !tbaa !37
  %4031 = icmp eq i32 %4030, 0
  br i1 %4031, label %4032, label %4071

4032:                                             ; preds = %4027
  %4033 = load i32, ptr %15, align 4, !tbaa !37
  %4034 = add nsw i32 %4033, 1
  store i32 %4034, ptr %15, align 4, !tbaa !37
  %4035 = load i32, ptr %15, align 4, !tbaa !37
  %4036 = load i32, ptr %13, align 4, !tbaa !37
  %4037 = icmp sge i32 %4035, %4036
  br i1 %4037, label %4038, label %4039

4038:                                             ; preds = %4032
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

4039:                                             ; preds = %4032
  store i32 50, ptr %16, align 4, !tbaa !37
  %4040 = load ptr, ptr %2, align 8, !tbaa !5
  %4041 = getelementptr inbounds %struct.DState, ptr %4040, i32 0, i32 33
  %4042 = load i32, ptr %15, align 4, !tbaa !37
  %4043 = sext i32 %4042 to i64
  %4044 = getelementptr inbounds [18002 x i8], ptr %4041, i64 0, i64 %4043
  %4045 = load i8, ptr %4044, align 1, !tbaa !40
  %4046 = zext i8 %4045 to i32
  store i32 %4046, ptr %27, align 4, !tbaa !37
  %4047 = load ptr, ptr %2, align 8, !tbaa !5
  %4048 = getelementptr inbounds %struct.DState, ptr %4047, i32 0, i32 39
  %4049 = load i32, ptr %27, align 4, !tbaa !37
  %4050 = sext i32 %4049 to i64
  %4051 = getelementptr inbounds [6 x i32], ptr %4048, i64 0, i64 %4050
  %4052 = load i32, ptr %4051, align 4, !tbaa !37
  store i32 %4052, ptr %28, align 4, !tbaa !37
  %4053 = load ptr, ptr %2, align 8, !tbaa !5
  %4054 = getelementptr inbounds %struct.DState, ptr %4053, i32 0, i32 36
  %4055 = load i32, ptr %27, align 4, !tbaa !37
  %4056 = sext i32 %4055 to i64
  %4057 = getelementptr inbounds [6 x [258 x i32]], ptr %4054, i64 0, i64 %4056
  %4058 = getelementptr inbounds [258 x i32], ptr %4057, i64 0, i64 0
  store ptr %4058, ptr %29, align 8, !tbaa !5
  %4059 = load ptr, ptr %2, align 8, !tbaa !5
  %4060 = getelementptr inbounds %struct.DState, ptr %4059, i32 0, i32 38
  %4061 = load i32, ptr %27, align 4, !tbaa !37
  %4062 = sext i32 %4061 to i64
  %4063 = getelementptr inbounds [6 x [258 x i32]], ptr %4060, i64 0, i64 %4062
  %4064 = getelementptr inbounds [258 x i32], ptr %4063, i64 0, i64 0
  store ptr %4064, ptr %31, align 8, !tbaa !5
  %4065 = load ptr, ptr %2, align 8, !tbaa !5
  %4066 = getelementptr inbounds %struct.DState, ptr %4065, i32 0, i32 37
  %4067 = load i32, ptr %27, align 4, !tbaa !37
  %4068 = sext i32 %4067 to i64
  %4069 = getelementptr inbounds [6 x [258 x i32]], ptr %4066, i64 0, i64 %4068
  %4070 = getelementptr inbounds [258 x i32], ptr %4069, i64 0, i64 0
  store ptr %4070, ptr %30, align 8, !tbaa !5
  br label %4071

4071:                                             ; preds = %4039, %4027
  %4072 = load i32, ptr %16, align 4, !tbaa !37
  %4073 = add nsw i32 %4072, -1
  store i32 %4073, ptr %16, align 4, !tbaa !37
  %4074 = load i32, ptr %28, align 4, !tbaa !37
  store i32 %4074, ptr %24, align 4, !tbaa !37
  br label %4075

4075:                                             ; preds = %4071, %144
  %4076 = load ptr, ptr %2, align 8, !tbaa !5
  %4077 = getelementptr inbounds %struct.DState, ptr %4076, i32 0, i32 1
  store i32 40, ptr %4077, align 8, !tbaa !12
  br label %4078

4078:                                             ; preds = %4163, %4075
  br label %4079

4079:                                             ; preds = %4078
  %4080 = load ptr, ptr %2, align 8, !tbaa !5
  %4081 = getelementptr inbounds %struct.DState, ptr %4080, i32 0, i32 8
  %4082 = load i32, ptr %4081, align 4, !tbaa !38
  %4083 = load i32, ptr %24, align 4, !tbaa !37
  %4084 = icmp sge i32 %4082, %4083
  br i1 %4084, label %4085, label %4105

4085:                                             ; preds = %4079
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  %4086 = load ptr, ptr %2, align 8, !tbaa !5
  %4087 = getelementptr inbounds %struct.DState, ptr %4086, i32 0, i32 7
  %4088 = load i32, ptr %4087, align 8, !tbaa !39
  %4089 = load ptr, ptr %2, align 8, !tbaa !5
  %4090 = getelementptr inbounds %struct.DState, ptr %4089, i32 0, i32 8
  %4091 = load i32, ptr %4090, align 4, !tbaa !38
  %4092 = load i32, ptr %24, align 4, !tbaa !37
  %4093 = sub nsw i32 %4091, %4092
  %4094 = lshr i32 %4088, %4093
  %4095 = load i32, ptr %24, align 4, !tbaa !37
  %4096 = shl i32 1, %4095
  %4097 = sub nsw i32 %4096, 1
  %4098 = and i32 %4094, %4097
  store i32 %4098, ptr %76, align 4, !tbaa !37
  %4099 = load i32, ptr %24, align 4, !tbaa !37
  %4100 = load ptr, ptr %2, align 8, !tbaa !5
  %4101 = getelementptr inbounds %struct.DState, ptr %4100, i32 0, i32 8
  %4102 = load i32, ptr %4101, align 4, !tbaa !38
  %4103 = sub nsw i32 %4102, %4099
  store i32 %4103, ptr %4101, align 4, !tbaa !38
  %4104 = load i32, ptr %76, align 4, !tbaa !37
  store i32 %4104, ptr %25, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  br label %4164

4105:                                             ; preds = %4079
  %4106 = load ptr, ptr %2, align 8, !tbaa !5
  %4107 = getelementptr inbounds %struct.DState, ptr %4106, i32 0, i32 0
  %4108 = load ptr, ptr %4107, align 8, !tbaa !9
  %4109 = getelementptr inbounds %struct.bz_stream, ptr %4108, i32 0, i32 1
  %4110 = load i32, ptr %4109, align 8, !tbaa !41
  %4111 = icmp eq i32 %4110, 0
  br i1 %4111, label %4112, label %4113

4112:                                             ; preds = %4105
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

4113:                                             ; preds = %4105
  %4114 = load ptr, ptr %2, align 8, !tbaa !5
  %4115 = getelementptr inbounds %struct.DState, ptr %4114, i32 0, i32 7
  %4116 = load i32, ptr %4115, align 8, !tbaa !39
  %4117 = shl i32 %4116, 8
  %4118 = load ptr, ptr %2, align 8, !tbaa !5
  %4119 = getelementptr inbounds %struct.DState, ptr %4118, i32 0, i32 0
  %4120 = load ptr, ptr %4119, align 8, !tbaa !9
  %4121 = getelementptr inbounds %struct.bz_stream, ptr %4120, i32 0, i32 0
  %4122 = load ptr, ptr %4121, align 8, !tbaa !43
  %4123 = load i8, ptr %4122, align 1, !tbaa !40
  %4124 = zext i8 %4123 to i32
  %4125 = or i32 %4117, %4124
  %4126 = load ptr, ptr %2, align 8, !tbaa !5
  %4127 = getelementptr inbounds %struct.DState, ptr %4126, i32 0, i32 7
  store i32 %4125, ptr %4127, align 8, !tbaa !39
  %4128 = load ptr, ptr %2, align 8, !tbaa !5
  %4129 = getelementptr inbounds %struct.DState, ptr %4128, i32 0, i32 8
  %4130 = load i32, ptr %4129, align 4, !tbaa !38
  %4131 = add nsw i32 %4130, 8
  store i32 %4131, ptr %4129, align 4, !tbaa !38
  %4132 = load ptr, ptr %2, align 8, !tbaa !5
  %4133 = getelementptr inbounds %struct.DState, ptr %4132, i32 0, i32 0
  %4134 = load ptr, ptr %4133, align 8, !tbaa !9
  %4135 = getelementptr inbounds %struct.bz_stream, ptr %4134, i32 0, i32 0
  %4136 = load ptr, ptr %4135, align 8, !tbaa !43
  %4137 = getelementptr inbounds i8, ptr %4136, i32 1
  store ptr %4137, ptr %4135, align 8, !tbaa !43
  %4138 = load ptr, ptr %2, align 8, !tbaa !5
  %4139 = getelementptr inbounds %struct.DState, ptr %4138, i32 0, i32 0
  %4140 = load ptr, ptr %4139, align 8, !tbaa !9
  %4141 = getelementptr inbounds %struct.bz_stream, ptr %4140, i32 0, i32 1
  %4142 = load i32, ptr %4141, align 8, !tbaa !41
  %4143 = add i32 %4142, -1
  store i32 %4143, ptr %4141, align 8, !tbaa !41
  %4144 = load ptr, ptr %2, align 8, !tbaa !5
  %4145 = getelementptr inbounds %struct.DState, ptr %4144, i32 0, i32 0
  %4146 = load ptr, ptr %4145, align 8, !tbaa !9
  %4147 = getelementptr inbounds %struct.bz_stream, ptr %4146, i32 0, i32 2
  %4148 = load i32, ptr %4147, align 4, !tbaa !44
  %4149 = add i32 %4148, 1
  store i32 %4149, ptr %4147, align 4, !tbaa !44
  %4150 = load ptr, ptr %2, align 8, !tbaa !5
  %4151 = getelementptr inbounds %struct.DState, ptr %4150, i32 0, i32 0
  %4152 = load ptr, ptr %4151, align 8, !tbaa !9
  %4153 = getelementptr inbounds %struct.bz_stream, ptr %4152, i32 0, i32 2
  %4154 = load i32, ptr %4153, align 4, !tbaa !44
  %4155 = icmp eq i32 %4154, 0
  br i1 %4155, label %4156, label %4163

4156:                                             ; preds = %4113
  %4157 = load ptr, ptr %2, align 8, !tbaa !5
  %4158 = getelementptr inbounds %struct.DState, ptr %4157, i32 0, i32 0
  %4159 = load ptr, ptr %4158, align 8, !tbaa !9
  %4160 = getelementptr inbounds %struct.bz_stream, ptr %4159, i32 0, i32 3
  %4161 = load i32, ptr %4160, align 8, !tbaa !45
  %4162 = add i32 %4161, 1
  store i32 %4162, ptr %4160, align 8, !tbaa !45
  br label %4163

4163:                                             ; preds = %4156, %4113
  br label %4078

4164:                                             ; preds = %4085
  br label %4165

4165:                                             ; preds = %4265, %4164
  br label %4166

4166:                                             ; preds = %4165
  %4167 = load i32, ptr %24, align 4, !tbaa !37
  %4168 = icmp sgt i32 %4167, 20
  br i1 %4168, label %4169, label %4170

4169:                                             ; preds = %4166
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

4170:                                             ; preds = %4166
  %4171 = load i32, ptr %25, align 4, !tbaa !37
  %4172 = load ptr, ptr %29, align 8, !tbaa !5
  %4173 = load i32, ptr %24, align 4, !tbaa !37
  %4174 = sext i32 %4173 to i64
  %4175 = getelementptr inbounds i32, ptr %4172, i64 %4174
  %4176 = load i32, ptr %4175, align 4, !tbaa !37
  %4177 = icmp sle i32 %4171, %4176
  br i1 %4177, label %4178, label %4179

4178:                                             ; preds = %4170
  br label %4270

4179:                                             ; preds = %4170
  %4180 = load i32, ptr %24, align 4, !tbaa !37
  %4181 = add nsw i32 %4180, 1
  store i32 %4181, ptr %24, align 4, !tbaa !37
  br label %4182

4182:                                             ; preds = %4179, %144
  %4183 = load ptr, ptr %2, align 8, !tbaa !5
  %4184 = getelementptr inbounds %struct.DState, ptr %4183, i32 0, i32 1
  store i32 41, ptr %4184, align 8, !tbaa !12
  br label %4185

4185:                                             ; preds = %4264, %4182
  br label %4186

4186:                                             ; preds = %4185
  %4187 = load ptr, ptr %2, align 8, !tbaa !5
  %4188 = getelementptr inbounds %struct.DState, ptr %4187, i32 0, i32 8
  %4189 = load i32, ptr %4188, align 4, !tbaa !38
  %4190 = icmp sge i32 %4189, 1
  br i1 %4190, label %4191, label %4206

4191:                                             ; preds = %4186
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  %4192 = load ptr, ptr %2, align 8, !tbaa !5
  %4193 = getelementptr inbounds %struct.DState, ptr %4192, i32 0, i32 7
  %4194 = load i32, ptr %4193, align 8, !tbaa !39
  %4195 = load ptr, ptr %2, align 8, !tbaa !5
  %4196 = getelementptr inbounds %struct.DState, ptr %4195, i32 0, i32 8
  %4197 = load i32, ptr %4196, align 4, !tbaa !38
  %4198 = sub nsw i32 %4197, 1
  %4199 = lshr i32 %4194, %4198
  %4200 = and i32 %4199, 1
  store i32 %4200, ptr %77, align 4, !tbaa !37
  %4201 = load ptr, ptr %2, align 8, !tbaa !5
  %4202 = getelementptr inbounds %struct.DState, ptr %4201, i32 0, i32 8
  %4203 = load i32, ptr %4202, align 4, !tbaa !38
  %4204 = sub nsw i32 %4203, 1
  store i32 %4204, ptr %4202, align 4, !tbaa !38
  %4205 = load i32, ptr %77, align 4, !tbaa !37
  store i32 %4205, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  br label %4265

4206:                                             ; preds = %4186
  %4207 = load ptr, ptr %2, align 8, !tbaa !5
  %4208 = getelementptr inbounds %struct.DState, ptr %4207, i32 0, i32 0
  %4209 = load ptr, ptr %4208, align 8, !tbaa !9
  %4210 = getelementptr inbounds %struct.bz_stream, ptr %4209, i32 0, i32 1
  %4211 = load i32, ptr %4210, align 8, !tbaa !41
  %4212 = icmp eq i32 %4211, 0
  br i1 %4212, label %4213, label %4214

4213:                                             ; preds = %4206
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

4214:                                             ; preds = %4206
  %4215 = load ptr, ptr %2, align 8, !tbaa !5
  %4216 = getelementptr inbounds %struct.DState, ptr %4215, i32 0, i32 7
  %4217 = load i32, ptr %4216, align 8, !tbaa !39
  %4218 = shl i32 %4217, 8
  %4219 = load ptr, ptr %2, align 8, !tbaa !5
  %4220 = getelementptr inbounds %struct.DState, ptr %4219, i32 0, i32 0
  %4221 = load ptr, ptr %4220, align 8, !tbaa !9
  %4222 = getelementptr inbounds %struct.bz_stream, ptr %4221, i32 0, i32 0
  %4223 = load ptr, ptr %4222, align 8, !tbaa !43
  %4224 = load i8, ptr %4223, align 1, !tbaa !40
  %4225 = zext i8 %4224 to i32
  %4226 = or i32 %4218, %4225
  %4227 = load ptr, ptr %2, align 8, !tbaa !5
  %4228 = getelementptr inbounds %struct.DState, ptr %4227, i32 0, i32 7
  store i32 %4226, ptr %4228, align 8, !tbaa !39
  %4229 = load ptr, ptr %2, align 8, !tbaa !5
  %4230 = getelementptr inbounds %struct.DState, ptr %4229, i32 0, i32 8
  %4231 = load i32, ptr %4230, align 4, !tbaa !38
  %4232 = add nsw i32 %4231, 8
  store i32 %4232, ptr %4230, align 4, !tbaa !38
  %4233 = load ptr, ptr %2, align 8, !tbaa !5
  %4234 = getelementptr inbounds %struct.DState, ptr %4233, i32 0, i32 0
  %4235 = load ptr, ptr %4234, align 8, !tbaa !9
  %4236 = getelementptr inbounds %struct.bz_stream, ptr %4235, i32 0, i32 0
  %4237 = load ptr, ptr %4236, align 8, !tbaa !43
  %4238 = getelementptr inbounds i8, ptr %4237, i32 1
  store ptr %4238, ptr %4236, align 8, !tbaa !43
  %4239 = load ptr, ptr %2, align 8, !tbaa !5
  %4240 = getelementptr inbounds %struct.DState, ptr %4239, i32 0, i32 0
  %4241 = load ptr, ptr %4240, align 8, !tbaa !9
  %4242 = getelementptr inbounds %struct.bz_stream, ptr %4241, i32 0, i32 1
  %4243 = load i32, ptr %4242, align 8, !tbaa !41
  %4244 = add i32 %4243, -1
  store i32 %4244, ptr %4242, align 8, !tbaa !41
  %4245 = load ptr, ptr %2, align 8, !tbaa !5
  %4246 = getelementptr inbounds %struct.DState, ptr %4245, i32 0, i32 0
  %4247 = load ptr, ptr %4246, align 8, !tbaa !9
  %4248 = getelementptr inbounds %struct.bz_stream, ptr %4247, i32 0, i32 2
  %4249 = load i32, ptr %4248, align 4, !tbaa !44
  %4250 = add i32 %4249, 1
  store i32 %4250, ptr %4248, align 4, !tbaa !44
  %4251 = load ptr, ptr %2, align 8, !tbaa !5
  %4252 = getelementptr inbounds %struct.DState, ptr %4251, i32 0, i32 0
  %4253 = load ptr, ptr %4252, align 8, !tbaa !9
  %4254 = getelementptr inbounds %struct.bz_stream, ptr %4253, i32 0, i32 2
  %4255 = load i32, ptr %4254, align 4, !tbaa !44
  %4256 = icmp eq i32 %4255, 0
  br i1 %4256, label %4257, label %4264

4257:                                             ; preds = %4214
  %4258 = load ptr, ptr %2, align 8, !tbaa !5
  %4259 = getelementptr inbounds %struct.DState, ptr %4258, i32 0, i32 0
  %4260 = load ptr, ptr %4259, align 8, !tbaa !9
  %4261 = getelementptr inbounds %struct.bz_stream, ptr %4260, i32 0, i32 3
  %4262 = load i32, ptr %4261, align 8, !tbaa !45
  %4263 = add i32 %4262, 1
  store i32 %4263, ptr %4261, align 8, !tbaa !45
  br label %4264

4264:                                             ; preds = %4257, %4214
  br label %4185

4265:                                             ; preds = %4191
  %4266 = load i32, ptr %25, align 4, !tbaa !37
  %4267 = shl i32 %4266, 1
  %4268 = load i32, ptr %26, align 4, !tbaa !37
  %4269 = or i32 %4267, %4268
  store i32 %4269, ptr %25, align 4, !tbaa !37
  br label %4165

4270:                                             ; preds = %4178
  %4271 = load i32, ptr %25, align 4, !tbaa !37
  %4272 = load ptr, ptr %30, align 8, !tbaa !5
  %4273 = load i32, ptr %24, align 4, !tbaa !37
  %4274 = sext i32 %4273 to i64
  %4275 = getelementptr inbounds i32, ptr %4272, i64 %4274
  %4276 = load i32, ptr %4275, align 4, !tbaa !37
  %4277 = sub nsw i32 %4271, %4276
  %4278 = icmp slt i32 %4277, 0
  br i1 %4278, label %4288, label %4279

4279:                                             ; preds = %4270
  %4280 = load i32, ptr %25, align 4, !tbaa !37
  %4281 = load ptr, ptr %30, align 8, !tbaa !5
  %4282 = load i32, ptr %24, align 4, !tbaa !37
  %4283 = sext i32 %4282 to i64
  %4284 = getelementptr inbounds i32, ptr %4281, i64 %4283
  %4285 = load i32, ptr %4284, align 4, !tbaa !37
  %4286 = sub nsw i32 %4280, %4285
  %4287 = icmp sge i32 %4286, 258
  br i1 %4287, label %4288, label %4289

4288:                                             ; preds = %4279, %4270
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

4289:                                             ; preds = %4279
  %4290 = load ptr, ptr %31, align 8, !tbaa !5
  %4291 = load i32, ptr %25, align 4, !tbaa !37
  %4292 = load ptr, ptr %30, align 8, !tbaa !5
  %4293 = load i32, ptr %24, align 4, !tbaa !37
  %4294 = sext i32 %4293 to i64
  %4295 = getelementptr inbounds i32, ptr %4292, i64 %4294
  %4296 = load i32, ptr %4295, align 4, !tbaa !37
  %4297 = sub nsw i32 %4291, %4296
  %4298 = sext i32 %4297 to i64
  %4299 = getelementptr inbounds i32, ptr %4290, i64 %4298
  %4300 = load i32, ptr %4299, align 4, !tbaa !37
  store i32 %4300, ptr %17, align 4, !tbaa !37
  br label %3328

4301:                                             ; preds = %3333
  %4302 = load ptr, ptr %2, align 8, !tbaa !5
  %4303 = getelementptr inbounds %struct.DState, ptr %4302, i32 0, i32 13
  %4304 = load i32, ptr %4303, align 8, !tbaa !57
  %4305 = icmp slt i32 %4304, 0
  br i1 %4305, label %4312, label %4306

4306:                                             ; preds = %4301
  %4307 = load ptr, ptr %2, align 8, !tbaa !5
  %4308 = getelementptr inbounds %struct.DState, ptr %4307, i32 0, i32 13
  %4309 = load i32, ptr %4308, align 8, !tbaa !57
  %4310 = load i32, ptr %19, align 4, !tbaa !37
  %4311 = icmp sge i32 %4309, %4310
  br i1 %4311, label %4312, label %4313

4312:                                             ; preds = %4306, %4301
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

4313:                                             ; preds = %4306
  %4314 = load ptr, ptr %2, align 8, !tbaa !5
  %4315 = getelementptr inbounds %struct.DState, ptr %4314, i32 0, i32 18
  %4316 = getelementptr inbounds [257 x i32], ptr %4315, i64 0, i64 0
  store i32 0, ptr %4316, align 8, !tbaa !37
  store i32 1, ptr %8, align 4, !tbaa !37
  br label %4317

4317:                                             ; preds = %4333, %4313
  %4318 = load i32, ptr %8, align 4, !tbaa !37
  %4319 = icmp sle i32 %4318, 256
  br i1 %4319, label %4320, label %4336

4320:                                             ; preds = %4317
  %4321 = load ptr, ptr %2, align 8, !tbaa !5
  %4322 = getelementptr inbounds %struct.DState, ptr %4321, i32 0, i32 16
  %4323 = load i32, ptr %8, align 4, !tbaa !37
  %4324 = sub nsw i32 %4323, 1
  %4325 = sext i32 %4324 to i64
  %4326 = getelementptr inbounds [256 x i32], ptr %4322, i64 0, i64 %4325
  %4327 = load i32, ptr %4326, align 4, !tbaa !37
  %4328 = load ptr, ptr %2, align 8, !tbaa !5
  %4329 = getelementptr inbounds %struct.DState, ptr %4328, i32 0, i32 18
  %4330 = load i32, ptr %8, align 4, !tbaa !37
  %4331 = sext i32 %4330 to i64
  %4332 = getelementptr inbounds [257 x i32], ptr %4329, i64 0, i64 %4331
  store i32 %4327, ptr %4332, align 4, !tbaa !37
  br label %4333

4333:                                             ; preds = %4320
  %4334 = load i32, ptr %8, align 4, !tbaa !37
  %4335 = add nsw i32 %4334, 1
  store i32 %4335, ptr %8, align 4, !tbaa !37
  br label %4317, !llvm.loop !86

4336:                                             ; preds = %4317
  store i32 1, ptr %8, align 4, !tbaa !37
  br label %4337

4337:                                             ; preds = %4355, %4336
  %4338 = load i32, ptr %8, align 4, !tbaa !37
  %4339 = icmp sle i32 %4338, 256
  br i1 %4339, label %4340, label %4358

4340:                                             ; preds = %4337
  %4341 = load ptr, ptr %2, align 8, !tbaa !5
  %4342 = getelementptr inbounds %struct.DState, ptr %4341, i32 0, i32 18
  %4343 = load i32, ptr %8, align 4, !tbaa !37
  %4344 = sub nsw i32 %4343, 1
  %4345 = sext i32 %4344 to i64
  %4346 = getelementptr inbounds [257 x i32], ptr %4342, i64 0, i64 %4345
  %4347 = load i32, ptr %4346, align 4, !tbaa !37
  %4348 = load ptr, ptr %2, align 8, !tbaa !5
  %4349 = getelementptr inbounds %struct.DState, ptr %4348, i32 0, i32 18
  %4350 = load i32, ptr %8, align 4, !tbaa !37
  %4351 = sext i32 %4350 to i64
  %4352 = getelementptr inbounds [257 x i32], ptr %4349, i64 0, i64 %4351
  %4353 = load i32, ptr %4352, align 4, !tbaa !37
  %4354 = add nsw i32 %4353, %4347
  store i32 %4354, ptr %4352, align 4, !tbaa !37
  br label %4355

4355:                                             ; preds = %4340
  %4356 = load i32, ptr %8, align 4, !tbaa !37
  %4357 = add nsw i32 %4356, 1
  store i32 %4357, ptr %8, align 4, !tbaa !37
  br label %4337, !llvm.loop !87

4358:                                             ; preds = %4337
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %4359

4359:                                             ; preds = %4381, %4358
  %4360 = load i32, ptr %8, align 4, !tbaa !37
  %4361 = icmp sle i32 %4360, 256
  br i1 %4361, label %4362, label %4384

4362:                                             ; preds = %4359
  %4363 = load ptr, ptr %2, align 8, !tbaa !5
  %4364 = getelementptr inbounds %struct.DState, ptr %4363, i32 0, i32 18
  %4365 = load i32, ptr %8, align 4, !tbaa !37
  %4366 = sext i32 %4365 to i64
  %4367 = getelementptr inbounds [257 x i32], ptr %4364, i64 0, i64 %4366
  %4368 = load i32, ptr %4367, align 4, !tbaa !37
  %4369 = icmp slt i32 %4368, 0
  br i1 %4369, label %4379, label %4370

4370:                                             ; preds = %4362
  %4371 = load ptr, ptr %2, align 8, !tbaa !5
  %4372 = getelementptr inbounds %struct.DState, ptr %4371, i32 0, i32 18
  %4373 = load i32, ptr %8, align 4, !tbaa !37
  %4374 = sext i32 %4373 to i64
  %4375 = getelementptr inbounds [257 x i32], ptr %4372, i64 0, i64 %4374
  %4376 = load i32, ptr %4375, align 4, !tbaa !37
  %4377 = load i32, ptr %19, align 4, !tbaa !37
  %4378 = icmp sgt i32 %4376, %4377
  br i1 %4378, label %4379, label %4380

4379:                                             ; preds = %4370, %4362
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

4380:                                             ; preds = %4370
  br label %4381

4381:                                             ; preds = %4380
  %4382 = load i32, ptr %8, align 4, !tbaa !37
  %4383 = add nsw i32 %4382, 1
  store i32 %4383, ptr %8, align 4, !tbaa !37
  br label %4359, !llvm.loop !88

4384:                                             ; preds = %4359
  %4385 = load ptr, ptr %2, align 8, !tbaa !5
  %4386 = getelementptr inbounds %struct.DState, ptr %4385, i32 0, i32 3
  store i32 0, ptr %4386, align 8, !tbaa !89
  %4387 = load ptr, ptr %2, align 8, !tbaa !5
  %4388 = getelementptr inbounds %struct.DState, ptr %4387, i32 0, i32 2
  store i8 0, ptr %4388, align 4, !tbaa !90
  %4389 = load ptr, ptr %2, align 8, !tbaa !5
  %4390 = getelementptr inbounds %struct.DState, ptr %4389, i32 0, i32 25
  store i32 -1, ptr %4390, align 8, !tbaa !91
  %4391 = load ptr, ptr %2, align 8, !tbaa !5
  %4392 = getelementptr inbounds %struct.DState, ptr %4391, i32 0, i32 1
  store i32 2, ptr %4392, align 8, !tbaa !12
  %4393 = load ptr, ptr %2, align 8, !tbaa !5
  %4394 = getelementptr inbounds %struct.DState, ptr %4393, i32 0, i32 12
  %4395 = load i32, ptr %4394, align 4, !tbaa !54
  %4396 = icmp sge i32 %4395, 2
  br i1 %4396, label %4397, label %4398

4397:                                             ; preds = %4384
  br label %4398

4398:                                             ; preds = %4397, %4384
  %4399 = load ptr, ptr %2, align 8, !tbaa !5
  %4400 = getelementptr inbounds %struct.DState, ptr %4399, i32 0, i32 10
  %4401 = load i8, ptr %4400, align 4, !tbaa !47
  %4402 = icmp ne i8 %4401, 0
  br i1 %4402, label %4403, label %4787

4403:                                             ; preds = %4398
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %4404

4404:                                             ; preds = %4419, %4403
  %4405 = load i32, ptr %8, align 4, !tbaa !37
  %4406 = icmp sle i32 %4405, 256
  br i1 %4406, label %4407, label %4422

4407:                                             ; preds = %4404
  %4408 = load ptr, ptr %2, align 8, !tbaa !5
  %4409 = getelementptr inbounds %struct.DState, ptr %4408, i32 0, i32 18
  %4410 = load i32, ptr %8, align 4, !tbaa !37
  %4411 = sext i32 %4410 to i64
  %4412 = getelementptr inbounds [257 x i32], ptr %4409, i64 0, i64 %4411
  %4413 = load i32, ptr %4412, align 4, !tbaa !37
  %4414 = load ptr, ptr %2, align 8, !tbaa !5
  %4415 = getelementptr inbounds %struct.DState, ptr %4414, i32 0, i32 19
  %4416 = load i32, ptr %8, align 4, !tbaa !37
  %4417 = sext i32 %4416 to i64
  %4418 = getelementptr inbounds [257 x i32], ptr %4415, i64 0, i64 %4417
  store i32 %4413, ptr %4418, align 4, !tbaa !37
  br label %4419

4419:                                             ; preds = %4407
  %4420 = load i32, ptr %8, align 4, !tbaa !37
  %4421 = add nsw i32 %4420, 1
  store i32 %4421, ptr %8, align 4, !tbaa !37
  br label %4404, !llvm.loop !92

4422:                                             ; preds = %4404
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %4423

4423:                                             ; preds = %4516, %4422
  %4424 = load i32, ptr %8, align 4, !tbaa !37
  %4425 = load i32, ptr %19, align 4, !tbaa !37
  %4426 = icmp slt i32 %4424, %4425
  br i1 %4426, label %4427, label %4519

4427:                                             ; preds = %4423
  %4428 = load ptr, ptr %2, align 8, !tbaa !5
  %4429 = getelementptr inbounds %struct.DState, ptr %4428, i32 0, i32 21
  %4430 = load ptr, ptr %4429, align 8, !tbaa !50
  %4431 = load i32, ptr %8, align 4, !tbaa !37
  %4432 = sext i32 %4431 to i64
  %4433 = getelementptr inbounds i16, ptr %4430, i64 %4432
  %4434 = load i16, ptr %4433, align 2, !tbaa !76
  %4435 = trunc i16 %4434 to i8
  store i8 %4435, ptr %3, align 1, !tbaa !40
  %4436 = load ptr, ptr %2, align 8, !tbaa !5
  %4437 = getelementptr inbounds %struct.DState, ptr %4436, i32 0, i32 19
  %4438 = load i8, ptr %3, align 1, !tbaa !40
  %4439 = zext i8 %4438 to i64
  %4440 = getelementptr inbounds [257 x i32], ptr %4437, i64 0, i64 %4439
  %4441 = load i32, ptr %4440, align 4, !tbaa !37
  %4442 = and i32 %4441, 65535
  %4443 = trunc i32 %4442 to i16
  %4444 = load ptr, ptr %2, align 8, !tbaa !5
  %4445 = getelementptr inbounds %struct.DState, ptr %4444, i32 0, i32 21
  %4446 = load ptr, ptr %4445, align 8, !tbaa !50
  %4447 = load i32, ptr %8, align 4, !tbaa !37
  %4448 = sext i32 %4447 to i64
  %4449 = getelementptr inbounds i16, ptr %4446, i64 %4448
  store i16 %4443, ptr %4449, align 2, !tbaa !76
  %4450 = load i32, ptr %8, align 4, !tbaa !37
  %4451 = and i32 %4450, 1
  %4452 = icmp eq i32 %4451, 0
  br i1 %4452, label %4453, label %4480

4453:                                             ; preds = %4427
  %4454 = load ptr, ptr %2, align 8, !tbaa !5
  %4455 = getelementptr inbounds %struct.DState, ptr %4454, i32 0, i32 22
  %4456 = load ptr, ptr %4455, align 8, !tbaa !51
  %4457 = load i32, ptr %8, align 4, !tbaa !37
  %4458 = ashr i32 %4457, 1
  %4459 = sext i32 %4458 to i64
  %4460 = getelementptr inbounds i8, ptr %4456, i64 %4459
  %4461 = load i8, ptr %4460, align 1, !tbaa !40
  %4462 = zext i8 %4461 to i32
  %4463 = and i32 %4462, 240
  %4464 = load ptr, ptr %2, align 8, !tbaa !5
  %4465 = getelementptr inbounds %struct.DState, ptr %4464, i32 0, i32 19
  %4466 = load i8, ptr %3, align 1, !tbaa !40
  %4467 = zext i8 %4466 to i64
  %4468 = getelementptr inbounds [257 x i32], ptr %4465, i64 0, i64 %4467
  %4469 = load i32, ptr %4468, align 4, !tbaa !37
  %4470 = ashr i32 %4469, 16
  %4471 = or i32 %4463, %4470
  %4472 = trunc i32 %4471 to i8
  %4473 = load ptr, ptr %2, align 8, !tbaa !5
  %4474 = getelementptr inbounds %struct.DState, ptr %4473, i32 0, i32 22
  %4475 = load ptr, ptr %4474, align 8, !tbaa !51
  %4476 = load i32, ptr %8, align 4, !tbaa !37
  %4477 = ashr i32 %4476, 1
  %4478 = sext i32 %4477 to i64
  %4479 = getelementptr inbounds i8, ptr %4475, i64 %4478
  store i8 %4472, ptr %4479, align 1, !tbaa !40
  br label %4508

4480:                                             ; preds = %4427
  %4481 = load ptr, ptr %2, align 8, !tbaa !5
  %4482 = getelementptr inbounds %struct.DState, ptr %4481, i32 0, i32 22
  %4483 = load ptr, ptr %4482, align 8, !tbaa !51
  %4484 = load i32, ptr %8, align 4, !tbaa !37
  %4485 = ashr i32 %4484, 1
  %4486 = sext i32 %4485 to i64
  %4487 = getelementptr inbounds i8, ptr %4483, i64 %4486
  %4488 = load i8, ptr %4487, align 1, !tbaa !40
  %4489 = zext i8 %4488 to i32
  %4490 = and i32 %4489, 15
  %4491 = load ptr, ptr %2, align 8, !tbaa !5
  %4492 = getelementptr inbounds %struct.DState, ptr %4491, i32 0, i32 19
  %4493 = load i8, ptr %3, align 1, !tbaa !40
  %4494 = zext i8 %4493 to i64
  %4495 = getelementptr inbounds [257 x i32], ptr %4492, i64 0, i64 %4494
  %4496 = load i32, ptr %4495, align 4, !tbaa !37
  %4497 = ashr i32 %4496, 16
  %4498 = shl i32 %4497, 4
  %4499 = or i32 %4490, %4498
  %4500 = trunc i32 %4499 to i8
  %4501 = load ptr, ptr %2, align 8, !tbaa !5
  %4502 = getelementptr inbounds %struct.DState, ptr %4501, i32 0, i32 22
  %4503 = load ptr, ptr %4502, align 8, !tbaa !51
  %4504 = load i32, ptr %8, align 4, !tbaa !37
  %4505 = ashr i32 %4504, 1
  %4506 = sext i32 %4505 to i64
  %4507 = getelementptr inbounds i8, ptr %4503, i64 %4506
  store i8 %4500, ptr %4507, align 1, !tbaa !40
  br label %4508

4508:                                             ; preds = %4480, %4453
  %4509 = load ptr, ptr %2, align 8, !tbaa !5
  %4510 = getelementptr inbounds %struct.DState, ptr %4509, i32 0, i32 19
  %4511 = load i8, ptr %3, align 1, !tbaa !40
  %4512 = zext i8 %4511 to i64
  %4513 = getelementptr inbounds [257 x i32], ptr %4510, i64 0, i64 %4512
  %4514 = load i32, ptr %4513, align 4, !tbaa !37
  %4515 = add nsw i32 %4514, 1
  store i32 %4515, ptr %4513, align 4, !tbaa !37
  br label %4516

4516:                                             ; preds = %4508
  %4517 = load i32, ptr %8, align 4, !tbaa !37
  %4518 = add nsw i32 %4517, 1
  store i32 %4518, ptr %8, align 4, !tbaa !37
  br label %4423, !llvm.loop !93

4519:                                             ; preds = %4423
  %4520 = load ptr, ptr %2, align 8, !tbaa !5
  %4521 = getelementptr inbounds %struct.DState, ptr %4520, i32 0, i32 13
  %4522 = load i32, ptr %4521, align 8, !tbaa !57
  store i32 %4522, ptr %8, align 4, !tbaa !37
  %4523 = load ptr, ptr %2, align 8, !tbaa !5
  %4524 = getelementptr inbounds %struct.DState, ptr %4523, i32 0, i32 21
  %4525 = load ptr, ptr %4524, align 8, !tbaa !50
  %4526 = load i32, ptr %8, align 4, !tbaa !37
  %4527 = sext i32 %4526 to i64
  %4528 = getelementptr inbounds i16, ptr %4525, i64 %4527
  %4529 = load i16, ptr %4528, align 2, !tbaa !76
  %4530 = zext i16 %4529 to i32
  %4531 = load ptr, ptr %2, align 8, !tbaa !5
  %4532 = getelementptr inbounds %struct.DState, ptr %4531, i32 0, i32 22
  %4533 = load ptr, ptr %4532, align 8, !tbaa !51
  %4534 = load i32, ptr %8, align 4, !tbaa !37
  %4535 = ashr i32 %4534, 1
  %4536 = sext i32 %4535 to i64
  %4537 = getelementptr inbounds i8, ptr %4533, i64 %4536
  %4538 = load i8, ptr %4537, align 1, !tbaa !40
  %4539 = zext i8 %4538 to i32
  %4540 = load i32, ptr %8, align 4, !tbaa !37
  %4541 = shl i32 %4540, 2
  %4542 = and i32 %4541, 4
  %4543 = lshr i32 %4539, %4542
  %4544 = and i32 %4543, 15
  %4545 = shl i32 %4544, 16
  %4546 = or i32 %4530, %4545
  store i32 %4546, ptr %9, align 4, !tbaa !37
  br label %4547

4547:                                             ; preds = %4632, %4519
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #3
  %4548 = load ptr, ptr %2, align 8, !tbaa !5
  %4549 = getelementptr inbounds %struct.DState, ptr %4548, i32 0, i32 21
  %4550 = load ptr, ptr %4549, align 8, !tbaa !50
  %4551 = load i32, ptr %9, align 4, !tbaa !37
  %4552 = sext i32 %4551 to i64
  %4553 = getelementptr inbounds i16, ptr %4550, i64 %4552
  %4554 = load i16, ptr %4553, align 2, !tbaa !76
  %4555 = zext i16 %4554 to i32
  %4556 = load ptr, ptr %2, align 8, !tbaa !5
  %4557 = getelementptr inbounds %struct.DState, ptr %4556, i32 0, i32 22
  %4558 = load ptr, ptr %4557, align 8, !tbaa !51
  %4559 = load i32, ptr %9, align 4, !tbaa !37
  %4560 = ashr i32 %4559, 1
  %4561 = sext i32 %4560 to i64
  %4562 = getelementptr inbounds i8, ptr %4558, i64 %4561
  %4563 = load i8, ptr %4562, align 1, !tbaa !40
  %4564 = zext i8 %4563 to i32
  %4565 = load i32, ptr %9, align 4, !tbaa !37
  %4566 = shl i32 %4565, 2
  %4567 = and i32 %4566, 4
  %4568 = lshr i32 %4564, %4567
  %4569 = and i32 %4568, 15
  %4570 = shl i32 %4569, 16
  %4571 = or i32 %4555, %4570
  store i32 %4571, ptr %78, align 4, !tbaa !37
  %4572 = load i32, ptr %8, align 4, !tbaa !37
  %4573 = and i32 %4572, 65535
  %4574 = trunc i32 %4573 to i16
  %4575 = load ptr, ptr %2, align 8, !tbaa !5
  %4576 = getelementptr inbounds %struct.DState, ptr %4575, i32 0, i32 21
  %4577 = load ptr, ptr %4576, align 8, !tbaa !50
  %4578 = load i32, ptr %9, align 4, !tbaa !37
  %4579 = sext i32 %4578 to i64
  %4580 = getelementptr inbounds i16, ptr %4577, i64 %4579
  store i16 %4574, ptr %4580, align 2, !tbaa !76
  %4581 = load i32, ptr %9, align 4, !tbaa !37
  %4582 = and i32 %4581, 1
  %4583 = icmp eq i32 %4582, 0
  br i1 %4583, label %4584, label %4606

4584:                                             ; preds = %4547
  %4585 = load ptr, ptr %2, align 8, !tbaa !5
  %4586 = getelementptr inbounds %struct.DState, ptr %4585, i32 0, i32 22
  %4587 = load ptr, ptr %4586, align 8, !tbaa !51
  %4588 = load i32, ptr %9, align 4, !tbaa !37
  %4589 = ashr i32 %4588, 1
  %4590 = sext i32 %4589 to i64
  %4591 = getelementptr inbounds i8, ptr %4587, i64 %4590
  %4592 = load i8, ptr %4591, align 1, !tbaa !40
  %4593 = zext i8 %4592 to i32
  %4594 = and i32 %4593, 240
  %4595 = load i32, ptr %8, align 4, !tbaa !37
  %4596 = ashr i32 %4595, 16
  %4597 = or i32 %4594, %4596
  %4598 = trunc i32 %4597 to i8
  %4599 = load ptr, ptr %2, align 8, !tbaa !5
  %4600 = getelementptr inbounds %struct.DState, ptr %4599, i32 0, i32 22
  %4601 = load ptr, ptr %4600, align 8, !tbaa !51
  %4602 = load i32, ptr %9, align 4, !tbaa !37
  %4603 = ashr i32 %4602, 1
  %4604 = sext i32 %4603 to i64
  %4605 = getelementptr inbounds i8, ptr %4601, i64 %4604
  store i8 %4598, ptr %4605, align 1, !tbaa !40
  br label %4629

4606:                                             ; preds = %4547
  %4607 = load ptr, ptr %2, align 8, !tbaa !5
  %4608 = getelementptr inbounds %struct.DState, ptr %4607, i32 0, i32 22
  %4609 = load ptr, ptr %4608, align 8, !tbaa !51
  %4610 = load i32, ptr %9, align 4, !tbaa !37
  %4611 = ashr i32 %4610, 1
  %4612 = sext i32 %4611 to i64
  %4613 = getelementptr inbounds i8, ptr %4609, i64 %4612
  %4614 = load i8, ptr %4613, align 1, !tbaa !40
  %4615 = zext i8 %4614 to i32
  %4616 = and i32 %4615, 15
  %4617 = load i32, ptr %8, align 4, !tbaa !37
  %4618 = ashr i32 %4617, 16
  %4619 = shl i32 %4618, 4
  %4620 = or i32 %4616, %4619
  %4621 = trunc i32 %4620 to i8
  %4622 = load ptr, ptr %2, align 8, !tbaa !5
  %4623 = getelementptr inbounds %struct.DState, ptr %4622, i32 0, i32 22
  %4624 = load ptr, ptr %4623, align 8, !tbaa !51
  %4625 = load i32, ptr %9, align 4, !tbaa !37
  %4626 = ashr i32 %4625, 1
  %4627 = sext i32 %4626 to i64
  %4628 = getelementptr inbounds i8, ptr %4624, i64 %4627
  store i8 %4621, ptr %4628, align 1, !tbaa !40
  br label %4629

4629:                                             ; preds = %4606, %4584
  %4630 = load i32, ptr %9, align 4, !tbaa !37
  store i32 %4630, ptr %8, align 4, !tbaa !37
  %4631 = load i32, ptr %78, align 4, !tbaa !37
  store i32 %4631, ptr %9, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  br label %4632

4632:                                             ; preds = %4629
  %4633 = load i32, ptr %8, align 4, !tbaa !37
  %4634 = load ptr, ptr %2, align 8, !tbaa !5
  %4635 = getelementptr inbounds %struct.DState, ptr %4634, i32 0, i32 13
  %4636 = load i32, ptr %4635, align 8, !tbaa !57
  %4637 = icmp ne i32 %4633, %4636
  br i1 %4637, label %4547, label %4638, !llvm.loop !94

4638:                                             ; preds = %4632
  %4639 = load ptr, ptr %2, align 8, !tbaa !5
  %4640 = getelementptr inbounds %struct.DState, ptr %4639, i32 0, i32 13
  %4641 = load i32, ptr %4640, align 8, !tbaa !57
  %4642 = load ptr, ptr %2, align 8, !tbaa !5
  %4643 = getelementptr inbounds %struct.DState, ptr %4642, i32 0, i32 14
  store i32 %4641, ptr %4643, align 4, !tbaa !95
  %4644 = load ptr, ptr %2, align 8, !tbaa !5
  %4645 = getelementptr inbounds %struct.DState, ptr %4644, i32 0, i32 17
  store i32 0, ptr %4645, align 4, !tbaa !96
  %4646 = load ptr, ptr %2, align 8, !tbaa !5
  %4647 = getelementptr inbounds %struct.DState, ptr %4646, i32 0, i32 4
  %4648 = load i8, ptr %4647, align 4, !tbaa !56
  %4649 = icmp ne i8 %4648, 0
  br i1 %4649, label %4650, label %4740

4650:                                             ; preds = %4638
  %4651 = load ptr, ptr %2, align 8, !tbaa !5
  %4652 = getelementptr inbounds %struct.DState, ptr %4651, i32 0, i32 5
  store i32 0, ptr %4652, align 8, !tbaa !97
  %4653 = load ptr, ptr %2, align 8, !tbaa !5
  %4654 = getelementptr inbounds %struct.DState, ptr %4653, i32 0, i32 6
  store i32 0, ptr %4654, align 4, !tbaa !98
  %4655 = load ptr, ptr %2, align 8, !tbaa !5
  %4656 = getelementptr inbounds %struct.DState, ptr %4655, i32 0, i32 14
  %4657 = load i32, ptr %4656, align 4, !tbaa !95
  %4658 = load ptr, ptr %2, align 8, !tbaa !5
  %4659 = getelementptr inbounds %struct.DState, ptr %4658, i32 0, i32 18
  %4660 = getelementptr inbounds [257 x i32], ptr %4659, i64 0, i64 0
  %4661 = call i32 @BZ2_indexIntoF(i32 noundef %4657, ptr noundef %4660)
  %4662 = load ptr, ptr %2, align 8, !tbaa !5
  %4663 = getelementptr inbounds %struct.DState, ptr %4662, i32 0, i32 15
  store i32 %4661, ptr %4663, align 8, !tbaa !99
  %4664 = load ptr, ptr %2, align 8, !tbaa !5
  %4665 = getelementptr inbounds %struct.DState, ptr %4664, i32 0, i32 21
  %4666 = load ptr, ptr %4665, align 8, !tbaa !50
  %4667 = load ptr, ptr %2, align 8, !tbaa !5
  %4668 = getelementptr inbounds %struct.DState, ptr %4667, i32 0, i32 14
  %4669 = load i32, ptr %4668, align 4, !tbaa !95
  %4670 = zext i32 %4669 to i64
  %4671 = getelementptr inbounds i16, ptr %4666, i64 %4670
  %4672 = load i16, ptr %4671, align 2, !tbaa !76
  %4673 = zext i16 %4672 to i32
  %4674 = load ptr, ptr %2, align 8, !tbaa !5
  %4675 = getelementptr inbounds %struct.DState, ptr %4674, i32 0, i32 22
  %4676 = load ptr, ptr %4675, align 8, !tbaa !51
  %4677 = load ptr, ptr %2, align 8, !tbaa !5
  %4678 = getelementptr inbounds %struct.DState, ptr %4677, i32 0, i32 14
  %4679 = load i32, ptr %4678, align 4, !tbaa !95
  %4680 = lshr i32 %4679, 1
  %4681 = zext i32 %4680 to i64
  %4682 = getelementptr inbounds i8, ptr %4676, i64 %4681
  %4683 = load i8, ptr %4682, align 1, !tbaa !40
  %4684 = zext i8 %4683 to i32
  %4685 = load ptr, ptr %2, align 8, !tbaa !5
  %4686 = getelementptr inbounds %struct.DState, ptr %4685, i32 0, i32 14
  %4687 = load i32, ptr %4686, align 4, !tbaa !95
  %4688 = shl i32 %4687, 2
  %4689 = and i32 %4688, 4
  %4690 = lshr i32 %4684, %4689
  %4691 = and i32 %4690, 15
  %4692 = shl i32 %4691, 16
  %4693 = or i32 %4673, %4692
  %4694 = load ptr, ptr %2, align 8, !tbaa !5
  %4695 = getelementptr inbounds %struct.DState, ptr %4694, i32 0, i32 14
  store i32 %4693, ptr %4695, align 4, !tbaa !95
  %4696 = load ptr, ptr %2, align 8, !tbaa !5
  %4697 = getelementptr inbounds %struct.DState, ptr %4696, i32 0, i32 17
  %4698 = load i32, ptr %4697, align 4, !tbaa !96
  %4699 = add nsw i32 %4698, 1
  store i32 %4699, ptr %4697, align 4, !tbaa !96
  %4700 = load ptr, ptr %2, align 8, !tbaa !5
  %4701 = getelementptr inbounds %struct.DState, ptr %4700, i32 0, i32 5
  %4702 = load i32, ptr %4701, align 8, !tbaa !97
  %4703 = icmp eq i32 %4702, 0
  br i1 %4703, label %4704, label %4725

4704:                                             ; preds = %4650
  %4705 = load ptr, ptr %2, align 8, !tbaa !5
  %4706 = getelementptr inbounds %struct.DState, ptr %4705, i32 0, i32 6
  %4707 = load i32, ptr %4706, align 4, !tbaa !98
  %4708 = sext i32 %4707 to i64
  %4709 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %4708
  %4710 = load i32, ptr %4709, align 4, !tbaa !37
  %4711 = load ptr, ptr %2, align 8, !tbaa !5
  %4712 = getelementptr inbounds %struct.DState, ptr %4711, i32 0, i32 5
  store i32 %4710, ptr %4712, align 8, !tbaa !97
  %4713 = load ptr, ptr %2, align 8, !tbaa !5
  %4714 = getelementptr inbounds %struct.DState, ptr %4713, i32 0, i32 6
  %4715 = load i32, ptr %4714, align 4, !tbaa !98
  %4716 = add nsw i32 %4715, 1
  store i32 %4716, ptr %4714, align 4, !tbaa !98
  %4717 = load ptr, ptr %2, align 8, !tbaa !5
  %4718 = getelementptr inbounds %struct.DState, ptr %4717, i32 0, i32 6
  %4719 = load i32, ptr %4718, align 4, !tbaa !98
  %4720 = icmp eq i32 %4719, 512
  br i1 %4720, label %4721, label %4724

4721:                                             ; preds = %4704
  %4722 = load ptr, ptr %2, align 8, !tbaa !5
  %4723 = getelementptr inbounds %struct.DState, ptr %4722, i32 0, i32 6
  store i32 0, ptr %4723, align 4, !tbaa !98
  br label %4724

4724:                                             ; preds = %4721, %4704
  br label %4725

4725:                                             ; preds = %4724, %4650
  %4726 = load ptr, ptr %2, align 8, !tbaa !5
  %4727 = getelementptr inbounds %struct.DState, ptr %4726, i32 0, i32 5
  %4728 = load i32, ptr %4727, align 8, !tbaa !97
  %4729 = add nsw i32 %4728, -1
  store i32 %4729, ptr %4727, align 8, !tbaa !97
  %4730 = load ptr, ptr %2, align 8, !tbaa !5
  %4731 = getelementptr inbounds %struct.DState, ptr %4730, i32 0, i32 5
  %4732 = load i32, ptr %4731, align 8, !tbaa !97
  %4733 = icmp eq i32 %4732, 1
  %4734 = zext i1 %4733 to i64
  %4735 = select i1 %4733, i32 1, i32 0
  %4736 = load ptr, ptr %2, align 8, !tbaa !5
  %4737 = getelementptr inbounds %struct.DState, ptr %4736, i32 0, i32 15
  %4738 = load i32, ptr %4737, align 8, !tbaa !99
  %4739 = xor i32 %4738, %4735
  store i32 %4739, ptr %4737, align 8, !tbaa !99
  br label %4786

4740:                                             ; preds = %4638
  %4741 = load ptr, ptr %2, align 8, !tbaa !5
  %4742 = getelementptr inbounds %struct.DState, ptr %4741, i32 0, i32 14
  %4743 = load i32, ptr %4742, align 4, !tbaa !95
  %4744 = load ptr, ptr %2, align 8, !tbaa !5
  %4745 = getelementptr inbounds %struct.DState, ptr %4744, i32 0, i32 18
  %4746 = getelementptr inbounds [257 x i32], ptr %4745, i64 0, i64 0
  %4747 = call i32 @BZ2_indexIntoF(i32 noundef %4743, ptr noundef %4746)
  %4748 = load ptr, ptr %2, align 8, !tbaa !5
  %4749 = getelementptr inbounds %struct.DState, ptr %4748, i32 0, i32 15
  store i32 %4747, ptr %4749, align 8, !tbaa !99
  %4750 = load ptr, ptr %2, align 8, !tbaa !5
  %4751 = getelementptr inbounds %struct.DState, ptr %4750, i32 0, i32 21
  %4752 = load ptr, ptr %4751, align 8, !tbaa !50
  %4753 = load ptr, ptr %2, align 8, !tbaa !5
  %4754 = getelementptr inbounds %struct.DState, ptr %4753, i32 0, i32 14
  %4755 = load i32, ptr %4754, align 4, !tbaa !95
  %4756 = zext i32 %4755 to i64
  %4757 = getelementptr inbounds i16, ptr %4752, i64 %4756
  %4758 = load i16, ptr %4757, align 2, !tbaa !76
  %4759 = zext i16 %4758 to i32
  %4760 = load ptr, ptr %2, align 8, !tbaa !5
  %4761 = getelementptr inbounds %struct.DState, ptr %4760, i32 0, i32 22
  %4762 = load ptr, ptr %4761, align 8, !tbaa !51
  %4763 = load ptr, ptr %2, align 8, !tbaa !5
  %4764 = getelementptr inbounds %struct.DState, ptr %4763, i32 0, i32 14
  %4765 = load i32, ptr %4764, align 4, !tbaa !95
  %4766 = lshr i32 %4765, 1
  %4767 = zext i32 %4766 to i64
  %4768 = getelementptr inbounds i8, ptr %4762, i64 %4767
  %4769 = load i8, ptr %4768, align 1, !tbaa !40
  %4770 = zext i8 %4769 to i32
  %4771 = load ptr, ptr %2, align 8, !tbaa !5
  %4772 = getelementptr inbounds %struct.DState, ptr %4771, i32 0, i32 14
  %4773 = load i32, ptr %4772, align 4, !tbaa !95
  %4774 = shl i32 %4773, 2
  %4775 = and i32 %4774, 4
  %4776 = lshr i32 %4770, %4775
  %4777 = and i32 %4776, 15
  %4778 = shl i32 %4777, 16
  %4779 = or i32 %4759, %4778
  %4780 = load ptr, ptr %2, align 8, !tbaa !5
  %4781 = getelementptr inbounds %struct.DState, ptr %4780, i32 0, i32 14
  store i32 %4779, ptr %4781, align 4, !tbaa !95
  %4782 = load ptr, ptr %2, align 8, !tbaa !5
  %4783 = getelementptr inbounds %struct.DState, ptr %4782, i32 0, i32 17
  %4784 = load i32, ptr %4783, align 4, !tbaa !96
  %4785 = add nsw i32 %4784, 1
  store i32 %4785, ptr %4783, align 4, !tbaa !96
  br label %4786

4786:                                             ; preds = %4740, %4725
  br label %4947

4787:                                             ; preds = %4398
  store i32 0, ptr %8, align 4, !tbaa !37
  br label %4788

4788:                                             ; preds = %4824, %4787
  %4789 = load i32, ptr %8, align 4, !tbaa !37
  %4790 = load i32, ptr %19, align 4, !tbaa !37
  %4791 = icmp slt i32 %4789, %4790
  br i1 %4791, label %4792, label %4827

4792:                                             ; preds = %4788
  %4793 = load ptr, ptr %2, align 8, !tbaa !5
  %4794 = getelementptr inbounds %struct.DState, ptr %4793, i32 0, i32 20
  %4795 = load ptr, ptr %4794, align 8, !tbaa !52
  %4796 = load i32, ptr %8, align 4, !tbaa !37
  %4797 = sext i32 %4796 to i64
  %4798 = getelementptr inbounds i32, ptr %4795, i64 %4797
  %4799 = load i32, ptr %4798, align 4, !tbaa !37
  %4800 = and i32 %4799, 255
  %4801 = trunc i32 %4800 to i8
  store i8 %4801, ptr %3, align 1, !tbaa !40
  %4802 = load i32, ptr %8, align 4, !tbaa !37
  %4803 = shl i32 %4802, 8
  %4804 = load ptr, ptr %2, align 8, !tbaa !5
  %4805 = getelementptr inbounds %struct.DState, ptr %4804, i32 0, i32 20
  %4806 = load ptr, ptr %4805, align 8, !tbaa !52
  %4807 = load ptr, ptr %2, align 8, !tbaa !5
  %4808 = getelementptr inbounds %struct.DState, ptr %4807, i32 0, i32 18
  %4809 = load i8, ptr %3, align 1, !tbaa !40
  %4810 = zext i8 %4809 to i64
  %4811 = getelementptr inbounds [257 x i32], ptr %4808, i64 0, i64 %4810
  %4812 = load i32, ptr %4811, align 4, !tbaa !37
  %4813 = sext i32 %4812 to i64
  %4814 = getelementptr inbounds i32, ptr %4806, i64 %4813
  %4815 = load i32, ptr %4814, align 4, !tbaa !37
  %4816 = or i32 %4815, %4803
  store i32 %4816, ptr %4814, align 4, !tbaa !37
  %4817 = load ptr, ptr %2, align 8, !tbaa !5
  %4818 = getelementptr inbounds %struct.DState, ptr %4817, i32 0, i32 18
  %4819 = load i8, ptr %3, align 1, !tbaa !40
  %4820 = zext i8 %4819 to i64
  %4821 = getelementptr inbounds [257 x i32], ptr %4818, i64 0, i64 %4820
  %4822 = load i32, ptr %4821, align 4, !tbaa !37
  %4823 = add nsw i32 %4822, 1
  store i32 %4823, ptr %4821, align 4, !tbaa !37
  br label %4824

4824:                                             ; preds = %4792
  %4825 = load i32, ptr %8, align 4, !tbaa !37
  %4826 = add nsw i32 %4825, 1
  store i32 %4826, ptr %8, align 4, !tbaa !37
  br label %4788, !llvm.loop !100

4827:                                             ; preds = %4788
  %4828 = load ptr, ptr %2, align 8, !tbaa !5
  %4829 = getelementptr inbounds %struct.DState, ptr %4828, i32 0, i32 20
  %4830 = load ptr, ptr %4829, align 8, !tbaa !52
  %4831 = load ptr, ptr %2, align 8, !tbaa !5
  %4832 = getelementptr inbounds %struct.DState, ptr %4831, i32 0, i32 13
  %4833 = load i32, ptr %4832, align 8, !tbaa !57
  %4834 = sext i32 %4833 to i64
  %4835 = getelementptr inbounds i32, ptr %4830, i64 %4834
  %4836 = load i32, ptr %4835, align 4, !tbaa !37
  %4837 = lshr i32 %4836, 8
  %4838 = load ptr, ptr %2, align 8, !tbaa !5
  %4839 = getelementptr inbounds %struct.DState, ptr %4838, i32 0, i32 14
  store i32 %4837, ptr %4839, align 4, !tbaa !95
  %4840 = load ptr, ptr %2, align 8, !tbaa !5
  %4841 = getelementptr inbounds %struct.DState, ptr %4840, i32 0, i32 17
  store i32 0, ptr %4841, align 4, !tbaa !96
  %4842 = load ptr, ptr %2, align 8, !tbaa !5
  %4843 = getelementptr inbounds %struct.DState, ptr %4842, i32 0, i32 4
  %4844 = load i8, ptr %4843, align 4, !tbaa !56
  %4845 = icmp ne i8 %4844, 0
  br i1 %4845, label %4846, label %4918

4846:                                             ; preds = %4827
  %4847 = load ptr, ptr %2, align 8, !tbaa !5
  %4848 = getelementptr inbounds %struct.DState, ptr %4847, i32 0, i32 5
  store i32 0, ptr %4848, align 8, !tbaa !97
  %4849 = load ptr, ptr %2, align 8, !tbaa !5
  %4850 = getelementptr inbounds %struct.DState, ptr %4849, i32 0, i32 6
  store i32 0, ptr %4850, align 4, !tbaa !98
  %4851 = load ptr, ptr %2, align 8, !tbaa !5
  %4852 = getelementptr inbounds %struct.DState, ptr %4851, i32 0, i32 20
  %4853 = load ptr, ptr %4852, align 8, !tbaa !52
  %4854 = load ptr, ptr %2, align 8, !tbaa !5
  %4855 = getelementptr inbounds %struct.DState, ptr %4854, i32 0, i32 14
  %4856 = load i32, ptr %4855, align 4, !tbaa !95
  %4857 = zext i32 %4856 to i64
  %4858 = getelementptr inbounds i32, ptr %4853, i64 %4857
  %4859 = load i32, ptr %4858, align 4, !tbaa !37
  %4860 = load ptr, ptr %2, align 8, !tbaa !5
  %4861 = getelementptr inbounds %struct.DState, ptr %4860, i32 0, i32 14
  store i32 %4859, ptr %4861, align 4, !tbaa !95
  %4862 = load ptr, ptr %2, align 8, !tbaa !5
  %4863 = getelementptr inbounds %struct.DState, ptr %4862, i32 0, i32 14
  %4864 = load i32, ptr %4863, align 4, !tbaa !95
  %4865 = and i32 %4864, 255
  %4866 = trunc i32 %4865 to i8
  %4867 = zext i8 %4866 to i32
  %4868 = load ptr, ptr %2, align 8, !tbaa !5
  %4869 = getelementptr inbounds %struct.DState, ptr %4868, i32 0, i32 15
  store i32 %4867, ptr %4869, align 8, !tbaa !99
  %4870 = load ptr, ptr %2, align 8, !tbaa !5
  %4871 = getelementptr inbounds %struct.DState, ptr %4870, i32 0, i32 14
  %4872 = load i32, ptr %4871, align 4, !tbaa !95
  %4873 = lshr i32 %4872, 8
  store i32 %4873, ptr %4871, align 4, !tbaa !95
  %4874 = load ptr, ptr %2, align 8, !tbaa !5
  %4875 = getelementptr inbounds %struct.DState, ptr %4874, i32 0, i32 17
  %4876 = load i32, ptr %4875, align 4, !tbaa !96
  %4877 = add nsw i32 %4876, 1
  store i32 %4877, ptr %4875, align 4, !tbaa !96
  %4878 = load ptr, ptr %2, align 8, !tbaa !5
  %4879 = getelementptr inbounds %struct.DState, ptr %4878, i32 0, i32 5
  %4880 = load i32, ptr %4879, align 8, !tbaa !97
  %4881 = icmp eq i32 %4880, 0
  br i1 %4881, label %4882, label %4903

4882:                                             ; preds = %4846
  %4883 = load ptr, ptr %2, align 8, !tbaa !5
  %4884 = getelementptr inbounds %struct.DState, ptr %4883, i32 0, i32 6
  %4885 = load i32, ptr %4884, align 4, !tbaa !98
  %4886 = sext i32 %4885 to i64
  %4887 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %4886
  %4888 = load i32, ptr %4887, align 4, !tbaa !37
  %4889 = load ptr, ptr %2, align 8, !tbaa !5
  %4890 = getelementptr inbounds %struct.DState, ptr %4889, i32 0, i32 5
  store i32 %4888, ptr %4890, align 8, !tbaa !97
  %4891 = load ptr, ptr %2, align 8, !tbaa !5
  %4892 = getelementptr inbounds %struct.DState, ptr %4891, i32 0, i32 6
  %4893 = load i32, ptr %4892, align 4, !tbaa !98
  %4894 = add nsw i32 %4893, 1
  store i32 %4894, ptr %4892, align 4, !tbaa !98
  %4895 = load ptr, ptr %2, align 8, !tbaa !5
  %4896 = getelementptr inbounds %struct.DState, ptr %4895, i32 0, i32 6
  %4897 = load i32, ptr %4896, align 4, !tbaa !98
  %4898 = icmp eq i32 %4897, 512
  br i1 %4898, label %4899, label %4902

4899:                                             ; preds = %4882
  %4900 = load ptr, ptr %2, align 8, !tbaa !5
  %4901 = getelementptr inbounds %struct.DState, ptr %4900, i32 0, i32 6
  store i32 0, ptr %4901, align 4, !tbaa !98
  br label %4902

4902:                                             ; preds = %4899, %4882
  br label %4903

4903:                                             ; preds = %4902, %4846
  %4904 = load ptr, ptr %2, align 8, !tbaa !5
  %4905 = getelementptr inbounds %struct.DState, ptr %4904, i32 0, i32 5
  %4906 = load i32, ptr %4905, align 8, !tbaa !97
  %4907 = add nsw i32 %4906, -1
  store i32 %4907, ptr %4905, align 8, !tbaa !97
  %4908 = load ptr, ptr %2, align 8, !tbaa !5
  %4909 = getelementptr inbounds %struct.DState, ptr %4908, i32 0, i32 5
  %4910 = load i32, ptr %4909, align 8, !tbaa !97
  %4911 = icmp eq i32 %4910, 1
  %4912 = zext i1 %4911 to i64
  %4913 = select i1 %4911, i32 1, i32 0
  %4914 = load ptr, ptr %2, align 8, !tbaa !5
  %4915 = getelementptr inbounds %struct.DState, ptr %4914, i32 0, i32 15
  %4916 = load i32, ptr %4915, align 8, !tbaa !99
  %4917 = xor i32 %4916, %4913
  store i32 %4917, ptr %4915, align 8, !tbaa !99
  br label %4946

4918:                                             ; preds = %4827
  %4919 = load ptr, ptr %2, align 8, !tbaa !5
  %4920 = getelementptr inbounds %struct.DState, ptr %4919, i32 0, i32 20
  %4921 = load ptr, ptr %4920, align 8, !tbaa !52
  %4922 = load ptr, ptr %2, align 8, !tbaa !5
  %4923 = getelementptr inbounds %struct.DState, ptr %4922, i32 0, i32 14
  %4924 = load i32, ptr %4923, align 4, !tbaa !95
  %4925 = zext i32 %4924 to i64
  %4926 = getelementptr inbounds i32, ptr %4921, i64 %4925
  %4927 = load i32, ptr %4926, align 4, !tbaa !37
  %4928 = load ptr, ptr %2, align 8, !tbaa !5
  %4929 = getelementptr inbounds %struct.DState, ptr %4928, i32 0, i32 14
  store i32 %4927, ptr %4929, align 4, !tbaa !95
  %4930 = load ptr, ptr %2, align 8, !tbaa !5
  %4931 = getelementptr inbounds %struct.DState, ptr %4930, i32 0, i32 14
  %4932 = load i32, ptr %4931, align 4, !tbaa !95
  %4933 = and i32 %4932, 255
  %4934 = trunc i32 %4933 to i8
  %4935 = zext i8 %4934 to i32
  %4936 = load ptr, ptr %2, align 8, !tbaa !5
  %4937 = getelementptr inbounds %struct.DState, ptr %4936, i32 0, i32 15
  store i32 %4935, ptr %4937, align 8, !tbaa !99
  %4938 = load ptr, ptr %2, align 8, !tbaa !5
  %4939 = getelementptr inbounds %struct.DState, ptr %4938, i32 0, i32 14
  %4940 = load i32, ptr %4939, align 4, !tbaa !95
  %4941 = lshr i32 %4940, 8
  store i32 %4941, ptr %4939, align 4, !tbaa !95
  %4942 = load ptr, ptr %2, align 8, !tbaa !5
  %4943 = getelementptr inbounds %struct.DState, ptr %4942, i32 0, i32 17
  %4944 = load i32, ptr %4943, align 4, !tbaa !96
  %4945 = add nsw i32 %4944, 1
  store i32 %4945, ptr %4943, align 4, !tbaa !96
  br label %4946

4946:                                             ; preds = %4918, %4903
  br label %4947

4947:                                             ; preds = %4946, %4786
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

4948:                                             ; preds = %753
  br label %4949

4949:                                             ; preds = %4948, %144
  %4950 = load ptr, ptr %2, align 8, !tbaa !5
  %4951 = getelementptr inbounds %struct.DState, ptr %4950, i32 0, i32 1
  store i32 42, ptr %4951, align 8, !tbaa !12
  br label %4952

4952:                                             ; preds = %5032, %4949
  br label %4953

4953:                                             ; preds = %4952
  %4954 = load ptr, ptr %2, align 8, !tbaa !5
  %4955 = getelementptr inbounds %struct.DState, ptr %4954, i32 0, i32 8
  %4956 = load i32, ptr %4955, align 4, !tbaa !38
  %4957 = icmp sge i32 %4956, 8
  br i1 %4957, label %4958, label %4974

4958:                                             ; preds = %4953
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  %4959 = load ptr, ptr %2, align 8, !tbaa !5
  %4960 = getelementptr inbounds %struct.DState, ptr %4959, i32 0, i32 7
  %4961 = load i32, ptr %4960, align 8, !tbaa !39
  %4962 = load ptr, ptr %2, align 8, !tbaa !5
  %4963 = getelementptr inbounds %struct.DState, ptr %4962, i32 0, i32 8
  %4964 = load i32, ptr %4963, align 4, !tbaa !38
  %4965 = sub nsw i32 %4964, 8
  %4966 = lshr i32 %4961, %4965
  %4967 = and i32 %4966, 255
  store i32 %4967, ptr %79, align 4, !tbaa !37
  %4968 = load ptr, ptr %2, align 8, !tbaa !5
  %4969 = getelementptr inbounds %struct.DState, ptr %4968, i32 0, i32 8
  %4970 = load i32, ptr %4969, align 4, !tbaa !38
  %4971 = sub nsw i32 %4970, 8
  store i32 %4971, ptr %4969, align 4, !tbaa !38
  %4972 = load i32, ptr %79, align 4, !tbaa !37
  %4973 = trunc i32 %4972 to i8
  store i8 %4973, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  br label %5033

4974:                                             ; preds = %4953
  %4975 = load ptr, ptr %2, align 8, !tbaa !5
  %4976 = getelementptr inbounds %struct.DState, ptr %4975, i32 0, i32 0
  %4977 = load ptr, ptr %4976, align 8, !tbaa !9
  %4978 = getelementptr inbounds %struct.bz_stream, ptr %4977, i32 0, i32 1
  %4979 = load i32, ptr %4978, align 8, !tbaa !41
  %4980 = icmp eq i32 %4979, 0
  br i1 %4980, label %4981, label %4982

4981:                                             ; preds = %4974
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

4982:                                             ; preds = %4974
  %4983 = load ptr, ptr %2, align 8, !tbaa !5
  %4984 = getelementptr inbounds %struct.DState, ptr %4983, i32 0, i32 7
  %4985 = load i32, ptr %4984, align 8, !tbaa !39
  %4986 = shl i32 %4985, 8
  %4987 = load ptr, ptr %2, align 8, !tbaa !5
  %4988 = getelementptr inbounds %struct.DState, ptr %4987, i32 0, i32 0
  %4989 = load ptr, ptr %4988, align 8, !tbaa !9
  %4990 = getelementptr inbounds %struct.bz_stream, ptr %4989, i32 0, i32 0
  %4991 = load ptr, ptr %4990, align 8, !tbaa !43
  %4992 = load i8, ptr %4991, align 1, !tbaa !40
  %4993 = zext i8 %4992 to i32
  %4994 = or i32 %4986, %4993
  %4995 = load ptr, ptr %2, align 8, !tbaa !5
  %4996 = getelementptr inbounds %struct.DState, ptr %4995, i32 0, i32 7
  store i32 %4994, ptr %4996, align 8, !tbaa !39
  %4997 = load ptr, ptr %2, align 8, !tbaa !5
  %4998 = getelementptr inbounds %struct.DState, ptr %4997, i32 0, i32 8
  %4999 = load i32, ptr %4998, align 4, !tbaa !38
  %5000 = add nsw i32 %4999, 8
  store i32 %5000, ptr %4998, align 4, !tbaa !38
  %5001 = load ptr, ptr %2, align 8, !tbaa !5
  %5002 = getelementptr inbounds %struct.DState, ptr %5001, i32 0, i32 0
  %5003 = load ptr, ptr %5002, align 8, !tbaa !9
  %5004 = getelementptr inbounds %struct.bz_stream, ptr %5003, i32 0, i32 0
  %5005 = load ptr, ptr %5004, align 8, !tbaa !43
  %5006 = getelementptr inbounds i8, ptr %5005, i32 1
  store ptr %5006, ptr %5004, align 8, !tbaa !43
  %5007 = load ptr, ptr %2, align 8, !tbaa !5
  %5008 = getelementptr inbounds %struct.DState, ptr %5007, i32 0, i32 0
  %5009 = load ptr, ptr %5008, align 8, !tbaa !9
  %5010 = getelementptr inbounds %struct.bz_stream, ptr %5009, i32 0, i32 1
  %5011 = load i32, ptr %5010, align 8, !tbaa !41
  %5012 = add i32 %5011, -1
  store i32 %5012, ptr %5010, align 8, !tbaa !41
  %5013 = load ptr, ptr %2, align 8, !tbaa !5
  %5014 = getelementptr inbounds %struct.DState, ptr %5013, i32 0, i32 0
  %5015 = load ptr, ptr %5014, align 8, !tbaa !9
  %5016 = getelementptr inbounds %struct.bz_stream, ptr %5015, i32 0, i32 2
  %5017 = load i32, ptr %5016, align 4, !tbaa !44
  %5018 = add i32 %5017, 1
  store i32 %5018, ptr %5016, align 4, !tbaa !44
  %5019 = load ptr, ptr %2, align 8, !tbaa !5
  %5020 = getelementptr inbounds %struct.DState, ptr %5019, i32 0, i32 0
  %5021 = load ptr, ptr %5020, align 8, !tbaa !9
  %5022 = getelementptr inbounds %struct.bz_stream, ptr %5021, i32 0, i32 2
  %5023 = load i32, ptr %5022, align 4, !tbaa !44
  %5024 = icmp eq i32 %5023, 0
  br i1 %5024, label %5025, label %5032

5025:                                             ; preds = %4982
  %5026 = load ptr, ptr %2, align 8, !tbaa !5
  %5027 = getelementptr inbounds %struct.DState, ptr %5026, i32 0, i32 0
  %5028 = load ptr, ptr %5027, align 8, !tbaa !9
  %5029 = getelementptr inbounds %struct.bz_stream, ptr %5028, i32 0, i32 3
  %5030 = load i32, ptr %5029, align 8, !tbaa !45
  %5031 = add i32 %5030, 1
  store i32 %5031, ptr %5029, align 8, !tbaa !45
  br label %5032

5032:                                             ; preds = %5025, %4982
  br label %4952

5033:                                             ; preds = %4958
  %5034 = load i8, ptr %3, align 1, !tbaa !40
  %5035 = zext i8 %5034 to i32
  %5036 = icmp ne i32 %5035, 114
  br i1 %5036, label %5037, label %5038

5037:                                             ; preds = %5033
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

5038:                                             ; preds = %5033
  br label %5039

5039:                                             ; preds = %5038, %144
  %5040 = load ptr, ptr %2, align 8, !tbaa !5
  %5041 = getelementptr inbounds %struct.DState, ptr %5040, i32 0, i32 1
  store i32 43, ptr %5041, align 8, !tbaa !12
  br label %5042

5042:                                             ; preds = %5122, %5039
  br label %5043

5043:                                             ; preds = %5042
  %5044 = load ptr, ptr %2, align 8, !tbaa !5
  %5045 = getelementptr inbounds %struct.DState, ptr %5044, i32 0, i32 8
  %5046 = load i32, ptr %5045, align 4, !tbaa !38
  %5047 = icmp sge i32 %5046, 8
  br i1 %5047, label %5048, label %5064

5048:                                             ; preds = %5043
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  %5049 = load ptr, ptr %2, align 8, !tbaa !5
  %5050 = getelementptr inbounds %struct.DState, ptr %5049, i32 0, i32 7
  %5051 = load i32, ptr %5050, align 8, !tbaa !39
  %5052 = load ptr, ptr %2, align 8, !tbaa !5
  %5053 = getelementptr inbounds %struct.DState, ptr %5052, i32 0, i32 8
  %5054 = load i32, ptr %5053, align 4, !tbaa !38
  %5055 = sub nsw i32 %5054, 8
  %5056 = lshr i32 %5051, %5055
  %5057 = and i32 %5056, 255
  store i32 %5057, ptr %80, align 4, !tbaa !37
  %5058 = load ptr, ptr %2, align 8, !tbaa !5
  %5059 = getelementptr inbounds %struct.DState, ptr %5058, i32 0, i32 8
  %5060 = load i32, ptr %5059, align 4, !tbaa !38
  %5061 = sub nsw i32 %5060, 8
  store i32 %5061, ptr %5059, align 4, !tbaa !38
  %5062 = load i32, ptr %80, align 4, !tbaa !37
  %5063 = trunc i32 %5062 to i8
  store i8 %5063, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  br label %5123

5064:                                             ; preds = %5043
  %5065 = load ptr, ptr %2, align 8, !tbaa !5
  %5066 = getelementptr inbounds %struct.DState, ptr %5065, i32 0, i32 0
  %5067 = load ptr, ptr %5066, align 8, !tbaa !9
  %5068 = getelementptr inbounds %struct.bz_stream, ptr %5067, i32 0, i32 1
  %5069 = load i32, ptr %5068, align 8, !tbaa !41
  %5070 = icmp eq i32 %5069, 0
  br i1 %5070, label %5071, label %5072

5071:                                             ; preds = %5064
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5072:                                             ; preds = %5064
  %5073 = load ptr, ptr %2, align 8, !tbaa !5
  %5074 = getelementptr inbounds %struct.DState, ptr %5073, i32 0, i32 7
  %5075 = load i32, ptr %5074, align 8, !tbaa !39
  %5076 = shl i32 %5075, 8
  %5077 = load ptr, ptr %2, align 8, !tbaa !5
  %5078 = getelementptr inbounds %struct.DState, ptr %5077, i32 0, i32 0
  %5079 = load ptr, ptr %5078, align 8, !tbaa !9
  %5080 = getelementptr inbounds %struct.bz_stream, ptr %5079, i32 0, i32 0
  %5081 = load ptr, ptr %5080, align 8, !tbaa !43
  %5082 = load i8, ptr %5081, align 1, !tbaa !40
  %5083 = zext i8 %5082 to i32
  %5084 = or i32 %5076, %5083
  %5085 = load ptr, ptr %2, align 8, !tbaa !5
  %5086 = getelementptr inbounds %struct.DState, ptr %5085, i32 0, i32 7
  store i32 %5084, ptr %5086, align 8, !tbaa !39
  %5087 = load ptr, ptr %2, align 8, !tbaa !5
  %5088 = getelementptr inbounds %struct.DState, ptr %5087, i32 0, i32 8
  %5089 = load i32, ptr %5088, align 4, !tbaa !38
  %5090 = add nsw i32 %5089, 8
  store i32 %5090, ptr %5088, align 4, !tbaa !38
  %5091 = load ptr, ptr %2, align 8, !tbaa !5
  %5092 = getelementptr inbounds %struct.DState, ptr %5091, i32 0, i32 0
  %5093 = load ptr, ptr %5092, align 8, !tbaa !9
  %5094 = getelementptr inbounds %struct.bz_stream, ptr %5093, i32 0, i32 0
  %5095 = load ptr, ptr %5094, align 8, !tbaa !43
  %5096 = getelementptr inbounds i8, ptr %5095, i32 1
  store ptr %5096, ptr %5094, align 8, !tbaa !43
  %5097 = load ptr, ptr %2, align 8, !tbaa !5
  %5098 = getelementptr inbounds %struct.DState, ptr %5097, i32 0, i32 0
  %5099 = load ptr, ptr %5098, align 8, !tbaa !9
  %5100 = getelementptr inbounds %struct.bz_stream, ptr %5099, i32 0, i32 1
  %5101 = load i32, ptr %5100, align 8, !tbaa !41
  %5102 = add i32 %5101, -1
  store i32 %5102, ptr %5100, align 8, !tbaa !41
  %5103 = load ptr, ptr %2, align 8, !tbaa !5
  %5104 = getelementptr inbounds %struct.DState, ptr %5103, i32 0, i32 0
  %5105 = load ptr, ptr %5104, align 8, !tbaa !9
  %5106 = getelementptr inbounds %struct.bz_stream, ptr %5105, i32 0, i32 2
  %5107 = load i32, ptr %5106, align 4, !tbaa !44
  %5108 = add i32 %5107, 1
  store i32 %5108, ptr %5106, align 4, !tbaa !44
  %5109 = load ptr, ptr %2, align 8, !tbaa !5
  %5110 = getelementptr inbounds %struct.DState, ptr %5109, i32 0, i32 0
  %5111 = load ptr, ptr %5110, align 8, !tbaa !9
  %5112 = getelementptr inbounds %struct.bz_stream, ptr %5111, i32 0, i32 2
  %5113 = load i32, ptr %5112, align 4, !tbaa !44
  %5114 = icmp eq i32 %5113, 0
  br i1 %5114, label %5115, label %5122

5115:                                             ; preds = %5072
  %5116 = load ptr, ptr %2, align 8, !tbaa !5
  %5117 = getelementptr inbounds %struct.DState, ptr %5116, i32 0, i32 0
  %5118 = load ptr, ptr %5117, align 8, !tbaa !9
  %5119 = getelementptr inbounds %struct.bz_stream, ptr %5118, i32 0, i32 3
  %5120 = load i32, ptr %5119, align 8, !tbaa !45
  %5121 = add i32 %5120, 1
  store i32 %5121, ptr %5119, align 8, !tbaa !45
  br label %5122

5122:                                             ; preds = %5115, %5072
  br label %5042

5123:                                             ; preds = %5048
  %5124 = load i8, ptr %3, align 1, !tbaa !40
  %5125 = zext i8 %5124 to i32
  %5126 = icmp ne i32 %5125, 69
  br i1 %5126, label %5127, label %5128

5127:                                             ; preds = %5123
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

5128:                                             ; preds = %5123
  br label %5129

5129:                                             ; preds = %5128, %144
  %5130 = load ptr, ptr %2, align 8, !tbaa !5
  %5131 = getelementptr inbounds %struct.DState, ptr %5130, i32 0, i32 1
  store i32 44, ptr %5131, align 8, !tbaa !12
  br label %5132

5132:                                             ; preds = %5212, %5129
  br label %5133

5133:                                             ; preds = %5132
  %5134 = load ptr, ptr %2, align 8, !tbaa !5
  %5135 = getelementptr inbounds %struct.DState, ptr %5134, i32 0, i32 8
  %5136 = load i32, ptr %5135, align 4, !tbaa !38
  %5137 = icmp sge i32 %5136, 8
  br i1 %5137, label %5138, label %5154

5138:                                             ; preds = %5133
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  %5139 = load ptr, ptr %2, align 8, !tbaa !5
  %5140 = getelementptr inbounds %struct.DState, ptr %5139, i32 0, i32 7
  %5141 = load i32, ptr %5140, align 8, !tbaa !39
  %5142 = load ptr, ptr %2, align 8, !tbaa !5
  %5143 = getelementptr inbounds %struct.DState, ptr %5142, i32 0, i32 8
  %5144 = load i32, ptr %5143, align 4, !tbaa !38
  %5145 = sub nsw i32 %5144, 8
  %5146 = lshr i32 %5141, %5145
  %5147 = and i32 %5146, 255
  store i32 %5147, ptr %81, align 4, !tbaa !37
  %5148 = load ptr, ptr %2, align 8, !tbaa !5
  %5149 = getelementptr inbounds %struct.DState, ptr %5148, i32 0, i32 8
  %5150 = load i32, ptr %5149, align 4, !tbaa !38
  %5151 = sub nsw i32 %5150, 8
  store i32 %5151, ptr %5149, align 4, !tbaa !38
  %5152 = load i32, ptr %81, align 4, !tbaa !37
  %5153 = trunc i32 %5152 to i8
  store i8 %5153, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  br label %5213

5154:                                             ; preds = %5133
  %5155 = load ptr, ptr %2, align 8, !tbaa !5
  %5156 = getelementptr inbounds %struct.DState, ptr %5155, i32 0, i32 0
  %5157 = load ptr, ptr %5156, align 8, !tbaa !9
  %5158 = getelementptr inbounds %struct.bz_stream, ptr %5157, i32 0, i32 1
  %5159 = load i32, ptr %5158, align 8, !tbaa !41
  %5160 = icmp eq i32 %5159, 0
  br i1 %5160, label %5161, label %5162

5161:                                             ; preds = %5154
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5162:                                             ; preds = %5154
  %5163 = load ptr, ptr %2, align 8, !tbaa !5
  %5164 = getelementptr inbounds %struct.DState, ptr %5163, i32 0, i32 7
  %5165 = load i32, ptr %5164, align 8, !tbaa !39
  %5166 = shl i32 %5165, 8
  %5167 = load ptr, ptr %2, align 8, !tbaa !5
  %5168 = getelementptr inbounds %struct.DState, ptr %5167, i32 0, i32 0
  %5169 = load ptr, ptr %5168, align 8, !tbaa !9
  %5170 = getelementptr inbounds %struct.bz_stream, ptr %5169, i32 0, i32 0
  %5171 = load ptr, ptr %5170, align 8, !tbaa !43
  %5172 = load i8, ptr %5171, align 1, !tbaa !40
  %5173 = zext i8 %5172 to i32
  %5174 = or i32 %5166, %5173
  %5175 = load ptr, ptr %2, align 8, !tbaa !5
  %5176 = getelementptr inbounds %struct.DState, ptr %5175, i32 0, i32 7
  store i32 %5174, ptr %5176, align 8, !tbaa !39
  %5177 = load ptr, ptr %2, align 8, !tbaa !5
  %5178 = getelementptr inbounds %struct.DState, ptr %5177, i32 0, i32 8
  %5179 = load i32, ptr %5178, align 4, !tbaa !38
  %5180 = add nsw i32 %5179, 8
  store i32 %5180, ptr %5178, align 4, !tbaa !38
  %5181 = load ptr, ptr %2, align 8, !tbaa !5
  %5182 = getelementptr inbounds %struct.DState, ptr %5181, i32 0, i32 0
  %5183 = load ptr, ptr %5182, align 8, !tbaa !9
  %5184 = getelementptr inbounds %struct.bz_stream, ptr %5183, i32 0, i32 0
  %5185 = load ptr, ptr %5184, align 8, !tbaa !43
  %5186 = getelementptr inbounds i8, ptr %5185, i32 1
  store ptr %5186, ptr %5184, align 8, !tbaa !43
  %5187 = load ptr, ptr %2, align 8, !tbaa !5
  %5188 = getelementptr inbounds %struct.DState, ptr %5187, i32 0, i32 0
  %5189 = load ptr, ptr %5188, align 8, !tbaa !9
  %5190 = getelementptr inbounds %struct.bz_stream, ptr %5189, i32 0, i32 1
  %5191 = load i32, ptr %5190, align 8, !tbaa !41
  %5192 = add i32 %5191, -1
  store i32 %5192, ptr %5190, align 8, !tbaa !41
  %5193 = load ptr, ptr %2, align 8, !tbaa !5
  %5194 = getelementptr inbounds %struct.DState, ptr %5193, i32 0, i32 0
  %5195 = load ptr, ptr %5194, align 8, !tbaa !9
  %5196 = getelementptr inbounds %struct.bz_stream, ptr %5195, i32 0, i32 2
  %5197 = load i32, ptr %5196, align 4, !tbaa !44
  %5198 = add i32 %5197, 1
  store i32 %5198, ptr %5196, align 4, !tbaa !44
  %5199 = load ptr, ptr %2, align 8, !tbaa !5
  %5200 = getelementptr inbounds %struct.DState, ptr %5199, i32 0, i32 0
  %5201 = load ptr, ptr %5200, align 8, !tbaa !9
  %5202 = getelementptr inbounds %struct.bz_stream, ptr %5201, i32 0, i32 2
  %5203 = load i32, ptr %5202, align 4, !tbaa !44
  %5204 = icmp eq i32 %5203, 0
  br i1 %5204, label %5205, label %5212

5205:                                             ; preds = %5162
  %5206 = load ptr, ptr %2, align 8, !tbaa !5
  %5207 = getelementptr inbounds %struct.DState, ptr %5206, i32 0, i32 0
  %5208 = load ptr, ptr %5207, align 8, !tbaa !9
  %5209 = getelementptr inbounds %struct.bz_stream, ptr %5208, i32 0, i32 3
  %5210 = load i32, ptr %5209, align 8, !tbaa !45
  %5211 = add i32 %5210, 1
  store i32 %5211, ptr %5209, align 8, !tbaa !45
  br label %5212

5212:                                             ; preds = %5205, %5162
  br label %5132

5213:                                             ; preds = %5138
  %5214 = load i8, ptr %3, align 1, !tbaa !40
  %5215 = zext i8 %5214 to i32
  %5216 = icmp ne i32 %5215, 56
  br i1 %5216, label %5217, label %5218

5217:                                             ; preds = %5213
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

5218:                                             ; preds = %5213
  br label %5219

5219:                                             ; preds = %5218, %144
  %5220 = load ptr, ptr %2, align 8, !tbaa !5
  %5221 = getelementptr inbounds %struct.DState, ptr %5220, i32 0, i32 1
  store i32 45, ptr %5221, align 8, !tbaa !12
  br label %5222

5222:                                             ; preds = %5302, %5219
  br label %5223

5223:                                             ; preds = %5222
  %5224 = load ptr, ptr %2, align 8, !tbaa !5
  %5225 = getelementptr inbounds %struct.DState, ptr %5224, i32 0, i32 8
  %5226 = load i32, ptr %5225, align 4, !tbaa !38
  %5227 = icmp sge i32 %5226, 8
  br i1 %5227, label %5228, label %5244

5228:                                             ; preds = %5223
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  %5229 = load ptr, ptr %2, align 8, !tbaa !5
  %5230 = getelementptr inbounds %struct.DState, ptr %5229, i32 0, i32 7
  %5231 = load i32, ptr %5230, align 8, !tbaa !39
  %5232 = load ptr, ptr %2, align 8, !tbaa !5
  %5233 = getelementptr inbounds %struct.DState, ptr %5232, i32 0, i32 8
  %5234 = load i32, ptr %5233, align 4, !tbaa !38
  %5235 = sub nsw i32 %5234, 8
  %5236 = lshr i32 %5231, %5235
  %5237 = and i32 %5236, 255
  store i32 %5237, ptr %82, align 4, !tbaa !37
  %5238 = load ptr, ptr %2, align 8, !tbaa !5
  %5239 = getelementptr inbounds %struct.DState, ptr %5238, i32 0, i32 8
  %5240 = load i32, ptr %5239, align 4, !tbaa !38
  %5241 = sub nsw i32 %5240, 8
  store i32 %5241, ptr %5239, align 4, !tbaa !38
  %5242 = load i32, ptr %82, align 4, !tbaa !37
  %5243 = trunc i32 %5242 to i8
  store i8 %5243, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  br label %5303

5244:                                             ; preds = %5223
  %5245 = load ptr, ptr %2, align 8, !tbaa !5
  %5246 = getelementptr inbounds %struct.DState, ptr %5245, i32 0, i32 0
  %5247 = load ptr, ptr %5246, align 8, !tbaa !9
  %5248 = getelementptr inbounds %struct.bz_stream, ptr %5247, i32 0, i32 1
  %5249 = load i32, ptr %5248, align 8, !tbaa !41
  %5250 = icmp eq i32 %5249, 0
  br i1 %5250, label %5251, label %5252

5251:                                             ; preds = %5244
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5252:                                             ; preds = %5244
  %5253 = load ptr, ptr %2, align 8, !tbaa !5
  %5254 = getelementptr inbounds %struct.DState, ptr %5253, i32 0, i32 7
  %5255 = load i32, ptr %5254, align 8, !tbaa !39
  %5256 = shl i32 %5255, 8
  %5257 = load ptr, ptr %2, align 8, !tbaa !5
  %5258 = getelementptr inbounds %struct.DState, ptr %5257, i32 0, i32 0
  %5259 = load ptr, ptr %5258, align 8, !tbaa !9
  %5260 = getelementptr inbounds %struct.bz_stream, ptr %5259, i32 0, i32 0
  %5261 = load ptr, ptr %5260, align 8, !tbaa !43
  %5262 = load i8, ptr %5261, align 1, !tbaa !40
  %5263 = zext i8 %5262 to i32
  %5264 = or i32 %5256, %5263
  %5265 = load ptr, ptr %2, align 8, !tbaa !5
  %5266 = getelementptr inbounds %struct.DState, ptr %5265, i32 0, i32 7
  store i32 %5264, ptr %5266, align 8, !tbaa !39
  %5267 = load ptr, ptr %2, align 8, !tbaa !5
  %5268 = getelementptr inbounds %struct.DState, ptr %5267, i32 0, i32 8
  %5269 = load i32, ptr %5268, align 4, !tbaa !38
  %5270 = add nsw i32 %5269, 8
  store i32 %5270, ptr %5268, align 4, !tbaa !38
  %5271 = load ptr, ptr %2, align 8, !tbaa !5
  %5272 = getelementptr inbounds %struct.DState, ptr %5271, i32 0, i32 0
  %5273 = load ptr, ptr %5272, align 8, !tbaa !9
  %5274 = getelementptr inbounds %struct.bz_stream, ptr %5273, i32 0, i32 0
  %5275 = load ptr, ptr %5274, align 8, !tbaa !43
  %5276 = getelementptr inbounds i8, ptr %5275, i32 1
  store ptr %5276, ptr %5274, align 8, !tbaa !43
  %5277 = load ptr, ptr %2, align 8, !tbaa !5
  %5278 = getelementptr inbounds %struct.DState, ptr %5277, i32 0, i32 0
  %5279 = load ptr, ptr %5278, align 8, !tbaa !9
  %5280 = getelementptr inbounds %struct.bz_stream, ptr %5279, i32 0, i32 1
  %5281 = load i32, ptr %5280, align 8, !tbaa !41
  %5282 = add i32 %5281, -1
  store i32 %5282, ptr %5280, align 8, !tbaa !41
  %5283 = load ptr, ptr %2, align 8, !tbaa !5
  %5284 = getelementptr inbounds %struct.DState, ptr %5283, i32 0, i32 0
  %5285 = load ptr, ptr %5284, align 8, !tbaa !9
  %5286 = getelementptr inbounds %struct.bz_stream, ptr %5285, i32 0, i32 2
  %5287 = load i32, ptr %5286, align 4, !tbaa !44
  %5288 = add i32 %5287, 1
  store i32 %5288, ptr %5286, align 4, !tbaa !44
  %5289 = load ptr, ptr %2, align 8, !tbaa !5
  %5290 = getelementptr inbounds %struct.DState, ptr %5289, i32 0, i32 0
  %5291 = load ptr, ptr %5290, align 8, !tbaa !9
  %5292 = getelementptr inbounds %struct.bz_stream, ptr %5291, i32 0, i32 2
  %5293 = load i32, ptr %5292, align 4, !tbaa !44
  %5294 = icmp eq i32 %5293, 0
  br i1 %5294, label %5295, label %5302

5295:                                             ; preds = %5252
  %5296 = load ptr, ptr %2, align 8, !tbaa !5
  %5297 = getelementptr inbounds %struct.DState, ptr %5296, i32 0, i32 0
  %5298 = load ptr, ptr %5297, align 8, !tbaa !9
  %5299 = getelementptr inbounds %struct.bz_stream, ptr %5298, i32 0, i32 3
  %5300 = load i32, ptr %5299, align 8, !tbaa !45
  %5301 = add i32 %5300, 1
  store i32 %5301, ptr %5299, align 8, !tbaa !45
  br label %5302

5302:                                             ; preds = %5295, %5252
  br label %5222

5303:                                             ; preds = %5228
  %5304 = load i8, ptr %3, align 1, !tbaa !40
  %5305 = zext i8 %5304 to i32
  %5306 = icmp ne i32 %5305, 80
  br i1 %5306, label %5307, label %5308

5307:                                             ; preds = %5303
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

5308:                                             ; preds = %5303
  br label %5309

5309:                                             ; preds = %5308, %144
  %5310 = load ptr, ptr %2, align 8, !tbaa !5
  %5311 = getelementptr inbounds %struct.DState, ptr %5310, i32 0, i32 1
  store i32 46, ptr %5311, align 8, !tbaa !12
  br label %5312

5312:                                             ; preds = %5392, %5309
  br label %5313

5313:                                             ; preds = %5312
  %5314 = load ptr, ptr %2, align 8, !tbaa !5
  %5315 = getelementptr inbounds %struct.DState, ptr %5314, i32 0, i32 8
  %5316 = load i32, ptr %5315, align 4, !tbaa !38
  %5317 = icmp sge i32 %5316, 8
  br i1 %5317, label %5318, label %5334

5318:                                             ; preds = %5313
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  %5319 = load ptr, ptr %2, align 8, !tbaa !5
  %5320 = getelementptr inbounds %struct.DState, ptr %5319, i32 0, i32 7
  %5321 = load i32, ptr %5320, align 8, !tbaa !39
  %5322 = load ptr, ptr %2, align 8, !tbaa !5
  %5323 = getelementptr inbounds %struct.DState, ptr %5322, i32 0, i32 8
  %5324 = load i32, ptr %5323, align 4, !tbaa !38
  %5325 = sub nsw i32 %5324, 8
  %5326 = lshr i32 %5321, %5325
  %5327 = and i32 %5326, 255
  store i32 %5327, ptr %83, align 4, !tbaa !37
  %5328 = load ptr, ptr %2, align 8, !tbaa !5
  %5329 = getelementptr inbounds %struct.DState, ptr %5328, i32 0, i32 8
  %5330 = load i32, ptr %5329, align 4, !tbaa !38
  %5331 = sub nsw i32 %5330, 8
  store i32 %5331, ptr %5329, align 4, !tbaa !38
  %5332 = load i32, ptr %83, align 4, !tbaa !37
  %5333 = trunc i32 %5332 to i8
  store i8 %5333, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  br label %5393

5334:                                             ; preds = %5313
  %5335 = load ptr, ptr %2, align 8, !tbaa !5
  %5336 = getelementptr inbounds %struct.DState, ptr %5335, i32 0, i32 0
  %5337 = load ptr, ptr %5336, align 8, !tbaa !9
  %5338 = getelementptr inbounds %struct.bz_stream, ptr %5337, i32 0, i32 1
  %5339 = load i32, ptr %5338, align 8, !tbaa !41
  %5340 = icmp eq i32 %5339, 0
  br i1 %5340, label %5341, label %5342

5341:                                             ; preds = %5334
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5342:                                             ; preds = %5334
  %5343 = load ptr, ptr %2, align 8, !tbaa !5
  %5344 = getelementptr inbounds %struct.DState, ptr %5343, i32 0, i32 7
  %5345 = load i32, ptr %5344, align 8, !tbaa !39
  %5346 = shl i32 %5345, 8
  %5347 = load ptr, ptr %2, align 8, !tbaa !5
  %5348 = getelementptr inbounds %struct.DState, ptr %5347, i32 0, i32 0
  %5349 = load ptr, ptr %5348, align 8, !tbaa !9
  %5350 = getelementptr inbounds %struct.bz_stream, ptr %5349, i32 0, i32 0
  %5351 = load ptr, ptr %5350, align 8, !tbaa !43
  %5352 = load i8, ptr %5351, align 1, !tbaa !40
  %5353 = zext i8 %5352 to i32
  %5354 = or i32 %5346, %5353
  %5355 = load ptr, ptr %2, align 8, !tbaa !5
  %5356 = getelementptr inbounds %struct.DState, ptr %5355, i32 0, i32 7
  store i32 %5354, ptr %5356, align 8, !tbaa !39
  %5357 = load ptr, ptr %2, align 8, !tbaa !5
  %5358 = getelementptr inbounds %struct.DState, ptr %5357, i32 0, i32 8
  %5359 = load i32, ptr %5358, align 4, !tbaa !38
  %5360 = add nsw i32 %5359, 8
  store i32 %5360, ptr %5358, align 4, !tbaa !38
  %5361 = load ptr, ptr %2, align 8, !tbaa !5
  %5362 = getelementptr inbounds %struct.DState, ptr %5361, i32 0, i32 0
  %5363 = load ptr, ptr %5362, align 8, !tbaa !9
  %5364 = getelementptr inbounds %struct.bz_stream, ptr %5363, i32 0, i32 0
  %5365 = load ptr, ptr %5364, align 8, !tbaa !43
  %5366 = getelementptr inbounds i8, ptr %5365, i32 1
  store ptr %5366, ptr %5364, align 8, !tbaa !43
  %5367 = load ptr, ptr %2, align 8, !tbaa !5
  %5368 = getelementptr inbounds %struct.DState, ptr %5367, i32 0, i32 0
  %5369 = load ptr, ptr %5368, align 8, !tbaa !9
  %5370 = getelementptr inbounds %struct.bz_stream, ptr %5369, i32 0, i32 1
  %5371 = load i32, ptr %5370, align 8, !tbaa !41
  %5372 = add i32 %5371, -1
  store i32 %5372, ptr %5370, align 8, !tbaa !41
  %5373 = load ptr, ptr %2, align 8, !tbaa !5
  %5374 = getelementptr inbounds %struct.DState, ptr %5373, i32 0, i32 0
  %5375 = load ptr, ptr %5374, align 8, !tbaa !9
  %5376 = getelementptr inbounds %struct.bz_stream, ptr %5375, i32 0, i32 2
  %5377 = load i32, ptr %5376, align 4, !tbaa !44
  %5378 = add i32 %5377, 1
  store i32 %5378, ptr %5376, align 4, !tbaa !44
  %5379 = load ptr, ptr %2, align 8, !tbaa !5
  %5380 = getelementptr inbounds %struct.DState, ptr %5379, i32 0, i32 0
  %5381 = load ptr, ptr %5380, align 8, !tbaa !9
  %5382 = getelementptr inbounds %struct.bz_stream, ptr %5381, i32 0, i32 2
  %5383 = load i32, ptr %5382, align 4, !tbaa !44
  %5384 = icmp eq i32 %5383, 0
  br i1 %5384, label %5385, label %5392

5385:                                             ; preds = %5342
  %5386 = load ptr, ptr %2, align 8, !tbaa !5
  %5387 = getelementptr inbounds %struct.DState, ptr %5386, i32 0, i32 0
  %5388 = load ptr, ptr %5387, align 8, !tbaa !9
  %5389 = getelementptr inbounds %struct.bz_stream, ptr %5388, i32 0, i32 3
  %5390 = load i32, ptr %5389, align 8, !tbaa !45
  %5391 = add i32 %5390, 1
  store i32 %5391, ptr %5389, align 8, !tbaa !45
  br label %5392

5392:                                             ; preds = %5385, %5342
  br label %5312

5393:                                             ; preds = %5318
  %5394 = load i8, ptr %3, align 1, !tbaa !40
  %5395 = zext i8 %5394 to i32
  %5396 = icmp ne i32 %5395, 144
  br i1 %5396, label %5397, label %5398

5397:                                             ; preds = %5393
  store i32 -4, ptr %4, align 4, !tbaa !37
  br label %5781

5398:                                             ; preds = %5393
  %5399 = load ptr, ptr %2, align 8, !tbaa !5
  %5400 = getelementptr inbounds %struct.DState, ptr %5399, i32 0, i32 24
  store i32 0, ptr %5400, align 4, !tbaa !101
  br label %5401

5401:                                             ; preds = %5398, %144
  %5402 = load ptr, ptr %2, align 8, !tbaa !5
  %5403 = getelementptr inbounds %struct.DState, ptr %5402, i32 0, i32 1
  store i32 47, ptr %5403, align 8, !tbaa !12
  br label %5404

5404:                                             ; preds = %5484, %5401
  br label %5405

5405:                                             ; preds = %5404
  %5406 = load ptr, ptr %2, align 8, !tbaa !5
  %5407 = getelementptr inbounds %struct.DState, ptr %5406, i32 0, i32 8
  %5408 = load i32, ptr %5407, align 4, !tbaa !38
  %5409 = icmp sge i32 %5408, 8
  br i1 %5409, label %5410, label %5426

5410:                                             ; preds = %5405
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #3
  %5411 = load ptr, ptr %2, align 8, !tbaa !5
  %5412 = getelementptr inbounds %struct.DState, ptr %5411, i32 0, i32 7
  %5413 = load i32, ptr %5412, align 8, !tbaa !39
  %5414 = load ptr, ptr %2, align 8, !tbaa !5
  %5415 = getelementptr inbounds %struct.DState, ptr %5414, i32 0, i32 8
  %5416 = load i32, ptr %5415, align 4, !tbaa !38
  %5417 = sub nsw i32 %5416, 8
  %5418 = lshr i32 %5413, %5417
  %5419 = and i32 %5418, 255
  store i32 %5419, ptr %84, align 4, !tbaa !37
  %5420 = load ptr, ptr %2, align 8, !tbaa !5
  %5421 = getelementptr inbounds %struct.DState, ptr %5420, i32 0, i32 8
  %5422 = load i32, ptr %5421, align 4, !tbaa !38
  %5423 = sub nsw i32 %5422, 8
  store i32 %5423, ptr %5421, align 4, !tbaa !38
  %5424 = load i32, ptr %84, align 4, !tbaa !37
  %5425 = trunc i32 %5424 to i8
  store i8 %5425, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  br label %5485

5426:                                             ; preds = %5405
  %5427 = load ptr, ptr %2, align 8, !tbaa !5
  %5428 = getelementptr inbounds %struct.DState, ptr %5427, i32 0, i32 0
  %5429 = load ptr, ptr %5428, align 8, !tbaa !9
  %5430 = getelementptr inbounds %struct.bz_stream, ptr %5429, i32 0, i32 1
  %5431 = load i32, ptr %5430, align 8, !tbaa !41
  %5432 = icmp eq i32 %5431, 0
  br i1 %5432, label %5433, label %5434

5433:                                             ; preds = %5426
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5434:                                             ; preds = %5426
  %5435 = load ptr, ptr %2, align 8, !tbaa !5
  %5436 = getelementptr inbounds %struct.DState, ptr %5435, i32 0, i32 7
  %5437 = load i32, ptr %5436, align 8, !tbaa !39
  %5438 = shl i32 %5437, 8
  %5439 = load ptr, ptr %2, align 8, !tbaa !5
  %5440 = getelementptr inbounds %struct.DState, ptr %5439, i32 0, i32 0
  %5441 = load ptr, ptr %5440, align 8, !tbaa !9
  %5442 = getelementptr inbounds %struct.bz_stream, ptr %5441, i32 0, i32 0
  %5443 = load ptr, ptr %5442, align 8, !tbaa !43
  %5444 = load i8, ptr %5443, align 1, !tbaa !40
  %5445 = zext i8 %5444 to i32
  %5446 = or i32 %5438, %5445
  %5447 = load ptr, ptr %2, align 8, !tbaa !5
  %5448 = getelementptr inbounds %struct.DState, ptr %5447, i32 0, i32 7
  store i32 %5446, ptr %5448, align 8, !tbaa !39
  %5449 = load ptr, ptr %2, align 8, !tbaa !5
  %5450 = getelementptr inbounds %struct.DState, ptr %5449, i32 0, i32 8
  %5451 = load i32, ptr %5450, align 4, !tbaa !38
  %5452 = add nsw i32 %5451, 8
  store i32 %5452, ptr %5450, align 4, !tbaa !38
  %5453 = load ptr, ptr %2, align 8, !tbaa !5
  %5454 = getelementptr inbounds %struct.DState, ptr %5453, i32 0, i32 0
  %5455 = load ptr, ptr %5454, align 8, !tbaa !9
  %5456 = getelementptr inbounds %struct.bz_stream, ptr %5455, i32 0, i32 0
  %5457 = load ptr, ptr %5456, align 8, !tbaa !43
  %5458 = getelementptr inbounds i8, ptr %5457, i32 1
  store ptr %5458, ptr %5456, align 8, !tbaa !43
  %5459 = load ptr, ptr %2, align 8, !tbaa !5
  %5460 = getelementptr inbounds %struct.DState, ptr %5459, i32 0, i32 0
  %5461 = load ptr, ptr %5460, align 8, !tbaa !9
  %5462 = getelementptr inbounds %struct.bz_stream, ptr %5461, i32 0, i32 1
  %5463 = load i32, ptr %5462, align 8, !tbaa !41
  %5464 = add i32 %5463, -1
  store i32 %5464, ptr %5462, align 8, !tbaa !41
  %5465 = load ptr, ptr %2, align 8, !tbaa !5
  %5466 = getelementptr inbounds %struct.DState, ptr %5465, i32 0, i32 0
  %5467 = load ptr, ptr %5466, align 8, !tbaa !9
  %5468 = getelementptr inbounds %struct.bz_stream, ptr %5467, i32 0, i32 2
  %5469 = load i32, ptr %5468, align 4, !tbaa !44
  %5470 = add i32 %5469, 1
  store i32 %5470, ptr %5468, align 4, !tbaa !44
  %5471 = load ptr, ptr %2, align 8, !tbaa !5
  %5472 = getelementptr inbounds %struct.DState, ptr %5471, i32 0, i32 0
  %5473 = load ptr, ptr %5472, align 8, !tbaa !9
  %5474 = getelementptr inbounds %struct.bz_stream, ptr %5473, i32 0, i32 2
  %5475 = load i32, ptr %5474, align 4, !tbaa !44
  %5476 = icmp eq i32 %5475, 0
  br i1 %5476, label %5477, label %5484

5477:                                             ; preds = %5434
  %5478 = load ptr, ptr %2, align 8, !tbaa !5
  %5479 = getelementptr inbounds %struct.DState, ptr %5478, i32 0, i32 0
  %5480 = load ptr, ptr %5479, align 8, !tbaa !9
  %5481 = getelementptr inbounds %struct.bz_stream, ptr %5480, i32 0, i32 3
  %5482 = load i32, ptr %5481, align 8, !tbaa !45
  %5483 = add i32 %5482, 1
  store i32 %5483, ptr %5481, align 8, !tbaa !45
  br label %5484

5484:                                             ; preds = %5477, %5434
  br label %5404

5485:                                             ; preds = %5410
  %5486 = load ptr, ptr %2, align 8, !tbaa !5
  %5487 = getelementptr inbounds %struct.DState, ptr %5486, i32 0, i32 24
  %5488 = load i32, ptr %5487, align 4, !tbaa !101
  %5489 = shl i32 %5488, 8
  %5490 = load i8, ptr %3, align 1, !tbaa !40
  %5491 = zext i8 %5490 to i32
  %5492 = or i32 %5489, %5491
  %5493 = load ptr, ptr %2, align 8, !tbaa !5
  %5494 = getelementptr inbounds %struct.DState, ptr %5493, i32 0, i32 24
  store i32 %5492, ptr %5494, align 4, !tbaa !101
  br label %5495

5495:                                             ; preds = %5485, %144
  %5496 = load ptr, ptr %2, align 8, !tbaa !5
  %5497 = getelementptr inbounds %struct.DState, ptr %5496, i32 0, i32 1
  store i32 48, ptr %5497, align 8, !tbaa !12
  br label %5498

5498:                                             ; preds = %5578, %5495
  br label %5499

5499:                                             ; preds = %5498
  %5500 = load ptr, ptr %2, align 8, !tbaa !5
  %5501 = getelementptr inbounds %struct.DState, ptr %5500, i32 0, i32 8
  %5502 = load i32, ptr %5501, align 4, !tbaa !38
  %5503 = icmp sge i32 %5502, 8
  br i1 %5503, label %5504, label %5520

5504:                                             ; preds = %5499
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #3
  %5505 = load ptr, ptr %2, align 8, !tbaa !5
  %5506 = getelementptr inbounds %struct.DState, ptr %5505, i32 0, i32 7
  %5507 = load i32, ptr %5506, align 8, !tbaa !39
  %5508 = load ptr, ptr %2, align 8, !tbaa !5
  %5509 = getelementptr inbounds %struct.DState, ptr %5508, i32 0, i32 8
  %5510 = load i32, ptr %5509, align 4, !tbaa !38
  %5511 = sub nsw i32 %5510, 8
  %5512 = lshr i32 %5507, %5511
  %5513 = and i32 %5512, 255
  store i32 %5513, ptr %85, align 4, !tbaa !37
  %5514 = load ptr, ptr %2, align 8, !tbaa !5
  %5515 = getelementptr inbounds %struct.DState, ptr %5514, i32 0, i32 8
  %5516 = load i32, ptr %5515, align 4, !tbaa !38
  %5517 = sub nsw i32 %5516, 8
  store i32 %5517, ptr %5515, align 4, !tbaa !38
  %5518 = load i32, ptr %85, align 4, !tbaa !37
  %5519 = trunc i32 %5518 to i8
  store i8 %5519, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  br label %5579

5520:                                             ; preds = %5499
  %5521 = load ptr, ptr %2, align 8, !tbaa !5
  %5522 = getelementptr inbounds %struct.DState, ptr %5521, i32 0, i32 0
  %5523 = load ptr, ptr %5522, align 8, !tbaa !9
  %5524 = getelementptr inbounds %struct.bz_stream, ptr %5523, i32 0, i32 1
  %5525 = load i32, ptr %5524, align 8, !tbaa !41
  %5526 = icmp eq i32 %5525, 0
  br i1 %5526, label %5527, label %5528

5527:                                             ; preds = %5520
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5528:                                             ; preds = %5520
  %5529 = load ptr, ptr %2, align 8, !tbaa !5
  %5530 = getelementptr inbounds %struct.DState, ptr %5529, i32 0, i32 7
  %5531 = load i32, ptr %5530, align 8, !tbaa !39
  %5532 = shl i32 %5531, 8
  %5533 = load ptr, ptr %2, align 8, !tbaa !5
  %5534 = getelementptr inbounds %struct.DState, ptr %5533, i32 0, i32 0
  %5535 = load ptr, ptr %5534, align 8, !tbaa !9
  %5536 = getelementptr inbounds %struct.bz_stream, ptr %5535, i32 0, i32 0
  %5537 = load ptr, ptr %5536, align 8, !tbaa !43
  %5538 = load i8, ptr %5537, align 1, !tbaa !40
  %5539 = zext i8 %5538 to i32
  %5540 = or i32 %5532, %5539
  %5541 = load ptr, ptr %2, align 8, !tbaa !5
  %5542 = getelementptr inbounds %struct.DState, ptr %5541, i32 0, i32 7
  store i32 %5540, ptr %5542, align 8, !tbaa !39
  %5543 = load ptr, ptr %2, align 8, !tbaa !5
  %5544 = getelementptr inbounds %struct.DState, ptr %5543, i32 0, i32 8
  %5545 = load i32, ptr %5544, align 4, !tbaa !38
  %5546 = add nsw i32 %5545, 8
  store i32 %5546, ptr %5544, align 4, !tbaa !38
  %5547 = load ptr, ptr %2, align 8, !tbaa !5
  %5548 = getelementptr inbounds %struct.DState, ptr %5547, i32 0, i32 0
  %5549 = load ptr, ptr %5548, align 8, !tbaa !9
  %5550 = getelementptr inbounds %struct.bz_stream, ptr %5549, i32 0, i32 0
  %5551 = load ptr, ptr %5550, align 8, !tbaa !43
  %5552 = getelementptr inbounds i8, ptr %5551, i32 1
  store ptr %5552, ptr %5550, align 8, !tbaa !43
  %5553 = load ptr, ptr %2, align 8, !tbaa !5
  %5554 = getelementptr inbounds %struct.DState, ptr %5553, i32 0, i32 0
  %5555 = load ptr, ptr %5554, align 8, !tbaa !9
  %5556 = getelementptr inbounds %struct.bz_stream, ptr %5555, i32 0, i32 1
  %5557 = load i32, ptr %5556, align 8, !tbaa !41
  %5558 = add i32 %5557, -1
  store i32 %5558, ptr %5556, align 8, !tbaa !41
  %5559 = load ptr, ptr %2, align 8, !tbaa !5
  %5560 = getelementptr inbounds %struct.DState, ptr %5559, i32 0, i32 0
  %5561 = load ptr, ptr %5560, align 8, !tbaa !9
  %5562 = getelementptr inbounds %struct.bz_stream, ptr %5561, i32 0, i32 2
  %5563 = load i32, ptr %5562, align 4, !tbaa !44
  %5564 = add i32 %5563, 1
  store i32 %5564, ptr %5562, align 4, !tbaa !44
  %5565 = load ptr, ptr %2, align 8, !tbaa !5
  %5566 = getelementptr inbounds %struct.DState, ptr %5565, i32 0, i32 0
  %5567 = load ptr, ptr %5566, align 8, !tbaa !9
  %5568 = getelementptr inbounds %struct.bz_stream, ptr %5567, i32 0, i32 2
  %5569 = load i32, ptr %5568, align 4, !tbaa !44
  %5570 = icmp eq i32 %5569, 0
  br i1 %5570, label %5571, label %5578

5571:                                             ; preds = %5528
  %5572 = load ptr, ptr %2, align 8, !tbaa !5
  %5573 = getelementptr inbounds %struct.DState, ptr %5572, i32 0, i32 0
  %5574 = load ptr, ptr %5573, align 8, !tbaa !9
  %5575 = getelementptr inbounds %struct.bz_stream, ptr %5574, i32 0, i32 3
  %5576 = load i32, ptr %5575, align 8, !tbaa !45
  %5577 = add i32 %5576, 1
  store i32 %5577, ptr %5575, align 8, !tbaa !45
  br label %5578

5578:                                             ; preds = %5571, %5528
  br label %5498

5579:                                             ; preds = %5504
  %5580 = load ptr, ptr %2, align 8, !tbaa !5
  %5581 = getelementptr inbounds %struct.DState, ptr %5580, i32 0, i32 24
  %5582 = load i32, ptr %5581, align 4, !tbaa !101
  %5583 = shl i32 %5582, 8
  %5584 = load i8, ptr %3, align 1, !tbaa !40
  %5585 = zext i8 %5584 to i32
  %5586 = or i32 %5583, %5585
  %5587 = load ptr, ptr %2, align 8, !tbaa !5
  %5588 = getelementptr inbounds %struct.DState, ptr %5587, i32 0, i32 24
  store i32 %5586, ptr %5588, align 4, !tbaa !101
  br label %5589

5589:                                             ; preds = %5579, %144
  %5590 = load ptr, ptr %2, align 8, !tbaa !5
  %5591 = getelementptr inbounds %struct.DState, ptr %5590, i32 0, i32 1
  store i32 49, ptr %5591, align 8, !tbaa !12
  br label %5592

5592:                                             ; preds = %5672, %5589
  br label %5593

5593:                                             ; preds = %5592
  %5594 = load ptr, ptr %2, align 8, !tbaa !5
  %5595 = getelementptr inbounds %struct.DState, ptr %5594, i32 0, i32 8
  %5596 = load i32, ptr %5595, align 4, !tbaa !38
  %5597 = icmp sge i32 %5596, 8
  br i1 %5597, label %5598, label %5614

5598:                                             ; preds = %5593
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #3
  %5599 = load ptr, ptr %2, align 8, !tbaa !5
  %5600 = getelementptr inbounds %struct.DState, ptr %5599, i32 0, i32 7
  %5601 = load i32, ptr %5600, align 8, !tbaa !39
  %5602 = load ptr, ptr %2, align 8, !tbaa !5
  %5603 = getelementptr inbounds %struct.DState, ptr %5602, i32 0, i32 8
  %5604 = load i32, ptr %5603, align 4, !tbaa !38
  %5605 = sub nsw i32 %5604, 8
  %5606 = lshr i32 %5601, %5605
  %5607 = and i32 %5606, 255
  store i32 %5607, ptr %86, align 4, !tbaa !37
  %5608 = load ptr, ptr %2, align 8, !tbaa !5
  %5609 = getelementptr inbounds %struct.DState, ptr %5608, i32 0, i32 8
  %5610 = load i32, ptr %5609, align 4, !tbaa !38
  %5611 = sub nsw i32 %5610, 8
  store i32 %5611, ptr %5609, align 4, !tbaa !38
  %5612 = load i32, ptr %86, align 4, !tbaa !37
  %5613 = trunc i32 %5612 to i8
  store i8 %5613, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  br label %5673

5614:                                             ; preds = %5593
  %5615 = load ptr, ptr %2, align 8, !tbaa !5
  %5616 = getelementptr inbounds %struct.DState, ptr %5615, i32 0, i32 0
  %5617 = load ptr, ptr %5616, align 8, !tbaa !9
  %5618 = getelementptr inbounds %struct.bz_stream, ptr %5617, i32 0, i32 1
  %5619 = load i32, ptr %5618, align 8, !tbaa !41
  %5620 = icmp eq i32 %5619, 0
  br i1 %5620, label %5621, label %5622

5621:                                             ; preds = %5614
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5622:                                             ; preds = %5614
  %5623 = load ptr, ptr %2, align 8, !tbaa !5
  %5624 = getelementptr inbounds %struct.DState, ptr %5623, i32 0, i32 7
  %5625 = load i32, ptr %5624, align 8, !tbaa !39
  %5626 = shl i32 %5625, 8
  %5627 = load ptr, ptr %2, align 8, !tbaa !5
  %5628 = getelementptr inbounds %struct.DState, ptr %5627, i32 0, i32 0
  %5629 = load ptr, ptr %5628, align 8, !tbaa !9
  %5630 = getelementptr inbounds %struct.bz_stream, ptr %5629, i32 0, i32 0
  %5631 = load ptr, ptr %5630, align 8, !tbaa !43
  %5632 = load i8, ptr %5631, align 1, !tbaa !40
  %5633 = zext i8 %5632 to i32
  %5634 = or i32 %5626, %5633
  %5635 = load ptr, ptr %2, align 8, !tbaa !5
  %5636 = getelementptr inbounds %struct.DState, ptr %5635, i32 0, i32 7
  store i32 %5634, ptr %5636, align 8, !tbaa !39
  %5637 = load ptr, ptr %2, align 8, !tbaa !5
  %5638 = getelementptr inbounds %struct.DState, ptr %5637, i32 0, i32 8
  %5639 = load i32, ptr %5638, align 4, !tbaa !38
  %5640 = add nsw i32 %5639, 8
  store i32 %5640, ptr %5638, align 4, !tbaa !38
  %5641 = load ptr, ptr %2, align 8, !tbaa !5
  %5642 = getelementptr inbounds %struct.DState, ptr %5641, i32 0, i32 0
  %5643 = load ptr, ptr %5642, align 8, !tbaa !9
  %5644 = getelementptr inbounds %struct.bz_stream, ptr %5643, i32 0, i32 0
  %5645 = load ptr, ptr %5644, align 8, !tbaa !43
  %5646 = getelementptr inbounds i8, ptr %5645, i32 1
  store ptr %5646, ptr %5644, align 8, !tbaa !43
  %5647 = load ptr, ptr %2, align 8, !tbaa !5
  %5648 = getelementptr inbounds %struct.DState, ptr %5647, i32 0, i32 0
  %5649 = load ptr, ptr %5648, align 8, !tbaa !9
  %5650 = getelementptr inbounds %struct.bz_stream, ptr %5649, i32 0, i32 1
  %5651 = load i32, ptr %5650, align 8, !tbaa !41
  %5652 = add i32 %5651, -1
  store i32 %5652, ptr %5650, align 8, !tbaa !41
  %5653 = load ptr, ptr %2, align 8, !tbaa !5
  %5654 = getelementptr inbounds %struct.DState, ptr %5653, i32 0, i32 0
  %5655 = load ptr, ptr %5654, align 8, !tbaa !9
  %5656 = getelementptr inbounds %struct.bz_stream, ptr %5655, i32 0, i32 2
  %5657 = load i32, ptr %5656, align 4, !tbaa !44
  %5658 = add i32 %5657, 1
  store i32 %5658, ptr %5656, align 4, !tbaa !44
  %5659 = load ptr, ptr %2, align 8, !tbaa !5
  %5660 = getelementptr inbounds %struct.DState, ptr %5659, i32 0, i32 0
  %5661 = load ptr, ptr %5660, align 8, !tbaa !9
  %5662 = getelementptr inbounds %struct.bz_stream, ptr %5661, i32 0, i32 2
  %5663 = load i32, ptr %5662, align 4, !tbaa !44
  %5664 = icmp eq i32 %5663, 0
  br i1 %5664, label %5665, label %5672

5665:                                             ; preds = %5622
  %5666 = load ptr, ptr %2, align 8, !tbaa !5
  %5667 = getelementptr inbounds %struct.DState, ptr %5666, i32 0, i32 0
  %5668 = load ptr, ptr %5667, align 8, !tbaa !9
  %5669 = getelementptr inbounds %struct.bz_stream, ptr %5668, i32 0, i32 3
  %5670 = load i32, ptr %5669, align 8, !tbaa !45
  %5671 = add i32 %5670, 1
  store i32 %5671, ptr %5669, align 8, !tbaa !45
  br label %5672

5672:                                             ; preds = %5665, %5622
  br label %5592

5673:                                             ; preds = %5598
  %5674 = load ptr, ptr %2, align 8, !tbaa !5
  %5675 = getelementptr inbounds %struct.DState, ptr %5674, i32 0, i32 24
  %5676 = load i32, ptr %5675, align 4, !tbaa !101
  %5677 = shl i32 %5676, 8
  %5678 = load i8, ptr %3, align 1, !tbaa !40
  %5679 = zext i8 %5678 to i32
  %5680 = or i32 %5677, %5679
  %5681 = load ptr, ptr %2, align 8, !tbaa !5
  %5682 = getelementptr inbounds %struct.DState, ptr %5681, i32 0, i32 24
  store i32 %5680, ptr %5682, align 4, !tbaa !101
  br label %5683

5683:                                             ; preds = %5673, %144
  %5684 = load ptr, ptr %2, align 8, !tbaa !5
  %5685 = getelementptr inbounds %struct.DState, ptr %5684, i32 0, i32 1
  store i32 50, ptr %5685, align 8, !tbaa !12
  br label %5686

5686:                                             ; preds = %5766, %5683
  br label %5687

5687:                                             ; preds = %5686
  %5688 = load ptr, ptr %2, align 8, !tbaa !5
  %5689 = getelementptr inbounds %struct.DState, ptr %5688, i32 0, i32 8
  %5690 = load i32, ptr %5689, align 4, !tbaa !38
  %5691 = icmp sge i32 %5690, 8
  br i1 %5691, label %5692, label %5708

5692:                                             ; preds = %5687
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #3
  %5693 = load ptr, ptr %2, align 8, !tbaa !5
  %5694 = getelementptr inbounds %struct.DState, ptr %5693, i32 0, i32 7
  %5695 = load i32, ptr %5694, align 8, !tbaa !39
  %5696 = load ptr, ptr %2, align 8, !tbaa !5
  %5697 = getelementptr inbounds %struct.DState, ptr %5696, i32 0, i32 8
  %5698 = load i32, ptr %5697, align 4, !tbaa !38
  %5699 = sub nsw i32 %5698, 8
  %5700 = lshr i32 %5695, %5699
  %5701 = and i32 %5700, 255
  store i32 %5701, ptr %87, align 4, !tbaa !37
  %5702 = load ptr, ptr %2, align 8, !tbaa !5
  %5703 = getelementptr inbounds %struct.DState, ptr %5702, i32 0, i32 8
  %5704 = load i32, ptr %5703, align 4, !tbaa !38
  %5705 = sub nsw i32 %5704, 8
  store i32 %5705, ptr %5703, align 4, !tbaa !38
  %5706 = load i32, ptr %87, align 4, !tbaa !37
  %5707 = trunc i32 %5706 to i8
  store i8 %5707, ptr %3, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  br label %5767

5708:                                             ; preds = %5687
  %5709 = load ptr, ptr %2, align 8, !tbaa !5
  %5710 = getelementptr inbounds %struct.DState, ptr %5709, i32 0, i32 0
  %5711 = load ptr, ptr %5710, align 8, !tbaa !9
  %5712 = getelementptr inbounds %struct.bz_stream, ptr %5711, i32 0, i32 1
  %5713 = load i32, ptr %5712, align 8, !tbaa !41
  %5714 = icmp eq i32 %5713, 0
  br i1 %5714, label %5715, label %5716

5715:                                             ; preds = %5708
  store i32 0, ptr %4, align 4, !tbaa !37
  br label %5781

5716:                                             ; preds = %5708
  %5717 = load ptr, ptr %2, align 8, !tbaa !5
  %5718 = getelementptr inbounds %struct.DState, ptr %5717, i32 0, i32 7
  %5719 = load i32, ptr %5718, align 8, !tbaa !39
  %5720 = shl i32 %5719, 8
  %5721 = load ptr, ptr %2, align 8, !tbaa !5
  %5722 = getelementptr inbounds %struct.DState, ptr %5721, i32 0, i32 0
  %5723 = load ptr, ptr %5722, align 8, !tbaa !9
  %5724 = getelementptr inbounds %struct.bz_stream, ptr %5723, i32 0, i32 0
  %5725 = load ptr, ptr %5724, align 8, !tbaa !43
  %5726 = load i8, ptr %5725, align 1, !tbaa !40
  %5727 = zext i8 %5726 to i32
  %5728 = or i32 %5720, %5727
  %5729 = load ptr, ptr %2, align 8, !tbaa !5
  %5730 = getelementptr inbounds %struct.DState, ptr %5729, i32 0, i32 7
  store i32 %5728, ptr %5730, align 8, !tbaa !39
  %5731 = load ptr, ptr %2, align 8, !tbaa !5
  %5732 = getelementptr inbounds %struct.DState, ptr %5731, i32 0, i32 8
  %5733 = load i32, ptr %5732, align 4, !tbaa !38
  %5734 = add nsw i32 %5733, 8
  store i32 %5734, ptr %5732, align 4, !tbaa !38
  %5735 = load ptr, ptr %2, align 8, !tbaa !5
  %5736 = getelementptr inbounds %struct.DState, ptr %5735, i32 0, i32 0
  %5737 = load ptr, ptr %5736, align 8, !tbaa !9
  %5738 = getelementptr inbounds %struct.bz_stream, ptr %5737, i32 0, i32 0
  %5739 = load ptr, ptr %5738, align 8, !tbaa !43
  %5740 = getelementptr inbounds i8, ptr %5739, i32 1
  store ptr %5740, ptr %5738, align 8, !tbaa !43
  %5741 = load ptr, ptr %2, align 8, !tbaa !5
  %5742 = getelementptr inbounds %struct.DState, ptr %5741, i32 0, i32 0
  %5743 = load ptr, ptr %5742, align 8, !tbaa !9
  %5744 = getelementptr inbounds %struct.bz_stream, ptr %5743, i32 0, i32 1
  %5745 = load i32, ptr %5744, align 8, !tbaa !41
  %5746 = add i32 %5745, -1
  store i32 %5746, ptr %5744, align 8, !tbaa !41
  %5747 = load ptr, ptr %2, align 8, !tbaa !5
  %5748 = getelementptr inbounds %struct.DState, ptr %5747, i32 0, i32 0
  %5749 = load ptr, ptr %5748, align 8, !tbaa !9
  %5750 = getelementptr inbounds %struct.bz_stream, ptr %5749, i32 0, i32 2
  %5751 = load i32, ptr %5750, align 4, !tbaa !44
  %5752 = add i32 %5751, 1
  store i32 %5752, ptr %5750, align 4, !tbaa !44
  %5753 = load ptr, ptr %2, align 8, !tbaa !5
  %5754 = getelementptr inbounds %struct.DState, ptr %5753, i32 0, i32 0
  %5755 = load ptr, ptr %5754, align 8, !tbaa !9
  %5756 = getelementptr inbounds %struct.bz_stream, ptr %5755, i32 0, i32 2
  %5757 = load i32, ptr %5756, align 4, !tbaa !44
  %5758 = icmp eq i32 %5757, 0
  br i1 %5758, label %5759, label %5766

5759:                                             ; preds = %5716
  %5760 = load ptr, ptr %2, align 8, !tbaa !5
  %5761 = getelementptr inbounds %struct.DState, ptr %5760, i32 0, i32 0
  %5762 = load ptr, ptr %5761, align 8, !tbaa !9
  %5763 = getelementptr inbounds %struct.bz_stream, ptr %5762, i32 0, i32 3
  %5764 = load i32, ptr %5763, align 8, !tbaa !45
  %5765 = add i32 %5764, 1
  store i32 %5765, ptr %5763, align 8, !tbaa !45
  br label %5766

5766:                                             ; preds = %5759, %5716
  br label %5686

5767:                                             ; preds = %5692
  %5768 = load ptr, ptr %2, align 8, !tbaa !5
  %5769 = getelementptr inbounds %struct.DState, ptr %5768, i32 0, i32 24
  %5770 = load i32, ptr %5769, align 4, !tbaa !101
  %5771 = shl i32 %5770, 8
  %5772 = load i8, ptr %3, align 1, !tbaa !40
  %5773 = zext i8 %5772 to i32
  %5774 = or i32 %5771, %5773
  %5775 = load ptr, ptr %2, align 8, !tbaa !5
  %5776 = getelementptr inbounds %struct.DState, ptr %5775, i32 0, i32 24
  store i32 %5774, ptr %5776, align 4, !tbaa !101
  %5777 = load ptr, ptr %2, align 8, !tbaa !5
  %5778 = getelementptr inbounds %struct.DState, ptr %5777, i32 0, i32 1
  store i32 1, ptr %5778, align 8, !tbaa !12
  store i32 4, ptr %4, align 4, !tbaa !37
  br label %5781

5779:                                             ; preds = %144
  call void @BZ2_bz__AssertH__fail(i32 noundef 4001)
  br label %5780

5780:                                             ; preds = %5779
  call void @BZ2_bz__AssertH__fail(i32 noundef 4002)
  br label %5781

5781:                                             ; preds = %5780, %5767, %5715, %5621, %5527, %5433, %5397, %5341, %5307, %5251, %5217, %5161, %5127, %5071, %5037, %4981, %4947, %4379, %4312, %4288, %4213, %4169, %4112, %4038, %3720, %3700, %3677, %3619, %3544, %3500, %3443, %3369, %3315, %3240, %3196, %3139, %3065, %2820, %2730, %2696, %2631, %2523, %2460, %2419, %2364, %2331, %2273, %2236, %2156, %2022, %1984, %1973, %1907, %1813, %1719, %1632, %1536, %1442, %1348, %1254, %1208, %1152, %1118, %1062, %1028, %972, %938, %882, %848, %792, %758, %697, %662, %639, %585, %523, %488, %432, %398, %342, %308, %252
  %5782 = load i32, ptr %8, align 4, !tbaa !37
  %5783 = load ptr, ptr %2, align 8, !tbaa !5
  %5784 = getelementptr inbounds %struct.DState, ptr %5783, i32 0, i32 40
  store i32 %5782, ptr %5784, align 4, !tbaa !13
  %5785 = load i32, ptr %9, align 4, !tbaa !37
  %5786 = load ptr, ptr %2, align 8, !tbaa !5
  %5787 = getelementptr inbounds %struct.DState, ptr %5786, i32 0, i32 41
  store i32 %5785, ptr %5787, align 8, !tbaa !14
  %5788 = load i32, ptr %10, align 4, !tbaa !37
  %5789 = load ptr, ptr %2, align 8, !tbaa !5
  %5790 = getelementptr inbounds %struct.DState, ptr %5789, i32 0, i32 42
  store i32 %5788, ptr %5790, align 4, !tbaa !15
  %5791 = load i32, ptr %11, align 4, !tbaa !37
  %5792 = load ptr, ptr %2, align 8, !tbaa !5
  %5793 = getelementptr inbounds %struct.DState, ptr %5792, i32 0, i32 43
  store i32 %5791, ptr %5793, align 8, !tbaa !16
  %5794 = load i32, ptr %12, align 4, !tbaa !37
  %5795 = load ptr, ptr %2, align 8, !tbaa !5
  %5796 = getelementptr inbounds %struct.DState, ptr %5795, i32 0, i32 44
  store i32 %5794, ptr %5796, align 4, !tbaa !17
  %5797 = load i32, ptr %13, align 4, !tbaa !37
  %5798 = load ptr, ptr %2, align 8, !tbaa !5
  %5799 = getelementptr inbounds %struct.DState, ptr %5798, i32 0, i32 45
  store i32 %5797, ptr %5799, align 8, !tbaa !18
  %5800 = load i32, ptr %14, align 4, !tbaa !37
  %5801 = load ptr, ptr %2, align 8, !tbaa !5
  %5802 = getelementptr inbounds %struct.DState, ptr %5801, i32 0, i32 46
  store i32 %5800, ptr %5802, align 4, !tbaa !19
  %5803 = load i32, ptr %15, align 4, !tbaa !37
  %5804 = load ptr, ptr %2, align 8, !tbaa !5
  %5805 = getelementptr inbounds %struct.DState, ptr %5804, i32 0, i32 47
  store i32 %5803, ptr %5805, align 8, !tbaa !20
  %5806 = load i32, ptr %16, align 4, !tbaa !37
  %5807 = load ptr, ptr %2, align 8, !tbaa !5
  %5808 = getelementptr inbounds %struct.DState, ptr %5807, i32 0, i32 48
  store i32 %5806, ptr %5808, align 4, !tbaa !21
  %5809 = load i32, ptr %17, align 4, !tbaa !37
  %5810 = load ptr, ptr %2, align 8, !tbaa !5
  %5811 = getelementptr inbounds %struct.DState, ptr %5810, i32 0, i32 49
  store i32 %5809, ptr %5811, align 8, !tbaa !22
  %5812 = load i32, ptr %18, align 4, !tbaa !37
  %5813 = load ptr, ptr %2, align 8, !tbaa !5
  %5814 = getelementptr inbounds %struct.DState, ptr %5813, i32 0, i32 50
  store i32 %5812, ptr %5814, align 4, !tbaa !23
  %5815 = load i32, ptr %19, align 4, !tbaa !37
  %5816 = load ptr, ptr %2, align 8, !tbaa !5
  %5817 = getelementptr inbounds %struct.DState, ptr %5816, i32 0, i32 51
  store i32 %5815, ptr %5817, align 8, !tbaa !24
  %5818 = load i32, ptr %20, align 4, !tbaa !37
  %5819 = load ptr, ptr %2, align 8, !tbaa !5
  %5820 = getelementptr inbounds %struct.DState, ptr %5819, i32 0, i32 52
  store i32 %5818, ptr %5820, align 4, !tbaa !25
  %5821 = load i32, ptr %21, align 4, !tbaa !37
  %5822 = load ptr, ptr %2, align 8, !tbaa !5
  %5823 = getelementptr inbounds %struct.DState, ptr %5822, i32 0, i32 53
  store i32 %5821, ptr %5823, align 8, !tbaa !26
  %5824 = load i32, ptr %22, align 4, !tbaa !37
  %5825 = load ptr, ptr %2, align 8, !tbaa !5
  %5826 = getelementptr inbounds %struct.DState, ptr %5825, i32 0, i32 54
  store i32 %5824, ptr %5826, align 4, !tbaa !27
  %5827 = load i32, ptr %23, align 4, !tbaa !37
  %5828 = load ptr, ptr %2, align 8, !tbaa !5
  %5829 = getelementptr inbounds %struct.DState, ptr %5828, i32 0, i32 55
  store i32 %5827, ptr %5829, align 8, !tbaa !28
  %5830 = load i32, ptr %24, align 4, !tbaa !37
  %5831 = load ptr, ptr %2, align 8, !tbaa !5
  %5832 = getelementptr inbounds %struct.DState, ptr %5831, i32 0, i32 56
  store i32 %5830, ptr %5832, align 4, !tbaa !29
  %5833 = load i32, ptr %25, align 4, !tbaa !37
  %5834 = load ptr, ptr %2, align 8, !tbaa !5
  %5835 = getelementptr inbounds %struct.DState, ptr %5834, i32 0, i32 57
  store i32 %5833, ptr %5835, align 8, !tbaa !30
  %5836 = load i32, ptr %26, align 4, !tbaa !37
  %5837 = load ptr, ptr %2, align 8, !tbaa !5
  %5838 = getelementptr inbounds %struct.DState, ptr %5837, i32 0, i32 58
  store i32 %5836, ptr %5838, align 4, !tbaa !31
  %5839 = load i32, ptr %27, align 4, !tbaa !37
  %5840 = load ptr, ptr %2, align 8, !tbaa !5
  %5841 = getelementptr inbounds %struct.DState, ptr %5840, i32 0, i32 59
  store i32 %5839, ptr %5841, align 8, !tbaa !32
  %5842 = load i32, ptr %28, align 4, !tbaa !37
  %5843 = load ptr, ptr %2, align 8, !tbaa !5
  %5844 = getelementptr inbounds %struct.DState, ptr %5843, i32 0, i32 60
  store i32 %5842, ptr %5844, align 4, !tbaa !33
  %5845 = load ptr, ptr %29, align 8, !tbaa !5
  %5846 = load ptr, ptr %2, align 8, !tbaa !5
  %5847 = getelementptr inbounds %struct.DState, ptr %5846, i32 0, i32 61
  store ptr %5845, ptr %5847, align 8, !tbaa !34
  %5848 = load ptr, ptr %30, align 8, !tbaa !5
  %5849 = load ptr, ptr %2, align 8, !tbaa !5
  %5850 = getelementptr inbounds %struct.DState, ptr %5849, i32 0, i32 62
  store ptr %5848, ptr %5850, align 8, !tbaa !35
  %5851 = load ptr, ptr %31, align 8, !tbaa !5
  %5852 = load ptr, ptr %2, align 8, !tbaa !5
  %5853 = getelementptr inbounds %struct.DState, ptr %5852, i32 0, i32 63
  store ptr %5851, ptr %5853, align 8, !tbaa !36
  %5854 = load i32, ptr %4, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #3
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #3
  ret i32 %5854
}

; Function Attrs: nounwind uwtable
declare hidden void @makeMaps_d(ptr noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @BZ2_hbCreateDecodeTables(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
declare dso_local void @BZ2_bz__AssertH__fail(i32 noundef) #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint 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 = { 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 #3 = { 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/C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"", !6, i64 0, !11, i64 8, !7, i64 12, !11, i64 16, !7, i64 20, !11, i64 24, !11, i64 28, !11, i64 32, !11, i64 36, !11, i64 40, !7, i64 44, !11, i64 48, !11, i64 52, !11, i64 56, !11, i64 60, !11, i64 64, !7, i64 68, !11, i64 1092, !7, i64 1096, !7, i64 2124, !6, i64 3152, !6, i64 3160, !6, i64 3168, !11, i64 3176, !11, i64 3180, !11, i64 3184, !11, i64 3188, !11, i64 3192, !7, i64 3196, !7, i64 3452, !7, i64 3468, !7, i64 3724, !7, i64 7820, !7, i64 7884, !7, i64 25886, !7, i64 43888, !7, i64 45436, !7, i64 51628, !7, i64 57820, !7, i64 64012, !11, i64 64036, !11, i64 64040, !11, i64 64044, !11, i64 64048, !11, i64 64052, !11, i64 64056, !11, i64 64060, !11, i64 64064, !11, i64 64068, !11, i64 64072, !11, i64 64076, !11, i64 64080, !11, i64 64084, !11, i64 64088, !11, i64 64092, !11, i64 64096, !11, i64 64100, !11, i64 64104, !11, i64 64108, !11, i64 64112, !11, i64 64116, !6, i64 64120, !6, i64 64128, !6, i64 64136}
!11 = !{!"int", !7, i64 0}
!12 = !{!10, !11, i64 8}
!13 = !{!10, !11, i64 64036}
!14 = !{!10, !11, i64 64040}
!15 = !{!10, !11, i64 64044}
!16 = !{!10, !11, i64 64048}
!17 = !{!10, !11, i64 64052}
!18 = !{!10, !11, i64 64056}
!19 = !{!10, !11, i64 64060}
!20 = !{!10, !11, i64 64064}
!21 = !{!10, !11, i64 64068}
!22 = !{!10, !11, i64 64072}
!23 = !{!10, !11, i64 64076}
!24 = !{!10, !11, i64 64080}
!25 = !{!10, !11, i64 64084}
!26 = !{!10, !11, i64 64088}
!27 = !{!10, !11, i64 64092}
!28 = !{!10, !11, i64 64096}
!29 = !{!10, !11, i64 64100}
!30 = !{!10, !11, i64 64104}
!31 = !{!10, !11, i64 64108}
!32 = !{!10, !11, i64 64112}
!33 = !{!10, !11, i64 64116}
!34 = !{!10, !6, i64 64120}
!35 = !{!10, !6, i64 64128}
!36 = !{!10, !6, i64 64136}
!37 = !{!11, !11, i64 0}
!38 = !{!10, !11, i64 36}
!39 = !{!10, !11, i64 32}
!40 = !{!7, !7, i64 0}
!41 = !{!42, !11, i64 8}
!42 = !{!"", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !6, i64 24, !11, i64 32, !11, i64 36, !11, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72}
!43 = !{!42, !6, i64 0}
!44 = !{!42, !11, i64 12}
!45 = !{!42, !11, i64 16}
!46 = !{!10, !11, i64 40}
!47 = !{!10, !7, i64 44}
!48 = !{!42, !6, i64 56}
!49 = !{!42, !6, i64 72}
!50 = !{!10, !6, i64 3160}
!51 = !{!10, !6, i64 3168}
!52 = !{!10, !6, i64 3152}
!53 = !{!10, !11, i64 48}
!54 = !{!10, !11, i64 52}
!55 = !{!10, !11, i64 3176}
!56 = !{!10, !7, i64 20}
!57 = !{!10, !11, i64 56}
!58 = distinct !{!58, !59}
!59 = !{!"llvm.loop.mustprogress"}
!60 = distinct !{!60, !59}
!61 = distinct !{!61, !59}
!62 = distinct !{!62, !59}
!63 = !{!10, !11, i64 3192}
!64 = distinct !{!64, !59}
!65 = distinct !{!65, !59}
!66 = distinct !{!66, !59}
!67 = distinct !{!67, !59}
!68 = distinct !{!68, !59}
!69 = distinct !{!69, !59}
!70 = distinct !{!70, !59}
!71 = distinct !{!71, !59}
!72 = distinct !{!72, !59}
!73 = distinct !{!73, !59}
!74 = distinct !{!74, !59}
!75 = distinct !{!75, !59}
!76 = !{!77, !77, i64 0}
!77 = !{!"short", !7, i64 0}
!78 = distinct !{!78, !59}
!79 = distinct !{!79, !59}
!80 = distinct !{!80, !59}
!81 = distinct !{!81, !59}
!82 = distinct !{!82, !59}
!83 = distinct !{!83, !59}
!84 = distinct !{!84, !59}
!85 = distinct !{!85, !59}
!86 = distinct !{!86, !59}
!87 = distinct !{!87, !59}
!88 = distinct !{!88, !59}
!89 = !{!10, !11, i64 16}
!90 = !{!10, !7, i64 12}
!91 = !{!10, !11, i64 3184}
!92 = distinct !{!92, !59}
!93 = distinct !{!93, !59}
!94 = distinct !{!94, !59}
!95 = !{!10, !11, i64 60}
!96 = !{!10, !11, i64 1092}
!97 = !{!10, !11, i64 24}
!98 = !{!10, !11, i64 28}
!99 = !{!10, !11, i64 64}
!100 = distinct !{!100, !59}
!101 = !{!10, !11, i64 3180}


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

@BZ2_rNums = external dso_local local_unnamed_addr global [512 x i32], align 16

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

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

; Function Attrs: inlinehint nounwind uwtable
declare dso_local i32 @BZ2_indexIntoF(i32 noundef, ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @BZ2_decompress(ptr noundef %0) local_unnamed_addr #2 {
  %2 = alloca [6 x i8], align 16
  %3 = load ptr, ptr %0, align 8, !tbaa !5
  %4 = getelementptr inbounds i8, ptr %0, i64 8
  %5 = load i32, ptr %4, align 8, !tbaa !11
  %6 = icmp eq i32 %5, 10
  %7 = getelementptr inbounds i8, ptr %0, i64 64036
  br i1 %6, label %.thread, label %10

.thread:                                          ; preds = %1
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(108) %7, i8 0, i64 108, i1 false)
  store i32 10, ptr %4, align 8, !tbaa !11
  %8 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted = load i32, ptr %8, align 4, !tbaa !12
  %9 = icmp sgt i32 %.promoted, 7
  br i1 %9, label %.._crit_edge_crit_edge, label %.lr.ph

10:                                               ; preds = %1
  %.pre = load i32, ptr %7, align 4, !tbaa !13
  %.phi.trans.insert2650 = getelementptr inbounds i8, ptr %0, i64 64040
  %.pre2651 = load i32, ptr %.phi.trans.insert2650, align 8, !tbaa !14
  %.phi.trans.insert2652 = getelementptr inbounds i8, ptr %0, i64 64044
  %.pre2653 = load i32, ptr %.phi.trans.insert2652, align 4, !tbaa !15
  %.phi.trans.insert2654 = getelementptr inbounds i8, ptr %0, i64 64048
  %.pre2655 = load i32, ptr %.phi.trans.insert2654, align 8, !tbaa !16
  %.phi.trans.insert2656 = getelementptr inbounds i8, ptr %0, i64 64052
  %.pre2657 = load i32, ptr %.phi.trans.insert2656, align 4, !tbaa !17
  %.phi.trans.insert2658 = getelementptr inbounds i8, ptr %0, i64 64056
  %.pre2659 = load i32, ptr %.phi.trans.insert2658, align 8, !tbaa !18
  %.phi.trans.insert2660 = getelementptr inbounds i8, ptr %0, i64 64060
  %.pre2661 = load i32, ptr %.phi.trans.insert2660, align 4, !tbaa !19
  %.phi.trans.insert2662 = getelementptr inbounds i8, ptr %0, i64 64064
  %.pre2663 = load i32, ptr %.phi.trans.insert2662, align 8, !tbaa !20
  %.phi.trans.insert2664 = getelementptr inbounds i8, ptr %0, i64 64068
  %.pre2665 = load i32, ptr %.phi.trans.insert2664, align 4, !tbaa !21
  %.phi.trans.insert2666 = getelementptr inbounds i8, ptr %0, i64 64072
  %.pre2667 = load i32, ptr %.phi.trans.insert2666, align 8, !tbaa !22
  %.phi.trans.insert2668 = getelementptr inbounds i8, ptr %0, i64 64076
  %.pre2669 = load i32, ptr %.phi.trans.insert2668, align 4, !tbaa !23
  %.phi.trans.insert2670 = getelementptr inbounds i8, ptr %0, i64 64080
  %.pre2671 = load i32, ptr %.phi.trans.insert2670, align 8, !tbaa !24
  %.phi.trans.insert2672 = getelementptr inbounds i8, ptr %0, i64 64084
  %.pre2673 = load i32, ptr %.phi.trans.insert2672, align 4, !tbaa !25
  %.phi.trans.insert2674 = getelementptr inbounds i8, ptr %0, i64 64088
  %.pre2675 = load i32, ptr %.phi.trans.insert2674, align 8, !tbaa !26
  %.phi.trans.insert2676 = getelementptr inbounds i8, ptr %0, i64 64092
  %.pre2677 = load i32, ptr %.phi.trans.insert2676, align 4, !tbaa !27
  %.phi.trans.insert2678 = getelementptr inbounds i8, ptr %0, i64 64096
  %.pre2679 = load i32, ptr %.phi.trans.insert2678, align 8, !tbaa !28
  %.phi.trans.insert2680 = getelementptr inbounds i8, ptr %0, i64 64100
  %.pre2681 = load i32, ptr %.phi.trans.insert2680, align 4, !tbaa !29
  %.phi.trans.insert2682 = getelementptr inbounds i8, ptr %0, i64 64104
  %.pre2683 = load i32, ptr %.phi.trans.insert2682, align 8, !tbaa !30
  %.phi.trans.insert2684 = getelementptr inbounds i8, ptr %0, i64 64108
  %.pre2685 = load i32, ptr %.phi.trans.insert2684, align 4, !tbaa !31
  %.phi.trans.insert2686 = getelementptr inbounds i8, ptr %0, i64 64112
  %.pre2687 = load i32, ptr %.phi.trans.insert2686, align 8, !tbaa !32
  %.phi.trans.insert2688 = getelementptr inbounds i8, ptr %0, i64 64116
  %.pre2689 = load i32, ptr %.phi.trans.insert2688, align 4, !tbaa !33
  %.phi.trans.insert2690 = getelementptr inbounds i8, ptr %0, i64 64120
  %.pre2691 = load ptr, ptr %.phi.trans.insert2690, align 8, !tbaa !34
  %.phi.trans.insert2692 = getelementptr inbounds i8, ptr %0, i64 64128
  %.pre2693 = load ptr, ptr %.phi.trans.insert2692, align 8, !tbaa !35
  %.phi.trans.insert2694 = getelementptr inbounds i8, ptr %0, i64 64136
  %.pre2695 = load ptr, ptr %.phi.trans.insert2694, align 8, !tbaa !36
  switch i32 %5, label %3601 [
    i32 50, label %._crit_edge2870
    i32 11, label %._crit_edge2698
    i32 12, label %._crit_edge2703
    i32 13, label %._crit_edge2708
    i32 14, label %241
    i32 15, label %._crit_edge2715
    i32 16, label %._crit_edge2720
    i32 17, label %._crit_edge2725
    i32 18, label %._crit_edge2730
    i32 19, label %._crit_edge2735
    i32 20, label %._crit_edge2740
    i32 21, label %._crit_edge2745
    i32 22, label %._crit_edge2750
    i32 23, label %._crit_edge2755
    i32 24, label %._crit_edge2760
    i32 25, label %._crit_edge2765
    i32 26, label %._crit_edge2770
    i32 27, label %._crit_edge2775
    i32 28, label %1121
    i32 29, label %1234
    i32 30, label %1328
    i32 31, label %._crit_edge2782
    i32 32, label %.preheader3339
    i32 33, label %1621
    i32 34, label %1710
    i32 35, label %._crit_edge2819
    i32 36, label %1891
    i32 37, label %._crit_edge2809
    i32 38, label %2017
    i32 39, label %._crit_edge2799
    i32 40, label %2440
    i32 41, label %._crit_edge2791
    i32 42, label %._crit_edge2830
    i32 43, label %._crit_edge2835
    i32 44, label %._crit_edge2840
    i32 45, label %._crit_edge2845
    i32 46, label %._crit_edge2850
    i32 47, label %._crit_edge2855
    i32 48, label %._crit_edge2860
    i32 49, label %._crit_edge2865
  ]

._crit_edge2870:                                  ; preds = %10
  %.phi.trans.insert2871 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2430.pre = load i32, ptr %.phi.trans.insert2871, align 4, !tbaa !12
  br label %3539

._crit_edge2865:                                  ; preds = %10
  %.phi.trans.insert2866 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2423.pre = load i32, ptr %.phi.trans.insert2866, align 4, !tbaa !12
  br label %3477

._crit_edge2860:                                  ; preds = %10
  %.phi.trans.insert2861 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2416.pre = load i32, ptr %.phi.trans.insert2861, align 4, !tbaa !12
  br label %3415

._crit_edge2855:                                  ; preds = %10
  %.phi.trans.insert2856 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2409.pre = load i32, ptr %.phi.trans.insert2856, align 4, !tbaa !12
  br label %3353

._crit_edge2850:                                  ; preds = %10
  %.phi.trans.insert2851 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2402.pre = load i32, ptr %.phi.trans.insert2851, align 4, !tbaa !12
  br label %3293

._crit_edge2845:                                  ; preds = %10
  %.phi.trans.insert2846 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2395.pre = load i32, ptr %.phi.trans.insert2846, align 4, !tbaa !12
  br label %3235

._crit_edge2840:                                  ; preds = %10
  %.phi.trans.insert2841 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2388.pre = load i32, ptr %.phi.trans.insert2841, align 4, !tbaa !12
  br label %3177

._crit_edge2835:                                  ; preds = %10
  %.phi.trans.insert2836 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2381.pre = load i32, ptr %.phi.trans.insert2836, align 4, !tbaa !12
  br label %3119

._crit_edge2830:                                  ; preds = %10
  %.phi.trans.insert2831 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2374.pre = load i32, ptr %.phi.trans.insert2831, align 4, !tbaa !12
  br label %3061

._crit_edge2819:                                  ; preds = %10
  %.phi.trans.insert2820 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2346.pre = load i32, ptr %.phi.trans.insert2820, align 4, !tbaa !12
  br label %1762

._crit_edge2809:                                  ; preds = %10
  %.phi.trans.insert2810 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2325.pre = load i32, ptr %.phi.trans.insert2810, align 4, !tbaa !12
  br label %1942

._crit_edge2799:                                  ; preds = %10
  %.phi.trans.insert2800 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2307.pre = load i32, ptr %.phi.trans.insert2800, align 4, !tbaa !12
  br label %2060

._crit_edge2791:                                  ; preds = %10
  %.phi.trans.insert2792 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2282.pre = load i32, ptr %.phi.trans.insert2792, align 4, !tbaa !12
  br label %2483

._crit_edge2782:                                  ; preds = %10
  %.phi.trans.insert2783 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2211.pre = load i32, ptr %.phi.trans.insert2783, align 4, !tbaa !12
  br label %1383

._crit_edge2775:                                  ; preds = %10
  %.phi.trans.insert2776 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2196.pre = load i32, ptr %.phi.trans.insert2776, align 4, !tbaa !12
  br label %1026

._crit_edge2770:                                  ; preds = %10
  %.phi.trans.insert2771 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2189.pre = load i32, ptr %.phi.trans.insert2771, align 4, !tbaa !12
  br label %964

._crit_edge2765:                                  ; preds = %10
  %.phi.trans.insert2766 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2182.pre = load i32, ptr %.phi.trans.insert2766, align 4, !tbaa !12
  br label %902

._crit_edge2760:                                  ; preds = %10
  %.phi.trans.insert2761 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2175.pre = load i32, ptr %.phi.trans.insert2761, align 4, !tbaa !12
  br label %841

._crit_edge2755:                                  ; preds = %10
  %.phi.trans.insert2756 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2168.pre = load i32, ptr %.phi.trans.insert2756, align 4, !tbaa !12
  br label %779

._crit_edge2750:                                  ; preds = %10
  %.phi.trans.insert2751 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2161.pre = load i32, ptr %.phi.trans.insert2751, align 4, !tbaa !12
  br label %717

._crit_edge2745:                                  ; preds = %10
  %.phi.trans.insert2746 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2154.pre = load i32, ptr %.phi.trans.insert2746, align 4, !tbaa !12
  br label %655

._crit_edge2740:                                  ; preds = %10
  %.phi.trans.insert2741 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2147.pre = load i32, ptr %.phi.trans.insert2741, align 4, !tbaa !12
  br label %593

._crit_edge2735:                                  ; preds = %10
  %.phi.trans.insert2736 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2140.pre = load i32, ptr %.phi.trans.insert2736, align 4, !tbaa !12
  br label %530

._crit_edge2730:                                  ; preds = %10
  %.phi.trans.insert2731 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2133.pre = load i32, ptr %.phi.trans.insert2731, align 4, !tbaa !12
  br label %472

._crit_edge2725:                                  ; preds = %10
  %.phi.trans.insert2726 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2126.pre = load i32, ptr %.phi.trans.insert2726, align 4, !tbaa !12
  br label %414

._crit_edge2720:                                  ; preds = %10
  %.phi.trans.insert2721 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2119.pre = load i32, ptr %.phi.trans.insert2721, align 4, !tbaa !12
  br label %356

._crit_edge2715:                                  ; preds = %10
  %.phi.trans.insert2716 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2112.pre = load i32, ptr %.phi.trans.insert2716, align 4, !tbaa !12
  br label %298

._crit_edge2708:                                  ; preds = %10
  %.phi.trans.insert2709 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2098.pre = load i32, ptr %.phi.trans.insert2709, align 4, !tbaa !12
  br label %155

._crit_edge2703:                                  ; preds = %10
  %.phi.trans.insert2704 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2091.pre = load i32, ptr %.phi.trans.insert2704, align 4, !tbaa !12
  br label %98

._crit_edge2698:                                  ; preds = %10
  %.phi.trans.insert2699 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2084.pre = load i32, ptr %.phi.trans.insert2699, align 4, !tbaa !12
  br label %41

.._crit_edge_crit_edge:                           ; preds = %.thread
  %.phi.trans.insert2696 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2697 = load i32, ptr %.phi.trans.insert2696, align 8, !tbaa !37
  br label %._crit_edge

.lr.ph:                                           ; preds = %.thread
  %11 = getelementptr inbounds i8, ptr %3, i64 8
  %12 = getelementptr inbounds i8, ptr %0, i64 32
  %13 = getelementptr inbounds i8, ptr %3, i64 12
  %14 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2083 = load i32, ptr %11, align 8, !tbaa !38
  br label %19

._crit_edge:                                      ; preds = %39, %.._crit_edge_crit_edge
  %15 = phi i32 [ %.pre2697, %.._crit_edge_crit_edge ], [ %29, %39 ]
  %.lcssa2078 = phi i32 [ %.promoted, %.._crit_edge_crit_edge ], [ %30, %39 ]
  %16 = add nsw i32 %.lcssa2078, -8
  %17 = lshr i32 %15, %16
  store i32 %16, ptr %8, align 4, !tbaa !12
  %18 = and i32 %17, 255
  %.not = icmp eq i32 %18, 66
  br i1 %.not, label %41, label %.loopexit

19:                                               ; preds = %.lr.ph, %39
  %20 = phi i32 [ %.promoted2083, %.lr.ph ], [ %32, %39 ]
  %21 = phi i32 [ %.promoted, %.lr.ph ], [ %30, %39 ]
  %22 = icmp eq i32 %20, 0
  br i1 %22, label %.loopexit, label %23

23:                                               ; preds = %19
  %24 = load i32, ptr %12, align 8, !tbaa !37
  %25 = shl i32 %24, 8
  %26 = load ptr, ptr %3, align 8, !tbaa !40
  %27 = load i8, ptr %26, align 1, !tbaa !41
  %28 = zext i8 %27 to i32
  %29 = or disjoint i32 %25, %28
  store i32 %29, ptr %12, align 8, !tbaa !37
  %30 = add nsw i32 %21, 8
  store i32 %30, ptr %8, align 4, !tbaa !12
  %31 = getelementptr inbounds i8, ptr %26, i64 1
  store ptr %31, ptr %3, align 8, !tbaa !40
  %32 = add i32 %20, -1
  store i32 %32, ptr %11, align 8, !tbaa !38
  %33 = load i32, ptr %13, align 4, !tbaa !42
  %34 = add i32 %33, 1
  store i32 %34, ptr %13, align 4, !tbaa !42
  %35 = icmp eq i32 %34, 0
  br i1 %35, label %36, label %39

36:                                               ; preds = %23
  %37 = load i32, ptr %14, align 8, !tbaa !43
  %38 = add i32 %37, 1
  store i32 %38, ptr %14, align 8, !tbaa !43
  br label %39

39:                                               ; preds = %36, %23
  %40 = icmp sgt i32 %21, -1
  br i1 %40, label %._crit_edge, label %19

41:                                               ; preds = %._crit_edge2698, %._crit_edge
  %42 = phi i32 [ %.pre, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %43 = phi i32 [ %.pre2651, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %44 = phi i32 [ %.pre2653, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %45 = phi i32 [ %.pre2655, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %46 = phi i32 [ %.pre2657, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %47 = phi i32 [ %.pre2659, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %48 = phi i32 [ %.pre2661, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %49 = phi i32 [ %.pre2663, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %50 = phi i32 [ %.pre2665, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %51 = phi i32 [ %.pre2667, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %52 = phi i32 [ %.pre2669, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %53 = phi i32 [ %.pre2671, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %54 = phi i32 [ %.pre2673, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %55 = phi i32 [ %.pre2675, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %56 = phi i32 [ %.pre2677, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %57 = phi i32 [ %.pre2679, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %58 = phi i32 [ %.pre2681, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %59 = phi i32 [ %.pre2683, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %60 = phi i32 [ %.pre2685, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %61 = phi i32 [ %.pre2687, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %62 = phi i32 [ %.pre2689, %._crit_edge2698 ], [ 0, %._crit_edge ]
  %63 = phi ptr [ %.pre2691, %._crit_edge2698 ], [ null, %._crit_edge ]
  %64 = phi ptr [ %.pre2693, %._crit_edge2698 ], [ null, %._crit_edge ]
  %65 = phi ptr [ %.pre2695, %._crit_edge2698 ], [ null, %._crit_edge ]
  %.promoted2084 = phi i32 [ %.promoted2084.pre, %._crit_edge2698 ], [ %16, %._crit_edge ]
  store i32 11, ptr %4, align 8, !tbaa !11
  %66 = getelementptr inbounds i8, ptr %0, i64 36
  %67 = icmp sgt i32 %.promoted2084, 7
  br i1 %67, label %.._crit_edge2087_crit_edge, label %.lr.ph2086

.._crit_edge2087_crit_edge:                       ; preds = %41
  %.phi.trans.insert2701 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2702 = load i32, ptr %.phi.trans.insert2701, align 8, !tbaa !37
  br label %._crit_edge2087

.lr.ph2086:                                       ; preds = %41
  %68 = getelementptr inbounds i8, ptr %3, i64 8
  %69 = getelementptr inbounds i8, ptr %0, i64 32
  %70 = getelementptr inbounds i8, ptr %3, i64 12
  %71 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2090 = load i32, ptr %68, align 8, !tbaa !38
  br label %76

._crit_edge2087:                                  ; preds = %96, %.._crit_edge2087_crit_edge
  %72 = phi i32 [ %.pre2702, %.._crit_edge2087_crit_edge ], [ %86, %96 ]
  %.lcssa2074 = phi i32 [ %.promoted2084, %.._crit_edge2087_crit_edge ], [ %87, %96 ]
  %73 = add nsw i32 %.lcssa2074, -8
  %74 = lshr i32 %72, %73
  store i32 %73, ptr %66, align 4, !tbaa !12
  %75 = and i32 %74, 255
  %.not1801 = icmp eq i32 %75, 90
  br i1 %.not1801, label %98, label %.loopexit

76:                                               ; preds = %.lr.ph2086, %96
  %77 = phi i32 [ %.promoted2090, %.lr.ph2086 ], [ %89, %96 ]
  %78 = phi i32 [ %.promoted2084, %.lr.ph2086 ], [ %87, %96 ]
  %79 = icmp eq i32 %77, 0
  br i1 %79, label %.loopexit, label %80

80:                                               ; preds = %76
  %81 = load i32, ptr %69, align 8, !tbaa !37
  %82 = shl i32 %81, 8
  %83 = load ptr, ptr %3, align 8, !tbaa !40
  %84 = load i8, ptr %83, align 1, !tbaa !41
  %85 = zext i8 %84 to i32
  %86 = or disjoint i32 %82, %85
  store i32 %86, ptr %69, align 8, !tbaa !37
  %87 = add nsw i32 %78, 8
  store i32 %87, ptr %66, align 4, !tbaa !12
  %88 = getelementptr inbounds i8, ptr %83, i64 1
  store ptr %88, ptr %3, align 8, !tbaa !40
  %89 = add i32 %77, -1
  store i32 %89, ptr %68, align 8, !tbaa !38
  %90 = load i32, ptr %70, align 4, !tbaa !42
  %91 = add i32 %90, 1
  store i32 %91, ptr %70, align 4, !tbaa !42
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %93, label %96

93:                                               ; preds = %80
  %94 = load i32, ptr %71, align 8, !tbaa !43
  %95 = add i32 %94, 1
  store i32 %95, ptr %71, align 8, !tbaa !43
  br label %96

96:                                               ; preds = %93, %80
  %97 = icmp sgt i32 %78, -1
  br i1 %97, label %._crit_edge2087, label %76

98:                                               ; preds = %._crit_edge2703, %._crit_edge2087
  %99 = phi i32 [ %.pre, %._crit_edge2703 ], [ %42, %._crit_edge2087 ]
  %100 = phi i32 [ %.pre2651, %._crit_edge2703 ], [ %43, %._crit_edge2087 ]
  %101 = phi i32 [ %.pre2653, %._crit_edge2703 ], [ %44, %._crit_edge2087 ]
  %102 = phi i32 [ %.pre2655, %._crit_edge2703 ], [ %45, %._crit_edge2087 ]
  %103 = phi i32 [ %.pre2657, %._crit_edge2703 ], [ %46, %._crit_edge2087 ]
  %104 = phi i32 [ %.pre2659, %._crit_edge2703 ], [ %47, %._crit_edge2087 ]
  %105 = phi i32 [ %.pre2661, %._crit_edge2703 ], [ %48, %._crit_edge2087 ]
  %106 = phi i32 [ %.pre2663, %._crit_edge2703 ], [ %49, %._crit_edge2087 ]
  %107 = phi i32 [ %.pre2665, %._crit_edge2703 ], [ %50, %._crit_edge2087 ]
  %108 = phi i32 [ %.pre2667, %._crit_edge2703 ], [ %51, %._crit_edge2087 ]
  %109 = phi i32 [ %.pre2669, %._crit_edge2703 ], [ %52, %._crit_edge2087 ]
  %110 = phi i32 [ %.pre2671, %._crit_edge2703 ], [ %53, %._crit_edge2087 ]
  %111 = phi i32 [ %.pre2673, %._crit_edge2703 ], [ %54, %._crit_edge2087 ]
  %112 = phi i32 [ %.pre2675, %._crit_edge2703 ], [ %55, %._crit_edge2087 ]
  %113 = phi i32 [ %.pre2677, %._crit_edge2703 ], [ %56, %._crit_edge2087 ]
  %114 = phi i32 [ %.pre2679, %._crit_edge2703 ], [ %57, %._crit_edge2087 ]
  %115 = phi i32 [ %.pre2681, %._crit_edge2703 ], [ %58, %._crit_edge2087 ]
  %116 = phi i32 [ %.pre2683, %._crit_edge2703 ], [ %59, %._crit_edge2087 ]
  %117 = phi i32 [ %.pre2685, %._crit_edge2703 ], [ %60, %._crit_edge2087 ]
  %118 = phi i32 [ %.pre2687, %._crit_edge2703 ], [ %61, %._crit_edge2087 ]
  %119 = phi i32 [ %.pre2689, %._crit_edge2703 ], [ %62, %._crit_edge2087 ]
  %120 = phi ptr [ %.pre2691, %._crit_edge2703 ], [ %63, %._crit_edge2087 ]
  %121 = phi ptr [ %.pre2693, %._crit_edge2703 ], [ %64, %._crit_edge2087 ]
  %122 = phi ptr [ %.pre2695, %._crit_edge2703 ], [ %65, %._crit_edge2087 ]
  %.promoted2091 = phi i32 [ %.promoted2091.pre, %._crit_edge2703 ], [ %73, %._crit_edge2087 ]
  store i32 12, ptr %4, align 8, !tbaa !11
  %123 = getelementptr inbounds i8, ptr %0, i64 36
  %124 = icmp sgt i32 %.promoted2091, 7
  br i1 %124, label %.._crit_edge2094_crit_edge, label %.lr.ph2093

.._crit_edge2094_crit_edge:                       ; preds = %98
  %.phi.trans.insert2706 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2707 = load i32, ptr %.phi.trans.insert2706, align 8, !tbaa !37
  br label %._crit_edge2094

.lr.ph2093:                                       ; preds = %98
  %125 = getelementptr inbounds i8, ptr %3, i64 8
  %126 = getelementptr inbounds i8, ptr %0, i64 32
  %127 = getelementptr inbounds i8, ptr %3, i64 12
  %128 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2097 = load i32, ptr %125, align 8, !tbaa !38
  br label %133

._crit_edge2094:                                  ; preds = %153, %.._crit_edge2094_crit_edge
  %129 = phi i32 [ %.pre2707, %.._crit_edge2094_crit_edge ], [ %143, %153 ]
  %.lcssa2070 = phi i32 [ %.promoted2091, %.._crit_edge2094_crit_edge ], [ %144, %153 ]
  %130 = add nsw i32 %.lcssa2070, -8
  %131 = lshr i32 %129, %130
  store i32 %130, ptr %123, align 4, !tbaa !12
  %132 = and i32 %131, 255
  %.not1802 = icmp eq i32 %132, 104
  br i1 %.not1802, label %155, label %.loopexit

133:                                              ; preds = %.lr.ph2093, %153
  %134 = phi i32 [ %.promoted2097, %.lr.ph2093 ], [ %146, %153 ]
  %135 = phi i32 [ %.promoted2091, %.lr.ph2093 ], [ %144, %153 ]
  %136 = icmp eq i32 %134, 0
  br i1 %136, label %.loopexit, label %137

137:                                              ; preds = %133
  %138 = load i32, ptr %126, align 8, !tbaa !37
  %139 = shl i32 %138, 8
  %140 = load ptr, ptr %3, align 8, !tbaa !40
  %141 = load i8, ptr %140, align 1, !tbaa !41
  %142 = zext i8 %141 to i32
  %143 = or disjoint i32 %139, %142
  store i32 %143, ptr %126, align 8, !tbaa !37
  %144 = add nsw i32 %135, 8
  store i32 %144, ptr %123, align 4, !tbaa !12
  %145 = getelementptr inbounds i8, ptr %140, i64 1
  store ptr %145, ptr %3, align 8, !tbaa !40
  %146 = add i32 %134, -1
  store i32 %146, ptr %125, align 8, !tbaa !38
  %147 = load i32, ptr %127, align 4, !tbaa !42
  %148 = add i32 %147, 1
  store i32 %148, ptr %127, align 4, !tbaa !42
  %149 = icmp eq i32 %148, 0
  br i1 %149, label %150, label %153

150:                                              ; preds = %137
  %151 = load i32, ptr %128, align 8, !tbaa !43
  %152 = add i32 %151, 1
  store i32 %152, ptr %128, align 8, !tbaa !43
  br label %153

153:                                              ; preds = %150, %137
  %154 = icmp sgt i32 %135, -1
  br i1 %154, label %._crit_edge2094, label %133

155:                                              ; preds = %._crit_edge2708, %._crit_edge2094
  %156 = phi i32 [ %.pre, %._crit_edge2708 ], [ %99, %._crit_edge2094 ]
  %157 = phi i32 [ %.pre2651, %._crit_edge2708 ], [ %100, %._crit_edge2094 ]
  %158 = phi i32 [ %.pre2653, %._crit_edge2708 ], [ %101, %._crit_edge2094 ]
  %159 = phi i32 [ %.pre2655, %._crit_edge2708 ], [ %102, %._crit_edge2094 ]
  %160 = phi i32 [ %.pre2657, %._crit_edge2708 ], [ %103, %._crit_edge2094 ]
  %161 = phi i32 [ %.pre2659, %._crit_edge2708 ], [ %104, %._crit_edge2094 ]
  %162 = phi i32 [ %.pre2661, %._crit_edge2708 ], [ %105, %._crit_edge2094 ]
  %163 = phi i32 [ %.pre2663, %._crit_edge2708 ], [ %106, %._crit_edge2094 ]
  %164 = phi i32 [ %.pre2665, %._crit_edge2708 ], [ %107, %._crit_edge2094 ]
  %165 = phi i32 [ %.pre2667, %._crit_edge2708 ], [ %108, %._crit_edge2094 ]
  %166 = phi i32 [ %.pre2669, %._crit_edge2708 ], [ %109, %._crit_edge2094 ]
  %167 = phi i32 [ %.pre2671, %._crit_edge2708 ], [ %110, %._crit_edge2094 ]
  %168 = phi i32 [ %.pre2673, %._crit_edge2708 ], [ %111, %._crit_edge2094 ]
  %169 = phi i32 [ %.pre2675, %._crit_edge2708 ], [ %112, %._crit_edge2094 ]
  %170 = phi i32 [ %.pre2677, %._crit_edge2708 ], [ %113, %._crit_edge2094 ]
  %171 = phi i32 [ %.pre2679, %._crit_edge2708 ], [ %114, %._crit_edge2094 ]
  %172 = phi i32 [ %.pre2681, %._crit_edge2708 ], [ %115, %._crit_edge2094 ]
  %173 = phi i32 [ %.pre2683, %._crit_edge2708 ], [ %116, %._crit_edge2094 ]
  %174 = phi i32 [ %.pre2685, %._crit_edge2708 ], [ %117, %._crit_edge2094 ]
  %175 = phi i32 [ %.pre2687, %._crit_edge2708 ], [ %118, %._crit_edge2094 ]
  %176 = phi i32 [ %.pre2689, %._crit_edge2708 ], [ %119, %._crit_edge2094 ]
  %177 = phi ptr [ %.pre2691, %._crit_edge2708 ], [ %120, %._crit_edge2094 ]
  %178 = phi ptr [ %.pre2693, %._crit_edge2708 ], [ %121, %._crit_edge2094 ]
  %179 = phi ptr [ %.pre2695, %._crit_edge2708 ], [ %122, %._crit_edge2094 ]
  %.promoted2098 = phi i32 [ %.promoted2098.pre, %._crit_edge2708 ], [ %130, %._crit_edge2094 ]
  store i32 13, ptr %4, align 8, !tbaa !11
  %180 = getelementptr inbounds i8, ptr %0, i64 36
  %181 = icmp sgt i32 %.promoted2098, 7
  br i1 %181, label %.._crit_edge2101_crit_edge, label %.lr.ph2100

.._crit_edge2101_crit_edge:                       ; preds = %155
  %.phi.trans.insert2711 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2712 = load i32, ptr %.phi.trans.insert2711, align 8, !tbaa !37
  br label %._crit_edge2101

.lr.ph2100:                                       ; preds = %155
  %182 = getelementptr inbounds i8, ptr %3, i64 8
  %183 = getelementptr inbounds i8, ptr %0, i64 32
  %184 = getelementptr inbounds i8, ptr %3, i64 12
  %185 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2104 = load i32, ptr %182, align 8, !tbaa !38
  br label %192

._crit_edge2101:                                  ; preds = %212, %.._crit_edge2101_crit_edge
  %186 = phi i32 [ %.pre2712, %.._crit_edge2101_crit_edge ], [ %202, %212 ]
  %.lcssa2066 = phi i32 [ %.promoted2098, %.._crit_edge2101_crit_edge ], [ %203, %212 ]
  %187 = add nsw i32 %.lcssa2066, -8
  %188 = lshr i32 %186, %187
  %189 = and i32 %188, 255
  store i32 %187, ptr %180, align 4, !tbaa !12
  %190 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %189, ptr %190, align 8, !tbaa !44
  %191 = add nsw i32 %189, -58
  %or.cond1841 = icmp ult i32 %191, -9
  br i1 %or.cond1841, label %.loopexit, label %214

192:                                              ; preds = %.lr.ph2100, %212
  %193 = phi i32 [ %.promoted2104, %.lr.ph2100 ], [ %205, %212 ]
  %194 = phi i32 [ %.promoted2098, %.lr.ph2100 ], [ %203, %212 ]
  %195 = icmp eq i32 %193, 0
  br i1 %195, label %.loopexit, label %196

196:                                              ; preds = %192
  %197 = load i32, ptr %183, align 8, !tbaa !37
  %198 = shl i32 %197, 8
  %199 = load ptr, ptr %3, align 8, !tbaa !40
  %200 = load i8, ptr %199, align 1, !tbaa !41
  %201 = zext i8 %200 to i32
  %202 = or disjoint i32 %198, %201
  store i32 %202, ptr %183, align 8, !tbaa !37
  %203 = add nsw i32 %194, 8
  store i32 %203, ptr %180, align 4, !tbaa !12
  %204 = getelementptr inbounds i8, ptr %199, i64 1
  store ptr %204, ptr %3, align 8, !tbaa !40
  %205 = add i32 %193, -1
  store i32 %205, ptr %182, align 8, !tbaa !38
  %206 = load i32, ptr %184, align 4, !tbaa !42
  %207 = add i32 %206, 1
  store i32 %207, ptr %184, align 4, !tbaa !42
  %208 = icmp eq i32 %207, 0
  br i1 %208, label %209, label %212

209:                                              ; preds = %196
  %210 = load i32, ptr %185, align 8, !tbaa !43
  %211 = add i32 %210, 1
  store i32 %211, ptr %185, align 8, !tbaa !43
  br label %212

212:                                              ; preds = %209, %196
  %213 = icmp sgt i32 %194, -1
  br i1 %213, label %._crit_edge2101, label %192

214:                                              ; preds = %._crit_edge2101
  %215 = add nsw i32 %189, -48
  store i32 %215, ptr %190, align 8, !tbaa !44
  %216 = getelementptr inbounds i8, ptr %0, i64 44
  %217 = load i8, ptr %216, align 4, !tbaa !45
  %.not1803 = icmp eq i8 %217, 0
  %218 = getelementptr inbounds i8, ptr %3, i64 56
  %219 = load ptr, ptr %218, align 8, !tbaa !46
  %220 = getelementptr inbounds i8, ptr %3, i64 72
  %221 = load ptr, ptr %220, align 8, !tbaa !47
  br i1 %.not1803, label %236, label %222

222:                                              ; preds = %214
  %223 = mul nuw nsw i32 %215, 200000
  %224 = tail call ptr %219(ptr noundef %221, i32 noundef %223, i32 noundef 1) #5
  %225 = getelementptr inbounds i8, ptr %0, i64 3160
  store ptr %224, ptr %225, align 8, !tbaa !48
  %226 = load ptr, ptr %218, align 8, !tbaa !46
  %227 = load ptr, ptr %220, align 8, !tbaa !47
  %228 = load i32, ptr %190, align 8, !tbaa !44
  %229 = mul nsw i32 %228, 100000
  %230 = ashr exact i32 %229, 1
  %231 = tail call ptr %226(ptr noundef %227, i32 noundef %230, i32 noundef 1) #5
  %232 = getelementptr inbounds i8, ptr %0, i64 3168
  store ptr %231, ptr %232, align 8, !tbaa !49
  %233 = load ptr, ptr %225, align 8, !tbaa !48
  %234 = icmp eq ptr %233, null
  %235 = icmp eq ptr %231, null
  %or.cond1842 = select i1 %234, i1 true, i1 %235
  br i1 %or.cond1842, label %.loopexit, label %241

236:                                              ; preds = %214
  %237 = mul nuw nsw i32 %215, 400000
  %238 = tail call ptr %219(ptr noundef %221, i32 noundef %237, i32 noundef 1) #5
  %239 = getelementptr inbounds i8, ptr %0, i64 3152
  store ptr %238, ptr %239, align 8, !tbaa !50
  %240 = icmp eq ptr %238, null
  br i1 %240, label %.loopexit, label %241

241:                                              ; preds = %222, %236, %10
  %242 = phi i32 [ %156, %222 ], [ %156, %236 ], [ %.pre, %10 ]
  %243 = phi i32 [ %157, %222 ], [ %157, %236 ], [ %.pre2651, %10 ]
  %244 = phi i32 [ %158, %222 ], [ %158, %236 ], [ %.pre2653, %10 ]
  %245 = phi i32 [ %159, %222 ], [ %159, %236 ], [ %.pre2655, %10 ]
  %246 = phi i32 [ %160, %222 ], [ %160, %236 ], [ %.pre2657, %10 ]
  %247 = phi i32 [ %161, %222 ], [ %161, %236 ], [ %.pre2659, %10 ]
  %248 = phi i32 [ %162, %222 ], [ %162, %236 ], [ %.pre2661, %10 ]
  %249 = phi i32 [ %163, %222 ], [ %163, %236 ], [ %.pre2663, %10 ]
  %250 = phi i32 [ %164, %222 ], [ %164, %236 ], [ %.pre2665, %10 ]
  %251 = phi i32 [ %165, %222 ], [ %165, %236 ], [ %.pre2667, %10 ]
  %252 = phi i32 [ %166, %222 ], [ %166, %236 ], [ %.pre2669, %10 ]
  %253 = phi i32 [ %167, %222 ], [ %167, %236 ], [ %.pre2671, %10 ]
  %254 = phi i32 [ %168, %222 ], [ %168, %236 ], [ %.pre2673, %10 ]
  %255 = phi i32 [ %169, %222 ], [ %169, %236 ], [ %.pre2675, %10 ]
  %256 = phi i32 [ %170, %222 ], [ %170, %236 ], [ %.pre2677, %10 ]
  %257 = phi i32 [ %171, %222 ], [ %171, %236 ], [ %.pre2679, %10 ]
  %258 = phi i32 [ %172, %222 ], [ %172, %236 ], [ %.pre2681, %10 ]
  %259 = phi i32 [ %173, %222 ], [ %173, %236 ], [ %.pre2683, %10 ]
  %260 = phi i32 [ %174, %222 ], [ %174, %236 ], [ %.pre2685, %10 ]
  %261 = phi i32 [ %175, %222 ], [ %175, %236 ], [ %.pre2687, %10 ]
  %262 = phi i32 [ %176, %222 ], [ %176, %236 ], [ %.pre2689, %10 ]
  %263 = phi ptr [ %177, %222 ], [ %177, %236 ], [ %.pre2691, %10 ]
  %264 = phi ptr [ %178, %222 ], [ %178, %236 ], [ %.pre2693, %10 ]
  %265 = phi ptr [ %179, %222 ], [ %179, %236 ], [ %.pre2695, %10 ]
  store i32 14, ptr %4, align 8, !tbaa !11
  %266 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2105 = load i32, ptr %266, align 4, !tbaa !12
  %267 = icmp sgt i32 %.promoted2105, 7
  br i1 %267, label %.._crit_edge2108_crit_edge, label %.lr.ph2107

.._crit_edge2108_crit_edge:                       ; preds = %241
  %.phi.trans.insert2713 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2714 = load i32, ptr %.phi.trans.insert2713, align 8, !tbaa !37
  br label %._crit_edge2108

.lr.ph2107:                                       ; preds = %241
  %268 = load ptr, ptr %0, align 8, !tbaa !5
  %269 = getelementptr inbounds i8, ptr %268, i64 8
  %270 = getelementptr inbounds i8, ptr %0, i64 32
  %271 = getelementptr inbounds i8, ptr %268, i64 12
  %272 = getelementptr inbounds i8, ptr %268, i64 16
  %.promoted2111 = load i32, ptr %269, align 8, !tbaa !38
  br label %276

._crit_edge2108:                                  ; preds = %296, %.._crit_edge2108_crit_edge
  %273 = phi i32 [ %.pre2714, %.._crit_edge2108_crit_edge ], [ %286, %296 ]
  %.lcssa2062 = phi i32 [ %.promoted2105, %.._crit_edge2108_crit_edge ], [ %287, %296 ]
  %274 = add nsw i32 %.lcssa2062, -8
  %275 = lshr i32 %273, %274
  store i32 %274, ptr %266, align 4, !tbaa !12
  %trunc = trunc i32 %275 to i8
  switch i8 %trunc, label %.loopexit [
    i8 23, label %3061
    i8 49, label %298
  ]

276:                                              ; preds = %.lr.ph2107, %296
  %277 = phi i32 [ %.promoted2111, %.lr.ph2107 ], [ %289, %296 ]
  %278 = phi i32 [ %.promoted2105, %.lr.ph2107 ], [ %287, %296 ]
  %279 = icmp eq i32 %277, 0
  br i1 %279, label %.loopexit, label %280

280:                                              ; preds = %276
  %281 = load i32, ptr %270, align 8, !tbaa !37
  %282 = shl i32 %281, 8
  %283 = load ptr, ptr %268, align 8, !tbaa !40
  %284 = load i8, ptr %283, align 1, !tbaa !41
  %285 = zext i8 %284 to i32
  %286 = or disjoint i32 %282, %285
  store i32 %286, ptr %270, align 8, !tbaa !37
  %287 = add nsw i32 %278, 8
  store i32 %287, ptr %266, align 4, !tbaa !12
  %288 = getelementptr inbounds i8, ptr %283, i64 1
  store ptr %288, ptr %268, align 8, !tbaa !40
  %289 = add i32 %277, -1
  store i32 %289, ptr %269, align 8, !tbaa !38
  %290 = load i32, ptr %271, align 4, !tbaa !42
  %291 = add i32 %290, 1
  store i32 %291, ptr %271, align 4, !tbaa !42
  %292 = icmp eq i32 %291, 0
  br i1 %292, label %293, label %296

293:                                              ; preds = %280
  %294 = load i32, ptr %272, align 8, !tbaa !43
  %295 = add i32 %294, 1
  store i32 %295, ptr %272, align 8, !tbaa !43
  br label %296

296:                                              ; preds = %293, %280
  %297 = icmp sgt i32 %278, -1
  br i1 %297, label %._crit_edge2108, label %276

298:                                              ; preds = %._crit_edge2715, %._crit_edge2108
  %299 = phi i32 [ %.pre, %._crit_edge2715 ], [ %242, %._crit_edge2108 ]
  %300 = phi i32 [ %.pre2651, %._crit_edge2715 ], [ %243, %._crit_edge2108 ]
  %301 = phi i32 [ %.pre2653, %._crit_edge2715 ], [ %244, %._crit_edge2108 ]
  %302 = phi i32 [ %.pre2655, %._crit_edge2715 ], [ %245, %._crit_edge2108 ]
  %303 = phi i32 [ %.pre2657, %._crit_edge2715 ], [ %246, %._crit_edge2108 ]
  %304 = phi i32 [ %.pre2659, %._crit_edge2715 ], [ %247, %._crit_edge2108 ]
  %305 = phi i32 [ %.pre2661, %._crit_edge2715 ], [ %248, %._crit_edge2108 ]
  %306 = phi i32 [ %.pre2663, %._crit_edge2715 ], [ %249, %._crit_edge2108 ]
  %307 = phi i32 [ %.pre2665, %._crit_edge2715 ], [ %250, %._crit_edge2108 ]
  %308 = phi i32 [ %.pre2667, %._crit_edge2715 ], [ %251, %._crit_edge2108 ]
  %309 = phi i32 [ %.pre2669, %._crit_edge2715 ], [ %252, %._crit_edge2108 ]
  %310 = phi i32 [ %.pre2671, %._crit_edge2715 ], [ %253, %._crit_edge2108 ]
  %311 = phi i32 [ %.pre2673, %._crit_edge2715 ], [ %254, %._crit_edge2108 ]
  %312 = phi i32 [ %.pre2675, %._crit_edge2715 ], [ %255, %._crit_edge2108 ]
  %313 = phi i32 [ %.pre2677, %._crit_edge2715 ], [ %256, %._crit_edge2108 ]
  %314 = phi i32 [ %.pre2679, %._crit_edge2715 ], [ %257, %._crit_edge2108 ]
  %315 = phi i32 [ %.pre2681, %._crit_edge2715 ], [ %258, %._crit_edge2108 ]
  %316 = phi i32 [ %.pre2683, %._crit_edge2715 ], [ %259, %._crit_edge2108 ]
  %317 = phi i32 [ %.pre2685, %._crit_edge2715 ], [ %260, %._crit_edge2108 ]
  %318 = phi i32 [ %.pre2687, %._crit_edge2715 ], [ %261, %._crit_edge2108 ]
  %319 = phi i32 [ %.pre2689, %._crit_edge2715 ], [ %262, %._crit_edge2108 ]
  %320 = phi ptr [ %.pre2691, %._crit_edge2715 ], [ %263, %._crit_edge2108 ]
  %321 = phi ptr [ %.pre2693, %._crit_edge2715 ], [ %264, %._crit_edge2108 ]
  %322 = phi ptr [ %.pre2695, %._crit_edge2715 ], [ %265, %._crit_edge2108 ]
  %.promoted2112 = phi i32 [ %.promoted2112.pre, %._crit_edge2715 ], [ %274, %._crit_edge2108 ]
  store i32 15, ptr %4, align 8, !tbaa !11
  %323 = getelementptr inbounds i8, ptr %0, i64 36
  %324 = icmp sgt i32 %.promoted2112, 7
  br i1 %324, label %.._crit_edge2115_crit_edge, label %.lr.ph2114

.._crit_edge2115_crit_edge:                       ; preds = %298
  %.phi.trans.insert2718 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2719 = load i32, ptr %.phi.trans.insert2718, align 8, !tbaa !37
  br label %._crit_edge2115

.lr.ph2114:                                       ; preds = %298
  %325 = load ptr, ptr %0, align 8, !tbaa !5
  %326 = getelementptr inbounds i8, ptr %325, i64 8
  %327 = getelementptr inbounds i8, ptr %0, i64 32
  %328 = getelementptr inbounds i8, ptr %325, i64 12
  %329 = getelementptr inbounds i8, ptr %325, i64 16
  %.promoted2118 = load i32, ptr %326, align 8, !tbaa !38
  br label %334

._crit_edge2115:                                  ; preds = %354, %.._crit_edge2115_crit_edge
  %330 = phi i32 [ %.pre2719, %.._crit_edge2115_crit_edge ], [ %344, %354 ]
  %.lcssa2058 = phi i32 [ %.promoted2112, %.._crit_edge2115_crit_edge ], [ %345, %354 ]
  %331 = add nsw i32 %.lcssa2058, -8
  %332 = lshr i32 %330, %331
  store i32 %331, ptr %323, align 4, !tbaa !12
  %333 = and i32 %332, 255
  %.not1805 = icmp eq i32 %333, 65
  br i1 %.not1805, label %356, label %.loopexit

334:                                              ; preds = %.lr.ph2114, %354
  %335 = phi i32 [ %.promoted2118, %.lr.ph2114 ], [ %347, %354 ]
  %336 = phi i32 [ %.promoted2112, %.lr.ph2114 ], [ %345, %354 ]
  %337 = icmp eq i32 %335, 0
  br i1 %337, label %.loopexit, label %338

338:                                              ; preds = %334
  %339 = load i32, ptr %327, align 8, !tbaa !37
  %340 = shl i32 %339, 8
  %341 = load ptr, ptr %325, align 8, !tbaa !40
  %342 = load i8, ptr %341, align 1, !tbaa !41
  %343 = zext i8 %342 to i32
  %344 = or disjoint i32 %340, %343
  store i32 %344, ptr %327, align 8, !tbaa !37
  %345 = add nsw i32 %336, 8
  store i32 %345, ptr %323, align 4, !tbaa !12
  %346 = getelementptr inbounds i8, ptr %341, i64 1
  store ptr %346, ptr %325, align 8, !tbaa !40
  %347 = add i32 %335, -1
  store i32 %347, ptr %326, align 8, !tbaa !38
  %348 = load i32, ptr %328, align 4, !tbaa !42
  %349 = add i32 %348, 1
  store i32 %349, ptr %328, align 4, !tbaa !42
  %350 = icmp eq i32 %349, 0
  br i1 %350, label %351, label %354

351:                                              ; preds = %338
  %352 = load i32, ptr %329, align 8, !tbaa !43
  %353 = add i32 %352, 1
  store i32 %353, ptr %329, align 8, !tbaa !43
  br label %354

354:                                              ; preds = %351, %338
  %355 = icmp sgt i32 %336, -1
  br i1 %355, label %._crit_edge2115, label %334

356:                                              ; preds = %._crit_edge2720, %._crit_edge2115
  %357 = phi i32 [ %.pre, %._crit_edge2720 ], [ %299, %._crit_edge2115 ]
  %358 = phi i32 [ %.pre2651, %._crit_edge2720 ], [ %300, %._crit_edge2115 ]
  %359 = phi i32 [ %.pre2653, %._crit_edge2720 ], [ %301, %._crit_edge2115 ]
  %360 = phi i32 [ %.pre2655, %._crit_edge2720 ], [ %302, %._crit_edge2115 ]
  %361 = phi i32 [ %.pre2657, %._crit_edge2720 ], [ %303, %._crit_edge2115 ]
  %362 = phi i32 [ %.pre2659, %._crit_edge2720 ], [ %304, %._crit_edge2115 ]
  %363 = phi i32 [ %.pre2661, %._crit_edge2720 ], [ %305, %._crit_edge2115 ]
  %364 = phi i32 [ %.pre2663, %._crit_edge2720 ], [ %306, %._crit_edge2115 ]
  %365 = phi i32 [ %.pre2665, %._crit_edge2720 ], [ %307, %._crit_edge2115 ]
  %366 = phi i32 [ %.pre2667, %._crit_edge2720 ], [ %308, %._crit_edge2115 ]
  %367 = phi i32 [ %.pre2669, %._crit_edge2720 ], [ %309, %._crit_edge2115 ]
  %368 = phi i32 [ %.pre2671, %._crit_edge2720 ], [ %310, %._crit_edge2115 ]
  %369 = phi i32 [ %.pre2673, %._crit_edge2720 ], [ %311, %._crit_edge2115 ]
  %370 = phi i32 [ %.pre2675, %._crit_edge2720 ], [ %312, %._crit_edge2115 ]
  %371 = phi i32 [ %.pre2677, %._crit_edge2720 ], [ %313, %._crit_edge2115 ]
  %372 = phi i32 [ %.pre2679, %._crit_edge2720 ], [ %314, %._crit_edge2115 ]
  %373 = phi i32 [ %.pre2681, %._crit_edge2720 ], [ %315, %._crit_edge2115 ]
  %374 = phi i32 [ %.pre2683, %._crit_edge2720 ], [ %316, %._crit_edge2115 ]
  %375 = phi i32 [ %.pre2685, %._crit_edge2720 ], [ %317, %._crit_edge2115 ]
  %376 = phi i32 [ %.pre2687, %._crit_edge2720 ], [ %318, %._crit_edge2115 ]
  %377 = phi i32 [ %.pre2689, %._crit_edge2720 ], [ %319, %._crit_edge2115 ]
  %378 = phi ptr [ %.pre2691, %._crit_edge2720 ], [ %320, %._crit_edge2115 ]
  %379 = phi ptr [ %.pre2693, %._crit_edge2720 ], [ %321, %._crit_edge2115 ]
  %380 = phi ptr [ %.pre2695, %._crit_edge2720 ], [ %322, %._crit_edge2115 ]
  %.promoted2119 = phi i32 [ %.promoted2119.pre, %._crit_edge2720 ], [ %331, %._crit_edge2115 ]
  store i32 16, ptr %4, align 8, !tbaa !11
  %381 = getelementptr inbounds i8, ptr %0, i64 36
  %382 = icmp sgt i32 %.promoted2119, 7
  br i1 %382, label %.._crit_edge2122_crit_edge, label %.lr.ph2121

.._crit_edge2122_crit_edge:                       ; preds = %356
  %.phi.trans.insert2723 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2724 = load i32, ptr %.phi.trans.insert2723, align 8, !tbaa !37
  br label %._crit_edge2122

.lr.ph2121:                                       ; preds = %356
  %383 = load ptr, ptr %0, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 8
  %385 = getelementptr inbounds i8, ptr %0, i64 32
  %386 = getelementptr inbounds i8, ptr %383, i64 12
  %387 = getelementptr inbounds i8, ptr %383, i64 16
  %.promoted2125 = load i32, ptr %384, align 8, !tbaa !38
  br label %392

._crit_edge2122:                                  ; preds = %412, %.._crit_edge2122_crit_edge
  %388 = phi i32 [ %.pre2724, %.._crit_edge2122_crit_edge ], [ %402, %412 ]
  %.lcssa2054 = phi i32 [ %.promoted2119, %.._crit_edge2122_crit_edge ], [ %403, %412 ]
  %389 = add nsw i32 %.lcssa2054, -8
  %390 = lshr i32 %388, %389
  store i32 %389, ptr %381, align 4, !tbaa !12
  %391 = and i32 %390, 255
  %.not1806 = icmp eq i32 %391, 89
  br i1 %.not1806, label %414, label %.loopexit

392:                                              ; preds = %.lr.ph2121, %412
  %393 = phi i32 [ %.promoted2125, %.lr.ph2121 ], [ %405, %412 ]
  %394 = phi i32 [ %.promoted2119, %.lr.ph2121 ], [ %403, %412 ]
  %395 = icmp eq i32 %393, 0
  br i1 %395, label %.loopexit, label %396

396:                                              ; preds = %392
  %397 = load i32, ptr %385, align 8, !tbaa !37
  %398 = shl i32 %397, 8
  %399 = load ptr, ptr %383, align 8, !tbaa !40
  %400 = load i8, ptr %399, align 1, !tbaa !41
  %401 = zext i8 %400 to i32
  %402 = or disjoint i32 %398, %401
  store i32 %402, ptr %385, align 8, !tbaa !37
  %403 = add nsw i32 %394, 8
  store i32 %403, ptr %381, align 4, !tbaa !12
  %404 = getelementptr inbounds i8, ptr %399, i64 1
  store ptr %404, ptr %383, align 8, !tbaa !40
  %405 = add i32 %393, -1
  store i32 %405, ptr %384, align 8, !tbaa !38
  %406 = load i32, ptr %386, align 4, !tbaa !42
  %407 = add i32 %406, 1
  store i32 %407, ptr %386, align 4, !tbaa !42
  %408 = icmp eq i32 %407, 0
  br i1 %408, label %409, label %412

409:                                              ; preds = %396
  %410 = load i32, ptr %387, align 8, !tbaa !43
  %411 = add i32 %410, 1
  store i32 %411, ptr %387, align 8, !tbaa !43
  br label %412

412:                                              ; preds = %409, %396
  %413 = icmp sgt i32 %394, -1
  br i1 %413, label %._crit_edge2122, label %392

414:                                              ; preds = %._crit_edge2725, %._crit_edge2122
  %415 = phi i32 [ %.pre, %._crit_edge2725 ], [ %357, %._crit_edge2122 ]
  %416 = phi i32 [ %.pre2651, %._crit_edge2725 ], [ %358, %._crit_edge2122 ]
  %417 = phi i32 [ %.pre2653, %._crit_edge2725 ], [ %359, %._crit_edge2122 ]
  %418 = phi i32 [ %.pre2655, %._crit_edge2725 ], [ %360, %._crit_edge2122 ]
  %419 = phi i32 [ %.pre2657, %._crit_edge2725 ], [ %361, %._crit_edge2122 ]
  %420 = phi i32 [ %.pre2659, %._crit_edge2725 ], [ %362, %._crit_edge2122 ]
  %421 = phi i32 [ %.pre2661, %._crit_edge2725 ], [ %363, %._crit_edge2122 ]
  %422 = phi i32 [ %.pre2663, %._crit_edge2725 ], [ %364, %._crit_edge2122 ]
  %423 = phi i32 [ %.pre2665, %._crit_edge2725 ], [ %365, %._crit_edge2122 ]
  %424 = phi i32 [ %.pre2667, %._crit_edge2725 ], [ %366, %._crit_edge2122 ]
  %425 = phi i32 [ %.pre2669, %._crit_edge2725 ], [ %367, %._crit_edge2122 ]
  %426 = phi i32 [ %.pre2671, %._crit_edge2725 ], [ %368, %._crit_edge2122 ]
  %427 = phi i32 [ %.pre2673, %._crit_edge2725 ], [ %369, %._crit_edge2122 ]
  %428 = phi i32 [ %.pre2675, %._crit_edge2725 ], [ %370, %._crit_edge2122 ]
  %429 = phi i32 [ %.pre2677, %._crit_edge2725 ], [ %371, %._crit_edge2122 ]
  %430 = phi i32 [ %.pre2679, %._crit_edge2725 ], [ %372, %._crit_edge2122 ]
  %431 = phi i32 [ %.pre2681, %._crit_edge2725 ], [ %373, %._crit_edge2122 ]
  %432 = phi i32 [ %.pre2683, %._crit_edge2725 ], [ %374, %._crit_edge2122 ]
  %433 = phi i32 [ %.pre2685, %._crit_edge2725 ], [ %375, %._crit_edge2122 ]
  %434 = phi i32 [ %.pre2687, %._crit_edge2725 ], [ %376, %._crit_edge2122 ]
  %435 = phi i32 [ %.pre2689, %._crit_edge2725 ], [ %377, %._crit_edge2122 ]
  %436 = phi ptr [ %.pre2691, %._crit_edge2725 ], [ %378, %._crit_edge2122 ]
  %437 = phi ptr [ %.pre2693, %._crit_edge2725 ], [ %379, %._crit_edge2122 ]
  %438 = phi ptr [ %.pre2695, %._crit_edge2725 ], [ %380, %._crit_edge2122 ]
  %.promoted2126 = phi i32 [ %.promoted2126.pre, %._crit_edge2725 ], [ %389, %._crit_edge2122 ]
  store i32 17, ptr %4, align 8, !tbaa !11
  %439 = getelementptr inbounds i8, ptr %0, i64 36
  %440 = icmp sgt i32 %.promoted2126, 7
  br i1 %440, label %.._crit_edge2129_crit_edge, label %.lr.ph2128

.._crit_edge2129_crit_edge:                       ; preds = %414
  %.phi.trans.insert2728 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2729 = load i32, ptr %.phi.trans.insert2728, align 8, !tbaa !37
  br label %._crit_edge2129

.lr.ph2128:                                       ; preds = %414
  %441 = load ptr, ptr %0, align 8, !tbaa !5
  %442 = getelementptr inbounds i8, ptr %441, i64 8
  %443 = getelementptr inbounds i8, ptr %0, i64 32
  %444 = getelementptr inbounds i8, ptr %441, i64 12
  %445 = getelementptr inbounds i8, ptr %441, i64 16
  %.promoted2132 = load i32, ptr %442, align 8, !tbaa !38
  br label %450

._crit_edge2129:                                  ; preds = %470, %.._crit_edge2129_crit_edge
  %446 = phi i32 [ %.pre2729, %.._crit_edge2129_crit_edge ], [ %460, %470 ]
  %.lcssa2050 = phi i32 [ %.promoted2126, %.._crit_edge2129_crit_edge ], [ %461, %470 ]
  %447 = add nsw i32 %.lcssa2050, -8
  %448 = lshr i32 %446, %447
  store i32 %447, ptr %439, align 4, !tbaa !12
  %449 = and i32 %448, 255
  %.not1807 = icmp eq i32 %449, 38
  br i1 %.not1807, label %472, label %.loopexit

450:                                              ; preds = %.lr.ph2128, %470
  %451 = phi i32 [ %.promoted2132, %.lr.ph2128 ], [ %463, %470 ]
  %452 = phi i32 [ %.promoted2126, %.lr.ph2128 ], [ %461, %470 ]
  %453 = icmp eq i32 %451, 0
  br i1 %453, label %.loopexit, label %454

454:                                              ; preds = %450
  %455 = load i32, ptr %443, align 8, !tbaa !37
  %456 = shl i32 %455, 8
  %457 = load ptr, ptr %441, align 8, !tbaa !40
  %458 = load i8, ptr %457, align 1, !tbaa !41
  %459 = zext i8 %458 to i32
  %460 = or disjoint i32 %456, %459
  store i32 %460, ptr %443, align 8, !tbaa !37
  %461 = add nsw i32 %452, 8
  store i32 %461, ptr %439, align 4, !tbaa !12
  %462 = getelementptr inbounds i8, ptr %457, i64 1
  store ptr %462, ptr %441, align 8, !tbaa !40
  %463 = add i32 %451, -1
  store i32 %463, ptr %442, align 8, !tbaa !38
  %464 = load i32, ptr %444, align 4, !tbaa !42
  %465 = add i32 %464, 1
  store i32 %465, ptr %444, align 4, !tbaa !42
  %466 = icmp eq i32 %465, 0
  br i1 %466, label %467, label %470

467:                                              ; preds = %454
  %468 = load i32, ptr %445, align 8, !tbaa !43
  %469 = add i32 %468, 1
  store i32 %469, ptr %445, align 8, !tbaa !43
  br label %470

470:                                              ; preds = %467, %454
  %471 = icmp sgt i32 %452, -1
  br i1 %471, label %._crit_edge2129, label %450

472:                                              ; preds = %._crit_edge2730, %._crit_edge2129
  %473 = phi i32 [ %.pre, %._crit_edge2730 ], [ %415, %._crit_edge2129 ]
  %474 = phi i32 [ %.pre2651, %._crit_edge2730 ], [ %416, %._crit_edge2129 ]
  %475 = phi i32 [ %.pre2653, %._crit_edge2730 ], [ %417, %._crit_edge2129 ]
  %476 = phi i32 [ %.pre2655, %._crit_edge2730 ], [ %418, %._crit_edge2129 ]
  %477 = phi i32 [ %.pre2657, %._crit_edge2730 ], [ %419, %._crit_edge2129 ]
  %478 = phi i32 [ %.pre2659, %._crit_edge2730 ], [ %420, %._crit_edge2129 ]
  %479 = phi i32 [ %.pre2661, %._crit_edge2730 ], [ %421, %._crit_edge2129 ]
  %480 = phi i32 [ %.pre2663, %._crit_edge2730 ], [ %422, %._crit_edge2129 ]
  %481 = phi i32 [ %.pre2665, %._crit_edge2730 ], [ %423, %._crit_edge2129 ]
  %482 = phi i32 [ %.pre2667, %._crit_edge2730 ], [ %424, %._crit_edge2129 ]
  %483 = phi i32 [ %.pre2669, %._crit_edge2730 ], [ %425, %._crit_edge2129 ]
  %484 = phi i32 [ %.pre2671, %._crit_edge2730 ], [ %426, %._crit_edge2129 ]
  %485 = phi i32 [ %.pre2673, %._crit_edge2730 ], [ %427, %._crit_edge2129 ]
  %486 = phi i32 [ %.pre2675, %._crit_edge2730 ], [ %428, %._crit_edge2129 ]
  %487 = phi i32 [ %.pre2677, %._crit_edge2730 ], [ %429, %._crit_edge2129 ]
  %488 = phi i32 [ %.pre2679, %._crit_edge2730 ], [ %430, %._crit_edge2129 ]
  %489 = phi i32 [ %.pre2681, %._crit_edge2730 ], [ %431, %._crit_edge2129 ]
  %490 = phi i32 [ %.pre2683, %._crit_edge2730 ], [ %432, %._crit_edge2129 ]
  %491 = phi i32 [ %.pre2685, %._crit_edge2730 ], [ %433, %._crit_edge2129 ]
  %492 = phi i32 [ %.pre2687, %._crit_edge2730 ], [ %434, %._crit_edge2129 ]
  %493 = phi i32 [ %.pre2689, %._crit_edge2730 ], [ %435, %._crit_edge2129 ]
  %494 = phi ptr [ %.pre2691, %._crit_edge2730 ], [ %436, %._crit_edge2129 ]
  %495 = phi ptr [ %.pre2693, %._crit_edge2730 ], [ %437, %._crit_edge2129 ]
  %496 = phi ptr [ %.pre2695, %._crit_edge2730 ], [ %438, %._crit_edge2129 ]
  %.promoted2133 = phi i32 [ %.promoted2133.pre, %._crit_edge2730 ], [ %447, %._crit_edge2129 ]
  store i32 18, ptr %4, align 8, !tbaa !11
  %497 = getelementptr inbounds i8, ptr %0, i64 36
  %498 = icmp sgt i32 %.promoted2133, 7
  br i1 %498, label %.._crit_edge2136_crit_edge, label %.lr.ph2135

.._crit_edge2136_crit_edge:                       ; preds = %472
  %.phi.trans.insert2733 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2734 = load i32, ptr %.phi.trans.insert2733, align 8, !tbaa !37
  br label %._crit_edge2136

.lr.ph2135:                                       ; preds = %472
  %499 = load ptr, ptr %0, align 8, !tbaa !5
  %500 = getelementptr inbounds i8, ptr %499, i64 8
  %501 = getelementptr inbounds i8, ptr %0, i64 32
  %502 = getelementptr inbounds i8, ptr %499, i64 12
  %503 = getelementptr inbounds i8, ptr %499, i64 16
  %.promoted2139 = load i32, ptr %500, align 8, !tbaa !38
  br label %508

._crit_edge2136:                                  ; preds = %528, %.._crit_edge2136_crit_edge
  %504 = phi i32 [ %.pre2734, %.._crit_edge2136_crit_edge ], [ %518, %528 ]
  %.lcssa2046 = phi i32 [ %.promoted2133, %.._crit_edge2136_crit_edge ], [ %519, %528 ]
  %505 = add nsw i32 %.lcssa2046, -8
  %506 = lshr i32 %504, %505
  store i32 %505, ptr %497, align 4, !tbaa !12
  %507 = and i32 %506, 255
  %.not1808 = icmp eq i32 %507, 83
  br i1 %.not1808, label %530, label %.loopexit

508:                                              ; preds = %.lr.ph2135, %528
  %509 = phi i32 [ %.promoted2139, %.lr.ph2135 ], [ %521, %528 ]
  %510 = phi i32 [ %.promoted2133, %.lr.ph2135 ], [ %519, %528 ]
  %511 = icmp eq i32 %509, 0
  br i1 %511, label %.loopexit, label %512

512:                                              ; preds = %508
  %513 = load i32, ptr %501, align 8, !tbaa !37
  %514 = shl i32 %513, 8
  %515 = load ptr, ptr %499, align 8, !tbaa !40
  %516 = load i8, ptr %515, align 1, !tbaa !41
  %517 = zext i8 %516 to i32
  %518 = or disjoint i32 %514, %517
  store i32 %518, ptr %501, align 8, !tbaa !37
  %519 = add nsw i32 %510, 8
  store i32 %519, ptr %497, align 4, !tbaa !12
  %520 = getelementptr inbounds i8, ptr %515, i64 1
  store ptr %520, ptr %499, align 8, !tbaa !40
  %521 = add i32 %509, -1
  store i32 %521, ptr %500, align 8, !tbaa !38
  %522 = load i32, ptr %502, align 4, !tbaa !42
  %523 = add i32 %522, 1
  store i32 %523, ptr %502, align 4, !tbaa !42
  %524 = icmp eq i32 %523, 0
  br i1 %524, label %525, label %528

525:                                              ; preds = %512
  %526 = load i32, ptr %503, align 8, !tbaa !43
  %527 = add i32 %526, 1
  store i32 %527, ptr %503, align 8, !tbaa !43
  br label %528

528:                                              ; preds = %525, %512
  %529 = icmp sgt i32 %510, -1
  br i1 %529, label %._crit_edge2136, label %508

530:                                              ; preds = %._crit_edge2735, %._crit_edge2136
  %531 = phi i32 [ %.pre, %._crit_edge2735 ], [ %473, %._crit_edge2136 ]
  %532 = phi i32 [ %.pre2651, %._crit_edge2735 ], [ %474, %._crit_edge2136 ]
  %533 = phi i32 [ %.pre2653, %._crit_edge2735 ], [ %475, %._crit_edge2136 ]
  %534 = phi i32 [ %.pre2655, %._crit_edge2735 ], [ %476, %._crit_edge2136 ]
  %535 = phi i32 [ %.pre2657, %._crit_edge2735 ], [ %477, %._crit_edge2136 ]
  %536 = phi i32 [ %.pre2659, %._crit_edge2735 ], [ %478, %._crit_edge2136 ]
  %537 = phi i32 [ %.pre2661, %._crit_edge2735 ], [ %479, %._crit_edge2136 ]
  %538 = phi i32 [ %.pre2663, %._crit_edge2735 ], [ %480, %._crit_edge2136 ]
  %539 = phi i32 [ %.pre2665, %._crit_edge2735 ], [ %481, %._crit_edge2136 ]
  %540 = phi i32 [ %.pre2667, %._crit_edge2735 ], [ %482, %._crit_edge2136 ]
  %541 = phi i32 [ %.pre2669, %._crit_edge2735 ], [ %483, %._crit_edge2136 ]
  %542 = phi i32 [ %.pre2671, %._crit_edge2735 ], [ %484, %._crit_edge2136 ]
  %543 = phi i32 [ %.pre2673, %._crit_edge2735 ], [ %485, %._crit_edge2136 ]
  %544 = phi i32 [ %.pre2675, %._crit_edge2735 ], [ %486, %._crit_edge2136 ]
  %545 = phi i32 [ %.pre2677, %._crit_edge2735 ], [ %487, %._crit_edge2136 ]
  %546 = phi i32 [ %.pre2679, %._crit_edge2735 ], [ %488, %._crit_edge2136 ]
  %547 = phi i32 [ %.pre2681, %._crit_edge2735 ], [ %489, %._crit_edge2136 ]
  %548 = phi i32 [ %.pre2683, %._crit_edge2735 ], [ %490, %._crit_edge2136 ]
  %549 = phi i32 [ %.pre2685, %._crit_edge2735 ], [ %491, %._crit_edge2136 ]
  %550 = phi i32 [ %.pre2687, %._crit_edge2735 ], [ %492, %._crit_edge2136 ]
  %551 = phi i32 [ %.pre2689, %._crit_edge2735 ], [ %493, %._crit_edge2136 ]
  %552 = phi ptr [ %.pre2691, %._crit_edge2735 ], [ %494, %._crit_edge2136 ]
  %553 = phi ptr [ %.pre2693, %._crit_edge2735 ], [ %495, %._crit_edge2136 ]
  %554 = phi ptr [ %.pre2695, %._crit_edge2735 ], [ %496, %._crit_edge2136 ]
  %.promoted2140 = phi i32 [ %.promoted2140.pre, %._crit_edge2735 ], [ %505, %._crit_edge2136 ]
  store i32 19, ptr %4, align 8, !tbaa !11
  %555 = getelementptr inbounds i8, ptr %0, i64 36
  %556 = icmp sgt i32 %.promoted2140, 7
  br i1 %556, label %.._crit_edge2143_crit_edge, label %.lr.ph2142

.._crit_edge2143_crit_edge:                       ; preds = %530
  %.phi.trans.insert2738 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2739 = load i32, ptr %.phi.trans.insert2738, align 8, !tbaa !37
  br label %._crit_edge2143

.lr.ph2142:                                       ; preds = %530
  %557 = load ptr, ptr %0, align 8, !tbaa !5
  %558 = getelementptr inbounds i8, ptr %557, i64 8
  %559 = getelementptr inbounds i8, ptr %0, i64 32
  %560 = getelementptr inbounds i8, ptr %557, i64 12
  %561 = getelementptr inbounds i8, ptr %557, i64 16
  %.promoted2146 = load i32, ptr %558, align 8, !tbaa !38
  br label %566

._crit_edge2143:                                  ; preds = %586, %.._crit_edge2143_crit_edge
  %562 = phi i32 [ %.pre2739, %.._crit_edge2143_crit_edge ], [ %576, %586 ]
  %.lcssa2042 = phi i32 [ %.promoted2140, %.._crit_edge2143_crit_edge ], [ %577, %586 ]
  %563 = add nsw i32 %.lcssa2042, -8
  %564 = lshr i32 %562, %563
  store i32 %563, ptr %555, align 4, !tbaa !12
  %565 = and i32 %564, 255
  %.not1809 = icmp eq i32 %565, 89
  br i1 %.not1809, label %588, label %.loopexit

566:                                              ; preds = %.lr.ph2142, %586
  %567 = phi i32 [ %.promoted2146, %.lr.ph2142 ], [ %579, %586 ]
  %568 = phi i32 [ %.promoted2140, %.lr.ph2142 ], [ %577, %586 ]
  %569 = icmp eq i32 %567, 0
  br i1 %569, label %.loopexit, label %570

570:                                              ; preds = %566
  %571 = load i32, ptr %559, align 8, !tbaa !37
  %572 = shl i32 %571, 8
  %573 = load ptr, ptr %557, align 8, !tbaa !40
  %574 = load i8, ptr %573, align 1, !tbaa !41
  %575 = zext i8 %574 to i32
  %576 = or disjoint i32 %572, %575
  store i32 %576, ptr %559, align 8, !tbaa !37
  %577 = add nsw i32 %568, 8
  store i32 %577, ptr %555, align 4, !tbaa !12
  %578 = getelementptr inbounds i8, ptr %573, i64 1
  store ptr %578, ptr %557, align 8, !tbaa !40
  %579 = add i32 %567, -1
  store i32 %579, ptr %558, align 8, !tbaa !38
  %580 = load i32, ptr %560, align 4, !tbaa !42
  %581 = add i32 %580, 1
  store i32 %581, ptr %560, align 4, !tbaa !42
  %582 = icmp eq i32 %581, 0
  br i1 %582, label %583, label %586

583:                                              ; preds = %570
  %584 = load i32, ptr %561, align 8, !tbaa !43
  %585 = add i32 %584, 1
  store i32 %585, ptr %561, align 8, !tbaa !43
  br label %586

586:                                              ; preds = %583, %570
  %587 = icmp sgt i32 %568, -1
  br i1 %587, label %._crit_edge2143, label %566

588:                                              ; preds = %._crit_edge2143
  %589 = getelementptr inbounds i8, ptr %0, i64 48
  %590 = load i32, ptr %589, align 8, !tbaa !51
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr %589, align 8, !tbaa !51
  %592 = getelementptr inbounds i8, ptr %0, i64 3176
  store i32 0, ptr %592, align 8, !tbaa !52
  br label %593

593:                                              ; preds = %._crit_edge2740, %588
  %594 = phi i32 [ %.pre, %._crit_edge2740 ], [ %531, %588 ]
  %595 = phi i32 [ %.pre2651, %._crit_edge2740 ], [ %532, %588 ]
  %596 = phi i32 [ %.pre2653, %._crit_edge2740 ], [ %533, %588 ]
  %597 = phi i32 [ %.pre2655, %._crit_edge2740 ], [ %534, %588 ]
  %598 = phi i32 [ %.pre2657, %._crit_edge2740 ], [ %535, %588 ]
  %599 = phi i32 [ %.pre2659, %._crit_edge2740 ], [ %536, %588 ]
  %600 = phi i32 [ %.pre2661, %._crit_edge2740 ], [ %537, %588 ]
  %601 = phi i32 [ %.pre2663, %._crit_edge2740 ], [ %538, %588 ]
  %602 = phi i32 [ %.pre2665, %._crit_edge2740 ], [ %539, %588 ]
  %603 = phi i32 [ %.pre2667, %._crit_edge2740 ], [ %540, %588 ]
  %604 = phi i32 [ %.pre2669, %._crit_edge2740 ], [ %541, %588 ]
  %605 = phi i32 [ %.pre2671, %._crit_edge2740 ], [ %542, %588 ]
  %606 = phi i32 [ %.pre2673, %._crit_edge2740 ], [ %543, %588 ]
  %607 = phi i32 [ %.pre2675, %._crit_edge2740 ], [ %544, %588 ]
  %608 = phi i32 [ %.pre2677, %._crit_edge2740 ], [ %545, %588 ]
  %609 = phi i32 [ %.pre2679, %._crit_edge2740 ], [ %546, %588 ]
  %610 = phi i32 [ %.pre2681, %._crit_edge2740 ], [ %547, %588 ]
  %611 = phi i32 [ %.pre2683, %._crit_edge2740 ], [ %548, %588 ]
  %612 = phi i32 [ %.pre2685, %._crit_edge2740 ], [ %549, %588 ]
  %613 = phi i32 [ %.pre2687, %._crit_edge2740 ], [ %550, %588 ]
  %614 = phi i32 [ %.pre2689, %._crit_edge2740 ], [ %551, %588 ]
  %615 = phi ptr [ %.pre2691, %._crit_edge2740 ], [ %552, %588 ]
  %616 = phi ptr [ %.pre2693, %._crit_edge2740 ], [ %553, %588 ]
  %617 = phi ptr [ %.pre2695, %._crit_edge2740 ], [ %554, %588 ]
  %.promoted2147 = phi i32 [ %.promoted2147.pre, %._crit_edge2740 ], [ %563, %588 ]
  store i32 20, ptr %4, align 8, !tbaa !11
  %618 = getelementptr inbounds i8, ptr %0, i64 36
  %619 = icmp sgt i32 %.promoted2147, 7
  br i1 %619, label %.._crit_edge2150_crit_edge, label %.lr.ph2149

.._crit_edge2150_crit_edge:                       ; preds = %593
  %.phi.trans.insert2743 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2744 = load i32, ptr %.phi.trans.insert2743, align 8, !tbaa !37
  br label %._crit_edge2150

.lr.ph2149:                                       ; preds = %593
  %620 = load ptr, ptr %0, align 8, !tbaa !5
  %621 = getelementptr inbounds i8, ptr %620, i64 8
  %622 = getelementptr inbounds i8, ptr %0, i64 32
  %623 = getelementptr inbounds i8, ptr %620, i64 12
  %624 = getelementptr inbounds i8, ptr %620, i64 16
  %.promoted2153 = load i32, ptr %621, align 8, !tbaa !38
  br label %633

._crit_edge2150:                                  ; preds = %653, %.._crit_edge2150_crit_edge
  %625 = phi i32 [ %.pre2744, %.._crit_edge2150_crit_edge ], [ %643, %653 ]
  %.lcssa2038 = phi i32 [ %.promoted2147, %.._crit_edge2150_crit_edge ], [ %644, %653 ]
  %626 = add nsw i32 %.lcssa2038, -8
  %627 = lshr i32 %625, %626
  store i32 %626, ptr %618, align 4, !tbaa !12
  %628 = getelementptr inbounds i8, ptr %0, i64 3176
  %629 = load i32, ptr %628, align 8, !tbaa !52
  %630 = shl i32 %629, 8
  %631 = and i32 %627, 255
  %632 = or disjoint i32 %630, %631
  store i32 %632, ptr %628, align 8, !tbaa !52
  br label %655

633:                                              ; preds = %.lr.ph2149, %653
  %634 = phi i32 [ %.promoted2153, %.lr.ph2149 ], [ %646, %653 ]
  %635 = phi i32 [ %.promoted2147, %.lr.ph2149 ], [ %644, %653 ]
  %636 = icmp eq i32 %634, 0
  br i1 %636, label %.loopexit, label %637

637:                                              ; preds = %633
  %638 = load i32, ptr %622, align 8, !tbaa !37
  %639 = shl i32 %638, 8
  %640 = load ptr, ptr %620, align 8, !tbaa !40
  %641 = load i8, ptr %640, align 1, !tbaa !41
  %642 = zext i8 %641 to i32
  %643 = or disjoint i32 %639, %642
  store i32 %643, ptr %622, align 8, !tbaa !37
  %644 = add nsw i32 %635, 8
  store i32 %644, ptr %618, align 4, !tbaa !12
  %645 = getelementptr inbounds i8, ptr %640, i64 1
  store ptr %645, ptr %620, align 8, !tbaa !40
  %646 = add i32 %634, -1
  store i32 %646, ptr %621, align 8, !tbaa !38
  %647 = load i32, ptr %623, align 4, !tbaa !42
  %648 = add i32 %647, 1
  store i32 %648, ptr %623, align 4, !tbaa !42
  %649 = icmp eq i32 %648, 0
  br i1 %649, label %650, label %653

650:                                              ; preds = %637
  %651 = load i32, ptr %624, align 8, !tbaa !43
  %652 = add i32 %651, 1
  store i32 %652, ptr %624, align 8, !tbaa !43
  br label %653

653:                                              ; preds = %650, %637
  %654 = icmp sgt i32 %635, -1
  br i1 %654, label %._crit_edge2150, label %633

655:                                              ; preds = %._crit_edge2745, %._crit_edge2150
  %656 = phi i32 [ %.pre, %._crit_edge2745 ], [ %594, %._crit_edge2150 ]
  %657 = phi i32 [ %.pre2651, %._crit_edge2745 ], [ %595, %._crit_edge2150 ]
  %658 = phi i32 [ %.pre2653, %._crit_edge2745 ], [ %596, %._crit_edge2150 ]
  %659 = phi i32 [ %.pre2655, %._crit_edge2745 ], [ %597, %._crit_edge2150 ]
  %660 = phi i32 [ %.pre2657, %._crit_edge2745 ], [ %598, %._crit_edge2150 ]
  %661 = phi i32 [ %.pre2659, %._crit_edge2745 ], [ %599, %._crit_edge2150 ]
  %662 = phi i32 [ %.pre2661, %._crit_edge2745 ], [ %600, %._crit_edge2150 ]
  %663 = phi i32 [ %.pre2663, %._crit_edge2745 ], [ %601, %._crit_edge2150 ]
  %664 = phi i32 [ %.pre2665, %._crit_edge2745 ], [ %602, %._crit_edge2150 ]
  %665 = phi i32 [ %.pre2667, %._crit_edge2745 ], [ %603, %._crit_edge2150 ]
  %666 = phi i32 [ %.pre2669, %._crit_edge2745 ], [ %604, %._crit_edge2150 ]
  %667 = phi i32 [ %.pre2671, %._crit_edge2745 ], [ %605, %._crit_edge2150 ]
  %668 = phi i32 [ %.pre2673, %._crit_edge2745 ], [ %606, %._crit_edge2150 ]
  %669 = phi i32 [ %.pre2675, %._crit_edge2745 ], [ %607, %._crit_edge2150 ]
  %670 = phi i32 [ %.pre2677, %._crit_edge2745 ], [ %608, %._crit_edge2150 ]
  %671 = phi i32 [ %.pre2679, %._crit_edge2745 ], [ %609, %._crit_edge2150 ]
  %672 = phi i32 [ %.pre2681, %._crit_edge2745 ], [ %610, %._crit_edge2150 ]
  %673 = phi i32 [ %.pre2683, %._crit_edge2745 ], [ %611, %._crit_edge2150 ]
  %674 = phi i32 [ %.pre2685, %._crit_edge2745 ], [ %612, %._crit_edge2150 ]
  %675 = phi i32 [ %.pre2687, %._crit_edge2745 ], [ %613, %._crit_edge2150 ]
  %676 = phi i32 [ %.pre2689, %._crit_edge2745 ], [ %614, %._crit_edge2150 ]
  %677 = phi ptr [ %.pre2691, %._crit_edge2745 ], [ %615, %._crit_edge2150 ]
  %678 = phi ptr [ %.pre2693, %._crit_edge2745 ], [ %616, %._crit_edge2150 ]
  %679 = phi ptr [ %.pre2695, %._crit_edge2745 ], [ %617, %._crit_edge2150 ]
  %.promoted2154 = phi i32 [ %.promoted2154.pre, %._crit_edge2745 ], [ %626, %._crit_edge2150 ]
  store i32 21, ptr %4, align 8, !tbaa !11
  %680 = getelementptr inbounds i8, ptr %0, i64 36
  %681 = icmp sgt i32 %.promoted2154, 7
  br i1 %681, label %.._crit_edge2157_crit_edge, label %.lr.ph2156

.._crit_edge2157_crit_edge:                       ; preds = %655
  %.phi.trans.insert2748 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2749 = load i32, ptr %.phi.trans.insert2748, align 8, !tbaa !37
  br label %._crit_edge2157

.lr.ph2156:                                       ; preds = %655
  %682 = load ptr, ptr %0, align 8, !tbaa !5
  %683 = getelementptr inbounds i8, ptr %682, i64 8
  %684 = getelementptr inbounds i8, ptr %0, i64 32
  %685 = getelementptr inbounds i8, ptr %682, i64 12
  %686 = getelementptr inbounds i8, ptr %682, i64 16
  %.promoted2160 = load i32, ptr %683, align 8, !tbaa !38
  br label %695

._crit_edge2157:                                  ; preds = %715, %.._crit_edge2157_crit_edge
  %687 = phi i32 [ %.pre2749, %.._crit_edge2157_crit_edge ], [ %705, %715 ]
  %.lcssa2034 = phi i32 [ %.promoted2154, %.._crit_edge2157_crit_edge ], [ %706, %715 ]
  %688 = add nsw i32 %.lcssa2034, -8
  %689 = lshr i32 %687, %688
  store i32 %688, ptr %680, align 4, !tbaa !12
  %690 = getelementptr inbounds i8, ptr %0, i64 3176
  %691 = load i32, ptr %690, align 8, !tbaa !52
  %692 = shl i32 %691, 8
  %693 = and i32 %689, 255
  %694 = or disjoint i32 %692, %693
  store i32 %694, ptr %690, align 8, !tbaa !52
  br label %717

695:                                              ; preds = %.lr.ph2156, %715
  %696 = phi i32 [ %.promoted2160, %.lr.ph2156 ], [ %708, %715 ]
  %697 = phi i32 [ %.promoted2154, %.lr.ph2156 ], [ %706, %715 ]
  %698 = icmp eq i32 %696, 0
  br i1 %698, label %.loopexit, label %699

699:                                              ; preds = %695
  %700 = load i32, ptr %684, align 8, !tbaa !37
  %701 = shl i32 %700, 8
  %702 = load ptr, ptr %682, align 8, !tbaa !40
  %703 = load i8, ptr %702, align 1, !tbaa !41
  %704 = zext i8 %703 to i32
  %705 = or disjoint i32 %701, %704
  store i32 %705, ptr %684, align 8, !tbaa !37
  %706 = add nsw i32 %697, 8
  store i32 %706, ptr %680, align 4, !tbaa !12
  %707 = getelementptr inbounds i8, ptr %702, i64 1
  store ptr %707, ptr %682, align 8, !tbaa !40
  %708 = add i32 %696, -1
  store i32 %708, ptr %683, align 8, !tbaa !38
  %709 = load i32, ptr %685, align 4, !tbaa !42
  %710 = add i32 %709, 1
  store i32 %710, ptr %685, align 4, !tbaa !42
  %711 = icmp eq i32 %710, 0
  br i1 %711, label %712, label %715

712:                                              ; preds = %699
  %713 = load i32, ptr %686, align 8, !tbaa !43
  %714 = add i32 %713, 1
  store i32 %714, ptr %686, align 8, !tbaa !43
  br label %715

715:                                              ; preds = %712, %699
  %716 = icmp sgt i32 %697, -1
  br i1 %716, label %._crit_edge2157, label %695

717:                                              ; preds = %._crit_edge2750, %._crit_edge2157
  %718 = phi i32 [ %.pre, %._crit_edge2750 ], [ %656, %._crit_edge2157 ]
  %719 = phi i32 [ %.pre2651, %._crit_edge2750 ], [ %657, %._crit_edge2157 ]
  %720 = phi i32 [ %.pre2653, %._crit_edge2750 ], [ %658, %._crit_edge2157 ]
  %721 = phi i32 [ %.pre2655, %._crit_edge2750 ], [ %659, %._crit_edge2157 ]
  %722 = phi i32 [ %.pre2657, %._crit_edge2750 ], [ %660, %._crit_edge2157 ]
  %723 = phi i32 [ %.pre2659, %._crit_edge2750 ], [ %661, %._crit_edge2157 ]
  %724 = phi i32 [ %.pre2661, %._crit_edge2750 ], [ %662, %._crit_edge2157 ]
  %725 = phi i32 [ %.pre2663, %._crit_edge2750 ], [ %663, %._crit_edge2157 ]
  %726 = phi i32 [ %.pre2665, %._crit_edge2750 ], [ %664, %._crit_edge2157 ]
  %727 = phi i32 [ %.pre2667, %._crit_edge2750 ], [ %665, %._crit_edge2157 ]
  %728 = phi i32 [ %.pre2669, %._crit_edge2750 ], [ %666, %._crit_edge2157 ]
  %729 = phi i32 [ %.pre2671, %._crit_edge2750 ], [ %667, %._crit_edge2157 ]
  %730 = phi i32 [ %.pre2673, %._crit_edge2750 ], [ %668, %._crit_edge2157 ]
  %731 = phi i32 [ %.pre2675, %._crit_edge2750 ], [ %669, %._crit_edge2157 ]
  %732 = phi i32 [ %.pre2677, %._crit_edge2750 ], [ %670, %._crit_edge2157 ]
  %733 = phi i32 [ %.pre2679, %._crit_edge2750 ], [ %671, %._crit_edge2157 ]
  %734 = phi i32 [ %.pre2681, %._crit_edge2750 ], [ %672, %._crit_edge2157 ]
  %735 = phi i32 [ %.pre2683, %._crit_edge2750 ], [ %673, %._crit_edge2157 ]
  %736 = phi i32 [ %.pre2685, %._crit_edge2750 ], [ %674, %._crit_edge2157 ]
  %737 = phi i32 [ %.pre2687, %._crit_edge2750 ], [ %675, %._crit_edge2157 ]
  %738 = phi i32 [ %.pre2689, %._crit_edge2750 ], [ %676, %._crit_edge2157 ]
  %739 = phi ptr [ %.pre2691, %._crit_edge2750 ], [ %677, %._crit_edge2157 ]
  %740 = phi ptr [ %.pre2693, %._crit_edge2750 ], [ %678, %._crit_edge2157 ]
  %741 = phi ptr [ %.pre2695, %._crit_edge2750 ], [ %679, %._crit_edge2157 ]
  %.promoted2161 = phi i32 [ %.promoted2161.pre, %._crit_edge2750 ], [ %688, %._crit_edge2157 ]
  store i32 22, ptr %4, align 8, !tbaa !11
  %742 = getelementptr inbounds i8, ptr %0, i64 36
  %743 = icmp sgt i32 %.promoted2161, 7
  br i1 %743, label %.._crit_edge2164_crit_edge, label %.lr.ph2163

.._crit_edge2164_crit_edge:                       ; preds = %717
  %.phi.trans.insert2753 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2754 = load i32, ptr %.phi.trans.insert2753, align 8, !tbaa !37
  br label %._crit_edge2164

.lr.ph2163:                                       ; preds = %717
  %744 = load ptr, ptr %0, align 8, !tbaa !5
  %745 = getelementptr inbounds i8, ptr %744, i64 8
  %746 = getelementptr inbounds i8, ptr %0, i64 32
  %747 = getelementptr inbounds i8, ptr %744, i64 12
  %748 = getelementptr inbounds i8, ptr %744, i64 16
  %.promoted2167 = load i32, ptr %745, align 8, !tbaa !38
  br label %757

._crit_edge2164:                                  ; preds = %777, %.._crit_edge2164_crit_edge
  %749 = phi i32 [ %.pre2754, %.._crit_edge2164_crit_edge ], [ %767, %777 ]
  %.lcssa2030 = phi i32 [ %.promoted2161, %.._crit_edge2164_crit_edge ], [ %768, %777 ]
  %750 = add nsw i32 %.lcssa2030, -8
  %751 = lshr i32 %749, %750
  store i32 %750, ptr %742, align 4, !tbaa !12
  %752 = getelementptr inbounds i8, ptr %0, i64 3176
  %753 = load i32, ptr %752, align 8, !tbaa !52
  %754 = shl i32 %753, 8
  %755 = and i32 %751, 255
  %756 = or disjoint i32 %754, %755
  store i32 %756, ptr %752, align 8, !tbaa !52
  br label %779

757:                                              ; preds = %.lr.ph2163, %777
  %758 = phi i32 [ %.promoted2167, %.lr.ph2163 ], [ %770, %777 ]
  %759 = phi i32 [ %.promoted2161, %.lr.ph2163 ], [ %768, %777 ]
  %760 = icmp eq i32 %758, 0
  br i1 %760, label %.loopexit, label %761

761:                                              ; preds = %757
  %762 = load i32, ptr %746, align 8, !tbaa !37
  %763 = shl i32 %762, 8
  %764 = load ptr, ptr %744, align 8, !tbaa !40
  %765 = load i8, ptr %764, align 1, !tbaa !41
  %766 = zext i8 %765 to i32
  %767 = or disjoint i32 %763, %766
  store i32 %767, ptr %746, align 8, !tbaa !37
  %768 = add nsw i32 %759, 8
  store i32 %768, ptr %742, align 4, !tbaa !12
  %769 = getelementptr inbounds i8, ptr %764, i64 1
  store ptr %769, ptr %744, align 8, !tbaa !40
  %770 = add i32 %758, -1
  store i32 %770, ptr %745, align 8, !tbaa !38
  %771 = load i32, ptr %747, align 4, !tbaa !42
  %772 = add i32 %771, 1
  store i32 %772, ptr %747, align 4, !tbaa !42
  %773 = icmp eq i32 %772, 0
  br i1 %773, label %774, label %777

774:                                              ; preds = %761
  %775 = load i32, ptr %748, align 8, !tbaa !43
  %776 = add i32 %775, 1
  store i32 %776, ptr %748, align 8, !tbaa !43
  br label %777

777:                                              ; preds = %774, %761
  %778 = icmp sgt i32 %759, -1
  br i1 %778, label %._crit_edge2164, label %757

779:                                              ; preds = %._crit_edge2755, %._crit_edge2164
  %780 = phi i32 [ %.pre, %._crit_edge2755 ], [ %718, %._crit_edge2164 ]
  %781 = phi i32 [ %.pre2651, %._crit_edge2755 ], [ %719, %._crit_edge2164 ]
  %782 = phi i32 [ %.pre2653, %._crit_edge2755 ], [ %720, %._crit_edge2164 ]
  %783 = phi i32 [ %.pre2655, %._crit_edge2755 ], [ %721, %._crit_edge2164 ]
  %784 = phi i32 [ %.pre2657, %._crit_edge2755 ], [ %722, %._crit_edge2164 ]
  %785 = phi i32 [ %.pre2659, %._crit_edge2755 ], [ %723, %._crit_edge2164 ]
  %786 = phi i32 [ %.pre2661, %._crit_edge2755 ], [ %724, %._crit_edge2164 ]
  %787 = phi i32 [ %.pre2663, %._crit_edge2755 ], [ %725, %._crit_edge2164 ]
  %788 = phi i32 [ %.pre2665, %._crit_edge2755 ], [ %726, %._crit_edge2164 ]
  %789 = phi i32 [ %.pre2667, %._crit_edge2755 ], [ %727, %._crit_edge2164 ]
  %790 = phi i32 [ %.pre2669, %._crit_edge2755 ], [ %728, %._crit_edge2164 ]
  %791 = phi i32 [ %.pre2671, %._crit_edge2755 ], [ %729, %._crit_edge2164 ]
  %792 = phi i32 [ %.pre2673, %._crit_edge2755 ], [ %730, %._crit_edge2164 ]
  %793 = phi i32 [ %.pre2675, %._crit_edge2755 ], [ %731, %._crit_edge2164 ]
  %794 = phi i32 [ %.pre2677, %._crit_edge2755 ], [ %732, %._crit_edge2164 ]
  %795 = phi i32 [ %.pre2679, %._crit_edge2755 ], [ %733, %._crit_edge2164 ]
  %796 = phi i32 [ %.pre2681, %._crit_edge2755 ], [ %734, %._crit_edge2164 ]
  %797 = phi i32 [ %.pre2683, %._crit_edge2755 ], [ %735, %._crit_edge2164 ]
  %798 = phi i32 [ %.pre2685, %._crit_edge2755 ], [ %736, %._crit_edge2164 ]
  %799 = phi i32 [ %.pre2687, %._crit_edge2755 ], [ %737, %._crit_edge2164 ]
  %800 = phi i32 [ %.pre2689, %._crit_edge2755 ], [ %738, %._crit_edge2164 ]
  %801 = phi ptr [ %.pre2691, %._crit_edge2755 ], [ %739, %._crit_edge2164 ]
  %802 = phi ptr [ %.pre2693, %._crit_edge2755 ], [ %740, %._crit_edge2164 ]
  %803 = phi ptr [ %.pre2695, %._crit_edge2755 ], [ %741, %._crit_edge2164 ]
  %.promoted2168 = phi i32 [ %.promoted2168.pre, %._crit_edge2755 ], [ %750, %._crit_edge2164 ]
  store i32 23, ptr %4, align 8, !tbaa !11
  %804 = getelementptr inbounds i8, ptr %0, i64 36
  %805 = icmp sgt i32 %.promoted2168, 7
  br i1 %805, label %.._crit_edge2171_crit_edge, label %.lr.ph2170

.._crit_edge2171_crit_edge:                       ; preds = %779
  %.phi.trans.insert2758 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2759 = load i32, ptr %.phi.trans.insert2758, align 8, !tbaa !37
  br label %._crit_edge2171

.lr.ph2170:                                       ; preds = %779
  %806 = load ptr, ptr %0, align 8, !tbaa !5
  %807 = getelementptr inbounds i8, ptr %806, i64 8
  %808 = getelementptr inbounds i8, ptr %0, i64 32
  %809 = getelementptr inbounds i8, ptr %806, i64 12
  %810 = getelementptr inbounds i8, ptr %806, i64 16
  %.promoted2174 = load i32, ptr %807, align 8, !tbaa !38
  br label %819

._crit_edge2171:                                  ; preds = %839, %.._crit_edge2171_crit_edge
  %811 = phi i32 [ %.pre2759, %.._crit_edge2171_crit_edge ], [ %829, %839 ]
  %.lcssa2026 = phi i32 [ %.promoted2168, %.._crit_edge2171_crit_edge ], [ %830, %839 ]
  %812 = add nsw i32 %.lcssa2026, -8
  %813 = lshr i32 %811, %812
  store i32 %812, ptr %804, align 4, !tbaa !12
  %814 = getelementptr inbounds i8, ptr %0, i64 3176
  %815 = load i32, ptr %814, align 8, !tbaa !52
  %816 = shl i32 %815, 8
  %817 = and i32 %813, 255
  %818 = or disjoint i32 %816, %817
  store i32 %818, ptr %814, align 8, !tbaa !52
  br label %841

819:                                              ; preds = %.lr.ph2170, %839
  %820 = phi i32 [ %.promoted2174, %.lr.ph2170 ], [ %832, %839 ]
  %821 = phi i32 [ %.promoted2168, %.lr.ph2170 ], [ %830, %839 ]
  %822 = icmp eq i32 %820, 0
  br i1 %822, label %.loopexit, label %823

823:                                              ; preds = %819
  %824 = load i32, ptr %808, align 8, !tbaa !37
  %825 = shl i32 %824, 8
  %826 = load ptr, ptr %806, align 8, !tbaa !40
  %827 = load i8, ptr %826, align 1, !tbaa !41
  %828 = zext i8 %827 to i32
  %829 = or disjoint i32 %825, %828
  store i32 %829, ptr %808, align 8, !tbaa !37
  %830 = add nsw i32 %821, 8
  store i32 %830, ptr %804, align 4, !tbaa !12
  %831 = getelementptr inbounds i8, ptr %826, i64 1
  store ptr %831, ptr %806, align 8, !tbaa !40
  %832 = add i32 %820, -1
  store i32 %832, ptr %807, align 8, !tbaa !38
  %833 = load i32, ptr %809, align 4, !tbaa !42
  %834 = add i32 %833, 1
  store i32 %834, ptr %809, align 4, !tbaa !42
  %835 = icmp eq i32 %834, 0
  br i1 %835, label %836, label %839

836:                                              ; preds = %823
  %837 = load i32, ptr %810, align 8, !tbaa !43
  %838 = add i32 %837, 1
  store i32 %838, ptr %810, align 8, !tbaa !43
  br label %839

839:                                              ; preds = %836, %823
  %840 = icmp sgt i32 %821, -1
  br i1 %840, label %._crit_edge2171, label %819

841:                                              ; preds = %._crit_edge2760, %._crit_edge2171
  %842 = phi i32 [ %.pre, %._crit_edge2760 ], [ %780, %._crit_edge2171 ]
  %843 = phi i32 [ %.pre2651, %._crit_edge2760 ], [ %781, %._crit_edge2171 ]
  %844 = phi i32 [ %.pre2653, %._crit_edge2760 ], [ %782, %._crit_edge2171 ]
  %845 = phi i32 [ %.pre2655, %._crit_edge2760 ], [ %783, %._crit_edge2171 ]
  %846 = phi i32 [ %.pre2657, %._crit_edge2760 ], [ %784, %._crit_edge2171 ]
  %847 = phi i32 [ %.pre2659, %._crit_edge2760 ], [ %785, %._crit_edge2171 ]
  %848 = phi i32 [ %.pre2661, %._crit_edge2760 ], [ %786, %._crit_edge2171 ]
  %849 = phi i32 [ %.pre2663, %._crit_edge2760 ], [ %787, %._crit_edge2171 ]
  %850 = phi i32 [ %.pre2665, %._crit_edge2760 ], [ %788, %._crit_edge2171 ]
  %851 = phi i32 [ %.pre2667, %._crit_edge2760 ], [ %789, %._crit_edge2171 ]
  %852 = phi i32 [ %.pre2669, %._crit_edge2760 ], [ %790, %._crit_edge2171 ]
  %853 = phi i32 [ %.pre2671, %._crit_edge2760 ], [ %791, %._crit_edge2171 ]
  %854 = phi i32 [ %.pre2673, %._crit_edge2760 ], [ %792, %._crit_edge2171 ]
  %855 = phi i32 [ %.pre2675, %._crit_edge2760 ], [ %793, %._crit_edge2171 ]
  %856 = phi i32 [ %.pre2677, %._crit_edge2760 ], [ %794, %._crit_edge2171 ]
  %857 = phi i32 [ %.pre2679, %._crit_edge2760 ], [ %795, %._crit_edge2171 ]
  %858 = phi i32 [ %.pre2681, %._crit_edge2760 ], [ %796, %._crit_edge2171 ]
  %859 = phi i32 [ %.pre2683, %._crit_edge2760 ], [ %797, %._crit_edge2171 ]
  %860 = phi i32 [ %.pre2685, %._crit_edge2760 ], [ %798, %._crit_edge2171 ]
  %861 = phi i32 [ %.pre2687, %._crit_edge2760 ], [ %799, %._crit_edge2171 ]
  %862 = phi i32 [ %.pre2689, %._crit_edge2760 ], [ %800, %._crit_edge2171 ]
  %863 = phi ptr [ %.pre2691, %._crit_edge2760 ], [ %801, %._crit_edge2171 ]
  %864 = phi ptr [ %.pre2693, %._crit_edge2760 ], [ %802, %._crit_edge2171 ]
  %865 = phi ptr [ %.pre2695, %._crit_edge2760 ], [ %803, %._crit_edge2171 ]
  %.promoted2175 = phi i32 [ %.promoted2175.pre, %._crit_edge2760 ], [ %812, %._crit_edge2171 ]
  store i32 24, ptr %4, align 8, !tbaa !11
  %866 = getelementptr inbounds i8, ptr %0, i64 36
  %867 = icmp sgt i32 %.promoted2175, 0
  br i1 %867, label %.._crit_edge2178_crit_edge, label %.lr.ph2177

.._crit_edge2178_crit_edge:                       ; preds = %841
  %.phi.trans.insert2763 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2764 = load i32, ptr %.phi.trans.insert2763, align 8, !tbaa !37
  br label %._crit_edge2178

.lr.ph2177:                                       ; preds = %841
  %868 = load ptr, ptr %0, align 8, !tbaa !5
  %869 = getelementptr inbounds i8, ptr %868, i64 8
  %870 = getelementptr inbounds i8, ptr %0, i64 32
  %871 = getelementptr inbounds i8, ptr %868, i64 12
  %872 = getelementptr inbounds i8, ptr %868, i64 16
  %.promoted2181 = load i32, ptr %869, align 8, !tbaa !38
  br label %880

._crit_edge2178:                                  ; preds = %900, %.._crit_edge2178_crit_edge
  %873 = phi i32 [ %.pre2764, %.._crit_edge2178_crit_edge ], [ %890, %900 ]
  %.lcssa2022 = phi i32 [ %.promoted2175, %.._crit_edge2178_crit_edge ], [ %891, %900 ]
  %874 = add nsw i32 %.lcssa2022, -1
  %875 = lshr i32 %873, %874
  store i32 %874, ptr %866, align 4, !tbaa !12
  %876 = trunc i32 %875 to i8
  %877 = and i8 %876, 1
  %878 = getelementptr inbounds i8, ptr %0, i64 20
  store i8 %877, ptr %878, align 4, !tbaa !53
  %879 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 0, ptr %879, align 8, !tbaa !54
  br label %902

880:                                              ; preds = %.lr.ph2177, %900
  %881 = phi i32 [ %.promoted2181, %.lr.ph2177 ], [ %893, %900 ]
  %882 = phi i32 [ %.promoted2175, %.lr.ph2177 ], [ %891, %900 ]
  %883 = icmp eq i32 %881, 0
  br i1 %883, label %.loopexit, label %884

884:                                              ; preds = %880
  %885 = load i32, ptr %870, align 8, !tbaa !37
  %886 = shl i32 %885, 8
  %887 = load ptr, ptr %868, align 8, !tbaa !40
  %888 = load i8, ptr %887, align 1, !tbaa !41
  %889 = zext i8 %888 to i32
  %890 = or disjoint i32 %886, %889
  store i32 %890, ptr %870, align 8, !tbaa !37
  %891 = add nsw i32 %882, 8
  store i32 %891, ptr %866, align 4, !tbaa !12
  %892 = getelementptr inbounds i8, ptr %887, i64 1
  store ptr %892, ptr %868, align 8, !tbaa !40
  %893 = add i32 %881, -1
  store i32 %893, ptr %869, align 8, !tbaa !38
  %894 = load i32, ptr %871, align 4, !tbaa !42
  %895 = add i32 %894, 1
  store i32 %895, ptr %871, align 4, !tbaa !42
  %896 = icmp eq i32 %895, 0
  br i1 %896, label %897, label %900

897:                                              ; preds = %884
  %898 = load i32, ptr %872, align 8, !tbaa !43
  %899 = add i32 %898, 1
  store i32 %899, ptr %872, align 8, !tbaa !43
  br label %900

900:                                              ; preds = %897, %884
  %901 = icmp sgt i32 %882, -8
  br i1 %901, label %._crit_edge2178, label %880

902:                                              ; preds = %._crit_edge2765, %._crit_edge2178
  %903 = phi i32 [ %.pre, %._crit_edge2765 ], [ %842, %._crit_edge2178 ]
  %904 = phi i32 [ %.pre2651, %._crit_edge2765 ], [ %843, %._crit_edge2178 ]
  %905 = phi i32 [ %.pre2653, %._crit_edge2765 ], [ %844, %._crit_edge2178 ]
  %906 = phi i32 [ %.pre2655, %._crit_edge2765 ], [ %845, %._crit_edge2178 ]
  %907 = phi i32 [ %.pre2657, %._crit_edge2765 ], [ %846, %._crit_edge2178 ]
  %908 = phi i32 [ %.pre2659, %._crit_edge2765 ], [ %847, %._crit_edge2178 ]
  %909 = phi i32 [ %.pre2661, %._crit_edge2765 ], [ %848, %._crit_edge2178 ]
  %910 = phi i32 [ %.pre2663, %._crit_edge2765 ], [ %849, %._crit_edge2178 ]
  %911 = phi i32 [ %.pre2665, %._crit_edge2765 ], [ %850, %._crit_edge2178 ]
  %912 = phi i32 [ %.pre2667, %._crit_edge2765 ], [ %851, %._crit_edge2178 ]
  %913 = phi i32 [ %.pre2669, %._crit_edge2765 ], [ %852, %._crit_edge2178 ]
  %914 = phi i32 [ %.pre2671, %._crit_edge2765 ], [ %853, %._crit_edge2178 ]
  %915 = phi i32 [ %.pre2673, %._crit_edge2765 ], [ %854, %._crit_edge2178 ]
  %916 = phi i32 [ %.pre2675, %._crit_edge2765 ], [ %855, %._crit_edge2178 ]
  %917 = phi i32 [ %.pre2677, %._crit_edge2765 ], [ %856, %._crit_edge2178 ]
  %918 = phi i32 [ %.pre2679, %._crit_edge2765 ], [ %857, %._crit_edge2178 ]
  %919 = phi i32 [ %.pre2681, %._crit_edge2765 ], [ %858, %._crit_edge2178 ]
  %920 = phi i32 [ %.pre2683, %._crit_edge2765 ], [ %859, %._crit_edge2178 ]
  %921 = phi i32 [ %.pre2685, %._crit_edge2765 ], [ %860, %._crit_edge2178 ]
  %922 = phi i32 [ %.pre2687, %._crit_edge2765 ], [ %861, %._crit_edge2178 ]
  %923 = phi i32 [ %.pre2689, %._crit_edge2765 ], [ %862, %._crit_edge2178 ]
  %924 = phi ptr [ %.pre2691, %._crit_edge2765 ], [ %863, %._crit_edge2178 ]
  %925 = phi ptr [ %.pre2693, %._crit_edge2765 ], [ %864, %._crit_edge2178 ]
  %926 = phi ptr [ %.pre2695, %._crit_edge2765 ], [ %865, %._crit_edge2178 ]
  %.promoted2182 = phi i32 [ %.promoted2182.pre, %._crit_edge2765 ], [ %874, %._crit_edge2178 ]
  store i32 25, ptr %4, align 8, !tbaa !11
  %927 = getelementptr inbounds i8, ptr %0, i64 36
  %928 = icmp sgt i32 %.promoted2182, 7
  br i1 %928, label %.._crit_edge2185_crit_edge, label %.lr.ph2184

.._crit_edge2185_crit_edge:                       ; preds = %902
  %.phi.trans.insert2768 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2769 = load i32, ptr %.phi.trans.insert2768, align 8, !tbaa !37
  br label %._crit_edge2185

.lr.ph2184:                                       ; preds = %902
  %929 = load ptr, ptr %0, align 8, !tbaa !5
  %930 = getelementptr inbounds i8, ptr %929, i64 8
  %931 = getelementptr inbounds i8, ptr %0, i64 32
  %932 = getelementptr inbounds i8, ptr %929, i64 12
  %933 = getelementptr inbounds i8, ptr %929, i64 16
  %.promoted2188 = load i32, ptr %930, align 8, !tbaa !38
  br label %942

._crit_edge2185:                                  ; preds = %962, %.._crit_edge2185_crit_edge
  %934 = phi i32 [ %.pre2769, %.._crit_edge2185_crit_edge ], [ %952, %962 ]
  %.lcssa2018 = phi i32 [ %.promoted2182, %.._crit_edge2185_crit_edge ], [ %953, %962 ]
  %935 = add nsw i32 %.lcssa2018, -8
  %936 = lshr i32 %934, %935
  store i32 %935, ptr %927, align 4, !tbaa !12
  %937 = getelementptr inbounds i8, ptr %0, i64 56
  %938 = load i32, ptr %937, align 8, !tbaa !54
  %939 = shl i32 %938, 8
  %940 = and i32 %936, 255
  %941 = or disjoint i32 %939, %940
  store i32 %941, ptr %937, align 8, !tbaa !54
  br label %964

942:                                              ; preds = %.lr.ph2184, %962
  %943 = phi i32 [ %.promoted2188, %.lr.ph2184 ], [ %955, %962 ]
  %944 = phi i32 [ %.promoted2182, %.lr.ph2184 ], [ %953, %962 ]
  %945 = icmp eq i32 %943, 0
  br i1 %945, label %.loopexit, label %946

946:                                              ; preds = %942
  %947 = load i32, ptr %931, align 8, !tbaa !37
  %948 = shl i32 %947, 8
  %949 = load ptr, ptr %929, align 8, !tbaa !40
  %950 = load i8, ptr %949, align 1, !tbaa !41
  %951 = zext i8 %950 to i32
  %952 = or disjoint i32 %948, %951
  store i32 %952, ptr %931, align 8, !tbaa !37
  %953 = add nsw i32 %944, 8
  store i32 %953, ptr %927, align 4, !tbaa !12
  %954 = getelementptr inbounds i8, ptr %949, i64 1
  store ptr %954, ptr %929, align 8, !tbaa !40
  %955 = add i32 %943, -1
  store i32 %955, ptr %930, align 8, !tbaa !38
  %956 = load i32, ptr %932, align 4, !tbaa !42
  %957 = add i32 %956, 1
  store i32 %957, ptr %932, align 4, !tbaa !42
  %958 = icmp eq i32 %957, 0
  br i1 %958, label %959, label %962

959:                                              ; preds = %946
  %960 = load i32, ptr %933, align 8, !tbaa !43
  %961 = add i32 %960, 1
  store i32 %961, ptr %933, align 8, !tbaa !43
  br label %962

962:                                              ; preds = %959, %946
  %963 = icmp sgt i32 %944, -1
  br i1 %963, label %._crit_edge2185, label %942

964:                                              ; preds = %._crit_edge2770, %._crit_edge2185
  %965 = phi i32 [ %.pre, %._crit_edge2770 ], [ %903, %._crit_edge2185 ]
  %966 = phi i32 [ %.pre2651, %._crit_edge2770 ], [ %904, %._crit_edge2185 ]
  %967 = phi i32 [ %.pre2653, %._crit_edge2770 ], [ %905, %._crit_edge2185 ]
  %968 = phi i32 [ %.pre2655, %._crit_edge2770 ], [ %906, %._crit_edge2185 ]
  %969 = phi i32 [ %.pre2657, %._crit_edge2770 ], [ %907, %._crit_edge2185 ]
  %970 = phi i32 [ %.pre2659, %._crit_edge2770 ], [ %908, %._crit_edge2185 ]
  %971 = phi i32 [ %.pre2661, %._crit_edge2770 ], [ %909, %._crit_edge2185 ]
  %972 = phi i32 [ %.pre2663, %._crit_edge2770 ], [ %910, %._crit_edge2185 ]
  %973 = phi i32 [ %.pre2665, %._crit_edge2770 ], [ %911, %._crit_edge2185 ]
  %974 = phi i32 [ %.pre2667, %._crit_edge2770 ], [ %912, %._crit_edge2185 ]
  %975 = phi i32 [ %.pre2669, %._crit_edge2770 ], [ %913, %._crit_edge2185 ]
  %976 = phi i32 [ %.pre2671, %._crit_edge2770 ], [ %914, %._crit_edge2185 ]
  %977 = phi i32 [ %.pre2673, %._crit_edge2770 ], [ %915, %._crit_edge2185 ]
  %978 = phi i32 [ %.pre2675, %._crit_edge2770 ], [ %916, %._crit_edge2185 ]
  %979 = phi i32 [ %.pre2677, %._crit_edge2770 ], [ %917, %._crit_edge2185 ]
  %980 = phi i32 [ %.pre2679, %._crit_edge2770 ], [ %918, %._crit_edge2185 ]
  %981 = phi i32 [ %.pre2681, %._crit_edge2770 ], [ %919, %._crit_edge2185 ]
  %982 = phi i32 [ %.pre2683, %._crit_edge2770 ], [ %920, %._crit_edge2185 ]
  %983 = phi i32 [ %.pre2685, %._crit_edge2770 ], [ %921, %._crit_edge2185 ]
  %984 = phi i32 [ %.pre2687, %._crit_edge2770 ], [ %922, %._crit_edge2185 ]
  %985 = phi i32 [ %.pre2689, %._crit_edge2770 ], [ %923, %._crit_edge2185 ]
  %986 = phi ptr [ %.pre2691, %._crit_edge2770 ], [ %924, %._crit_edge2185 ]
  %987 = phi ptr [ %.pre2693, %._crit_edge2770 ], [ %925, %._crit_edge2185 ]
  %988 = phi ptr [ %.pre2695, %._crit_edge2770 ], [ %926, %._crit_edge2185 ]
  %.promoted2189 = phi i32 [ %.promoted2189.pre, %._crit_edge2770 ], [ %935, %._crit_edge2185 ]
  store i32 26, ptr %4, align 8, !tbaa !11
  %989 = getelementptr inbounds i8, ptr %0, i64 36
  %990 = icmp sgt i32 %.promoted2189, 7
  br i1 %990, label %.._crit_edge2192_crit_edge, label %.lr.ph2191

.._crit_edge2192_crit_edge:                       ; preds = %964
  %.phi.trans.insert2773 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2774 = load i32, ptr %.phi.trans.insert2773, align 8, !tbaa !37
  br label %._crit_edge2192

.lr.ph2191:                                       ; preds = %964
  %991 = load ptr, ptr %0, align 8, !tbaa !5
  %992 = getelementptr inbounds i8, ptr %991, i64 8
  %993 = getelementptr inbounds i8, ptr %0, i64 32
  %994 = getelementptr inbounds i8, ptr %991, i64 12
  %995 = getelementptr inbounds i8, ptr %991, i64 16
  %.promoted2195 = load i32, ptr %992, align 8, !tbaa !38
  br label %1004

._crit_edge2192:                                  ; preds = %1024, %.._crit_edge2192_crit_edge
  %996 = phi i32 [ %.pre2774, %.._crit_edge2192_crit_edge ], [ %1014, %1024 ]
  %.lcssa2014 = phi i32 [ %.promoted2189, %.._crit_edge2192_crit_edge ], [ %1015, %1024 ]
  %997 = add nsw i32 %.lcssa2014, -8
  %998 = lshr i32 %996, %997
  store i32 %997, ptr %989, align 4, !tbaa !12
  %999 = getelementptr inbounds i8, ptr %0, i64 56
  %1000 = load i32, ptr %999, align 8, !tbaa !54
  %1001 = shl i32 %1000, 8
  %1002 = and i32 %998, 255
  %1003 = or disjoint i32 %1001, %1002
  store i32 %1003, ptr %999, align 8, !tbaa !54
  br label %1026

1004:                                             ; preds = %.lr.ph2191, %1024
  %1005 = phi i32 [ %.promoted2195, %.lr.ph2191 ], [ %1017, %1024 ]
  %1006 = phi i32 [ %.promoted2189, %.lr.ph2191 ], [ %1015, %1024 ]
  %1007 = icmp eq i32 %1005, 0
  br i1 %1007, label %.loopexit, label %1008

1008:                                             ; preds = %1004
  %1009 = load i32, ptr %993, align 8, !tbaa !37
  %1010 = shl i32 %1009, 8
  %1011 = load ptr, ptr %991, align 8, !tbaa !40
  %1012 = load i8, ptr %1011, align 1, !tbaa !41
  %1013 = zext i8 %1012 to i32
  %1014 = or disjoint i32 %1010, %1013
  store i32 %1014, ptr %993, align 8, !tbaa !37
  %1015 = add nsw i32 %1006, 8
  store i32 %1015, ptr %989, align 4, !tbaa !12
  %1016 = getelementptr inbounds i8, ptr %1011, i64 1
  store ptr %1016, ptr %991, align 8, !tbaa !40
  %1017 = add i32 %1005, -1
  store i32 %1017, ptr %992, align 8, !tbaa !38
  %1018 = load i32, ptr %994, align 4, !tbaa !42
  %1019 = add i32 %1018, 1
  store i32 %1019, ptr %994, align 4, !tbaa !42
  %1020 = icmp eq i32 %1019, 0
  br i1 %1020, label %1021, label %1024

1021:                                             ; preds = %1008
  %1022 = load i32, ptr %995, align 8, !tbaa !43
  %1023 = add i32 %1022, 1
  store i32 %1023, ptr %995, align 8, !tbaa !43
  br label %1024

1024:                                             ; preds = %1021, %1008
  %1025 = icmp sgt i32 %1006, -1
  br i1 %1025, label %._crit_edge2192, label %1004

1026:                                             ; preds = %._crit_edge2775, %._crit_edge2192
  %1027 = phi i32 [ %.pre, %._crit_edge2775 ], [ %965, %._crit_edge2192 ]
  %1028 = phi i32 [ %.pre2651, %._crit_edge2775 ], [ %966, %._crit_edge2192 ]
  %1029 = phi i32 [ %.pre2653, %._crit_edge2775 ], [ %967, %._crit_edge2192 ]
  %1030 = phi i32 [ %.pre2655, %._crit_edge2775 ], [ %968, %._crit_edge2192 ]
  %1031 = phi i32 [ %.pre2657, %._crit_edge2775 ], [ %969, %._crit_edge2192 ]
  %1032 = phi i32 [ %.pre2659, %._crit_edge2775 ], [ %970, %._crit_edge2192 ]
  %1033 = phi i32 [ %.pre2661, %._crit_edge2775 ], [ %971, %._crit_edge2192 ]
  %1034 = phi i32 [ %.pre2663, %._crit_edge2775 ], [ %972, %._crit_edge2192 ]
  %1035 = phi i32 [ %.pre2665, %._crit_edge2775 ], [ %973, %._crit_edge2192 ]
  %1036 = phi i32 [ %.pre2667, %._crit_edge2775 ], [ %974, %._crit_edge2192 ]
  %1037 = phi i32 [ %.pre2669, %._crit_edge2775 ], [ %975, %._crit_edge2192 ]
  %1038 = phi i32 [ %.pre2671, %._crit_edge2775 ], [ %976, %._crit_edge2192 ]
  %1039 = phi i32 [ %.pre2673, %._crit_edge2775 ], [ %977, %._crit_edge2192 ]
  %1040 = phi i32 [ %.pre2675, %._crit_edge2775 ], [ %978, %._crit_edge2192 ]
  %1041 = phi i32 [ %.pre2677, %._crit_edge2775 ], [ %979, %._crit_edge2192 ]
  %1042 = phi i32 [ %.pre2679, %._crit_edge2775 ], [ %980, %._crit_edge2192 ]
  %1043 = phi i32 [ %.pre2681, %._crit_edge2775 ], [ %981, %._crit_edge2192 ]
  %1044 = phi i32 [ %.pre2683, %._crit_edge2775 ], [ %982, %._crit_edge2192 ]
  %1045 = phi i32 [ %.pre2685, %._crit_edge2775 ], [ %983, %._crit_edge2192 ]
  %1046 = phi i32 [ %.pre2687, %._crit_edge2775 ], [ %984, %._crit_edge2192 ]
  %1047 = phi i32 [ %.pre2689, %._crit_edge2775 ], [ %985, %._crit_edge2192 ]
  %1048 = phi ptr [ %.pre2691, %._crit_edge2775 ], [ %986, %._crit_edge2192 ]
  %1049 = phi ptr [ %.pre2693, %._crit_edge2775 ], [ %987, %._crit_edge2192 ]
  %1050 = phi ptr [ %.pre2695, %._crit_edge2775 ], [ %988, %._crit_edge2192 ]
  %.promoted2196 = phi i32 [ %.promoted2196.pre, %._crit_edge2775 ], [ %997, %._crit_edge2192 ]
  store i32 27, ptr %4, align 8, !tbaa !11
  %1051 = getelementptr inbounds i8, ptr %0, i64 36
  %1052 = icmp sgt i32 %.promoted2196, 7
  br i1 %1052, label %.._crit_edge2199_crit_edge, label %.lr.ph2198

.._crit_edge2199_crit_edge:                       ; preds = %1026
  %.phi.trans.insert2778 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2779 = load i32, ptr %.phi.trans.insert2778, align 8, !tbaa !37
  br label %._crit_edge2199

.lr.ph2198:                                       ; preds = %1026
  %1053 = load ptr, ptr %0, align 8, !tbaa !5
  %1054 = getelementptr inbounds i8, ptr %1053, i64 8
  %1055 = getelementptr inbounds i8, ptr %0, i64 32
  %1056 = getelementptr inbounds i8, ptr %1053, i64 12
  %1057 = getelementptr inbounds i8, ptr %1053, i64 16
  %.promoted2202 = load i32, ptr %1054, align 8, !tbaa !38
  br label %1067

._crit_edge2199:                                  ; preds = %1087, %.._crit_edge2199_crit_edge
  %1058 = phi i32 [ %.pre2779, %.._crit_edge2199_crit_edge ], [ %1077, %1087 ]
  %.lcssa2010 = phi i32 [ %.promoted2196, %.._crit_edge2199_crit_edge ], [ %1078, %1087 ]
  %1059 = add nsw i32 %.lcssa2010, -8
  %1060 = lshr i32 %1058, %1059
  store i32 %1059, ptr %1051, align 4, !tbaa !12
  %1061 = getelementptr inbounds i8, ptr %0, i64 56
  %1062 = load i32, ptr %1061, align 8, !tbaa !54
  %1063 = shl i32 %1062, 8
  %1064 = and i32 %1060, 255
  %1065 = or disjoint i32 %1063, %1064
  store i32 %1065, ptr %1061, align 8, !tbaa !54
  %1066 = icmp slt i32 %1063, 0
  br i1 %1066, label %.loopexit, label %1089

1067:                                             ; preds = %.lr.ph2198, %1087
  %1068 = phi i32 [ %.promoted2202, %.lr.ph2198 ], [ %1080, %1087 ]
  %1069 = phi i32 [ %.promoted2196, %.lr.ph2198 ], [ %1078, %1087 ]
  %1070 = icmp eq i32 %1068, 0
  br i1 %1070, label %.loopexit, label %1071

1071:                                             ; preds = %1067
  %1072 = load i32, ptr %1055, align 8, !tbaa !37
  %1073 = shl i32 %1072, 8
  %1074 = load ptr, ptr %1053, align 8, !tbaa !40
  %1075 = load i8, ptr %1074, align 1, !tbaa !41
  %1076 = zext i8 %1075 to i32
  %1077 = or disjoint i32 %1073, %1076
  store i32 %1077, ptr %1055, align 8, !tbaa !37
  %1078 = add nsw i32 %1069, 8
  store i32 %1078, ptr %1051, align 4, !tbaa !12
  %1079 = getelementptr inbounds i8, ptr %1074, i64 1
  store ptr %1079, ptr %1053, align 8, !tbaa !40
  %1080 = add i32 %1068, -1
  store i32 %1080, ptr %1054, align 8, !tbaa !38
  %1081 = load i32, ptr %1056, align 4, !tbaa !42
  %1082 = add i32 %1081, 1
  store i32 %1082, ptr %1056, align 4, !tbaa !42
  %1083 = icmp eq i32 %1082, 0
  br i1 %1083, label %1084, label %1087

1084:                                             ; preds = %1071
  %1085 = load i32, ptr %1057, align 8, !tbaa !43
  %1086 = add i32 %1085, 1
  store i32 %1086, ptr %1057, align 8, !tbaa !43
  br label %1087

1087:                                             ; preds = %1084, %1071
  %1088 = icmp sgt i32 %1069, -1
  br i1 %1088, label %._crit_edge2199, label %1067

1089:                                             ; preds = %._crit_edge2199
  %1090 = getelementptr inbounds i8, ptr %0, i64 40
  %1091 = load i32, ptr %1090, align 8, !tbaa !44
  %1092 = mul nsw i32 %1091, 100000
  %1093 = or disjoint i32 %1092, 10
  %1094 = icmp sgt i32 %1065, %1093
  br i1 %1094, label %.loopexit, label %1095

1095:                                             ; preds = %1089, %._crit_edge2370
  %1096 = phi i32 [ %1122, %._crit_edge2370 ], [ %1028, %1089 ]
  %1097 = phi i32 [ %1123, %._crit_edge2370 ], [ %1029, %1089 ]
  %1098 = phi i32 [ %1124, %._crit_edge2370 ], [ %1030, %1089 ]
  %1099 = phi i32 [ %1125, %._crit_edge2370 ], [ %1031, %1089 ]
  %1100 = phi i32 [ %1126, %._crit_edge2370 ], [ %1032, %1089 ]
  %1101 = phi i32 [ %1127, %._crit_edge2370 ], [ %1033, %1089 ]
  %1102 = phi i32 [ %1128, %._crit_edge2370 ], [ %1034, %1089 ]
  %1103 = phi i32 [ %1129, %._crit_edge2370 ], [ %1035, %1089 ]
  %1104 = phi i32 [ %1130, %._crit_edge2370 ], [ %1036, %1089 ]
  %1105 = phi i32 [ %1131, %._crit_edge2370 ], [ %1037, %1089 ]
  %1106 = phi i32 [ %1132, %._crit_edge2370 ], [ %1038, %1089 ]
  %1107 = phi i32 [ %1133, %._crit_edge2370 ], [ %1039, %1089 ]
  %1108 = phi i32 [ %1134, %._crit_edge2370 ], [ %1040, %1089 ]
  %1109 = phi i32 [ %1135, %._crit_edge2370 ], [ %1041, %1089 ]
  %1110 = phi i32 [ %1136, %._crit_edge2370 ], [ %1042, %1089 ]
  %1111 = phi i32 [ %1137, %._crit_edge2370 ], [ %1043, %1089 ]
  %1112 = phi i32 [ %1138, %._crit_edge2370 ], [ %1044, %1089 ]
  %1113 = phi i32 [ %1139, %._crit_edge2370 ], [ %1045, %1089 ]
  %1114 = phi i32 [ %1140, %._crit_edge2370 ], [ %1046, %1089 ]
  %1115 = phi i32 [ %1141, %._crit_edge2370 ], [ %1047, %1089 ]
  %1116 = phi ptr [ %1142, %._crit_edge2370 ], [ %1048, %1089 ]
  %1117 = phi ptr [ %1143, %._crit_edge2370 ], [ %1049, %1089 ]
  %1118 = phi ptr [ %1144, %._crit_edge2370 ], [ %1050, %1089 ]
  %.01376 = phi i32 [ %1159, %._crit_edge2370 ], [ 0, %1089 ]
  %1119 = icmp slt i32 %.01376, 16
  br i1 %1119, label %1121, label %.preheader1891

.preheader1891:                                   ; preds = %1095
  %1120 = getelementptr inbounds i8, ptr %0, i64 3196
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %1120, i8 0, i64 256, i1 false), !tbaa !41
  br label %.loopexit1892

1121:                                             ; preds = %1095, %10
  %1122 = phi i32 [ %.pre2651, %10 ], [ %1096, %1095 ]
  %1123 = phi i32 [ %.pre2653, %10 ], [ %1097, %1095 ]
  %1124 = phi i32 [ %.pre2655, %10 ], [ %1098, %1095 ]
  %1125 = phi i32 [ %.pre2657, %10 ], [ %1099, %1095 ]
  %1126 = phi i32 [ %.pre2659, %10 ], [ %1100, %1095 ]
  %1127 = phi i32 [ %.pre2661, %10 ], [ %1101, %1095 ]
  %1128 = phi i32 [ %.pre2663, %10 ], [ %1102, %1095 ]
  %1129 = phi i32 [ %.pre2665, %10 ], [ %1103, %1095 ]
  %1130 = phi i32 [ %.pre2667, %10 ], [ %1104, %1095 ]
  %1131 = phi i32 [ %.pre2669, %10 ], [ %1105, %1095 ]
  %1132 = phi i32 [ %.pre2671, %10 ], [ %1106, %1095 ]
  %1133 = phi i32 [ %.pre2673, %10 ], [ %1107, %1095 ]
  %1134 = phi i32 [ %.pre2675, %10 ], [ %1108, %1095 ]
  %1135 = phi i32 [ %.pre2677, %10 ], [ %1109, %1095 ]
  %1136 = phi i32 [ %.pre2679, %10 ], [ %1110, %1095 ]
  %1137 = phi i32 [ %.pre2681, %10 ], [ %1111, %1095 ]
  %1138 = phi i32 [ %.pre2683, %10 ], [ %1112, %1095 ]
  %1139 = phi i32 [ %.pre2685, %10 ], [ %1113, %1095 ]
  %1140 = phi i32 [ %.pre2687, %10 ], [ %1114, %1095 ]
  %1141 = phi i32 [ %.pre2689, %10 ], [ %1115, %1095 ]
  %1142 = phi ptr [ %.pre2691, %10 ], [ %1116, %1095 ]
  %1143 = phi ptr [ %.pre2693, %10 ], [ %1117, %1095 ]
  %1144 = phi ptr [ %.pre2695, %10 ], [ %1118, %1095 ]
  %.11377 = phi i32 [ %.pre, %10 ], [ %.01376, %1095 ]
  store i32 28, ptr %4, align 8, !tbaa !11
  %1145 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2367 = load i32, ptr %1145, align 4, !tbaa !12
  %1146 = icmp sgt i32 %.promoted2367, 0
  br i1 %1146, label %.._crit_edge2370_crit_edge, label %.lr.ph2369

.._crit_edge2370_crit_edge:                       ; preds = %1121
  %.phi.trans.insert2828 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2829 = load i32, ptr %.phi.trans.insert2828, align 8, !tbaa !37
  br label %._crit_edge2370

.lr.ph2369:                                       ; preds = %1121
  %1147 = load ptr, ptr %0, align 8, !tbaa !5
  %1148 = getelementptr inbounds i8, ptr %1147, i64 8
  %1149 = getelementptr inbounds i8, ptr %0, i64 32
  %1150 = getelementptr inbounds i8, ptr %1147, i64 12
  %1151 = getelementptr inbounds i8, ptr %1147, i64 16
  %.promoted2373 = load i32, ptr %1148, align 8, !tbaa !38
  br label %1160

._crit_edge2370:                                  ; preds = %1180, %.._crit_edge2370_crit_edge
  %1152 = phi i32 [ %.pre2829, %.._crit_edge2370_crit_edge ], [ %1170, %1180 ]
  %.lcssa1946 = phi i32 [ %.promoted2367, %.._crit_edge2370_crit_edge ], [ %1171, %1180 ]
  %1153 = add nsw i32 %.lcssa1946, -1
  store i32 %1153, ptr %1145, align 4, !tbaa !12
  %1154 = shl nuw i32 1, %1153
  %1155 = and i32 %1152, %1154
  %.not1835 = icmp ne i32 %1155, 0
  %1156 = getelementptr inbounds i8, ptr %0, i64 3452
  %1157 = sext i32 %.11377 to i64
  %1158 = getelementptr inbounds [16 x i8], ptr %1156, i64 0, i64 %1157
  %. = zext i1 %.not1835 to i8
  store i8 %., ptr %1158, align 1, !tbaa !41
  %1159 = add nsw i32 %.11377, 1
  br label %1095, !llvm.loop !55

1160:                                             ; preds = %.lr.ph2369, %1180
  %1161 = phi i32 [ %.promoted2373, %.lr.ph2369 ], [ %1173, %1180 ]
  %1162 = phi i32 [ %.promoted2367, %.lr.ph2369 ], [ %1171, %1180 ]
  %1163 = icmp eq i32 %1161, 0
  br i1 %1163, label %.loopexit, label %1164

1164:                                             ; preds = %1160
  %1165 = load i32, ptr %1149, align 8, !tbaa !37
  %1166 = shl i32 %1165, 8
  %1167 = load ptr, ptr %1147, align 8, !tbaa !40
  %1168 = load i8, ptr %1167, align 1, !tbaa !41
  %1169 = zext i8 %1168 to i32
  %1170 = or disjoint i32 %1166, %1169
  store i32 %1170, ptr %1149, align 8, !tbaa !37
  %1171 = add nsw i32 %1162, 8
  store i32 %1171, ptr %1145, align 4, !tbaa !12
  %1172 = getelementptr inbounds i8, ptr %1167, i64 1
  store ptr %1172, ptr %1147, align 8, !tbaa !40
  %1173 = add i32 %1161, -1
  store i32 %1173, ptr %1148, align 8, !tbaa !38
  %1174 = load i32, ptr %1150, align 4, !tbaa !42
  %1175 = add i32 %1174, 1
  store i32 %1175, ptr %1150, align 4, !tbaa !42
  %1176 = icmp eq i32 %1175, 0
  br i1 %1176, label %1177, label %1180

1177:                                             ; preds = %1164
  %1178 = load i32, ptr %1151, align 8, !tbaa !43
  %1179 = add i32 %1178, 1
  store i32 %1179, ptr %1151, align 8, !tbaa !43
  br label %1180

1180:                                             ; preds = %1177, %1164
  %1181 = icmp sgt i32 %1162, -8
  br i1 %1181, label %._crit_edge2370, label %1160

.loopexit1892:                                    ; preds = %.preheader1891, %1298
  %1182 = phi i32 [ %1299, %1298 ], [ %1097, %.preheader1891 ]
  %1183 = phi i32 [ %1300, %1298 ], [ %1098, %.preheader1891 ]
  %1184 = phi i32 [ %1301, %1298 ], [ %1099, %.preheader1891 ]
  %1185 = phi i32 [ %1302, %1298 ], [ %1100, %.preheader1891 ]
  %1186 = phi i32 [ %1303, %1298 ], [ %1101, %.preheader1891 ]
  %1187 = phi i32 [ %1304, %1298 ], [ %1102, %.preheader1891 ]
  %1188 = phi i32 [ %1305, %1298 ], [ %1103, %.preheader1891 ]
  %1189 = phi i32 [ %1306, %1298 ], [ %1104, %.preheader1891 ]
  %1190 = phi i32 [ %1307, %1298 ], [ %1105, %.preheader1891 ]
  %1191 = phi i32 [ %1308, %1298 ], [ %1106, %.preheader1891 ]
  %1192 = phi i32 [ %1309, %1298 ], [ %1107, %.preheader1891 ]
  %1193 = phi i32 [ %1310, %1298 ], [ %1108, %.preheader1891 ]
  %1194 = phi i32 [ %1311, %1298 ], [ %1109, %.preheader1891 ]
  %1195 = phi i32 [ %1312, %1298 ], [ %1110, %.preheader1891 ]
  %1196 = phi i32 [ %1313, %1298 ], [ %1111, %.preheader1891 ]
  %1197 = phi i32 [ %1314, %1298 ], [ %1112, %.preheader1891 ]
  %1198 = phi i32 [ %1315, %1298 ], [ %1113, %.preheader1891 ]
  %1199 = phi i32 [ %1316, %1298 ], [ %1114, %.preheader1891 ]
  %1200 = phi i32 [ %1317, %1298 ], [ %1115, %.preheader1891 ]
  %1201 = phi ptr [ %1318, %1298 ], [ %1116, %.preheader1891 ]
  %1202 = phi ptr [ %1319, %1298 ], [ %1117, %.preheader1891 ]
  %1203 = phi ptr [ %1320, %1298 ], [ %1118, %.preheader1891 ]
  %.01378 = phi i32 [ %.31381, %1298 ], [ %1096, %.preheader1891 ]
  %.3 = phi i32 [ %1321, %1298 ], [ 0, %.preheader1891 ]
  %1204 = icmp slt i32 %.3, 16
  br i1 %1204, label %1205, label %1322

1205:                                             ; preds = %.loopexit1892
  %1206 = getelementptr inbounds i8, ptr %0, i64 3452
  %1207 = sext i32 %.3 to i64
  %1208 = getelementptr inbounds [16 x i8], ptr %1206, i64 0, i64 %1207
  %1209 = load i8, ptr %1208, align 1, !tbaa !41
  %.not1833 = icmp eq i8 %1209, 0
  br i1 %.not1833, label %1298, label %1210

1210:                                             ; preds = %1205, %1296
  %1211 = phi i32 [ %1235, %1296 ], [ %1182, %1205 ]
  %1212 = phi i32 [ %1236, %1296 ], [ %1183, %1205 ]
  %1213 = phi i32 [ %1237, %1296 ], [ %1184, %1205 ]
  %1214 = phi i32 [ %1238, %1296 ], [ %1185, %1205 ]
  %1215 = phi i32 [ %1239, %1296 ], [ %1186, %1205 ]
  %1216 = phi i32 [ %1240, %1296 ], [ %1187, %1205 ]
  %1217 = phi i32 [ %1241, %1296 ], [ %1188, %1205 ]
  %1218 = phi i32 [ %1242, %1296 ], [ %1189, %1205 ]
  %1219 = phi i32 [ %1243, %1296 ], [ %1190, %1205 ]
  %1220 = phi i32 [ %1244, %1296 ], [ %1191, %1205 ]
  %1221 = phi i32 [ %1245, %1296 ], [ %1192, %1205 ]
  %1222 = phi i32 [ %1246, %1296 ], [ %1193, %1205 ]
  %1223 = phi i32 [ %1247, %1296 ], [ %1194, %1205 ]
  %1224 = phi i32 [ %1248, %1296 ], [ %1195, %1205 ]
  %1225 = phi i32 [ %1249, %1296 ], [ %1196, %1205 ]
  %1226 = phi i32 [ %1250, %1296 ], [ %1197, %1205 ]
  %1227 = phi i32 [ %1251, %1296 ], [ %1198, %1205 ]
  %1228 = phi i32 [ %1252, %1296 ], [ %1199, %1205 ]
  %1229 = phi i32 [ %1253, %1296 ], [ %1200, %1205 ]
  %1230 = phi ptr [ %1254, %1296 ], [ %1201, %1205 ]
  %1231 = phi ptr [ %1255, %1296 ], [ %1202, %1205 ]
  %1232 = phi ptr [ %1256, %1296 ], [ %1203, %1205 ]
  %.11379 = phi i32 [ %1297, %1296 ], [ 0, %1205 ]
  %.4 = phi i32 [ %.5, %1296 ], [ %.3, %1205 ]
  %1233 = icmp slt i32 %.11379, 16
  br i1 %1233, label %1234, label %1298

1234:                                             ; preds = %1210, %10
  %1235 = phi i32 [ %.pre2653, %10 ], [ %1211, %1210 ]
  %1236 = phi i32 [ %.pre2655, %10 ], [ %1212, %1210 ]
  %1237 = phi i32 [ %.pre2657, %10 ], [ %1213, %1210 ]
  %1238 = phi i32 [ %.pre2659, %10 ], [ %1214, %1210 ]
  %1239 = phi i32 [ %.pre2661, %10 ], [ %1215, %1210 ]
  %1240 = phi i32 [ %.pre2663, %10 ], [ %1216, %1210 ]
  %1241 = phi i32 [ %.pre2665, %10 ], [ %1217, %1210 ]
  %1242 = phi i32 [ %.pre2667, %10 ], [ %1218, %1210 ]
  %1243 = phi i32 [ %.pre2669, %10 ], [ %1219, %1210 ]
  %1244 = phi i32 [ %.pre2671, %10 ], [ %1220, %1210 ]
  %1245 = phi i32 [ %.pre2673, %10 ], [ %1221, %1210 ]
  %1246 = phi i32 [ %.pre2675, %10 ], [ %1222, %1210 ]
  %1247 = phi i32 [ %.pre2677, %10 ], [ %1223, %1210 ]
  %1248 = phi i32 [ %.pre2679, %10 ], [ %1224, %1210 ]
  %1249 = phi i32 [ %.pre2681, %10 ], [ %1225, %1210 ]
  %1250 = phi i32 [ %.pre2683, %10 ], [ %1226, %1210 ]
  %1251 = phi i32 [ %.pre2685, %10 ], [ %1227, %1210 ]
  %1252 = phi i32 [ %.pre2687, %10 ], [ %1228, %1210 ]
  %1253 = phi i32 [ %.pre2689, %10 ], [ %1229, %1210 ]
  %1254 = phi ptr [ %.pre2691, %10 ], [ %1230, %1210 ]
  %1255 = phi ptr [ %.pre2693, %10 ], [ %1231, %1210 ]
  %1256 = phi ptr [ %.pre2695, %10 ], [ %1232, %1210 ]
  %.21380 = phi i32 [ %.pre2651, %10 ], [ %.11379, %1210 ]
  %.5 = phi i32 [ %.pre, %10 ], [ %.4, %1210 ]
  store i32 29, ptr %4, align 8, !tbaa !11
  %1257 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2360 = load i32, ptr %1257, align 4, !tbaa !12
  %1258 = icmp sgt i32 %.promoted2360, 0
  br i1 %1258, label %.._crit_edge2363_crit_edge, label %.lr.ph2362

.._crit_edge2363_crit_edge:                       ; preds = %1234
  %.phi.trans.insert2826 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2827 = load i32, ptr %.phi.trans.insert2826, align 8, !tbaa !37
  br label %._crit_edge2363

.lr.ph2362:                                       ; preds = %1234
  %1259 = load ptr, ptr %0, align 8, !tbaa !5
  %1260 = getelementptr inbounds i8, ptr %1259, i64 8
  %1261 = getelementptr inbounds i8, ptr %0, i64 32
  %1262 = getelementptr inbounds i8, ptr %1259, i64 12
  %1263 = getelementptr inbounds i8, ptr %1259, i64 16
  %.promoted2366 = load i32, ptr %1260, align 8, !tbaa !38
  br label %1268

._crit_edge2363:                                  ; preds = %1288, %.._crit_edge2363_crit_edge
  %1264 = phi i32 [ %.pre2827, %.._crit_edge2363_crit_edge ], [ %1278, %1288 ]
  %.lcssa1950 = phi i32 [ %.promoted2360, %.._crit_edge2363_crit_edge ], [ %1279, %1288 ]
  %1265 = add nsw i32 %.lcssa1950, -1
  store i32 %1265, ptr %1257, align 4, !tbaa !12
  %1266 = shl nuw i32 1, %1265
  %1267 = and i32 %1264, %1266
  %.not1834 = icmp eq i32 %1267, 0
  br i1 %.not1834, label %1296, label %1290

1268:                                             ; preds = %.lr.ph2362, %1288
  %1269 = phi i32 [ %.promoted2366, %.lr.ph2362 ], [ %1281, %1288 ]
  %1270 = phi i32 [ %.promoted2360, %.lr.ph2362 ], [ %1279, %1288 ]
  %1271 = icmp eq i32 %1269, 0
  br i1 %1271, label %.loopexit, label %1272

1272:                                             ; preds = %1268
  %1273 = load i32, ptr %1261, align 8, !tbaa !37
  %1274 = shl i32 %1273, 8
  %1275 = load ptr, ptr %1259, align 8, !tbaa !40
  %1276 = load i8, ptr %1275, align 1, !tbaa !41
  %1277 = zext i8 %1276 to i32
  %1278 = or disjoint i32 %1274, %1277
  store i32 %1278, ptr %1261, align 8, !tbaa !37
  %1279 = add nsw i32 %1270, 8
  store i32 %1279, ptr %1257, align 4, !tbaa !12
  %1280 = getelementptr inbounds i8, ptr %1275, i64 1
  store ptr %1280, ptr %1259, align 8, !tbaa !40
  %1281 = add i32 %1269, -1
  store i32 %1281, ptr %1260, align 8, !tbaa !38
  %1282 = load i32, ptr %1262, align 4, !tbaa !42
  %1283 = add i32 %1282, 1
  store i32 %1283, ptr %1262, align 4, !tbaa !42
  %1284 = icmp eq i32 %1283, 0
  br i1 %1284, label %1285, label %1288

1285:                                             ; preds = %1272
  %1286 = load i32, ptr %1263, align 8, !tbaa !43
  %1287 = add i32 %1286, 1
  store i32 %1287, ptr %1263, align 8, !tbaa !43
  br label %1288

1288:                                             ; preds = %1285, %1272
  %1289 = icmp sgt i32 %1270, -8
  br i1 %1289, label %._crit_edge2363, label %1268

1290:                                             ; preds = %._crit_edge2363
  %1291 = getelementptr inbounds i8, ptr %0, i64 3196
  %1292 = shl nsw i32 %.5, 4
  %1293 = add nsw i32 %1292, %.21380
  %1294 = sext i32 %1293 to i64
  %1295 = getelementptr inbounds [256 x i8], ptr %1291, i64 0, i64 %1294
  store i8 1, ptr %1295, align 1, !tbaa !41
  br label %1296

1296:                                             ; preds = %._crit_edge2363, %1290
  %1297 = add nsw i32 %.21380, 1
  br label %1210, !llvm.loop !57

1298:                                             ; preds = %1205, %1210
  %1299 = phi i32 [ %1211, %1210 ], [ %1182, %1205 ]
  %1300 = phi i32 [ %1212, %1210 ], [ %1183, %1205 ]
  %1301 = phi i32 [ %1213, %1210 ], [ %1184, %1205 ]
  %1302 = phi i32 [ %1214, %1210 ], [ %1185, %1205 ]
  %1303 = phi i32 [ %1215, %1210 ], [ %1186, %1205 ]
  %1304 = phi i32 [ %1216, %1210 ], [ %1187, %1205 ]
  %1305 = phi i32 [ %1217, %1210 ], [ %1188, %1205 ]
  %1306 = phi i32 [ %1218, %1210 ], [ %1189, %1205 ]
  %1307 = phi i32 [ %1219, %1210 ], [ %1190, %1205 ]
  %1308 = phi i32 [ %1220, %1210 ], [ %1191, %1205 ]
  %1309 = phi i32 [ %1221, %1210 ], [ %1192, %1205 ]
  %1310 = phi i32 [ %1222, %1210 ], [ %1193, %1205 ]
  %1311 = phi i32 [ %1223, %1210 ], [ %1194, %1205 ]
  %1312 = phi i32 [ %1224, %1210 ], [ %1195, %1205 ]
  %1313 = phi i32 [ %1225, %1210 ], [ %1196, %1205 ]
  %1314 = phi i32 [ %1226, %1210 ], [ %1197, %1205 ]
  %1315 = phi i32 [ %1227, %1210 ], [ %1198, %1205 ]
  %1316 = phi i32 [ %1228, %1210 ], [ %1199, %1205 ]
  %1317 = phi i32 [ %1229, %1210 ], [ %1200, %1205 ]
  %1318 = phi ptr [ %1230, %1210 ], [ %1201, %1205 ]
  %1319 = phi ptr [ %1231, %1210 ], [ %1202, %1205 ]
  %1320 = phi ptr [ %1232, %1210 ], [ %1203, %1205 ]
  %.31381 = phi i32 [ %.11379, %1210 ], [ %.01378, %1205 ]
  %.6 = phi i32 [ %.4, %1210 ], [ %.3, %1205 ]
  %1321 = add nsw i32 %.6, 1
  br label %.loopexit1892, !llvm.loop !58

1322:                                             ; preds = %.loopexit1892
  tail call void @makeMaps_d(ptr noundef nonnull %0)
  %1323 = getelementptr inbounds i8, ptr %0, i64 3192
  %1324 = load i32, ptr %1323, align 8, !tbaa !59
  %1325 = icmp eq i32 %1324, 0
  br i1 %1325, label %.loopexit, label %1326

1326:                                             ; preds = %1322
  %1327 = add nsw i32 %1324, 2
  br label %1328

1328:                                             ; preds = %1326, %10
  %1329 = phi i32 [ %.pre2653, %10 ], [ %1182, %1326 ]
  %1330 = phi i32 [ %.pre2657, %10 ], [ %1184, %1326 ]
  %1331 = phi i32 [ %.pre2659, %10 ], [ %1185, %1326 ]
  %1332 = phi i32 [ %.pre2661, %10 ], [ %1186, %1326 ]
  %1333 = phi i32 [ %.pre2663, %10 ], [ %1187, %1326 ]
  %1334 = phi i32 [ %.pre2665, %10 ], [ %1188, %1326 ]
  %1335 = phi i32 [ %.pre2667, %10 ], [ %1189, %1326 ]
  %1336 = phi i32 [ %.pre2669, %10 ], [ %1190, %1326 ]
  %1337 = phi i32 [ %.pre2671, %10 ], [ %1191, %1326 ]
  %1338 = phi i32 [ %.pre2673, %10 ], [ %1192, %1326 ]
  %1339 = phi i32 [ %.pre2675, %10 ], [ %1193, %1326 ]
  %1340 = phi i32 [ %.pre2677, %10 ], [ %1194, %1326 ]
  %1341 = phi i32 [ %.pre2679, %10 ], [ %1195, %1326 ]
  %1342 = phi i32 [ %.pre2681, %10 ], [ %1196, %1326 ]
  %1343 = phi i32 [ %.pre2683, %10 ], [ %1197, %1326 ]
  %1344 = phi i32 [ %.pre2685, %10 ], [ %1198, %1326 ]
  %1345 = phi i32 [ %.pre2687, %10 ], [ %1199, %1326 ]
  %1346 = phi i32 [ %.pre2689, %10 ], [ %1200, %1326 ]
  %1347 = phi ptr [ %.pre2691, %10 ], [ %1201, %1326 ]
  %1348 = phi ptr [ %.pre2693, %10 ], [ %1202, %1326 ]
  %1349 = phi ptr [ %.pre2695, %10 ], [ %1203, %1326 ]
  %.01426 = phi i32 [ %.pre2655, %10 ], [ %1327, %1326 ]
  %.41382 = phi i32 [ %.pre2651, %10 ], [ %.01378, %1326 ]
  %.7 = phi i32 [ %.pre, %10 ], [ %.3, %1326 ]
  store i32 30, ptr %4, align 8, !tbaa !11
  %1350 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2204 = load i32, ptr %1350, align 4, !tbaa !12
  %1351 = icmp sgt i32 %.promoted2204, 2
  br i1 %1351, label %.._crit_edge2207_crit_edge, label %.lr.ph2206

.._crit_edge2207_crit_edge:                       ; preds = %1328
  %.phi.trans.insert2780 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2781 = load i32, ptr %.phi.trans.insert2780, align 8, !tbaa !37
  br label %._crit_edge2207

.lr.ph2206:                                       ; preds = %1328
  %1352 = load ptr, ptr %0, align 8, !tbaa !5
  %1353 = getelementptr inbounds i8, ptr %1352, i64 8
  %1354 = getelementptr inbounds i8, ptr %0, i64 32
  %1355 = getelementptr inbounds i8, ptr %1352, i64 12
  %1356 = getelementptr inbounds i8, ptr %1352, i64 16
  %.promoted2210 = load i32, ptr %1353, align 8, !tbaa !38
  br label %1361

._crit_edge2207:                                  ; preds = %1381, %.._crit_edge2207_crit_edge
  %1357 = phi i32 [ %.pre2781, %.._crit_edge2207_crit_edge ], [ %1371, %1381 ]
  %.lcssa2006 = phi i32 [ %.promoted2204, %.._crit_edge2207_crit_edge ], [ %1372, %1381 ]
  %1358 = add nsw i32 %.lcssa2006, -3
  %1359 = lshr i32 %1357, %1358
  %1360 = and i32 %1359, 7
  store i32 %1358, ptr %1350, align 4, !tbaa !12
  switch i32 %1360, label %1383 [
    i32 7, label %.loopexit
    i32 1, label %.loopexit
    i32 0, label %.loopexit
  ]

1361:                                             ; preds = %.lr.ph2206, %1381
  %1362 = phi i32 [ %.promoted2210, %.lr.ph2206 ], [ %1374, %1381 ]
  %1363 = phi i32 [ %.promoted2204, %.lr.ph2206 ], [ %1372, %1381 ]
  %1364 = icmp eq i32 %1362, 0
  br i1 %1364, label %.loopexit, label %1365

1365:                                             ; preds = %1361
  %1366 = load i32, ptr %1354, align 8, !tbaa !37
  %1367 = shl i32 %1366, 8
  %1368 = load ptr, ptr %1352, align 8, !tbaa !40
  %1369 = load i8, ptr %1368, align 1, !tbaa !41
  %1370 = zext i8 %1369 to i32
  %1371 = or disjoint i32 %1367, %1370
  store i32 %1371, ptr %1354, align 8, !tbaa !37
  %1372 = add nsw i32 %1363, 8
  store i32 %1372, ptr %1350, align 4, !tbaa !12
  %1373 = getelementptr inbounds i8, ptr %1368, i64 1
  store ptr %1373, ptr %1352, align 8, !tbaa !40
  %1374 = add i32 %1362, -1
  store i32 %1374, ptr %1353, align 8, !tbaa !38
  %1375 = load i32, ptr %1355, align 4, !tbaa !42
  %1376 = add i32 %1375, 1
  store i32 %1376, ptr %1355, align 4, !tbaa !42
  %1377 = icmp eq i32 %1376, 0
  br i1 %1377, label %1378, label %1381

1378:                                             ; preds = %1365
  %1379 = load i32, ptr %1356, align 8, !tbaa !43
  %1380 = add i32 %1379, 1
  store i32 %1380, ptr %1356, align 8, !tbaa !43
  br label %1381

1381:                                             ; preds = %1378, %1365
  %1382 = icmp sgt i32 %1363, -6
  br i1 %1382, label %._crit_edge2207, label %1361

1383:                                             ; preds = %._crit_edge2782, %._crit_edge2207
  %1384 = phi i32 [ %.pre2653, %._crit_edge2782 ], [ %1329, %._crit_edge2207 ]
  %1385 = phi i32 [ %.pre2659, %._crit_edge2782 ], [ %1331, %._crit_edge2207 ]
  %1386 = phi i32 [ %.pre2661, %._crit_edge2782 ], [ %1332, %._crit_edge2207 ]
  %1387 = phi i32 [ %.pre2663, %._crit_edge2782 ], [ %1333, %._crit_edge2207 ]
  %1388 = phi i32 [ %.pre2665, %._crit_edge2782 ], [ %1334, %._crit_edge2207 ]
  %1389 = phi i32 [ %.pre2667, %._crit_edge2782 ], [ %1335, %._crit_edge2207 ]
  %1390 = phi i32 [ %.pre2669, %._crit_edge2782 ], [ %1336, %._crit_edge2207 ]
  %1391 = phi i32 [ %.pre2671, %._crit_edge2782 ], [ %1337, %._crit_edge2207 ]
  %1392 = phi i32 [ %.pre2673, %._crit_edge2782 ], [ %1338, %._crit_edge2207 ]
  %1393 = phi i32 [ %.pre2675, %._crit_edge2782 ], [ %1339, %._crit_edge2207 ]
  %1394 = phi i32 [ %.pre2677, %._crit_edge2782 ], [ %1340, %._crit_edge2207 ]
  %1395 = phi i32 [ %.pre2679, %._crit_edge2782 ], [ %1341, %._crit_edge2207 ]
  %1396 = phi i32 [ %.pre2681, %._crit_edge2782 ], [ %1342, %._crit_edge2207 ]
  %1397 = phi i32 [ %.pre2683, %._crit_edge2782 ], [ %1343, %._crit_edge2207 ]
  %1398 = phi i32 [ %.pre2685, %._crit_edge2782 ], [ %1344, %._crit_edge2207 ]
  %1399 = phi i32 [ %.pre2687, %._crit_edge2782 ], [ %1345, %._crit_edge2207 ]
  %1400 = phi i32 [ %.pre2689, %._crit_edge2782 ], [ %1346, %._crit_edge2207 ]
  %1401 = phi ptr [ %.pre2691, %._crit_edge2782 ], [ %1347, %._crit_edge2207 ]
  %1402 = phi ptr [ %.pre2693, %._crit_edge2782 ], [ %1348, %._crit_edge2207 ]
  %1403 = phi ptr [ %.pre2695, %._crit_edge2782 ], [ %1349, %._crit_edge2207 ]
  %.promoted2211 = phi i32 [ %.promoted2211.pre, %._crit_edge2782 ], [ %1358, %._crit_edge2207 ]
  %.01449 = phi i32 [ %.pre2657, %._crit_edge2782 ], [ %1360, %._crit_edge2207 ]
  %.11427 = phi i32 [ %.pre2655, %._crit_edge2782 ], [ %.01426, %._crit_edge2207 ]
  %.51383 = phi i32 [ %.pre2651, %._crit_edge2782 ], [ %.41382, %._crit_edge2207 ]
  %.8 = phi i32 [ %.pre, %._crit_edge2782 ], [ %.7, %._crit_edge2207 ]
  store i32 31, ptr %4, align 8, !tbaa !11
  %1404 = getelementptr inbounds i8, ptr %0, i64 36
  %1405 = icmp sgt i32 %.promoted2211, 14
  br i1 %1405, label %.._crit_edge2214_crit_edge, label %.lr.ph2213

.._crit_edge2214_crit_edge:                       ; preds = %1383
  %.phi.trans.insert2785 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2786 = load i32, ptr %.phi.trans.insert2785, align 8, !tbaa !37
  br label %._crit_edge2214

.lr.ph2213:                                       ; preds = %1383
  %1406 = load ptr, ptr %0, align 8, !tbaa !5
  %1407 = getelementptr inbounds i8, ptr %1406, i64 8
  %1408 = getelementptr inbounds i8, ptr %0, i64 32
  %1409 = getelementptr inbounds i8, ptr %1406, i64 12
  %1410 = getelementptr inbounds i8, ptr %1406, i64 16
  %.promoted2217 = load i32, ptr %1407, align 8, !tbaa !38
  br label %1416

._crit_edge2214:                                  ; preds = %1436, %.._crit_edge2214_crit_edge
  %1411 = phi i32 [ %.pre2786, %.._crit_edge2214_crit_edge ], [ %1426, %1436 ]
  %.lcssa2002 = phi i32 [ %.promoted2211, %.._crit_edge2214_crit_edge ], [ %1427, %1436 ]
  %1412 = add nsw i32 %.lcssa2002, -15
  %1413 = lshr i32 %1411, %1412
  %1414 = and i32 %1413, 32767
  store i32 %1412, ptr %1404, align 4, !tbaa !12
  %1415 = icmp eq i32 %1414, 0
  br i1 %1415, label %.loopexit, label %1438

1416:                                             ; preds = %.lr.ph2213, %1436
  %1417 = phi i32 [ %.promoted2217, %.lr.ph2213 ], [ %1429, %1436 ]
  %1418 = phi i32 [ %.promoted2211, %.lr.ph2213 ], [ %1427, %1436 ]
  %1419 = icmp eq i32 %1417, 0
  br i1 %1419, label %.loopexit, label %1420

1420:                                             ; preds = %1416
  %1421 = load i32, ptr %1408, align 8, !tbaa !37
  %1422 = shl i32 %1421, 8
  %1423 = load ptr, ptr %1406, align 8, !tbaa !40
  %1424 = load i8, ptr %1423, align 1, !tbaa !41
  %1425 = zext i8 %1424 to i32
  %1426 = or disjoint i32 %1422, %1425
  store i32 %1426, ptr %1408, align 8, !tbaa !37
  %1427 = add nsw i32 %1418, 8
  store i32 %1427, ptr %1404, align 4, !tbaa !12
  %1428 = getelementptr inbounds i8, ptr %1423, i64 1
  store ptr %1428, ptr %1406, align 8, !tbaa !40
  %1429 = add i32 %1417, -1
  store i32 %1429, ptr %1407, align 8, !tbaa !38
  %1430 = load i32, ptr %1409, align 4, !tbaa !42
  %1431 = add i32 %1430, 1
  store i32 %1431, ptr %1409, align 4, !tbaa !42
  %1432 = icmp eq i32 %1431, 0
  br i1 %1432, label %1433, label %1436

1433:                                             ; preds = %1420
  %1434 = load i32, ptr %1410, align 8, !tbaa !43
  %1435 = add i32 %1434, 1
  store i32 %1435, ptr %1410, align 8, !tbaa !43
  br label %1436

1436:                                             ; preds = %1433, %1420
  %1437 = icmp sgt i32 %1418, 6
  br i1 %1437, label %._crit_edge2214, label %1416

1438:                                             ; preds = %._crit_edge2214, %1497
  %1439 = phi i32 [ %.ph, %1497 ], [ %1384, %._crit_edge2214 ]
  %1440 = phi i32 [ %.ph3340, %1497 ], [ %1386, %._crit_edge2214 ]
  %1441 = phi i32 [ %.ph3341, %1497 ], [ %1387, %._crit_edge2214 ]
  %1442 = phi i32 [ %.ph3342, %1497 ], [ %1388, %._crit_edge2214 ]
  %1443 = phi i32 [ %.ph3343, %1497 ], [ %1389, %._crit_edge2214 ]
  %1444 = phi i32 [ %.ph3344, %1497 ], [ %1390, %._crit_edge2214 ]
  %1445 = phi i32 [ %.ph3345, %1497 ], [ %1391, %._crit_edge2214 ]
  %1446 = phi i32 [ %.ph3346, %1497 ], [ %1392, %._crit_edge2214 ]
  %1447 = phi i32 [ %.ph3347, %1497 ], [ %1393, %._crit_edge2214 ]
  %1448 = phi i32 [ %.ph3348, %1497 ], [ %1394, %._crit_edge2214 ]
  %1449 = phi i32 [ %.ph3349, %1497 ], [ %1395, %._crit_edge2214 ]
  %1450 = phi i32 [ %.ph3350, %1497 ], [ %1396, %._crit_edge2214 ]
  %1451 = phi i32 [ %.ph3351, %1497 ], [ %1397, %._crit_edge2214 ]
  %1452 = phi i32 [ %.ph3352, %1497 ], [ %1398, %._crit_edge2214 ]
  %1453 = phi i32 [ %.ph3353, %1497 ], [ %1399, %._crit_edge2214 ]
  %1454 = phi i32 [ %.ph3354, %1497 ], [ %1400, %._crit_edge2214 ]
  %1455 = phi ptr [ %.ph3355, %1497 ], [ %1401, %._crit_edge2214 ]
  %1456 = phi ptr [ %.ph3356, %1497 ], [ %1402, %._crit_edge2214 ]
  %1457 = phi ptr [ %.ph3357, %1497 ], [ %1403, %._crit_edge2214 ]
  %.01471 = phi i32 [ %.21473.ph, %1497 ], [ %1414, %._crit_edge2214 ]
  %.11450 = phi i32 [ %.31452.ph, %1497 ], [ %.01449, %._crit_edge2214 ]
  %.21428 = phi i32 [ %.41430.ph, %1497 ], [ %.11427, %._crit_edge2214 ]
  %.61384 = phi i32 [ %.81386, %1497 ], [ %.51383, %._crit_edge2214 ]
  %.9 = phi i32 [ %1502, %1497 ], [ 0, %._crit_edge2214 ]
  %1458 = icmp slt i32 %.9, %.01471
  br i1 %1458, label %.preheader3339, label %1503

.preheader3339:                                   ; preds = %10, %1438
  %.ph = phi i32 [ %1439, %1438 ], [ %.pre2653, %10 ]
  %.ph3340 = phi i32 [ %1440, %1438 ], [ %.pre2661, %10 ]
  %.ph3341 = phi i32 [ %1441, %1438 ], [ %.pre2663, %10 ]
  %.ph3342 = phi i32 [ %1442, %1438 ], [ %.pre2665, %10 ]
  %.ph3343 = phi i32 [ %1443, %1438 ], [ %.pre2667, %10 ]
  %.ph3344 = phi i32 [ %1444, %1438 ], [ %.pre2669, %10 ]
  %.ph3345 = phi i32 [ %1445, %1438 ], [ %.pre2671, %10 ]
  %.ph3346 = phi i32 [ %1446, %1438 ], [ %.pre2673, %10 ]
  %.ph3347 = phi i32 [ %1447, %1438 ], [ %.pre2675, %10 ]
  %.ph3348 = phi i32 [ %1448, %1438 ], [ %.pre2677, %10 ]
  %.ph3349 = phi i32 [ %1449, %1438 ], [ %.pre2679, %10 ]
  %.ph3350 = phi i32 [ %1450, %1438 ], [ %.pre2681, %10 ]
  %.ph3351 = phi i32 [ %1451, %1438 ], [ %.pre2683, %10 ]
  %.ph3352 = phi i32 [ %1452, %1438 ], [ %.pre2685, %10 ]
  %.ph3353 = phi i32 [ %1453, %1438 ], [ %.pre2687, %10 ]
  %.ph3354 = phi i32 [ %1454, %1438 ], [ %.pre2689, %10 ]
  %.ph3355 = phi ptr [ %1455, %1438 ], [ %.pre2691, %10 ]
  %.ph3356 = phi ptr [ %1456, %1438 ], [ %.pre2693, %10 ]
  %.ph3357 = phi ptr [ %1457, %1438 ], [ %.pre2695, %10 ]
  %.21473.ph = phi i32 [ %.01471, %1438 ], [ %.pre2659, %10 ]
  %.31452.ph = phi i32 [ %.11450, %1438 ], [ %.pre2657, %10 ]
  %.41430.ph = phi i32 [ %.21428, %1438 ], [ %.pre2655, %10 ]
  %.81386.ph = phi i32 [ 0, %1438 ], [ %.pre2651, %10 ]
  %.11.ph = phi i32 [ %.9, %1438 ], [ %.pre, %10 ]
  %1459 = getelementptr inbounds i8, ptr %0, i64 36
  %1460 = getelementptr inbounds i8, ptr %0, i64 32
  %.phi.trans.insert2824 = getelementptr inbounds i8, ptr %0, i64 32
  %.promoted3586 = load i32, ptr %1459, align 4, !tbaa !12
  br label %1461

1461:                                             ; preds = %.preheader3339, %1495
  %1462 = phi i32 [ %1469, %1495 ], [ %.promoted3586, %.preheader3339 ]
  %.81386 = phi i32 [ %1496, %1495 ], [ %.81386.ph, %.preheader3339 ]
  store i32 32, ptr %4, align 8, !tbaa !11
  %1463 = icmp sgt i32 %1462, 0
  br i1 %1463, label %.._crit_edge2356_crit_edge, label %.lr.ph2355

.._crit_edge2356_crit_edge:                       ; preds = %1461
  %.pre2825 = load i32, ptr %.phi.trans.insert2824, align 8, !tbaa !37
  br label %._crit_edge2356

.lr.ph2355:                                       ; preds = %1461
  %1464 = load ptr, ptr %0, align 8, !tbaa !5
  %1465 = getelementptr inbounds i8, ptr %1464, i64 8
  %1466 = getelementptr inbounds i8, ptr %1464, i64 12
  %1467 = getelementptr inbounds i8, ptr %1464, i64 16
  %.promoted2359 = load i32, ptr %1465, align 8, !tbaa !38
  br label %1473

._crit_edge2356:                                  ; preds = %1493, %.._crit_edge2356_crit_edge
  %1468 = phi i32 [ %.pre2825, %.._crit_edge2356_crit_edge ], [ %1483, %1493 ]
  %.lcssa1954 = phi i32 [ %1462, %.._crit_edge2356_crit_edge ], [ %1484, %1493 ]
  %1469 = add nsw i32 %.lcssa1954, -1
  store i32 %1469, ptr %1459, align 4, !tbaa !12
  %1470 = shl nuw i32 1, %1469
  %1471 = and i32 %1468, %1470
  %1472 = icmp eq i32 %1471, 0
  br i1 %1472, label %1497, label %1495

1473:                                             ; preds = %.lr.ph2355, %1493
  %1474 = phi i32 [ %.promoted2359, %.lr.ph2355 ], [ %1486, %1493 ]
  %1475 = phi i32 [ %1462, %.lr.ph2355 ], [ %1484, %1493 ]
  %1476 = icmp eq i32 %1474, 0
  br i1 %1476, label %.loopexit, label %1477

1477:                                             ; preds = %1473
  %1478 = load i32, ptr %1460, align 8, !tbaa !37
  %1479 = shl i32 %1478, 8
  %1480 = load ptr, ptr %1464, align 8, !tbaa !40
  %1481 = load i8, ptr %1480, align 1, !tbaa !41
  %1482 = zext i8 %1481 to i32
  %1483 = or disjoint i32 %1479, %1482
  store i32 %1483, ptr %1460, align 8, !tbaa !37
  %1484 = add nsw i32 %1475, 8
  store i32 %1484, ptr %1459, align 4, !tbaa !12
  %1485 = getelementptr inbounds i8, ptr %1480, i64 1
  store ptr %1485, ptr %1464, align 8, !tbaa !40
  %1486 = add i32 %1474, -1
  store i32 %1486, ptr %1465, align 8, !tbaa !38
  %1487 = load i32, ptr %1466, align 4, !tbaa !42
  %1488 = add i32 %1487, 1
  store i32 %1488, ptr %1466, align 4, !tbaa !42
  %1489 = icmp eq i32 %1488, 0
  br i1 %1489, label %1490, label %1493

1490:                                             ; preds = %1477
  %1491 = load i32, ptr %1467, align 8, !tbaa !43
  %1492 = add i32 %1491, 1
  store i32 %1492, ptr %1467, align 8, !tbaa !43
  br label %1493

1493:                                             ; preds = %1490, %1477
  %1494 = icmp sgt i32 %1475, -8
  br i1 %1494, label %._crit_edge2356, label %1473

1495:                                             ; preds = %._crit_edge2356
  %1496 = add nsw i32 %.81386, 1
  %.not1832 = icmp slt i32 %1496, %.31452.ph
  br i1 %.not1832, label %1461, label %.loopexit

1497:                                             ; preds = %._crit_edge2356
  %1498 = trunc i32 %.81386 to i8
  %1499 = getelementptr inbounds i8, ptr %0, i64 25886
  %1500 = sext i32 %.11.ph to i64
  %1501 = getelementptr inbounds [18002 x i8], ptr %1499, i64 0, i64 %1500
  store i8 %1498, ptr %1501, align 1, !tbaa !41
  %1502 = add nsw i32 %.11.ph, 1
  br label %1438, !llvm.loop !60

1503:                                             ; preds = %1438
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %2) #5
  %1504 = icmp sgt i32 %.11450, 0
  br i1 %1504, label %iter.check, label %.preheader1888

iter.check:                                       ; preds = %1503
  %min.iters.check = icmp ult i32 %.11450, 8
  br i1 %min.iters.check, label %.lr.ph2220.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %1505 = add nsw i32 %.11450, -1
  %1506 = and i32 %1505, 255
  %1507 = icmp eq i32 %1506, 255
  %1508 = icmp ugt i32 %1505, 255
  %1509 = or i1 %1507, %1508
  br i1 %1509, label %.lr.ph2220.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.scevcheck
  %min.iters.check3152 = icmp ult i32 %.11450, 32
  br i1 %min.iters.check3152, label %vec.epilog.ph, label %vector.ph

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i32 %.11450, 480
  %ind.end = trunc i32 %n.vec to i8
  %1510 = getelementptr inbounds i8, ptr %2, i64 16
  store <16 x i8> <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, ptr %2, align 16, !tbaa !41
  store <16 x i8> <i8 16, i8 17, i8 18, i8 19, i8 20, i8 21, i8 22, i8 23, i8 24, i8 25, i8 26, i8 27, i8 28, i8 29, i8 30, i8 31>, ptr %1510, align 16, !tbaa !41
  %1511 = icmp eq i32 %n.vec, 32
  br i1 %1511, label %middle.block, label %vector.body.1, !llvm.loop !61

vector.body.1:                                    ; preds = %vector.ph
  %1512 = getelementptr inbounds i8, ptr %2, i64 32
  %1513 = getelementptr inbounds i8, ptr %2, i64 48
  store <16 x i8> <i8 32, i8 33, i8 34, i8 35, i8 36, i8 37, i8 38, i8 39, i8 40, i8 41, i8 42, i8 43, i8 44, i8 45, i8 46, i8 47>, ptr %1512, align 16, !tbaa !41
  store <16 x i8> <i8 48, i8 49, i8 50, i8 51, i8 52, i8 53, i8 54, i8 55, i8 56, i8 57, i8 58, i8 59, i8 60, i8 61, i8 62, i8 63>, ptr %1513, align 16, !tbaa !41
  %1514 = icmp eq i32 %n.vec, 64
  br i1 %1514, label %middle.block, label %vector.body.2, !llvm.loop !61

vector.body.2:                                    ; preds = %vector.body.1
  %1515 = getelementptr inbounds i8, ptr %2, i64 64
  %1516 = getelementptr inbounds i8, ptr %2, i64 80
  store <16 x i8> <i8 64, i8 65, i8 66, i8 67, i8 68, i8 69, i8 70, i8 71, i8 72, i8 73, i8 74, i8 75, i8 76, i8 77, i8 78, i8 79>, ptr %1515, align 16, !tbaa !41
  store <16 x i8> <i8 80, i8 81, i8 82, i8 83, i8 84, i8 85, i8 86, i8 87, i8 88, i8 89, i8 90, i8 91, i8 92, i8 93, i8 94, i8 95>, ptr %1516, align 16, !tbaa !41
  %1517 = icmp eq i32 %n.vec, 96
  br i1 %1517, label %middle.block, label %vector.body.3, !llvm.loop !61

vector.body.3:                                    ; preds = %vector.body.2
  %1518 = getelementptr inbounds i8, ptr %2, i64 96
  %1519 = getelementptr inbounds i8, ptr %2, i64 112
  store <16 x i8> <i8 96, i8 97, i8 98, i8 99, i8 100, i8 101, i8 102, i8 103, i8 104, i8 105, i8 106, i8 107, i8 108, i8 109, i8 110, i8 111>, ptr %1518, align 16, !tbaa !41
  store <16 x i8> <i8 112, i8 113, i8 114, i8 115, i8 116, i8 117, i8 118, i8 119, i8 120, i8 121, i8 122, i8 123, i8 124, i8 125, i8 126, i8 127>, ptr %1519, align 16, !tbaa !41
  %1520 = icmp eq i32 %n.vec, 128
  br i1 %1520, label %middle.block, label %vector.body.4, !llvm.loop !61

vector.body.4:                                    ; preds = %vector.body.3
  %1521 = getelementptr inbounds i8, ptr %2, i64 128
  %1522 = getelementptr inbounds i8, ptr %2, i64 144
  store <16 x i8> <i8 -128, i8 -127, i8 -126, i8 -125, i8 -124, i8 -123, i8 -122, i8 -121, i8 -120, i8 -119, i8 -118, i8 -117, i8 -116, i8 -115, i8 -114, i8 -113>, ptr %1521, align 16, !tbaa !41
  store <16 x i8> <i8 -112, i8 -111, i8 -110, i8 -109, i8 -108, i8 -107, i8 -106, i8 -105, i8 -104, i8 -103, i8 -102, i8 -101, i8 -100, i8 -99, i8 -98, i8 -97>, ptr %1522, align 16, !tbaa !41
  %1523 = icmp eq i32 %n.vec, 160
  br i1 %1523, label %middle.block, label %vector.body.5, !llvm.loop !61

vector.body.5:                                    ; preds = %vector.body.4
  %1524 = getelementptr inbounds i8, ptr %2, i64 160
  %1525 = getelementptr inbounds i8, ptr %2, i64 176
  store <16 x i8> <i8 -96, i8 -95, i8 -94, i8 -93, i8 -92, i8 -91, i8 -90, i8 -89, i8 -88, i8 -87, i8 -86, i8 -85, i8 -84, i8 -83, i8 -82, i8 -81>, ptr %1524, align 16, !tbaa !41
  store <16 x i8> <i8 -80, i8 -79, i8 -78, i8 -77, i8 -76, i8 -75, i8 -74, i8 -73, i8 -72, i8 -71, i8 -70, i8 -69, i8 -68, i8 -67, i8 -66, i8 -65>, ptr %1525, align 16, !tbaa !41
  %1526 = icmp eq i32 %n.vec, 192
  br i1 %1526, label %middle.block, label %vector.body.6, !llvm.loop !61

vector.body.6:                                    ; preds = %vector.body.5
  %1527 = getelementptr inbounds i8, ptr %2, i64 192
  %1528 = getelementptr inbounds i8, ptr %2, i64 208
  store <16 x i8> <i8 -64, i8 -63, i8 -62, i8 -61, i8 -60, i8 -59, i8 -58, i8 -57, i8 -56, i8 -55, i8 -54, i8 -53, i8 -52, i8 -51, i8 -50, i8 -49>, ptr %1527, align 16, !tbaa !41
  store <16 x i8> <i8 -48, i8 -47, i8 -46, i8 -45, i8 -44, i8 -43, i8 -42, i8 -41, i8 -40, i8 -39, i8 -38, i8 -37, i8 -36, i8 -35, i8 -34, i8 -33>, ptr %1528, align 16, !tbaa !41
  %1529 = icmp eq i32 %n.vec, 224
  br i1 %1529, label %middle.block, label %vector.body.7, !llvm.loop !61

vector.body.7:                                    ; preds = %vector.body.6
  %1530 = getelementptr inbounds i8, ptr %2, i64 224
  %1531 = getelementptr inbounds i8, ptr %2, i64 240
  store <16 x i8> <i8 -32, i8 -31, i8 -30, i8 -29, i8 -28, i8 -27, i8 -26, i8 -25, i8 -24, i8 -23, i8 -22, i8 -21, i8 -20, i8 -19, i8 -18, i8 -17>, ptr %1530, align 16, !tbaa !41
  store <16 x i8> <i8 -16, i8 -15, i8 -14, i8 -13, i8 -12, i8 -11, i8 -10, i8 -9, i8 -8, i8 -7, i8 -6, i8 -5, i8 -4, i8 -3, i8 -2, i8 -1>, ptr %1531, align 16, !tbaa !41
  br label %middle.block

middle.block:                                     ; preds = %vector.body.7, %vector.body.6, %vector.body.5, %vector.body.4, %vector.body.3, %vector.body.2, %vector.body.1, %vector.ph
  %cmp.n = icmp eq i32 %.11450, %n.vec
  br i1 %cmp.n, label %.preheader1888, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end3157 = trunc i32 %n.vec to i8
  %n.vec.remaining = and i32 %.11450, 24
  %min.epilog.iters.check = icmp eq i32 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph2220.preheader, label %vec.epilog.ph

.lr.ph2220.preheader:                             ; preds = %vec.epilog.middle.block, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %.016462218.ph = phi i8 [ 0, %iter.check ], [ 0, %vector.scevcheck ], [ %ind.end3157, %vec.epilog.iter.check ], [ %ind.end3156, %vec.epilog.middle.block ]
  br label %.lr.ph2220

vec.epilog.ph:                                    ; preds = %vector.main.loop.iter.check, %vec.epilog.iter.check
  %bc.resume.val = phi i8 [ %ind.end, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %vec.epilog.resume.val = phi i32 [ %n.vec, %vec.epilog.iter.check ], [ 0, %vector.main.loop.iter.check ]
  %n.vec3155 = and i32 %.11450, 504
  %ind.end3156 = trunc i32 %n.vec3155 to i8
  %.splatinsert = insertelement <8 x i8> poison, i8 %bc.resume.val, i64 0
  %.splat = shufflevector <8 x i8> %.splatinsert, <8 x i8> poison, <8 x i32> zeroinitializer
  %induction = add <8 x i8> %.splat, <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7>
  br label %vec.epilog.vector.body

vec.epilog.vector.body:                           ; preds = %vec.epilog.vector.body, %vec.epilog.ph
  %index3159 = phi i32 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next3164, %vec.epilog.vector.body ]
  %vec.ind3160 = phi <8 x i8> [ %induction, %vec.epilog.ph ], [ %vec.ind.next3162, %vec.epilog.vector.body ]
  %1532 = and i32 %index3159, 248
  %1533 = zext nneg i32 %1532 to i64
  %1534 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1533
  store <8 x i8> %vec.ind3160, ptr %1534, align 8, !tbaa !41
  %index.next3164 = add nuw i32 %index3159, 8
  %vec.ind.next3162 = add <8 x i8> %vec.ind3160, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
  %1535 = icmp eq i32 %index.next3164, %n.vec3155
  br i1 %1535, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !64

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n3165 = icmp eq i32 %.11450, %n.vec3155
  br i1 %cmp.n3165, label %.preheader1888, label %.lr.ph2220.preheader

.preheader1888:                                   ; preds = %.lr.ph2220, %middle.block, %vec.epilog.middle.block, %1503
  %1536 = icmp sgt i32 %.01471, 0
  br i1 %1536, label %.lr.ph2227, label %._crit_edge2228

.lr.ph2227:                                       ; preds = %.preheader1888
  %1537 = getelementptr inbounds i8, ptr %0, i64 25886
  %1538 = getelementptr inbounds i8, ptr %0, i64 7884
  %wide.trip.count = zext nneg i32 %.01471 to i64
  %invariant.gep = getelementptr i8, ptr %2, i64 -15
  %invariant.gep3572 = getelementptr i8, ptr %2, i64 -15
  %invariant.gep3574 = getelementptr i8, ptr %2, i64 -7
  %invariant.gep3576 = getelementptr i8, ptr %2, i64 -7
  br label %1544

.lr.ph2220:                                       ; preds = %.lr.ph2220.preheader, %.lr.ph2220
  %.016462218 = phi i8 [ %1541, %.lr.ph2220 ], [ %.016462218.ph, %.lr.ph2220.preheader ]
  %1539 = zext i8 %.016462218 to i64
  %1540 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1539
  store i8 %.016462218, ptr %1540, align 1, !tbaa !41
  %1541 = add i8 %.016462218, 1
  %1542 = zext i8 %1541 to i32
  %1543 = icmp ugt i32 %.11450, %1542
  br i1 %1543, label %.lr.ph2220, label %.preheader1888, !llvm.loop !65

1544:                                             ; preds = %.lr.ph2227, %._crit_edge2225
  %indvars.iv2545 = phi i64 [ 0, %.lr.ph2227 ], [ %indvars.iv.next2546, %._crit_edge2225 ]
  %1545 = getelementptr inbounds [18002 x i8], ptr %1537, i64 0, i64 %indvars.iv2545
  %1546 = load i8, ptr %1545, align 1, !tbaa !41
  %1547 = zext i8 %1546 to i64
  %1548 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1547
  %1549 = load i8, ptr %1548, align 1, !tbaa !41
  %.not18312221 = icmp eq i8 %1546, 0
  br i1 %.not18312221, label %._crit_edge2225, label %iter.check3177

iter.check3177:                                   ; preds = %1544
  %min.iters.check3175 = icmp ult i8 %1546, 8
  br i1 %min.iters.check3175, label %.lr.ph2224.preheader, label %vector.scevcheck3166

vector.scevcheck3166:                             ; preds = %iter.check3177
  %1550 = add i8 %1546, -1
  %1551 = zext i8 %1546 to i32
  %1552 = add nsw i32 %1551, -1
  %1553 = zext i8 %1550 to i32
  %1554 = icmp ult i32 %1552, %1553
  %scevgep = getelementptr i8, ptr %2, i64 %1547
  %1555 = zext i8 %1550 to i64
  %1556 = sub nsw i64 0, %1555
  %1557 = getelementptr i8, ptr %scevgep, i64 %1556
  %1558 = icmp ugt ptr %1557, %scevgep
  %1559 = zext i32 %1552 to i64
  %scevgep3170 = getelementptr i8, ptr %2, i64 %1559
  %1560 = zext i8 %1550 to i64
  %1561 = sub nsw i64 0, %1560
  %1562 = getelementptr i8, ptr %scevgep3170, i64 %1561
  %1563 = icmp ugt ptr %1562, %scevgep3170
  %1564 = or i1 %1554, %1558
  %1565 = or i1 %1564, %1563
  br i1 %1565, label %.lr.ph2224.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck3166
  %1566 = zext i8 %1546 to i64
  %1567 = add nuw nsw i64 %1566, 4294967295
  %1568 = and i64 %1567, 4294967295
  %1569 = sub nsw i64 %1568, %1547
  %diff.check = icmp ult i64 %1569, 16
  br i1 %diff.check, label %.lr.ph2224.preheader, label %vector.main.loop.iter.check3179

vector.main.loop.iter.check3179:                  ; preds = %vector.memcheck
  %min.iters.check3178 = icmp ult i8 %1546, 16
  br i1 %min.iters.check3178, label %vec.epilog.ph3191, label %vector.ph3180

vector.ph3180:                                    ; preds = %vector.main.loop.iter.check3179
  %n.vec3182 = and i64 %1547, 240
  br label %vector.body3183

vector.body3183:                                  ; preds = %vector.body3183, %vector.ph3180
  %index3184 = phi i64 [ 0, %vector.ph3180 ], [ %index.next3187, %vector.body3183 ]
  %offset.idx3185 = sub i64 %1547, %index3184
  %1570 = add nuw nsw i64 %offset.idx3185, 4294967295
  %1571 = and i64 %1570, 4294967295
  %gep = getelementptr [6 x i8], ptr %invariant.gep, i64 0, i64 %1571
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !41
  %gep3573 = getelementptr [6 x i8], ptr %invariant.gep3572, i64 0, i64 %offset.idx3185
  store <16 x i8> %wide.load, ptr %gep3573, align 1, !tbaa !41
  %index.next3187 = add nuw i64 %index3184, 16
  %1572 = icmp eq i64 %index.next3187, %n.vec3182
  br i1 %1572, label %middle.block3174, label %vector.body3183, !llvm.loop !66

middle.block3174:                                 ; preds = %vector.body3183
  %cmp.n3188 = icmp eq i64 %n.vec3182, %1547
  br i1 %cmp.n3188, label %._crit_edge2225, label %vec.epilog.iter.check3192

vec.epilog.iter.check3192:                        ; preds = %middle.block3174
  %ind.end3199 = and i64 %1547, 15
  %n.vec.remaining3193 = and i64 %1547, 8
  %min.epilog.iters.check3194.not.not = icmp eq i64 %n.vec.remaining3193, 0
  br i1 %min.epilog.iters.check3194.not.not, label %.lr.ph2224.preheader, label %vec.epilog.ph3191

vec.epilog.ph3191:                                ; preds = %vector.main.loop.iter.check3179, %vec.epilog.iter.check3192
  %vec.epilog.resume.val3195 = phi i64 [ %n.vec3182, %vec.epilog.iter.check3192 ], [ 0, %vector.main.loop.iter.check3179 ]
  %n.vec3197 = and i64 %1547, 248
  %ind.end3198 = and i64 %1547, 7
  br label %vec.epilog.vector.body3201

vec.epilog.vector.body3201:                       ; preds = %vec.epilog.vector.body3201, %vec.epilog.ph3191
  %index3202 = phi i64 [ %vec.epilog.resume.val3195, %vec.epilog.ph3191 ], [ %index.next3207, %vec.epilog.vector.body3201 ]
  %offset.idx3203 = sub i64 %1547, %index3202
  %1573 = add nuw nsw i64 %offset.idx3203, 4294967295
  %1574 = and i64 %1573, 4294967295
  %gep3575 = getelementptr [6 x i8], ptr %invariant.gep3574, i64 0, i64 %1574
  %wide.load3204 = load <8 x i8>, ptr %gep3575, align 1, !tbaa !41
  %gep3577 = getelementptr [6 x i8], ptr %invariant.gep3576, i64 0, i64 %offset.idx3203
  store <8 x i8> %wide.load3204, ptr %gep3577, align 1, !tbaa !41
  %index.next3207 = add nuw i64 %index3202, 8
  %1575 = icmp eq i64 %index.next3207, %n.vec3197
  br i1 %1575, label %vec.epilog.middle.block3189, label %vec.epilog.vector.body3201, !llvm.loop !67

vec.epilog.middle.block3189:                      ; preds = %vec.epilog.vector.body3201
  %cmp.n3208 = icmp eq i64 %n.vec3197, %1547
  br i1 %cmp.n3208, label %._crit_edge2225, label %.lr.ph2224.preheader

.lr.ph2224.preheader:                             ; preds = %vec.epilog.middle.block3189, %vector.memcheck, %vector.scevcheck3166, %iter.check3177, %vec.epilog.iter.check3192
  %indvars.iv.ph = phi i64 [ %1547, %iter.check3177 ], [ %1547, %vector.memcheck ], [ %1547, %vector.scevcheck3166 ], [ %ind.end3199, %vec.epilog.iter.check3192 ], [ %ind.end3198, %vec.epilog.middle.block3189 ]
  %1576 = trunc nuw i64 %indvars.iv.ph to i8
  %xtraiter = and i8 %1576, 1
  %lcmp.mod.not = icmp eq i8 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph2224.prol.loopexit, label %.lr.ph2224.prol

.lr.ph2224.prol:                                  ; preds = %.lr.ph2224.preheader
  %1577 = add nuw nsw i64 %indvars.iv.ph, 4294967295
  %1578 = and i64 %1577, 4294967295
  %1579 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1578
  %1580 = load i8, ptr %1579, align 1, !tbaa !41
  %1581 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv.ph
  store i8 %1580, ptr %1581, align 1, !tbaa !41
  %indvars.iv.next.prol = add nsw i64 %indvars.iv.ph, -1
  br label %.lr.ph2224.prol.loopexit

.lr.ph2224.prol.loopexit:                         ; preds = %.lr.ph2224.prol, %.lr.ph2224.preheader
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph2224.preheader ], [ %indvars.iv.next.prol, %.lr.ph2224.prol ]
  %1582 = icmp eq i64 %indvars.iv.ph, 1
  br i1 %1582, label %._crit_edge2225, label %.lr.ph2224

.lr.ph2224:                                       ; preds = %.lr.ph2224.prol.loopexit, %.lr.ph2224
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph2224 ], [ %indvars.iv.unr, %.lr.ph2224.prol.loopexit ]
  %1583 = add nuw nsw i64 %indvars.iv, 4294967295
  %1584 = and i64 %1583, 4294967295
  %1585 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1584
  %1586 = load i8, ptr %1585, align 1, !tbaa !41
  %1587 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv
  store i8 %1586, ptr %1587, align 1, !tbaa !41
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %1588 = add nsw i64 %indvars.iv, 4294967294
  %1589 = and i64 %1588, 4294967295
  %1590 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %1589
  %1591 = load i8, ptr %1590, align 1, !tbaa !41
  %1592 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv.next
  store i8 %1591, ptr %1592, align 1, !tbaa !41
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, -2
  %1593 = and i64 %indvars.iv.next.1, 255
  %.not1831.1 = icmp eq i64 %1593, 0
  br i1 %.not1831.1, label %._crit_edge2225, label %.lr.ph2224, !llvm.loop !68

._crit_edge2225:                                  ; preds = %.lr.ph2224.prol.loopexit, %.lr.ph2224, %middle.block3174, %vec.epilog.middle.block3189, %1544
  store i8 %1549, ptr %2, align 16, !tbaa !41
  %1594 = getelementptr inbounds [18002 x i8], ptr %1538, i64 0, i64 %indvars.iv2545
  store i8 %1549, ptr %1594, align 1, !tbaa !41
  %indvars.iv.next2546 = add nuw nsw i64 %indvars.iv2545, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next2546, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge2228, label %1544, !llvm.loop !69

._crit_edge2228:                                  ; preds = %._crit_edge2225, %.preheader1888
  %.12.lcssa = phi i32 [ 0, %.preheader1888 ], [ %.01471, %._crit_edge2225 ]
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %2) #5
  br label %1595

1595:                                             ; preds = %1821, %._crit_edge2228
  %1596 = phi i32 [ %1673, %1821 ], [ %1440, %._crit_edge2228 ]
  %1597 = phi i32 [ %1674, %1821 ], [ %1441, %._crit_edge2228 ]
  %1598 = phi i32 [ %1675, %1821 ], [ %1442, %._crit_edge2228 ]
  %1599 = phi i32 [ %1676, %1821 ], [ %1443, %._crit_edge2228 ]
  %1600 = phi i32 [ %1677, %1821 ], [ %1444, %._crit_edge2228 ]
  %1601 = phi i32 [ %1678, %1821 ], [ %1445, %._crit_edge2228 ]
  %1602 = phi i32 [ %1679, %1821 ], [ %1446, %._crit_edge2228 ]
  %1603 = phi i32 [ %1680, %1821 ], [ %1447, %._crit_edge2228 ]
  %1604 = phi i32 [ %1681, %1821 ], [ %1449, %._crit_edge2228 ]
  %1605 = phi i32 [ %1682, %1821 ], [ %1450, %._crit_edge2228 ]
  %1606 = phi i32 [ %1683, %1821 ], [ %1451, %._crit_edge2228 ]
  %1607 = phi i32 [ %1684, %1821 ], [ %1452, %._crit_edge2228 ]
  %1608 = phi i32 [ %1685, %1821 ], [ %1453, %._crit_edge2228 ]
  %1609 = phi i32 [ %1686, %1821 ], [ %1454, %._crit_edge2228 ]
  %1610 = phi ptr [ %1687, %1821 ], [ %1455, %._crit_edge2228 ]
  %1611 = phi ptr [ %1688, %1821 ], [ %1456, %._crit_edge2228 ]
  %1612 = phi ptr [ %1689, %1821 ], [ %1457, %._crit_edge2228 ]
  %.01604 = phi i32 [ %.21606, %1821 ], [ %1448, %._crit_edge2228 ]
  %.31474 = phi i32 [ %.51476, %1821 ], [ %.01471, %._crit_edge2228 ]
  %.41453 = phi i32 [ %.61455, %1821 ], [ %.11450, %._crit_edge2228 ]
  %.51431 = phi i32 [ %.71433, %1821 ], [ %.21428, %._crit_edge2228 ]
  %.01407 = phi i32 [ %1822, %1821 ], [ 0, %._crit_edge2228 ]
  %.91387 = phi i32 [ %.111389, %1821 ], [ %.61384, %._crit_edge2228 ]
  %.13 = phi i32 [ %.15, %1821 ], [ %.12.lcssa, %._crit_edge2228 ]
  %1613 = icmp slt i32 %.01407, %.41453
  br i1 %1613, label %1621, label %.preheader1887

.preheader1887:                                   ; preds = %1595
  %1614 = icmp sgt i32 %.41453, 0
  br i1 %1614, label %.preheader1886.lr.ph, label %._crit_edge2238

.preheader1886.lr.ph:                             ; preds = %.preheader1887
  %1615 = icmp sgt i32 %.51431, 0
  %1616 = getelementptr inbounds i8, ptr %0, i64 43888
  %1617 = getelementptr inbounds i8, ptr %0, i64 45436
  %1618 = getelementptr inbounds i8, ptr %0, i64 51628
  %1619 = getelementptr inbounds i8, ptr %0, i64 57820
  %1620 = getelementptr inbounds i8, ptr %0, i64 64012
  %wide.trip.count2559 = zext nneg i32 %.41453 to i64
  %wide.trip.count2553 = zext i32 %.51431 to i64
  %min.iters.check3210 = icmp ult i32 %.51431, 8
  %n.vec3213 = and i64 %wide.trip.count2553, 2147483640
  %cmp.n3224 = icmp eq i64 %n.vec3213, %wide.trip.count2553
  br label %.preheader1886

1621:                                             ; preds = %1595, %10
  %1622 = phi i32 [ %1596, %1595 ], [ %.pre2661, %10 ]
  %1623 = phi i32 [ %1597, %1595 ], [ %.pre2663, %10 ]
  %1624 = phi i32 [ %1598, %1595 ], [ %.pre2665, %10 ]
  %1625 = phi i32 [ %1599, %1595 ], [ %.pre2667, %10 ]
  %1626 = phi i32 [ %1600, %1595 ], [ %.pre2669, %10 ]
  %1627 = phi i32 [ %1601, %1595 ], [ %.pre2671, %10 ]
  %1628 = phi i32 [ %1602, %1595 ], [ %.pre2673, %10 ]
  %1629 = phi i32 [ %1603, %1595 ], [ %.pre2675, %10 ]
  %1630 = phi i32 [ %1604, %1595 ], [ %.pre2679, %10 ]
  %1631 = phi i32 [ %1605, %1595 ], [ %.pre2681, %10 ]
  %1632 = phi i32 [ %1606, %1595 ], [ %.pre2683, %10 ]
  %1633 = phi i32 [ %1607, %1595 ], [ %.pre2685, %10 ]
  %1634 = phi i32 [ %1608, %1595 ], [ %.pre2687, %10 ]
  %1635 = phi i32 [ %1609, %1595 ], [ %.pre2689, %10 ]
  %1636 = phi ptr [ %1610, %1595 ], [ %.pre2691, %10 ]
  %1637 = phi ptr [ %1611, %1595 ], [ %.pre2693, %10 ]
  %1638 = phi ptr [ %1612, %1595 ], [ %.pre2695, %10 ]
  %.11605 = phi i32 [ %.01604, %1595 ], [ %.pre2677, %10 ]
  %.41475 = phi i32 [ %.31474, %1595 ], [ %.pre2659, %10 ]
  %.51454 = phi i32 [ %.41453, %1595 ], [ %.pre2657, %10 ]
  %.61432 = phi i32 [ %.51431, %1595 ], [ %.pre2655, %10 ]
  %.11408 = phi i32 [ %.01407, %1595 ], [ %.pre2653, %10 ]
  %.101388 = phi i32 [ %.91387, %1595 ], [ %.pre2651, %10 ]
  %.14 = phi i32 [ %.13, %1595 ], [ %.pre, %10 ]
  store i32 33, ptr %4, align 8, !tbaa !11
  %1639 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2332 = load i32, ptr %1639, align 4, !tbaa !12
  %1640 = icmp sgt i32 %.promoted2332, 4
  br i1 %1640, label %.._crit_edge2335_crit_edge, label %.lr.ph2334

.._crit_edge2335_crit_edge:                       ; preds = %1621
  %.phi.trans.insert2815 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2816 = load i32, ptr %.phi.trans.insert2815, align 8, !tbaa !37
  br label %._crit_edge2335

.lr.ph2334:                                       ; preds = %1621
  %1641 = load ptr, ptr %0, align 8, !tbaa !5
  %1642 = getelementptr inbounds i8, ptr %1641, i64 8
  %1643 = getelementptr inbounds i8, ptr %0, i64 32
  %1644 = getelementptr inbounds i8, ptr %1641, i64 12
  %1645 = getelementptr inbounds i8, ptr %1641, i64 16
  %.promoted2338 = load i32, ptr %1642, align 8, !tbaa !38
  br label %1650

._crit_edge2335:                                  ; preds = %1670, %.._crit_edge2335_crit_edge
  %1646 = phi i32 [ %.pre2816, %.._crit_edge2335_crit_edge ], [ %1660, %1670 ]
  %.lcssa1966 = phi i32 [ %.promoted2332, %.._crit_edge2335_crit_edge ], [ %1661, %1670 ]
  %1647 = add nsw i32 %.lcssa1966, -5
  %1648 = lshr i32 %1646, %1647
  %1649 = and i32 %1648, 31
  store i32 %1647, ptr %1639, align 4, !tbaa !12
  br label %1672

1650:                                             ; preds = %.lr.ph2334, %1670
  %1651 = phi i32 [ %.promoted2338, %.lr.ph2334 ], [ %1663, %1670 ]
  %1652 = phi i32 [ %.promoted2332, %.lr.ph2334 ], [ %1661, %1670 ]
  %1653 = icmp eq i32 %1651, 0
  br i1 %1653, label %.loopexit, label %1654

1654:                                             ; preds = %1650
  %1655 = load i32, ptr %1643, align 8, !tbaa !37
  %1656 = shl i32 %1655, 8
  %1657 = load ptr, ptr %1641, align 8, !tbaa !40
  %1658 = load i8, ptr %1657, align 1, !tbaa !41
  %1659 = zext i8 %1658 to i32
  %1660 = or disjoint i32 %1656, %1659
  store i32 %1660, ptr %1643, align 8, !tbaa !37
  %1661 = add nsw i32 %1652, 8
  store i32 %1661, ptr %1639, align 4, !tbaa !12
  %1662 = getelementptr inbounds i8, ptr %1657, i64 1
  store ptr %1662, ptr %1641, align 8, !tbaa !40
  %1663 = add i32 %1651, -1
  store i32 %1663, ptr %1642, align 8, !tbaa !38
  %1664 = load i32, ptr %1644, align 4, !tbaa !42
  %1665 = add i32 %1664, 1
  store i32 %1665, ptr %1644, align 4, !tbaa !42
  %1666 = icmp eq i32 %1665, 0
  br i1 %1666, label %1667, label %1670

1667:                                             ; preds = %1654
  %1668 = load i32, ptr %1645, align 8, !tbaa !43
  %1669 = add i32 %1668, 1
  store i32 %1669, ptr %1645, align 8, !tbaa !43
  br label %1670

1670:                                             ; preds = %1667, %1654
  %1671 = icmp sgt i32 %1652, -4
  br i1 %1671, label %._crit_edge2335, label %1650

1672:                                             ; preds = %1814, %._crit_edge2335
  %1673 = phi i32 [ %1711, %1814 ], [ %1622, %._crit_edge2335 ]
  %1674 = phi i32 [ %1712, %1814 ], [ %1623, %._crit_edge2335 ]
  %1675 = phi i32 [ %1713, %1814 ], [ %1624, %._crit_edge2335 ]
  %1676 = phi i32 [ %1714, %1814 ], [ %1625, %._crit_edge2335 ]
  %1677 = phi i32 [ %1715, %1814 ], [ %1626, %._crit_edge2335 ]
  %1678 = phi i32 [ %1716, %1814 ], [ %1627, %._crit_edge2335 ]
  %1679 = phi i32 [ %1717, %1814 ], [ %1628, %._crit_edge2335 ]
  %1680 = phi i32 [ %1718, %1814 ], [ %1629, %._crit_edge2335 ]
  %1681 = phi i32 [ %1719, %1814 ], [ %1630, %._crit_edge2335 ]
  %1682 = phi i32 [ %1720, %1814 ], [ %1631, %._crit_edge2335 ]
  %1683 = phi i32 [ %1721, %1814 ], [ %1632, %._crit_edge2335 ]
  %1684 = phi i32 [ %1722, %1814 ], [ %1633, %._crit_edge2335 ]
  %1685 = phi i32 [ %1723, %1814 ], [ %1634, %._crit_edge2335 ]
  %1686 = phi i32 [ %1724, %1814 ], [ %1635, %._crit_edge2335 ]
  %1687 = phi ptr [ %1725, %1814 ], [ %1636, %._crit_edge2335 ]
  %1688 = phi ptr [ %1726, %1814 ], [ %1637, %._crit_edge2335 ]
  %1689 = phi ptr [ %1727, %1814 ], [ %1638, %._crit_edge2335 ]
  %.21606 = phi i32 [ %.41608, %1814 ], [ %1649, %._crit_edge2335 ]
  %.51476 = phi i32 [ %.71478, %1814 ], [ %.41475, %._crit_edge2335 ]
  %.61455 = phi i32 [ %.81457, %1814 ], [ %.51454, %._crit_edge2335 ]
  %.71433 = phi i32 [ %.91435, %1814 ], [ %.61432, %._crit_edge2335 ]
  %.21409 = phi i32 [ %.41411, %1814 ], [ %.11408, %._crit_edge2335 ]
  %.111389 = phi i32 [ %.131391, %1814 ], [ %.101388, %._crit_edge2335 ]
  %.15 = phi i32 [ %1820, %1814 ], [ 0, %._crit_edge2335 ]
  %1690 = icmp slt i32 %.15, %.71433
  br i1 %1690, label %1691, label %1821

1691:                                             ; preds = %1672, %._crit_edge2349
  %1692 = phi i32 [ %1763, %._crit_edge2349 ], [ %1673, %1672 ]
  %1693 = phi i32 [ %1764, %._crit_edge2349 ], [ %1674, %1672 ]
  %1694 = phi i32 [ %1765, %._crit_edge2349 ], [ %1675, %1672 ]
  %1695 = phi i32 [ %1766, %._crit_edge2349 ], [ %1676, %1672 ]
  %1696 = phi i32 [ %1767, %._crit_edge2349 ], [ %1677, %1672 ]
  %1697 = phi i32 [ %1768, %._crit_edge2349 ], [ %1678, %1672 ]
  %1698 = phi i32 [ %1769, %._crit_edge2349 ], [ %1679, %1672 ]
  %1699 = phi i32 [ %1770, %._crit_edge2349 ], [ %1680, %1672 ]
  %1700 = phi i32 [ %1771, %._crit_edge2349 ], [ %1681, %1672 ]
  %1701 = phi i32 [ %1772, %._crit_edge2349 ], [ %1682, %1672 ]
  %1702 = phi i32 [ %1773, %._crit_edge2349 ], [ %1683, %1672 ]
  %1703 = phi i32 [ %1774, %._crit_edge2349 ], [ %1684, %1672 ]
  %1704 = phi i32 [ %1775, %._crit_edge2349 ], [ %1685, %1672 ]
  %1705 = phi i32 [ %1776, %._crit_edge2349 ], [ %1686, %1672 ]
  %1706 = phi ptr [ %1777, %._crit_edge2349 ], [ %1687, %1672 ]
  %1707 = phi ptr [ %1778, %._crit_edge2349 ], [ %1688, %1672 ]
  %1708 = phi ptr [ %1779, %._crit_edge2349 ], [ %1689, %1672 ]
  %.31607 = phi i32 [ %.61610, %._crit_edge2349 ], [ %.21606, %1672 ]
  %.61477 = phi i32 [ %.81479, %._crit_edge2349 ], [ %.51476, %1672 ]
  %.71456 = phi i32 [ %.91458, %._crit_edge2349 ], [ %.61455, %1672 ]
  %.81434 = phi i32 [ %.101436, %._crit_edge2349 ], [ %.71433, %1672 ]
  %.31410 = phi i32 [ %.51412, %._crit_edge2349 ], [ %.21409, %1672 ]
  %.121390 = phi i32 [ %.141392, %._crit_edge2349 ], [ %.111389, %1672 ]
  %.16 = phi i32 [ %.18, %._crit_edge2349 ], [ %.15, %1672 ]
  %1709 = add i32 %.31607, -21
  %or.cond3 = icmp ult i32 %1709, -20
  br i1 %or.cond3, label %.loopexit, label %1710

1710:                                             ; preds = %1691, %10
  %1711 = phi i32 [ %1692, %1691 ], [ %.pre2661, %10 ]
  %1712 = phi i32 [ %1693, %1691 ], [ %.pre2663, %10 ]
  %1713 = phi i32 [ %1694, %1691 ], [ %.pre2665, %10 ]
  %1714 = phi i32 [ %1695, %1691 ], [ %.pre2667, %10 ]
  %1715 = phi i32 [ %1696, %1691 ], [ %.pre2669, %10 ]
  %1716 = phi i32 [ %1697, %1691 ], [ %.pre2671, %10 ]
  %1717 = phi i32 [ %1698, %1691 ], [ %.pre2673, %10 ]
  %1718 = phi i32 [ %1699, %1691 ], [ %.pre2675, %10 ]
  %1719 = phi i32 [ %1700, %1691 ], [ %.pre2679, %10 ]
  %1720 = phi i32 [ %1701, %1691 ], [ %.pre2681, %10 ]
  %1721 = phi i32 [ %1702, %1691 ], [ %.pre2683, %10 ]
  %1722 = phi i32 [ %1703, %1691 ], [ %.pre2685, %10 ]
  %1723 = phi i32 [ %1704, %1691 ], [ %.pre2687, %10 ]
  %1724 = phi i32 [ %1705, %1691 ], [ %.pre2689, %10 ]
  %1725 = phi ptr [ %1706, %1691 ], [ %.pre2691, %10 ]
  %1726 = phi ptr [ %1707, %1691 ], [ %.pre2693, %10 ]
  %1727 = phi ptr [ %1708, %1691 ], [ %.pre2695, %10 ]
  %.41608 = phi i32 [ %.31607, %1691 ], [ %.pre2677, %10 ]
  %.71478 = phi i32 [ %.61477, %1691 ], [ %.pre2659, %10 ]
  %.81457 = phi i32 [ %.71456, %1691 ], [ %.pre2657, %10 ]
  %.91435 = phi i32 [ %.81434, %1691 ], [ %.pre2655, %10 ]
  %.41411 = phi i32 [ %.31410, %1691 ], [ %.pre2653, %10 ]
  %.131391 = phi i32 [ %.121390, %1691 ], [ %.pre2651, %10 ]
  %.17 = phi i32 [ %.16, %1691 ], [ %.pre, %10 ]
  store i32 34, ptr %4, align 8, !tbaa !11
  %1728 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2339 = load i32, ptr %1728, align 4, !tbaa !12
  %1729 = icmp sgt i32 %.promoted2339, 0
  br i1 %1729, label %.._crit_edge2342_crit_edge, label %.lr.ph2341

.._crit_edge2342_crit_edge:                       ; preds = %1710
  %.phi.trans.insert2817 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2818 = load i32, ptr %.phi.trans.insert2817, align 8, !tbaa !37
  br label %._crit_edge2342

.lr.ph2341:                                       ; preds = %1710
  %1730 = load ptr, ptr %0, align 8, !tbaa !5
  %1731 = getelementptr inbounds i8, ptr %1730, i64 8
  %1732 = getelementptr inbounds i8, ptr %0, i64 32
  %1733 = getelementptr inbounds i8, ptr %1730, i64 12
  %1734 = getelementptr inbounds i8, ptr %1730, i64 16
  %.promoted2345 = load i32, ptr %1731, align 8, !tbaa !38
  br label %1740

._crit_edge2342:                                  ; preds = %1760, %.._crit_edge2342_crit_edge
  %1735 = phi i32 [ %.pre2818, %.._crit_edge2342_crit_edge ], [ %1750, %1760 ]
  %.lcssa1962 = phi i32 [ %.promoted2339, %.._crit_edge2342_crit_edge ], [ %1751, %1760 ]
  %1736 = add nsw i32 %.lcssa1962, -1
  store i32 %1736, ptr %1728, align 4, !tbaa !12
  %1737 = shl nuw i32 1, %1736
  %1738 = and i32 %1735, %1737
  %1739 = icmp eq i32 %1738, 0
  br i1 %1739, label %1814, label %1762

1740:                                             ; preds = %.lr.ph2341, %1760
  %1741 = phi i32 [ %.promoted2345, %.lr.ph2341 ], [ %1753, %1760 ]
  %1742 = phi i32 [ %.promoted2339, %.lr.ph2341 ], [ %1751, %1760 ]
  %1743 = icmp eq i32 %1741, 0
  br i1 %1743, label %.loopexit, label %1744

1744:                                             ; preds = %1740
  %1745 = load i32, ptr %1732, align 8, !tbaa !37
  %1746 = shl i32 %1745, 8
  %1747 = load ptr, ptr %1730, align 8, !tbaa !40
  %1748 = load i8, ptr %1747, align 1, !tbaa !41
  %1749 = zext i8 %1748 to i32
  %1750 = or disjoint i32 %1746, %1749
  store i32 %1750, ptr %1732, align 8, !tbaa !37
  %1751 = add nsw i32 %1742, 8
  store i32 %1751, ptr %1728, align 4, !tbaa !12
  %1752 = getelementptr inbounds i8, ptr %1747, i64 1
  store ptr %1752, ptr %1730, align 8, !tbaa !40
  %1753 = add i32 %1741, -1
  store i32 %1753, ptr %1731, align 8, !tbaa !38
  %1754 = load i32, ptr %1733, align 4, !tbaa !42
  %1755 = add i32 %1754, 1
  store i32 %1755, ptr %1733, align 4, !tbaa !42
  %1756 = icmp eq i32 %1755, 0
  br i1 %1756, label %1757, label %1760

1757:                                             ; preds = %1744
  %1758 = load i32, ptr %1734, align 8, !tbaa !43
  %1759 = add i32 %1758, 1
  store i32 %1759, ptr %1734, align 8, !tbaa !43
  br label %1760

1760:                                             ; preds = %1757, %1744
  %1761 = icmp sgt i32 %1742, -8
  br i1 %1761, label %._crit_edge2342, label %1740

1762:                                             ; preds = %._crit_edge2819, %._crit_edge2342
  %1763 = phi i32 [ %.pre2661, %._crit_edge2819 ], [ %1711, %._crit_edge2342 ]
  %1764 = phi i32 [ %.pre2663, %._crit_edge2819 ], [ %1712, %._crit_edge2342 ]
  %1765 = phi i32 [ %.pre2665, %._crit_edge2819 ], [ %1713, %._crit_edge2342 ]
  %1766 = phi i32 [ %.pre2667, %._crit_edge2819 ], [ %1714, %._crit_edge2342 ]
  %1767 = phi i32 [ %.pre2669, %._crit_edge2819 ], [ %1715, %._crit_edge2342 ]
  %1768 = phi i32 [ %.pre2671, %._crit_edge2819 ], [ %1716, %._crit_edge2342 ]
  %1769 = phi i32 [ %.pre2673, %._crit_edge2819 ], [ %1717, %._crit_edge2342 ]
  %1770 = phi i32 [ %.pre2675, %._crit_edge2819 ], [ %1718, %._crit_edge2342 ]
  %1771 = phi i32 [ %.pre2679, %._crit_edge2819 ], [ %1719, %._crit_edge2342 ]
  %1772 = phi i32 [ %.pre2681, %._crit_edge2819 ], [ %1720, %._crit_edge2342 ]
  %1773 = phi i32 [ %.pre2683, %._crit_edge2819 ], [ %1721, %._crit_edge2342 ]
  %1774 = phi i32 [ %.pre2685, %._crit_edge2819 ], [ %1722, %._crit_edge2342 ]
  %1775 = phi i32 [ %.pre2687, %._crit_edge2819 ], [ %1723, %._crit_edge2342 ]
  %1776 = phi i32 [ %.pre2689, %._crit_edge2819 ], [ %1724, %._crit_edge2342 ]
  %1777 = phi ptr [ %.pre2691, %._crit_edge2819 ], [ %1725, %._crit_edge2342 ]
  %1778 = phi ptr [ %.pre2693, %._crit_edge2819 ], [ %1726, %._crit_edge2342 ]
  %1779 = phi ptr [ %.pre2695, %._crit_edge2819 ], [ %1727, %._crit_edge2342 ]
  %.promoted2346 = phi i32 [ %.promoted2346.pre, %._crit_edge2819 ], [ %1736, %._crit_edge2342 ]
  %.51609 = phi i32 [ %.pre2677, %._crit_edge2819 ], [ %.41608, %._crit_edge2342 ]
  %.81479 = phi i32 [ %.pre2659, %._crit_edge2819 ], [ %.71478, %._crit_edge2342 ]
  %.91458 = phi i32 [ %.pre2657, %._crit_edge2819 ], [ %.81457, %._crit_edge2342 ]
  %.101436 = phi i32 [ %.pre2655, %._crit_edge2819 ], [ %.91435, %._crit_edge2342 ]
  %.51412 = phi i32 [ %.pre2653, %._crit_edge2819 ], [ %.41411, %._crit_edge2342 ]
  %.141392 = phi i32 [ %.pre2651, %._crit_edge2819 ], [ %.131391, %._crit_edge2342 ]
  %.18 = phi i32 [ %.pre, %._crit_edge2819 ], [ %.17, %._crit_edge2342 ]
  store i32 35, ptr %4, align 8, !tbaa !11
  %1780 = getelementptr inbounds i8, ptr %0, i64 36
  %1781 = icmp sgt i32 %.promoted2346, 0
  br i1 %1781, label %.._crit_edge2349_crit_edge, label %.lr.ph2348

.._crit_edge2349_crit_edge:                       ; preds = %1762
  %.phi.trans.insert2822 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2823 = load i32, ptr %.phi.trans.insert2822, align 8, !tbaa !37
  br label %._crit_edge2349

.lr.ph2348:                                       ; preds = %1762
  %1782 = load ptr, ptr %0, align 8, !tbaa !5
  %1783 = getelementptr inbounds i8, ptr %1782, i64 8
  %1784 = getelementptr inbounds i8, ptr %0, i64 32
  %1785 = getelementptr inbounds i8, ptr %1782, i64 12
  %1786 = getelementptr inbounds i8, ptr %1782, i64 16
  %.promoted2352 = load i32, ptr %1783, align 8, !tbaa !38
  br label %1792

._crit_edge2349:                                  ; preds = %1812, %.._crit_edge2349_crit_edge
  %1787 = phi i32 [ %.pre2823, %.._crit_edge2349_crit_edge ], [ %1802, %1812 ]
  %.lcssa1958 = phi i32 [ %.promoted2346, %.._crit_edge2349_crit_edge ], [ %1803, %1812 ]
  %1788 = add nsw i32 %.lcssa1958, -1
  store i32 %1788, ptr %1780, align 4, !tbaa !12
  %1789 = shl nuw i32 1, %1788
  %1790 = and i32 %1787, %1789
  %1791 = icmp eq i32 %1790, 0
  %.61610.v = select i1 %1791, i32 1, i32 -1
  %.61610 = add nsw i32 %.61610.v, %.51609
  br label %1691

1792:                                             ; preds = %.lr.ph2348, %1812
  %1793 = phi i32 [ %.promoted2352, %.lr.ph2348 ], [ %1805, %1812 ]
  %1794 = phi i32 [ %.promoted2346, %.lr.ph2348 ], [ %1803, %1812 ]
  %1795 = icmp eq i32 %1793, 0
  br i1 %1795, label %.loopexit, label %1796

1796:                                             ; preds = %1792
  %1797 = load i32, ptr %1784, align 8, !tbaa !37
  %1798 = shl i32 %1797, 8
  %1799 = load ptr, ptr %1782, align 8, !tbaa !40
  %1800 = load i8, ptr %1799, align 1, !tbaa !41
  %1801 = zext i8 %1800 to i32
  %1802 = or disjoint i32 %1798, %1801
  store i32 %1802, ptr %1784, align 8, !tbaa !37
  %1803 = add nsw i32 %1794, 8
  store i32 %1803, ptr %1780, align 4, !tbaa !12
  %1804 = getelementptr inbounds i8, ptr %1799, i64 1
  store ptr %1804, ptr %1782, align 8, !tbaa !40
  %1805 = add i32 %1793, -1
  store i32 %1805, ptr %1783, align 8, !tbaa !38
  %1806 = load i32, ptr %1785, align 4, !tbaa !42
  %1807 = add i32 %1806, 1
  store i32 %1807, ptr %1785, align 4, !tbaa !42
  %1808 = icmp eq i32 %1807, 0
  br i1 %1808, label %1809, label %1812

1809:                                             ; preds = %1796
  %1810 = load i32, ptr %1786, align 8, !tbaa !43
  %1811 = add i32 %1810, 1
  store i32 %1811, ptr %1786, align 8, !tbaa !43
  br label %1812

1812:                                             ; preds = %1809, %1796
  %1813 = icmp sgt i32 %1794, -8
  br i1 %1813, label %._crit_edge2349, label %1792

1814:                                             ; preds = %._crit_edge2342
  %1815 = trunc i32 %.41608 to i8
  %1816 = getelementptr inbounds i8, ptr %0, i64 43888
  %1817 = sext i32 %.41411 to i64
  %1818 = sext i32 %.17 to i64
  %1819 = getelementptr inbounds [6 x [258 x i8]], ptr %1816, i64 0, i64 %1817, i64 %1818
  store i8 %1815, ptr %1819, align 1, !tbaa !41
  %1820 = add nsw i32 %.17, 1
  br label %1672, !llvm.loop !70

1821:                                             ; preds = %1672
  %1822 = add nsw i32 %.21409, 1
  br label %1595, !llvm.loop !71

.preheader1886:                                   ; preds = %.preheader1886.lr.ph, %._crit_edge2234
  %indvars.iv2555 = phi i64 [ 0, %.preheader1886.lr.ph ], [ %indvars.iv.next2556, %._crit_edge2234 ]
  br i1 %1615, label %.lr.ph2233.preheader, label %._crit_edge2234

.lr.ph2233.preheader:                             ; preds = %.preheader1886
  br i1 %min.iters.check3210, label %.lr.ph2233.preheader3401, label %vector.body3215

vector.body3215:                                  ; preds = %.lr.ph2233.preheader, %vector.body3215
  %index3216 = phi i64 [ %index.next3222, %vector.body3215 ], [ 0, %.lr.ph2233.preheader ]
  %vec.phi = phi <4 x i32> [ %1829, %vector.body3215 ], [ <i32 32, i32 32, i32 32, i32 32>, %.lr.ph2233.preheader ]
  %vec.phi3217 = phi <4 x i32> [ %1830, %vector.body3215 ], [ <i32 32, i32 32, i32 32, i32 32>, %.lr.ph2233.preheader ]
  %vec.phi3218 = phi <4 x i32> [ %1827, %vector.body3215 ], [ zeroinitializer, %.lr.ph2233.preheader ]
  %vec.phi3219 = phi <4 x i32> [ %1828, %vector.body3215 ], [ zeroinitializer, %.lr.ph2233.preheader ]
  %1823 = getelementptr inbounds [6 x [258 x i8]], ptr %1616, i64 0, i64 %indvars.iv2555, i64 %index3216
  %1824 = getelementptr inbounds i8, ptr %1823, i64 4
  %wide.load3220 = load <4 x i8>, ptr %1823, align 1, !tbaa !41
  %wide.load3221 = load <4 x i8>, ptr %1824, align 1, !tbaa !41
  %1825 = zext <4 x i8> %wide.load3220 to <4 x i32>
  %1826 = zext <4 x i8> %wide.load3221 to <4 x i32>
  %1827 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %vec.phi3218, <4 x i32> %1825)
  %1828 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %vec.phi3219, <4 x i32> %1826)
  %1829 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi, <4 x i32> %1825)
  %1830 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi3217, <4 x i32> %1826)
  %index.next3222 = add nuw i64 %index3216, 8
  %1831 = icmp eq i64 %index.next3222, %n.vec3213
  br i1 %1831, label %middle.block3209, label %vector.body3215, !llvm.loop !72

middle.block3209:                                 ; preds = %vector.body3215
  %rdx.minmax = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %1829, <4 x i32> %1830)
  %1832 = call i32 @llvm.vector.reduce.smin.v4i32(<4 x i32> %rdx.minmax)
  %rdx.minmax3223 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %1827, <4 x i32> %1828)
  %1833 = call i32 @llvm.vector.reduce.smax.v4i32(<4 x i32> %rdx.minmax3223)
  br i1 %cmp.n3224, label %._crit_edge2234, label %.lr.ph2233.preheader3401

.lr.ph2233.preheader3401:                         ; preds = %middle.block3209, %.lr.ph2233.preheader
  %indvars.iv2549.ph = phi i64 [ 0, %.lr.ph2233.preheader ], [ %n.vec3213, %middle.block3209 ]
  %.013732232.ph = phi i32 [ 32, %.lr.ph2233.preheader ], [ %1832, %middle.block3209 ]
  %.013742231.ph = phi i32 [ 0, %.lr.ph2233.preheader ], [ %1833, %middle.block3209 ]
  br label %.lr.ph2233

.lr.ph2233:                                       ; preds = %.lr.ph2233.preheader3401, %.lr.ph2233
  %indvars.iv2549 = phi i64 [ %indvars.iv.next2550, %.lr.ph2233 ], [ %indvars.iv2549.ph, %.lr.ph2233.preheader3401 ]
  %.013732232 = phi i32 [ %.1, %.lr.ph2233 ], [ %.013732232.ph, %.lr.ph2233.preheader3401 ]
  %.013742231 = phi i32 [ %spec.select, %.lr.ph2233 ], [ %.013742231.ph, %.lr.ph2233.preheader3401 ]
  %1834 = getelementptr inbounds [6 x [258 x i8]], ptr %1616, i64 0, i64 %indvars.iv2555, i64 %indvars.iv2549
  %1835 = load i8, ptr %1834, align 1, !tbaa !41
  %1836 = zext i8 %1835 to i32
  %spec.select = tail call i32 @llvm.smax.i32(i32 %.013742231, i32 %1836)
  %.1 = tail call i32 @llvm.smin.i32(i32 %.013732232, i32 %1836)
  %indvars.iv.next2550 = add nuw nsw i64 %indvars.iv2549, 1
  %exitcond2554.not = icmp eq i64 %indvars.iv.next2550, %wide.trip.count2553
  br i1 %exitcond2554.not, label %._crit_edge2234, label %.lr.ph2233, !llvm.loop !73

._crit_edge2234:                                  ; preds = %.lr.ph2233, %middle.block3209, %.preheader1886
  %.01374.lcssa = phi i32 [ 0, %.preheader1886 ], [ %1833, %middle.block3209 ], [ %spec.select, %.lr.ph2233 ]
  %.01373.lcssa = phi i32 [ 32, %.preheader1886 ], [ %1832, %middle.block3209 ], [ %.1, %.lr.ph2233 ]
  %1837 = getelementptr inbounds [6 x [258 x i32]], ptr %1617, i64 0, i64 %indvars.iv2555
  %1838 = getelementptr inbounds [6 x [258 x i32]], ptr %1618, i64 0, i64 %indvars.iv2555
  %1839 = getelementptr inbounds [6 x [258 x i32]], ptr %1619, i64 0, i64 %indvars.iv2555
  %1840 = getelementptr inbounds [6 x [258 x i8]], ptr %1616, i64 0, i64 %indvars.iv2555
  tail call void @BZ2_hbCreateDecodeTables(ptr noundef nonnull %1837, ptr noundef nonnull %1838, ptr noundef nonnull %1839, ptr noundef nonnull %1840, i32 noundef %.01373.lcssa, i32 noundef %.01374.lcssa, i32 noundef %.51431)
  %1841 = getelementptr inbounds [6 x i32], ptr %1620, i64 0, i64 %indvars.iv2555
  store i32 %.01373.lcssa, ptr %1841, align 4, !tbaa !74
  %indvars.iv.next2556 = add nuw nsw i64 %indvars.iv2555, 1
  %exitcond2560.not = icmp eq i64 %indvars.iv.next2556, %wide.trip.count2559
  br i1 %exitcond2560.not, label %._crit_edge2238, label %.preheader1886, !llvm.loop !75

._crit_edge2238:                                  ; preds = %._crit_edge2234, %.preheader1887
  %.61413.lcssa = phi i32 [ 0, %.preheader1887 ], [ %.41453, %._crit_edge2234 ]
  %1842 = getelementptr inbounds i8, ptr %0, i64 3192
  %1843 = load i32, ptr %1842, align 8, !tbaa !59
  %1844 = getelementptr inbounds i8, ptr %0, i64 40
  %1845 = load i32, ptr %1844, align 8, !tbaa !44
  %1846 = getelementptr inbounds i8, ptr %0, i64 68
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1024) %1846, i8 0, i64 1024, i1 false), !tbaa !74
  %1847 = mul nsw i32 %1845, 100000
  %1848 = getelementptr inbounds i8, ptr %0, i64 3724
  %1849 = getelementptr inbounds i8, ptr %0, i64 7820
  br label %.preheader1884

.preheader1884:                                   ; preds = %._crit_edge2238, %.preheader1884
  %indvars.iv2572 = phi i64 [ 15, %._crit_edge2238 ], [ %indvars.iv.next2573, %.preheader1884 ]
  %indvars.iv2570 = phi i64 [ 4095, %._crit_edge2238 ], [ %indvars.iv.next2571, %.preheader1884 ]
  %1850 = shl nsw i64 %indvars.iv2572, 4
  %1851 = trunc i64 %1850 to i8
  %1852 = or disjoint i8 %1851, 15
  %1853 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv2570
  store i8 %1852, ptr %1853, align 1, !tbaa !41
  %indvars.iv.next2567 = add nsw i64 %indvars.iv2570, -1
  %1854 = trunc i64 %1850 to i8
  %1855 = or disjoint i8 %1854, 14
  %1856 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv.next2567
  store i8 %1855, ptr %1856, align 1, !tbaa !41
  %indvars.iv.next2567.1 = add nsw i64 %indvars.iv2570, -2
  %1857 = trunc i64 %1850 to i8
  %1858 = or disjoint i8 %1857, 13
  %1859 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv.next2567.1
  store i8 %1858, ptr %1859, align 1, !tbaa !41
  %indvars.iv.next2567.5 = add nsw i64 %indvars.iv2570, -6
  %1860 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv.next2567.5
  %1861 = trunc i64 %1850 to i8
  %1862 = insertelement <4 x i8> poison, i8 %1861, i64 0
  %1863 = shufflevector <4 x i8> %1862, <4 x i8> poison, <4 x i32> zeroinitializer
  %1864 = or disjoint <4 x i8> %1863, <i8 9, i8 10, i8 11, i8 12>
  store <4 x i8> %1864, ptr %1860, align 1, !tbaa !41
  %indvars.iv.next2567.13 = add nsw i64 %indvars.iv2570, -14
  %1865 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv.next2567.13
  %1866 = trunc i64 %1850 to i8
  %1867 = insertelement <8 x i8> poison, i8 %1866, i64 0
  %1868 = shufflevector <8 x i8> %1867, <8 x i8> poison, <8 x i32> zeroinitializer
  %1869 = or disjoint <8 x i8> %1868, <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8>
  store <8 x i8> %1869, ptr %1865, align 1, !tbaa !41
  %indvars.iv.next2567.14 = add nsw i64 %indvars.iv2570, -15
  %1870 = trunc i64 %1850 to i8
  %1871 = getelementptr inbounds [4096 x i8], ptr %1848, i64 0, i64 %indvars.iv.next2567.14
  store i8 %1870, ptr %1871, align 1, !tbaa !41
  %1872 = trunc nsw i64 %indvars.iv.next2567.14 to i32
  %indvars.iv.next2571 = add nsw i64 %indvars.iv2570, -16
  %1873 = getelementptr inbounds [16 x i32], ptr %1849, i64 0, i64 %indvars.iv2572
  store i32 %1872, ptr %1873, align 4, !tbaa !74
  %indvars.iv.next2573 = add nsw i64 %indvars.iv2572, -1
  %.not2875 = icmp eq i64 %indvars.iv2572, 0
  br i1 %.not2875, label %1874, label %.preheader1884, !llvm.loop !76

1874:                                             ; preds = %.preheader1884
  %1875 = add nsw i32 %1843, 1
  %1876 = icmp slt i32 %.31474, 1
  br i1 %1876, label %.loopexit, label %1877

1877:                                             ; preds = %1874
  %1878 = getelementptr inbounds i8, ptr %0, i64 51628
  %1879 = getelementptr inbounds i8, ptr %0, i64 7884
  %1880 = load i8, ptr %1879, align 1, !tbaa !41
  %1881 = zext i8 %1880 to i64
  %1882 = getelementptr inbounds [6 x [258 x i32]], ptr %1878, i64 0, i64 %1881
  %1883 = getelementptr inbounds i8, ptr %0, i64 57820
  %1884 = getelementptr inbounds [6 x [258 x i32]], ptr %1883, i64 0, i64 %1881
  %1885 = getelementptr inbounds i8, ptr %0, i64 45436
  %1886 = getelementptr inbounds [6 x [258 x i32]], ptr %1885, i64 0, i64 %1881
  %1887 = getelementptr inbounds i8, ptr %0, i64 64012
  %1888 = getelementptr inbounds [6 x i32], ptr %1887, i64 0, i64 %1881
  %1889 = load i32, ptr %1888, align 4, !tbaa !74
  %1890 = zext i8 %1880 to i32
  br label %1891

1891:                                             ; preds = %1877, %10
  %1892 = phi i32 [ %.pre2667, %10 ], [ %1599, %1877 ]
  %1893 = phi i32 [ %.pre2673, %10 ], [ %1602, %1877 ]
  %1894 = phi i32 [ %.pre2675, %10 ], [ %1603, %1877 ]
  %1895 = phi i32 [ %.pre2679, %10 ], [ %1604, %1877 ]
  %1896 = phi i32 [ %.pre2683, %10 ], [ %1606, %1877 ]
  %1897 = phi i32 [ %.pre2685, %10 ], [ %1607, %1877 ]
  %.11720 = phi ptr [ %.pre2695, %10 ], [ %1884, %1877 ]
  %.11705 = phi ptr [ %.pre2693, %10 ], [ %1882, %1877 ]
  %.11690 = phi ptr [ %.pre2691, %10 ], [ %1886, %1877 ]
  %.11675 = phi i32 [ %.pre2689, %10 ], [ %1889, %1877 ]
  %.11660 = phi i32 [ %.pre2687, %10 ], [ %1890, %1877 ]
  %.01623 = phi i32 [ %.pre2681, %10 ], [ %1889, %1877 ]
  %.71611 = phi i32 [ %.pre2677, %10 ], [ %.01604, %1877 ]
  %.01563 = phi i32 [ %.pre2671, %10 ], [ 0, %1877 ]
  %.01551 = phi i32 [ %.pre2669, %10 ], [ %1847, %1877 ]
  %.11520 = phi i32 [ %.pre2665, %10 ], [ 49, %1877 ]
  %.11505 = phi i32 [ %.pre2663, %10 ], [ 0, %1877 ]
  %.01492 = phi i32 [ %.pre2661, %10 ], [ %1875, %1877 ]
  %.91480 = phi i32 [ %.pre2659, %10 ], [ %.31474, %1877 ]
  %.101459 = phi i32 [ %.pre2657, %10 ], [ %.41453, %1877 ]
  %.111437 = phi i32 [ %.pre2655, %10 ], [ %.51431, %1877 ]
  %.71414 = phi i32 [ %.pre2653, %10 ], [ %.61413.lcssa, %1877 ]
  %.151393 = phi i32 [ %.pre2651, %10 ], [ %.91387, %1877 ]
  %.21 = phi i32 [ %.pre, %10 ], [ 256, %1877 ]
  store i32 36, ptr %4, align 8, !tbaa !11
  %1898 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2245 = load i32, ptr %1898, align 4, !tbaa !12
  %.not18102246 = icmp slt i32 %.promoted2245, %.01623
  br i1 %.not18102246, label %.lr.ph2248, label %.._crit_edge2249_crit_edge

.._crit_edge2249_crit_edge:                       ; preds = %1891
  %.phi.trans.insert2787 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2788 = load i32, ptr %.phi.trans.insert2787, align 8, !tbaa !37
  br label %._crit_edge2249

.lr.ph2248:                                       ; preds = %1891
  %1899 = load ptr, ptr %0, align 8, !tbaa !5
  %1900 = getelementptr inbounds i8, ptr %1899, i64 8
  %1901 = getelementptr inbounds i8, ptr %0, i64 32
  %1902 = getelementptr inbounds i8, ptr %1899, i64 12
  %1903 = getelementptr inbounds i8, ptr %1899, i64 16
  %.promoted2252 = load i32, ptr %1900, align 8, !tbaa !38
  br label %1909

._crit_edge2249:                                  ; preds = %1929, %.._crit_edge2249_crit_edge
  %1904 = phi i32 [ %.pre2788, %.._crit_edge2249_crit_edge ], [ %1919, %1929 ]
  %.lcssa1998 = phi i32 [ %.promoted2245, %.._crit_edge2249_crit_edge ], [ %1920, %1929 ]
  %1905 = sub nsw i32 %.lcssa1998, %.01623
  %1906 = lshr i32 %1904, %1905
  %notmask = shl nsw i32 -1, %.01623
  %1907 = xor i32 %notmask, -1
  %1908 = and i32 %1906, %1907
  store i32 %1905, ptr %1898, align 4, !tbaa !12
  br label %1930

1909:                                             ; preds = %.lr.ph2248, %1929
  %1910 = phi i32 [ %.promoted2252, %.lr.ph2248 ], [ %1922, %1929 ]
  %1911 = phi i32 [ %.promoted2245, %.lr.ph2248 ], [ %1920, %1929 ]
  %1912 = icmp eq i32 %1910, 0
  br i1 %1912, label %.loopexit, label %1913

1913:                                             ; preds = %1909
  %1914 = load i32, ptr %1901, align 8, !tbaa !37
  %1915 = shl i32 %1914, 8
  %1916 = load ptr, ptr %1899, align 8, !tbaa !40
  %1917 = load i8, ptr %1916, align 1, !tbaa !41
  %1918 = zext i8 %1917 to i32
  %1919 = or disjoint i32 %1915, %1918
  store i32 %1919, ptr %1901, align 8, !tbaa !37
  %1920 = add nsw i32 %1911, 8
  store i32 %1920, ptr %1898, align 4, !tbaa !12
  %1921 = getelementptr inbounds i8, ptr %1916, i64 1
  store ptr %1921, ptr %1899, align 8, !tbaa !40
  %1922 = add i32 %1910, -1
  store i32 %1922, ptr %1900, align 8, !tbaa !38
  %1923 = load i32, ptr %1902, align 4, !tbaa !42
  %1924 = add i32 %1923, 1
  store i32 %1924, ptr %1902, align 4, !tbaa !42
  %1925 = icmp eq i32 %1924, 0
  br i1 %1925, label %1926, label %1929

1926:                                             ; preds = %1913
  %1927 = load i32, ptr %1903, align 8, !tbaa !43
  %1928 = add i32 %1927, 1
  store i32 %1928, ptr %1903, align 8, !tbaa !43
  br label %1929

1929:                                             ; preds = %1926, %1913
  %.not1810 = icmp slt i32 %1920, %.01623
  br i1 %.not1810, label %1909, label %._crit_edge2249

1930:                                             ; preds = %._crit_edge2328, %._crit_edge2249
  %1931 = phi i32 [ %1943, %._crit_edge2328 ], [ %1892, %._crit_edge2249 ]
  %1932 = phi i32 [ %1944, %._crit_edge2328 ], [ %1893, %._crit_edge2249 ]
  %1933 = phi i32 [ %1945, %._crit_edge2328 ], [ %1894, %._crit_edge2249 ]
  %1934 = phi i32 [ %1946, %._crit_edge2328 ], [ %1895, %._crit_edge2249 ]
  %.promoted23252812 = phi i32 [ %1955, %._crit_edge2328 ], [ %1905, %._crit_edge2249 ]
  %.21721 = phi ptr [ %.31722, %._crit_edge2328 ], [ %.11720, %._crit_edge2249 ]
  %.21706 = phi ptr [ %.31707, %._crit_edge2328 ], [ %.11705, %._crit_edge2249 ]
  %.21691 = phi ptr [ %.31692, %._crit_edge2328 ], [ %.11690, %._crit_edge2249 ]
  %.21676 = phi i32 [ %.31677, %._crit_edge2328 ], [ %.11675, %._crit_edge2249 ]
  %.21661 = phi i32 [ %.31662, %._crit_edge2328 ], [ %.11660, %._crit_edge2249 ]
  %.01648 = phi i32 [ %1957, %._crit_edge2328 ], [ %1897, %._crit_edge2249 ]
  %.01635 = phi i32 [ %1959, %._crit_edge2328 ], [ %1908, %._crit_edge2249 ]
  %.11624 = phi i32 [ %.21625, %._crit_edge2328 ], [ %.01623, %._crit_edge2249 ]
  %.81612 = phi i32 [ %.91613, %._crit_edge2328 ], [ %.71611, %._crit_edge2249 ]
  %.11564 = phi i32 [ %.21565, %._crit_edge2328 ], [ %.01563, %._crit_edge2249 ]
  %.11552 = phi i32 [ %.21553, %._crit_edge2328 ], [ %.01551, %._crit_edge2249 ]
  %.21521 = phi i32 [ %.31522, %._crit_edge2328 ], [ %.11520, %._crit_edge2249 ]
  %.21506 = phi i32 [ %.31507, %._crit_edge2328 ], [ %.11505, %._crit_edge2249 ]
  %.11493 = phi i32 [ %.21494, %._crit_edge2328 ], [ %.01492, %._crit_edge2249 ]
  %.101481 = phi i32 [ %.111482, %._crit_edge2328 ], [ %.91480, %._crit_edge2249 ]
  %.111460 = phi i32 [ %.121461, %._crit_edge2328 ], [ %.101459, %._crit_edge2249 ]
  %.121438 = phi i32 [ %.131439, %._crit_edge2328 ], [ %.111437, %._crit_edge2249 ]
  %.81415 = phi i32 [ %.91416, %._crit_edge2328 ], [ %.71414, %._crit_edge2249 ]
  %.161394 = phi i32 [ %.171395, %._crit_edge2328 ], [ %.151393, %._crit_edge2249 ]
  %.22 = phi i32 [ %.23, %._crit_edge2328 ], [ %.21, %._crit_edge2249 ]
  %1935 = icmp sgt i32 %.11624, 20
  br i1 %1935, label %.loopexit, label %1936

1936:                                             ; preds = %1930
  %1937 = sext i32 %.11624 to i64
  %1938 = getelementptr inbounds i32, ptr %.21691, i64 %1937
  %1939 = load i32, ptr %1938, align 4, !tbaa !74
  %.not1811 = icmp sgt i32 %.01635, %1939
  br i1 %.not1811, label %1940, label %1982

1940:                                             ; preds = %1936
  %1941 = add nsw i32 %.11624, 1
  br label %1942

1942:                                             ; preds = %._crit_edge2809, %1940
  %1943 = phi i32 [ %.pre2667, %._crit_edge2809 ], [ %1931, %1940 ]
  %1944 = phi i32 [ %.pre2673, %._crit_edge2809 ], [ %1932, %1940 ]
  %1945 = phi i32 [ %.pre2675, %._crit_edge2809 ], [ %1933, %1940 ]
  %1946 = phi i32 [ %.pre2679, %._crit_edge2809 ], [ %1934, %1940 ]
  %.promoted2325 = phi i32 [ %.promoted2325.pre, %._crit_edge2809 ], [ %.promoted23252812, %1940 ]
  %.31722 = phi ptr [ %.pre2695, %._crit_edge2809 ], [ %.21721, %1940 ]
  %.31707 = phi ptr [ %.pre2693, %._crit_edge2809 ], [ %.21706, %1940 ]
  %.31692 = phi ptr [ %.pre2691, %._crit_edge2809 ], [ %.21691, %1940 ]
  %.31677 = phi i32 [ %.pre2689, %._crit_edge2809 ], [ %.21676, %1940 ]
  %.31662 = phi i32 [ %.pre2687, %._crit_edge2809 ], [ %.21661, %1940 ]
  %.11649 = phi i32 [ %.pre2685, %._crit_edge2809 ], [ %.01648, %1940 ]
  %.11636 = phi i32 [ %.pre2683, %._crit_edge2809 ], [ %.01635, %1940 ]
  %.21625 = phi i32 [ %.pre2681, %._crit_edge2809 ], [ %1941, %1940 ]
  %.91613 = phi i32 [ %.pre2677, %._crit_edge2809 ], [ %.81612, %1940 ]
  %.21565 = phi i32 [ %.pre2671, %._crit_edge2809 ], [ %.11564, %1940 ]
  %.21553 = phi i32 [ %.pre2669, %._crit_edge2809 ], [ %.11552, %1940 ]
  %.31522 = phi i32 [ %.pre2665, %._crit_edge2809 ], [ %.21521, %1940 ]
  %.31507 = phi i32 [ %.pre2663, %._crit_edge2809 ], [ %.21506, %1940 ]
  %.21494 = phi i32 [ %.pre2661, %._crit_edge2809 ], [ %.11493, %1940 ]
  %.111482 = phi i32 [ %.pre2659, %._crit_edge2809 ], [ %.101481, %1940 ]
  %.121461 = phi i32 [ %.pre2657, %._crit_edge2809 ], [ %.111460, %1940 ]
  %.131439 = phi i32 [ %.pre2655, %._crit_edge2809 ], [ %.121438, %1940 ]
  %.91416 = phi i32 [ %.pre2653, %._crit_edge2809 ], [ %.81415, %1940 ]
  %.171395 = phi i32 [ %.pre2651, %._crit_edge2809 ], [ %.161394, %1940 ]
  %.23 = phi i32 [ %.pre, %._crit_edge2809 ], [ %.22, %1940 ]
  store i32 37, ptr %4, align 8, !tbaa !11
  %1947 = getelementptr inbounds i8, ptr %0, i64 36
  %1948 = icmp sgt i32 %.promoted2325, 0
  br i1 %1948, label %.._crit_edge2328_crit_edge, label %.lr.ph2327

.._crit_edge2328_crit_edge:                       ; preds = %1942
  %.phi.trans.insert2813 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2814 = load i32, ptr %.phi.trans.insert2813, align 8, !tbaa !37
  br label %._crit_edge2328

.lr.ph2327:                                       ; preds = %1942
  %1949 = load ptr, ptr %0, align 8, !tbaa !5
  %1950 = getelementptr inbounds i8, ptr %1949, i64 8
  %1951 = getelementptr inbounds i8, ptr %0, i64 32
  %1952 = getelementptr inbounds i8, ptr %1949, i64 12
  %1953 = getelementptr inbounds i8, ptr %1949, i64 16
  %.promoted2331 = load i32, ptr %1950, align 8, !tbaa !38
  br label %1960

._crit_edge2328:                                  ; preds = %1980, %.._crit_edge2328_crit_edge
  %1954 = phi i32 [ %.pre2814, %.._crit_edge2328_crit_edge ], [ %1970, %1980 ]
  %.lcssa1970 = phi i32 [ %.promoted2325, %.._crit_edge2328_crit_edge ], [ %1971, %1980 ]
  %1955 = add nsw i32 %.lcssa1970, -1
  %1956 = lshr i32 %1954, %1955
  %1957 = and i32 %1956, 1
  store i32 %1955, ptr %1947, align 4, !tbaa !12
  %1958 = shl i32 %.11636, 1
  %1959 = or disjoint i32 %1957, %1958
  br label %1930

1960:                                             ; preds = %.lr.ph2327, %1980
  %1961 = phi i32 [ %.promoted2331, %.lr.ph2327 ], [ %1973, %1980 ]
  %1962 = phi i32 [ %.promoted2325, %.lr.ph2327 ], [ %1971, %1980 ]
  %1963 = icmp eq i32 %1961, 0
  br i1 %1963, label %.loopexit, label %1964

1964:                                             ; preds = %1960
  %1965 = load i32, ptr %1951, align 8, !tbaa !37
  %1966 = shl i32 %1965, 8
  %1967 = load ptr, ptr %1949, align 8, !tbaa !40
  %1968 = load i8, ptr %1967, align 1, !tbaa !41
  %1969 = zext i8 %1968 to i32
  %1970 = or disjoint i32 %1966, %1969
  store i32 %1970, ptr %1951, align 8, !tbaa !37
  %1971 = add nsw i32 %1962, 8
  store i32 %1971, ptr %1947, align 4, !tbaa !12
  %1972 = getelementptr inbounds i8, ptr %1967, i64 1
  store ptr %1972, ptr %1949, align 8, !tbaa !40
  %1973 = add i32 %1961, -1
  store i32 %1973, ptr %1950, align 8, !tbaa !38
  %1974 = load i32, ptr %1952, align 4, !tbaa !42
  %1975 = add i32 %1974, 1
  store i32 %1975, ptr %1952, align 4, !tbaa !42
  %1976 = icmp eq i32 %1975, 0
  br i1 %1976, label %1977, label %1980

1977:                                             ; preds = %1964
  %1978 = load i32, ptr %1953, align 8, !tbaa !43
  %1979 = add i32 %1978, 1
  store i32 %1979, ptr %1953, align 8, !tbaa !43
  br label %1980

1980:                                             ; preds = %1977, %1964
  %1981 = icmp sgt i32 %1962, -8
  br i1 %1981, label %._crit_edge2328, label %1960

1982:                                             ; preds = %1936
  %1983 = getelementptr inbounds i32, ptr %.21706, i64 %1937
  %1984 = load i32, ptr %1983, align 4, !tbaa !74
  %1985 = sub nsw i32 %.01635, %1984
  %or.cond = icmp ugt i32 %1985, 257
  br i1 %or.cond, label %.loopexit, label %1986

1986:                                             ; preds = %1982
  %1987 = zext nneg i32 %1985 to i64
  %1988 = getelementptr inbounds i32, ptr %.21721, i64 %1987
  %1989 = load i32, ptr %1988, align 4, !tbaa !74
  br label %.loopexit1871

.loopexit1871:                                    ; preds = %.preheader1870, %.preheader1873, %.loopexit1871.loopexit, %.loopexit1871.loopexit2458, %2524, %1986
  %1990 = phi i32 [ %2475, %2524 ], [ %1934, %1986 ], [ %2052, %.loopexit1871.loopexit2458 ], [ %2052, %.loopexit1871.loopexit ], [ %2052, %.preheader1873 ], [ %2052, %.preheader1870 ]
  %.41723 = phi ptr [ %.121731, %2524 ], [ %.21721, %1986 ], [ %.81727, %.loopexit1871.loopexit2458 ], [ %.81727, %.loopexit1871.loopexit ], [ %.81727, %.preheader1873 ], [ %.81727, %.preheader1870 ]
  %.41708 = phi ptr [ %.121716, %2524 ], [ %.21706, %1986 ], [ %.81712, %.loopexit1871.loopexit2458 ], [ %.81712, %.loopexit1871.loopexit ], [ %.81712, %.preheader1873 ], [ %.81712, %.preheader1870 ]
  %.41693 = phi ptr [ %.121701, %2524 ], [ %.21691, %1986 ], [ %.81697, %.loopexit1871.loopexit2458 ], [ %.81697, %.loopexit1871.loopexit ], [ %.81697, %.preheader1873 ], [ %.81697, %.preheader1870 ]
  %.41678 = phi i32 [ %.121686, %2524 ], [ %.21676, %1986 ], [ %.81682, %.loopexit1871.loopexit2458 ], [ %.81682, %.loopexit1871.loopexit ], [ %.81682, %.preheader1873 ], [ %.81682, %.preheader1870 ]
  %.41663 = phi i32 [ %.121671, %2524 ], [ %.21661, %1986 ], [ %.81667, %.loopexit1871.loopexit2458 ], [ %.81667, %.loopexit1871.loopexit ], [ %.81667, %.preheader1873 ], [ %.81667, %.preheader1870 ]
  %.21650 = phi i32 [ %.81656, %2524 ], [ %.01648, %1986 ], [ %.51653, %.loopexit1871.loopexit2458 ], [ %.51653, %.loopexit1871.loopexit ], [ %.51653, %.preheader1873 ], [ %.51653, %.preheader1870 ]
  %.21637 = phi i32 [ %.81643, %2524 ], [ %.01635, %1986 ], [ %.51640, %.loopexit1871.loopexit2458 ], [ %.51640, %.loopexit1871.loopexit ], [ %.51640, %.preheader1873 ], [ %.51640, %.preheader1870 ]
  %.31626 = phi i32 [ %.91632, %2524 ], [ %.11624, %1986 ], [ %.61629, %.loopexit1871.loopexit2458 ], [ %.61629, %.loopexit1871.loopexit ], [ %.61629, %.preheader1873 ], [ %.61629, %.preheader1870 ]
  %.101614 = phi i32 [ %.161620, %2524 ], [ %.81612, %1986 ], [ %.131617, %.loopexit1871.loopexit2458 ], [ %.131617, %.loopexit1871.loopexit ], [ %.131617, %.preheader1873 ], [ %.131617, %.preheader1870 ]
  %.01591 = phi i32 [ %.61597, %2524 ], [ %1933, %1986 ], [ %.31594, %.loopexit1871.loopexit2458 ], [ %.31594, %.loopexit1871.loopexit ], [ %.31594, %.preheader1873 ], [ %.31594, %.preheader1870 ]
  %.01578 = phi i32 [ %.101588, %2524 ], [ %1932, %1986 ], [ %2136, %.loopexit1871.loopexit2458 ], [ %2142, %.loopexit1871.loopexit ], [ %2107, %.preheader1873 ], [ %2107, %.preheader1870 ]
  %.31566 = phi i32 [ %.121575, %2524 ], [ %.11564, %1986 ], [ %2145, %.loopexit1871.loopexit2458 ], [ %2144, %.loopexit1871.loopexit ], [ %.61569, %.preheader1873 ], [ %.61569, %.preheader1870 ]
  %.31554 = phi i32 [ %.91560, %2524 ], [ %.11552, %1986 ], [ %.61557, %.loopexit1871.loopexit2458 ], [ %.61557, %.loopexit1871.loopexit ], [ %.61557, %.preheader1873 ], [ %.61557, %.preheader1870 ]
  %.01536 = phi i32 [ %2527, %2524 ], [ %1989, %1986 ], [ %2104, %.loopexit1871.loopexit2458 ], [ %2104, %.loopexit1871.loopexit ], [ %2104, %.preheader1873 ], [ %2104, %.preheader1870 ]
  %.41523 = phi i32 [ %.121531, %2524 ], [ %.21521, %1986 ], [ %.81527, %.loopexit1871.loopexit2458 ], [ %.81527, %.loopexit1871.loopexit ], [ %.81527, %.preheader1873 ], [ %.81527, %.preheader1870 ]
  %.41508 = phi i32 [ %.121516, %2524 ], [ %.21506, %1986 ], [ %.81512, %.loopexit1871.loopexit2458 ], [ %.81512, %.loopexit1871.loopexit ], [ %.81512, %.preheader1873 ], [ %.81512, %.preheader1870 ]
  %.31495 = phi i32 [ %.91501, %2524 ], [ %.11493, %1986 ], [ %.61498, %.loopexit1871.loopexit2458 ], [ %.61498, %.loopexit1871.loopexit ], [ %.61498, %.preheader1873 ], [ %.61498, %.preheader1870 ]
  %.121483 = phi i32 [ %.181489, %2524 ], [ %.101481, %1986 ], [ %.151486, %.loopexit1871.loopexit2458 ], [ %.151486, %.loopexit1871.loopexit ], [ %.151486, %.preheader1873 ], [ %.151486, %.preheader1870 ]
  %.131462 = phi i32 [ %.191468, %2524 ], [ %.111460, %1986 ], [ %.161465, %.loopexit1871.loopexit2458 ], [ %.161465, %.loopexit1871.loopexit ], [ %.161465, %.preheader1873 ], [ %.161465, %.preheader1870 ]
  %.141440 = phi i32 [ %.201446, %2524 ], [ %.121438, %1986 ], [ %.171443, %.loopexit1871.loopexit2458 ], [ %.171443, %.loopexit1871.loopexit ], [ %.171443, %.preheader1873 ], [ %.171443, %.preheader1870 ]
  %.101417 = phi i32 [ %.161423, %2524 ], [ %.81415, %1986 ], [ %.131420, %.loopexit1871.loopexit2458 ], [ %.131420, %.loopexit1871.loopexit ], [ %.131420, %.preheader1873 ], [ %.131420, %.preheader1870 ]
  %.181396 = phi i32 [ %.241402, %2524 ], [ %.161394, %1986 ], [ %.211399, %.loopexit1871.loopexit2458 ], [ %.211399, %.loopexit1871.loopexit ], [ %.211399, %.preheader1873 ], [ %.211399, %.preheader1870 ]
  %.24 = phi i32 [ %.30, %2524 ], [ %.22, %1986 ], [ %.27, %.loopexit1871.loopexit2458 ], [ %.27, %.loopexit1871.loopexit ], [ %.27, %.preheader1873 ], [ %.27, %.preheader1870 ]
  %1991 = icmp eq i32 %.01536, %.31495
  br i1 %1991, label %2528, label %1992

1992:                                             ; preds = %.loopexit1871
  %or.cond5 = icmp ult i32 %.01536, 2
  br i1 %or.cond5, label %1993, label %2146

1993:                                             ; preds = %1992, %2101
  %1994 = phi i32 [ %2052, %2101 ], [ %1990, %1992 ]
  %.51724 = phi ptr [ %.81727, %2101 ], [ %.41723, %1992 ]
  %.51709 = phi ptr [ %.81712, %2101 ], [ %.41708, %1992 ]
  %.51694 = phi ptr [ %.81697, %2101 ], [ %.41693, %1992 ]
  %.51679 = phi i32 [ %.81682, %2101 ], [ %.41678, %1992 ]
  %.51664 = phi i32 [ %.81667, %2101 ], [ %.41663, %1992 ]
  %.31651 = phi i32 [ %.51653, %2101 ], [ %.21650, %1992 ]
  %.31638 = phi i32 [ %.51640, %2101 ], [ %.21637, %1992 ]
  %.41627 = phi i32 [ %.61629, %2101 ], [ %.31626, %1992 ]
  %.111615 = phi i32 [ %.131617, %2101 ], [ %.101614, %1992 ]
  %.11592 = phi i32 [ %.31594, %2101 ], [ 1, %1992 ]
  %.11579 = phi i32 [ %.41582, %2101 ], [ -1, %1992 ]
  %.41567 = phi i32 [ %.61569, %2101 ], [ %.31566, %1992 ]
  %.41555 = phi i32 [ %.61557, %2101 ], [ %.31554, %1992 ]
  %.11537 = phi i32 [ %2104, %2101 ], [ %.01536, %1992 ]
  %.51524 = phi i32 [ %.81527, %2101 ], [ %.41523, %1992 ]
  %.51509 = phi i32 [ %.81512, %2101 ], [ %.41508, %1992 ]
  %.41496 = phi i32 [ %.61498, %2101 ], [ %.31495, %1992 ]
  %.131484 = phi i32 [ %.151486, %2101 ], [ %.121483, %1992 ]
  %.141463 = phi i32 [ %.161465, %2101 ], [ %.131462, %1992 ]
  %.151441 = phi i32 [ %.171443, %2101 ], [ %.141440, %1992 ]
  %.111418 = phi i32 [ %.131420, %2101 ], [ %.101417, %1992 ]
  %.191397 = phi i32 [ %.211399, %2101 ], [ %.181396, %1992 ]
  %.25 = phi i32 [ %.27, %2101 ], [ %.24, %1992 ]
  %switch.not.not = icmp eq i32 %.11537, 0
  %1995 = shl nsw i32 %.11592, 1
  %.21580.v = select i1 %switch.not.not, i32 %.11592, i32 %1995
  %.21580 = add nsw i32 %.21580.v, %.11579
  %1996 = icmp eq i32 %.51524, 0
  br i1 %1996, label %1997, label %2015

1997:                                             ; preds = %1993
  %1998 = add nsw i32 %.51509, 1
  %.not1819 = icmp slt i32 %1998, %.131484
  br i1 %.not1819, label %1999, label %.loopexit

1999:                                             ; preds = %1997
  %2000 = getelementptr inbounds i8, ptr %0, i64 7884
  %2001 = sext i32 %1998 to i64
  %2002 = getelementptr inbounds [18002 x i8], ptr %2000, i64 0, i64 %2001
  %2003 = load i8, ptr %2002, align 1, !tbaa !41
  %2004 = zext i8 %2003 to i32
  %2005 = getelementptr inbounds i8, ptr %0, i64 64012
  %2006 = zext i8 %2003 to i64
  %2007 = getelementptr inbounds [6 x i32], ptr %2005, i64 0, i64 %2006
  %2008 = load i32, ptr %2007, align 4, !tbaa !74
  %2009 = getelementptr inbounds i8, ptr %0, i64 45436
  %2010 = getelementptr inbounds [6 x [258 x i32]], ptr %2009, i64 0, i64 %2006
  %2011 = getelementptr inbounds i8, ptr %0, i64 57820
  %2012 = getelementptr inbounds [6 x [258 x i32]], ptr %2011, i64 0, i64 %2006
  %2013 = getelementptr inbounds i8, ptr %0, i64 51628
  %2014 = getelementptr inbounds [6 x [258 x i32]], ptr %2013, i64 0, i64 %2006
  br label %2015

2015:                                             ; preds = %1999, %1993
  %.61725 = phi ptr [ %2012, %1999 ], [ %.51724, %1993 ]
  %.61710 = phi ptr [ %2014, %1999 ], [ %.51709, %1993 ]
  %.61695 = phi ptr [ %2010, %1999 ], [ %.51694, %1993 ]
  %.61680 = phi i32 [ %2008, %1999 ], [ %.51679, %1993 ]
  %.61665 = phi i32 [ %2004, %1999 ], [ %.51664, %1993 ]
  %.61525 = phi i32 [ 50, %1999 ], [ %.51524, %1993 ]
  %.61510 = phi i32 [ %1998, %1999 ], [ %.51509, %1993 ]
  %2016 = add nsw i32 %.61525, -1
  br label %2017

2017:                                             ; preds = %2015, %10
  %2018 = phi i32 [ %1994, %2015 ], [ %.pre2679, %10 ]
  %.71726 = phi ptr [ %.61725, %2015 ], [ %.pre2695, %10 ]
  %.71711 = phi ptr [ %.61710, %2015 ], [ %.pre2693, %10 ]
  %.71696 = phi ptr [ %.61695, %2015 ], [ %.pre2691, %10 ]
  %.71681 = phi i32 [ %.61680, %2015 ], [ %.pre2689, %10 ]
  %.71666 = phi i32 [ %.61665, %2015 ], [ %.pre2687, %10 ]
  %.41652 = phi i32 [ %.31651, %2015 ], [ %.pre2685, %10 ]
  %.41639 = phi i32 [ %.31638, %2015 ], [ %.pre2683, %10 ]
  %.51628 = phi i32 [ %.61680, %2015 ], [ %.pre2681, %10 ]
  %.121616 = phi i32 [ %.111615, %2015 ], [ %.pre2677, %10 ]
  %.21593 = phi i32 [ %1995, %2015 ], [ %.pre2675, %10 ]
  %.31581 = phi i32 [ %.21580, %2015 ], [ %.pre2673, %10 ]
  %.51568 = phi i32 [ %.41567, %2015 ], [ %.pre2671, %10 ]
  %.51556 = phi i32 [ %.41555, %2015 ], [ %.pre2669, %10 ]
  %.21538 = phi i32 [ %.11537, %2015 ], [ %.pre2667, %10 ]
  %.71526 = phi i32 [ %2016, %2015 ], [ %.pre2665, %10 ]
  %.71511 = phi i32 [ %.61510, %2015 ], [ %.pre2663, %10 ]
  %.51497 = phi i32 [ %.41496, %2015 ], [ %.pre2661, %10 ]
  %.141485 = phi i32 [ %.131484, %2015 ], [ %.pre2659, %10 ]
  %.151464 = phi i32 [ %.141463, %2015 ], [ %.pre2657, %10 ]
  %.161442 = phi i32 [ %.151441, %2015 ], [ %.pre2655, %10 ]
  %.121419 = phi i32 [ %.111418, %2015 ], [ %.pre2653, %10 ]
  %.201398 = phi i32 [ %.191397, %2015 ], [ %.pre2651, %10 ]
  %.26 = phi i32 [ %.25, %2015 ], [ %.pre, %10 ]
  store i32 38, ptr %4, align 8, !tbaa !11
  %2019 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2289 = load i32, ptr %2019, align 4, !tbaa !12
  %.not18202290 = icmp slt i32 %.promoted2289, %.51628
  br i1 %.not18202290, label %.lr.ph2292, label %.._crit_edge2293_crit_edge

.._crit_edge2293_crit_edge:                       ; preds = %2017
  %.phi.trans.insert2797 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2798 = load i32, ptr %.phi.trans.insert2797, align 8, !tbaa !37
  br label %._crit_edge2293

.lr.ph2292:                                       ; preds = %2017
  %2020 = load ptr, ptr %0, align 8, !tbaa !5
  %2021 = getelementptr inbounds i8, ptr %2020, i64 8
  %2022 = getelementptr inbounds i8, ptr %0, i64 32
  %2023 = getelementptr inbounds i8, ptr %2020, i64 12
  %2024 = getelementptr inbounds i8, ptr %2020, i64 16
  %.promoted2296 = load i32, ptr %2021, align 8, !tbaa !38
  br label %2030

._crit_edge2293:                                  ; preds = %2050, %.._crit_edge2293_crit_edge
  %2025 = phi i32 [ %.pre2798, %.._crit_edge2293_crit_edge ], [ %2040, %2050 ]
  %.lcssa1985 = phi i32 [ %.promoted2289, %.._crit_edge2293_crit_edge ], [ %2041, %2050 ]
  %2026 = sub nsw i32 %.lcssa1985, %.51628
  %2027 = lshr i32 %2025, %2026
  %notmask1821 = shl nsw i32 -1, %.51628
  %2028 = xor i32 %notmask1821, -1
  %2029 = and i32 %2027, %2028
  store i32 %2026, ptr %2019, align 4, !tbaa !12
  br label %2051

2030:                                             ; preds = %.lr.ph2292, %2050
  %2031 = phi i32 [ %.promoted2296, %.lr.ph2292 ], [ %2043, %2050 ]
  %2032 = phi i32 [ %.promoted2289, %.lr.ph2292 ], [ %2041, %2050 ]
  %2033 = icmp eq i32 %2031, 0
  br i1 %2033, label %.loopexit, label %2034

2034:                                             ; preds = %2030
  %2035 = load i32, ptr %2022, align 8, !tbaa !37
  %2036 = shl i32 %2035, 8
  %2037 = load ptr, ptr %2020, align 8, !tbaa !40
  %2038 = load i8, ptr %2037, align 1, !tbaa !41
  %2039 = zext i8 %2038 to i32
  %2040 = or disjoint i32 %2036, %2039
  store i32 %2040, ptr %2022, align 8, !tbaa !37
  %2041 = add nsw i32 %2032, 8
  store i32 %2041, ptr %2019, align 4, !tbaa !12
  %2042 = getelementptr inbounds i8, ptr %2037, i64 1
  store ptr %2042, ptr %2020, align 8, !tbaa !40
  %2043 = add i32 %2031, -1
  store i32 %2043, ptr %2021, align 8, !tbaa !38
  %2044 = load i32, ptr %2023, align 4, !tbaa !42
  %2045 = add i32 %2044, 1
  store i32 %2045, ptr %2023, align 4, !tbaa !42
  %2046 = icmp eq i32 %2045, 0
  br i1 %2046, label %2047, label %2050

2047:                                             ; preds = %2034
  %2048 = load i32, ptr %2024, align 8, !tbaa !43
  %2049 = add i32 %2048, 1
  store i32 %2049, ptr %2024, align 8, !tbaa !43
  br label %2050

2050:                                             ; preds = %2047, %2034
  %.not1820 = icmp slt i32 %2041, %.51628
  br i1 %.not1820, label %2030, label %._crit_edge2293

2051:                                             ; preds = %._crit_edge2310, %._crit_edge2293
  %2052 = phi i32 [ %2018, %._crit_edge2293 ], [ %2061, %._crit_edge2310 ]
  %.promoted23072802 = phi i32 [ %2026, %._crit_edge2293 ], [ %2070, %._crit_edge2310 ]
  %.81727 = phi ptr [ %.71726, %._crit_edge2293 ], [ %.91728, %._crit_edge2310 ]
  %.81712 = phi ptr [ %.71711, %._crit_edge2293 ], [ %.91713, %._crit_edge2310 ]
  %.81697 = phi ptr [ %.71696, %._crit_edge2293 ], [ %.91698, %._crit_edge2310 ]
  %.81682 = phi i32 [ %.71681, %._crit_edge2293 ], [ %.91683, %._crit_edge2310 ]
  %.81667 = phi i32 [ %.71666, %._crit_edge2293 ], [ %.91668, %._crit_edge2310 ]
  %.51653 = phi i32 [ %.41652, %._crit_edge2293 ], [ %2072, %._crit_edge2310 ]
  %.51640 = phi i32 [ %2029, %._crit_edge2293 ], [ %2074, %._crit_edge2310 ]
  %.61629 = phi i32 [ %.51628, %._crit_edge2293 ], [ %.71630, %._crit_edge2310 ]
  %.131617 = phi i32 [ %.121616, %._crit_edge2293 ], [ %.141618, %._crit_edge2310 ]
  %.31594 = phi i32 [ %.21593, %._crit_edge2293 ], [ %.41595, %._crit_edge2310 ]
  %.41582 = phi i32 [ %.31581, %._crit_edge2293 ], [ %.51583, %._crit_edge2310 ]
  %.61569 = phi i32 [ %.51568, %._crit_edge2293 ], [ %.71570, %._crit_edge2310 ]
  %.61557 = phi i32 [ %.51556, %._crit_edge2293 ], [ %.71558, %._crit_edge2310 ]
  %.31539 = phi i32 [ %.21538, %._crit_edge2293 ], [ %.41540, %._crit_edge2310 ]
  %.81527 = phi i32 [ %.71526, %._crit_edge2293 ], [ %.91528, %._crit_edge2310 ]
  %.81512 = phi i32 [ %.71511, %._crit_edge2293 ], [ %.91513, %._crit_edge2310 ]
  %.61498 = phi i32 [ %.51497, %._crit_edge2293 ], [ %.71499, %._crit_edge2310 ]
  %.151486 = phi i32 [ %.141485, %._crit_edge2293 ], [ %.161487, %._crit_edge2310 ]
  %.161465 = phi i32 [ %.151464, %._crit_edge2293 ], [ %.171466, %._crit_edge2310 ]
  %.171443 = phi i32 [ %.161442, %._crit_edge2293 ], [ %.181444, %._crit_edge2310 ]
  %.131420 = phi i32 [ %.121419, %._crit_edge2293 ], [ %.141421, %._crit_edge2310 ]
  %.211399 = phi i32 [ %.201398, %._crit_edge2293 ], [ %.221400, %._crit_edge2310 ]
  %.27 = phi i32 [ %.26, %._crit_edge2293 ], [ %.28, %._crit_edge2310 ]
  %2053 = icmp sgt i32 %.61629, 20
  br i1 %2053, label %.loopexit, label %2054

2054:                                             ; preds = %2051
  %2055 = sext i32 %.61629 to i64
  %2056 = getelementptr inbounds i32, ptr %.81697, i64 %2055
  %2057 = load i32, ptr %2056, align 4, !tbaa !74
  %.not1822 = icmp sgt i32 %.51640, %2057
  br i1 %.not1822, label %2058, label %2097

2058:                                             ; preds = %2054
  %2059 = add nsw i32 %.61629, 1
  br label %2060

2060:                                             ; preds = %._crit_edge2799, %2058
  %2061 = phi i32 [ %2052, %2058 ], [ %.pre2679, %._crit_edge2799 ]
  %.promoted2307 = phi i32 [ %.promoted23072802, %2058 ], [ %.promoted2307.pre, %._crit_edge2799 ]
  %.91728 = phi ptr [ %.81727, %2058 ], [ %.pre2695, %._crit_edge2799 ]
  %.91713 = phi ptr [ %.81712, %2058 ], [ %.pre2693, %._crit_edge2799 ]
  %.91698 = phi ptr [ %.81697, %2058 ], [ %.pre2691, %._crit_edge2799 ]
  %.91683 = phi i32 [ %.81682, %2058 ], [ %.pre2689, %._crit_edge2799 ]
  %.91668 = phi i32 [ %.81667, %2058 ], [ %.pre2687, %._crit_edge2799 ]
  %.61654 = phi i32 [ %.51653, %2058 ], [ %.pre2685, %._crit_edge2799 ]
  %.61641 = phi i32 [ %.51640, %2058 ], [ %.pre2683, %._crit_edge2799 ]
  %.71630 = phi i32 [ %2059, %2058 ], [ %.pre2681, %._crit_edge2799 ]
  %.141618 = phi i32 [ %.131617, %2058 ], [ %.pre2677, %._crit_edge2799 ]
  %.41595 = phi i32 [ %.31594, %2058 ], [ %.pre2675, %._crit_edge2799 ]
  %.51583 = phi i32 [ %.41582, %2058 ], [ %.pre2673, %._crit_edge2799 ]
  %.71570 = phi i32 [ %.61569, %2058 ], [ %.pre2671, %._crit_edge2799 ]
  %.71558 = phi i32 [ %.61557, %2058 ], [ %.pre2669, %._crit_edge2799 ]
  %.41540 = phi i32 [ %.31539, %2058 ], [ %.pre2667, %._crit_edge2799 ]
  %.91528 = phi i32 [ %.81527, %2058 ], [ %.pre2665, %._crit_edge2799 ]
  %.91513 = phi i32 [ %.81512, %2058 ], [ %.pre2663, %._crit_edge2799 ]
  %.71499 = phi i32 [ %.61498, %2058 ], [ %.pre2661, %._crit_edge2799 ]
  %.161487 = phi i32 [ %.151486, %2058 ], [ %.pre2659, %._crit_edge2799 ]
  %.171466 = phi i32 [ %.161465, %2058 ], [ %.pre2657, %._crit_edge2799 ]
  %.181444 = phi i32 [ %.171443, %2058 ], [ %.pre2655, %._crit_edge2799 ]
  %.141421 = phi i32 [ %.131420, %2058 ], [ %.pre2653, %._crit_edge2799 ]
  %.221400 = phi i32 [ %.211399, %2058 ], [ %.pre2651, %._crit_edge2799 ]
  %.28 = phi i32 [ %.27, %2058 ], [ %.pre, %._crit_edge2799 ]
  store i32 39, ptr %4, align 8, !tbaa !11
  %2062 = getelementptr inbounds i8, ptr %0, i64 36
  %2063 = icmp sgt i32 %.promoted2307, 0
  br i1 %2063, label %.._crit_edge2310_crit_edge, label %.lr.ph2309

.._crit_edge2310_crit_edge:                       ; preds = %2060
  %.phi.trans.insert2803 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2804 = load i32, ptr %.phi.trans.insert2803, align 8, !tbaa !37
  br label %._crit_edge2310

.lr.ph2309:                                       ; preds = %2060
  %2064 = load ptr, ptr %0, align 8, !tbaa !5
  %2065 = getelementptr inbounds i8, ptr %2064, i64 8
  %2066 = getelementptr inbounds i8, ptr %0, i64 32
  %2067 = getelementptr inbounds i8, ptr %2064, i64 12
  %2068 = getelementptr inbounds i8, ptr %2064, i64 16
  %.promoted2313 = load i32, ptr %2065, align 8, !tbaa !38
  br label %2075

._crit_edge2310:                                  ; preds = %2095, %.._crit_edge2310_crit_edge
  %2069 = phi i32 [ %.pre2804, %.._crit_edge2310_crit_edge ], [ %2085, %2095 ]
  %.lcssa1977 = phi i32 [ %.promoted2307, %.._crit_edge2310_crit_edge ], [ %2086, %2095 ]
  %2070 = add nsw i32 %.lcssa1977, -1
  %2071 = lshr i32 %2069, %2070
  %2072 = and i32 %2071, 1
  store i32 %2070, ptr %2062, align 4, !tbaa !12
  %2073 = shl i32 %.61641, 1
  %2074 = or disjoint i32 %2072, %2073
  br label %2051

2075:                                             ; preds = %.lr.ph2309, %2095
  %2076 = phi i32 [ %.promoted2313, %.lr.ph2309 ], [ %2088, %2095 ]
  %2077 = phi i32 [ %.promoted2307, %.lr.ph2309 ], [ %2086, %2095 ]
  %2078 = icmp eq i32 %2076, 0
  br i1 %2078, label %.loopexit, label %2079

2079:                                             ; preds = %2075
  %2080 = load i32, ptr %2066, align 8, !tbaa !37
  %2081 = shl i32 %2080, 8
  %2082 = load ptr, ptr %2064, align 8, !tbaa !40
  %2083 = load i8, ptr %2082, align 1, !tbaa !41
  %2084 = zext i8 %2083 to i32
  %2085 = or disjoint i32 %2081, %2084
  store i32 %2085, ptr %2066, align 8, !tbaa !37
  %2086 = add nsw i32 %2077, 8
  store i32 %2086, ptr %2062, align 4, !tbaa !12
  %2087 = getelementptr inbounds i8, ptr %2082, i64 1
  store ptr %2087, ptr %2064, align 8, !tbaa !40
  %2088 = add i32 %2076, -1
  store i32 %2088, ptr %2065, align 8, !tbaa !38
  %2089 = load i32, ptr %2067, align 4, !tbaa !42
  %2090 = add i32 %2089, 1
  store i32 %2090, ptr %2067, align 4, !tbaa !42
  %2091 = icmp eq i32 %2090, 0
  br i1 %2091, label %2092, label %2095

2092:                                             ; preds = %2079
  %2093 = load i32, ptr %2068, align 8, !tbaa !43
  %2094 = add i32 %2093, 1
  store i32 %2094, ptr %2068, align 8, !tbaa !43
  br label %2095

2095:                                             ; preds = %2092, %2079
  %2096 = icmp sgt i32 %2077, -8
  br i1 %2096, label %._crit_edge2310, label %2075

2097:                                             ; preds = %2054
  %2098 = getelementptr inbounds i32, ptr %.81712, i64 %2055
  %2099 = load i32, ptr %2098, align 4, !tbaa !74
  %2100 = sub nsw i32 %.51640, %2099
  %or.cond1843 = icmp ugt i32 %2100, 257
  br i1 %or.cond1843, label %.loopexit, label %2101

2101:                                             ; preds = %2097
  %2102 = zext nneg i32 %2100 to i64
  %2103 = getelementptr inbounds i32, ptr %.81727, i64 %2102
  %2104 = load i32, ptr %2103, align 4, !tbaa !74
  %2105 = icmp ult i32 %2104, 2
  br i1 %2105, label %1993, label %2106, !llvm.loop !77

2106:                                             ; preds = %2101
  %2107 = add nsw i32 %.41582, 1
  %2108 = getelementptr inbounds i8, ptr %0, i64 3468
  %2109 = getelementptr inbounds i8, ptr %0, i64 3724
  %2110 = getelementptr inbounds i8, ptr %0, i64 7820
  %2111 = load i32, ptr %2110, align 4, !tbaa !74
  %2112 = sext i32 %2111 to i64
  %2113 = getelementptr inbounds [4096 x i8], ptr %2109, i64 0, i64 %2112
  %2114 = load i8, ptr %2113, align 1, !tbaa !41
  %2115 = zext i8 %2114 to i64
  %2116 = getelementptr inbounds [256 x i8], ptr %2108, i64 0, i64 %2115
  %2117 = load i8, ptr %2116, align 1, !tbaa !41
  %2118 = getelementptr inbounds i8, ptr %0, i64 68
  %2119 = zext i8 %2117 to i64
  %2120 = getelementptr inbounds [256 x i32], ptr %2118, i64 0, i64 %2119
  %2121 = load i32, ptr %2120, align 4, !tbaa !74
  %2122 = add nsw i32 %2121, %2107
  store i32 %2122, ptr %2120, align 4, !tbaa !74
  %2123 = getelementptr inbounds i8, ptr %0, i64 44
  %2124 = load i8, ptr %2123, align 4, !tbaa !45
  %.not1823 = icmp eq i8 %2124, 0
  %2125 = icmp sgt i32 %.41582, -1
  br i1 %.not1823, label %.preheader1870, label %.preheader1873

.preheader1873:                                   ; preds = %2106
  br i1 %2125, label %.lr.ph2299, label %.loopexit1871

.lr.ph2299:                                       ; preds = %.preheader1873
  %2126 = zext i8 %2117 to i16
  %2127 = getelementptr inbounds i8, ptr %0, i64 3160
  %2128 = sext i32 %.61569 to i64
  %smax = call i32 @llvm.smax.i32(i32 %.61569, i32 %.61557)
  %wide.trip.count2608 = sext i32 %smax to i64
  br label %2132

.preheader1870:                                   ; preds = %2106
  br i1 %2125, label %.lr.ph2304, label %.loopexit1871

.lr.ph2304:                                       ; preds = %.preheader1870
  %2129 = zext i8 %2117 to i32
  %2130 = getelementptr inbounds i8, ptr %0, i64 3152
  %2131 = sext i32 %.61569 to i64
  %smax2614 = call i32 @llvm.smax.i32(i32 %.61569, i32 %.61557)
  %wide.trip.count2615 = sext i32 %smax2614 to i64
  br label %2138

2132:                                             ; preds = %.lr.ph2299, %2133
  %indvars.iv2604 = phi i64 [ %2128, %.lr.ph2299 ], [ %indvars.iv.next2605, %2133 ]
  %.615842297 = phi i32 [ %2107, %.lr.ph2299 ], [ %2136, %2133 ]
  %exitcond2609.not = icmp eq i64 %indvars.iv2604, %wide.trip.count2608
  br i1 %exitcond2609.not, label %.loopexit, label %2133

2133:                                             ; preds = %2132
  %2134 = load ptr, ptr %2127, align 8, !tbaa !48
  %2135 = getelementptr inbounds i16, ptr %2134, i64 %indvars.iv2604
  store i16 %2126, ptr %2135, align 2, !tbaa !78
  %indvars.iv.next2605 = add nsw i64 %indvars.iv2604, 1
  %2136 = add nsw i32 %.615842297, -1
  %2137 = icmp sgt i32 %.615842297, 1
  br i1 %2137, label %2132, label %.loopexit1871.loopexit2458, !llvm.loop !80

2138:                                             ; preds = %.lr.ph2304, %2139
  %indvars.iv2610 = phi i64 [ %2131, %.lr.ph2304 ], [ %indvars.iv.next2611, %2139 ]
  %.715852302 = phi i32 [ %2107, %.lr.ph2304 ], [ %2142, %2139 ]
  %exitcond2616.not = icmp eq i64 %indvars.iv2610, %wide.trip.count2615
  br i1 %exitcond2616.not, label %.loopexit, label %2139

2139:                                             ; preds = %2138
  %2140 = load ptr, ptr %2130, align 8, !tbaa !50
  %2141 = getelementptr inbounds i32, ptr %2140, i64 %indvars.iv2610
  store i32 %2129, ptr %2141, align 4, !tbaa !74
  %indvars.iv.next2611 = add nsw i64 %indvars.iv2610, 1
  %2142 = add nsw i32 %.715852302, -1
  %2143 = icmp sgt i32 %.715852302, 1
  br i1 %2143, label %2138, label %.loopexit1871.loopexit, !llvm.loop !81

.loopexit1871.loopexit:                           ; preds = %2139
  %2144 = trunc nsw i64 %indvars.iv.next2611 to i32
  br label %.loopexit1871

.loopexit1871.loopexit2458:                       ; preds = %2133
  %2145 = trunc nsw i64 %indvars.iv.next2605 to i32
  br label %.loopexit1871

2146:                                             ; preds = %1992
  %.not1812 = icmp slt i32 %.31566, %.31554
  br i1 %.not1812, label %2147, label %.loopexit

2147:                                             ; preds = %2146
  %2148 = add i32 %.01536, -1
  %2149 = icmp ult i32 %.01536, 17
  br i1 %2149, label %2150, label %2256

2150:                                             ; preds = %2147
  %2151 = getelementptr inbounds i8, ptr %0, i64 7820
  %2152 = load i32, ptr %2151, align 4, !tbaa !74
  %2153 = getelementptr inbounds i8, ptr %0, i64 3724
  %2154 = add i32 %2152, %2148
  %2155 = zext i32 %2154 to i64
  %2156 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2155
  %2157 = load i8, ptr %2156, align 1, !tbaa !41
  %2158 = icmp ugt i32 %2148, 3
  br i1 %2158, label %.lr.ph2268.preheader, label %iter.check3247

.lr.ph2268.preheader:                             ; preds = %2150
  %2159 = zext nneg i32 %2148 to i64
  br label %.lr.ph2268

.preheader1879:                                   ; preds = %.lr.ph2268
  %.not18132270 = icmp eq i32 %2234, 0
  br i1 %.not18132270, label %._crit_edge2273, label %iter.check3247

iter.check3247:                                   ; preds = %2150, %.preheader1879
  %.01534.lcssa2879 = phi i32 [ %2234, %.preheader1879 ], [ %2148, %2150 ]
  %2160 = zext nneg i32 %.01534.lcssa2879 to i64
  %2161 = add nsw i32 %.01534.lcssa2879, -1
  %2162 = zext i32 %2161 to i64
  %2163 = add nuw nsw i64 %2162, 1
  %min.iters.check3245 = icmp ult i32 %2161, 7
  br i1 %min.iters.check3245, label %.lr.ph2272.preheader, label %vector.scevcheck3226

vector.scevcheck3226:                             ; preds = %iter.check3247
  %2164 = add nsw i32 %.01534.lcssa2879, -1
  %2165 = add i32 %.01534.lcssa2879, %2152
  %2166 = icmp ugt i32 %2164, %2165
  %2167 = add i32 %.01534.lcssa2879, %2152
  %2168 = add i32 %2167, -1
  %2169 = icmp ugt i32 %2152, %2168
  %2170 = zext i32 %2165 to i64
  %2171 = getelementptr i8, ptr %0, i64 %2170
  %scevgep3233 = getelementptr i8, ptr %2171, i64 3724
  %2172 = zext i32 %2164 to i64
  %2173 = sub nsw i64 0, %2172
  %2174 = getelementptr i8, ptr %scevgep3233, i64 %2173
  %2175 = icmp ugt ptr %2174, %scevgep3233
  %2176 = zext i32 %2168 to i64
  %2177 = getelementptr i8, ptr %0, i64 %2176
  %scevgep3237 = getelementptr i8, ptr %2177, i64 3724
  %2178 = zext i32 %2164 to i64
  %2179 = sub nsw i64 0, %2178
  %2180 = getelementptr i8, ptr %scevgep3237, i64 %2179
  %2181 = icmp ugt ptr %2180, %scevgep3237
  %2182 = or i1 %2166, %2169
  %2183 = or i1 %2182, %2175
  %2184 = or i1 %2183, %2181
  br i1 %2184, label %.lr.ph2272.preheader, label %vector.memcheck3241

vector.memcheck3241:                              ; preds = %vector.scevcheck3226
  %2185 = add i32 %.01534.lcssa2879, %2152
  %2186 = add i32 %2185, -1
  %2187 = zext i32 %2186 to i64
  %2188 = zext i32 %2185 to i64
  %2189 = sub nsw i64 %2187, %2188
  %diff.check3242 = icmp ult i64 %2189, 16
  br i1 %diff.check3242, label %.lr.ph2272.preheader, label %vector.main.loop.iter.check3249

vector.main.loop.iter.check3249:                  ; preds = %vector.memcheck3241
  %min.iters.check3248 = icmp ult i32 %2161, 15
  br i1 %min.iters.check3248, label %vec.epilog.ph3263, label %vector.ph3250

vector.ph3250:                                    ; preds = %vector.main.loop.iter.check3249
  %n.vec3252 = and i64 %2163, 8589934576
  %invariant.gep3578 = getelementptr i8, ptr %2153, i64 -15
  %invariant.gep3580 = getelementptr i8, ptr %2153, i64 -15
  br label %vector.body3253

vector.body3253:                                  ; preds = %vector.body3253, %vector.ph3250
  %index3254 = phi i64 [ 0, %vector.ph3250 ], [ %index.next3259, %vector.body3253 ]
  %2190 = trunc i64 %index3254 to i32
  %2191 = sub i32 %.01534.lcssa2879, %2190
  %2192 = add i32 %2152, %2191
  %2193 = add i32 %2192, -1
  %2194 = zext i32 %2193 to i64
  %gep3579 = getelementptr [4096 x i8], ptr %invariant.gep3578, i64 0, i64 %2194
  %wide.load3256 = load <16 x i8>, ptr %gep3579, align 1, !tbaa !41
  %2195 = zext i32 %2192 to i64
  %gep3581 = getelementptr [4096 x i8], ptr %invariant.gep3580, i64 0, i64 %2195
  store <16 x i8> %wide.load3256, ptr %gep3581, align 1, !tbaa !41
  %index.next3259 = add nuw i64 %index3254, 16
  %2196 = icmp eq i64 %index.next3259, %n.vec3252
  br i1 %2196, label %middle.block3243, label %vector.body3253, !llvm.loop !82

middle.block3243:                                 ; preds = %vector.body3253
  %cmp.n3260 = icmp eq i64 %2163, %n.vec3252
  br i1 %cmp.n3260, label %._crit_edge2273, label %vec.epilog.iter.check3264

vec.epilog.iter.check3264:                        ; preds = %middle.block3243
  %ind.end3271 = sub nsw i64 %2160, %n.vec3252
  %n.vec.remaining3265 = and i64 %2163, 8
  %min.epilog.iters.check3266.not.not = icmp eq i64 %n.vec.remaining3265, 0
  br i1 %min.epilog.iters.check3266.not.not, label %.lr.ph2272.preheader, label %vec.epilog.ph3263

.lr.ph2272.preheader:                             ; preds = %vec.epilog.middle.block3261, %vector.memcheck3241, %vector.scevcheck3226, %iter.check3247, %vec.epilog.iter.check3264
  %indvars.iv2600.ph = phi i64 [ %2160, %iter.check3247 ], [ %2160, %vector.memcheck3241 ], [ %2160, %vector.scevcheck3226 ], [ %ind.end3271, %vec.epilog.iter.check3264 ], [ %ind.end3270, %vec.epilog.middle.block3261 ]
  %2197 = trunc i64 %indvars.iv2600.ph to i32
  %xtraiter3466 = and i32 %2197, 1
  %lcmp.mod3467.not = icmp eq i32 %xtraiter3466, 0
  br i1 %lcmp.mod3467.not, label %.lr.ph2272.prol.loopexit, label %.lr.ph2272.prol

.lr.ph2272.prol:                                  ; preds = %.lr.ph2272.preheader
  %2198 = trunc nuw i64 %indvars.iv2600.ph to i32
  %2199 = add i32 %2152, %2198
  %2200 = add i32 %2199, -1
  %2201 = zext i32 %2200 to i64
  %2202 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2201
  %2203 = load i8, ptr %2202, align 1, !tbaa !41
  %2204 = zext i32 %2199 to i64
  %2205 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2204
  store i8 %2203, ptr %2205, align 1, !tbaa !41
  %indvars.iv.next2601.prol = add nsw i64 %indvars.iv2600.ph, -1
  br label %.lr.ph2272.prol.loopexit

.lr.ph2272.prol.loopexit:                         ; preds = %.lr.ph2272.prol, %.lr.ph2272.preheader
  %indvars.iv2600.unr = phi i64 [ %indvars.iv2600.ph, %.lr.ph2272.preheader ], [ %indvars.iv.next2601.prol, %.lr.ph2272.prol ]
  %2206 = icmp eq i32 %2197, 1
  br i1 %2206, label %._crit_edge2273, label %.lr.ph2272

vec.epilog.ph3263:                                ; preds = %vector.main.loop.iter.check3249, %vec.epilog.iter.check3264
  %vec.epilog.resume.val3267 = phi i64 [ %n.vec3252, %vec.epilog.iter.check3264 ], [ 0, %vector.main.loop.iter.check3249 ]
  %n.vec3269 = and i64 %2163, 8589934584
  %ind.end3270 = sub nsw i64 %2160, %n.vec3269
  %invariant.gep3582 = getelementptr i8, ptr %2153, i64 -7
  %invariant.gep3584 = getelementptr i8, ptr %2153, i64 -7
  br label %vec.epilog.vector.body3273

vec.epilog.vector.body3273:                       ; preds = %vec.epilog.vector.body3273, %vec.epilog.ph3263
  %index3274 = phi i64 [ %vec.epilog.resume.val3267, %vec.epilog.ph3263 ], [ %index.next3279, %vec.epilog.vector.body3273 ]
  %2207 = trunc i64 %index3274 to i32
  %2208 = sub i32 %.01534.lcssa2879, %2207
  %2209 = add i32 %2152, %2208
  %2210 = add i32 %2209, -1
  %2211 = zext i32 %2210 to i64
  %gep3583 = getelementptr [4096 x i8], ptr %invariant.gep3582, i64 0, i64 %2211
  %wide.load3276 = load <8 x i8>, ptr %gep3583, align 1, !tbaa !41
  %2212 = zext i32 %2209 to i64
  %gep3585 = getelementptr [4096 x i8], ptr %invariant.gep3584, i64 0, i64 %2212
  store <8 x i8> %wide.load3276, ptr %gep3585, align 1, !tbaa !41
  %index.next3279 = add nuw i64 %index3274, 8
  %2213 = icmp eq i64 %index.next3279, %n.vec3269
  br i1 %2213, label %vec.epilog.middle.block3261, label %vec.epilog.vector.body3273, !llvm.loop !83

vec.epilog.middle.block3261:                      ; preds = %vec.epilog.vector.body3273
  %cmp.n3280 = icmp eq i64 %2163, %n.vec3269
  br i1 %cmp.n3280, label %._crit_edge2273, label %.lr.ph2272.preheader

.lr.ph2268:                                       ; preds = %.lr.ph2268.preheader, %.lr.ph2268
  %indvars.iv2596 = phi i64 [ %2159, %.lr.ph2268.preheader ], [ %indvars.iv.next2597, %.lr.ph2268 ]
  %2214 = trunc i64 %indvars.iv2596 to i32
  %2215 = add i32 %2152, %2214
  %2216 = add nsw i32 %2215, -1
  %2217 = sext i32 %2216 to i64
  %2218 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2217
  %2219 = load i8, ptr %2218, align 1, !tbaa !41
  %2220 = sext i32 %2215 to i64
  %2221 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2220
  store i8 %2219, ptr %2221, align 1, !tbaa !41
  %2222 = add nsw i32 %2215, -2
  %2223 = sext i32 %2222 to i64
  %2224 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2223
  %2225 = load i8, ptr %2224, align 1, !tbaa !41
  store i8 %2225, ptr %2218, align 1, !tbaa !41
  %2226 = add nsw i32 %2215, -3
  %2227 = sext i32 %2226 to i64
  %2228 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2227
  %2229 = load i8, ptr %2228, align 1, !tbaa !41
  store i8 %2229, ptr %2224, align 1, !tbaa !41
  %2230 = add nsw i32 %2215, -4
  %2231 = sext i32 %2230 to i64
  %2232 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2231
  %2233 = load i8, ptr %2232, align 1, !tbaa !41
  store i8 %2233, ptr %2228, align 1, !tbaa !41
  %indvars.iv.next2597 = add i64 %indvars.iv2596, -4
  %2234 = trunc i64 %indvars.iv.next2597 to i32
  %2235 = icmp ugt i32 %2234, 3
  br i1 %2235, label %.lr.ph2268, label %.preheader1879, !llvm.loop !84

.lr.ph2272:                                       ; preds = %.lr.ph2272.prol.loopexit, %.lr.ph2272
  %indvars.iv2600 = phi i64 [ %indvars.iv.next2601.1, %.lr.ph2272 ], [ %indvars.iv2600.unr, %.lr.ph2272.prol.loopexit ]
  %2236 = trunc nuw i64 %indvars.iv2600 to i32
  %2237 = add i32 %2152, %2236
  %2238 = add i32 %2237, -1
  %2239 = zext i32 %2238 to i64
  %2240 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2239
  %2241 = load i8, ptr %2240, align 1, !tbaa !41
  %2242 = zext i32 %2237 to i64
  %2243 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2242
  store i8 %2241, ptr %2243, align 1, !tbaa !41
  %2244 = trunc i64 %indvars.iv2600 to i32
  %2245 = add i32 %2244, -1
  %2246 = add i32 %2152, %2245
  %2247 = add i32 %2246, -1
  %2248 = zext i32 %2247 to i64
  %2249 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2248
  %2250 = load i8, ptr %2249, align 1, !tbaa !41
  %2251 = zext i32 %2246 to i64
  %2252 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2251
  store i8 %2250, ptr %2252, align 1, !tbaa !41
  %indvars.iv.next2601.1 = add nsw i64 %indvars.iv2600, -2
  %2253 = and i64 %indvars.iv.next2601.1, 4294967295
  %.not1813.1 = icmp eq i64 %2253, 0
  br i1 %.not1813.1, label %._crit_edge2273, label %.lr.ph2272, !llvm.loop !85

._crit_edge2273:                                  ; preds = %.lr.ph2272.prol.loopexit, %.lr.ph2272, %middle.block3243, %vec.epilog.middle.block3261, %.preheader1879
  %2254 = sext i32 %2152 to i64
  %2255 = getelementptr inbounds [4096 x i8], ptr %2153, i64 0, i64 %2254
  store i8 %2157, ptr %2255, align 1, !tbaa !41
  br label %.loopexit1882

2256:                                             ; preds = %2147
  %2257 = lshr i32 %2148, 4
  %2258 = and i32 %2148, 15
  %2259 = getelementptr inbounds i8, ptr %0, i64 7820
  %2260 = zext nneg i32 %2257 to i64
  %2261 = getelementptr inbounds [16 x i32], ptr %2259, i64 0, i64 %2260
  %2262 = load i32, ptr %2261, align 4, !tbaa !74
  %2263 = add nsw i32 %2262, %2258
  %2264 = getelementptr inbounds i8, ptr %0, i64 3724
  %2265 = sext i32 %2263 to i64
  %2266 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2265
  %2267 = load i8, ptr %2266, align 1, !tbaa !41
  %.not2437 = icmp eq i32 %2258, 0
  br i1 %.not2437, label %.lr.ph2260.preheader, label %.lr.ph2255.preheader

.lr.ph2255.preheader:                             ; preds = %2256
  %2268 = sext i32 %2262 to i64
  %2269 = add i32 %.01536, 15
  %2270 = and i32 %2269, 15
  %2271 = zext nneg i32 %2270 to i64
  %2272 = add nsw i64 %2268, %2271
  br label %.lr.ph2255

.lr.ph2255:                                       ; preds = %.lr.ph2255.preheader, %.lr.ph2255
  %indvars.iv2578 = phi i64 [ %2272, %.lr.ph2255.preheader ], [ %indvars.iv.next2579, %.lr.ph2255 ]
  %indvars.iv.next2579 = add nsw i64 %indvars.iv2578, -1
  %2273 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2579
  %2274 = load i8, ptr %2273, align 1, !tbaa !41
  %2275 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv2578
  store i8 %2274, ptr %2275, align 1, !tbaa !41
  %2276 = load i32, ptr %2261, align 4, !tbaa !74
  %2277 = sext i32 %2276 to i64
  %2278 = icmp sgt i64 %indvars.iv.next2579, %2277
  br i1 %2278, label %.lr.ph2255, label %.lr.ph2260.preheader, !llvm.loop !86

.lr.ph2260.preheader:                             ; preds = %.lr.ph2255, %2256
  %.lcssa1997 = phi i32 [ %2262, %2256 ], [ %2276, %.lr.ph2255 ]
  %2279 = add nsw i32 %.lcssa1997, 1
  store i32 %2279, ptr %2261, align 4, !tbaa !74
  br label %.lr.ph2260

.lr.ph2260:                                       ; preds = %.lr.ph2260.preheader, %.lr.ph2260
  %indvars.iv2582 = phi i64 [ %2260, %.lr.ph2260.preheader ], [ %indvars.iv.next2583, %.lr.ph2260 ]
  %2280 = getelementptr inbounds [16 x i32], ptr %2259, i64 0, i64 %indvars.iv2582
  %2281 = load i32, ptr %2280, align 4, !tbaa !74
  %2282 = add nsw i32 %2281, -1
  store i32 %2282, ptr %2280, align 4, !tbaa !74
  %indvars.iv.next2583 = add nsw i64 %indvars.iv2582, -1
  %2283 = getelementptr inbounds [16 x i32], ptr %2259, i64 0, i64 %indvars.iv.next2583
  %2284 = load i32, ptr %2283, align 4, !tbaa !74
  %2285 = add nsw i32 %2284, 15
  %2286 = sext i32 %2285 to i64
  %2287 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2286
  %2288 = load i8, ptr %2287, align 1, !tbaa !41
  %2289 = sext i32 %2282 to i64
  %2290 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2289
  store i8 %2288, ptr %2290, align 1, !tbaa !41
  %2291 = icmp sgt i64 %indvars.iv2582, 1
  br i1 %2291, label %.lr.ph2260, label %._crit_edge2261, !llvm.loop !87

._crit_edge2261:                                  ; preds = %.lr.ph2260
  %2292 = load i32, ptr %2259, align 4, !tbaa !74
  %2293 = add nsw i32 %2292, -1
  store i32 %2293, ptr %2259, align 4, !tbaa !74
  %2294 = sext i32 %2293 to i64
  %2295 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2294
  store i8 %2267, ptr %2295, align 1, !tbaa !41
  %2296 = load i32, ptr %2259, align 4, !tbaa !74
  %2297 = icmp eq i32 %2296, 0
  br i1 %2297, label %.preheader1880, label %.loopexit1882

.preheader1880:                                   ; preds = %._crit_edge2261, %.preheader1880
  %indvars.iv2590 = phi i64 [ %indvars.iv.next2591, %.preheader1880 ], [ 15, %._crit_edge2261 ]
  %indvars.iv2588 = phi i64 [ %indvars.iv.next2589, %.preheader1880 ], [ 4095, %._crit_edge2261 ]
  %2298 = getelementptr inbounds [16 x i32], ptr %2259, i64 0, i64 %indvars.iv2590
  %2299 = load i32, ptr %2298, align 4, !tbaa !74
  %2300 = add nsw i32 %2299, 15
  %2301 = sext i32 %2300 to i64
  %2302 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2301
  %2303 = load i8, ptr %2302, align 1, !tbaa !41
  %2304 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv2588
  store i8 %2303, ptr %2304, align 1, !tbaa !41
  %indvars.iv.next2585 = add nsw i64 %indvars.iv2588, -1
  %2305 = load i32, ptr %2298, align 4, !tbaa !74
  %2306 = add nsw i32 %2305, 14
  %2307 = sext i32 %2306 to i64
  %2308 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2307
  %2309 = load i8, ptr %2308, align 1, !tbaa !41
  %2310 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585
  store i8 %2309, ptr %2310, align 1, !tbaa !41
  %indvars.iv.next2585.1 = add nsw i64 %indvars.iv2588, -2
  %2311 = load i32, ptr %2298, align 4, !tbaa !74
  %2312 = add nsw i32 %2311, 13
  %2313 = sext i32 %2312 to i64
  %2314 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2313
  %2315 = load i8, ptr %2314, align 1, !tbaa !41
  %2316 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.1
  store i8 %2315, ptr %2316, align 1, !tbaa !41
  %indvars.iv.next2585.2 = add nsw i64 %indvars.iv2588, -3
  %2317 = load i32, ptr %2298, align 4, !tbaa !74
  %2318 = add nsw i32 %2317, 12
  %2319 = sext i32 %2318 to i64
  %2320 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2319
  %2321 = load i8, ptr %2320, align 1, !tbaa !41
  %2322 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.2
  store i8 %2321, ptr %2322, align 1, !tbaa !41
  %indvars.iv.next2585.3 = add nsw i64 %indvars.iv2588, -4
  %2323 = load i32, ptr %2298, align 4, !tbaa !74
  %2324 = add nsw i32 %2323, 11
  %2325 = sext i32 %2324 to i64
  %2326 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2325
  %2327 = load i8, ptr %2326, align 1, !tbaa !41
  %2328 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.3
  store i8 %2327, ptr %2328, align 1, !tbaa !41
  %indvars.iv.next2585.4 = add nsw i64 %indvars.iv2588, -5
  %2329 = load i32, ptr %2298, align 4, !tbaa !74
  %2330 = add nsw i32 %2329, 10
  %2331 = sext i32 %2330 to i64
  %2332 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2331
  %2333 = load i8, ptr %2332, align 1, !tbaa !41
  %2334 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.4
  store i8 %2333, ptr %2334, align 1, !tbaa !41
  %indvars.iv.next2585.5 = add nsw i64 %indvars.iv2588, -6
  %2335 = load i32, ptr %2298, align 4, !tbaa !74
  %2336 = add nsw i32 %2335, 9
  %2337 = sext i32 %2336 to i64
  %2338 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2337
  %2339 = load i8, ptr %2338, align 1, !tbaa !41
  %2340 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.5
  store i8 %2339, ptr %2340, align 1, !tbaa !41
  %indvars.iv.next2585.6 = add nsw i64 %indvars.iv2588, -7
  %2341 = load i32, ptr %2298, align 4, !tbaa !74
  %2342 = add nsw i32 %2341, 8
  %2343 = sext i32 %2342 to i64
  %2344 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2343
  %2345 = load i8, ptr %2344, align 1, !tbaa !41
  %2346 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.6
  store i8 %2345, ptr %2346, align 1, !tbaa !41
  %indvars.iv.next2585.7 = add nsw i64 %indvars.iv2588, -8
  %2347 = load i32, ptr %2298, align 4, !tbaa !74
  %2348 = add nsw i32 %2347, 7
  %2349 = sext i32 %2348 to i64
  %2350 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2349
  %2351 = load i8, ptr %2350, align 1, !tbaa !41
  %2352 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.7
  store i8 %2351, ptr %2352, align 1, !tbaa !41
  %indvars.iv.next2585.8 = add nsw i64 %indvars.iv2588, -9
  %2353 = load i32, ptr %2298, align 4, !tbaa !74
  %2354 = add nsw i32 %2353, 6
  %2355 = sext i32 %2354 to i64
  %2356 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2355
  %2357 = load i8, ptr %2356, align 1, !tbaa !41
  %2358 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.8
  store i8 %2357, ptr %2358, align 1, !tbaa !41
  %indvars.iv.next2585.9 = add nsw i64 %indvars.iv2588, -10
  %2359 = load i32, ptr %2298, align 4, !tbaa !74
  %2360 = add nsw i32 %2359, 5
  %2361 = sext i32 %2360 to i64
  %2362 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2361
  %2363 = load i8, ptr %2362, align 1, !tbaa !41
  %2364 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.9
  store i8 %2363, ptr %2364, align 1, !tbaa !41
  %indvars.iv.next2585.10 = add nsw i64 %indvars.iv2588, -11
  %2365 = load i32, ptr %2298, align 4, !tbaa !74
  %2366 = add nsw i32 %2365, 4
  %2367 = sext i32 %2366 to i64
  %2368 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2367
  %2369 = load i8, ptr %2368, align 1, !tbaa !41
  %2370 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.10
  store i8 %2369, ptr %2370, align 1, !tbaa !41
  %indvars.iv.next2585.11 = add nsw i64 %indvars.iv2588, -12
  %2371 = load i32, ptr %2298, align 4, !tbaa !74
  %2372 = add nsw i32 %2371, 3
  %2373 = sext i32 %2372 to i64
  %2374 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2373
  %2375 = load i8, ptr %2374, align 1, !tbaa !41
  %2376 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.11
  store i8 %2375, ptr %2376, align 1, !tbaa !41
  %indvars.iv.next2585.12 = add nsw i64 %indvars.iv2588, -13
  %2377 = load i32, ptr %2298, align 4, !tbaa !74
  %2378 = add nsw i32 %2377, 2
  %2379 = sext i32 %2378 to i64
  %2380 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2379
  %2381 = load i8, ptr %2380, align 1, !tbaa !41
  %2382 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.12
  store i8 %2381, ptr %2382, align 1, !tbaa !41
  %indvars.iv.next2585.13 = add nsw i64 %indvars.iv2588, -14
  %2383 = load i32, ptr %2298, align 4, !tbaa !74
  %2384 = add nsw i32 %2383, 1
  %2385 = sext i32 %2384 to i64
  %2386 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2385
  %2387 = load i8, ptr %2386, align 1, !tbaa !41
  %2388 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.13
  store i8 %2387, ptr %2388, align 1, !tbaa !41
  %indvars.iv.next2585.14 = add nsw i64 %indvars.iv2588, -15
  %2389 = load i32, ptr %2298, align 4, !tbaa !74
  %2390 = sext i32 %2389 to i64
  %2391 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %2390
  %2392 = load i8, ptr %2391, align 1, !tbaa !41
  %2393 = getelementptr inbounds [4096 x i8], ptr %2264, i64 0, i64 %indvars.iv.next2585.14
  store i8 %2392, ptr %2393, align 1, !tbaa !41
  %2394 = trunc nsw i64 %indvars.iv.next2585.14 to i32
  %indvars.iv.next2589 = add nsw i64 %indvars.iv2588, -16
  store i32 %2394, ptr %2298, align 4, !tbaa !74
  %indvars.iv.next2591 = add nsw i64 %indvars.iv2590, -1
  %.not2876 = icmp eq i64 %indvars.iv2590, 0
  br i1 %.not2876, label %.loopexit1882, label %.preheader1880, !llvm.loop !88

.loopexit1882:                                    ; preds = %.preheader1880, %._crit_edge2261, %._crit_edge2273
  %.0 = phi i8 [ %2157, %._crit_edge2273 ], [ %2267, %._crit_edge2261 ], [ %2267, %.preheader1880 ]
  %2395 = getelementptr inbounds i8, ptr %0, i64 68
  %2396 = getelementptr inbounds i8, ptr %0, i64 3468
  %2397 = zext i8 %.0 to i64
  %2398 = getelementptr inbounds [256 x i8], ptr %2396, i64 0, i64 %2397
  %2399 = load i8, ptr %2398, align 1, !tbaa !41
  %2400 = zext i8 %2399 to i64
  %2401 = getelementptr inbounds [256 x i32], ptr %2395, i64 0, i64 %2400
  %2402 = load i32, ptr %2401, align 4, !tbaa !74
  %2403 = add nsw i32 %2402, 1
  store i32 %2403, ptr %2401, align 4, !tbaa !74
  %2404 = getelementptr inbounds i8, ptr %0, i64 44
  %2405 = load i8, ptr %2404, align 4, !tbaa !45
  %.not1814 = icmp eq i8 %2405, 0
  %2406 = sext i32 %.31566 to i64
  br i1 %.not1814, label %2412, label %2407

2407:                                             ; preds = %.loopexit1882
  %2408 = zext i8 %2399 to i16
  %2409 = getelementptr inbounds i8, ptr %0, i64 3160
  %2410 = load ptr, ptr %2409, align 8, !tbaa !48
  %2411 = getelementptr inbounds i16, ptr %2410, i64 %2406
  store i16 %2408, ptr %2411, align 2, !tbaa !78
  br label %2417

2412:                                             ; preds = %.loopexit1882
  %2413 = zext i8 %2399 to i32
  %2414 = getelementptr inbounds i8, ptr %0, i64 3152
  %2415 = load ptr, ptr %2414, align 8, !tbaa !50
  %2416 = getelementptr inbounds i32, ptr %2415, i64 %2406
  store i32 %2413, ptr %2416, align 4, !tbaa !74
  br label %2417

2417:                                             ; preds = %2412, %2407
  %2418 = add nsw i32 %.31566, 1
  %2419 = icmp eq i32 %.41523, 0
  br i1 %2419, label %2420, label %2438

2420:                                             ; preds = %2417
  %2421 = add nsw i32 %.41508, 1
  %.not1815 = icmp slt i32 %2421, %.121483
  br i1 %.not1815, label %2422, label %.loopexit

2422:                                             ; preds = %2420
  %2423 = getelementptr inbounds i8, ptr %0, i64 7884
  %2424 = sext i32 %2421 to i64
  %2425 = getelementptr inbounds [18002 x i8], ptr %2423, i64 0, i64 %2424
  %2426 = load i8, ptr %2425, align 1, !tbaa !41
  %2427 = zext i8 %2426 to i32
  %2428 = getelementptr inbounds i8, ptr %0, i64 64012
  %2429 = zext i8 %2426 to i64
  %2430 = getelementptr inbounds [6 x i32], ptr %2428, i64 0, i64 %2429
  %2431 = load i32, ptr %2430, align 4, !tbaa !74
  %2432 = getelementptr inbounds i8, ptr %0, i64 45436
  %2433 = getelementptr inbounds [6 x [258 x i32]], ptr %2432, i64 0, i64 %2429
  %2434 = getelementptr inbounds i8, ptr %0, i64 57820
  %2435 = getelementptr inbounds [6 x [258 x i32]], ptr %2434, i64 0, i64 %2429
  %2436 = getelementptr inbounds i8, ptr %0, i64 51628
  %2437 = getelementptr inbounds [6 x [258 x i32]], ptr %2436, i64 0, i64 %2429
  br label %2438

2438:                                             ; preds = %2422, %2417
  %.101729 = phi ptr [ %2435, %2422 ], [ %.41723, %2417 ]
  %.101714 = phi ptr [ %2437, %2422 ], [ %.41708, %2417 ]
  %.101699 = phi ptr [ %2433, %2422 ], [ %.41693, %2417 ]
  %.101684 = phi i32 [ %2431, %2422 ], [ %.41678, %2417 ]
  %.101669 = phi i32 [ %2427, %2422 ], [ %.41663, %2417 ]
  %.101529 = phi i32 [ 50, %2422 ], [ %.41523, %2417 ]
  %.101514 = phi i32 [ %2421, %2422 ], [ %.41508, %2417 ]
  %2439 = add nsw i32 %.101529, -1
  br label %2440

2440:                                             ; preds = %2438, %10
  %2441 = phi i32 [ %1990, %2438 ], [ %.pre2679, %10 ]
  %.111730 = phi ptr [ %.101729, %2438 ], [ %.pre2695, %10 ]
  %.111715 = phi ptr [ %.101714, %2438 ], [ %.pre2693, %10 ]
  %.111700 = phi ptr [ %.101699, %2438 ], [ %.pre2691, %10 ]
  %.111685 = phi i32 [ %.101684, %2438 ], [ %.pre2689, %10 ]
  %.111670 = phi i32 [ %.101669, %2438 ], [ %.pre2687, %10 ]
  %.71655 = phi i32 [ %.21650, %2438 ], [ %.pre2685, %10 ]
  %.71642 = phi i32 [ %.21637, %2438 ], [ %.pre2683, %10 ]
  %.81631 = phi i32 [ %.101684, %2438 ], [ %.pre2681, %10 ]
  %.151619 = phi i32 [ %.101614, %2438 ], [ %.pre2677, %10 ]
  %.51596 = phi i32 [ %.01591, %2438 ], [ %.pre2675, %10 ]
  %.91587 = phi i32 [ %.01578, %2438 ], [ %.pre2673, %10 ]
  %.111574 = phi i32 [ %2418, %2438 ], [ %.pre2671, %10 ]
  %.81559 = phi i32 [ %.31554, %2438 ], [ %.pre2669, %10 ]
  %.51541 = phi i32 [ %.01536, %2438 ], [ %.pre2667, %10 ]
  %.111530 = phi i32 [ %2439, %2438 ], [ %.pre2665, %10 ]
  %.111515 = phi i32 [ %.101514, %2438 ], [ %.pre2663, %10 ]
  %.81500 = phi i32 [ %.31495, %2438 ], [ %.pre2661, %10 ]
  %.171488 = phi i32 [ %.121483, %2438 ], [ %.pre2659, %10 ]
  %.181467 = phi i32 [ %.131462, %2438 ], [ %.pre2657, %10 ]
  %.191445 = phi i32 [ %.141440, %2438 ], [ %.pre2655, %10 ]
  %.151422 = phi i32 [ %.101417, %2438 ], [ %.pre2653, %10 ]
  %.231401 = phi i32 [ %.181396, %2438 ], [ %.pre2651, %10 ]
  %.29 = phi i32 [ %.24, %2438 ], [ %.pre, %10 ]
  store i32 40, ptr %4, align 8, !tbaa !11
  %2442 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2274 = load i32, ptr %2442, align 4, !tbaa !12
  %.not18162275 = icmp slt i32 %.promoted2274, %.81631
  br i1 %.not18162275, label %.lr.ph2277, label %.._crit_edge2278_crit_edge

.._crit_edge2278_crit_edge:                       ; preds = %2440
  %.phi.trans.insert2789 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2790 = load i32, ptr %.phi.trans.insert2789, align 8, !tbaa !37
  br label %._crit_edge2278

.lr.ph2277:                                       ; preds = %2440
  %2443 = load ptr, ptr %0, align 8, !tbaa !5
  %2444 = getelementptr inbounds i8, ptr %2443, i64 8
  %2445 = getelementptr inbounds i8, ptr %0, i64 32
  %2446 = getelementptr inbounds i8, ptr %2443, i64 12
  %2447 = getelementptr inbounds i8, ptr %2443, i64 16
  %.promoted2281 = load i32, ptr %2444, align 8, !tbaa !38
  br label %2453

._crit_edge2278:                                  ; preds = %2473, %.._crit_edge2278_crit_edge
  %2448 = phi i32 [ %.pre2790, %.._crit_edge2278_crit_edge ], [ %2463, %2473 ]
  %.lcssa1993 = phi i32 [ %.promoted2274, %.._crit_edge2278_crit_edge ], [ %2464, %2473 ]
  %2449 = sub nsw i32 %.lcssa1993, %.81631
  %2450 = lshr i32 %2448, %2449
  %notmask1817 = shl nsw i32 -1, %.81631
  %2451 = xor i32 %notmask1817, -1
  %2452 = and i32 %2450, %2451
  store i32 %2449, ptr %2442, align 4, !tbaa !12
  br label %2474

2453:                                             ; preds = %.lr.ph2277, %2473
  %2454 = phi i32 [ %.promoted2281, %.lr.ph2277 ], [ %2466, %2473 ]
  %2455 = phi i32 [ %.promoted2274, %.lr.ph2277 ], [ %2464, %2473 ]
  %2456 = icmp eq i32 %2454, 0
  br i1 %2456, label %.loopexit, label %2457

2457:                                             ; preds = %2453
  %2458 = load i32, ptr %2445, align 8, !tbaa !37
  %2459 = shl i32 %2458, 8
  %2460 = load ptr, ptr %2443, align 8, !tbaa !40
  %2461 = load i8, ptr %2460, align 1, !tbaa !41
  %2462 = zext i8 %2461 to i32
  %2463 = or disjoint i32 %2459, %2462
  store i32 %2463, ptr %2445, align 8, !tbaa !37
  %2464 = add nsw i32 %2455, 8
  store i32 %2464, ptr %2442, align 4, !tbaa !12
  %2465 = getelementptr inbounds i8, ptr %2460, i64 1
  store ptr %2465, ptr %2443, align 8, !tbaa !40
  %2466 = add i32 %2454, -1
  store i32 %2466, ptr %2444, align 8, !tbaa !38
  %2467 = load i32, ptr %2446, align 4, !tbaa !42
  %2468 = add i32 %2467, 1
  store i32 %2468, ptr %2446, align 4, !tbaa !42
  %2469 = icmp eq i32 %2468, 0
  br i1 %2469, label %2470, label %2473

2470:                                             ; preds = %2457
  %2471 = load i32, ptr %2447, align 8, !tbaa !43
  %2472 = add i32 %2471, 1
  store i32 %2472, ptr %2447, align 8, !tbaa !43
  br label %2473

2473:                                             ; preds = %2470, %2457
  %.not1816 = icmp slt i32 %2464, %.81631
  br i1 %.not1816, label %2453, label %._crit_edge2278

2474:                                             ; preds = %._crit_edge2285, %._crit_edge2278
  %2475 = phi i32 [ %2484, %._crit_edge2285 ], [ %2441, %._crit_edge2278 ]
  %.promoted22822794 = phi i32 [ %2493, %._crit_edge2285 ], [ %2449, %._crit_edge2278 ]
  %.121731 = phi ptr [ %.131732, %._crit_edge2285 ], [ %.111730, %._crit_edge2278 ]
  %.121716 = phi ptr [ %.131717, %._crit_edge2285 ], [ %.111715, %._crit_edge2278 ]
  %.121701 = phi ptr [ %.131702, %._crit_edge2285 ], [ %.111700, %._crit_edge2278 ]
  %.121686 = phi i32 [ %.131687, %._crit_edge2285 ], [ %.111685, %._crit_edge2278 ]
  %.121671 = phi i32 [ %.131672, %._crit_edge2285 ], [ %.111670, %._crit_edge2278 ]
  %.81656 = phi i32 [ %2495, %._crit_edge2285 ], [ %.71655, %._crit_edge2278 ]
  %.81643 = phi i32 [ %2497, %._crit_edge2285 ], [ %2452, %._crit_edge2278 ]
  %.91632 = phi i32 [ %.101633, %._crit_edge2285 ], [ %.81631, %._crit_edge2278 ]
  %.161620 = phi i32 [ %.171621, %._crit_edge2285 ], [ %.151619, %._crit_edge2278 ]
  %.61597 = phi i32 [ %.71598, %._crit_edge2285 ], [ %.51596, %._crit_edge2278 ]
  %.101588 = phi i32 [ %.111589, %._crit_edge2285 ], [ %.91587, %._crit_edge2278 ]
  %.121575 = phi i32 [ %.131576, %._crit_edge2285 ], [ %.111574, %._crit_edge2278 ]
  %.91560 = phi i32 [ %.101561, %._crit_edge2285 ], [ %.81559, %._crit_edge2278 ]
  %.61542 = phi i32 [ %.71543, %._crit_edge2285 ], [ %.51541, %._crit_edge2278 ]
  %.121531 = phi i32 [ %.131532, %._crit_edge2285 ], [ %.111530, %._crit_edge2278 ]
  %.121516 = phi i32 [ %.131517, %._crit_edge2285 ], [ %.111515, %._crit_edge2278 ]
  %.91501 = phi i32 [ %.101502, %._crit_edge2285 ], [ %.81500, %._crit_edge2278 ]
  %.181489 = phi i32 [ %.191490, %._crit_edge2285 ], [ %.171488, %._crit_edge2278 ]
  %.191468 = phi i32 [ %.201469, %._crit_edge2285 ], [ %.181467, %._crit_edge2278 ]
  %.201446 = phi i32 [ %.211447, %._crit_edge2285 ], [ %.191445, %._crit_edge2278 ]
  %.161423 = phi i32 [ %.171424, %._crit_edge2285 ], [ %.151422, %._crit_edge2278 ]
  %.241402 = phi i32 [ %.251403, %._crit_edge2285 ], [ %.231401, %._crit_edge2278 ]
  %.30 = phi i32 [ %.31, %._crit_edge2285 ], [ %.29, %._crit_edge2278 ]
  %2476 = icmp sgt i32 %.91632, 20
  br i1 %2476, label %.loopexit, label %2477

2477:                                             ; preds = %2474
  %2478 = sext i32 %.91632 to i64
  %2479 = getelementptr inbounds i32, ptr %.121701, i64 %2478
  %2480 = load i32, ptr %2479, align 4, !tbaa !74
  %.not1818 = icmp sgt i32 %.81643, %2480
  br i1 %.not1818, label %2481, label %2520

2481:                                             ; preds = %2477
  %2482 = add nsw i32 %.91632, 1
  br label %2483

2483:                                             ; preds = %._crit_edge2791, %2481
  %2484 = phi i32 [ %.pre2679, %._crit_edge2791 ], [ %2475, %2481 ]
  %.promoted2282 = phi i32 [ %.promoted2282.pre, %._crit_edge2791 ], [ %.promoted22822794, %2481 ]
  %.131732 = phi ptr [ %.pre2695, %._crit_edge2791 ], [ %.121731, %2481 ]
  %.131717 = phi ptr [ %.pre2693, %._crit_edge2791 ], [ %.121716, %2481 ]
  %.131702 = phi ptr [ %.pre2691, %._crit_edge2791 ], [ %.121701, %2481 ]
  %.131687 = phi i32 [ %.pre2689, %._crit_edge2791 ], [ %.121686, %2481 ]
  %.131672 = phi i32 [ %.pre2687, %._crit_edge2791 ], [ %.121671, %2481 ]
  %.91657 = phi i32 [ %.pre2685, %._crit_edge2791 ], [ %.81656, %2481 ]
  %.91644 = phi i32 [ %.pre2683, %._crit_edge2791 ], [ %.81643, %2481 ]
  %.101633 = phi i32 [ %.pre2681, %._crit_edge2791 ], [ %2482, %2481 ]
  %.171621 = phi i32 [ %.pre2677, %._crit_edge2791 ], [ %.161620, %2481 ]
  %.71598 = phi i32 [ %.pre2675, %._crit_edge2791 ], [ %.61597, %2481 ]
  %.111589 = phi i32 [ %.pre2673, %._crit_edge2791 ], [ %.101588, %2481 ]
  %.131576 = phi i32 [ %.pre2671, %._crit_edge2791 ], [ %.121575, %2481 ]
  %.101561 = phi i32 [ %.pre2669, %._crit_edge2791 ], [ %.91560, %2481 ]
  %.71543 = phi i32 [ %.pre2667, %._crit_edge2791 ], [ %.61542, %2481 ]
  %.131532 = phi i32 [ %.pre2665, %._crit_edge2791 ], [ %.121531, %2481 ]
  %.131517 = phi i32 [ %.pre2663, %._crit_edge2791 ], [ %.121516, %2481 ]
  %.101502 = phi i32 [ %.pre2661, %._crit_edge2791 ], [ %.91501, %2481 ]
  %.191490 = phi i32 [ %.pre2659, %._crit_edge2791 ], [ %.181489, %2481 ]
  %.201469 = phi i32 [ %.pre2657, %._crit_edge2791 ], [ %.191468, %2481 ]
  %.211447 = phi i32 [ %.pre2655, %._crit_edge2791 ], [ %.201446, %2481 ]
  %.171424 = phi i32 [ %.pre2653, %._crit_edge2791 ], [ %.161423, %2481 ]
  %.251403 = phi i32 [ %.pre2651, %._crit_edge2791 ], [ %.241402, %2481 ]
  %.31 = phi i32 [ %.pre, %._crit_edge2791 ], [ %.30, %2481 ]
  store i32 41, ptr %4, align 8, !tbaa !11
  %2485 = getelementptr inbounds i8, ptr %0, i64 36
  %2486 = icmp sgt i32 %.promoted2282, 0
  br i1 %2486, label %.._crit_edge2285_crit_edge, label %.lr.ph2284

.._crit_edge2285_crit_edge:                       ; preds = %2483
  %.phi.trans.insert2795 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2796 = load i32, ptr %.phi.trans.insert2795, align 8, !tbaa !37
  br label %._crit_edge2285

.lr.ph2284:                                       ; preds = %2483
  %2487 = load ptr, ptr %0, align 8, !tbaa !5
  %2488 = getelementptr inbounds i8, ptr %2487, i64 8
  %2489 = getelementptr inbounds i8, ptr %0, i64 32
  %2490 = getelementptr inbounds i8, ptr %2487, i64 12
  %2491 = getelementptr inbounds i8, ptr %2487, i64 16
  %.promoted2288 = load i32, ptr %2488, align 8, !tbaa !38
  br label %2498

._crit_edge2285:                                  ; preds = %2518, %.._crit_edge2285_crit_edge
  %2492 = phi i32 [ %.pre2796, %.._crit_edge2285_crit_edge ], [ %2508, %2518 ]
  %.lcssa1989 = phi i32 [ %.promoted2282, %.._crit_edge2285_crit_edge ], [ %2509, %2518 ]
  %2493 = add nsw i32 %.lcssa1989, -1
  %2494 = lshr i32 %2492, %2493
  %2495 = and i32 %2494, 1
  store i32 %2493, ptr %2485, align 4, !tbaa !12
  %2496 = shl i32 %.91644, 1
  %2497 = or disjoint i32 %2495, %2496
  br label %2474

2498:                                             ; preds = %.lr.ph2284, %2518
  %2499 = phi i32 [ %.promoted2288, %.lr.ph2284 ], [ %2511, %2518 ]
  %2500 = phi i32 [ %.promoted2282, %.lr.ph2284 ], [ %2509, %2518 ]
  %2501 = icmp eq i32 %2499, 0
  br i1 %2501, label %.loopexit, label %2502

2502:                                             ; preds = %2498
  %2503 = load i32, ptr %2489, align 8, !tbaa !37
  %2504 = shl i32 %2503, 8
  %2505 = load ptr, ptr %2487, align 8, !tbaa !40
  %2506 = load i8, ptr %2505, align 1, !tbaa !41
  %2507 = zext i8 %2506 to i32
  %2508 = or disjoint i32 %2504, %2507
  store i32 %2508, ptr %2489, align 8, !tbaa !37
  %2509 = add nsw i32 %2500, 8
  store i32 %2509, ptr %2485, align 4, !tbaa !12
  %2510 = getelementptr inbounds i8, ptr %2505, i64 1
  store ptr %2510, ptr %2487, align 8, !tbaa !40
  %2511 = add i32 %2499, -1
  store i32 %2511, ptr %2488, align 8, !tbaa !38
  %2512 = load i32, ptr %2490, align 4, !tbaa !42
  %2513 = add i32 %2512, 1
  store i32 %2513, ptr %2490, align 4, !tbaa !42
  %2514 = icmp eq i32 %2513, 0
  br i1 %2514, label %2515, label %2518

2515:                                             ; preds = %2502
  %2516 = load i32, ptr %2491, align 8, !tbaa !43
  %2517 = add i32 %2516, 1
  store i32 %2517, ptr %2491, align 8, !tbaa !43
  br label %2518

2518:                                             ; preds = %2515, %2502
  %2519 = icmp sgt i32 %2500, -8
  br i1 %2519, label %._crit_edge2285, label %2498

2520:                                             ; preds = %2477
  %2521 = getelementptr inbounds i32, ptr %.121716, i64 %2478
  %2522 = load i32, ptr %2521, align 4, !tbaa !74
  %2523 = sub nsw i32 %.81643, %2522
  %or.cond1844 = icmp ugt i32 %2523, 257
  br i1 %or.cond1844, label %.loopexit, label %2524

2524:                                             ; preds = %2520
  %2525 = zext nneg i32 %2523 to i64
  %2526 = getelementptr inbounds i32, ptr %.121731, i64 %2525
  %2527 = load i32, ptr %2526, align 4, !tbaa !74
  br label %.loopexit1871

2528:                                             ; preds = %.loopexit1871
  %2529 = getelementptr inbounds i8, ptr %0, i64 56
  %2530 = load i32, ptr %2529, align 8, !tbaa !54
  %2531 = icmp sgt i32 %2530, -1
  %.not1826 = icmp slt i32 %2530, %.31566
  %or.cond1845 = select i1 %2531, i1 %.not1826, i1 false
  br i1 %or.cond1845, label %vector.ph3283, label %.loopexit

vector.ph3283:                                    ; preds = %2528
  %2532 = getelementptr inbounds i8, ptr %0, i64 1096
  store i32 0, ptr %2532, align 8, !tbaa !74
  %2533 = getelementptr inbounds i8, ptr %0, i64 68
  %2534 = getelementptr inbounds i8, ptr %0, i64 84
  %wide.load3288 = load <4 x i32>, ptr %2533, align 4, !tbaa !74
  %wide.load3289 = load <4 x i32>, ptr %2534, align 4, !tbaa !74
  %2535 = getelementptr inbounds i8, ptr %0, i64 1100
  %2536 = getelementptr inbounds i8, ptr %0, i64 1116
  store <4 x i32> %wide.load3288, ptr %2535, align 4, !tbaa !74
  store <4 x i32> %wide.load3289, ptr %2536, align 4, !tbaa !74
  %2537 = getelementptr inbounds i8, ptr %0, i64 100
  %2538 = getelementptr inbounds i8, ptr %0, i64 116
  %wide.load3288.1 = load <4 x i32>, ptr %2537, align 4, !tbaa !74
  %wide.load3289.1 = load <4 x i32>, ptr %2538, align 4, !tbaa !74
  %2539 = getelementptr inbounds i8, ptr %0, i64 1132
  %2540 = getelementptr inbounds i8, ptr %0, i64 1148
  store <4 x i32> %wide.load3288.1, ptr %2539, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.1, ptr %2540, align 4, !tbaa !74
  %2541 = getelementptr inbounds i8, ptr %0, i64 132
  %2542 = getelementptr inbounds i8, ptr %0, i64 148
  %wide.load3288.2 = load <4 x i32>, ptr %2541, align 4, !tbaa !74
  %wide.load3289.2 = load <4 x i32>, ptr %2542, align 4, !tbaa !74
  %2543 = getelementptr inbounds i8, ptr %0, i64 1164
  %2544 = getelementptr inbounds i8, ptr %0, i64 1180
  store <4 x i32> %wide.load3288.2, ptr %2543, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.2, ptr %2544, align 4, !tbaa !74
  %2545 = getelementptr inbounds i8, ptr %0, i64 164
  %2546 = getelementptr inbounds i8, ptr %0, i64 180
  %wide.load3288.3 = load <4 x i32>, ptr %2545, align 4, !tbaa !74
  %wide.load3289.3 = load <4 x i32>, ptr %2546, align 4, !tbaa !74
  %2547 = getelementptr inbounds i8, ptr %0, i64 1196
  %2548 = getelementptr inbounds i8, ptr %0, i64 1212
  store <4 x i32> %wide.load3288.3, ptr %2547, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.3, ptr %2548, align 4, !tbaa !74
  %2549 = getelementptr inbounds i8, ptr %0, i64 196
  %2550 = getelementptr inbounds i8, ptr %0, i64 212
  %wide.load3288.4 = load <4 x i32>, ptr %2549, align 4, !tbaa !74
  %wide.load3289.4 = load <4 x i32>, ptr %2550, align 4, !tbaa !74
  %2551 = getelementptr inbounds i8, ptr %0, i64 1228
  %2552 = getelementptr inbounds i8, ptr %0, i64 1244
  store <4 x i32> %wide.load3288.4, ptr %2551, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.4, ptr %2552, align 4, !tbaa !74
  %2553 = getelementptr inbounds i8, ptr %0, i64 228
  %2554 = getelementptr inbounds i8, ptr %0, i64 244
  %wide.load3288.5 = load <4 x i32>, ptr %2553, align 4, !tbaa !74
  %wide.load3289.5 = load <4 x i32>, ptr %2554, align 4, !tbaa !74
  %2555 = getelementptr inbounds i8, ptr %0, i64 1260
  %2556 = getelementptr inbounds i8, ptr %0, i64 1276
  store <4 x i32> %wide.load3288.5, ptr %2555, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.5, ptr %2556, align 4, !tbaa !74
  %2557 = getelementptr inbounds i8, ptr %0, i64 260
  %2558 = getelementptr inbounds i8, ptr %0, i64 276
  %wide.load3288.6 = load <4 x i32>, ptr %2557, align 4, !tbaa !74
  %wide.load3289.6 = load <4 x i32>, ptr %2558, align 4, !tbaa !74
  %2559 = getelementptr inbounds i8, ptr %0, i64 1292
  %2560 = getelementptr inbounds i8, ptr %0, i64 1308
  store <4 x i32> %wide.load3288.6, ptr %2559, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.6, ptr %2560, align 4, !tbaa !74
  %2561 = getelementptr inbounds i8, ptr %0, i64 292
  %2562 = getelementptr inbounds i8, ptr %0, i64 308
  %wide.load3288.7 = load <4 x i32>, ptr %2561, align 4, !tbaa !74
  %wide.load3289.7 = load <4 x i32>, ptr %2562, align 4, !tbaa !74
  %2563 = getelementptr inbounds i8, ptr %0, i64 1324
  %2564 = getelementptr inbounds i8, ptr %0, i64 1340
  store <4 x i32> %wide.load3288.7, ptr %2563, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.7, ptr %2564, align 4, !tbaa !74
  %2565 = getelementptr inbounds i8, ptr %0, i64 324
  %2566 = getelementptr inbounds i8, ptr %0, i64 340
  %wide.load3288.8 = load <4 x i32>, ptr %2565, align 4, !tbaa !74
  %wide.load3289.8 = load <4 x i32>, ptr %2566, align 4, !tbaa !74
  %2567 = getelementptr inbounds i8, ptr %0, i64 1356
  %2568 = getelementptr inbounds i8, ptr %0, i64 1372
  store <4 x i32> %wide.load3288.8, ptr %2567, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.8, ptr %2568, align 4, !tbaa !74
  %2569 = getelementptr inbounds i8, ptr %0, i64 356
  %2570 = getelementptr inbounds i8, ptr %0, i64 372
  %wide.load3288.9 = load <4 x i32>, ptr %2569, align 4, !tbaa !74
  %wide.load3289.9 = load <4 x i32>, ptr %2570, align 4, !tbaa !74
  %2571 = getelementptr inbounds i8, ptr %0, i64 1388
  %2572 = getelementptr inbounds i8, ptr %0, i64 1404
  store <4 x i32> %wide.load3288.9, ptr %2571, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.9, ptr %2572, align 4, !tbaa !74
  %2573 = getelementptr inbounds i8, ptr %0, i64 388
  %2574 = getelementptr inbounds i8, ptr %0, i64 404
  %wide.load3288.10 = load <4 x i32>, ptr %2573, align 4, !tbaa !74
  %wide.load3289.10 = load <4 x i32>, ptr %2574, align 4, !tbaa !74
  %2575 = getelementptr inbounds i8, ptr %0, i64 1420
  %2576 = getelementptr inbounds i8, ptr %0, i64 1436
  store <4 x i32> %wide.load3288.10, ptr %2575, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.10, ptr %2576, align 4, !tbaa !74
  %2577 = getelementptr inbounds i8, ptr %0, i64 420
  %2578 = getelementptr inbounds i8, ptr %0, i64 436
  %wide.load3288.11 = load <4 x i32>, ptr %2577, align 4, !tbaa !74
  %wide.load3289.11 = load <4 x i32>, ptr %2578, align 4, !tbaa !74
  %2579 = getelementptr inbounds i8, ptr %0, i64 1452
  %2580 = getelementptr inbounds i8, ptr %0, i64 1468
  store <4 x i32> %wide.load3288.11, ptr %2579, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.11, ptr %2580, align 4, !tbaa !74
  %2581 = getelementptr inbounds i8, ptr %0, i64 452
  %2582 = getelementptr inbounds i8, ptr %0, i64 468
  %wide.load3288.12 = load <4 x i32>, ptr %2581, align 4, !tbaa !74
  %wide.load3289.12 = load <4 x i32>, ptr %2582, align 4, !tbaa !74
  %2583 = getelementptr inbounds i8, ptr %0, i64 1484
  %2584 = getelementptr inbounds i8, ptr %0, i64 1500
  store <4 x i32> %wide.load3288.12, ptr %2583, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.12, ptr %2584, align 4, !tbaa !74
  %2585 = getelementptr inbounds i8, ptr %0, i64 484
  %2586 = getelementptr inbounds i8, ptr %0, i64 500
  %wide.load3288.13 = load <4 x i32>, ptr %2585, align 4, !tbaa !74
  %wide.load3289.13 = load <4 x i32>, ptr %2586, align 4, !tbaa !74
  %2587 = getelementptr inbounds i8, ptr %0, i64 1516
  %2588 = getelementptr inbounds i8, ptr %0, i64 1532
  store <4 x i32> %wide.load3288.13, ptr %2587, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.13, ptr %2588, align 4, !tbaa !74
  %2589 = getelementptr inbounds i8, ptr %0, i64 516
  %2590 = getelementptr inbounds i8, ptr %0, i64 532
  %wide.load3288.14 = load <4 x i32>, ptr %2589, align 4, !tbaa !74
  %wide.load3289.14 = load <4 x i32>, ptr %2590, align 4, !tbaa !74
  %2591 = getelementptr inbounds i8, ptr %0, i64 1548
  %2592 = getelementptr inbounds i8, ptr %0, i64 1564
  store <4 x i32> %wide.load3288.14, ptr %2591, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.14, ptr %2592, align 4, !tbaa !74
  %2593 = getelementptr inbounds i8, ptr %0, i64 548
  %2594 = getelementptr inbounds i8, ptr %0, i64 564
  %wide.load3288.15 = load <4 x i32>, ptr %2593, align 4, !tbaa !74
  %wide.load3289.15 = load <4 x i32>, ptr %2594, align 4, !tbaa !74
  %2595 = getelementptr inbounds i8, ptr %0, i64 1580
  %2596 = getelementptr inbounds i8, ptr %0, i64 1596
  store <4 x i32> %wide.load3288.15, ptr %2595, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.15, ptr %2596, align 4, !tbaa !74
  %2597 = getelementptr inbounds i8, ptr %0, i64 580
  %2598 = getelementptr inbounds i8, ptr %0, i64 596
  %wide.load3288.16 = load <4 x i32>, ptr %2597, align 4, !tbaa !74
  %wide.load3289.16 = load <4 x i32>, ptr %2598, align 4, !tbaa !74
  %2599 = getelementptr inbounds i8, ptr %0, i64 1612
  %2600 = getelementptr inbounds i8, ptr %0, i64 1628
  store <4 x i32> %wide.load3288.16, ptr %2599, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.16, ptr %2600, align 4, !tbaa !74
  %2601 = getelementptr inbounds i8, ptr %0, i64 612
  %2602 = getelementptr inbounds i8, ptr %0, i64 628
  %wide.load3288.17 = load <4 x i32>, ptr %2601, align 4, !tbaa !74
  %wide.load3289.17 = load <4 x i32>, ptr %2602, align 4, !tbaa !74
  %2603 = getelementptr inbounds i8, ptr %0, i64 1644
  %2604 = getelementptr inbounds i8, ptr %0, i64 1660
  store <4 x i32> %wide.load3288.17, ptr %2603, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.17, ptr %2604, align 4, !tbaa !74
  %2605 = getelementptr inbounds i8, ptr %0, i64 644
  %2606 = getelementptr inbounds i8, ptr %0, i64 660
  %wide.load3288.18 = load <4 x i32>, ptr %2605, align 4, !tbaa !74
  %wide.load3289.18 = load <4 x i32>, ptr %2606, align 4, !tbaa !74
  %2607 = getelementptr inbounds i8, ptr %0, i64 1676
  %2608 = getelementptr inbounds i8, ptr %0, i64 1692
  store <4 x i32> %wide.load3288.18, ptr %2607, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.18, ptr %2608, align 4, !tbaa !74
  %2609 = getelementptr inbounds i8, ptr %0, i64 676
  %2610 = getelementptr inbounds i8, ptr %0, i64 692
  %wide.load3288.19 = load <4 x i32>, ptr %2609, align 4, !tbaa !74
  %wide.load3289.19 = load <4 x i32>, ptr %2610, align 4, !tbaa !74
  %2611 = getelementptr inbounds i8, ptr %0, i64 1708
  %2612 = getelementptr inbounds i8, ptr %0, i64 1724
  store <4 x i32> %wide.load3288.19, ptr %2611, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.19, ptr %2612, align 4, !tbaa !74
  %2613 = getelementptr inbounds i8, ptr %0, i64 708
  %2614 = getelementptr inbounds i8, ptr %0, i64 724
  %wide.load3288.20 = load <4 x i32>, ptr %2613, align 4, !tbaa !74
  %wide.load3289.20 = load <4 x i32>, ptr %2614, align 4, !tbaa !74
  %2615 = getelementptr inbounds i8, ptr %0, i64 1740
  %2616 = getelementptr inbounds i8, ptr %0, i64 1756
  store <4 x i32> %wide.load3288.20, ptr %2615, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.20, ptr %2616, align 4, !tbaa !74
  %2617 = getelementptr inbounds i8, ptr %0, i64 740
  %2618 = getelementptr inbounds i8, ptr %0, i64 756
  %wide.load3288.21 = load <4 x i32>, ptr %2617, align 4, !tbaa !74
  %wide.load3289.21 = load <4 x i32>, ptr %2618, align 4, !tbaa !74
  %2619 = getelementptr inbounds i8, ptr %0, i64 1772
  %2620 = getelementptr inbounds i8, ptr %0, i64 1788
  store <4 x i32> %wide.load3288.21, ptr %2619, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.21, ptr %2620, align 4, !tbaa !74
  %2621 = getelementptr inbounds i8, ptr %0, i64 772
  %2622 = getelementptr inbounds i8, ptr %0, i64 788
  %wide.load3288.22 = load <4 x i32>, ptr %2621, align 4, !tbaa !74
  %wide.load3289.22 = load <4 x i32>, ptr %2622, align 4, !tbaa !74
  %2623 = getelementptr inbounds i8, ptr %0, i64 1804
  %2624 = getelementptr inbounds i8, ptr %0, i64 1820
  store <4 x i32> %wide.load3288.22, ptr %2623, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.22, ptr %2624, align 4, !tbaa !74
  %2625 = getelementptr inbounds i8, ptr %0, i64 804
  %2626 = getelementptr inbounds i8, ptr %0, i64 820
  %wide.load3288.23 = load <4 x i32>, ptr %2625, align 4, !tbaa !74
  %wide.load3289.23 = load <4 x i32>, ptr %2626, align 4, !tbaa !74
  %2627 = getelementptr inbounds i8, ptr %0, i64 1836
  %2628 = getelementptr inbounds i8, ptr %0, i64 1852
  store <4 x i32> %wide.load3288.23, ptr %2627, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.23, ptr %2628, align 4, !tbaa !74
  %2629 = getelementptr inbounds i8, ptr %0, i64 836
  %2630 = getelementptr inbounds i8, ptr %0, i64 852
  %wide.load3288.24 = load <4 x i32>, ptr %2629, align 4, !tbaa !74
  %wide.load3289.24 = load <4 x i32>, ptr %2630, align 4, !tbaa !74
  %2631 = getelementptr inbounds i8, ptr %0, i64 1868
  %2632 = getelementptr inbounds i8, ptr %0, i64 1884
  store <4 x i32> %wide.load3288.24, ptr %2631, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.24, ptr %2632, align 4, !tbaa !74
  %2633 = getelementptr inbounds i8, ptr %0, i64 868
  %2634 = getelementptr inbounds i8, ptr %0, i64 884
  %wide.load3288.25 = load <4 x i32>, ptr %2633, align 4, !tbaa !74
  %wide.load3289.25 = load <4 x i32>, ptr %2634, align 4, !tbaa !74
  %2635 = getelementptr inbounds i8, ptr %0, i64 1900
  %2636 = getelementptr inbounds i8, ptr %0, i64 1916
  store <4 x i32> %wide.load3288.25, ptr %2635, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.25, ptr %2636, align 4, !tbaa !74
  %2637 = getelementptr inbounds i8, ptr %0, i64 900
  %2638 = getelementptr inbounds i8, ptr %0, i64 916
  %wide.load3288.26 = load <4 x i32>, ptr %2637, align 4, !tbaa !74
  %wide.load3289.26 = load <4 x i32>, ptr %2638, align 4, !tbaa !74
  %2639 = getelementptr inbounds i8, ptr %0, i64 1932
  %2640 = getelementptr inbounds i8, ptr %0, i64 1948
  store <4 x i32> %wide.load3288.26, ptr %2639, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.26, ptr %2640, align 4, !tbaa !74
  %2641 = getelementptr inbounds i8, ptr %0, i64 932
  %2642 = getelementptr inbounds i8, ptr %0, i64 948
  %wide.load3288.27 = load <4 x i32>, ptr %2641, align 4, !tbaa !74
  %wide.load3289.27 = load <4 x i32>, ptr %2642, align 4, !tbaa !74
  %2643 = getelementptr inbounds i8, ptr %0, i64 1964
  %2644 = getelementptr inbounds i8, ptr %0, i64 1980
  store <4 x i32> %wide.load3288.27, ptr %2643, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.27, ptr %2644, align 4, !tbaa !74
  %2645 = getelementptr inbounds i8, ptr %0, i64 964
  %2646 = getelementptr inbounds i8, ptr %0, i64 980
  %wide.load3288.28 = load <4 x i32>, ptr %2645, align 4, !tbaa !74
  %wide.load3289.28 = load <4 x i32>, ptr %2646, align 4, !tbaa !74
  %2647 = getelementptr inbounds i8, ptr %0, i64 1996
  %2648 = getelementptr inbounds i8, ptr %0, i64 2012
  store <4 x i32> %wide.load3288.28, ptr %2647, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.28, ptr %2648, align 4, !tbaa !74
  %2649 = getelementptr inbounds i8, ptr %0, i64 996
  %2650 = getelementptr inbounds i8, ptr %0, i64 1012
  %wide.load3288.29 = load <4 x i32>, ptr %2649, align 4, !tbaa !74
  %wide.load3289.29 = load <4 x i32>, ptr %2650, align 4, !tbaa !74
  %2651 = getelementptr inbounds i8, ptr %0, i64 2028
  %2652 = getelementptr inbounds i8, ptr %0, i64 2044
  store <4 x i32> %wide.load3288.29, ptr %2651, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.29, ptr %2652, align 4, !tbaa !74
  %2653 = getelementptr inbounds i8, ptr %0, i64 1028
  %2654 = getelementptr inbounds i8, ptr %0, i64 1044
  %wide.load3288.30 = load <4 x i32>, ptr %2653, align 4, !tbaa !74
  %wide.load3289.30 = load <4 x i32>, ptr %2654, align 4, !tbaa !74
  %2655 = getelementptr inbounds i8, ptr %0, i64 2060
  %2656 = getelementptr inbounds i8, ptr %0, i64 2076
  store <4 x i32> %wide.load3288.30, ptr %2655, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.30, ptr %2656, align 4, !tbaa !74
  %2657 = getelementptr inbounds i8, ptr %0, i64 1060
  %2658 = getelementptr inbounds i8, ptr %0, i64 1076
  %wide.load3288.31 = load <4 x i32>, ptr %2657, align 4, !tbaa !74
  %wide.load3289.31 = load <4 x i32>, ptr %2658, align 4, !tbaa !74
  %2659 = getelementptr inbounds i8, ptr %0, i64 2092
  %2660 = getelementptr inbounds i8, ptr %0, i64 2108
  store <4 x i32> %wide.load3288.31, ptr %2659, align 4, !tbaa !74
  store <4 x i32> %wide.load3289.31, ptr %2660, align 4, !tbaa !74
  br label %.preheader1868

.preheader1868:                                   ; preds = %.preheader1868, %vector.ph3283
  %2661 = phi i32 [ 0, %vector.ph3283 ], [ %2673, %.preheader1868 ]
  %indvars.iv2622 = phi i64 [ 1, %vector.ph3283 ], [ %indvars.iv.next2623.3, %.preheader1868 ]
  %2662 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv2622
  %2663 = load i32, ptr %2662, align 4, !tbaa !74
  %2664 = add nsw i32 %2663, %2661
  store i32 %2664, ptr %2662, align 4, !tbaa !74
  %indvars.iv.next2623 = add nuw nsw i64 %indvars.iv2622, 1
  %2665 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2623
  %2666 = load i32, ptr %2665, align 4, !tbaa !74
  %2667 = add nsw i32 %2666, %2664
  store i32 %2667, ptr %2665, align 4, !tbaa !74
  %indvars.iv.next2623.1 = add nuw nsw i64 %indvars.iv2622, 2
  %2668 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2623.1
  %2669 = load i32, ptr %2668, align 4, !tbaa !74
  %2670 = add nsw i32 %2669, %2667
  store i32 %2670, ptr %2668, align 4, !tbaa !74
  %indvars.iv.next2623.2 = add nuw nsw i64 %indvars.iv2622, 3
  %2671 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2623.2
  %2672 = load i32, ptr %2671, align 4, !tbaa !74
  %2673 = add nsw i32 %2672, %2670
  store i32 %2673, ptr %2671, align 4, !tbaa !74
  %indvars.iv.next2623.3 = add nuw nsw i64 %indvars.iv2622, 4
  %exitcond2626.not.3 = icmp eq i64 %indvars.iv.next2623.3, 257
  br i1 %exitcond2626.not.3, label %.preheader1866, label %.preheader1868, !llvm.loop !89

.preheader1866:                                   ; preds = %.preheader1868, %2691
  %indvars.iv2627 = phi i64 [ %indvars.iv.next2628.3, %2691 ], [ 0, %.preheader1868 ]
  %2674 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv2627
  %2675 = load i32, ptr %2674, align 4, !tbaa !74
  %2676 = icmp slt i32 %2675, 0
  %2677 = icmp sgt i32 %2675, %.31566
  %or.cond1846 = select i1 %2676, i1 true, i1 %2677
  br i1 %or.cond1846, label %.loopexit.loopexit2454, label %2678

2678:                                             ; preds = %.preheader1866
  %exitcond2631.not = icmp eq i64 %indvars.iv2627, 256
  br i1 %exitcond2631.not, label %2692, label %.preheader1866.1, !llvm.loop !90

.preheader1866.1:                                 ; preds = %2678
  %indvars.iv.next2628 = or disjoint i64 %indvars.iv2627, 1
  %2679 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2628
  %2680 = load i32, ptr %2679, align 4, !tbaa !74
  %2681 = icmp slt i32 %2680, 0
  %2682 = icmp sgt i32 %2680, %.31566
  %or.cond1846.1 = select i1 %2681, i1 true, i1 %2682
  br i1 %or.cond1846.1, label %.loopexit.loopexit2454, label %.preheader1866.2

.preheader1866.2:                                 ; preds = %.preheader1866.1
  %indvars.iv.next2628.1 = or disjoint i64 %indvars.iv2627, 2
  %2683 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2628.1
  %2684 = load i32, ptr %2683, align 4, !tbaa !74
  %2685 = icmp slt i32 %2684, 0
  %2686 = icmp sgt i32 %2684, %.31566
  %or.cond1846.2 = select i1 %2685, i1 true, i1 %2686
  br i1 %or.cond1846.2, label %.loopexit.loopexit2454, label %.preheader1866.3

.preheader1866.3:                                 ; preds = %.preheader1866.2
  %indvars.iv.next2628.2 = or disjoint i64 %indvars.iv2627, 3
  %2687 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %indvars.iv.next2628.2
  %2688 = load i32, ptr %2687, align 4, !tbaa !74
  %2689 = icmp slt i32 %2688, 0
  %2690 = icmp sgt i32 %2688, %.31566
  %or.cond1846.3 = select i1 %2689, i1 true, i1 %2690
  br i1 %or.cond1846.3, label %.loopexit.loopexit2454, label %2691

2691:                                             ; preds = %.preheader1866.3
  %indvars.iv.next2628.3 = add nuw nsw i64 %indvars.iv2627, 4
  br label %.preheader1866

2692:                                             ; preds = %2678
  %2693 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 0, ptr %2693, align 8, !tbaa !91
  %2694 = getelementptr inbounds i8, ptr %0, i64 12
  store i8 0, ptr %2694, align 4, !tbaa !92
  %2695 = getelementptr inbounds i8, ptr %0, i64 3184
  store i32 -1, ptr %2695, align 8, !tbaa !93
  store i32 2, ptr %4, align 8, !tbaa !11
  %2696 = getelementptr inbounds i8, ptr %0, i64 44
  %2697 = load i8, ptr %2696, align 4, !tbaa !45
  %.not1827 = icmp eq i8 %2697, 0
  br i1 %.not1827, label %.preheader, label %.preheader1865

.preheader1865:                                   ; preds = %2692
  %2698 = getelementptr inbounds i8, ptr %0, i64 2124
  %2699 = getelementptr inbounds i8, ptr %0, i64 1112
  %wide.load3297 = load <4 x i32>, ptr %2532, align 4, !tbaa !74
  %wide.load3298 = load <4 x i32>, ptr %2699, align 4, !tbaa !74
  %2700 = getelementptr inbounds i8, ptr %0, i64 2140
  store <4 x i32> %wide.load3297, ptr %2698, align 4, !tbaa !74
  store <4 x i32> %wide.load3298, ptr %2700, align 4, !tbaa !74
  %2701 = getelementptr inbounds i8, ptr %0, i64 1128
  %2702 = getelementptr inbounds i8, ptr %0, i64 1144
  %wide.load3297.1 = load <4 x i32>, ptr %2701, align 4, !tbaa !74
  %wide.load3298.1 = load <4 x i32>, ptr %2702, align 4, !tbaa !74
  %2703 = getelementptr inbounds i8, ptr %0, i64 2156
  %2704 = getelementptr inbounds i8, ptr %0, i64 2172
  store <4 x i32> %wide.load3297.1, ptr %2703, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.1, ptr %2704, align 4, !tbaa !74
  %2705 = getelementptr inbounds i8, ptr %0, i64 1160
  %2706 = getelementptr inbounds i8, ptr %0, i64 1176
  %wide.load3297.2 = load <4 x i32>, ptr %2705, align 4, !tbaa !74
  %wide.load3298.2 = load <4 x i32>, ptr %2706, align 4, !tbaa !74
  %2707 = getelementptr inbounds i8, ptr %0, i64 2188
  %2708 = getelementptr inbounds i8, ptr %0, i64 2204
  store <4 x i32> %wide.load3297.2, ptr %2707, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.2, ptr %2708, align 4, !tbaa !74
  %2709 = getelementptr inbounds i8, ptr %0, i64 1192
  %2710 = getelementptr inbounds i8, ptr %0, i64 1208
  %wide.load3297.3 = load <4 x i32>, ptr %2709, align 4, !tbaa !74
  %wide.load3298.3 = load <4 x i32>, ptr %2710, align 4, !tbaa !74
  %2711 = getelementptr inbounds i8, ptr %0, i64 2220
  %2712 = getelementptr inbounds i8, ptr %0, i64 2236
  store <4 x i32> %wide.load3297.3, ptr %2711, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.3, ptr %2712, align 4, !tbaa !74
  %2713 = getelementptr inbounds i8, ptr %0, i64 1224
  %2714 = getelementptr inbounds i8, ptr %0, i64 1240
  %wide.load3297.4 = load <4 x i32>, ptr %2713, align 4, !tbaa !74
  %wide.load3298.4 = load <4 x i32>, ptr %2714, align 4, !tbaa !74
  %2715 = getelementptr inbounds i8, ptr %0, i64 2252
  %2716 = getelementptr inbounds i8, ptr %0, i64 2268
  store <4 x i32> %wide.load3297.4, ptr %2715, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.4, ptr %2716, align 4, !tbaa !74
  %2717 = getelementptr inbounds i8, ptr %0, i64 1256
  %2718 = getelementptr inbounds i8, ptr %0, i64 1272
  %wide.load3297.5 = load <4 x i32>, ptr %2717, align 4, !tbaa !74
  %wide.load3298.5 = load <4 x i32>, ptr %2718, align 4, !tbaa !74
  %2719 = getelementptr inbounds i8, ptr %0, i64 2284
  %2720 = getelementptr inbounds i8, ptr %0, i64 2300
  store <4 x i32> %wide.load3297.5, ptr %2719, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.5, ptr %2720, align 4, !tbaa !74
  %2721 = getelementptr inbounds i8, ptr %0, i64 1288
  %2722 = getelementptr inbounds i8, ptr %0, i64 1304
  %wide.load3297.6 = load <4 x i32>, ptr %2721, align 4, !tbaa !74
  %wide.load3298.6 = load <4 x i32>, ptr %2722, align 4, !tbaa !74
  %2723 = getelementptr inbounds i8, ptr %0, i64 2316
  %2724 = getelementptr inbounds i8, ptr %0, i64 2332
  store <4 x i32> %wide.load3297.6, ptr %2723, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.6, ptr %2724, align 4, !tbaa !74
  %2725 = getelementptr inbounds i8, ptr %0, i64 1320
  %2726 = getelementptr inbounds i8, ptr %0, i64 1336
  %wide.load3297.7 = load <4 x i32>, ptr %2725, align 4, !tbaa !74
  %wide.load3298.7 = load <4 x i32>, ptr %2726, align 4, !tbaa !74
  %2727 = getelementptr inbounds i8, ptr %0, i64 2348
  %2728 = getelementptr inbounds i8, ptr %0, i64 2364
  store <4 x i32> %wide.load3297.7, ptr %2727, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.7, ptr %2728, align 4, !tbaa !74
  %2729 = getelementptr inbounds i8, ptr %0, i64 1352
  %2730 = getelementptr inbounds i8, ptr %0, i64 1368
  %wide.load3297.8 = load <4 x i32>, ptr %2729, align 4, !tbaa !74
  %wide.load3298.8 = load <4 x i32>, ptr %2730, align 4, !tbaa !74
  %2731 = getelementptr inbounds i8, ptr %0, i64 2380
  %2732 = getelementptr inbounds i8, ptr %0, i64 2396
  store <4 x i32> %wide.load3297.8, ptr %2731, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.8, ptr %2732, align 4, !tbaa !74
  %2733 = getelementptr inbounds i8, ptr %0, i64 1384
  %2734 = getelementptr inbounds i8, ptr %0, i64 1400
  %wide.load3297.9 = load <4 x i32>, ptr %2733, align 4, !tbaa !74
  %wide.load3298.9 = load <4 x i32>, ptr %2734, align 4, !tbaa !74
  %2735 = getelementptr inbounds i8, ptr %0, i64 2412
  %2736 = getelementptr inbounds i8, ptr %0, i64 2428
  store <4 x i32> %wide.load3297.9, ptr %2735, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.9, ptr %2736, align 4, !tbaa !74
  %2737 = getelementptr inbounds i8, ptr %0, i64 1416
  %2738 = getelementptr inbounds i8, ptr %0, i64 1432
  %wide.load3297.10 = load <4 x i32>, ptr %2737, align 4, !tbaa !74
  %wide.load3298.10 = load <4 x i32>, ptr %2738, align 4, !tbaa !74
  %2739 = getelementptr inbounds i8, ptr %0, i64 2444
  %2740 = getelementptr inbounds i8, ptr %0, i64 2460
  store <4 x i32> %wide.load3297.10, ptr %2739, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.10, ptr %2740, align 4, !tbaa !74
  %2741 = getelementptr inbounds i8, ptr %0, i64 1448
  %2742 = getelementptr inbounds i8, ptr %0, i64 1464
  %wide.load3297.11 = load <4 x i32>, ptr %2741, align 4, !tbaa !74
  %wide.load3298.11 = load <4 x i32>, ptr %2742, align 4, !tbaa !74
  %2743 = getelementptr inbounds i8, ptr %0, i64 2476
  %2744 = getelementptr inbounds i8, ptr %0, i64 2492
  store <4 x i32> %wide.load3297.11, ptr %2743, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.11, ptr %2744, align 4, !tbaa !74
  %2745 = getelementptr inbounds i8, ptr %0, i64 1480
  %2746 = getelementptr inbounds i8, ptr %0, i64 1496
  %wide.load3297.12 = load <4 x i32>, ptr %2745, align 4, !tbaa !74
  %wide.load3298.12 = load <4 x i32>, ptr %2746, align 4, !tbaa !74
  %2747 = getelementptr inbounds i8, ptr %0, i64 2508
  %2748 = getelementptr inbounds i8, ptr %0, i64 2524
  store <4 x i32> %wide.load3297.12, ptr %2747, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.12, ptr %2748, align 4, !tbaa !74
  %2749 = getelementptr inbounds i8, ptr %0, i64 1512
  %2750 = getelementptr inbounds i8, ptr %0, i64 1528
  %wide.load3297.13 = load <4 x i32>, ptr %2749, align 4, !tbaa !74
  %wide.load3298.13 = load <4 x i32>, ptr %2750, align 4, !tbaa !74
  %2751 = getelementptr inbounds i8, ptr %0, i64 2540
  %2752 = getelementptr inbounds i8, ptr %0, i64 2556
  store <4 x i32> %wide.load3297.13, ptr %2751, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.13, ptr %2752, align 4, !tbaa !74
  %2753 = getelementptr inbounds i8, ptr %0, i64 1544
  %2754 = getelementptr inbounds i8, ptr %0, i64 1560
  %wide.load3297.14 = load <4 x i32>, ptr %2753, align 4, !tbaa !74
  %wide.load3298.14 = load <4 x i32>, ptr %2754, align 4, !tbaa !74
  %2755 = getelementptr inbounds i8, ptr %0, i64 2572
  %2756 = getelementptr inbounds i8, ptr %0, i64 2588
  store <4 x i32> %wide.load3297.14, ptr %2755, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.14, ptr %2756, align 4, !tbaa !74
  %2757 = getelementptr inbounds i8, ptr %0, i64 1576
  %2758 = getelementptr inbounds i8, ptr %0, i64 1592
  %wide.load3297.15 = load <4 x i32>, ptr %2757, align 4, !tbaa !74
  %wide.load3298.15 = load <4 x i32>, ptr %2758, align 4, !tbaa !74
  %2759 = getelementptr inbounds i8, ptr %0, i64 2604
  %2760 = getelementptr inbounds i8, ptr %0, i64 2620
  store <4 x i32> %wide.load3297.15, ptr %2759, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.15, ptr %2760, align 4, !tbaa !74
  %2761 = getelementptr inbounds i8, ptr %0, i64 1608
  %2762 = getelementptr inbounds i8, ptr %0, i64 1624
  %wide.load3297.16 = load <4 x i32>, ptr %2761, align 4, !tbaa !74
  %wide.load3298.16 = load <4 x i32>, ptr %2762, align 4, !tbaa !74
  %2763 = getelementptr inbounds i8, ptr %0, i64 2636
  %2764 = getelementptr inbounds i8, ptr %0, i64 2652
  store <4 x i32> %wide.load3297.16, ptr %2763, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.16, ptr %2764, align 4, !tbaa !74
  %2765 = getelementptr inbounds i8, ptr %0, i64 1640
  %2766 = getelementptr inbounds i8, ptr %0, i64 1656
  %wide.load3297.17 = load <4 x i32>, ptr %2765, align 4, !tbaa !74
  %wide.load3298.17 = load <4 x i32>, ptr %2766, align 4, !tbaa !74
  %2767 = getelementptr inbounds i8, ptr %0, i64 2668
  %2768 = getelementptr inbounds i8, ptr %0, i64 2684
  store <4 x i32> %wide.load3297.17, ptr %2767, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.17, ptr %2768, align 4, !tbaa !74
  %2769 = getelementptr inbounds i8, ptr %0, i64 1672
  %2770 = getelementptr inbounds i8, ptr %0, i64 1688
  %wide.load3297.18 = load <4 x i32>, ptr %2769, align 4, !tbaa !74
  %wide.load3298.18 = load <4 x i32>, ptr %2770, align 4, !tbaa !74
  %2771 = getelementptr inbounds i8, ptr %0, i64 2700
  %2772 = getelementptr inbounds i8, ptr %0, i64 2716
  store <4 x i32> %wide.load3297.18, ptr %2771, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.18, ptr %2772, align 4, !tbaa !74
  %2773 = getelementptr inbounds i8, ptr %0, i64 1704
  %2774 = getelementptr inbounds i8, ptr %0, i64 1720
  %wide.load3297.19 = load <4 x i32>, ptr %2773, align 4, !tbaa !74
  %wide.load3298.19 = load <4 x i32>, ptr %2774, align 4, !tbaa !74
  %2775 = getelementptr inbounds i8, ptr %0, i64 2732
  %2776 = getelementptr inbounds i8, ptr %0, i64 2748
  store <4 x i32> %wide.load3297.19, ptr %2775, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.19, ptr %2776, align 4, !tbaa !74
  %2777 = getelementptr inbounds i8, ptr %0, i64 1736
  %2778 = getelementptr inbounds i8, ptr %0, i64 1752
  %wide.load3297.20 = load <4 x i32>, ptr %2777, align 4, !tbaa !74
  %wide.load3298.20 = load <4 x i32>, ptr %2778, align 4, !tbaa !74
  %2779 = getelementptr inbounds i8, ptr %0, i64 2764
  %2780 = getelementptr inbounds i8, ptr %0, i64 2780
  store <4 x i32> %wide.load3297.20, ptr %2779, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.20, ptr %2780, align 4, !tbaa !74
  %2781 = getelementptr inbounds i8, ptr %0, i64 1768
  %2782 = getelementptr inbounds i8, ptr %0, i64 1784
  %wide.load3297.21 = load <4 x i32>, ptr %2781, align 4, !tbaa !74
  %wide.load3298.21 = load <4 x i32>, ptr %2782, align 4, !tbaa !74
  %2783 = getelementptr inbounds i8, ptr %0, i64 2796
  %2784 = getelementptr inbounds i8, ptr %0, i64 2812
  store <4 x i32> %wide.load3297.21, ptr %2783, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.21, ptr %2784, align 4, !tbaa !74
  %2785 = getelementptr inbounds i8, ptr %0, i64 1800
  %2786 = getelementptr inbounds i8, ptr %0, i64 1816
  %wide.load3297.22 = load <4 x i32>, ptr %2785, align 4, !tbaa !74
  %wide.load3298.22 = load <4 x i32>, ptr %2786, align 4, !tbaa !74
  %2787 = getelementptr inbounds i8, ptr %0, i64 2828
  %2788 = getelementptr inbounds i8, ptr %0, i64 2844
  store <4 x i32> %wide.load3297.22, ptr %2787, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.22, ptr %2788, align 4, !tbaa !74
  %2789 = getelementptr inbounds i8, ptr %0, i64 1832
  %2790 = getelementptr inbounds i8, ptr %0, i64 1848
  %wide.load3297.23 = load <4 x i32>, ptr %2789, align 4, !tbaa !74
  %wide.load3298.23 = load <4 x i32>, ptr %2790, align 4, !tbaa !74
  %2791 = getelementptr inbounds i8, ptr %0, i64 2860
  %2792 = getelementptr inbounds i8, ptr %0, i64 2876
  store <4 x i32> %wide.load3297.23, ptr %2791, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.23, ptr %2792, align 4, !tbaa !74
  %2793 = getelementptr inbounds i8, ptr %0, i64 1864
  %2794 = getelementptr inbounds i8, ptr %0, i64 1880
  %wide.load3297.24 = load <4 x i32>, ptr %2793, align 4, !tbaa !74
  %wide.load3298.24 = load <4 x i32>, ptr %2794, align 4, !tbaa !74
  %2795 = getelementptr inbounds i8, ptr %0, i64 2892
  %2796 = getelementptr inbounds i8, ptr %0, i64 2908
  store <4 x i32> %wide.load3297.24, ptr %2795, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.24, ptr %2796, align 4, !tbaa !74
  %2797 = getelementptr inbounds i8, ptr %0, i64 1896
  %2798 = getelementptr inbounds i8, ptr %0, i64 1912
  %wide.load3297.25 = load <4 x i32>, ptr %2797, align 4, !tbaa !74
  %wide.load3298.25 = load <4 x i32>, ptr %2798, align 4, !tbaa !74
  %2799 = getelementptr inbounds i8, ptr %0, i64 2924
  %2800 = getelementptr inbounds i8, ptr %0, i64 2940
  store <4 x i32> %wide.load3297.25, ptr %2799, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.25, ptr %2800, align 4, !tbaa !74
  %2801 = getelementptr inbounds i8, ptr %0, i64 1928
  %2802 = getelementptr inbounds i8, ptr %0, i64 1944
  %wide.load3297.26 = load <4 x i32>, ptr %2801, align 4, !tbaa !74
  %wide.load3298.26 = load <4 x i32>, ptr %2802, align 4, !tbaa !74
  %2803 = getelementptr inbounds i8, ptr %0, i64 2956
  %2804 = getelementptr inbounds i8, ptr %0, i64 2972
  store <4 x i32> %wide.load3297.26, ptr %2803, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.26, ptr %2804, align 4, !tbaa !74
  %2805 = getelementptr inbounds i8, ptr %0, i64 1960
  %2806 = getelementptr inbounds i8, ptr %0, i64 1976
  %wide.load3297.27 = load <4 x i32>, ptr %2805, align 4, !tbaa !74
  %wide.load3298.27 = load <4 x i32>, ptr %2806, align 4, !tbaa !74
  %2807 = getelementptr inbounds i8, ptr %0, i64 2988
  %2808 = getelementptr inbounds i8, ptr %0, i64 3004
  store <4 x i32> %wide.load3297.27, ptr %2807, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.27, ptr %2808, align 4, !tbaa !74
  %2809 = getelementptr inbounds i8, ptr %0, i64 1992
  %2810 = getelementptr inbounds i8, ptr %0, i64 2008
  %wide.load3297.28 = load <4 x i32>, ptr %2809, align 4, !tbaa !74
  %wide.load3298.28 = load <4 x i32>, ptr %2810, align 4, !tbaa !74
  %2811 = getelementptr inbounds i8, ptr %0, i64 3020
  %2812 = getelementptr inbounds i8, ptr %0, i64 3036
  store <4 x i32> %wide.load3297.28, ptr %2811, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.28, ptr %2812, align 4, !tbaa !74
  %2813 = getelementptr inbounds i8, ptr %0, i64 2024
  %2814 = getelementptr inbounds i8, ptr %0, i64 2040
  %wide.load3297.29 = load <4 x i32>, ptr %2813, align 4, !tbaa !74
  %wide.load3298.29 = load <4 x i32>, ptr %2814, align 4, !tbaa !74
  %2815 = getelementptr inbounds i8, ptr %0, i64 3052
  %2816 = getelementptr inbounds i8, ptr %0, i64 3068
  store <4 x i32> %wide.load3297.29, ptr %2815, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.29, ptr %2816, align 4, !tbaa !74
  %2817 = getelementptr inbounds i8, ptr %0, i64 2056
  %2818 = getelementptr inbounds i8, ptr %0, i64 2072
  %wide.load3297.30 = load <4 x i32>, ptr %2817, align 4, !tbaa !74
  %wide.load3298.30 = load <4 x i32>, ptr %2818, align 4, !tbaa !74
  %2819 = getelementptr inbounds i8, ptr %0, i64 3084
  %2820 = getelementptr inbounds i8, ptr %0, i64 3100
  store <4 x i32> %wide.load3297.30, ptr %2819, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.30, ptr %2820, align 4, !tbaa !74
  %2821 = getelementptr inbounds i8, ptr %0, i64 2088
  %2822 = getelementptr inbounds i8, ptr %0, i64 2104
  %wide.load3297.31 = load <4 x i32>, ptr %2821, align 4, !tbaa !74
  %wide.load3298.31 = load <4 x i32>, ptr %2822, align 4, !tbaa !74
  %2823 = getelementptr inbounds i8, ptr %0, i64 3116
  %2824 = getelementptr inbounds i8, ptr %0, i64 3132
  store <4 x i32> %wide.load3297.31, ptr %2823, align 4, !tbaa !74
  store <4 x i32> %wide.load3298.31, ptr %2824, align 4, !tbaa !74
  %2825 = getelementptr inbounds i8, ptr %0, i64 2120
  %2826 = load i32, ptr %2825, align 4, !tbaa !74
  %2827 = getelementptr inbounds i8, ptr %0, i64 3148
  store i32 %2826, ptr %2827, align 4, !tbaa !74
  %2828 = icmp sgt i32 %.31566, 0
  br i1 %2828, label %.lr.ph2319, label %._crit_edge2320

.preheader:                                       ; preds = %2692
  %2829 = icmp sgt i32 %.31566, 0
  %2830 = getelementptr inbounds i8, ptr %0, i64 3152
  %2831 = load ptr, ptr %2830, align 8, !tbaa !50
  br i1 %2829, label %.lr.ph2322, label %._crit_edge2323

.lr.ph2322:                                       ; preds = %.preheader
  %wide.trip.count2647 = zext nneg i32 %.31566 to i64
  %xtraiter3468 = and i64 %wide.trip.count2647, 1
  %2832 = icmp eq i32 %.31566, 1
  br i1 %2832, label %._crit_edge2323.loopexit.unr-lcssa, label %.lr.ph2322.new

.lr.ph2322.new:                                   ; preds = %.lr.ph2322
  %unroll_iter = and i64 %wide.trip.count2647, 2147483646
  br label %2988

.lr.ph2319:                                       ; preds = %.preheader1865
  %2833 = getelementptr inbounds i8, ptr %0, i64 3160
  %2834 = getelementptr inbounds i8, ptr %0, i64 3168
  %wide.trip.count2641 = zext nneg i32 %.31566 to i64
  br label %2835

2835:                                             ; preds = %.lr.ph2319, %2862
  %indvars.iv2637 = phi i64 [ 0, %.lr.ph2319 ], [ %indvars.iv.next2638, %2862 ]
  %2836 = load ptr, ptr %2833, align 8, !tbaa !48
  %2837 = getelementptr inbounds i16, ptr %2836, i64 %indvars.iv2637
  %2838 = load i16, ptr %2837, align 2, !tbaa !78
  %2839 = and i16 %2838, 255
  %2840 = zext nneg i16 %2839 to i64
  %2841 = getelementptr inbounds [257 x i32], ptr %2698, i64 0, i64 %2840
  %2842 = load i32, ptr %2841, align 4, !tbaa !74
  %2843 = trunc i32 %2842 to i16
  store i16 %2843, ptr %2837, align 2, !tbaa !78
  %2844 = and i64 %indvars.iv2637, 1
  %2845 = icmp eq i64 %2844, 0
  %2846 = load ptr, ptr %2834, align 8, !tbaa !49
  %2847 = lshr i64 %indvars.iv2637, 1
  %2848 = and i64 %2847, 2147483647
  %2849 = getelementptr inbounds i8, ptr %2846, i64 %2848
  %2850 = load i8, ptr %2849, align 1, !tbaa !41
  br i1 %2845, label %2851, label %2856

2851:                                             ; preds = %2835
  %2852 = and i8 %2850, -16
  %2853 = lshr i32 %2842, 16
  %2854 = trunc i32 %2853 to i8
  %2855 = or i8 %2852, %2854
  br label %2862

2856:                                             ; preds = %2835
  %2857 = and i8 %2850, 15
  %2858 = lshr i32 %2842, 12
  %2859 = trunc i32 %2858 to i8
  %2860 = and i8 %2859, -16
  %2861 = or disjoint i8 %2857, %2860
  br label %2862

2862:                                             ; preds = %2856, %2851
  %.sink3015 = phi i8 [ %2861, %2856 ], [ %2855, %2851 ]
  store i8 %.sink3015, ptr %2849, align 1, !tbaa !41
  %2863 = load i32, ptr %2841, align 4, !tbaa !74
  %2864 = add nsw i32 %2863, 1
  store i32 %2864, ptr %2841, align 4, !tbaa !74
  %indvars.iv.next2638 = add nuw nsw i64 %indvars.iv2637, 1
  %exitcond2642.not = icmp eq i64 %indvars.iv.next2638, %wide.trip.count2641
  br i1 %exitcond2642.not, label %._crit_edge2320.loopexit, label %2835, !llvm.loop !94

._crit_edge2320.loopexit:                         ; preds = %2862
  %.pre2805 = load i32, ptr %2529, align 8, !tbaa !54
  br label %._crit_edge2320

._crit_edge2320:                                  ; preds = %._crit_edge2320.loopexit, %.preheader1865
  %2865 = phi i32 [ %.pre2805, %._crit_edge2320.loopexit ], [ %2530, %.preheader1865 ]
  %2866 = getelementptr inbounds i8, ptr %0, i64 3160
  %2867 = load ptr, ptr %2866, align 8, !tbaa !48
  %2868 = sext i32 %2865 to i64
  %2869 = getelementptr inbounds i16, ptr %2867, i64 %2868
  %2870 = load i16, ptr %2869, align 2, !tbaa !78
  %2871 = zext i16 %2870 to i32
  %2872 = getelementptr inbounds i8, ptr %0, i64 3168
  %2873 = load ptr, ptr %2872, align 8, !tbaa !49
  %2874 = ashr i32 %2865, 1
  %2875 = sext i32 %2874 to i64
  %2876 = getelementptr inbounds i8, ptr %2873, i64 %2875
  %2877 = load i8, ptr %2876, align 1, !tbaa !41
  %2878 = zext i8 %2877 to i32
  %2879 = shl i32 %2865, 2
  %2880 = and i32 %2879, 4
  %2881 = lshr i32 %2878, %2880
  %2882 = shl nuw nsw i32 %2881, 16
  %2883 = and i32 %2882, 983040
  %2884 = or disjoint i32 %2883, %2871
  br label %2885

2885:                                             ; preds = %2918, %._crit_edge2320
  %.261404 = phi i32 [ %2884, %._crit_edge2320 ], [ %2902, %2918 ]
  %.37 = phi i32 [ %2865, %._crit_edge2320 ], [ %.261404, %2918 ]
  %2886 = load ptr, ptr %2866, align 8, !tbaa !48
  %2887 = zext nneg i32 %.261404 to i64
  %2888 = getelementptr inbounds i16, ptr %2886, i64 %2887
  %2889 = load i16, ptr %2888, align 2, !tbaa !78
  %2890 = zext i16 %2889 to i32
  %2891 = load ptr, ptr %2872, align 8, !tbaa !49
  %2892 = lshr i32 %.261404, 1
  %2893 = zext nneg i32 %2892 to i64
  %2894 = getelementptr inbounds i8, ptr %2891, i64 %2893
  %2895 = load i8, ptr %2894, align 1, !tbaa !41
  %2896 = zext i8 %2895 to i32
  %2897 = shl nuw nsw i32 %.261404, 2
  %2898 = and i32 %2897, 4
  %2899 = lshr i32 %2896, %2898
  %2900 = shl nuw nsw i32 %2899, 16
  %2901 = and i32 %2900, 983040
  %2902 = or disjoint i32 %2901, %2890
  %2903 = trunc i32 %.37 to i16
  store i16 %2903, ptr %2888, align 2, !tbaa !78
  %2904 = and i32 %.261404, 1
  %2905 = icmp eq i32 %2904, 0
  %2906 = load i8, ptr %2894, align 1, !tbaa !41
  br i1 %2905, label %2907, label %2912

2907:                                             ; preds = %2885
  %2908 = and i8 %2906, -16
  %2909 = lshr i32 %.37, 16
  %2910 = trunc i32 %2909 to i8
  %2911 = or i8 %2908, %2910
  br label %2918

2912:                                             ; preds = %2885
  %2913 = and i8 %2906, 15
  %2914 = lshr i32 %.37, 12
  %2915 = trunc i32 %2914 to i8
  %2916 = and i8 %2915, -16
  %2917 = or disjoint i8 %2913, %2916
  br label %2918

2918:                                             ; preds = %2912, %2907
  %storemerge = phi i8 [ %2917, %2912 ], [ %2911, %2907 ]
  store i8 %storemerge, ptr %2894, align 1, !tbaa !41
  %2919 = load i32, ptr %2529, align 8, !tbaa !54
  %.not1829 = icmp eq i32 %.261404, %2919
  br i1 %.not1829, label %2920, label %2885, !llvm.loop !95

2920:                                             ; preds = %2918
  %2921 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %.261404, ptr %2921, align 4, !tbaa !96
  %2922 = getelementptr inbounds i8, ptr %0, i64 1092
  store i32 0, ptr %2922, align 4, !tbaa !97
  %2923 = getelementptr inbounds i8, ptr %0, i64 20
  %2924 = load i8, ptr %2923, align 4, !tbaa !53
  %.not1830 = icmp eq i8 %2924, 0
  br i1 %.not1830, label %2965, label %2925

2925:                                             ; preds = %2920
  %2926 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 0, ptr %2926, align 8, !tbaa !98
  %2927 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 0, ptr %2927, align 4, !tbaa !99
  %2928 = tail call i32 @BZ2_indexIntoF(i32 noundef %.261404, ptr noundef nonnull %2532)
  %2929 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %2928, ptr %2929, align 8, !tbaa !100
  %2930 = load ptr, ptr %2866, align 8, !tbaa !48
  %2931 = load i32, ptr %2921, align 4, !tbaa !96
  %2932 = zext i32 %2931 to i64
  %2933 = getelementptr inbounds i16, ptr %2930, i64 %2932
  %2934 = load i16, ptr %2933, align 2, !tbaa !78
  %2935 = zext i16 %2934 to i32
  %2936 = load ptr, ptr %2872, align 8, !tbaa !49
  %2937 = lshr i32 %2931, 1
  %2938 = zext nneg i32 %2937 to i64
  %2939 = getelementptr inbounds i8, ptr %2936, i64 %2938
  %2940 = load i8, ptr %2939, align 1, !tbaa !41
  %2941 = zext i8 %2940 to i32
  %2942 = shl i32 %2931, 2
  %2943 = and i32 %2942, 4
  %2944 = lshr i32 %2941, %2943
  %2945 = shl nuw nsw i32 %2944, 16
  %2946 = and i32 %2945, 983040
  %2947 = or disjoint i32 %2946, %2935
  store i32 %2947, ptr %2921, align 4, !tbaa !96
  %2948 = load i32, ptr %2922, align 4, !tbaa !97
  %2949 = add nsw i32 %2948, 1
  store i32 %2949, ptr %2922, align 4, !tbaa !97
  %2950 = load i32, ptr %2926, align 8, !tbaa !98
  %2951 = icmp eq i32 %2950, 0
  br i1 %2951, label %2952, label %2959

2952:                                             ; preds = %2925
  %2953 = load i32, ptr %2927, align 4, !tbaa !99
  %2954 = sext i32 %2953 to i64
  %2955 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %2954
  %2956 = load i32, ptr %2955, align 4, !tbaa !74
  %2957 = add nsw i32 %2953, 1
  %2958 = icmp eq i32 %2957, 512
  %spec.store.select = select i1 %2958, i32 0, i32 %2957
  store i32 %spec.store.select, ptr %2927, align 4
  br label %2959

2959:                                             ; preds = %2952, %2925
  %2960 = phi i32 [ %2956, %2952 ], [ %2950, %2925 ]
  %2961 = add nsw i32 %2960, -1
  store i32 %2961, ptr %2926, align 8, !tbaa !98
  %2962 = icmp eq i32 %2961, 1
  %2963 = zext i1 %2962 to i32
  %2964 = xor i32 %2928, %2963
  store i32 %2964, ptr %2929, align 8, !tbaa !100
  br label %.loopexit

2965:                                             ; preds = %2920
  %2966 = tail call i32 @BZ2_indexIntoF(i32 noundef %.261404, ptr noundef nonnull %2532)
  %2967 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %2966, ptr %2967, align 8, !tbaa !100
  %2968 = load ptr, ptr %2866, align 8, !tbaa !48
  %2969 = load i32, ptr %2921, align 4, !tbaa !96
  %2970 = zext i32 %2969 to i64
  %2971 = getelementptr inbounds i16, ptr %2968, i64 %2970
  %2972 = load i16, ptr %2971, align 2, !tbaa !78
  %2973 = zext i16 %2972 to i32
  %2974 = load ptr, ptr %2872, align 8, !tbaa !49
  %2975 = lshr i32 %2969, 1
  %2976 = zext nneg i32 %2975 to i64
  %2977 = getelementptr inbounds i8, ptr %2974, i64 %2976
  %2978 = load i8, ptr %2977, align 1, !tbaa !41
  %2979 = zext i8 %2978 to i32
  %2980 = shl i32 %2969, 2
  %2981 = and i32 %2980, 4
  %2982 = lshr i32 %2979, %2981
  %2983 = shl nuw nsw i32 %2982, 16
  %2984 = and i32 %2983, 983040
  %2985 = or disjoint i32 %2984, %2973
  store i32 %2985, ptr %2921, align 4, !tbaa !96
  %2986 = load i32, ptr %2922, align 4, !tbaa !97
  %2987 = add nsw i32 %2986, 1
  store i32 %2987, ptr %2922, align 4, !tbaa !97
  br label %.loopexit

2988:                                             ; preds = %2988, %.lr.ph2322.new
  %indvars.iv2643 = phi i64 [ 0, %.lr.ph2322.new ], [ %indvars.iv.next2644.1, %2988 ]
  %niter = phi i64 [ 0, %.lr.ph2322.new ], [ %niter.next.1, %2988 ]
  %2989 = getelementptr inbounds i32, ptr %2831, i64 %indvars.iv2643
  %2990 = load i32, ptr %2989, align 4, !tbaa !74
  %2991 = trunc nuw nsw i64 %indvars.iv2643 to i32
  %2992 = shl i32 %2991, 8
  %2993 = and i32 %2990, 255
  %2994 = zext nneg i32 %2993 to i64
  %2995 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %2994
  %2996 = load i32, ptr %2995, align 4, !tbaa !74
  %2997 = sext i32 %2996 to i64
  %2998 = getelementptr inbounds i32, ptr %2831, i64 %2997
  %2999 = load i32, ptr %2998, align 4, !tbaa !74
  %3000 = or i32 %2999, %2992
  store i32 %3000, ptr %2998, align 4, !tbaa !74
  %3001 = load i32, ptr %2995, align 4, !tbaa !74
  %3002 = add nsw i32 %3001, 1
  store i32 %3002, ptr %2995, align 4, !tbaa !74
  %indvars.iv.next2644 = or disjoint i64 %indvars.iv2643, 1
  %3003 = getelementptr inbounds i32, ptr %2831, i64 %indvars.iv.next2644
  %3004 = load i32, ptr %3003, align 4, !tbaa !74
  %3005 = trunc nuw nsw i64 %indvars.iv.next2644 to i32
  %3006 = shl i32 %3005, 8
  %3007 = and i32 %3004, 255
  %3008 = zext nneg i32 %3007 to i64
  %3009 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %3008
  %3010 = load i32, ptr %3009, align 4, !tbaa !74
  %3011 = sext i32 %3010 to i64
  %3012 = getelementptr inbounds i32, ptr %2831, i64 %3011
  %3013 = load i32, ptr %3012, align 4, !tbaa !74
  %3014 = or i32 %3013, %3006
  store i32 %3014, ptr %3012, align 4, !tbaa !74
  %3015 = load i32, ptr %3009, align 4, !tbaa !74
  %3016 = add nsw i32 %3015, 1
  store i32 %3016, ptr %3009, align 4, !tbaa !74
  %indvars.iv.next2644.1 = add nuw nsw i64 %indvars.iv2643, 2
  %niter.next.1 = add i64 %niter, 2
  %niter.ncmp.1 = icmp eq i64 %niter.next.1, %unroll_iter
  br i1 %niter.ncmp.1, label %._crit_edge2323.loopexit.unr-lcssa, label %2988, !llvm.loop !101

._crit_edge2323.loopexit.unr-lcssa:               ; preds = %2988, %.lr.ph2322
  %indvars.iv2643.unr = phi i64 [ 0, %.lr.ph2322 ], [ %indvars.iv.next2644.1, %2988 ]
  %lcmp.mod3469.not = icmp eq i64 %xtraiter3468, 0
  br i1 %lcmp.mod3469.not, label %._crit_edge2323.loopexit, label %._crit_edge2323.loopexit.epilog-lcssa

._crit_edge2323.loopexit.epilog-lcssa:            ; preds = %._crit_edge2323.loopexit.unr-lcssa
  %3017 = getelementptr inbounds i32, ptr %2831, i64 %indvars.iv2643.unr
  %3018 = load i32, ptr %3017, align 4, !tbaa !74
  %3019 = trunc nuw nsw i64 %indvars.iv2643.unr to i32
  %3020 = shl i32 %3019, 8
  %3021 = and i32 %3018, 255
  %3022 = zext nneg i32 %3021 to i64
  %3023 = getelementptr inbounds [257 x i32], ptr %2532, i64 0, i64 %3022
  %3024 = load i32, ptr %3023, align 4, !tbaa !74
  %3025 = sext i32 %3024 to i64
  %3026 = getelementptr inbounds i32, ptr %2831, i64 %3025
  %3027 = load i32, ptr %3026, align 4, !tbaa !74
  %3028 = or i32 %3027, %3020
  store i32 %3028, ptr %3026, align 4, !tbaa !74
  %3029 = load i32, ptr %3023, align 4, !tbaa !74
  %3030 = add nsw i32 %3029, 1
  store i32 %3030, ptr %3023, align 4, !tbaa !74
  br label %._crit_edge2323.loopexit

._crit_edge2323.loopexit:                         ; preds = %._crit_edge2323.loopexit.unr-lcssa, %._crit_edge2323.loopexit.epilog-lcssa
  %.pre2808 = load i32, ptr %2529, align 8, !tbaa !54
  br label %._crit_edge2323

._crit_edge2323:                                  ; preds = %.preheader, %._crit_edge2323.loopexit
  %3031 = phi i32 [ %.pre2808, %._crit_edge2323.loopexit ], [ %2530, %.preheader ]
  %.38.lcssa = phi i32 [ %.31566, %._crit_edge2323.loopexit ], [ 0, %.preheader ]
  %3032 = sext i32 %3031 to i64
  %3033 = getelementptr inbounds i32, ptr %2831, i64 %3032
  %3034 = load i32, ptr %3033, align 4, !tbaa !74
  %3035 = lshr i32 %3034, 8
  %3036 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %3035, ptr %3036, align 4, !tbaa !96
  %3037 = getelementptr inbounds i8, ptr %0, i64 1092
  store i32 0, ptr %3037, align 4, !tbaa !97
  %3038 = getelementptr inbounds i8, ptr %0, i64 20
  %3039 = load i8, ptr %3038, align 4, !tbaa !53
  %.not1828 = icmp eq i8 %3039, 0
  br i1 %.not1828, label %3054, label %3040

3040:                                             ; preds = %._crit_edge2323
  %3041 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 0, ptr %3041, align 8, !tbaa !98
  %3042 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 0, ptr %3042, align 4, !tbaa !99
  %3043 = zext nneg i32 %3035 to i64
  %3044 = getelementptr inbounds i32, ptr %2831, i64 %3043
  %3045 = load i32, ptr %3044, align 4, !tbaa !74
  %3046 = and i32 %3045, 255
  %3047 = getelementptr inbounds i8, ptr %0, i64 64
  %3048 = lshr i32 %3045, 8
  store i32 %3048, ptr %3036, align 4, !tbaa !96
  store i32 1, ptr %3037, align 4, !tbaa !97
  %3049 = load i32, ptr @BZ2_rNums, align 16, !tbaa !74
  store i32 1, ptr %3042, align 4
  %3050 = add nsw i32 %3049, -1
  store i32 %3050, ptr %3041, align 8, !tbaa !98
  %3051 = icmp eq i32 %3050, 1
  %3052 = zext i1 %3051 to i32
  %3053 = xor i32 %3046, %3052
  store i32 %3053, ptr %3047, align 8, !tbaa !100
  br label %.loopexit

3054:                                             ; preds = %._crit_edge2323
  %3055 = zext nneg i32 %3035 to i64
  %3056 = getelementptr inbounds i32, ptr %2831, i64 %3055
  %3057 = load i32, ptr %3056, align 4, !tbaa !74
  %3058 = and i32 %3057, 255
  %3059 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %3058, ptr %3059, align 8, !tbaa !100
  %3060 = lshr i32 %3057, 8
  store i32 %3060, ptr %3036, align 4, !tbaa !96
  store i32 1, ptr %3037, align 4, !tbaa !97
  br label %.loopexit

3061:                                             ; preds = %._crit_edge2830, %._crit_edge2108
  %3062 = phi i32 [ %.pre, %._crit_edge2830 ], [ %242, %._crit_edge2108 ]
  %3063 = phi i32 [ %.pre2651, %._crit_edge2830 ], [ %243, %._crit_edge2108 ]
  %3064 = phi i32 [ %.pre2653, %._crit_edge2830 ], [ %244, %._crit_edge2108 ]
  %3065 = phi i32 [ %.pre2655, %._crit_edge2830 ], [ %245, %._crit_edge2108 ]
  %3066 = phi i32 [ %.pre2657, %._crit_edge2830 ], [ %246, %._crit_edge2108 ]
  %3067 = phi i32 [ %.pre2659, %._crit_edge2830 ], [ %247, %._crit_edge2108 ]
  %3068 = phi i32 [ %.pre2661, %._crit_edge2830 ], [ %248, %._crit_edge2108 ]
  %3069 = phi i32 [ %.pre2663, %._crit_edge2830 ], [ %249, %._crit_edge2108 ]
  %3070 = phi i32 [ %.pre2665, %._crit_edge2830 ], [ %250, %._crit_edge2108 ]
  %3071 = phi i32 [ %.pre2667, %._crit_edge2830 ], [ %251, %._crit_edge2108 ]
  %3072 = phi i32 [ %.pre2669, %._crit_edge2830 ], [ %252, %._crit_edge2108 ]
  %3073 = phi i32 [ %.pre2671, %._crit_edge2830 ], [ %253, %._crit_edge2108 ]
  %3074 = phi i32 [ %.pre2673, %._crit_edge2830 ], [ %254, %._crit_edge2108 ]
  %3075 = phi i32 [ %.pre2675, %._crit_edge2830 ], [ %255, %._crit_edge2108 ]
  %3076 = phi i32 [ %.pre2677, %._crit_edge2830 ], [ %256, %._crit_edge2108 ]
  %3077 = phi i32 [ %.pre2679, %._crit_edge2830 ], [ %257, %._crit_edge2108 ]
  %3078 = phi i32 [ %.pre2681, %._crit_edge2830 ], [ %258, %._crit_edge2108 ]
  %3079 = phi i32 [ %.pre2683, %._crit_edge2830 ], [ %259, %._crit_edge2108 ]
  %3080 = phi i32 [ %.pre2685, %._crit_edge2830 ], [ %260, %._crit_edge2108 ]
  %3081 = phi i32 [ %.pre2687, %._crit_edge2830 ], [ %261, %._crit_edge2108 ]
  %3082 = phi i32 [ %.pre2689, %._crit_edge2830 ], [ %262, %._crit_edge2108 ]
  %3083 = phi ptr [ %.pre2691, %._crit_edge2830 ], [ %263, %._crit_edge2108 ]
  %3084 = phi ptr [ %.pre2693, %._crit_edge2830 ], [ %264, %._crit_edge2108 ]
  %3085 = phi ptr [ %.pre2695, %._crit_edge2830 ], [ %265, %._crit_edge2108 ]
  %.promoted2374 = phi i32 [ %.promoted2374.pre, %._crit_edge2830 ], [ %274, %._crit_edge2108 ]
  store i32 42, ptr %4, align 8, !tbaa !11
  %3086 = getelementptr inbounds i8, ptr %0, i64 36
  %3087 = icmp sgt i32 %.promoted2374, 7
  br i1 %3087, label %.._crit_edge2377_crit_edge, label %.lr.ph2376

.._crit_edge2377_crit_edge:                       ; preds = %3061
  %.phi.trans.insert2833 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2834 = load i32, ptr %.phi.trans.insert2833, align 8, !tbaa !37
  br label %._crit_edge2377

.lr.ph2376:                                       ; preds = %3061
  %3088 = load ptr, ptr %0, align 8, !tbaa !5
  %3089 = getelementptr inbounds i8, ptr %3088, i64 8
  %3090 = getelementptr inbounds i8, ptr %0, i64 32
  %3091 = getelementptr inbounds i8, ptr %3088, i64 12
  %3092 = getelementptr inbounds i8, ptr %3088, i64 16
  %.promoted2380 = load i32, ptr %3089, align 8, !tbaa !38
  br label %3097

._crit_edge2377:                                  ; preds = %3117, %.._crit_edge2377_crit_edge
  %3093 = phi i32 [ %.pre2834, %.._crit_edge2377_crit_edge ], [ %3107, %3117 ]
  %.lcssa1942 = phi i32 [ %.promoted2374, %.._crit_edge2377_crit_edge ], [ %3108, %3117 ]
  %3094 = add nsw i32 %.lcssa1942, -8
  %3095 = lshr i32 %3093, %3094
  store i32 %3094, ptr %3086, align 4, !tbaa !12
  %3096 = and i32 %3095, 255
  %.not1836 = icmp eq i32 %3096, 114
  br i1 %.not1836, label %3119, label %.loopexit

3097:                                             ; preds = %.lr.ph2376, %3117
  %3098 = phi i32 [ %.promoted2380, %.lr.ph2376 ], [ %3110, %3117 ]
  %3099 = phi i32 [ %.promoted2374, %.lr.ph2376 ], [ %3108, %3117 ]
  %3100 = icmp eq i32 %3098, 0
  br i1 %3100, label %.loopexit, label %3101

3101:                                             ; preds = %3097
  %3102 = load i32, ptr %3090, align 8, !tbaa !37
  %3103 = shl i32 %3102, 8
  %3104 = load ptr, ptr %3088, align 8, !tbaa !40
  %3105 = load i8, ptr %3104, align 1, !tbaa !41
  %3106 = zext i8 %3105 to i32
  %3107 = or disjoint i32 %3103, %3106
  store i32 %3107, ptr %3090, align 8, !tbaa !37
  %3108 = add nsw i32 %3099, 8
  store i32 %3108, ptr %3086, align 4, !tbaa !12
  %3109 = getelementptr inbounds i8, ptr %3104, i64 1
  store ptr %3109, ptr %3088, align 8, !tbaa !40
  %3110 = add i32 %3098, -1
  store i32 %3110, ptr %3089, align 8, !tbaa !38
  %3111 = load i32, ptr %3091, align 4, !tbaa !42
  %3112 = add i32 %3111, 1
  store i32 %3112, ptr %3091, align 4, !tbaa !42
  %3113 = icmp eq i32 %3112, 0
  br i1 %3113, label %3114, label %3117

3114:                                             ; preds = %3101
  %3115 = load i32, ptr %3092, align 8, !tbaa !43
  %3116 = add i32 %3115, 1
  store i32 %3116, ptr %3092, align 8, !tbaa !43
  br label %3117

3117:                                             ; preds = %3114, %3101
  %3118 = icmp sgt i32 %3099, -1
  br i1 %3118, label %._crit_edge2377, label %3097

3119:                                             ; preds = %._crit_edge2835, %._crit_edge2377
  %3120 = phi i32 [ %.pre, %._crit_edge2835 ], [ %3062, %._crit_edge2377 ]
  %3121 = phi i32 [ %.pre2651, %._crit_edge2835 ], [ %3063, %._crit_edge2377 ]
  %3122 = phi i32 [ %.pre2653, %._crit_edge2835 ], [ %3064, %._crit_edge2377 ]
  %3123 = phi i32 [ %.pre2655, %._crit_edge2835 ], [ %3065, %._crit_edge2377 ]
  %3124 = phi i32 [ %.pre2657, %._crit_edge2835 ], [ %3066, %._crit_edge2377 ]
  %3125 = phi i32 [ %.pre2659, %._crit_edge2835 ], [ %3067, %._crit_edge2377 ]
  %3126 = phi i32 [ %.pre2661, %._crit_edge2835 ], [ %3068, %._crit_edge2377 ]
  %3127 = phi i32 [ %.pre2663, %._crit_edge2835 ], [ %3069, %._crit_edge2377 ]
  %3128 = phi i32 [ %.pre2665, %._crit_edge2835 ], [ %3070, %._crit_edge2377 ]
  %3129 = phi i32 [ %.pre2667, %._crit_edge2835 ], [ %3071, %._crit_edge2377 ]
  %3130 = phi i32 [ %.pre2669, %._crit_edge2835 ], [ %3072, %._crit_edge2377 ]
  %3131 = phi i32 [ %.pre2671, %._crit_edge2835 ], [ %3073, %._crit_edge2377 ]
  %3132 = phi i32 [ %.pre2673, %._crit_edge2835 ], [ %3074, %._crit_edge2377 ]
  %3133 = phi i32 [ %.pre2675, %._crit_edge2835 ], [ %3075, %._crit_edge2377 ]
  %3134 = phi i32 [ %.pre2677, %._crit_edge2835 ], [ %3076, %._crit_edge2377 ]
  %3135 = phi i32 [ %.pre2679, %._crit_edge2835 ], [ %3077, %._crit_edge2377 ]
  %3136 = phi i32 [ %.pre2681, %._crit_edge2835 ], [ %3078, %._crit_edge2377 ]
  %3137 = phi i32 [ %.pre2683, %._crit_edge2835 ], [ %3079, %._crit_edge2377 ]
  %3138 = phi i32 [ %.pre2685, %._crit_edge2835 ], [ %3080, %._crit_edge2377 ]
  %3139 = phi i32 [ %.pre2687, %._crit_edge2835 ], [ %3081, %._crit_edge2377 ]
  %3140 = phi i32 [ %.pre2689, %._crit_edge2835 ], [ %3082, %._crit_edge2377 ]
  %3141 = phi ptr [ %.pre2691, %._crit_edge2835 ], [ %3083, %._crit_edge2377 ]
  %3142 = phi ptr [ %.pre2693, %._crit_edge2835 ], [ %3084, %._crit_edge2377 ]
  %3143 = phi ptr [ %.pre2695, %._crit_edge2835 ], [ %3085, %._crit_edge2377 ]
  %.promoted2381 = phi i32 [ %.promoted2381.pre, %._crit_edge2835 ], [ %3094, %._crit_edge2377 ]
  store i32 43, ptr %4, align 8, !tbaa !11
  %3144 = getelementptr inbounds i8, ptr %0, i64 36
  %3145 = icmp sgt i32 %.promoted2381, 7
  br i1 %3145, label %.._crit_edge2384_crit_edge, label %.lr.ph2383

.._crit_edge2384_crit_edge:                       ; preds = %3119
  %.phi.trans.insert2838 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2839 = load i32, ptr %.phi.trans.insert2838, align 8, !tbaa !37
  br label %._crit_edge2384

.lr.ph2383:                                       ; preds = %3119
  %3146 = load ptr, ptr %0, align 8, !tbaa !5
  %3147 = getelementptr inbounds i8, ptr %3146, i64 8
  %3148 = getelementptr inbounds i8, ptr %0, i64 32
  %3149 = getelementptr inbounds i8, ptr %3146, i64 12
  %3150 = getelementptr inbounds i8, ptr %3146, i64 16
  %.promoted2387 = load i32, ptr %3147, align 8, !tbaa !38
  br label %3155

._crit_edge2384:                                  ; preds = %3175, %.._crit_edge2384_crit_edge
  %3151 = phi i32 [ %.pre2839, %.._crit_edge2384_crit_edge ], [ %3165, %3175 ]
  %.lcssa1938 = phi i32 [ %.promoted2381, %.._crit_edge2384_crit_edge ], [ %3166, %3175 ]
  %3152 = add nsw i32 %.lcssa1938, -8
  %3153 = lshr i32 %3151, %3152
  store i32 %3152, ptr %3144, align 4, !tbaa !12
  %3154 = and i32 %3153, 255
  %.not1837 = icmp eq i32 %3154, 69
  br i1 %.not1837, label %3177, label %.loopexit

3155:                                             ; preds = %.lr.ph2383, %3175
  %3156 = phi i32 [ %.promoted2387, %.lr.ph2383 ], [ %3168, %3175 ]
  %3157 = phi i32 [ %.promoted2381, %.lr.ph2383 ], [ %3166, %3175 ]
  %3158 = icmp eq i32 %3156, 0
  br i1 %3158, label %.loopexit, label %3159

3159:                                             ; preds = %3155
  %3160 = load i32, ptr %3148, align 8, !tbaa !37
  %3161 = shl i32 %3160, 8
  %3162 = load ptr, ptr %3146, align 8, !tbaa !40
  %3163 = load i8, ptr %3162, align 1, !tbaa !41
  %3164 = zext i8 %3163 to i32
  %3165 = or disjoint i32 %3161, %3164
  store i32 %3165, ptr %3148, align 8, !tbaa !37
  %3166 = add nsw i32 %3157, 8
  store i32 %3166, ptr %3144, align 4, !tbaa !12
  %3167 = getelementptr inbounds i8, ptr %3162, i64 1
  store ptr %3167, ptr %3146, align 8, !tbaa !40
  %3168 = add i32 %3156, -1
  store i32 %3168, ptr %3147, align 8, !tbaa !38
  %3169 = load i32, ptr %3149, align 4, !tbaa !42
  %3170 = add i32 %3169, 1
  store i32 %3170, ptr %3149, align 4, !tbaa !42
  %3171 = icmp eq i32 %3170, 0
  br i1 %3171, label %3172, label %3175

3172:                                             ; preds = %3159
  %3173 = load i32, ptr %3150, align 8, !tbaa !43
  %3174 = add i32 %3173, 1
  store i32 %3174, ptr %3150, align 8, !tbaa !43
  br label %3175

3175:                                             ; preds = %3172, %3159
  %3176 = icmp sgt i32 %3157, -1
  br i1 %3176, label %._crit_edge2384, label %3155

3177:                                             ; preds = %._crit_edge2840, %._crit_edge2384
  %3178 = phi i32 [ %.pre, %._crit_edge2840 ], [ %3120, %._crit_edge2384 ]
  %3179 = phi i32 [ %.pre2651, %._crit_edge2840 ], [ %3121, %._crit_edge2384 ]
  %3180 = phi i32 [ %.pre2653, %._crit_edge2840 ], [ %3122, %._crit_edge2384 ]
  %3181 = phi i32 [ %.pre2655, %._crit_edge2840 ], [ %3123, %._crit_edge2384 ]
  %3182 = phi i32 [ %.pre2657, %._crit_edge2840 ], [ %3124, %._crit_edge2384 ]
  %3183 = phi i32 [ %.pre2659, %._crit_edge2840 ], [ %3125, %._crit_edge2384 ]
  %3184 = phi i32 [ %.pre2661, %._crit_edge2840 ], [ %3126, %._crit_edge2384 ]
  %3185 = phi i32 [ %.pre2663, %._crit_edge2840 ], [ %3127, %._crit_edge2384 ]
  %3186 = phi i32 [ %.pre2665, %._crit_edge2840 ], [ %3128, %._crit_edge2384 ]
  %3187 = phi i32 [ %.pre2667, %._crit_edge2840 ], [ %3129, %._crit_edge2384 ]
  %3188 = phi i32 [ %.pre2669, %._crit_edge2840 ], [ %3130, %._crit_edge2384 ]
  %3189 = phi i32 [ %.pre2671, %._crit_edge2840 ], [ %3131, %._crit_edge2384 ]
  %3190 = phi i32 [ %.pre2673, %._crit_edge2840 ], [ %3132, %._crit_edge2384 ]
  %3191 = phi i32 [ %.pre2675, %._crit_edge2840 ], [ %3133, %._crit_edge2384 ]
  %3192 = phi i32 [ %.pre2677, %._crit_edge2840 ], [ %3134, %._crit_edge2384 ]
  %3193 = phi i32 [ %.pre2679, %._crit_edge2840 ], [ %3135, %._crit_edge2384 ]
  %3194 = phi i32 [ %.pre2681, %._crit_edge2840 ], [ %3136, %._crit_edge2384 ]
  %3195 = phi i32 [ %.pre2683, %._crit_edge2840 ], [ %3137, %._crit_edge2384 ]
  %3196 = phi i32 [ %.pre2685, %._crit_edge2840 ], [ %3138, %._crit_edge2384 ]
  %3197 = phi i32 [ %.pre2687, %._crit_edge2840 ], [ %3139, %._crit_edge2384 ]
  %3198 = phi i32 [ %.pre2689, %._crit_edge2840 ], [ %3140, %._crit_edge2384 ]
  %3199 = phi ptr [ %.pre2691, %._crit_edge2840 ], [ %3141, %._crit_edge2384 ]
  %3200 = phi ptr [ %.pre2693, %._crit_edge2840 ], [ %3142, %._crit_edge2384 ]
  %3201 = phi ptr [ %.pre2695, %._crit_edge2840 ], [ %3143, %._crit_edge2384 ]
  %.promoted2388 = phi i32 [ %.promoted2388.pre, %._crit_edge2840 ], [ %3152, %._crit_edge2384 ]
  store i32 44, ptr %4, align 8, !tbaa !11
  %3202 = getelementptr inbounds i8, ptr %0, i64 36
  %3203 = icmp sgt i32 %.promoted2388, 7
  br i1 %3203, label %.._crit_edge2391_crit_edge, label %.lr.ph2390

.._crit_edge2391_crit_edge:                       ; preds = %3177
  %.phi.trans.insert2843 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2844 = load i32, ptr %.phi.trans.insert2843, align 8, !tbaa !37
  br label %._crit_edge2391

.lr.ph2390:                                       ; preds = %3177
  %3204 = load ptr, ptr %0, align 8, !tbaa !5
  %3205 = getelementptr inbounds i8, ptr %3204, i64 8
  %3206 = getelementptr inbounds i8, ptr %0, i64 32
  %3207 = getelementptr inbounds i8, ptr %3204, i64 12
  %3208 = getelementptr inbounds i8, ptr %3204, i64 16
  %.promoted2394 = load i32, ptr %3205, align 8, !tbaa !38
  br label %3213

._crit_edge2391:                                  ; preds = %3233, %.._crit_edge2391_crit_edge
  %3209 = phi i32 [ %.pre2844, %.._crit_edge2391_crit_edge ], [ %3223, %3233 ]
  %.lcssa1934 = phi i32 [ %.promoted2388, %.._crit_edge2391_crit_edge ], [ %3224, %3233 ]
  %3210 = add nsw i32 %.lcssa1934, -8
  %3211 = lshr i32 %3209, %3210
  store i32 %3210, ptr %3202, align 4, !tbaa !12
  %3212 = and i32 %3211, 255
  %.not1838 = icmp eq i32 %3212, 56
  br i1 %.not1838, label %3235, label %.loopexit

3213:                                             ; preds = %.lr.ph2390, %3233
  %3214 = phi i32 [ %.promoted2394, %.lr.ph2390 ], [ %3226, %3233 ]
  %3215 = phi i32 [ %.promoted2388, %.lr.ph2390 ], [ %3224, %3233 ]
  %3216 = icmp eq i32 %3214, 0
  br i1 %3216, label %.loopexit, label %3217

3217:                                             ; preds = %3213
  %3218 = load i32, ptr %3206, align 8, !tbaa !37
  %3219 = shl i32 %3218, 8
  %3220 = load ptr, ptr %3204, align 8, !tbaa !40
  %3221 = load i8, ptr %3220, align 1, !tbaa !41
  %3222 = zext i8 %3221 to i32
  %3223 = or disjoint i32 %3219, %3222
  store i32 %3223, ptr %3206, align 8, !tbaa !37
  %3224 = add nsw i32 %3215, 8
  store i32 %3224, ptr %3202, align 4, !tbaa !12
  %3225 = getelementptr inbounds i8, ptr %3220, i64 1
  store ptr %3225, ptr %3204, align 8, !tbaa !40
  %3226 = add i32 %3214, -1
  store i32 %3226, ptr %3205, align 8, !tbaa !38
  %3227 = load i32, ptr %3207, align 4, !tbaa !42
  %3228 = add i32 %3227, 1
  store i32 %3228, ptr %3207, align 4, !tbaa !42
  %3229 = icmp eq i32 %3228, 0
  br i1 %3229, label %3230, label %3233

3230:                                             ; preds = %3217
  %3231 = load i32, ptr %3208, align 8, !tbaa !43
  %3232 = add i32 %3231, 1
  store i32 %3232, ptr %3208, align 8, !tbaa !43
  br label %3233

3233:                                             ; preds = %3230, %3217
  %3234 = icmp sgt i32 %3215, -1
  br i1 %3234, label %._crit_edge2391, label %3213

3235:                                             ; preds = %._crit_edge2845, %._crit_edge2391
  %3236 = phi i32 [ %.pre, %._crit_edge2845 ], [ %3178, %._crit_edge2391 ]
  %3237 = phi i32 [ %.pre2651, %._crit_edge2845 ], [ %3179, %._crit_edge2391 ]
  %3238 = phi i32 [ %.pre2653, %._crit_edge2845 ], [ %3180, %._crit_edge2391 ]
  %3239 = phi i32 [ %.pre2655, %._crit_edge2845 ], [ %3181, %._crit_edge2391 ]
  %3240 = phi i32 [ %.pre2657, %._crit_edge2845 ], [ %3182, %._crit_edge2391 ]
  %3241 = phi i32 [ %.pre2659, %._crit_edge2845 ], [ %3183, %._crit_edge2391 ]
  %3242 = phi i32 [ %.pre2661, %._crit_edge2845 ], [ %3184, %._crit_edge2391 ]
  %3243 = phi i32 [ %.pre2663, %._crit_edge2845 ], [ %3185, %._crit_edge2391 ]
  %3244 = phi i32 [ %.pre2665, %._crit_edge2845 ], [ %3186, %._crit_edge2391 ]
  %3245 = phi i32 [ %.pre2667, %._crit_edge2845 ], [ %3187, %._crit_edge2391 ]
  %3246 = phi i32 [ %.pre2669, %._crit_edge2845 ], [ %3188, %._crit_edge2391 ]
  %3247 = phi i32 [ %.pre2671, %._crit_edge2845 ], [ %3189, %._crit_edge2391 ]
  %3248 = phi i32 [ %.pre2673, %._crit_edge2845 ], [ %3190, %._crit_edge2391 ]
  %3249 = phi i32 [ %.pre2675, %._crit_edge2845 ], [ %3191, %._crit_edge2391 ]
  %3250 = phi i32 [ %.pre2677, %._crit_edge2845 ], [ %3192, %._crit_edge2391 ]
  %3251 = phi i32 [ %.pre2679, %._crit_edge2845 ], [ %3193, %._crit_edge2391 ]
  %3252 = phi i32 [ %.pre2681, %._crit_edge2845 ], [ %3194, %._crit_edge2391 ]
  %3253 = phi i32 [ %.pre2683, %._crit_edge2845 ], [ %3195, %._crit_edge2391 ]
  %3254 = phi i32 [ %.pre2685, %._crit_edge2845 ], [ %3196, %._crit_edge2391 ]
  %3255 = phi i32 [ %.pre2687, %._crit_edge2845 ], [ %3197, %._crit_edge2391 ]
  %3256 = phi i32 [ %.pre2689, %._crit_edge2845 ], [ %3198, %._crit_edge2391 ]
  %3257 = phi ptr [ %.pre2691, %._crit_edge2845 ], [ %3199, %._crit_edge2391 ]
  %3258 = phi ptr [ %.pre2693, %._crit_edge2845 ], [ %3200, %._crit_edge2391 ]
  %3259 = phi ptr [ %.pre2695, %._crit_edge2845 ], [ %3201, %._crit_edge2391 ]
  %.promoted2395 = phi i32 [ %.promoted2395.pre, %._crit_edge2845 ], [ %3210, %._crit_edge2391 ]
  store i32 45, ptr %4, align 8, !tbaa !11
  %3260 = getelementptr inbounds i8, ptr %0, i64 36
  %3261 = icmp sgt i32 %.promoted2395, 7
  br i1 %3261, label %.._crit_edge2398_crit_edge, label %.lr.ph2397

.._crit_edge2398_crit_edge:                       ; preds = %3235
  %.phi.trans.insert2848 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2849 = load i32, ptr %.phi.trans.insert2848, align 8, !tbaa !37
  %3262 = add nsw i32 %.promoted2395, -8
  br label %._crit_edge2398

.lr.ph2397:                                       ; preds = %3235
  %3263 = load ptr, ptr %0, align 8, !tbaa !5
  %3264 = getelementptr inbounds i8, ptr %3263, i64 8
  %3265 = getelementptr inbounds i8, ptr %0, i64 32
  %3266 = getelementptr inbounds i8, ptr %3263, i64 12
  %3267 = getelementptr inbounds i8, ptr %3263, i64 16
  %.promoted2401 = load i32, ptr %3264, align 8, !tbaa !38
  br label %3271

._crit_edge2398:                                  ; preds = %3291, %.._crit_edge2398_crit_edge
  %3268 = phi i32 [ %.pre2849, %.._crit_edge2398_crit_edge ], [ %3281, %3291 ]
  %.lcssa1930 = phi i32 [ %3262, %.._crit_edge2398_crit_edge ], [ %3273, %3291 ]
  %3269 = lshr i32 %3268, %.lcssa1930
  store i32 %.lcssa1930, ptr %3260, align 4, !tbaa !12
  %3270 = and i32 %3269, 255
  %.not1839 = icmp eq i32 %3270, 80
  br i1 %.not1839, label %3293, label %.loopexit

3271:                                             ; preds = %.lr.ph2397, %3291
  %3272 = phi i32 [ %.promoted2401, %.lr.ph2397 ], [ %3284, %3291 ]
  %3273 = phi i32 [ %.promoted2395, %.lr.ph2397 ], [ %3282, %3291 ]
  %3274 = icmp eq i32 %3272, 0
  br i1 %3274, label %.loopexit, label %3275

3275:                                             ; preds = %3271
  %3276 = load i32, ptr %3265, align 8, !tbaa !37
  %3277 = shl i32 %3276, 8
  %3278 = load ptr, ptr %3263, align 8, !tbaa !40
  %3279 = load i8, ptr %3278, align 1, !tbaa !41
  %3280 = zext i8 %3279 to i32
  %3281 = or disjoint i32 %3277, %3280
  store i32 %3281, ptr %3265, align 8, !tbaa !37
  %3282 = add nsw i32 %3273, 8
  store i32 %3282, ptr %3260, align 4, !tbaa !12
  %3283 = getelementptr inbounds i8, ptr %3278, i64 1
  store ptr %3283, ptr %3263, align 8, !tbaa !40
  %3284 = add i32 %3272, -1
  store i32 %3284, ptr %3264, align 8, !tbaa !38
  %3285 = load i32, ptr %3266, align 4, !tbaa !42
  %3286 = add i32 %3285, 1
  store i32 %3286, ptr %3266, align 4, !tbaa !42
  %3287 = icmp eq i32 %3286, 0
  br i1 %3287, label %3288, label %3291

3288:                                             ; preds = %3275
  %3289 = load i32, ptr %3267, align 8, !tbaa !43
  %3290 = add i32 %3289, 1
  store i32 %3290, ptr %3267, align 8, !tbaa !43
  br label %3291

3291:                                             ; preds = %3288, %3275
  %3292 = icmp sgt i32 %3273, -1
  br i1 %3292, label %._crit_edge2398, label %3271

3293:                                             ; preds = %._crit_edge2850, %._crit_edge2398
  %3294 = phi i32 [ %.pre, %._crit_edge2850 ], [ %3236, %._crit_edge2398 ]
  %3295 = phi i32 [ %.pre2651, %._crit_edge2850 ], [ %3237, %._crit_edge2398 ]
  %3296 = phi i32 [ %.pre2653, %._crit_edge2850 ], [ %3238, %._crit_edge2398 ]
  %3297 = phi i32 [ %.pre2655, %._crit_edge2850 ], [ %3239, %._crit_edge2398 ]
  %3298 = phi i32 [ %.pre2657, %._crit_edge2850 ], [ %3240, %._crit_edge2398 ]
  %3299 = phi i32 [ %.pre2659, %._crit_edge2850 ], [ %3241, %._crit_edge2398 ]
  %3300 = phi i32 [ %.pre2661, %._crit_edge2850 ], [ %3242, %._crit_edge2398 ]
  %3301 = phi i32 [ %.pre2663, %._crit_edge2850 ], [ %3243, %._crit_edge2398 ]
  %3302 = phi i32 [ %.pre2665, %._crit_edge2850 ], [ %3244, %._crit_edge2398 ]
  %3303 = phi i32 [ %.pre2667, %._crit_edge2850 ], [ %3245, %._crit_edge2398 ]
  %3304 = phi i32 [ %.pre2669, %._crit_edge2850 ], [ %3246, %._crit_edge2398 ]
  %3305 = phi i32 [ %.pre2671, %._crit_edge2850 ], [ %3247, %._crit_edge2398 ]
  %3306 = phi i32 [ %.pre2673, %._crit_edge2850 ], [ %3248, %._crit_edge2398 ]
  %3307 = phi i32 [ %.pre2675, %._crit_edge2850 ], [ %3249, %._crit_edge2398 ]
  %3308 = phi i32 [ %.pre2677, %._crit_edge2850 ], [ %3250, %._crit_edge2398 ]
  %3309 = phi i32 [ %.pre2679, %._crit_edge2850 ], [ %3251, %._crit_edge2398 ]
  %3310 = phi i32 [ %.pre2681, %._crit_edge2850 ], [ %3252, %._crit_edge2398 ]
  %3311 = phi i32 [ %.pre2683, %._crit_edge2850 ], [ %3253, %._crit_edge2398 ]
  %3312 = phi i32 [ %.pre2685, %._crit_edge2850 ], [ %3254, %._crit_edge2398 ]
  %3313 = phi i32 [ %.pre2687, %._crit_edge2850 ], [ %3255, %._crit_edge2398 ]
  %3314 = phi i32 [ %.pre2689, %._crit_edge2850 ], [ %3256, %._crit_edge2398 ]
  %3315 = phi ptr [ %.pre2691, %._crit_edge2850 ], [ %3257, %._crit_edge2398 ]
  %3316 = phi ptr [ %.pre2693, %._crit_edge2850 ], [ %3258, %._crit_edge2398 ]
  %3317 = phi ptr [ %.pre2695, %._crit_edge2850 ], [ %3259, %._crit_edge2398 ]
  %.promoted2402 = phi i32 [ %.promoted2402.pre, %._crit_edge2850 ], [ %.lcssa1930, %._crit_edge2398 ]
  store i32 46, ptr %4, align 8, !tbaa !11
  %3318 = getelementptr inbounds i8, ptr %0, i64 36
  %3319 = icmp sgt i32 %.promoted2402, 7
  br i1 %3319, label %.._crit_edge2405_crit_edge, label %.lr.ph2404

.._crit_edge2405_crit_edge:                       ; preds = %3293
  %.phi.trans.insert2853 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2854 = load i32, ptr %.phi.trans.insert2853, align 8, !tbaa !37
  %3320 = add nsw i32 %.promoted2402, -8
  br label %._crit_edge2405

.lr.ph2404:                                       ; preds = %3293
  %3321 = load ptr, ptr %0, align 8, !tbaa !5
  %3322 = getelementptr inbounds i8, ptr %3321, i64 8
  %3323 = getelementptr inbounds i8, ptr %0, i64 32
  %3324 = getelementptr inbounds i8, ptr %3321, i64 12
  %3325 = getelementptr inbounds i8, ptr %3321, i64 16
  %.promoted2408 = load i32, ptr %3322, align 8, !tbaa !38
  br label %3329

._crit_edge2405:                                  ; preds = %3349, %.._crit_edge2405_crit_edge
  %3326 = phi i32 [ %.pre2854, %.._crit_edge2405_crit_edge ], [ %3339, %3349 ]
  %.lcssa1926 = phi i32 [ %3320, %.._crit_edge2405_crit_edge ], [ %3331, %3349 ]
  %3327 = lshr i32 %3326, %.lcssa1926
  store i32 %.lcssa1926, ptr %3318, align 4, !tbaa !12
  %3328 = and i32 %3327, 255
  %.not1840 = icmp eq i32 %3328, 144
  br i1 %.not1840, label %3351, label %.loopexit

3329:                                             ; preds = %.lr.ph2404, %3349
  %3330 = phi i32 [ %.promoted2408, %.lr.ph2404 ], [ %3342, %3349 ]
  %3331 = phi i32 [ %.promoted2402, %.lr.ph2404 ], [ %3340, %3349 ]
  %3332 = icmp eq i32 %3330, 0
  br i1 %3332, label %.loopexit, label %3333

3333:                                             ; preds = %3329
  %3334 = load i32, ptr %3323, align 8, !tbaa !37
  %3335 = shl i32 %3334, 8
  %3336 = load ptr, ptr %3321, align 8, !tbaa !40
  %3337 = load i8, ptr %3336, align 1, !tbaa !41
  %3338 = zext i8 %3337 to i32
  %3339 = or disjoint i32 %3335, %3338
  store i32 %3339, ptr %3323, align 8, !tbaa !37
  %3340 = add nsw i32 %3331, 8
  store i32 %3340, ptr %3318, align 4, !tbaa !12
  %3341 = getelementptr inbounds i8, ptr %3336, i64 1
  store ptr %3341, ptr %3321, align 8, !tbaa !40
  %3342 = add i32 %3330, -1
  store i32 %3342, ptr %3322, align 8, !tbaa !38
  %3343 = load i32, ptr %3324, align 4, !tbaa !42
  %3344 = add i32 %3343, 1
  store i32 %3344, ptr %3324, align 4, !tbaa !42
  %3345 = icmp eq i32 %3344, 0
  br i1 %3345, label %3346, label %3349

3346:                                             ; preds = %3333
  %3347 = load i32, ptr %3325, align 8, !tbaa !43
  %3348 = add i32 %3347, 1
  store i32 %3348, ptr %3325, align 8, !tbaa !43
  br label %3349

3349:                                             ; preds = %3346, %3333
  %3350 = icmp sgt i32 %3331, -1
  br i1 %3350, label %._crit_edge2405, label %3329

3351:                                             ; preds = %._crit_edge2405
  %3352 = getelementptr inbounds i8, ptr %0, i64 3180
  store i32 0, ptr %3352, align 4, !tbaa !102
  br label %3353

3353:                                             ; preds = %._crit_edge2855, %3351
  %3354 = phi i32 [ %.pre, %._crit_edge2855 ], [ %3294, %3351 ]
  %3355 = phi i32 [ %.pre2651, %._crit_edge2855 ], [ %3295, %3351 ]
  %3356 = phi i32 [ %.pre2653, %._crit_edge2855 ], [ %3296, %3351 ]
  %3357 = phi i32 [ %.pre2655, %._crit_edge2855 ], [ %3297, %3351 ]
  %3358 = phi i32 [ %.pre2657, %._crit_edge2855 ], [ %3298, %3351 ]
  %3359 = phi i32 [ %.pre2659, %._crit_edge2855 ], [ %3299, %3351 ]
  %3360 = phi i32 [ %.pre2661, %._crit_edge2855 ], [ %3300, %3351 ]
  %3361 = phi i32 [ %.pre2663, %._crit_edge2855 ], [ %3301, %3351 ]
  %3362 = phi i32 [ %.pre2665, %._crit_edge2855 ], [ %3302, %3351 ]
  %3363 = phi i32 [ %.pre2667, %._crit_edge2855 ], [ %3303, %3351 ]
  %3364 = phi i32 [ %.pre2669, %._crit_edge2855 ], [ %3304, %3351 ]
  %3365 = phi i32 [ %.pre2671, %._crit_edge2855 ], [ %3305, %3351 ]
  %3366 = phi i32 [ %.pre2673, %._crit_edge2855 ], [ %3306, %3351 ]
  %3367 = phi i32 [ %.pre2675, %._crit_edge2855 ], [ %3307, %3351 ]
  %3368 = phi i32 [ %.pre2677, %._crit_edge2855 ], [ %3308, %3351 ]
  %3369 = phi i32 [ %.pre2679, %._crit_edge2855 ], [ %3309, %3351 ]
  %3370 = phi i32 [ %.pre2681, %._crit_edge2855 ], [ %3310, %3351 ]
  %3371 = phi i32 [ %.pre2683, %._crit_edge2855 ], [ %3311, %3351 ]
  %3372 = phi i32 [ %.pre2685, %._crit_edge2855 ], [ %3312, %3351 ]
  %3373 = phi i32 [ %.pre2687, %._crit_edge2855 ], [ %3313, %3351 ]
  %3374 = phi i32 [ %.pre2689, %._crit_edge2855 ], [ %3314, %3351 ]
  %3375 = phi ptr [ %.pre2691, %._crit_edge2855 ], [ %3315, %3351 ]
  %3376 = phi ptr [ %.pre2693, %._crit_edge2855 ], [ %3316, %3351 ]
  %3377 = phi ptr [ %.pre2695, %._crit_edge2855 ], [ %3317, %3351 ]
  %.promoted2409 = phi i32 [ %.promoted2409.pre, %._crit_edge2855 ], [ %.lcssa1926, %3351 ]
  store i32 47, ptr %4, align 8, !tbaa !11
  %3378 = getelementptr inbounds i8, ptr %0, i64 36
  %3379 = icmp sgt i32 %.promoted2409, 7
  br i1 %3379, label %.._crit_edge2412_crit_edge, label %.lr.ph2411

.._crit_edge2412_crit_edge:                       ; preds = %3353
  %.phi.trans.insert2858 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2859 = load i32, ptr %.phi.trans.insert2858, align 8, !tbaa !37
  %3380 = add nsw i32 %.promoted2409, -8
  br label %._crit_edge2412

.lr.ph2411:                                       ; preds = %3353
  %3381 = load ptr, ptr %0, align 8, !tbaa !5
  %3382 = getelementptr inbounds i8, ptr %3381, i64 8
  %3383 = getelementptr inbounds i8, ptr %0, i64 32
  %3384 = getelementptr inbounds i8, ptr %3381, i64 12
  %3385 = getelementptr inbounds i8, ptr %3381, i64 16
  %.promoted2415 = load i32, ptr %3382, align 8, !tbaa !38
  br label %3393

._crit_edge2412:                                  ; preds = %3413, %.._crit_edge2412_crit_edge
  %3386 = phi i32 [ %.pre2859, %.._crit_edge2412_crit_edge ], [ %3403, %3413 ]
  %.lcssa1922 = phi i32 [ %3380, %.._crit_edge2412_crit_edge ], [ %3395, %3413 ]
  %3387 = lshr i32 %3386, %.lcssa1922
  store i32 %.lcssa1922, ptr %3378, align 4, !tbaa !12
  %3388 = getelementptr inbounds i8, ptr %0, i64 3180
  %3389 = load i32, ptr %3388, align 4, !tbaa !102
  %3390 = shl i32 %3389, 8
  %3391 = and i32 %3387, 255
  %3392 = or disjoint i32 %3390, %3391
  store i32 %3392, ptr %3388, align 4, !tbaa !102
  br label %3415

3393:                                             ; preds = %.lr.ph2411, %3413
  %3394 = phi i32 [ %.promoted2415, %.lr.ph2411 ], [ %3406, %3413 ]
  %3395 = phi i32 [ %.promoted2409, %.lr.ph2411 ], [ %3404, %3413 ]
  %3396 = icmp eq i32 %3394, 0
  br i1 %3396, label %.loopexit, label %3397

3397:                                             ; preds = %3393
  %3398 = load i32, ptr %3383, align 8, !tbaa !37
  %3399 = shl i32 %3398, 8
  %3400 = load ptr, ptr %3381, align 8, !tbaa !40
  %3401 = load i8, ptr %3400, align 1, !tbaa !41
  %3402 = zext i8 %3401 to i32
  %3403 = or disjoint i32 %3399, %3402
  store i32 %3403, ptr %3383, align 8, !tbaa !37
  %3404 = add nsw i32 %3395, 8
  store i32 %3404, ptr %3378, align 4, !tbaa !12
  %3405 = getelementptr inbounds i8, ptr %3400, i64 1
  store ptr %3405, ptr %3381, align 8, !tbaa !40
  %3406 = add i32 %3394, -1
  store i32 %3406, ptr %3382, align 8, !tbaa !38
  %3407 = load i32, ptr %3384, align 4, !tbaa !42
  %3408 = add i32 %3407, 1
  store i32 %3408, ptr %3384, align 4, !tbaa !42
  %3409 = icmp eq i32 %3408, 0
  br i1 %3409, label %3410, label %3413

3410:                                             ; preds = %3397
  %3411 = load i32, ptr %3385, align 8, !tbaa !43
  %3412 = add i32 %3411, 1
  store i32 %3412, ptr %3385, align 8, !tbaa !43
  br label %3413

3413:                                             ; preds = %3410, %3397
  %3414 = icmp sgt i32 %3395, -1
  br i1 %3414, label %._crit_edge2412, label %3393

3415:                                             ; preds = %._crit_edge2860, %._crit_edge2412
  %3416 = phi i32 [ %.pre, %._crit_edge2860 ], [ %3354, %._crit_edge2412 ]
  %3417 = phi i32 [ %.pre2651, %._crit_edge2860 ], [ %3355, %._crit_edge2412 ]
  %3418 = phi i32 [ %.pre2653, %._crit_edge2860 ], [ %3356, %._crit_edge2412 ]
  %3419 = phi i32 [ %.pre2655, %._crit_edge2860 ], [ %3357, %._crit_edge2412 ]
  %3420 = phi i32 [ %.pre2657, %._crit_edge2860 ], [ %3358, %._crit_edge2412 ]
  %3421 = phi i32 [ %.pre2659, %._crit_edge2860 ], [ %3359, %._crit_edge2412 ]
  %3422 = phi i32 [ %.pre2661, %._crit_edge2860 ], [ %3360, %._crit_edge2412 ]
  %3423 = phi i32 [ %.pre2663, %._crit_edge2860 ], [ %3361, %._crit_edge2412 ]
  %3424 = phi i32 [ %.pre2665, %._crit_edge2860 ], [ %3362, %._crit_edge2412 ]
  %3425 = phi i32 [ %.pre2667, %._crit_edge2860 ], [ %3363, %._crit_edge2412 ]
  %3426 = phi i32 [ %.pre2669, %._crit_edge2860 ], [ %3364, %._crit_edge2412 ]
  %3427 = phi i32 [ %.pre2671, %._crit_edge2860 ], [ %3365, %._crit_edge2412 ]
  %3428 = phi i32 [ %.pre2673, %._crit_edge2860 ], [ %3366, %._crit_edge2412 ]
  %3429 = phi i32 [ %.pre2675, %._crit_edge2860 ], [ %3367, %._crit_edge2412 ]
  %3430 = phi i32 [ %.pre2677, %._crit_edge2860 ], [ %3368, %._crit_edge2412 ]
  %3431 = phi i32 [ %.pre2679, %._crit_edge2860 ], [ %3369, %._crit_edge2412 ]
  %3432 = phi i32 [ %.pre2681, %._crit_edge2860 ], [ %3370, %._crit_edge2412 ]
  %3433 = phi i32 [ %.pre2683, %._crit_edge2860 ], [ %3371, %._crit_edge2412 ]
  %3434 = phi i32 [ %.pre2685, %._crit_edge2860 ], [ %3372, %._crit_edge2412 ]
  %3435 = phi i32 [ %.pre2687, %._crit_edge2860 ], [ %3373, %._crit_edge2412 ]
  %3436 = phi i32 [ %.pre2689, %._crit_edge2860 ], [ %3374, %._crit_edge2412 ]
  %3437 = phi ptr [ %.pre2691, %._crit_edge2860 ], [ %3375, %._crit_edge2412 ]
  %3438 = phi ptr [ %.pre2693, %._crit_edge2860 ], [ %3376, %._crit_edge2412 ]
  %3439 = phi ptr [ %.pre2695, %._crit_edge2860 ], [ %3377, %._crit_edge2412 ]
  %.promoted2416 = phi i32 [ %.promoted2416.pre, %._crit_edge2860 ], [ %.lcssa1922, %._crit_edge2412 ]
  store i32 48, ptr %4, align 8, !tbaa !11
  %3440 = getelementptr inbounds i8, ptr %0, i64 36
  %3441 = icmp sgt i32 %.promoted2416, 7
  br i1 %3441, label %.._crit_edge2419_crit_edge, label %.lr.ph2418

.._crit_edge2419_crit_edge:                       ; preds = %3415
  %.phi.trans.insert2863 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2864 = load i32, ptr %.phi.trans.insert2863, align 8, !tbaa !37
  %3442 = add nsw i32 %.promoted2416, -8
  br label %._crit_edge2419

.lr.ph2418:                                       ; preds = %3415
  %3443 = load ptr, ptr %0, align 8, !tbaa !5
  %3444 = getelementptr inbounds i8, ptr %3443, i64 8
  %3445 = getelementptr inbounds i8, ptr %0, i64 32
  %3446 = getelementptr inbounds i8, ptr %3443, i64 12
  %3447 = getelementptr inbounds i8, ptr %3443, i64 16
  %.promoted2422 = load i32, ptr %3444, align 8, !tbaa !38
  br label %3455

._crit_edge2419:                                  ; preds = %3475, %.._crit_edge2419_crit_edge
  %3448 = phi i32 [ %.pre2864, %.._crit_edge2419_crit_edge ], [ %3465, %3475 ]
  %.lcssa1918 = phi i32 [ %3442, %.._crit_edge2419_crit_edge ], [ %3457, %3475 ]
  %3449 = lshr i32 %3448, %.lcssa1918
  store i32 %.lcssa1918, ptr %3440, align 4, !tbaa !12
  %3450 = getelementptr inbounds i8, ptr %0, i64 3180
  %3451 = load i32, ptr %3450, align 4, !tbaa !102
  %3452 = shl i32 %3451, 8
  %3453 = and i32 %3449, 255
  %3454 = or disjoint i32 %3452, %3453
  store i32 %3454, ptr %3450, align 4, !tbaa !102
  br label %3477

3455:                                             ; preds = %.lr.ph2418, %3475
  %3456 = phi i32 [ %.promoted2422, %.lr.ph2418 ], [ %3468, %3475 ]
  %3457 = phi i32 [ %.promoted2416, %.lr.ph2418 ], [ %3466, %3475 ]
  %3458 = icmp eq i32 %3456, 0
  br i1 %3458, label %.loopexit, label %3459

3459:                                             ; preds = %3455
  %3460 = load i32, ptr %3445, align 8, !tbaa !37
  %3461 = shl i32 %3460, 8
  %3462 = load ptr, ptr %3443, align 8, !tbaa !40
  %3463 = load i8, ptr %3462, align 1, !tbaa !41
  %3464 = zext i8 %3463 to i32
  %3465 = or disjoint i32 %3461, %3464
  store i32 %3465, ptr %3445, align 8, !tbaa !37
  %3466 = add nsw i32 %3457, 8
  store i32 %3466, ptr %3440, align 4, !tbaa !12
  %3467 = getelementptr inbounds i8, ptr %3462, i64 1
  store ptr %3467, ptr %3443, align 8, !tbaa !40
  %3468 = add i32 %3456, -1
  store i32 %3468, ptr %3444, align 8, !tbaa !38
  %3469 = load i32, ptr %3446, align 4, !tbaa !42
  %3470 = add i32 %3469, 1
  store i32 %3470, ptr %3446, align 4, !tbaa !42
  %3471 = icmp eq i32 %3470, 0
  br i1 %3471, label %3472, label %3475

3472:                                             ; preds = %3459
  %3473 = load i32, ptr %3447, align 8, !tbaa !43
  %3474 = add i32 %3473, 1
  store i32 %3474, ptr %3447, align 8, !tbaa !43
  br label %3475

3475:                                             ; preds = %3472, %3459
  %3476 = icmp sgt i32 %3457, -1
  br i1 %3476, label %._crit_edge2419, label %3455

3477:                                             ; preds = %._crit_edge2865, %._crit_edge2419
  %3478 = phi i32 [ %.pre, %._crit_edge2865 ], [ %3416, %._crit_edge2419 ]
  %3479 = phi i32 [ %.pre2651, %._crit_edge2865 ], [ %3417, %._crit_edge2419 ]
  %3480 = phi i32 [ %.pre2653, %._crit_edge2865 ], [ %3418, %._crit_edge2419 ]
  %3481 = phi i32 [ %.pre2655, %._crit_edge2865 ], [ %3419, %._crit_edge2419 ]
  %3482 = phi i32 [ %.pre2657, %._crit_edge2865 ], [ %3420, %._crit_edge2419 ]
  %3483 = phi i32 [ %.pre2659, %._crit_edge2865 ], [ %3421, %._crit_edge2419 ]
  %3484 = phi i32 [ %.pre2661, %._crit_edge2865 ], [ %3422, %._crit_edge2419 ]
  %3485 = phi i32 [ %.pre2663, %._crit_edge2865 ], [ %3423, %._crit_edge2419 ]
  %3486 = phi i32 [ %.pre2665, %._crit_edge2865 ], [ %3424, %._crit_edge2419 ]
  %3487 = phi i32 [ %.pre2667, %._crit_edge2865 ], [ %3425, %._crit_edge2419 ]
  %3488 = phi i32 [ %.pre2669, %._crit_edge2865 ], [ %3426, %._crit_edge2419 ]
  %3489 = phi i32 [ %.pre2671, %._crit_edge2865 ], [ %3427, %._crit_edge2419 ]
  %3490 = phi i32 [ %.pre2673, %._crit_edge2865 ], [ %3428, %._crit_edge2419 ]
  %3491 = phi i32 [ %.pre2675, %._crit_edge2865 ], [ %3429, %._crit_edge2419 ]
  %3492 = phi i32 [ %.pre2677, %._crit_edge2865 ], [ %3430, %._crit_edge2419 ]
  %3493 = phi i32 [ %.pre2679, %._crit_edge2865 ], [ %3431, %._crit_edge2419 ]
  %3494 = phi i32 [ %.pre2681, %._crit_edge2865 ], [ %3432, %._crit_edge2419 ]
  %3495 = phi i32 [ %.pre2683, %._crit_edge2865 ], [ %3433, %._crit_edge2419 ]
  %3496 = phi i32 [ %.pre2685, %._crit_edge2865 ], [ %3434, %._crit_edge2419 ]
  %3497 = phi i32 [ %.pre2687, %._crit_edge2865 ], [ %3435, %._crit_edge2419 ]
  %3498 = phi i32 [ %.pre2689, %._crit_edge2865 ], [ %3436, %._crit_edge2419 ]
  %3499 = phi ptr [ %.pre2691, %._crit_edge2865 ], [ %3437, %._crit_edge2419 ]
  %3500 = phi ptr [ %.pre2693, %._crit_edge2865 ], [ %3438, %._crit_edge2419 ]
  %3501 = phi ptr [ %.pre2695, %._crit_edge2865 ], [ %3439, %._crit_edge2419 ]
  %.promoted2423 = phi i32 [ %.promoted2423.pre, %._crit_edge2865 ], [ %.lcssa1918, %._crit_edge2419 ]
  store i32 49, ptr %4, align 8, !tbaa !11
  %3502 = getelementptr inbounds i8, ptr %0, i64 36
  %3503 = icmp sgt i32 %.promoted2423, 7
  br i1 %3503, label %.._crit_edge2426_crit_edge, label %.lr.ph2425

.._crit_edge2426_crit_edge:                       ; preds = %3477
  %.phi.trans.insert2868 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2869 = load i32, ptr %.phi.trans.insert2868, align 8, !tbaa !37
  %3504 = add nsw i32 %.promoted2423, -8
  br label %._crit_edge2426

.lr.ph2425:                                       ; preds = %3477
  %3505 = load ptr, ptr %0, align 8, !tbaa !5
  %3506 = getelementptr inbounds i8, ptr %3505, i64 8
  %3507 = getelementptr inbounds i8, ptr %0, i64 32
  %3508 = getelementptr inbounds i8, ptr %3505, i64 12
  %3509 = getelementptr inbounds i8, ptr %3505, i64 16
  %.promoted2429 = load i32, ptr %3506, align 8, !tbaa !38
  br label %3517

._crit_edge2426:                                  ; preds = %3537, %.._crit_edge2426_crit_edge
  %3510 = phi i32 [ %.pre2869, %.._crit_edge2426_crit_edge ], [ %3527, %3537 ]
  %.lcssa1914 = phi i32 [ %3504, %.._crit_edge2426_crit_edge ], [ %3519, %3537 ]
  %3511 = lshr i32 %3510, %.lcssa1914
  store i32 %.lcssa1914, ptr %3502, align 4, !tbaa !12
  %3512 = getelementptr inbounds i8, ptr %0, i64 3180
  %3513 = load i32, ptr %3512, align 4, !tbaa !102
  %3514 = shl i32 %3513, 8
  %3515 = and i32 %3511, 255
  %3516 = or disjoint i32 %3514, %3515
  store i32 %3516, ptr %3512, align 4, !tbaa !102
  br label %3539

3517:                                             ; preds = %.lr.ph2425, %3537
  %3518 = phi i32 [ %.promoted2429, %.lr.ph2425 ], [ %3530, %3537 ]
  %3519 = phi i32 [ %.promoted2423, %.lr.ph2425 ], [ %3528, %3537 ]
  %3520 = icmp eq i32 %3518, 0
  br i1 %3520, label %.loopexit, label %3521

3521:                                             ; preds = %3517
  %3522 = load i32, ptr %3507, align 8, !tbaa !37
  %3523 = shl i32 %3522, 8
  %3524 = load ptr, ptr %3505, align 8, !tbaa !40
  %3525 = load i8, ptr %3524, align 1, !tbaa !41
  %3526 = zext i8 %3525 to i32
  %3527 = or disjoint i32 %3523, %3526
  store i32 %3527, ptr %3507, align 8, !tbaa !37
  %3528 = add nsw i32 %3519, 8
  store i32 %3528, ptr %3502, align 4, !tbaa !12
  %3529 = getelementptr inbounds i8, ptr %3524, i64 1
  store ptr %3529, ptr %3505, align 8, !tbaa !40
  %3530 = add i32 %3518, -1
  store i32 %3530, ptr %3506, align 8, !tbaa !38
  %3531 = load i32, ptr %3508, align 4, !tbaa !42
  %3532 = add i32 %3531, 1
  store i32 %3532, ptr %3508, align 4, !tbaa !42
  %3533 = icmp eq i32 %3532, 0
  br i1 %3533, label %3534, label %3537

3534:                                             ; preds = %3521
  %3535 = load i32, ptr %3509, align 8, !tbaa !43
  %3536 = add i32 %3535, 1
  store i32 %3536, ptr %3509, align 8, !tbaa !43
  br label %3537

3537:                                             ; preds = %3534, %3521
  %3538 = icmp sgt i32 %3519, -1
  br i1 %3538, label %._crit_edge2426, label %3517

3539:                                             ; preds = %._crit_edge2870, %._crit_edge2426
  %3540 = phi i32 [ %.pre, %._crit_edge2870 ], [ %3478, %._crit_edge2426 ]
  %3541 = phi i32 [ %.pre2651, %._crit_edge2870 ], [ %3479, %._crit_edge2426 ]
  %3542 = phi i32 [ %.pre2653, %._crit_edge2870 ], [ %3480, %._crit_edge2426 ]
  %3543 = phi i32 [ %.pre2655, %._crit_edge2870 ], [ %3481, %._crit_edge2426 ]
  %3544 = phi i32 [ %.pre2657, %._crit_edge2870 ], [ %3482, %._crit_edge2426 ]
  %3545 = phi i32 [ %.pre2659, %._crit_edge2870 ], [ %3483, %._crit_edge2426 ]
  %3546 = phi i32 [ %.pre2661, %._crit_edge2870 ], [ %3484, %._crit_edge2426 ]
  %3547 = phi i32 [ %.pre2663, %._crit_edge2870 ], [ %3485, %._crit_edge2426 ]
  %3548 = phi i32 [ %.pre2665, %._crit_edge2870 ], [ %3486, %._crit_edge2426 ]
  %3549 = phi i32 [ %.pre2667, %._crit_edge2870 ], [ %3487, %._crit_edge2426 ]
  %3550 = phi i32 [ %.pre2669, %._crit_edge2870 ], [ %3488, %._crit_edge2426 ]
  %3551 = phi i32 [ %.pre2671, %._crit_edge2870 ], [ %3489, %._crit_edge2426 ]
  %3552 = phi i32 [ %.pre2673, %._crit_edge2870 ], [ %3490, %._crit_edge2426 ]
  %3553 = phi i32 [ %.pre2675, %._crit_edge2870 ], [ %3491, %._crit_edge2426 ]
  %3554 = phi i32 [ %.pre2677, %._crit_edge2870 ], [ %3492, %._crit_edge2426 ]
  %3555 = phi i32 [ %.pre2679, %._crit_edge2870 ], [ %3493, %._crit_edge2426 ]
  %3556 = phi i32 [ %.pre2681, %._crit_edge2870 ], [ %3494, %._crit_edge2426 ]
  %3557 = phi i32 [ %.pre2683, %._crit_edge2870 ], [ %3495, %._crit_edge2426 ]
  %3558 = phi i32 [ %.pre2685, %._crit_edge2870 ], [ %3496, %._crit_edge2426 ]
  %3559 = phi i32 [ %.pre2687, %._crit_edge2870 ], [ %3497, %._crit_edge2426 ]
  %3560 = phi i32 [ %.pre2689, %._crit_edge2870 ], [ %3498, %._crit_edge2426 ]
  %3561 = phi ptr [ %.pre2691, %._crit_edge2870 ], [ %3499, %._crit_edge2426 ]
  %3562 = phi ptr [ %.pre2693, %._crit_edge2870 ], [ %3500, %._crit_edge2426 ]
  %3563 = phi ptr [ %.pre2695, %._crit_edge2870 ], [ %3501, %._crit_edge2426 ]
  %.promoted2430 = phi i32 [ %.promoted2430.pre, %._crit_edge2870 ], [ %.lcssa1914, %._crit_edge2426 ]
  store i32 50, ptr %4, align 8, !tbaa !11
  %3564 = getelementptr inbounds i8, ptr %0, i64 36
  %3565 = icmp sgt i32 %.promoted2430, 7
  br i1 %3565, label %.._crit_edge2433_crit_edge, label %.lr.ph2432

.._crit_edge2433_crit_edge:                       ; preds = %3539
  %.phi.trans.insert2873 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2874 = load i32, ptr %.phi.trans.insert2873, align 8, !tbaa !37
  %3566 = add nsw i32 %.promoted2430, -8
  br label %._crit_edge2433

.lr.ph2432:                                       ; preds = %3539
  %3567 = load ptr, ptr %0, align 8, !tbaa !5
  %3568 = getelementptr inbounds i8, ptr %3567, i64 8
  %3569 = getelementptr inbounds i8, ptr %0, i64 32
  %3570 = getelementptr inbounds i8, ptr %3567, i64 12
  %3571 = getelementptr inbounds i8, ptr %3567, i64 16
  %.promoted2436 = load i32, ptr %3568, align 8, !tbaa !38
  br label %3579

._crit_edge2433:                                  ; preds = %3599, %.._crit_edge2433_crit_edge
  %3572 = phi i32 [ %.pre2874, %.._crit_edge2433_crit_edge ], [ %3589, %3599 ]
  %.lcssa = phi i32 [ %3566, %.._crit_edge2433_crit_edge ], [ %3581, %3599 ]
  %3573 = lshr i32 %3572, %.lcssa
  store i32 %.lcssa, ptr %3564, align 4, !tbaa !12
  %3574 = getelementptr inbounds i8, ptr %0, i64 3180
  %3575 = load i32, ptr %3574, align 4, !tbaa !102
  %3576 = shl i32 %3575, 8
  %3577 = and i32 %3573, 255
  %3578 = or disjoint i32 %3576, %3577
  store i32 %3578, ptr %3574, align 4, !tbaa !102
  store i32 1, ptr %4, align 8, !tbaa !11
  br label %.loopexit

3579:                                             ; preds = %.lr.ph2432, %3599
  %3580 = phi i32 [ %.promoted2436, %.lr.ph2432 ], [ %3592, %3599 ]
  %3581 = phi i32 [ %.promoted2430, %.lr.ph2432 ], [ %3590, %3599 ]
  %3582 = icmp eq i32 %3580, 0
  br i1 %3582, label %.loopexit, label %3583

3583:                                             ; preds = %3579
  %3584 = load i32, ptr %3569, align 8, !tbaa !37
  %3585 = shl i32 %3584, 8
  %3586 = load ptr, ptr %3567, align 8, !tbaa !40
  %3587 = load i8, ptr %3586, align 1, !tbaa !41
  %3588 = zext i8 %3587 to i32
  %3589 = or disjoint i32 %3585, %3588
  store i32 %3589, ptr %3569, align 8, !tbaa !37
  %3590 = add nsw i32 %3581, 8
  store i32 %3590, ptr %3564, align 4, !tbaa !12
  %3591 = getelementptr inbounds i8, ptr %3586, i64 1
  store ptr %3591, ptr %3567, align 8, !tbaa !40
  %3592 = add i32 %3580, -1
  store i32 %3592, ptr %3568, align 8, !tbaa !38
  %3593 = load i32, ptr %3570, align 4, !tbaa !42
  %3594 = add i32 %3593, 1
  store i32 %3594, ptr %3570, align 4, !tbaa !42
  %3595 = icmp eq i32 %3594, 0
  br i1 %3595, label %3596, label %3599

3596:                                             ; preds = %3583
  %3597 = load i32, ptr %3571, align 8, !tbaa !43
  %3598 = add i32 %3597, 1
  store i32 %3598, ptr %3571, align 8, !tbaa !43
  br label %3599

3599:                                             ; preds = %3596, %3583
  %3600 = icmp sgt i32 %3581, -1
  br i1 %3600, label %._crit_edge2433, label %3579

3601:                                             ; preds = %10
  tail call void @BZ2_bz__AssertH__fail(i32 noundef 4001)
  tail call void @BZ2_bz__AssertH__fail(i32 noundef 4002)
  br label %.loopexit

.loopexit.loopexit2454:                           ; preds = %.preheader1866.3, %.preheader1866.2, %.preheader1866.1, %.preheader1866
  %indvars.iv2627.lcssa = phi i64 [ %indvars.iv2627, %.preheader1866 ], [ %indvars.iv.next2628, %.preheader1866.1 ], [ %indvars.iv.next2628.1, %.preheader1866.2 ], [ %indvars.iv.next2628.2, %.preheader1866.3 ]
  %3602 = trunc nuw nsw i64 %indvars.iv2627.lcssa to i32
  br label %.loopexit

.loopexit:                                        ; preds = %19, %76, %133, %192, %276, %334, %392, %450, %508, %566, %633, %695, %757, %819, %880, %942, %1004, %1067, %1361, %1416, %1909, %2453, %2498, %2030, %2132, %2138, %2075, %1960, %1650, %1740, %1792, %1495, %1473, %1268, %1160, %3097, %3155, %3213, %3271, %3329, %3393, %3455, %3517, %3579, %.loopexit.loopexit2454, %._crit_edge2405, %._crit_edge2398, %._crit_edge2391, %._crit_edge2384, %._crit_edge2377, %2965, %2959, %3054, %3040, %2528, %2520, %2474, %2420, %2146, %2097, %2051, %1997, %1982, %1930, %1874, %1691, %._crit_edge2214, %._crit_edge2207, %._crit_edge2207, %._crit_edge2207, %1322, %1089, %._crit_edge2199, %._crit_edge2143, %._crit_edge2136, %._crit_edge2129, %._crit_edge2122, %._crit_edge2115, %._crit_edge2108, %236, %222, %._crit_edge2101, %._crit_edge2094, %._crit_edge2087, %._crit_edge, %3601, %._crit_edge2433
  %3603 = phi i32 [ %.pre2679, %3601 ], [ %3555, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %57, %._crit_edge2087 ], [ %114, %._crit_edge2094 ], [ %171, %._crit_edge2101 ], [ %171, %222 ], [ %171, %236 ], [ %257, %._crit_edge2108 ], [ %314, %._crit_edge2115 ], [ %372, %._crit_edge2122 ], [ %430, %._crit_edge2129 ], [ %488, %._crit_edge2136 ], [ %546, %._crit_edge2143 ], [ %1042, %._crit_edge2199 ], [ %1042, %1089 ], [ %1195, %1322 ], [ %1341, %._crit_edge2207 ], [ %1341, %._crit_edge2207 ], [ %1341, %._crit_edge2207 ], [ %1395, %._crit_edge2214 ], [ %1700, %1691 ], [ %1604, %1874 ], [ %1934, %1930 ], [ %1934, %1982 ], [ %1994, %1997 ], [ %2052, %2051 ], [ %2052, %2097 ], [ %1990, %2146 ], [ %1990, %2420 ], [ %2475, %2474 ], [ %2475, %2520 ], [ %1990, %2528 ], [ %1990, %3040 ], [ %1990, %3054 ], [ %1990, %2959 ], [ %1990, %2965 ], [ %3077, %._crit_edge2377 ], [ %3135, %._crit_edge2384 ], [ %3193, %._crit_edge2391 ], [ %3251, %._crit_edge2398 ], [ %3309, %._crit_edge2405 ], [ %1990, %.loopexit.loopexit2454 ], [ %3555, %3579 ], [ %3493, %3517 ], [ %3431, %3455 ], [ %3369, %3393 ], [ %3309, %3329 ], [ %3251, %3271 ], [ %3193, %3213 ], [ %3135, %3155 ], [ %3077, %3097 ], [ %1136, %1160 ], [ %1248, %1268 ], [ %.ph3349, %1473 ], [ %.ph3349, %1495 ], [ %1771, %1792 ], [ %1719, %1740 ], [ %1630, %1650 ], [ %1946, %1960 ], [ %2061, %2075 ], [ %2052, %2138 ], [ %2052, %2132 ], [ %2018, %2030 ], [ %2484, %2498 ], [ %2441, %2453 ], [ %1895, %1909 ], [ %1395, %1416 ], [ %1341, %1361 ], [ %1042, %1067 ], [ %980, %1004 ], [ %918, %942 ], [ %857, %880 ], [ %795, %819 ], [ %733, %757 ], [ %671, %695 ], [ %609, %633 ], [ %546, %566 ], [ %488, %508 ], [ %430, %450 ], [ %372, %392 ], [ %314, %334 ], [ %257, %276 ], [ %171, %192 ], [ %114, %133 ], [ %57, %76 ], [ 0, %19 ]
  %.141733 = phi ptr [ %.pre2695, %3601 ], [ %3563, %._crit_edge2433 ], [ null, %._crit_edge ], [ %65, %._crit_edge2087 ], [ %122, %._crit_edge2094 ], [ %179, %._crit_edge2101 ], [ %179, %222 ], [ %179, %236 ], [ %265, %._crit_edge2108 ], [ %322, %._crit_edge2115 ], [ %380, %._crit_edge2122 ], [ %438, %._crit_edge2129 ], [ %496, %._crit_edge2136 ], [ %554, %._crit_edge2143 ], [ %1050, %._crit_edge2199 ], [ %1050, %1089 ], [ %1203, %1322 ], [ %1349, %._crit_edge2207 ], [ %1349, %._crit_edge2207 ], [ %1349, %._crit_edge2207 ], [ %1403, %._crit_edge2214 ], [ %1708, %1691 ], [ %1612, %1874 ], [ %.21721, %1930 ], [ %.21721, %1982 ], [ %.51724, %1997 ], [ %.81727, %2051 ], [ %.81727, %2097 ], [ %.41723, %2146 ], [ %.41723, %2420 ], [ %.121731, %2474 ], [ %.121731, %2520 ], [ %.41723, %2528 ], [ %.41723, %3040 ], [ %.41723, %3054 ], [ %.41723, %2959 ], [ %.41723, %2965 ], [ %3085, %._crit_edge2377 ], [ %3143, %._crit_edge2384 ], [ %3201, %._crit_edge2391 ], [ %3259, %._crit_edge2398 ], [ %3317, %._crit_edge2405 ], [ %.41723, %.loopexit.loopexit2454 ], [ %3563, %3579 ], [ %3501, %3517 ], [ %3439, %3455 ], [ %3377, %3393 ], [ %3317, %3329 ], [ %3259, %3271 ], [ %3201, %3213 ], [ %3143, %3155 ], [ %3085, %3097 ], [ %1144, %1160 ], [ %1256, %1268 ], [ %.ph3357, %1473 ], [ %.ph3357, %1495 ], [ %1779, %1792 ], [ %1727, %1740 ], [ %1638, %1650 ], [ %.31722, %1960 ], [ %.91728, %2075 ], [ %.81727, %2138 ], [ %.81727, %2132 ], [ %.71726, %2030 ], [ %.131732, %2498 ], [ %.111730, %2453 ], [ %.11720, %1909 ], [ %1403, %1416 ], [ %1349, %1361 ], [ %1050, %1067 ], [ %988, %1004 ], [ %926, %942 ], [ %865, %880 ], [ %803, %819 ], [ %741, %757 ], [ %679, %695 ], [ %617, %633 ], [ %554, %566 ], [ %496, %508 ], [ %438, %450 ], [ %380, %392 ], [ %322, %334 ], [ %265, %276 ], [ %179, %192 ], [ %122, %133 ], [ %65, %76 ], [ null, %19 ]
  %.141718 = phi ptr [ %.pre2693, %3601 ], [ %3562, %._crit_edge2433 ], [ null, %._crit_edge ], [ %64, %._crit_edge2087 ], [ %121, %._crit_edge2094 ], [ %178, %._crit_edge2101 ], [ %178, %222 ], [ %178, %236 ], [ %264, %._crit_edge2108 ], [ %321, %._crit_edge2115 ], [ %379, %._crit_edge2122 ], [ %437, %._crit_edge2129 ], [ %495, %._crit_edge2136 ], [ %553, %._crit_edge2143 ], [ %1049, %._crit_edge2199 ], [ %1049, %1089 ], [ %1202, %1322 ], [ %1348, %._crit_edge2207 ], [ %1348, %._crit_edge2207 ], [ %1348, %._crit_edge2207 ], [ %1402, %._crit_edge2214 ], [ %1707, %1691 ], [ %1611, %1874 ], [ %.21706, %1930 ], [ %.21706, %1982 ], [ %.51709, %1997 ], [ %.81712, %2051 ], [ %.81712, %2097 ], [ %.41708, %2146 ], [ %.41708, %2420 ], [ %.121716, %2474 ], [ %.121716, %2520 ], [ %.41708, %2528 ], [ %.41708, %3040 ], [ %.41708, %3054 ], [ %.41708, %2959 ], [ %.41708, %2965 ], [ %3084, %._crit_edge2377 ], [ %3142, %._crit_edge2384 ], [ %3200, %._crit_edge2391 ], [ %3258, %._crit_edge2398 ], [ %3316, %._crit_edge2405 ], [ %.41708, %.loopexit.loopexit2454 ], [ %3562, %3579 ], [ %3500, %3517 ], [ %3438, %3455 ], [ %3376, %3393 ], [ %3316, %3329 ], [ %3258, %3271 ], [ %3200, %3213 ], [ %3142, %3155 ], [ %3084, %3097 ], [ %1143, %1160 ], [ %1255, %1268 ], [ %.ph3356, %1473 ], [ %.ph3356, %1495 ], [ %1778, %1792 ], [ %1726, %1740 ], [ %1637, %1650 ], [ %.31707, %1960 ], [ %.91713, %2075 ], [ %.81712, %2138 ], [ %.81712, %2132 ], [ %.71711, %2030 ], [ %.131717, %2498 ], [ %.111715, %2453 ], [ %.11705, %1909 ], [ %1402, %1416 ], [ %1348, %1361 ], [ %1049, %1067 ], [ %987, %1004 ], [ %925, %942 ], [ %864, %880 ], [ %802, %819 ], [ %740, %757 ], [ %678, %695 ], [ %616, %633 ], [ %553, %566 ], [ %495, %508 ], [ %437, %450 ], [ %379, %392 ], [ %321, %334 ], [ %264, %276 ], [ %178, %192 ], [ %121, %133 ], [ %64, %76 ], [ null, %19 ]
  %.141703 = phi ptr [ %.pre2691, %3601 ], [ %3561, %._crit_edge2433 ], [ null, %._crit_edge ], [ %63, %._crit_edge2087 ], [ %120, %._crit_edge2094 ], [ %177, %._crit_edge2101 ], [ %177, %222 ], [ %177, %236 ], [ %263, %._crit_edge2108 ], [ %320, %._crit_edge2115 ], [ %378, %._crit_edge2122 ], [ %436, %._crit_edge2129 ], [ %494, %._crit_edge2136 ], [ %552, %._crit_edge2143 ], [ %1048, %._crit_edge2199 ], [ %1048, %1089 ], [ %1201, %1322 ], [ %1347, %._crit_edge2207 ], [ %1347, %._crit_edge2207 ], [ %1347, %._crit_edge2207 ], [ %1401, %._crit_edge2214 ], [ %1706, %1691 ], [ %1610, %1874 ], [ %.21691, %1930 ], [ %.21691, %1982 ], [ %.51694, %1997 ], [ %.81697, %2051 ], [ %.81697, %2097 ], [ %.41693, %2146 ], [ %.41693, %2420 ], [ %.121701, %2474 ], [ %.121701, %2520 ], [ %.41693, %2528 ], [ %.41693, %3040 ], [ %.41693, %3054 ], [ %.41693, %2959 ], [ %.41693, %2965 ], [ %3083, %._crit_edge2377 ], [ %3141, %._crit_edge2384 ], [ %3199, %._crit_edge2391 ], [ %3257, %._crit_edge2398 ], [ %3315, %._crit_edge2405 ], [ %.41693, %.loopexit.loopexit2454 ], [ %3561, %3579 ], [ %3499, %3517 ], [ %3437, %3455 ], [ %3375, %3393 ], [ %3315, %3329 ], [ %3257, %3271 ], [ %3199, %3213 ], [ %3141, %3155 ], [ %3083, %3097 ], [ %1142, %1160 ], [ %1254, %1268 ], [ %.ph3355, %1473 ], [ %.ph3355, %1495 ], [ %1777, %1792 ], [ %1725, %1740 ], [ %1636, %1650 ], [ %.31692, %1960 ], [ %.91698, %2075 ], [ %.81697, %2138 ], [ %.81697, %2132 ], [ %.71696, %2030 ], [ %.131702, %2498 ], [ %.111700, %2453 ], [ %.11690, %1909 ], [ %1401, %1416 ], [ %1347, %1361 ], [ %1048, %1067 ], [ %986, %1004 ], [ %924, %942 ], [ %863, %880 ], [ %801, %819 ], [ %739, %757 ], [ %677, %695 ], [ %615, %633 ], [ %552, %566 ], [ %494, %508 ], [ %436, %450 ], [ %378, %392 ], [ %320, %334 ], [ %263, %276 ], [ %177, %192 ], [ %120, %133 ], [ %63, %76 ], [ null, %19 ]
  %.141688 = phi i32 [ %.pre2689, %3601 ], [ %3560, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %62, %._crit_edge2087 ], [ %119, %._crit_edge2094 ], [ %176, %._crit_edge2101 ], [ %176, %222 ], [ %176, %236 ], [ %262, %._crit_edge2108 ], [ %319, %._crit_edge2115 ], [ %377, %._crit_edge2122 ], [ %435, %._crit_edge2129 ], [ %493, %._crit_edge2136 ], [ %551, %._crit_edge2143 ], [ %1047, %._crit_edge2199 ], [ %1047, %1089 ], [ %1200, %1322 ], [ %1346, %._crit_edge2207 ], [ %1346, %._crit_edge2207 ], [ %1346, %._crit_edge2207 ], [ %1400, %._crit_edge2214 ], [ %1705, %1691 ], [ %1609, %1874 ], [ %.21676, %1930 ], [ %.21676, %1982 ], [ %.51679, %1997 ], [ %.81682, %2051 ], [ %.81682, %2097 ], [ %.41678, %2146 ], [ %.41678, %2420 ], [ %.121686, %2474 ], [ %.121686, %2520 ], [ %.41678, %2528 ], [ %.41678, %3040 ], [ %.41678, %3054 ], [ %.41678, %2959 ], [ %.41678, %2965 ], [ %3082, %._crit_edge2377 ], [ %3140, %._crit_edge2384 ], [ %3198, %._crit_edge2391 ], [ %3256, %._crit_edge2398 ], [ %3314, %._crit_edge2405 ], [ %.41678, %.loopexit.loopexit2454 ], [ %3560, %3579 ], [ %3498, %3517 ], [ %3436, %3455 ], [ %3374, %3393 ], [ %3314, %3329 ], [ %3256, %3271 ], [ %3198, %3213 ], [ %3140, %3155 ], [ %3082, %3097 ], [ %1141, %1160 ], [ %1253, %1268 ], [ %.ph3354, %1473 ], [ %.ph3354, %1495 ], [ %1776, %1792 ], [ %1724, %1740 ], [ %1635, %1650 ], [ %.31677, %1960 ], [ %.91683, %2075 ], [ %.81682, %2138 ], [ %.81682, %2132 ], [ %.71681, %2030 ], [ %.131687, %2498 ], [ %.111685, %2453 ], [ %.11675, %1909 ], [ %1400, %1416 ], [ %1346, %1361 ], [ %1047, %1067 ], [ %985, %1004 ], [ %923, %942 ], [ %862, %880 ], [ %800, %819 ], [ %738, %757 ], [ %676, %695 ], [ %614, %633 ], [ %551, %566 ], [ %493, %508 ], [ %435, %450 ], [ %377, %392 ], [ %319, %334 ], [ %262, %276 ], [ %176, %192 ], [ %119, %133 ], [ %62, %76 ], [ 0, %19 ]
  %.141673 = phi i32 [ %.pre2687, %3601 ], [ %3559, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %61, %._crit_edge2087 ], [ %118, %._crit_edge2094 ], [ %175, %._crit_edge2101 ], [ %175, %222 ], [ %175, %236 ], [ %261, %._crit_edge2108 ], [ %318, %._crit_edge2115 ], [ %376, %._crit_edge2122 ], [ %434, %._crit_edge2129 ], [ %492, %._crit_edge2136 ], [ %550, %._crit_edge2143 ], [ %1046, %._crit_edge2199 ], [ %1046, %1089 ], [ %1199, %1322 ], [ %1345, %._crit_edge2207 ], [ %1345, %._crit_edge2207 ], [ %1345, %._crit_edge2207 ], [ %1399, %._crit_edge2214 ], [ %1704, %1691 ], [ %1608, %1874 ], [ %.21661, %1930 ], [ %.21661, %1982 ], [ %.51664, %1997 ], [ %.81667, %2051 ], [ %.81667, %2097 ], [ %.41663, %2146 ], [ %.41663, %2420 ], [ %.121671, %2474 ], [ %.121671, %2520 ], [ %.41663, %2528 ], [ %.41663, %3040 ], [ %.41663, %3054 ], [ %.41663, %2959 ], [ %.41663, %2965 ], [ %3081, %._crit_edge2377 ], [ %3139, %._crit_edge2384 ], [ %3197, %._crit_edge2391 ], [ %3255, %._crit_edge2398 ], [ %3313, %._crit_edge2405 ], [ %.41663, %.loopexit.loopexit2454 ], [ %3559, %3579 ], [ %3497, %3517 ], [ %3435, %3455 ], [ %3373, %3393 ], [ %3313, %3329 ], [ %3255, %3271 ], [ %3197, %3213 ], [ %3139, %3155 ], [ %3081, %3097 ], [ %1140, %1160 ], [ %1252, %1268 ], [ %.ph3353, %1473 ], [ %.ph3353, %1495 ], [ %1775, %1792 ], [ %1723, %1740 ], [ %1634, %1650 ], [ %.31662, %1960 ], [ %.91668, %2075 ], [ %.81667, %2138 ], [ %.81667, %2132 ], [ %.71666, %2030 ], [ %.131672, %2498 ], [ %.111670, %2453 ], [ %.11660, %1909 ], [ %1399, %1416 ], [ %1345, %1361 ], [ %1046, %1067 ], [ %984, %1004 ], [ %922, %942 ], [ %861, %880 ], [ %799, %819 ], [ %737, %757 ], [ %675, %695 ], [ %613, %633 ], [ %550, %566 ], [ %492, %508 ], [ %434, %450 ], [ %376, %392 ], [ %318, %334 ], [ %261, %276 ], [ %175, %192 ], [ %118, %133 ], [ %61, %76 ], [ 0, %19 ]
  %.101658 = phi i32 [ %.pre2685, %3601 ], [ %3558, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %60, %._crit_edge2087 ], [ %117, %._crit_edge2094 ], [ %174, %._crit_edge2101 ], [ %174, %222 ], [ %174, %236 ], [ %260, %._crit_edge2108 ], [ %317, %._crit_edge2115 ], [ %375, %._crit_edge2122 ], [ %433, %._crit_edge2129 ], [ %491, %._crit_edge2136 ], [ %549, %._crit_edge2143 ], [ %1045, %._crit_edge2199 ], [ %1045, %1089 ], [ %1198, %1322 ], [ %1344, %._crit_edge2207 ], [ %1344, %._crit_edge2207 ], [ %1344, %._crit_edge2207 ], [ %1398, %._crit_edge2214 ], [ %1703, %1691 ], [ %1607, %1874 ], [ %.01648, %1930 ], [ %.01648, %1982 ], [ %.31651, %1997 ], [ %.51653, %2051 ], [ %.51653, %2097 ], [ %.21650, %2146 ], [ %.21650, %2420 ], [ %.81656, %2474 ], [ %.81656, %2520 ], [ %.21650, %2528 ], [ %.21650, %3040 ], [ %.21650, %3054 ], [ %.21650, %2959 ], [ %.21650, %2965 ], [ %3080, %._crit_edge2377 ], [ %3138, %._crit_edge2384 ], [ %3196, %._crit_edge2391 ], [ %3254, %._crit_edge2398 ], [ %3312, %._crit_edge2405 ], [ %.21650, %.loopexit.loopexit2454 ], [ %3558, %3579 ], [ %3496, %3517 ], [ %3434, %3455 ], [ %3372, %3393 ], [ %3312, %3329 ], [ %3254, %3271 ], [ %3196, %3213 ], [ %3138, %3155 ], [ %3080, %3097 ], [ %1139, %1160 ], [ %1251, %1268 ], [ %.ph3352, %1473 ], [ %.ph3352, %1495 ], [ %1774, %1792 ], [ %1722, %1740 ], [ %1633, %1650 ], [ %.11649, %1960 ], [ %.61654, %2075 ], [ %.51653, %2138 ], [ %.51653, %2132 ], [ %.41652, %2030 ], [ %.91657, %2498 ], [ %.71655, %2453 ], [ %1897, %1909 ], [ %1398, %1416 ], [ %1344, %1361 ], [ %1045, %1067 ], [ %983, %1004 ], [ %921, %942 ], [ %860, %880 ], [ %798, %819 ], [ %736, %757 ], [ %674, %695 ], [ %612, %633 ], [ %549, %566 ], [ %491, %508 ], [ %433, %450 ], [ %375, %392 ], [ %317, %334 ], [ %260, %276 ], [ %174, %192 ], [ %117, %133 ], [ %60, %76 ], [ 0, %19 ]
  %.101645 = phi i32 [ %.pre2683, %3601 ], [ %3557, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %59, %._crit_edge2087 ], [ %116, %._crit_edge2094 ], [ %173, %._crit_edge2101 ], [ %173, %222 ], [ %173, %236 ], [ %259, %._crit_edge2108 ], [ %316, %._crit_edge2115 ], [ %374, %._crit_edge2122 ], [ %432, %._crit_edge2129 ], [ %490, %._crit_edge2136 ], [ %548, %._crit_edge2143 ], [ %1044, %._crit_edge2199 ], [ %1044, %1089 ], [ %1197, %1322 ], [ %1343, %._crit_edge2207 ], [ %1343, %._crit_edge2207 ], [ %1343, %._crit_edge2207 ], [ %1397, %._crit_edge2214 ], [ %1702, %1691 ], [ %1606, %1874 ], [ %.01635, %1930 ], [ %.01635, %1982 ], [ %.31638, %1997 ], [ %.51640, %2051 ], [ %.51640, %2097 ], [ %.21637, %2146 ], [ %.21637, %2420 ], [ %.81643, %2474 ], [ %.81643, %2520 ], [ %.21637, %2528 ], [ %.21637, %3040 ], [ %.21637, %3054 ], [ %.21637, %2959 ], [ %.21637, %2965 ], [ %3079, %._crit_edge2377 ], [ %3137, %._crit_edge2384 ], [ %3195, %._crit_edge2391 ], [ %3253, %._crit_edge2398 ], [ %3311, %._crit_edge2405 ], [ %.21637, %.loopexit.loopexit2454 ], [ %3557, %3579 ], [ %3495, %3517 ], [ %3433, %3455 ], [ %3371, %3393 ], [ %3311, %3329 ], [ %3253, %3271 ], [ %3195, %3213 ], [ %3137, %3155 ], [ %3079, %3097 ], [ %1138, %1160 ], [ %1250, %1268 ], [ %.ph3351, %1473 ], [ %.ph3351, %1495 ], [ %1773, %1792 ], [ %1721, %1740 ], [ %1632, %1650 ], [ %.11636, %1960 ], [ %.61641, %2075 ], [ %.51640, %2138 ], [ %.51640, %2132 ], [ %.41639, %2030 ], [ %.91644, %2498 ], [ %.71642, %2453 ], [ %1896, %1909 ], [ %1397, %1416 ], [ %1343, %1361 ], [ %1044, %1067 ], [ %982, %1004 ], [ %920, %942 ], [ %859, %880 ], [ %797, %819 ], [ %735, %757 ], [ %673, %695 ], [ %611, %633 ], [ %548, %566 ], [ %490, %508 ], [ %432, %450 ], [ %374, %392 ], [ %316, %334 ], [ %259, %276 ], [ %173, %192 ], [ %116, %133 ], [ %59, %76 ], [ 0, %19 ]
  %.111634 = phi i32 [ %.pre2681, %3601 ], [ %3556, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %58, %._crit_edge2087 ], [ %115, %._crit_edge2094 ], [ %172, %._crit_edge2101 ], [ %172, %222 ], [ %172, %236 ], [ %258, %._crit_edge2108 ], [ %315, %._crit_edge2115 ], [ %373, %._crit_edge2122 ], [ %431, %._crit_edge2129 ], [ %489, %._crit_edge2136 ], [ %547, %._crit_edge2143 ], [ %1043, %._crit_edge2199 ], [ %1043, %1089 ], [ %1196, %1322 ], [ %1342, %._crit_edge2207 ], [ %1342, %._crit_edge2207 ], [ %1342, %._crit_edge2207 ], [ %1396, %._crit_edge2214 ], [ %1701, %1691 ], [ %1605, %1874 ], [ %.11624, %1930 ], [ %.11624, %1982 ], [ %.41627, %1997 ], [ %.61629, %2051 ], [ %.61629, %2097 ], [ %.31626, %2146 ], [ %.31626, %2420 ], [ %.91632, %2474 ], [ %.91632, %2520 ], [ %.31626, %2528 ], [ %.31626, %3040 ], [ %.31626, %3054 ], [ %.31626, %2959 ], [ %.31626, %2965 ], [ %3078, %._crit_edge2377 ], [ %3136, %._crit_edge2384 ], [ %3194, %._crit_edge2391 ], [ %3252, %._crit_edge2398 ], [ %3310, %._crit_edge2405 ], [ %.31626, %.loopexit.loopexit2454 ], [ %3556, %3579 ], [ %3494, %3517 ], [ %3432, %3455 ], [ %3370, %3393 ], [ %3310, %3329 ], [ %3252, %3271 ], [ %3194, %3213 ], [ %3136, %3155 ], [ %3078, %3097 ], [ %1137, %1160 ], [ %1249, %1268 ], [ %.ph3350, %1473 ], [ %.ph3350, %1495 ], [ %1772, %1792 ], [ %1720, %1740 ], [ %1631, %1650 ], [ %.21625, %1960 ], [ %.71630, %2075 ], [ %.61629, %2138 ], [ %.61629, %2132 ], [ %.51628, %2030 ], [ %.101633, %2498 ], [ %.81631, %2453 ], [ %.01623, %1909 ], [ %1396, %1416 ], [ %1342, %1361 ], [ %1043, %1067 ], [ %981, %1004 ], [ %919, %942 ], [ %858, %880 ], [ %796, %819 ], [ %734, %757 ], [ %672, %695 ], [ %610, %633 ], [ %547, %566 ], [ %489, %508 ], [ %431, %450 ], [ %373, %392 ], [ %315, %334 ], [ %258, %276 ], [ %172, %192 ], [ %115, %133 ], [ %58, %76 ], [ 0, %19 ]
  %.181622 = phi i32 [ %.pre2677, %3601 ], [ %3554, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %56, %._crit_edge2087 ], [ %113, %._crit_edge2094 ], [ %170, %._crit_edge2101 ], [ %170, %222 ], [ %170, %236 ], [ %256, %._crit_edge2108 ], [ %313, %._crit_edge2115 ], [ %371, %._crit_edge2122 ], [ %429, %._crit_edge2129 ], [ %487, %._crit_edge2136 ], [ %545, %._crit_edge2143 ], [ %1041, %._crit_edge2199 ], [ %1041, %1089 ], [ %1194, %1322 ], [ %1340, %._crit_edge2207 ], [ %1340, %._crit_edge2207 ], [ %1340, %._crit_edge2207 ], [ %1394, %._crit_edge2214 ], [ %.31607, %1691 ], [ %.01604, %1874 ], [ %.81612, %1930 ], [ %.81612, %1982 ], [ %.111615, %1997 ], [ %.131617, %2051 ], [ %.131617, %2097 ], [ %.101614, %2146 ], [ %.101614, %2420 ], [ %.161620, %2474 ], [ %.161620, %2520 ], [ %.101614, %2528 ], [ %.101614, %3040 ], [ %.101614, %3054 ], [ %.101614, %2959 ], [ %.101614, %2965 ], [ %3076, %._crit_edge2377 ], [ %3134, %._crit_edge2384 ], [ %3192, %._crit_edge2391 ], [ %3250, %._crit_edge2398 ], [ %3308, %._crit_edge2405 ], [ %.101614, %.loopexit.loopexit2454 ], [ %3554, %3579 ], [ %3492, %3517 ], [ %3430, %3455 ], [ %3368, %3393 ], [ %3308, %3329 ], [ %3250, %3271 ], [ %3192, %3213 ], [ %3134, %3155 ], [ %3076, %3097 ], [ %1135, %1160 ], [ %1247, %1268 ], [ %.ph3348, %1473 ], [ %.ph3348, %1495 ], [ %.51609, %1792 ], [ %.41608, %1740 ], [ %.11605, %1650 ], [ %.91613, %1960 ], [ %.141618, %2075 ], [ %.131617, %2138 ], [ %.131617, %2132 ], [ %.121616, %2030 ], [ %.171621, %2498 ], [ %.151619, %2453 ], [ %.71611, %1909 ], [ %1394, %1416 ], [ %1340, %1361 ], [ %1041, %1067 ], [ %979, %1004 ], [ %917, %942 ], [ %856, %880 ], [ %794, %819 ], [ %732, %757 ], [ %670, %695 ], [ %608, %633 ], [ %545, %566 ], [ %487, %508 ], [ %429, %450 ], [ %371, %392 ], [ %313, %334 ], [ %256, %276 ], [ %170, %192 ], [ %113, %133 ], [ %56, %76 ], [ 0, %19 ]
  %.81599 = phi i32 [ %.pre2675, %3601 ], [ %3553, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %55, %._crit_edge2087 ], [ %112, %._crit_edge2094 ], [ %169, %._crit_edge2101 ], [ %169, %222 ], [ %169, %236 ], [ %255, %._crit_edge2108 ], [ %312, %._crit_edge2115 ], [ %370, %._crit_edge2122 ], [ %428, %._crit_edge2129 ], [ %486, %._crit_edge2136 ], [ %544, %._crit_edge2143 ], [ %1040, %._crit_edge2199 ], [ %1040, %1089 ], [ %1193, %1322 ], [ %1339, %._crit_edge2207 ], [ %1339, %._crit_edge2207 ], [ %1339, %._crit_edge2207 ], [ %1393, %._crit_edge2214 ], [ %1699, %1691 ], [ %1603, %1874 ], [ %1933, %1930 ], [ %1933, %1982 ], [ %1995, %1997 ], [ %.31594, %2051 ], [ %.31594, %2097 ], [ %.01591, %2146 ], [ %.01591, %2420 ], [ %.61597, %2474 ], [ %.61597, %2520 ], [ %.01591, %2528 ], [ %.01591, %3040 ], [ %.01591, %3054 ], [ %.01591, %2959 ], [ %.01591, %2965 ], [ %3075, %._crit_edge2377 ], [ %3133, %._crit_edge2384 ], [ %3191, %._crit_edge2391 ], [ %3249, %._crit_edge2398 ], [ %3307, %._crit_edge2405 ], [ %.01591, %.loopexit.loopexit2454 ], [ %3553, %3579 ], [ %3491, %3517 ], [ %3429, %3455 ], [ %3367, %3393 ], [ %3307, %3329 ], [ %3249, %3271 ], [ %3191, %3213 ], [ %3133, %3155 ], [ %3075, %3097 ], [ %1134, %1160 ], [ %1246, %1268 ], [ %.ph3347, %1473 ], [ %.ph3347, %1495 ], [ %1770, %1792 ], [ %1718, %1740 ], [ %1629, %1650 ], [ %1945, %1960 ], [ %.41595, %2075 ], [ %.31594, %2138 ], [ %.31594, %2132 ], [ %.21593, %2030 ], [ %.71598, %2498 ], [ %.51596, %2453 ], [ %1894, %1909 ], [ %1393, %1416 ], [ %1339, %1361 ], [ %1040, %1067 ], [ %978, %1004 ], [ %916, %942 ], [ %855, %880 ], [ %793, %819 ], [ %731, %757 ], [ %669, %695 ], [ %607, %633 ], [ %544, %566 ], [ %486, %508 ], [ %428, %450 ], [ %370, %392 ], [ %312, %334 ], [ %255, %276 ], [ %169, %192 ], [ %112, %133 ], [ %55, %76 ], [ 0, %19 ]
  %.121590 = phi i32 [ %.pre2673, %3601 ], [ %3552, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %54, %._crit_edge2087 ], [ %111, %._crit_edge2094 ], [ %168, %._crit_edge2101 ], [ %168, %222 ], [ %168, %236 ], [ %254, %._crit_edge2108 ], [ %311, %._crit_edge2115 ], [ %369, %._crit_edge2122 ], [ %427, %._crit_edge2129 ], [ %485, %._crit_edge2136 ], [ %543, %._crit_edge2143 ], [ %1039, %._crit_edge2199 ], [ %1039, %1089 ], [ %1192, %1322 ], [ %1338, %._crit_edge2207 ], [ %1338, %._crit_edge2207 ], [ %1338, %._crit_edge2207 ], [ %1392, %._crit_edge2214 ], [ %1698, %1691 ], [ %1602, %1874 ], [ %1932, %1930 ], [ %1932, %1982 ], [ %.21580, %1997 ], [ %.41582, %2051 ], [ %.41582, %2097 ], [ %.01578, %2146 ], [ %.01578, %2420 ], [ %.101588, %2474 ], [ %.101588, %2520 ], [ %.01578, %2528 ], [ %.01578, %3040 ], [ %.01578, %3054 ], [ %.01578, %2959 ], [ %.01578, %2965 ], [ %3074, %._crit_edge2377 ], [ %3132, %._crit_edge2384 ], [ %3190, %._crit_edge2391 ], [ %3248, %._crit_edge2398 ], [ %3306, %._crit_edge2405 ], [ %.01578, %.loopexit.loopexit2454 ], [ %3552, %3579 ], [ %3490, %3517 ], [ %3428, %3455 ], [ %3366, %3393 ], [ %3306, %3329 ], [ %3248, %3271 ], [ %3190, %3213 ], [ %3132, %3155 ], [ %3074, %3097 ], [ %1133, %1160 ], [ %1245, %1268 ], [ %.ph3346, %1473 ], [ %.ph3346, %1495 ], [ %1769, %1792 ], [ %1717, %1740 ], [ %1628, %1650 ], [ %1944, %1960 ], [ %.51583, %2075 ], [ %.715852302, %2138 ], [ %.615842297, %2132 ], [ %.31581, %2030 ], [ %.111589, %2498 ], [ %.91587, %2453 ], [ %1893, %1909 ], [ %1392, %1416 ], [ %1338, %1361 ], [ %1039, %1067 ], [ %977, %1004 ], [ %915, %942 ], [ %854, %880 ], [ %792, %819 ], [ %730, %757 ], [ %668, %695 ], [ %606, %633 ], [ %543, %566 ], [ %485, %508 ], [ %427, %450 ], [ %369, %392 ], [ %311, %334 ], [ %254, %276 ], [ %168, %192 ], [ %111, %133 ], [ %54, %76 ], [ 0, %19 ]
  %.141577 = phi i32 [ %.pre2671, %3601 ], [ %3551, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %53, %._crit_edge2087 ], [ %110, %._crit_edge2094 ], [ %167, %._crit_edge2101 ], [ %167, %222 ], [ %167, %236 ], [ %253, %._crit_edge2108 ], [ %310, %._crit_edge2115 ], [ %368, %._crit_edge2122 ], [ %426, %._crit_edge2129 ], [ %484, %._crit_edge2136 ], [ %542, %._crit_edge2143 ], [ %1038, %._crit_edge2199 ], [ %1038, %1089 ], [ %1191, %1322 ], [ %1337, %._crit_edge2207 ], [ %1337, %._crit_edge2207 ], [ %1337, %._crit_edge2207 ], [ %1391, %._crit_edge2214 ], [ %1697, %1691 ], [ 0, %1874 ], [ %.11564, %1930 ], [ %.11564, %1982 ], [ %.41567, %1997 ], [ %.61569, %2051 ], [ %.61569, %2097 ], [ %.31566, %2146 ], [ %2418, %2420 ], [ %.121575, %2474 ], [ %.121575, %2520 ], [ %.31566, %2528 ], [ %.31566, %3040 ], [ %.31566, %3054 ], [ %.31566, %2959 ], [ %.31566, %2965 ], [ %3073, %._crit_edge2377 ], [ %3131, %._crit_edge2384 ], [ %3189, %._crit_edge2391 ], [ %3247, %._crit_edge2398 ], [ %3305, %._crit_edge2405 ], [ %.31566, %.loopexit.loopexit2454 ], [ %3551, %3579 ], [ %3489, %3517 ], [ %3427, %3455 ], [ %3365, %3393 ], [ %3305, %3329 ], [ %3247, %3271 ], [ %3189, %3213 ], [ %3131, %3155 ], [ %3073, %3097 ], [ %1132, %1160 ], [ %1244, %1268 ], [ %.ph3345, %1473 ], [ %.ph3345, %1495 ], [ %1768, %1792 ], [ %1716, %1740 ], [ %1627, %1650 ], [ %.21565, %1960 ], [ %.71570, %2075 ], [ %smax2614, %2138 ], [ %smax, %2132 ], [ %.51568, %2030 ], [ %.131576, %2498 ], [ %.111574, %2453 ], [ %.01563, %1909 ], [ %1391, %1416 ], [ %1337, %1361 ], [ %1038, %1067 ], [ %976, %1004 ], [ %914, %942 ], [ %853, %880 ], [ %791, %819 ], [ %729, %757 ], [ %667, %695 ], [ %605, %633 ], [ %542, %566 ], [ %484, %508 ], [ %426, %450 ], [ %368, %392 ], [ %310, %334 ], [ %253, %276 ], [ %167, %192 ], [ %110, %133 ], [ %53, %76 ], [ 0, %19 ]
  %.111562 = phi i32 [ %.pre2669, %3601 ], [ %3550, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %52, %._crit_edge2087 ], [ %109, %._crit_edge2094 ], [ %166, %._crit_edge2101 ], [ %166, %222 ], [ %166, %236 ], [ %252, %._crit_edge2108 ], [ %309, %._crit_edge2115 ], [ %367, %._crit_edge2122 ], [ %425, %._crit_edge2129 ], [ %483, %._crit_edge2136 ], [ %541, %._crit_edge2143 ], [ %1037, %._crit_edge2199 ], [ %1037, %1089 ], [ %1190, %1322 ], [ %1336, %._crit_edge2207 ], [ %1336, %._crit_edge2207 ], [ %1336, %._crit_edge2207 ], [ %1390, %._crit_edge2214 ], [ %1696, %1691 ], [ %1847, %1874 ], [ %.11552, %1930 ], [ %.11552, %1982 ], [ %.41555, %1997 ], [ %.61557, %2051 ], [ %.61557, %2097 ], [ %.31554, %2146 ], [ %.31554, %2420 ], [ %.91560, %2474 ], [ %.91560, %2520 ], [ %.31554, %2528 ], [ %.31554, %3040 ], [ %.31554, %3054 ], [ %.31554, %2959 ], [ %.31554, %2965 ], [ %3072, %._crit_edge2377 ], [ %3130, %._crit_edge2384 ], [ %3188, %._crit_edge2391 ], [ %3246, %._crit_edge2398 ], [ %3304, %._crit_edge2405 ], [ %.31554, %.loopexit.loopexit2454 ], [ %3550, %3579 ], [ %3488, %3517 ], [ %3426, %3455 ], [ %3364, %3393 ], [ %3304, %3329 ], [ %3246, %3271 ], [ %3188, %3213 ], [ %3130, %3155 ], [ %3072, %3097 ], [ %1131, %1160 ], [ %1243, %1268 ], [ %.ph3344, %1473 ], [ %.ph3344, %1495 ], [ %1767, %1792 ], [ %1715, %1740 ], [ %1626, %1650 ], [ %.21553, %1960 ], [ %.71558, %2075 ], [ %.61557, %2138 ], [ %.61557, %2132 ], [ %.51556, %2030 ], [ %.101561, %2498 ], [ %.81559, %2453 ], [ %.01551, %1909 ], [ %1390, %1416 ], [ %1336, %1361 ], [ %1037, %1067 ], [ %975, %1004 ], [ %913, %942 ], [ %852, %880 ], [ %790, %819 ], [ %728, %757 ], [ %666, %695 ], [ %604, %633 ], [ %541, %566 ], [ %483, %508 ], [ %425, %450 ], [ %367, %392 ], [ %309, %334 ], [ %252, %276 ], [ %166, %192 ], [ %109, %133 ], [ %52, %76 ], [ 0, %19 ]
  %.81544 = phi i32 [ %.pre2667, %3601 ], [ %3549, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %51, %._crit_edge2087 ], [ %108, %._crit_edge2094 ], [ %165, %._crit_edge2101 ], [ %165, %222 ], [ %165, %236 ], [ %251, %._crit_edge2108 ], [ %308, %._crit_edge2115 ], [ %366, %._crit_edge2122 ], [ %424, %._crit_edge2129 ], [ %482, %._crit_edge2136 ], [ %540, %._crit_edge2143 ], [ %1036, %._crit_edge2199 ], [ %1036, %1089 ], [ %1189, %1322 ], [ %1335, %._crit_edge2207 ], [ %1335, %._crit_edge2207 ], [ %1335, %._crit_edge2207 ], [ %1389, %._crit_edge2214 ], [ %1695, %1691 ], [ %1599, %1874 ], [ %1931, %1930 ], [ %1931, %1982 ], [ %.11537, %1997 ], [ %.31539, %2051 ], [ %.31539, %2097 ], [ %.01536, %2146 ], [ %.01536, %2420 ], [ %.61542, %2474 ], [ %.61542, %2520 ], [ %.01536, %2528 ], [ %.01536, %3040 ], [ %.01536, %3054 ], [ %.01536, %2959 ], [ %.01536, %2965 ], [ %3071, %._crit_edge2377 ], [ %3129, %._crit_edge2384 ], [ %3187, %._crit_edge2391 ], [ %3245, %._crit_edge2398 ], [ %3303, %._crit_edge2405 ], [ %.01536, %.loopexit.loopexit2454 ], [ %3549, %3579 ], [ %3487, %3517 ], [ %3425, %3455 ], [ %3363, %3393 ], [ %3303, %3329 ], [ %3245, %3271 ], [ %3187, %3213 ], [ %3129, %3155 ], [ %3071, %3097 ], [ %1130, %1160 ], [ %1242, %1268 ], [ %.ph3343, %1473 ], [ %.ph3343, %1495 ], [ %1766, %1792 ], [ %1714, %1740 ], [ %1625, %1650 ], [ %1943, %1960 ], [ %.41540, %2075 ], [ %2104, %2138 ], [ %2104, %2132 ], [ %.21538, %2030 ], [ %.71543, %2498 ], [ %.51541, %2453 ], [ %1892, %1909 ], [ %1389, %1416 ], [ %1335, %1361 ], [ %1036, %1067 ], [ %974, %1004 ], [ %912, %942 ], [ %851, %880 ], [ %789, %819 ], [ %727, %757 ], [ %665, %695 ], [ %603, %633 ], [ %540, %566 ], [ %482, %508 ], [ %424, %450 ], [ %366, %392 ], [ %308, %334 ], [ %251, %276 ], [ %165, %192 ], [ %108, %133 ], [ %51, %76 ], [ 0, %19 ]
  %.141533 = phi i32 [ %.pre2665, %3601 ], [ %3548, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %50, %._crit_edge2087 ], [ %107, %._crit_edge2094 ], [ %164, %._crit_edge2101 ], [ %164, %222 ], [ %164, %236 ], [ %250, %._crit_edge2108 ], [ %307, %._crit_edge2115 ], [ %365, %._crit_edge2122 ], [ %423, %._crit_edge2129 ], [ %481, %._crit_edge2136 ], [ %539, %._crit_edge2143 ], [ %1035, %._crit_edge2199 ], [ %1035, %1089 ], [ %1188, %1322 ], [ %1334, %._crit_edge2207 ], [ %1334, %._crit_edge2207 ], [ %1334, %._crit_edge2207 ], [ %1388, %._crit_edge2214 ], [ %1694, %1691 ], [ 0, %1874 ], [ %.21521, %1930 ], [ %.21521, %1982 ], [ 0, %1997 ], [ %.81527, %2051 ], [ %.81527, %2097 ], [ %.41523, %2146 ], [ 0, %2420 ], [ %.121531, %2474 ], [ %.121531, %2520 ], [ %.41523, %2528 ], [ %.41523, %3040 ], [ %.41523, %3054 ], [ %.41523, %2959 ], [ %.41523, %2965 ], [ %3070, %._crit_edge2377 ], [ %3128, %._crit_edge2384 ], [ %3186, %._crit_edge2391 ], [ %3244, %._crit_edge2398 ], [ %3302, %._crit_edge2405 ], [ %.41523, %.loopexit.loopexit2454 ], [ %3548, %3579 ], [ %3486, %3517 ], [ %3424, %3455 ], [ %3362, %3393 ], [ %3302, %3329 ], [ %3244, %3271 ], [ %3186, %3213 ], [ %3128, %3155 ], [ %3070, %3097 ], [ %1129, %1160 ], [ %1241, %1268 ], [ %.ph3342, %1473 ], [ %.ph3342, %1495 ], [ %1765, %1792 ], [ %1713, %1740 ], [ %1624, %1650 ], [ %.31522, %1960 ], [ %.91528, %2075 ], [ %.81527, %2138 ], [ %.81527, %2132 ], [ %.71526, %2030 ], [ %.131532, %2498 ], [ %.111530, %2453 ], [ %.11520, %1909 ], [ %1388, %1416 ], [ %1334, %1361 ], [ %1035, %1067 ], [ %973, %1004 ], [ %911, %942 ], [ %850, %880 ], [ %788, %819 ], [ %726, %757 ], [ %664, %695 ], [ %602, %633 ], [ %539, %566 ], [ %481, %508 ], [ %423, %450 ], [ %365, %392 ], [ %307, %334 ], [ %250, %276 ], [ %164, %192 ], [ %107, %133 ], [ %50, %76 ], [ 0, %19 ]
  %.141518 = phi i32 [ %.pre2663, %3601 ], [ %3547, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %49, %._crit_edge2087 ], [ %106, %._crit_edge2094 ], [ %163, %._crit_edge2101 ], [ %163, %222 ], [ %163, %236 ], [ %249, %._crit_edge2108 ], [ %306, %._crit_edge2115 ], [ %364, %._crit_edge2122 ], [ %422, %._crit_edge2129 ], [ %480, %._crit_edge2136 ], [ %538, %._crit_edge2143 ], [ %1034, %._crit_edge2199 ], [ %1034, %1089 ], [ %1187, %1322 ], [ %1333, %._crit_edge2207 ], [ %1333, %._crit_edge2207 ], [ %1333, %._crit_edge2207 ], [ %1387, %._crit_edge2214 ], [ %1693, %1691 ], [ 0, %1874 ], [ %.21506, %1930 ], [ %.21506, %1982 ], [ %1998, %1997 ], [ %.81512, %2051 ], [ %.81512, %2097 ], [ %.41508, %2146 ], [ %2421, %2420 ], [ %.121516, %2474 ], [ %.121516, %2520 ], [ %.41508, %2528 ], [ %.41508, %3040 ], [ %.41508, %3054 ], [ %.41508, %2959 ], [ %.41508, %2965 ], [ %3069, %._crit_edge2377 ], [ %3127, %._crit_edge2384 ], [ %3185, %._crit_edge2391 ], [ %3243, %._crit_edge2398 ], [ %3301, %._crit_edge2405 ], [ %.41508, %.loopexit.loopexit2454 ], [ %3547, %3579 ], [ %3485, %3517 ], [ %3423, %3455 ], [ %3361, %3393 ], [ %3301, %3329 ], [ %3243, %3271 ], [ %3185, %3213 ], [ %3127, %3155 ], [ %3069, %3097 ], [ %1128, %1160 ], [ %1240, %1268 ], [ %.ph3341, %1473 ], [ %.ph3341, %1495 ], [ %1764, %1792 ], [ %1712, %1740 ], [ %1623, %1650 ], [ %.31507, %1960 ], [ %.91513, %2075 ], [ %.81512, %2138 ], [ %.81512, %2132 ], [ %.71511, %2030 ], [ %.131517, %2498 ], [ %.111515, %2453 ], [ %.11505, %1909 ], [ %1387, %1416 ], [ %1333, %1361 ], [ %1034, %1067 ], [ %972, %1004 ], [ %910, %942 ], [ %849, %880 ], [ %787, %819 ], [ %725, %757 ], [ %663, %695 ], [ %601, %633 ], [ %538, %566 ], [ %480, %508 ], [ %422, %450 ], [ %364, %392 ], [ %306, %334 ], [ %249, %276 ], [ %163, %192 ], [ %106, %133 ], [ %49, %76 ], [ 0, %19 ]
  %.111503 = phi i32 [ %.pre2661, %3601 ], [ %3546, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %48, %._crit_edge2087 ], [ %105, %._crit_edge2094 ], [ %162, %._crit_edge2101 ], [ %162, %222 ], [ %162, %236 ], [ %248, %._crit_edge2108 ], [ %305, %._crit_edge2115 ], [ %363, %._crit_edge2122 ], [ %421, %._crit_edge2129 ], [ %479, %._crit_edge2136 ], [ %537, %._crit_edge2143 ], [ %1033, %._crit_edge2199 ], [ %1033, %1089 ], [ %1186, %1322 ], [ %1332, %._crit_edge2207 ], [ %1332, %._crit_edge2207 ], [ %1332, %._crit_edge2207 ], [ %1386, %._crit_edge2214 ], [ %1692, %1691 ], [ %1875, %1874 ], [ %.11493, %1930 ], [ %.11493, %1982 ], [ %.41496, %1997 ], [ %.61498, %2051 ], [ %.61498, %2097 ], [ %.31495, %2146 ], [ %.31495, %2420 ], [ %.91501, %2474 ], [ %.91501, %2520 ], [ %.01536, %2528 ], [ %.01536, %3040 ], [ %.01536, %3054 ], [ %.01536, %2959 ], [ %.01536, %2965 ], [ %3068, %._crit_edge2377 ], [ %3126, %._crit_edge2384 ], [ %3184, %._crit_edge2391 ], [ %3242, %._crit_edge2398 ], [ %3300, %._crit_edge2405 ], [ %.01536, %.loopexit.loopexit2454 ], [ %3546, %3579 ], [ %3484, %3517 ], [ %3422, %3455 ], [ %3360, %3393 ], [ %3300, %3329 ], [ %3242, %3271 ], [ %3184, %3213 ], [ %3126, %3155 ], [ %3068, %3097 ], [ %1127, %1160 ], [ %1239, %1268 ], [ %.ph3340, %1473 ], [ %.ph3340, %1495 ], [ %1763, %1792 ], [ %1711, %1740 ], [ %1622, %1650 ], [ %.21494, %1960 ], [ %.71499, %2075 ], [ %.61498, %2138 ], [ %.61498, %2132 ], [ %.51497, %2030 ], [ %.101502, %2498 ], [ %.81500, %2453 ], [ %.01492, %1909 ], [ %1386, %1416 ], [ %1332, %1361 ], [ %1033, %1067 ], [ %971, %1004 ], [ %909, %942 ], [ %848, %880 ], [ %786, %819 ], [ %724, %757 ], [ %662, %695 ], [ %600, %633 ], [ %537, %566 ], [ %479, %508 ], [ %421, %450 ], [ %363, %392 ], [ %305, %334 ], [ %248, %276 ], [ %162, %192 ], [ %105, %133 ], [ %48, %76 ], [ 0, %19 ]
  %.201491 = phi i32 [ %.pre2659, %3601 ], [ %3545, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %47, %._crit_edge2087 ], [ %104, %._crit_edge2094 ], [ %161, %._crit_edge2101 ], [ %161, %222 ], [ %161, %236 ], [ %247, %._crit_edge2108 ], [ %304, %._crit_edge2115 ], [ %362, %._crit_edge2122 ], [ %420, %._crit_edge2129 ], [ %478, %._crit_edge2136 ], [ %536, %._crit_edge2143 ], [ %1032, %._crit_edge2199 ], [ %1032, %1089 ], [ %1185, %1322 ], [ %1331, %._crit_edge2207 ], [ %1331, %._crit_edge2207 ], [ %1331, %._crit_edge2207 ], [ 0, %._crit_edge2214 ], [ %.61477, %1691 ], [ %.31474, %1874 ], [ %.101481, %1930 ], [ %.101481, %1982 ], [ %.131484, %1997 ], [ %.151486, %2051 ], [ %.151486, %2097 ], [ %.121483, %2146 ], [ %.121483, %2420 ], [ %.181489, %2474 ], [ %.181489, %2520 ], [ %.121483, %2528 ], [ %.121483, %3040 ], [ %.121483, %3054 ], [ %.121483, %2959 ], [ %.121483, %2965 ], [ %3067, %._crit_edge2377 ], [ %3125, %._crit_edge2384 ], [ %3183, %._crit_edge2391 ], [ %3241, %._crit_edge2398 ], [ %3299, %._crit_edge2405 ], [ %.121483, %.loopexit.loopexit2454 ], [ %3545, %3579 ], [ %3483, %3517 ], [ %3421, %3455 ], [ %3359, %3393 ], [ %3299, %3329 ], [ %3241, %3271 ], [ %3183, %3213 ], [ %3125, %3155 ], [ %3067, %3097 ], [ %1126, %1160 ], [ %1238, %1268 ], [ %.21473.ph, %1473 ], [ %.21473.ph, %1495 ], [ %.81479, %1792 ], [ %.71478, %1740 ], [ %.41475, %1650 ], [ %.111482, %1960 ], [ %.161487, %2075 ], [ %.151486, %2138 ], [ %.151486, %2132 ], [ %.141485, %2030 ], [ %.191490, %2498 ], [ %.171488, %2453 ], [ %.91480, %1909 ], [ %1385, %1416 ], [ %1331, %1361 ], [ %1032, %1067 ], [ %970, %1004 ], [ %908, %942 ], [ %847, %880 ], [ %785, %819 ], [ %723, %757 ], [ %661, %695 ], [ %599, %633 ], [ %536, %566 ], [ %478, %508 ], [ %420, %450 ], [ %362, %392 ], [ %304, %334 ], [ %247, %276 ], [ %161, %192 ], [ %104, %133 ], [ %47, %76 ], [ 0, %19 ]
  %.211470 = phi i32 [ %.pre2657, %3601 ], [ %3544, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %46, %._crit_edge2087 ], [ %103, %._crit_edge2094 ], [ %160, %._crit_edge2101 ], [ %160, %222 ], [ %160, %236 ], [ %246, %._crit_edge2108 ], [ %303, %._crit_edge2115 ], [ %361, %._crit_edge2122 ], [ %419, %._crit_edge2129 ], [ %477, %._crit_edge2136 ], [ %535, %._crit_edge2143 ], [ %1031, %._crit_edge2199 ], [ %1031, %1089 ], [ %1184, %1322 ], [ %1360, %._crit_edge2207 ], [ %1360, %._crit_edge2207 ], [ %1360, %._crit_edge2207 ], [ %.01449, %._crit_edge2214 ], [ %.71456, %1691 ], [ %.41453, %1874 ], [ %.111460, %1930 ], [ %.111460, %1982 ], [ %.141463, %1997 ], [ %.161465, %2051 ], [ %.161465, %2097 ], [ %.131462, %2146 ], [ %.131462, %2420 ], [ %.191468, %2474 ], [ %.191468, %2520 ], [ %.131462, %2528 ], [ %.131462, %3040 ], [ %.131462, %3054 ], [ %.131462, %2959 ], [ %.131462, %2965 ], [ %3066, %._crit_edge2377 ], [ %3124, %._crit_edge2384 ], [ %3182, %._crit_edge2391 ], [ %3240, %._crit_edge2398 ], [ %3298, %._crit_edge2405 ], [ %.131462, %.loopexit.loopexit2454 ], [ %3544, %3579 ], [ %3482, %3517 ], [ %3420, %3455 ], [ %3358, %3393 ], [ %3298, %3329 ], [ %3240, %3271 ], [ %3182, %3213 ], [ %3124, %3155 ], [ %3066, %3097 ], [ %1125, %1160 ], [ %1237, %1268 ], [ %.31452.ph, %1473 ], [ %.31452.ph, %1495 ], [ %.91458, %1792 ], [ %.81457, %1740 ], [ %.51454, %1650 ], [ %.121461, %1960 ], [ %.171466, %2075 ], [ %.161465, %2138 ], [ %.161465, %2132 ], [ %.151464, %2030 ], [ %.201469, %2498 ], [ %.181467, %2453 ], [ %.101459, %1909 ], [ %.01449, %1416 ], [ %1330, %1361 ], [ %1031, %1067 ], [ %969, %1004 ], [ %907, %942 ], [ %846, %880 ], [ %784, %819 ], [ %722, %757 ], [ %660, %695 ], [ %598, %633 ], [ %535, %566 ], [ %477, %508 ], [ %419, %450 ], [ %361, %392 ], [ %303, %334 ], [ %246, %276 ], [ %160, %192 ], [ %103, %133 ], [ %46, %76 ], [ 0, %19 ]
  %.221448 = phi i32 [ %.pre2655, %3601 ], [ %3543, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %45, %._crit_edge2087 ], [ %102, %._crit_edge2094 ], [ %159, %._crit_edge2101 ], [ %159, %222 ], [ %159, %236 ], [ %245, %._crit_edge2108 ], [ %302, %._crit_edge2115 ], [ %360, %._crit_edge2122 ], [ %418, %._crit_edge2129 ], [ %476, %._crit_edge2136 ], [ %534, %._crit_edge2143 ], [ %1030, %._crit_edge2199 ], [ %1030, %1089 ], [ %1183, %1322 ], [ %.01426, %._crit_edge2207 ], [ %.01426, %._crit_edge2207 ], [ %.01426, %._crit_edge2207 ], [ %.11427, %._crit_edge2214 ], [ %.81434, %1691 ], [ %.51431, %1874 ], [ %.121438, %1930 ], [ %.121438, %1982 ], [ %.151441, %1997 ], [ %.171443, %2051 ], [ %.171443, %2097 ], [ %.141440, %2146 ], [ %.141440, %2420 ], [ %.201446, %2474 ], [ %.201446, %2520 ], [ %.141440, %2528 ], [ %.141440, %3040 ], [ %.141440, %3054 ], [ %.141440, %2959 ], [ %.141440, %2965 ], [ %3065, %._crit_edge2377 ], [ %3123, %._crit_edge2384 ], [ %3181, %._crit_edge2391 ], [ %3239, %._crit_edge2398 ], [ %3297, %._crit_edge2405 ], [ %.141440, %.loopexit.loopexit2454 ], [ %3543, %3579 ], [ %3481, %3517 ], [ %3419, %3455 ], [ %3357, %3393 ], [ %3297, %3329 ], [ %3239, %3271 ], [ %3181, %3213 ], [ %3123, %3155 ], [ %3065, %3097 ], [ %1124, %1160 ], [ %1236, %1268 ], [ %.41430.ph, %1473 ], [ %.41430.ph, %1495 ], [ %.101436, %1792 ], [ %.91435, %1740 ], [ %.61432, %1650 ], [ %.131439, %1960 ], [ %.181444, %2075 ], [ %.171443, %2138 ], [ %.171443, %2132 ], [ %.161442, %2030 ], [ %.211447, %2498 ], [ %.191445, %2453 ], [ %.111437, %1909 ], [ %.11427, %1416 ], [ %.01426, %1361 ], [ %1030, %1067 ], [ %968, %1004 ], [ %906, %942 ], [ %845, %880 ], [ %783, %819 ], [ %721, %757 ], [ %659, %695 ], [ %597, %633 ], [ %534, %566 ], [ %476, %508 ], [ %418, %450 ], [ %360, %392 ], [ %302, %334 ], [ %245, %276 ], [ %159, %192 ], [ %102, %133 ], [ %45, %76 ], [ 0, %19 ]
  %.181425 = phi i32 [ %.pre2653, %3601 ], [ %3542, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %44, %._crit_edge2087 ], [ %101, %._crit_edge2094 ], [ %158, %._crit_edge2101 ], [ %158, %222 ], [ %158, %236 ], [ %244, %._crit_edge2108 ], [ %301, %._crit_edge2115 ], [ %359, %._crit_edge2122 ], [ %417, %._crit_edge2129 ], [ %475, %._crit_edge2136 ], [ %533, %._crit_edge2143 ], [ %1029, %._crit_edge2199 ], [ %1029, %1089 ], [ %1182, %1322 ], [ %1329, %._crit_edge2207 ], [ %1329, %._crit_edge2207 ], [ %1329, %._crit_edge2207 ], [ %1384, %._crit_edge2214 ], [ %.31410, %1691 ], [ %.61413.lcssa, %1874 ], [ %.81415, %1930 ], [ %.81415, %1982 ], [ %.111418, %1997 ], [ %.131420, %2051 ], [ %.131420, %2097 ], [ %.101417, %2146 ], [ %.101417, %2420 ], [ %.161423, %2474 ], [ %.161423, %2520 ], [ %.101417, %2528 ], [ %.101417, %3040 ], [ %.101417, %3054 ], [ %.101417, %2959 ], [ %.101417, %2965 ], [ %3064, %._crit_edge2377 ], [ %3122, %._crit_edge2384 ], [ %3180, %._crit_edge2391 ], [ %3238, %._crit_edge2398 ], [ %3296, %._crit_edge2405 ], [ %.101417, %.loopexit.loopexit2454 ], [ %3542, %3579 ], [ %3480, %3517 ], [ %3418, %3455 ], [ %3356, %3393 ], [ %3296, %3329 ], [ %3238, %3271 ], [ %3180, %3213 ], [ %3122, %3155 ], [ %3064, %3097 ], [ %1123, %1160 ], [ %1235, %1268 ], [ %.ph, %1473 ], [ %.ph, %1495 ], [ %.51412, %1792 ], [ %.41411, %1740 ], [ %.11408, %1650 ], [ %.91416, %1960 ], [ %.141421, %2075 ], [ %.131420, %2138 ], [ %.131420, %2132 ], [ %.121419, %2030 ], [ %.171424, %2498 ], [ %.151422, %2453 ], [ %.71414, %1909 ], [ %1384, %1416 ], [ %1329, %1361 ], [ %1029, %1067 ], [ %967, %1004 ], [ %905, %942 ], [ %844, %880 ], [ %782, %819 ], [ %720, %757 ], [ %658, %695 ], [ %596, %633 ], [ %533, %566 ], [ %475, %508 ], [ %417, %450 ], [ %359, %392 ], [ %301, %334 ], [ %244, %276 ], [ %158, %192 ], [ %101, %133 ], [ %44, %76 ], [ 0, %19 ]
  %.281406 = phi i32 [ %.pre2651, %3601 ], [ %3541, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %43, %._crit_edge2087 ], [ %100, %._crit_edge2094 ], [ %157, %._crit_edge2101 ], [ %157, %222 ], [ %157, %236 ], [ %243, %._crit_edge2108 ], [ %300, %._crit_edge2115 ], [ %358, %._crit_edge2122 ], [ %416, %._crit_edge2129 ], [ %474, %._crit_edge2136 ], [ %532, %._crit_edge2143 ], [ %1028, %._crit_edge2199 ], [ %1028, %1089 ], [ %.01378, %1322 ], [ %.41382, %._crit_edge2207 ], [ %.41382, %._crit_edge2207 ], [ %.41382, %._crit_edge2207 ], [ %.51383, %._crit_edge2214 ], [ %.121390, %1691 ], [ %.91387, %1874 ], [ %.161394, %1930 ], [ %.161394, %1982 ], [ %.191397, %1997 ], [ %.211399, %2051 ], [ %.211399, %2097 ], [ %.181396, %2146 ], [ %.181396, %2420 ], [ %.241402, %2474 ], [ %.241402, %2520 ], [ %.181396, %2528 ], [ %.181396, %3040 ], [ %.181396, %3054 ], [ %2902, %2959 ], [ %2902, %2965 ], [ %3063, %._crit_edge2377 ], [ %3121, %._crit_edge2384 ], [ %3179, %._crit_edge2391 ], [ %3237, %._crit_edge2398 ], [ %3295, %._crit_edge2405 ], [ %.181396, %.loopexit.loopexit2454 ], [ %3541, %3579 ], [ %3479, %3517 ], [ %3417, %3455 ], [ %3355, %3393 ], [ %3295, %3329 ], [ %3237, %3271 ], [ %3179, %3213 ], [ %3121, %3155 ], [ %3063, %3097 ], [ %1122, %1160 ], [ %.21380, %1268 ], [ %.81386, %1473 ], [ %1496, %1495 ], [ %.141392, %1792 ], [ %.131391, %1740 ], [ %.101388, %1650 ], [ %.171395, %1960 ], [ %.221400, %2075 ], [ %.211399, %2138 ], [ %.211399, %2132 ], [ %.201398, %2030 ], [ %.251403, %2498 ], [ %.231401, %2453 ], [ %.151393, %1909 ], [ %.51383, %1416 ], [ %.41382, %1361 ], [ %1028, %1067 ], [ %966, %1004 ], [ %904, %942 ], [ %843, %880 ], [ %781, %819 ], [ %719, %757 ], [ %657, %695 ], [ %595, %633 ], [ %532, %566 ], [ %474, %508 ], [ %416, %450 ], [ %358, %392 ], [ %300, %334 ], [ %243, %276 ], [ %157, %192 ], [ %100, %133 ], [ %43, %76 ], [ 0, %19 ]
  %.40 = phi i32 [ %.pre, %3601 ], [ %3540, %._crit_edge2433 ], [ 0, %._crit_edge ], [ %42, %._crit_edge2087 ], [ %99, %._crit_edge2094 ], [ %156, %._crit_edge2101 ], [ %156, %222 ], [ %156, %236 ], [ %242, %._crit_edge2108 ], [ %299, %._crit_edge2115 ], [ %357, %._crit_edge2122 ], [ %415, %._crit_edge2129 ], [ %473, %._crit_edge2136 ], [ %531, %._crit_edge2143 ], [ %1027, %._crit_edge2199 ], [ %1027, %1089 ], [ %.3, %1322 ], [ %.7, %._crit_edge2207 ], [ %.7, %._crit_edge2207 ], [ %.7, %._crit_edge2207 ], [ %.8, %._crit_edge2214 ], [ %.16, %1691 ], [ 256, %1874 ], [ %.22, %1930 ], [ %.22, %1982 ], [ %.25, %1997 ], [ %.27, %2051 ], [ %.27, %2097 ], [ %.24, %2146 ], [ %.24, %2420 ], [ %.30, %2474 ], [ %.30, %2520 ], [ %.24, %2528 ], [ %.38.lcssa, %3040 ], [ %.38.lcssa, %3054 ], [ %.261404, %2959 ], [ %.261404, %2965 ], [ %3062, %._crit_edge2377 ], [ %3120, %._crit_edge2384 ], [ %3178, %._crit_edge2391 ], [ %3236, %._crit_edge2398 ], [ %3294, %._crit_edge2405 ], [ %3602, %.loopexit.loopexit2454 ], [ %3540, %3579 ], [ %3478, %3517 ], [ %3416, %3455 ], [ %3354, %3393 ], [ %3294, %3329 ], [ %3236, %3271 ], [ %3178, %3213 ], [ %3120, %3155 ], [ %3062, %3097 ], [ %.11377, %1160 ], [ %.5, %1268 ], [ %.11.ph, %1473 ], [ %.11.ph, %1495 ], [ %.18, %1792 ], [ %.17, %1740 ], [ %.14, %1650 ], [ %.23, %1960 ], [ %.28, %2075 ], [ %.27, %2138 ], [ %.27, %2132 ], [ %.26, %2030 ], [ %.31, %2498 ], [ %.29, %2453 ], [ %.21, %1909 ], [ %.8, %1416 ], [ %.7, %1361 ], [ %1027, %1067 ], [ %965, %1004 ], [ %903, %942 ], [ %842, %880 ], [ %780, %819 ], [ %718, %757 ], [ %656, %695 ], [ %594, %633 ], [ %531, %566 ], [ %473, %508 ], [ %415, %450 ], [ %357, %392 ], [ %299, %334 ], [ %242, %276 ], [ %156, %192 ], [ %99, %133 ], [ %42, %76 ], [ 0, %19 ]
  %.01372 = phi i32 [ 0, %3601 ], [ 4, %._crit_edge2433 ], [ -5, %._crit_edge ], [ -5, %._crit_edge2087 ], [ -5, %._crit_edge2094 ], [ -5, %._crit_edge2101 ], [ -3, %222 ], [ -3, %236 ], [ -4, %._crit_edge2108 ], [ -4, %._crit_edge2115 ], [ -4, %._crit_edge2122 ], [ -4, %._crit_edge2129 ], [ -4, %._crit_edge2136 ], [ -4, %._crit_edge2143 ], [ -4, %._crit_edge2199 ], [ -4, %1089 ], [ -4, %1322 ], [ -4, %._crit_edge2207 ], [ -4, %._crit_edge2207 ], [ -4, %._crit_edge2207 ], [ -4, %._crit_edge2214 ], [ -4, %1691 ], [ -4, %1874 ], [ -4, %1930 ], [ -4, %1982 ], [ -4, %1997 ], [ -4, %2051 ], [ -4, %2097 ], [ -4, %2146 ], [ -4, %2420 ], [ -4, %2474 ], [ -4, %2520 ], [ -4, %2528 ], [ 0, %3040 ], [ 0, %3054 ], [ 0, %2959 ], [ 0, %2965 ], [ -4, %._crit_edge2377 ], [ -4, %._crit_edge2384 ], [ -4, %._crit_edge2391 ], [ -4, %._crit_edge2398 ], [ -4, %._crit_edge2405 ], [ -4, %.loopexit.loopexit2454 ], [ 0, %3579 ], [ 0, %3517 ], [ 0, %3455 ], [ 0, %3393 ], [ 0, %3329 ], [ 0, %3271 ], [ 0, %3213 ], [ 0, %3155 ], [ 0, %3097 ], [ 0, %1160 ], [ 0, %1268 ], [ 0, %1473 ], [ -4, %1495 ], [ 0, %1792 ], [ 0, %1740 ], [ 0, %1650 ], [ 0, %1960 ], [ 0, %2075 ], [ -4, %2138 ], [ -4, %2132 ], [ 0, %2030 ], [ 0, %2498 ], [ 0, %2453 ], [ 0, %1909 ], [ 0, %1416 ], [ 0, %1361 ], [ 0, %1067 ], [ 0, %1004 ], [ 0, %942 ], [ 0, %880 ], [ 0, %819 ], [ 0, %757 ], [ 0, %695 ], [ 0, %633 ], [ 0, %566 ], [ 0, %508 ], [ 0, %450 ], [ 0, %392 ], [ 0, %334 ], [ 0, %276 ], [ 0, %192 ], [ 0, %133 ], [ 0, %76 ], [ 0, %19 ]
  %3604 = getelementptr inbounds i8, ptr %0, i64 64136
  %3605 = getelementptr inbounds i8, ptr %0, i64 64128
  %3606 = getelementptr inbounds i8, ptr %0, i64 64120
  %3607 = getelementptr inbounds i8, ptr %0, i64 64116
  %3608 = getelementptr inbounds i8, ptr %0, i64 64112
  %3609 = getelementptr inbounds i8, ptr %0, i64 64108
  %3610 = getelementptr inbounds i8, ptr %0, i64 64104
  %3611 = getelementptr inbounds i8, ptr %0, i64 64100
  %3612 = getelementptr inbounds i8, ptr %0, i64 64096
  %3613 = getelementptr inbounds i8, ptr %0, i64 64092
  %3614 = getelementptr inbounds i8, ptr %0, i64 64088
  %3615 = getelementptr inbounds i8, ptr %0, i64 64084
  %3616 = getelementptr inbounds i8, ptr %0, i64 64080
  %3617 = getelementptr inbounds i8, ptr %0, i64 64076
  %3618 = getelementptr inbounds i8, ptr %0, i64 64072
  %3619 = getelementptr inbounds i8, ptr %0, i64 64068
  %3620 = getelementptr inbounds i8, ptr %0, i64 64064
  %3621 = getelementptr inbounds i8, ptr %0, i64 64060
  %3622 = getelementptr inbounds i8, ptr %0, i64 64056
  %3623 = getelementptr inbounds i8, ptr %0, i64 64052
  %3624 = getelementptr inbounds i8, ptr %0, i64 64048
  %3625 = getelementptr inbounds i8, ptr %0, i64 64044
  %3626 = getelementptr inbounds i8, ptr %0, i64 64040
  %3627 = getelementptr inbounds i8, ptr %0, i64 64036
  store i32 %.40, ptr %3627, align 4, !tbaa !13
  store i32 %.281406, ptr %3626, align 8, !tbaa !14
  store i32 %.181425, ptr %3625, align 4, !tbaa !15
  store i32 %.221448, ptr %3624, align 8, !tbaa !16
  store i32 %.211470, ptr %3623, align 4, !tbaa !17
  store i32 %.201491, ptr %3622, align 8, !tbaa !18
  store i32 %.111503, ptr %3621, align 4, !tbaa !19
  store i32 %.141518, ptr %3620, align 8, !tbaa !20
  store i32 %.141533, ptr %3619, align 4, !tbaa !21
  store i32 %.81544, ptr %3618, align 8, !tbaa !22
  store i32 %.111562, ptr %3617, align 4, !tbaa !23
  store i32 %.141577, ptr %3616, align 8, !tbaa !24
  store i32 %.121590, ptr %3615, align 4, !tbaa !25
  store i32 %.81599, ptr %3614, align 8, !tbaa !26
  store i32 %.181622, ptr %3613, align 4, !tbaa !27
  store i32 %3603, ptr %3612, align 8, !tbaa !28
  store i32 %.111634, ptr %3611, align 4, !tbaa !29
  store i32 %.101645, ptr %3610, align 8, !tbaa !30
  store i32 %.101658, ptr %3609, align 4, !tbaa !31
  store i32 %.141673, ptr %3608, align 8, !tbaa !32
  store i32 %.141688, ptr %3607, align 4, !tbaa !33
  store ptr %.141703, ptr %3606, align 8, !tbaa !34
  store ptr %.141718, ptr %3605, align 8, !tbaa !35
  store ptr %.141733, ptr %3604, align 8, !tbaa !36
  ret i32 %.01372
}

; Function Attrs: nounwind uwtable
declare hidden void @makeMaps_d(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @BZ2_hbCreateDecodeTables(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @BZ2_bz__AssertH__fail(i32 noundef) local_unnamed_addr #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #3

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.smax.v4i32(<4 x i32>, <4 x i32>) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.smin.v4i32(<4 x i32>, <4 x i32>) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.smin.v4i32(<4 x i32>) #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.smax.v4i32(<4 x i32>) #3

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { inlinehint 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 = { 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 #3 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #4 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"", !7, i64 0, !10, i64 8, !8, i64 12, !10, i64 16, !8, i64 20, !10, i64 24, !10, i64 28, !10, i64 32, !10, i64 36, !10, i64 40, !8, i64 44, !10, i64 48, !10, i64 52, !10, i64 56, !10, i64 60, !10, i64 64, !8, i64 68, !10, i64 1092, !8, i64 1096, !8, i64 2124, !7, i64 3152, !7, i64 3160, !7, i64 3168, !10, i64 3176, !10, i64 3180, !10, i64 3184, !10, i64 3188, !10, i64 3192, !8, i64 3196, !8, i64 3452, !8, i64 3468, !8, i64 3724, !8, i64 7820, !8, i64 7884, !8, i64 25886, !8, i64 43888, !8, i64 45436, !8, i64 51628, !8, i64 57820, !8, i64 64012, !10, i64 64036, !10, i64 64040, !10, i64 64044, !10, i64 64048, !10, i64 64052, !10, i64 64056, !10, i64 64060, !10, i64 64064, !10, i64 64068, !10, i64 64072, !10, i64 64076, !10, i64 64080, !10, i64 64084, !10, i64 64088, !10, i64 64092, !10, i64 64096, !10, i64 64100, !10, i64 64104, !10, i64 64108, !10, i64 64112, !10, i64 64116, !7, i64 64120, !7, i64 64128, !7, i64 64136}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!6, !10, i64 8}
!12 = !{!6, !10, i64 36}
!13 = !{!6, !10, i64 64036}
!14 = !{!6, !10, i64 64040}
!15 = !{!6, !10, i64 64044}
!16 = !{!6, !10, i64 64048}
!17 = !{!6, !10, i64 64052}
!18 = !{!6, !10, i64 64056}
!19 = !{!6, !10, i64 64060}
!20 = !{!6, !10, i64 64064}
!21 = !{!6, !10, i64 64068}
!22 = !{!6, !10, i64 64072}
!23 = !{!6, !10, i64 64076}
!24 = !{!6, !10, i64 64080}
!25 = !{!6, !10, i64 64084}
!26 = !{!6, !10, i64 64088}
!27 = !{!6, !10, i64 64092}
!28 = !{!6, !10, i64 64096}
!29 = !{!6, !10, i64 64100}
!30 = !{!6, !10, i64 64104}
!31 = !{!6, !10, i64 64108}
!32 = !{!6, !10, i64 64112}
!33 = !{!6, !10, i64 64116}
!34 = !{!6, !7, i64 64120}
!35 = !{!6, !7, i64 64128}
!36 = !{!6, !7, i64 64136}
!37 = !{!6, !10, i64 32}
!38 = !{!39, !10, i64 8}
!39 = !{!"", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !7, i64 24, !10, i64 32, !10, i64 36, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72}
!40 = !{!39, !7, i64 0}
!41 = !{!8, !8, i64 0}
!42 = !{!39, !10, i64 12}
!43 = !{!39, !10, i64 16}
!44 = !{!6, !10, i64 40}
!45 = !{!6, !8, i64 44}
!46 = !{!39, !7, i64 56}
!47 = !{!39, !7, i64 72}
!48 = !{!6, !7, i64 3160}
!49 = !{!6, !7, i64 3168}
!50 = !{!6, !7, i64 3152}
!51 = !{!6, !10, i64 48}
!52 = !{!6, !10, i64 3176}
!53 = !{!6, !8, i64 20}
!54 = !{!6, !10, i64 56}
!55 = distinct !{!55, !56}
!56 = !{!"llvm.loop.mustprogress"}
!57 = distinct !{!57, !56}
!58 = distinct !{!58, !56}
!59 = !{!6, !10, i64 3192}
!60 = distinct !{!60, !56}
!61 = distinct !{!61, !56, !62, !63}
!62 = !{!"llvm.loop.isvectorized", i32 1}
!63 = !{!"llvm.loop.unroll.runtime.disable"}
!64 = distinct !{!64, !56, !62, !63}
!65 = distinct !{!65, !56, !62}
!66 = distinct !{!66, !56, !62, !63}
!67 = distinct !{!67, !56, !62, !63}
!68 = distinct !{!68, !56, !62}
!69 = distinct !{!69, !56}
!70 = distinct !{!70, !56}
!71 = distinct !{!71, !56}
!72 = distinct !{!72, !56, !62, !63}
!73 = distinct !{!73, !56, !63, !62}
!74 = !{!10, !10, i64 0}
!75 = distinct !{!75, !56}
!76 = distinct !{!76, !56}
!77 = distinct !{!77, !56}
!78 = !{!79, !79, i64 0}
!79 = !{!"short", !8, i64 0}
!80 = distinct !{!80, !56}
!81 = distinct !{!81, !56}
!82 = distinct !{!82, !56, !62, !63}
!83 = distinct !{!83, !56, !62, !63}
!84 = distinct !{!84, !56}
!85 = distinct !{!85, !56, !62}
!86 = distinct !{!86, !56}
!87 = distinct !{!87, !56}
!88 = distinct !{!88, !56}
!89 = distinct !{!89, !56}
!90 = distinct !{!90, !56}
!91 = !{!6, !10, i64 16}
!92 = !{!6, !8, i64 12}
!93 = !{!6, !10, i64 3184}
!94 = distinct !{!94, !56}
!95 = distinct !{!95, !56}
!96 = !{!6, !10, i64 60}
!97 = !{!6, !10, i64 1092}
!98 = !{!6, !10, i64 24}
!99 = !{!6, !10, i64 28}
!100 = !{!6, !10, i64 64}
!101 = distinct !{!101, !56}
!102 = !{!6, !10, i64 3180}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalDCEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SCCPPass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass