; LLVM IR from OriginQ/QPanda-2 :: ThirdParty/bz2 (decompress)

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

@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@BZ2_rNums = external global [512 x i32], align 16

; Function Attrs: nounwind uwtable
define dso_local i32 @BZ2_decompress(ptr noundef %0) #0 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca i8, align 1
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %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 i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %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 i32, align 4
  %56 = alloca [6 x i8], align 1
  %57 = alloca i8, align 1
  %58 = alloca i8, align 1
  %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
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %4) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #4
  %90 = load ptr, ptr %3, align 8, !tbaa !5
  %91 = getelementptr inbounds %struct.DState, ptr %90, i32 0, i32 0
  %92 = load ptr, ptr %91, align 8, !tbaa !9
  store ptr %92, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %93 = load ptr, ptr %3, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct.DState, ptr %93, i32 0, i32 1
  %95 = load i32, ptr %94, align 8, !tbaa !12
  %96 = icmp eq i32 %95, 10
  br i1 %96, label %97, label %146

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

146:                                              ; preds = %97, %1
  %147 = load ptr, ptr %3, align 8, !tbaa !5
  %148 = getelementptr inbounds %struct.DState, ptr %147, i32 0, i32 40
  %149 = load i32, ptr %148, align 4, !tbaa !13
  store i32 %149, ptr %9, align 4, !tbaa !37
  %150 = load ptr, ptr %3, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.DState, ptr %150, i32 0, i32 41
  %152 = load i32, ptr %151, align 8, !tbaa !14
  store i32 %152, ptr %10, align 4, !tbaa !37
  %153 = load ptr, ptr %3, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.DState, ptr %153, i32 0, i32 42
  %155 = load i32, ptr %154, align 4, !tbaa !15
  store i32 %155, ptr %11, align 4, !tbaa !37
  %156 = load ptr, ptr %3, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.DState, ptr %156, i32 0, i32 43
  %158 = load i32, ptr %157, align 8, !tbaa !16
  store i32 %158, ptr %12, align 4, !tbaa !37
  %159 = load ptr, ptr %3, align 8, !tbaa !5
  %160 = getelementptr inbounds %struct.DState, ptr %159, i32 0, i32 44
  %161 = load i32, ptr %160, align 4, !tbaa !17
  store i32 %161, ptr %13, align 4, !tbaa !37
  %162 = load ptr, ptr %3, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.DState, ptr %162, i32 0, i32 45
  %164 = load i32, ptr %163, align 8, !tbaa !18
  store i32 %164, ptr %14, align 4, !tbaa !37
  %165 = load ptr, ptr %3, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.DState, ptr %165, i32 0, i32 46
  %167 = load i32, ptr %166, align 4, !tbaa !19
  store i32 %167, ptr %15, align 4, !tbaa !37
  %168 = load ptr, ptr %3, align 8, !tbaa !5
  %169 = getelementptr inbounds %struct.DState, ptr %168, i32 0, i32 47
  %170 = load i32, ptr %169, align 8, !tbaa !20
  store i32 %170, ptr %16, align 4, !tbaa !37
  %171 = load ptr, ptr %3, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.DState, ptr %171, i32 0, i32 48
  %173 = load i32, ptr %172, align 4, !tbaa !21
  store i32 %173, ptr %17, align 4, !tbaa !37
  %174 = load ptr, ptr %3, align 8, !tbaa !5
  %175 = getelementptr inbounds %struct.DState, ptr %174, i32 0, i32 49
  %176 = load i32, ptr %175, align 8, !tbaa !22
  store i32 %176, ptr %18, align 4, !tbaa !37
  %177 = load ptr, ptr %3, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.DState, ptr %177, i32 0, i32 50
  %179 = load i32, ptr %178, align 4, !tbaa !23
  store i32 %179, ptr %19, align 4, !tbaa !37
  %180 = load ptr, ptr %3, align 8, !tbaa !5
  %181 = getelementptr inbounds %struct.DState, ptr %180, i32 0, i32 51
  %182 = load i32, ptr %181, align 8, !tbaa !24
  store i32 %182, ptr %20, align 4, !tbaa !37
  %183 = load ptr, ptr %3, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.DState, ptr %183, i32 0, i32 52
  %185 = load i32, ptr %184, align 4, !tbaa !25
  store i32 %185, ptr %21, align 4, !tbaa !37
  %186 = load ptr, ptr %3, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.DState, ptr %186, i32 0, i32 53
  %188 = load i32, ptr %187, align 8, !tbaa !26
  store i32 %188, ptr %22, align 4, !tbaa !37
  %189 = load ptr, ptr %3, align 8, !tbaa !5
  %190 = getelementptr inbounds %struct.DState, ptr %189, i32 0, i32 54
  %191 = load i32, ptr %190, align 4, !tbaa !27
  store i32 %191, ptr %23, align 4, !tbaa !37
  %192 = load ptr, ptr %3, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.DState, ptr %192, i32 0, i32 55
  %194 = load i32, ptr %193, align 8, !tbaa !28
  store i32 %194, ptr %24, align 4, !tbaa !37
  %195 = load ptr, ptr %3, align 8, !tbaa !5
  %196 = getelementptr inbounds %struct.DState, ptr %195, i32 0, i32 56
  %197 = load i32, ptr %196, align 4, !tbaa !29
  store i32 %197, ptr %25, align 4, !tbaa !37
  %198 = load ptr, ptr %3, align 8, !tbaa !5
  %199 = getelementptr inbounds %struct.DState, ptr %198, i32 0, i32 57
  %200 = load i32, ptr %199, align 8, !tbaa !30
  store i32 %200, ptr %26, align 4, !tbaa !37
  %201 = load ptr, ptr %3, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.DState, ptr %201, i32 0, i32 58
  %203 = load i32, ptr %202, align 4, !tbaa !31
  store i32 %203, ptr %27, align 4, !tbaa !37
  %204 = load ptr, ptr %3, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.DState, ptr %204, i32 0, i32 59
  %206 = load i32, ptr %205, align 8, !tbaa !32
  store i32 %206, ptr %28, align 4, !tbaa !37
  %207 = load ptr, ptr %3, align 8, !tbaa !5
  %208 = getelementptr inbounds %struct.DState, ptr %207, i32 0, i32 60
  %209 = load i32, ptr %208, align 4, !tbaa !33
  store i32 %209, ptr %29, align 4, !tbaa !37
  %210 = load ptr, ptr %3, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.DState, ptr %210, i32 0, i32 61
  %212 = load ptr, ptr %211, align 8, !tbaa !34
  store ptr %212, ptr %30, align 8, !tbaa !5
  %213 = load ptr, ptr %3, align 8, !tbaa !5
  %214 = getelementptr inbounds %struct.DState, ptr %213, i32 0, i32 62
  %215 = load ptr, ptr %214, align 8, !tbaa !35
  store ptr %215, ptr %31, align 8, !tbaa !5
  %216 = load ptr, ptr %3, align 8, !tbaa !5
  %217 = getelementptr inbounds %struct.DState, ptr %216, i32 0, i32 63
  %218 = load ptr, ptr %217, align 8, !tbaa !36
  store ptr %218, ptr %32, align 8, !tbaa !5
  store i32 0, ptr %5, align 4, !tbaa !37
  %219 = load ptr, ptr %3, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.DState, ptr %219, i32 0, i32 1
  %221 = load i32, ptr %220, align 8, !tbaa !12
  switch i32 %221, label %5890 [
    i32 10, label %222
    i32 11, label %312
    i32 12, label %402
    i32 13, label %492
    i32 14, label %667
    i32 15, label %762
    i32 16, label %852
    i32 17, label %942
    i32 18, label %1032
    i32 19, label %1122
    i32 20, label %1229
    i32 21, label %1323
    i32 22, label %1417
    i32 23, label %1511
    i32 24, label %1605
    i32 25, label %1694
    i32 26, label %1788
    i32 27, label %1882
    i32 28, label %1997
    i32 29, label %2131
    i32 30, label %2249
    i32 31, label %2340
    i32 32, label %2435
    i32 33, label %2615
    i32 34, label %2713
    i32 35, label %2803
    i32 36, label %3117
    i32 37, label %3224
    i32 38, label %3425
    i32 39, label %3532
    i32 40, label %4094
    i32 41, label %4201
    i32 42, label %5060
    i32 43, label %5150
    i32 44, label %5240
    i32 45, label %5330
    i32 46, label %5420
    i32 47, label %5512
    i32 48, label %5606
    i32 49, label %5700
    i32 50, label %5794
  ]

222:                                              ; preds = %146
  %223 = load ptr, ptr %3, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.DState, ptr %223, i32 0, i32 1
  store i32 10, ptr %224, align 8, !tbaa !12
  br label %225

225:                                              ; preds = %305, %222
  br label %226

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

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

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

254:                                              ; preds = %247
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

305:                                              ; preds = %298, %255
  br label %225

306:                                              ; preds = %231
  %307 = load i8, ptr %4, align 1, !tbaa !40
  %308 = zext i8 %307 to i32
  %309 = icmp ne i32 %308, 66
  br i1 %309, label %310, label %311

310:                                              ; preds = %306
  store i32 -5, ptr %5, align 4, !tbaa !37
  br label %5892

311:                                              ; preds = %306
  br label %312

312:                                              ; preds = %311, %146
  %313 = load ptr, ptr %3, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.DState, ptr %313, i32 0, i32 1
  store i32 11, ptr %314, align 8, !tbaa !12
  br label %315

315:                                              ; preds = %395, %312
  br label %316

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

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

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

344:                                              ; preds = %337
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

395:                                              ; preds = %388, %345
  br label %315

396:                                              ; preds = %321
  %397 = load i8, ptr %4, align 1, !tbaa !40
  %398 = zext i8 %397 to i32
  %399 = icmp ne i32 %398, 90
  br i1 %399, label %400, label %401

400:                                              ; preds = %396
  store i32 -5, ptr %5, align 4, !tbaa !37
  br label %5892

401:                                              ; preds = %396
  br label %402

402:                                              ; preds = %401, %146
  %403 = load ptr, ptr %3, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.DState, ptr %403, i32 0, i32 1
  store i32 12, ptr %404, align 8, !tbaa !12
  br label %405

405:                                              ; preds = %485, %402
  br label %406

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

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

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

434:                                              ; preds = %427
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

485:                                              ; preds = %478, %435
  br label %405

486:                                              ; preds = %411
  %487 = load i8, ptr %4, align 1, !tbaa !40
  %488 = zext i8 %487 to i32
  %489 = icmp ne i32 %488, 104
  br i1 %489, label %490, label %491

490:                                              ; preds = %486
  store i32 -5, ptr %5, align 4, !tbaa !37
  br label %5892

491:                                              ; preds = %486
  br label %492

492:                                              ; preds = %491, %146
  %493 = load ptr, ptr %3, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.DState, ptr %493, i32 0, i32 1
  store i32 13, ptr %494, align 8, !tbaa !12
  br label %495

495:                                              ; preds = %576, %492
  br label %496

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

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

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

525:                                              ; preds = %518
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

576:                                              ; preds = %569, %526
  br label %495

577:                                              ; preds = %501
  %578 = load ptr, ptr %3, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.DState, ptr %578, i32 0, i32 9
  %580 = load i32, ptr %579, align 8, !tbaa !46
  %581 = icmp slt i32 %580, 49
  br i1 %581, label %587, label %582

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

587:                                              ; preds = %582, %577
  store i32 -5, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

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

641:                                              ; preds = %636, %597
  store i32 -3, ptr %5, align 4, !tbaa !37
  br label %5892

642:                                              ; preds = %636
  br label %666

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

664:                                              ; preds = %643
  store i32 -3, ptr %5, align 4, !tbaa !37
  br label %5892

665:                                              ; preds = %643
  br label %666

666:                                              ; preds = %665, %642
  br label %667

667:                                              ; preds = %666, %146
  %668 = load ptr, ptr %3, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.DState, ptr %668, i32 0, i32 1
  store i32 14, ptr %669, align 8, !tbaa !12
  br label %670

670:                                              ; preds = %750, %667
  br label %671

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

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

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

699:                                              ; preds = %692
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

750:                                              ; preds = %743, %700
  br label %670

751:                                              ; preds = %676
  %752 = load i8, ptr %4, align 1, !tbaa !40
  %753 = zext i8 %752 to i32
  %754 = icmp eq i32 %753, 23
  br i1 %754, label %755, label %756

755:                                              ; preds = %751
  br label %5059

756:                                              ; preds = %751
  %757 = load i8, ptr %4, align 1, !tbaa !40
  %758 = zext i8 %757 to i32
  %759 = icmp ne i32 %758, 49
  br i1 %759, label %760, label %761

760:                                              ; preds = %756
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

761:                                              ; preds = %756
  br label %762

762:                                              ; preds = %761, %146
  %763 = load ptr, ptr %3, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.DState, ptr %763, i32 0, i32 1
  store i32 15, ptr %764, align 8, !tbaa !12
  br label %765

765:                                              ; preds = %845, %762
  br label %766

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

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

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

794:                                              ; preds = %787
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

845:                                              ; preds = %838, %795
  br label %765

846:                                              ; preds = %771
  %847 = load i8, ptr %4, align 1, !tbaa !40
  %848 = zext i8 %847 to i32
  %849 = icmp ne i32 %848, 65
  br i1 %849, label %850, label %851

850:                                              ; preds = %846
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

851:                                              ; preds = %846
  br label %852

852:                                              ; preds = %851, %146
  %853 = load ptr, ptr %3, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.DState, ptr %853, i32 0, i32 1
  store i32 16, ptr %854, align 8, !tbaa !12
  br label %855

855:                                              ; preds = %935, %852
  br label %856

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

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

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

884:                                              ; preds = %877
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

935:                                              ; preds = %928, %885
  br label %855

936:                                              ; preds = %861
  %937 = load i8, ptr %4, align 1, !tbaa !40
  %938 = zext i8 %937 to i32
  %939 = icmp ne i32 %938, 89
  br i1 %939, label %940, label %941

940:                                              ; preds = %936
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

941:                                              ; preds = %936
  br label %942

942:                                              ; preds = %941, %146
  %943 = load ptr, ptr %3, align 8, !tbaa !5
  %944 = getelementptr inbounds %struct.DState, ptr %943, i32 0, i32 1
  store i32 17, ptr %944, align 8, !tbaa !12
  br label %945

945:                                              ; preds = %1025, %942
  br label %946

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

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

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

974:                                              ; preds = %967
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

1025:                                             ; preds = %1018, %975
  br label %945

1026:                                             ; preds = %951
  %1027 = load i8, ptr %4, align 1, !tbaa !40
  %1028 = zext i8 %1027 to i32
  %1029 = icmp ne i32 %1028, 38
  br i1 %1029, label %1030, label %1031

1030:                                             ; preds = %1026
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

1031:                                             ; preds = %1026
  br label %1032

1032:                                             ; preds = %1031, %146
  %1033 = load ptr, ptr %3, align 8, !tbaa !5
  %1034 = getelementptr inbounds %struct.DState, ptr %1033, i32 0, i32 1
  store i32 18, ptr %1034, align 8, !tbaa !12
  br label %1035

1035:                                             ; preds = %1115, %1032
  br label %1036

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

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

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

1064:                                             ; preds = %1057
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

1115:                                             ; preds = %1108, %1065
  br label %1035

1116:                                             ; preds = %1041
  %1117 = load i8, ptr %4, align 1, !tbaa !40
  %1118 = zext i8 %1117 to i32
  %1119 = icmp ne i32 %1118, 83
  br i1 %1119, label %1120, label %1121

1120:                                             ; preds = %1116
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

1121:                                             ; preds = %1116
  br label %1122

1122:                                             ; preds = %1121, %146
  %1123 = load ptr, ptr %3, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.DState, ptr %1123, i32 0, i32 1
  store i32 19, ptr %1124, align 8, !tbaa !12
  br label %1125

1125:                                             ; preds = %1205, %1122
  br label %1126

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

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

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

1154:                                             ; preds = %1147
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

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

1205:                                             ; preds = %1198, %1155
  br label %1125

1206:                                             ; preds = %1131
  %1207 = load i8, ptr %4, align 1, !tbaa !40
  %1208 = zext i8 %1207 to i32
  %1209 = icmp ne i32 %1208, 89
  br i1 %1209, label %1210, label %1211

1210:                                             ; preds = %1206
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

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

1220:                                             ; preds = %1211
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !5
  %1222 = load ptr, ptr %3, align 8, !tbaa !5
  %1223 = getelementptr inbounds %struct.DState, ptr %1222, i32 0, i32 11
  %1224 = load i32, ptr %1223, align 8, !tbaa !53
  %1225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1221, ptr noundef @.str, i32 noundef %1224) #4
  br label %1226

1226:                                             ; preds = %1220, %1211
  %1227 = load ptr, ptr %3, align 8, !tbaa !5
  %1228 = getelementptr inbounds %struct.DState, ptr %1227, i32 0, i32 23
  store i32 0, ptr %1228, align 8, !tbaa !55
  br label %1229

1229:                                             ; preds = %1226, %146
  %1230 = load ptr, ptr %3, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.DState, ptr %1230, i32 0, i32 1
  store i32 20, ptr %1231, align 8, !tbaa !12
  br label %1232

1232:                                             ; preds = %1312, %1229
  br label %1233

1233:                                             ; preds = %1232
  %1234 = load ptr, ptr %3, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.DState, ptr %1234, i32 0, i32 8
  %1236 = load i32, ptr %1235, align 4, !tbaa !38
  %1237 = icmp sge i32 %1236, 8
  br i1 %1237, label %1238, label %1254

1238:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #4
  %1239 = load ptr, ptr %3, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.DState, ptr %1239, i32 0, i32 7
  %1241 = load i32, ptr %1240, align 8, !tbaa !39
  %1242 = load ptr, ptr %3, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.DState, ptr %1242, i32 0, i32 8
  %1244 = load i32, ptr %1243, align 4, !tbaa !38
  %1245 = sub nsw i32 %1244, 8
  %1246 = lshr i32 %1241, %1245
  %1247 = and i32 %1246, 255
  store i32 %1247, ptr %43, align 4, !tbaa !37
  %1248 = load ptr, ptr %3, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.DState, ptr %1248, i32 0, i32 8
  %1250 = load i32, ptr %1249, align 4, !tbaa !38
  %1251 = sub nsw i32 %1250, 8
  store i32 %1251, ptr %1249, align 4, !tbaa !38
  %1252 = load i32, ptr %43, align 4, !tbaa !37
  %1253 = trunc i32 %1252 to i8
  store i8 %1253, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #4
  br label %1313

1254:                                             ; preds = %1233
  %1255 = load ptr, ptr %3, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.DState, ptr %1255, i32 0, i32 0
  %1257 = load ptr, ptr %1256, align 8, !tbaa !9
  %1258 = getelementptr inbounds %struct.bz_stream, ptr %1257, i32 0, i32 1
  %1259 = load i32, ptr %1258, align 8, !tbaa !41
  %1260 = icmp eq i32 %1259, 0
  br i1 %1260, label %1261, label %1262

1261:                                             ; preds = %1254
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1305:                                             ; preds = %1262
  %1306 = load ptr, ptr %3, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.DState, ptr %1306, i32 0, i32 0
  %1308 = load ptr, ptr %1307, align 8, !tbaa !9
  %1309 = getelementptr inbounds %struct.bz_stream, ptr %1308, i32 0, i32 3
  %1310 = load i32, ptr %1309, align 8, !tbaa !45
  %1311 = add i32 %1310, 1
  store i32 %1311, ptr %1309, align 8, !tbaa !45
  br label %1312

1312:                                             ; preds = %1305, %1262
  br label %1232

1313:                                             ; preds = %1238
  %1314 = load ptr, ptr %3, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.DState, ptr %1314, i32 0, i32 23
  %1316 = load i32, ptr %1315, align 8, !tbaa !55
  %1317 = shl i32 %1316, 8
  %1318 = load i8, ptr %4, align 1, !tbaa !40
  %1319 = zext i8 %1318 to i32
  %1320 = or i32 %1317, %1319
  %1321 = load ptr, ptr %3, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.DState, ptr %1321, i32 0, i32 23
  store i32 %1320, ptr %1322, align 8, !tbaa !55
  br label %1323

1323:                                             ; preds = %1313, %146
  %1324 = load ptr, ptr %3, align 8, !tbaa !5
  %1325 = getelementptr inbounds %struct.DState, ptr %1324, i32 0, i32 1
  store i32 21, ptr %1325, align 8, !tbaa !12
  br label %1326

1326:                                             ; preds = %1406, %1323
  br label %1327

1327:                                             ; preds = %1326
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.DState, ptr %1328, i32 0, i32 8
  %1330 = load i32, ptr %1329, align 4, !tbaa !38
  %1331 = icmp sge i32 %1330, 8
  br i1 %1331, label %1332, label %1348

1332:                                             ; preds = %1327
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #4
  %1333 = load ptr, ptr %3, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.DState, ptr %1333, i32 0, i32 7
  %1335 = load i32, ptr %1334, align 8, !tbaa !39
  %1336 = load ptr, ptr %3, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.DState, ptr %1336, i32 0, i32 8
  %1338 = load i32, ptr %1337, align 4, !tbaa !38
  %1339 = sub nsw i32 %1338, 8
  %1340 = lshr i32 %1335, %1339
  %1341 = and i32 %1340, 255
  store i32 %1341, ptr %44, align 4, !tbaa !37
  %1342 = load ptr, ptr %3, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.DState, ptr %1342, i32 0, i32 8
  %1344 = load i32, ptr %1343, align 4, !tbaa !38
  %1345 = sub nsw i32 %1344, 8
  store i32 %1345, ptr %1343, align 4, !tbaa !38
  %1346 = load i32, ptr %44, align 4, !tbaa !37
  %1347 = trunc i32 %1346 to i8
  store i8 %1347, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #4
  br label %1407

1348:                                             ; preds = %1327
  %1349 = load ptr, ptr %3, align 8, !tbaa !5
  %1350 = getelementptr inbounds %struct.DState, ptr %1349, i32 0, i32 0
  %1351 = load ptr, ptr %1350, align 8, !tbaa !9
  %1352 = getelementptr inbounds %struct.bz_stream, ptr %1351, i32 0, i32 1
  %1353 = load i32, ptr %1352, align 8, !tbaa !41
  %1354 = icmp eq i32 %1353, 0
  br i1 %1354, label %1355, label %1356

1355:                                             ; preds = %1348
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1399:                                             ; preds = %1356
  %1400 = load ptr, ptr %3, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.DState, ptr %1400, i32 0, i32 0
  %1402 = load ptr, ptr %1401, align 8, !tbaa !9
  %1403 = getelementptr inbounds %struct.bz_stream, ptr %1402, i32 0, i32 3
  %1404 = load i32, ptr %1403, align 8, !tbaa !45
  %1405 = add i32 %1404, 1
  store i32 %1405, ptr %1403, align 8, !tbaa !45
  br label %1406

1406:                                             ; preds = %1399, %1356
  br label %1326

1407:                                             ; preds = %1332
  %1408 = load ptr, ptr %3, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.DState, ptr %1408, i32 0, i32 23
  %1410 = load i32, ptr %1409, align 8, !tbaa !55
  %1411 = shl i32 %1410, 8
  %1412 = load i8, ptr %4, align 1, !tbaa !40
  %1413 = zext i8 %1412 to i32
  %1414 = or i32 %1411, %1413
  %1415 = load ptr, ptr %3, align 8, !tbaa !5
  %1416 = getelementptr inbounds %struct.DState, ptr %1415, i32 0, i32 23
  store i32 %1414, ptr %1416, align 8, !tbaa !55
  br label %1417

1417:                                             ; preds = %1407, %146
  %1418 = load ptr, ptr %3, align 8, !tbaa !5
  %1419 = getelementptr inbounds %struct.DState, ptr %1418, i32 0, i32 1
  store i32 22, ptr %1419, align 8, !tbaa !12
  br label %1420

1420:                                             ; preds = %1500, %1417
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load ptr, ptr %3, align 8, !tbaa !5
  %1423 = getelementptr inbounds %struct.DState, ptr %1422, i32 0, i32 8
  %1424 = load i32, ptr %1423, align 4, !tbaa !38
  %1425 = icmp sge i32 %1424, 8
  br i1 %1425, label %1426, label %1442

1426:                                             ; preds = %1421
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #4
  %1427 = load ptr, ptr %3, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.DState, ptr %1427, i32 0, i32 7
  %1429 = load i32, ptr %1428, align 8, !tbaa !39
  %1430 = load ptr, ptr %3, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.DState, ptr %1430, i32 0, i32 8
  %1432 = load i32, ptr %1431, align 4, !tbaa !38
  %1433 = sub nsw i32 %1432, 8
  %1434 = lshr i32 %1429, %1433
  %1435 = and i32 %1434, 255
  store i32 %1435, ptr %45, align 4, !tbaa !37
  %1436 = load ptr, ptr %3, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.DState, ptr %1436, i32 0, i32 8
  %1438 = load i32, ptr %1437, align 4, !tbaa !38
  %1439 = sub nsw i32 %1438, 8
  store i32 %1439, ptr %1437, align 4, !tbaa !38
  %1440 = load i32, ptr %45, align 4, !tbaa !37
  %1441 = trunc i32 %1440 to i8
  store i8 %1441, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #4
  br label %1501

1442:                                             ; preds = %1421
  %1443 = load ptr, ptr %3, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.DState, ptr %1443, i32 0, i32 0
  %1445 = load ptr, ptr %1444, align 8, !tbaa !9
  %1446 = getelementptr inbounds %struct.bz_stream, ptr %1445, i32 0, i32 1
  %1447 = load i32, ptr %1446, align 8, !tbaa !41
  %1448 = icmp eq i32 %1447, 0
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1442
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1493:                                             ; preds = %1450
  %1494 = load ptr, ptr %3, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.DState, ptr %1494, i32 0, i32 0
  %1496 = load ptr, ptr %1495, align 8, !tbaa !9
  %1497 = getelementptr inbounds %struct.bz_stream, ptr %1496, i32 0, i32 3
  %1498 = load i32, ptr %1497, align 8, !tbaa !45
  %1499 = add i32 %1498, 1
  store i32 %1499, ptr %1497, align 8, !tbaa !45
  br label %1500

1500:                                             ; preds = %1493, %1450
  br label %1420

1501:                                             ; preds = %1426
  %1502 = load ptr, ptr %3, align 8, !tbaa !5
  %1503 = getelementptr inbounds %struct.DState, ptr %1502, i32 0, i32 23
  %1504 = load i32, ptr %1503, align 8, !tbaa !55
  %1505 = shl i32 %1504, 8
  %1506 = load i8, ptr %4, align 1, !tbaa !40
  %1507 = zext i8 %1506 to i32
  %1508 = or i32 %1505, %1507
  %1509 = load ptr, ptr %3, align 8, !tbaa !5
  %1510 = getelementptr inbounds %struct.DState, ptr %1509, i32 0, i32 23
  store i32 %1508, ptr %1510, align 8, !tbaa !55
  br label %1511

1511:                                             ; preds = %1501, %146
  %1512 = load ptr, ptr %3, align 8, !tbaa !5
  %1513 = getelementptr inbounds %struct.DState, ptr %1512, i32 0, i32 1
  store i32 23, ptr %1513, align 8, !tbaa !12
  br label %1514

1514:                                             ; preds = %1594, %1511
  br label %1515

1515:                                             ; preds = %1514
  %1516 = load ptr, ptr %3, align 8, !tbaa !5
  %1517 = getelementptr inbounds %struct.DState, ptr %1516, i32 0, i32 8
  %1518 = load i32, ptr %1517, align 4, !tbaa !38
  %1519 = icmp sge i32 %1518, 8
  br i1 %1519, label %1520, label %1536

1520:                                             ; preds = %1515
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  %1521 = load ptr, ptr %3, align 8, !tbaa !5
  %1522 = getelementptr inbounds %struct.DState, ptr %1521, i32 0, i32 7
  %1523 = load i32, ptr %1522, align 8, !tbaa !39
  %1524 = load ptr, ptr %3, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.DState, ptr %1524, i32 0, i32 8
  %1526 = load i32, ptr %1525, align 4, !tbaa !38
  %1527 = sub nsw i32 %1526, 8
  %1528 = lshr i32 %1523, %1527
  %1529 = and i32 %1528, 255
  store i32 %1529, ptr %46, align 4, !tbaa !37
  %1530 = load ptr, ptr %3, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.DState, ptr %1530, i32 0, i32 8
  %1532 = load i32, ptr %1531, align 4, !tbaa !38
  %1533 = sub nsw i32 %1532, 8
  store i32 %1533, ptr %1531, align 4, !tbaa !38
  %1534 = load i32, ptr %46, align 4, !tbaa !37
  %1535 = trunc i32 %1534 to i8
  store i8 %1535, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  br label %1595

1536:                                             ; preds = %1515
  %1537 = load ptr, ptr %3, align 8, !tbaa !5
  %1538 = getelementptr inbounds %struct.DState, ptr %1537, i32 0, i32 0
  %1539 = load ptr, ptr %1538, align 8, !tbaa !9
  %1540 = getelementptr inbounds %struct.bz_stream, ptr %1539, i32 0, i32 1
  %1541 = load i32, ptr %1540, align 8, !tbaa !41
  %1542 = icmp eq i32 %1541, 0
  br i1 %1542, label %1543, label %1544

1543:                                             ; preds = %1536
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1587:                                             ; preds = %1544
  %1588 = load ptr, ptr %3, align 8, !tbaa !5
  %1589 = getelementptr inbounds %struct.DState, ptr %1588, i32 0, i32 0
  %1590 = load ptr, ptr %1589, align 8, !tbaa !9
  %1591 = getelementptr inbounds %struct.bz_stream, ptr %1590, i32 0, i32 3
  %1592 = load i32, ptr %1591, align 8, !tbaa !45
  %1593 = add i32 %1592, 1
  store i32 %1593, ptr %1591, align 8, !tbaa !45
  br label %1594

1594:                                             ; preds = %1587, %1544
  br label %1514

1595:                                             ; preds = %1520
  %1596 = load ptr, ptr %3, align 8, !tbaa !5
  %1597 = getelementptr inbounds %struct.DState, ptr %1596, i32 0, i32 23
  %1598 = load i32, ptr %1597, align 8, !tbaa !55
  %1599 = shl i32 %1598, 8
  %1600 = load i8, ptr %4, align 1, !tbaa !40
  %1601 = zext i8 %1600 to i32
  %1602 = or i32 %1599, %1601
  %1603 = load ptr, ptr %3, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.DState, ptr %1603, i32 0, i32 23
  store i32 %1602, ptr %1604, align 8, !tbaa !55
  br label %1605

1605:                                             ; preds = %1595, %146
  %1606 = load ptr, ptr %3, align 8, !tbaa !5
  %1607 = getelementptr inbounds %struct.DState, ptr %1606, i32 0, i32 1
  store i32 24, ptr %1607, align 8, !tbaa !12
  br label %1608

1608:                                             ; preds = %1690, %1605
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load ptr, ptr %3, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.DState, ptr %1610, i32 0, i32 8
  %1612 = load i32, ptr %1611, align 4, !tbaa !38
  %1613 = icmp sge i32 %1612, 1
  br i1 %1613, label %1614, label %1632

1614:                                             ; preds = %1609
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #4
  %1615 = load ptr, ptr %3, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.DState, ptr %1615, i32 0, i32 7
  %1617 = load i32, ptr %1616, align 8, !tbaa !39
  %1618 = load ptr, ptr %3, align 8, !tbaa !5
  %1619 = getelementptr inbounds %struct.DState, ptr %1618, i32 0, i32 8
  %1620 = load i32, ptr %1619, align 4, !tbaa !38
  %1621 = sub nsw i32 %1620, 1
  %1622 = lshr i32 %1617, %1621
  %1623 = and i32 %1622, 1
  store i32 %1623, ptr %47, align 4, !tbaa !37
  %1624 = load ptr, ptr %3, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.DState, ptr %1624, i32 0, i32 8
  %1626 = load i32, ptr %1625, align 4, !tbaa !38
  %1627 = sub nsw i32 %1626, 1
  store i32 %1627, ptr %1625, align 4, !tbaa !38
  %1628 = load i32, ptr %47, align 4, !tbaa !37
  %1629 = trunc i32 %1628 to i8
  %1630 = load ptr, ptr %3, align 8, !tbaa !5
  %1631 = getelementptr inbounds %struct.DState, ptr %1630, i32 0, i32 4
  store i8 %1629, ptr %1631, align 4, !tbaa !56
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #4
  br label %1691

1632:                                             ; preds = %1609
  %1633 = load ptr, ptr %3, align 8, !tbaa !5
  %1634 = getelementptr inbounds %struct.DState, ptr %1633, i32 0, i32 0
  %1635 = load ptr, ptr %1634, align 8, !tbaa !9
  %1636 = getelementptr inbounds %struct.bz_stream, ptr %1635, i32 0, i32 1
  %1637 = load i32, ptr %1636, align 8, !tbaa !41
  %1638 = icmp eq i32 %1637, 0
  br i1 %1638, label %1639, label %1640

1639:                                             ; preds = %1632
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1683:                                             ; preds = %1640
  %1684 = load ptr, ptr %3, align 8, !tbaa !5
  %1685 = getelementptr inbounds %struct.DState, ptr %1684, i32 0, i32 0
  %1686 = load ptr, ptr %1685, align 8, !tbaa !9
  %1687 = getelementptr inbounds %struct.bz_stream, ptr %1686, i32 0, i32 3
  %1688 = load i32, ptr %1687, align 8, !tbaa !45
  %1689 = add i32 %1688, 1
  store i32 %1689, ptr %1687, align 8, !tbaa !45
  br label %1690

1690:                                             ; preds = %1683, %1640
  br label %1608

1691:                                             ; preds = %1614
  %1692 = load ptr, ptr %3, align 8, !tbaa !5
  %1693 = getelementptr inbounds %struct.DState, ptr %1692, i32 0, i32 13
  store i32 0, ptr %1693, align 8, !tbaa !57
  br label %1694

1694:                                             ; preds = %1691, %146
  %1695 = load ptr, ptr %3, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.DState, ptr %1695, i32 0, i32 1
  store i32 25, ptr %1696, align 8, !tbaa !12
  br label %1697

1697:                                             ; preds = %1777, %1694
  br label %1698

1698:                                             ; preds = %1697
  %1699 = load ptr, ptr %3, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.DState, ptr %1699, i32 0, i32 8
  %1701 = load i32, ptr %1700, align 4, !tbaa !38
  %1702 = icmp sge i32 %1701, 8
  br i1 %1702, label %1703, label %1719

1703:                                             ; preds = %1698
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #4
  %1704 = load ptr, ptr %3, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.DState, ptr %1704, i32 0, i32 7
  %1706 = load i32, ptr %1705, align 8, !tbaa !39
  %1707 = load ptr, ptr %3, align 8, !tbaa !5
  %1708 = getelementptr inbounds %struct.DState, ptr %1707, i32 0, i32 8
  %1709 = load i32, ptr %1708, align 4, !tbaa !38
  %1710 = sub nsw i32 %1709, 8
  %1711 = lshr i32 %1706, %1710
  %1712 = and i32 %1711, 255
  store i32 %1712, ptr %48, align 4, !tbaa !37
  %1713 = load ptr, ptr %3, align 8, !tbaa !5
  %1714 = getelementptr inbounds %struct.DState, ptr %1713, i32 0, i32 8
  %1715 = load i32, ptr %1714, align 4, !tbaa !38
  %1716 = sub nsw i32 %1715, 8
  store i32 %1716, ptr %1714, align 4, !tbaa !38
  %1717 = load i32, ptr %48, align 4, !tbaa !37
  %1718 = trunc i32 %1717 to i8
  store i8 %1718, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #4
  br label %1778

1719:                                             ; preds = %1698
  %1720 = load ptr, ptr %3, align 8, !tbaa !5
  %1721 = getelementptr inbounds %struct.DState, ptr %1720, i32 0, i32 0
  %1722 = load ptr, ptr %1721, align 8, !tbaa !9
  %1723 = getelementptr inbounds %struct.bz_stream, ptr %1722, i32 0, i32 1
  %1724 = load i32, ptr %1723, align 8, !tbaa !41
  %1725 = icmp eq i32 %1724, 0
  br i1 %1725, label %1726, label %1727

1726:                                             ; preds = %1719
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1770:                                             ; preds = %1727
  %1771 = load ptr, ptr %3, align 8, !tbaa !5
  %1772 = getelementptr inbounds %struct.DState, ptr %1771, i32 0, i32 0
  %1773 = load ptr, ptr %1772, align 8, !tbaa !9
  %1774 = getelementptr inbounds %struct.bz_stream, ptr %1773, i32 0, i32 3
  %1775 = load i32, ptr %1774, align 8, !tbaa !45
  %1776 = add i32 %1775, 1
  store i32 %1776, ptr %1774, align 8, !tbaa !45
  br label %1777

1777:                                             ; preds = %1770, %1727
  br label %1697

1778:                                             ; preds = %1703
  %1779 = load ptr, ptr %3, align 8, !tbaa !5
  %1780 = getelementptr inbounds %struct.DState, ptr %1779, i32 0, i32 13
  %1781 = load i32, ptr %1780, align 8, !tbaa !57
  %1782 = shl i32 %1781, 8
  %1783 = load i8, ptr %4, align 1, !tbaa !40
  %1784 = zext i8 %1783 to i32
  %1785 = or i32 %1782, %1784
  %1786 = load ptr, ptr %3, align 8, !tbaa !5
  %1787 = getelementptr inbounds %struct.DState, ptr %1786, i32 0, i32 13
  store i32 %1785, ptr %1787, align 8, !tbaa !57
  br label %1788

1788:                                             ; preds = %1778, %146
  %1789 = load ptr, ptr %3, align 8, !tbaa !5
  %1790 = getelementptr inbounds %struct.DState, ptr %1789, i32 0, i32 1
  store i32 26, ptr %1790, align 8, !tbaa !12
  br label %1791

1791:                                             ; preds = %1871, %1788
  br label %1792

1792:                                             ; preds = %1791
  %1793 = load ptr, ptr %3, align 8, !tbaa !5
  %1794 = getelementptr inbounds %struct.DState, ptr %1793, i32 0, i32 8
  %1795 = load i32, ptr %1794, align 4, !tbaa !38
  %1796 = icmp sge i32 %1795, 8
  br i1 %1796, label %1797, label %1813

1797:                                             ; preds = %1792
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #4
  %1798 = load ptr, ptr %3, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.DState, ptr %1798, i32 0, i32 7
  %1800 = load i32, ptr %1799, align 8, !tbaa !39
  %1801 = load ptr, ptr %3, align 8, !tbaa !5
  %1802 = getelementptr inbounds %struct.DState, ptr %1801, i32 0, i32 8
  %1803 = load i32, ptr %1802, align 4, !tbaa !38
  %1804 = sub nsw i32 %1803, 8
  %1805 = lshr i32 %1800, %1804
  %1806 = and i32 %1805, 255
  store i32 %1806, ptr %49, align 4, !tbaa !37
  %1807 = load ptr, ptr %3, align 8, !tbaa !5
  %1808 = getelementptr inbounds %struct.DState, ptr %1807, i32 0, i32 8
  %1809 = load i32, ptr %1808, align 4, !tbaa !38
  %1810 = sub nsw i32 %1809, 8
  store i32 %1810, ptr %1808, align 4, !tbaa !38
  %1811 = load i32, ptr %49, align 4, !tbaa !37
  %1812 = trunc i32 %1811 to i8
  store i8 %1812, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #4
  br label %1872

1813:                                             ; preds = %1792
  %1814 = load ptr, ptr %3, align 8, !tbaa !5
  %1815 = getelementptr inbounds %struct.DState, ptr %1814, i32 0, i32 0
  %1816 = load ptr, ptr %1815, align 8, !tbaa !9
  %1817 = getelementptr inbounds %struct.bz_stream, ptr %1816, i32 0, i32 1
  %1818 = load i32, ptr %1817, align 8, !tbaa !41
  %1819 = icmp eq i32 %1818, 0
  br i1 %1819, label %1820, label %1821

1820:                                             ; preds = %1813
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1864:                                             ; preds = %1821
  %1865 = load ptr, ptr %3, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.DState, ptr %1865, i32 0, i32 0
  %1867 = load ptr, ptr %1866, align 8, !tbaa !9
  %1868 = getelementptr inbounds %struct.bz_stream, ptr %1867, i32 0, i32 3
  %1869 = load i32, ptr %1868, align 8, !tbaa !45
  %1870 = add i32 %1869, 1
  store i32 %1870, ptr %1868, align 8, !tbaa !45
  br label %1871

1871:                                             ; preds = %1864, %1821
  br label %1791

1872:                                             ; preds = %1797
  %1873 = load ptr, ptr %3, align 8, !tbaa !5
  %1874 = getelementptr inbounds %struct.DState, ptr %1873, i32 0, i32 13
  %1875 = load i32, ptr %1874, align 8, !tbaa !57
  %1876 = shl i32 %1875, 8
  %1877 = load i8, ptr %4, align 1, !tbaa !40
  %1878 = zext i8 %1877 to i32
  %1879 = or i32 %1876, %1878
  %1880 = load ptr, ptr %3, align 8, !tbaa !5
  %1881 = getelementptr inbounds %struct.DState, ptr %1880, i32 0, i32 13
  store i32 %1879, ptr %1881, align 8, !tbaa !57
  br label %1882

1882:                                             ; preds = %1872, %146
  %1883 = load ptr, ptr %3, align 8, !tbaa !5
  %1884 = getelementptr inbounds %struct.DState, ptr %1883, i32 0, i32 1
  store i32 27, ptr %1884, align 8, !tbaa !12
  br label %1885

1885:                                             ; preds = %1965, %1882
  br label %1886

1886:                                             ; preds = %1885
  %1887 = load ptr, ptr %3, align 8, !tbaa !5
  %1888 = getelementptr inbounds %struct.DState, ptr %1887, i32 0, i32 8
  %1889 = load i32, ptr %1888, align 4, !tbaa !38
  %1890 = icmp sge i32 %1889, 8
  br i1 %1890, label %1891, label %1907

1891:                                             ; preds = %1886
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #4
  %1892 = load ptr, ptr %3, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.DState, ptr %1892, i32 0, i32 7
  %1894 = load i32, ptr %1893, align 8, !tbaa !39
  %1895 = load ptr, ptr %3, align 8, !tbaa !5
  %1896 = getelementptr inbounds %struct.DState, ptr %1895, i32 0, i32 8
  %1897 = load i32, ptr %1896, align 4, !tbaa !38
  %1898 = sub nsw i32 %1897, 8
  %1899 = lshr i32 %1894, %1898
  %1900 = and i32 %1899, 255
  store i32 %1900, ptr %50, align 4, !tbaa !37
  %1901 = load ptr, ptr %3, align 8, !tbaa !5
  %1902 = getelementptr inbounds %struct.DState, ptr %1901, i32 0, i32 8
  %1903 = load i32, ptr %1902, align 4, !tbaa !38
  %1904 = sub nsw i32 %1903, 8
  store i32 %1904, ptr %1902, align 4, !tbaa !38
  %1905 = load i32, ptr %50, align 4, !tbaa !37
  %1906 = trunc i32 %1905 to i8
  store i8 %1906, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #4
  br label %1966

1907:                                             ; preds = %1886
  %1908 = load ptr, ptr %3, align 8, !tbaa !5
  %1909 = getelementptr inbounds %struct.DState, ptr %1908, i32 0, i32 0
  %1910 = load ptr, ptr %1909, align 8, !tbaa !9
  %1911 = getelementptr inbounds %struct.bz_stream, ptr %1910, i32 0, i32 1
  %1912 = load i32, ptr %1911, align 8, !tbaa !41
  %1913 = icmp eq i32 %1912, 0
  br i1 %1913, label %1914, label %1915

1914:                                             ; preds = %1907
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

1958:                                             ; preds = %1915
  %1959 = load ptr, ptr %3, align 8, !tbaa !5
  %1960 = getelementptr inbounds %struct.DState, ptr %1959, i32 0, i32 0
  %1961 = load ptr, ptr %1960, align 8, !tbaa !9
  %1962 = getelementptr inbounds %struct.bz_stream, ptr %1961, i32 0, i32 3
  %1963 = load i32, ptr %1962, align 8, !tbaa !45
  %1964 = add i32 %1963, 1
  store i32 %1964, ptr %1962, align 8, !tbaa !45
  br label %1965

1965:                                             ; preds = %1958, %1915
  br label %1885

1966:                                             ; preds = %1891
  %1967 = load ptr, ptr %3, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.DState, ptr %1967, i32 0, i32 13
  %1969 = load i32, ptr %1968, align 8, !tbaa !57
  %1970 = shl i32 %1969, 8
  %1971 = load i8, ptr %4, align 1, !tbaa !40
  %1972 = zext i8 %1971 to i32
  %1973 = or i32 %1970, %1972
  %1974 = load ptr, ptr %3, align 8, !tbaa !5
  %1975 = getelementptr inbounds %struct.DState, ptr %1974, i32 0, i32 13
  store i32 %1973, ptr %1975, align 8, !tbaa !57
  %1976 = load ptr, ptr %3, align 8, !tbaa !5
  %1977 = getelementptr inbounds %struct.DState, ptr %1976, i32 0, i32 13
  %1978 = load i32, ptr %1977, align 8, !tbaa !57
  %1979 = icmp slt i32 %1978, 0
  br i1 %1979, label %1980, label %1981

1980:                                             ; preds = %1966
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

1981:                                             ; preds = %1966
  %1982 = load ptr, ptr %3, align 8, !tbaa !5
  %1983 = getelementptr inbounds %struct.DState, ptr %1982, i32 0, i32 13
  %1984 = load i32, ptr %1983, align 8, !tbaa !57
  %1985 = load ptr, ptr %3, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.DState, ptr %1985, i32 0, i32 9
  %1987 = load i32, ptr %1986, align 8, !tbaa !46
  %1988 = mul nsw i32 100000, %1987
  %1989 = add nsw i32 10, %1988
  %1990 = icmp sgt i32 %1984, %1989
  br i1 %1990, label %1991, label %1992

1991:                                             ; preds = %1981
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

1992:                                             ; preds = %1981
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %1993

1993:                                             ; preds = %2098, %1992
  %1994 = load i32, ptr %9, align 4, !tbaa !37
  %1995 = icmp slt i32 %1994, 16
  br i1 %1995, label %1996, label %2101

1996:                                             ; preds = %1993
  br label %1997

1997:                                             ; preds = %1996, %146
  %1998 = load ptr, ptr %3, align 8, !tbaa !5
  %1999 = getelementptr inbounds %struct.DState, ptr %1998, i32 0, i32 1
  store i32 28, ptr %1999, align 8, !tbaa !12
  br label %2000

2000:                                             ; preds = %2080, %1997
  br label %2001

2001:                                             ; preds = %2000
  %2002 = load ptr, ptr %3, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.DState, ptr %2002, i32 0, i32 8
  %2004 = load i32, ptr %2003, align 4, !tbaa !38
  %2005 = icmp sge i32 %2004, 1
  br i1 %2005, label %2006, label %2022

2006:                                             ; preds = %2001
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #4
  %2007 = load ptr, ptr %3, align 8, !tbaa !5
  %2008 = getelementptr inbounds %struct.DState, ptr %2007, i32 0, i32 7
  %2009 = load i32, ptr %2008, align 8, !tbaa !39
  %2010 = load ptr, ptr %3, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.DState, ptr %2010, i32 0, i32 8
  %2012 = load i32, ptr %2011, align 4, !tbaa !38
  %2013 = sub nsw i32 %2012, 1
  %2014 = lshr i32 %2009, %2013
  %2015 = and i32 %2014, 1
  store i32 %2015, ptr %51, align 4, !tbaa !37
  %2016 = load ptr, ptr %3, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.DState, ptr %2016, i32 0, i32 8
  %2018 = load i32, ptr %2017, align 4, !tbaa !38
  %2019 = sub nsw i32 %2018, 1
  store i32 %2019, ptr %2017, align 4, !tbaa !38
  %2020 = load i32, ptr %51, align 4, !tbaa !37
  %2021 = trunc i32 %2020 to i8
  store i8 %2021, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #4
  br label %2081

2022:                                             ; preds = %2001
  %2023 = load ptr, ptr %3, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.DState, ptr %2023, i32 0, i32 0
  %2025 = load ptr, ptr %2024, align 8, !tbaa !9
  %2026 = getelementptr inbounds %struct.bz_stream, ptr %2025, i32 0, i32 1
  %2027 = load i32, ptr %2026, align 8, !tbaa !41
  %2028 = icmp eq i32 %2027, 0
  br i1 %2028, label %2029, label %2030

2029:                                             ; preds = %2022
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

2073:                                             ; preds = %2030
  %2074 = load ptr, ptr %3, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.DState, ptr %2074, i32 0, i32 0
  %2076 = load ptr, ptr %2075, align 8, !tbaa !9
  %2077 = getelementptr inbounds %struct.bz_stream, ptr %2076, i32 0, i32 3
  %2078 = load i32, ptr %2077, align 8, !tbaa !45
  %2079 = add i32 %2078, 1
  store i32 %2079, ptr %2077, align 8, !tbaa !45
  br label %2080

2080:                                             ; preds = %2073, %2030
  br label %2000

2081:                                             ; preds = %2006
  %2082 = load i8, ptr %4, align 1, !tbaa !40
  %2083 = zext i8 %2082 to i32
  %2084 = icmp eq i32 %2083, 1
  br i1 %2084, label %2085, label %2091

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

2091:                                             ; preds = %2081
  %2092 = load ptr, ptr %3, align 8, !tbaa !5
  %2093 = getelementptr inbounds %struct.DState, ptr %2092, i32 0, i32 29
  %2094 = load i32, ptr %9, align 4, !tbaa !37
  %2095 = sext i32 %2094 to i64
  %2096 = getelementptr inbounds [16 x i8], ptr %2093, i64 0, i64 %2095
  store i8 0, ptr %2096, align 1, !tbaa !40
  br label %2097

2097:                                             ; preds = %2091, %2085
  br label %2098

2098:                                             ; preds = %2097
  %2099 = load i32, ptr %9, align 4, !tbaa !37
  %2100 = add nsw i32 %2099, 1
  store i32 %2100, ptr %9, align 4, !tbaa !37
  br label %1993, !llvm.loop !58

2101:                                             ; preds = %1993
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2102

2102:                                             ; preds = %2111, %2101
  %2103 = load i32, ptr %9, align 4, !tbaa !37
  %2104 = icmp slt i32 %2103, 256
  br i1 %2104, label %2105, label %2114

2105:                                             ; preds = %2102
  %2106 = load ptr, ptr %3, align 8, !tbaa !5
  %2107 = getelementptr inbounds %struct.DState, ptr %2106, i32 0, i32 28
  %2108 = load i32, ptr %9, align 4, !tbaa !37
  %2109 = sext i32 %2108 to i64
  %2110 = getelementptr inbounds [256 x i8], ptr %2107, i64 0, i64 %2109
  store i8 0, ptr %2110, align 1, !tbaa !40
  br label %2111

2111:                                             ; preds = %2105
  %2112 = load i32, ptr %9, align 4, !tbaa !37
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr %9, align 4, !tbaa !37
  br label %2102, !llvm.loop !60

2114:                                             ; preds = %2102
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2115

2115:                                             ; preds = %2234, %2114
  %2116 = load i32, ptr %9, align 4, !tbaa !37
  %2117 = icmp slt i32 %2116, 16
  br i1 %2117, label %2118, label %2237

2118:                                             ; preds = %2115
  %2119 = load ptr, ptr %3, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.DState, ptr %2119, i32 0, i32 29
  %2121 = load i32, ptr %9, align 4, !tbaa !37
  %2122 = sext i32 %2121 to i64
  %2123 = getelementptr inbounds [16 x i8], ptr %2120, i64 0, i64 %2122
  %2124 = load i8, ptr %2123, align 1, !tbaa !40
  %2125 = icmp ne i8 %2124, 0
  br i1 %2125, label %2126, label %2233

2126:                                             ; preds = %2118
  store i32 0, ptr %10, align 4, !tbaa !37
  br label %2127

2127:                                             ; preds = %2229, %2126
  %2128 = load i32, ptr %10, align 4, !tbaa !37
  %2129 = icmp slt i32 %2128, 16
  br i1 %2129, label %2130, label %2232

2130:                                             ; preds = %2127
  br label %2131

2131:                                             ; preds = %2130, %146
  %2132 = load ptr, ptr %3, align 8, !tbaa !5
  %2133 = getelementptr inbounds %struct.DState, ptr %2132, i32 0, i32 1
  store i32 29, ptr %2133, align 8, !tbaa !12
  br label %2134

2134:                                             ; preds = %2214, %2131
  br label %2135

2135:                                             ; preds = %2134
  %2136 = load ptr, ptr %3, align 8, !tbaa !5
  %2137 = getelementptr inbounds %struct.DState, ptr %2136, i32 0, i32 8
  %2138 = load i32, ptr %2137, align 4, !tbaa !38
  %2139 = icmp sge i32 %2138, 1
  br i1 %2139, label %2140, label %2156

2140:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  %2141 = load ptr, ptr %3, align 8, !tbaa !5
  %2142 = getelementptr inbounds %struct.DState, ptr %2141, i32 0, i32 7
  %2143 = load i32, ptr %2142, align 8, !tbaa !39
  %2144 = load ptr, ptr %3, align 8, !tbaa !5
  %2145 = getelementptr inbounds %struct.DState, ptr %2144, i32 0, i32 8
  %2146 = load i32, ptr %2145, align 4, !tbaa !38
  %2147 = sub nsw i32 %2146, 1
  %2148 = lshr i32 %2143, %2147
  %2149 = and i32 %2148, 1
  store i32 %2149, ptr %52, align 4, !tbaa !37
  %2150 = load ptr, ptr %3, align 8, !tbaa !5
  %2151 = getelementptr inbounds %struct.DState, ptr %2150, i32 0, i32 8
  %2152 = load i32, ptr %2151, align 4, !tbaa !38
  %2153 = sub nsw i32 %2152, 1
  store i32 %2153, ptr %2151, align 4, !tbaa !38
  %2154 = load i32, ptr %52, align 4, !tbaa !37
  %2155 = trunc i32 %2154 to i8
  store i8 %2155, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  br label %2215

2156:                                             ; preds = %2135
  %2157 = load ptr, ptr %3, align 8, !tbaa !5
  %2158 = getelementptr inbounds %struct.DState, ptr %2157, i32 0, i32 0
  %2159 = load ptr, ptr %2158, align 8, !tbaa !9
  %2160 = getelementptr inbounds %struct.bz_stream, ptr %2159, i32 0, i32 1
  %2161 = load i32, ptr %2160, align 8, !tbaa !41
  %2162 = icmp eq i32 %2161, 0
  br i1 %2162, label %2163, label %2164

2163:                                             ; preds = %2156
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

2207:                                             ; preds = %2164
  %2208 = load ptr, ptr %3, align 8, !tbaa !5
  %2209 = getelementptr inbounds %struct.DState, ptr %2208, i32 0, i32 0
  %2210 = load ptr, ptr %2209, align 8, !tbaa !9
  %2211 = getelementptr inbounds %struct.bz_stream, ptr %2210, i32 0, i32 3
  %2212 = load i32, ptr %2211, align 8, !tbaa !45
  %2213 = add i32 %2212, 1
  store i32 %2213, ptr %2211, align 8, !tbaa !45
  br label %2214

2214:                                             ; preds = %2207, %2164
  br label %2134

2215:                                             ; preds = %2140
  %2216 = load i8, ptr %4, align 1, !tbaa !40
  %2217 = zext i8 %2216 to i32
  %2218 = icmp eq i32 %2217, 1
  br i1 %2218, label %2219, label %2228

2219:                                             ; preds = %2215
  %2220 = load ptr, ptr %3, align 8, !tbaa !5
  %2221 = getelementptr inbounds %struct.DState, ptr %2220, i32 0, i32 28
  %2222 = load i32, ptr %9, align 4, !tbaa !37
  %2223 = mul nsw i32 %2222, 16
  %2224 = load i32, ptr %10, align 4, !tbaa !37
  %2225 = add nsw i32 %2223, %2224
  %2226 = sext i32 %2225 to i64
  %2227 = getelementptr inbounds [256 x i8], ptr %2221, i64 0, i64 %2226
  store i8 1, ptr %2227, align 1, !tbaa !40
  br label %2228

2228:                                             ; preds = %2219, %2215
  br label %2229

2229:                                             ; preds = %2228
  %2230 = load i32, ptr %10, align 4, !tbaa !37
  %2231 = add nsw i32 %2230, 1
  store i32 %2231, ptr %10, align 4, !tbaa !37
  br label %2127, !llvm.loop !61

2232:                                             ; preds = %2127
  br label %2233

2233:                                             ; preds = %2232, %2118
  br label %2234

2234:                                             ; preds = %2233
  %2235 = load i32, ptr %9, align 4, !tbaa !37
  %2236 = add nsw i32 %2235, 1
  store i32 %2236, ptr %9, align 4, !tbaa !37
  br label %2115, !llvm.loop !62

2237:                                             ; preds = %2115
  %2238 = load ptr, ptr %3, align 8, !tbaa !5
  call void @makeMaps_d(ptr noundef %2238)
  %2239 = load ptr, ptr %3, align 8, !tbaa !5
  %2240 = getelementptr inbounds %struct.DState, ptr %2239, i32 0, i32 27
  %2241 = load i32, ptr %2240, align 8, !tbaa !63
  %2242 = icmp eq i32 %2241, 0
  br i1 %2242, label %2243, label %2244

2243:                                             ; preds = %2237
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

2244:                                             ; preds = %2237
  %2245 = load ptr, ptr %3, align 8, !tbaa !5
  %2246 = getelementptr inbounds %struct.DState, ptr %2245, i32 0, i32 27
  %2247 = load i32, ptr %2246, align 8, !tbaa !63
  %2248 = add nsw i32 %2247, 2
  store i32 %2248, ptr %12, align 4, !tbaa !37
  br label %2249

2249:                                             ; preds = %2244, %146
  %2250 = load ptr, ptr %3, align 8, !tbaa !5
  %2251 = getelementptr inbounds %struct.DState, ptr %2250, i32 0, i32 1
  store i32 30, ptr %2251, align 8, !tbaa !12
  br label %2252

2252:                                             ; preds = %2331, %2249
  br label %2253

2253:                                             ; preds = %2252
  %2254 = load ptr, ptr %3, align 8, !tbaa !5
  %2255 = getelementptr inbounds %struct.DState, ptr %2254, i32 0, i32 8
  %2256 = load i32, ptr %2255, align 4, !tbaa !38
  %2257 = icmp sge i32 %2256, 3
  br i1 %2257, label %2258, label %2273

2258:                                             ; preds = %2253
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %2259 = load ptr, ptr %3, align 8, !tbaa !5
  %2260 = getelementptr inbounds %struct.DState, ptr %2259, i32 0, i32 7
  %2261 = load i32, ptr %2260, align 8, !tbaa !39
  %2262 = load ptr, ptr %3, align 8, !tbaa !5
  %2263 = getelementptr inbounds %struct.DState, ptr %2262, i32 0, i32 8
  %2264 = load i32, ptr %2263, align 4, !tbaa !38
  %2265 = sub nsw i32 %2264, 3
  %2266 = lshr i32 %2261, %2265
  %2267 = and i32 %2266, 7
  store i32 %2267, ptr %53, align 4, !tbaa !37
  %2268 = load ptr, ptr %3, align 8, !tbaa !5
  %2269 = getelementptr inbounds %struct.DState, ptr %2268, i32 0, i32 8
  %2270 = load i32, ptr %2269, align 4, !tbaa !38
  %2271 = sub nsw i32 %2270, 3
  store i32 %2271, ptr %2269, align 4, !tbaa !38
  %2272 = load i32, ptr %53, align 4, !tbaa !37
  store i32 %2272, ptr %13, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  br label %2332

2273:                                             ; preds = %2253
  %2274 = load ptr, ptr %3, align 8, !tbaa !5
  %2275 = getelementptr inbounds %struct.DState, ptr %2274, i32 0, i32 0
  %2276 = load ptr, ptr %2275, align 8, !tbaa !9
  %2277 = getelementptr inbounds %struct.bz_stream, ptr %2276, i32 0, i32 1
  %2278 = load i32, ptr %2277, align 8, !tbaa !41
  %2279 = icmp eq i32 %2278, 0
  br i1 %2279, label %2280, label %2281

2280:                                             ; preds = %2273
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

2324:                                             ; preds = %2281
  %2325 = load ptr, ptr %3, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.DState, ptr %2325, i32 0, i32 0
  %2327 = load ptr, ptr %2326, align 8, !tbaa !9
  %2328 = getelementptr inbounds %struct.bz_stream, ptr %2327, i32 0, i32 3
  %2329 = load i32, ptr %2328, align 8, !tbaa !45
  %2330 = add i32 %2329, 1
  store i32 %2330, ptr %2328, align 8, !tbaa !45
  br label %2331

2331:                                             ; preds = %2324, %2281
  br label %2252

2332:                                             ; preds = %2258
  %2333 = load i32, ptr %13, align 4, !tbaa !37
  %2334 = icmp slt i32 %2333, 2
  br i1 %2334, label %2338, label %2335

2335:                                             ; preds = %2332
  %2336 = load i32, ptr %13, align 4, !tbaa !37
  %2337 = icmp sgt i32 %2336, 6
  br i1 %2337, label %2338, label %2339

2338:                                             ; preds = %2335, %2332
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

2339:                                             ; preds = %2335
  br label %2340

2340:                                             ; preds = %2339, %146
  %2341 = load ptr, ptr %3, align 8, !tbaa !5
  %2342 = getelementptr inbounds %struct.DState, ptr %2341, i32 0, i32 1
  store i32 31, ptr %2342, align 8, !tbaa !12
  br label %2343

2343:                                             ; preds = %2422, %2340
  br label %2344

2344:                                             ; preds = %2343
  %2345 = load ptr, ptr %3, align 8, !tbaa !5
  %2346 = getelementptr inbounds %struct.DState, ptr %2345, i32 0, i32 8
  %2347 = load i32, ptr %2346, align 4, !tbaa !38
  %2348 = icmp sge i32 %2347, 15
  br i1 %2348, label %2349, label %2364

2349:                                             ; preds = %2344
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  %2350 = load ptr, ptr %3, align 8, !tbaa !5
  %2351 = getelementptr inbounds %struct.DState, ptr %2350, i32 0, i32 7
  %2352 = load i32, ptr %2351, align 8, !tbaa !39
  %2353 = load ptr, ptr %3, align 8, !tbaa !5
  %2354 = getelementptr inbounds %struct.DState, ptr %2353, i32 0, i32 8
  %2355 = load i32, ptr %2354, align 4, !tbaa !38
  %2356 = sub nsw i32 %2355, 15
  %2357 = lshr i32 %2352, %2356
  %2358 = and i32 %2357, 32767
  store i32 %2358, ptr %54, align 4, !tbaa !37
  %2359 = load ptr, ptr %3, align 8, !tbaa !5
  %2360 = getelementptr inbounds %struct.DState, ptr %2359, i32 0, i32 8
  %2361 = load i32, ptr %2360, align 4, !tbaa !38
  %2362 = sub nsw i32 %2361, 15
  store i32 %2362, ptr %2360, align 4, !tbaa !38
  %2363 = load i32, ptr %54, align 4, !tbaa !37
  store i32 %2363, ptr %14, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  br label %2423

2364:                                             ; preds = %2344
  %2365 = load ptr, ptr %3, align 8, !tbaa !5
  %2366 = getelementptr inbounds %struct.DState, ptr %2365, i32 0, i32 0
  %2367 = load ptr, ptr %2366, align 8, !tbaa !9
  %2368 = getelementptr inbounds %struct.bz_stream, ptr %2367, i32 0, i32 1
  %2369 = load i32, ptr %2368, align 8, !tbaa !41
  %2370 = icmp eq i32 %2369, 0
  br i1 %2370, label %2371, label %2372

2371:                                             ; preds = %2364
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

2415:                                             ; preds = %2372
  %2416 = load ptr, ptr %3, align 8, !tbaa !5
  %2417 = getelementptr inbounds %struct.DState, ptr %2416, i32 0, i32 0
  %2418 = load ptr, ptr %2417, align 8, !tbaa !9
  %2419 = getelementptr inbounds %struct.bz_stream, ptr %2418, i32 0, i32 3
  %2420 = load i32, ptr %2419, align 8, !tbaa !45
  %2421 = add i32 %2420, 1
  store i32 %2421, ptr %2419, align 8, !tbaa !45
  br label %2422

2422:                                             ; preds = %2415, %2372
  br label %2343

2423:                                             ; preds = %2349
  %2424 = load i32, ptr %14, align 4, !tbaa !37
  %2425 = icmp slt i32 %2424, 1
  br i1 %2425, label %2426, label %2427

2426:                                             ; preds = %2423
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

2427:                                             ; preds = %2423
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2428

2428:                                             ; preds = %2544, %2427
  %2429 = load i32, ptr %9, align 4, !tbaa !37
  %2430 = load i32, ptr %14, align 4, !tbaa !37
  %2431 = icmp slt i32 %2429, %2430
  br i1 %2431, label %2432, label %2547

2432:                                             ; preds = %2428
  store i32 0, ptr %10, align 4, !tbaa !37
  br label %2433

2433:                                             ; preds = %2531, %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434, %146
  %2436 = load ptr, ptr %3, align 8, !tbaa !5
  %2437 = getelementptr inbounds %struct.DState, ptr %2436, i32 0, i32 1
  store i32 32, ptr %2437, align 8, !tbaa !12
  br label %2438

2438:                                             ; preds = %2518, %2435
  br label %2439

2439:                                             ; preds = %2438
  %2440 = load ptr, ptr %3, align 8, !tbaa !5
  %2441 = getelementptr inbounds %struct.DState, ptr %2440, i32 0, i32 8
  %2442 = load i32, ptr %2441, align 4, !tbaa !38
  %2443 = icmp sge i32 %2442, 1
  br i1 %2443, label %2444, label %2460

2444:                                             ; preds = %2439
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #4
  %2445 = load ptr, ptr %3, align 8, !tbaa !5
  %2446 = getelementptr inbounds %struct.DState, ptr %2445, i32 0, i32 7
  %2447 = load i32, ptr %2446, align 8, !tbaa !39
  %2448 = load ptr, ptr %3, align 8, !tbaa !5
  %2449 = getelementptr inbounds %struct.DState, ptr %2448, i32 0, i32 8
  %2450 = load i32, ptr %2449, align 4, !tbaa !38
  %2451 = sub nsw i32 %2450, 1
  %2452 = lshr i32 %2447, %2451
  %2453 = and i32 %2452, 1
  store i32 %2453, ptr %55, align 4, !tbaa !37
  %2454 = load ptr, ptr %3, align 8, !tbaa !5
  %2455 = getelementptr inbounds %struct.DState, ptr %2454, i32 0, i32 8
  %2456 = load i32, ptr %2455, align 4, !tbaa !38
  %2457 = sub nsw i32 %2456, 1
  store i32 %2457, ptr %2455, align 4, !tbaa !38
  %2458 = load i32, ptr %55, align 4, !tbaa !37
  %2459 = trunc i32 %2458 to i8
  store i8 %2459, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #4
  br label %2519

2460:                                             ; preds = %2439
  %2461 = load ptr, ptr %3, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.DState, ptr %2461, i32 0, i32 0
  %2463 = load ptr, ptr %2462, align 8, !tbaa !9
  %2464 = getelementptr inbounds %struct.bz_stream, ptr %2463, i32 0, i32 1
  %2465 = load i32, ptr %2464, align 8, !tbaa !41
  %2466 = icmp eq i32 %2465, 0
  br i1 %2466, label %2467, label %2468

2467:                                             ; preds = %2460
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

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

2511:                                             ; preds = %2468
  %2512 = load ptr, ptr %3, align 8, !tbaa !5
  %2513 = getelementptr inbounds %struct.DState, ptr %2512, i32 0, i32 0
  %2514 = load ptr, ptr %2513, align 8, !tbaa !9
  %2515 = getelementptr inbounds %struct.bz_stream, ptr %2514, i32 0, i32 3
  %2516 = load i32, ptr %2515, align 8, !tbaa !45
  %2517 = add i32 %2516, 1
  store i32 %2517, ptr %2515, align 8, !tbaa !45
  br label %2518

2518:                                             ; preds = %2511, %2468
  br label %2438

2519:                                             ; preds = %2444
  %2520 = load i8, ptr %4, align 1, !tbaa !40
  %2521 = zext i8 %2520 to i32
  %2522 = icmp eq i32 %2521, 0
  br i1 %2522, label %2523, label %2524

2523:                                             ; preds = %2519
  br label %2532

2524:                                             ; preds = %2519
  %2525 = load i32, ptr %10, align 4, !tbaa !37
  %2526 = add nsw i32 %2525, 1
  store i32 %2526, ptr %10, align 4, !tbaa !37
  %2527 = load i32, ptr %10, align 4, !tbaa !37
  %2528 = load i32, ptr %13, align 4, !tbaa !37
  %2529 = icmp sge i32 %2527, %2528
  br i1 %2529, label %2530, label %2531

2530:                                             ; preds = %2524
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

2531:                                             ; preds = %2524
  br label %2433

2532:                                             ; preds = %2523
  %2533 = load i32, ptr %9, align 4, !tbaa !37
  %2534 = icmp slt i32 %2533, 18002
  br i1 %2534, label %2535, label %2543

2535:                                             ; preds = %2532
  %2536 = load i32, ptr %10, align 4, !tbaa !37
  %2537 = trunc i32 %2536 to i8
  %2538 = load ptr, ptr %3, align 8, !tbaa !5
  %2539 = getelementptr inbounds %struct.DState, ptr %2538, i32 0, i32 34
  %2540 = load i32, ptr %9, align 4, !tbaa !37
  %2541 = sext i32 %2540 to i64
  %2542 = getelementptr inbounds [18002 x i8], ptr %2539, i64 0, i64 %2541
  store i8 %2537, ptr %2542, align 1, !tbaa !40
  br label %2543

2543:                                             ; preds = %2535, %2532
  br label %2544

2544:                                             ; preds = %2543
  %2545 = load i32, ptr %9, align 4, !tbaa !37
  %2546 = add nsw i32 %2545, 1
  store i32 %2546, ptr %9, align 4, !tbaa !37
  br label %2428, !llvm.loop !64

2547:                                             ; preds = %2428
  %2548 = load i32, ptr %14, align 4, !tbaa !37
  %2549 = icmp sgt i32 %2548, 18002
  br i1 %2549, label %2550, label %2551

2550:                                             ; preds = %2547
  store i32 18002, ptr %14, align 4, !tbaa !37
  br label %2551

2551:                                             ; preds = %2550, %2547
  call void @llvm.lifetime.start.p0(i64 6, ptr %56) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 1, ptr %58) #4
  store i8 0, ptr %58, align 1, !tbaa !40
  br label %2552

2552:                                             ; preds = %2562, %2551
  %2553 = load i8, ptr %58, align 1, !tbaa !40
  %2554 = zext i8 %2553 to i32
  %2555 = load i32, ptr %13, align 4, !tbaa !37
  %2556 = icmp slt i32 %2554, %2555
  br i1 %2556, label %2557, label %2565

2557:                                             ; preds = %2552
  %2558 = load i8, ptr %58, align 1, !tbaa !40
  %2559 = load i8, ptr %58, align 1, !tbaa !40
  %2560 = zext i8 %2559 to i64
  %2561 = getelementptr inbounds [6 x i8], ptr %56, i64 0, i64 %2560
  store i8 %2558, ptr %2561, align 1, !tbaa !40
  br label %2562

2562:                                             ; preds = %2557
  %2563 = load i8, ptr %58, align 1, !tbaa !40
  %2564 = add i8 %2563, 1
  store i8 %2564, ptr %58, align 1, !tbaa !40
  br label %2552, !llvm.loop !65

2565:                                             ; preds = %2552
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2566

2566:                                             ; preds = %2606, %2565
  %2567 = load i32, ptr %9, align 4, !tbaa !37
  %2568 = load i32, ptr %14, align 4, !tbaa !37
  %2569 = icmp slt i32 %2567, %2568
  br i1 %2569, label %2570, label %2609

2570:                                             ; preds = %2566
  %2571 = load ptr, ptr %3, align 8, !tbaa !5
  %2572 = getelementptr inbounds %struct.DState, ptr %2571, i32 0, i32 34
  %2573 = load i32, ptr %9, align 4, !tbaa !37
  %2574 = sext i32 %2573 to i64
  %2575 = getelementptr inbounds [18002 x i8], ptr %2572, i64 0, i64 %2574
  %2576 = load i8, ptr %2575, align 1, !tbaa !40
  store i8 %2576, ptr %58, align 1, !tbaa !40
  %2577 = load i8, ptr %58, align 1, !tbaa !40
  %2578 = zext i8 %2577 to i64
  %2579 = getelementptr inbounds [6 x i8], ptr %56, i64 0, i64 %2578
  %2580 = load i8, ptr %2579, align 1, !tbaa !40
  store i8 %2580, ptr %57, align 1, !tbaa !40
  br label %2581

2581:                                             ; preds = %2585, %2570
  %2582 = load i8, ptr %58, align 1, !tbaa !40
  %2583 = zext i8 %2582 to i32
  %2584 = icmp sgt i32 %2583, 0
  br i1 %2584, label %2585, label %2597

2585:                                             ; preds = %2581
  %2586 = load i8, ptr %58, align 1, !tbaa !40
  %2587 = zext i8 %2586 to i32
  %2588 = sub nsw i32 %2587, 1
  %2589 = sext i32 %2588 to i64
  %2590 = getelementptr inbounds [6 x i8], ptr %56, i64 0, i64 %2589
  %2591 = load i8, ptr %2590, align 1, !tbaa !40
  %2592 = load i8, ptr %58, align 1, !tbaa !40
  %2593 = zext i8 %2592 to i64
  %2594 = getelementptr inbounds [6 x i8], ptr %56, i64 0, i64 %2593
  store i8 %2591, ptr %2594, align 1, !tbaa !40
  %2595 = load i8, ptr %58, align 1, !tbaa !40
  %2596 = add i8 %2595, -1
  store i8 %2596, ptr %58, align 1, !tbaa !40
  br label %2581, !llvm.loop !66

2597:                                             ; preds = %2581
  %2598 = load i8, ptr %57, align 1, !tbaa !40
  %2599 = getelementptr inbounds [6 x i8], ptr %56, i64 0, i64 0
  store i8 %2598, ptr %2599, align 1, !tbaa !40
  %2600 = load i8, ptr %57, align 1, !tbaa !40
  %2601 = load ptr, ptr %3, align 8, !tbaa !5
  %2602 = getelementptr inbounds %struct.DState, ptr %2601, i32 0, i32 33
  %2603 = load i32, ptr %9, align 4, !tbaa !37
  %2604 = sext i32 %2603 to i64
  %2605 = getelementptr inbounds [18002 x i8], ptr %2602, i64 0, i64 %2604
  store i8 %2600, ptr %2605, align 1, !tbaa !40
  br label %2606

2606:                                             ; preds = %2597
  %2607 = load i32, ptr %9, align 4, !tbaa !37
  %2608 = add nsw i32 %2607, 1
  store i32 %2608, ptr %9, align 4, !tbaa !37
  br label %2566, !llvm.loop !67

2609:                                             ; preds = %2566
  call void @llvm.lifetime.end.p0(i64 1, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %57) #4
  call void @llvm.lifetime.end.p0(i64 6, ptr %56) #4
  store i32 0, ptr %11, align 4, !tbaa !37
  br label %2610

2610:                                             ; preds = %2913, %2609
  %2611 = load i32, ptr %11, align 4, !tbaa !37
  %2612 = load i32, ptr %13, align 4, !tbaa !37
  %2613 = icmp slt i32 %2611, %2612
  br i1 %2613, label %2614, label %2916

2614:                                             ; preds = %2610
  br label %2615

2615:                                             ; preds = %2614, %146
  %2616 = load ptr, ptr %3, align 8, !tbaa !5
  %2617 = getelementptr inbounds %struct.DState, ptr %2616, i32 0, i32 1
  store i32 33, ptr %2617, align 8, !tbaa !12
  br label %2618

2618:                                             ; preds = %2697, %2615
  br label %2619

2619:                                             ; preds = %2618
  %2620 = load ptr, ptr %3, align 8, !tbaa !5
  %2621 = getelementptr inbounds %struct.DState, ptr %2620, i32 0, i32 8
  %2622 = load i32, ptr %2621, align 4, !tbaa !38
  %2623 = icmp sge i32 %2622, 5
  br i1 %2623, label %2624, label %2639

2624:                                             ; preds = %2619
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #4
  %2625 = load ptr, ptr %3, align 8, !tbaa !5
  %2626 = getelementptr inbounds %struct.DState, ptr %2625, i32 0, i32 7
  %2627 = load i32, ptr %2626, align 8, !tbaa !39
  %2628 = load ptr, ptr %3, align 8, !tbaa !5
  %2629 = getelementptr inbounds %struct.DState, ptr %2628, i32 0, i32 8
  %2630 = load i32, ptr %2629, align 4, !tbaa !38
  %2631 = sub nsw i32 %2630, 5
  %2632 = lshr i32 %2627, %2631
  %2633 = and i32 %2632, 31
  store i32 %2633, ptr %59, align 4, !tbaa !37
  %2634 = load ptr, ptr %3, align 8, !tbaa !5
  %2635 = getelementptr inbounds %struct.DState, ptr %2634, i32 0, i32 8
  %2636 = load i32, ptr %2635, align 4, !tbaa !38
  %2637 = sub nsw i32 %2636, 5
  store i32 %2637, ptr %2635, align 4, !tbaa !38
  %2638 = load i32, ptr %59, align 4, !tbaa !37
  store i32 %2638, ptr %23, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #4
  br label %2698

2639:                                             ; preds = %2619
  %2640 = load ptr, ptr %3, align 8, !tbaa !5
  %2641 = getelementptr inbounds %struct.DState, ptr %2640, i32 0, i32 0
  %2642 = load ptr, ptr %2641, align 8, !tbaa !9
  %2643 = getelementptr inbounds %struct.bz_stream, ptr %2642, i32 0, i32 1
  %2644 = load i32, ptr %2643, align 8, !tbaa !41
  %2645 = icmp eq i32 %2644, 0
  br i1 %2645, label %2646, label %2647

2646:                                             ; preds = %2639
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

2647:                                             ; preds = %2639
  %2648 = load ptr, ptr %3, align 8, !tbaa !5
  %2649 = getelementptr inbounds %struct.DState, ptr %2648, i32 0, i32 7
  %2650 = load i32, ptr %2649, align 8, !tbaa !39
  %2651 = shl i32 %2650, 8
  %2652 = load ptr, ptr %3, align 8, !tbaa !5
  %2653 = getelementptr inbounds %struct.DState, ptr %2652, i32 0, i32 0
  %2654 = load ptr, ptr %2653, align 8, !tbaa !9
  %2655 = getelementptr inbounds %struct.bz_stream, ptr %2654, i32 0, i32 0
  %2656 = load ptr, ptr %2655, align 8, !tbaa !43
  %2657 = load i8, ptr %2656, align 1, !tbaa !40
  %2658 = zext i8 %2657 to i32
  %2659 = or i32 %2651, %2658
  %2660 = load ptr, ptr %3, align 8, !tbaa !5
  %2661 = getelementptr inbounds %struct.DState, ptr %2660, i32 0, i32 7
  store i32 %2659, ptr %2661, align 8, !tbaa !39
  %2662 = load ptr, ptr %3, align 8, !tbaa !5
  %2663 = getelementptr inbounds %struct.DState, ptr %2662, i32 0, i32 8
  %2664 = load i32, ptr %2663, align 4, !tbaa !38
  %2665 = add nsw i32 %2664, 8
  store i32 %2665, ptr %2663, align 4, !tbaa !38
  %2666 = load ptr, ptr %3, align 8, !tbaa !5
  %2667 = getelementptr inbounds %struct.DState, ptr %2666, i32 0, i32 0
  %2668 = load ptr, ptr %2667, align 8, !tbaa !9
  %2669 = getelementptr inbounds %struct.bz_stream, ptr %2668, i32 0, i32 0
  %2670 = load ptr, ptr %2669, align 8, !tbaa !43
  %2671 = getelementptr inbounds i8, ptr %2670, i32 1
  store ptr %2671, ptr %2669, align 8, !tbaa !43
  %2672 = load ptr, ptr %3, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.DState, ptr %2672, i32 0, i32 0
  %2674 = load ptr, ptr %2673, align 8, !tbaa !9
  %2675 = getelementptr inbounds %struct.bz_stream, ptr %2674, i32 0, i32 1
  %2676 = load i32, ptr %2675, align 8, !tbaa !41
  %2677 = add i32 %2676, -1
  store i32 %2677, ptr %2675, align 8, !tbaa !41
  %2678 = load ptr, ptr %3, align 8, !tbaa !5
  %2679 = getelementptr inbounds %struct.DState, ptr %2678, i32 0, i32 0
  %2680 = load ptr, ptr %2679, align 8, !tbaa !9
  %2681 = getelementptr inbounds %struct.bz_stream, ptr %2680, i32 0, i32 2
  %2682 = load i32, ptr %2681, align 4, !tbaa !44
  %2683 = add i32 %2682, 1
  store i32 %2683, ptr %2681, align 4, !tbaa !44
  %2684 = load ptr, ptr %3, align 8, !tbaa !5
  %2685 = getelementptr inbounds %struct.DState, ptr %2684, i32 0, i32 0
  %2686 = load ptr, ptr %2685, align 8, !tbaa !9
  %2687 = getelementptr inbounds %struct.bz_stream, ptr %2686, i32 0, i32 2
  %2688 = load i32, ptr %2687, align 4, !tbaa !44
  %2689 = icmp eq i32 %2688, 0
  br i1 %2689, label %2690, label %2697

2690:                                             ; preds = %2647
  %2691 = load ptr, ptr %3, align 8, !tbaa !5
  %2692 = getelementptr inbounds %struct.DState, ptr %2691, i32 0, i32 0
  %2693 = load ptr, ptr %2692, align 8, !tbaa !9
  %2694 = getelementptr inbounds %struct.bz_stream, ptr %2693, i32 0, i32 3
  %2695 = load i32, ptr %2694, align 8, !tbaa !45
  %2696 = add i32 %2695, 1
  store i32 %2696, ptr %2694, align 8, !tbaa !45
  br label %2697

2697:                                             ; preds = %2690, %2647
  br label %2618

2698:                                             ; preds = %2624
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2699

2699:                                             ; preds = %2909, %2698
  %2700 = load i32, ptr %9, align 4, !tbaa !37
  %2701 = load i32, ptr %12, align 4, !tbaa !37
  %2702 = icmp slt i32 %2700, %2701
  br i1 %2702, label %2703, label %2912

2703:                                             ; preds = %2699
  br label %2704

2704:                                             ; preds = %2897, %2703
  br label %2705

2705:                                             ; preds = %2704
  %2706 = load i32, ptr %23, align 4, !tbaa !37
  %2707 = icmp slt i32 %2706, 1
  br i1 %2707, label %2711, label %2708

2708:                                             ; preds = %2705
  %2709 = load i32, ptr %23, align 4, !tbaa !37
  %2710 = icmp sgt i32 %2709, 20
  br i1 %2710, label %2711, label %2712

2711:                                             ; preds = %2708, %2705
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

2712:                                             ; preds = %2708
  br label %2713

2713:                                             ; preds = %2712, %146
  %2714 = load ptr, ptr %3, align 8, !tbaa !5
  %2715 = getelementptr inbounds %struct.DState, ptr %2714, i32 0, i32 1
  store i32 34, ptr %2715, align 8, !tbaa !12
  br label %2716

2716:                                             ; preds = %2796, %2713
  br label %2717

2717:                                             ; preds = %2716
  %2718 = load ptr, ptr %3, align 8, !tbaa !5
  %2719 = getelementptr inbounds %struct.DState, ptr %2718, i32 0, i32 8
  %2720 = load i32, ptr %2719, align 4, !tbaa !38
  %2721 = icmp sge i32 %2720, 1
  br i1 %2721, label %2722, label %2738

2722:                                             ; preds = %2717
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #4
  %2723 = load ptr, ptr %3, align 8, !tbaa !5
  %2724 = getelementptr inbounds %struct.DState, ptr %2723, i32 0, i32 7
  %2725 = load i32, ptr %2724, align 8, !tbaa !39
  %2726 = load ptr, ptr %3, align 8, !tbaa !5
  %2727 = getelementptr inbounds %struct.DState, ptr %2726, i32 0, i32 8
  %2728 = load i32, ptr %2727, align 4, !tbaa !38
  %2729 = sub nsw i32 %2728, 1
  %2730 = lshr i32 %2725, %2729
  %2731 = and i32 %2730, 1
  store i32 %2731, ptr %60, align 4, !tbaa !37
  %2732 = load ptr, ptr %3, align 8, !tbaa !5
  %2733 = getelementptr inbounds %struct.DState, ptr %2732, i32 0, i32 8
  %2734 = load i32, ptr %2733, align 4, !tbaa !38
  %2735 = sub nsw i32 %2734, 1
  store i32 %2735, ptr %2733, align 4, !tbaa !38
  %2736 = load i32, ptr %60, align 4, !tbaa !37
  %2737 = trunc i32 %2736 to i8
  store i8 %2737, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #4
  br label %2797

2738:                                             ; preds = %2717
  %2739 = load ptr, ptr %3, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.DState, ptr %2739, i32 0, i32 0
  %2741 = load ptr, ptr %2740, align 8, !tbaa !9
  %2742 = getelementptr inbounds %struct.bz_stream, ptr %2741, i32 0, i32 1
  %2743 = load i32, ptr %2742, align 8, !tbaa !41
  %2744 = icmp eq i32 %2743, 0
  br i1 %2744, label %2745, label %2746

2745:                                             ; preds = %2738
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

2746:                                             ; preds = %2738
  %2747 = load ptr, ptr %3, align 8, !tbaa !5
  %2748 = getelementptr inbounds %struct.DState, ptr %2747, i32 0, i32 7
  %2749 = load i32, ptr %2748, align 8, !tbaa !39
  %2750 = shl i32 %2749, 8
  %2751 = load ptr, ptr %3, align 8, !tbaa !5
  %2752 = getelementptr inbounds %struct.DState, ptr %2751, i32 0, i32 0
  %2753 = load ptr, ptr %2752, align 8, !tbaa !9
  %2754 = getelementptr inbounds %struct.bz_stream, ptr %2753, i32 0, i32 0
  %2755 = load ptr, ptr %2754, align 8, !tbaa !43
  %2756 = load i8, ptr %2755, align 1, !tbaa !40
  %2757 = zext i8 %2756 to i32
  %2758 = or i32 %2750, %2757
  %2759 = load ptr, ptr %3, align 8, !tbaa !5
  %2760 = getelementptr inbounds %struct.DState, ptr %2759, i32 0, i32 7
  store i32 %2758, ptr %2760, align 8, !tbaa !39
  %2761 = load ptr, ptr %3, align 8, !tbaa !5
  %2762 = getelementptr inbounds %struct.DState, ptr %2761, i32 0, i32 8
  %2763 = load i32, ptr %2762, align 4, !tbaa !38
  %2764 = add nsw i32 %2763, 8
  store i32 %2764, ptr %2762, align 4, !tbaa !38
  %2765 = load ptr, ptr %3, align 8, !tbaa !5
  %2766 = getelementptr inbounds %struct.DState, ptr %2765, i32 0, i32 0
  %2767 = load ptr, ptr %2766, align 8, !tbaa !9
  %2768 = getelementptr inbounds %struct.bz_stream, ptr %2767, i32 0, i32 0
  %2769 = load ptr, ptr %2768, align 8, !tbaa !43
  %2770 = getelementptr inbounds i8, ptr %2769, i32 1
  store ptr %2770, ptr %2768, align 8, !tbaa !43
  %2771 = load ptr, ptr %3, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.DState, ptr %2771, i32 0, i32 0
  %2773 = load ptr, ptr %2772, align 8, !tbaa !9
  %2774 = getelementptr inbounds %struct.bz_stream, ptr %2773, i32 0, i32 1
  %2775 = load i32, ptr %2774, align 8, !tbaa !41
  %2776 = add i32 %2775, -1
  store i32 %2776, ptr %2774, align 8, !tbaa !41
  %2777 = load ptr, ptr %3, align 8, !tbaa !5
  %2778 = getelementptr inbounds %struct.DState, ptr %2777, i32 0, i32 0
  %2779 = load ptr, ptr %2778, align 8, !tbaa !9
  %2780 = getelementptr inbounds %struct.bz_stream, ptr %2779, i32 0, i32 2
  %2781 = load i32, ptr %2780, align 4, !tbaa !44
  %2782 = add i32 %2781, 1
  store i32 %2782, ptr %2780, align 4, !tbaa !44
  %2783 = load ptr, ptr %3, align 8, !tbaa !5
  %2784 = getelementptr inbounds %struct.DState, ptr %2783, i32 0, i32 0
  %2785 = load ptr, ptr %2784, align 8, !tbaa !9
  %2786 = getelementptr inbounds %struct.bz_stream, ptr %2785, i32 0, i32 2
  %2787 = load i32, ptr %2786, align 4, !tbaa !44
  %2788 = icmp eq i32 %2787, 0
  br i1 %2788, label %2789, label %2796

2789:                                             ; preds = %2746
  %2790 = load ptr, ptr %3, align 8, !tbaa !5
  %2791 = getelementptr inbounds %struct.DState, ptr %2790, i32 0, i32 0
  %2792 = load ptr, ptr %2791, align 8, !tbaa !9
  %2793 = getelementptr inbounds %struct.bz_stream, ptr %2792, i32 0, i32 3
  %2794 = load i32, ptr %2793, align 8, !tbaa !45
  %2795 = add i32 %2794, 1
  store i32 %2795, ptr %2793, align 8, !tbaa !45
  br label %2796

2796:                                             ; preds = %2789, %2746
  br label %2716

2797:                                             ; preds = %2722
  %2798 = load i8, ptr %4, align 1, !tbaa !40
  %2799 = zext i8 %2798 to i32
  %2800 = icmp eq i32 %2799, 0
  br i1 %2800, label %2801, label %2802

2801:                                             ; preds = %2797
  br label %2898

2802:                                             ; preds = %2797
  br label %2803

2803:                                             ; preds = %2802, %146
  %2804 = load ptr, ptr %3, align 8, !tbaa !5
  %2805 = getelementptr inbounds %struct.DState, ptr %2804, i32 0, i32 1
  store i32 35, ptr %2805, align 8, !tbaa !12
  br label %2806

2806:                                             ; preds = %2886, %2803
  br label %2807

2807:                                             ; preds = %2806
  %2808 = load ptr, ptr %3, align 8, !tbaa !5
  %2809 = getelementptr inbounds %struct.DState, ptr %2808, i32 0, i32 8
  %2810 = load i32, ptr %2809, align 4, !tbaa !38
  %2811 = icmp sge i32 %2810, 1
  br i1 %2811, label %2812, label %2828

2812:                                             ; preds = %2807
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #4
  %2813 = load ptr, ptr %3, align 8, !tbaa !5
  %2814 = getelementptr inbounds %struct.DState, ptr %2813, i32 0, i32 7
  %2815 = load i32, ptr %2814, align 8, !tbaa !39
  %2816 = load ptr, ptr %3, align 8, !tbaa !5
  %2817 = getelementptr inbounds %struct.DState, ptr %2816, i32 0, i32 8
  %2818 = load i32, ptr %2817, align 4, !tbaa !38
  %2819 = sub nsw i32 %2818, 1
  %2820 = lshr i32 %2815, %2819
  %2821 = and i32 %2820, 1
  store i32 %2821, ptr %61, align 4, !tbaa !37
  %2822 = load ptr, ptr %3, align 8, !tbaa !5
  %2823 = getelementptr inbounds %struct.DState, ptr %2822, i32 0, i32 8
  %2824 = load i32, ptr %2823, align 4, !tbaa !38
  %2825 = sub nsw i32 %2824, 1
  store i32 %2825, ptr %2823, align 4, !tbaa !38
  %2826 = load i32, ptr %61, align 4, !tbaa !37
  %2827 = trunc i32 %2826 to i8
  store i8 %2827, ptr %4, align 1, !tbaa !40
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #4
  br label %2887

2828:                                             ; preds = %2807
  %2829 = load ptr, ptr %3, align 8, !tbaa !5
  %2830 = getelementptr inbounds %struct.DState, ptr %2829, i32 0, i32 0
  %2831 = load ptr, ptr %2830, align 8, !tbaa !9
  %2832 = getelementptr inbounds %struct.bz_stream, ptr %2831, i32 0, i32 1
  %2833 = load i32, ptr %2832, align 8, !tbaa !41
  %2834 = icmp eq i32 %2833, 0
  br i1 %2834, label %2835, label %2836

2835:                                             ; preds = %2828
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

2836:                                             ; preds = %2828
  %2837 = load ptr, ptr %3, align 8, !tbaa !5
  %2838 = getelementptr inbounds %struct.DState, ptr %2837, i32 0, i32 7
  %2839 = load i32, ptr %2838, align 8, !tbaa !39
  %2840 = shl i32 %2839, 8
  %2841 = load ptr, ptr %3, align 8, !tbaa !5
  %2842 = getelementptr inbounds %struct.DState, ptr %2841, i32 0, i32 0
  %2843 = load ptr, ptr %2842, align 8, !tbaa !9
  %2844 = getelementptr inbounds %struct.bz_stream, ptr %2843, i32 0, i32 0
  %2845 = load ptr, ptr %2844, align 8, !tbaa !43
  %2846 = load i8, ptr %2845, align 1, !tbaa !40
  %2847 = zext i8 %2846 to i32
  %2848 = or i32 %2840, %2847
  %2849 = load ptr, ptr %3, align 8, !tbaa !5
  %2850 = getelementptr inbounds %struct.DState, ptr %2849, i32 0, i32 7
  store i32 %2848, ptr %2850, align 8, !tbaa !39
  %2851 = load ptr, ptr %3, align 8, !tbaa !5
  %2852 = getelementptr inbounds %struct.DState, ptr %2851, i32 0, i32 8
  %2853 = load i32, ptr %2852, align 4, !tbaa !38
  %2854 = add nsw i32 %2853, 8
  store i32 %2854, ptr %2852, align 4, !tbaa !38
  %2855 = load ptr, ptr %3, align 8, !tbaa !5
  %2856 = getelementptr inbounds %struct.DState, ptr %2855, i32 0, i32 0
  %2857 = load ptr, ptr %2856, align 8, !tbaa !9
  %2858 = getelementptr inbounds %struct.bz_stream, ptr %2857, i32 0, i32 0
  %2859 = load ptr, ptr %2858, align 8, !tbaa !43
  %2860 = getelementptr inbounds i8, ptr %2859, i32 1
  store ptr %2860, ptr %2858, align 8, !tbaa !43
  %2861 = load ptr, ptr %3, align 8, !tbaa !5
  %2862 = getelementptr inbounds %struct.DState, ptr %2861, i32 0, i32 0
  %2863 = load ptr, ptr %2862, align 8, !tbaa !9
  %2864 = getelementptr inbounds %struct.bz_stream, ptr %2863, i32 0, i32 1
  %2865 = load i32, ptr %2864, align 8, !tbaa !41
  %2866 = add i32 %2865, -1
  store i32 %2866, ptr %2864, align 8, !tbaa !41
  %2867 = load ptr, ptr %3, align 8, !tbaa !5
  %2868 = getelementptr inbounds %struct.DState, ptr %2867, i32 0, i32 0
  %2869 = load ptr, ptr %2868, align 8, !tbaa !9
  %2870 = getelementptr inbounds %struct.bz_stream, ptr %2869, i32 0, i32 2
  %2871 = load i32, ptr %2870, align 4, !tbaa !44
  %2872 = add i32 %2871, 1
  store i32 %2872, ptr %2870, align 4, !tbaa !44
  %2873 = load ptr, ptr %3, align 8, !tbaa !5
  %2874 = getelementptr inbounds %struct.DState, ptr %2873, i32 0, i32 0
  %2875 = load ptr, ptr %2874, align 8, !tbaa !9
  %2876 = getelementptr inbounds %struct.bz_stream, ptr %2875, i32 0, i32 2
  %2877 = load i32, ptr %2876, align 4, !tbaa !44
  %2878 = icmp eq i32 %2877, 0
  br i1 %2878, label %2879, label %2886

2879:                                             ; preds = %2836
  %2880 = load ptr, ptr %3, align 8, !tbaa !5
  %2881 = getelementptr inbounds %struct.DState, ptr %2880, i32 0, i32 0
  %2882 = load ptr, ptr %2881, align 8, !tbaa !9
  %2883 = getelementptr inbounds %struct.bz_stream, ptr %2882, i32 0, i32 3
  %2884 = load i32, ptr %2883, align 8, !tbaa !45
  %2885 = add i32 %2884, 1
  store i32 %2885, ptr %2883, align 8, !tbaa !45
  br label %2886

2886:                                             ; preds = %2879, %2836
  br label %2806

2887:                                             ; preds = %2812
  %2888 = load i8, ptr %4, align 1, !tbaa !40
  %2889 = zext i8 %2888 to i32
  %2890 = icmp eq i32 %2889, 0
  br i1 %2890, label %2891, label %2894

2891:                                             ; preds = %2887
  %2892 = load i32, ptr %23, align 4, !tbaa !37
  %2893 = add nsw i32 %2892, 1
  store i32 %2893, ptr %23, align 4, !tbaa !37
  br label %2897

2894:                                             ; preds = %2887
  %2895 = load i32, ptr %23, align 4, !tbaa !37
  %2896 = add nsw i32 %2895, -1
  store i32 %2896, ptr %23, align 4, !tbaa !37
  br label %2897

2897:                                             ; preds = %2894, %2891
  br label %2704

2898:                                             ; preds = %2801
  %2899 = load i32, ptr %23, align 4, !tbaa !37
  %2900 = trunc i32 %2899 to i8
  %2901 = load ptr, ptr %3, align 8, !tbaa !5
  %2902 = getelementptr inbounds %struct.DState, ptr %2901, i32 0, i32 35
  %2903 = load i32, ptr %11, align 4, !tbaa !37
  %2904 = sext i32 %2903 to i64
  %2905 = getelementptr inbounds [6 x [258 x i8]], ptr %2902, i64 0, i64 %2904
  %2906 = load i32, ptr %9, align 4, !tbaa !37
  %2907 = sext i32 %2906 to i64
  %2908 = getelementptr inbounds [258 x i8], ptr %2905, i64 0, i64 %2907
  store i8 %2900, ptr %2908, align 1, !tbaa !40
  br label %2909

2909:                                             ; preds = %2898
  %2910 = load i32, ptr %9, align 4, !tbaa !37
  %2911 = add nsw i32 %2910, 1
  store i32 %2911, ptr %9, align 4, !tbaa !37
  br label %2699, !llvm.loop !68

2912:                                             ; preds = %2699
  br label %2913

2913:                                             ; preds = %2912
  %2914 = load i32, ptr %11, align 4, !tbaa !37
  %2915 = add nsw i32 %2914, 1
  store i32 %2915, ptr %11, align 4, !tbaa !37
  br label %2610, !llvm.loop !69

2916:                                             ; preds = %2610
  store i32 0, ptr %11, align 4, !tbaa !37
  br label %2917

2917:                                             ; preds = %3012, %2916
  %2918 = load i32, ptr %11, align 4, !tbaa !37
  %2919 = load i32, ptr %13, align 4, !tbaa !37
  %2920 = icmp slt i32 %2918, %2919
  br i1 %2920, label %2921, label %3015

2921:                                             ; preds = %2917
  store i32 32, ptr %6, align 4, !tbaa !37
  store i32 0, ptr %7, align 4, !tbaa !37
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %2922

2922:                                             ; preds = %2975, %2921
  %2923 = load i32, ptr %9, align 4, !tbaa !37
  %2924 = load i32, ptr %12, align 4, !tbaa !37
  %2925 = icmp slt i32 %2923, %2924
  br i1 %2925, label %2926, label %2978

2926:                                             ; preds = %2922
  %2927 = load ptr, ptr %3, align 8, !tbaa !5
  %2928 = getelementptr inbounds %struct.DState, ptr %2927, i32 0, i32 35
  %2929 = load i32, ptr %11, align 4, !tbaa !37
  %2930 = sext i32 %2929 to i64
  %2931 = getelementptr inbounds [6 x [258 x i8]], ptr %2928, i64 0, i64 %2930
  %2932 = load i32, ptr %9, align 4, !tbaa !37
  %2933 = sext i32 %2932 to i64
  %2934 = getelementptr inbounds [258 x i8], ptr %2931, i64 0, i64 %2933
  %2935 = load i8, ptr %2934, align 1, !tbaa !40
  %2936 = zext i8 %2935 to i32
  %2937 = load i32, ptr %7, align 4, !tbaa !37
  %2938 = icmp sgt i32 %2936, %2937
  br i1 %2938, label %2939, label %2950

2939:                                             ; preds = %2926
  %2940 = load ptr, ptr %3, align 8, !tbaa !5
  %2941 = getelementptr inbounds %struct.DState, ptr %2940, i32 0, i32 35
  %2942 = load i32, ptr %11, align 4, !tbaa !37
  %2943 = sext i32 %2942 to i64
  %2944 = getelementptr inbounds [6 x [258 x i8]], ptr %2941, i64 0, i64 %2943
  %2945 = load i32, ptr %9, align 4, !tbaa !37
  %2946 = sext i32 %2945 to i64
  %2947 = getelementptr inbounds [258 x i8], ptr %2944, i64 0, i64 %2946
  %2948 = load i8, ptr %2947, align 1, !tbaa !40
  %2949 = zext i8 %2948 to i32
  store i32 %2949, ptr %7, align 4, !tbaa !37
  br label %2950

2950:                                             ; preds = %2939, %2926
  %2951 = load ptr, ptr %3, align 8, !tbaa !5
  %2952 = getelementptr inbounds %struct.DState, ptr %2951, i32 0, i32 35
  %2953 = load i32, ptr %11, align 4, !tbaa !37
  %2954 = sext i32 %2953 to i64
  %2955 = getelementptr inbounds [6 x [258 x i8]], ptr %2952, i64 0, i64 %2954
  %2956 = load i32, ptr %9, align 4, !tbaa !37
  %2957 = sext i32 %2956 to i64
  %2958 = getelementptr inbounds [258 x i8], ptr %2955, i64 0, i64 %2957
  %2959 = load i8, ptr %2958, align 1, !tbaa !40
  %2960 = zext i8 %2959 to i32
  %2961 = load i32, ptr %6, align 4, !tbaa !37
  %2962 = icmp slt i32 %2960, %2961
  br i1 %2962, label %2963, label %2974

2963:                                             ; preds = %2950
  %2964 = load ptr, ptr %3, align 8, !tbaa !5
  %2965 = getelementptr inbounds %struct.DState, ptr %2964, i32 0, i32 35
  %2966 = load i32, ptr %11, align 4, !tbaa !37
  %2967 = sext i32 %2966 to i64
  %2968 = getelementptr inbounds [6 x [258 x i8]], ptr %2965, i64 0, i64 %2967
  %2969 = load i32, ptr %9, align 4, !tbaa !37
  %2970 = sext i32 %2969 to i64
  %2971 = getelementptr inbounds [258 x i8], ptr %2968, i64 0, i64 %2970
  %2972 = load i8, ptr %2971, align 1, !tbaa !40
  %2973 = zext i8 %2972 to i32
  store i32 %2973, ptr %6, align 4, !tbaa !37
  br label %2974

2974:                                             ; preds = %2963, %2950
  br label %2975

2975:                                             ; preds = %2974
  %2976 = load i32, ptr %9, align 4, !tbaa !37
  %2977 = add nsw i32 %2976, 1
  store i32 %2977, ptr %9, align 4, !tbaa !37
  br label %2922, !llvm.loop !70

2978:                                             ; preds = %2922
  %2979 = load ptr, ptr %3, align 8, !tbaa !5
  %2980 = getelementptr inbounds %struct.DState, ptr %2979, i32 0, i32 36
  %2981 = load i32, ptr %11, align 4, !tbaa !37
  %2982 = sext i32 %2981 to i64
  %2983 = getelementptr inbounds [6 x [258 x i32]], ptr %2980, i64 0, i64 %2982
  %2984 = getelementptr inbounds [258 x i32], ptr %2983, i64 0, i64 0
  %2985 = load ptr, ptr %3, align 8, !tbaa !5
  %2986 = getelementptr inbounds %struct.DState, ptr %2985, i32 0, i32 37
  %2987 = load i32, ptr %11, align 4, !tbaa !37
  %2988 = sext i32 %2987 to i64
  %2989 = getelementptr inbounds [6 x [258 x i32]], ptr %2986, i64 0, i64 %2988
  %2990 = getelementptr inbounds [258 x i32], ptr %2989, i64 0, i64 0
  %2991 = load ptr, ptr %3, align 8, !tbaa !5
  %2992 = getelementptr inbounds %struct.DState, ptr %2991, i32 0, i32 38
  %2993 = load i32, ptr %11, align 4, !tbaa !37
  %2994 = sext i32 %2993 to i64
  %2995 = getelementptr inbounds [6 x [258 x i32]], ptr %2992, i64 0, i64 %2994
  %2996 = getelementptr inbounds [258 x i32], ptr %2995, i64 0, i64 0
  %2997 = load ptr, ptr %3, align 8, !tbaa !5
  %2998 = getelementptr inbounds %struct.DState, ptr %2997, i32 0, i32 35
  %2999 = load i32, ptr %11, align 4, !tbaa !37
  %3000 = sext i32 %2999 to i64
  %3001 = getelementptr inbounds [6 x [258 x i8]], ptr %2998, i64 0, i64 %3000
  %3002 = getelementptr inbounds [258 x i8], ptr %3001, i64 0, i64 0
  %3003 = load i32, ptr %6, align 4, !tbaa !37
  %3004 = load i32, ptr %7, align 4, !tbaa !37
  %3005 = load i32, ptr %12, align 4, !tbaa !37
  call void @BZ2_hbCreateDecodeTables(ptr noundef %2984, ptr noundef %2990, ptr noundef %2996, ptr noundef %3002, i32 noundef %3003, i32 noundef %3004, i32 noundef %3005)
  %3006 = load i32, ptr %6, align 4, !tbaa !37
  %3007 = load ptr, ptr %3, align 8, !tbaa !5
  %3008 = getelementptr inbounds %struct.DState, ptr %3007, i32 0, i32 39
  %3009 = load i32, ptr %11, align 4, !tbaa !37
  %3010 = sext i32 %3009 to i64
  %3011 = getelementptr inbounds [6 x i32], ptr %3008, i64 0, i64 %3010
  store i32 %3006, ptr %3011, align 4, !tbaa !37
  br label %3012

3012:                                             ; preds = %2978
  %3013 = load i32, ptr %11, align 4, !tbaa !37
  %3014 = add nsw i32 %3013, 1
  store i32 %3014, ptr %11, align 4, !tbaa !37
  br label %2917, !llvm.loop !71

3015:                                             ; preds = %2917
  %3016 = load ptr, ptr %3, align 8, !tbaa !5
  %3017 = getelementptr inbounds %struct.DState, ptr %3016, i32 0, i32 27
  %3018 = load i32, ptr %3017, align 8, !tbaa !63
  %3019 = add nsw i32 %3018, 1
  store i32 %3019, ptr %15, align 4, !tbaa !37
  %3020 = load ptr, ptr %3, align 8, !tbaa !5
  %3021 = getelementptr inbounds %struct.DState, ptr %3020, i32 0, i32 9
  %3022 = load i32, ptr %3021, align 8, !tbaa !46
  %3023 = mul nsw i32 100000, %3022
  store i32 %3023, ptr %19, align 4, !tbaa !37
  store i32 -1, ptr %16, align 4, !tbaa !37
  store i32 0, ptr %17, align 4, !tbaa !37
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %3024

3024:                                             ; preds = %3033, %3015
  %3025 = load i32, ptr %9, align 4, !tbaa !37
  %3026 = icmp sle i32 %3025, 255
  br i1 %3026, label %3027, label %3036

3027:                                             ; preds = %3024
  %3028 = load ptr, ptr %3, align 8, !tbaa !5
  %3029 = getelementptr inbounds %struct.DState, ptr %3028, i32 0, i32 16
  %3030 = load i32, ptr %9, align 4, !tbaa !37
  %3031 = sext i32 %3030 to i64
  %3032 = getelementptr inbounds [256 x i32], ptr %3029, i64 0, i64 %3031
  store i32 0, ptr %3032, align 4, !tbaa !37
  br label %3033

3033:                                             ; preds = %3027
  %3034 = load i32, ptr %9, align 4, !tbaa !37
  %3035 = add nsw i32 %3034, 1
  store i32 %3035, ptr %9, align 4, !tbaa !37
  br label %3024, !llvm.loop !72

3036:                                             ; preds = %3024
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #4
  store i32 4095, ptr %64, align 4, !tbaa !37
  store i32 15, ptr %62, align 4, !tbaa !37
  br label %3037

3037:                                             ; preds = %3068, %3036
  %3038 = load i32, ptr %62, align 4, !tbaa !37
  %3039 = icmp sge i32 %3038, 0
  br i1 %3039, label %3040, label %3071

3040:                                             ; preds = %3037
  store i32 15, ptr %63, align 4, !tbaa !37
  br label %3041

3041:                                             ; preds = %3057, %3040
  %3042 = load i32, ptr %63, align 4, !tbaa !37
  %3043 = icmp sge i32 %3042, 0
  br i1 %3043, label %3044, label %3060

3044:                                             ; preds = %3041
  %3045 = load i32, ptr %62, align 4, !tbaa !37
  %3046 = mul nsw i32 %3045, 16
  %3047 = load i32, ptr %63, align 4, !tbaa !37
  %3048 = add nsw i32 %3046, %3047
  %3049 = trunc i32 %3048 to i8
  %3050 = load ptr, ptr %3, align 8, !tbaa !5
  %3051 = getelementptr inbounds %struct.DState, ptr %3050, i32 0, i32 31
  %3052 = load i32, ptr %64, align 4, !tbaa !37
  %3053 = sext i32 %3052 to i64
  %3054 = getelementptr inbounds [4096 x i8], ptr %3051, i64 0, i64 %3053
  store i8 %3049, ptr %3054, align 1, !tbaa !40
  %3055 = load i32, ptr %64, align 4, !tbaa !37
  %3056 = add nsw i32 %3055, -1
  store i32 %3056, ptr %64, align 4, !tbaa !37
  br label %3057

3057:                                             ; preds = %3044
  %3058 = load i32, ptr %63, align 4, !tbaa !37
  %3059 = add nsw i32 %3058, -1
  store i32 %3059, ptr %63, align 4, !tbaa !37
  br label %3041, !llvm.loop !73

3060:                                             ; preds = %3041
  %3061 = load i32, ptr %64, align 4, !tbaa !37
  %3062 = add nsw i32 %3061, 1
  %3063 = load ptr, ptr %3, align 8, !tbaa !5
  %3064 = getelementptr inbounds %struct.DState, ptr %3063, i32 0, i32 32
  %3065 = load i32, ptr %62, align 4, !tbaa !37
  %3066 = sext i32 %3065 to i64
  %3067 = getelementptr inbounds [16 x i32], ptr %3064, i64 0, i64 %3066
  store i32 %3062, ptr %3067, align 4, !tbaa !37
  br label %3068

3068:                                             ; preds = %3060
  %3069 = load i32, ptr %62, align 4, !tbaa !37
  %3070 = add nsw i32 %3069, -1
  store i32 %3070, ptr %62, align 4, !tbaa !37
  br label %3037, !llvm.loop !74

3071:                                             ; preds = %3037
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #4
  store i32 0, ptr %20, align 4, !tbaa !37
  %3072 = load i32, ptr %17, align 4, !tbaa !37
  %3073 = icmp eq i32 %3072, 0
  br i1 %3073, label %3074, label %3113

3074:                                             ; preds = %3071
  %3075 = load i32, ptr %16, align 4, !tbaa !37
  %3076 = add nsw i32 %3075, 1
  store i32 %3076, ptr %16, align 4, !tbaa !37
  %3077 = load i32, ptr %16, align 4, !tbaa !37
  %3078 = load i32, ptr %14, align 4, !tbaa !37
  %3079 = icmp sge i32 %3077, %3078
  br i1 %3079, label %3080, label %3081

3080:                                             ; preds = %3074
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3081:                                             ; preds = %3074
  store i32 50, ptr %17, align 4, !tbaa !37
  %3082 = load ptr, ptr %3, align 8, !tbaa !5
  %3083 = getelementptr inbounds %struct.DState, ptr %3082, i32 0, i32 33
  %3084 = load i32, ptr %16, align 4, !tbaa !37
  %3085 = sext i32 %3084 to i64
  %3086 = getelementptr inbounds [18002 x i8], ptr %3083, i64 0, i64 %3085
  %3087 = load i8, ptr %3086, align 1, !tbaa !40
  %3088 = zext i8 %3087 to i32
  store i32 %3088, ptr %28, align 4, !tbaa !37
  %3089 = load ptr, ptr %3, align 8, !tbaa !5
  %3090 = getelementptr inbounds %struct.DState, ptr %3089, i32 0, i32 39
  %3091 = load i32, ptr %28, align 4, !tbaa !37
  %3092 = sext i32 %3091 to i64
  %3093 = getelementptr inbounds [6 x i32], ptr %3090, i64 0, i64 %3092
  %3094 = load i32, ptr %3093, align 4, !tbaa !37
  store i32 %3094, ptr %29, align 4, !tbaa !37
  %3095 = load ptr, ptr %3, align 8, !tbaa !5
  %3096 = getelementptr inbounds %struct.DState, ptr %3095, i32 0, i32 36
  %3097 = load i32, ptr %28, align 4, !tbaa !37
  %3098 = sext i32 %3097 to i64
  %3099 = getelementptr inbounds [6 x [258 x i32]], ptr %3096, i64 0, i64 %3098
  %3100 = getelementptr inbounds [258 x i32], ptr %3099, i64 0, i64 0
  store ptr %3100, ptr %30, align 8, !tbaa !5
  %3101 = load ptr, ptr %3, align 8, !tbaa !5
  %3102 = getelementptr inbounds %struct.DState, ptr %3101, i32 0, i32 38
  %3103 = load i32, ptr %28, align 4, !tbaa !37
  %3104 = sext i32 %3103 to i64
  %3105 = getelementptr inbounds [6 x [258 x i32]], ptr %3102, i64 0, i64 %3104
  %3106 = getelementptr inbounds [258 x i32], ptr %3105, i64 0, i64 0
  store ptr %3106, ptr %32, align 8, !tbaa !5
  %3107 = load ptr, ptr %3, align 8, !tbaa !5
  %3108 = getelementptr inbounds %struct.DState, ptr %3107, i32 0, i32 37
  %3109 = load i32, ptr %28, align 4, !tbaa !37
  %3110 = sext i32 %3109 to i64
  %3111 = getelementptr inbounds [6 x [258 x i32]], ptr %3108, i64 0, i64 %3110
  %3112 = getelementptr inbounds [258 x i32], ptr %3111, i64 0, i64 0
  store ptr %3112, ptr %31, align 8, !tbaa !5
  br label %3113

3113:                                             ; preds = %3081, %3071
  %3114 = load i32, ptr %17, align 4, !tbaa !37
  %3115 = add nsw i32 %3114, -1
  store i32 %3115, ptr %17, align 4, !tbaa !37
  %3116 = load i32, ptr %29, align 4, !tbaa !37
  store i32 %3116, ptr %25, align 4, !tbaa !37
  br label %3117

3117:                                             ; preds = %3113, %146
  %3118 = load ptr, ptr %3, align 8, !tbaa !5
  %3119 = getelementptr inbounds %struct.DState, ptr %3118, i32 0, i32 1
  store i32 36, ptr %3119, align 8, !tbaa !12
  br label %3120

3120:                                             ; preds = %3205, %3117
  br label %3121

3121:                                             ; preds = %3120
  %3122 = load ptr, ptr %3, align 8, !tbaa !5
  %3123 = getelementptr inbounds %struct.DState, ptr %3122, i32 0, i32 8
  %3124 = load i32, ptr %3123, align 4, !tbaa !38
  %3125 = load i32, ptr %25, align 4, !tbaa !37
  %3126 = icmp sge i32 %3124, %3125
  br i1 %3126, label %3127, label %3147

3127:                                             ; preds = %3121
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #4
  %3128 = load ptr, ptr %3, align 8, !tbaa !5
  %3129 = getelementptr inbounds %struct.DState, ptr %3128, i32 0, i32 7
  %3130 = load i32, ptr %3129, align 8, !tbaa !39
  %3131 = load ptr, ptr %3, align 8, !tbaa !5
  %3132 = getelementptr inbounds %struct.DState, ptr %3131, i32 0, i32 8
  %3133 = load i32, ptr %3132, align 4, !tbaa !38
  %3134 = load i32, ptr %25, align 4, !tbaa !37
  %3135 = sub nsw i32 %3133, %3134
  %3136 = lshr i32 %3130, %3135
  %3137 = load i32, ptr %25, align 4, !tbaa !37
  %3138 = shl i32 1, %3137
  %3139 = sub nsw i32 %3138, 1
  %3140 = and i32 %3136, %3139
  store i32 %3140, ptr %65, align 4, !tbaa !37
  %3141 = load i32, ptr %25, align 4, !tbaa !37
  %3142 = load ptr, ptr %3, align 8, !tbaa !5
  %3143 = getelementptr inbounds %struct.DState, ptr %3142, i32 0, i32 8
  %3144 = load i32, ptr %3143, align 4, !tbaa !38
  %3145 = sub nsw i32 %3144, %3141
  store i32 %3145, ptr %3143, align 4, !tbaa !38
  %3146 = load i32, ptr %65, align 4, !tbaa !37
  store i32 %3146, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #4
  br label %3206

3147:                                             ; preds = %3121
  %3148 = load ptr, ptr %3, align 8, !tbaa !5
  %3149 = getelementptr inbounds %struct.DState, ptr %3148, i32 0, i32 0
  %3150 = load ptr, ptr %3149, align 8, !tbaa !9
  %3151 = getelementptr inbounds %struct.bz_stream, ptr %3150, i32 0, i32 1
  %3152 = load i32, ptr %3151, align 8, !tbaa !41
  %3153 = icmp eq i32 %3152, 0
  br i1 %3153, label %3154, label %3155

3154:                                             ; preds = %3147
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

3155:                                             ; preds = %3147
  %3156 = load ptr, ptr %3, align 8, !tbaa !5
  %3157 = getelementptr inbounds %struct.DState, ptr %3156, i32 0, i32 7
  %3158 = load i32, ptr %3157, align 8, !tbaa !39
  %3159 = shl i32 %3158, 8
  %3160 = load ptr, ptr %3, align 8, !tbaa !5
  %3161 = getelementptr inbounds %struct.DState, ptr %3160, i32 0, i32 0
  %3162 = load ptr, ptr %3161, align 8, !tbaa !9
  %3163 = getelementptr inbounds %struct.bz_stream, ptr %3162, i32 0, i32 0
  %3164 = load ptr, ptr %3163, align 8, !tbaa !43
  %3165 = load i8, ptr %3164, align 1, !tbaa !40
  %3166 = zext i8 %3165 to i32
  %3167 = or i32 %3159, %3166
  %3168 = load ptr, ptr %3, align 8, !tbaa !5
  %3169 = getelementptr inbounds %struct.DState, ptr %3168, i32 0, i32 7
  store i32 %3167, ptr %3169, align 8, !tbaa !39
  %3170 = load ptr, ptr %3, align 8, !tbaa !5
  %3171 = getelementptr inbounds %struct.DState, ptr %3170, i32 0, i32 8
  %3172 = load i32, ptr %3171, align 4, !tbaa !38
  %3173 = add nsw i32 %3172, 8
  store i32 %3173, ptr %3171, align 4, !tbaa !38
  %3174 = load ptr, ptr %3, align 8, !tbaa !5
  %3175 = getelementptr inbounds %struct.DState, ptr %3174, i32 0, i32 0
  %3176 = load ptr, ptr %3175, align 8, !tbaa !9
  %3177 = getelementptr inbounds %struct.bz_stream, ptr %3176, i32 0, i32 0
  %3178 = load ptr, ptr %3177, align 8, !tbaa !43
  %3179 = getelementptr inbounds i8, ptr %3178, i32 1
  store ptr %3179, ptr %3177, align 8, !tbaa !43
  %3180 = load ptr, ptr %3, align 8, !tbaa !5
  %3181 = getelementptr inbounds %struct.DState, ptr %3180, i32 0, i32 0
  %3182 = load ptr, ptr %3181, align 8, !tbaa !9
  %3183 = getelementptr inbounds %struct.bz_stream, ptr %3182, i32 0, i32 1
  %3184 = load i32, ptr %3183, align 8, !tbaa !41
  %3185 = add i32 %3184, -1
  store i32 %3185, ptr %3183, align 8, !tbaa !41
  %3186 = load ptr, ptr %3, align 8, !tbaa !5
  %3187 = getelementptr inbounds %struct.DState, ptr %3186, i32 0, i32 0
  %3188 = load ptr, ptr %3187, align 8, !tbaa !9
  %3189 = getelementptr inbounds %struct.bz_stream, ptr %3188, i32 0, i32 2
  %3190 = load i32, ptr %3189, align 4, !tbaa !44
  %3191 = add i32 %3190, 1
  store i32 %3191, ptr %3189, align 4, !tbaa !44
  %3192 = load ptr, ptr %3, align 8, !tbaa !5
  %3193 = getelementptr inbounds %struct.DState, ptr %3192, i32 0, i32 0
  %3194 = load ptr, ptr %3193, align 8, !tbaa !9
  %3195 = getelementptr inbounds %struct.bz_stream, ptr %3194, i32 0, i32 2
  %3196 = load i32, ptr %3195, align 4, !tbaa !44
  %3197 = icmp eq i32 %3196, 0
  br i1 %3197, label %3198, label %3205

3198:                                             ; preds = %3155
  %3199 = load ptr, ptr %3, align 8, !tbaa !5
  %3200 = getelementptr inbounds %struct.DState, ptr %3199, i32 0, i32 0
  %3201 = load ptr, ptr %3200, align 8, !tbaa !9
  %3202 = getelementptr inbounds %struct.bz_stream, ptr %3201, i32 0, i32 3
  %3203 = load i32, ptr %3202, align 8, !tbaa !45
  %3204 = add i32 %3203, 1
  store i32 %3204, ptr %3202, align 8, !tbaa !45
  br label %3205

3205:                                             ; preds = %3198, %3155
  br label %3120

3206:                                             ; preds = %3127
  br label %3207

3207:                                             ; preds = %3307, %3206
  br label %3208

3208:                                             ; preds = %3207
  %3209 = load i32, ptr %25, align 4, !tbaa !37
  %3210 = icmp sgt i32 %3209, 20
  br i1 %3210, label %3211, label %3212

3211:                                             ; preds = %3208
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3212:                                             ; preds = %3208
  %3213 = load i32, ptr %26, align 4, !tbaa !37
  %3214 = load ptr, ptr %30, align 8, !tbaa !5
  %3215 = load i32, ptr %25, align 4, !tbaa !37
  %3216 = sext i32 %3215 to i64
  %3217 = getelementptr inbounds i32, ptr %3214, i64 %3216
  %3218 = load i32, ptr %3217, align 4, !tbaa !37
  %3219 = icmp sle i32 %3213, %3218
  br i1 %3219, label %3220, label %3221

3220:                                             ; preds = %3212
  br label %3312

3221:                                             ; preds = %3212
  %3222 = load i32, ptr %25, align 4, !tbaa !37
  %3223 = add nsw i32 %3222, 1
  store i32 %3223, ptr %25, align 4, !tbaa !37
  br label %3224

3224:                                             ; preds = %3221, %146
  %3225 = load ptr, ptr %3, align 8, !tbaa !5
  %3226 = getelementptr inbounds %struct.DState, ptr %3225, i32 0, i32 1
  store i32 37, ptr %3226, align 8, !tbaa !12
  br label %3227

3227:                                             ; preds = %3306, %3224
  br label %3228

3228:                                             ; preds = %3227
  %3229 = load ptr, ptr %3, align 8, !tbaa !5
  %3230 = getelementptr inbounds %struct.DState, ptr %3229, i32 0, i32 8
  %3231 = load i32, ptr %3230, align 4, !tbaa !38
  %3232 = icmp sge i32 %3231, 1
  br i1 %3232, label %3233, label %3248

3233:                                             ; preds = %3228
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #4
  %3234 = load ptr, ptr %3, align 8, !tbaa !5
  %3235 = getelementptr inbounds %struct.DState, ptr %3234, i32 0, i32 7
  %3236 = load i32, ptr %3235, align 8, !tbaa !39
  %3237 = load ptr, ptr %3, align 8, !tbaa !5
  %3238 = getelementptr inbounds %struct.DState, ptr %3237, i32 0, i32 8
  %3239 = load i32, ptr %3238, align 4, !tbaa !38
  %3240 = sub nsw i32 %3239, 1
  %3241 = lshr i32 %3236, %3240
  %3242 = and i32 %3241, 1
  store i32 %3242, ptr %66, align 4, !tbaa !37
  %3243 = load ptr, ptr %3, align 8, !tbaa !5
  %3244 = getelementptr inbounds %struct.DState, ptr %3243, i32 0, i32 8
  %3245 = load i32, ptr %3244, align 4, !tbaa !38
  %3246 = sub nsw i32 %3245, 1
  store i32 %3246, ptr %3244, align 4, !tbaa !38
  %3247 = load i32, ptr %66, align 4, !tbaa !37
  store i32 %3247, ptr %27, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #4
  br label %3307

3248:                                             ; preds = %3228
  %3249 = load ptr, ptr %3, align 8, !tbaa !5
  %3250 = getelementptr inbounds %struct.DState, ptr %3249, i32 0, i32 0
  %3251 = load ptr, ptr %3250, align 8, !tbaa !9
  %3252 = getelementptr inbounds %struct.bz_stream, ptr %3251, i32 0, i32 1
  %3253 = load i32, ptr %3252, align 8, !tbaa !41
  %3254 = icmp eq i32 %3253, 0
  br i1 %3254, label %3255, label %3256

3255:                                             ; preds = %3248
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

3256:                                             ; preds = %3248
  %3257 = load ptr, ptr %3, align 8, !tbaa !5
  %3258 = getelementptr inbounds %struct.DState, ptr %3257, i32 0, i32 7
  %3259 = load i32, ptr %3258, align 8, !tbaa !39
  %3260 = shl i32 %3259, 8
  %3261 = load ptr, ptr %3, align 8, !tbaa !5
  %3262 = getelementptr inbounds %struct.DState, ptr %3261, i32 0, i32 0
  %3263 = load ptr, ptr %3262, align 8, !tbaa !9
  %3264 = getelementptr inbounds %struct.bz_stream, ptr %3263, i32 0, i32 0
  %3265 = load ptr, ptr %3264, align 8, !tbaa !43
  %3266 = load i8, ptr %3265, align 1, !tbaa !40
  %3267 = zext i8 %3266 to i32
  %3268 = or i32 %3260, %3267
  %3269 = load ptr, ptr %3, align 8, !tbaa !5
  %3270 = getelementptr inbounds %struct.DState, ptr %3269, i32 0, i32 7
  store i32 %3268, ptr %3270, align 8, !tbaa !39
  %3271 = load ptr, ptr %3, align 8, !tbaa !5
  %3272 = getelementptr inbounds %struct.DState, ptr %3271, i32 0, i32 8
  %3273 = load i32, ptr %3272, align 4, !tbaa !38
  %3274 = add nsw i32 %3273, 8
  store i32 %3274, ptr %3272, align 4, !tbaa !38
  %3275 = load ptr, ptr %3, align 8, !tbaa !5
  %3276 = getelementptr inbounds %struct.DState, ptr %3275, i32 0, i32 0
  %3277 = load ptr, ptr %3276, align 8, !tbaa !9
  %3278 = getelementptr inbounds %struct.bz_stream, ptr %3277, i32 0, i32 0
  %3279 = load ptr, ptr %3278, align 8, !tbaa !43
  %3280 = getelementptr inbounds i8, ptr %3279, i32 1
  store ptr %3280, ptr %3278, align 8, !tbaa !43
  %3281 = load ptr, ptr %3, align 8, !tbaa !5
  %3282 = getelementptr inbounds %struct.DState, ptr %3281, i32 0, i32 0
  %3283 = load ptr, ptr %3282, align 8, !tbaa !9
  %3284 = getelementptr inbounds %struct.bz_stream, ptr %3283, i32 0, i32 1
  %3285 = load i32, ptr %3284, align 8, !tbaa !41
  %3286 = add i32 %3285, -1
  store i32 %3286, ptr %3284, align 8, !tbaa !41
  %3287 = load ptr, ptr %3, align 8, !tbaa !5
  %3288 = getelementptr inbounds %struct.DState, ptr %3287, i32 0, i32 0
  %3289 = load ptr, ptr %3288, align 8, !tbaa !9
  %3290 = getelementptr inbounds %struct.bz_stream, ptr %3289, i32 0, i32 2
  %3291 = load i32, ptr %3290, align 4, !tbaa !44
  %3292 = add i32 %3291, 1
  store i32 %3292, ptr %3290, align 4, !tbaa !44
  %3293 = load ptr, ptr %3, align 8, !tbaa !5
  %3294 = getelementptr inbounds %struct.DState, ptr %3293, i32 0, i32 0
  %3295 = load ptr, ptr %3294, align 8, !tbaa !9
  %3296 = getelementptr inbounds %struct.bz_stream, ptr %3295, i32 0, i32 2
  %3297 = load i32, ptr %3296, align 4, !tbaa !44
  %3298 = icmp eq i32 %3297, 0
  br i1 %3298, label %3299, label %3306

3299:                                             ; preds = %3256
  %3300 = load ptr, ptr %3, align 8, !tbaa !5
  %3301 = getelementptr inbounds %struct.DState, ptr %3300, i32 0, i32 0
  %3302 = load ptr, ptr %3301, align 8, !tbaa !9
  %3303 = getelementptr inbounds %struct.bz_stream, ptr %3302, i32 0, i32 3
  %3304 = load i32, ptr %3303, align 8, !tbaa !45
  %3305 = add i32 %3304, 1
  store i32 %3305, ptr %3303, align 8, !tbaa !45
  br label %3306

3306:                                             ; preds = %3299, %3256
  br label %3227

3307:                                             ; preds = %3233
  %3308 = load i32, ptr %26, align 4, !tbaa !37
  %3309 = shl i32 %3308, 1
  %3310 = load i32, ptr %27, align 4, !tbaa !37
  %3311 = or i32 %3309, %3310
  store i32 %3311, ptr %26, align 4, !tbaa !37
  br label %3207

3312:                                             ; preds = %3220
  %3313 = load i32, ptr %26, align 4, !tbaa !37
  %3314 = load ptr, ptr %31, align 8, !tbaa !5
  %3315 = load i32, ptr %25, align 4, !tbaa !37
  %3316 = sext i32 %3315 to i64
  %3317 = getelementptr inbounds i32, ptr %3314, i64 %3316
  %3318 = load i32, ptr %3317, align 4, !tbaa !37
  %3319 = sub nsw i32 %3313, %3318
  %3320 = icmp slt i32 %3319, 0
  br i1 %3320, label %3330, label %3321

3321:                                             ; preds = %3312
  %3322 = load i32, ptr %26, align 4, !tbaa !37
  %3323 = load ptr, ptr %31, align 8, !tbaa !5
  %3324 = load i32, ptr %25, align 4, !tbaa !37
  %3325 = sext i32 %3324 to i64
  %3326 = getelementptr inbounds i32, ptr %3323, i64 %3325
  %3327 = load i32, ptr %3326, align 4, !tbaa !37
  %3328 = sub nsw i32 %3322, %3327
  %3329 = icmp sge i32 %3328, 258
  br i1 %3329, label %3330, label %3331

3330:                                             ; preds = %3321, %3312
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3331:                                             ; preds = %3321
  %3332 = load ptr, ptr %32, align 8, !tbaa !5
  %3333 = load i32, ptr %26, align 4, !tbaa !37
  %3334 = load ptr, ptr %31, align 8, !tbaa !5
  %3335 = load i32, ptr %25, align 4, !tbaa !37
  %3336 = sext i32 %3335 to i64
  %3337 = getelementptr inbounds i32, ptr %3334, i64 %3336
  %3338 = load i32, ptr %3337, align 4, !tbaa !37
  %3339 = sub nsw i32 %3333, %3338
  %3340 = sext i32 %3339 to i64
  %3341 = getelementptr inbounds i32, ptr %3332, i64 %3340
  %3342 = load i32, ptr %3341, align 4, !tbaa !37
  store i32 %3342, ptr %18, align 4, !tbaa !37
  br label %3343

3343:                                             ; preds = %4308, %3734, %3331
  br label %3344

3344:                                             ; preds = %3343
  %3345 = load i32, ptr %18, align 4, !tbaa !37
  %3346 = load i32, ptr %15, align 4, !tbaa !37
  %3347 = icmp eq i32 %3345, %3346
  br i1 %3347, label %3348, label %3349

3348:                                             ; preds = %3344
  br label %4320

3349:                                             ; preds = %3344
  %3350 = load i32, ptr %18, align 4, !tbaa !37
  %3351 = icmp eq i32 %3350, 0
  br i1 %3351, label %3355, label %3352

3352:                                             ; preds = %3349
  %3353 = load i32, ptr %18, align 4, !tbaa !37
  %3354 = icmp eq i32 %3353, 1
  br i1 %3354, label %3355, label %3735

3355:                                             ; preds = %3352, %3349
  store i32 -1, ptr %21, align 4, !tbaa !37
  store i32 1, ptr %22, align 4, !tbaa !37
  br label %3356

3356:                                             ; preds = %3657, %3355
  %3357 = load i32, ptr %22, align 4, !tbaa !37
  %3358 = icmp sge i32 %3357, 2097152
  br i1 %3358, label %3359, label %3360

3359:                                             ; preds = %3356
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3360:                                             ; preds = %3356
  %3361 = load i32, ptr %18, align 4, !tbaa !37
  %3362 = icmp eq i32 %3361, 0
  br i1 %3362, label %3363, label %3368

3363:                                             ; preds = %3360
  %3364 = load i32, ptr %21, align 4, !tbaa !37
  %3365 = load i32, ptr %22, align 4, !tbaa !37
  %3366 = mul nsw i32 1, %3365
  %3367 = add nsw i32 %3364, %3366
  store i32 %3367, ptr %21, align 4, !tbaa !37
  br label %3377

3368:                                             ; preds = %3360
  %3369 = load i32, ptr %18, align 4, !tbaa !37
  %3370 = icmp eq i32 %3369, 1
  br i1 %3370, label %3371, label %3376

3371:                                             ; preds = %3368
  %3372 = load i32, ptr %21, align 4, !tbaa !37
  %3373 = load i32, ptr %22, align 4, !tbaa !37
  %3374 = mul nsw i32 2, %3373
  %3375 = add nsw i32 %3372, %3374
  store i32 %3375, ptr %21, align 4, !tbaa !37
  br label %3376

3376:                                             ; preds = %3371, %3368
  br label %3377

3377:                                             ; preds = %3376, %3363
  %3378 = load i32, ptr %22, align 4, !tbaa !37
  %3379 = mul nsw i32 %3378, 2
  store i32 %3379, ptr %22, align 4, !tbaa !37
  %3380 = load i32, ptr %17, align 4, !tbaa !37
  %3381 = icmp eq i32 %3380, 0
  br i1 %3381, label %3382, label %3421

3382:                                             ; preds = %3377
  %3383 = load i32, ptr %16, align 4, !tbaa !37
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr %16, align 4, !tbaa !37
  %3385 = load i32, ptr %16, align 4, !tbaa !37
  %3386 = load i32, ptr %14, align 4, !tbaa !37
  %3387 = icmp sge i32 %3385, %3386
  br i1 %3387, label %3388, label %3389

3388:                                             ; preds = %3382
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3389:                                             ; preds = %3382
  store i32 50, ptr %17, align 4, !tbaa !37
  %3390 = load ptr, ptr %3, align 8, !tbaa !5
  %3391 = getelementptr inbounds %struct.DState, ptr %3390, i32 0, i32 33
  %3392 = load i32, ptr %16, align 4, !tbaa !37
  %3393 = sext i32 %3392 to i64
  %3394 = getelementptr inbounds [18002 x i8], ptr %3391, i64 0, i64 %3393
  %3395 = load i8, ptr %3394, align 1, !tbaa !40
  %3396 = zext i8 %3395 to i32
  store i32 %3396, ptr %28, align 4, !tbaa !37
  %3397 = load ptr, ptr %3, align 8, !tbaa !5
  %3398 = getelementptr inbounds %struct.DState, ptr %3397, i32 0, i32 39
  %3399 = load i32, ptr %28, align 4, !tbaa !37
  %3400 = sext i32 %3399 to i64
  %3401 = getelementptr inbounds [6 x i32], ptr %3398, i64 0, i64 %3400
  %3402 = load i32, ptr %3401, align 4, !tbaa !37
  store i32 %3402, ptr %29, align 4, !tbaa !37
  %3403 = load ptr, ptr %3, align 8, !tbaa !5
  %3404 = getelementptr inbounds %struct.DState, ptr %3403, i32 0, i32 36
  %3405 = load i32, ptr %28, align 4, !tbaa !37
  %3406 = sext i32 %3405 to i64
  %3407 = getelementptr inbounds [6 x [258 x i32]], ptr %3404, i64 0, i64 %3406
  %3408 = getelementptr inbounds [258 x i32], ptr %3407, i64 0, i64 0
  store ptr %3408, ptr %30, align 8, !tbaa !5
  %3409 = load ptr, ptr %3, align 8, !tbaa !5
  %3410 = getelementptr inbounds %struct.DState, ptr %3409, i32 0, i32 38
  %3411 = load i32, ptr %28, align 4, !tbaa !37
  %3412 = sext i32 %3411 to i64
  %3413 = getelementptr inbounds [6 x [258 x i32]], ptr %3410, i64 0, i64 %3412
  %3414 = getelementptr inbounds [258 x i32], ptr %3413, i64 0, i64 0
  store ptr %3414, ptr %32, align 8, !tbaa !5
  %3415 = load ptr, ptr %3, align 8, !tbaa !5
  %3416 = getelementptr inbounds %struct.DState, ptr %3415, i32 0, i32 37
  %3417 = load i32, ptr %28, align 4, !tbaa !37
  %3418 = sext i32 %3417 to i64
  %3419 = getelementptr inbounds [6 x [258 x i32]], ptr %3416, i64 0, i64 %3418
  %3420 = getelementptr inbounds [258 x i32], ptr %3419, i64 0, i64 0
  store ptr %3420, ptr %31, align 8, !tbaa !5
  br label %3421

3421:                                             ; preds = %3389, %3377
  %3422 = load i32, ptr %17, align 4, !tbaa !37
  %3423 = add nsw i32 %3422, -1
  store i32 %3423, ptr %17, align 4, !tbaa !37
  %3424 = load i32, ptr %29, align 4, !tbaa !37
  store i32 %3424, ptr %25, align 4, !tbaa !37
  br label %3425

3425:                                             ; preds = %3421, %146
  %3426 = load ptr, ptr %3, align 8, !tbaa !5
  %3427 = getelementptr inbounds %struct.DState, ptr %3426, i32 0, i32 1
  store i32 38, ptr %3427, align 8, !tbaa !12
  br label %3428

3428:                                             ; preds = %3513, %3425
  br label %3429

3429:                                             ; preds = %3428
  %3430 = load ptr, ptr %3, align 8, !tbaa !5
  %3431 = getelementptr inbounds %struct.DState, ptr %3430, i32 0, i32 8
  %3432 = load i32, ptr %3431, align 4, !tbaa !38
  %3433 = load i32, ptr %25, align 4, !tbaa !37
  %3434 = icmp sge i32 %3432, %3433
  br i1 %3434, label %3435, label %3455

3435:                                             ; preds = %3429
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #4
  %3436 = load ptr, ptr %3, align 8, !tbaa !5
  %3437 = getelementptr inbounds %struct.DState, ptr %3436, i32 0, i32 7
  %3438 = load i32, ptr %3437, align 8, !tbaa !39
  %3439 = load ptr, ptr %3, align 8, !tbaa !5
  %3440 = getelementptr inbounds %struct.DState, ptr %3439, i32 0, i32 8
  %3441 = load i32, ptr %3440, align 4, !tbaa !38
  %3442 = load i32, ptr %25, align 4, !tbaa !37
  %3443 = sub nsw i32 %3441, %3442
  %3444 = lshr i32 %3438, %3443
  %3445 = load i32, ptr %25, align 4, !tbaa !37
  %3446 = shl i32 1, %3445
  %3447 = sub nsw i32 %3446, 1
  %3448 = and i32 %3444, %3447
  store i32 %3448, ptr %67, align 4, !tbaa !37
  %3449 = load i32, ptr %25, align 4, !tbaa !37
  %3450 = load ptr, ptr %3, align 8, !tbaa !5
  %3451 = getelementptr inbounds %struct.DState, ptr %3450, i32 0, i32 8
  %3452 = load i32, ptr %3451, align 4, !tbaa !38
  %3453 = sub nsw i32 %3452, %3449
  store i32 %3453, ptr %3451, align 4, !tbaa !38
  %3454 = load i32, ptr %67, align 4, !tbaa !37
  store i32 %3454, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #4
  br label %3514

3455:                                             ; preds = %3429
  %3456 = load ptr, ptr %3, align 8, !tbaa !5
  %3457 = getelementptr inbounds %struct.DState, ptr %3456, i32 0, i32 0
  %3458 = load ptr, ptr %3457, align 8, !tbaa !9
  %3459 = getelementptr inbounds %struct.bz_stream, ptr %3458, i32 0, i32 1
  %3460 = load i32, ptr %3459, align 8, !tbaa !41
  %3461 = icmp eq i32 %3460, 0
  br i1 %3461, label %3462, label %3463

3462:                                             ; preds = %3455
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

3463:                                             ; preds = %3455
  %3464 = load ptr, ptr %3, align 8, !tbaa !5
  %3465 = getelementptr inbounds %struct.DState, ptr %3464, i32 0, i32 7
  %3466 = load i32, ptr %3465, align 8, !tbaa !39
  %3467 = shl i32 %3466, 8
  %3468 = load ptr, ptr %3, align 8, !tbaa !5
  %3469 = getelementptr inbounds %struct.DState, ptr %3468, i32 0, i32 0
  %3470 = load ptr, ptr %3469, align 8, !tbaa !9
  %3471 = getelementptr inbounds %struct.bz_stream, ptr %3470, i32 0, i32 0
  %3472 = load ptr, ptr %3471, align 8, !tbaa !43
  %3473 = load i8, ptr %3472, align 1, !tbaa !40
  %3474 = zext i8 %3473 to i32
  %3475 = or i32 %3467, %3474
  %3476 = load ptr, ptr %3, align 8, !tbaa !5
  %3477 = getelementptr inbounds %struct.DState, ptr %3476, i32 0, i32 7
  store i32 %3475, ptr %3477, align 8, !tbaa !39
  %3478 = load ptr, ptr %3, align 8, !tbaa !5
  %3479 = getelementptr inbounds %struct.DState, ptr %3478, i32 0, i32 8
  %3480 = load i32, ptr %3479, align 4, !tbaa !38
  %3481 = add nsw i32 %3480, 8
  store i32 %3481, ptr %3479, align 4, !tbaa !38
  %3482 = load ptr, ptr %3, align 8, !tbaa !5
  %3483 = getelementptr inbounds %struct.DState, ptr %3482, i32 0, i32 0
  %3484 = load ptr, ptr %3483, align 8, !tbaa !9
  %3485 = getelementptr inbounds %struct.bz_stream, ptr %3484, i32 0, i32 0
  %3486 = load ptr, ptr %3485, align 8, !tbaa !43
  %3487 = getelementptr inbounds i8, ptr %3486, i32 1
  store ptr %3487, ptr %3485, align 8, !tbaa !43
  %3488 = load ptr, ptr %3, 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 1
  %3492 = load i32, ptr %3491, align 8, !tbaa !41
  %3493 = add i32 %3492, -1
  store i32 %3493, ptr %3491, align 8, !tbaa !41
  %3494 = load ptr, ptr %3, align 8, !tbaa !5
  %3495 = getelementptr inbounds %struct.DState, ptr %3494, i32 0, i32 0
  %3496 = load ptr, ptr %3495, align 8, !tbaa !9
  %3497 = getelementptr inbounds %struct.bz_stream, ptr %3496, i32 0, i32 2
  %3498 = load i32, ptr %3497, align 4, !tbaa !44
  %3499 = add i32 %3498, 1
  store i32 %3499, ptr %3497, align 4, !tbaa !44
  %3500 = load ptr, ptr %3, align 8, !tbaa !5
  %3501 = getelementptr inbounds %struct.DState, ptr %3500, i32 0, i32 0
  %3502 = load ptr, ptr %3501, align 8, !tbaa !9
  %3503 = getelementptr inbounds %struct.bz_stream, ptr %3502, i32 0, i32 2
  %3504 = load i32, ptr %3503, align 4, !tbaa !44
  %3505 = icmp eq i32 %3504, 0
  br i1 %3505, label %3506, label %3513

3506:                                             ; preds = %3463
  %3507 = load ptr, ptr %3, align 8, !tbaa !5
  %3508 = getelementptr inbounds %struct.DState, ptr %3507, i32 0, i32 0
  %3509 = load ptr, ptr %3508, align 8, !tbaa !9
  %3510 = getelementptr inbounds %struct.bz_stream, ptr %3509, i32 0, i32 3
  %3511 = load i32, ptr %3510, align 8, !tbaa !45
  %3512 = add i32 %3511, 1
  store i32 %3512, ptr %3510, align 8, !tbaa !45
  br label %3513

3513:                                             ; preds = %3506, %3463
  br label %3428

3514:                                             ; preds = %3435
  br label %3515

3515:                                             ; preds = %3615, %3514
  br label %3516

3516:                                             ; preds = %3515
  %3517 = load i32, ptr %25, align 4, !tbaa !37
  %3518 = icmp sgt i32 %3517, 20
  br i1 %3518, label %3519, label %3520

3519:                                             ; preds = %3516
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3520:                                             ; preds = %3516
  %3521 = load i32, ptr %26, align 4, !tbaa !37
  %3522 = load ptr, ptr %30, align 8, !tbaa !5
  %3523 = load i32, ptr %25, align 4, !tbaa !37
  %3524 = sext i32 %3523 to i64
  %3525 = getelementptr inbounds i32, ptr %3522, i64 %3524
  %3526 = load i32, ptr %3525, align 4, !tbaa !37
  %3527 = icmp sle i32 %3521, %3526
  br i1 %3527, label %3528, label %3529

3528:                                             ; preds = %3520
  br label %3620

3529:                                             ; preds = %3520
  %3530 = load i32, ptr %25, align 4, !tbaa !37
  %3531 = add nsw i32 %3530, 1
  store i32 %3531, ptr %25, align 4, !tbaa !37
  br label %3532

3532:                                             ; preds = %3529, %146
  %3533 = load ptr, ptr %3, align 8, !tbaa !5
  %3534 = getelementptr inbounds %struct.DState, ptr %3533, i32 0, i32 1
  store i32 39, ptr %3534, align 8, !tbaa !12
  br label %3535

3535:                                             ; preds = %3614, %3532
  br label %3536

3536:                                             ; preds = %3535
  %3537 = load ptr, ptr %3, align 8, !tbaa !5
  %3538 = getelementptr inbounds %struct.DState, ptr %3537, i32 0, i32 8
  %3539 = load i32, ptr %3538, align 4, !tbaa !38
  %3540 = icmp sge i32 %3539, 1
  br i1 %3540, label %3541, label %3556

3541:                                             ; preds = %3536
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #4
  %3542 = load ptr, ptr %3, align 8, !tbaa !5
  %3543 = getelementptr inbounds %struct.DState, ptr %3542, i32 0, i32 7
  %3544 = load i32, ptr %3543, align 8, !tbaa !39
  %3545 = load ptr, ptr %3, align 8, !tbaa !5
  %3546 = getelementptr inbounds %struct.DState, ptr %3545, i32 0, i32 8
  %3547 = load i32, ptr %3546, align 4, !tbaa !38
  %3548 = sub nsw i32 %3547, 1
  %3549 = lshr i32 %3544, %3548
  %3550 = and i32 %3549, 1
  store i32 %3550, ptr %68, align 4, !tbaa !37
  %3551 = load ptr, ptr %3, align 8, !tbaa !5
  %3552 = getelementptr inbounds %struct.DState, ptr %3551, i32 0, i32 8
  %3553 = load i32, ptr %3552, align 4, !tbaa !38
  %3554 = sub nsw i32 %3553, 1
  store i32 %3554, ptr %3552, align 4, !tbaa !38
  %3555 = load i32, ptr %68, align 4, !tbaa !37
  store i32 %3555, ptr %27, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #4
  br label %3615

3556:                                             ; preds = %3536
  %3557 = load ptr, ptr %3, align 8, !tbaa !5
  %3558 = getelementptr inbounds %struct.DState, ptr %3557, i32 0, i32 0
  %3559 = load ptr, ptr %3558, align 8, !tbaa !9
  %3560 = getelementptr inbounds %struct.bz_stream, ptr %3559, i32 0, i32 1
  %3561 = load i32, ptr %3560, align 8, !tbaa !41
  %3562 = icmp eq i32 %3561, 0
  br i1 %3562, label %3563, label %3564

3563:                                             ; preds = %3556
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

3564:                                             ; preds = %3556
  %3565 = load ptr, ptr %3, align 8, !tbaa !5
  %3566 = getelementptr inbounds %struct.DState, ptr %3565, i32 0, i32 7
  %3567 = load i32, ptr %3566, align 8, !tbaa !39
  %3568 = shl i32 %3567, 8
  %3569 = load ptr, ptr %3, align 8, !tbaa !5
  %3570 = getelementptr inbounds %struct.DState, ptr %3569, i32 0, i32 0
  %3571 = load ptr, ptr %3570, align 8, !tbaa !9
  %3572 = getelementptr inbounds %struct.bz_stream, ptr %3571, i32 0, i32 0
  %3573 = load ptr, ptr %3572, align 8, !tbaa !43
  %3574 = load i8, ptr %3573, align 1, !tbaa !40
  %3575 = zext i8 %3574 to i32
  %3576 = or i32 %3568, %3575
  %3577 = load ptr, ptr %3, align 8, !tbaa !5
  %3578 = getelementptr inbounds %struct.DState, ptr %3577, i32 0, i32 7
  store i32 %3576, ptr %3578, align 8, !tbaa !39
  %3579 = load ptr, ptr %3, align 8, !tbaa !5
  %3580 = getelementptr inbounds %struct.DState, ptr %3579, i32 0, i32 8
  %3581 = load i32, ptr %3580, align 4, !tbaa !38
  %3582 = add nsw i32 %3581, 8
  store i32 %3582, ptr %3580, align 4, !tbaa !38
  %3583 = load ptr, ptr %3, align 8, !tbaa !5
  %3584 = getelementptr inbounds %struct.DState, ptr %3583, i32 0, i32 0
  %3585 = load ptr, ptr %3584, align 8, !tbaa !9
  %3586 = getelementptr inbounds %struct.bz_stream, ptr %3585, i32 0, i32 0
  %3587 = load ptr, ptr %3586, align 8, !tbaa !43
  %3588 = getelementptr inbounds i8, ptr %3587, i32 1
  store ptr %3588, ptr %3586, align 8, !tbaa !43
  %3589 = load ptr, ptr %3, 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 1
  %3593 = load i32, ptr %3592, align 8, !tbaa !41
  %3594 = add i32 %3593, -1
  store i32 %3594, ptr %3592, align 8, !tbaa !41
  %3595 = load ptr, ptr %3, align 8, !tbaa !5
  %3596 = getelementptr inbounds %struct.DState, ptr %3595, i32 0, i32 0
  %3597 = load ptr, ptr %3596, align 8, !tbaa !9
  %3598 = getelementptr inbounds %struct.bz_stream, ptr %3597, i32 0, i32 2
  %3599 = load i32, ptr %3598, align 4, !tbaa !44
  %3600 = add i32 %3599, 1
  store i32 %3600, ptr %3598, align 4, !tbaa !44
  %3601 = load ptr, ptr %3, align 8, !tbaa !5
  %3602 = getelementptr inbounds %struct.DState, ptr %3601, i32 0, i32 0
  %3603 = load ptr, ptr %3602, align 8, !tbaa !9
  %3604 = getelementptr inbounds %struct.bz_stream, ptr %3603, i32 0, i32 2
  %3605 = load i32, ptr %3604, align 4, !tbaa !44
  %3606 = icmp eq i32 %3605, 0
  br i1 %3606, label %3607, label %3614

3607:                                             ; preds = %3564
  %3608 = load ptr, ptr %3, align 8, !tbaa !5
  %3609 = getelementptr inbounds %struct.DState, ptr %3608, i32 0, i32 0
  %3610 = load ptr, ptr %3609, align 8, !tbaa !9
  %3611 = getelementptr inbounds %struct.bz_stream, ptr %3610, i32 0, i32 3
  %3612 = load i32, ptr %3611, align 8, !tbaa !45
  %3613 = add i32 %3612, 1
  store i32 %3613, ptr %3611, align 8, !tbaa !45
  br label %3614

3614:                                             ; preds = %3607, %3564
  br label %3535

3615:                                             ; preds = %3541
  %3616 = load i32, ptr %26, align 4, !tbaa !37
  %3617 = shl i32 %3616, 1
  %3618 = load i32, ptr %27, align 4, !tbaa !37
  %3619 = or i32 %3617, %3618
  store i32 %3619, ptr %26, align 4, !tbaa !37
  br label %3515

3620:                                             ; preds = %3528
  %3621 = load i32, ptr %26, align 4, !tbaa !37
  %3622 = load ptr, ptr %31, align 8, !tbaa !5
  %3623 = load i32, ptr %25, align 4, !tbaa !37
  %3624 = sext i32 %3623 to i64
  %3625 = getelementptr inbounds i32, ptr %3622, i64 %3624
  %3626 = load i32, ptr %3625, align 4, !tbaa !37
  %3627 = sub nsw i32 %3621, %3626
  %3628 = icmp slt i32 %3627, 0
  br i1 %3628, label %3638, label %3629

3629:                                             ; preds = %3620
  %3630 = load i32, ptr %26, align 4, !tbaa !37
  %3631 = load ptr, ptr %31, align 8, !tbaa !5
  %3632 = load i32, ptr %25, align 4, !tbaa !37
  %3633 = sext i32 %3632 to i64
  %3634 = getelementptr inbounds i32, ptr %3631, i64 %3633
  %3635 = load i32, ptr %3634, align 4, !tbaa !37
  %3636 = sub nsw i32 %3630, %3635
  %3637 = icmp sge i32 %3636, 258
  br i1 %3637, label %3638, label %3639

3638:                                             ; preds = %3629, %3620
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3639:                                             ; preds = %3629
  %3640 = load ptr, ptr %32, align 8, !tbaa !5
  %3641 = load i32, ptr %26, align 4, !tbaa !37
  %3642 = load ptr, ptr %31, align 8, !tbaa !5
  %3643 = load i32, ptr %25, align 4, !tbaa !37
  %3644 = sext i32 %3643 to i64
  %3645 = getelementptr inbounds i32, ptr %3642, i64 %3644
  %3646 = load i32, ptr %3645, align 4, !tbaa !37
  %3647 = sub nsw i32 %3641, %3646
  %3648 = sext i32 %3647 to i64
  %3649 = getelementptr inbounds i32, ptr %3640, i64 %3648
  %3650 = load i32, ptr %3649, align 4, !tbaa !37
  store i32 %3650, ptr %18, align 4, !tbaa !37
  br label %3651

3651:                                             ; preds = %3639
  %3652 = load i32, ptr %18, align 4, !tbaa !37
  %3653 = icmp eq i32 %3652, 0
  br i1 %3653, label %3657, label %3654

3654:                                             ; preds = %3651
  %3655 = load i32, ptr %18, align 4, !tbaa !37
  %3656 = icmp eq i32 %3655, 1
  br label %3657

3657:                                             ; preds = %3654, %3651
  %3658 = phi i1 [ true, %3651 ], [ %3656, %3654 ]
  br i1 %3658, label %3356, label %3659, !llvm.loop !75

3659:                                             ; preds = %3657
  %3660 = load i32, ptr %21, align 4, !tbaa !37
  %3661 = add nsw i32 %3660, 1
  store i32 %3661, ptr %21, align 4, !tbaa !37
  %3662 = load ptr, ptr %3, align 8, !tbaa !5
  %3663 = getelementptr inbounds %struct.DState, ptr %3662, i32 0, i32 30
  %3664 = load ptr, ptr %3, align 8, !tbaa !5
  %3665 = getelementptr inbounds %struct.DState, ptr %3664, i32 0, i32 31
  %3666 = load ptr, ptr %3, align 8, !tbaa !5
  %3667 = getelementptr inbounds %struct.DState, ptr %3666, i32 0, i32 32
  %3668 = getelementptr inbounds [16 x i32], ptr %3667, i64 0, i64 0
  %3669 = load i32, ptr %3668, align 4, !tbaa !37
  %3670 = sext i32 %3669 to i64
  %3671 = getelementptr inbounds [4096 x i8], ptr %3665, i64 0, i64 %3670
  %3672 = load i8, ptr %3671, align 1, !tbaa !40
  %3673 = zext i8 %3672 to i64
  %3674 = getelementptr inbounds [256 x i8], ptr %3663, i64 0, i64 %3673
  %3675 = load i8, ptr %3674, align 1, !tbaa !40
  store i8 %3675, ptr %4, align 1, !tbaa !40
  %3676 = load i32, ptr %21, align 4, !tbaa !37
  %3677 = load ptr, ptr %3, align 8, !tbaa !5
  %3678 = getelementptr inbounds %struct.DState, ptr %3677, i32 0, i32 16
  %3679 = load i8, ptr %4, align 1, !tbaa !40
  %3680 = zext i8 %3679 to i64
  %3681 = getelementptr inbounds [256 x i32], ptr %3678, i64 0, i64 %3680
  %3682 = load i32, ptr %3681, align 4, !tbaa !37
  %3683 = add nsw i32 %3682, %3676
  store i32 %3683, ptr %3681, align 4, !tbaa !37
  %3684 = load ptr, ptr %3, align 8, !tbaa !5
  %3685 = getelementptr inbounds %struct.DState, ptr %3684, i32 0, i32 10
  %3686 = load i8, ptr %3685, align 4, !tbaa !47
  %3687 = icmp ne i8 %3686, 0
  br i1 %3687, label %3688, label %3711

3688:                                             ; preds = %3659
  br label %3689

3689:                                             ; preds = %3697, %3688
  %3690 = load i32, ptr %21, align 4, !tbaa !37
  %3691 = icmp sgt i32 %3690, 0
  br i1 %3691, label %3692, label %3710

3692:                                             ; preds = %3689
  %3693 = load i32, ptr %20, align 4, !tbaa !37
  %3694 = load i32, ptr %19, align 4, !tbaa !37
  %3695 = icmp sge i32 %3693, %3694
  br i1 %3695, label %3696, label %3697

3696:                                             ; preds = %3692
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3697:                                             ; preds = %3692
  %3698 = load i8, ptr %4, align 1, !tbaa !40
  %3699 = zext i8 %3698 to i16
  %3700 = load ptr, ptr %3, align 8, !tbaa !5
  %3701 = getelementptr inbounds %struct.DState, ptr %3700, i32 0, i32 21
  %3702 = load ptr, ptr %3701, align 8, !tbaa !50
  %3703 = load i32, ptr %20, align 4, !tbaa !37
  %3704 = sext i32 %3703 to i64
  %3705 = getelementptr inbounds i16, ptr %3702, i64 %3704
  store i16 %3699, ptr %3705, align 2, !tbaa !76
  %3706 = load i32, ptr %20, align 4, !tbaa !37
  %3707 = add nsw i32 %3706, 1
  store i32 %3707, ptr %20, align 4, !tbaa !37
  %3708 = load i32, ptr %21, align 4, !tbaa !37
  %3709 = add nsw i32 %3708, -1
  store i32 %3709, ptr %21, align 4, !tbaa !37
  br label %3689, !llvm.loop !78

3710:                                             ; preds = %3689
  br label %3734

3711:                                             ; preds = %3659
  br label %3712

3712:                                             ; preds = %3720, %3711
  %3713 = load i32, ptr %21, align 4, !tbaa !37
  %3714 = icmp sgt i32 %3713, 0
  br i1 %3714, label %3715, label %3733

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

3719:                                             ; preds = %3715
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3720:                                             ; preds = %3715
  %3721 = load i8, ptr %4, align 1, !tbaa !40
  %3722 = zext i8 %3721 to i32
  %3723 = load ptr, ptr %3, align 8, !tbaa !5
  %3724 = getelementptr inbounds %struct.DState, ptr %3723, i32 0, i32 20
  %3725 = load ptr, ptr %3724, align 8, !tbaa !52
  %3726 = load i32, ptr %20, align 4, !tbaa !37
  %3727 = sext i32 %3726 to i64
  %3728 = getelementptr inbounds i32, ptr %3725, i64 %3727
  store i32 %3722, ptr %3728, align 4, !tbaa !37
  %3729 = load i32, ptr %20, align 4, !tbaa !37
  %3730 = add nsw i32 %3729, 1
  store i32 %3730, ptr %20, align 4, !tbaa !37
  %3731 = load i32, ptr %21, align 4, !tbaa !37
  %3732 = add nsw i32 %3731, -1
  store i32 %3732, ptr %21, align 4, !tbaa !37
  br label %3712, !llvm.loop !79

3733:                                             ; preds = %3712
  br label %3734

3734:                                             ; preds = %3733, %3710
  br label %3343

3735:                                             ; preds = %3352
  %3736 = load i32, ptr %20, align 4, !tbaa !37
  %3737 = load i32, ptr %19, align 4, !tbaa !37
  %3738 = icmp sge i32 %3736, %3737
  br i1 %3738, label %3739, label %3740

3739:                                             ; preds = %3735
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

3740:                                             ; preds = %3735
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #4
  %3741 = load i32, ptr %18, align 4, !tbaa !37
  %3742 = sub nsw i32 %3741, 1
  store i32 %3742, ptr %75, align 4, !tbaa !37
  %3743 = load i32, ptr %75, align 4, !tbaa !37
  %3744 = icmp ult i32 %3743, 16
  br i1 %3744, label %3745, label %3848

3745:                                             ; preds = %3740
  %3746 = load ptr, ptr %3, align 8, !tbaa !5
  %3747 = getelementptr inbounds %struct.DState, ptr %3746, i32 0, i32 32
  %3748 = getelementptr inbounds [16 x i32], ptr %3747, i64 0, i64 0
  %3749 = load i32, ptr %3748, align 4, !tbaa !37
  store i32 %3749, ptr %72, align 4, !tbaa !37
  %3750 = load ptr, ptr %3, align 8, !tbaa !5
  %3751 = getelementptr inbounds %struct.DState, ptr %3750, i32 0, i32 31
  %3752 = load i32, ptr %72, align 4, !tbaa !37
  %3753 = load i32, ptr %75, align 4, !tbaa !37
  %3754 = add i32 %3752, %3753
  %3755 = zext i32 %3754 to i64
  %3756 = getelementptr inbounds [4096 x i8], ptr %3751, i64 0, i64 %3755
  %3757 = load i8, ptr %3756, align 1, !tbaa !40
  store i8 %3757, ptr %4, align 1, !tbaa !40
  br label %3758

3758:                                             ; preds = %3761, %3745
  %3759 = load i32, ptr %75, align 4, !tbaa !37
  %3760 = icmp ugt i32 %3759, 3
  br i1 %3760, label %3761, label %3818

3761:                                             ; preds = %3758
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #4
  %3762 = load i32, ptr %72, align 4, !tbaa !37
  %3763 = load i32, ptr %75, align 4, !tbaa !37
  %3764 = add i32 %3762, %3763
  store i32 %3764, ptr %76, align 4, !tbaa !37
  %3765 = load ptr, ptr %3, align 8, !tbaa !5
  %3766 = getelementptr inbounds %struct.DState, ptr %3765, i32 0, i32 31
  %3767 = load i32, ptr %76, 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
  %3771 = load i8, ptr %3770, align 1, !tbaa !40
  %3772 = load ptr, ptr %3, align 8, !tbaa !5
  %3773 = getelementptr inbounds %struct.DState, ptr %3772, i32 0, i32 31
  %3774 = load i32, ptr %76, align 4, !tbaa !37
  %3775 = sext i32 %3774 to i64
  %3776 = getelementptr inbounds [4096 x i8], ptr %3773, i64 0, i64 %3775
  store i8 %3771, ptr %3776, align 1, !tbaa !40
  %3777 = load ptr, ptr %3, align 8, !tbaa !5
  %3778 = getelementptr inbounds %struct.DState, ptr %3777, i32 0, i32 31
  %3779 = load i32, ptr %76, align 4, !tbaa !37
  %3780 = sub nsw i32 %3779, 2
  %3781 = sext i32 %3780 to i64
  %3782 = getelementptr inbounds [4096 x i8], ptr %3778, i64 0, i64 %3781
  %3783 = load i8, ptr %3782, align 1, !tbaa !40
  %3784 = load ptr, ptr %3, align 8, !tbaa !5
  %3785 = getelementptr inbounds %struct.DState, ptr %3784, i32 0, i32 31
  %3786 = load i32, ptr %76, align 4, !tbaa !37
  %3787 = sub nsw i32 %3786, 1
  %3788 = sext i32 %3787 to i64
  %3789 = getelementptr inbounds [4096 x i8], ptr %3785, i64 0, i64 %3788
  store i8 %3783, ptr %3789, align 1, !tbaa !40
  %3790 = load ptr, ptr %3, align 8, !tbaa !5
  %3791 = getelementptr inbounds %struct.DState, ptr %3790, i32 0, i32 31
  %3792 = load i32, ptr %76, align 4, !tbaa !37
  %3793 = sub nsw i32 %3792, 3
  %3794 = sext i32 %3793 to i64
  %3795 = getelementptr inbounds [4096 x i8], ptr %3791, i64 0, i64 %3794
  %3796 = load i8, ptr %3795, align 1, !tbaa !40
  %3797 = load ptr, ptr %3, align 8, !tbaa !5
  %3798 = getelementptr inbounds %struct.DState, ptr %3797, i32 0, i32 31
  %3799 = load i32, ptr %76, align 4, !tbaa !37
  %3800 = sub nsw i32 %3799, 2
  %3801 = sext i32 %3800 to i64
  %3802 = getelementptr inbounds [4096 x i8], ptr %3798, i64 0, i64 %3801
  store i8 %3796, ptr %3802, align 1, !tbaa !40
  %3803 = load ptr, ptr %3, align 8, !tbaa !5
  %3804 = getelementptr inbounds %struct.DState, ptr %3803, i32 0, i32 31
  %3805 = load i32, ptr %76, align 4, !tbaa !37
  %3806 = sub nsw i32 %3805, 4
  %3807 = sext i32 %3806 to i64
  %3808 = getelementptr inbounds [4096 x i8], ptr %3804, i64 0, i64 %3807
  %3809 = load i8, ptr %3808, align 1, !tbaa !40
  %3810 = load ptr, ptr %3, align 8, !tbaa !5
  %3811 = getelementptr inbounds %struct.DState, ptr %3810, i32 0, i32 31
  %3812 = load i32, ptr %76, align 4, !tbaa !37
  %3813 = sub nsw i32 %3812, 3
  %3814 = sext i32 %3813 to i64
  %3815 = getelementptr inbounds [4096 x i8], ptr %3811, i64 0, i64 %3814
  store i8 %3809, ptr %3815, align 1, !tbaa !40
  %3816 = load i32, ptr %75, align 4, !tbaa !37
  %3817 = sub i32 %3816, 4
  store i32 %3817, ptr %75, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #4
  br label %3758, !llvm.loop !80

3818:                                             ; preds = %3758
  br label %3819

3819:                                             ; preds = %3822, %3818
  %3820 = load i32, ptr %75, align 4, !tbaa !37
  %3821 = icmp ugt i32 %3820, 0
  br i1 %3821, label %3822, label %3841

3822:                                             ; preds = %3819
  %3823 = load ptr, ptr %3, align 8, !tbaa !5
  %3824 = getelementptr inbounds %struct.DState, ptr %3823, i32 0, i32 31
  %3825 = load i32, ptr %72, align 4, !tbaa !37
  %3826 = load i32, ptr %75, align 4, !tbaa !37
  %3827 = add i32 %3825, %3826
  %3828 = sub i32 %3827, 1
  %3829 = zext i32 %3828 to i64
  %3830 = getelementptr inbounds [4096 x i8], ptr %3824, i64 0, i64 %3829
  %3831 = load i8, ptr %3830, align 1, !tbaa !40
  %3832 = load ptr, ptr %3, align 8, !tbaa !5
  %3833 = getelementptr inbounds %struct.DState, ptr %3832, i32 0, i32 31
  %3834 = load i32, ptr %72, align 4, !tbaa !37
  %3835 = load i32, ptr %75, align 4, !tbaa !37
  %3836 = add i32 %3834, %3835
  %3837 = zext i32 %3836 to i64
  %3838 = getelementptr inbounds [4096 x i8], ptr %3833, i64 0, i64 %3837
  store i8 %3831, ptr %3838, align 1, !tbaa !40
  %3839 = load i32, ptr %75, align 4, !tbaa !37
  %3840 = add i32 %3839, -1
  store i32 %3840, ptr %75, align 4, !tbaa !37
  br label %3819, !llvm.loop !81

3841:                                             ; preds = %3819
  %3842 = load i8, ptr %4, align 1, !tbaa !40
  %3843 = load ptr, ptr %3, align 8, !tbaa !5
  %3844 = getelementptr inbounds %struct.DState, ptr %3843, i32 0, i32 31
  %3845 = load i32, ptr %72, align 4, !tbaa !37
  %3846 = sext i32 %3845 to i64
  %3847 = getelementptr inbounds [4096 x i8], ptr %3844, i64 0, i64 %3846
  store i8 %3842, ptr %3847, align 1, !tbaa !40
  br label %4001

3848:                                             ; preds = %3740
  %3849 = load i32, ptr %75, align 4, !tbaa !37
  %3850 = udiv i32 %3849, 16
  store i32 %3850, ptr %73, align 4, !tbaa !37
  %3851 = load i32, ptr %75, align 4, !tbaa !37
  %3852 = urem i32 %3851, 16
  store i32 %3852, ptr %74, align 4, !tbaa !37
  %3853 = load ptr, ptr %3, align 8, !tbaa !5
  %3854 = getelementptr inbounds %struct.DState, ptr %3853, i32 0, i32 32
  %3855 = load i32, ptr %73, align 4, !tbaa !37
  %3856 = sext i32 %3855 to i64
  %3857 = getelementptr inbounds [16 x i32], ptr %3854, i64 0, i64 %3856
  %3858 = load i32, ptr %3857, align 4, !tbaa !37
  %3859 = load i32, ptr %74, align 4, !tbaa !37
  %3860 = add nsw i32 %3858, %3859
  store i32 %3860, ptr %72, align 4, !tbaa !37
  %3861 = load ptr, ptr %3, align 8, !tbaa !5
  %3862 = getelementptr inbounds %struct.DState, ptr %3861, i32 0, i32 31
  %3863 = load i32, ptr %72, align 4, !tbaa !37
  %3864 = sext i32 %3863 to i64
  %3865 = getelementptr inbounds [4096 x i8], ptr %3862, i64 0, i64 %3864
  %3866 = load i8, ptr %3865, align 1, !tbaa !40
  store i8 %3866, ptr %4, align 1, !tbaa !40
  br label %3867

3867:                                             ; preds = %3876, %3848
  %3868 = load i32, ptr %72, align 4, !tbaa !37
  %3869 = load ptr, ptr %3, align 8, !tbaa !5
  %3870 = getelementptr inbounds %struct.DState, ptr %3869, i32 0, i32 32
  %3871 = load i32, ptr %73, align 4, !tbaa !37
  %3872 = sext i32 %3871 to i64
  %3873 = getelementptr inbounds [16 x i32], ptr %3870, i64 0, i64 %3872
  %3874 = load i32, ptr %3873, align 4, !tbaa !37
  %3875 = icmp sgt i32 %3868, %3874
  br i1 %3875, label %3876, label %3891

3876:                                             ; preds = %3867
  %3877 = load ptr, ptr %3, align 8, !tbaa !5
  %3878 = getelementptr inbounds %struct.DState, ptr %3877, i32 0, i32 31
  %3879 = load i32, ptr %72, align 4, !tbaa !37
  %3880 = sub nsw i32 %3879, 1
  %3881 = sext i32 %3880 to i64
  %3882 = getelementptr inbounds [4096 x i8], ptr %3878, i64 0, i64 %3881
  %3883 = load i8, ptr %3882, align 1, !tbaa !40
  %3884 = load ptr, ptr %3, align 8, !tbaa !5
  %3885 = getelementptr inbounds %struct.DState, ptr %3884, i32 0, i32 31
  %3886 = load i32, ptr %72, align 4, !tbaa !37
  %3887 = sext i32 %3886 to i64
  %3888 = getelementptr inbounds [4096 x i8], ptr %3885, i64 0, i64 %3887
  store i8 %3883, ptr %3888, align 1, !tbaa !40
  %3889 = load i32, ptr %72, align 4, !tbaa !37
  %3890 = add nsw i32 %3889, -1
  store i32 %3890, ptr %72, align 4, !tbaa !37
  br label %3867, !llvm.loop !82

3891:                                             ; preds = %3867
  %3892 = load ptr, ptr %3, align 8, !tbaa !5
  %3893 = getelementptr inbounds %struct.DState, ptr %3892, i32 0, i32 32
  %3894 = load i32, ptr %73, align 4, !tbaa !37
  %3895 = sext i32 %3894 to i64
  %3896 = getelementptr inbounds [16 x i32], ptr %3893, i64 0, i64 %3895
  %3897 = load i32, ptr %3896, align 4, !tbaa !37
  %3898 = add nsw i32 %3897, 1
  store i32 %3898, ptr %3896, align 4, !tbaa !37
  br label %3899

3899:                                             ; preds = %3902, %3891
  %3900 = load i32, ptr %73, align 4, !tbaa !37
  %3901 = icmp sgt i32 %3900, 0
  br i1 %3901, label %3902, label %3936

3902:                                             ; preds = %3899
  %3903 = load ptr, ptr %3, align 8, !tbaa !5
  %3904 = getelementptr inbounds %struct.DState, ptr %3903, i32 0, i32 32
  %3905 = load i32, ptr %73, align 4, !tbaa !37
  %3906 = sext i32 %3905 to i64
  %3907 = getelementptr inbounds [16 x i32], ptr %3904, i64 0, i64 %3906
  %3908 = load i32, ptr %3907, align 4, !tbaa !37
  %3909 = add nsw i32 %3908, -1
  store i32 %3909, ptr %3907, align 4, !tbaa !37
  %3910 = load ptr, ptr %3, align 8, !tbaa !5
  %3911 = getelementptr inbounds %struct.DState, ptr %3910, i32 0, i32 31
  %3912 = load ptr, ptr %3, align 8, !tbaa !5
  %3913 = getelementptr inbounds %struct.DState, ptr %3912, i32 0, i32 32
  %3914 = load i32, ptr %73, align 4, !tbaa !37
  %3915 = sub nsw i32 %3914, 1
  %3916 = sext i32 %3915 to i64
  %3917 = getelementptr inbounds [16 x i32], ptr %3913, i64 0, i64 %3916
  %3918 = load i32, ptr %3917, align 4, !tbaa !37
  %3919 = add nsw i32 %3918, 16
  %3920 = sub nsw i32 %3919, 1
  %3921 = sext i32 %3920 to i64
  %3922 = getelementptr inbounds [4096 x i8], ptr %3911, i64 0, i64 %3921
  %3923 = load i8, ptr %3922, align 1, !tbaa !40
  %3924 = load ptr, ptr %3, align 8, !tbaa !5
  %3925 = getelementptr inbounds %struct.DState, ptr %3924, i32 0, i32 31
  %3926 = load ptr, ptr %3, align 8, !tbaa !5
  %3927 = getelementptr inbounds %struct.DState, ptr %3926, i32 0, i32 32
  %3928 = load i32, ptr %73, align 4, !tbaa !37
  %3929 = sext i32 %3928 to i64
  %3930 = getelementptr inbounds [16 x i32], ptr %3927, i64 0, i64 %3929
  %3931 = load i32, ptr %3930, align 4, !tbaa !37
  %3932 = sext i32 %3931 to i64
  %3933 = getelementptr inbounds [4096 x i8], ptr %3925, i64 0, i64 %3932
  store i8 %3923, ptr %3933, align 1, !tbaa !40
  %3934 = load i32, ptr %73, align 4, !tbaa !37
  %3935 = add nsw i32 %3934, -1
  store i32 %3935, ptr %73, align 4, !tbaa !37
  br label %3899, !llvm.loop !83

3936:                                             ; preds = %3899
  %3937 = load ptr, ptr %3, align 8, !tbaa !5
  %3938 = getelementptr inbounds %struct.DState, ptr %3937, i32 0, i32 32
  %3939 = getelementptr inbounds [16 x i32], ptr %3938, i64 0, i64 0
  %3940 = load i32, ptr %3939, align 4, !tbaa !37
  %3941 = add nsw i32 %3940, -1
  store i32 %3941, ptr %3939, align 4, !tbaa !37
  %3942 = load i8, ptr %4, align 1, !tbaa !40
  %3943 = load ptr, ptr %3, align 8, !tbaa !5
  %3944 = getelementptr inbounds %struct.DState, ptr %3943, i32 0, i32 31
  %3945 = load ptr, ptr %3, align 8, !tbaa !5
  %3946 = getelementptr inbounds %struct.DState, ptr %3945, i32 0, i32 32
  %3947 = getelementptr inbounds [16 x i32], ptr %3946, i64 0, i64 0
  %3948 = load i32, ptr %3947, align 4, !tbaa !37
  %3949 = sext i32 %3948 to i64
  %3950 = getelementptr inbounds [4096 x i8], ptr %3944, i64 0, i64 %3949
  store i8 %3942, ptr %3950, align 1, !tbaa !40
  %3951 = load ptr, ptr %3, align 8, !tbaa !5
  %3952 = getelementptr inbounds %struct.DState, ptr %3951, i32 0, i32 32
  %3953 = getelementptr inbounds [16 x i32], ptr %3952, i64 0, i64 0
  %3954 = load i32, ptr %3953, align 4, !tbaa !37
  %3955 = icmp eq i32 %3954, 0
  br i1 %3955, label %3956, label %4000

3956:                                             ; preds = %3936
  store i32 4095, ptr %71, align 4, !tbaa !37
  store i32 15, ptr %69, align 4, !tbaa !37
  br label %3957

3957:                                             ; preds = %3996, %3956
  %3958 = load i32, ptr %69, align 4, !tbaa !37
  %3959 = icmp sge i32 %3958, 0
  br i1 %3959, label %3960, label %3999

3960:                                             ; preds = %3957
  store i32 15, ptr %70, align 4, !tbaa !37
  br label %3961

3961:                                             ; preds = %3985, %3960
  %3962 = load i32, ptr %70, align 4, !tbaa !37
  %3963 = icmp sge i32 %3962, 0
  br i1 %3963, label %3964, label %3988

3964:                                             ; preds = %3961
  %3965 = load ptr, ptr %3, align 8, !tbaa !5
  %3966 = getelementptr inbounds %struct.DState, ptr %3965, i32 0, i32 31
  %3967 = load ptr, ptr %3, align 8, !tbaa !5
  %3968 = getelementptr inbounds %struct.DState, ptr %3967, i32 0, i32 32
  %3969 = load i32, ptr %69, align 4, !tbaa !37
  %3970 = sext i32 %3969 to i64
  %3971 = getelementptr inbounds [16 x i32], ptr %3968, i64 0, i64 %3970
  %3972 = load i32, ptr %3971, align 4, !tbaa !37
  %3973 = load i32, ptr %70, align 4, !tbaa !37
  %3974 = add nsw i32 %3972, %3973
  %3975 = sext i32 %3974 to i64
  %3976 = getelementptr inbounds [4096 x i8], ptr %3966, i64 0, i64 %3975
  %3977 = load i8, ptr %3976, align 1, !tbaa !40
  %3978 = load ptr, ptr %3, align 8, !tbaa !5
  %3979 = getelementptr inbounds %struct.DState, ptr %3978, i32 0, i32 31
  %3980 = load i32, ptr %71, align 4, !tbaa !37
  %3981 = sext i32 %3980 to i64
  %3982 = getelementptr inbounds [4096 x i8], ptr %3979, i64 0, i64 %3981
  store i8 %3977, ptr %3982, align 1, !tbaa !40
  %3983 = load i32, ptr %71, align 4, !tbaa !37
  %3984 = add nsw i32 %3983, -1
  store i32 %3984, ptr %71, align 4, !tbaa !37
  br label %3985

3985:                                             ; preds = %3964
  %3986 = load i32, ptr %70, align 4, !tbaa !37
  %3987 = add nsw i32 %3986, -1
  store i32 %3987, ptr %70, align 4, !tbaa !37
  br label %3961, !llvm.loop !84

3988:                                             ; preds = %3961
  %3989 = load i32, ptr %71, align 4, !tbaa !37
  %3990 = add nsw i32 %3989, 1
  %3991 = load ptr, ptr %3, align 8, !tbaa !5
  %3992 = getelementptr inbounds %struct.DState, ptr %3991, i32 0, i32 32
  %3993 = load i32, ptr %69, align 4, !tbaa !37
  %3994 = sext i32 %3993 to i64
  %3995 = getelementptr inbounds [16 x i32], ptr %3992, i64 0, i64 %3994
  store i32 %3990, ptr %3995, align 4, !tbaa !37
  br label %3996

3996:                                             ; preds = %3988
  %3997 = load i32, ptr %69, align 4, !tbaa !37
  %3998 = add nsw i32 %3997, -1
  store i32 %3998, ptr %69, align 4, !tbaa !37
  br label %3957, !llvm.loop !85

3999:                                             ; preds = %3957
  br label %4000

4000:                                             ; preds = %3999, %3936
  br label %4001

4001:                                             ; preds = %4000, %3841
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #4
  %4002 = load ptr, ptr %3, align 8, !tbaa !5
  %4003 = getelementptr inbounds %struct.DState, ptr %4002, i32 0, i32 16
  %4004 = load ptr, ptr %3, align 8, !tbaa !5
  %4005 = getelementptr inbounds %struct.DState, ptr %4004, i32 0, i32 30
  %4006 = load i8, ptr %4, align 1, !tbaa !40
  %4007 = zext i8 %4006 to i64
  %4008 = getelementptr inbounds [256 x i8], ptr %4005, i64 0, i64 %4007
  %4009 = load i8, ptr %4008, align 1, !tbaa !40
  %4010 = zext i8 %4009 to i64
  %4011 = getelementptr inbounds [256 x i32], ptr %4003, i64 0, i64 %4010
  %4012 = load i32, ptr %4011, align 4, !tbaa !37
  %4013 = add nsw i32 %4012, 1
  store i32 %4013, ptr %4011, align 4, !tbaa !37
  %4014 = load ptr, ptr %3, align 8, !tbaa !5
  %4015 = getelementptr inbounds %struct.DState, ptr %4014, i32 0, i32 10
  %4016 = load i8, ptr %4015, align 4, !tbaa !47
  %4017 = icmp ne i8 %4016, 0
  br i1 %4017, label %4018, label %4032

4018:                                             ; preds = %4001
  %4019 = load ptr, ptr %3, align 8, !tbaa !5
  %4020 = getelementptr inbounds %struct.DState, ptr %4019, i32 0, i32 30
  %4021 = load i8, ptr %4, align 1, !tbaa !40
  %4022 = zext i8 %4021 to i64
  %4023 = getelementptr inbounds [256 x i8], ptr %4020, i64 0, i64 %4022
  %4024 = load i8, ptr %4023, align 1, !tbaa !40
  %4025 = zext i8 %4024 to i16
  %4026 = load ptr, ptr %3, align 8, !tbaa !5
  %4027 = getelementptr inbounds %struct.DState, ptr %4026, i32 0, i32 21
  %4028 = load ptr, ptr %4027, align 8, !tbaa !50
  %4029 = load i32, ptr %20, align 4, !tbaa !37
  %4030 = sext i32 %4029 to i64
  %4031 = getelementptr inbounds i16, ptr %4028, i64 %4030
  store i16 %4025, ptr %4031, align 2, !tbaa !76
  br label %4046

4032:                                             ; preds = %4001
  %4033 = load ptr, ptr %3, align 8, !tbaa !5
  %4034 = getelementptr inbounds %struct.DState, ptr %4033, i32 0, i32 30
  %4035 = load i8, ptr %4, align 1, !tbaa !40
  %4036 = zext i8 %4035 to i64
  %4037 = getelementptr inbounds [256 x i8], ptr %4034, i64 0, i64 %4036
  %4038 = load i8, ptr %4037, align 1, !tbaa !40
  %4039 = zext i8 %4038 to i32
  %4040 = load ptr, ptr %3, align 8, !tbaa !5
  %4041 = getelementptr inbounds %struct.DState, ptr %4040, i32 0, i32 20
  %4042 = load ptr, ptr %4041, align 8, !tbaa !52
  %4043 = load i32, ptr %20, align 4, !tbaa !37
  %4044 = sext i32 %4043 to i64
  %4045 = getelementptr inbounds i32, ptr %4042, i64 %4044
  store i32 %4039, ptr %4045, align 4, !tbaa !37
  br label %4046

4046:                                             ; preds = %4032, %4018
  %4047 = load i32, ptr %20, align 4, !tbaa !37
  %4048 = add nsw i32 %4047, 1
  store i32 %4048, ptr %20, align 4, !tbaa !37
  %4049 = load i32, ptr %17, align 4, !tbaa !37
  %4050 = icmp eq i32 %4049, 0
  br i1 %4050, label %4051, label %4090

4051:                                             ; preds = %4046
  %4052 = load i32, ptr %16, align 4, !tbaa !37
  %4053 = add nsw i32 %4052, 1
  store i32 %4053, ptr %16, align 4, !tbaa !37
  %4054 = load i32, ptr %16, align 4, !tbaa !37
  %4055 = load i32, ptr %14, align 4, !tbaa !37
  %4056 = icmp sge i32 %4054, %4055
  br i1 %4056, label %4057, label %4058

4057:                                             ; preds = %4051
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4058:                                             ; preds = %4051
  store i32 50, ptr %17, align 4, !tbaa !37
  %4059 = load ptr, ptr %3, align 8, !tbaa !5
  %4060 = getelementptr inbounds %struct.DState, ptr %4059, i32 0, i32 33
  %4061 = load i32, ptr %16, align 4, !tbaa !37
  %4062 = sext i32 %4061 to i64
  %4063 = getelementptr inbounds [18002 x i8], ptr %4060, i64 0, i64 %4062
  %4064 = load i8, ptr %4063, align 1, !tbaa !40
  %4065 = zext i8 %4064 to i32
  store i32 %4065, ptr %28, align 4, !tbaa !37
  %4066 = load ptr, ptr %3, align 8, !tbaa !5
  %4067 = getelementptr inbounds %struct.DState, ptr %4066, i32 0, i32 39
  %4068 = load i32, ptr %28, align 4, !tbaa !37
  %4069 = sext i32 %4068 to i64
  %4070 = getelementptr inbounds [6 x i32], ptr %4067, i64 0, i64 %4069
  %4071 = load i32, ptr %4070, align 4, !tbaa !37
  store i32 %4071, ptr %29, align 4, !tbaa !37
  %4072 = load ptr, ptr %3, align 8, !tbaa !5
  %4073 = getelementptr inbounds %struct.DState, ptr %4072, i32 0, i32 36
  %4074 = load i32, ptr %28, align 4, !tbaa !37
  %4075 = sext i32 %4074 to i64
  %4076 = getelementptr inbounds [6 x [258 x i32]], ptr %4073, i64 0, i64 %4075
  %4077 = getelementptr inbounds [258 x i32], ptr %4076, i64 0, i64 0
  store ptr %4077, ptr %30, align 8, !tbaa !5
  %4078 = load ptr, ptr %3, align 8, !tbaa !5
  %4079 = getelementptr inbounds %struct.DState, ptr %4078, i32 0, i32 38
  %4080 = load i32, ptr %28, align 4, !tbaa !37
  %4081 = sext i32 %4080 to i64
  %4082 = getelementptr inbounds [6 x [258 x i32]], ptr %4079, i64 0, i64 %4081
  %4083 = getelementptr inbounds [258 x i32], ptr %4082, i64 0, i64 0
  store ptr %4083, ptr %32, align 8, !tbaa !5
  %4084 = load ptr, ptr %3, align 8, !tbaa !5
  %4085 = getelementptr inbounds %struct.DState, ptr %4084, i32 0, i32 37
  %4086 = load i32, ptr %28, align 4, !tbaa !37
  %4087 = sext i32 %4086 to i64
  %4088 = getelementptr inbounds [6 x [258 x i32]], ptr %4085, i64 0, i64 %4087
  %4089 = getelementptr inbounds [258 x i32], ptr %4088, i64 0, i64 0
  store ptr %4089, ptr %31, align 8, !tbaa !5
  br label %4090

4090:                                             ; preds = %4058, %4046
  %4091 = load i32, ptr %17, align 4, !tbaa !37
  %4092 = add nsw i32 %4091, -1
  store i32 %4092, ptr %17, align 4, !tbaa !37
  %4093 = load i32, ptr %29, align 4, !tbaa !37
  store i32 %4093, ptr %25, align 4, !tbaa !37
  br label %4094

4094:                                             ; preds = %4090, %146
  %4095 = load ptr, ptr %3, align 8, !tbaa !5
  %4096 = getelementptr inbounds %struct.DState, ptr %4095, i32 0, i32 1
  store i32 40, ptr %4096, align 8, !tbaa !12
  br label %4097

4097:                                             ; preds = %4182, %4094
  br label %4098

4098:                                             ; preds = %4097
  %4099 = load ptr, ptr %3, align 8, !tbaa !5
  %4100 = getelementptr inbounds %struct.DState, ptr %4099, i32 0, i32 8
  %4101 = load i32, ptr %4100, align 4, !tbaa !38
  %4102 = load i32, ptr %25, align 4, !tbaa !37
  %4103 = icmp sge i32 %4101, %4102
  br i1 %4103, label %4104, label %4124

4104:                                             ; preds = %4098
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #4
  %4105 = load ptr, ptr %3, align 8, !tbaa !5
  %4106 = getelementptr inbounds %struct.DState, ptr %4105, i32 0, i32 7
  %4107 = load i32, ptr %4106, align 8, !tbaa !39
  %4108 = load ptr, ptr %3, align 8, !tbaa !5
  %4109 = getelementptr inbounds %struct.DState, ptr %4108, i32 0, i32 8
  %4110 = load i32, ptr %4109, align 4, !tbaa !38
  %4111 = load i32, ptr %25, align 4, !tbaa !37
  %4112 = sub nsw i32 %4110, %4111
  %4113 = lshr i32 %4107, %4112
  %4114 = load i32, ptr %25, align 4, !tbaa !37
  %4115 = shl i32 1, %4114
  %4116 = sub nsw i32 %4115, 1
  %4117 = and i32 %4113, %4116
  store i32 %4117, ptr %77, align 4, !tbaa !37
  %4118 = load i32, ptr %25, align 4, !tbaa !37
  %4119 = load ptr, ptr %3, align 8, !tbaa !5
  %4120 = getelementptr inbounds %struct.DState, ptr %4119, i32 0, i32 8
  %4121 = load i32, ptr %4120, align 4, !tbaa !38
  %4122 = sub nsw i32 %4121, %4118
  store i32 %4122, ptr %4120, align 4, !tbaa !38
  %4123 = load i32, ptr %77, align 4, !tbaa !37
  store i32 %4123, ptr %26, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #4
  br label %4183

4124:                                             ; preds = %4098
  %4125 = load ptr, ptr %3, align 8, !tbaa !5
  %4126 = getelementptr inbounds %struct.DState, ptr %4125, i32 0, i32 0
  %4127 = load ptr, ptr %4126, align 8, !tbaa !9
  %4128 = getelementptr inbounds %struct.bz_stream, ptr %4127, i32 0, i32 1
  %4129 = load i32, ptr %4128, align 8, !tbaa !41
  %4130 = icmp eq i32 %4129, 0
  br i1 %4130, label %4131, label %4132

4131:                                             ; preds = %4124
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

4132:                                             ; preds = %4124
  %4133 = load ptr, ptr %3, align 8, !tbaa !5
  %4134 = getelementptr inbounds %struct.DState, ptr %4133, i32 0, i32 7
  %4135 = load i32, ptr %4134, align 8, !tbaa !39
  %4136 = shl i32 %4135, 8
  %4137 = load ptr, ptr %3, align 8, !tbaa !5
  %4138 = getelementptr inbounds %struct.DState, ptr %4137, i32 0, i32 0
  %4139 = load ptr, ptr %4138, align 8, !tbaa !9
  %4140 = getelementptr inbounds %struct.bz_stream, ptr %4139, i32 0, i32 0
  %4141 = load ptr, ptr %4140, align 8, !tbaa !43
  %4142 = load i8, ptr %4141, align 1, !tbaa !40
  %4143 = zext i8 %4142 to i32
  %4144 = or i32 %4136, %4143
  %4145 = load ptr, ptr %3, align 8, !tbaa !5
  %4146 = getelementptr inbounds %struct.DState, ptr %4145, i32 0, i32 7
  store i32 %4144, ptr %4146, align 8, !tbaa !39
  %4147 = load ptr, ptr %3, align 8, !tbaa !5
  %4148 = getelementptr inbounds %struct.DState, ptr %4147, i32 0, i32 8
  %4149 = load i32, ptr %4148, align 4, !tbaa !38
  %4150 = add nsw i32 %4149, 8
  store i32 %4150, ptr %4148, align 4, !tbaa !38
  %4151 = load ptr, ptr %3, align 8, !tbaa !5
  %4152 = getelementptr inbounds %struct.DState, ptr %4151, i32 0, i32 0
  %4153 = load ptr, ptr %4152, align 8, !tbaa !9
  %4154 = getelementptr inbounds %struct.bz_stream, ptr %4153, i32 0, i32 0
  %4155 = load ptr, ptr %4154, align 8, !tbaa !43
  %4156 = getelementptr inbounds i8, ptr %4155, i32 1
  store ptr %4156, ptr %4154, align 8, !tbaa !43
  %4157 = load ptr, ptr %3, 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 1
  %4161 = load i32, ptr %4160, align 8, !tbaa !41
  %4162 = add i32 %4161, -1
  store i32 %4162, ptr %4160, align 8, !tbaa !41
  %4163 = load ptr, ptr %3, align 8, !tbaa !5
  %4164 = getelementptr inbounds %struct.DState, ptr %4163, i32 0, i32 0
  %4165 = load ptr, ptr %4164, align 8, !tbaa !9
  %4166 = getelementptr inbounds %struct.bz_stream, ptr %4165, i32 0, i32 2
  %4167 = load i32, ptr %4166, align 4, !tbaa !44
  %4168 = add i32 %4167, 1
  store i32 %4168, ptr %4166, align 4, !tbaa !44
  %4169 = load ptr, ptr %3, align 8, !tbaa !5
  %4170 = getelementptr inbounds %struct.DState, ptr %4169, i32 0, i32 0
  %4171 = load ptr, ptr %4170, align 8, !tbaa !9
  %4172 = getelementptr inbounds %struct.bz_stream, ptr %4171, i32 0, i32 2
  %4173 = load i32, ptr %4172, align 4, !tbaa !44
  %4174 = icmp eq i32 %4173, 0
  br i1 %4174, label %4175, label %4182

4175:                                             ; preds = %4132
  %4176 = load ptr, ptr %3, align 8, !tbaa !5
  %4177 = getelementptr inbounds %struct.DState, ptr %4176, i32 0, i32 0
  %4178 = load ptr, ptr %4177, align 8, !tbaa !9
  %4179 = getelementptr inbounds %struct.bz_stream, ptr %4178, i32 0, i32 3
  %4180 = load i32, ptr %4179, align 8, !tbaa !45
  %4181 = add i32 %4180, 1
  store i32 %4181, ptr %4179, align 8, !tbaa !45
  br label %4182

4182:                                             ; preds = %4175, %4132
  br label %4097

4183:                                             ; preds = %4104
  br label %4184

4184:                                             ; preds = %4284, %4183
  br label %4185

4185:                                             ; preds = %4184
  %4186 = load i32, ptr %25, align 4, !tbaa !37
  %4187 = icmp sgt i32 %4186, 20
  br i1 %4187, label %4188, label %4189

4188:                                             ; preds = %4185
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4189:                                             ; preds = %4185
  %4190 = load i32, ptr %26, align 4, !tbaa !37
  %4191 = load ptr, ptr %30, align 8, !tbaa !5
  %4192 = load i32, ptr %25, align 4, !tbaa !37
  %4193 = sext i32 %4192 to i64
  %4194 = getelementptr inbounds i32, ptr %4191, i64 %4193
  %4195 = load i32, ptr %4194, align 4, !tbaa !37
  %4196 = icmp sle i32 %4190, %4195
  br i1 %4196, label %4197, label %4198

4197:                                             ; preds = %4189
  br label %4289

4198:                                             ; preds = %4189
  %4199 = load i32, ptr %25, align 4, !tbaa !37
  %4200 = add nsw i32 %4199, 1
  store i32 %4200, ptr %25, align 4, !tbaa !37
  br label %4201

4201:                                             ; preds = %4198, %146
  %4202 = load ptr, ptr %3, align 8, !tbaa !5
  %4203 = getelementptr inbounds %struct.DState, ptr %4202, i32 0, i32 1
  store i32 41, ptr %4203, align 8, !tbaa !12
  br label %4204

4204:                                             ; preds = %4283, %4201
  br label %4205

4205:                                             ; preds = %4204
  %4206 = load ptr, ptr %3, align 8, !tbaa !5
  %4207 = getelementptr inbounds %struct.DState, ptr %4206, i32 0, i32 8
  %4208 = load i32, ptr %4207, align 4, !tbaa !38
  %4209 = icmp sge i32 %4208, 1
  br i1 %4209, label %4210, label %4225

4210:                                             ; preds = %4205
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #4
  %4211 = load ptr, ptr %3, align 8, !tbaa !5
  %4212 = getelementptr inbounds %struct.DState, ptr %4211, i32 0, i32 7
  %4213 = load i32, ptr %4212, align 8, !tbaa !39
  %4214 = load ptr, ptr %3, align 8, !tbaa !5
  %4215 = getelementptr inbounds %struct.DState, ptr %4214, i32 0, i32 8
  %4216 = load i32, ptr %4215, align 4, !tbaa !38
  %4217 = sub nsw i32 %4216, 1
  %4218 = lshr i32 %4213, %4217
  %4219 = and i32 %4218, 1
  store i32 %4219, ptr %78, align 4, !tbaa !37
  %4220 = load ptr, ptr %3, align 8, !tbaa !5
  %4221 = getelementptr inbounds %struct.DState, ptr %4220, i32 0, i32 8
  %4222 = load i32, ptr %4221, align 4, !tbaa !38
  %4223 = sub nsw i32 %4222, 1
  store i32 %4223, ptr %4221, align 4, !tbaa !38
  %4224 = load i32, ptr %78, align 4, !tbaa !37
  store i32 %4224, ptr %27, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #4
  br label %4284

4225:                                             ; preds = %4205
  %4226 = load ptr, ptr %3, align 8, !tbaa !5
  %4227 = getelementptr inbounds %struct.DState, ptr %4226, i32 0, i32 0
  %4228 = load ptr, ptr %4227, align 8, !tbaa !9
  %4229 = getelementptr inbounds %struct.bz_stream, ptr %4228, i32 0, i32 1
  %4230 = load i32, ptr %4229, align 8, !tbaa !41
  %4231 = icmp eq i32 %4230, 0
  br i1 %4231, label %4232, label %4233

4232:                                             ; preds = %4225
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

4233:                                             ; preds = %4225
  %4234 = load ptr, ptr %3, align 8, !tbaa !5
  %4235 = getelementptr inbounds %struct.DState, ptr %4234, i32 0, i32 7
  %4236 = load i32, ptr %4235, align 8, !tbaa !39
  %4237 = shl i32 %4236, 8
  %4238 = load ptr, ptr %3, align 8, !tbaa !5
  %4239 = getelementptr inbounds %struct.DState, ptr %4238, i32 0, i32 0
  %4240 = load ptr, ptr %4239, align 8, !tbaa !9
  %4241 = getelementptr inbounds %struct.bz_stream, ptr %4240, i32 0, i32 0
  %4242 = load ptr, ptr %4241, align 8, !tbaa !43
  %4243 = load i8, ptr %4242, align 1, !tbaa !40
  %4244 = zext i8 %4243 to i32
  %4245 = or i32 %4237, %4244
  %4246 = load ptr, ptr %3, align 8, !tbaa !5
  %4247 = getelementptr inbounds %struct.DState, ptr %4246, i32 0, i32 7
  store i32 %4245, ptr %4247, align 8, !tbaa !39
  %4248 = load ptr, ptr %3, align 8, !tbaa !5
  %4249 = getelementptr inbounds %struct.DState, ptr %4248, i32 0, i32 8
  %4250 = load i32, ptr %4249, align 4, !tbaa !38
  %4251 = add nsw i32 %4250, 8
  store i32 %4251, ptr %4249, align 4, !tbaa !38
  %4252 = load ptr, ptr %3, align 8, !tbaa !5
  %4253 = getelementptr inbounds %struct.DState, ptr %4252, i32 0, i32 0
  %4254 = load ptr, ptr %4253, align 8, !tbaa !9
  %4255 = getelementptr inbounds %struct.bz_stream, ptr %4254, i32 0, i32 0
  %4256 = load ptr, ptr %4255, align 8, !tbaa !43
  %4257 = getelementptr inbounds i8, ptr %4256, i32 1
  store ptr %4257, ptr %4255, align 8, !tbaa !43
  %4258 = load ptr, ptr %3, 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 1
  %4262 = load i32, ptr %4261, align 8, !tbaa !41
  %4263 = add i32 %4262, -1
  store i32 %4263, ptr %4261, align 8, !tbaa !41
  %4264 = load ptr, ptr %3, align 8, !tbaa !5
  %4265 = getelementptr inbounds %struct.DState, ptr %4264, i32 0, i32 0
  %4266 = load ptr, ptr %4265, align 8, !tbaa !9
  %4267 = getelementptr inbounds %struct.bz_stream, ptr %4266, i32 0, i32 2
  %4268 = load i32, ptr %4267, align 4, !tbaa !44
  %4269 = add i32 %4268, 1
  store i32 %4269, ptr %4267, align 4, !tbaa !44
  %4270 = load ptr, ptr %3, align 8, !tbaa !5
  %4271 = getelementptr inbounds %struct.DState, ptr %4270, i32 0, i32 0
  %4272 = load ptr, ptr %4271, align 8, !tbaa !9
  %4273 = getelementptr inbounds %struct.bz_stream, ptr %4272, i32 0, i32 2
  %4274 = load i32, ptr %4273, align 4, !tbaa !44
  %4275 = icmp eq i32 %4274, 0
  br i1 %4275, label %4276, label %4283

4276:                                             ; preds = %4233
  %4277 = load ptr, ptr %3, align 8, !tbaa !5
  %4278 = getelementptr inbounds %struct.DState, ptr %4277, i32 0, i32 0
  %4279 = load ptr, ptr %4278, align 8, !tbaa !9
  %4280 = getelementptr inbounds %struct.bz_stream, ptr %4279, i32 0, i32 3
  %4281 = load i32, ptr %4280, align 8, !tbaa !45
  %4282 = add i32 %4281, 1
  store i32 %4282, ptr %4280, align 8, !tbaa !45
  br label %4283

4283:                                             ; preds = %4276, %4233
  br label %4204

4284:                                             ; preds = %4210
  %4285 = load i32, ptr %26, align 4, !tbaa !37
  %4286 = shl i32 %4285, 1
  %4287 = load i32, ptr %27, align 4, !tbaa !37
  %4288 = or i32 %4286, %4287
  store i32 %4288, ptr %26, align 4, !tbaa !37
  br label %4184

4289:                                             ; preds = %4197
  %4290 = load i32, ptr %26, align 4, !tbaa !37
  %4291 = load ptr, ptr %31, align 8, !tbaa !5
  %4292 = load i32, ptr %25, align 4, !tbaa !37
  %4293 = sext i32 %4292 to i64
  %4294 = getelementptr inbounds i32, ptr %4291, i64 %4293
  %4295 = load i32, ptr %4294, align 4, !tbaa !37
  %4296 = sub nsw i32 %4290, %4295
  %4297 = icmp slt i32 %4296, 0
  br i1 %4297, label %4307, label %4298

4298:                                             ; preds = %4289
  %4299 = load i32, ptr %26, align 4, !tbaa !37
  %4300 = load ptr, ptr %31, align 8, !tbaa !5
  %4301 = load i32, ptr %25, align 4, !tbaa !37
  %4302 = sext i32 %4301 to i64
  %4303 = getelementptr inbounds i32, ptr %4300, i64 %4302
  %4304 = load i32, ptr %4303, align 4, !tbaa !37
  %4305 = sub nsw i32 %4299, %4304
  %4306 = icmp sge i32 %4305, 258
  br i1 %4306, label %4307, label %4308

4307:                                             ; preds = %4298, %4289
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4308:                                             ; preds = %4298
  %4309 = load ptr, ptr %32, align 8, !tbaa !5
  %4310 = load i32, ptr %26, align 4, !tbaa !37
  %4311 = load ptr, ptr %31, align 8, !tbaa !5
  %4312 = load i32, ptr %25, align 4, !tbaa !37
  %4313 = sext i32 %4312 to i64
  %4314 = getelementptr inbounds i32, ptr %4311, i64 %4313
  %4315 = load i32, ptr %4314, align 4, !tbaa !37
  %4316 = sub nsw i32 %4310, %4315
  %4317 = sext i32 %4316 to i64
  %4318 = getelementptr inbounds i32, ptr %4309, i64 %4317
  %4319 = load i32, ptr %4318, align 4, !tbaa !37
  store i32 %4319, ptr %18, align 4, !tbaa !37
  br label %3343

4320:                                             ; preds = %3348
  %4321 = load ptr, ptr %3, align 8, !tbaa !5
  %4322 = getelementptr inbounds %struct.DState, ptr %4321, i32 0, i32 13
  %4323 = load i32, ptr %4322, align 8, !tbaa !57
  %4324 = icmp slt i32 %4323, 0
  br i1 %4324, label %4331, label %4325

4325:                                             ; preds = %4320
  %4326 = load ptr, ptr %3, align 8, !tbaa !5
  %4327 = getelementptr inbounds %struct.DState, ptr %4326, i32 0, i32 13
  %4328 = load i32, ptr %4327, align 8, !tbaa !57
  %4329 = load i32, ptr %20, align 4, !tbaa !37
  %4330 = icmp sge i32 %4328, %4329
  br i1 %4330, label %4331, label %4332

4331:                                             ; preds = %4325, %4320
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4332:                                             ; preds = %4325
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %4333

4333:                                             ; preds = %4355, %4332
  %4334 = load i32, ptr %9, align 4, !tbaa !37
  %4335 = icmp sle i32 %4334, 255
  br i1 %4335, label %4336, label %4358

4336:                                             ; preds = %4333
  %4337 = load ptr, ptr %3, align 8, !tbaa !5
  %4338 = getelementptr inbounds %struct.DState, ptr %4337, i32 0, i32 16
  %4339 = load i32, ptr %9, align 4, !tbaa !37
  %4340 = sext i32 %4339 to i64
  %4341 = getelementptr inbounds [256 x i32], ptr %4338, i64 0, i64 %4340
  %4342 = load i32, ptr %4341, align 4, !tbaa !37
  %4343 = icmp slt i32 %4342, 0
  br i1 %4343, label %4353, label %4344

4344:                                             ; preds = %4336
  %4345 = load ptr, ptr %3, align 8, !tbaa !5
  %4346 = getelementptr inbounds %struct.DState, ptr %4345, i32 0, i32 16
  %4347 = load i32, ptr %9, align 4, !tbaa !37
  %4348 = sext i32 %4347 to i64
  %4349 = getelementptr inbounds [256 x i32], ptr %4346, i64 0, i64 %4348
  %4350 = load i32, ptr %4349, align 4, !tbaa !37
  %4351 = load i32, ptr %20, align 4, !tbaa !37
  %4352 = icmp sgt i32 %4350, %4351
  br i1 %4352, label %4353, label %4354

4353:                                             ; preds = %4344, %4336
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4354:                                             ; preds = %4344
  br label %4355

4355:                                             ; preds = %4354
  %4356 = load i32, ptr %9, align 4, !tbaa !37
  %4357 = add nsw i32 %4356, 1
  store i32 %4357, ptr %9, align 4, !tbaa !37
  br label %4333, !llvm.loop !86

4358:                                             ; preds = %4333
  %4359 = load ptr, ptr %3, align 8, !tbaa !5
  %4360 = getelementptr inbounds %struct.DState, ptr %4359, i32 0, i32 18
  %4361 = getelementptr inbounds [257 x i32], ptr %4360, i64 0, i64 0
  store i32 0, ptr %4361, align 8, !tbaa !37
  store i32 1, ptr %9, align 4, !tbaa !37
  br label %4362

4362:                                             ; preds = %4378, %4358
  %4363 = load i32, ptr %9, align 4, !tbaa !37
  %4364 = icmp sle i32 %4363, 256
  br i1 %4364, label %4365, label %4381

4365:                                             ; preds = %4362
  %4366 = load ptr, ptr %3, align 8, !tbaa !5
  %4367 = getelementptr inbounds %struct.DState, ptr %4366, i32 0, i32 16
  %4368 = load i32, ptr %9, align 4, !tbaa !37
  %4369 = sub nsw i32 %4368, 1
  %4370 = sext i32 %4369 to i64
  %4371 = getelementptr inbounds [256 x i32], ptr %4367, i64 0, i64 %4370
  %4372 = load i32, ptr %4371, align 4, !tbaa !37
  %4373 = load ptr, ptr %3, align 8, !tbaa !5
  %4374 = getelementptr inbounds %struct.DState, ptr %4373, i32 0, i32 18
  %4375 = load i32, ptr %9, align 4, !tbaa !37
  %4376 = sext i32 %4375 to i64
  %4377 = getelementptr inbounds [257 x i32], ptr %4374, i64 0, i64 %4376
  store i32 %4372, ptr %4377, align 4, !tbaa !37
  br label %4378

4378:                                             ; preds = %4365
  %4379 = load i32, ptr %9, align 4, !tbaa !37
  %4380 = add nsw i32 %4379, 1
  store i32 %4380, ptr %9, align 4, !tbaa !37
  br label %4362, !llvm.loop !87

4381:                                             ; preds = %4362
  store i32 1, ptr %9, align 4, !tbaa !37
  br label %4382

4382:                                             ; preds = %4400, %4381
  %4383 = load i32, ptr %9, align 4, !tbaa !37
  %4384 = icmp sle i32 %4383, 256
  br i1 %4384, label %4385, label %4403

4385:                                             ; preds = %4382
  %4386 = load ptr, ptr %3, align 8, !tbaa !5
  %4387 = getelementptr inbounds %struct.DState, ptr %4386, i32 0, i32 18
  %4388 = load i32, ptr %9, align 4, !tbaa !37
  %4389 = sub nsw i32 %4388, 1
  %4390 = sext i32 %4389 to i64
  %4391 = getelementptr inbounds [257 x i32], ptr %4387, i64 0, i64 %4390
  %4392 = load i32, ptr %4391, align 4, !tbaa !37
  %4393 = load ptr, ptr %3, align 8, !tbaa !5
  %4394 = getelementptr inbounds %struct.DState, ptr %4393, i32 0, i32 18
  %4395 = load i32, ptr %9, align 4, !tbaa !37
  %4396 = sext i32 %4395 to i64
  %4397 = getelementptr inbounds [257 x i32], ptr %4394, i64 0, i64 %4396
  %4398 = load i32, ptr %4397, align 4, !tbaa !37
  %4399 = add nsw i32 %4398, %4392
  store i32 %4399, ptr %4397, align 4, !tbaa !37
  br label %4400

4400:                                             ; preds = %4385
  %4401 = load i32, ptr %9, align 4, !tbaa !37
  %4402 = add nsw i32 %4401, 1
  store i32 %4402, ptr %9, align 4, !tbaa !37
  br label %4382, !llvm.loop !88

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

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

4407:                                             ; preds = %4404
  %4408 = load ptr, ptr %3, align 8, !tbaa !5
  %4409 = getelementptr inbounds %struct.DState, ptr %4408, i32 0, i32 18
  %4410 = load i32, ptr %9, 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 = icmp slt i32 %4413, 0
  br i1 %4414, label %4424, label %4415

4415:                                             ; preds = %4407
  %4416 = load ptr, ptr %3, align 8, !tbaa !5
  %4417 = getelementptr inbounds %struct.DState, ptr %4416, i32 0, i32 18
  %4418 = load i32, ptr %9, align 4, !tbaa !37
  %4419 = sext i32 %4418 to i64
  %4420 = getelementptr inbounds [257 x i32], ptr %4417, i64 0, i64 %4419
  %4421 = load i32, ptr %4420, align 4, !tbaa !37
  %4422 = load i32, ptr %20, align 4, !tbaa !37
  %4423 = icmp sgt i32 %4421, %4422
  br i1 %4423, label %4424, label %4425

4424:                                             ; preds = %4415, %4407
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4425:                                             ; preds = %4415
  br label %4426

4426:                                             ; preds = %4425
  %4427 = load i32, ptr %9, align 4, !tbaa !37
  %4428 = add nsw i32 %4427, 1
  store i32 %4428, ptr %9, align 4, !tbaa !37
  br label %4404, !llvm.loop !89

4429:                                             ; preds = %4404
  store i32 1, ptr %9, align 4, !tbaa !37
  br label %4430

4430:                                             ; preds = %4450, %4429
  %4431 = load i32, ptr %9, align 4, !tbaa !37
  %4432 = icmp sle i32 %4431, 256
  br i1 %4432, label %4433, label %4453

4433:                                             ; preds = %4430
  %4434 = load ptr, ptr %3, align 8, !tbaa !5
  %4435 = getelementptr inbounds %struct.DState, ptr %4434, i32 0, i32 18
  %4436 = load i32, ptr %9, align 4, !tbaa !37
  %4437 = sub nsw i32 %4436, 1
  %4438 = sext i32 %4437 to i64
  %4439 = getelementptr inbounds [257 x i32], ptr %4435, i64 0, i64 %4438
  %4440 = load i32, ptr %4439, align 4, !tbaa !37
  %4441 = load ptr, ptr %3, align 8, !tbaa !5
  %4442 = getelementptr inbounds %struct.DState, ptr %4441, i32 0, i32 18
  %4443 = load i32, ptr %9, align 4, !tbaa !37
  %4444 = sext i32 %4443 to i64
  %4445 = getelementptr inbounds [257 x i32], ptr %4442, i64 0, i64 %4444
  %4446 = load i32, ptr %4445, align 4, !tbaa !37
  %4447 = icmp sgt i32 %4440, %4446
  br i1 %4447, label %4448, label %4449

4448:                                             ; preds = %4433
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

4449:                                             ; preds = %4433
  br label %4450

4450:                                             ; preds = %4449
  %4451 = load i32, ptr %9, align 4, !tbaa !37
  %4452 = add nsw i32 %4451, 1
  store i32 %4452, ptr %9, align 4, !tbaa !37
  br label %4430, !llvm.loop !90

4453:                                             ; preds = %4430
  %4454 = load ptr, ptr %3, align 8, !tbaa !5
  %4455 = getelementptr inbounds %struct.DState, ptr %4454, i32 0, i32 3
  store i32 0, ptr %4455, align 8, !tbaa !91
  %4456 = load ptr, ptr %3, align 8, !tbaa !5
  %4457 = getelementptr inbounds %struct.DState, ptr %4456, i32 0, i32 2
  store i8 0, ptr %4457, align 4, !tbaa !92
  %4458 = load ptr, ptr %3, align 8, !tbaa !5
  %4459 = getelementptr inbounds %struct.DState, ptr %4458, i32 0, i32 25
  store i32 -1, ptr %4459, align 8, !tbaa !93
  %4460 = load ptr, ptr %3, align 8, !tbaa !5
  %4461 = getelementptr inbounds %struct.DState, ptr %4460, i32 0, i32 1
  store i32 2, ptr %4461, align 8, !tbaa !12
  %4462 = load ptr, ptr %3, align 8, !tbaa !5
  %4463 = getelementptr inbounds %struct.DState, ptr %4462, i32 0, i32 12
  %4464 = load i32, ptr %4463, align 4, !tbaa !54
  %4465 = icmp sge i32 %4464, 2
  br i1 %4465, label %4466, label %4469

4466:                                             ; preds = %4453
  %4467 = load ptr, ptr @stderr, align 8, !tbaa !5
  %4468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4467, ptr noundef @.str.1) #4
  br label %4469

4469:                                             ; preds = %4466, %4453
  %4470 = load ptr, ptr %3, align 8, !tbaa !5
  %4471 = getelementptr inbounds %struct.DState, ptr %4470, i32 0, i32 10
  %4472 = load i8, ptr %4471, align 4, !tbaa !47
  %4473 = icmp ne i8 %4472, 0
  br i1 %4473, label %4474, label %4878

4474:                                             ; preds = %4469
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %4475

4475:                                             ; preds = %4490, %4474
  %4476 = load i32, ptr %9, align 4, !tbaa !37
  %4477 = icmp sle i32 %4476, 256
  br i1 %4477, label %4478, label %4493

4478:                                             ; preds = %4475
  %4479 = load ptr, ptr %3, align 8, !tbaa !5
  %4480 = getelementptr inbounds %struct.DState, ptr %4479, i32 0, i32 18
  %4481 = load i32, ptr %9, align 4, !tbaa !37
  %4482 = sext i32 %4481 to i64
  %4483 = getelementptr inbounds [257 x i32], ptr %4480, i64 0, i64 %4482
  %4484 = load i32, ptr %4483, align 4, !tbaa !37
  %4485 = load ptr, ptr %3, align 8, !tbaa !5
  %4486 = getelementptr inbounds %struct.DState, ptr %4485, i32 0, i32 19
  %4487 = load i32, ptr %9, align 4, !tbaa !37
  %4488 = sext i32 %4487 to i64
  %4489 = getelementptr inbounds [257 x i32], ptr %4486, i64 0, i64 %4488
  store i32 %4484, ptr %4489, align 4, !tbaa !37
  br label %4490

4490:                                             ; preds = %4478
  %4491 = load i32, ptr %9, align 4, !tbaa !37
  %4492 = add nsw i32 %4491, 1
  store i32 %4492, ptr %9, align 4, !tbaa !37
  br label %4475, !llvm.loop !94

4493:                                             ; preds = %4475
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %4494

4494:                                             ; preds = %4587, %4493
  %4495 = load i32, ptr %9, align 4, !tbaa !37
  %4496 = load i32, ptr %20, align 4, !tbaa !37
  %4497 = icmp slt i32 %4495, %4496
  br i1 %4497, label %4498, label %4590

4498:                                             ; preds = %4494
  %4499 = load ptr, ptr %3, align 8, !tbaa !5
  %4500 = getelementptr inbounds %struct.DState, ptr %4499, i32 0, i32 21
  %4501 = load ptr, ptr %4500, align 8, !tbaa !50
  %4502 = load i32, ptr %9, align 4, !tbaa !37
  %4503 = sext i32 %4502 to i64
  %4504 = getelementptr inbounds i16, ptr %4501, i64 %4503
  %4505 = load i16, ptr %4504, align 2, !tbaa !76
  %4506 = trunc i16 %4505 to i8
  store i8 %4506, ptr %4, align 1, !tbaa !40
  %4507 = load ptr, ptr %3, align 8, !tbaa !5
  %4508 = getelementptr inbounds %struct.DState, ptr %4507, i32 0, i32 19
  %4509 = load i8, ptr %4, align 1, !tbaa !40
  %4510 = zext i8 %4509 to i64
  %4511 = getelementptr inbounds [257 x i32], ptr %4508, i64 0, i64 %4510
  %4512 = load i32, ptr %4511, align 4, !tbaa !37
  %4513 = and i32 %4512, 65535
  %4514 = trunc i32 %4513 to i16
  %4515 = load ptr, ptr %3, align 8, !tbaa !5
  %4516 = getelementptr inbounds %struct.DState, ptr %4515, i32 0, i32 21
  %4517 = load ptr, ptr %4516, align 8, !tbaa !50
  %4518 = load i32, ptr %9, align 4, !tbaa !37
  %4519 = sext i32 %4518 to i64
  %4520 = getelementptr inbounds i16, ptr %4517, i64 %4519
  store i16 %4514, ptr %4520, align 2, !tbaa !76
  %4521 = load i32, ptr %9, align 4, !tbaa !37
  %4522 = and i32 %4521, 1
  %4523 = icmp eq i32 %4522, 0
  br i1 %4523, label %4524, label %4551

4524:                                             ; preds = %4498
  %4525 = load ptr, ptr %3, align 8, !tbaa !5
  %4526 = getelementptr inbounds %struct.DState, ptr %4525, i32 0, i32 22
  %4527 = load ptr, ptr %4526, align 8, !tbaa !51
  %4528 = load i32, ptr %9, align 4, !tbaa !37
  %4529 = ashr i32 %4528, 1
  %4530 = sext i32 %4529 to i64
  %4531 = getelementptr inbounds i8, ptr %4527, i64 %4530
  %4532 = load i8, ptr %4531, align 1, !tbaa !40
  %4533 = zext i8 %4532 to i32
  %4534 = and i32 %4533, 240
  %4535 = load ptr, ptr %3, align 8, !tbaa !5
  %4536 = getelementptr inbounds %struct.DState, ptr %4535, i32 0, i32 19
  %4537 = load i8, ptr %4, align 1, !tbaa !40
  %4538 = zext i8 %4537 to i64
  %4539 = getelementptr inbounds [257 x i32], ptr %4536, i64 0, i64 %4538
  %4540 = load i32, ptr %4539, align 4, !tbaa !37
  %4541 = ashr i32 %4540, 16
  %4542 = or i32 %4534, %4541
  %4543 = trunc i32 %4542 to i8
  %4544 = load ptr, ptr %3, align 8, !tbaa !5
  %4545 = getelementptr inbounds %struct.DState, ptr %4544, i32 0, i32 22
  %4546 = load ptr, ptr %4545, align 8, !tbaa !51
  %4547 = load i32, ptr %9, align 4, !tbaa !37
  %4548 = ashr i32 %4547, 1
  %4549 = sext i32 %4548 to i64
  %4550 = getelementptr inbounds i8, ptr %4546, i64 %4549
  store i8 %4543, ptr %4550, align 1, !tbaa !40
  br label %4579

4551:                                             ; preds = %4498
  %4552 = load ptr, ptr %3, align 8, !tbaa !5
  %4553 = getelementptr inbounds %struct.DState, ptr %4552, i32 0, i32 22
  %4554 = load ptr, ptr %4553, align 8, !tbaa !51
  %4555 = load i32, ptr %9, align 4, !tbaa !37
  %4556 = ashr i32 %4555, 1
  %4557 = sext i32 %4556 to i64
  %4558 = getelementptr inbounds i8, ptr %4554, i64 %4557
  %4559 = load i8, ptr %4558, align 1, !tbaa !40
  %4560 = zext i8 %4559 to i32
  %4561 = and i32 %4560, 15
  %4562 = load ptr, ptr %3, align 8, !tbaa !5
  %4563 = getelementptr inbounds %struct.DState, ptr %4562, i32 0, i32 19
  %4564 = load i8, ptr %4, align 1, !tbaa !40
  %4565 = zext i8 %4564 to i64
  %4566 = getelementptr inbounds [257 x i32], ptr %4563, i64 0, i64 %4565
  %4567 = load i32, ptr %4566, align 4, !tbaa !37
  %4568 = ashr i32 %4567, 16
  %4569 = shl i32 %4568, 4
  %4570 = or i32 %4561, %4569
  %4571 = trunc i32 %4570 to i8
  %4572 = load ptr, ptr %3, align 8, !tbaa !5
  %4573 = getelementptr inbounds %struct.DState, ptr %4572, i32 0, i32 22
  %4574 = load ptr, ptr %4573, align 8, !tbaa !51
  %4575 = load i32, ptr %9, align 4, !tbaa !37
  %4576 = ashr i32 %4575, 1
  %4577 = sext i32 %4576 to i64
  %4578 = getelementptr inbounds i8, ptr %4574, i64 %4577
  store i8 %4571, ptr %4578, align 1, !tbaa !40
  br label %4579

4579:                                             ; preds = %4551, %4524
  %4580 = load ptr, ptr %3, align 8, !tbaa !5
  %4581 = getelementptr inbounds %struct.DState, ptr %4580, i32 0, i32 19
  %4582 = load i8, ptr %4, align 1, !tbaa !40
  %4583 = zext i8 %4582 to i64
  %4584 = getelementptr inbounds [257 x i32], ptr %4581, i64 0, i64 %4583
  %4585 = load i32, ptr %4584, align 4, !tbaa !37
  %4586 = add nsw i32 %4585, 1
  store i32 %4586, ptr %4584, align 4, !tbaa !37
  br label %4587

4587:                                             ; preds = %4579
  %4588 = load i32, ptr %9, align 4, !tbaa !37
  %4589 = add nsw i32 %4588, 1
  store i32 %4589, ptr %9, align 4, !tbaa !37
  br label %4494, !llvm.loop !95

4590:                                             ; preds = %4494
  %4591 = load ptr, ptr %3, align 8, !tbaa !5
  %4592 = getelementptr inbounds %struct.DState, ptr %4591, i32 0, i32 13
  %4593 = load i32, ptr %4592, align 8, !tbaa !57
  store i32 %4593, ptr %9, align 4, !tbaa !37
  %4594 = load ptr, ptr %3, align 8, !tbaa !5
  %4595 = getelementptr inbounds %struct.DState, ptr %4594, i32 0, i32 21
  %4596 = load ptr, ptr %4595, align 8, !tbaa !50
  %4597 = load i32, ptr %9, align 4, !tbaa !37
  %4598 = sext i32 %4597 to i64
  %4599 = getelementptr inbounds i16, ptr %4596, i64 %4598
  %4600 = load i16, ptr %4599, align 2, !tbaa !76
  %4601 = zext i16 %4600 to i32
  %4602 = load ptr, ptr %3, align 8, !tbaa !5
  %4603 = getelementptr inbounds %struct.DState, ptr %4602, i32 0, i32 22
  %4604 = load ptr, ptr %4603, align 8, !tbaa !51
  %4605 = load i32, ptr %9, align 4, !tbaa !37
  %4606 = ashr i32 %4605, 1
  %4607 = sext i32 %4606 to i64
  %4608 = getelementptr inbounds i8, ptr %4604, i64 %4607
  %4609 = load i8, ptr %4608, align 1, !tbaa !40
  %4610 = zext i8 %4609 to i32
  %4611 = load i32, ptr %9, align 4, !tbaa !37
  %4612 = shl i32 %4611, 2
  %4613 = and i32 %4612, 4
  %4614 = lshr i32 %4610, %4613
  %4615 = and i32 %4614, 15
  %4616 = shl i32 %4615, 16
  %4617 = or i32 %4601, %4616
  store i32 %4617, ptr %10, align 4, !tbaa !37
  br label %4618

4618:                                             ; preds = %4703, %4590
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #4
  %4619 = load ptr, ptr %3, align 8, !tbaa !5
  %4620 = getelementptr inbounds %struct.DState, ptr %4619, i32 0, i32 21
  %4621 = load ptr, ptr %4620, align 8, !tbaa !50
  %4622 = load i32, ptr %10, align 4, !tbaa !37
  %4623 = sext i32 %4622 to i64
  %4624 = getelementptr inbounds i16, ptr %4621, i64 %4623
  %4625 = load i16, ptr %4624, align 2, !tbaa !76
  %4626 = zext i16 %4625 to i32
  %4627 = load ptr, ptr %3, align 8, !tbaa !5
  %4628 = getelementptr inbounds %struct.DState, ptr %4627, i32 0, i32 22
  %4629 = load ptr, ptr %4628, align 8, !tbaa !51
  %4630 = load i32, ptr %10, align 4, !tbaa !37
  %4631 = ashr i32 %4630, 1
  %4632 = sext i32 %4631 to i64
  %4633 = getelementptr inbounds i8, ptr %4629, i64 %4632
  %4634 = load i8, ptr %4633, align 1, !tbaa !40
  %4635 = zext i8 %4634 to i32
  %4636 = load i32, ptr %10, align 4, !tbaa !37
  %4637 = shl i32 %4636, 2
  %4638 = and i32 %4637, 4
  %4639 = lshr i32 %4635, %4638
  %4640 = and i32 %4639, 15
  %4641 = shl i32 %4640, 16
  %4642 = or i32 %4626, %4641
  store i32 %4642, ptr %79, align 4, !tbaa !37
  %4643 = load i32, ptr %9, align 4, !tbaa !37
  %4644 = and i32 %4643, 65535
  %4645 = trunc i32 %4644 to i16
  %4646 = load ptr, ptr %3, align 8, !tbaa !5
  %4647 = getelementptr inbounds %struct.DState, ptr %4646, i32 0, i32 21
  %4648 = load ptr, ptr %4647, align 8, !tbaa !50
  %4649 = load i32, ptr %10, align 4, !tbaa !37
  %4650 = sext i32 %4649 to i64
  %4651 = getelementptr inbounds i16, ptr %4648, i64 %4650
  store i16 %4645, ptr %4651, align 2, !tbaa !76
  %4652 = load i32, ptr %10, align 4, !tbaa !37
  %4653 = and i32 %4652, 1
  %4654 = icmp eq i32 %4653, 0
  br i1 %4654, label %4655, label %4677

4655:                                             ; preds = %4618
  %4656 = load ptr, ptr %3, align 8, !tbaa !5
  %4657 = getelementptr inbounds %struct.DState, ptr %4656, i32 0, i32 22
  %4658 = load ptr, ptr %4657, align 8, !tbaa !51
  %4659 = load i32, ptr %10, align 4, !tbaa !37
  %4660 = ashr i32 %4659, 1
  %4661 = sext i32 %4660 to i64
  %4662 = getelementptr inbounds i8, ptr %4658, i64 %4661
  %4663 = load i8, ptr %4662, align 1, !tbaa !40
  %4664 = zext i8 %4663 to i32
  %4665 = and i32 %4664, 240
  %4666 = load i32, ptr %9, align 4, !tbaa !37
  %4667 = ashr i32 %4666, 16
  %4668 = or i32 %4665, %4667
  %4669 = trunc i32 %4668 to i8
  %4670 = load ptr, ptr %3, align 8, !tbaa !5
  %4671 = getelementptr inbounds %struct.DState, ptr %4670, i32 0, i32 22
  %4672 = load ptr, ptr %4671, align 8, !tbaa !51
  %4673 = load i32, ptr %10, align 4, !tbaa !37
  %4674 = ashr i32 %4673, 1
  %4675 = sext i32 %4674 to i64
  %4676 = getelementptr inbounds i8, ptr %4672, i64 %4675
  store i8 %4669, ptr %4676, align 1, !tbaa !40
  br label %4700

4677:                                             ; preds = %4618
  %4678 = load ptr, ptr %3, align 8, !tbaa !5
  %4679 = getelementptr inbounds %struct.DState, ptr %4678, i32 0, i32 22
  %4680 = load ptr, ptr %4679, align 8, !tbaa !51
  %4681 = load i32, ptr %10, align 4, !tbaa !37
  %4682 = ashr i32 %4681, 1
  %4683 = sext i32 %4682 to i64
  %4684 = getelementptr inbounds i8, ptr %4680, i64 %4683
  %4685 = load i8, ptr %4684, align 1, !tbaa !40
  %4686 = zext i8 %4685 to i32
  %4687 = and i32 %4686, 15
  %4688 = load i32, ptr %9, align 4, !tbaa !37
  %4689 = ashr i32 %4688, 16
  %4690 = shl i32 %4689, 4
  %4691 = or i32 %4687, %4690
  %4692 = trunc i32 %4691 to i8
  %4693 = load ptr, ptr %3, align 8, !tbaa !5
  %4694 = getelementptr inbounds %struct.DState, ptr %4693, i32 0, i32 22
  %4695 = load ptr, ptr %4694, align 8, !tbaa !51
  %4696 = load i32, ptr %10, align 4, !tbaa !37
  %4697 = ashr i32 %4696, 1
  %4698 = sext i32 %4697 to i64
  %4699 = getelementptr inbounds i8, ptr %4695, i64 %4698
  store i8 %4692, ptr %4699, align 1, !tbaa !40
  br label %4700

4700:                                             ; preds = %4677, %4655
  %4701 = load i32, ptr %10, align 4, !tbaa !37
  store i32 %4701, ptr %9, align 4, !tbaa !37
  %4702 = load i32, ptr %79, align 4, !tbaa !37
  store i32 %4702, ptr %10, align 4, !tbaa !37
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #4
  br label %4703

4703:                                             ; preds = %4700
  %4704 = load i32, ptr %9, align 4, !tbaa !37
  %4705 = load ptr, ptr %3, align 8, !tbaa !5
  %4706 = getelementptr inbounds %struct.DState, ptr %4705, i32 0, i32 13
  %4707 = load i32, ptr %4706, align 8, !tbaa !57
  %4708 = icmp ne i32 %4704, %4707
  br i1 %4708, label %4618, label %4709, !llvm.loop !96

4709:                                             ; preds = %4703
  %4710 = load ptr, ptr %3, align 8, !tbaa !5
  %4711 = getelementptr inbounds %struct.DState, ptr %4710, i32 0, i32 13
  %4712 = load i32, ptr %4711, align 8, !tbaa !57
  %4713 = load ptr, ptr %3, align 8, !tbaa !5
  %4714 = getelementptr inbounds %struct.DState, ptr %4713, i32 0, i32 14
  store i32 %4712, ptr %4714, align 4, !tbaa !97
  %4715 = load ptr, ptr %3, align 8, !tbaa !5
  %4716 = getelementptr inbounds %struct.DState, ptr %4715, i32 0, i32 17
  store i32 0, ptr %4716, align 4, !tbaa !98
  %4717 = load ptr, ptr %3, align 8, !tbaa !5
  %4718 = getelementptr inbounds %struct.DState, ptr %4717, i32 0, i32 4
  %4719 = load i8, ptr %4718, align 4, !tbaa !56
  %4720 = icmp ne i8 %4719, 0
  br i1 %4720, label %4721, label %4821

4721:                                             ; preds = %4709
  %4722 = load ptr, ptr %3, align 8, !tbaa !5
  %4723 = getelementptr inbounds %struct.DState, ptr %4722, i32 0, i32 5
  store i32 0, ptr %4723, align 8, !tbaa !99
  %4724 = load ptr, ptr %3, align 8, !tbaa !5
  %4725 = getelementptr inbounds %struct.DState, ptr %4724, i32 0, i32 6
  store i32 0, ptr %4725, align 4, !tbaa !100
  %4726 = load ptr, ptr %3, align 8, !tbaa !5
  %4727 = getelementptr inbounds %struct.DState, ptr %4726, i32 0, i32 14
  %4728 = load i32, ptr %4727, align 4, !tbaa !97
  %4729 = load ptr, ptr %3, align 8, !tbaa !5
  %4730 = getelementptr inbounds %struct.DState, ptr %4729, i32 0, i32 9
  %4731 = load i32, ptr %4730, align 8, !tbaa !46
  %4732 = mul i32 100000, %4731
  %4733 = icmp uge i32 %4728, %4732
  br i1 %4733, label %4734, label %4735

4734:                                             ; preds = %4721
  store i32 1, ptr %2, align 4
  store i32 1, ptr %80, align 4
  br label %5966

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

4785:                                             ; preds = %4735
  %4786 = load ptr, ptr %3, align 8, !tbaa !5
  %4787 = getelementptr inbounds %struct.DState, ptr %4786, i32 0, i32 6
  %4788 = load i32, ptr %4787, align 4, !tbaa !100
  %4789 = sext i32 %4788 to i64
  %4790 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %4789
  %4791 = load i32, ptr %4790, align 4, !tbaa !37
  %4792 = load ptr, ptr %3, align 8, !tbaa !5
  %4793 = getelementptr inbounds %struct.DState, ptr %4792, i32 0, i32 5
  store i32 %4791, ptr %4793, align 8, !tbaa !99
  %4794 = load ptr, ptr %3, align 8, !tbaa !5
  %4795 = getelementptr inbounds %struct.DState, ptr %4794, i32 0, i32 6
  %4796 = load i32, ptr %4795, align 4, !tbaa !100
  %4797 = add nsw i32 %4796, 1
  store i32 %4797, ptr %4795, align 4, !tbaa !100
  %4798 = load ptr, ptr %3, align 8, !tbaa !5
  %4799 = getelementptr inbounds %struct.DState, ptr %4798, i32 0, i32 6
  %4800 = load i32, ptr %4799, align 4, !tbaa !100
  %4801 = icmp eq i32 %4800, 512
  br i1 %4801, label %4802, label %4805

4802:                                             ; preds = %4785
  %4803 = load ptr, ptr %3, align 8, !tbaa !5
  %4804 = getelementptr inbounds %struct.DState, ptr %4803, i32 0, i32 6
  store i32 0, ptr %4804, align 4, !tbaa !100
  br label %4805

4805:                                             ; preds = %4802, %4785
  br label %4806

4806:                                             ; preds = %4805, %4735
  %4807 = load ptr, ptr %3, align 8, !tbaa !5
  %4808 = getelementptr inbounds %struct.DState, ptr %4807, i32 0, i32 5
  %4809 = load i32, ptr %4808, align 8, !tbaa !99
  %4810 = add nsw i32 %4809, -1
  store i32 %4810, ptr %4808, align 8, !tbaa !99
  %4811 = load ptr, ptr %3, align 8, !tbaa !5
  %4812 = getelementptr inbounds %struct.DState, ptr %4811, i32 0, i32 5
  %4813 = load i32, ptr %4812, align 8, !tbaa !99
  %4814 = icmp eq i32 %4813, 1
  %4815 = zext i1 %4814 to i64
  %4816 = select i1 %4814, i32 1, i32 0
  %4817 = load ptr, ptr %3, align 8, !tbaa !5
  %4818 = getelementptr inbounds %struct.DState, ptr %4817, i32 0, i32 15
  %4819 = load i32, ptr %4818, align 8, !tbaa !101
  %4820 = xor i32 %4819, %4816
  store i32 %4820, ptr %4818, align 8, !tbaa !101
  br label %4877

4821:                                             ; preds = %4709
  %4822 = load ptr, ptr %3, align 8, !tbaa !5
  %4823 = getelementptr inbounds %struct.DState, ptr %4822, i32 0, i32 14
  %4824 = load i32, ptr %4823, align 4, !tbaa !97
  %4825 = load ptr, ptr %3, align 8, !tbaa !5
  %4826 = getelementptr inbounds %struct.DState, ptr %4825, i32 0, i32 9
  %4827 = load i32, ptr %4826, align 8, !tbaa !46
  %4828 = mul i32 100000, %4827
  %4829 = icmp uge i32 %4824, %4828
  br i1 %4829, label %4830, label %4831

4830:                                             ; preds = %4821
  store i32 1, ptr %2, align 4
  store i32 1, ptr %80, align 4
  br label %5966

4831:                                             ; preds = %4821
  %4832 = load ptr, ptr %3, align 8, !tbaa !5
  %4833 = getelementptr inbounds %struct.DState, ptr %4832, i32 0, i32 14
  %4834 = load i32, ptr %4833, align 4, !tbaa !97
  %4835 = load ptr, ptr %3, align 8, !tbaa !5
  %4836 = getelementptr inbounds %struct.DState, ptr %4835, i32 0, i32 18
  %4837 = getelementptr inbounds [257 x i32], ptr %4836, i64 0, i64 0
  %4838 = call i32 @BZ2_indexIntoF(i32 noundef %4834, ptr noundef %4837)
  %4839 = load ptr, ptr %3, align 8, !tbaa !5
  %4840 = getelementptr inbounds %struct.DState, ptr %4839, i32 0, i32 15
  store i32 %4838, ptr %4840, align 8, !tbaa !101
  %4841 = load ptr, ptr %3, align 8, !tbaa !5
  %4842 = getelementptr inbounds %struct.DState, ptr %4841, i32 0, i32 21
  %4843 = load ptr, ptr %4842, align 8, !tbaa !50
  %4844 = load ptr, ptr %3, align 8, !tbaa !5
  %4845 = getelementptr inbounds %struct.DState, ptr %4844, i32 0, i32 14
  %4846 = load i32, ptr %4845, align 4, !tbaa !97
  %4847 = zext i32 %4846 to i64
  %4848 = getelementptr inbounds i16, ptr %4843, i64 %4847
  %4849 = load i16, ptr %4848, align 2, !tbaa !76
  %4850 = zext i16 %4849 to i32
  %4851 = load ptr, ptr %3, align 8, !tbaa !5
  %4852 = getelementptr inbounds %struct.DState, ptr %4851, i32 0, i32 22
  %4853 = load ptr, ptr %4852, align 8, !tbaa !51
  %4854 = load ptr, ptr %3, align 8, !tbaa !5
  %4855 = getelementptr inbounds %struct.DState, ptr %4854, i32 0, i32 14
  %4856 = load i32, ptr %4855, align 4, !tbaa !97
  %4857 = lshr i32 %4856, 1
  %4858 = zext i32 %4857 to i64
  %4859 = getelementptr inbounds i8, ptr %4853, i64 %4858
  %4860 = load i8, ptr %4859, align 1, !tbaa !40
  %4861 = zext i8 %4860 to i32
  %4862 = load ptr, ptr %3, align 8, !tbaa !5
  %4863 = getelementptr inbounds %struct.DState, ptr %4862, i32 0, i32 14
  %4864 = load i32, ptr %4863, align 4, !tbaa !97
  %4865 = shl i32 %4864, 2
  %4866 = and i32 %4865, 4
  %4867 = lshr i32 %4861, %4866
  %4868 = and i32 %4867, 15
  %4869 = shl i32 %4868, 16
  %4870 = or i32 %4850, %4869
  %4871 = load ptr, ptr %3, align 8, !tbaa !5
  %4872 = getelementptr inbounds %struct.DState, ptr %4871, i32 0, i32 14
  store i32 %4870, ptr %4872, align 4, !tbaa !97
  %4873 = load ptr, ptr %3, align 8, !tbaa !5
  %4874 = getelementptr inbounds %struct.DState, ptr %4873, i32 0, i32 17
  %4875 = load i32, ptr %4874, align 4, !tbaa !98
  %4876 = add nsw i32 %4875, 1
  store i32 %4876, ptr %4874, align 4, !tbaa !98
  br label %4877

4877:                                             ; preds = %4831, %4806
  br label %5058

4878:                                             ; preds = %4469
  store i32 0, ptr %9, align 4, !tbaa !37
  br label %4879

4879:                                             ; preds = %4915, %4878
  %4880 = load i32, ptr %9, align 4, !tbaa !37
  %4881 = load i32, ptr %20, align 4, !tbaa !37
  %4882 = icmp slt i32 %4880, %4881
  br i1 %4882, label %4883, label %4918

4883:                                             ; preds = %4879
  %4884 = load ptr, ptr %3, align 8, !tbaa !5
  %4885 = getelementptr inbounds %struct.DState, ptr %4884, i32 0, i32 20
  %4886 = load ptr, ptr %4885, align 8, !tbaa !52
  %4887 = load i32, ptr %9, align 4, !tbaa !37
  %4888 = sext i32 %4887 to i64
  %4889 = getelementptr inbounds i32, ptr %4886, i64 %4888
  %4890 = load i32, ptr %4889, align 4, !tbaa !37
  %4891 = and i32 %4890, 255
  %4892 = trunc i32 %4891 to i8
  store i8 %4892, ptr %4, align 1, !tbaa !40
  %4893 = load i32, ptr %9, align 4, !tbaa !37
  %4894 = shl i32 %4893, 8
  %4895 = load ptr, ptr %3, align 8, !tbaa !5
  %4896 = getelementptr inbounds %struct.DState, ptr %4895, i32 0, i32 20
  %4897 = load ptr, ptr %4896, align 8, !tbaa !52
  %4898 = load ptr, ptr %3, align 8, !tbaa !5
  %4899 = getelementptr inbounds %struct.DState, ptr %4898, i32 0, i32 18
  %4900 = load i8, ptr %4, align 1, !tbaa !40
  %4901 = zext i8 %4900 to i64
  %4902 = getelementptr inbounds [257 x i32], ptr %4899, i64 0, i64 %4901
  %4903 = load i32, ptr %4902, align 4, !tbaa !37
  %4904 = sext i32 %4903 to i64
  %4905 = getelementptr inbounds i32, ptr %4897, i64 %4904
  %4906 = load i32, ptr %4905, align 4, !tbaa !37
  %4907 = or i32 %4906, %4894
  store i32 %4907, ptr %4905, align 4, !tbaa !37
  %4908 = load ptr, ptr %3, align 8, !tbaa !5
  %4909 = getelementptr inbounds %struct.DState, ptr %4908, i32 0, i32 18
  %4910 = load i8, ptr %4, align 1, !tbaa !40
  %4911 = zext i8 %4910 to i64
  %4912 = getelementptr inbounds [257 x i32], ptr %4909, i64 0, i64 %4911
  %4913 = load i32, ptr %4912, align 4, !tbaa !37
  %4914 = add nsw i32 %4913, 1
  store i32 %4914, ptr %4912, align 4, !tbaa !37
  br label %4915

4915:                                             ; preds = %4883
  %4916 = load i32, ptr %9, align 4, !tbaa !37
  %4917 = add nsw i32 %4916, 1
  store i32 %4917, ptr %9, align 4, !tbaa !37
  br label %4879, !llvm.loop !102

4918:                                             ; preds = %4879
  %4919 = load ptr, ptr %3, 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 %3, align 8, !tbaa !5
  %4923 = getelementptr inbounds %struct.DState, ptr %4922, i32 0, i32 13
  %4924 = load i32, ptr %4923, align 8, !tbaa !57
  %4925 = sext i32 %4924 to i64
  %4926 = getelementptr inbounds i32, ptr %4921, i64 %4925
  %4927 = load i32, ptr %4926, align 4, !tbaa !37
  %4928 = lshr i32 %4927, 8
  %4929 = load ptr, ptr %3, align 8, !tbaa !5
  %4930 = getelementptr inbounds %struct.DState, ptr %4929, i32 0, i32 14
  store i32 %4928, ptr %4930, align 4, !tbaa !97
  %4931 = load ptr, ptr %3, align 8, !tbaa !5
  %4932 = getelementptr inbounds %struct.DState, ptr %4931, i32 0, i32 17
  store i32 0, ptr %4932, align 4, !tbaa !98
  %4933 = load ptr, ptr %3, align 8, !tbaa !5
  %4934 = getelementptr inbounds %struct.DState, ptr %4933, i32 0, i32 4
  %4935 = load i8, ptr %4934, align 4, !tbaa !56
  %4936 = icmp ne i8 %4935, 0
  br i1 %4936, label %4937, label %5019

4937:                                             ; preds = %4918
  %4938 = load ptr, ptr %3, align 8, !tbaa !5
  %4939 = getelementptr inbounds %struct.DState, ptr %4938, i32 0, i32 5
  store i32 0, ptr %4939, align 8, !tbaa !99
  %4940 = load ptr, ptr %3, align 8, !tbaa !5
  %4941 = getelementptr inbounds %struct.DState, ptr %4940, i32 0, i32 6
  store i32 0, ptr %4941, align 4, !tbaa !100
  %4942 = load ptr, ptr %3, align 8, !tbaa !5
  %4943 = getelementptr inbounds %struct.DState, ptr %4942, i32 0, i32 14
  %4944 = load i32, ptr %4943, align 4, !tbaa !97
  %4945 = load ptr, ptr %3, align 8, !tbaa !5
  %4946 = getelementptr inbounds %struct.DState, ptr %4945, i32 0, i32 9
  %4947 = load i32, ptr %4946, align 8, !tbaa !46
  %4948 = mul i32 100000, %4947
  %4949 = icmp uge i32 %4944, %4948
  br i1 %4949, label %4950, label %4951

4950:                                             ; preds = %4937
  store i32 1, ptr %2, align 4
  store i32 1, ptr %80, align 4
  br label %5966

4951:                                             ; preds = %4937
  %4952 = load ptr, ptr %3, align 8, !tbaa !5
  %4953 = getelementptr inbounds %struct.DState, ptr %4952, i32 0, i32 20
  %4954 = load ptr, ptr %4953, align 8, !tbaa !52
  %4955 = load ptr, ptr %3, align 8, !tbaa !5
  %4956 = getelementptr inbounds %struct.DState, ptr %4955, i32 0, i32 14
  %4957 = load i32, ptr %4956, align 4, !tbaa !97
  %4958 = zext i32 %4957 to i64
  %4959 = getelementptr inbounds i32, ptr %4954, i64 %4958
  %4960 = load i32, ptr %4959, align 4, !tbaa !37
  %4961 = load ptr, ptr %3, align 8, !tbaa !5
  %4962 = getelementptr inbounds %struct.DState, ptr %4961, i32 0, i32 14
  store i32 %4960, ptr %4962, align 4, !tbaa !97
  %4963 = load ptr, ptr %3, align 8, !tbaa !5
  %4964 = getelementptr inbounds %struct.DState, ptr %4963, i32 0, i32 14
  %4965 = load i32, ptr %4964, align 4, !tbaa !97
  %4966 = and i32 %4965, 255
  %4967 = trunc i32 %4966 to i8
  %4968 = zext i8 %4967 to i32
  %4969 = load ptr, ptr %3, align 8, !tbaa !5
  %4970 = getelementptr inbounds %struct.DState, ptr %4969, i32 0, i32 15
  store i32 %4968, ptr %4970, align 8, !tbaa !101
  %4971 = load ptr, ptr %3, align 8, !tbaa !5
  %4972 = getelementptr inbounds %struct.DState, ptr %4971, i32 0, i32 14
  %4973 = load i32, ptr %4972, align 4, !tbaa !97
  %4974 = lshr i32 %4973, 8
  store i32 %4974, ptr %4972, align 4, !tbaa !97
  %4975 = load ptr, ptr %3, align 8, !tbaa !5
  %4976 = getelementptr inbounds %struct.DState, ptr %4975, i32 0, i32 17
  %4977 = load i32, ptr %4976, align 4, !tbaa !98
  %4978 = add nsw i32 %4977, 1
  store i32 %4978, ptr %4976, align 4, !tbaa !98
  %4979 = load ptr, ptr %3, align 8, !tbaa !5
  %4980 = getelementptr inbounds %struct.DState, ptr %4979, i32 0, i32 5
  %4981 = load i32, ptr %4980, align 8, !tbaa !99
  %4982 = icmp eq i32 %4981, 0
  br i1 %4982, label %4983, label %5004

4983:                                             ; preds = %4951
  %4984 = load ptr, ptr %3, align 8, !tbaa !5
  %4985 = getelementptr inbounds %struct.DState, ptr %4984, i32 0, i32 6
  %4986 = load i32, ptr %4985, align 4, !tbaa !100
  %4987 = sext i32 %4986 to i64
  %4988 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %4987
  %4989 = load i32, ptr %4988, align 4, !tbaa !37
  %4990 = load ptr, ptr %3, align 8, !tbaa !5
  %4991 = getelementptr inbounds %struct.DState, ptr %4990, i32 0, i32 5
  store i32 %4989, ptr %4991, align 8, !tbaa !99
  %4992 = load ptr, ptr %3, align 8, !tbaa !5
  %4993 = getelementptr inbounds %struct.DState, ptr %4992, i32 0, i32 6
  %4994 = load i32, ptr %4993, align 4, !tbaa !100
  %4995 = add nsw i32 %4994, 1
  store i32 %4995, ptr %4993, align 4, !tbaa !100
  %4996 = load ptr, ptr %3, align 8, !tbaa !5
  %4997 = getelementptr inbounds %struct.DState, ptr %4996, i32 0, i32 6
  %4998 = load i32, ptr %4997, align 4, !tbaa !100
  %4999 = icmp eq i32 %4998, 512
  br i1 %4999, label %5000, label %5003

5000:                                             ; preds = %4983
  %5001 = load ptr, ptr %3, align 8, !tbaa !5
  %5002 = getelementptr inbounds %struct.DState, ptr %5001, i32 0, i32 6
  store i32 0, ptr %5002, align 4, !tbaa !100
  br label %5003

5003:                                             ; preds = %5000, %4983
  br label %5004

5004:                                             ; preds = %5003, %4951
  %5005 = load ptr, ptr %3, align 8, !tbaa !5
  %5006 = getelementptr inbounds %struct.DState, ptr %5005, i32 0, i32 5
  %5007 = load i32, ptr %5006, align 8, !tbaa !99
  %5008 = add nsw i32 %5007, -1
  store i32 %5008, ptr %5006, align 8, !tbaa !99
  %5009 = load ptr, ptr %3, align 8, !tbaa !5
  %5010 = getelementptr inbounds %struct.DState, ptr %5009, i32 0, i32 5
  %5011 = load i32, ptr %5010, align 8, !tbaa !99
  %5012 = icmp eq i32 %5011, 1
  %5013 = zext i1 %5012 to i64
  %5014 = select i1 %5012, i32 1, i32 0
  %5015 = load ptr, ptr %3, align 8, !tbaa !5
  %5016 = getelementptr inbounds %struct.DState, ptr %5015, i32 0, i32 15
  %5017 = load i32, ptr %5016, align 8, !tbaa !101
  %5018 = xor i32 %5017, %5014
  store i32 %5018, ptr %5016, align 8, !tbaa !101
  br label %5057

5019:                                             ; preds = %4918
  %5020 = load ptr, ptr %3, align 8, !tbaa !5
  %5021 = getelementptr inbounds %struct.DState, ptr %5020, i32 0, i32 14
  %5022 = load i32, ptr %5021, align 4, !tbaa !97
  %5023 = load ptr, ptr %3, align 8, !tbaa !5
  %5024 = getelementptr inbounds %struct.DState, ptr %5023, i32 0, i32 9
  %5025 = load i32, ptr %5024, align 8, !tbaa !46
  %5026 = mul i32 100000, %5025
  %5027 = icmp uge i32 %5022, %5026
  br i1 %5027, label %5028, label %5029

5028:                                             ; preds = %5019
  store i32 1, ptr %2, align 4
  store i32 1, ptr %80, align 4
  br label %5966

5029:                                             ; preds = %5019
  %5030 = load ptr, ptr %3, align 8, !tbaa !5
  %5031 = getelementptr inbounds %struct.DState, ptr %5030, i32 0, i32 20
  %5032 = load ptr, ptr %5031, align 8, !tbaa !52
  %5033 = load ptr, ptr %3, align 8, !tbaa !5
  %5034 = getelementptr inbounds %struct.DState, ptr %5033, i32 0, i32 14
  %5035 = load i32, ptr %5034, align 4, !tbaa !97
  %5036 = zext i32 %5035 to i64
  %5037 = getelementptr inbounds i32, ptr %5032, i64 %5036
  %5038 = load i32, ptr %5037, align 4, !tbaa !37
  %5039 = load ptr, ptr %3, align 8, !tbaa !5
  %5040 = getelementptr inbounds %struct.DState, ptr %5039, i32 0, i32 14
  store i32 %5038, ptr %5040, align 4, !tbaa !97
  %5041 = load ptr, ptr %3, align 8, !tbaa !5
  %5042 = getelementptr inbounds %struct.DState, ptr %5041, i32 0, i32 14
  %5043 = load i32, ptr %5042, align 4, !tbaa !97
  %5044 = and i32 %5043, 255
  %5045 = trunc i32 %5044 to i8
  %5046 = zext i8 %5045 to i32
  %5047 = load ptr, ptr %3, align 8, !tbaa !5
  %5048 = getelementptr inbounds %struct.DState, ptr %5047, i32 0, i32 15
  store i32 %5046, ptr %5048, align 8, !tbaa !101
  %5049 = load ptr, ptr %3, align 8, !tbaa !5
  %5050 = getelementptr inbounds %struct.DState, ptr %5049, i32 0, i32 14
  %5051 = load i32, ptr %5050, align 4, !tbaa !97
  %5052 = lshr i32 %5051, 8
  store i32 %5052, ptr %5050, align 4, !tbaa !97
  %5053 = load ptr, ptr %3, align 8, !tbaa !5
  %5054 = getelementptr inbounds %struct.DState, ptr %5053, i32 0, i32 17
  %5055 = load i32, ptr %5054, align 4, !tbaa !98
  %5056 = add nsw i32 %5055, 1
  store i32 %5056, ptr %5054, align 4, !tbaa !98
  br label %5057

5057:                                             ; preds = %5029, %5004
  br label %5058

5058:                                             ; preds = %5057, %4877
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5059:                                             ; preds = %755
  br label %5060

5060:                                             ; preds = %5059, %146
  %5061 = load ptr, ptr %3, align 8, !tbaa !5
  %5062 = getelementptr inbounds %struct.DState, ptr %5061, i32 0, i32 1
  store i32 42, ptr %5062, align 8, !tbaa !12
  br label %5063

5063:                                             ; preds = %5143, %5060
  br label %5064

5064:                                             ; preds = %5063
  %5065 = load ptr, ptr %3, align 8, !tbaa !5
  %5066 = getelementptr inbounds %struct.DState, ptr %5065, i32 0, i32 8
  %5067 = load i32, ptr %5066, align 4, !tbaa !38
  %5068 = icmp sge i32 %5067, 8
  br i1 %5068, label %5069, label %5085

5069:                                             ; preds = %5064
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #4
  %5070 = load ptr, ptr %3, align 8, !tbaa !5
  %5071 = getelementptr inbounds %struct.DState, ptr %5070, i32 0, i32 7
  %5072 = load i32, ptr %5071, align 8, !tbaa !39
  %5073 = load ptr, ptr %3, align 8, !tbaa !5
  %5074 = getelementptr inbounds %struct.DState, ptr %5073, i32 0, i32 8
  %5075 = load i32, ptr %5074, align 4, !tbaa !38
  %5076 = sub nsw i32 %5075, 8
  %5077 = lshr i32 %5072, %5076
  %5078 = and i32 %5077, 255
  store i32 %5078, ptr %81, align 4, !tbaa !37
  %5079 = load ptr, ptr %3, align 8, !tbaa !5
  %5080 = getelementptr inbounds %struct.DState, ptr %5079, i32 0, i32 8
  %5081 = load i32, ptr %5080, align 4, !tbaa !38
  %5082 = sub nsw i32 %5081, 8
  store i32 %5082, ptr %5080, align 4, !tbaa !38
  %5083 = load i32, ptr %81, align 4, !tbaa !37
  %5084 = trunc i32 %5083 to i8
  store i8 %5084, ptr %4, align 1, !tbaa !40
  store i32 172, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #4
  br label %5144

5085:                                             ; preds = %5064
  %5086 = load ptr, ptr %3, align 8, !tbaa !5
  %5087 = getelementptr inbounds %struct.DState, ptr %5086, i32 0, i32 0
  %5088 = load ptr, ptr %5087, align 8, !tbaa !9
  %5089 = getelementptr inbounds %struct.bz_stream, ptr %5088, i32 0, i32 1
  %5090 = load i32, ptr %5089, align 8, !tbaa !41
  %5091 = icmp eq i32 %5090, 0
  br i1 %5091, label %5092, label %5093

5092:                                             ; preds = %5085
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5093:                                             ; preds = %5085
  %5094 = load ptr, ptr %3, align 8, !tbaa !5
  %5095 = getelementptr inbounds %struct.DState, ptr %5094, i32 0, i32 7
  %5096 = load i32, ptr %5095, align 8, !tbaa !39
  %5097 = shl i32 %5096, 8
  %5098 = load ptr, ptr %3, align 8, !tbaa !5
  %5099 = getelementptr inbounds %struct.DState, ptr %5098, i32 0, i32 0
  %5100 = load ptr, ptr %5099, align 8, !tbaa !9
  %5101 = getelementptr inbounds %struct.bz_stream, ptr %5100, i32 0, i32 0
  %5102 = load ptr, ptr %5101, align 8, !tbaa !43
  %5103 = load i8, ptr %5102, align 1, !tbaa !40
  %5104 = zext i8 %5103 to i32
  %5105 = or i32 %5097, %5104
  %5106 = load ptr, ptr %3, align 8, !tbaa !5
  %5107 = getelementptr inbounds %struct.DState, ptr %5106, i32 0, i32 7
  store i32 %5105, ptr %5107, align 8, !tbaa !39
  %5108 = load ptr, ptr %3, align 8, !tbaa !5
  %5109 = getelementptr inbounds %struct.DState, ptr %5108, i32 0, i32 8
  %5110 = load i32, ptr %5109, align 4, !tbaa !38
  %5111 = add nsw i32 %5110, 8
  store i32 %5111, ptr %5109, align 4, !tbaa !38
  %5112 = load ptr, ptr %3, align 8, !tbaa !5
  %5113 = getelementptr inbounds %struct.DState, ptr %5112, i32 0, i32 0
  %5114 = load ptr, ptr %5113, align 8, !tbaa !9
  %5115 = getelementptr inbounds %struct.bz_stream, ptr %5114, i32 0, i32 0
  %5116 = load ptr, ptr %5115, align 8, !tbaa !43
  %5117 = getelementptr inbounds i8, ptr %5116, i32 1
  store ptr %5117, ptr %5115, align 8, !tbaa !43
  %5118 = load ptr, ptr %3, align 8, !tbaa !5
  %5119 = getelementptr inbounds %struct.DState, ptr %5118, i32 0, i32 0
  %5120 = load ptr, ptr %5119, align 8, !tbaa !9
  %5121 = getelementptr inbounds %struct.bz_stream, ptr %5120, i32 0, i32 1
  %5122 = load i32, ptr %5121, align 8, !tbaa !41
  %5123 = add i32 %5122, -1
  store i32 %5123, ptr %5121, align 8, !tbaa !41
  %5124 = load ptr, ptr %3, align 8, !tbaa !5
  %5125 = getelementptr inbounds %struct.DState, ptr %5124, i32 0, i32 0
  %5126 = load ptr, ptr %5125, align 8, !tbaa !9
  %5127 = getelementptr inbounds %struct.bz_stream, ptr %5126, i32 0, i32 2
  %5128 = load i32, ptr %5127, align 4, !tbaa !44
  %5129 = add i32 %5128, 1
  store i32 %5129, ptr %5127, align 4, !tbaa !44
  %5130 = load ptr, ptr %3, align 8, !tbaa !5
  %5131 = getelementptr inbounds %struct.DState, ptr %5130, i32 0, i32 0
  %5132 = load ptr, ptr %5131, align 8, !tbaa !9
  %5133 = getelementptr inbounds %struct.bz_stream, ptr %5132, i32 0, i32 2
  %5134 = load i32, ptr %5133, align 4, !tbaa !44
  %5135 = icmp eq i32 %5134, 0
  br i1 %5135, label %5136, label %5143

5136:                                             ; preds = %5093
  %5137 = load ptr, ptr %3, align 8, !tbaa !5
  %5138 = getelementptr inbounds %struct.DState, ptr %5137, i32 0, i32 0
  %5139 = load ptr, ptr %5138, align 8, !tbaa !9
  %5140 = getelementptr inbounds %struct.bz_stream, ptr %5139, i32 0, i32 3
  %5141 = load i32, ptr %5140, align 8, !tbaa !45
  %5142 = add i32 %5141, 1
  store i32 %5142, ptr %5140, align 8, !tbaa !45
  br label %5143

5143:                                             ; preds = %5136, %5093
  br label %5063

5144:                                             ; preds = %5069
  %5145 = load i8, ptr %4, align 1, !tbaa !40
  %5146 = zext i8 %5145 to i32
  %5147 = icmp ne i32 %5146, 114
  br i1 %5147, label %5148, label %5149

5148:                                             ; preds = %5144
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

5149:                                             ; preds = %5144
  br label %5150

5150:                                             ; preds = %5149, %146
  %5151 = load ptr, ptr %3, align 8, !tbaa !5
  %5152 = getelementptr inbounds %struct.DState, ptr %5151, i32 0, i32 1
  store i32 43, ptr %5152, align 8, !tbaa !12
  br label %5153

5153:                                             ; preds = %5233, %5150
  br label %5154

5154:                                             ; preds = %5153
  %5155 = load ptr, ptr %3, align 8, !tbaa !5
  %5156 = getelementptr inbounds %struct.DState, ptr %5155, i32 0, i32 8
  %5157 = load i32, ptr %5156, align 4, !tbaa !38
  %5158 = icmp sge i32 %5157, 8
  br i1 %5158, label %5159, label %5175

5159:                                             ; preds = %5154
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #4
  %5160 = load ptr, ptr %3, align 8, !tbaa !5
  %5161 = getelementptr inbounds %struct.DState, ptr %5160, i32 0, i32 7
  %5162 = load i32, ptr %5161, align 8, !tbaa !39
  %5163 = load ptr, ptr %3, align 8, !tbaa !5
  %5164 = getelementptr inbounds %struct.DState, ptr %5163, i32 0, i32 8
  %5165 = load i32, ptr %5164, align 4, !tbaa !38
  %5166 = sub nsw i32 %5165, 8
  %5167 = lshr i32 %5162, %5166
  %5168 = and i32 %5167, 255
  store i32 %5168, ptr %82, align 4, !tbaa !37
  %5169 = load ptr, ptr %3, align 8, !tbaa !5
  %5170 = getelementptr inbounds %struct.DState, ptr %5169, i32 0, i32 8
  %5171 = load i32, ptr %5170, align 4, !tbaa !38
  %5172 = sub nsw i32 %5171, 8
  store i32 %5172, ptr %5170, align 4, !tbaa !38
  %5173 = load i32, ptr %82, align 4, !tbaa !37
  %5174 = trunc i32 %5173 to i8
  store i8 %5174, ptr %4, align 1, !tbaa !40
  store i32 174, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #4
  br label %5234

5175:                                             ; preds = %5154
  %5176 = load ptr, ptr %3, align 8, !tbaa !5
  %5177 = getelementptr inbounds %struct.DState, ptr %5176, i32 0, i32 0
  %5178 = load ptr, ptr %5177, align 8, !tbaa !9
  %5179 = getelementptr inbounds %struct.bz_stream, ptr %5178, i32 0, i32 1
  %5180 = load i32, ptr %5179, align 8, !tbaa !41
  %5181 = icmp eq i32 %5180, 0
  br i1 %5181, label %5182, label %5183

5182:                                             ; preds = %5175
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5183:                                             ; preds = %5175
  %5184 = load ptr, ptr %3, align 8, !tbaa !5
  %5185 = getelementptr inbounds %struct.DState, ptr %5184, i32 0, i32 7
  %5186 = load i32, ptr %5185, align 8, !tbaa !39
  %5187 = shl i32 %5186, 8
  %5188 = load ptr, ptr %3, align 8, !tbaa !5
  %5189 = getelementptr inbounds %struct.DState, ptr %5188, i32 0, i32 0
  %5190 = load ptr, ptr %5189, align 8, !tbaa !9
  %5191 = getelementptr inbounds %struct.bz_stream, ptr %5190, i32 0, i32 0
  %5192 = load ptr, ptr %5191, align 8, !tbaa !43
  %5193 = load i8, ptr %5192, align 1, !tbaa !40
  %5194 = zext i8 %5193 to i32
  %5195 = or i32 %5187, %5194
  %5196 = load ptr, ptr %3, align 8, !tbaa !5
  %5197 = getelementptr inbounds %struct.DState, ptr %5196, i32 0, i32 7
  store i32 %5195, ptr %5197, align 8, !tbaa !39
  %5198 = load ptr, ptr %3, align 8, !tbaa !5
  %5199 = getelementptr inbounds %struct.DState, ptr %5198, i32 0, i32 8
  %5200 = load i32, ptr %5199, align 4, !tbaa !38
  %5201 = add nsw i32 %5200, 8
  store i32 %5201, ptr %5199, align 4, !tbaa !38
  %5202 = load ptr, ptr %3, align 8, !tbaa !5
  %5203 = getelementptr inbounds %struct.DState, ptr %5202, i32 0, i32 0
  %5204 = load ptr, ptr %5203, align 8, !tbaa !9
  %5205 = getelementptr inbounds %struct.bz_stream, ptr %5204, i32 0, i32 0
  %5206 = load ptr, ptr %5205, align 8, !tbaa !43
  %5207 = getelementptr inbounds i8, ptr %5206, i32 1
  store ptr %5207, ptr %5205, align 8, !tbaa !43
  %5208 = load ptr, ptr %3, align 8, !tbaa !5
  %5209 = getelementptr inbounds %struct.DState, ptr %5208, i32 0, i32 0
  %5210 = load ptr, ptr %5209, align 8, !tbaa !9
  %5211 = getelementptr inbounds %struct.bz_stream, ptr %5210, i32 0, i32 1
  %5212 = load i32, ptr %5211, align 8, !tbaa !41
  %5213 = add i32 %5212, -1
  store i32 %5213, ptr %5211, align 8, !tbaa !41
  %5214 = load ptr, ptr %3, align 8, !tbaa !5
  %5215 = getelementptr inbounds %struct.DState, ptr %5214, i32 0, i32 0
  %5216 = load ptr, ptr %5215, align 8, !tbaa !9
  %5217 = getelementptr inbounds %struct.bz_stream, ptr %5216, i32 0, i32 2
  %5218 = load i32, ptr %5217, align 4, !tbaa !44
  %5219 = add i32 %5218, 1
  store i32 %5219, ptr %5217, align 4, !tbaa !44
  %5220 = load ptr, ptr %3, align 8, !tbaa !5
  %5221 = getelementptr inbounds %struct.DState, ptr %5220, i32 0, i32 0
  %5222 = load ptr, ptr %5221, align 8, !tbaa !9
  %5223 = getelementptr inbounds %struct.bz_stream, ptr %5222, i32 0, i32 2
  %5224 = load i32, ptr %5223, align 4, !tbaa !44
  %5225 = icmp eq i32 %5224, 0
  br i1 %5225, label %5226, label %5233

5226:                                             ; preds = %5183
  %5227 = load ptr, ptr %3, align 8, !tbaa !5
  %5228 = getelementptr inbounds %struct.DState, ptr %5227, i32 0, i32 0
  %5229 = load ptr, ptr %5228, align 8, !tbaa !9
  %5230 = getelementptr inbounds %struct.bz_stream, ptr %5229, i32 0, i32 3
  %5231 = load i32, ptr %5230, align 8, !tbaa !45
  %5232 = add i32 %5231, 1
  store i32 %5232, ptr %5230, align 8, !tbaa !45
  br label %5233

5233:                                             ; preds = %5226, %5183
  br label %5153

5234:                                             ; preds = %5159
  %5235 = load i8, ptr %4, align 1, !tbaa !40
  %5236 = zext i8 %5235 to i32
  %5237 = icmp ne i32 %5236, 69
  br i1 %5237, label %5238, label %5239

5238:                                             ; preds = %5234
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

5239:                                             ; preds = %5234
  br label %5240

5240:                                             ; preds = %5239, %146
  %5241 = load ptr, ptr %3, align 8, !tbaa !5
  %5242 = getelementptr inbounds %struct.DState, ptr %5241, i32 0, i32 1
  store i32 44, ptr %5242, align 8, !tbaa !12
  br label %5243

5243:                                             ; preds = %5323, %5240
  br label %5244

5244:                                             ; preds = %5243
  %5245 = load ptr, ptr %3, align 8, !tbaa !5
  %5246 = getelementptr inbounds %struct.DState, ptr %5245, i32 0, i32 8
  %5247 = load i32, ptr %5246, align 4, !tbaa !38
  %5248 = icmp sge i32 %5247, 8
  br i1 %5248, label %5249, label %5265

5249:                                             ; preds = %5244
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #4
  %5250 = load ptr, ptr %3, align 8, !tbaa !5
  %5251 = getelementptr inbounds %struct.DState, ptr %5250, i32 0, i32 7
  %5252 = load i32, ptr %5251, align 8, !tbaa !39
  %5253 = load ptr, ptr %3, align 8, !tbaa !5
  %5254 = getelementptr inbounds %struct.DState, ptr %5253, i32 0, i32 8
  %5255 = load i32, ptr %5254, align 4, !tbaa !38
  %5256 = sub nsw i32 %5255, 8
  %5257 = lshr i32 %5252, %5256
  %5258 = and i32 %5257, 255
  store i32 %5258, ptr %83, align 4, !tbaa !37
  %5259 = load ptr, ptr %3, align 8, !tbaa !5
  %5260 = getelementptr inbounds %struct.DState, ptr %5259, i32 0, i32 8
  %5261 = load i32, ptr %5260, align 4, !tbaa !38
  %5262 = sub nsw i32 %5261, 8
  store i32 %5262, ptr %5260, align 4, !tbaa !38
  %5263 = load i32, ptr %83, align 4, !tbaa !37
  %5264 = trunc i32 %5263 to i8
  store i8 %5264, ptr %4, align 1, !tbaa !40
  store i32 176, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #4
  br label %5324

5265:                                             ; preds = %5244
  %5266 = load ptr, ptr %3, align 8, !tbaa !5
  %5267 = getelementptr inbounds %struct.DState, ptr %5266, i32 0, i32 0
  %5268 = load ptr, ptr %5267, align 8, !tbaa !9
  %5269 = getelementptr inbounds %struct.bz_stream, ptr %5268, i32 0, i32 1
  %5270 = load i32, ptr %5269, align 8, !tbaa !41
  %5271 = icmp eq i32 %5270, 0
  br i1 %5271, label %5272, label %5273

5272:                                             ; preds = %5265
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5273:                                             ; preds = %5265
  %5274 = load ptr, ptr %3, align 8, !tbaa !5
  %5275 = getelementptr inbounds %struct.DState, ptr %5274, i32 0, i32 7
  %5276 = load i32, ptr %5275, align 8, !tbaa !39
  %5277 = shl i32 %5276, 8
  %5278 = load ptr, ptr %3, align 8, !tbaa !5
  %5279 = getelementptr inbounds %struct.DState, ptr %5278, i32 0, i32 0
  %5280 = load ptr, ptr %5279, align 8, !tbaa !9
  %5281 = getelementptr inbounds %struct.bz_stream, ptr %5280, i32 0, i32 0
  %5282 = load ptr, ptr %5281, align 8, !tbaa !43
  %5283 = load i8, ptr %5282, align 1, !tbaa !40
  %5284 = zext i8 %5283 to i32
  %5285 = or i32 %5277, %5284
  %5286 = load ptr, ptr %3, align 8, !tbaa !5
  %5287 = getelementptr inbounds %struct.DState, ptr %5286, i32 0, i32 7
  store i32 %5285, ptr %5287, align 8, !tbaa !39
  %5288 = load ptr, ptr %3, align 8, !tbaa !5
  %5289 = getelementptr inbounds %struct.DState, ptr %5288, i32 0, i32 8
  %5290 = load i32, ptr %5289, align 4, !tbaa !38
  %5291 = add nsw i32 %5290, 8
  store i32 %5291, ptr %5289, align 4, !tbaa !38
  %5292 = load ptr, ptr %3, align 8, !tbaa !5
  %5293 = getelementptr inbounds %struct.DState, ptr %5292, i32 0, i32 0
  %5294 = load ptr, ptr %5293, align 8, !tbaa !9
  %5295 = getelementptr inbounds %struct.bz_stream, ptr %5294, i32 0, i32 0
  %5296 = load ptr, ptr %5295, align 8, !tbaa !43
  %5297 = getelementptr inbounds i8, ptr %5296, i32 1
  store ptr %5297, ptr %5295, align 8, !tbaa !43
  %5298 = load ptr, ptr %3, align 8, !tbaa !5
  %5299 = getelementptr inbounds %struct.DState, ptr %5298, i32 0, i32 0
  %5300 = load ptr, ptr %5299, align 8, !tbaa !9
  %5301 = getelementptr inbounds %struct.bz_stream, ptr %5300, i32 0, i32 1
  %5302 = load i32, ptr %5301, align 8, !tbaa !41
  %5303 = add i32 %5302, -1
  store i32 %5303, ptr %5301, align 8, !tbaa !41
  %5304 = load ptr, ptr %3, align 8, !tbaa !5
  %5305 = getelementptr inbounds %struct.DState, ptr %5304, i32 0, i32 0
  %5306 = load ptr, ptr %5305, align 8, !tbaa !9
  %5307 = getelementptr inbounds %struct.bz_stream, ptr %5306, i32 0, i32 2
  %5308 = load i32, ptr %5307, align 4, !tbaa !44
  %5309 = add i32 %5308, 1
  store i32 %5309, ptr %5307, align 4, !tbaa !44
  %5310 = load ptr, ptr %3, align 8, !tbaa !5
  %5311 = getelementptr inbounds %struct.DState, ptr %5310, i32 0, i32 0
  %5312 = load ptr, ptr %5311, align 8, !tbaa !9
  %5313 = getelementptr inbounds %struct.bz_stream, ptr %5312, i32 0, i32 2
  %5314 = load i32, ptr %5313, align 4, !tbaa !44
  %5315 = icmp eq i32 %5314, 0
  br i1 %5315, label %5316, label %5323

5316:                                             ; preds = %5273
  %5317 = load ptr, ptr %3, align 8, !tbaa !5
  %5318 = getelementptr inbounds %struct.DState, ptr %5317, i32 0, i32 0
  %5319 = load ptr, ptr %5318, align 8, !tbaa !9
  %5320 = getelementptr inbounds %struct.bz_stream, ptr %5319, i32 0, i32 3
  %5321 = load i32, ptr %5320, align 8, !tbaa !45
  %5322 = add i32 %5321, 1
  store i32 %5322, ptr %5320, align 8, !tbaa !45
  br label %5323

5323:                                             ; preds = %5316, %5273
  br label %5243

5324:                                             ; preds = %5249
  %5325 = load i8, ptr %4, align 1, !tbaa !40
  %5326 = zext i8 %5325 to i32
  %5327 = icmp ne i32 %5326, 56
  br i1 %5327, label %5328, label %5329

5328:                                             ; preds = %5324
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

5329:                                             ; preds = %5324
  br label %5330

5330:                                             ; preds = %5329, %146
  %5331 = load ptr, ptr %3, align 8, !tbaa !5
  %5332 = getelementptr inbounds %struct.DState, ptr %5331, i32 0, i32 1
  store i32 45, ptr %5332, align 8, !tbaa !12
  br label %5333

5333:                                             ; preds = %5413, %5330
  br label %5334

5334:                                             ; preds = %5333
  %5335 = load ptr, ptr %3, align 8, !tbaa !5
  %5336 = getelementptr inbounds %struct.DState, ptr %5335, i32 0, i32 8
  %5337 = load i32, ptr %5336, align 4, !tbaa !38
  %5338 = icmp sge i32 %5337, 8
  br i1 %5338, label %5339, label %5355

5339:                                             ; preds = %5334
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #4
  %5340 = load ptr, ptr %3, align 8, !tbaa !5
  %5341 = getelementptr inbounds %struct.DState, ptr %5340, i32 0, i32 7
  %5342 = load i32, ptr %5341, align 8, !tbaa !39
  %5343 = load ptr, ptr %3, align 8, !tbaa !5
  %5344 = getelementptr inbounds %struct.DState, ptr %5343, i32 0, i32 8
  %5345 = load i32, ptr %5344, align 4, !tbaa !38
  %5346 = sub nsw i32 %5345, 8
  %5347 = lshr i32 %5342, %5346
  %5348 = and i32 %5347, 255
  store i32 %5348, ptr %84, align 4, !tbaa !37
  %5349 = load ptr, ptr %3, align 8, !tbaa !5
  %5350 = getelementptr inbounds %struct.DState, ptr %5349, i32 0, i32 8
  %5351 = load i32, ptr %5350, align 4, !tbaa !38
  %5352 = sub nsw i32 %5351, 8
  store i32 %5352, ptr %5350, align 4, !tbaa !38
  %5353 = load i32, ptr %84, align 4, !tbaa !37
  %5354 = trunc i32 %5353 to i8
  store i8 %5354, ptr %4, align 1, !tbaa !40
  store i32 178, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #4
  br label %5414

5355:                                             ; preds = %5334
  %5356 = load ptr, ptr %3, align 8, !tbaa !5
  %5357 = getelementptr inbounds %struct.DState, ptr %5356, i32 0, i32 0
  %5358 = load ptr, ptr %5357, align 8, !tbaa !9
  %5359 = getelementptr inbounds %struct.bz_stream, ptr %5358, i32 0, i32 1
  %5360 = load i32, ptr %5359, align 8, !tbaa !41
  %5361 = icmp eq i32 %5360, 0
  br i1 %5361, label %5362, label %5363

5362:                                             ; preds = %5355
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5363:                                             ; preds = %5355
  %5364 = load ptr, ptr %3, align 8, !tbaa !5
  %5365 = getelementptr inbounds %struct.DState, ptr %5364, i32 0, i32 7
  %5366 = load i32, ptr %5365, align 8, !tbaa !39
  %5367 = shl i32 %5366, 8
  %5368 = load ptr, ptr %3, align 8, !tbaa !5
  %5369 = getelementptr inbounds %struct.DState, ptr %5368, i32 0, i32 0
  %5370 = load ptr, ptr %5369, align 8, !tbaa !9
  %5371 = getelementptr inbounds %struct.bz_stream, ptr %5370, i32 0, i32 0
  %5372 = load ptr, ptr %5371, align 8, !tbaa !43
  %5373 = load i8, ptr %5372, align 1, !tbaa !40
  %5374 = zext i8 %5373 to i32
  %5375 = or i32 %5367, %5374
  %5376 = load ptr, ptr %3, align 8, !tbaa !5
  %5377 = getelementptr inbounds %struct.DState, ptr %5376, i32 0, i32 7
  store i32 %5375, ptr %5377, align 8, !tbaa !39
  %5378 = load ptr, ptr %3, align 8, !tbaa !5
  %5379 = getelementptr inbounds %struct.DState, ptr %5378, i32 0, i32 8
  %5380 = load i32, ptr %5379, align 4, !tbaa !38
  %5381 = add nsw i32 %5380, 8
  store i32 %5381, ptr %5379, align 4, !tbaa !38
  %5382 = load ptr, ptr %3, align 8, !tbaa !5
  %5383 = getelementptr inbounds %struct.DState, ptr %5382, i32 0, i32 0
  %5384 = load ptr, ptr %5383, align 8, !tbaa !9
  %5385 = getelementptr inbounds %struct.bz_stream, ptr %5384, i32 0, i32 0
  %5386 = load ptr, ptr %5385, align 8, !tbaa !43
  %5387 = getelementptr inbounds i8, ptr %5386, i32 1
  store ptr %5387, ptr %5385, align 8, !tbaa !43
  %5388 = load ptr, ptr %3, align 8, !tbaa !5
  %5389 = getelementptr inbounds %struct.DState, ptr %5388, i32 0, i32 0
  %5390 = load ptr, ptr %5389, align 8, !tbaa !9
  %5391 = getelementptr inbounds %struct.bz_stream, ptr %5390, i32 0, i32 1
  %5392 = load i32, ptr %5391, align 8, !tbaa !41
  %5393 = add i32 %5392, -1
  store i32 %5393, ptr %5391, align 8, !tbaa !41
  %5394 = load ptr, ptr %3, align 8, !tbaa !5
  %5395 = getelementptr inbounds %struct.DState, ptr %5394, i32 0, i32 0
  %5396 = load ptr, ptr %5395, align 8, !tbaa !9
  %5397 = getelementptr inbounds %struct.bz_stream, ptr %5396, i32 0, i32 2
  %5398 = load i32, ptr %5397, align 4, !tbaa !44
  %5399 = add i32 %5398, 1
  store i32 %5399, ptr %5397, align 4, !tbaa !44
  %5400 = load ptr, ptr %3, align 8, !tbaa !5
  %5401 = getelementptr inbounds %struct.DState, ptr %5400, i32 0, i32 0
  %5402 = load ptr, ptr %5401, align 8, !tbaa !9
  %5403 = getelementptr inbounds %struct.bz_stream, ptr %5402, i32 0, i32 2
  %5404 = load i32, ptr %5403, align 4, !tbaa !44
  %5405 = icmp eq i32 %5404, 0
  br i1 %5405, label %5406, label %5413

5406:                                             ; preds = %5363
  %5407 = load ptr, ptr %3, align 8, !tbaa !5
  %5408 = getelementptr inbounds %struct.DState, ptr %5407, i32 0, i32 0
  %5409 = load ptr, ptr %5408, align 8, !tbaa !9
  %5410 = getelementptr inbounds %struct.bz_stream, ptr %5409, i32 0, i32 3
  %5411 = load i32, ptr %5410, align 8, !tbaa !45
  %5412 = add i32 %5411, 1
  store i32 %5412, ptr %5410, align 8, !tbaa !45
  br label %5413

5413:                                             ; preds = %5406, %5363
  br label %5333

5414:                                             ; preds = %5339
  %5415 = load i8, ptr %4, align 1, !tbaa !40
  %5416 = zext i8 %5415 to i32
  %5417 = icmp ne i32 %5416, 80
  br i1 %5417, label %5418, label %5419

5418:                                             ; preds = %5414
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

5419:                                             ; preds = %5414
  br label %5420

5420:                                             ; preds = %5419, %146
  %5421 = load ptr, ptr %3, align 8, !tbaa !5
  %5422 = getelementptr inbounds %struct.DState, ptr %5421, i32 0, i32 1
  store i32 46, ptr %5422, align 8, !tbaa !12
  br label %5423

5423:                                             ; preds = %5503, %5420
  br label %5424

5424:                                             ; preds = %5423
  %5425 = load ptr, ptr %3, align 8, !tbaa !5
  %5426 = getelementptr inbounds %struct.DState, ptr %5425, i32 0, i32 8
  %5427 = load i32, ptr %5426, align 4, !tbaa !38
  %5428 = icmp sge i32 %5427, 8
  br i1 %5428, label %5429, label %5445

5429:                                             ; preds = %5424
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #4
  %5430 = load ptr, ptr %3, align 8, !tbaa !5
  %5431 = getelementptr inbounds %struct.DState, ptr %5430, i32 0, i32 7
  %5432 = load i32, ptr %5431, align 8, !tbaa !39
  %5433 = load ptr, ptr %3, align 8, !tbaa !5
  %5434 = getelementptr inbounds %struct.DState, ptr %5433, i32 0, i32 8
  %5435 = load i32, ptr %5434, align 4, !tbaa !38
  %5436 = sub nsw i32 %5435, 8
  %5437 = lshr i32 %5432, %5436
  %5438 = and i32 %5437, 255
  store i32 %5438, ptr %85, align 4, !tbaa !37
  %5439 = load ptr, ptr %3, align 8, !tbaa !5
  %5440 = getelementptr inbounds %struct.DState, ptr %5439, i32 0, i32 8
  %5441 = load i32, ptr %5440, align 4, !tbaa !38
  %5442 = sub nsw i32 %5441, 8
  store i32 %5442, ptr %5440, align 4, !tbaa !38
  %5443 = load i32, ptr %85, align 4, !tbaa !37
  %5444 = trunc i32 %5443 to i8
  store i8 %5444, ptr %4, align 1, !tbaa !40
  store i32 180, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #4
  br label %5504

5445:                                             ; preds = %5424
  %5446 = load ptr, ptr %3, align 8, !tbaa !5
  %5447 = getelementptr inbounds %struct.DState, ptr %5446, i32 0, i32 0
  %5448 = load ptr, ptr %5447, align 8, !tbaa !9
  %5449 = getelementptr inbounds %struct.bz_stream, ptr %5448, i32 0, i32 1
  %5450 = load i32, ptr %5449, align 8, !tbaa !41
  %5451 = icmp eq i32 %5450, 0
  br i1 %5451, label %5452, label %5453

5452:                                             ; preds = %5445
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5453:                                             ; preds = %5445
  %5454 = load ptr, ptr %3, align 8, !tbaa !5
  %5455 = getelementptr inbounds %struct.DState, ptr %5454, i32 0, i32 7
  %5456 = load i32, ptr %5455, align 8, !tbaa !39
  %5457 = shl i32 %5456, 8
  %5458 = load ptr, ptr %3, align 8, !tbaa !5
  %5459 = getelementptr inbounds %struct.DState, ptr %5458, i32 0, i32 0
  %5460 = load ptr, ptr %5459, align 8, !tbaa !9
  %5461 = getelementptr inbounds %struct.bz_stream, ptr %5460, i32 0, i32 0
  %5462 = load ptr, ptr %5461, align 8, !tbaa !43
  %5463 = load i8, ptr %5462, align 1, !tbaa !40
  %5464 = zext i8 %5463 to i32
  %5465 = or i32 %5457, %5464
  %5466 = load ptr, ptr %3, align 8, !tbaa !5
  %5467 = getelementptr inbounds %struct.DState, ptr %5466, i32 0, i32 7
  store i32 %5465, ptr %5467, align 8, !tbaa !39
  %5468 = load ptr, ptr %3, align 8, !tbaa !5
  %5469 = getelementptr inbounds %struct.DState, ptr %5468, i32 0, i32 8
  %5470 = load i32, ptr %5469, align 4, !tbaa !38
  %5471 = add nsw i32 %5470, 8
  store i32 %5471, ptr %5469, align 4, !tbaa !38
  %5472 = load ptr, ptr %3, align 8, !tbaa !5
  %5473 = getelementptr inbounds %struct.DState, ptr %5472, i32 0, i32 0
  %5474 = load ptr, ptr %5473, align 8, !tbaa !9
  %5475 = getelementptr inbounds %struct.bz_stream, ptr %5474, i32 0, i32 0
  %5476 = load ptr, ptr %5475, align 8, !tbaa !43
  %5477 = getelementptr inbounds i8, ptr %5476, i32 1
  store ptr %5477, ptr %5475, align 8, !tbaa !43
  %5478 = load ptr, ptr %3, 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 1
  %5482 = load i32, ptr %5481, align 8, !tbaa !41
  %5483 = add i32 %5482, -1
  store i32 %5483, ptr %5481, align 8, !tbaa !41
  %5484 = load ptr, ptr %3, align 8, !tbaa !5
  %5485 = getelementptr inbounds %struct.DState, ptr %5484, i32 0, i32 0
  %5486 = load ptr, ptr %5485, align 8, !tbaa !9
  %5487 = getelementptr inbounds %struct.bz_stream, ptr %5486, i32 0, i32 2
  %5488 = load i32, ptr %5487, align 4, !tbaa !44
  %5489 = add i32 %5488, 1
  store i32 %5489, ptr %5487, align 4, !tbaa !44
  %5490 = load ptr, ptr %3, align 8, !tbaa !5
  %5491 = getelementptr inbounds %struct.DState, ptr %5490, i32 0, i32 0
  %5492 = load ptr, ptr %5491, align 8, !tbaa !9
  %5493 = getelementptr inbounds %struct.bz_stream, ptr %5492, i32 0, i32 2
  %5494 = load i32, ptr %5493, align 4, !tbaa !44
  %5495 = icmp eq i32 %5494, 0
  br i1 %5495, label %5496, label %5503

5496:                                             ; preds = %5453
  %5497 = load ptr, ptr %3, align 8, !tbaa !5
  %5498 = getelementptr inbounds %struct.DState, ptr %5497, i32 0, i32 0
  %5499 = load ptr, ptr %5498, align 8, !tbaa !9
  %5500 = getelementptr inbounds %struct.bz_stream, ptr %5499, i32 0, i32 3
  %5501 = load i32, ptr %5500, align 8, !tbaa !45
  %5502 = add i32 %5501, 1
  store i32 %5502, ptr %5500, align 8, !tbaa !45
  br label %5503

5503:                                             ; preds = %5496, %5453
  br label %5423

5504:                                             ; preds = %5429
  %5505 = load i8, ptr %4, align 1, !tbaa !40
  %5506 = zext i8 %5505 to i32
  %5507 = icmp ne i32 %5506, 144
  br i1 %5507, label %5508, label %5509

5508:                                             ; preds = %5504
  store i32 -4, ptr %5, align 4, !tbaa !37
  br label %5892

5509:                                             ; preds = %5504
  %5510 = load ptr, ptr %3, align 8, !tbaa !5
  %5511 = getelementptr inbounds %struct.DState, ptr %5510, i32 0, i32 24
  store i32 0, ptr %5511, align 4, !tbaa !103
  br label %5512

5512:                                             ; preds = %5509, %146
  %5513 = load ptr, ptr %3, align 8, !tbaa !5
  %5514 = getelementptr inbounds %struct.DState, ptr %5513, i32 0, i32 1
  store i32 47, ptr %5514, align 8, !tbaa !12
  br label %5515

5515:                                             ; preds = %5595, %5512
  br label %5516

5516:                                             ; preds = %5515
  %5517 = load ptr, ptr %3, align 8, !tbaa !5
  %5518 = getelementptr inbounds %struct.DState, ptr %5517, i32 0, i32 8
  %5519 = load i32, ptr %5518, align 4, !tbaa !38
  %5520 = icmp sge i32 %5519, 8
  br i1 %5520, label %5521, label %5537

5521:                                             ; preds = %5516
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #4
  %5522 = load ptr, ptr %3, align 8, !tbaa !5
  %5523 = getelementptr inbounds %struct.DState, ptr %5522, i32 0, i32 7
  %5524 = load i32, ptr %5523, align 8, !tbaa !39
  %5525 = load ptr, ptr %3, align 8, !tbaa !5
  %5526 = getelementptr inbounds %struct.DState, ptr %5525, i32 0, i32 8
  %5527 = load i32, ptr %5526, align 4, !tbaa !38
  %5528 = sub nsw i32 %5527, 8
  %5529 = lshr i32 %5524, %5528
  %5530 = and i32 %5529, 255
  store i32 %5530, ptr %86, align 4, !tbaa !37
  %5531 = load ptr, ptr %3, align 8, !tbaa !5
  %5532 = getelementptr inbounds %struct.DState, ptr %5531, i32 0, i32 8
  %5533 = load i32, ptr %5532, align 4, !tbaa !38
  %5534 = sub nsw i32 %5533, 8
  store i32 %5534, ptr %5532, align 4, !tbaa !38
  %5535 = load i32, ptr %86, align 4, !tbaa !37
  %5536 = trunc i32 %5535 to i8
  store i8 %5536, ptr %4, align 1, !tbaa !40
  store i32 182, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #4
  br label %5596

5537:                                             ; preds = %5516
  %5538 = load ptr, ptr %3, align 8, !tbaa !5
  %5539 = getelementptr inbounds %struct.DState, ptr %5538, i32 0, i32 0
  %5540 = load ptr, ptr %5539, align 8, !tbaa !9
  %5541 = getelementptr inbounds %struct.bz_stream, ptr %5540, i32 0, i32 1
  %5542 = load i32, ptr %5541, align 8, !tbaa !41
  %5543 = icmp eq i32 %5542, 0
  br i1 %5543, label %5544, label %5545

5544:                                             ; preds = %5537
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5545:                                             ; preds = %5537
  %5546 = load ptr, ptr %3, align 8, !tbaa !5
  %5547 = getelementptr inbounds %struct.DState, ptr %5546, i32 0, i32 7
  %5548 = load i32, ptr %5547, align 8, !tbaa !39
  %5549 = shl i32 %5548, 8
  %5550 = load ptr, ptr %3, align 8, !tbaa !5
  %5551 = getelementptr inbounds %struct.DState, ptr %5550, i32 0, i32 0
  %5552 = load ptr, ptr %5551, align 8, !tbaa !9
  %5553 = getelementptr inbounds %struct.bz_stream, ptr %5552, i32 0, i32 0
  %5554 = load ptr, ptr %5553, align 8, !tbaa !43
  %5555 = load i8, ptr %5554, align 1, !tbaa !40
  %5556 = zext i8 %5555 to i32
  %5557 = or i32 %5549, %5556
  %5558 = load ptr, ptr %3, align 8, !tbaa !5
  %5559 = getelementptr inbounds %struct.DState, ptr %5558, i32 0, i32 7
  store i32 %5557, ptr %5559, align 8, !tbaa !39
  %5560 = load ptr, ptr %3, align 8, !tbaa !5
  %5561 = getelementptr inbounds %struct.DState, ptr %5560, i32 0, i32 8
  %5562 = load i32, ptr %5561, align 4, !tbaa !38
  %5563 = add nsw i32 %5562, 8
  store i32 %5563, ptr %5561, align 4, !tbaa !38
  %5564 = load ptr, ptr %3, align 8, !tbaa !5
  %5565 = getelementptr inbounds %struct.DState, ptr %5564, i32 0, i32 0
  %5566 = load ptr, ptr %5565, align 8, !tbaa !9
  %5567 = getelementptr inbounds %struct.bz_stream, ptr %5566, i32 0, i32 0
  %5568 = load ptr, ptr %5567, align 8, !tbaa !43
  %5569 = getelementptr inbounds i8, ptr %5568, i32 1
  store ptr %5569, ptr %5567, align 8, !tbaa !43
  %5570 = load ptr, ptr %3, align 8, !tbaa !5
  %5571 = getelementptr inbounds %struct.DState, ptr %5570, i32 0, i32 0
  %5572 = load ptr, ptr %5571, align 8, !tbaa !9
  %5573 = getelementptr inbounds %struct.bz_stream, ptr %5572, i32 0, i32 1
  %5574 = load i32, ptr %5573, align 8, !tbaa !41
  %5575 = add i32 %5574, -1
  store i32 %5575, ptr %5573, align 8, !tbaa !41
  %5576 = load ptr, ptr %3, align 8, !tbaa !5
  %5577 = getelementptr inbounds %struct.DState, ptr %5576, i32 0, i32 0
  %5578 = load ptr, ptr %5577, align 8, !tbaa !9
  %5579 = getelementptr inbounds %struct.bz_stream, ptr %5578, i32 0, i32 2
  %5580 = load i32, ptr %5579, align 4, !tbaa !44
  %5581 = add i32 %5580, 1
  store i32 %5581, ptr %5579, align 4, !tbaa !44
  %5582 = load ptr, ptr %3, align 8, !tbaa !5
  %5583 = getelementptr inbounds %struct.DState, ptr %5582, i32 0, i32 0
  %5584 = load ptr, ptr %5583, align 8, !tbaa !9
  %5585 = getelementptr inbounds %struct.bz_stream, ptr %5584, i32 0, i32 2
  %5586 = load i32, ptr %5585, align 4, !tbaa !44
  %5587 = icmp eq i32 %5586, 0
  br i1 %5587, label %5588, label %5595

5588:                                             ; preds = %5545
  %5589 = load ptr, ptr %3, align 8, !tbaa !5
  %5590 = getelementptr inbounds %struct.DState, ptr %5589, i32 0, i32 0
  %5591 = load ptr, ptr %5590, align 8, !tbaa !9
  %5592 = getelementptr inbounds %struct.bz_stream, ptr %5591, i32 0, i32 3
  %5593 = load i32, ptr %5592, align 8, !tbaa !45
  %5594 = add i32 %5593, 1
  store i32 %5594, ptr %5592, align 8, !tbaa !45
  br label %5595

5595:                                             ; preds = %5588, %5545
  br label %5515

5596:                                             ; preds = %5521
  %5597 = load ptr, ptr %3, align 8, !tbaa !5
  %5598 = getelementptr inbounds %struct.DState, ptr %5597, i32 0, i32 24
  %5599 = load i32, ptr %5598, align 4, !tbaa !103
  %5600 = shl i32 %5599, 8
  %5601 = load i8, ptr %4, align 1, !tbaa !40
  %5602 = zext i8 %5601 to i32
  %5603 = or i32 %5600, %5602
  %5604 = load ptr, ptr %3, align 8, !tbaa !5
  %5605 = getelementptr inbounds %struct.DState, ptr %5604, i32 0, i32 24
  store i32 %5603, ptr %5605, align 4, !tbaa !103
  br label %5606

5606:                                             ; preds = %5596, %146
  %5607 = load ptr, ptr %3, align 8, !tbaa !5
  %5608 = getelementptr inbounds %struct.DState, ptr %5607, i32 0, i32 1
  store i32 48, ptr %5608, align 8, !tbaa !12
  br label %5609

5609:                                             ; preds = %5689, %5606
  br label %5610

5610:                                             ; preds = %5609
  %5611 = load ptr, ptr %3, align 8, !tbaa !5
  %5612 = getelementptr inbounds %struct.DState, ptr %5611, i32 0, i32 8
  %5613 = load i32, ptr %5612, align 4, !tbaa !38
  %5614 = icmp sge i32 %5613, 8
  br i1 %5614, label %5615, label %5631

5615:                                             ; preds = %5610
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #4
  %5616 = load ptr, ptr %3, align 8, !tbaa !5
  %5617 = getelementptr inbounds %struct.DState, ptr %5616, i32 0, i32 7
  %5618 = load i32, ptr %5617, align 8, !tbaa !39
  %5619 = load ptr, ptr %3, align 8, !tbaa !5
  %5620 = getelementptr inbounds %struct.DState, ptr %5619, i32 0, i32 8
  %5621 = load i32, ptr %5620, align 4, !tbaa !38
  %5622 = sub nsw i32 %5621, 8
  %5623 = lshr i32 %5618, %5622
  %5624 = and i32 %5623, 255
  store i32 %5624, ptr %87, align 4, !tbaa !37
  %5625 = load ptr, ptr %3, align 8, !tbaa !5
  %5626 = getelementptr inbounds %struct.DState, ptr %5625, i32 0, i32 8
  %5627 = load i32, ptr %5626, align 4, !tbaa !38
  %5628 = sub nsw i32 %5627, 8
  store i32 %5628, ptr %5626, align 4, !tbaa !38
  %5629 = load i32, ptr %87, align 4, !tbaa !37
  %5630 = trunc i32 %5629 to i8
  store i8 %5630, ptr %4, align 1, !tbaa !40
  store i32 184, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #4
  br label %5690

5631:                                             ; preds = %5610
  %5632 = load ptr, ptr %3, align 8, !tbaa !5
  %5633 = getelementptr inbounds %struct.DState, ptr %5632, i32 0, i32 0
  %5634 = load ptr, ptr %5633, align 8, !tbaa !9
  %5635 = getelementptr inbounds %struct.bz_stream, ptr %5634, i32 0, i32 1
  %5636 = load i32, ptr %5635, align 8, !tbaa !41
  %5637 = icmp eq i32 %5636, 0
  br i1 %5637, label %5638, label %5639

5638:                                             ; preds = %5631
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5639:                                             ; preds = %5631
  %5640 = load ptr, ptr %3, align 8, !tbaa !5
  %5641 = getelementptr inbounds %struct.DState, ptr %5640, i32 0, i32 7
  %5642 = load i32, ptr %5641, align 8, !tbaa !39
  %5643 = shl i32 %5642, 8
  %5644 = load ptr, ptr %3, align 8, !tbaa !5
  %5645 = getelementptr inbounds %struct.DState, ptr %5644, i32 0, i32 0
  %5646 = load ptr, ptr %5645, align 8, !tbaa !9
  %5647 = getelementptr inbounds %struct.bz_stream, ptr %5646, i32 0, i32 0
  %5648 = load ptr, ptr %5647, align 8, !tbaa !43
  %5649 = load i8, ptr %5648, align 1, !tbaa !40
  %5650 = zext i8 %5649 to i32
  %5651 = or i32 %5643, %5650
  %5652 = load ptr, ptr %3, align 8, !tbaa !5
  %5653 = getelementptr inbounds %struct.DState, ptr %5652, i32 0, i32 7
  store i32 %5651, ptr %5653, align 8, !tbaa !39
  %5654 = load ptr, ptr %3, align 8, !tbaa !5
  %5655 = getelementptr inbounds %struct.DState, ptr %5654, i32 0, i32 8
  %5656 = load i32, ptr %5655, align 4, !tbaa !38
  %5657 = add nsw i32 %5656, 8
  store i32 %5657, ptr %5655, align 4, !tbaa !38
  %5658 = load ptr, ptr %3, align 8, !tbaa !5
  %5659 = getelementptr inbounds %struct.DState, ptr %5658, i32 0, i32 0
  %5660 = load ptr, ptr %5659, align 8, !tbaa !9
  %5661 = getelementptr inbounds %struct.bz_stream, ptr %5660, i32 0, i32 0
  %5662 = load ptr, ptr %5661, align 8, !tbaa !43
  %5663 = getelementptr inbounds i8, ptr %5662, i32 1
  store ptr %5663, ptr %5661, align 8, !tbaa !43
  %5664 = load ptr, ptr %3, align 8, !tbaa !5
  %5665 = getelementptr inbounds %struct.DState, ptr %5664, i32 0, i32 0
  %5666 = load ptr, ptr %5665, align 8, !tbaa !9
  %5667 = getelementptr inbounds %struct.bz_stream, ptr %5666, i32 0, i32 1
  %5668 = load i32, ptr %5667, align 8, !tbaa !41
  %5669 = add i32 %5668, -1
  store i32 %5669, ptr %5667, align 8, !tbaa !41
  %5670 = load ptr, ptr %3, align 8, !tbaa !5
  %5671 = getelementptr inbounds %struct.DState, ptr %5670, i32 0, i32 0
  %5672 = load ptr, ptr %5671, align 8, !tbaa !9
  %5673 = getelementptr inbounds %struct.bz_stream, ptr %5672, i32 0, i32 2
  %5674 = load i32, ptr %5673, align 4, !tbaa !44
  %5675 = add i32 %5674, 1
  store i32 %5675, ptr %5673, align 4, !tbaa !44
  %5676 = load ptr, ptr %3, align 8, !tbaa !5
  %5677 = getelementptr inbounds %struct.DState, ptr %5676, i32 0, i32 0
  %5678 = load ptr, ptr %5677, align 8, !tbaa !9
  %5679 = getelementptr inbounds %struct.bz_stream, ptr %5678, i32 0, i32 2
  %5680 = load i32, ptr %5679, align 4, !tbaa !44
  %5681 = icmp eq i32 %5680, 0
  br i1 %5681, label %5682, label %5689

5682:                                             ; preds = %5639
  %5683 = load ptr, ptr %3, align 8, !tbaa !5
  %5684 = getelementptr inbounds %struct.DState, ptr %5683, i32 0, i32 0
  %5685 = load ptr, ptr %5684, align 8, !tbaa !9
  %5686 = getelementptr inbounds %struct.bz_stream, ptr %5685, i32 0, i32 3
  %5687 = load i32, ptr %5686, align 8, !tbaa !45
  %5688 = add i32 %5687, 1
  store i32 %5688, ptr %5686, align 8, !tbaa !45
  br label %5689

5689:                                             ; preds = %5682, %5639
  br label %5609

5690:                                             ; preds = %5615
  %5691 = load ptr, ptr %3, align 8, !tbaa !5
  %5692 = getelementptr inbounds %struct.DState, ptr %5691, i32 0, i32 24
  %5693 = load i32, ptr %5692, align 4, !tbaa !103
  %5694 = shl i32 %5693, 8
  %5695 = load i8, ptr %4, align 1, !tbaa !40
  %5696 = zext i8 %5695 to i32
  %5697 = or i32 %5694, %5696
  %5698 = load ptr, ptr %3, align 8, !tbaa !5
  %5699 = getelementptr inbounds %struct.DState, ptr %5698, i32 0, i32 24
  store i32 %5697, ptr %5699, align 4, !tbaa !103
  br label %5700

5700:                                             ; preds = %5690, %146
  %5701 = load ptr, ptr %3, align 8, !tbaa !5
  %5702 = getelementptr inbounds %struct.DState, ptr %5701, i32 0, i32 1
  store i32 49, ptr %5702, align 8, !tbaa !12
  br label %5703

5703:                                             ; preds = %5783, %5700
  br label %5704

5704:                                             ; preds = %5703
  %5705 = load ptr, ptr %3, align 8, !tbaa !5
  %5706 = getelementptr inbounds %struct.DState, ptr %5705, i32 0, i32 8
  %5707 = load i32, ptr %5706, align 4, !tbaa !38
  %5708 = icmp sge i32 %5707, 8
  br i1 %5708, label %5709, label %5725

5709:                                             ; preds = %5704
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #4
  %5710 = load ptr, ptr %3, align 8, !tbaa !5
  %5711 = getelementptr inbounds %struct.DState, ptr %5710, i32 0, i32 7
  %5712 = load i32, ptr %5711, align 8, !tbaa !39
  %5713 = load ptr, ptr %3, align 8, !tbaa !5
  %5714 = getelementptr inbounds %struct.DState, ptr %5713, i32 0, i32 8
  %5715 = load i32, ptr %5714, align 4, !tbaa !38
  %5716 = sub nsw i32 %5715, 8
  %5717 = lshr i32 %5712, %5716
  %5718 = and i32 %5717, 255
  store i32 %5718, ptr %88, align 4, !tbaa !37
  %5719 = load ptr, ptr %3, align 8, !tbaa !5
  %5720 = getelementptr inbounds %struct.DState, ptr %5719, i32 0, i32 8
  %5721 = load i32, ptr %5720, align 4, !tbaa !38
  %5722 = sub nsw i32 %5721, 8
  store i32 %5722, ptr %5720, align 4, !tbaa !38
  %5723 = load i32, ptr %88, align 4, !tbaa !37
  %5724 = trunc i32 %5723 to i8
  store i8 %5724, ptr %4, align 1, !tbaa !40
  store i32 186, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #4
  br label %5784

5725:                                             ; preds = %5704
  %5726 = load ptr, ptr %3, align 8, !tbaa !5
  %5727 = getelementptr inbounds %struct.DState, ptr %5726, i32 0, i32 0
  %5728 = load ptr, ptr %5727, align 8, !tbaa !9
  %5729 = getelementptr inbounds %struct.bz_stream, ptr %5728, i32 0, i32 1
  %5730 = load i32, ptr %5729, align 8, !tbaa !41
  %5731 = icmp eq i32 %5730, 0
  br i1 %5731, label %5732, label %5733

5732:                                             ; preds = %5725
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5733:                                             ; preds = %5725
  %5734 = load ptr, ptr %3, align 8, !tbaa !5
  %5735 = getelementptr inbounds %struct.DState, ptr %5734, i32 0, i32 7
  %5736 = load i32, ptr %5735, align 8, !tbaa !39
  %5737 = shl i32 %5736, 8
  %5738 = load ptr, ptr %3, align 8, !tbaa !5
  %5739 = getelementptr inbounds %struct.DState, ptr %5738, i32 0, i32 0
  %5740 = load ptr, ptr %5739, align 8, !tbaa !9
  %5741 = getelementptr inbounds %struct.bz_stream, ptr %5740, i32 0, i32 0
  %5742 = load ptr, ptr %5741, align 8, !tbaa !43
  %5743 = load i8, ptr %5742, align 1, !tbaa !40
  %5744 = zext i8 %5743 to i32
  %5745 = or i32 %5737, %5744
  %5746 = load ptr, ptr %3, align 8, !tbaa !5
  %5747 = getelementptr inbounds %struct.DState, ptr %5746, i32 0, i32 7
  store i32 %5745, ptr %5747, align 8, !tbaa !39
  %5748 = load ptr, ptr %3, align 8, !tbaa !5
  %5749 = getelementptr inbounds %struct.DState, ptr %5748, i32 0, i32 8
  %5750 = load i32, ptr %5749, align 4, !tbaa !38
  %5751 = add nsw i32 %5750, 8
  store i32 %5751, ptr %5749, align 4, !tbaa !38
  %5752 = load ptr, ptr %3, align 8, !tbaa !5
  %5753 = getelementptr inbounds %struct.DState, ptr %5752, i32 0, i32 0
  %5754 = load ptr, ptr %5753, align 8, !tbaa !9
  %5755 = getelementptr inbounds %struct.bz_stream, ptr %5754, i32 0, i32 0
  %5756 = load ptr, ptr %5755, align 8, !tbaa !43
  %5757 = getelementptr inbounds i8, ptr %5756, i32 1
  store ptr %5757, ptr %5755, align 8, !tbaa !43
  %5758 = load ptr, ptr %3, align 8, !tbaa !5
  %5759 = getelementptr inbounds %struct.DState, ptr %5758, i32 0, i32 0
  %5760 = load ptr, ptr %5759, align 8, !tbaa !9
  %5761 = getelementptr inbounds %struct.bz_stream, ptr %5760, i32 0, i32 1
  %5762 = load i32, ptr %5761, align 8, !tbaa !41
  %5763 = add i32 %5762, -1
  store i32 %5763, ptr %5761, align 8, !tbaa !41
  %5764 = load ptr, ptr %3, align 8, !tbaa !5
  %5765 = getelementptr inbounds %struct.DState, ptr %5764, i32 0, i32 0
  %5766 = load ptr, ptr %5765, align 8, !tbaa !9
  %5767 = getelementptr inbounds %struct.bz_stream, ptr %5766, i32 0, i32 2
  %5768 = load i32, ptr %5767, align 4, !tbaa !44
  %5769 = add i32 %5768, 1
  store i32 %5769, ptr %5767, align 4, !tbaa !44
  %5770 = load ptr, ptr %3, align 8, !tbaa !5
  %5771 = getelementptr inbounds %struct.DState, ptr %5770, i32 0, i32 0
  %5772 = load ptr, ptr %5771, align 8, !tbaa !9
  %5773 = getelementptr inbounds %struct.bz_stream, ptr %5772, i32 0, i32 2
  %5774 = load i32, ptr %5773, align 4, !tbaa !44
  %5775 = icmp eq i32 %5774, 0
  br i1 %5775, label %5776, label %5783

5776:                                             ; preds = %5733
  %5777 = load ptr, ptr %3, align 8, !tbaa !5
  %5778 = getelementptr inbounds %struct.DState, ptr %5777, i32 0, i32 0
  %5779 = load ptr, ptr %5778, align 8, !tbaa !9
  %5780 = getelementptr inbounds %struct.bz_stream, ptr %5779, i32 0, i32 3
  %5781 = load i32, ptr %5780, align 8, !tbaa !45
  %5782 = add i32 %5781, 1
  store i32 %5782, ptr %5780, align 8, !tbaa !45
  br label %5783

5783:                                             ; preds = %5776, %5733
  br label %5703

5784:                                             ; preds = %5709
  %5785 = load ptr, ptr %3, align 8, !tbaa !5
  %5786 = getelementptr inbounds %struct.DState, ptr %5785, i32 0, i32 24
  %5787 = load i32, ptr %5786, align 4, !tbaa !103
  %5788 = shl i32 %5787, 8
  %5789 = load i8, ptr %4, align 1, !tbaa !40
  %5790 = zext i8 %5789 to i32
  %5791 = or i32 %5788, %5790
  %5792 = load ptr, ptr %3, align 8, !tbaa !5
  %5793 = getelementptr inbounds %struct.DState, ptr %5792, i32 0, i32 24
  store i32 %5791, ptr %5793, align 4, !tbaa !103
  br label %5794

5794:                                             ; preds = %5784, %146
  %5795 = load ptr, ptr %3, align 8, !tbaa !5
  %5796 = getelementptr inbounds %struct.DState, ptr %5795, i32 0, i32 1
  store i32 50, ptr %5796, align 8, !tbaa !12
  br label %5797

5797:                                             ; preds = %5877, %5794
  br label %5798

5798:                                             ; preds = %5797
  %5799 = load ptr, ptr %3, align 8, !tbaa !5
  %5800 = getelementptr inbounds %struct.DState, ptr %5799, i32 0, i32 8
  %5801 = load i32, ptr %5800, align 4, !tbaa !38
  %5802 = icmp sge i32 %5801, 8
  br i1 %5802, label %5803, label %5819

5803:                                             ; preds = %5798
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #4
  %5804 = load ptr, ptr %3, align 8, !tbaa !5
  %5805 = getelementptr inbounds %struct.DState, ptr %5804, i32 0, i32 7
  %5806 = load i32, ptr %5805, align 8, !tbaa !39
  %5807 = load ptr, ptr %3, align 8, !tbaa !5
  %5808 = getelementptr inbounds %struct.DState, ptr %5807, i32 0, i32 8
  %5809 = load i32, ptr %5808, align 4, !tbaa !38
  %5810 = sub nsw i32 %5809, 8
  %5811 = lshr i32 %5806, %5810
  %5812 = and i32 %5811, 255
  store i32 %5812, ptr %89, align 4, !tbaa !37
  %5813 = load ptr, ptr %3, align 8, !tbaa !5
  %5814 = getelementptr inbounds %struct.DState, ptr %5813, i32 0, i32 8
  %5815 = load i32, ptr %5814, align 4, !tbaa !38
  %5816 = sub nsw i32 %5815, 8
  store i32 %5816, ptr %5814, align 4, !tbaa !38
  %5817 = load i32, ptr %89, align 4, !tbaa !37
  %5818 = trunc i32 %5817 to i8
  store i8 %5818, ptr %4, align 1, !tbaa !40
  store i32 188, ptr %80, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #4
  br label %5878

5819:                                             ; preds = %5798
  %5820 = load ptr, ptr %3, align 8, !tbaa !5
  %5821 = getelementptr inbounds %struct.DState, ptr %5820, i32 0, i32 0
  %5822 = load ptr, ptr %5821, align 8, !tbaa !9
  %5823 = getelementptr inbounds %struct.bz_stream, ptr %5822, i32 0, i32 1
  %5824 = load i32, ptr %5823, align 8, !tbaa !41
  %5825 = icmp eq i32 %5824, 0
  br i1 %5825, label %5826, label %5827

5826:                                             ; preds = %5819
  store i32 0, ptr %5, align 4, !tbaa !37
  br label %5892

5827:                                             ; preds = %5819
  %5828 = load ptr, ptr %3, align 8, !tbaa !5
  %5829 = getelementptr inbounds %struct.DState, ptr %5828, i32 0, i32 7
  %5830 = load i32, ptr %5829, align 8, !tbaa !39
  %5831 = shl i32 %5830, 8
  %5832 = load ptr, ptr %3, align 8, !tbaa !5
  %5833 = getelementptr inbounds %struct.DState, ptr %5832, i32 0, i32 0
  %5834 = load ptr, ptr %5833, align 8, !tbaa !9
  %5835 = getelementptr inbounds %struct.bz_stream, ptr %5834, i32 0, i32 0
  %5836 = load ptr, ptr %5835, align 8, !tbaa !43
  %5837 = load i8, ptr %5836, align 1, !tbaa !40
  %5838 = zext i8 %5837 to i32
  %5839 = or i32 %5831, %5838
  %5840 = load ptr, ptr %3, align 8, !tbaa !5
  %5841 = getelementptr inbounds %struct.DState, ptr %5840, i32 0, i32 7
  store i32 %5839, ptr %5841, align 8, !tbaa !39
  %5842 = load ptr, ptr %3, align 8, !tbaa !5
  %5843 = getelementptr inbounds %struct.DState, ptr %5842, i32 0, i32 8
  %5844 = load i32, ptr %5843, align 4, !tbaa !38
  %5845 = add nsw i32 %5844, 8
  store i32 %5845, ptr %5843, align 4, !tbaa !38
  %5846 = load ptr, ptr %3, align 8, !tbaa !5
  %5847 = getelementptr inbounds %struct.DState, ptr %5846, i32 0, i32 0
  %5848 = load ptr, ptr %5847, align 8, !tbaa !9
  %5849 = getelementptr inbounds %struct.bz_stream, ptr %5848, i32 0, i32 0
  %5850 = load ptr, ptr %5849, align 8, !tbaa !43
  %5851 = getelementptr inbounds i8, ptr %5850, i32 1
  store ptr %5851, ptr %5849, align 8, !tbaa !43
  %5852 = load ptr, ptr %3, align 8, !tbaa !5
  %5853 = getelementptr inbounds %struct.DState, ptr %5852, i32 0, i32 0
  %5854 = load ptr, ptr %5853, align 8, !tbaa !9
  %5855 = getelementptr inbounds %struct.bz_stream, ptr %5854, i32 0, i32 1
  %5856 = load i32, ptr %5855, align 8, !tbaa !41
  %5857 = add i32 %5856, -1
  store i32 %5857, ptr %5855, align 8, !tbaa !41
  %5858 = load ptr, ptr %3, align 8, !tbaa !5
  %5859 = getelementptr inbounds %struct.DState, ptr %5858, i32 0, i32 0
  %5860 = load ptr, ptr %5859, align 8, !tbaa !9
  %5861 = getelementptr inbounds %struct.bz_stream, ptr %5860, i32 0, i32 2
  %5862 = load i32, ptr %5861, align 4, !tbaa !44
  %5863 = add i32 %5862, 1
  store i32 %5863, ptr %5861, align 4, !tbaa !44
  %5864 = load ptr, ptr %3, align 8, !tbaa !5
  %5865 = getelementptr inbounds %struct.DState, ptr %5864, i32 0, i32 0
  %5866 = load ptr, ptr %5865, align 8, !tbaa !9
  %5867 = getelementptr inbounds %struct.bz_stream, ptr %5866, i32 0, i32 2
  %5868 = load i32, ptr %5867, align 4, !tbaa !44
  %5869 = icmp eq i32 %5868, 0
  br i1 %5869, label %5870, label %5877

5870:                                             ; preds = %5827
  %5871 = load ptr, ptr %3, align 8, !tbaa !5
  %5872 = getelementptr inbounds %struct.DState, ptr %5871, i32 0, i32 0
  %5873 = load ptr, ptr %5872, align 8, !tbaa !9
  %5874 = getelementptr inbounds %struct.bz_stream, ptr %5873, i32 0, i32 3
  %5875 = load i32, ptr %5874, align 8, !tbaa !45
  %5876 = add i32 %5875, 1
  store i32 %5876, ptr %5874, align 8, !tbaa !45
  br label %5877

5877:                                             ; preds = %5870, %5827
  br label %5797

5878:                                             ; preds = %5803
  %5879 = load ptr, ptr %3, align 8, !tbaa !5
  %5880 = getelementptr inbounds %struct.DState, ptr %5879, i32 0, i32 24
  %5881 = load i32, ptr %5880, align 4, !tbaa !103
  %5882 = shl i32 %5881, 8
  %5883 = load i8, ptr %4, align 1, !tbaa !40
  %5884 = zext i8 %5883 to i32
  %5885 = or i32 %5882, %5884
  %5886 = load ptr, ptr %3, align 8, !tbaa !5
  %5887 = getelementptr inbounds %struct.DState, ptr %5886, i32 0, i32 24
  store i32 %5885, ptr %5887, align 4, !tbaa !103
  %5888 = load ptr, ptr %3, align 8, !tbaa !5
  %5889 = getelementptr inbounds %struct.DState, ptr %5888, i32 0, i32 1
  store i32 1, ptr %5889, align 8, !tbaa !12
  store i32 4, ptr %5, align 4, !tbaa !37
  br label %5892

5890:                                             ; preds = %146
  call void @BZ2_bz__AssertH__fail(i32 noundef 4001)
  br label %5891

5891:                                             ; preds = %5890
  call void @BZ2_bz__AssertH__fail(i32 noundef 4002)
  br label %5892

5892:                                             ; preds = %5891, %5878, %5826, %5732, %5638, %5544, %5508, %5452, %5418, %5362, %5328, %5272, %5238, %5182, %5148, %5092, %5058, %4448, %4424, %4353, %4331, %4307, %4232, %4188, %4131, %4057, %3739, %3719, %3696, %3638, %3563, %3519, %3462, %3388, %3359, %3330, %3255, %3211, %3154, %3080, %2835, %2745, %2711, %2646, %2530, %2467, %2426, %2371, %2338, %2280, %2243, %2163, %2029, %1991, %1980, %1914, %1820, %1726, %1639, %1543, %1449, %1355, %1261, %1210, %1154, %1120, %1064, %1030, %974, %940, %884, %850, %794, %760, %699, %664, %641, %587, %525, %490, %434, %400, %344, %310, %254
  %5893 = load i32, ptr %9, align 4, !tbaa !37
  %5894 = load ptr, ptr %3, align 8, !tbaa !5
  %5895 = getelementptr inbounds %struct.DState, ptr %5894, i32 0, i32 40
  store i32 %5893, ptr %5895, align 4, !tbaa !13
  %5896 = load i32, ptr %10, align 4, !tbaa !37
  %5897 = load ptr, ptr %3, align 8, !tbaa !5
  %5898 = getelementptr inbounds %struct.DState, ptr %5897, i32 0, i32 41
  store i32 %5896, ptr %5898, align 8, !tbaa !14
  %5899 = load i32, ptr %11, align 4, !tbaa !37
  %5900 = load ptr, ptr %3, align 8, !tbaa !5
  %5901 = getelementptr inbounds %struct.DState, ptr %5900, i32 0, i32 42
  store i32 %5899, ptr %5901, align 4, !tbaa !15
  %5902 = load i32, ptr %12, align 4, !tbaa !37
  %5903 = load ptr, ptr %3, align 8, !tbaa !5
  %5904 = getelementptr inbounds %struct.DState, ptr %5903, i32 0, i32 43
  store i32 %5902, ptr %5904, align 8, !tbaa !16
  %5905 = load i32, ptr %13, align 4, !tbaa !37
  %5906 = load ptr, ptr %3, align 8, !tbaa !5
  %5907 = getelementptr inbounds %struct.DState, ptr %5906, i32 0, i32 44
  store i32 %5905, ptr %5907, align 4, !tbaa !17
  %5908 = load i32, ptr %14, align 4, !tbaa !37
  %5909 = load ptr, ptr %3, align 8, !tbaa !5
  %5910 = getelementptr inbounds %struct.DState, ptr %5909, i32 0, i32 45
  store i32 %5908, ptr %5910, align 8, !tbaa !18
  %5911 = load i32, ptr %15, align 4, !tbaa !37
  %5912 = load ptr, ptr %3, align 8, !tbaa !5
  %5913 = getelementptr inbounds %struct.DState, ptr %5912, i32 0, i32 46
  store i32 %5911, ptr %5913, align 4, !tbaa !19
  %5914 = load i32, ptr %16, align 4, !tbaa !37
  %5915 = load ptr, ptr %3, align 8, !tbaa !5
  %5916 = getelementptr inbounds %struct.DState, ptr %5915, i32 0, i32 47
  store i32 %5914, ptr %5916, align 8, !tbaa !20
  %5917 = load i32, ptr %17, align 4, !tbaa !37
  %5918 = load ptr, ptr %3, align 8, !tbaa !5
  %5919 = getelementptr inbounds %struct.DState, ptr %5918, i32 0, i32 48
  store i32 %5917, ptr %5919, align 4, !tbaa !21
  %5920 = load i32, ptr %18, align 4, !tbaa !37
  %5921 = load ptr, ptr %3, align 8, !tbaa !5
  %5922 = getelementptr inbounds %struct.DState, ptr %5921, i32 0, i32 49
  store i32 %5920, ptr %5922, align 8, !tbaa !22
  %5923 = load i32, ptr %19, align 4, !tbaa !37
  %5924 = load ptr, ptr %3, align 8, !tbaa !5
  %5925 = getelementptr inbounds %struct.DState, ptr %5924, i32 0, i32 50
  store i32 %5923, ptr %5925, align 4, !tbaa !23
  %5926 = load i32, ptr %20, align 4, !tbaa !37
  %5927 = load ptr, ptr %3, align 8, !tbaa !5
  %5928 = getelementptr inbounds %struct.DState, ptr %5927, i32 0, i32 51
  store i32 %5926, ptr %5928, align 8, !tbaa !24
  %5929 = load i32, ptr %21, align 4, !tbaa !37
  %5930 = load ptr, ptr %3, align 8, !tbaa !5
  %5931 = getelementptr inbounds %struct.DState, ptr %5930, i32 0, i32 52
  store i32 %5929, ptr %5931, align 4, !tbaa !25
  %5932 = load i32, ptr %22, align 4, !tbaa !37
  %5933 = load ptr, ptr %3, align 8, !tbaa !5
  %5934 = getelementptr inbounds %struct.DState, ptr %5933, i32 0, i32 53
  store i32 %5932, ptr %5934, align 8, !tbaa !26
  %5935 = load i32, ptr %23, align 4, !tbaa !37
  %5936 = load ptr, ptr %3, align 8, !tbaa !5
  %5937 = getelementptr inbounds %struct.DState, ptr %5936, i32 0, i32 54
  store i32 %5935, ptr %5937, align 4, !tbaa !27
  %5938 = load i32, ptr %24, align 4, !tbaa !37
  %5939 = load ptr, ptr %3, align 8, !tbaa !5
  %5940 = getelementptr inbounds %struct.DState, ptr %5939, i32 0, i32 55
  store i32 %5938, ptr %5940, align 8, !tbaa !28
  %5941 = load i32, ptr %25, align 4, !tbaa !37
  %5942 = load ptr, ptr %3, align 8, !tbaa !5
  %5943 = getelementptr inbounds %struct.DState, ptr %5942, i32 0, i32 56
  store i32 %5941, ptr %5943, align 4, !tbaa !29
  %5944 = load i32, ptr %26, align 4, !tbaa !37
  %5945 = load ptr, ptr %3, align 8, !tbaa !5
  %5946 = getelementptr inbounds %struct.DState, ptr %5945, i32 0, i32 57
  store i32 %5944, ptr %5946, align 8, !tbaa !30
  %5947 = load i32, ptr %27, align 4, !tbaa !37
  %5948 = load ptr, ptr %3, align 8, !tbaa !5
  %5949 = getelementptr inbounds %struct.DState, ptr %5948, i32 0, i32 58
  store i32 %5947, ptr %5949, align 4, !tbaa !31
  %5950 = load i32, ptr %28, align 4, !tbaa !37
  %5951 = load ptr, ptr %3, align 8, !tbaa !5
  %5952 = getelementptr inbounds %struct.DState, ptr %5951, i32 0, i32 59
  store i32 %5950, ptr %5952, align 8, !tbaa !32
  %5953 = load i32, ptr %29, align 4, !tbaa !37
  %5954 = load ptr, ptr %3, align 8, !tbaa !5
  %5955 = getelementptr inbounds %struct.DState, ptr %5954, i32 0, i32 60
  store i32 %5953, ptr %5955, align 4, !tbaa !33
  %5956 = load ptr, ptr %30, align 8, !tbaa !5
  %5957 = load ptr, ptr %3, align 8, !tbaa !5
  %5958 = getelementptr inbounds %struct.DState, ptr %5957, i32 0, i32 61
  store ptr %5956, ptr %5958, align 8, !tbaa !34
  %5959 = load ptr, ptr %31, align 8, !tbaa !5
  %5960 = load ptr, ptr %3, align 8, !tbaa !5
  %5961 = getelementptr inbounds %struct.DState, ptr %5960, i32 0, i32 62
  store ptr %5959, ptr %5961, align 8, !tbaa !35
  %5962 = load ptr, ptr %32, align 8, !tbaa !5
  %5963 = load ptr, ptr %3, align 8, !tbaa !5
  %5964 = getelementptr inbounds %struct.DState, ptr %5963, i32 0, i32 63
  store ptr %5962, ptr %5964, align 8, !tbaa !36
  %5965 = load i32, ptr %5, align 4, !tbaa !37
  store i32 %5965, ptr %2, align 4
  store i32 1, ptr %80, align 4
  br label %5966

5966:                                             ; preds = %5892, %5028, %4950, %4830, %4734
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %4) #4
  %5967 = load i32, ptr %2, align 4
  ret i32 %5967
}

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

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2

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

declare void @BZ2_hbCreateDecodeTables(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) #3

declare i32 @BZ2_indexIntoF(i32 noundef, ptr noundef) #3

declare void @BZ2_bz__AssertH__fail(i32 noundef) #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/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 = distinct !{!89, !59}
!90 = distinct !{!90, !59}
!91 = !{!10, !11, i64 16}
!92 = !{!10, !7, i64 12}
!93 = !{!10, !11, i64 3184}
!94 = distinct !{!94, !59}
!95 = distinct !{!95, !59}
!96 = distinct !{!96, !59}
!97 = !{!10, !11, i64 60}
!98 = !{!10, !11, i64 1092}
!99 = !{!10, !11, i64 24}
!100 = !{!10, !11, i64 28}
!101 = !{!10, !11, i64 64}
!102 = distinct !{!102, !59}
!103 = !{!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"

@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [20 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [7 x i8], align 1
@BZ2_rNums = external local_unnamed_addr global [512 x i32], align 16

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @BZ2_decompress(ptr noundef %0) local_unnamed_addr #0 {
  %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
  %8 = getelementptr inbounds i8, ptr %0, i64 64040
  br i1 %6, label %.thread, label %34

.thread:                                          ; preds = %1
  %9 = getelementptr inbounds i8, ptr %0, i64 64036
  %10 = getelementptr inbounds i8, ptr %0, i64 64044
  %11 = getelementptr inbounds i8, ptr %0, i64 64048
  %12 = getelementptr inbounds i8, ptr %0, i64 64052
  %13 = getelementptr inbounds i8, ptr %0, i64 64056
  %14 = getelementptr inbounds i8, ptr %0, i64 64060
  %15 = getelementptr inbounds i8, ptr %0, i64 64064
  %16 = getelementptr inbounds i8, ptr %0, i64 64068
  %17 = getelementptr inbounds i8, ptr %0, i64 64072
  %18 = getelementptr inbounds i8, ptr %0, i64 64076
  %19 = getelementptr inbounds i8, ptr %0, i64 64080
  %20 = getelementptr inbounds i8, ptr %0, i64 64084
  %21 = getelementptr inbounds i8, ptr %0, i64 64088
  %22 = getelementptr inbounds i8, ptr %0, i64 64092
  %23 = getelementptr inbounds i8, ptr %0, i64 64096
  %24 = getelementptr inbounds i8, ptr %0, i64 64100
  %25 = getelementptr inbounds i8, ptr %0, i64 64104
  %26 = getelementptr inbounds i8, ptr %0, i64 64108
  %27 = getelementptr inbounds i8, ptr %0, i64 64112
  %28 = getelementptr inbounds i8, ptr %0, i64 64116
  %29 = getelementptr inbounds i8, ptr %0, i64 64120
  %30 = getelementptr inbounds i8, ptr %0, i64 64128
  %31 = getelementptr inbounds i8, ptr %0, i64 64136
  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
  %32 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted = load i32, ptr %32, align 4, !tbaa !12
  %33 = icmp sgt i32 %.promoted, 7
  br i1 %33, label %.._crit_edge_crit_edge, label %.lr.ph

34:                                               ; preds = %1
  %.pre = load i32, ptr %7, align 4, !tbaa !13
  %.pre2711 = load i32, ptr %8, align 8, !tbaa !14
  %.phi.trans.insert2712 = getelementptr inbounds i8, ptr %0, i64 64044
  %.pre2713 = load i32, ptr %.phi.trans.insert2712, align 4, !tbaa !15
  %.phi.trans.insert2714 = getelementptr inbounds i8, ptr %0, i64 64048
  %.pre2715 = load i32, ptr %.phi.trans.insert2714, align 8, !tbaa !16
  %.phi.trans.insert2716 = getelementptr inbounds i8, ptr %0, i64 64052
  %.pre2717 = load i32, ptr %.phi.trans.insert2716, align 4, !tbaa !17
  %.phi.trans.insert2718 = getelementptr inbounds i8, ptr %0, i64 64056
  %.pre2719 = load i32, ptr %.phi.trans.insert2718, align 8, !tbaa !18
  %.phi.trans.insert2720 = getelementptr inbounds i8, ptr %0, i64 64060
  %.pre2721 = load i32, ptr %.phi.trans.insert2720, align 4, !tbaa !19
  %.phi.trans.insert2722 = getelementptr inbounds i8, ptr %0, i64 64064
  %.pre2723 = load i32, ptr %.phi.trans.insert2722, align 8, !tbaa !20
  %.phi.trans.insert2724 = getelementptr inbounds i8, ptr %0, i64 64068
  %.pre2725 = load i32, ptr %.phi.trans.insert2724, align 4, !tbaa !21
  %.phi.trans.insert2726 = getelementptr inbounds i8, ptr %0, i64 64072
  %.pre2727 = load i32, ptr %.phi.trans.insert2726, align 8, !tbaa !22
  %.phi.trans.insert2728 = getelementptr inbounds i8, ptr %0, i64 64076
  %.pre2729 = load i32, ptr %.phi.trans.insert2728, align 4, !tbaa !23
  %.phi.trans.insert2730 = getelementptr inbounds i8, ptr %0, i64 64080
  %.pre2731 = load i32, ptr %.phi.trans.insert2730, align 8, !tbaa !24
  %.phi.trans.insert2732 = getelementptr inbounds i8, ptr %0, i64 64084
  %.pre2733 = load i32, ptr %.phi.trans.insert2732, align 4, !tbaa !25
  %.phi.trans.insert2734 = getelementptr inbounds i8, ptr %0, i64 64088
  %.pre2735 = load i32, ptr %.phi.trans.insert2734, align 8, !tbaa !26
  %.phi.trans.insert2736 = getelementptr inbounds i8, ptr %0, i64 64092
  %.pre2737 = load i32, ptr %.phi.trans.insert2736, align 4, !tbaa !27
  %.phi.trans.insert2738 = getelementptr inbounds i8, ptr %0, i64 64096
  %.pre2739 = load i32, ptr %.phi.trans.insert2738, align 8, !tbaa !28
  %.phi.trans.insert2740 = getelementptr inbounds i8, ptr %0, i64 64100
  %.pre2741 = load i32, ptr %.phi.trans.insert2740, align 4, !tbaa !29
  %.phi.trans.insert2742 = getelementptr inbounds i8, ptr %0, i64 64104
  %.pre2743 = load i32, ptr %.phi.trans.insert2742, align 8, !tbaa !30
  %.phi.trans.insert2744 = getelementptr inbounds i8, ptr %0, i64 64108
  %.pre2745 = load i32, ptr %.phi.trans.insert2744, align 4, !tbaa !31
  %.phi.trans.insert2746 = getelementptr inbounds i8, ptr %0, i64 64112
  %.pre2747 = load i32, ptr %.phi.trans.insert2746, align 8, !tbaa !32
  %.phi.trans.insert2748 = getelementptr inbounds i8, ptr %0, i64 64116
  %.pre2749 = load i32, ptr %.phi.trans.insert2748, align 4, !tbaa !33
  %.phi.trans.insert2750 = getelementptr inbounds i8, ptr %0, i64 64120
  %.pre2751 = load ptr, ptr %.phi.trans.insert2750, align 8, !tbaa !34
  %.phi.trans.insert2752 = getelementptr inbounds i8, ptr %0, i64 64128
  %.pre2753 = load ptr, ptr %.phi.trans.insert2752, align 8, !tbaa !35
  %.phi.trans.insert2754 = getelementptr inbounds i8, ptr %0, i64 64136
  %.pre2755 = load ptr, ptr %.phi.trans.insert2754, align 8, !tbaa !36
  %35 = getelementptr inbounds i8, ptr %0, i64 64036
  %36 = getelementptr inbounds i8, ptr %0, i64 64040
  %37 = getelementptr inbounds i8, ptr %0, i64 64044
  %38 = getelementptr inbounds i8, ptr %0, i64 64048
  %39 = getelementptr inbounds i8, ptr %0, i64 64052
  %40 = getelementptr inbounds i8, ptr %0, i64 64056
  %41 = getelementptr inbounds i8, ptr %0, i64 64060
  %42 = getelementptr inbounds i8, ptr %0, i64 64064
  %43 = getelementptr inbounds i8, ptr %0, i64 64068
  %44 = getelementptr inbounds i8, ptr %0, i64 64072
  %45 = getelementptr inbounds i8, ptr %0, i64 64076
  %46 = getelementptr inbounds i8, ptr %0, i64 64080
  %47 = getelementptr inbounds i8, ptr %0, i64 64084
  %48 = getelementptr inbounds i8, ptr %0, i64 64088
  %49 = getelementptr inbounds i8, ptr %0, i64 64092
  %50 = getelementptr inbounds i8, ptr %0, i64 64096
  %51 = getelementptr inbounds i8, ptr %0, i64 64100
  %52 = getelementptr inbounds i8, ptr %0, i64 64104
  %53 = getelementptr inbounds i8, ptr %0, i64 64108
  %54 = getelementptr inbounds i8, ptr %0, i64 64112
  %55 = getelementptr inbounds i8, ptr %0, i64 64116
  %56 = getelementptr inbounds i8, ptr %0, i64 64120
  %57 = getelementptr inbounds i8, ptr %0, i64 64128
  %58 = getelementptr inbounds i8, ptr %0, i64 64136
  switch i32 %5, label %4967 [
    i32 50, label %._crit_edge2925
    i32 11, label %._crit_edge2758
    i32 12, label %._crit_edge2763
    i32 13, label %._crit_edge2768
    i32 14, label %361
    i32 15, label %._crit_edge2775
    i32 16, label %._crit_edge2780
    i32 17, label %._crit_edge2785
    i32 18, label %._crit_edge2790
    i32 19, label %._crit_edge2795
    i32 20, label %864
    i32 21, label %._crit_edge2802
    i32 22, label %._crit_edge2807
    i32 23, label %._crit_edge2812
    i32 24, label %._crit_edge2817
    i32 25, label %._crit_edge2822
    i32 26, label %._crit_edge2827
    i32 27, label %._crit_edge2832
    i32 28, label %1608
    i32 29, label %1793
    i32 30, label %1935
    i32 31, label %._crit_edge2839
    i32 32, label %.preheader3398
    i32 33, label %2327
    i32 34, label %2488
    i32 35, label %._crit_edge2874
    i32 36, label %2717
    i32 37, label %._crit_edge2864
    i32 38, label %2965
    i32 39, label %._crit_edge2856
    i32 40, label %3460
    i32 41, label %._crit_edge2848
    i32 42, label %._crit_edge2885
    i32 43, label %._crit_edge2890
    i32 44, label %._crit_edge2895
    i32 45, label %._crit_edge2900
    i32 46, label %._crit_edge2905
    i32 47, label %._crit_edge2910
    i32 48, label %._crit_edge2915
    i32 49, label %._crit_edge2920
  ]

._crit_edge2925:                                  ; preds = %34
  %.phi.trans.insert2926 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2476.pre = load i32, ptr %.phi.trans.insert2926, align 4, !tbaa !12
  br label %4881

._crit_edge2920:                                  ; preds = %34
  %.phi.trans.insert2921 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2469.pre = load i32, ptr %.phi.trans.insert2921, align 4, !tbaa !12
  br label %4795

._crit_edge2915:                                  ; preds = %34
  %.phi.trans.insert2916 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2462.pre = load i32, ptr %.phi.trans.insert2916, align 4, !tbaa !12
  br label %4709

._crit_edge2910:                                  ; preds = %34
  %.phi.trans.insert2911 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2455.pre = load i32, ptr %.phi.trans.insert2911, align 4, !tbaa !12
  br label %4623

._crit_edge2905:                                  ; preds = %34
  %.phi.trans.insert2906 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2448.pre = load i32, ptr %.phi.trans.insert2906, align 4, !tbaa !12
  br label %4539

._crit_edge2900:                                  ; preds = %34
  %.phi.trans.insert2901 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2441.pre = load i32, ptr %.phi.trans.insert2901, align 4, !tbaa !12
  br label %4457

._crit_edge2895:                                  ; preds = %34
  %.phi.trans.insert2896 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2434.pre = load i32, ptr %.phi.trans.insert2896, align 4, !tbaa !12
  br label %4375

._crit_edge2890:                                  ; preds = %34
  %.phi.trans.insert2891 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2427.pre = load i32, ptr %.phi.trans.insert2891, align 4, !tbaa !12
  br label %4293

._crit_edge2885:                                  ; preds = %34
  %.phi.trans.insert2886 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2420.pre = load i32, ptr %.phi.trans.insert2886, align 4, !tbaa !12
  br label %4211

._crit_edge2874:                                  ; preds = %34
  %.phi.trans.insert2875 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2392.pre = load i32, ptr %.phi.trans.insert2875, align 4, !tbaa !12
  br label %2564

._crit_edge2864:                                  ; preds = %34
  %.phi.trans.insert2865 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2371.pre = load i32, ptr %.phi.trans.insert2865, align 4, !tbaa !12
  br label %2816

._crit_edge2856:                                  ; preds = %34
  %.phi.trans.insert2857 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2351.pre = load i32, ptr %.phi.trans.insert2857, align 4, !tbaa !12
  br label %3056

._crit_edge2848:                                  ; preds = %34
  %.phi.trans.insert2849 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2326.pre = load i32, ptr %.phi.trans.insert2849, align 4, !tbaa !12
  br label %3551

._crit_edge2839:                                  ; preds = %34
  %.phi.trans.insert2840 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2255.pre = load i32, ptr %.phi.trans.insert2840, align 4, !tbaa !12
  br label %2014

._crit_edge2832:                                  ; preds = %34
  %.phi.trans.insert2833 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2240.pre = load i32, ptr %.phi.trans.insert2833, align 4, !tbaa !12
  br label %1465

._crit_edge2827:                                  ; preds = %34
  %.phi.trans.insert2828 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2233.pre = load i32, ptr %.phi.trans.insert2828, align 4, !tbaa !12
  br label %1379

._crit_edge2822:                                  ; preds = %34
  %.phi.trans.insert2823 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2226.pre = load i32, ptr %.phi.trans.insert2823, align 4, !tbaa !12
  br label %1293

._crit_edge2817:                                  ; preds = %34
  %.phi.trans.insert2818 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2219.pre = load i32, ptr %.phi.trans.insert2818, align 4, !tbaa !12
  br label %1208

._crit_edge2812:                                  ; preds = %34
  %.phi.trans.insert2813 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2212.pre = load i32, ptr %.phi.trans.insert2813, align 4, !tbaa !12
  br label %1122

._crit_edge2807:                                  ; preds = %34
  %.phi.trans.insert2808 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2205.pre = load i32, ptr %.phi.trans.insert2808, align 4, !tbaa !12
  br label %1036

._crit_edge2802:                                  ; preds = %34
  %.phi.trans.insert2803 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2198.pre = load i32, ptr %.phi.trans.insert2803, align 4, !tbaa !12
  br label %950

._crit_edge2795:                                  ; preds = %34
  %.phi.trans.insert2796 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2184.pre = load i32, ptr %.phi.trans.insert2796, align 4, !tbaa !12
  br label %770

._crit_edge2790:                                  ; preds = %34
  %.phi.trans.insert2791 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2177.pre = load i32, ptr %.phi.trans.insert2791, align 4, !tbaa !12
  br label %688

._crit_edge2785:                                  ; preds = %34
  %.phi.trans.insert2786 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2170.pre = load i32, ptr %.phi.trans.insert2786, align 4, !tbaa !12
  br label %606

._crit_edge2780:                                  ; preds = %34
  %.phi.trans.insert2781 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2163.pre = load i32, ptr %.phi.trans.insert2781, align 4, !tbaa !12
  br label %524

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

._crit_edge2768:                                  ; preds = %34
  %.phi.trans.insert2769 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2142.pre = load i32, ptr %.phi.trans.insert2769, align 4, !tbaa !12
  br label %251

._crit_edge2763:                                  ; preds = %34
  %.phi.trans.insert2764 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2135.pre = load i32, ptr %.phi.trans.insert2764, align 4, !tbaa !12
  br label %170

._crit_edge2758:                                  ; preds = %34
  %.phi.trans.insert2759 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2128.pre = load i32, ptr %.phi.trans.insert2759, align 4, !tbaa !12
  br label %89

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

.lr.ph:                                           ; preds = %.thread
  %59 = getelementptr inbounds i8, ptr %3, i64 8
  %60 = getelementptr inbounds i8, ptr %0, i64 32
  %61 = getelementptr inbounds i8, ptr %3, i64 12
  %62 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2127 = load i32, ptr %59, align 8, !tbaa !38
  br label %67

._crit_edge:                                      ; preds = %87, %.._crit_edge_crit_edge
  %63 = phi i32 [ %.pre2757, %.._crit_edge_crit_edge ], [ %77, %87 ]
  %.lcssa2122 = phi i32 [ %.promoted, %.._crit_edge_crit_edge ], [ %78, %87 ]
  %64 = add nsw i32 %.lcssa2122, -8
  %65 = lshr i32 %63, %64
  store i32 %64, ptr %32, align 4, !tbaa !12
  %66 = and i32 %65, 255
  %.not = icmp eq i32 %66, 66
  br i1 %.not, label %89, label %.loopexit

67:                                               ; preds = %.lr.ph, %87
  %68 = phi i32 [ %.promoted2127, %.lr.ph ], [ %80, %87 ]
  %69 = phi i32 [ %.promoted, %.lr.ph ], [ %78, %87 ]
  %70 = icmp eq i32 %68, 0
  br i1 %70, label %.loopexit, label %71

71:                                               ; preds = %67
  %72 = load i32, ptr %60, align 8, !tbaa !37
  %73 = shl i32 %72, 8
  %74 = load ptr, ptr %3, align 8, !tbaa !40
  %75 = load i8, ptr %74, align 1, !tbaa !41
  %76 = zext i8 %75 to i32
  %77 = or disjoint i32 %73, %76
  store i32 %77, ptr %60, align 8, !tbaa !37
  %78 = add nsw i32 %69, 8
  store i32 %78, ptr %32, align 4, !tbaa !12
  %79 = getelementptr inbounds i8, ptr %74, i64 1
  store ptr %79, ptr %3, align 8, !tbaa !40
  %80 = add i32 %68, -1
  store i32 %80, ptr %59, align 8, !tbaa !38
  %81 = load i32, ptr %61, align 4, !tbaa !42
  %82 = add i32 %81, 1
  store i32 %82, ptr %61, align 4, !tbaa !42
  %83 = icmp eq i32 %82, 0
  br i1 %83, label %84, label %87

84:                                               ; preds = %71
  %85 = load i32, ptr %62, align 8, !tbaa !43
  %86 = add i32 %85, 1
  store i32 %86, ptr %62, align 8, !tbaa !43
  br label %87

87:                                               ; preds = %84, %71
  %88 = icmp sgt i32 %69, -1
  br i1 %88, label %._crit_edge, label %67

89:                                               ; preds = %._crit_edge2758, %._crit_edge
  %90 = phi ptr [ %58, %._crit_edge2758 ], [ %31, %._crit_edge ]
  %91 = phi ptr [ %57, %._crit_edge2758 ], [ %30, %._crit_edge ]
  %92 = phi ptr [ %56, %._crit_edge2758 ], [ %29, %._crit_edge ]
  %93 = phi ptr [ %55, %._crit_edge2758 ], [ %28, %._crit_edge ]
  %94 = phi ptr [ %54, %._crit_edge2758 ], [ %27, %._crit_edge ]
  %95 = phi ptr [ %53, %._crit_edge2758 ], [ %26, %._crit_edge ]
  %96 = phi ptr [ %52, %._crit_edge2758 ], [ %25, %._crit_edge ]
  %97 = phi ptr [ %51, %._crit_edge2758 ], [ %24, %._crit_edge ]
  %98 = phi ptr [ %50, %._crit_edge2758 ], [ %23, %._crit_edge ]
  %99 = phi ptr [ %49, %._crit_edge2758 ], [ %22, %._crit_edge ]
  %100 = phi ptr [ %48, %._crit_edge2758 ], [ %21, %._crit_edge ]
  %101 = phi ptr [ %47, %._crit_edge2758 ], [ %20, %._crit_edge ]
  %102 = phi ptr [ %46, %._crit_edge2758 ], [ %19, %._crit_edge ]
  %103 = phi ptr [ %45, %._crit_edge2758 ], [ %18, %._crit_edge ]
  %104 = phi ptr [ %44, %._crit_edge2758 ], [ %17, %._crit_edge ]
  %105 = phi ptr [ %43, %._crit_edge2758 ], [ %16, %._crit_edge ]
  %106 = phi ptr [ %42, %._crit_edge2758 ], [ %15, %._crit_edge ]
  %107 = phi ptr [ %41, %._crit_edge2758 ], [ %14, %._crit_edge ]
  %108 = phi ptr [ %40, %._crit_edge2758 ], [ %13, %._crit_edge ]
  %109 = phi ptr [ %39, %._crit_edge2758 ], [ %12, %._crit_edge ]
  %110 = phi ptr [ %38, %._crit_edge2758 ], [ %11, %._crit_edge ]
  %111 = phi ptr [ %37, %._crit_edge2758 ], [ %10, %._crit_edge ]
  %112 = phi ptr [ %36, %._crit_edge2758 ], [ %8, %._crit_edge ]
  %113 = phi ptr [ %35, %._crit_edge2758 ], [ %9, %._crit_edge ]
  %114 = phi i32 [ %.pre, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %115 = phi i32 [ %.pre2711, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %116 = phi i32 [ %.pre2713, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %117 = phi i32 [ %.pre2715, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %118 = phi i32 [ %.pre2717, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %119 = phi i32 [ %.pre2719, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %120 = phi i32 [ %.pre2721, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %121 = phi i32 [ %.pre2723, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %122 = phi i32 [ %.pre2725, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %123 = phi i32 [ %.pre2727, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %124 = phi i32 [ %.pre2729, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %125 = phi i32 [ %.pre2731, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %126 = phi i32 [ %.pre2733, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %127 = phi i32 [ %.pre2735, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %128 = phi i32 [ %.pre2737, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %129 = phi i32 [ %.pre2739, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %130 = phi i32 [ %.pre2741, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %131 = phi i32 [ %.pre2743, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %132 = phi i32 [ %.pre2745, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %133 = phi i32 [ %.pre2747, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %134 = phi i32 [ %.pre2749, %._crit_edge2758 ], [ 0, %._crit_edge ]
  %135 = phi ptr [ %.pre2751, %._crit_edge2758 ], [ null, %._crit_edge ]
  %136 = phi ptr [ %.pre2753, %._crit_edge2758 ], [ null, %._crit_edge ]
  %137 = phi ptr [ %.pre2755, %._crit_edge2758 ], [ null, %._crit_edge ]
  %.promoted2128 = phi i32 [ %.promoted2128.pre, %._crit_edge2758 ], [ %64, %._crit_edge ]
  store i32 11, ptr %4, align 8, !tbaa !11
  %138 = getelementptr inbounds i8, ptr %0, i64 36
  %139 = icmp sgt i32 %.promoted2128, 7
  br i1 %139, label %.._crit_edge2131_crit_edge, label %.lr.ph2130

.._crit_edge2131_crit_edge:                       ; preds = %89
  %.phi.trans.insert2761 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2762 = load i32, ptr %.phi.trans.insert2761, align 8, !tbaa !37
  br label %._crit_edge2131

.lr.ph2130:                                       ; preds = %89
  %140 = getelementptr inbounds i8, ptr %3, i64 8
  %141 = getelementptr inbounds i8, ptr %0, i64 32
  %142 = getelementptr inbounds i8, ptr %3, i64 12
  %143 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2134 = load i32, ptr %140, align 8, !tbaa !38
  br label %148

._crit_edge2131:                                  ; preds = %168, %.._crit_edge2131_crit_edge
  %144 = phi i32 [ %.pre2762, %.._crit_edge2131_crit_edge ], [ %158, %168 ]
  %.lcssa2118 = phi i32 [ %.promoted2128, %.._crit_edge2131_crit_edge ], [ %159, %168 ]
  %145 = add nsw i32 %.lcssa2118, -8
  %146 = lshr i32 %144, %145
  store i32 %145, ptr %138, align 4, !tbaa !12
  %147 = and i32 %146, 255
  %.not1833 = icmp eq i32 %147, 90
  br i1 %.not1833, label %170, label %.loopexit

148:                                              ; preds = %.lr.ph2130, %168
  %149 = phi i32 [ %.promoted2134, %.lr.ph2130 ], [ %161, %168 ]
  %150 = phi i32 [ %.promoted2128, %.lr.ph2130 ], [ %159, %168 ]
  %151 = icmp eq i32 %149, 0
  br i1 %151, label %.loopexit, label %152

152:                                              ; preds = %148
  %153 = load i32, ptr %141, align 8, !tbaa !37
  %154 = shl i32 %153, 8
  %155 = load ptr, ptr %3, align 8, !tbaa !40
  %156 = load i8, ptr %155, align 1, !tbaa !41
  %157 = zext i8 %156 to i32
  %158 = or disjoint i32 %154, %157
  store i32 %158, ptr %141, align 8, !tbaa !37
  %159 = add nsw i32 %150, 8
  store i32 %159, ptr %138, align 4, !tbaa !12
  %160 = getelementptr inbounds i8, ptr %155, i64 1
  store ptr %160, ptr %3, align 8, !tbaa !40
  %161 = add i32 %149, -1
  store i32 %161, ptr %140, align 8, !tbaa !38
  %162 = load i32, ptr %142, align 4, !tbaa !42
  %163 = add i32 %162, 1
  store i32 %163, ptr %142, align 4, !tbaa !42
  %164 = icmp eq i32 %163, 0
  br i1 %164, label %165, label %168

165:                                              ; preds = %152
  %166 = load i32, ptr %143, align 8, !tbaa !43
  %167 = add i32 %166, 1
  store i32 %167, ptr %143, align 8, !tbaa !43
  br label %168

168:                                              ; preds = %165, %152
  %169 = icmp sgt i32 %150, -1
  br i1 %169, label %._crit_edge2131, label %148

170:                                              ; preds = %._crit_edge2763, %._crit_edge2131
  %171 = phi ptr [ %58, %._crit_edge2763 ], [ %90, %._crit_edge2131 ]
  %172 = phi ptr [ %57, %._crit_edge2763 ], [ %91, %._crit_edge2131 ]
  %173 = phi ptr [ %56, %._crit_edge2763 ], [ %92, %._crit_edge2131 ]
  %174 = phi ptr [ %55, %._crit_edge2763 ], [ %93, %._crit_edge2131 ]
  %175 = phi ptr [ %54, %._crit_edge2763 ], [ %94, %._crit_edge2131 ]
  %176 = phi ptr [ %53, %._crit_edge2763 ], [ %95, %._crit_edge2131 ]
  %177 = phi ptr [ %52, %._crit_edge2763 ], [ %96, %._crit_edge2131 ]
  %178 = phi ptr [ %51, %._crit_edge2763 ], [ %97, %._crit_edge2131 ]
  %179 = phi ptr [ %50, %._crit_edge2763 ], [ %98, %._crit_edge2131 ]
  %180 = phi ptr [ %49, %._crit_edge2763 ], [ %99, %._crit_edge2131 ]
  %181 = phi ptr [ %48, %._crit_edge2763 ], [ %100, %._crit_edge2131 ]
  %182 = phi ptr [ %47, %._crit_edge2763 ], [ %101, %._crit_edge2131 ]
  %183 = phi ptr [ %46, %._crit_edge2763 ], [ %102, %._crit_edge2131 ]
  %184 = phi ptr [ %45, %._crit_edge2763 ], [ %103, %._crit_edge2131 ]
  %185 = phi ptr [ %44, %._crit_edge2763 ], [ %104, %._crit_edge2131 ]
  %186 = phi ptr [ %43, %._crit_edge2763 ], [ %105, %._crit_edge2131 ]
  %187 = phi ptr [ %42, %._crit_edge2763 ], [ %106, %._crit_edge2131 ]
  %188 = phi ptr [ %41, %._crit_edge2763 ], [ %107, %._crit_edge2131 ]
  %189 = phi ptr [ %40, %._crit_edge2763 ], [ %108, %._crit_edge2131 ]
  %190 = phi ptr [ %39, %._crit_edge2763 ], [ %109, %._crit_edge2131 ]
  %191 = phi ptr [ %38, %._crit_edge2763 ], [ %110, %._crit_edge2131 ]
  %192 = phi ptr [ %37, %._crit_edge2763 ], [ %111, %._crit_edge2131 ]
  %193 = phi ptr [ %36, %._crit_edge2763 ], [ %112, %._crit_edge2131 ]
  %194 = phi ptr [ %35, %._crit_edge2763 ], [ %113, %._crit_edge2131 ]
  %195 = phi i32 [ %.pre, %._crit_edge2763 ], [ %114, %._crit_edge2131 ]
  %196 = phi i32 [ %.pre2711, %._crit_edge2763 ], [ %115, %._crit_edge2131 ]
  %197 = phi i32 [ %.pre2713, %._crit_edge2763 ], [ %116, %._crit_edge2131 ]
  %198 = phi i32 [ %.pre2715, %._crit_edge2763 ], [ %117, %._crit_edge2131 ]
  %199 = phi i32 [ %.pre2717, %._crit_edge2763 ], [ %118, %._crit_edge2131 ]
  %200 = phi i32 [ %.pre2719, %._crit_edge2763 ], [ %119, %._crit_edge2131 ]
  %201 = phi i32 [ %.pre2721, %._crit_edge2763 ], [ %120, %._crit_edge2131 ]
  %202 = phi i32 [ %.pre2723, %._crit_edge2763 ], [ %121, %._crit_edge2131 ]
  %203 = phi i32 [ %.pre2725, %._crit_edge2763 ], [ %122, %._crit_edge2131 ]
  %204 = phi i32 [ %.pre2727, %._crit_edge2763 ], [ %123, %._crit_edge2131 ]
  %205 = phi i32 [ %.pre2729, %._crit_edge2763 ], [ %124, %._crit_edge2131 ]
  %206 = phi i32 [ %.pre2731, %._crit_edge2763 ], [ %125, %._crit_edge2131 ]
  %207 = phi i32 [ %.pre2733, %._crit_edge2763 ], [ %126, %._crit_edge2131 ]
  %208 = phi i32 [ %.pre2735, %._crit_edge2763 ], [ %127, %._crit_edge2131 ]
  %209 = phi i32 [ %.pre2737, %._crit_edge2763 ], [ %128, %._crit_edge2131 ]
  %210 = phi i32 [ %.pre2739, %._crit_edge2763 ], [ %129, %._crit_edge2131 ]
  %211 = phi i32 [ %.pre2741, %._crit_edge2763 ], [ %130, %._crit_edge2131 ]
  %212 = phi i32 [ %.pre2743, %._crit_edge2763 ], [ %131, %._crit_edge2131 ]
  %213 = phi i32 [ %.pre2745, %._crit_edge2763 ], [ %132, %._crit_edge2131 ]
  %214 = phi i32 [ %.pre2747, %._crit_edge2763 ], [ %133, %._crit_edge2131 ]
  %215 = phi i32 [ %.pre2749, %._crit_edge2763 ], [ %134, %._crit_edge2131 ]
  %216 = phi ptr [ %.pre2751, %._crit_edge2763 ], [ %135, %._crit_edge2131 ]
  %217 = phi ptr [ %.pre2753, %._crit_edge2763 ], [ %136, %._crit_edge2131 ]
  %218 = phi ptr [ %.pre2755, %._crit_edge2763 ], [ %137, %._crit_edge2131 ]
  %.promoted2135 = phi i32 [ %.promoted2135.pre, %._crit_edge2763 ], [ %145, %._crit_edge2131 ]
  store i32 12, ptr %4, align 8, !tbaa !11
  %219 = getelementptr inbounds i8, ptr %0, i64 36
  %220 = icmp sgt i32 %.promoted2135, 7
  br i1 %220, label %.._crit_edge2138_crit_edge, label %.lr.ph2137

.._crit_edge2138_crit_edge:                       ; preds = %170
  %.phi.trans.insert2766 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2767 = load i32, ptr %.phi.trans.insert2766, align 8, !tbaa !37
  br label %._crit_edge2138

.lr.ph2137:                                       ; preds = %170
  %221 = getelementptr inbounds i8, ptr %3, i64 8
  %222 = getelementptr inbounds i8, ptr %0, i64 32
  %223 = getelementptr inbounds i8, ptr %3, i64 12
  %224 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2141 = load i32, ptr %221, align 8, !tbaa !38
  br label %229

._crit_edge2138:                                  ; preds = %249, %.._crit_edge2138_crit_edge
  %225 = phi i32 [ %.pre2767, %.._crit_edge2138_crit_edge ], [ %239, %249 ]
  %.lcssa2114 = phi i32 [ %.promoted2135, %.._crit_edge2138_crit_edge ], [ %240, %249 ]
  %226 = add nsw i32 %.lcssa2114, -8
  %227 = lshr i32 %225, %226
  store i32 %226, ptr %219, align 4, !tbaa !12
  %228 = and i32 %227, 255
  %.not1834 = icmp eq i32 %228, 104
  br i1 %.not1834, label %251, label %.loopexit

229:                                              ; preds = %.lr.ph2137, %249
  %230 = phi i32 [ %.promoted2141, %.lr.ph2137 ], [ %242, %249 ]
  %231 = phi i32 [ %.promoted2135, %.lr.ph2137 ], [ %240, %249 ]
  %232 = icmp eq i32 %230, 0
  br i1 %232, label %.loopexit, label %233

233:                                              ; preds = %229
  %234 = load i32, ptr %222, align 8, !tbaa !37
  %235 = shl i32 %234, 8
  %236 = load ptr, ptr %3, align 8, !tbaa !40
  %237 = load i8, ptr %236, align 1, !tbaa !41
  %238 = zext i8 %237 to i32
  %239 = or disjoint i32 %235, %238
  store i32 %239, ptr %222, align 8, !tbaa !37
  %240 = add nsw i32 %231, 8
  store i32 %240, ptr %219, align 4, !tbaa !12
  %241 = getelementptr inbounds i8, ptr %236, i64 1
  store ptr %241, ptr %3, align 8, !tbaa !40
  %242 = add i32 %230, -1
  store i32 %242, ptr %221, align 8, !tbaa !38
  %243 = load i32, ptr %223, align 4, !tbaa !42
  %244 = add i32 %243, 1
  store i32 %244, ptr %223, align 4, !tbaa !42
  %245 = icmp eq i32 %244, 0
  br i1 %245, label %246, label %249

246:                                              ; preds = %233
  %247 = load i32, ptr %224, align 8, !tbaa !43
  %248 = add i32 %247, 1
  store i32 %248, ptr %224, align 8, !tbaa !43
  br label %249

249:                                              ; preds = %246, %233
  %250 = icmp sgt i32 %231, -1
  br i1 %250, label %._crit_edge2138, label %229

251:                                              ; preds = %._crit_edge2768, %._crit_edge2138
  %252 = phi ptr [ %58, %._crit_edge2768 ], [ %171, %._crit_edge2138 ]
  %253 = phi ptr [ %57, %._crit_edge2768 ], [ %172, %._crit_edge2138 ]
  %254 = phi ptr [ %56, %._crit_edge2768 ], [ %173, %._crit_edge2138 ]
  %255 = phi ptr [ %55, %._crit_edge2768 ], [ %174, %._crit_edge2138 ]
  %256 = phi ptr [ %54, %._crit_edge2768 ], [ %175, %._crit_edge2138 ]
  %257 = phi ptr [ %53, %._crit_edge2768 ], [ %176, %._crit_edge2138 ]
  %258 = phi ptr [ %52, %._crit_edge2768 ], [ %177, %._crit_edge2138 ]
  %259 = phi ptr [ %51, %._crit_edge2768 ], [ %178, %._crit_edge2138 ]
  %260 = phi ptr [ %50, %._crit_edge2768 ], [ %179, %._crit_edge2138 ]
  %261 = phi ptr [ %49, %._crit_edge2768 ], [ %180, %._crit_edge2138 ]
  %262 = phi ptr [ %48, %._crit_edge2768 ], [ %181, %._crit_edge2138 ]
  %263 = phi ptr [ %47, %._crit_edge2768 ], [ %182, %._crit_edge2138 ]
  %264 = phi ptr [ %46, %._crit_edge2768 ], [ %183, %._crit_edge2138 ]
  %265 = phi ptr [ %45, %._crit_edge2768 ], [ %184, %._crit_edge2138 ]
  %266 = phi ptr [ %44, %._crit_edge2768 ], [ %185, %._crit_edge2138 ]
  %267 = phi ptr [ %43, %._crit_edge2768 ], [ %186, %._crit_edge2138 ]
  %268 = phi ptr [ %42, %._crit_edge2768 ], [ %187, %._crit_edge2138 ]
  %269 = phi ptr [ %41, %._crit_edge2768 ], [ %188, %._crit_edge2138 ]
  %270 = phi ptr [ %40, %._crit_edge2768 ], [ %189, %._crit_edge2138 ]
  %271 = phi ptr [ %39, %._crit_edge2768 ], [ %190, %._crit_edge2138 ]
  %272 = phi ptr [ %38, %._crit_edge2768 ], [ %191, %._crit_edge2138 ]
  %273 = phi ptr [ %37, %._crit_edge2768 ], [ %192, %._crit_edge2138 ]
  %274 = phi ptr [ %36, %._crit_edge2768 ], [ %193, %._crit_edge2138 ]
  %275 = phi ptr [ %35, %._crit_edge2768 ], [ %194, %._crit_edge2138 ]
  %276 = phi i32 [ %.pre, %._crit_edge2768 ], [ %195, %._crit_edge2138 ]
  %277 = phi i32 [ %.pre2711, %._crit_edge2768 ], [ %196, %._crit_edge2138 ]
  %278 = phi i32 [ %.pre2713, %._crit_edge2768 ], [ %197, %._crit_edge2138 ]
  %279 = phi i32 [ %.pre2715, %._crit_edge2768 ], [ %198, %._crit_edge2138 ]
  %280 = phi i32 [ %.pre2717, %._crit_edge2768 ], [ %199, %._crit_edge2138 ]
  %281 = phi i32 [ %.pre2719, %._crit_edge2768 ], [ %200, %._crit_edge2138 ]
  %282 = phi i32 [ %.pre2721, %._crit_edge2768 ], [ %201, %._crit_edge2138 ]
  %283 = phi i32 [ %.pre2723, %._crit_edge2768 ], [ %202, %._crit_edge2138 ]
  %284 = phi i32 [ %.pre2725, %._crit_edge2768 ], [ %203, %._crit_edge2138 ]
  %285 = phi i32 [ %.pre2727, %._crit_edge2768 ], [ %204, %._crit_edge2138 ]
  %286 = phi i32 [ %.pre2729, %._crit_edge2768 ], [ %205, %._crit_edge2138 ]
  %287 = phi i32 [ %.pre2731, %._crit_edge2768 ], [ %206, %._crit_edge2138 ]
  %288 = phi i32 [ %.pre2733, %._crit_edge2768 ], [ %207, %._crit_edge2138 ]
  %289 = phi i32 [ %.pre2735, %._crit_edge2768 ], [ %208, %._crit_edge2138 ]
  %290 = phi i32 [ %.pre2737, %._crit_edge2768 ], [ %209, %._crit_edge2138 ]
  %291 = phi i32 [ %.pre2739, %._crit_edge2768 ], [ %210, %._crit_edge2138 ]
  %292 = phi i32 [ %.pre2741, %._crit_edge2768 ], [ %211, %._crit_edge2138 ]
  %293 = phi i32 [ %.pre2743, %._crit_edge2768 ], [ %212, %._crit_edge2138 ]
  %294 = phi i32 [ %.pre2745, %._crit_edge2768 ], [ %213, %._crit_edge2138 ]
  %295 = phi i32 [ %.pre2747, %._crit_edge2768 ], [ %214, %._crit_edge2138 ]
  %296 = phi i32 [ %.pre2749, %._crit_edge2768 ], [ %215, %._crit_edge2138 ]
  %297 = phi ptr [ %.pre2751, %._crit_edge2768 ], [ %216, %._crit_edge2138 ]
  %298 = phi ptr [ %.pre2753, %._crit_edge2768 ], [ %217, %._crit_edge2138 ]
  %299 = phi ptr [ %.pre2755, %._crit_edge2768 ], [ %218, %._crit_edge2138 ]
  %.promoted2142 = phi i32 [ %.promoted2142.pre, %._crit_edge2768 ], [ %226, %._crit_edge2138 ]
  store i32 13, ptr %4, align 8, !tbaa !11
  %300 = getelementptr inbounds i8, ptr %0, i64 36
  %301 = icmp sgt i32 %.promoted2142, 7
  br i1 %301, label %.._crit_edge2145_crit_edge, label %.lr.ph2144

.._crit_edge2145_crit_edge:                       ; preds = %251
  %.phi.trans.insert2771 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2772 = load i32, ptr %.phi.trans.insert2771, align 8, !tbaa !37
  br label %._crit_edge2145

.lr.ph2144:                                       ; preds = %251
  %302 = getelementptr inbounds i8, ptr %3, i64 8
  %303 = getelementptr inbounds i8, ptr %0, i64 32
  %304 = getelementptr inbounds i8, ptr %3, i64 12
  %305 = getelementptr inbounds i8, ptr %3, i64 16
  %.promoted2148 = load i32, ptr %302, align 8, !tbaa !38
  br label %312

._crit_edge2145:                                  ; preds = %332, %.._crit_edge2145_crit_edge
  %306 = phi i32 [ %.pre2772, %.._crit_edge2145_crit_edge ], [ %322, %332 ]
  %.lcssa2110 = phi i32 [ %.promoted2142, %.._crit_edge2145_crit_edge ], [ %323, %332 ]
  %307 = add nsw i32 %.lcssa2110, -8
  %308 = lshr i32 %306, %307
  %309 = and i32 %308, 255
  store i32 %307, ptr %300, align 4, !tbaa !12
  %310 = getelementptr inbounds i8, ptr %0, i64 40
  store i32 %309, ptr %310, align 8, !tbaa !44
  %311 = add nsw i32 %309, -58
  %or.cond1877 = icmp ult i32 %311, -9
  br i1 %or.cond1877, label %.loopexit, label %334

312:                                              ; preds = %.lr.ph2144, %332
  %313 = phi i32 [ %.promoted2148, %.lr.ph2144 ], [ %325, %332 ]
  %314 = phi i32 [ %.promoted2142, %.lr.ph2144 ], [ %323, %332 ]
  %315 = icmp eq i32 %313, 0
  br i1 %315, label %.loopexit, label %316

316:                                              ; preds = %312
  %317 = load i32, ptr %303, align 8, !tbaa !37
  %318 = shl i32 %317, 8
  %319 = load ptr, ptr %3, align 8, !tbaa !40
  %320 = load i8, ptr %319, align 1, !tbaa !41
  %321 = zext i8 %320 to i32
  %322 = or disjoint i32 %318, %321
  store i32 %322, ptr %303, align 8, !tbaa !37
  %323 = add nsw i32 %314, 8
  store i32 %323, ptr %300, align 4, !tbaa !12
  %324 = getelementptr inbounds i8, ptr %319, i64 1
  store ptr %324, ptr %3, align 8, !tbaa !40
  %325 = add i32 %313, -1
  store i32 %325, ptr %302, align 8, !tbaa !38
  %326 = load i32, ptr %304, align 4, !tbaa !42
  %327 = add i32 %326, 1
  store i32 %327, ptr %304, align 4, !tbaa !42
  %328 = icmp eq i32 %327, 0
  br i1 %328, label %329, label %332

329:                                              ; preds = %316
  %330 = load i32, ptr %305, align 8, !tbaa !43
  %331 = add i32 %330, 1
  store i32 %331, ptr %305, align 8, !tbaa !43
  br label %332

332:                                              ; preds = %329, %316
  %333 = icmp sgt i32 %314, -1
  br i1 %333, label %._crit_edge2145, label %312

334:                                              ; preds = %._crit_edge2145
  %335 = add nsw i32 %309, -48
  store i32 %335, ptr %310, align 8, !tbaa !44
  %336 = getelementptr inbounds i8, ptr %0, i64 44
  %337 = load i8, ptr %336, align 4, !tbaa !45
  %.not1835 = icmp eq i8 %337, 0
  %338 = getelementptr inbounds i8, ptr %3, i64 56
  %339 = load ptr, ptr %338, align 8, !tbaa !46
  %340 = getelementptr inbounds i8, ptr %3, i64 72
  %341 = load ptr, ptr %340, align 8, !tbaa !47
  br i1 %.not1835, label %356, label %342

342:                                              ; preds = %334
  %343 = mul nuw nsw i32 %335, 200000
  %344 = tail call ptr %339(ptr noundef %341, i32 noundef %343, i32 noundef 1) #6
  %345 = getelementptr inbounds i8, ptr %0, i64 3160
  store ptr %344, ptr %345, align 8, !tbaa !48
  %346 = load ptr, ptr %338, align 8, !tbaa !46
  %347 = load ptr, ptr %340, align 8, !tbaa !47
  %348 = load i32, ptr %310, align 8, !tbaa !44
  %349 = mul nsw i32 %348, 100000
  %350 = ashr exact i32 %349, 1
  %351 = tail call ptr %346(ptr noundef %347, i32 noundef %350, i32 noundef 1) #6
  %352 = getelementptr inbounds i8, ptr %0, i64 3168
  store ptr %351, ptr %352, align 8, !tbaa !49
  %353 = load ptr, ptr %345, align 8, !tbaa !48
  %354 = icmp eq ptr %353, null
  %355 = icmp eq ptr %351, null
  %or.cond1878 = select i1 %354, i1 true, i1 %355
  br i1 %or.cond1878, label %.loopexit, label %361

356:                                              ; preds = %334
  %357 = mul nuw nsw i32 %335, 400000
  %358 = tail call ptr %339(ptr noundef %341, i32 noundef %357, i32 noundef 1) #6
  %359 = getelementptr inbounds i8, ptr %0, i64 3152
  store ptr %358, ptr %359, align 8, !tbaa !50
  %360 = icmp eq ptr %358, null
  br i1 %360, label %.loopexit, label %361

361:                                              ; preds = %342, %356, %34
  %362 = phi ptr [ %252, %342 ], [ %252, %356 ], [ %58, %34 ]
  %363 = phi ptr [ %253, %342 ], [ %253, %356 ], [ %57, %34 ]
  %364 = phi ptr [ %254, %342 ], [ %254, %356 ], [ %56, %34 ]
  %365 = phi ptr [ %255, %342 ], [ %255, %356 ], [ %55, %34 ]
  %366 = phi ptr [ %256, %342 ], [ %256, %356 ], [ %54, %34 ]
  %367 = phi ptr [ %257, %342 ], [ %257, %356 ], [ %53, %34 ]
  %368 = phi ptr [ %258, %342 ], [ %258, %356 ], [ %52, %34 ]
  %369 = phi ptr [ %259, %342 ], [ %259, %356 ], [ %51, %34 ]
  %370 = phi ptr [ %260, %342 ], [ %260, %356 ], [ %50, %34 ]
  %371 = phi ptr [ %261, %342 ], [ %261, %356 ], [ %49, %34 ]
  %372 = phi ptr [ %262, %342 ], [ %262, %356 ], [ %48, %34 ]
  %373 = phi ptr [ %263, %342 ], [ %263, %356 ], [ %47, %34 ]
  %374 = phi ptr [ %264, %342 ], [ %264, %356 ], [ %46, %34 ]
  %375 = phi ptr [ %265, %342 ], [ %265, %356 ], [ %45, %34 ]
  %376 = phi ptr [ %266, %342 ], [ %266, %356 ], [ %44, %34 ]
  %377 = phi ptr [ %267, %342 ], [ %267, %356 ], [ %43, %34 ]
  %378 = phi ptr [ %268, %342 ], [ %268, %356 ], [ %42, %34 ]
  %379 = phi ptr [ %269, %342 ], [ %269, %356 ], [ %41, %34 ]
  %380 = phi ptr [ %270, %342 ], [ %270, %356 ], [ %40, %34 ]
  %381 = phi ptr [ %271, %342 ], [ %271, %356 ], [ %39, %34 ]
  %382 = phi ptr [ %272, %342 ], [ %272, %356 ], [ %38, %34 ]
  %383 = phi ptr [ %273, %342 ], [ %273, %356 ], [ %37, %34 ]
  %384 = phi ptr [ %274, %342 ], [ %274, %356 ], [ %36, %34 ]
  %385 = phi ptr [ %275, %342 ], [ %275, %356 ], [ %35, %34 ]
  %386 = phi i32 [ %276, %342 ], [ %276, %356 ], [ %.pre, %34 ]
  %387 = phi i32 [ %277, %342 ], [ %277, %356 ], [ %.pre2711, %34 ]
  %388 = phi i32 [ %278, %342 ], [ %278, %356 ], [ %.pre2713, %34 ]
  %389 = phi i32 [ %279, %342 ], [ %279, %356 ], [ %.pre2715, %34 ]
  %390 = phi i32 [ %280, %342 ], [ %280, %356 ], [ %.pre2717, %34 ]
  %391 = phi i32 [ %281, %342 ], [ %281, %356 ], [ %.pre2719, %34 ]
  %392 = phi i32 [ %282, %342 ], [ %282, %356 ], [ %.pre2721, %34 ]
  %393 = phi i32 [ %283, %342 ], [ %283, %356 ], [ %.pre2723, %34 ]
  %394 = phi i32 [ %284, %342 ], [ %284, %356 ], [ %.pre2725, %34 ]
  %395 = phi i32 [ %285, %342 ], [ %285, %356 ], [ %.pre2727, %34 ]
  %396 = phi i32 [ %286, %342 ], [ %286, %356 ], [ %.pre2729, %34 ]
  %397 = phi i32 [ %287, %342 ], [ %287, %356 ], [ %.pre2731, %34 ]
  %398 = phi i32 [ %288, %342 ], [ %288, %356 ], [ %.pre2733, %34 ]
  %399 = phi i32 [ %289, %342 ], [ %289, %356 ], [ %.pre2735, %34 ]
  %400 = phi i32 [ %290, %342 ], [ %290, %356 ], [ %.pre2737, %34 ]
  %401 = phi i32 [ %291, %342 ], [ %291, %356 ], [ %.pre2739, %34 ]
  %402 = phi i32 [ %292, %342 ], [ %292, %356 ], [ %.pre2741, %34 ]
  %403 = phi i32 [ %293, %342 ], [ %293, %356 ], [ %.pre2743, %34 ]
  %404 = phi i32 [ %294, %342 ], [ %294, %356 ], [ %.pre2745, %34 ]
  %405 = phi i32 [ %295, %342 ], [ %295, %356 ], [ %.pre2747, %34 ]
  %406 = phi i32 [ %296, %342 ], [ %296, %356 ], [ %.pre2749, %34 ]
  %407 = phi ptr [ %297, %342 ], [ %297, %356 ], [ %.pre2751, %34 ]
  %408 = phi ptr [ %298, %342 ], [ %298, %356 ], [ %.pre2753, %34 ]
  %409 = phi ptr [ %299, %342 ], [ %299, %356 ], [ %.pre2755, %34 ]
  store i32 14, ptr %4, align 8, !tbaa !11
  %410 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2149 = load i32, ptr %410, align 4, !tbaa !12
  %411 = icmp sgt i32 %.promoted2149, 7
  br i1 %411, label %.._crit_edge2152_crit_edge, label %.lr.ph2151

.._crit_edge2152_crit_edge:                       ; preds = %361
  %.phi.trans.insert2773 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2774 = load i32, ptr %.phi.trans.insert2773, align 8, !tbaa !37
  br label %._crit_edge2152

.lr.ph2151:                                       ; preds = %361
  %412 = load ptr, ptr %0, align 8, !tbaa !5
  %413 = getelementptr inbounds i8, ptr %412, i64 8
  %414 = getelementptr inbounds i8, ptr %0, i64 32
  %415 = getelementptr inbounds i8, ptr %412, i64 12
  %416 = getelementptr inbounds i8, ptr %412, i64 16
  %.promoted2155 = load i32, ptr %413, align 8, !tbaa !38
  br label %420

._crit_edge2152:                                  ; preds = %440, %.._crit_edge2152_crit_edge
  %417 = phi i32 [ %.pre2774, %.._crit_edge2152_crit_edge ], [ %430, %440 ]
  %.lcssa2106 = phi i32 [ %.promoted2149, %.._crit_edge2152_crit_edge ], [ %431, %440 ]
  %418 = add nsw i32 %.lcssa2106, -8
  %419 = lshr i32 %417, %418
  store i32 %418, ptr %410, align 4, !tbaa !12
  %trunc = trunc i32 %419 to i8
  switch i8 %trunc, label %.loopexit [
    i8 23, label %4211
    i8 49, label %442
  ]

420:                                              ; preds = %.lr.ph2151, %440
  %421 = phi i32 [ %.promoted2155, %.lr.ph2151 ], [ %433, %440 ]
  %422 = phi i32 [ %.promoted2149, %.lr.ph2151 ], [ %431, %440 ]
  %423 = icmp eq i32 %421, 0
  br i1 %423, label %.loopexit, label %424

424:                                              ; preds = %420
  %425 = load i32, ptr %414, align 8, !tbaa !37
  %426 = shl i32 %425, 8
  %427 = load ptr, ptr %412, align 8, !tbaa !40
  %428 = load i8, ptr %427, align 1, !tbaa !41
  %429 = zext i8 %428 to i32
  %430 = or disjoint i32 %426, %429
  store i32 %430, ptr %414, align 8, !tbaa !37
  %431 = add nsw i32 %422, 8
  store i32 %431, ptr %410, align 4, !tbaa !12
  %432 = getelementptr inbounds i8, ptr %427, i64 1
  store ptr %432, ptr %412, align 8, !tbaa !40
  %433 = add i32 %421, -1
  store i32 %433, ptr %413, align 8, !tbaa !38
  %434 = load i32, ptr %415, align 4, !tbaa !42
  %435 = add i32 %434, 1
  store i32 %435, ptr %415, align 4, !tbaa !42
  %436 = icmp eq i32 %435, 0
  br i1 %436, label %437, label %440

437:                                              ; preds = %424
  %438 = load i32, ptr %416, align 8, !tbaa !43
  %439 = add i32 %438, 1
  store i32 %439, ptr %416, align 8, !tbaa !43
  br label %440

440:                                              ; preds = %437, %424
  %441 = icmp sgt i32 %422, -1
  br i1 %441, label %._crit_edge2152, label %420

442:                                              ; preds = %._crit_edge2775, %._crit_edge2152
  %443 = phi ptr [ %58, %._crit_edge2775 ], [ %362, %._crit_edge2152 ]
  %444 = phi ptr [ %57, %._crit_edge2775 ], [ %363, %._crit_edge2152 ]
  %445 = phi ptr [ %56, %._crit_edge2775 ], [ %364, %._crit_edge2152 ]
  %446 = phi ptr [ %55, %._crit_edge2775 ], [ %365, %._crit_edge2152 ]
  %447 = phi ptr [ %54, %._crit_edge2775 ], [ %366, %._crit_edge2152 ]
  %448 = phi ptr [ %53, %._crit_edge2775 ], [ %367, %._crit_edge2152 ]
  %449 = phi ptr [ %52, %._crit_edge2775 ], [ %368, %._crit_edge2152 ]
  %450 = phi ptr [ %51, %._crit_edge2775 ], [ %369, %._crit_edge2152 ]
  %451 = phi ptr [ %50, %._crit_edge2775 ], [ %370, %._crit_edge2152 ]
  %452 = phi ptr [ %49, %._crit_edge2775 ], [ %371, %._crit_edge2152 ]
  %453 = phi ptr [ %48, %._crit_edge2775 ], [ %372, %._crit_edge2152 ]
  %454 = phi ptr [ %47, %._crit_edge2775 ], [ %373, %._crit_edge2152 ]
  %455 = phi ptr [ %46, %._crit_edge2775 ], [ %374, %._crit_edge2152 ]
  %456 = phi ptr [ %45, %._crit_edge2775 ], [ %375, %._crit_edge2152 ]
  %457 = phi ptr [ %44, %._crit_edge2775 ], [ %376, %._crit_edge2152 ]
  %458 = phi ptr [ %43, %._crit_edge2775 ], [ %377, %._crit_edge2152 ]
  %459 = phi ptr [ %42, %._crit_edge2775 ], [ %378, %._crit_edge2152 ]
  %460 = phi ptr [ %41, %._crit_edge2775 ], [ %379, %._crit_edge2152 ]
  %461 = phi ptr [ %40, %._crit_edge2775 ], [ %380, %._crit_edge2152 ]
  %462 = phi ptr [ %39, %._crit_edge2775 ], [ %381, %._crit_edge2152 ]
  %463 = phi ptr [ %38, %._crit_edge2775 ], [ %382, %._crit_edge2152 ]
  %464 = phi ptr [ %37, %._crit_edge2775 ], [ %383, %._crit_edge2152 ]
  %465 = phi ptr [ %36, %._crit_edge2775 ], [ %384, %._crit_edge2152 ]
  %466 = phi ptr [ %35, %._crit_edge2775 ], [ %385, %._crit_edge2152 ]
  %467 = phi i32 [ %.pre, %._crit_edge2775 ], [ %386, %._crit_edge2152 ]
  %468 = phi i32 [ %.pre2711, %._crit_edge2775 ], [ %387, %._crit_edge2152 ]
  %469 = phi i32 [ %.pre2713, %._crit_edge2775 ], [ %388, %._crit_edge2152 ]
  %470 = phi i32 [ %.pre2715, %._crit_edge2775 ], [ %389, %._crit_edge2152 ]
  %471 = phi i32 [ %.pre2717, %._crit_edge2775 ], [ %390, %._crit_edge2152 ]
  %472 = phi i32 [ %.pre2719, %._crit_edge2775 ], [ %391, %._crit_edge2152 ]
  %473 = phi i32 [ %.pre2721, %._crit_edge2775 ], [ %392, %._crit_edge2152 ]
  %474 = phi i32 [ %.pre2723, %._crit_edge2775 ], [ %393, %._crit_edge2152 ]
  %475 = phi i32 [ %.pre2725, %._crit_edge2775 ], [ %394, %._crit_edge2152 ]
  %476 = phi i32 [ %.pre2727, %._crit_edge2775 ], [ %395, %._crit_edge2152 ]
  %477 = phi i32 [ %.pre2729, %._crit_edge2775 ], [ %396, %._crit_edge2152 ]
  %478 = phi i32 [ %.pre2731, %._crit_edge2775 ], [ %397, %._crit_edge2152 ]
  %479 = phi i32 [ %.pre2733, %._crit_edge2775 ], [ %398, %._crit_edge2152 ]
  %480 = phi i32 [ %.pre2735, %._crit_edge2775 ], [ %399, %._crit_edge2152 ]
  %481 = phi i32 [ %.pre2737, %._crit_edge2775 ], [ %400, %._crit_edge2152 ]
  %482 = phi i32 [ %.pre2739, %._crit_edge2775 ], [ %401, %._crit_edge2152 ]
  %483 = phi i32 [ %.pre2741, %._crit_edge2775 ], [ %402, %._crit_edge2152 ]
  %484 = phi i32 [ %.pre2743, %._crit_edge2775 ], [ %403, %._crit_edge2152 ]
  %485 = phi i32 [ %.pre2745, %._crit_edge2775 ], [ %404, %._crit_edge2152 ]
  %486 = phi i32 [ %.pre2747, %._crit_edge2775 ], [ %405, %._crit_edge2152 ]
  %487 = phi i32 [ %.pre2749, %._crit_edge2775 ], [ %406, %._crit_edge2152 ]
  %488 = phi ptr [ %.pre2751, %._crit_edge2775 ], [ %407, %._crit_edge2152 ]
  %489 = phi ptr [ %.pre2753, %._crit_edge2775 ], [ %408, %._crit_edge2152 ]
  %490 = phi ptr [ %.pre2755, %._crit_edge2775 ], [ %409, %._crit_edge2152 ]
  %.promoted2156 = phi i32 [ %.promoted2156.pre, %._crit_edge2775 ], [ %418, %._crit_edge2152 ]
  store i32 15, ptr %4, align 8, !tbaa !11
  %491 = getelementptr inbounds i8, ptr %0, i64 36
  %492 = icmp sgt i32 %.promoted2156, 7
  br i1 %492, label %.._crit_edge2159_crit_edge, label %.lr.ph2158

.._crit_edge2159_crit_edge:                       ; preds = %442
  %.phi.trans.insert2778 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2779 = load i32, ptr %.phi.trans.insert2778, align 8, !tbaa !37
  br label %._crit_edge2159

.lr.ph2158:                                       ; preds = %442
  %493 = load ptr, ptr %0, align 8, !tbaa !5
  %494 = getelementptr inbounds i8, ptr %493, i64 8
  %495 = getelementptr inbounds i8, ptr %0, i64 32
  %496 = getelementptr inbounds i8, ptr %493, i64 12
  %497 = getelementptr inbounds i8, ptr %493, i64 16
  %.promoted2162 = load i32, ptr %494, align 8, !tbaa !38
  br label %502

._crit_edge2159:                                  ; preds = %522, %.._crit_edge2159_crit_edge
  %498 = phi i32 [ %.pre2779, %.._crit_edge2159_crit_edge ], [ %512, %522 ]
  %.lcssa2102 = phi i32 [ %.promoted2156, %.._crit_edge2159_crit_edge ], [ %513, %522 ]
  %499 = add nsw i32 %.lcssa2102, -8
  %500 = lshr i32 %498, %499
  store i32 %499, ptr %491, align 4, !tbaa !12
  %501 = and i32 %500, 255
  %.not1837 = icmp eq i32 %501, 65
  br i1 %.not1837, label %524, label %.loopexit

502:                                              ; preds = %.lr.ph2158, %522
  %503 = phi i32 [ %.promoted2162, %.lr.ph2158 ], [ %515, %522 ]
  %504 = phi i32 [ %.promoted2156, %.lr.ph2158 ], [ %513, %522 ]
  %505 = icmp eq i32 %503, 0
  br i1 %505, label %.loopexit, label %506

506:                                              ; preds = %502
  %507 = load i32, ptr %495, align 8, !tbaa !37
  %508 = shl i32 %507, 8
  %509 = load ptr, ptr %493, align 8, !tbaa !40
  %510 = load i8, ptr %509, align 1, !tbaa !41
  %511 = zext i8 %510 to i32
  %512 = or disjoint i32 %508, %511
  store i32 %512, ptr %495, align 8, !tbaa !37
  %513 = add nsw i32 %504, 8
  store i32 %513, ptr %491, align 4, !tbaa !12
  %514 = getelementptr inbounds i8, ptr %509, i64 1
  store ptr %514, ptr %493, align 8, !tbaa !40
  %515 = add i32 %503, -1
  store i32 %515, ptr %494, align 8, !tbaa !38
  %516 = load i32, ptr %496, align 4, !tbaa !42
  %517 = add i32 %516, 1
  store i32 %517, ptr %496, align 4, !tbaa !42
  %518 = icmp eq i32 %517, 0
  br i1 %518, label %519, label %522

519:                                              ; preds = %506
  %520 = load i32, ptr %497, align 8, !tbaa !43
  %521 = add i32 %520, 1
  store i32 %521, ptr %497, align 8, !tbaa !43
  br label %522

522:                                              ; preds = %519, %506
  %523 = icmp sgt i32 %504, -1
  br i1 %523, label %._crit_edge2159, label %502

524:                                              ; preds = %._crit_edge2780, %._crit_edge2159
  %525 = phi ptr [ %58, %._crit_edge2780 ], [ %443, %._crit_edge2159 ]
  %526 = phi ptr [ %57, %._crit_edge2780 ], [ %444, %._crit_edge2159 ]
  %527 = phi ptr [ %56, %._crit_edge2780 ], [ %445, %._crit_edge2159 ]
  %528 = phi ptr [ %55, %._crit_edge2780 ], [ %446, %._crit_edge2159 ]
  %529 = phi ptr [ %54, %._crit_edge2780 ], [ %447, %._crit_edge2159 ]
  %530 = phi ptr [ %53, %._crit_edge2780 ], [ %448, %._crit_edge2159 ]
  %531 = phi ptr [ %52, %._crit_edge2780 ], [ %449, %._crit_edge2159 ]
  %532 = phi ptr [ %51, %._crit_edge2780 ], [ %450, %._crit_edge2159 ]
  %533 = phi ptr [ %50, %._crit_edge2780 ], [ %451, %._crit_edge2159 ]
  %534 = phi ptr [ %49, %._crit_edge2780 ], [ %452, %._crit_edge2159 ]
  %535 = phi ptr [ %48, %._crit_edge2780 ], [ %453, %._crit_edge2159 ]
  %536 = phi ptr [ %47, %._crit_edge2780 ], [ %454, %._crit_edge2159 ]
  %537 = phi ptr [ %46, %._crit_edge2780 ], [ %455, %._crit_edge2159 ]
  %538 = phi ptr [ %45, %._crit_edge2780 ], [ %456, %._crit_edge2159 ]
  %539 = phi ptr [ %44, %._crit_edge2780 ], [ %457, %._crit_edge2159 ]
  %540 = phi ptr [ %43, %._crit_edge2780 ], [ %458, %._crit_edge2159 ]
  %541 = phi ptr [ %42, %._crit_edge2780 ], [ %459, %._crit_edge2159 ]
  %542 = phi ptr [ %41, %._crit_edge2780 ], [ %460, %._crit_edge2159 ]
  %543 = phi ptr [ %40, %._crit_edge2780 ], [ %461, %._crit_edge2159 ]
  %544 = phi ptr [ %39, %._crit_edge2780 ], [ %462, %._crit_edge2159 ]
  %545 = phi ptr [ %38, %._crit_edge2780 ], [ %463, %._crit_edge2159 ]
  %546 = phi ptr [ %37, %._crit_edge2780 ], [ %464, %._crit_edge2159 ]
  %547 = phi ptr [ %36, %._crit_edge2780 ], [ %465, %._crit_edge2159 ]
  %548 = phi ptr [ %35, %._crit_edge2780 ], [ %466, %._crit_edge2159 ]
  %549 = phi i32 [ %.pre, %._crit_edge2780 ], [ %467, %._crit_edge2159 ]
  %550 = phi i32 [ %.pre2711, %._crit_edge2780 ], [ %468, %._crit_edge2159 ]
  %551 = phi i32 [ %.pre2713, %._crit_edge2780 ], [ %469, %._crit_edge2159 ]
  %552 = phi i32 [ %.pre2715, %._crit_edge2780 ], [ %470, %._crit_edge2159 ]
  %553 = phi i32 [ %.pre2717, %._crit_edge2780 ], [ %471, %._crit_edge2159 ]
  %554 = phi i32 [ %.pre2719, %._crit_edge2780 ], [ %472, %._crit_edge2159 ]
  %555 = phi i32 [ %.pre2721, %._crit_edge2780 ], [ %473, %._crit_edge2159 ]
  %556 = phi i32 [ %.pre2723, %._crit_edge2780 ], [ %474, %._crit_edge2159 ]
  %557 = phi i32 [ %.pre2725, %._crit_edge2780 ], [ %475, %._crit_edge2159 ]
  %558 = phi i32 [ %.pre2727, %._crit_edge2780 ], [ %476, %._crit_edge2159 ]
  %559 = phi i32 [ %.pre2729, %._crit_edge2780 ], [ %477, %._crit_edge2159 ]
  %560 = phi i32 [ %.pre2731, %._crit_edge2780 ], [ %478, %._crit_edge2159 ]
  %561 = phi i32 [ %.pre2733, %._crit_edge2780 ], [ %479, %._crit_edge2159 ]
  %562 = phi i32 [ %.pre2735, %._crit_edge2780 ], [ %480, %._crit_edge2159 ]
  %563 = phi i32 [ %.pre2737, %._crit_edge2780 ], [ %481, %._crit_edge2159 ]
  %564 = phi i32 [ %.pre2739, %._crit_edge2780 ], [ %482, %._crit_edge2159 ]
  %565 = phi i32 [ %.pre2741, %._crit_edge2780 ], [ %483, %._crit_edge2159 ]
  %566 = phi i32 [ %.pre2743, %._crit_edge2780 ], [ %484, %._crit_edge2159 ]
  %567 = phi i32 [ %.pre2745, %._crit_edge2780 ], [ %485, %._crit_edge2159 ]
  %568 = phi i32 [ %.pre2747, %._crit_edge2780 ], [ %486, %._crit_edge2159 ]
  %569 = phi i32 [ %.pre2749, %._crit_edge2780 ], [ %487, %._crit_edge2159 ]
  %570 = phi ptr [ %.pre2751, %._crit_edge2780 ], [ %488, %._crit_edge2159 ]
  %571 = phi ptr [ %.pre2753, %._crit_edge2780 ], [ %489, %._crit_edge2159 ]
  %572 = phi ptr [ %.pre2755, %._crit_edge2780 ], [ %490, %._crit_edge2159 ]
  %.promoted2163 = phi i32 [ %.promoted2163.pre, %._crit_edge2780 ], [ %499, %._crit_edge2159 ]
  store i32 16, ptr %4, align 8, !tbaa !11
  %573 = getelementptr inbounds i8, ptr %0, i64 36
  %574 = icmp sgt i32 %.promoted2163, 7
  br i1 %574, label %.._crit_edge2166_crit_edge, label %.lr.ph2165

.._crit_edge2166_crit_edge:                       ; preds = %524
  %.phi.trans.insert2783 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2784 = load i32, ptr %.phi.trans.insert2783, align 8, !tbaa !37
  br label %._crit_edge2166

.lr.ph2165:                                       ; preds = %524
  %575 = load ptr, ptr %0, align 8, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %575, i64 8
  %577 = getelementptr inbounds i8, ptr %0, i64 32
  %578 = getelementptr inbounds i8, ptr %575, i64 12
  %579 = getelementptr inbounds i8, ptr %575, i64 16
  %.promoted2169 = load i32, ptr %576, align 8, !tbaa !38
  br label %584

._crit_edge2166:                                  ; preds = %604, %.._crit_edge2166_crit_edge
  %580 = phi i32 [ %.pre2784, %.._crit_edge2166_crit_edge ], [ %594, %604 ]
  %.lcssa2098 = phi i32 [ %.promoted2163, %.._crit_edge2166_crit_edge ], [ %595, %604 ]
  %581 = add nsw i32 %.lcssa2098, -8
  %582 = lshr i32 %580, %581
  store i32 %581, ptr %573, align 4, !tbaa !12
  %583 = and i32 %582, 255
  %.not1838 = icmp eq i32 %583, 89
  br i1 %.not1838, label %606, label %.loopexit

584:                                              ; preds = %.lr.ph2165, %604
  %585 = phi i32 [ %.promoted2169, %.lr.ph2165 ], [ %597, %604 ]
  %586 = phi i32 [ %.promoted2163, %.lr.ph2165 ], [ %595, %604 ]
  %587 = icmp eq i32 %585, 0
  br i1 %587, label %.loopexit, label %588

588:                                              ; preds = %584
  %589 = load i32, ptr %577, align 8, !tbaa !37
  %590 = shl i32 %589, 8
  %591 = load ptr, ptr %575, align 8, !tbaa !40
  %592 = load i8, ptr %591, align 1, !tbaa !41
  %593 = zext i8 %592 to i32
  %594 = or disjoint i32 %590, %593
  store i32 %594, ptr %577, align 8, !tbaa !37
  %595 = add nsw i32 %586, 8
  store i32 %595, ptr %573, align 4, !tbaa !12
  %596 = getelementptr inbounds i8, ptr %591, i64 1
  store ptr %596, ptr %575, align 8, !tbaa !40
  %597 = add i32 %585, -1
  store i32 %597, ptr %576, align 8, !tbaa !38
  %598 = load i32, ptr %578, align 4, !tbaa !42
  %599 = add i32 %598, 1
  store i32 %599, ptr %578, align 4, !tbaa !42
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %601, label %604

601:                                              ; preds = %588
  %602 = load i32, ptr %579, align 8, !tbaa !43
  %603 = add i32 %602, 1
  store i32 %603, ptr %579, align 8, !tbaa !43
  br label %604

604:                                              ; preds = %601, %588
  %605 = icmp sgt i32 %586, -1
  br i1 %605, label %._crit_edge2166, label %584

606:                                              ; preds = %._crit_edge2785, %._crit_edge2166
  %607 = phi ptr [ %58, %._crit_edge2785 ], [ %525, %._crit_edge2166 ]
  %608 = phi ptr [ %57, %._crit_edge2785 ], [ %526, %._crit_edge2166 ]
  %609 = phi ptr [ %56, %._crit_edge2785 ], [ %527, %._crit_edge2166 ]
  %610 = phi ptr [ %55, %._crit_edge2785 ], [ %528, %._crit_edge2166 ]
  %611 = phi ptr [ %54, %._crit_edge2785 ], [ %529, %._crit_edge2166 ]
  %612 = phi ptr [ %53, %._crit_edge2785 ], [ %530, %._crit_edge2166 ]
  %613 = phi ptr [ %52, %._crit_edge2785 ], [ %531, %._crit_edge2166 ]
  %614 = phi ptr [ %51, %._crit_edge2785 ], [ %532, %._crit_edge2166 ]
  %615 = phi ptr [ %50, %._crit_edge2785 ], [ %533, %._crit_edge2166 ]
  %616 = phi ptr [ %49, %._crit_edge2785 ], [ %534, %._crit_edge2166 ]
  %617 = phi ptr [ %48, %._crit_edge2785 ], [ %535, %._crit_edge2166 ]
  %618 = phi ptr [ %47, %._crit_edge2785 ], [ %536, %._crit_edge2166 ]
  %619 = phi ptr [ %46, %._crit_edge2785 ], [ %537, %._crit_edge2166 ]
  %620 = phi ptr [ %45, %._crit_edge2785 ], [ %538, %._crit_edge2166 ]
  %621 = phi ptr [ %44, %._crit_edge2785 ], [ %539, %._crit_edge2166 ]
  %622 = phi ptr [ %43, %._crit_edge2785 ], [ %540, %._crit_edge2166 ]
  %623 = phi ptr [ %42, %._crit_edge2785 ], [ %541, %._crit_edge2166 ]
  %624 = phi ptr [ %41, %._crit_edge2785 ], [ %542, %._crit_edge2166 ]
  %625 = phi ptr [ %40, %._crit_edge2785 ], [ %543, %._crit_edge2166 ]
  %626 = phi ptr [ %39, %._crit_edge2785 ], [ %544, %._crit_edge2166 ]
  %627 = phi ptr [ %38, %._crit_edge2785 ], [ %545, %._crit_edge2166 ]
  %628 = phi ptr [ %37, %._crit_edge2785 ], [ %546, %._crit_edge2166 ]
  %629 = phi ptr [ %36, %._crit_edge2785 ], [ %547, %._crit_edge2166 ]
  %630 = phi ptr [ %35, %._crit_edge2785 ], [ %548, %._crit_edge2166 ]
  %631 = phi i32 [ %.pre, %._crit_edge2785 ], [ %549, %._crit_edge2166 ]
  %632 = phi i32 [ %.pre2711, %._crit_edge2785 ], [ %550, %._crit_edge2166 ]
  %633 = phi i32 [ %.pre2713, %._crit_edge2785 ], [ %551, %._crit_edge2166 ]
  %634 = phi i32 [ %.pre2715, %._crit_edge2785 ], [ %552, %._crit_edge2166 ]
  %635 = phi i32 [ %.pre2717, %._crit_edge2785 ], [ %553, %._crit_edge2166 ]
  %636 = phi i32 [ %.pre2719, %._crit_edge2785 ], [ %554, %._crit_edge2166 ]
  %637 = phi i32 [ %.pre2721, %._crit_edge2785 ], [ %555, %._crit_edge2166 ]
  %638 = phi i32 [ %.pre2723, %._crit_edge2785 ], [ %556, %._crit_edge2166 ]
  %639 = phi i32 [ %.pre2725, %._crit_edge2785 ], [ %557, %._crit_edge2166 ]
  %640 = phi i32 [ %.pre2727, %._crit_edge2785 ], [ %558, %._crit_edge2166 ]
  %641 = phi i32 [ %.pre2729, %._crit_edge2785 ], [ %559, %._crit_edge2166 ]
  %642 = phi i32 [ %.pre2731, %._crit_edge2785 ], [ %560, %._crit_edge2166 ]
  %643 = phi i32 [ %.pre2733, %._crit_edge2785 ], [ %561, %._crit_edge2166 ]
  %644 = phi i32 [ %.pre2735, %._crit_edge2785 ], [ %562, %._crit_edge2166 ]
  %645 = phi i32 [ %.pre2737, %._crit_edge2785 ], [ %563, %._crit_edge2166 ]
  %646 = phi i32 [ %.pre2739, %._crit_edge2785 ], [ %564, %._crit_edge2166 ]
  %647 = phi i32 [ %.pre2741, %._crit_edge2785 ], [ %565, %._crit_edge2166 ]
  %648 = phi i32 [ %.pre2743, %._crit_edge2785 ], [ %566, %._crit_edge2166 ]
  %649 = phi i32 [ %.pre2745, %._crit_edge2785 ], [ %567, %._crit_edge2166 ]
  %650 = phi i32 [ %.pre2747, %._crit_edge2785 ], [ %568, %._crit_edge2166 ]
  %651 = phi i32 [ %.pre2749, %._crit_edge2785 ], [ %569, %._crit_edge2166 ]
  %652 = phi ptr [ %.pre2751, %._crit_edge2785 ], [ %570, %._crit_edge2166 ]
  %653 = phi ptr [ %.pre2753, %._crit_edge2785 ], [ %571, %._crit_edge2166 ]
  %654 = phi ptr [ %.pre2755, %._crit_edge2785 ], [ %572, %._crit_edge2166 ]
  %.promoted2170 = phi i32 [ %.promoted2170.pre, %._crit_edge2785 ], [ %581, %._crit_edge2166 ]
  store i32 17, ptr %4, align 8, !tbaa !11
  %655 = getelementptr inbounds i8, ptr %0, i64 36
  %656 = icmp sgt i32 %.promoted2170, 7
  br i1 %656, label %.._crit_edge2173_crit_edge, label %.lr.ph2172

.._crit_edge2173_crit_edge:                       ; preds = %606
  %.phi.trans.insert2788 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2789 = load i32, ptr %.phi.trans.insert2788, align 8, !tbaa !37
  br label %._crit_edge2173

.lr.ph2172:                                       ; preds = %606
  %657 = load ptr, ptr %0, align 8, !tbaa !5
  %658 = getelementptr inbounds i8, ptr %657, i64 8
  %659 = getelementptr inbounds i8, ptr %0, i64 32
  %660 = getelementptr inbounds i8, ptr %657, i64 12
  %661 = getelementptr inbounds i8, ptr %657, i64 16
  %.promoted2176 = load i32, ptr %658, align 8, !tbaa !38
  br label %666

._crit_edge2173:                                  ; preds = %686, %.._crit_edge2173_crit_edge
  %662 = phi i32 [ %.pre2789, %.._crit_edge2173_crit_edge ], [ %676, %686 ]
  %.lcssa2094 = phi i32 [ %.promoted2170, %.._crit_edge2173_crit_edge ], [ %677, %686 ]
  %663 = add nsw i32 %.lcssa2094, -8
  %664 = lshr i32 %662, %663
  store i32 %663, ptr %655, align 4, !tbaa !12
  %665 = and i32 %664, 255
  %.not1839 = icmp eq i32 %665, 38
  br i1 %.not1839, label %688, label %.loopexit

666:                                              ; preds = %.lr.ph2172, %686
  %667 = phi i32 [ %.promoted2176, %.lr.ph2172 ], [ %679, %686 ]
  %668 = phi i32 [ %.promoted2170, %.lr.ph2172 ], [ %677, %686 ]
  %669 = icmp eq i32 %667, 0
  br i1 %669, label %.loopexit, label %670

670:                                              ; preds = %666
  %671 = load i32, ptr %659, align 8, !tbaa !37
  %672 = shl i32 %671, 8
  %673 = load ptr, ptr %657, align 8, !tbaa !40
  %674 = load i8, ptr %673, align 1, !tbaa !41
  %675 = zext i8 %674 to i32
  %676 = or disjoint i32 %672, %675
  store i32 %676, ptr %659, align 8, !tbaa !37
  %677 = add nsw i32 %668, 8
  store i32 %677, ptr %655, align 4, !tbaa !12
  %678 = getelementptr inbounds i8, ptr %673, i64 1
  store ptr %678, ptr %657, align 8, !tbaa !40
  %679 = add i32 %667, -1
  store i32 %679, ptr %658, align 8, !tbaa !38
  %680 = load i32, ptr %660, align 4, !tbaa !42
  %681 = add i32 %680, 1
  store i32 %681, ptr %660, align 4, !tbaa !42
  %682 = icmp eq i32 %681, 0
  br i1 %682, label %683, label %686

683:                                              ; preds = %670
  %684 = load i32, ptr %661, align 8, !tbaa !43
  %685 = add i32 %684, 1
  store i32 %685, ptr %661, align 8, !tbaa !43
  br label %686

686:                                              ; preds = %683, %670
  %687 = icmp sgt i32 %668, -1
  br i1 %687, label %._crit_edge2173, label %666

688:                                              ; preds = %._crit_edge2790, %._crit_edge2173
  %689 = phi ptr [ %58, %._crit_edge2790 ], [ %607, %._crit_edge2173 ]
  %690 = phi ptr [ %57, %._crit_edge2790 ], [ %608, %._crit_edge2173 ]
  %691 = phi ptr [ %56, %._crit_edge2790 ], [ %609, %._crit_edge2173 ]
  %692 = phi ptr [ %55, %._crit_edge2790 ], [ %610, %._crit_edge2173 ]
  %693 = phi ptr [ %54, %._crit_edge2790 ], [ %611, %._crit_edge2173 ]
  %694 = phi ptr [ %53, %._crit_edge2790 ], [ %612, %._crit_edge2173 ]
  %695 = phi ptr [ %52, %._crit_edge2790 ], [ %613, %._crit_edge2173 ]
  %696 = phi ptr [ %51, %._crit_edge2790 ], [ %614, %._crit_edge2173 ]
  %697 = phi ptr [ %50, %._crit_edge2790 ], [ %615, %._crit_edge2173 ]
  %698 = phi ptr [ %49, %._crit_edge2790 ], [ %616, %._crit_edge2173 ]
  %699 = phi ptr [ %48, %._crit_edge2790 ], [ %617, %._crit_edge2173 ]
  %700 = phi ptr [ %47, %._crit_edge2790 ], [ %618, %._crit_edge2173 ]
  %701 = phi ptr [ %46, %._crit_edge2790 ], [ %619, %._crit_edge2173 ]
  %702 = phi ptr [ %45, %._crit_edge2790 ], [ %620, %._crit_edge2173 ]
  %703 = phi ptr [ %44, %._crit_edge2790 ], [ %621, %._crit_edge2173 ]
  %704 = phi ptr [ %43, %._crit_edge2790 ], [ %622, %._crit_edge2173 ]
  %705 = phi ptr [ %42, %._crit_edge2790 ], [ %623, %._crit_edge2173 ]
  %706 = phi ptr [ %41, %._crit_edge2790 ], [ %624, %._crit_edge2173 ]
  %707 = phi ptr [ %40, %._crit_edge2790 ], [ %625, %._crit_edge2173 ]
  %708 = phi ptr [ %39, %._crit_edge2790 ], [ %626, %._crit_edge2173 ]
  %709 = phi ptr [ %38, %._crit_edge2790 ], [ %627, %._crit_edge2173 ]
  %710 = phi ptr [ %37, %._crit_edge2790 ], [ %628, %._crit_edge2173 ]
  %711 = phi ptr [ %36, %._crit_edge2790 ], [ %629, %._crit_edge2173 ]
  %712 = phi ptr [ %35, %._crit_edge2790 ], [ %630, %._crit_edge2173 ]
  %713 = phi i32 [ %.pre, %._crit_edge2790 ], [ %631, %._crit_edge2173 ]
  %714 = phi i32 [ %.pre2711, %._crit_edge2790 ], [ %632, %._crit_edge2173 ]
  %715 = phi i32 [ %.pre2713, %._crit_edge2790 ], [ %633, %._crit_edge2173 ]
  %716 = phi i32 [ %.pre2715, %._crit_edge2790 ], [ %634, %._crit_edge2173 ]
  %717 = phi i32 [ %.pre2717, %._crit_edge2790 ], [ %635, %._crit_edge2173 ]
  %718 = phi i32 [ %.pre2719, %._crit_edge2790 ], [ %636, %._crit_edge2173 ]
  %719 = phi i32 [ %.pre2721, %._crit_edge2790 ], [ %637, %._crit_edge2173 ]
  %720 = phi i32 [ %.pre2723, %._crit_edge2790 ], [ %638, %._crit_edge2173 ]
  %721 = phi i32 [ %.pre2725, %._crit_edge2790 ], [ %639, %._crit_edge2173 ]
  %722 = phi i32 [ %.pre2727, %._crit_edge2790 ], [ %640, %._crit_edge2173 ]
  %723 = phi i32 [ %.pre2729, %._crit_edge2790 ], [ %641, %._crit_edge2173 ]
  %724 = phi i32 [ %.pre2731, %._crit_edge2790 ], [ %642, %._crit_edge2173 ]
  %725 = phi i32 [ %.pre2733, %._crit_edge2790 ], [ %643, %._crit_edge2173 ]
  %726 = phi i32 [ %.pre2735, %._crit_edge2790 ], [ %644, %._crit_edge2173 ]
  %727 = phi i32 [ %.pre2737, %._crit_edge2790 ], [ %645, %._crit_edge2173 ]
  %728 = phi i32 [ %.pre2739, %._crit_edge2790 ], [ %646, %._crit_edge2173 ]
  %729 = phi i32 [ %.pre2741, %._crit_edge2790 ], [ %647, %._crit_edge2173 ]
  %730 = phi i32 [ %.pre2743, %._crit_edge2790 ], [ %648, %._crit_edge2173 ]
  %731 = phi i32 [ %.pre2745, %._crit_edge2790 ], [ %649, %._crit_edge2173 ]
  %732 = phi i32 [ %.pre2747, %._crit_edge2790 ], [ %650, %._crit_edge2173 ]
  %733 = phi i32 [ %.pre2749, %._crit_edge2790 ], [ %651, %._crit_edge2173 ]
  %734 = phi ptr [ %.pre2751, %._crit_edge2790 ], [ %652, %._crit_edge2173 ]
  %735 = phi ptr [ %.pre2753, %._crit_edge2790 ], [ %653, %._crit_edge2173 ]
  %736 = phi ptr [ %.pre2755, %._crit_edge2790 ], [ %654, %._crit_edge2173 ]
  %.promoted2177 = phi i32 [ %.promoted2177.pre, %._crit_edge2790 ], [ %663, %._crit_edge2173 ]
  store i32 18, ptr %4, align 8, !tbaa !11
  %737 = getelementptr inbounds i8, ptr %0, i64 36
  %738 = icmp sgt i32 %.promoted2177, 7
  br i1 %738, label %.._crit_edge2180_crit_edge, label %.lr.ph2179

.._crit_edge2180_crit_edge:                       ; preds = %688
  %.phi.trans.insert2793 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2794 = load i32, ptr %.phi.trans.insert2793, align 8, !tbaa !37
  br label %._crit_edge2180

.lr.ph2179:                                       ; preds = %688
  %739 = load ptr, ptr %0, align 8, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %739, i64 8
  %741 = getelementptr inbounds i8, ptr %0, i64 32
  %742 = getelementptr inbounds i8, ptr %739, i64 12
  %743 = getelementptr inbounds i8, ptr %739, i64 16
  %.promoted2183 = load i32, ptr %740, align 8, !tbaa !38
  br label %748

._crit_edge2180:                                  ; preds = %768, %.._crit_edge2180_crit_edge
  %744 = phi i32 [ %.pre2794, %.._crit_edge2180_crit_edge ], [ %758, %768 ]
  %.lcssa2090 = phi i32 [ %.promoted2177, %.._crit_edge2180_crit_edge ], [ %759, %768 ]
  %745 = add nsw i32 %.lcssa2090, -8
  %746 = lshr i32 %744, %745
  store i32 %745, ptr %737, align 4, !tbaa !12
  %747 = and i32 %746, 255
  %.not1840 = icmp eq i32 %747, 83
  br i1 %.not1840, label %770, label %.loopexit

748:                                              ; preds = %.lr.ph2179, %768
  %749 = phi i32 [ %.promoted2183, %.lr.ph2179 ], [ %761, %768 ]
  %750 = phi i32 [ %.promoted2177, %.lr.ph2179 ], [ %759, %768 ]
  %751 = icmp eq i32 %749, 0
  br i1 %751, label %.loopexit, label %752

752:                                              ; preds = %748
  %753 = load i32, ptr %741, align 8, !tbaa !37
  %754 = shl i32 %753, 8
  %755 = load ptr, ptr %739, align 8, !tbaa !40
  %756 = load i8, ptr %755, align 1, !tbaa !41
  %757 = zext i8 %756 to i32
  %758 = or disjoint i32 %754, %757
  store i32 %758, ptr %741, align 8, !tbaa !37
  %759 = add nsw i32 %750, 8
  store i32 %759, ptr %737, align 4, !tbaa !12
  %760 = getelementptr inbounds i8, ptr %755, i64 1
  store ptr %760, ptr %739, align 8, !tbaa !40
  %761 = add i32 %749, -1
  store i32 %761, ptr %740, align 8, !tbaa !38
  %762 = load i32, ptr %742, align 4, !tbaa !42
  %763 = add i32 %762, 1
  store i32 %763, ptr %742, align 4, !tbaa !42
  %764 = icmp eq i32 %763, 0
  br i1 %764, label %765, label %768

765:                                              ; preds = %752
  %766 = load i32, ptr %743, align 8, !tbaa !43
  %767 = add i32 %766, 1
  store i32 %767, ptr %743, align 8, !tbaa !43
  br label %768

768:                                              ; preds = %765, %752
  %769 = icmp sgt i32 %750, -1
  br i1 %769, label %._crit_edge2180, label %748

770:                                              ; preds = %._crit_edge2795, %._crit_edge2180
  %771 = phi ptr [ %58, %._crit_edge2795 ], [ %689, %._crit_edge2180 ]
  %772 = phi ptr [ %57, %._crit_edge2795 ], [ %690, %._crit_edge2180 ]
  %773 = phi ptr [ %56, %._crit_edge2795 ], [ %691, %._crit_edge2180 ]
  %774 = phi ptr [ %55, %._crit_edge2795 ], [ %692, %._crit_edge2180 ]
  %775 = phi ptr [ %54, %._crit_edge2795 ], [ %693, %._crit_edge2180 ]
  %776 = phi ptr [ %53, %._crit_edge2795 ], [ %694, %._crit_edge2180 ]
  %777 = phi ptr [ %52, %._crit_edge2795 ], [ %695, %._crit_edge2180 ]
  %778 = phi ptr [ %51, %._crit_edge2795 ], [ %696, %._crit_edge2180 ]
  %779 = phi ptr [ %50, %._crit_edge2795 ], [ %697, %._crit_edge2180 ]
  %780 = phi ptr [ %49, %._crit_edge2795 ], [ %698, %._crit_edge2180 ]
  %781 = phi ptr [ %48, %._crit_edge2795 ], [ %699, %._crit_edge2180 ]
  %782 = phi ptr [ %47, %._crit_edge2795 ], [ %700, %._crit_edge2180 ]
  %783 = phi ptr [ %46, %._crit_edge2795 ], [ %701, %._crit_edge2180 ]
  %784 = phi ptr [ %45, %._crit_edge2795 ], [ %702, %._crit_edge2180 ]
  %785 = phi ptr [ %44, %._crit_edge2795 ], [ %703, %._crit_edge2180 ]
  %786 = phi ptr [ %43, %._crit_edge2795 ], [ %704, %._crit_edge2180 ]
  %787 = phi ptr [ %42, %._crit_edge2795 ], [ %705, %._crit_edge2180 ]
  %788 = phi ptr [ %41, %._crit_edge2795 ], [ %706, %._crit_edge2180 ]
  %789 = phi ptr [ %40, %._crit_edge2795 ], [ %707, %._crit_edge2180 ]
  %790 = phi ptr [ %39, %._crit_edge2795 ], [ %708, %._crit_edge2180 ]
  %791 = phi ptr [ %38, %._crit_edge2795 ], [ %709, %._crit_edge2180 ]
  %792 = phi ptr [ %37, %._crit_edge2795 ], [ %710, %._crit_edge2180 ]
  %793 = phi ptr [ %36, %._crit_edge2795 ], [ %711, %._crit_edge2180 ]
  %794 = phi ptr [ %35, %._crit_edge2795 ], [ %712, %._crit_edge2180 ]
  %795 = phi i32 [ %.pre, %._crit_edge2795 ], [ %713, %._crit_edge2180 ]
  %796 = phi i32 [ %.pre2711, %._crit_edge2795 ], [ %714, %._crit_edge2180 ]
  %797 = phi i32 [ %.pre2713, %._crit_edge2795 ], [ %715, %._crit_edge2180 ]
  %798 = phi i32 [ %.pre2715, %._crit_edge2795 ], [ %716, %._crit_edge2180 ]
  %799 = phi i32 [ %.pre2717, %._crit_edge2795 ], [ %717, %._crit_edge2180 ]
  %800 = phi i32 [ %.pre2719, %._crit_edge2795 ], [ %718, %._crit_edge2180 ]
  %801 = phi i32 [ %.pre2721, %._crit_edge2795 ], [ %719, %._crit_edge2180 ]
  %802 = phi i32 [ %.pre2723, %._crit_edge2795 ], [ %720, %._crit_edge2180 ]
  %803 = phi i32 [ %.pre2725, %._crit_edge2795 ], [ %721, %._crit_edge2180 ]
  %804 = phi i32 [ %.pre2727, %._crit_edge2795 ], [ %722, %._crit_edge2180 ]
  %805 = phi i32 [ %.pre2729, %._crit_edge2795 ], [ %723, %._crit_edge2180 ]
  %806 = phi i32 [ %.pre2731, %._crit_edge2795 ], [ %724, %._crit_edge2180 ]
  %807 = phi i32 [ %.pre2733, %._crit_edge2795 ], [ %725, %._crit_edge2180 ]
  %808 = phi i32 [ %.pre2735, %._crit_edge2795 ], [ %726, %._crit_edge2180 ]
  %809 = phi i32 [ %.pre2737, %._crit_edge2795 ], [ %727, %._crit_edge2180 ]
  %810 = phi i32 [ %.pre2739, %._crit_edge2795 ], [ %728, %._crit_edge2180 ]
  %811 = phi i32 [ %.pre2741, %._crit_edge2795 ], [ %729, %._crit_edge2180 ]
  %812 = phi i32 [ %.pre2743, %._crit_edge2795 ], [ %730, %._crit_edge2180 ]
  %813 = phi i32 [ %.pre2745, %._crit_edge2795 ], [ %731, %._crit_edge2180 ]
  %814 = phi i32 [ %.pre2747, %._crit_edge2795 ], [ %732, %._crit_edge2180 ]
  %815 = phi i32 [ %.pre2749, %._crit_edge2795 ], [ %733, %._crit_edge2180 ]
  %816 = phi ptr [ %.pre2751, %._crit_edge2795 ], [ %734, %._crit_edge2180 ]
  %817 = phi ptr [ %.pre2753, %._crit_edge2795 ], [ %735, %._crit_edge2180 ]
  %818 = phi ptr [ %.pre2755, %._crit_edge2795 ], [ %736, %._crit_edge2180 ]
  %.promoted2184 = phi i32 [ %.promoted2184.pre, %._crit_edge2795 ], [ %745, %._crit_edge2180 ]
  store i32 19, ptr %4, align 8, !tbaa !11
  %819 = getelementptr inbounds i8, ptr %0, i64 36
  %820 = icmp sgt i32 %.promoted2184, 7
  br i1 %820, label %.._crit_edge2187_crit_edge, label %.lr.ph2186

.._crit_edge2187_crit_edge:                       ; preds = %770
  %.phi.trans.insert2798 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2799 = load i32, ptr %.phi.trans.insert2798, align 8, !tbaa !37
  br label %._crit_edge2187

.lr.ph2186:                                       ; preds = %770
  %821 = load ptr, ptr %0, align 8, !tbaa !5
  %822 = getelementptr inbounds i8, ptr %821, i64 8
  %823 = getelementptr inbounds i8, ptr %0, i64 32
  %824 = getelementptr inbounds i8, ptr %821, i64 12
  %825 = getelementptr inbounds i8, ptr %821, i64 16
  %.promoted2190 = load i32, ptr %822, align 8, !tbaa !38
  br label %830

._crit_edge2187:                                  ; preds = %850, %.._crit_edge2187_crit_edge
  %826 = phi i32 [ %.pre2799, %.._crit_edge2187_crit_edge ], [ %840, %850 ]
  %.lcssa2086 = phi i32 [ %.promoted2184, %.._crit_edge2187_crit_edge ], [ %841, %850 ]
  %827 = add nsw i32 %.lcssa2086, -8
  %828 = lshr i32 %826, %827
  store i32 %827, ptr %819, align 4, !tbaa !12
  %829 = and i32 %828, 255
  %.not1841 = icmp eq i32 %829, 89
  br i1 %.not1841, label %852, label %.loopexit

830:                                              ; preds = %.lr.ph2186, %850
  %831 = phi i32 [ %.promoted2190, %.lr.ph2186 ], [ %843, %850 ]
  %832 = phi i32 [ %.promoted2184, %.lr.ph2186 ], [ %841, %850 ]
  %833 = icmp eq i32 %831, 0
  br i1 %833, label %.loopexit, label %834

834:                                              ; preds = %830
  %835 = load i32, ptr %823, align 8, !tbaa !37
  %836 = shl i32 %835, 8
  %837 = load ptr, ptr %821, align 8, !tbaa !40
  %838 = load i8, ptr %837, align 1, !tbaa !41
  %839 = zext i8 %838 to i32
  %840 = or disjoint i32 %836, %839
  store i32 %840, ptr %823, align 8, !tbaa !37
  %841 = add nsw i32 %832, 8
  store i32 %841, ptr %819, align 4, !tbaa !12
  %842 = getelementptr inbounds i8, ptr %837, i64 1
  store ptr %842, ptr %821, align 8, !tbaa !40
  %843 = add i32 %831, -1
  store i32 %843, ptr %822, align 8, !tbaa !38
  %844 = load i32, ptr %824, align 4, !tbaa !42
  %845 = add i32 %844, 1
  store i32 %845, ptr %824, align 4, !tbaa !42
  %846 = icmp eq i32 %845, 0
  br i1 %846, label %847, label %850

847:                                              ; preds = %834
  %848 = load i32, ptr %825, align 8, !tbaa !43
  %849 = add i32 %848, 1
  store i32 %849, ptr %825, align 8, !tbaa !43
  br label %850

850:                                              ; preds = %847, %834
  %851 = icmp sgt i32 %832, -1
  br i1 %851, label %._crit_edge2187, label %830

852:                                              ; preds = %._crit_edge2187
  %853 = getelementptr inbounds i8, ptr %0, i64 48
  %854 = load i32, ptr %853, align 8, !tbaa !51
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr %853, align 8, !tbaa !51
  %856 = getelementptr inbounds i8, ptr %0, i64 52
  %857 = load i32, ptr %856, align 4, !tbaa !52
  %858 = icmp sgt i32 %857, 1
  br i1 %858, label %859, label %862

859:                                              ; preds = %852
  %860 = load ptr, ptr @stderr, align 8, !tbaa !53
  %861 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef nonnull @.str, i32 noundef %855) #7
  br label %862

862:                                              ; preds = %859, %852
  %863 = getelementptr inbounds i8, ptr %0, i64 3176
  store i32 0, ptr %863, align 8, !tbaa !54
  br label %864

864:                                              ; preds = %862, %34
  %865 = phi ptr [ %771, %862 ], [ %58, %34 ]
  %866 = phi ptr [ %772, %862 ], [ %57, %34 ]
  %867 = phi ptr [ %773, %862 ], [ %56, %34 ]
  %868 = phi ptr [ %774, %862 ], [ %55, %34 ]
  %869 = phi ptr [ %775, %862 ], [ %54, %34 ]
  %870 = phi ptr [ %776, %862 ], [ %53, %34 ]
  %871 = phi ptr [ %777, %862 ], [ %52, %34 ]
  %872 = phi ptr [ %778, %862 ], [ %51, %34 ]
  %873 = phi ptr [ %779, %862 ], [ %50, %34 ]
  %874 = phi ptr [ %780, %862 ], [ %49, %34 ]
  %875 = phi ptr [ %781, %862 ], [ %48, %34 ]
  %876 = phi ptr [ %782, %862 ], [ %47, %34 ]
  %877 = phi ptr [ %783, %862 ], [ %46, %34 ]
  %878 = phi ptr [ %784, %862 ], [ %45, %34 ]
  %879 = phi ptr [ %785, %862 ], [ %44, %34 ]
  %880 = phi ptr [ %786, %862 ], [ %43, %34 ]
  %881 = phi ptr [ %787, %862 ], [ %42, %34 ]
  %882 = phi ptr [ %788, %862 ], [ %41, %34 ]
  %883 = phi ptr [ %789, %862 ], [ %40, %34 ]
  %884 = phi ptr [ %790, %862 ], [ %39, %34 ]
  %885 = phi ptr [ %791, %862 ], [ %38, %34 ]
  %886 = phi ptr [ %792, %862 ], [ %37, %34 ]
  %887 = phi ptr [ %793, %862 ], [ %36, %34 ]
  %888 = phi ptr [ %794, %862 ], [ %35, %34 ]
  %889 = phi i32 [ %795, %862 ], [ %.pre, %34 ]
  %890 = phi i32 [ %796, %862 ], [ %.pre2711, %34 ]
  %891 = phi i32 [ %797, %862 ], [ %.pre2713, %34 ]
  %892 = phi i32 [ %798, %862 ], [ %.pre2715, %34 ]
  %893 = phi i32 [ %799, %862 ], [ %.pre2717, %34 ]
  %894 = phi i32 [ %800, %862 ], [ %.pre2719, %34 ]
  %895 = phi i32 [ %801, %862 ], [ %.pre2721, %34 ]
  %896 = phi i32 [ %802, %862 ], [ %.pre2723, %34 ]
  %897 = phi i32 [ %803, %862 ], [ %.pre2725, %34 ]
  %898 = phi i32 [ %804, %862 ], [ %.pre2727, %34 ]
  %899 = phi i32 [ %805, %862 ], [ %.pre2729, %34 ]
  %900 = phi i32 [ %806, %862 ], [ %.pre2731, %34 ]
  %901 = phi i32 [ %807, %862 ], [ %.pre2733, %34 ]
  %902 = phi i32 [ %808, %862 ], [ %.pre2735, %34 ]
  %903 = phi i32 [ %809, %862 ], [ %.pre2737, %34 ]
  %904 = phi i32 [ %810, %862 ], [ %.pre2739, %34 ]
  %905 = phi i32 [ %811, %862 ], [ %.pre2741, %34 ]
  %906 = phi i32 [ %812, %862 ], [ %.pre2743, %34 ]
  %907 = phi i32 [ %813, %862 ], [ %.pre2745, %34 ]
  %908 = phi i32 [ %814, %862 ], [ %.pre2747, %34 ]
  %909 = phi i32 [ %815, %862 ], [ %.pre2749, %34 ]
  %910 = phi ptr [ %816, %862 ], [ %.pre2751, %34 ]
  %911 = phi ptr [ %817, %862 ], [ %.pre2753, %34 ]
  %912 = phi ptr [ %818, %862 ], [ %.pre2755, %34 ]
  store i32 20, ptr %4, align 8, !tbaa !11
  %913 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2191 = load i32, ptr %913, align 4, !tbaa !12
  %914 = icmp sgt i32 %.promoted2191, 7
  br i1 %914, label %.._crit_edge2194_crit_edge, label %.lr.ph2193

.._crit_edge2194_crit_edge:                       ; preds = %864
  %.phi.trans.insert2800 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2801 = load i32, ptr %.phi.trans.insert2800, align 8, !tbaa !37
  br label %._crit_edge2194

.lr.ph2193:                                       ; preds = %864
  %915 = load ptr, ptr %0, align 8, !tbaa !5
  %916 = getelementptr inbounds i8, ptr %915, i64 8
  %917 = getelementptr inbounds i8, ptr %0, i64 32
  %918 = getelementptr inbounds i8, ptr %915, i64 12
  %919 = getelementptr inbounds i8, ptr %915, i64 16
  %.promoted2197 = load i32, ptr %916, align 8, !tbaa !38
  br label %928

._crit_edge2194:                                  ; preds = %948, %.._crit_edge2194_crit_edge
  %920 = phi i32 [ %.pre2801, %.._crit_edge2194_crit_edge ], [ %938, %948 ]
  %.lcssa2082 = phi i32 [ %.promoted2191, %.._crit_edge2194_crit_edge ], [ %939, %948 ]
  %921 = add nsw i32 %.lcssa2082, -8
  %922 = lshr i32 %920, %921
  store i32 %921, ptr %913, align 4, !tbaa !12
  %923 = getelementptr inbounds i8, ptr %0, i64 3176
  %924 = load i32, ptr %923, align 8, !tbaa !54
  %925 = shl i32 %924, 8
  %926 = and i32 %922, 255
  %927 = or disjoint i32 %925, %926
  store i32 %927, ptr %923, align 8, !tbaa !54
  br label %950

928:                                              ; preds = %.lr.ph2193, %948
  %929 = phi i32 [ %.promoted2197, %.lr.ph2193 ], [ %941, %948 ]
  %930 = phi i32 [ %.promoted2191, %.lr.ph2193 ], [ %939, %948 ]
  %931 = icmp eq i32 %929, 0
  br i1 %931, label %.loopexit, label %932

932:                                              ; preds = %928
  %933 = load i32, ptr %917, align 8, !tbaa !37
  %934 = shl i32 %933, 8
  %935 = load ptr, ptr %915, align 8, !tbaa !40
  %936 = load i8, ptr %935, align 1, !tbaa !41
  %937 = zext i8 %936 to i32
  %938 = or disjoint i32 %934, %937
  store i32 %938, ptr %917, align 8, !tbaa !37
  %939 = add nsw i32 %930, 8
  store i32 %939, ptr %913, align 4, !tbaa !12
  %940 = getelementptr inbounds i8, ptr %935, i64 1
  store ptr %940, ptr %915, align 8, !tbaa !40
  %941 = add i32 %929, -1
  store i32 %941, ptr %916, align 8, !tbaa !38
  %942 = load i32, ptr %918, align 4, !tbaa !42
  %943 = add i32 %942, 1
  store i32 %943, ptr %918, align 4, !tbaa !42
  %944 = icmp eq i32 %943, 0
  br i1 %944, label %945, label %948

945:                                              ; preds = %932
  %946 = load i32, ptr %919, align 8, !tbaa !43
  %947 = add i32 %946, 1
  store i32 %947, ptr %919, align 8, !tbaa !43
  br label %948

948:                                              ; preds = %945, %932
  %949 = icmp sgt i32 %930, -1
  br i1 %949, label %._crit_edge2194, label %928

950:                                              ; preds = %._crit_edge2802, %._crit_edge2194
  %951 = phi ptr [ %58, %._crit_edge2802 ], [ %865, %._crit_edge2194 ]
  %952 = phi ptr [ %57, %._crit_edge2802 ], [ %866, %._crit_edge2194 ]
  %953 = phi ptr [ %56, %._crit_edge2802 ], [ %867, %._crit_edge2194 ]
  %954 = phi ptr [ %55, %._crit_edge2802 ], [ %868, %._crit_edge2194 ]
  %955 = phi ptr [ %54, %._crit_edge2802 ], [ %869, %._crit_edge2194 ]
  %956 = phi ptr [ %53, %._crit_edge2802 ], [ %870, %._crit_edge2194 ]
  %957 = phi ptr [ %52, %._crit_edge2802 ], [ %871, %._crit_edge2194 ]
  %958 = phi ptr [ %51, %._crit_edge2802 ], [ %872, %._crit_edge2194 ]
  %959 = phi ptr [ %50, %._crit_edge2802 ], [ %873, %._crit_edge2194 ]
  %960 = phi ptr [ %49, %._crit_edge2802 ], [ %874, %._crit_edge2194 ]
  %961 = phi ptr [ %48, %._crit_edge2802 ], [ %875, %._crit_edge2194 ]
  %962 = phi ptr [ %47, %._crit_edge2802 ], [ %876, %._crit_edge2194 ]
  %963 = phi ptr [ %46, %._crit_edge2802 ], [ %877, %._crit_edge2194 ]
  %964 = phi ptr [ %45, %._crit_edge2802 ], [ %878, %._crit_edge2194 ]
  %965 = phi ptr [ %44, %._crit_edge2802 ], [ %879, %._crit_edge2194 ]
  %966 = phi ptr [ %43, %._crit_edge2802 ], [ %880, %._crit_edge2194 ]
  %967 = phi ptr [ %42, %._crit_edge2802 ], [ %881, %._crit_edge2194 ]
  %968 = phi ptr [ %41, %._crit_edge2802 ], [ %882, %._crit_edge2194 ]
  %969 = phi ptr [ %40, %._crit_edge2802 ], [ %883, %._crit_edge2194 ]
  %970 = phi ptr [ %39, %._crit_edge2802 ], [ %884, %._crit_edge2194 ]
  %971 = phi ptr [ %38, %._crit_edge2802 ], [ %885, %._crit_edge2194 ]
  %972 = phi ptr [ %37, %._crit_edge2802 ], [ %886, %._crit_edge2194 ]
  %973 = phi ptr [ %36, %._crit_edge2802 ], [ %887, %._crit_edge2194 ]
  %974 = phi ptr [ %35, %._crit_edge2802 ], [ %888, %._crit_edge2194 ]
  %975 = phi i32 [ %.pre, %._crit_edge2802 ], [ %889, %._crit_edge2194 ]
  %976 = phi i32 [ %.pre2711, %._crit_edge2802 ], [ %890, %._crit_edge2194 ]
  %977 = phi i32 [ %.pre2713, %._crit_edge2802 ], [ %891, %._crit_edge2194 ]
  %978 = phi i32 [ %.pre2715, %._crit_edge2802 ], [ %892, %._crit_edge2194 ]
  %979 = phi i32 [ %.pre2717, %._crit_edge2802 ], [ %893, %._crit_edge2194 ]
  %980 = phi i32 [ %.pre2719, %._crit_edge2802 ], [ %894, %._crit_edge2194 ]
  %981 = phi i32 [ %.pre2721, %._crit_edge2802 ], [ %895, %._crit_edge2194 ]
  %982 = phi i32 [ %.pre2723, %._crit_edge2802 ], [ %896, %._crit_edge2194 ]
  %983 = phi i32 [ %.pre2725, %._crit_edge2802 ], [ %897, %._crit_edge2194 ]
  %984 = phi i32 [ %.pre2727, %._crit_edge2802 ], [ %898, %._crit_edge2194 ]
  %985 = phi i32 [ %.pre2729, %._crit_edge2802 ], [ %899, %._crit_edge2194 ]
  %986 = phi i32 [ %.pre2731, %._crit_edge2802 ], [ %900, %._crit_edge2194 ]
  %987 = phi i32 [ %.pre2733, %._crit_edge2802 ], [ %901, %._crit_edge2194 ]
  %988 = phi i32 [ %.pre2735, %._crit_edge2802 ], [ %902, %._crit_edge2194 ]
  %989 = phi i32 [ %.pre2737, %._crit_edge2802 ], [ %903, %._crit_edge2194 ]
  %990 = phi i32 [ %.pre2739, %._crit_edge2802 ], [ %904, %._crit_edge2194 ]
  %991 = phi i32 [ %.pre2741, %._crit_edge2802 ], [ %905, %._crit_edge2194 ]
  %992 = phi i32 [ %.pre2743, %._crit_edge2802 ], [ %906, %._crit_edge2194 ]
  %993 = phi i32 [ %.pre2745, %._crit_edge2802 ], [ %907, %._crit_edge2194 ]
  %994 = phi i32 [ %.pre2747, %._crit_edge2802 ], [ %908, %._crit_edge2194 ]
  %995 = phi i32 [ %.pre2749, %._crit_edge2802 ], [ %909, %._crit_edge2194 ]
  %996 = phi ptr [ %.pre2751, %._crit_edge2802 ], [ %910, %._crit_edge2194 ]
  %997 = phi ptr [ %.pre2753, %._crit_edge2802 ], [ %911, %._crit_edge2194 ]
  %998 = phi ptr [ %.pre2755, %._crit_edge2802 ], [ %912, %._crit_edge2194 ]
  %.promoted2198 = phi i32 [ %.promoted2198.pre, %._crit_edge2802 ], [ %921, %._crit_edge2194 ]
  store i32 21, ptr %4, align 8, !tbaa !11
  %999 = getelementptr inbounds i8, ptr %0, i64 36
  %1000 = icmp sgt i32 %.promoted2198, 7
  br i1 %1000, label %.._crit_edge2201_crit_edge, label %.lr.ph2200

.._crit_edge2201_crit_edge:                       ; preds = %950
  %.phi.trans.insert2805 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2806 = load i32, ptr %.phi.trans.insert2805, align 8, !tbaa !37
  br label %._crit_edge2201

.lr.ph2200:                                       ; preds = %950
  %1001 = load ptr, ptr %0, align 8, !tbaa !5
  %1002 = getelementptr inbounds i8, ptr %1001, i64 8
  %1003 = getelementptr inbounds i8, ptr %0, i64 32
  %1004 = getelementptr inbounds i8, ptr %1001, i64 12
  %1005 = getelementptr inbounds i8, ptr %1001, i64 16
  %.promoted2204 = load i32, ptr %1002, align 8, !tbaa !38
  br label %1014

._crit_edge2201:                                  ; preds = %1034, %.._crit_edge2201_crit_edge
  %1006 = phi i32 [ %.pre2806, %.._crit_edge2201_crit_edge ], [ %1024, %1034 ]
  %.lcssa2078 = phi i32 [ %.promoted2198, %.._crit_edge2201_crit_edge ], [ %1025, %1034 ]
  %1007 = add nsw i32 %.lcssa2078, -8
  %1008 = lshr i32 %1006, %1007
  store i32 %1007, ptr %999, align 4, !tbaa !12
  %1009 = getelementptr inbounds i8, ptr %0, i64 3176
  %1010 = load i32, ptr %1009, align 8, !tbaa !54
  %1011 = shl i32 %1010, 8
  %1012 = and i32 %1008, 255
  %1013 = or disjoint i32 %1011, %1012
  store i32 %1013, ptr %1009, align 8, !tbaa !54
  br label %1036

1014:                                             ; preds = %.lr.ph2200, %1034
  %1015 = phi i32 [ %.promoted2204, %.lr.ph2200 ], [ %1027, %1034 ]
  %1016 = phi i32 [ %.promoted2198, %.lr.ph2200 ], [ %1025, %1034 ]
  %1017 = icmp eq i32 %1015, 0
  br i1 %1017, label %.loopexit, label %1018

1018:                                             ; preds = %1014
  %1019 = load i32, ptr %1003, align 8, !tbaa !37
  %1020 = shl i32 %1019, 8
  %1021 = load ptr, ptr %1001, align 8, !tbaa !40
  %1022 = load i8, ptr %1021, align 1, !tbaa !41
  %1023 = zext i8 %1022 to i32
  %1024 = or disjoint i32 %1020, %1023
  store i32 %1024, ptr %1003, align 8, !tbaa !37
  %1025 = add nsw i32 %1016, 8
  store i32 %1025, ptr %999, align 4, !tbaa !12
  %1026 = getelementptr inbounds i8, ptr %1021, i64 1
  store ptr %1026, ptr %1001, align 8, !tbaa !40
  %1027 = add i32 %1015, -1
  store i32 %1027, ptr %1002, align 8, !tbaa !38
  %1028 = load i32, ptr %1004, align 4, !tbaa !42
  %1029 = add i32 %1028, 1
  store i32 %1029, ptr %1004, align 4, !tbaa !42
  %1030 = icmp eq i32 %1029, 0
  br i1 %1030, label %1031, label %1034

1031:                                             ; preds = %1018
  %1032 = load i32, ptr %1005, align 8, !tbaa !43
  %1033 = add i32 %1032, 1
  store i32 %1033, ptr %1005, align 8, !tbaa !43
  br label %1034

1034:                                             ; preds = %1031, %1018
  %1035 = icmp sgt i32 %1016, -1
  br i1 %1035, label %._crit_edge2201, label %1014

1036:                                             ; preds = %._crit_edge2807, %._crit_edge2201
  %1037 = phi ptr [ %58, %._crit_edge2807 ], [ %951, %._crit_edge2201 ]
  %1038 = phi ptr [ %57, %._crit_edge2807 ], [ %952, %._crit_edge2201 ]
  %1039 = phi ptr [ %56, %._crit_edge2807 ], [ %953, %._crit_edge2201 ]
  %1040 = phi ptr [ %55, %._crit_edge2807 ], [ %954, %._crit_edge2201 ]
  %1041 = phi ptr [ %54, %._crit_edge2807 ], [ %955, %._crit_edge2201 ]
  %1042 = phi ptr [ %53, %._crit_edge2807 ], [ %956, %._crit_edge2201 ]
  %1043 = phi ptr [ %52, %._crit_edge2807 ], [ %957, %._crit_edge2201 ]
  %1044 = phi ptr [ %51, %._crit_edge2807 ], [ %958, %._crit_edge2201 ]
  %1045 = phi ptr [ %50, %._crit_edge2807 ], [ %959, %._crit_edge2201 ]
  %1046 = phi ptr [ %49, %._crit_edge2807 ], [ %960, %._crit_edge2201 ]
  %1047 = phi ptr [ %48, %._crit_edge2807 ], [ %961, %._crit_edge2201 ]
  %1048 = phi ptr [ %47, %._crit_edge2807 ], [ %962, %._crit_edge2201 ]
  %1049 = phi ptr [ %46, %._crit_edge2807 ], [ %963, %._crit_edge2201 ]
  %1050 = phi ptr [ %45, %._crit_edge2807 ], [ %964, %._crit_edge2201 ]
  %1051 = phi ptr [ %44, %._crit_edge2807 ], [ %965, %._crit_edge2201 ]
  %1052 = phi ptr [ %43, %._crit_edge2807 ], [ %966, %._crit_edge2201 ]
  %1053 = phi ptr [ %42, %._crit_edge2807 ], [ %967, %._crit_edge2201 ]
  %1054 = phi ptr [ %41, %._crit_edge2807 ], [ %968, %._crit_edge2201 ]
  %1055 = phi ptr [ %40, %._crit_edge2807 ], [ %969, %._crit_edge2201 ]
  %1056 = phi ptr [ %39, %._crit_edge2807 ], [ %970, %._crit_edge2201 ]
  %1057 = phi ptr [ %38, %._crit_edge2807 ], [ %971, %._crit_edge2201 ]
  %1058 = phi ptr [ %37, %._crit_edge2807 ], [ %972, %._crit_edge2201 ]
  %1059 = phi ptr [ %36, %._crit_edge2807 ], [ %973, %._crit_edge2201 ]
  %1060 = phi ptr [ %35, %._crit_edge2807 ], [ %974, %._crit_edge2201 ]
  %1061 = phi i32 [ %.pre, %._crit_edge2807 ], [ %975, %._crit_edge2201 ]
  %1062 = phi i32 [ %.pre2711, %._crit_edge2807 ], [ %976, %._crit_edge2201 ]
  %1063 = phi i32 [ %.pre2713, %._crit_edge2807 ], [ %977, %._crit_edge2201 ]
  %1064 = phi i32 [ %.pre2715, %._crit_edge2807 ], [ %978, %._crit_edge2201 ]
  %1065 = phi i32 [ %.pre2717, %._crit_edge2807 ], [ %979, %._crit_edge2201 ]
  %1066 = phi i32 [ %.pre2719, %._crit_edge2807 ], [ %980, %._crit_edge2201 ]
  %1067 = phi i32 [ %.pre2721, %._crit_edge2807 ], [ %981, %._crit_edge2201 ]
  %1068 = phi i32 [ %.pre2723, %._crit_edge2807 ], [ %982, %._crit_edge2201 ]
  %1069 = phi i32 [ %.pre2725, %._crit_edge2807 ], [ %983, %._crit_edge2201 ]
  %1070 = phi i32 [ %.pre2727, %._crit_edge2807 ], [ %984, %._crit_edge2201 ]
  %1071 = phi i32 [ %.pre2729, %._crit_edge2807 ], [ %985, %._crit_edge2201 ]
  %1072 = phi i32 [ %.pre2731, %._crit_edge2807 ], [ %986, %._crit_edge2201 ]
  %1073 = phi i32 [ %.pre2733, %._crit_edge2807 ], [ %987, %._crit_edge2201 ]
  %1074 = phi i32 [ %.pre2735, %._crit_edge2807 ], [ %988, %._crit_edge2201 ]
  %1075 = phi i32 [ %.pre2737, %._crit_edge2807 ], [ %989, %._crit_edge2201 ]
  %1076 = phi i32 [ %.pre2739, %._crit_edge2807 ], [ %990, %._crit_edge2201 ]
  %1077 = phi i32 [ %.pre2741, %._crit_edge2807 ], [ %991, %._crit_edge2201 ]
  %1078 = phi i32 [ %.pre2743, %._crit_edge2807 ], [ %992, %._crit_edge2201 ]
  %1079 = phi i32 [ %.pre2745, %._crit_edge2807 ], [ %993, %._crit_edge2201 ]
  %1080 = phi i32 [ %.pre2747, %._crit_edge2807 ], [ %994, %._crit_edge2201 ]
  %1081 = phi i32 [ %.pre2749, %._crit_edge2807 ], [ %995, %._crit_edge2201 ]
  %1082 = phi ptr [ %.pre2751, %._crit_edge2807 ], [ %996, %._crit_edge2201 ]
  %1083 = phi ptr [ %.pre2753, %._crit_edge2807 ], [ %997, %._crit_edge2201 ]
  %1084 = phi ptr [ %.pre2755, %._crit_edge2807 ], [ %998, %._crit_edge2201 ]
  %.promoted2205 = phi i32 [ %.promoted2205.pre, %._crit_edge2807 ], [ %1007, %._crit_edge2201 ]
  store i32 22, ptr %4, align 8, !tbaa !11
  %1085 = getelementptr inbounds i8, ptr %0, i64 36
  %1086 = icmp sgt i32 %.promoted2205, 7
  br i1 %1086, label %.._crit_edge2208_crit_edge, label %.lr.ph2207

.._crit_edge2208_crit_edge:                       ; preds = %1036
  %.phi.trans.insert2810 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2811 = load i32, ptr %.phi.trans.insert2810, align 8, !tbaa !37
  br label %._crit_edge2208

.lr.ph2207:                                       ; preds = %1036
  %1087 = load ptr, ptr %0, align 8, !tbaa !5
  %1088 = getelementptr inbounds i8, ptr %1087, i64 8
  %1089 = getelementptr inbounds i8, ptr %0, i64 32
  %1090 = getelementptr inbounds i8, ptr %1087, i64 12
  %1091 = getelementptr inbounds i8, ptr %1087, i64 16
  %.promoted2211 = load i32, ptr %1088, align 8, !tbaa !38
  br label %1100

._crit_edge2208:                                  ; preds = %1120, %.._crit_edge2208_crit_edge
  %1092 = phi i32 [ %.pre2811, %.._crit_edge2208_crit_edge ], [ %1110, %1120 ]
  %.lcssa2074 = phi i32 [ %.promoted2205, %.._crit_edge2208_crit_edge ], [ %1111, %1120 ]
  %1093 = add nsw i32 %.lcssa2074, -8
  %1094 = lshr i32 %1092, %1093
  store i32 %1093, ptr %1085, align 4, !tbaa !12
  %1095 = getelementptr inbounds i8, ptr %0, i64 3176
  %1096 = load i32, ptr %1095, align 8, !tbaa !54
  %1097 = shl i32 %1096, 8
  %1098 = and i32 %1094, 255
  %1099 = or disjoint i32 %1097, %1098
  store i32 %1099, ptr %1095, align 8, !tbaa !54
  br label %1122

1100:                                             ; preds = %.lr.ph2207, %1120
  %1101 = phi i32 [ %.promoted2211, %.lr.ph2207 ], [ %1113, %1120 ]
  %1102 = phi i32 [ %.promoted2205, %.lr.ph2207 ], [ %1111, %1120 ]
  %1103 = icmp eq i32 %1101, 0
  br i1 %1103, label %.loopexit, label %1104

1104:                                             ; preds = %1100
  %1105 = load i32, ptr %1089, align 8, !tbaa !37
  %1106 = shl i32 %1105, 8
  %1107 = load ptr, ptr %1087, align 8, !tbaa !40
  %1108 = load i8, ptr %1107, align 1, !tbaa !41
  %1109 = zext i8 %1108 to i32
  %1110 = or disjoint i32 %1106, %1109
  store i32 %1110, ptr %1089, align 8, !tbaa !37
  %1111 = add nsw i32 %1102, 8
  store i32 %1111, ptr %1085, align 4, !tbaa !12
  %1112 = getelementptr inbounds i8, ptr %1107, i64 1
  store ptr %1112, ptr %1087, align 8, !tbaa !40
  %1113 = add i32 %1101, -1
  store i32 %1113, ptr %1088, align 8, !tbaa !38
  %1114 = load i32, ptr %1090, align 4, !tbaa !42
  %1115 = add i32 %1114, 1
  store i32 %1115, ptr %1090, align 4, !tbaa !42
  %1116 = icmp eq i32 %1115, 0
  br i1 %1116, label %1117, label %1120

1117:                                             ; preds = %1104
  %1118 = load i32, ptr %1091, align 8, !tbaa !43
  %1119 = add i32 %1118, 1
  store i32 %1119, ptr %1091, align 8, !tbaa !43
  br label %1120

1120:                                             ; preds = %1117, %1104
  %1121 = icmp sgt i32 %1102, -1
  br i1 %1121, label %._crit_edge2208, label %1100

1122:                                             ; preds = %._crit_edge2812, %._crit_edge2208
  %1123 = phi ptr [ %58, %._crit_edge2812 ], [ %1037, %._crit_edge2208 ]
  %1124 = phi ptr [ %57, %._crit_edge2812 ], [ %1038, %._crit_edge2208 ]
  %1125 = phi ptr [ %56, %._crit_edge2812 ], [ %1039, %._crit_edge2208 ]
  %1126 = phi ptr [ %55, %._crit_edge2812 ], [ %1040, %._crit_edge2208 ]
  %1127 = phi ptr [ %54, %._crit_edge2812 ], [ %1041, %._crit_edge2208 ]
  %1128 = phi ptr [ %53, %._crit_edge2812 ], [ %1042, %._crit_edge2208 ]
  %1129 = phi ptr [ %52, %._crit_edge2812 ], [ %1043, %._crit_edge2208 ]
  %1130 = phi ptr [ %51, %._crit_edge2812 ], [ %1044, %._crit_edge2208 ]
  %1131 = phi ptr [ %50, %._crit_edge2812 ], [ %1045, %._crit_edge2208 ]
  %1132 = phi ptr [ %49, %._crit_edge2812 ], [ %1046, %._crit_edge2208 ]
  %1133 = phi ptr [ %48, %._crit_edge2812 ], [ %1047, %._crit_edge2208 ]
  %1134 = phi ptr [ %47, %._crit_edge2812 ], [ %1048, %._crit_edge2208 ]
  %1135 = phi ptr [ %46, %._crit_edge2812 ], [ %1049, %._crit_edge2208 ]
  %1136 = phi ptr [ %45, %._crit_edge2812 ], [ %1050, %._crit_edge2208 ]
  %1137 = phi ptr [ %44, %._crit_edge2812 ], [ %1051, %._crit_edge2208 ]
  %1138 = phi ptr [ %43, %._crit_edge2812 ], [ %1052, %._crit_edge2208 ]
  %1139 = phi ptr [ %42, %._crit_edge2812 ], [ %1053, %._crit_edge2208 ]
  %1140 = phi ptr [ %41, %._crit_edge2812 ], [ %1054, %._crit_edge2208 ]
  %1141 = phi ptr [ %40, %._crit_edge2812 ], [ %1055, %._crit_edge2208 ]
  %1142 = phi ptr [ %39, %._crit_edge2812 ], [ %1056, %._crit_edge2208 ]
  %1143 = phi ptr [ %38, %._crit_edge2812 ], [ %1057, %._crit_edge2208 ]
  %1144 = phi ptr [ %37, %._crit_edge2812 ], [ %1058, %._crit_edge2208 ]
  %1145 = phi ptr [ %36, %._crit_edge2812 ], [ %1059, %._crit_edge2208 ]
  %1146 = phi ptr [ %35, %._crit_edge2812 ], [ %1060, %._crit_edge2208 ]
  %1147 = phi i32 [ %.pre, %._crit_edge2812 ], [ %1061, %._crit_edge2208 ]
  %1148 = phi i32 [ %.pre2711, %._crit_edge2812 ], [ %1062, %._crit_edge2208 ]
  %1149 = phi i32 [ %.pre2713, %._crit_edge2812 ], [ %1063, %._crit_edge2208 ]
  %1150 = phi i32 [ %.pre2715, %._crit_edge2812 ], [ %1064, %._crit_edge2208 ]
  %1151 = phi i32 [ %.pre2717, %._crit_edge2812 ], [ %1065, %._crit_edge2208 ]
  %1152 = phi i32 [ %.pre2719, %._crit_edge2812 ], [ %1066, %._crit_edge2208 ]
  %1153 = phi i32 [ %.pre2721, %._crit_edge2812 ], [ %1067, %._crit_edge2208 ]
  %1154 = phi i32 [ %.pre2723, %._crit_edge2812 ], [ %1068, %._crit_edge2208 ]
  %1155 = phi i32 [ %.pre2725, %._crit_edge2812 ], [ %1069, %._crit_edge2208 ]
  %1156 = phi i32 [ %.pre2727, %._crit_edge2812 ], [ %1070, %._crit_edge2208 ]
  %1157 = phi i32 [ %.pre2729, %._crit_edge2812 ], [ %1071, %._crit_edge2208 ]
  %1158 = phi i32 [ %.pre2731, %._crit_edge2812 ], [ %1072, %._crit_edge2208 ]
  %1159 = phi i32 [ %.pre2733, %._crit_edge2812 ], [ %1073, %._crit_edge2208 ]
  %1160 = phi i32 [ %.pre2735, %._crit_edge2812 ], [ %1074, %._crit_edge2208 ]
  %1161 = phi i32 [ %.pre2737, %._crit_edge2812 ], [ %1075, %._crit_edge2208 ]
  %1162 = phi i32 [ %.pre2739, %._crit_edge2812 ], [ %1076, %._crit_edge2208 ]
  %1163 = phi i32 [ %.pre2741, %._crit_edge2812 ], [ %1077, %._crit_edge2208 ]
  %1164 = phi i32 [ %.pre2743, %._crit_edge2812 ], [ %1078, %._crit_edge2208 ]
  %1165 = phi i32 [ %.pre2745, %._crit_edge2812 ], [ %1079, %._crit_edge2208 ]
  %1166 = phi i32 [ %.pre2747, %._crit_edge2812 ], [ %1080, %._crit_edge2208 ]
  %1167 = phi i32 [ %.pre2749, %._crit_edge2812 ], [ %1081, %._crit_edge2208 ]
  %1168 = phi ptr [ %.pre2751, %._crit_edge2812 ], [ %1082, %._crit_edge2208 ]
  %1169 = phi ptr [ %.pre2753, %._crit_edge2812 ], [ %1083, %._crit_edge2208 ]
  %1170 = phi ptr [ %.pre2755, %._crit_edge2812 ], [ %1084, %._crit_edge2208 ]
  %.promoted2212 = phi i32 [ %.promoted2212.pre, %._crit_edge2812 ], [ %1093, %._crit_edge2208 ]
  store i32 23, ptr %4, align 8, !tbaa !11
  %1171 = getelementptr inbounds i8, ptr %0, i64 36
  %1172 = icmp sgt i32 %.promoted2212, 7
  br i1 %1172, label %.._crit_edge2215_crit_edge, label %.lr.ph2214

.._crit_edge2215_crit_edge:                       ; preds = %1122
  %.phi.trans.insert2815 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2816 = load i32, ptr %.phi.trans.insert2815, align 8, !tbaa !37
  br label %._crit_edge2215

.lr.ph2214:                                       ; preds = %1122
  %1173 = load ptr, ptr %0, align 8, !tbaa !5
  %1174 = getelementptr inbounds i8, ptr %1173, i64 8
  %1175 = getelementptr inbounds i8, ptr %0, i64 32
  %1176 = getelementptr inbounds i8, ptr %1173, i64 12
  %1177 = getelementptr inbounds i8, ptr %1173, i64 16
  %.promoted2218 = load i32, ptr %1174, align 8, !tbaa !38
  br label %1186

._crit_edge2215:                                  ; preds = %1206, %.._crit_edge2215_crit_edge
  %1178 = phi i32 [ %.pre2816, %.._crit_edge2215_crit_edge ], [ %1196, %1206 ]
  %.lcssa2070 = phi i32 [ %.promoted2212, %.._crit_edge2215_crit_edge ], [ %1197, %1206 ]
  %1179 = add nsw i32 %.lcssa2070, -8
  %1180 = lshr i32 %1178, %1179
  store i32 %1179, ptr %1171, align 4, !tbaa !12
  %1181 = getelementptr inbounds i8, ptr %0, i64 3176
  %1182 = load i32, ptr %1181, align 8, !tbaa !54
  %1183 = shl i32 %1182, 8
  %1184 = and i32 %1180, 255
  %1185 = or disjoint i32 %1183, %1184
  store i32 %1185, ptr %1181, align 8, !tbaa !54
  br label %1208

1186:                                             ; preds = %.lr.ph2214, %1206
  %1187 = phi i32 [ %.promoted2218, %.lr.ph2214 ], [ %1199, %1206 ]
  %1188 = phi i32 [ %.promoted2212, %.lr.ph2214 ], [ %1197, %1206 ]
  %1189 = icmp eq i32 %1187, 0
  br i1 %1189, label %.loopexit, label %1190

1190:                                             ; preds = %1186
  %1191 = load i32, ptr %1175, align 8, !tbaa !37
  %1192 = shl i32 %1191, 8
  %1193 = load ptr, ptr %1173, align 8, !tbaa !40
  %1194 = load i8, ptr %1193, align 1, !tbaa !41
  %1195 = zext i8 %1194 to i32
  %1196 = or disjoint i32 %1192, %1195
  store i32 %1196, ptr %1175, align 8, !tbaa !37
  %1197 = add nsw i32 %1188, 8
  store i32 %1197, ptr %1171, align 4, !tbaa !12
  %1198 = getelementptr inbounds i8, ptr %1193, i64 1
  store ptr %1198, ptr %1173, align 8, !tbaa !40
  %1199 = add i32 %1187, -1
  store i32 %1199, ptr %1174, align 8, !tbaa !38
  %1200 = load i32, ptr %1176, align 4, !tbaa !42
  %1201 = add i32 %1200, 1
  store i32 %1201, ptr %1176, align 4, !tbaa !42
  %1202 = icmp eq i32 %1201, 0
  br i1 %1202, label %1203, label %1206

1203:                                             ; preds = %1190
  %1204 = load i32, ptr %1177, align 8, !tbaa !43
  %1205 = add i32 %1204, 1
  store i32 %1205, ptr %1177, align 8, !tbaa !43
  br label %1206

1206:                                             ; preds = %1203, %1190
  %1207 = icmp sgt i32 %1188, -1
  br i1 %1207, label %._crit_edge2215, label %1186

1208:                                             ; preds = %._crit_edge2817, %._crit_edge2215
  %1209 = phi ptr [ %58, %._crit_edge2817 ], [ %1123, %._crit_edge2215 ]
  %1210 = phi ptr [ %57, %._crit_edge2817 ], [ %1124, %._crit_edge2215 ]
  %1211 = phi ptr [ %56, %._crit_edge2817 ], [ %1125, %._crit_edge2215 ]
  %1212 = phi ptr [ %55, %._crit_edge2817 ], [ %1126, %._crit_edge2215 ]
  %1213 = phi ptr [ %54, %._crit_edge2817 ], [ %1127, %._crit_edge2215 ]
  %1214 = phi ptr [ %53, %._crit_edge2817 ], [ %1128, %._crit_edge2215 ]
  %1215 = phi ptr [ %52, %._crit_edge2817 ], [ %1129, %._crit_edge2215 ]
  %1216 = phi ptr [ %51, %._crit_edge2817 ], [ %1130, %._crit_edge2215 ]
  %1217 = phi ptr [ %50, %._crit_edge2817 ], [ %1131, %._crit_edge2215 ]
  %1218 = phi ptr [ %49, %._crit_edge2817 ], [ %1132, %._crit_edge2215 ]
  %1219 = phi ptr [ %48, %._crit_edge2817 ], [ %1133, %._crit_edge2215 ]
  %1220 = phi ptr [ %47, %._crit_edge2817 ], [ %1134, %._crit_edge2215 ]
  %1221 = phi ptr [ %46, %._crit_edge2817 ], [ %1135, %._crit_edge2215 ]
  %1222 = phi ptr [ %45, %._crit_edge2817 ], [ %1136, %._crit_edge2215 ]
  %1223 = phi ptr [ %44, %._crit_edge2817 ], [ %1137, %._crit_edge2215 ]
  %1224 = phi ptr [ %43, %._crit_edge2817 ], [ %1138, %._crit_edge2215 ]
  %1225 = phi ptr [ %42, %._crit_edge2817 ], [ %1139, %._crit_edge2215 ]
  %1226 = phi ptr [ %41, %._crit_edge2817 ], [ %1140, %._crit_edge2215 ]
  %1227 = phi ptr [ %40, %._crit_edge2817 ], [ %1141, %._crit_edge2215 ]
  %1228 = phi ptr [ %39, %._crit_edge2817 ], [ %1142, %._crit_edge2215 ]
  %1229 = phi ptr [ %38, %._crit_edge2817 ], [ %1143, %._crit_edge2215 ]
  %1230 = phi ptr [ %37, %._crit_edge2817 ], [ %1144, %._crit_edge2215 ]
  %1231 = phi ptr [ %36, %._crit_edge2817 ], [ %1145, %._crit_edge2215 ]
  %1232 = phi ptr [ %35, %._crit_edge2817 ], [ %1146, %._crit_edge2215 ]
  %1233 = phi i32 [ %.pre, %._crit_edge2817 ], [ %1147, %._crit_edge2215 ]
  %1234 = phi i32 [ %.pre2711, %._crit_edge2817 ], [ %1148, %._crit_edge2215 ]
  %1235 = phi i32 [ %.pre2713, %._crit_edge2817 ], [ %1149, %._crit_edge2215 ]
  %1236 = phi i32 [ %.pre2715, %._crit_edge2817 ], [ %1150, %._crit_edge2215 ]
  %1237 = phi i32 [ %.pre2717, %._crit_edge2817 ], [ %1151, %._crit_edge2215 ]
  %1238 = phi i32 [ %.pre2719, %._crit_edge2817 ], [ %1152, %._crit_edge2215 ]
  %1239 = phi i32 [ %.pre2721, %._crit_edge2817 ], [ %1153, %._crit_edge2215 ]
  %1240 = phi i32 [ %.pre2723, %._crit_edge2817 ], [ %1154, %._crit_edge2215 ]
  %1241 = phi i32 [ %.pre2725, %._crit_edge2817 ], [ %1155, %._crit_edge2215 ]
  %1242 = phi i32 [ %.pre2727, %._crit_edge2817 ], [ %1156, %._crit_edge2215 ]
  %1243 = phi i32 [ %.pre2729, %._crit_edge2817 ], [ %1157, %._crit_edge2215 ]
  %1244 = phi i32 [ %.pre2731, %._crit_edge2817 ], [ %1158, %._crit_edge2215 ]
  %1245 = phi i32 [ %.pre2733, %._crit_edge2817 ], [ %1159, %._crit_edge2215 ]
  %1246 = phi i32 [ %.pre2735, %._crit_edge2817 ], [ %1160, %._crit_edge2215 ]
  %1247 = phi i32 [ %.pre2737, %._crit_edge2817 ], [ %1161, %._crit_edge2215 ]
  %1248 = phi i32 [ %.pre2739, %._crit_edge2817 ], [ %1162, %._crit_edge2215 ]
  %1249 = phi i32 [ %.pre2741, %._crit_edge2817 ], [ %1163, %._crit_edge2215 ]
  %1250 = phi i32 [ %.pre2743, %._crit_edge2817 ], [ %1164, %._crit_edge2215 ]
  %1251 = phi i32 [ %.pre2745, %._crit_edge2817 ], [ %1165, %._crit_edge2215 ]
  %1252 = phi i32 [ %.pre2747, %._crit_edge2817 ], [ %1166, %._crit_edge2215 ]
  %1253 = phi i32 [ %.pre2749, %._crit_edge2817 ], [ %1167, %._crit_edge2215 ]
  %1254 = phi ptr [ %.pre2751, %._crit_edge2817 ], [ %1168, %._crit_edge2215 ]
  %1255 = phi ptr [ %.pre2753, %._crit_edge2817 ], [ %1169, %._crit_edge2215 ]
  %1256 = phi ptr [ %.pre2755, %._crit_edge2817 ], [ %1170, %._crit_edge2215 ]
  %.promoted2219 = phi i32 [ %.promoted2219.pre, %._crit_edge2817 ], [ %1179, %._crit_edge2215 ]
  store i32 24, ptr %4, align 8, !tbaa !11
  %1257 = getelementptr inbounds i8, ptr %0, i64 36
  %1258 = icmp sgt i32 %.promoted2219, 0
  br i1 %1258, label %.._crit_edge2222_crit_edge, label %.lr.ph2221

.._crit_edge2222_crit_edge:                       ; preds = %1208
  %.phi.trans.insert2820 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2821 = load i32, ptr %.phi.trans.insert2820, align 8, !tbaa !37
  br label %._crit_edge2222

.lr.ph2221:                                       ; preds = %1208
  %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
  %.promoted2225 = load i32, ptr %1260, align 8, !tbaa !38
  br label %1271

._crit_edge2222:                                  ; preds = %1291, %.._crit_edge2222_crit_edge
  %1264 = phi i32 [ %.pre2821, %.._crit_edge2222_crit_edge ], [ %1281, %1291 ]
  %.lcssa2066 = phi i32 [ %.promoted2219, %.._crit_edge2222_crit_edge ], [ %1282, %1291 ]
  %1265 = add nsw i32 %.lcssa2066, -1
  %1266 = lshr i32 %1264, %1265
  store i32 %1265, ptr %1257, align 4, !tbaa !12
  %1267 = trunc i32 %1266 to i8
  %1268 = and i8 %1267, 1
  %1269 = getelementptr inbounds i8, ptr %0, i64 20
  store i8 %1268, ptr %1269, align 4, !tbaa !55
  %1270 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 0, ptr %1270, align 8, !tbaa !56
  br label %1293

1271:                                             ; preds = %.lr.ph2221, %1291
  %1272 = phi i32 [ %.promoted2225, %.lr.ph2221 ], [ %1284, %1291 ]
  %1273 = phi i32 [ %.promoted2219, %.lr.ph2221 ], [ %1282, %1291 ]
  %1274 = icmp eq i32 %1272, 0
  br i1 %1274, label %.loopexit, label %1275

1275:                                             ; preds = %1271
  %1276 = load i32, ptr %1261, align 8, !tbaa !37
  %1277 = shl i32 %1276, 8
  %1278 = load ptr, ptr %1259, align 8, !tbaa !40
  %1279 = load i8, ptr %1278, align 1, !tbaa !41
  %1280 = zext i8 %1279 to i32
  %1281 = or disjoint i32 %1277, %1280
  store i32 %1281, ptr %1261, align 8, !tbaa !37
  %1282 = add nsw i32 %1273, 8
  store i32 %1282, ptr %1257, align 4, !tbaa !12
  %1283 = getelementptr inbounds i8, ptr %1278, i64 1
  store ptr %1283, ptr %1259, align 8, !tbaa !40
  %1284 = add i32 %1272, -1
  store i32 %1284, ptr %1260, align 8, !tbaa !38
  %1285 = load i32, ptr %1262, align 4, !tbaa !42
  %1286 = add i32 %1285, 1
  store i32 %1286, ptr %1262, align 4, !tbaa !42
  %1287 = icmp eq i32 %1286, 0
  br i1 %1287, label %1288, label %1291

1288:                                             ; preds = %1275
  %1289 = load i32, ptr %1263, align 8, !tbaa !43
  %1290 = add i32 %1289, 1
  store i32 %1290, ptr %1263, align 8, !tbaa !43
  br label %1291

1291:                                             ; preds = %1288, %1275
  %1292 = icmp sgt i32 %1273, -8
  br i1 %1292, label %._crit_edge2222, label %1271

1293:                                             ; preds = %._crit_edge2822, %._crit_edge2222
  %1294 = phi ptr [ %58, %._crit_edge2822 ], [ %1209, %._crit_edge2222 ]
  %1295 = phi ptr [ %57, %._crit_edge2822 ], [ %1210, %._crit_edge2222 ]
  %1296 = phi ptr [ %56, %._crit_edge2822 ], [ %1211, %._crit_edge2222 ]
  %1297 = phi ptr [ %55, %._crit_edge2822 ], [ %1212, %._crit_edge2222 ]
  %1298 = phi ptr [ %54, %._crit_edge2822 ], [ %1213, %._crit_edge2222 ]
  %1299 = phi ptr [ %53, %._crit_edge2822 ], [ %1214, %._crit_edge2222 ]
  %1300 = phi ptr [ %52, %._crit_edge2822 ], [ %1215, %._crit_edge2222 ]
  %1301 = phi ptr [ %51, %._crit_edge2822 ], [ %1216, %._crit_edge2222 ]
  %1302 = phi ptr [ %50, %._crit_edge2822 ], [ %1217, %._crit_edge2222 ]
  %1303 = phi ptr [ %49, %._crit_edge2822 ], [ %1218, %._crit_edge2222 ]
  %1304 = phi ptr [ %48, %._crit_edge2822 ], [ %1219, %._crit_edge2222 ]
  %1305 = phi ptr [ %47, %._crit_edge2822 ], [ %1220, %._crit_edge2222 ]
  %1306 = phi ptr [ %46, %._crit_edge2822 ], [ %1221, %._crit_edge2222 ]
  %1307 = phi ptr [ %45, %._crit_edge2822 ], [ %1222, %._crit_edge2222 ]
  %1308 = phi ptr [ %44, %._crit_edge2822 ], [ %1223, %._crit_edge2222 ]
  %1309 = phi ptr [ %43, %._crit_edge2822 ], [ %1224, %._crit_edge2222 ]
  %1310 = phi ptr [ %42, %._crit_edge2822 ], [ %1225, %._crit_edge2222 ]
  %1311 = phi ptr [ %41, %._crit_edge2822 ], [ %1226, %._crit_edge2222 ]
  %1312 = phi ptr [ %40, %._crit_edge2822 ], [ %1227, %._crit_edge2222 ]
  %1313 = phi ptr [ %39, %._crit_edge2822 ], [ %1228, %._crit_edge2222 ]
  %1314 = phi ptr [ %38, %._crit_edge2822 ], [ %1229, %._crit_edge2222 ]
  %1315 = phi ptr [ %37, %._crit_edge2822 ], [ %1230, %._crit_edge2222 ]
  %1316 = phi ptr [ %36, %._crit_edge2822 ], [ %1231, %._crit_edge2222 ]
  %1317 = phi ptr [ %35, %._crit_edge2822 ], [ %1232, %._crit_edge2222 ]
  %1318 = phi i32 [ %.pre, %._crit_edge2822 ], [ %1233, %._crit_edge2222 ]
  %1319 = phi i32 [ %.pre2711, %._crit_edge2822 ], [ %1234, %._crit_edge2222 ]
  %1320 = phi i32 [ %.pre2713, %._crit_edge2822 ], [ %1235, %._crit_edge2222 ]
  %1321 = phi i32 [ %.pre2715, %._crit_edge2822 ], [ %1236, %._crit_edge2222 ]
  %1322 = phi i32 [ %.pre2717, %._crit_edge2822 ], [ %1237, %._crit_edge2222 ]
  %1323 = phi i32 [ %.pre2719, %._crit_edge2822 ], [ %1238, %._crit_edge2222 ]
  %1324 = phi i32 [ %.pre2721, %._crit_edge2822 ], [ %1239, %._crit_edge2222 ]
  %1325 = phi i32 [ %.pre2723, %._crit_edge2822 ], [ %1240, %._crit_edge2222 ]
  %1326 = phi i32 [ %.pre2725, %._crit_edge2822 ], [ %1241, %._crit_edge2222 ]
  %1327 = phi i32 [ %.pre2727, %._crit_edge2822 ], [ %1242, %._crit_edge2222 ]
  %1328 = phi i32 [ %.pre2729, %._crit_edge2822 ], [ %1243, %._crit_edge2222 ]
  %1329 = phi i32 [ %.pre2731, %._crit_edge2822 ], [ %1244, %._crit_edge2222 ]
  %1330 = phi i32 [ %.pre2733, %._crit_edge2822 ], [ %1245, %._crit_edge2222 ]
  %1331 = phi i32 [ %.pre2735, %._crit_edge2822 ], [ %1246, %._crit_edge2222 ]
  %1332 = phi i32 [ %.pre2737, %._crit_edge2822 ], [ %1247, %._crit_edge2222 ]
  %1333 = phi i32 [ %.pre2739, %._crit_edge2822 ], [ %1248, %._crit_edge2222 ]
  %1334 = phi i32 [ %.pre2741, %._crit_edge2822 ], [ %1249, %._crit_edge2222 ]
  %1335 = phi i32 [ %.pre2743, %._crit_edge2822 ], [ %1250, %._crit_edge2222 ]
  %1336 = phi i32 [ %.pre2745, %._crit_edge2822 ], [ %1251, %._crit_edge2222 ]
  %1337 = phi i32 [ %.pre2747, %._crit_edge2822 ], [ %1252, %._crit_edge2222 ]
  %1338 = phi i32 [ %.pre2749, %._crit_edge2822 ], [ %1253, %._crit_edge2222 ]
  %1339 = phi ptr [ %.pre2751, %._crit_edge2822 ], [ %1254, %._crit_edge2222 ]
  %1340 = phi ptr [ %.pre2753, %._crit_edge2822 ], [ %1255, %._crit_edge2222 ]
  %1341 = phi ptr [ %.pre2755, %._crit_edge2822 ], [ %1256, %._crit_edge2222 ]
  %.promoted2226 = phi i32 [ %.promoted2226.pre, %._crit_edge2822 ], [ %1265, %._crit_edge2222 ]
  store i32 25, ptr %4, align 8, !tbaa !11
  %1342 = getelementptr inbounds i8, ptr %0, i64 36
  %1343 = icmp sgt i32 %.promoted2226, 7
  br i1 %1343, label %.._crit_edge2229_crit_edge, label %.lr.ph2228

.._crit_edge2229_crit_edge:                       ; preds = %1293
  %.phi.trans.insert2825 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2826 = load i32, ptr %.phi.trans.insert2825, align 8, !tbaa !37
  br label %._crit_edge2229

.lr.ph2228:                                       ; preds = %1293
  %1344 = load ptr, ptr %0, align 8, !tbaa !5
  %1345 = getelementptr inbounds i8, ptr %1344, i64 8
  %1346 = getelementptr inbounds i8, ptr %0, i64 32
  %1347 = getelementptr inbounds i8, ptr %1344, i64 12
  %1348 = getelementptr inbounds i8, ptr %1344, i64 16
  %.promoted2232 = load i32, ptr %1345, align 8, !tbaa !38
  br label %1357

._crit_edge2229:                                  ; preds = %1377, %.._crit_edge2229_crit_edge
  %1349 = phi i32 [ %.pre2826, %.._crit_edge2229_crit_edge ], [ %1367, %1377 ]
  %.lcssa2062 = phi i32 [ %.promoted2226, %.._crit_edge2229_crit_edge ], [ %1368, %1377 ]
  %1350 = add nsw i32 %.lcssa2062, -8
  %1351 = lshr i32 %1349, %1350
  store i32 %1350, ptr %1342, align 4, !tbaa !12
  %1352 = getelementptr inbounds i8, ptr %0, i64 56
  %1353 = load i32, ptr %1352, align 8, !tbaa !56
  %1354 = shl i32 %1353, 8
  %1355 = and i32 %1351, 255
  %1356 = or disjoint i32 %1354, %1355
  store i32 %1356, ptr %1352, align 8, !tbaa !56
  br label %1379

1357:                                             ; preds = %.lr.ph2228, %1377
  %1358 = phi i32 [ %.promoted2232, %.lr.ph2228 ], [ %1370, %1377 ]
  %1359 = phi i32 [ %.promoted2226, %.lr.ph2228 ], [ %1368, %1377 ]
  %1360 = icmp eq i32 %1358, 0
  br i1 %1360, label %.loopexit, label %1361

1361:                                             ; preds = %1357
  %1362 = load i32, ptr %1346, align 8, !tbaa !37
  %1363 = shl i32 %1362, 8
  %1364 = load ptr, ptr %1344, align 8, !tbaa !40
  %1365 = load i8, ptr %1364, align 1, !tbaa !41
  %1366 = zext i8 %1365 to i32
  %1367 = or disjoint i32 %1363, %1366
  store i32 %1367, ptr %1346, align 8, !tbaa !37
  %1368 = add nsw i32 %1359, 8
  store i32 %1368, ptr %1342, align 4, !tbaa !12
  %1369 = getelementptr inbounds i8, ptr %1364, i64 1
  store ptr %1369, ptr %1344, align 8, !tbaa !40
  %1370 = add i32 %1358, -1
  store i32 %1370, ptr %1345, align 8, !tbaa !38
  %1371 = load i32, ptr %1347, align 4, !tbaa !42
  %1372 = add i32 %1371, 1
  store i32 %1372, ptr %1347, align 4, !tbaa !42
  %1373 = icmp eq i32 %1372, 0
  br i1 %1373, label %1374, label %1377

1374:                                             ; preds = %1361
  %1375 = load i32, ptr %1348, align 8, !tbaa !43
  %1376 = add i32 %1375, 1
  store i32 %1376, ptr %1348, align 8, !tbaa !43
  br label %1377

1377:                                             ; preds = %1374, %1361
  %1378 = icmp sgt i32 %1359, -1
  br i1 %1378, label %._crit_edge2229, label %1357

1379:                                             ; preds = %._crit_edge2827, %._crit_edge2229
  %1380 = phi ptr [ %58, %._crit_edge2827 ], [ %1294, %._crit_edge2229 ]
  %1381 = phi ptr [ %57, %._crit_edge2827 ], [ %1295, %._crit_edge2229 ]
  %1382 = phi ptr [ %56, %._crit_edge2827 ], [ %1296, %._crit_edge2229 ]
  %1383 = phi ptr [ %55, %._crit_edge2827 ], [ %1297, %._crit_edge2229 ]
  %1384 = phi ptr [ %54, %._crit_edge2827 ], [ %1298, %._crit_edge2229 ]
  %1385 = phi ptr [ %53, %._crit_edge2827 ], [ %1299, %._crit_edge2229 ]
  %1386 = phi ptr [ %52, %._crit_edge2827 ], [ %1300, %._crit_edge2229 ]
  %1387 = phi ptr [ %51, %._crit_edge2827 ], [ %1301, %._crit_edge2229 ]
  %1388 = phi ptr [ %50, %._crit_edge2827 ], [ %1302, %._crit_edge2229 ]
  %1389 = phi ptr [ %49, %._crit_edge2827 ], [ %1303, %._crit_edge2229 ]
  %1390 = phi ptr [ %48, %._crit_edge2827 ], [ %1304, %._crit_edge2229 ]
  %1391 = phi ptr [ %47, %._crit_edge2827 ], [ %1305, %._crit_edge2229 ]
  %1392 = phi ptr [ %46, %._crit_edge2827 ], [ %1306, %._crit_edge2229 ]
  %1393 = phi ptr [ %45, %._crit_edge2827 ], [ %1307, %._crit_edge2229 ]
  %1394 = phi ptr [ %44, %._crit_edge2827 ], [ %1308, %._crit_edge2229 ]
  %1395 = phi ptr [ %43, %._crit_edge2827 ], [ %1309, %._crit_edge2229 ]
  %1396 = phi ptr [ %42, %._crit_edge2827 ], [ %1310, %._crit_edge2229 ]
  %1397 = phi ptr [ %41, %._crit_edge2827 ], [ %1311, %._crit_edge2229 ]
  %1398 = phi ptr [ %40, %._crit_edge2827 ], [ %1312, %._crit_edge2229 ]
  %1399 = phi ptr [ %39, %._crit_edge2827 ], [ %1313, %._crit_edge2229 ]
  %1400 = phi ptr [ %38, %._crit_edge2827 ], [ %1314, %._crit_edge2229 ]
  %1401 = phi ptr [ %37, %._crit_edge2827 ], [ %1315, %._crit_edge2229 ]
  %1402 = phi ptr [ %36, %._crit_edge2827 ], [ %1316, %._crit_edge2229 ]
  %1403 = phi ptr [ %35, %._crit_edge2827 ], [ %1317, %._crit_edge2229 ]
  %1404 = phi i32 [ %.pre, %._crit_edge2827 ], [ %1318, %._crit_edge2229 ]
  %1405 = phi i32 [ %.pre2711, %._crit_edge2827 ], [ %1319, %._crit_edge2229 ]
  %1406 = phi i32 [ %.pre2713, %._crit_edge2827 ], [ %1320, %._crit_edge2229 ]
  %1407 = phi i32 [ %.pre2715, %._crit_edge2827 ], [ %1321, %._crit_edge2229 ]
  %1408 = phi i32 [ %.pre2717, %._crit_edge2827 ], [ %1322, %._crit_edge2229 ]
  %1409 = phi i32 [ %.pre2719, %._crit_edge2827 ], [ %1323, %._crit_edge2229 ]
  %1410 = phi i32 [ %.pre2721, %._crit_edge2827 ], [ %1324, %._crit_edge2229 ]
  %1411 = phi i32 [ %.pre2723, %._crit_edge2827 ], [ %1325, %._crit_edge2229 ]
  %1412 = phi i32 [ %.pre2725, %._crit_edge2827 ], [ %1326, %._crit_edge2229 ]
  %1413 = phi i32 [ %.pre2727, %._crit_edge2827 ], [ %1327, %._crit_edge2229 ]
  %1414 = phi i32 [ %.pre2729, %._crit_edge2827 ], [ %1328, %._crit_edge2229 ]
  %1415 = phi i32 [ %.pre2731, %._crit_edge2827 ], [ %1329, %._crit_edge2229 ]
  %1416 = phi i32 [ %.pre2733, %._crit_edge2827 ], [ %1330, %._crit_edge2229 ]
  %1417 = phi i32 [ %.pre2735, %._crit_edge2827 ], [ %1331, %._crit_edge2229 ]
  %1418 = phi i32 [ %.pre2737, %._crit_edge2827 ], [ %1332, %._crit_edge2229 ]
  %1419 = phi i32 [ %.pre2739, %._crit_edge2827 ], [ %1333, %._crit_edge2229 ]
  %1420 = phi i32 [ %.pre2741, %._crit_edge2827 ], [ %1334, %._crit_edge2229 ]
  %1421 = phi i32 [ %.pre2743, %._crit_edge2827 ], [ %1335, %._crit_edge2229 ]
  %1422 = phi i32 [ %.pre2745, %._crit_edge2827 ], [ %1336, %._crit_edge2229 ]
  %1423 = phi i32 [ %.pre2747, %._crit_edge2827 ], [ %1337, %._crit_edge2229 ]
  %1424 = phi i32 [ %.pre2749, %._crit_edge2827 ], [ %1338, %._crit_edge2229 ]
  %1425 = phi ptr [ %.pre2751, %._crit_edge2827 ], [ %1339, %._crit_edge2229 ]
  %1426 = phi ptr [ %.pre2753, %._crit_edge2827 ], [ %1340, %._crit_edge2229 ]
  %1427 = phi ptr [ %.pre2755, %._crit_edge2827 ], [ %1341, %._crit_edge2229 ]
  %.promoted2233 = phi i32 [ %.promoted2233.pre, %._crit_edge2827 ], [ %1350, %._crit_edge2229 ]
  store i32 26, ptr %4, align 8, !tbaa !11
  %1428 = getelementptr inbounds i8, ptr %0, i64 36
  %1429 = icmp sgt i32 %.promoted2233, 7
  br i1 %1429, label %.._crit_edge2236_crit_edge, label %.lr.ph2235

.._crit_edge2236_crit_edge:                       ; preds = %1379
  %.phi.trans.insert2830 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2831 = load i32, ptr %.phi.trans.insert2830, align 8, !tbaa !37
  br label %._crit_edge2236

.lr.ph2235:                                       ; preds = %1379
  %1430 = load ptr, ptr %0, align 8, !tbaa !5
  %1431 = getelementptr inbounds i8, ptr %1430, i64 8
  %1432 = getelementptr inbounds i8, ptr %0, i64 32
  %1433 = getelementptr inbounds i8, ptr %1430, i64 12
  %1434 = getelementptr inbounds i8, ptr %1430, i64 16
  %.promoted2239 = load i32, ptr %1431, align 8, !tbaa !38
  br label %1443

._crit_edge2236:                                  ; preds = %1463, %.._crit_edge2236_crit_edge
  %1435 = phi i32 [ %.pre2831, %.._crit_edge2236_crit_edge ], [ %1453, %1463 ]
  %.lcssa2058 = phi i32 [ %.promoted2233, %.._crit_edge2236_crit_edge ], [ %1454, %1463 ]
  %1436 = add nsw i32 %.lcssa2058, -8
  %1437 = lshr i32 %1435, %1436
  store i32 %1436, ptr %1428, align 4, !tbaa !12
  %1438 = getelementptr inbounds i8, ptr %0, i64 56
  %1439 = load i32, ptr %1438, align 8, !tbaa !56
  %1440 = shl i32 %1439, 8
  %1441 = and i32 %1437, 255
  %1442 = or disjoint i32 %1440, %1441
  store i32 %1442, ptr %1438, align 8, !tbaa !56
  br label %1465

1443:                                             ; preds = %.lr.ph2235, %1463
  %1444 = phi i32 [ %.promoted2239, %.lr.ph2235 ], [ %1456, %1463 ]
  %1445 = phi i32 [ %.promoted2233, %.lr.ph2235 ], [ %1454, %1463 ]
  %1446 = icmp eq i32 %1444, 0
  br i1 %1446, label %.loopexit, label %1447

1447:                                             ; preds = %1443
  %1448 = load i32, ptr %1432, align 8, !tbaa !37
  %1449 = shl i32 %1448, 8
  %1450 = load ptr, ptr %1430, align 8, !tbaa !40
  %1451 = load i8, ptr %1450, align 1, !tbaa !41
  %1452 = zext i8 %1451 to i32
  %1453 = or disjoint i32 %1449, %1452
  store i32 %1453, ptr %1432, align 8, !tbaa !37
  %1454 = add nsw i32 %1445, 8
  store i32 %1454, ptr %1428, align 4, !tbaa !12
  %1455 = getelementptr inbounds i8, ptr %1450, i64 1
  store ptr %1455, ptr %1430, align 8, !tbaa !40
  %1456 = add i32 %1444, -1
  store i32 %1456, ptr %1431, align 8, !tbaa !38
  %1457 = load i32, ptr %1433, align 4, !tbaa !42
  %1458 = add i32 %1457, 1
  store i32 %1458, ptr %1433, align 4, !tbaa !42
  %1459 = icmp eq i32 %1458, 0
  br i1 %1459, label %1460, label %1463

1460:                                             ; preds = %1447
  %1461 = load i32, ptr %1434, align 8, !tbaa !43
  %1462 = add i32 %1461, 1
  store i32 %1462, ptr %1434, align 8, !tbaa !43
  br label %1463

1463:                                             ; preds = %1460, %1447
  %1464 = icmp sgt i32 %1445, -1
  br i1 %1464, label %._crit_edge2236, label %1443

1465:                                             ; preds = %._crit_edge2832, %._crit_edge2236
  %1466 = phi ptr [ %58, %._crit_edge2832 ], [ %1380, %._crit_edge2236 ]
  %1467 = phi ptr [ %57, %._crit_edge2832 ], [ %1381, %._crit_edge2236 ]
  %1468 = phi ptr [ %56, %._crit_edge2832 ], [ %1382, %._crit_edge2236 ]
  %1469 = phi ptr [ %55, %._crit_edge2832 ], [ %1383, %._crit_edge2236 ]
  %1470 = phi ptr [ %54, %._crit_edge2832 ], [ %1384, %._crit_edge2236 ]
  %1471 = phi ptr [ %53, %._crit_edge2832 ], [ %1385, %._crit_edge2236 ]
  %1472 = phi ptr [ %52, %._crit_edge2832 ], [ %1386, %._crit_edge2236 ]
  %1473 = phi ptr [ %51, %._crit_edge2832 ], [ %1387, %._crit_edge2236 ]
  %1474 = phi ptr [ %50, %._crit_edge2832 ], [ %1388, %._crit_edge2236 ]
  %1475 = phi ptr [ %49, %._crit_edge2832 ], [ %1389, %._crit_edge2236 ]
  %1476 = phi ptr [ %48, %._crit_edge2832 ], [ %1390, %._crit_edge2236 ]
  %1477 = phi ptr [ %47, %._crit_edge2832 ], [ %1391, %._crit_edge2236 ]
  %1478 = phi ptr [ %46, %._crit_edge2832 ], [ %1392, %._crit_edge2236 ]
  %1479 = phi ptr [ %45, %._crit_edge2832 ], [ %1393, %._crit_edge2236 ]
  %1480 = phi ptr [ %44, %._crit_edge2832 ], [ %1394, %._crit_edge2236 ]
  %1481 = phi ptr [ %43, %._crit_edge2832 ], [ %1395, %._crit_edge2236 ]
  %1482 = phi ptr [ %42, %._crit_edge2832 ], [ %1396, %._crit_edge2236 ]
  %1483 = phi ptr [ %41, %._crit_edge2832 ], [ %1397, %._crit_edge2236 ]
  %1484 = phi ptr [ %40, %._crit_edge2832 ], [ %1398, %._crit_edge2236 ]
  %1485 = phi ptr [ %39, %._crit_edge2832 ], [ %1399, %._crit_edge2236 ]
  %1486 = phi ptr [ %38, %._crit_edge2832 ], [ %1400, %._crit_edge2236 ]
  %1487 = phi ptr [ %37, %._crit_edge2832 ], [ %1401, %._crit_edge2236 ]
  %1488 = phi ptr [ %36, %._crit_edge2832 ], [ %1402, %._crit_edge2236 ]
  %1489 = phi ptr [ %35, %._crit_edge2832 ], [ %1403, %._crit_edge2236 ]
  %1490 = phi i32 [ %.pre, %._crit_edge2832 ], [ %1404, %._crit_edge2236 ]
  %1491 = phi i32 [ %.pre2711, %._crit_edge2832 ], [ %1405, %._crit_edge2236 ]
  %1492 = phi i32 [ %.pre2713, %._crit_edge2832 ], [ %1406, %._crit_edge2236 ]
  %1493 = phi i32 [ %.pre2715, %._crit_edge2832 ], [ %1407, %._crit_edge2236 ]
  %1494 = phi i32 [ %.pre2717, %._crit_edge2832 ], [ %1408, %._crit_edge2236 ]
  %1495 = phi i32 [ %.pre2719, %._crit_edge2832 ], [ %1409, %._crit_edge2236 ]
  %1496 = phi i32 [ %.pre2721, %._crit_edge2832 ], [ %1410, %._crit_edge2236 ]
  %1497 = phi i32 [ %.pre2723, %._crit_edge2832 ], [ %1411, %._crit_edge2236 ]
  %1498 = phi i32 [ %.pre2725, %._crit_edge2832 ], [ %1412, %._crit_edge2236 ]
  %1499 = phi i32 [ %.pre2727, %._crit_edge2832 ], [ %1413, %._crit_edge2236 ]
  %1500 = phi i32 [ %.pre2729, %._crit_edge2832 ], [ %1414, %._crit_edge2236 ]
  %1501 = phi i32 [ %.pre2731, %._crit_edge2832 ], [ %1415, %._crit_edge2236 ]
  %1502 = phi i32 [ %.pre2733, %._crit_edge2832 ], [ %1416, %._crit_edge2236 ]
  %1503 = phi i32 [ %.pre2735, %._crit_edge2832 ], [ %1417, %._crit_edge2236 ]
  %1504 = phi i32 [ %.pre2737, %._crit_edge2832 ], [ %1418, %._crit_edge2236 ]
  %1505 = phi i32 [ %.pre2739, %._crit_edge2832 ], [ %1419, %._crit_edge2236 ]
  %1506 = phi i32 [ %.pre2741, %._crit_edge2832 ], [ %1420, %._crit_edge2236 ]
  %1507 = phi i32 [ %.pre2743, %._crit_edge2832 ], [ %1421, %._crit_edge2236 ]
  %1508 = phi i32 [ %.pre2745, %._crit_edge2832 ], [ %1422, %._crit_edge2236 ]
  %1509 = phi i32 [ %.pre2747, %._crit_edge2832 ], [ %1423, %._crit_edge2236 ]
  %1510 = phi i32 [ %.pre2749, %._crit_edge2832 ], [ %1424, %._crit_edge2236 ]
  %1511 = phi ptr [ %.pre2751, %._crit_edge2832 ], [ %1425, %._crit_edge2236 ]
  %1512 = phi ptr [ %.pre2753, %._crit_edge2832 ], [ %1426, %._crit_edge2236 ]
  %1513 = phi ptr [ %.pre2755, %._crit_edge2832 ], [ %1427, %._crit_edge2236 ]
  %.promoted2240 = phi i32 [ %.promoted2240.pre, %._crit_edge2832 ], [ %1436, %._crit_edge2236 ]
  store i32 27, ptr %4, align 8, !tbaa !11
  %1514 = getelementptr inbounds i8, ptr %0, i64 36
  %1515 = icmp sgt i32 %.promoted2240, 7
  br i1 %1515, label %.._crit_edge2243_crit_edge, label %.lr.ph2242

.._crit_edge2243_crit_edge:                       ; preds = %1465
  %.phi.trans.insert2835 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2836 = load i32, ptr %.phi.trans.insert2835, align 8, !tbaa !37
  br label %._crit_edge2243

.lr.ph2242:                                       ; preds = %1465
  %1516 = load ptr, ptr %0, align 8, !tbaa !5
  %1517 = getelementptr inbounds i8, ptr %1516, i64 8
  %1518 = getelementptr inbounds i8, ptr %0, i64 32
  %1519 = getelementptr inbounds i8, ptr %1516, i64 12
  %1520 = getelementptr inbounds i8, ptr %1516, i64 16
  %.promoted2246 = load i32, ptr %1517, align 8, !tbaa !38
  br label %1530

._crit_edge2243:                                  ; preds = %1550, %.._crit_edge2243_crit_edge
  %1521 = phi i32 [ %.pre2836, %.._crit_edge2243_crit_edge ], [ %1540, %1550 ]
  %.lcssa2054 = phi i32 [ %.promoted2240, %.._crit_edge2243_crit_edge ], [ %1541, %1550 ]
  %1522 = add nsw i32 %.lcssa2054, -8
  %1523 = lshr i32 %1521, %1522
  store i32 %1522, ptr %1514, align 4, !tbaa !12
  %1524 = getelementptr inbounds i8, ptr %0, i64 56
  %1525 = load i32, ptr %1524, align 8, !tbaa !56
  %1526 = shl i32 %1525, 8
  %1527 = and i32 %1523, 255
  %1528 = or disjoint i32 %1526, %1527
  store i32 %1528, ptr %1524, align 8, !tbaa !56
  %1529 = icmp slt i32 %1526, 0
  br i1 %1529, label %.loopexit, label %1552

1530:                                             ; preds = %.lr.ph2242, %1550
  %1531 = phi i32 [ %.promoted2246, %.lr.ph2242 ], [ %1543, %1550 ]
  %1532 = phi i32 [ %.promoted2240, %.lr.ph2242 ], [ %1541, %1550 ]
  %1533 = icmp eq i32 %1531, 0
  br i1 %1533, label %.loopexit, label %1534

1534:                                             ; preds = %1530
  %1535 = load i32, ptr %1518, align 8, !tbaa !37
  %1536 = shl i32 %1535, 8
  %1537 = load ptr, ptr %1516, align 8, !tbaa !40
  %1538 = load i8, ptr %1537, align 1, !tbaa !41
  %1539 = zext i8 %1538 to i32
  %1540 = or disjoint i32 %1536, %1539
  store i32 %1540, ptr %1518, align 8, !tbaa !37
  %1541 = add nsw i32 %1532, 8
  store i32 %1541, ptr %1514, align 4, !tbaa !12
  %1542 = getelementptr inbounds i8, ptr %1537, i64 1
  store ptr %1542, ptr %1516, align 8, !tbaa !40
  %1543 = add i32 %1531, -1
  store i32 %1543, ptr %1517, align 8, !tbaa !38
  %1544 = load i32, ptr %1519, align 4, !tbaa !42
  %1545 = add i32 %1544, 1
  store i32 %1545, ptr %1519, align 4, !tbaa !42
  %1546 = icmp eq i32 %1545, 0
  br i1 %1546, label %1547, label %1550

1547:                                             ; preds = %1534
  %1548 = load i32, ptr %1520, align 8, !tbaa !43
  %1549 = add i32 %1548, 1
  store i32 %1549, ptr %1520, align 8, !tbaa !43
  br label %1550

1550:                                             ; preds = %1547, %1534
  %1551 = icmp sgt i32 %1532, -1
  br i1 %1551, label %._crit_edge2243, label %1530

1552:                                             ; preds = %._crit_edge2243
  %1553 = getelementptr inbounds i8, ptr %0, i64 40
  %1554 = load i32, ptr %1553, align 8, !tbaa !44
  %1555 = mul nsw i32 %1554, 100000
  %1556 = or disjoint i32 %1555, 10
  %1557 = icmp sgt i32 %1528, %1556
  br i1 %1557, label %.loopexit, label %1558

1558:                                             ; preds = %1552, %._crit_edge2416
  %1559 = phi ptr [ %1609, %._crit_edge2416 ], [ %1466, %1552 ]
  %1560 = phi ptr [ %1610, %._crit_edge2416 ], [ %1467, %1552 ]
  %1561 = phi ptr [ %1611, %._crit_edge2416 ], [ %1468, %1552 ]
  %1562 = phi ptr [ %1612, %._crit_edge2416 ], [ %1469, %1552 ]
  %1563 = phi ptr [ %1613, %._crit_edge2416 ], [ %1470, %1552 ]
  %1564 = phi ptr [ %1614, %._crit_edge2416 ], [ %1471, %1552 ]
  %1565 = phi ptr [ %1615, %._crit_edge2416 ], [ %1472, %1552 ]
  %1566 = phi ptr [ %1616, %._crit_edge2416 ], [ %1473, %1552 ]
  %1567 = phi ptr [ %1617, %._crit_edge2416 ], [ %1474, %1552 ]
  %1568 = phi ptr [ %1618, %._crit_edge2416 ], [ %1475, %1552 ]
  %1569 = phi ptr [ %1619, %._crit_edge2416 ], [ %1476, %1552 ]
  %1570 = phi ptr [ %1620, %._crit_edge2416 ], [ %1477, %1552 ]
  %1571 = phi ptr [ %1621, %._crit_edge2416 ], [ %1478, %1552 ]
  %1572 = phi ptr [ %1622, %._crit_edge2416 ], [ %1479, %1552 ]
  %1573 = phi ptr [ %1623, %._crit_edge2416 ], [ %1480, %1552 ]
  %1574 = phi ptr [ %1624, %._crit_edge2416 ], [ %1481, %1552 ]
  %1575 = phi ptr [ %1625, %._crit_edge2416 ], [ %1482, %1552 ]
  %1576 = phi ptr [ %1626, %._crit_edge2416 ], [ %1483, %1552 ]
  %1577 = phi ptr [ %1627, %._crit_edge2416 ], [ %1484, %1552 ]
  %1578 = phi ptr [ %1628, %._crit_edge2416 ], [ %1485, %1552 ]
  %1579 = phi ptr [ %1629, %._crit_edge2416 ], [ %1486, %1552 ]
  %1580 = phi ptr [ %1630, %._crit_edge2416 ], [ %1487, %1552 ]
  %1581 = phi ptr [ %1631, %._crit_edge2416 ], [ %1488, %1552 ]
  %1582 = phi ptr [ %1632, %._crit_edge2416 ], [ %1489, %1552 ]
  %1583 = phi i32 [ %1633, %._crit_edge2416 ], [ %1491, %1552 ]
  %1584 = phi i32 [ %1634, %._crit_edge2416 ], [ %1492, %1552 ]
  %1585 = phi i32 [ %1635, %._crit_edge2416 ], [ %1493, %1552 ]
  %1586 = phi i32 [ %1636, %._crit_edge2416 ], [ %1494, %1552 ]
  %1587 = phi i32 [ %1637, %._crit_edge2416 ], [ %1495, %1552 ]
  %1588 = phi i32 [ %1638, %._crit_edge2416 ], [ %1496, %1552 ]
  %1589 = phi i32 [ %1639, %._crit_edge2416 ], [ %1497, %1552 ]
  %1590 = phi i32 [ %1640, %._crit_edge2416 ], [ %1498, %1552 ]
  %1591 = phi i32 [ %1641, %._crit_edge2416 ], [ %1499, %1552 ]
  %1592 = phi i32 [ %1642, %._crit_edge2416 ], [ %1500, %1552 ]
  %1593 = phi i32 [ %1643, %._crit_edge2416 ], [ %1501, %1552 ]
  %1594 = phi i32 [ %1644, %._crit_edge2416 ], [ %1502, %1552 ]
  %1595 = phi i32 [ %1645, %._crit_edge2416 ], [ %1503, %1552 ]
  %1596 = phi i32 [ %1646, %._crit_edge2416 ], [ %1504, %1552 ]
  %1597 = phi i32 [ %1647, %._crit_edge2416 ], [ %1505, %1552 ]
  %1598 = phi i32 [ %1648, %._crit_edge2416 ], [ %1506, %1552 ]
  %1599 = phi i32 [ %1649, %._crit_edge2416 ], [ %1507, %1552 ]
  %1600 = phi i32 [ %1650, %._crit_edge2416 ], [ %1508, %1552 ]
  %1601 = phi i32 [ %1651, %._crit_edge2416 ], [ %1509, %1552 ]
  %1602 = phi i32 [ %1652, %._crit_edge2416 ], [ %1510, %1552 ]
  %1603 = phi ptr [ %1653, %._crit_edge2416 ], [ %1511, %1552 ]
  %1604 = phi ptr [ %1654, %._crit_edge2416 ], [ %1512, %1552 ]
  %1605 = phi ptr [ %1655, %._crit_edge2416 ], [ %1513, %1552 ]
  %.01403 = phi i32 [ %1670, %._crit_edge2416 ], [ 0, %1552 ]
  %1606 = icmp slt i32 %.01403, 16
  br i1 %1606, label %1608, label %.preheader1933

.preheader1933:                                   ; preds = %1558
  %1607 = getelementptr inbounds i8, ptr %0, i64 3196
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(256) %1607, i8 0, i64 256, i1 false), !tbaa !41
  br label %.loopexit1934

1608:                                             ; preds = %1558, %34
  %1609 = phi ptr [ %58, %34 ], [ %1559, %1558 ]
  %1610 = phi ptr [ %57, %34 ], [ %1560, %1558 ]
  %1611 = phi ptr [ %56, %34 ], [ %1561, %1558 ]
  %1612 = phi ptr [ %55, %34 ], [ %1562, %1558 ]
  %1613 = phi ptr [ %54, %34 ], [ %1563, %1558 ]
  %1614 = phi ptr [ %53, %34 ], [ %1564, %1558 ]
  %1615 = phi ptr [ %52, %34 ], [ %1565, %1558 ]
  %1616 = phi ptr [ %51, %34 ], [ %1566, %1558 ]
  %1617 = phi ptr [ %50, %34 ], [ %1567, %1558 ]
  %1618 = phi ptr [ %49, %34 ], [ %1568, %1558 ]
  %1619 = phi ptr [ %48, %34 ], [ %1569, %1558 ]
  %1620 = phi ptr [ %47, %34 ], [ %1570, %1558 ]
  %1621 = phi ptr [ %46, %34 ], [ %1571, %1558 ]
  %1622 = phi ptr [ %45, %34 ], [ %1572, %1558 ]
  %1623 = phi ptr [ %44, %34 ], [ %1573, %1558 ]
  %1624 = phi ptr [ %43, %34 ], [ %1574, %1558 ]
  %1625 = phi ptr [ %42, %34 ], [ %1575, %1558 ]
  %1626 = phi ptr [ %41, %34 ], [ %1576, %1558 ]
  %1627 = phi ptr [ %40, %34 ], [ %1577, %1558 ]
  %1628 = phi ptr [ %39, %34 ], [ %1578, %1558 ]
  %1629 = phi ptr [ %38, %34 ], [ %1579, %1558 ]
  %1630 = phi ptr [ %37, %34 ], [ %1580, %1558 ]
  %1631 = phi ptr [ %36, %34 ], [ %1581, %1558 ]
  %1632 = phi ptr [ %35, %34 ], [ %1582, %1558 ]
  %1633 = phi i32 [ %.pre2711, %34 ], [ %1583, %1558 ]
  %1634 = phi i32 [ %.pre2713, %34 ], [ %1584, %1558 ]
  %1635 = phi i32 [ %.pre2715, %34 ], [ %1585, %1558 ]
  %1636 = phi i32 [ %.pre2717, %34 ], [ %1586, %1558 ]
  %1637 = phi i32 [ %.pre2719, %34 ], [ %1587, %1558 ]
  %1638 = phi i32 [ %.pre2721, %34 ], [ %1588, %1558 ]
  %1639 = phi i32 [ %.pre2723, %34 ], [ %1589, %1558 ]
  %1640 = phi i32 [ %.pre2725, %34 ], [ %1590, %1558 ]
  %1641 = phi i32 [ %.pre2727, %34 ], [ %1591, %1558 ]
  %1642 = phi i32 [ %.pre2729, %34 ], [ %1592, %1558 ]
  %1643 = phi i32 [ %.pre2731, %34 ], [ %1593, %1558 ]
  %1644 = phi i32 [ %.pre2733, %34 ], [ %1594, %1558 ]
  %1645 = phi i32 [ %.pre2735, %34 ], [ %1595, %1558 ]
  %1646 = phi i32 [ %.pre2737, %34 ], [ %1596, %1558 ]
  %1647 = phi i32 [ %.pre2739, %34 ], [ %1597, %1558 ]
  %1648 = phi i32 [ %.pre2741, %34 ], [ %1598, %1558 ]
  %1649 = phi i32 [ %.pre2743, %34 ], [ %1599, %1558 ]
  %1650 = phi i32 [ %.pre2745, %34 ], [ %1600, %1558 ]
  %1651 = phi i32 [ %.pre2747, %34 ], [ %1601, %1558 ]
  %1652 = phi i32 [ %.pre2749, %34 ], [ %1602, %1558 ]
  %1653 = phi ptr [ %.pre2751, %34 ], [ %1603, %1558 ]
  %1654 = phi ptr [ %.pre2753, %34 ], [ %1604, %1558 ]
  %1655 = phi ptr [ %.pre2755, %34 ], [ %1605, %1558 ]
  %.11404 = phi i32 [ %.pre, %34 ], [ %.01403, %1558 ]
  store i32 28, ptr %4, align 8, !tbaa !11
  %1656 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2413 = load i32, ptr %1656, align 4, !tbaa !12
  %1657 = icmp sgt i32 %.promoted2413, 0
  br i1 %1657, label %.._crit_edge2416_crit_edge, label %.lr.ph2415

.._crit_edge2416_crit_edge:                       ; preds = %1608
  %.phi.trans.insert2883 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2884 = load i32, ptr %.phi.trans.insert2883, align 8, !tbaa !37
  br label %._crit_edge2416

.lr.ph2415:                                       ; preds = %1608
  %1658 = load ptr, ptr %0, align 8, !tbaa !5
  %1659 = getelementptr inbounds i8, ptr %1658, i64 8
  %1660 = getelementptr inbounds i8, ptr %0, i64 32
  %1661 = getelementptr inbounds i8, ptr %1658, i64 12
  %1662 = getelementptr inbounds i8, ptr %1658, i64 16
  %.promoted2419 = load i32, ptr %1659, align 8, !tbaa !38
  br label %1671

._crit_edge2416:                                  ; preds = %1691, %.._crit_edge2416_crit_edge
  %1663 = phi i32 [ %.pre2884, %.._crit_edge2416_crit_edge ], [ %1681, %1691 ]
  %.lcssa1988 = phi i32 [ %.promoted2413, %.._crit_edge2416_crit_edge ], [ %1682, %1691 ]
  %1664 = add nsw i32 %.lcssa1988, -1
  store i32 %1664, ptr %1656, align 4, !tbaa !12
  %1665 = shl nuw i32 1, %1664
  %1666 = and i32 %1663, %1665
  %.not1871 = icmp ne i32 %1666, 0
  %1667 = getelementptr inbounds i8, ptr %0, i64 3452
  %1668 = sext i32 %.11404 to i64
  %1669 = getelementptr inbounds [16 x i8], ptr %1667, i64 0, i64 %1668
  %. = zext i1 %.not1871 to i8
  store i8 %., ptr %1669, align 1, !tbaa !41
  %1670 = add nsw i32 %.11404, 1
  br label %1558, !llvm.loop !57

1671:                                             ; preds = %.lr.ph2415, %1691
  %1672 = phi i32 [ %.promoted2419, %.lr.ph2415 ], [ %1684, %1691 ]
  %1673 = phi i32 [ %.promoted2413, %.lr.ph2415 ], [ %1682, %1691 ]
  %1674 = icmp eq i32 %1672, 0
  br i1 %1674, label %.loopexit, label %1675

1675:                                             ; preds = %1671
  %1676 = load i32, ptr %1660, align 8, !tbaa !37
  %1677 = shl i32 %1676, 8
  %1678 = load ptr, ptr %1658, align 8, !tbaa !40
  %1679 = load i8, ptr %1678, align 1, !tbaa !41
  %1680 = zext i8 %1679 to i32
  %1681 = or disjoint i32 %1677, %1680
  store i32 %1681, ptr %1660, align 8, !tbaa !37
  %1682 = add nsw i32 %1673, 8
  store i32 %1682, ptr %1656, align 4, !tbaa !12
  %1683 = getelementptr inbounds i8, ptr %1678, i64 1
  store ptr %1683, ptr %1658, align 8, !tbaa !40
  %1684 = add i32 %1672, -1
  store i32 %1684, ptr %1659, align 8, !tbaa !38
  %1685 = load i32, ptr %1661, align 4, !tbaa !42
  %1686 = add i32 %1685, 1
  store i32 %1686, ptr %1661, align 4, !tbaa !42
  %1687 = icmp eq i32 %1686, 0
  br i1 %1687, label %1688, label %1691

1688:                                             ; preds = %1675
  %1689 = load i32, ptr %1662, align 8, !tbaa !43
  %1690 = add i32 %1689, 1
  store i32 %1690, ptr %1662, align 8, !tbaa !43
  br label %1691

1691:                                             ; preds = %1688, %1675
  %1692 = icmp sgt i32 %1673, -8
  br i1 %1692, label %._crit_edge2416, label %1671

.loopexit1934:                                    ; preds = %.preheader1933, %1881
  %1693 = phi ptr [ %1882, %1881 ], [ %1559, %.preheader1933 ]
  %1694 = phi ptr [ %1883, %1881 ], [ %1560, %.preheader1933 ]
  %1695 = phi ptr [ %1884, %1881 ], [ %1561, %.preheader1933 ]
  %1696 = phi ptr [ %1885, %1881 ], [ %1562, %.preheader1933 ]
  %1697 = phi ptr [ %1886, %1881 ], [ %1563, %.preheader1933 ]
  %1698 = phi ptr [ %1887, %1881 ], [ %1564, %.preheader1933 ]
  %1699 = phi ptr [ %1888, %1881 ], [ %1565, %.preheader1933 ]
  %1700 = phi ptr [ %1889, %1881 ], [ %1566, %.preheader1933 ]
  %1701 = phi ptr [ %1890, %1881 ], [ %1567, %.preheader1933 ]
  %1702 = phi ptr [ %1891, %1881 ], [ %1568, %.preheader1933 ]
  %1703 = phi ptr [ %1892, %1881 ], [ %1569, %.preheader1933 ]
  %1704 = phi ptr [ %1893, %1881 ], [ %1570, %.preheader1933 ]
  %1705 = phi ptr [ %1894, %1881 ], [ %1571, %.preheader1933 ]
  %1706 = phi ptr [ %1895, %1881 ], [ %1572, %.preheader1933 ]
  %1707 = phi ptr [ %1896, %1881 ], [ %1573, %.preheader1933 ]
  %1708 = phi ptr [ %1897, %1881 ], [ %1574, %.preheader1933 ]
  %1709 = phi ptr [ %1898, %1881 ], [ %1575, %.preheader1933 ]
  %1710 = phi ptr [ %1899, %1881 ], [ %1576, %.preheader1933 ]
  %1711 = phi ptr [ %1900, %1881 ], [ %1577, %.preheader1933 ]
  %1712 = phi ptr [ %1901, %1881 ], [ %1578, %.preheader1933 ]
  %1713 = phi ptr [ %1902, %1881 ], [ %1579, %.preheader1933 ]
  %1714 = phi ptr [ %1903, %1881 ], [ %1580, %.preheader1933 ]
  %1715 = phi ptr [ %1904, %1881 ], [ %1581, %.preheader1933 ]
  %1716 = phi ptr [ %1905, %1881 ], [ %1582, %.preheader1933 ]
  %1717 = phi i32 [ %1906, %1881 ], [ %1584, %.preheader1933 ]
  %1718 = phi i32 [ %1907, %1881 ], [ %1585, %.preheader1933 ]
  %1719 = phi i32 [ %1908, %1881 ], [ %1586, %.preheader1933 ]
  %1720 = phi i32 [ %1909, %1881 ], [ %1587, %.preheader1933 ]
  %1721 = phi i32 [ %1910, %1881 ], [ %1588, %.preheader1933 ]
  %1722 = phi i32 [ %1911, %1881 ], [ %1589, %.preheader1933 ]
  %1723 = phi i32 [ %1912, %1881 ], [ %1590, %.preheader1933 ]
  %1724 = phi i32 [ %1913, %1881 ], [ %1591, %.preheader1933 ]
  %1725 = phi i32 [ %1914, %1881 ], [ %1592, %.preheader1933 ]
  %1726 = phi i32 [ %1915, %1881 ], [ %1593, %.preheader1933 ]
  %1727 = phi i32 [ %1916, %1881 ], [ %1594, %.preheader1933 ]
  %1728 = phi i32 [ %1917, %1881 ], [ %1595, %.preheader1933 ]
  %1729 = phi i32 [ %1918, %1881 ], [ %1596, %.preheader1933 ]
  %1730 = phi i32 [ %1919, %1881 ], [ %1597, %.preheader1933 ]
  %1731 = phi i32 [ %1920, %1881 ], [ %1598, %.preheader1933 ]
  %1732 = phi i32 [ %1921, %1881 ], [ %1599, %.preheader1933 ]
  %1733 = phi i32 [ %1922, %1881 ], [ %1600, %.preheader1933 ]
  %1734 = phi i32 [ %1923, %1881 ], [ %1601, %.preheader1933 ]
  %1735 = phi i32 [ %1924, %1881 ], [ %1602, %.preheader1933 ]
  %1736 = phi ptr [ %1925, %1881 ], [ %1603, %.preheader1933 ]
  %1737 = phi ptr [ %1926, %1881 ], [ %1604, %.preheader1933 ]
  %1738 = phi ptr [ %1927, %1881 ], [ %1605, %.preheader1933 ]
  %.01405 = phi i32 [ %.31408, %1881 ], [ %1583, %.preheader1933 ]
  %.3 = phi i32 [ %1928, %1881 ], [ 0, %.preheader1933 ]
  %1739 = icmp slt i32 %.3, 16
  br i1 %1739, label %1740, label %1929

1740:                                             ; preds = %.loopexit1934
  %1741 = getelementptr inbounds i8, ptr %0, i64 3452
  %1742 = sext i32 %.3 to i64
  %1743 = getelementptr inbounds [16 x i8], ptr %1741, i64 0, i64 %1742
  %1744 = load i8, ptr %1743, align 1, !tbaa !41
  %.not1869 = icmp eq i8 %1744, 0
  br i1 %.not1869, label %1881, label %1745

1745:                                             ; preds = %1740, %1879
  %1746 = phi ptr [ %1794, %1879 ], [ %1693, %1740 ]
  %1747 = phi ptr [ %1795, %1879 ], [ %1694, %1740 ]
  %1748 = phi ptr [ %1796, %1879 ], [ %1695, %1740 ]
  %1749 = phi ptr [ %1797, %1879 ], [ %1696, %1740 ]
  %1750 = phi ptr [ %1798, %1879 ], [ %1697, %1740 ]
  %1751 = phi ptr [ %1799, %1879 ], [ %1698, %1740 ]
  %1752 = phi ptr [ %1800, %1879 ], [ %1699, %1740 ]
  %1753 = phi ptr [ %1801, %1879 ], [ %1700, %1740 ]
  %1754 = phi ptr [ %1802, %1879 ], [ %1701, %1740 ]
  %1755 = phi ptr [ %1803, %1879 ], [ %1702, %1740 ]
  %1756 = phi ptr [ %1804, %1879 ], [ %1703, %1740 ]
  %1757 = phi ptr [ %1805, %1879 ], [ %1704, %1740 ]
  %1758 = phi ptr [ %1806, %1879 ], [ %1705, %1740 ]
  %1759 = phi ptr [ %1807, %1879 ], [ %1706, %1740 ]
  %1760 = phi ptr [ %1808, %1879 ], [ %1707, %1740 ]
  %1761 = phi ptr [ %1809, %1879 ], [ %1708, %1740 ]
  %1762 = phi ptr [ %1810, %1879 ], [ %1709, %1740 ]
  %1763 = phi ptr [ %1811, %1879 ], [ %1710, %1740 ]
  %1764 = phi ptr [ %1812, %1879 ], [ %1711, %1740 ]
  %1765 = phi ptr [ %1813, %1879 ], [ %1712, %1740 ]
  %1766 = phi ptr [ %1814, %1879 ], [ %1713, %1740 ]
  %1767 = phi ptr [ %1815, %1879 ], [ %1714, %1740 ]
  %1768 = phi ptr [ %1816, %1879 ], [ %1715, %1740 ]
  %1769 = phi ptr [ %1817, %1879 ], [ %1716, %1740 ]
  %1770 = phi i32 [ %1818, %1879 ], [ %1717, %1740 ]
  %1771 = phi i32 [ %1819, %1879 ], [ %1718, %1740 ]
  %1772 = phi i32 [ %1820, %1879 ], [ %1719, %1740 ]
  %1773 = phi i32 [ %1821, %1879 ], [ %1720, %1740 ]
  %1774 = phi i32 [ %1822, %1879 ], [ %1721, %1740 ]
  %1775 = phi i32 [ %1823, %1879 ], [ %1722, %1740 ]
  %1776 = phi i32 [ %1824, %1879 ], [ %1723, %1740 ]
  %1777 = phi i32 [ %1825, %1879 ], [ %1724, %1740 ]
  %1778 = phi i32 [ %1826, %1879 ], [ %1725, %1740 ]
  %1779 = phi i32 [ %1827, %1879 ], [ %1726, %1740 ]
  %1780 = phi i32 [ %1828, %1879 ], [ %1727, %1740 ]
  %1781 = phi i32 [ %1829, %1879 ], [ %1728, %1740 ]
  %1782 = phi i32 [ %1830, %1879 ], [ %1729, %1740 ]
  %1783 = phi i32 [ %1831, %1879 ], [ %1730, %1740 ]
  %1784 = phi i32 [ %1832, %1879 ], [ %1731, %1740 ]
  %1785 = phi i32 [ %1833, %1879 ], [ %1732, %1740 ]
  %1786 = phi i32 [ %1834, %1879 ], [ %1733, %1740 ]
  %1787 = phi i32 [ %1835, %1879 ], [ %1734, %1740 ]
  %1788 = phi i32 [ %1836, %1879 ], [ %1735, %1740 ]
  %1789 = phi ptr [ %1837, %1879 ], [ %1736, %1740 ]
  %1790 = phi ptr [ %1838, %1879 ], [ %1737, %1740 ]
  %1791 = phi ptr [ %1839, %1879 ], [ %1738, %1740 ]
  %.11406 = phi i32 [ %1880, %1879 ], [ 0, %1740 ]
  %.4 = phi i32 [ %.5, %1879 ], [ %.3, %1740 ]
  %1792 = icmp slt i32 %.11406, 16
  br i1 %1792, label %1793, label %1881

1793:                                             ; preds = %1745, %34
  %1794 = phi ptr [ %58, %34 ], [ %1746, %1745 ]
  %1795 = phi ptr [ %57, %34 ], [ %1747, %1745 ]
  %1796 = phi ptr [ %56, %34 ], [ %1748, %1745 ]
  %1797 = phi ptr [ %55, %34 ], [ %1749, %1745 ]
  %1798 = phi ptr [ %54, %34 ], [ %1750, %1745 ]
  %1799 = phi ptr [ %53, %34 ], [ %1751, %1745 ]
  %1800 = phi ptr [ %52, %34 ], [ %1752, %1745 ]
  %1801 = phi ptr [ %51, %34 ], [ %1753, %1745 ]
  %1802 = phi ptr [ %50, %34 ], [ %1754, %1745 ]
  %1803 = phi ptr [ %49, %34 ], [ %1755, %1745 ]
  %1804 = phi ptr [ %48, %34 ], [ %1756, %1745 ]
  %1805 = phi ptr [ %47, %34 ], [ %1757, %1745 ]
  %1806 = phi ptr [ %46, %34 ], [ %1758, %1745 ]
  %1807 = phi ptr [ %45, %34 ], [ %1759, %1745 ]
  %1808 = phi ptr [ %44, %34 ], [ %1760, %1745 ]
  %1809 = phi ptr [ %43, %34 ], [ %1761, %1745 ]
  %1810 = phi ptr [ %42, %34 ], [ %1762, %1745 ]
  %1811 = phi ptr [ %41, %34 ], [ %1763, %1745 ]
  %1812 = phi ptr [ %40, %34 ], [ %1764, %1745 ]
  %1813 = phi ptr [ %39, %34 ], [ %1765, %1745 ]
  %1814 = phi ptr [ %38, %34 ], [ %1766, %1745 ]
  %1815 = phi ptr [ %37, %34 ], [ %1767, %1745 ]
  %1816 = phi ptr [ %36, %34 ], [ %1768, %1745 ]
  %1817 = phi ptr [ %35, %34 ], [ %1769, %1745 ]
  %1818 = phi i32 [ %.pre2713, %34 ], [ %1770, %1745 ]
  %1819 = phi i32 [ %.pre2715, %34 ], [ %1771, %1745 ]
  %1820 = phi i32 [ %.pre2717, %34 ], [ %1772, %1745 ]
  %1821 = phi i32 [ %.pre2719, %34 ], [ %1773, %1745 ]
  %1822 = phi i32 [ %.pre2721, %34 ], [ %1774, %1745 ]
  %1823 = phi i32 [ %.pre2723, %34 ], [ %1775, %1745 ]
  %1824 = phi i32 [ %.pre2725, %34 ], [ %1776, %1745 ]
  %1825 = phi i32 [ %.pre2727, %34 ], [ %1777, %1745 ]
  %1826 = phi i32 [ %.pre2729, %34 ], [ %1778, %1745 ]
  %1827 = phi i32 [ %.pre2731, %34 ], [ %1779, %1745 ]
  %1828 = phi i32 [ %.pre2733, %34 ], [ %1780, %1745 ]
  %1829 = phi i32 [ %.pre2735, %34 ], [ %1781, %1745 ]
  %1830 = phi i32 [ %.pre2737, %34 ], [ %1782, %1745 ]
  %1831 = phi i32 [ %.pre2739, %34 ], [ %1783, %1745 ]
  %1832 = phi i32 [ %.pre2741, %34 ], [ %1784, %1745 ]
  %1833 = phi i32 [ %.pre2743, %34 ], [ %1785, %1745 ]
  %1834 = phi i32 [ %.pre2745, %34 ], [ %1786, %1745 ]
  %1835 = phi i32 [ %.pre2747, %34 ], [ %1787, %1745 ]
  %1836 = phi i32 [ %.pre2749, %34 ], [ %1788, %1745 ]
  %1837 = phi ptr [ %.pre2751, %34 ], [ %1789, %1745 ]
  %1838 = phi ptr [ %.pre2753, %34 ], [ %1790, %1745 ]
  %1839 = phi ptr [ %.pre2755, %34 ], [ %1791, %1745 ]
  %.21407 = phi i32 [ %.pre2711, %34 ], [ %.11406, %1745 ]
  %.5 = phi i32 [ %.pre, %34 ], [ %.4, %1745 ]
  store i32 29, ptr %4, align 8, !tbaa !11
  %1840 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2406 = load i32, ptr %1840, align 4, !tbaa !12
  %1841 = icmp sgt i32 %.promoted2406, 0
  br i1 %1841, label %.._crit_edge2409_crit_edge, label %.lr.ph2408

.._crit_edge2409_crit_edge:                       ; preds = %1793
  %.phi.trans.insert2881 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2882 = load i32, ptr %.phi.trans.insert2881, align 8, !tbaa !37
  br label %._crit_edge2409

.lr.ph2408:                                       ; preds = %1793
  %1842 = load ptr, ptr %0, align 8, !tbaa !5
  %1843 = getelementptr inbounds i8, ptr %1842, i64 8
  %1844 = getelementptr inbounds i8, ptr %0, i64 32
  %1845 = getelementptr inbounds i8, ptr %1842, i64 12
  %1846 = getelementptr inbounds i8, ptr %1842, i64 16
  %.promoted2412 = load i32, ptr %1843, align 8, !tbaa !38
  br label %1851

._crit_edge2409:                                  ; preds = %1871, %.._crit_edge2409_crit_edge
  %1847 = phi i32 [ %.pre2882, %.._crit_edge2409_crit_edge ], [ %1861, %1871 ]
  %.lcssa1992 = phi i32 [ %.promoted2406, %.._crit_edge2409_crit_edge ], [ %1862, %1871 ]
  %1848 = add nsw i32 %.lcssa1992, -1
  store i32 %1848, ptr %1840, align 4, !tbaa !12
  %1849 = shl nuw i32 1, %1848
  %1850 = and i32 %1847, %1849
  %.not1870 = icmp eq i32 %1850, 0
  br i1 %.not1870, label %1879, label %1873

1851:                                             ; preds = %.lr.ph2408, %1871
  %1852 = phi i32 [ %.promoted2412, %.lr.ph2408 ], [ %1864, %1871 ]
  %1853 = phi i32 [ %.promoted2406, %.lr.ph2408 ], [ %1862, %1871 ]
  %1854 = icmp eq i32 %1852, 0
  br i1 %1854, label %.loopexit, label %1855

1855:                                             ; preds = %1851
  %1856 = load i32, ptr %1844, align 8, !tbaa !37
  %1857 = shl i32 %1856, 8
  %1858 = load ptr, ptr %1842, align 8, !tbaa !40
  %1859 = load i8, ptr %1858, align 1, !tbaa !41
  %1860 = zext i8 %1859 to i32
  %1861 = or disjoint i32 %1857, %1860
  store i32 %1861, ptr %1844, align 8, !tbaa !37
  %1862 = add nsw i32 %1853, 8
  store i32 %1862, ptr %1840, align 4, !tbaa !12
  %1863 = getelementptr inbounds i8, ptr %1858, i64 1
  store ptr %1863, ptr %1842, align 8, !tbaa !40
  %1864 = add i32 %1852, -1
  store i32 %1864, ptr %1843, align 8, !tbaa !38
  %1865 = load i32, ptr %1845, align 4, !tbaa !42
  %1866 = add i32 %1865, 1
  store i32 %1866, ptr %1845, align 4, !tbaa !42
  %1867 = icmp eq i32 %1866, 0
  br i1 %1867, label %1868, label %1871

1868:                                             ; preds = %1855
  %1869 = load i32, ptr %1846, align 8, !tbaa !43
  %1870 = add i32 %1869, 1
  store i32 %1870, ptr %1846, align 8, !tbaa !43
  br label %1871

1871:                                             ; preds = %1868, %1855
  %1872 = icmp sgt i32 %1853, -8
  br i1 %1872, label %._crit_edge2409, label %1851

1873:                                             ; preds = %._crit_edge2409
  %1874 = getelementptr inbounds i8, ptr %0, i64 3196
  %1875 = shl nsw i32 %.5, 4
  %1876 = add nsw i32 %1875, %.21407
  %1877 = sext i32 %1876 to i64
  %1878 = getelementptr inbounds [256 x i8], ptr %1874, i64 0, i64 %1877
  store i8 1, ptr %1878, align 1, !tbaa !41
  br label %1879

1879:                                             ; preds = %._crit_edge2409, %1873
  %1880 = add nsw i32 %.21407, 1
  br label %1745, !llvm.loop !59

1881:                                             ; preds = %1740, %1745
  %1882 = phi ptr [ %1746, %1745 ], [ %1693, %1740 ]
  %1883 = phi ptr [ %1747, %1745 ], [ %1694, %1740 ]
  %1884 = phi ptr [ %1748, %1745 ], [ %1695, %1740 ]
  %1885 = phi ptr [ %1749, %1745 ], [ %1696, %1740 ]
  %1886 = phi ptr [ %1750, %1745 ], [ %1697, %1740 ]
  %1887 = phi ptr [ %1751, %1745 ], [ %1698, %1740 ]
  %1888 = phi ptr [ %1752, %1745 ], [ %1699, %1740 ]
  %1889 = phi ptr [ %1753, %1745 ], [ %1700, %1740 ]
  %1890 = phi ptr [ %1754, %1745 ], [ %1701, %1740 ]
  %1891 = phi ptr [ %1755, %1745 ], [ %1702, %1740 ]
  %1892 = phi ptr [ %1756, %1745 ], [ %1703, %1740 ]
  %1893 = phi ptr [ %1757, %1745 ], [ %1704, %1740 ]
  %1894 = phi ptr [ %1758, %1745 ], [ %1705, %1740 ]
  %1895 = phi ptr [ %1759, %1745 ], [ %1706, %1740 ]
  %1896 = phi ptr [ %1760, %1745 ], [ %1707, %1740 ]
  %1897 = phi ptr [ %1761, %1745 ], [ %1708, %1740 ]
  %1898 = phi ptr [ %1762, %1745 ], [ %1709, %1740 ]
  %1899 = phi ptr [ %1763, %1745 ], [ %1710, %1740 ]
  %1900 = phi ptr [ %1764, %1745 ], [ %1711, %1740 ]
  %1901 = phi ptr [ %1765, %1745 ], [ %1712, %1740 ]
  %1902 = phi ptr [ %1766, %1745 ], [ %1713, %1740 ]
  %1903 = phi ptr [ %1767, %1745 ], [ %1714, %1740 ]
  %1904 = phi ptr [ %1768, %1745 ], [ %1715, %1740 ]
  %1905 = phi ptr [ %1769, %1745 ], [ %1716, %1740 ]
  %1906 = phi i32 [ %1770, %1745 ], [ %1717, %1740 ]
  %1907 = phi i32 [ %1771, %1745 ], [ %1718, %1740 ]
  %1908 = phi i32 [ %1772, %1745 ], [ %1719, %1740 ]
  %1909 = phi i32 [ %1773, %1745 ], [ %1720, %1740 ]
  %1910 = phi i32 [ %1774, %1745 ], [ %1721, %1740 ]
  %1911 = phi i32 [ %1775, %1745 ], [ %1722, %1740 ]
  %1912 = phi i32 [ %1776, %1745 ], [ %1723, %1740 ]
  %1913 = phi i32 [ %1777, %1745 ], [ %1724, %1740 ]
  %1914 = phi i32 [ %1778, %1745 ], [ %1725, %1740 ]
  %1915 = phi i32 [ %1779, %1745 ], [ %1726, %1740 ]
  %1916 = phi i32 [ %1780, %1745 ], [ %1727, %1740 ]
  %1917 = phi i32 [ %1781, %1745 ], [ %1728, %1740 ]
  %1918 = phi i32 [ %1782, %1745 ], [ %1729, %1740 ]
  %1919 = phi i32 [ %1783, %1745 ], [ %1730, %1740 ]
  %1920 = phi i32 [ %1784, %1745 ], [ %1731, %1740 ]
  %1921 = phi i32 [ %1785, %1745 ], [ %1732, %1740 ]
  %1922 = phi i32 [ %1786, %1745 ], [ %1733, %1740 ]
  %1923 = phi i32 [ %1787, %1745 ], [ %1734, %1740 ]
  %1924 = phi i32 [ %1788, %1745 ], [ %1735, %1740 ]
  %1925 = phi ptr [ %1789, %1745 ], [ %1736, %1740 ]
  %1926 = phi ptr [ %1790, %1745 ], [ %1737, %1740 ]
  %1927 = phi ptr [ %1791, %1745 ], [ %1738, %1740 ]
  %.31408 = phi i32 [ %.11406, %1745 ], [ %.01405, %1740 ]
  %.6 = phi i32 [ %.4, %1745 ], [ %.3, %1740 ]
  %1928 = add nsw i32 %.6, 1
  br label %.loopexit1934, !llvm.loop !60

1929:                                             ; preds = %.loopexit1934
  tail call void @makeMaps_d(ptr noundef nonnull %0)
  %1930 = getelementptr inbounds i8, ptr %0, i64 3192
  %1931 = load i32, ptr %1930, align 8, !tbaa !61
  %1932 = icmp eq i32 %1931, 0
  br i1 %1932, label %.loopexit, label %1933

1933:                                             ; preds = %1929
  %1934 = add nsw i32 %1931, 2
  br label %1935

1935:                                             ; preds = %1933, %34
  %1936 = phi ptr [ %58, %34 ], [ %1693, %1933 ]
  %1937 = phi ptr [ %57, %34 ], [ %1694, %1933 ]
  %1938 = phi ptr [ %56, %34 ], [ %1695, %1933 ]
  %1939 = phi ptr [ %55, %34 ], [ %1696, %1933 ]
  %1940 = phi ptr [ %54, %34 ], [ %1697, %1933 ]
  %1941 = phi ptr [ %53, %34 ], [ %1698, %1933 ]
  %1942 = phi ptr [ %52, %34 ], [ %1699, %1933 ]
  %1943 = phi ptr [ %51, %34 ], [ %1700, %1933 ]
  %1944 = phi ptr [ %50, %34 ], [ %1701, %1933 ]
  %1945 = phi ptr [ %49, %34 ], [ %1702, %1933 ]
  %1946 = phi ptr [ %48, %34 ], [ %1703, %1933 ]
  %1947 = phi ptr [ %47, %34 ], [ %1704, %1933 ]
  %1948 = phi ptr [ %46, %34 ], [ %1705, %1933 ]
  %1949 = phi ptr [ %45, %34 ], [ %1706, %1933 ]
  %1950 = phi ptr [ %44, %34 ], [ %1707, %1933 ]
  %1951 = phi ptr [ %43, %34 ], [ %1708, %1933 ]
  %1952 = phi ptr [ %42, %34 ], [ %1709, %1933 ]
  %1953 = phi ptr [ %41, %34 ], [ %1710, %1933 ]
  %1954 = phi ptr [ %40, %34 ], [ %1711, %1933 ]
  %1955 = phi ptr [ %39, %34 ], [ %1712, %1933 ]
  %1956 = phi ptr [ %38, %34 ], [ %1713, %1933 ]
  %1957 = phi ptr [ %37, %34 ], [ %1714, %1933 ]
  %1958 = phi ptr [ %36, %34 ], [ %1715, %1933 ]
  %1959 = phi ptr [ %35, %34 ], [ %1716, %1933 ]
  %1960 = phi i32 [ %.pre2713, %34 ], [ %1717, %1933 ]
  %1961 = phi i32 [ %.pre2717, %34 ], [ %1719, %1933 ]
  %1962 = phi i32 [ %.pre2719, %34 ], [ %1720, %1933 ]
  %1963 = phi i32 [ %.pre2721, %34 ], [ %1721, %1933 ]
  %1964 = phi i32 [ %.pre2723, %34 ], [ %1722, %1933 ]
  %1965 = phi i32 [ %.pre2725, %34 ], [ %1723, %1933 ]
  %1966 = phi i32 [ %.pre2727, %34 ], [ %1724, %1933 ]
  %1967 = phi i32 [ %.pre2729, %34 ], [ %1725, %1933 ]
  %1968 = phi i32 [ %.pre2731, %34 ], [ %1726, %1933 ]
  %1969 = phi i32 [ %.pre2733, %34 ], [ %1727, %1933 ]
  %1970 = phi i32 [ %.pre2735, %34 ], [ %1728, %1933 ]
  %1971 = phi i32 [ %.pre2737, %34 ], [ %1729, %1933 ]
  %1972 = phi i32 [ %.pre2739, %34 ], [ %1730, %1933 ]
  %1973 = phi i32 [ %.pre2741, %34 ], [ %1731, %1933 ]
  %1974 = phi i32 [ %.pre2743, %34 ], [ %1732, %1933 ]
  %1975 = phi i32 [ %.pre2745, %34 ], [ %1733, %1933 ]
  %1976 = phi i32 [ %.pre2747, %34 ], [ %1734, %1933 ]
  %1977 = phi i32 [ %.pre2749, %34 ], [ %1735, %1933 ]
  %1978 = phi ptr [ %.pre2751, %34 ], [ %1736, %1933 ]
  %1979 = phi ptr [ %.pre2753, %34 ], [ %1737, %1933 ]
  %1980 = phi ptr [ %.pre2755, %34 ], [ %1738, %1933 ]
  %.01453 = phi i32 [ %.pre2715, %34 ], [ %1934, %1933 ]
  %.41409 = phi i32 [ %.pre2711, %34 ], [ %.01405, %1933 ]
  %.7 = phi i32 [ %.pre, %34 ], [ %.3, %1933 ]
  store i32 30, ptr %4, align 8, !tbaa !11
  %1981 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2248 = load i32, ptr %1981, align 4, !tbaa !12
  %1982 = icmp sgt i32 %.promoted2248, 2
  br i1 %1982, label %.._crit_edge2251_crit_edge, label %.lr.ph2250

.._crit_edge2251_crit_edge:                       ; preds = %1935
  %.phi.trans.insert2837 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2838 = load i32, ptr %.phi.trans.insert2837, align 8, !tbaa !37
  br label %._crit_edge2251

.lr.ph2250:                                       ; preds = %1935
  %1983 = load ptr, ptr %0, align 8, !tbaa !5
  %1984 = getelementptr inbounds i8, ptr %1983, i64 8
  %1985 = getelementptr inbounds i8, ptr %0, i64 32
  %1986 = getelementptr inbounds i8, ptr %1983, i64 12
  %1987 = getelementptr inbounds i8, ptr %1983, i64 16
  %.promoted2254 = load i32, ptr %1984, align 8, !tbaa !38
  br label %1992

._crit_edge2251:                                  ; preds = %2012, %.._crit_edge2251_crit_edge
  %1988 = phi i32 [ %.pre2838, %.._crit_edge2251_crit_edge ], [ %2002, %2012 ]
  %.lcssa2050 = phi i32 [ %.promoted2248, %.._crit_edge2251_crit_edge ], [ %2003, %2012 ]
  %1989 = add nsw i32 %.lcssa2050, -3
  %1990 = lshr i32 %1988, %1989
  %1991 = and i32 %1990, 7
  store i32 %1989, ptr %1981, align 4, !tbaa !12
  switch i32 %1991, label %2014 [
    i32 7, label %.loopexit
    i32 1, label %.loopexit
    i32 0, label %.loopexit
  ]

1992:                                             ; preds = %.lr.ph2250, %2012
  %1993 = phi i32 [ %.promoted2254, %.lr.ph2250 ], [ %2005, %2012 ]
  %1994 = phi i32 [ %.promoted2248, %.lr.ph2250 ], [ %2003, %2012 ]
  %1995 = icmp eq i32 %1993, 0
  br i1 %1995, label %.loopexit, label %1996

1996:                                             ; preds = %1992
  %1997 = load i32, ptr %1985, align 8, !tbaa !37
  %1998 = shl i32 %1997, 8
  %1999 = load ptr, ptr %1983, align 8, !tbaa !40
  %2000 = load i8, ptr %1999, align 1, !tbaa !41
  %2001 = zext i8 %2000 to i32
  %2002 = or disjoint i32 %1998, %2001
  store i32 %2002, ptr %1985, align 8, !tbaa !37
  %2003 = add nsw i32 %1994, 8
  store i32 %2003, ptr %1981, align 4, !tbaa !12
  %2004 = getelementptr inbounds i8, ptr %1999, i64 1
  store ptr %2004, ptr %1983, align 8, !tbaa !40
  %2005 = add i32 %1993, -1
  store i32 %2005, ptr %1984, align 8, !tbaa !38
  %2006 = load i32, ptr %1986, align 4, !tbaa !42
  %2007 = add i32 %2006, 1
  store i32 %2007, ptr %1986, align 4, !tbaa !42
  %2008 = icmp eq i32 %2007, 0
  br i1 %2008, label %2009, label %2012

2009:                                             ; preds = %1996
  %2010 = load i32, ptr %1987, align 8, !tbaa !43
  %2011 = add i32 %2010, 1
  store i32 %2011, ptr %1987, align 8, !tbaa !43
  br label %2012

2012:                                             ; preds = %2009, %1996
  %2013 = icmp sgt i32 %1994, -6
  br i1 %2013, label %._crit_edge2251, label %1992

2014:                                             ; preds = %._crit_edge2839, %._crit_edge2251
  %2015 = phi ptr [ %58, %._crit_edge2839 ], [ %1936, %._crit_edge2251 ]
  %2016 = phi ptr [ %57, %._crit_edge2839 ], [ %1937, %._crit_edge2251 ]
  %2017 = phi ptr [ %56, %._crit_edge2839 ], [ %1938, %._crit_edge2251 ]
  %2018 = phi ptr [ %55, %._crit_edge2839 ], [ %1939, %._crit_edge2251 ]
  %2019 = phi ptr [ %54, %._crit_edge2839 ], [ %1940, %._crit_edge2251 ]
  %2020 = phi ptr [ %53, %._crit_edge2839 ], [ %1941, %._crit_edge2251 ]
  %2021 = phi ptr [ %52, %._crit_edge2839 ], [ %1942, %._crit_edge2251 ]
  %2022 = phi ptr [ %51, %._crit_edge2839 ], [ %1943, %._crit_edge2251 ]
  %2023 = phi ptr [ %50, %._crit_edge2839 ], [ %1944, %._crit_edge2251 ]
  %2024 = phi ptr [ %49, %._crit_edge2839 ], [ %1945, %._crit_edge2251 ]
  %2025 = phi ptr [ %48, %._crit_edge2839 ], [ %1946, %._crit_edge2251 ]
  %2026 = phi ptr [ %47, %._crit_edge2839 ], [ %1947, %._crit_edge2251 ]
  %2027 = phi ptr [ %46, %._crit_edge2839 ], [ %1948, %._crit_edge2251 ]
  %2028 = phi ptr [ %45, %._crit_edge2839 ], [ %1949, %._crit_edge2251 ]
  %2029 = phi ptr [ %44, %._crit_edge2839 ], [ %1950, %._crit_edge2251 ]
  %2030 = phi ptr [ %43, %._crit_edge2839 ], [ %1951, %._crit_edge2251 ]
  %2031 = phi ptr [ %42, %._crit_edge2839 ], [ %1952, %._crit_edge2251 ]
  %2032 = phi ptr [ %41, %._crit_edge2839 ], [ %1953, %._crit_edge2251 ]
  %2033 = phi ptr [ %40, %._crit_edge2839 ], [ %1954, %._crit_edge2251 ]
  %2034 = phi ptr [ %39, %._crit_edge2839 ], [ %1955, %._crit_edge2251 ]
  %2035 = phi ptr [ %38, %._crit_edge2839 ], [ %1956, %._crit_edge2251 ]
  %2036 = phi ptr [ %37, %._crit_edge2839 ], [ %1957, %._crit_edge2251 ]
  %2037 = phi ptr [ %36, %._crit_edge2839 ], [ %1958, %._crit_edge2251 ]
  %2038 = phi ptr [ %35, %._crit_edge2839 ], [ %1959, %._crit_edge2251 ]
  %2039 = phi i32 [ %.pre2713, %._crit_edge2839 ], [ %1960, %._crit_edge2251 ]
  %2040 = phi i32 [ %.pre2719, %._crit_edge2839 ], [ %1962, %._crit_edge2251 ]
  %2041 = phi i32 [ %.pre2721, %._crit_edge2839 ], [ %1963, %._crit_edge2251 ]
  %2042 = phi i32 [ %.pre2723, %._crit_edge2839 ], [ %1964, %._crit_edge2251 ]
  %2043 = phi i32 [ %.pre2725, %._crit_edge2839 ], [ %1965, %._crit_edge2251 ]
  %2044 = phi i32 [ %.pre2727, %._crit_edge2839 ], [ %1966, %._crit_edge2251 ]
  %2045 = phi i32 [ %.pre2729, %._crit_edge2839 ], [ %1967, %._crit_edge2251 ]
  %2046 = phi i32 [ %.pre2731, %._crit_edge2839 ], [ %1968, %._crit_edge2251 ]
  %2047 = phi i32 [ %.pre2733, %._crit_edge2839 ], [ %1969, %._crit_edge2251 ]
  %2048 = phi i32 [ %.pre2735, %._crit_edge2839 ], [ %1970, %._crit_edge2251 ]
  %2049 = phi i32 [ %.pre2737, %._crit_edge2839 ], [ %1971, %._crit_edge2251 ]
  %2050 = phi i32 [ %.pre2739, %._crit_edge2839 ], [ %1972, %._crit_edge2251 ]
  %2051 = phi i32 [ %.pre2741, %._crit_edge2839 ], [ %1973, %._crit_edge2251 ]
  %2052 = phi i32 [ %.pre2743, %._crit_edge2839 ], [ %1974, %._crit_edge2251 ]
  %2053 = phi i32 [ %.pre2745, %._crit_edge2839 ], [ %1975, %._crit_edge2251 ]
  %2054 = phi i32 [ %.pre2747, %._crit_edge2839 ], [ %1976, %._crit_edge2251 ]
  %2055 = phi i32 [ %.pre2749, %._crit_edge2839 ], [ %1977, %._crit_edge2251 ]
  %2056 = phi ptr [ %.pre2751, %._crit_edge2839 ], [ %1978, %._crit_edge2251 ]
  %2057 = phi ptr [ %.pre2753, %._crit_edge2839 ], [ %1979, %._crit_edge2251 ]
  %2058 = phi ptr [ %.pre2755, %._crit_edge2839 ], [ %1980, %._crit_edge2251 ]
  %.promoted2255 = phi i32 [ %.promoted2255.pre, %._crit_edge2839 ], [ %1989, %._crit_edge2251 ]
  %.01476 = phi i32 [ %.pre2717, %._crit_edge2839 ], [ %1991, %._crit_edge2251 ]
  %.11454 = phi i32 [ %.pre2715, %._crit_edge2839 ], [ %.01453, %._crit_edge2251 ]
  %.51410 = phi i32 [ %.pre2711, %._crit_edge2839 ], [ %.41409, %._crit_edge2251 ]
  %.8 = phi i32 [ %.pre, %._crit_edge2839 ], [ %.7, %._crit_edge2251 ]
  store i32 31, ptr %4, align 8, !tbaa !11
  %2059 = getelementptr inbounds i8, ptr %0, i64 36
  %2060 = icmp sgt i32 %.promoted2255, 14
  br i1 %2060, label %.._crit_edge2258_crit_edge, label %.lr.ph2257

.._crit_edge2258_crit_edge:                       ; preds = %2014
  %.phi.trans.insert2842 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2843 = load i32, ptr %.phi.trans.insert2842, align 8, !tbaa !37
  br label %._crit_edge2258

.lr.ph2257:                                       ; preds = %2014
  %2061 = load ptr, ptr %0, align 8, !tbaa !5
  %2062 = getelementptr inbounds i8, ptr %2061, i64 8
  %2063 = getelementptr inbounds i8, ptr %0, i64 32
  %2064 = getelementptr inbounds i8, ptr %2061, i64 12
  %2065 = getelementptr inbounds i8, ptr %2061, i64 16
  %.promoted2261 = load i32, ptr %2062, align 8, !tbaa !38
  br label %2071

._crit_edge2258:                                  ; preds = %2091, %.._crit_edge2258_crit_edge
  %2066 = phi i32 [ %.pre2843, %.._crit_edge2258_crit_edge ], [ %2081, %2091 ]
  %.lcssa2046 = phi i32 [ %.promoted2255, %.._crit_edge2258_crit_edge ], [ %2082, %2091 ]
  %2067 = add nsw i32 %.lcssa2046, -15
  %2068 = lshr i32 %2066, %2067
  %2069 = and i32 %2068, 32767
  store i32 %2067, ptr %2059, align 4, !tbaa !12
  %2070 = icmp eq i32 %2069, 0
  br i1 %2070, label %.loopexit, label %2093

2071:                                             ; preds = %.lr.ph2257, %2091
  %2072 = phi i32 [ %.promoted2261, %.lr.ph2257 ], [ %2084, %2091 ]
  %2073 = phi i32 [ %.promoted2255, %.lr.ph2257 ], [ %2082, %2091 ]
  %2074 = icmp eq i32 %2072, 0
  br i1 %2074, label %.loopexit, label %2075

2075:                                             ; preds = %2071
  %2076 = load i32, ptr %2063, align 8, !tbaa !37
  %2077 = shl i32 %2076, 8
  %2078 = load ptr, ptr %2061, align 8, !tbaa !40
  %2079 = load i8, ptr %2078, align 1, !tbaa !41
  %2080 = zext i8 %2079 to i32
  %2081 = or disjoint i32 %2077, %2080
  store i32 %2081, ptr %2063, align 8, !tbaa !37
  %2082 = add nsw i32 %2073, 8
  store i32 %2082, ptr %2059, align 4, !tbaa !12
  %2083 = getelementptr inbounds i8, ptr %2078, i64 1
  store ptr %2083, ptr %2061, align 8, !tbaa !40
  %2084 = add i32 %2072, -1
  store i32 %2084, ptr %2062, align 8, !tbaa !38
  %2085 = load i32, ptr %2064, align 4, !tbaa !42
  %2086 = add i32 %2085, 1
  store i32 %2086, ptr %2064, align 4, !tbaa !42
  %2087 = icmp eq i32 %2086, 0
  br i1 %2087, label %2088, label %2091

2088:                                             ; preds = %2075
  %2089 = load i32, ptr %2065, align 8, !tbaa !43
  %2090 = add i32 %2089, 1
  store i32 %2090, ptr %2065, align 8, !tbaa !43
  br label %2091

2091:                                             ; preds = %2088, %2075
  %2092 = icmp sgt i32 %2073, 6
  br i1 %2092, label %._crit_edge2258, label %2071

2093:                                             ; preds = %._crit_edge2258, %2183
  %2094 = phi ptr [ %.ph, %2183 ], [ %2015, %._crit_edge2258 ]
  %2095 = phi ptr [ %.ph3399, %2183 ], [ %2016, %._crit_edge2258 ]
  %2096 = phi ptr [ %.ph3400, %2183 ], [ %2017, %._crit_edge2258 ]
  %2097 = phi ptr [ %.ph3401, %2183 ], [ %2018, %._crit_edge2258 ]
  %2098 = phi ptr [ %.ph3402, %2183 ], [ %2019, %._crit_edge2258 ]
  %2099 = phi ptr [ %.ph3403, %2183 ], [ %2020, %._crit_edge2258 ]
  %2100 = phi ptr [ %.ph3404, %2183 ], [ %2021, %._crit_edge2258 ]
  %2101 = phi ptr [ %.ph3405, %2183 ], [ %2022, %._crit_edge2258 ]
  %2102 = phi ptr [ %.ph3406, %2183 ], [ %2023, %._crit_edge2258 ]
  %2103 = phi ptr [ %.ph3407, %2183 ], [ %2024, %._crit_edge2258 ]
  %2104 = phi ptr [ %.ph3408, %2183 ], [ %2025, %._crit_edge2258 ]
  %2105 = phi ptr [ %.ph3409, %2183 ], [ %2026, %._crit_edge2258 ]
  %2106 = phi ptr [ %.ph3410, %2183 ], [ %2027, %._crit_edge2258 ]
  %2107 = phi ptr [ %.ph3411, %2183 ], [ %2028, %._crit_edge2258 ]
  %2108 = phi ptr [ %.ph3412, %2183 ], [ %2029, %._crit_edge2258 ]
  %2109 = phi ptr [ %.ph3413, %2183 ], [ %2030, %._crit_edge2258 ]
  %2110 = phi ptr [ %.ph3414, %2183 ], [ %2031, %._crit_edge2258 ]
  %2111 = phi ptr [ %.ph3415, %2183 ], [ %2032, %._crit_edge2258 ]
  %2112 = phi ptr [ %.ph3416, %2183 ], [ %2033, %._crit_edge2258 ]
  %2113 = phi ptr [ %.ph3417, %2183 ], [ %2034, %._crit_edge2258 ]
  %2114 = phi ptr [ %.ph3418, %2183 ], [ %2035, %._crit_edge2258 ]
  %2115 = phi ptr [ %.ph3419, %2183 ], [ %2036, %._crit_edge2258 ]
  %2116 = phi ptr [ %.ph3420, %2183 ], [ %2037, %._crit_edge2258 ]
  %2117 = phi ptr [ %.ph3421, %2183 ], [ %2038, %._crit_edge2258 ]
  %2118 = phi i32 [ %.ph3422, %2183 ], [ %2039, %._crit_edge2258 ]
  %2119 = phi i32 [ %.ph3423, %2183 ], [ %2041, %._crit_edge2258 ]
  %2120 = phi i32 [ %.ph3424, %2183 ], [ %2042, %._crit_edge2258 ]
  %2121 = phi i32 [ %.ph3425, %2183 ], [ %2043, %._crit_edge2258 ]
  %2122 = phi i32 [ %.ph3426, %2183 ], [ %2044, %._crit_edge2258 ]
  %2123 = phi i32 [ %.ph3427, %2183 ], [ %2045, %._crit_edge2258 ]
  %2124 = phi i32 [ %.ph3428, %2183 ], [ %2046, %._crit_edge2258 ]
  %2125 = phi i32 [ %.ph3429, %2183 ], [ %2047, %._crit_edge2258 ]
  %2126 = phi i32 [ %.ph3430, %2183 ], [ %2048, %._crit_edge2258 ]
  %2127 = phi i32 [ %.ph3431, %2183 ], [ %2049, %._crit_edge2258 ]
  %2128 = phi i32 [ %.ph3432, %2183 ], [ %2050, %._crit_edge2258 ]
  %2129 = phi i32 [ %.ph3433, %2183 ], [ %2051, %._crit_edge2258 ]
  %2130 = phi i32 [ %.ph3434, %2183 ], [ %2052, %._crit_edge2258 ]
  %2131 = phi i32 [ %.ph3435, %2183 ], [ %2053, %._crit_edge2258 ]
  %2132 = phi i32 [ %.ph3436, %2183 ], [ %2054, %._crit_edge2258 ]
  %2133 = phi i32 [ %.ph3437, %2183 ], [ %2055, %._crit_edge2258 ]
  %2134 = phi ptr [ %.ph3438, %2183 ], [ %2056, %._crit_edge2258 ]
  %2135 = phi ptr [ %.ph3439, %2183 ], [ %2057, %._crit_edge2258 ]
  %2136 = phi ptr [ %.ph3440, %2183 ], [ %2058, %._crit_edge2258 ]
  %.01498 = phi i32 [ %.21500.ph, %2183 ], [ %2069, %._crit_edge2258 ]
  %.11477 = phi i32 [ %.31479.ph, %2183 ], [ %.01476, %._crit_edge2258 ]
  %.21455 = phi i32 [ %.41457.ph, %2183 ], [ %.11454, %._crit_edge2258 ]
  %.61411 = phi i32 [ %.81413, %2183 ], [ %.51410, %._crit_edge2258 ]
  %.9 = phi i32 [ %2184, %2183 ], [ 0, %._crit_edge2258 ]
  %2137 = icmp slt i32 %.9, %.01498
  br i1 %2137, label %.preheader3398, label %2185

.preheader3398:                                   ; preds = %34, %2093
  %.ph = phi ptr [ %2094, %2093 ], [ %58, %34 ]
  %.ph3399 = phi ptr [ %2095, %2093 ], [ %57, %34 ]
  %.ph3400 = phi ptr [ %2096, %2093 ], [ %56, %34 ]
  %.ph3401 = phi ptr [ %2097, %2093 ], [ %55, %34 ]
  %.ph3402 = phi ptr [ %2098, %2093 ], [ %54, %34 ]
  %.ph3403 = phi ptr [ %2099, %2093 ], [ %53, %34 ]
  %.ph3404 = phi ptr [ %2100, %2093 ], [ %52, %34 ]
  %.ph3405 = phi ptr [ %2101, %2093 ], [ %51, %34 ]
  %.ph3406 = phi ptr [ %2102, %2093 ], [ %50, %34 ]
  %.ph3407 = phi ptr [ %2103, %2093 ], [ %49, %34 ]
  %.ph3408 = phi ptr [ %2104, %2093 ], [ %48, %34 ]
  %.ph3409 = phi ptr [ %2105, %2093 ], [ %47, %34 ]
  %.ph3410 = phi ptr [ %2106, %2093 ], [ %46, %34 ]
  %.ph3411 = phi ptr [ %2107, %2093 ], [ %45, %34 ]
  %.ph3412 = phi ptr [ %2108, %2093 ], [ %44, %34 ]
  %.ph3413 = phi ptr [ %2109, %2093 ], [ %43, %34 ]
  %.ph3414 = phi ptr [ %2110, %2093 ], [ %42, %34 ]
  %.ph3415 = phi ptr [ %2111, %2093 ], [ %41, %34 ]
  %.ph3416 = phi ptr [ %2112, %2093 ], [ %40, %34 ]
  %.ph3417 = phi ptr [ %2113, %2093 ], [ %39, %34 ]
  %.ph3418 = phi ptr [ %2114, %2093 ], [ %38, %34 ]
  %.ph3419 = phi ptr [ %2115, %2093 ], [ %37, %34 ]
  %.ph3420 = phi ptr [ %2116, %2093 ], [ %36, %34 ]
  %.ph3421 = phi ptr [ %2117, %2093 ], [ %35, %34 ]
  %.ph3422 = phi i32 [ %2118, %2093 ], [ %.pre2713, %34 ]
  %.ph3423 = phi i32 [ %2119, %2093 ], [ %.pre2721, %34 ]
  %.ph3424 = phi i32 [ %2120, %2093 ], [ %.pre2723, %34 ]
  %.ph3425 = phi i32 [ %2121, %2093 ], [ %.pre2725, %34 ]
  %.ph3426 = phi i32 [ %2122, %2093 ], [ %.pre2727, %34 ]
  %.ph3427 = phi i32 [ %2123, %2093 ], [ %.pre2729, %34 ]
  %.ph3428 = phi i32 [ %2124, %2093 ], [ %.pre2731, %34 ]
  %.ph3429 = phi i32 [ %2125, %2093 ], [ %.pre2733, %34 ]
  %.ph3430 = phi i32 [ %2126, %2093 ], [ %.pre2735, %34 ]
  %.ph3431 = phi i32 [ %2127, %2093 ], [ %.pre2737, %34 ]
  %.ph3432 = phi i32 [ %2128, %2093 ], [ %.pre2739, %34 ]
  %.ph3433 = phi i32 [ %2129, %2093 ], [ %.pre2741, %34 ]
  %.ph3434 = phi i32 [ %2130, %2093 ], [ %.pre2743, %34 ]
  %.ph3435 = phi i32 [ %2131, %2093 ], [ %.pre2745, %34 ]
  %.ph3436 = phi i32 [ %2132, %2093 ], [ %.pre2747, %34 ]
  %.ph3437 = phi i32 [ %2133, %2093 ], [ %.pre2749, %34 ]
  %.ph3438 = phi ptr [ %2134, %2093 ], [ %.pre2751, %34 ]
  %.ph3439 = phi ptr [ %2135, %2093 ], [ %.pre2753, %34 ]
  %.ph3440 = phi ptr [ %2136, %2093 ], [ %.pre2755, %34 ]
  %.21500.ph = phi i32 [ %.01498, %2093 ], [ %.pre2719, %34 ]
  %.31479.ph = phi i32 [ %.11477, %2093 ], [ %.pre2717, %34 ]
  %.41457.ph = phi i32 [ %.21455, %2093 ], [ %.pre2715, %34 ]
  %.81413.ph = phi i32 [ 0, %2093 ], [ %.pre2711, %34 ]
  %.11.ph = phi i32 [ %.9, %2093 ], [ %.pre, %34 ]
  %2138 = getelementptr inbounds i8, ptr %0, i64 36
  %2139 = getelementptr inbounds i8, ptr %0, i64 32
  %.phi.trans.insert2879 = getelementptr inbounds i8, ptr %0, i64 32
  %.promoted3671 = load i32, ptr %2138, align 4, !tbaa !12
  br label %2140

2140:                                             ; preds = %.preheader3398, %2174
  %2141 = phi i32 [ %2148, %2174 ], [ %.promoted3671, %.preheader3398 ]
  %.81413 = phi i32 [ %2175, %2174 ], [ %.81413.ph, %.preheader3398 ]
  store i32 32, ptr %4, align 8, !tbaa !11
  %2142 = icmp sgt i32 %2141, 0
  br i1 %2142, label %.._crit_edge2402_crit_edge, label %.lr.ph2401

.._crit_edge2402_crit_edge:                       ; preds = %2140
  %.pre2880 = load i32, ptr %.phi.trans.insert2879, align 8, !tbaa !37
  br label %._crit_edge2402

.lr.ph2401:                                       ; preds = %2140
  %2143 = load ptr, ptr %0, align 8, !tbaa !5
  %2144 = getelementptr inbounds i8, ptr %2143, i64 8
  %2145 = getelementptr inbounds i8, ptr %2143, i64 12
  %2146 = getelementptr inbounds i8, ptr %2143, i64 16
  %.promoted2405 = load i32, ptr %2144, align 8, !tbaa !38
  br label %2152

._crit_edge2402:                                  ; preds = %2172, %.._crit_edge2402_crit_edge
  %2147 = phi i32 [ %.pre2880, %.._crit_edge2402_crit_edge ], [ %2162, %2172 ]
  %.lcssa1996 = phi i32 [ %2141, %.._crit_edge2402_crit_edge ], [ %2163, %2172 ]
  %2148 = add nsw i32 %.lcssa1996, -1
  store i32 %2148, ptr %2138, align 4, !tbaa !12
  %2149 = shl nuw i32 1, %2148
  %2150 = and i32 %2147, %2149
  %2151 = icmp eq i32 %2150, 0
  br i1 %2151, label %2176, label %2174

2152:                                             ; preds = %.lr.ph2401, %2172
  %2153 = phi i32 [ %.promoted2405, %.lr.ph2401 ], [ %2165, %2172 ]
  %2154 = phi i32 [ %2141, %.lr.ph2401 ], [ %2163, %2172 ]
  %2155 = icmp eq i32 %2153, 0
  br i1 %2155, label %.loopexit, label %2156

2156:                                             ; preds = %2152
  %2157 = load i32, ptr %2139, align 8, !tbaa !37
  %2158 = shl i32 %2157, 8
  %2159 = load ptr, ptr %2143, align 8, !tbaa !40
  %2160 = load i8, ptr %2159, align 1, !tbaa !41
  %2161 = zext i8 %2160 to i32
  %2162 = or disjoint i32 %2158, %2161
  store i32 %2162, ptr %2139, align 8, !tbaa !37
  %2163 = add nsw i32 %2154, 8
  store i32 %2163, ptr %2138, align 4, !tbaa !12
  %2164 = getelementptr inbounds i8, ptr %2159, i64 1
  store ptr %2164, ptr %2143, align 8, !tbaa !40
  %2165 = add i32 %2153, -1
  store i32 %2165, ptr %2144, align 8, !tbaa !38
  %2166 = load i32, ptr %2145, align 4, !tbaa !42
  %2167 = add i32 %2166, 1
  store i32 %2167, ptr %2145, align 4, !tbaa !42
  %2168 = icmp eq i32 %2167, 0
  br i1 %2168, label %2169, label %2172

2169:                                             ; preds = %2156
  %2170 = load i32, ptr %2146, align 8, !tbaa !43
  %2171 = add i32 %2170, 1
  store i32 %2171, ptr %2146, align 8, !tbaa !43
  br label %2172

2172:                                             ; preds = %2169, %2156
  %2173 = icmp sgt i32 %2154, -8
  br i1 %2173, label %._crit_edge2402, label %2152

2174:                                             ; preds = %._crit_edge2402
  %2175 = add nsw i32 %.81413, 1
  %.not1868 = icmp slt i32 %2175, %.31479.ph
  br i1 %.not1868, label %2140, label %.loopexit

2176:                                             ; preds = %._crit_edge2402
  %2177 = icmp slt i32 %.11.ph, 18002
  br i1 %2177, label %2178, label %2183

2178:                                             ; preds = %2176
  %2179 = trunc i32 %.81413 to i8
  %2180 = getelementptr inbounds i8, ptr %0, i64 25886
  %2181 = sext i32 %.11.ph to i64
  %2182 = getelementptr inbounds [18002 x i8], ptr %2180, i64 0, i64 %2181
  store i8 %2179, ptr %2182, align 1, !tbaa !41
  br label %2183

2183:                                             ; preds = %2176, %2178
  %2184 = add nsw i32 %.11.ph, 1
  br label %2093, !llvm.loop !62

2185:                                             ; preds = %2093
  %spec.store.select = tail call i32 @llvm.smin.i32(i32 %.01498, i32 18002)
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %2) #6
  %2186 = icmp sgt i32 %.11477, 0
  br i1 %2186, label %iter.check, label %.preheader1930

iter.check:                                       ; preds = %2185
  %min.iters.check = icmp ult i32 %.11477, 8
  br i1 %min.iters.check, label %.lr.ph2264.preheader, label %vector.scevcheck

vector.scevcheck:                                 ; preds = %iter.check
  %2187 = add nsw i32 %.11477, -1
  %2188 = and i32 %2187, 255
  %2189 = icmp eq i32 %2188, 255
  %2190 = icmp ugt i32 %2187, 255
  %2191 = or i1 %2189, %2190
  br i1 %2191, label %.lr.ph2264.preheader, label %vector.main.loop.iter.check

vector.main.loop.iter.check:                      ; preds = %vector.scevcheck
  %min.iters.check3211 = icmp ult i32 %.11477, 32
  br i1 %min.iters.check3211, label %vec.epilog.ph, label %vector.ph

vector.ph:                                        ; preds = %vector.main.loop.iter.check
  %n.vec = and i32 %.11477, 480
  %ind.end = trunc i32 %n.vec to i8
  %2192 = 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 %2192, align 16, !tbaa !41
  %2193 = icmp eq i32 %n.vec, 32
  br i1 %2193, label %middle.block, label %vector.body.1, !llvm.loop !63

vector.body.1:                                    ; preds = %vector.ph
  %2194 = getelementptr inbounds i8, ptr %2, i64 32
  %2195 = 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 %2194, 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 %2195, align 16, !tbaa !41
  %2196 = icmp eq i32 %n.vec, 64
  br i1 %2196, label %middle.block, label %vector.body.2, !llvm.loop !63

vector.body.2:                                    ; preds = %vector.body.1
  %2197 = getelementptr inbounds i8, ptr %2, i64 64
  %2198 = 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 %2197, 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 %2198, align 16, !tbaa !41
  %2199 = icmp eq i32 %n.vec, 96
  br i1 %2199, label %middle.block, label %vector.body.3, !llvm.loop !63

vector.body.3:                                    ; preds = %vector.body.2
  %2200 = getelementptr inbounds i8, ptr %2, i64 96
  %2201 = 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 %2200, 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 %2201, align 16, !tbaa !41
  %2202 = icmp eq i32 %n.vec, 128
  br i1 %2202, label %middle.block, label %vector.body.4, !llvm.loop !63

vector.body.4:                                    ; preds = %vector.body.3
  %2203 = getelementptr inbounds i8, ptr %2, i64 128
  %2204 = 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 %2203, 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 %2204, align 16, !tbaa !41
  %2205 = icmp eq i32 %n.vec, 160
  br i1 %2205, label %middle.block, label %vector.body.5, !llvm.loop !63

vector.body.5:                                    ; preds = %vector.body.4
  %2206 = getelementptr inbounds i8, ptr %2, i64 160
  %2207 = 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 %2206, 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 %2207, align 16, !tbaa !41
  %2208 = icmp eq i32 %n.vec, 192
  br i1 %2208, label %middle.block, label %vector.body.6, !llvm.loop !63

vector.body.6:                                    ; preds = %vector.body.5
  %2209 = getelementptr inbounds i8, ptr %2, i64 192
  %2210 = 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 %2209, 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 %2210, align 16, !tbaa !41
  %2211 = icmp eq i32 %n.vec, 224
  br i1 %2211, label %middle.block, label %vector.body.7, !llvm.loop !63

vector.body.7:                                    ; preds = %vector.body.6
  %2212 = getelementptr inbounds i8, ptr %2, i64 224
  %2213 = 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 %2212, 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 %2213, 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 %.11477, %n.vec
  br i1 %cmp.n, label %.preheader1930, label %vec.epilog.iter.check

vec.epilog.iter.check:                            ; preds = %middle.block
  %ind.end3216 = trunc i32 %n.vec to i8
  %n.vec.remaining = and i32 %.11477, 24
  %min.epilog.iters.check = icmp eq i32 %n.vec.remaining, 0
  br i1 %min.epilog.iters.check, label %.lr.ph2264.preheader, label %vec.epilog.ph

.lr.ph2264.preheader:                             ; preds = %vec.epilog.middle.block, %vector.scevcheck, %iter.check, %vec.epilog.iter.check
  %.016622262.ph = phi i8 [ 0, %iter.check ], [ 0, %vector.scevcheck ], [ %ind.end3216, %vec.epilog.iter.check ], [ %ind.end3215, %vec.epilog.middle.block ]
  br label %.lr.ph2264

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.vec3214 = and i32 %.11477, 504
  %ind.end3215 = trunc i32 %n.vec3214 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
  %index3218 = phi i32 [ %vec.epilog.resume.val, %vec.epilog.ph ], [ %index.next3223, %vec.epilog.vector.body ]
  %vec.ind3219 = phi <8 x i8> [ %induction, %vec.epilog.ph ], [ %vec.ind.next3221, %vec.epilog.vector.body ]
  %2214 = and i32 %index3218, 248
  %2215 = zext nneg i32 %2214 to i64
  %2216 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2215
  store <8 x i8> %vec.ind3219, ptr %2216, align 8, !tbaa !41
  %index.next3223 = add nuw i32 %index3218, 8
  %vec.ind.next3221 = add <8 x i8> %vec.ind3219, <i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8>
  %2217 = icmp eq i32 %index.next3223, %n.vec3214
  br i1 %2217, label %vec.epilog.middle.block, label %vec.epilog.vector.body, !llvm.loop !66

vec.epilog.middle.block:                          ; preds = %vec.epilog.vector.body
  %cmp.n3224 = icmp eq i32 %.11477, %n.vec3214
  br i1 %cmp.n3224, label %.preheader1930, label %.lr.ph2264.preheader

.preheader1930:                                   ; preds = %.lr.ph2264, %middle.block, %vec.epilog.middle.block, %2185
  %2218 = icmp sgt i32 %.01498, 0
  br i1 %2218, label %.lr.ph2271, label %._crit_edge2272

.lr.ph2271:                                       ; preds = %.preheader1930
  %2219 = getelementptr inbounds i8, ptr %0, i64 25886
  %2220 = getelementptr inbounds i8, ptr %0, i64 7884
  %wide.trip.count = zext nneg i32 %spec.store.select to i64
  %invariant.gep = getelementptr i8, ptr %2, i64 -15
  %invariant.gep3657 = getelementptr i8, ptr %2, i64 -15
  %invariant.gep3659 = getelementptr i8, ptr %2, i64 -7
  %invariant.gep3661 = getelementptr i8, ptr %2, i64 -7
  br label %2226

.lr.ph2264:                                       ; preds = %.lr.ph2264.preheader, %.lr.ph2264
  %.016622262 = phi i8 [ %2223, %.lr.ph2264 ], [ %.016622262.ph, %.lr.ph2264.preheader ]
  %2221 = zext i8 %.016622262 to i64
  %2222 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2221
  store i8 %.016622262, ptr %2222, align 1, !tbaa !41
  %2223 = add i8 %.016622262, 1
  %2224 = zext i8 %2223 to i32
  %2225 = icmp ugt i32 %.11477, %2224
  br i1 %2225, label %.lr.ph2264, label %.preheader1930, !llvm.loop !67

2226:                                             ; preds = %.lr.ph2271, %._crit_edge2269
  %indvars.iv2595 = phi i64 [ 0, %.lr.ph2271 ], [ %indvars.iv.next2596, %._crit_edge2269 ]
  %2227 = getelementptr inbounds [18002 x i8], ptr %2219, i64 0, i64 %indvars.iv2595
  %2228 = load i8, ptr %2227, align 1, !tbaa !41
  %2229 = zext i8 %2228 to i64
  %2230 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2229
  %2231 = load i8, ptr %2230, align 1, !tbaa !41
  %.not18672265 = icmp eq i8 %2228, 0
  br i1 %.not18672265, label %._crit_edge2269, label %iter.check3236

iter.check3236:                                   ; preds = %2226
  %min.iters.check3234 = icmp ult i8 %2228, 8
  br i1 %min.iters.check3234, label %.lr.ph2268.preheader, label %vector.scevcheck3225

vector.scevcheck3225:                             ; preds = %iter.check3236
  %2232 = add i8 %2228, -1
  %2233 = zext i8 %2228 to i32
  %2234 = add nsw i32 %2233, -1
  %2235 = zext i8 %2232 to i32
  %2236 = icmp ult i32 %2234, %2235
  %scevgep = getelementptr i8, ptr %2, i64 %2229
  %2237 = zext i8 %2232 to i64
  %2238 = sub nsw i64 0, %2237
  %2239 = getelementptr i8, ptr %scevgep, i64 %2238
  %2240 = icmp ugt ptr %2239, %scevgep
  %2241 = zext i32 %2234 to i64
  %scevgep3229 = getelementptr i8, ptr %2, i64 %2241
  %2242 = zext i8 %2232 to i64
  %2243 = sub nsw i64 0, %2242
  %2244 = getelementptr i8, ptr %scevgep3229, i64 %2243
  %2245 = icmp ugt ptr %2244, %scevgep3229
  %2246 = or i1 %2236, %2240
  %2247 = or i1 %2246, %2245
  br i1 %2247, label %.lr.ph2268.preheader, label %vector.memcheck

vector.memcheck:                                  ; preds = %vector.scevcheck3225
  %2248 = zext i8 %2228 to i64
  %2249 = add nuw nsw i64 %2248, 4294967295
  %2250 = and i64 %2249, 4294967295
  %2251 = sub nsw i64 %2250, %2229
  %diff.check = icmp ult i64 %2251, 16
  br i1 %diff.check, label %.lr.ph2268.preheader, label %vector.main.loop.iter.check3238

vector.main.loop.iter.check3238:                  ; preds = %vector.memcheck
  %min.iters.check3237 = icmp ult i8 %2228, 16
  br i1 %min.iters.check3237, label %vec.epilog.ph3250, label %vector.ph3239

vector.ph3239:                                    ; preds = %vector.main.loop.iter.check3238
  %n.vec3241 = and i64 %2229, 240
  br label %vector.body3242

vector.body3242:                                  ; preds = %vector.body3242, %vector.ph3239
  %index3243 = phi i64 [ 0, %vector.ph3239 ], [ %index.next3246, %vector.body3242 ]
  %offset.idx3244 = sub i64 %2229, %index3243
  %2252 = add nuw nsw i64 %offset.idx3244, 4294967295
  %2253 = and i64 %2252, 4294967295
  %gep = getelementptr [6 x i8], ptr %invariant.gep, i64 0, i64 %2253
  %wide.load = load <16 x i8>, ptr %gep, align 1, !tbaa !41
  %gep3658 = getelementptr [6 x i8], ptr %invariant.gep3657, i64 0, i64 %offset.idx3244
  store <16 x i8> %wide.load, ptr %gep3658, align 1, !tbaa !41
  %index.next3246 = add nuw i64 %index3243, 16
  %2254 = icmp eq i64 %index.next3246, %n.vec3241
  br i1 %2254, label %middle.block3233, label %vector.body3242, !llvm.loop !68

middle.block3233:                                 ; preds = %vector.body3242
  %cmp.n3247 = icmp eq i64 %n.vec3241, %2229
  br i1 %cmp.n3247, label %._crit_edge2269, label %vec.epilog.iter.check3251

vec.epilog.iter.check3251:                        ; preds = %middle.block3233
  %ind.end3258 = and i64 %2229, 15
  %n.vec.remaining3252 = and i64 %2229, 8
  %min.epilog.iters.check3253.not.not = icmp eq i64 %n.vec.remaining3252, 0
  br i1 %min.epilog.iters.check3253.not.not, label %.lr.ph2268.preheader, label %vec.epilog.ph3250

vec.epilog.ph3250:                                ; preds = %vector.main.loop.iter.check3238, %vec.epilog.iter.check3251
  %vec.epilog.resume.val3254 = phi i64 [ %n.vec3241, %vec.epilog.iter.check3251 ], [ 0, %vector.main.loop.iter.check3238 ]
  %n.vec3256 = and i64 %2229, 248
  %ind.end3257 = and i64 %2229, 7
  br label %vec.epilog.vector.body3260

vec.epilog.vector.body3260:                       ; preds = %vec.epilog.vector.body3260, %vec.epilog.ph3250
  %index3261 = phi i64 [ %vec.epilog.resume.val3254, %vec.epilog.ph3250 ], [ %index.next3266, %vec.epilog.vector.body3260 ]
  %offset.idx3262 = sub i64 %2229, %index3261
  %2255 = add nuw nsw i64 %offset.idx3262, 4294967295
  %2256 = and i64 %2255, 4294967295
  %gep3660 = getelementptr [6 x i8], ptr %invariant.gep3659, i64 0, i64 %2256
  %wide.load3263 = load <8 x i8>, ptr %gep3660, align 1, !tbaa !41
  %gep3662 = getelementptr [6 x i8], ptr %invariant.gep3661, i64 0, i64 %offset.idx3262
  store <8 x i8> %wide.load3263, ptr %gep3662, align 1, !tbaa !41
  %index.next3266 = add nuw i64 %index3261, 8
  %2257 = icmp eq i64 %index.next3266, %n.vec3256
  br i1 %2257, label %vec.epilog.middle.block3248, label %vec.epilog.vector.body3260, !llvm.loop !69

vec.epilog.middle.block3248:                      ; preds = %vec.epilog.vector.body3260
  %cmp.n3267 = icmp eq i64 %n.vec3256, %2229
  br i1 %cmp.n3267, label %._crit_edge2269, label %.lr.ph2268.preheader

.lr.ph2268.preheader:                             ; preds = %vec.epilog.middle.block3248, %vector.memcheck, %vector.scevcheck3225, %iter.check3236, %vec.epilog.iter.check3251
  %indvars.iv.ph = phi i64 [ %2229, %iter.check3236 ], [ %2229, %vector.memcheck ], [ %2229, %vector.scevcheck3225 ], [ %ind.end3258, %vec.epilog.iter.check3251 ], [ %ind.end3257, %vec.epilog.middle.block3248 ]
  %2258 = trunc nuw i64 %indvars.iv.ph to i8
  %xtraiter = and i8 %2258, 1
  %lcmp.mod.not = icmp eq i8 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.lr.ph2268.prol.loopexit, label %.lr.ph2268.prol

.lr.ph2268.prol:                                  ; preds = %.lr.ph2268.preheader
  %2259 = add nuw nsw i64 %indvars.iv.ph, 4294967295
  %2260 = and i64 %2259, 4294967295
  %2261 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2260
  %2262 = load i8, ptr %2261, align 1, !tbaa !41
  %2263 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv.ph
  store i8 %2262, ptr %2263, align 1, !tbaa !41
  %indvars.iv.next.prol = add nsw i64 %indvars.iv.ph, -1
  br label %.lr.ph2268.prol.loopexit

.lr.ph2268.prol.loopexit:                         ; preds = %.lr.ph2268.prol, %.lr.ph2268.preheader
  %indvars.iv.unr = phi i64 [ %indvars.iv.ph, %.lr.ph2268.preheader ], [ %indvars.iv.next.prol, %.lr.ph2268.prol ]
  %2264 = icmp eq i64 %indvars.iv.ph, 1
  br i1 %2264, label %._crit_edge2269, label %.lr.ph2268

.lr.ph2268:                                       ; preds = %.lr.ph2268.prol.loopexit, %.lr.ph2268
  %indvars.iv = phi i64 [ %indvars.iv.next.1, %.lr.ph2268 ], [ %indvars.iv.unr, %.lr.ph2268.prol.loopexit ]
  %2265 = add nuw nsw i64 %indvars.iv, 4294967295
  %2266 = and i64 %2265, 4294967295
  %2267 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2266
  %2268 = load i8, ptr %2267, align 1, !tbaa !41
  %2269 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv
  store i8 %2268, ptr %2269, align 1, !tbaa !41
  %indvars.iv.next = add nsw i64 %indvars.iv, -1
  %2270 = add nsw i64 %indvars.iv, 4294967294
  %2271 = and i64 %2270, 4294967295
  %2272 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %2271
  %2273 = load i8, ptr %2272, align 1, !tbaa !41
  %2274 = getelementptr inbounds [6 x i8], ptr %2, i64 0, i64 %indvars.iv.next
  store i8 %2273, ptr %2274, align 1, !tbaa !41
  %indvars.iv.next.1 = add nsw i64 %indvars.iv, -2
  %2275 = and i64 %indvars.iv.next.1, 255
  %.not1867.1 = icmp eq i64 %2275, 0
  br i1 %.not1867.1, label %._crit_edge2269, label %.lr.ph2268, !llvm.loop !70

._crit_edge2269:                                  ; preds = %.lr.ph2268.prol.loopexit, %.lr.ph2268, %middle.block3233, %vec.epilog.middle.block3248, %2226
  store i8 %2231, ptr %2, align 16, !tbaa !41
  %2276 = getelementptr inbounds [18002 x i8], ptr %2220, i64 0, i64 %indvars.iv2595
  store i8 %2231, ptr %2276, align 1, !tbaa !41
  %indvars.iv.next2596 = add nuw nsw i64 %indvars.iv2595, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next2596, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge2272, label %2226, !llvm.loop !71

._crit_edge2272:                                  ; preds = %._crit_edge2269, %.preheader1930
  %.12.lcssa = phi i32 [ 0, %.preheader1930 ], [ %spec.store.select, %._crit_edge2269 ]
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %2) #6
  br label %2277

2277:                                             ; preds = %2647, %._crit_edge2272
  %2278 = phi ptr [ %2403, %2647 ], [ %2094, %._crit_edge2272 ]
  %2279 = phi ptr [ %2404, %2647 ], [ %2095, %._crit_edge2272 ]
  %2280 = phi ptr [ %2405, %2647 ], [ %2096, %._crit_edge2272 ]
  %2281 = phi ptr [ %2406, %2647 ], [ %2097, %._crit_edge2272 ]
  %2282 = phi ptr [ %2407, %2647 ], [ %2098, %._crit_edge2272 ]
  %2283 = phi ptr [ %2408, %2647 ], [ %2099, %._crit_edge2272 ]
  %2284 = phi ptr [ %2409, %2647 ], [ %2100, %._crit_edge2272 ]
  %2285 = phi ptr [ %2410, %2647 ], [ %2101, %._crit_edge2272 ]
  %2286 = phi ptr [ %2411, %2647 ], [ %2102, %._crit_edge2272 ]
  %2287 = phi ptr [ %2412, %2647 ], [ %2103, %._crit_edge2272 ]
  %2288 = phi ptr [ %2413, %2647 ], [ %2104, %._crit_edge2272 ]
  %2289 = phi ptr [ %2414, %2647 ], [ %2105, %._crit_edge2272 ]
  %2290 = phi ptr [ %2415, %2647 ], [ %2106, %._crit_edge2272 ]
  %2291 = phi ptr [ %2416, %2647 ], [ %2107, %._crit_edge2272 ]
  %2292 = phi ptr [ %2417, %2647 ], [ %2108, %._crit_edge2272 ]
  %2293 = phi ptr [ %2418, %2647 ], [ %2109, %._crit_edge2272 ]
  %2294 = phi ptr [ %2419, %2647 ], [ %2110, %._crit_edge2272 ]
  %2295 = phi ptr [ %2420, %2647 ], [ %2111, %._crit_edge2272 ]
  %2296 = phi ptr [ %2421, %2647 ], [ %2112, %._crit_edge2272 ]
  %2297 = phi ptr [ %2422, %2647 ], [ %2113, %._crit_edge2272 ]
  %2298 = phi ptr [ %2423, %2647 ], [ %2114, %._crit_edge2272 ]
  %2299 = phi ptr [ %2424, %2647 ], [ %2115, %._crit_edge2272 ]
  %2300 = phi ptr [ %2425, %2647 ], [ %2116, %._crit_edge2272 ]
  %2301 = phi ptr [ %2426, %2647 ], [ %2117, %._crit_edge2272 ]
  %2302 = phi i32 [ %2427, %2647 ], [ %2119, %._crit_edge2272 ]
  %2303 = phi i32 [ %2428, %2647 ], [ %2120, %._crit_edge2272 ]
  %2304 = phi i32 [ %2429, %2647 ], [ %2121, %._crit_edge2272 ]
  %2305 = phi i32 [ %2430, %2647 ], [ %2122, %._crit_edge2272 ]
  %2306 = phi i32 [ %2431, %2647 ], [ %2123, %._crit_edge2272 ]
  %2307 = phi i32 [ %2432, %2647 ], [ %2124, %._crit_edge2272 ]
  %2308 = phi i32 [ %2433, %2647 ], [ %2125, %._crit_edge2272 ]
  %2309 = phi i32 [ %2434, %2647 ], [ %2126, %._crit_edge2272 ]
  %2310 = phi i32 [ %2435, %2647 ], [ %2128, %._crit_edge2272 ]
  %2311 = phi i32 [ %2436, %2647 ], [ %2129, %._crit_edge2272 ]
  %2312 = phi i32 [ %2437, %2647 ], [ %2130, %._crit_edge2272 ]
  %2313 = phi i32 [ %2438, %2647 ], [ %2131, %._crit_edge2272 ]
  %2314 = phi i32 [ %2439, %2647 ], [ %2132, %._crit_edge2272 ]
  %2315 = phi i32 [ %2440, %2647 ], [ %2133, %._crit_edge2272 ]
  %2316 = phi ptr [ %2441, %2647 ], [ %2134, %._crit_edge2272 ]
  %2317 = phi ptr [ %2442, %2647 ], [ %2135, %._crit_edge2272 ]
  %2318 = phi ptr [ %2443, %2647 ], [ %2136, %._crit_edge2272 ]
  %.01631 = phi i32 [ %.21633, %2647 ], [ %2127, %._crit_edge2272 ]
  %.31501 = phi i32 [ %.51503, %2647 ], [ %spec.store.select, %._crit_edge2272 ]
  %.41480 = phi i32 [ %.61482, %2647 ], [ %.11477, %._crit_edge2272 ]
  %.51458 = phi i32 [ %.71460, %2647 ], [ %.21455, %._crit_edge2272 ]
  %.01434 = phi i32 [ %2648, %2647 ], [ 0, %._crit_edge2272 ]
  %.91414 = phi i32 [ %.111416, %2647 ], [ %.61411, %._crit_edge2272 ]
  %.13 = phi i32 [ %.15, %2647 ], [ %.12.lcssa, %._crit_edge2272 ]
  %2319 = icmp slt i32 %.01434, %.41480
  br i1 %2319, label %2327, label %.preheader1929

.preheader1929:                                   ; preds = %2277
  %2320 = icmp sgt i32 %.41480, 0
  br i1 %2320, label %.preheader1928.lr.ph, label %._crit_edge2282

.preheader1928.lr.ph:                             ; preds = %.preheader1929
  %2321 = icmp sgt i32 %.51458, 0
  %2322 = getelementptr inbounds i8, ptr %0, i64 43888
  %2323 = getelementptr inbounds i8, ptr %0, i64 45436
  %2324 = getelementptr inbounds i8, ptr %0, i64 51628
  %2325 = getelementptr inbounds i8, ptr %0, i64 57820
  %2326 = getelementptr inbounds i8, ptr %0, i64 64012
  %wide.trip.count2609 = zext nneg i32 %.41480 to i64
  %wide.trip.count2603 = zext i32 %.51458 to i64
  %min.iters.check3269 = icmp ult i32 %.51458, 8
  %n.vec3272 = and i64 %wide.trip.count2603, 2147483640
  %cmp.n3283 = icmp eq i64 %n.vec3272, %wide.trip.count2603
  br label %.preheader1928

2327:                                             ; preds = %2277, %34
  %2328 = phi ptr [ %2278, %2277 ], [ %58, %34 ]
  %2329 = phi ptr [ %2279, %2277 ], [ %57, %34 ]
  %2330 = phi ptr [ %2280, %2277 ], [ %56, %34 ]
  %2331 = phi ptr [ %2281, %2277 ], [ %55, %34 ]
  %2332 = phi ptr [ %2282, %2277 ], [ %54, %34 ]
  %2333 = phi ptr [ %2283, %2277 ], [ %53, %34 ]
  %2334 = phi ptr [ %2284, %2277 ], [ %52, %34 ]
  %2335 = phi ptr [ %2285, %2277 ], [ %51, %34 ]
  %2336 = phi ptr [ %2286, %2277 ], [ %50, %34 ]
  %2337 = phi ptr [ %2287, %2277 ], [ %49, %34 ]
  %2338 = phi ptr [ %2288, %2277 ], [ %48, %34 ]
  %2339 = phi ptr [ %2289, %2277 ], [ %47, %34 ]
  %2340 = phi ptr [ %2290, %2277 ], [ %46, %34 ]
  %2341 = phi ptr [ %2291, %2277 ], [ %45, %34 ]
  %2342 = phi ptr [ %2292, %2277 ], [ %44, %34 ]
  %2343 = phi ptr [ %2293, %2277 ], [ %43, %34 ]
  %2344 = phi ptr [ %2294, %2277 ], [ %42, %34 ]
  %2345 = phi ptr [ %2295, %2277 ], [ %41, %34 ]
  %2346 = phi ptr [ %2296, %2277 ], [ %40, %34 ]
  %2347 = phi ptr [ %2297, %2277 ], [ %39, %34 ]
  %2348 = phi ptr [ %2298, %2277 ], [ %38, %34 ]
  %2349 = phi ptr [ %2299, %2277 ], [ %37, %34 ]
  %2350 = phi ptr [ %2300, %2277 ], [ %36, %34 ]
  %2351 = phi ptr [ %2301, %2277 ], [ %35, %34 ]
  %2352 = phi i32 [ %2302, %2277 ], [ %.pre2721, %34 ]
  %2353 = phi i32 [ %2303, %2277 ], [ %.pre2723, %34 ]
  %2354 = phi i32 [ %2304, %2277 ], [ %.pre2725, %34 ]
  %2355 = phi i32 [ %2305, %2277 ], [ %.pre2727, %34 ]
  %2356 = phi i32 [ %2306, %2277 ], [ %.pre2729, %34 ]
  %2357 = phi i32 [ %2307, %2277 ], [ %.pre2731, %34 ]
  %2358 = phi i32 [ %2308, %2277 ], [ %.pre2733, %34 ]
  %2359 = phi i32 [ %2309, %2277 ], [ %.pre2735, %34 ]
  %2360 = phi i32 [ %2310, %2277 ], [ %.pre2739, %34 ]
  %2361 = phi i32 [ %2311, %2277 ], [ %.pre2741, %34 ]
  %2362 = phi i32 [ %2312, %2277 ], [ %.pre2743, %34 ]
  %2363 = phi i32 [ %2313, %2277 ], [ %.pre2745, %34 ]
  %2364 = phi i32 [ %2314, %2277 ], [ %.pre2747, %34 ]
  %2365 = phi i32 [ %2315, %2277 ], [ %.pre2749, %34 ]
  %2366 = phi ptr [ %2316, %2277 ], [ %.pre2751, %34 ]
  %2367 = phi ptr [ %2317, %2277 ], [ %.pre2753, %34 ]
  %2368 = phi ptr [ %2318, %2277 ], [ %.pre2755, %34 ]
  %.11632 = phi i32 [ %.01631, %2277 ], [ %.pre2737, %34 ]
  %.41502 = phi i32 [ %.31501, %2277 ], [ %.pre2719, %34 ]
  %.51481 = phi i32 [ %.41480, %2277 ], [ %.pre2717, %34 ]
  %.61459 = phi i32 [ %.51458, %2277 ], [ %.pre2715, %34 ]
  %.11435 = phi i32 [ %.01434, %2277 ], [ %.pre2713, %34 ]
  %.101415 = phi i32 [ %.91414, %2277 ], [ %.pre2711, %34 ]
  %.14 = phi i32 [ %.13, %2277 ], [ %.pre, %34 ]
  store i32 33, ptr %4, align 8, !tbaa !11
  %2369 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2378 = load i32, ptr %2369, align 4, !tbaa !12
  %2370 = icmp sgt i32 %.promoted2378, 4
  br i1 %2370, label %.._crit_edge2381_crit_edge, label %.lr.ph2380

.._crit_edge2381_crit_edge:                       ; preds = %2327
  %.phi.trans.insert2870 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2871 = load i32, ptr %.phi.trans.insert2870, align 8, !tbaa !37
  br label %._crit_edge2381

.lr.ph2380:                                       ; preds = %2327
  %2371 = load ptr, ptr %0, align 8, !tbaa !5
  %2372 = getelementptr inbounds i8, ptr %2371, i64 8
  %2373 = getelementptr inbounds i8, ptr %0, i64 32
  %2374 = getelementptr inbounds i8, ptr %2371, i64 12
  %2375 = getelementptr inbounds i8, ptr %2371, i64 16
  %.promoted2384 = load i32, ptr %2372, align 8, !tbaa !38
  br label %2380

._crit_edge2381:                                  ; preds = %2400, %.._crit_edge2381_crit_edge
  %2376 = phi i32 [ %.pre2871, %.._crit_edge2381_crit_edge ], [ %2390, %2400 ]
  %.lcssa2008 = phi i32 [ %.promoted2378, %.._crit_edge2381_crit_edge ], [ %2391, %2400 ]
  %2377 = add nsw i32 %.lcssa2008, -5
  %2378 = lshr i32 %2376, %2377
  %2379 = and i32 %2378, 31
  store i32 %2377, ptr %2369, align 4, !tbaa !12
  br label %2402

2380:                                             ; preds = %.lr.ph2380, %2400
  %2381 = phi i32 [ %.promoted2384, %.lr.ph2380 ], [ %2393, %2400 ]
  %2382 = phi i32 [ %.promoted2378, %.lr.ph2380 ], [ %2391, %2400 ]
  %2383 = icmp eq i32 %2381, 0
  br i1 %2383, label %.loopexit, label %2384

2384:                                             ; preds = %2380
  %2385 = load i32, ptr %2373, align 8, !tbaa !37
  %2386 = shl i32 %2385, 8
  %2387 = load ptr, ptr %2371, align 8, !tbaa !40
  %2388 = load i8, ptr %2387, align 1, !tbaa !41
  %2389 = zext i8 %2388 to i32
  %2390 = or disjoint i32 %2386, %2389
  store i32 %2390, ptr %2373, align 8, !tbaa !37
  %2391 = add nsw i32 %2382, 8
  store i32 %2391, ptr %2369, align 4, !tbaa !12
  %2392 = getelementptr inbounds i8, ptr %2387, i64 1
  store ptr %2392, ptr %2371, align 8, !tbaa !40
  %2393 = add i32 %2381, -1
  store i32 %2393, ptr %2372, align 8, !tbaa !38
  %2394 = load i32, ptr %2374, align 4, !tbaa !42
  %2395 = add i32 %2394, 1
  store i32 %2395, ptr %2374, align 4, !tbaa !42
  %2396 = icmp eq i32 %2395, 0
  br i1 %2396, label %2397, label %2400

2397:                                             ; preds = %2384
  %2398 = load i32, ptr %2375, align 8, !tbaa !43
  %2399 = add i32 %2398, 1
  store i32 %2399, ptr %2375, align 8, !tbaa !43
  br label %2400

2400:                                             ; preds = %2397, %2384
  %2401 = icmp sgt i32 %2382, -4
  br i1 %2401, label %._crit_edge2381, label %2380

2402:                                             ; preds = %2640, %._crit_edge2381
  %2403 = phi ptr [ %2489, %2640 ], [ %2328, %._crit_edge2381 ]
  %2404 = phi ptr [ %2490, %2640 ], [ %2329, %._crit_edge2381 ]
  %2405 = phi ptr [ %2491, %2640 ], [ %2330, %._crit_edge2381 ]
  %2406 = phi ptr [ %2492, %2640 ], [ %2331, %._crit_edge2381 ]
  %2407 = phi ptr [ %2493, %2640 ], [ %2332, %._crit_edge2381 ]
  %2408 = phi ptr [ %2494, %2640 ], [ %2333, %._crit_edge2381 ]
  %2409 = phi ptr [ %2495, %2640 ], [ %2334, %._crit_edge2381 ]
  %2410 = phi ptr [ %2496, %2640 ], [ %2335, %._crit_edge2381 ]
  %2411 = phi ptr [ %2497, %2640 ], [ %2336, %._crit_edge2381 ]
  %2412 = phi ptr [ %2498, %2640 ], [ %2337, %._crit_edge2381 ]
  %2413 = phi ptr [ %2499, %2640 ], [ %2338, %._crit_edge2381 ]
  %2414 = phi ptr [ %2500, %2640 ], [ %2339, %._crit_edge2381 ]
  %2415 = phi ptr [ %2501, %2640 ], [ %2340, %._crit_edge2381 ]
  %2416 = phi ptr [ %2502, %2640 ], [ %2341, %._crit_edge2381 ]
  %2417 = phi ptr [ %2503, %2640 ], [ %2342, %._crit_edge2381 ]
  %2418 = phi ptr [ %2504, %2640 ], [ %2343, %._crit_edge2381 ]
  %2419 = phi ptr [ %2505, %2640 ], [ %2344, %._crit_edge2381 ]
  %2420 = phi ptr [ %2506, %2640 ], [ %2345, %._crit_edge2381 ]
  %2421 = phi ptr [ %2507, %2640 ], [ %2346, %._crit_edge2381 ]
  %2422 = phi ptr [ %2508, %2640 ], [ %2347, %._crit_edge2381 ]
  %2423 = phi ptr [ %2509, %2640 ], [ %2348, %._crit_edge2381 ]
  %2424 = phi ptr [ %2510, %2640 ], [ %2349, %._crit_edge2381 ]
  %2425 = phi ptr [ %2511, %2640 ], [ %2350, %._crit_edge2381 ]
  %2426 = phi ptr [ %2512, %2640 ], [ %2351, %._crit_edge2381 ]
  %2427 = phi i32 [ %2513, %2640 ], [ %2352, %._crit_edge2381 ]
  %2428 = phi i32 [ %2514, %2640 ], [ %2353, %._crit_edge2381 ]
  %2429 = phi i32 [ %2515, %2640 ], [ %2354, %._crit_edge2381 ]
  %2430 = phi i32 [ %2516, %2640 ], [ %2355, %._crit_edge2381 ]
  %2431 = phi i32 [ %2517, %2640 ], [ %2356, %._crit_edge2381 ]
  %2432 = phi i32 [ %2518, %2640 ], [ %2357, %._crit_edge2381 ]
  %2433 = phi i32 [ %2519, %2640 ], [ %2358, %._crit_edge2381 ]
  %2434 = phi i32 [ %2520, %2640 ], [ %2359, %._crit_edge2381 ]
  %2435 = phi i32 [ %2521, %2640 ], [ %2360, %._crit_edge2381 ]
  %2436 = phi i32 [ %2522, %2640 ], [ %2361, %._crit_edge2381 ]
  %2437 = phi i32 [ %2523, %2640 ], [ %2362, %._crit_edge2381 ]
  %2438 = phi i32 [ %2524, %2640 ], [ %2363, %._crit_edge2381 ]
  %2439 = phi i32 [ %2525, %2640 ], [ %2364, %._crit_edge2381 ]
  %2440 = phi i32 [ %2526, %2640 ], [ %2365, %._crit_edge2381 ]
  %2441 = phi ptr [ %2527, %2640 ], [ %2366, %._crit_edge2381 ]
  %2442 = phi ptr [ %2528, %2640 ], [ %2367, %._crit_edge2381 ]
  %2443 = phi ptr [ %2529, %2640 ], [ %2368, %._crit_edge2381 ]
  %.21633 = phi i32 [ %.41635, %2640 ], [ %2379, %._crit_edge2381 ]
  %.51503 = phi i32 [ %.71505, %2640 ], [ %.41502, %._crit_edge2381 ]
  %.61482 = phi i32 [ %.81484, %2640 ], [ %.51481, %._crit_edge2381 ]
  %.71460 = phi i32 [ %.91462, %2640 ], [ %.61459, %._crit_edge2381 ]
  %.21436 = phi i32 [ %.41438, %2640 ], [ %.11435, %._crit_edge2381 ]
  %.111416 = phi i32 [ %.131418, %2640 ], [ %.101415, %._crit_edge2381 ]
  %.15 = phi i32 [ %2646, %2640 ], [ 0, %._crit_edge2381 ]
  %2444 = icmp slt i32 %.15, %.71460
  br i1 %2444, label %2445, label %2647

2445:                                             ; preds = %2402, %._crit_edge2395
  %2446 = phi ptr [ %2565, %._crit_edge2395 ], [ %2403, %2402 ]
  %2447 = phi ptr [ %2566, %._crit_edge2395 ], [ %2404, %2402 ]
  %2448 = phi ptr [ %2567, %._crit_edge2395 ], [ %2405, %2402 ]
  %2449 = phi ptr [ %2568, %._crit_edge2395 ], [ %2406, %2402 ]
  %2450 = phi ptr [ %2569, %._crit_edge2395 ], [ %2407, %2402 ]
  %2451 = phi ptr [ %2570, %._crit_edge2395 ], [ %2408, %2402 ]
  %2452 = phi ptr [ %2571, %._crit_edge2395 ], [ %2409, %2402 ]
  %2453 = phi ptr [ %2572, %._crit_edge2395 ], [ %2410, %2402 ]
  %2454 = phi ptr [ %2573, %._crit_edge2395 ], [ %2411, %2402 ]
  %2455 = phi ptr [ %2574, %._crit_edge2395 ], [ %2412, %2402 ]
  %2456 = phi ptr [ %2575, %._crit_edge2395 ], [ %2413, %2402 ]
  %2457 = phi ptr [ %2576, %._crit_edge2395 ], [ %2414, %2402 ]
  %2458 = phi ptr [ %2577, %._crit_edge2395 ], [ %2415, %2402 ]
  %2459 = phi ptr [ %2578, %._crit_edge2395 ], [ %2416, %2402 ]
  %2460 = phi ptr [ %2579, %._crit_edge2395 ], [ %2417, %2402 ]
  %2461 = phi ptr [ %2580, %._crit_edge2395 ], [ %2418, %2402 ]
  %2462 = phi ptr [ %2581, %._crit_edge2395 ], [ %2419, %2402 ]
  %2463 = phi ptr [ %2582, %._crit_edge2395 ], [ %2420, %2402 ]
  %2464 = phi ptr [ %2583, %._crit_edge2395 ], [ %2421, %2402 ]
  %2465 = phi ptr [ %2584, %._crit_edge2395 ], [ %2422, %2402 ]
  %2466 = phi ptr [ %2585, %._crit_edge2395 ], [ %2423, %2402 ]
  %2467 = phi ptr [ %2586, %._crit_edge2395 ], [ %2424, %2402 ]
  %2468 = phi ptr [ %2587, %._crit_edge2395 ], [ %2425, %2402 ]
  %2469 = phi ptr [ %2588, %._crit_edge2395 ], [ %2426, %2402 ]
  %2470 = phi i32 [ %2589, %._crit_edge2395 ], [ %2427, %2402 ]
  %2471 = phi i32 [ %2590, %._crit_edge2395 ], [ %2428, %2402 ]
  %2472 = phi i32 [ %2591, %._crit_edge2395 ], [ %2429, %2402 ]
  %2473 = phi i32 [ %2592, %._crit_edge2395 ], [ %2430, %2402 ]
  %2474 = phi i32 [ %2593, %._crit_edge2395 ], [ %2431, %2402 ]
  %2475 = phi i32 [ %2594, %._crit_edge2395 ], [ %2432, %2402 ]
  %2476 = phi i32 [ %2595, %._crit_edge2395 ], [ %2433, %2402 ]
  %2477 = phi i32 [ %2596, %._crit_edge2395 ], [ %2434, %2402 ]
  %2478 = phi i32 [ %2597, %._crit_edge2395 ], [ %2435, %2402 ]
  %2479 = phi i32 [ %2598, %._crit_edge2395 ], [ %2436, %2402 ]
  %2480 = phi i32 [ %2599, %._crit_edge2395 ], [ %2437, %2402 ]
  %2481 = phi i32 [ %2600, %._crit_edge2395 ], [ %2438, %2402 ]
  %2482 = phi i32 [ %2601, %._crit_edge2395 ], [ %2439, %2402 ]
  %2483 = phi i32 [ %2602, %._crit_edge2395 ], [ %2440, %2402 ]
  %2484 = phi ptr [ %2603, %._crit_edge2395 ], [ %2441, %2402 ]
  %2485 = phi ptr [ %2604, %._crit_edge2395 ], [ %2442, %2402 ]
  %2486 = phi ptr [ %2605, %._crit_edge2395 ], [ %2443, %2402 ]
  %.31634 = phi i32 [ %.61637, %._crit_edge2395 ], [ %.21633, %2402 ]
  %.61504 = phi i32 [ %.81506, %._crit_edge2395 ], [ %.51503, %2402 ]
  %.71483 = phi i32 [ %.91485, %._crit_edge2395 ], [ %.61482, %2402 ]
  %.81461 = phi i32 [ %.101463, %._crit_edge2395 ], [ %.71460, %2402 ]
  %.31437 = phi i32 [ %.51439, %._crit_edge2395 ], [ %.21436, %2402 ]
  %.121417 = phi i32 [ %.141419, %._crit_edge2395 ], [ %.111416, %2402 ]
  %.16 = phi i32 [ %.18, %._crit_edge2395 ], [ %.15, %2402 ]
  %2487 = add i32 %.31634, -21
  %or.cond3 = icmp ult i32 %2487, -20
  br i1 %or.cond3, label %.loopexit, label %2488

2488:                                             ; preds = %2445, %34
  %2489 = phi ptr [ %2446, %2445 ], [ %58, %34 ]
  %2490 = phi ptr [ %2447, %2445 ], [ %57, %34 ]
  %2491 = phi ptr [ %2448, %2445 ], [ %56, %34 ]
  %2492 = phi ptr [ %2449, %2445 ], [ %55, %34 ]
  %2493 = phi ptr [ %2450, %2445 ], [ %54, %34 ]
  %2494 = phi ptr [ %2451, %2445 ], [ %53, %34 ]
  %2495 = phi ptr [ %2452, %2445 ], [ %52, %34 ]
  %2496 = phi ptr [ %2453, %2445 ], [ %51, %34 ]
  %2497 = phi ptr [ %2454, %2445 ], [ %50, %34 ]
  %2498 = phi ptr [ %2455, %2445 ], [ %49, %34 ]
  %2499 = phi ptr [ %2456, %2445 ], [ %48, %34 ]
  %2500 = phi ptr [ %2457, %2445 ], [ %47, %34 ]
  %2501 = phi ptr [ %2458, %2445 ], [ %46, %34 ]
  %2502 = phi ptr [ %2459, %2445 ], [ %45, %34 ]
  %2503 = phi ptr [ %2460, %2445 ], [ %44, %34 ]
  %2504 = phi ptr [ %2461, %2445 ], [ %43, %34 ]
  %2505 = phi ptr [ %2462, %2445 ], [ %42, %34 ]
  %2506 = phi ptr [ %2463, %2445 ], [ %41, %34 ]
  %2507 = phi ptr [ %2464, %2445 ], [ %40, %34 ]
  %2508 = phi ptr [ %2465, %2445 ], [ %39, %34 ]
  %2509 = phi ptr [ %2466, %2445 ], [ %38, %34 ]
  %2510 = phi ptr [ %2467, %2445 ], [ %37, %34 ]
  %2511 = phi ptr [ %2468, %2445 ], [ %36, %34 ]
  %2512 = phi ptr [ %2469, %2445 ], [ %35, %34 ]
  %2513 = phi i32 [ %2470, %2445 ], [ %.pre2721, %34 ]
  %2514 = phi i32 [ %2471, %2445 ], [ %.pre2723, %34 ]
  %2515 = phi i32 [ %2472, %2445 ], [ %.pre2725, %34 ]
  %2516 = phi i32 [ %2473, %2445 ], [ %.pre2727, %34 ]
  %2517 = phi i32 [ %2474, %2445 ], [ %.pre2729, %34 ]
  %2518 = phi i32 [ %2475, %2445 ], [ %.pre2731, %34 ]
  %2519 = phi i32 [ %2476, %2445 ], [ %.pre2733, %34 ]
  %2520 = phi i32 [ %2477, %2445 ], [ %.pre2735, %34 ]
  %2521 = phi i32 [ %2478, %2445 ], [ %.pre2739, %34 ]
  %2522 = phi i32 [ %2479, %2445 ], [ %.pre2741, %34 ]
  %2523 = phi i32 [ %2480, %2445 ], [ %.pre2743, %34 ]
  %2524 = phi i32 [ %2481, %2445 ], [ %.pre2745, %34 ]
  %2525 = phi i32 [ %2482, %2445 ], [ %.pre2747, %34 ]
  %2526 = phi i32 [ %2483, %2445 ], [ %.pre2749, %34 ]
  %2527 = phi ptr [ %2484, %2445 ], [ %.pre2751, %34 ]
  %2528 = phi ptr [ %2485, %2445 ], [ %.pre2753, %34 ]
  %2529 = phi ptr [ %2486, %2445 ], [ %.pre2755, %34 ]
  %.41635 = phi i32 [ %.31634, %2445 ], [ %.pre2737, %34 ]
  %.71505 = phi i32 [ %.61504, %2445 ], [ %.pre2719, %34 ]
  %.81484 = phi i32 [ %.71483, %2445 ], [ %.pre2717, %34 ]
  %.91462 = phi i32 [ %.81461, %2445 ], [ %.pre2715, %34 ]
  %.41438 = phi i32 [ %.31437, %2445 ], [ %.pre2713, %34 ]
  %.131418 = phi i32 [ %.121417, %2445 ], [ %.pre2711, %34 ]
  %.17 = phi i32 [ %.16, %2445 ], [ %.pre, %34 ]
  store i32 34, ptr %4, align 8, !tbaa !11
  %2530 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2385 = load i32, ptr %2530, align 4, !tbaa !12
  %2531 = icmp sgt i32 %.promoted2385, 0
  br i1 %2531, label %.._crit_edge2388_crit_edge, label %.lr.ph2387

.._crit_edge2388_crit_edge:                       ; preds = %2488
  %.phi.trans.insert2872 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2873 = load i32, ptr %.phi.trans.insert2872, align 8, !tbaa !37
  br label %._crit_edge2388

.lr.ph2387:                                       ; preds = %2488
  %2532 = load ptr, ptr %0, align 8, !tbaa !5
  %2533 = getelementptr inbounds i8, ptr %2532, i64 8
  %2534 = getelementptr inbounds i8, ptr %0, i64 32
  %2535 = getelementptr inbounds i8, ptr %2532, i64 12
  %2536 = getelementptr inbounds i8, ptr %2532, i64 16
  %.promoted2391 = load i32, ptr %2533, align 8, !tbaa !38
  br label %2542

._crit_edge2388:                                  ; preds = %2562, %.._crit_edge2388_crit_edge
  %2537 = phi i32 [ %.pre2873, %.._crit_edge2388_crit_edge ], [ %2552, %2562 ]
  %.lcssa2004 = phi i32 [ %.promoted2385, %.._crit_edge2388_crit_edge ], [ %2553, %2562 ]
  %2538 = add nsw i32 %.lcssa2004, -1
  store i32 %2538, ptr %2530, align 4, !tbaa !12
  %2539 = shl nuw i32 1, %2538
  %2540 = and i32 %2537, %2539
  %2541 = icmp eq i32 %2540, 0
  br i1 %2541, label %2640, label %2564

2542:                                             ; preds = %.lr.ph2387, %2562
  %2543 = phi i32 [ %.promoted2391, %.lr.ph2387 ], [ %2555, %2562 ]
  %2544 = phi i32 [ %.promoted2385, %.lr.ph2387 ], [ %2553, %2562 ]
  %2545 = icmp eq i32 %2543, 0
  br i1 %2545, label %.loopexit, label %2546

2546:                                             ; preds = %2542
  %2547 = load i32, ptr %2534, align 8, !tbaa !37
  %2548 = shl i32 %2547, 8
  %2549 = load ptr, ptr %2532, align 8, !tbaa !40
  %2550 = load i8, ptr %2549, align 1, !tbaa !41
  %2551 = zext i8 %2550 to i32
  %2552 = or disjoint i32 %2548, %2551
  store i32 %2552, ptr %2534, align 8, !tbaa !37
  %2553 = add nsw i32 %2544, 8
  store i32 %2553, ptr %2530, align 4, !tbaa !12
  %2554 = getelementptr inbounds i8, ptr %2549, i64 1
  store ptr %2554, ptr %2532, align 8, !tbaa !40
  %2555 = add i32 %2543, -1
  store i32 %2555, ptr %2533, align 8, !tbaa !38
  %2556 = load i32, ptr %2535, align 4, !tbaa !42
  %2557 = add i32 %2556, 1
  store i32 %2557, ptr %2535, align 4, !tbaa !42
  %2558 = icmp eq i32 %2557, 0
  br i1 %2558, label %2559, label %2562

2559:                                             ; preds = %2546
  %2560 = load i32, ptr %2536, align 8, !tbaa !43
  %2561 = add i32 %2560, 1
  store i32 %2561, ptr %2536, align 8, !tbaa !43
  br label %2562

2562:                                             ; preds = %2559, %2546
  %2563 = icmp sgt i32 %2544, -8
  br i1 %2563, label %._crit_edge2388, label %2542

2564:                                             ; preds = %._crit_edge2874, %._crit_edge2388
  %2565 = phi ptr [ %58, %._crit_edge2874 ], [ %2489, %._crit_edge2388 ]
  %2566 = phi ptr [ %57, %._crit_edge2874 ], [ %2490, %._crit_edge2388 ]
  %2567 = phi ptr [ %56, %._crit_edge2874 ], [ %2491, %._crit_edge2388 ]
  %2568 = phi ptr [ %55, %._crit_edge2874 ], [ %2492, %._crit_edge2388 ]
  %2569 = phi ptr [ %54, %._crit_edge2874 ], [ %2493, %._crit_edge2388 ]
  %2570 = phi ptr [ %53, %._crit_edge2874 ], [ %2494, %._crit_edge2388 ]
  %2571 = phi ptr [ %52, %._crit_edge2874 ], [ %2495, %._crit_edge2388 ]
  %2572 = phi ptr [ %51, %._crit_edge2874 ], [ %2496, %._crit_edge2388 ]
  %2573 = phi ptr [ %50, %._crit_edge2874 ], [ %2497, %._crit_edge2388 ]
  %2574 = phi ptr [ %49, %._crit_edge2874 ], [ %2498, %._crit_edge2388 ]
  %2575 = phi ptr [ %48, %._crit_edge2874 ], [ %2499, %._crit_edge2388 ]
  %2576 = phi ptr [ %47, %._crit_edge2874 ], [ %2500, %._crit_edge2388 ]
  %2577 = phi ptr [ %46, %._crit_edge2874 ], [ %2501, %._crit_edge2388 ]
  %2578 = phi ptr [ %45, %._crit_edge2874 ], [ %2502, %._crit_edge2388 ]
  %2579 = phi ptr [ %44, %._crit_edge2874 ], [ %2503, %._crit_edge2388 ]
  %2580 = phi ptr [ %43, %._crit_edge2874 ], [ %2504, %._crit_edge2388 ]
  %2581 = phi ptr [ %42, %._crit_edge2874 ], [ %2505, %._crit_edge2388 ]
  %2582 = phi ptr [ %41, %._crit_edge2874 ], [ %2506, %._crit_edge2388 ]
  %2583 = phi ptr [ %40, %._crit_edge2874 ], [ %2507, %._crit_edge2388 ]
  %2584 = phi ptr [ %39, %._crit_edge2874 ], [ %2508, %._crit_edge2388 ]
  %2585 = phi ptr [ %38, %._crit_edge2874 ], [ %2509, %._crit_edge2388 ]
  %2586 = phi ptr [ %37, %._crit_edge2874 ], [ %2510, %._crit_edge2388 ]
  %2587 = phi ptr [ %36, %._crit_edge2874 ], [ %2511, %._crit_edge2388 ]
  %2588 = phi ptr [ %35, %._crit_edge2874 ], [ %2512, %._crit_edge2388 ]
  %2589 = phi i32 [ %.pre2721, %._crit_edge2874 ], [ %2513, %._crit_edge2388 ]
  %2590 = phi i32 [ %.pre2723, %._crit_edge2874 ], [ %2514, %._crit_edge2388 ]
  %2591 = phi i32 [ %.pre2725, %._crit_edge2874 ], [ %2515, %._crit_edge2388 ]
  %2592 = phi i32 [ %.pre2727, %._crit_edge2874 ], [ %2516, %._crit_edge2388 ]
  %2593 = phi i32 [ %.pre2729, %._crit_edge2874 ], [ %2517, %._crit_edge2388 ]
  %2594 = phi i32 [ %.pre2731, %._crit_edge2874 ], [ %2518, %._crit_edge2388 ]
  %2595 = phi i32 [ %.pre2733, %._crit_edge2874 ], [ %2519, %._crit_edge2388 ]
  %2596 = phi i32 [ %.pre2735, %._crit_edge2874 ], [ %2520, %._crit_edge2388 ]
  %2597 = phi i32 [ %.pre2739, %._crit_edge2874 ], [ %2521, %._crit_edge2388 ]
  %2598 = phi i32 [ %.pre2741, %._crit_edge2874 ], [ %2522, %._crit_edge2388 ]
  %2599 = phi i32 [ %.pre2743, %._crit_edge2874 ], [ %2523, %._crit_edge2388 ]
  %2600 = phi i32 [ %.pre2745, %._crit_edge2874 ], [ %2524, %._crit_edge2388 ]
  %2601 = phi i32 [ %.pre2747, %._crit_edge2874 ], [ %2525, %._crit_edge2388 ]
  %2602 = phi i32 [ %.pre2749, %._crit_edge2874 ], [ %2526, %._crit_edge2388 ]
  %2603 = phi ptr [ %.pre2751, %._crit_edge2874 ], [ %2527, %._crit_edge2388 ]
  %2604 = phi ptr [ %.pre2753, %._crit_edge2874 ], [ %2528, %._crit_edge2388 ]
  %2605 = phi ptr [ %.pre2755, %._crit_edge2874 ], [ %2529, %._crit_edge2388 ]
  %.promoted2392 = phi i32 [ %.promoted2392.pre, %._crit_edge2874 ], [ %2538, %._crit_edge2388 ]
  %.51636 = phi i32 [ %.pre2737, %._crit_edge2874 ], [ %.41635, %._crit_edge2388 ]
  %.81506 = phi i32 [ %.pre2719, %._crit_edge2874 ], [ %.71505, %._crit_edge2388 ]
  %.91485 = phi i32 [ %.pre2717, %._crit_edge2874 ], [ %.81484, %._crit_edge2388 ]
  %.101463 = phi i32 [ %.pre2715, %._crit_edge2874 ], [ %.91462, %._crit_edge2388 ]
  %.51439 = phi i32 [ %.pre2713, %._crit_edge2874 ], [ %.41438, %._crit_edge2388 ]
  %.141419 = phi i32 [ %.pre2711, %._crit_edge2874 ], [ %.131418, %._crit_edge2388 ]
  %.18 = phi i32 [ %.pre, %._crit_edge2874 ], [ %.17, %._crit_edge2388 ]
  store i32 35, ptr %4, align 8, !tbaa !11
  %2606 = getelementptr inbounds i8, ptr %0, i64 36
  %2607 = icmp sgt i32 %.promoted2392, 0
  br i1 %2607, label %.._crit_edge2395_crit_edge, label %.lr.ph2394

.._crit_edge2395_crit_edge:                       ; preds = %2564
  %.phi.trans.insert2877 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2878 = load i32, ptr %.phi.trans.insert2877, align 8, !tbaa !37
  br label %._crit_edge2395

.lr.ph2394:                                       ; preds = %2564
  %2608 = load ptr, ptr %0, align 8, !tbaa !5
  %2609 = getelementptr inbounds i8, ptr %2608, i64 8
  %2610 = getelementptr inbounds i8, ptr %0, i64 32
  %2611 = getelementptr inbounds i8, ptr %2608, i64 12
  %2612 = getelementptr inbounds i8, ptr %2608, i64 16
  %.promoted2398 = load i32, ptr %2609, align 8, !tbaa !38
  br label %2618

._crit_edge2395:                                  ; preds = %2638, %.._crit_edge2395_crit_edge
  %2613 = phi i32 [ %.pre2878, %.._crit_edge2395_crit_edge ], [ %2628, %2638 ]
  %.lcssa2000 = phi i32 [ %.promoted2392, %.._crit_edge2395_crit_edge ], [ %2629, %2638 ]
  %2614 = add nsw i32 %.lcssa2000, -1
  store i32 %2614, ptr %2606, align 4, !tbaa !12
  %2615 = shl nuw i32 1, %2614
  %2616 = and i32 %2613, %2615
  %2617 = icmp eq i32 %2616, 0
  %.61637.v = select i1 %2617, i32 1, i32 -1
  %.61637 = add nsw i32 %.61637.v, %.51636
  br label %2445

2618:                                             ; preds = %.lr.ph2394, %2638
  %2619 = phi i32 [ %.promoted2398, %.lr.ph2394 ], [ %2631, %2638 ]
  %2620 = phi i32 [ %.promoted2392, %.lr.ph2394 ], [ %2629, %2638 ]
  %2621 = icmp eq i32 %2619, 0
  br i1 %2621, label %.loopexit, label %2622

2622:                                             ; preds = %2618
  %2623 = load i32, ptr %2610, align 8, !tbaa !37
  %2624 = shl i32 %2623, 8
  %2625 = load ptr, ptr %2608, align 8, !tbaa !40
  %2626 = load i8, ptr %2625, align 1, !tbaa !41
  %2627 = zext i8 %2626 to i32
  %2628 = or disjoint i32 %2624, %2627
  store i32 %2628, ptr %2610, align 8, !tbaa !37
  %2629 = add nsw i32 %2620, 8
  store i32 %2629, ptr %2606, align 4, !tbaa !12
  %2630 = getelementptr inbounds i8, ptr %2625, i64 1
  store ptr %2630, ptr %2608, align 8, !tbaa !40
  %2631 = add i32 %2619, -1
  store i32 %2631, ptr %2609, align 8, !tbaa !38
  %2632 = load i32, ptr %2611, align 4, !tbaa !42
  %2633 = add i32 %2632, 1
  store i32 %2633, ptr %2611, align 4, !tbaa !42
  %2634 = icmp eq i32 %2633, 0
  br i1 %2634, label %2635, label %2638

2635:                                             ; preds = %2622
  %2636 = load i32, ptr %2612, align 8, !tbaa !43
  %2637 = add i32 %2636, 1
  store i32 %2637, ptr %2612, align 8, !tbaa !43
  br label %2638

2638:                                             ; preds = %2635, %2622
  %2639 = icmp sgt i32 %2620, -8
  br i1 %2639, label %._crit_edge2395, label %2618

2640:                                             ; preds = %._crit_edge2388
  %2641 = trunc i32 %.41635 to i8
  %2642 = getelementptr inbounds i8, ptr %0, i64 43888
  %2643 = sext i32 %.41438 to i64
  %2644 = sext i32 %.17 to i64
  %2645 = getelementptr inbounds [6 x [258 x i8]], ptr %2642, i64 0, i64 %2643, i64 %2644
  store i8 %2641, ptr %2645, align 1, !tbaa !41
  %2646 = add nsw i32 %.17, 1
  br label %2402, !llvm.loop !72

2647:                                             ; preds = %2402
  %2648 = add nsw i32 %.21436, 1
  br label %2277, !llvm.loop !73

.preheader1928:                                   ; preds = %.preheader1928.lr.ph, %._crit_edge2278
  %indvars.iv2605 = phi i64 [ 0, %.preheader1928.lr.ph ], [ %indvars.iv.next2606, %._crit_edge2278 ]
  br i1 %2321, label %.lr.ph2277.preheader, label %._crit_edge2278

.lr.ph2277.preheader:                             ; preds = %.preheader1928
  br i1 %min.iters.check3269, label %.lr.ph2277.preheader3486, label %vector.body3274

vector.body3274:                                  ; preds = %.lr.ph2277.preheader, %vector.body3274
  %index3275 = phi i64 [ %index.next3281, %vector.body3274 ], [ 0, %.lr.ph2277.preheader ]
  %vec.phi = phi <4 x i32> [ %2655, %vector.body3274 ], [ <i32 32, i32 32, i32 32, i32 32>, %.lr.ph2277.preheader ]
  %vec.phi3276 = phi <4 x i32> [ %2656, %vector.body3274 ], [ <i32 32, i32 32, i32 32, i32 32>, %.lr.ph2277.preheader ]
  %vec.phi3277 = phi <4 x i32> [ %2653, %vector.body3274 ], [ zeroinitializer, %.lr.ph2277.preheader ]
  %vec.phi3278 = phi <4 x i32> [ %2654, %vector.body3274 ], [ zeroinitializer, %.lr.ph2277.preheader ]
  %2649 = getelementptr inbounds [6 x [258 x i8]], ptr %2322, i64 0, i64 %indvars.iv2605, i64 %index3275
  %2650 = getelementptr inbounds i8, ptr %2649, i64 4
  %wide.load3279 = load <4 x i8>, ptr %2649, align 1, !tbaa !41
  %wide.load3280 = load <4 x i8>, ptr %2650, align 1, !tbaa !41
  %2651 = zext <4 x i8> %wide.load3279 to <4 x i32>
  %2652 = zext <4 x i8> %wide.load3280 to <4 x i32>
  %2653 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %vec.phi3277, <4 x i32> %2651)
  %2654 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %vec.phi3278, <4 x i32> %2652)
  %2655 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi, <4 x i32> %2651)
  %2656 = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %vec.phi3276, <4 x i32> %2652)
  %index.next3281 = add nuw i64 %index3275, 8
  %2657 = icmp eq i64 %index.next3281, %n.vec3272
  br i1 %2657, label %middle.block3268, label %vector.body3274, !llvm.loop !74

middle.block3268:                                 ; preds = %vector.body3274
  %rdx.minmax = call <4 x i32> @llvm.smin.v4i32(<4 x i32> %2655, <4 x i32> %2656)
  %2658 = call i32 @llvm.vector.reduce.smin.v4i32(<4 x i32> %rdx.minmax)
  %rdx.minmax3282 = call <4 x i32> @llvm.smax.v4i32(<4 x i32> %2653, <4 x i32> %2654)
  %2659 = call i32 @llvm.vector.reduce.smax.v4i32(<4 x i32> %rdx.minmax3282)
  br i1 %cmp.n3283, label %._crit_edge2278, label %.lr.ph2277.preheader3486

.lr.ph2277.preheader3486:                         ; preds = %middle.block3268, %.lr.ph2277.preheader
  %indvars.iv2599.ph = phi i64 [ 0, %.lr.ph2277.preheader ], [ %n.vec3272, %middle.block3268 ]
  %.014002276.ph = phi i32 [ 32, %.lr.ph2277.preheader ], [ %2658, %middle.block3268 ]
  %.014012275.ph = phi i32 [ 0, %.lr.ph2277.preheader ], [ %2659, %middle.block3268 ]
  br label %.lr.ph2277

.lr.ph2277:                                       ; preds = %.lr.ph2277.preheader3486, %.lr.ph2277
  %indvars.iv2599 = phi i64 [ %indvars.iv.next2600, %.lr.ph2277 ], [ %indvars.iv2599.ph, %.lr.ph2277.preheader3486 ]
  %.014002276 = phi i32 [ %.1, %.lr.ph2277 ], [ %.014002276.ph, %.lr.ph2277.preheader3486 ]
  %.014012275 = phi i32 [ %spec.select, %.lr.ph2277 ], [ %.014012275.ph, %.lr.ph2277.preheader3486 ]
  %2660 = getelementptr inbounds [6 x [258 x i8]], ptr %2322, i64 0, i64 %indvars.iv2605, i64 %indvars.iv2599
  %2661 = load i8, ptr %2660, align 1, !tbaa !41
  %2662 = zext i8 %2661 to i32
  %spec.select = tail call i32 @llvm.smax.i32(i32 %.014012275, i32 %2662)
  %.1 = tail call i32 @llvm.smin.i32(i32 %.014002276, i32 %2662)
  %indvars.iv.next2600 = add nuw nsw i64 %indvars.iv2599, 1
  %exitcond2604.not = icmp eq i64 %indvars.iv.next2600, %wide.trip.count2603
  br i1 %exitcond2604.not, label %._crit_edge2278, label %.lr.ph2277, !llvm.loop !75

._crit_edge2278:                                  ; preds = %.lr.ph2277, %middle.block3268, %.preheader1928
  %.01401.lcssa = phi i32 [ 0, %.preheader1928 ], [ %2659, %middle.block3268 ], [ %spec.select, %.lr.ph2277 ]
  %.01400.lcssa = phi i32 [ 32, %.preheader1928 ], [ %2658, %middle.block3268 ], [ %.1, %.lr.ph2277 ]
  %2663 = getelementptr inbounds [6 x [258 x i32]], ptr %2323, i64 0, i64 %indvars.iv2605
  %2664 = getelementptr inbounds [6 x [258 x i32]], ptr %2324, i64 0, i64 %indvars.iv2605
  %2665 = getelementptr inbounds [6 x [258 x i32]], ptr %2325, i64 0, i64 %indvars.iv2605
  %2666 = getelementptr inbounds [6 x [258 x i8]], ptr %2322, i64 0, i64 %indvars.iv2605
  tail call void @BZ2_hbCreateDecodeTables(ptr noundef nonnull %2663, ptr noundef nonnull %2664, ptr noundef nonnull %2665, ptr noundef nonnull %2666, i32 noundef %.01400.lcssa, i32 noundef %.01401.lcssa, i32 noundef %.51458) #6
  %2667 = getelementptr inbounds [6 x i32], ptr %2326, i64 0, i64 %indvars.iv2605
  store i32 %.01400.lcssa, ptr %2667, align 4, !tbaa !76
  %indvars.iv.next2606 = add nuw nsw i64 %indvars.iv2605, 1
  %exitcond2610.not = icmp eq i64 %indvars.iv.next2606, %wide.trip.count2609
  br i1 %exitcond2610.not, label %._crit_edge2282, label %.preheader1928, !llvm.loop !77

._crit_edge2282:                                  ; preds = %._crit_edge2278, %.preheader1929
  %.61440.lcssa = phi i32 [ 0, %.preheader1929 ], [ %.41480, %._crit_edge2278 ]
  %2668 = getelementptr inbounds i8, ptr %0, i64 3192
  %2669 = load i32, ptr %2668, align 8, !tbaa !61
  %2670 = getelementptr inbounds i8, ptr %0, i64 40
  %2671 = load i32, ptr %2670, align 8, !tbaa !44
  %2672 = getelementptr inbounds i8, ptr %0, i64 68
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(1024) %2672, i8 0, i64 1024, i1 false), !tbaa !76
  %2673 = mul nsw i32 %2671, 100000
  %2674 = getelementptr inbounds i8, ptr %0, i64 3724
  %2675 = getelementptr inbounds i8, ptr %0, i64 7820
  br label %.preheader1926

.preheader1926:                                   ; preds = %._crit_edge2282, %.preheader1926
  %indvars.iv2622 = phi i64 [ 15, %._crit_edge2282 ], [ %indvars.iv.next2623, %.preheader1926 ]
  %indvars.iv2620 = phi i64 [ 4095, %._crit_edge2282 ], [ %indvars.iv.next2621, %.preheader1926 ]
  %2676 = shl nsw i64 %indvars.iv2622, 4
  %2677 = trunc i64 %2676 to i8
  %2678 = or disjoint i8 %2677, 15
  %2679 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv2620
  store i8 %2678, ptr %2679, align 1, !tbaa !41
  %indvars.iv.next2617 = add nsw i64 %indvars.iv2620, -1
  %2680 = trunc i64 %2676 to i8
  %2681 = or disjoint i8 %2680, 14
  %2682 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv.next2617
  store i8 %2681, ptr %2682, align 1, !tbaa !41
  %indvars.iv.next2617.1 = add nsw i64 %indvars.iv2620, -2
  %2683 = trunc i64 %2676 to i8
  %2684 = or disjoint i8 %2683, 13
  %2685 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv.next2617.1
  store i8 %2684, ptr %2685, align 1, !tbaa !41
  %indvars.iv.next2617.5 = add nsw i64 %indvars.iv2620, -6
  %2686 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv.next2617.5
  %2687 = trunc i64 %2676 to i8
  %2688 = insertelement <4 x i8> poison, i8 %2687, i64 0
  %2689 = shufflevector <4 x i8> %2688, <4 x i8> poison, <4 x i32> zeroinitializer
  %2690 = or disjoint <4 x i8> %2689, <i8 9, i8 10, i8 11, i8 12>
  store <4 x i8> %2690, ptr %2686, align 1, !tbaa !41
  %indvars.iv.next2617.13 = add nsw i64 %indvars.iv2620, -14
  %2691 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv.next2617.13
  %2692 = trunc i64 %2676 to i8
  %2693 = insertelement <8 x i8> poison, i8 %2692, i64 0
  %2694 = shufflevector <8 x i8> %2693, <8 x i8> poison, <8 x i32> zeroinitializer
  %2695 = or disjoint <8 x i8> %2694, <i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8>
  store <8 x i8> %2695, ptr %2691, align 1, !tbaa !41
  %indvars.iv.next2617.14 = add nsw i64 %indvars.iv2620, -15
  %2696 = trunc i64 %2676 to i8
  %2697 = getelementptr inbounds [4096 x i8], ptr %2674, i64 0, i64 %indvars.iv.next2617.14
  store i8 %2696, ptr %2697, align 1, !tbaa !41
  %2698 = trunc nsw i64 %indvars.iv.next2617.14 to i32
  %indvars.iv.next2621 = add nsw i64 %indvars.iv2620, -16
  %2699 = getelementptr inbounds [16 x i32], ptr %2675, i64 0, i64 %indvars.iv2622
  store i32 %2698, ptr %2699, align 4, !tbaa !76
  %indvars.iv.next2623 = add nsw i64 %indvars.iv2622, -1
  %.not2930 = icmp eq i64 %indvars.iv2622, 0
  br i1 %.not2930, label %2700, label %.preheader1926, !llvm.loop !78

2700:                                             ; preds = %.preheader1926
  %2701 = add nsw i32 %2669, 1
  %2702 = icmp slt i32 %.31501, 1
  br i1 %2702, label %.loopexit, label %2703

2703:                                             ; preds = %2700
  %2704 = getelementptr inbounds i8, ptr %0, i64 51628
  %2705 = getelementptr inbounds i8, ptr %0, i64 7884
  %2706 = load i8, ptr %2705, align 1, !tbaa !41
  %2707 = zext i8 %2706 to i64
  %2708 = getelementptr inbounds [6 x [258 x i32]], ptr %2704, i64 0, i64 %2707
  %2709 = getelementptr inbounds i8, ptr %0, i64 57820
  %2710 = getelementptr inbounds [6 x [258 x i32]], ptr %2709, i64 0, i64 %2707
  %2711 = getelementptr inbounds i8, ptr %0, i64 45436
  %2712 = getelementptr inbounds [6 x [258 x i32]], ptr %2711, i64 0, i64 %2707
  %2713 = getelementptr inbounds i8, ptr %0, i64 64012
  %2714 = getelementptr inbounds [6 x i32], ptr %2713, i64 0, i64 %2707
  %2715 = load i32, ptr %2714, align 4, !tbaa !76
  %2716 = zext i8 %2706 to i32
  br label %2717

2717:                                             ; preds = %2703, %34
  %2718 = phi ptr [ %58, %34 ], [ %2278, %2703 ]
  %2719 = phi ptr [ %57, %34 ], [ %2279, %2703 ]
  %2720 = phi ptr [ %56, %34 ], [ %2280, %2703 ]
  %2721 = phi ptr [ %55, %34 ], [ %2281, %2703 ]
  %2722 = phi ptr [ %54, %34 ], [ %2282, %2703 ]
  %2723 = phi ptr [ %53, %34 ], [ %2283, %2703 ]
  %2724 = phi ptr [ %52, %34 ], [ %2284, %2703 ]
  %2725 = phi ptr [ %51, %34 ], [ %2285, %2703 ]
  %2726 = phi ptr [ %50, %34 ], [ %2286, %2703 ]
  %2727 = phi ptr [ %49, %34 ], [ %2287, %2703 ]
  %2728 = phi ptr [ %48, %34 ], [ %2288, %2703 ]
  %2729 = phi ptr [ %47, %34 ], [ %2289, %2703 ]
  %2730 = phi ptr [ %46, %34 ], [ %2290, %2703 ]
  %2731 = phi ptr [ %45, %34 ], [ %2291, %2703 ]
  %2732 = phi ptr [ %44, %34 ], [ %2292, %2703 ]
  %2733 = phi ptr [ %43, %34 ], [ %2293, %2703 ]
  %2734 = phi ptr [ %42, %34 ], [ %2294, %2703 ]
  %2735 = phi ptr [ %41, %34 ], [ %2295, %2703 ]
  %2736 = phi ptr [ %40, %34 ], [ %2296, %2703 ]
  %2737 = phi ptr [ %39, %34 ], [ %2297, %2703 ]
  %2738 = phi ptr [ %38, %34 ], [ %2298, %2703 ]
  %2739 = phi ptr [ %37, %34 ], [ %2299, %2703 ]
  %2740 = phi ptr [ %36, %34 ], [ %2300, %2703 ]
  %2741 = phi ptr [ %35, %34 ], [ %2301, %2703 ]
  %2742 = phi i32 [ %.pre2727, %34 ], [ %2305, %2703 ]
  %2743 = phi i32 [ %.pre2733, %34 ], [ %2308, %2703 ]
  %2744 = phi i32 [ %.pre2735, %34 ], [ %2309, %2703 ]
  %2745 = phi i32 [ %.pre2739, %34 ], [ %2310, %2703 ]
  %2746 = phi i32 [ %.pre2743, %34 ], [ %2312, %2703 ]
  %2747 = phi i32 [ %.pre2745, %34 ], [ %2313, %2703 ]
  %.11747 = phi ptr [ %.pre2755, %34 ], [ %2710, %2703 ]
  %.11732 = phi ptr [ %.pre2753, %34 ], [ %2708, %2703 ]
  %.11717 = phi ptr [ %.pre2751, %34 ], [ %2712, %2703 ]
  %.11702 = phi i32 [ %.pre2749, %34 ], [ %2715, %2703 ]
  %.11687 = phi i32 [ %.pre2747, %34 ], [ %2716, %2703 ]
  %.01650 = phi i32 [ %.pre2741, %34 ], [ %2715, %2703 ]
  %.71638 = phi i32 [ %.pre2737, %34 ], [ %.01631, %2703 ]
  %.01590 = phi i32 [ %.pre2731, %34 ], [ 0, %2703 ]
  %.01578 = phi i32 [ %.pre2729, %34 ], [ %2673, %2703 ]
  %.11549 = phi i32 [ %.pre2725, %34 ], [ 49, %2703 ]
  %.11532 = phi i32 [ %.pre2723, %34 ], [ 0, %2703 ]
  %.01519 = phi i32 [ %.pre2721, %34 ], [ %2701, %2703 ]
  %.91507 = phi i32 [ %.pre2719, %34 ], [ %.31501, %2703 ]
  %.101486 = phi i32 [ %.pre2717, %34 ], [ %.41480, %2703 ]
  %.111464 = phi i32 [ %.pre2715, %34 ], [ %.51458, %2703 ]
  %.71441 = phi i32 [ %.pre2713, %34 ], [ %.61440.lcssa, %2703 ]
  %.151420 = phi i32 [ %.pre2711, %34 ], [ %.91414, %2703 ]
  %.21 = phi i32 [ %.pre, %34 ], [ 256, %2703 ]
  store i32 36, ptr %4, align 8, !tbaa !11
  %2748 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2289 = load i32, ptr %2748, align 4, !tbaa !12
  %.not18422290 = icmp slt i32 %.promoted2289, %.01650
  br i1 %.not18422290, label %.lr.ph2292, label %.._crit_edge2293_crit_edge

.._crit_edge2293_crit_edge:                       ; preds = %2717
  %.phi.trans.insert2844 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2845 = load i32, ptr %.phi.trans.insert2844, align 8, !tbaa !37
  br label %._crit_edge2293

.lr.ph2292:                                       ; preds = %2717
  %2749 = load ptr, ptr %0, align 8, !tbaa !5
  %2750 = getelementptr inbounds i8, ptr %2749, i64 8
  %2751 = getelementptr inbounds i8, ptr %0, i64 32
  %2752 = getelementptr inbounds i8, ptr %2749, i64 12
  %2753 = getelementptr inbounds i8, ptr %2749, i64 16
  %.promoted2296 = load i32, ptr %2750, align 8, !tbaa !38
  br label %2759

._crit_edge2293:                                  ; preds = %2779, %.._crit_edge2293_crit_edge
  %2754 = phi i32 [ %.pre2845, %.._crit_edge2293_crit_edge ], [ %2769, %2779 ]
  %.lcssa2042 = phi i32 [ %.promoted2289, %.._crit_edge2293_crit_edge ], [ %2770, %2779 ]
  %2755 = sub nsw i32 %.lcssa2042, %.01650
  %2756 = lshr i32 %2754, %2755
  %notmask = shl nsw i32 -1, %.01650
  %2757 = xor i32 %notmask, -1
  %2758 = and i32 %2756, %2757
  store i32 %2755, ptr %2748, align 4, !tbaa !12
  br label %2780

2759:                                             ; preds = %.lr.ph2292, %2779
  %2760 = phi i32 [ %.promoted2296, %.lr.ph2292 ], [ %2772, %2779 ]
  %2761 = phi i32 [ %.promoted2289, %.lr.ph2292 ], [ %2770, %2779 ]
  %2762 = icmp eq i32 %2760, 0
  br i1 %2762, label %.loopexit, label %2763

2763:                                             ; preds = %2759
  %2764 = load i32, ptr %2751, align 8, !tbaa !37
  %2765 = shl i32 %2764, 8
  %2766 = load ptr, ptr %2749, align 8, !tbaa !40
  %2767 = load i8, ptr %2766, align 1, !tbaa !41
  %2768 = zext i8 %2767 to i32
  %2769 = or disjoint i32 %2765, %2768
  store i32 %2769, ptr %2751, align 8, !tbaa !37
  %2770 = add nsw i32 %2761, 8
  store i32 %2770, ptr %2748, align 4, !tbaa !12
  %2771 = getelementptr inbounds i8, ptr %2766, i64 1
  store ptr %2771, ptr %2749, align 8, !tbaa !40
  %2772 = add i32 %2760, -1
  store i32 %2772, ptr %2750, align 8, !tbaa !38
  %2773 = load i32, ptr %2752, align 4, !tbaa !42
  %2774 = add i32 %2773, 1
  store i32 %2774, ptr %2752, align 4, !tbaa !42
  %2775 = icmp eq i32 %2774, 0
  br i1 %2775, label %2776, label %2779

2776:                                             ; preds = %2763
  %2777 = load i32, ptr %2753, align 8, !tbaa !43
  %2778 = add i32 %2777, 1
  store i32 %2778, ptr %2753, align 8, !tbaa !43
  br label %2779

2779:                                             ; preds = %2776, %2763
  %.not1842 = icmp slt i32 %2770, %.01650
  br i1 %.not1842, label %2759, label %._crit_edge2293

2780:                                             ; preds = %._crit_edge2374, %._crit_edge2293
  %2781 = phi ptr [ %2817, %._crit_edge2374 ], [ %2718, %._crit_edge2293 ]
  %2782 = phi ptr [ %2818, %._crit_edge2374 ], [ %2719, %._crit_edge2293 ]
  %2783 = phi ptr [ %2819, %._crit_edge2374 ], [ %2720, %._crit_edge2293 ]
  %2784 = phi ptr [ %2820, %._crit_edge2374 ], [ %2721, %._crit_edge2293 ]
  %2785 = phi ptr [ %2821, %._crit_edge2374 ], [ %2722, %._crit_edge2293 ]
  %2786 = phi ptr [ %2822, %._crit_edge2374 ], [ %2723, %._crit_edge2293 ]
  %2787 = phi ptr [ %2823, %._crit_edge2374 ], [ %2724, %._crit_edge2293 ]
  %2788 = phi ptr [ %2824, %._crit_edge2374 ], [ %2725, %._crit_edge2293 ]
  %2789 = phi ptr [ %2825, %._crit_edge2374 ], [ %2726, %._crit_edge2293 ]
  %2790 = phi ptr [ %2826, %._crit_edge2374 ], [ %2727, %._crit_edge2293 ]
  %2791 = phi ptr [ %2827, %._crit_edge2374 ], [ %2728, %._crit_edge2293 ]
  %2792 = phi ptr [ %2828, %._crit_edge2374 ], [ %2729, %._crit_edge2293 ]
  %2793 = phi ptr [ %2829, %._crit_edge2374 ], [ %2730, %._crit_edge2293 ]
  %2794 = phi ptr [ %2830, %._crit_edge2374 ], [ %2731, %._crit_edge2293 ]
  %2795 = phi ptr [ %2831, %._crit_edge2374 ], [ %2732, %._crit_edge2293 ]
  %2796 = phi ptr [ %2832, %._crit_edge2374 ], [ %2733, %._crit_edge2293 ]
  %2797 = phi ptr [ %2833, %._crit_edge2374 ], [ %2734, %._crit_edge2293 ]
  %2798 = phi ptr [ %2834, %._crit_edge2374 ], [ %2735, %._crit_edge2293 ]
  %2799 = phi ptr [ %2835, %._crit_edge2374 ], [ %2736, %._crit_edge2293 ]
  %2800 = phi ptr [ %2836, %._crit_edge2374 ], [ %2737, %._crit_edge2293 ]
  %2801 = phi ptr [ %2837, %._crit_edge2374 ], [ %2738, %._crit_edge2293 ]
  %2802 = phi ptr [ %2838, %._crit_edge2374 ], [ %2739, %._crit_edge2293 ]
  %2803 = phi ptr [ %2839, %._crit_edge2374 ], [ %2740, %._crit_edge2293 ]
  %2804 = phi ptr [ %2840, %._crit_edge2374 ], [ %2741, %._crit_edge2293 ]
  %2805 = phi i32 [ %2841, %._crit_edge2374 ], [ %2742, %._crit_edge2293 ]
  %2806 = phi i32 [ %2842, %._crit_edge2374 ], [ %2743, %._crit_edge2293 ]
  %2807 = phi i32 [ %2843, %._crit_edge2374 ], [ %2744, %._crit_edge2293 ]
  %2808 = phi i32 [ %2844, %._crit_edge2374 ], [ %2745, %._crit_edge2293 ]
  %.promoted23712867 = phi i32 [ %2853, %._crit_edge2374 ], [ %2755, %._crit_edge2293 ]
  %.21748 = phi ptr [ %.31749, %._crit_edge2374 ], [ %.11747, %._crit_edge2293 ]
  %.21733 = phi ptr [ %.31734, %._crit_edge2374 ], [ %.11732, %._crit_edge2293 ]
  %.21718 = phi ptr [ %.31719, %._crit_edge2374 ], [ %.11717, %._crit_edge2293 ]
  %.21703 = phi i32 [ %.31704, %._crit_edge2374 ], [ %.11702, %._crit_edge2293 ]
  %.21688 = phi i32 [ %.31689, %._crit_edge2374 ], [ %.11687, %._crit_edge2293 ]
  %.01675 = phi i32 [ %2855, %._crit_edge2374 ], [ %2747, %._crit_edge2293 ]
  %.01664 = phi i32 [ %2857, %._crit_edge2374 ], [ %2758, %._crit_edge2293 ]
  %.11651 = phi i32 [ %.21652, %._crit_edge2374 ], [ %.01650, %._crit_edge2293 ]
  %.81639 = phi i32 [ %.91640, %._crit_edge2374 ], [ %.71638, %._crit_edge2293 ]
  %.11591 = phi i32 [ %.21592, %._crit_edge2374 ], [ %.01590, %._crit_edge2293 ]
  %.11579 = phi i32 [ %.21580, %._crit_edge2374 ], [ %.01578, %._crit_edge2293 ]
  %.21550 = phi i32 [ %.31551, %._crit_edge2374 ], [ %.11549, %._crit_edge2293 ]
  %.21533 = phi i32 [ %.31534, %._crit_edge2374 ], [ %.11532, %._crit_edge2293 ]
  %.11520 = phi i32 [ %.21521, %._crit_edge2374 ], [ %.01519, %._crit_edge2293 ]
  %.101508 = phi i32 [ %.111509, %._crit_edge2374 ], [ %.91507, %._crit_edge2293 ]
  %.111487 = phi i32 [ %.121488, %._crit_edge2374 ], [ %.101486, %._crit_edge2293 ]
  %.121465 = phi i32 [ %.131466, %._crit_edge2374 ], [ %.111464, %._crit_edge2293 ]
  %.81442 = phi i32 [ %.91443, %._crit_edge2374 ], [ %.71441, %._crit_edge2293 ]
  %.161421 = phi i32 [ %.171422, %._crit_edge2374 ], [ %.151420, %._crit_edge2293 ]
  %.22 = phi i32 [ %.23, %._crit_edge2374 ], [ %.21, %._crit_edge2293 ]
  %2809 = icmp sgt i32 %.11651, 20
  br i1 %2809, label %.loopexit, label %2810

2810:                                             ; preds = %2780
  %2811 = sext i32 %.11651 to i64
  %2812 = getelementptr inbounds i32, ptr %.21718, i64 %2811
  %2813 = load i32, ptr %2812, align 4, !tbaa !76
  %.not1843 = icmp sgt i32 %.01664, %2813
  br i1 %.not1843, label %2814, label %2880

2814:                                             ; preds = %2810
  %2815 = add nsw i32 %.11651, 1
  br label %2816

2816:                                             ; preds = %._crit_edge2864, %2814
  %2817 = phi ptr [ %58, %._crit_edge2864 ], [ %2781, %2814 ]
  %2818 = phi ptr [ %57, %._crit_edge2864 ], [ %2782, %2814 ]
  %2819 = phi ptr [ %56, %._crit_edge2864 ], [ %2783, %2814 ]
  %2820 = phi ptr [ %55, %._crit_edge2864 ], [ %2784, %2814 ]
  %2821 = phi ptr [ %54, %._crit_edge2864 ], [ %2785, %2814 ]
  %2822 = phi ptr [ %53, %._crit_edge2864 ], [ %2786, %2814 ]
  %2823 = phi ptr [ %52, %._crit_edge2864 ], [ %2787, %2814 ]
  %2824 = phi ptr [ %51, %._crit_edge2864 ], [ %2788, %2814 ]
  %2825 = phi ptr [ %50, %._crit_edge2864 ], [ %2789, %2814 ]
  %2826 = phi ptr [ %49, %._crit_edge2864 ], [ %2790, %2814 ]
  %2827 = phi ptr [ %48, %._crit_edge2864 ], [ %2791, %2814 ]
  %2828 = phi ptr [ %47, %._crit_edge2864 ], [ %2792, %2814 ]
  %2829 = phi ptr [ %46, %._crit_edge2864 ], [ %2793, %2814 ]
  %2830 = phi ptr [ %45, %._crit_edge2864 ], [ %2794, %2814 ]
  %2831 = phi ptr [ %44, %._crit_edge2864 ], [ %2795, %2814 ]
  %2832 = phi ptr [ %43, %._crit_edge2864 ], [ %2796, %2814 ]
  %2833 = phi ptr [ %42, %._crit_edge2864 ], [ %2797, %2814 ]
  %2834 = phi ptr [ %41, %._crit_edge2864 ], [ %2798, %2814 ]
  %2835 = phi ptr [ %40, %._crit_edge2864 ], [ %2799, %2814 ]
  %2836 = phi ptr [ %39, %._crit_edge2864 ], [ %2800, %2814 ]
  %2837 = phi ptr [ %38, %._crit_edge2864 ], [ %2801, %2814 ]
  %2838 = phi ptr [ %37, %._crit_edge2864 ], [ %2802, %2814 ]
  %2839 = phi ptr [ %36, %._crit_edge2864 ], [ %2803, %2814 ]
  %2840 = phi ptr [ %35, %._crit_edge2864 ], [ %2804, %2814 ]
  %2841 = phi i32 [ %.pre2727, %._crit_edge2864 ], [ %2805, %2814 ]
  %2842 = phi i32 [ %.pre2733, %._crit_edge2864 ], [ %2806, %2814 ]
  %2843 = phi i32 [ %.pre2735, %._crit_edge2864 ], [ %2807, %2814 ]
  %2844 = phi i32 [ %.pre2739, %._crit_edge2864 ], [ %2808, %2814 ]
  %.promoted2371 = phi i32 [ %.promoted2371.pre, %._crit_edge2864 ], [ %.promoted23712867, %2814 ]
  %.31749 = phi ptr [ %.pre2755, %._crit_edge2864 ], [ %.21748, %2814 ]
  %.31734 = phi ptr [ %.pre2753, %._crit_edge2864 ], [ %.21733, %2814 ]
  %.31719 = phi ptr [ %.pre2751, %._crit_edge2864 ], [ %.21718, %2814 ]
  %.31704 = phi i32 [ %.pre2749, %._crit_edge2864 ], [ %.21703, %2814 ]
  %.31689 = phi i32 [ %.pre2747, %._crit_edge2864 ], [ %.21688, %2814 ]
  %.11676 = phi i32 [ %.pre2745, %._crit_edge2864 ], [ %.01675, %2814 ]
  %.11665 = phi i32 [ %.pre2743, %._crit_edge2864 ], [ %.01664, %2814 ]
  %.21652 = phi i32 [ %.pre2741, %._crit_edge2864 ], [ %2815, %2814 ]
  %.91640 = phi i32 [ %.pre2737, %._crit_edge2864 ], [ %.81639, %2814 ]
  %.21592 = phi i32 [ %.pre2731, %._crit_edge2864 ], [ %.11591, %2814 ]
  %.21580 = phi i32 [ %.pre2729, %._crit_edge2864 ], [ %.11579, %2814 ]
  %.31551 = phi i32 [ %.pre2725, %._crit_edge2864 ], [ %.21550, %2814 ]
  %.31534 = phi i32 [ %.pre2723, %._crit_edge2864 ], [ %.21533, %2814 ]
  %.21521 = phi i32 [ %.pre2721, %._crit_edge2864 ], [ %.11520, %2814 ]
  %.111509 = phi i32 [ %.pre2719, %._crit_edge2864 ], [ %.101508, %2814 ]
  %.121488 = phi i32 [ %.pre2717, %._crit_edge2864 ], [ %.111487, %2814 ]
  %.131466 = phi i32 [ %.pre2715, %._crit_edge2864 ], [ %.121465, %2814 ]
  %.91443 = phi i32 [ %.pre2713, %._crit_edge2864 ], [ %.81442, %2814 ]
  %.171422 = phi i32 [ %.pre2711, %._crit_edge2864 ], [ %.161421, %2814 ]
  %.23 = phi i32 [ %.pre, %._crit_edge2864 ], [ %.22, %2814 ]
  store i32 37, ptr %4, align 8, !tbaa !11
  %2845 = getelementptr inbounds i8, ptr %0, i64 36
  %2846 = icmp sgt i32 %.promoted2371, 0
  br i1 %2846, label %.._crit_edge2374_crit_edge, label %.lr.ph2373

.._crit_edge2374_crit_edge:                       ; preds = %2816
  %.phi.trans.insert2868 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2869 = load i32, ptr %.phi.trans.insert2868, align 8, !tbaa !37
  br label %._crit_edge2374

.lr.ph2373:                                       ; preds = %2816
  %2847 = load ptr, ptr %0, align 8, !tbaa !5
  %2848 = getelementptr inbounds i8, ptr %2847, i64 8
  %2849 = getelementptr inbounds i8, ptr %0, i64 32
  %2850 = getelementptr inbounds i8, ptr %2847, i64 12
  %2851 = getelementptr inbounds i8, ptr %2847, i64 16
  %.promoted2377 = load i32, ptr %2848, align 8, !tbaa !38
  br label %2858

._crit_edge2374:                                  ; preds = %2878, %.._crit_edge2374_crit_edge
  %2852 = phi i32 [ %.pre2869, %.._crit_edge2374_crit_edge ], [ %2868, %2878 ]
  %.lcssa2012 = phi i32 [ %.promoted2371, %.._crit_edge2374_crit_edge ], [ %2869, %2878 ]
  %2853 = add nsw i32 %.lcssa2012, -1
  %2854 = lshr i32 %2852, %2853
  %2855 = and i32 %2854, 1
  store i32 %2853, ptr %2845, align 4, !tbaa !12
  %2856 = shl i32 %.11665, 1
  %2857 = or disjoint i32 %2855, %2856
  br label %2780

2858:                                             ; preds = %.lr.ph2373, %2878
  %2859 = phi i32 [ %.promoted2377, %.lr.ph2373 ], [ %2871, %2878 ]
  %2860 = phi i32 [ %.promoted2371, %.lr.ph2373 ], [ %2869, %2878 ]
  %2861 = icmp eq i32 %2859, 0
  br i1 %2861, label %.loopexit, label %2862

2862:                                             ; preds = %2858
  %2863 = load i32, ptr %2849, align 8, !tbaa !37
  %2864 = shl i32 %2863, 8
  %2865 = load ptr, ptr %2847, align 8, !tbaa !40
  %2866 = load i8, ptr %2865, align 1, !tbaa !41
  %2867 = zext i8 %2866 to i32
  %2868 = or disjoint i32 %2864, %2867
  store i32 %2868, ptr %2849, align 8, !tbaa !37
  %2869 = add nsw i32 %2860, 8
  store i32 %2869, ptr %2845, align 4, !tbaa !12
  %2870 = getelementptr inbounds i8, ptr %2865, i64 1
  store ptr %2870, ptr %2847, align 8, !tbaa !40
  %2871 = add i32 %2859, -1
  store i32 %2871, ptr %2848, align 8, !tbaa !38
  %2872 = load i32, ptr %2850, align 4, !tbaa !42
  %2873 = add i32 %2872, 1
  store i32 %2873, ptr %2850, align 4, !tbaa !42
  %2874 = icmp eq i32 %2873, 0
  br i1 %2874, label %2875, label %2878

2875:                                             ; preds = %2862
  %2876 = load i32, ptr %2851, align 8, !tbaa !43
  %2877 = add i32 %2876, 1
  store i32 %2877, ptr %2851, align 8, !tbaa !43
  br label %2878

2878:                                             ; preds = %2875, %2862
  %2879 = icmp sgt i32 %2860, -8
  br i1 %2879, label %._crit_edge2374, label %2858

2880:                                             ; preds = %2810
  %2881 = getelementptr inbounds i32, ptr %.21733, i64 %2811
  %2882 = load i32, ptr %2881, align 4, !tbaa !76
  %2883 = sub nsw i32 %.01664, %2882
  %or.cond = icmp ugt i32 %2883, 257
  br i1 %or.cond, label %.loopexit, label %2884

2884:                                             ; preds = %2880
  %2885 = zext nneg i32 %2883 to i64
  %2886 = getelementptr inbounds i32, ptr %.21748, i64 %2885
  %2887 = load i32, ptr %2886, align 4, !tbaa !76
  br label %.loopexit1913

.loopexit1913:                                    ; preds = %.preheader1912, %.preheader1915, %.loopexit1913.loopexit, %.loopexit1913.loopexit2506, %3616, %2884
  %2888 = phi ptr [ %3519, %3616 ], [ %2781, %2884 ], [ %3024, %.loopexit1913.loopexit2506 ], [ %3024, %.loopexit1913.loopexit ], [ %3024, %.preheader1915 ], [ %3024, %.preheader1912 ]
  %2889 = phi ptr [ %3520, %3616 ], [ %2782, %2884 ], [ %3025, %.loopexit1913.loopexit2506 ], [ %3025, %.loopexit1913.loopexit ], [ %3025, %.preheader1915 ], [ %3025, %.preheader1912 ]
  %2890 = phi ptr [ %3521, %3616 ], [ %2783, %2884 ], [ %3026, %.loopexit1913.loopexit2506 ], [ %3026, %.loopexit1913.loopexit ], [ %3026, %.preheader1915 ], [ %3026, %.preheader1912 ]
  %2891 = phi ptr [ %3522, %3616 ], [ %2784, %2884 ], [ %3027, %.loopexit1913.loopexit2506 ], [ %3027, %.loopexit1913.loopexit ], [ %3027, %.preheader1915 ], [ %3027, %.preheader1912 ]
  %2892 = phi ptr [ %3523, %3616 ], [ %2785, %2884 ], [ %3028, %.loopexit1913.loopexit2506 ], [ %3028, %.loopexit1913.loopexit ], [ %3028, %.preheader1915 ], [ %3028, %.preheader1912 ]
  %2893 = phi ptr [ %3524, %3616 ], [ %2786, %2884 ], [ %3029, %.loopexit1913.loopexit2506 ], [ %3029, %.loopexit1913.loopexit ], [ %3029, %.preheader1915 ], [ %3029, %.preheader1912 ]
  %2894 = phi ptr [ %3525, %3616 ], [ %2787, %2884 ], [ %3030, %.loopexit1913.loopexit2506 ], [ %3030, %.loopexit1913.loopexit ], [ %3030, %.preheader1915 ], [ %3030, %.preheader1912 ]
  %2895 = phi ptr [ %3526, %3616 ], [ %2788, %2884 ], [ %3031, %.loopexit1913.loopexit2506 ], [ %3031, %.loopexit1913.loopexit ], [ %3031, %.preheader1915 ], [ %3031, %.preheader1912 ]
  %2896 = phi ptr [ %3527, %3616 ], [ %2789, %2884 ], [ %3032, %.loopexit1913.loopexit2506 ], [ %3032, %.loopexit1913.loopexit ], [ %3032, %.preheader1915 ], [ %3032, %.preheader1912 ]
  %2897 = phi ptr [ %3528, %3616 ], [ %2790, %2884 ], [ %3033, %.loopexit1913.loopexit2506 ], [ %3033, %.loopexit1913.loopexit ], [ %3033, %.preheader1915 ], [ %3033, %.preheader1912 ]
  %2898 = phi ptr [ %3529, %3616 ], [ %2791, %2884 ], [ %3034, %.loopexit1913.loopexit2506 ], [ %3034, %.loopexit1913.loopexit ], [ %3034, %.preheader1915 ], [ %3034, %.preheader1912 ]
  %2899 = phi ptr [ %3530, %3616 ], [ %2792, %2884 ], [ %3035, %.loopexit1913.loopexit2506 ], [ %3035, %.loopexit1913.loopexit ], [ %3035, %.preheader1915 ], [ %3035, %.preheader1912 ]
  %2900 = phi ptr [ %3531, %3616 ], [ %2793, %2884 ], [ %3036, %.loopexit1913.loopexit2506 ], [ %3036, %.loopexit1913.loopexit ], [ %3036, %.preheader1915 ], [ %3036, %.preheader1912 ]
  %2901 = phi ptr [ %3532, %3616 ], [ %2794, %2884 ], [ %3037, %.loopexit1913.loopexit2506 ], [ %3037, %.loopexit1913.loopexit ], [ %3037, %.preheader1915 ], [ %3037, %.preheader1912 ]
  %2902 = phi ptr [ %3533, %3616 ], [ %2795, %2884 ], [ %3038, %.loopexit1913.loopexit2506 ], [ %3038, %.loopexit1913.loopexit ], [ %3038, %.preheader1915 ], [ %3038, %.preheader1912 ]
  %2903 = phi ptr [ %3534, %3616 ], [ %2796, %2884 ], [ %3039, %.loopexit1913.loopexit2506 ], [ %3039, %.loopexit1913.loopexit ], [ %3039, %.preheader1915 ], [ %3039, %.preheader1912 ]
  %2904 = phi ptr [ %3535, %3616 ], [ %2797, %2884 ], [ %3040, %.loopexit1913.loopexit2506 ], [ %3040, %.loopexit1913.loopexit ], [ %3040, %.preheader1915 ], [ %3040, %.preheader1912 ]
  %2905 = phi ptr [ %3536, %3616 ], [ %2798, %2884 ], [ %3041, %.loopexit1913.loopexit2506 ], [ %3041, %.loopexit1913.loopexit ], [ %3041, %.preheader1915 ], [ %3041, %.preheader1912 ]
  %2906 = phi ptr [ %3537, %3616 ], [ %2799, %2884 ], [ %3042, %.loopexit1913.loopexit2506 ], [ %3042, %.loopexit1913.loopexit ], [ %3042, %.preheader1915 ], [ %3042, %.preheader1912 ]
  %2907 = phi ptr [ %3538, %3616 ], [ %2800, %2884 ], [ %3043, %.loopexit1913.loopexit2506 ], [ %3043, %.loopexit1913.loopexit ], [ %3043, %.preheader1915 ], [ %3043, %.preheader1912 ]
  %2908 = phi ptr [ %3539, %3616 ], [ %2801, %2884 ], [ %3044, %.loopexit1913.loopexit2506 ], [ %3044, %.loopexit1913.loopexit ], [ %3044, %.preheader1915 ], [ %3044, %.preheader1912 ]
  %2909 = phi ptr [ %3540, %3616 ], [ %2802, %2884 ], [ %3045, %.loopexit1913.loopexit2506 ], [ %3045, %.loopexit1913.loopexit ], [ %3045, %.preheader1915 ], [ %3045, %.preheader1912 ]
  %2910 = phi ptr [ %3541, %3616 ], [ %2803, %2884 ], [ %3046, %.loopexit1913.loopexit2506 ], [ %3046, %.loopexit1913.loopexit ], [ %3046, %.preheader1915 ], [ %3046, %.preheader1912 ]
  %2911 = phi ptr [ %3542, %3616 ], [ %2804, %2884 ], [ %3047, %.loopexit1913.loopexit2506 ], [ %3047, %.loopexit1913.loopexit ], [ %3047, %.preheader1915 ], [ %3047, %.preheader1912 ]
  %2912 = phi i32 [ %3543, %3616 ], [ %2808, %2884 ], [ %3048, %.loopexit1913.loopexit2506 ], [ %3048, %.loopexit1913.loopexit ], [ %3048, %.preheader1915 ], [ %3048, %.preheader1912 ]
  %.41750 = phi ptr [ %.121758, %3616 ], [ %.21748, %2884 ], [ %.81754, %.loopexit1913.loopexit2506 ], [ %.81754, %.loopexit1913.loopexit ], [ %.81754, %.preheader1915 ], [ %.81754, %.preheader1912 ]
  %.41735 = phi ptr [ %.121743, %3616 ], [ %.21733, %2884 ], [ %.81739, %.loopexit1913.loopexit2506 ], [ %.81739, %.loopexit1913.loopexit ], [ %.81739, %.preheader1915 ], [ %.81739, %.preheader1912 ]
  %.41720 = phi ptr [ %.121728, %3616 ], [ %.21718, %2884 ], [ %.81724, %.loopexit1913.loopexit2506 ], [ %.81724, %.loopexit1913.loopexit ], [ %.81724, %.preheader1915 ], [ %.81724, %.preheader1912 ]
  %.41705 = phi i32 [ %.121713, %3616 ], [ %.21703, %2884 ], [ %.81709, %.loopexit1913.loopexit2506 ], [ %.81709, %.loopexit1913.loopexit ], [ %.81709, %.preheader1915 ], [ %.81709, %.preheader1912 ]
  %.41690 = phi i32 [ %.121698, %3616 ], [ %.21688, %2884 ], [ %.81694, %.loopexit1913.loopexit2506 ], [ %.81694, %.loopexit1913.loopexit ], [ %.81694, %.preheader1915 ], [ %.81694, %.preheader1912 ]
  %.21677 = phi i32 [ %.81683, %3616 ], [ %.01675, %2884 ], [ %.51680, %.loopexit1913.loopexit2506 ], [ %.51680, %.loopexit1913.loopexit ], [ %.51680, %.preheader1915 ], [ %.51680, %.preheader1912 ]
  %.21666 = phi i32 [ %.81672, %3616 ], [ %.01664, %2884 ], [ %.51669, %.loopexit1913.loopexit2506 ], [ %.51669, %.loopexit1913.loopexit ], [ %.51669, %.preheader1915 ], [ %.51669, %.preheader1912 ]
  %.31653 = phi i32 [ %.91659, %3616 ], [ %.11651, %2884 ], [ %.61656, %.loopexit1913.loopexit2506 ], [ %.61656, %.loopexit1913.loopexit ], [ %.61656, %.preheader1915 ], [ %.61656, %.preheader1912 ]
  %.101641 = phi i32 [ %.161647, %3616 ], [ %.81639, %2884 ], [ %.131644, %.loopexit1913.loopexit2506 ], [ %.131644, %.loopexit1913.loopexit ], [ %.131644, %.preheader1915 ], [ %.131644, %.preheader1912 ]
  %.01622 = phi i32 [ %.61628, %3616 ], [ %2807, %2884 ], [ %.31625, %.loopexit1913.loopexit2506 ], [ %.31625, %.loopexit1913.loopexit ], [ %.31625, %.preheader1915 ], [ %.31625, %.preheader1912 ]
  %.01605 = phi i32 [ %.101615, %3616 ], [ %2806, %2884 ], [ %3156, %.loopexit1913.loopexit2506 ], [ %3162, %.loopexit1913.loopexit ], [ %3127, %.preheader1915 ], [ %3127, %.preheader1912 ]
  %.31593 = phi i32 [ %.121602, %3616 ], [ %.11591, %2884 ], [ %3165, %.loopexit1913.loopexit2506 ], [ %3164, %.loopexit1913.loopexit ], [ %.61596, %.preheader1915 ], [ %.61596, %.preheader1912 ]
  %.31581 = phi i32 [ %.91587, %3616 ], [ %.11579, %2884 ], [ %.61584, %.loopexit1913.loopexit2506 ], [ %.61584, %.loopexit1913.loopexit ], [ %.61584, %.preheader1915 ], [ %.61584, %.preheader1912 ]
  %.01569 = phi i32 [ %3619, %3616 ], [ %2887, %2884 ], [ %3124, %.loopexit1913.loopexit2506 ], [ %3124, %.loopexit1913.loopexit ], [ %3124, %.preheader1915 ], [ %3124, %.preheader1912 ]
  %.41552 = phi i32 [ %.121560, %3616 ], [ %.21550, %2884 ], [ %.81556, %.loopexit1913.loopexit2506 ], [ %.81556, %.loopexit1913.loopexit ], [ %.81556, %.preheader1915 ], [ %.81556, %.preheader1912 ]
  %.41535 = phi i32 [ %.121543, %3616 ], [ %.21533, %2884 ], [ %.81539, %.loopexit1913.loopexit2506 ], [ %.81539, %.loopexit1913.loopexit ], [ %.81539, %.preheader1915 ], [ %.81539, %.preheader1912 ]
  %.31522 = phi i32 [ %.91528, %3616 ], [ %.11520, %2884 ], [ %.61525, %.loopexit1913.loopexit2506 ], [ %.61525, %.loopexit1913.loopexit ], [ %.61525, %.preheader1915 ], [ %.61525, %.preheader1912 ]
  %.121510 = phi i32 [ %.181516, %3616 ], [ %.101508, %2884 ], [ %.151513, %.loopexit1913.loopexit2506 ], [ %.151513, %.loopexit1913.loopexit ], [ %.151513, %.preheader1915 ], [ %.151513, %.preheader1912 ]
  %.131489 = phi i32 [ %.191495, %3616 ], [ %.111487, %2884 ], [ %.161492, %.loopexit1913.loopexit2506 ], [ %.161492, %.loopexit1913.loopexit ], [ %.161492, %.preheader1915 ], [ %.161492, %.preheader1912 ]
  %.141467 = phi i32 [ %.201473, %3616 ], [ %.121465, %2884 ], [ %.171470, %.loopexit1913.loopexit2506 ], [ %.171470, %.loopexit1913.loopexit ], [ %.171470, %.preheader1915 ], [ %.171470, %.preheader1912 ]
  %.101444 = phi i32 [ %.161450, %3616 ], [ %.81442, %2884 ], [ %.131447, %.loopexit1913.loopexit2506 ], [ %.131447, %.loopexit1913.loopexit ], [ %.131447, %.preheader1915 ], [ %.131447, %.preheader1912 ]
  %.181423 = phi i32 [ %.241429, %3616 ], [ %.161421, %2884 ], [ %.211426, %.loopexit1913.loopexit2506 ], [ %.211426, %.loopexit1913.loopexit ], [ %.211426, %.preheader1915 ], [ %.211426, %.preheader1912 ]
  %.24 = phi i32 [ %.30, %3616 ], [ %.22, %2884 ], [ %.27, %.loopexit1913.loopexit2506 ], [ %.27, %.loopexit1913.loopexit ], [ %.27, %.preheader1915 ], [ %.27, %.preheader1912 ]
  %2913 = icmp eq i32 %.01569, %.31522
  br i1 %2913, label %3620, label %2914

2914:                                             ; preds = %.loopexit1913
  %or.cond5 = icmp ult i32 %.01569, 2
  br i1 %or.cond5, label %2915, label %3166

2915:                                             ; preds = %2914, %3121
  %2916 = phi ptr [ %3024, %3121 ], [ %2888, %2914 ]
  %2917 = phi ptr [ %3025, %3121 ], [ %2889, %2914 ]
  %2918 = phi ptr [ %3026, %3121 ], [ %2890, %2914 ]
  %2919 = phi ptr [ %3027, %3121 ], [ %2891, %2914 ]
  %2920 = phi ptr [ %3028, %3121 ], [ %2892, %2914 ]
  %2921 = phi ptr [ %3029, %3121 ], [ %2893, %2914 ]
  %2922 = phi ptr [ %3030, %3121 ], [ %2894, %2914 ]
  %2923 = phi ptr [ %3031, %3121 ], [ %2895, %2914 ]
  %2924 = phi ptr [ %3032, %3121 ], [ %2896, %2914 ]
  %2925 = phi ptr [ %3033, %3121 ], [ %2897, %2914 ]
  %2926 = phi ptr [ %3034, %3121 ], [ %2898, %2914 ]
  %2927 = phi ptr [ %3035, %3121 ], [ %2899, %2914 ]
  %2928 = phi ptr [ %3036, %3121 ], [ %2900, %2914 ]
  %2929 = phi ptr [ %3037, %3121 ], [ %2901, %2914 ]
  %2930 = phi ptr [ %3038, %3121 ], [ %2902, %2914 ]
  %2931 = phi ptr [ %3039, %3121 ], [ %2903, %2914 ]
  %2932 = phi ptr [ %3040, %3121 ], [ %2904, %2914 ]
  %2933 = phi ptr [ %3041, %3121 ], [ %2905, %2914 ]
  %2934 = phi ptr [ %3042, %3121 ], [ %2906, %2914 ]
  %2935 = phi ptr [ %3043, %3121 ], [ %2907, %2914 ]
  %2936 = phi ptr [ %3044, %3121 ], [ %2908, %2914 ]
  %2937 = phi ptr [ %3045, %3121 ], [ %2909, %2914 ]
  %2938 = phi ptr [ %3046, %3121 ], [ %2910, %2914 ]
  %2939 = phi ptr [ %3047, %3121 ], [ %2911, %2914 ]
  %2940 = phi i32 [ %3048, %3121 ], [ %2912, %2914 ]
  %.51751 = phi ptr [ %.81754, %3121 ], [ %.41750, %2914 ]
  %.51736 = phi ptr [ %.81739, %3121 ], [ %.41735, %2914 ]
  %.51721 = phi ptr [ %.81724, %3121 ], [ %.41720, %2914 ]
  %.51706 = phi i32 [ %.81709, %3121 ], [ %.41705, %2914 ]
  %.51691 = phi i32 [ %.81694, %3121 ], [ %.41690, %2914 ]
  %.31678 = phi i32 [ %.51680, %3121 ], [ %.21677, %2914 ]
  %.31667 = phi i32 [ %.51669, %3121 ], [ %.21666, %2914 ]
  %.41654 = phi i32 [ %.61656, %3121 ], [ %.31653, %2914 ]
  %.111642 = phi i32 [ %.131644, %3121 ], [ %.101641, %2914 ]
  %.11623 = phi i32 [ %.31625, %3121 ], [ 1, %2914 ]
  %.11606 = phi i32 [ %.41609, %3121 ], [ -1, %2914 ]
  %.41594 = phi i32 [ %.61596, %3121 ], [ %.31593, %2914 ]
  %.41582 = phi i32 [ %.61584, %3121 ], [ %.31581, %2914 ]
  %.11570 = phi i32 [ %3124, %3121 ], [ %.01569, %2914 ]
  %.51553 = phi i32 [ %.81556, %3121 ], [ %.41552, %2914 ]
  %.51536 = phi i32 [ %.81539, %3121 ], [ %.41535, %2914 ]
  %.41523 = phi i32 [ %.61525, %3121 ], [ %.31522, %2914 ]
  %.131511 = phi i32 [ %.151513, %3121 ], [ %.121510, %2914 ]
  %.141490 = phi i32 [ %.161492, %3121 ], [ %.131489, %2914 ]
  %.151468 = phi i32 [ %.171470, %3121 ], [ %.141467, %2914 ]
  %.111445 = phi i32 [ %.131447, %3121 ], [ %.101444, %2914 ]
  %.191424 = phi i32 [ %.211426, %3121 ], [ %.181423, %2914 ]
  %.25 = phi i32 [ %.27, %3121 ], [ %.24, %2914 ]
  %2941 = icmp sgt i32 %.11623, 2097151
  br i1 %2941, label %.loopexit, label %2942

2942:                                             ; preds = %2915
  %switch.not.not = icmp eq i32 %.11570, 0
  %2943 = shl nsw i32 %.11623, 1
  %.21607.v = select i1 %switch.not.not, i32 %.11623, i32 %2943
  %.21607 = add nsw i32 %.21607.v, %.11606
  %2944 = icmp eq i32 %.51553, 0
  br i1 %2944, label %2945, label %2963

2945:                                             ; preds = %2942
  %2946 = add nsw i32 %.51536, 1
  %.not1851 = icmp slt i32 %2946, %.131511
  br i1 %.not1851, label %2947, label %.loopexit

2947:                                             ; preds = %2945
  %2948 = getelementptr inbounds i8, ptr %0, i64 7884
  %2949 = sext i32 %2946 to i64
  %2950 = getelementptr inbounds [18002 x i8], ptr %2948, i64 0, i64 %2949
  %2951 = load i8, ptr %2950, align 1, !tbaa !41
  %2952 = zext i8 %2951 to i32
  %2953 = getelementptr inbounds i8, ptr %0, i64 64012
  %2954 = zext i8 %2951 to i64
  %2955 = getelementptr inbounds [6 x i32], ptr %2953, i64 0, i64 %2954
  %2956 = load i32, ptr %2955, align 4, !tbaa !76
  %2957 = getelementptr inbounds i8, ptr %0, i64 45436
  %2958 = getelementptr inbounds [6 x [258 x i32]], ptr %2957, i64 0, i64 %2954
  %2959 = getelementptr inbounds i8, ptr %0, i64 57820
  %2960 = getelementptr inbounds [6 x [258 x i32]], ptr %2959, i64 0, i64 %2954
  %2961 = getelementptr inbounds i8, ptr %0, i64 51628
  %2962 = getelementptr inbounds [6 x [258 x i32]], ptr %2961, i64 0, i64 %2954
  br label %2963

2963:                                             ; preds = %2947, %2942
  %.61752 = phi ptr [ %2960, %2947 ], [ %.51751, %2942 ]
  %.61737 = phi ptr [ %2962, %2947 ], [ %.51736, %2942 ]
  %.61722 = phi ptr [ %2958, %2947 ], [ %.51721, %2942 ]
  %.61707 = phi i32 [ %2956, %2947 ], [ %.51706, %2942 ]
  %.61692 = phi i32 [ %2952, %2947 ], [ %.51691, %2942 ]
  %.61554 = phi i32 [ 50, %2947 ], [ %.51553, %2942 ]
  %.61537 = phi i32 [ %2946, %2947 ], [ %.51536, %2942 ]
  %2964 = add nsw i32 %.61554, -1
  br label %2965

2965:                                             ; preds = %2963, %34
  %2966 = phi ptr [ %2916, %2963 ], [ %58, %34 ]
  %2967 = phi ptr [ %2917, %2963 ], [ %57, %34 ]
  %2968 = phi ptr [ %2918, %2963 ], [ %56, %34 ]
  %2969 = phi ptr [ %2919, %2963 ], [ %55, %34 ]
  %2970 = phi ptr [ %2920, %2963 ], [ %54, %34 ]
  %2971 = phi ptr [ %2921, %2963 ], [ %53, %34 ]
  %2972 = phi ptr [ %2922, %2963 ], [ %52, %34 ]
  %2973 = phi ptr [ %2923, %2963 ], [ %51, %34 ]
  %2974 = phi ptr [ %2924, %2963 ], [ %50, %34 ]
  %2975 = phi ptr [ %2925, %2963 ], [ %49, %34 ]
  %2976 = phi ptr [ %2926, %2963 ], [ %48, %34 ]
  %2977 = phi ptr [ %2927, %2963 ], [ %47, %34 ]
  %2978 = phi ptr [ %2928, %2963 ], [ %46, %34 ]
  %2979 = phi ptr [ %2929, %2963 ], [ %45, %34 ]
  %2980 = phi ptr [ %2930, %2963 ], [ %44, %34 ]
  %2981 = phi ptr [ %2931, %2963 ], [ %43, %34 ]
  %2982 = phi ptr [ %2932, %2963 ], [ %42, %34 ]
  %2983 = phi ptr [ %2933, %2963 ], [ %41, %34 ]
  %2984 = phi ptr [ %2934, %2963 ], [ %40, %34 ]
  %2985 = phi ptr [ %2935, %2963 ], [ %39, %34 ]
  %2986 = phi ptr [ %2936, %2963 ], [ %38, %34 ]
  %2987 = phi ptr [ %2937, %2963 ], [ %37, %34 ]
  %2988 = phi ptr [ %2938, %2963 ], [ %36, %34 ]
  %2989 = phi ptr [ %2939, %2963 ], [ %35, %34 ]
  %2990 = phi i32 [ %2940, %2963 ], [ %.pre2739, %34 ]
  %.71753 = phi ptr [ %.61752, %2963 ], [ %.pre2755, %34 ]
  %.71738 = phi ptr [ %.61737, %2963 ], [ %.pre2753, %34 ]
  %.71723 = phi ptr [ %.61722, %2963 ], [ %.pre2751, %34 ]
  %.71708 = phi i32 [ %.61707, %2963 ], [ %.pre2749, %34 ]
  %.71693 = phi i32 [ %.61692, %2963 ], [ %.pre2747, %34 ]
  %.41679 = phi i32 [ %.31678, %2963 ], [ %.pre2745, %34 ]
  %.41668 = phi i32 [ %.31667, %2963 ], [ %.pre2743, %34 ]
  %.51655 = phi i32 [ %.61707, %2963 ], [ %.pre2741, %34 ]
  %.121643 = phi i32 [ %.111642, %2963 ], [ %.pre2737, %34 ]
  %.21624 = phi i32 [ %2943, %2963 ], [ %.pre2735, %34 ]
  %.31608 = phi i32 [ %.21607, %2963 ], [ %.pre2733, %34 ]
  %.51595 = phi i32 [ %.41594, %2963 ], [ %.pre2731, %34 ]
  %.51583 = phi i32 [ %.41582, %2963 ], [ %.pre2729, %34 ]
  %.21571 = phi i32 [ %.11570, %2963 ], [ %.pre2727, %34 ]
  %.71555 = phi i32 [ %2964, %2963 ], [ %.pre2725, %34 ]
  %.71538 = phi i32 [ %.61537, %2963 ], [ %.pre2723, %34 ]
  %.51524 = phi i32 [ %.41523, %2963 ], [ %.pre2721, %34 ]
  %.141512 = phi i32 [ %.131511, %2963 ], [ %.pre2719, %34 ]
  %.151491 = phi i32 [ %.141490, %2963 ], [ %.pre2717, %34 ]
  %.161469 = phi i32 [ %.151468, %2963 ], [ %.pre2715, %34 ]
  %.121446 = phi i32 [ %.111445, %2963 ], [ %.pre2713, %34 ]
  %.201425 = phi i32 [ %.191424, %2963 ], [ %.pre2711, %34 ]
  %.26 = phi i32 [ %.25, %2963 ], [ %.pre, %34 ]
  store i32 38, ptr %4, align 8, !tbaa !11
  %2991 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2333 = load i32, ptr %2991, align 4, !tbaa !12
  %.not18522334 = icmp slt i32 %.promoted2333, %.51655
  br i1 %.not18522334, label %.lr.ph2336, label %.._crit_edge2337_crit_edge

.._crit_edge2337_crit_edge:                       ; preds = %2965
  %.phi.trans.insert2854 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2855 = load i32, ptr %.phi.trans.insert2854, align 8, !tbaa !37
  br label %._crit_edge2337

.lr.ph2336:                                       ; preds = %2965
  %2992 = load ptr, ptr %0, align 8, !tbaa !5
  %2993 = getelementptr inbounds i8, ptr %2992, i64 8
  %2994 = getelementptr inbounds i8, ptr %0, i64 32
  %2995 = getelementptr inbounds i8, ptr %2992, i64 12
  %2996 = getelementptr inbounds i8, ptr %2992, i64 16
  %.promoted2340 = load i32, ptr %2993, align 8, !tbaa !38
  br label %3002

._crit_edge2337:                                  ; preds = %3022, %.._crit_edge2337_crit_edge
  %2997 = phi i32 [ %.pre2855, %.._crit_edge2337_crit_edge ], [ %3012, %3022 ]
  %.lcssa2029 = phi i32 [ %.promoted2333, %.._crit_edge2337_crit_edge ], [ %3013, %3022 ]
  %2998 = sub nsw i32 %.lcssa2029, %.51655
  %2999 = lshr i32 %2997, %2998
  %notmask1853 = shl nsw i32 -1, %.51655
  %3000 = xor i32 %notmask1853, -1
  %3001 = and i32 %2999, %3000
  store i32 %2998, ptr %2991, align 4, !tbaa !12
  br label %3023

3002:                                             ; preds = %.lr.ph2336, %3022
  %3003 = phi i32 [ %.promoted2340, %.lr.ph2336 ], [ %3015, %3022 ]
  %3004 = phi i32 [ %.promoted2333, %.lr.ph2336 ], [ %3013, %3022 ]
  %3005 = icmp eq i32 %3003, 0
  br i1 %3005, label %.loopexit, label %3006

3006:                                             ; preds = %3002
  %3007 = load i32, ptr %2994, align 8, !tbaa !37
  %3008 = shl i32 %3007, 8
  %3009 = load ptr, ptr %2992, align 8, !tbaa !40
  %3010 = load i8, ptr %3009, align 1, !tbaa !41
  %3011 = zext i8 %3010 to i32
  %3012 = or disjoint i32 %3008, %3011
  store i32 %3012, ptr %2994, align 8, !tbaa !37
  %3013 = add nsw i32 %3004, 8
  store i32 %3013, ptr %2991, align 4, !tbaa !12
  %3014 = getelementptr inbounds i8, ptr %3009, i64 1
  store ptr %3014, ptr %2992, align 8, !tbaa !40
  %3015 = add i32 %3003, -1
  store i32 %3015, ptr %2993, align 8, !tbaa !38
  %3016 = load i32, ptr %2995, align 4, !tbaa !42
  %3017 = add i32 %3016, 1
  store i32 %3017, ptr %2995, align 4, !tbaa !42
  %3018 = icmp eq i32 %3017, 0
  br i1 %3018, label %3019, label %3022

3019:                                             ; preds = %3006
  %3020 = load i32, ptr %2996, align 8, !tbaa !43
  %3021 = add i32 %3020, 1
  store i32 %3021, ptr %2996, align 8, !tbaa !43
  br label %3022

3022:                                             ; preds = %3019, %3006
  %.not1852 = icmp slt i32 %3013, %.51655
  br i1 %.not1852, label %3002, label %._crit_edge2337

3023:                                             ; preds = %._crit_edge2354, %._crit_edge2337
  %3024 = phi ptr [ %2966, %._crit_edge2337 ], [ %3057, %._crit_edge2354 ]
  %3025 = phi ptr [ %2967, %._crit_edge2337 ], [ %3058, %._crit_edge2354 ]
  %3026 = phi ptr [ %2968, %._crit_edge2337 ], [ %3059, %._crit_edge2354 ]
  %3027 = phi ptr [ %2969, %._crit_edge2337 ], [ %3060, %._crit_edge2354 ]
  %3028 = phi ptr [ %2970, %._crit_edge2337 ], [ %3061, %._crit_edge2354 ]
  %3029 = phi ptr [ %2971, %._crit_edge2337 ], [ %3062, %._crit_edge2354 ]
  %3030 = phi ptr [ %2972, %._crit_edge2337 ], [ %3063, %._crit_edge2354 ]
  %3031 = phi ptr [ %2973, %._crit_edge2337 ], [ %3064, %._crit_edge2354 ]
  %3032 = phi ptr [ %2974, %._crit_edge2337 ], [ %3065, %._crit_edge2354 ]
  %3033 = phi ptr [ %2975, %._crit_edge2337 ], [ %3066, %._crit_edge2354 ]
  %3034 = phi ptr [ %2976, %._crit_edge2337 ], [ %3067, %._crit_edge2354 ]
  %3035 = phi ptr [ %2977, %._crit_edge2337 ], [ %3068, %._crit_edge2354 ]
  %3036 = phi ptr [ %2978, %._crit_edge2337 ], [ %3069, %._crit_edge2354 ]
  %3037 = phi ptr [ %2979, %._crit_edge2337 ], [ %3070, %._crit_edge2354 ]
  %3038 = phi ptr [ %2980, %._crit_edge2337 ], [ %3071, %._crit_edge2354 ]
  %3039 = phi ptr [ %2981, %._crit_edge2337 ], [ %3072, %._crit_edge2354 ]
  %3040 = phi ptr [ %2982, %._crit_edge2337 ], [ %3073, %._crit_edge2354 ]
  %3041 = phi ptr [ %2983, %._crit_edge2337 ], [ %3074, %._crit_edge2354 ]
  %3042 = phi ptr [ %2984, %._crit_edge2337 ], [ %3075, %._crit_edge2354 ]
  %3043 = phi ptr [ %2985, %._crit_edge2337 ], [ %3076, %._crit_edge2354 ]
  %3044 = phi ptr [ %2986, %._crit_edge2337 ], [ %3077, %._crit_edge2354 ]
  %3045 = phi ptr [ %2987, %._crit_edge2337 ], [ %3078, %._crit_edge2354 ]
  %3046 = phi ptr [ %2988, %._crit_edge2337 ], [ %3079, %._crit_edge2354 ]
  %3047 = phi ptr [ %2989, %._crit_edge2337 ], [ %3080, %._crit_edge2354 ]
  %3048 = phi i32 [ %2990, %._crit_edge2337 ], [ %3081, %._crit_edge2354 ]
  %.promoted23512859 = phi i32 [ %2998, %._crit_edge2337 ], [ %3090, %._crit_edge2354 ]
  %.81754 = phi ptr [ %.71753, %._crit_edge2337 ], [ %.91755, %._crit_edge2354 ]
  %.81739 = phi ptr [ %.71738, %._crit_edge2337 ], [ %.91740, %._crit_edge2354 ]
  %.81724 = phi ptr [ %.71723, %._crit_edge2337 ], [ %.91725, %._crit_edge2354 ]
  %.81709 = phi i32 [ %.71708, %._crit_edge2337 ], [ %.91710, %._crit_edge2354 ]
  %.81694 = phi i32 [ %.71693, %._crit_edge2337 ], [ %.91695, %._crit_edge2354 ]
  %.51680 = phi i32 [ %.41679, %._crit_edge2337 ], [ %3092, %._crit_edge2354 ]
  %.51669 = phi i32 [ %3001, %._crit_edge2337 ], [ %3094, %._crit_edge2354 ]
  %.61656 = phi i32 [ %.51655, %._crit_edge2337 ], [ %.71657, %._crit_edge2354 ]
  %.131644 = phi i32 [ %.121643, %._crit_edge2337 ], [ %.141645, %._crit_edge2354 ]
  %.31625 = phi i32 [ %.21624, %._crit_edge2337 ], [ %.41626, %._crit_edge2354 ]
  %.41609 = phi i32 [ %.31608, %._crit_edge2337 ], [ %.51610, %._crit_edge2354 ]
  %.61596 = phi i32 [ %.51595, %._crit_edge2337 ], [ %.71597, %._crit_edge2354 ]
  %.61584 = phi i32 [ %.51583, %._crit_edge2337 ], [ %.71585, %._crit_edge2354 ]
  %.31572 = phi i32 [ %.21571, %._crit_edge2337 ], [ %.41573, %._crit_edge2354 ]
  %.81556 = phi i32 [ %.71555, %._crit_edge2337 ], [ %.91557, %._crit_edge2354 ]
  %.81539 = phi i32 [ %.71538, %._crit_edge2337 ], [ %.91540, %._crit_edge2354 ]
  %.61525 = phi i32 [ %.51524, %._crit_edge2337 ], [ %.71526, %._crit_edge2354 ]
  %.151513 = phi i32 [ %.141512, %._crit_edge2337 ], [ %.161514, %._crit_edge2354 ]
  %.161492 = phi i32 [ %.151491, %._crit_edge2337 ], [ %.171493, %._crit_edge2354 ]
  %.171470 = phi i32 [ %.161469, %._crit_edge2337 ], [ %.181471, %._crit_edge2354 ]
  %.131447 = phi i32 [ %.121446, %._crit_edge2337 ], [ %.141448, %._crit_edge2354 ]
  %.211426 = phi i32 [ %.201425, %._crit_edge2337 ], [ %.221427, %._crit_edge2354 ]
  %.27 = phi i32 [ %.26, %._crit_edge2337 ], [ %.28, %._crit_edge2354 ]
  %3049 = icmp sgt i32 %.61656, 20
  br i1 %3049, label %.loopexit, label %3050

3050:                                             ; preds = %3023
  %3051 = sext i32 %.61656 to i64
  %3052 = getelementptr inbounds i32, ptr %.81724, i64 %3051
  %3053 = load i32, ptr %3052, align 4, !tbaa !76
  %.not1854 = icmp sgt i32 %.51669, %3053
  br i1 %.not1854, label %3054, label %3117

3054:                                             ; preds = %3050
  %3055 = add nsw i32 %.61656, 1
  br label %3056

3056:                                             ; preds = %._crit_edge2856, %3054
  %3057 = phi ptr [ %3024, %3054 ], [ %58, %._crit_edge2856 ]
  %3058 = phi ptr [ %3025, %3054 ], [ %57, %._crit_edge2856 ]
  %3059 = phi ptr [ %3026, %3054 ], [ %56, %._crit_edge2856 ]
  %3060 = phi ptr [ %3027, %3054 ], [ %55, %._crit_edge2856 ]
  %3061 = phi ptr [ %3028, %3054 ], [ %54, %._crit_edge2856 ]
  %3062 = phi ptr [ %3029, %3054 ], [ %53, %._crit_edge2856 ]
  %3063 = phi ptr [ %3030, %3054 ], [ %52, %._crit_edge2856 ]
  %3064 = phi ptr [ %3031, %3054 ], [ %51, %._crit_edge2856 ]
  %3065 = phi ptr [ %3032, %3054 ], [ %50, %._crit_edge2856 ]
  %3066 = phi ptr [ %3033, %3054 ], [ %49, %._crit_edge2856 ]
  %3067 = phi ptr [ %3034, %3054 ], [ %48, %._crit_edge2856 ]
  %3068 = phi ptr [ %3035, %3054 ], [ %47, %._crit_edge2856 ]
  %3069 = phi ptr [ %3036, %3054 ], [ %46, %._crit_edge2856 ]
  %3070 = phi ptr [ %3037, %3054 ], [ %45, %._crit_edge2856 ]
  %3071 = phi ptr [ %3038, %3054 ], [ %44, %._crit_edge2856 ]
  %3072 = phi ptr [ %3039, %3054 ], [ %43, %._crit_edge2856 ]
  %3073 = phi ptr [ %3040, %3054 ], [ %42, %._crit_edge2856 ]
  %3074 = phi ptr [ %3041, %3054 ], [ %41, %._crit_edge2856 ]
  %3075 = phi ptr [ %3042, %3054 ], [ %40, %._crit_edge2856 ]
  %3076 = phi ptr [ %3043, %3054 ], [ %39, %._crit_edge2856 ]
  %3077 = phi ptr [ %3044, %3054 ], [ %38, %._crit_edge2856 ]
  %3078 = phi ptr [ %3045, %3054 ], [ %37, %._crit_edge2856 ]
  %3079 = phi ptr [ %3046, %3054 ], [ %36, %._crit_edge2856 ]
  %3080 = phi ptr [ %3047, %3054 ], [ %35, %._crit_edge2856 ]
  %3081 = phi i32 [ %3048, %3054 ], [ %.pre2739, %._crit_edge2856 ]
  %.promoted2351 = phi i32 [ %.promoted23512859, %3054 ], [ %.promoted2351.pre, %._crit_edge2856 ]
  %.91755 = phi ptr [ %.81754, %3054 ], [ %.pre2755, %._crit_edge2856 ]
  %.91740 = phi ptr [ %.81739, %3054 ], [ %.pre2753, %._crit_edge2856 ]
  %.91725 = phi ptr [ %.81724, %3054 ], [ %.pre2751, %._crit_edge2856 ]
  %.91710 = phi i32 [ %.81709, %3054 ], [ %.pre2749, %._crit_edge2856 ]
  %.91695 = phi i32 [ %.81694, %3054 ], [ %.pre2747, %._crit_edge2856 ]
  %.61681 = phi i32 [ %.51680, %3054 ], [ %.pre2745, %._crit_edge2856 ]
  %.61670 = phi i32 [ %.51669, %3054 ], [ %.pre2743, %._crit_edge2856 ]
  %.71657 = phi i32 [ %3055, %3054 ], [ %.pre2741, %._crit_edge2856 ]
  %.141645 = phi i32 [ %.131644, %3054 ], [ %.pre2737, %._crit_edge2856 ]
  %.41626 = phi i32 [ %.31625, %3054 ], [ %.pre2735, %._crit_edge2856 ]
  %.51610 = phi i32 [ %.41609, %3054 ], [ %.pre2733, %._crit_edge2856 ]
  %.71597 = phi i32 [ %.61596, %3054 ], [ %.pre2731, %._crit_edge2856 ]
  %.71585 = phi i32 [ %.61584, %3054 ], [ %.pre2729, %._crit_edge2856 ]
  %.41573 = phi i32 [ %.31572, %3054 ], [ %.pre2727, %._crit_edge2856 ]
  %.91557 = phi i32 [ %.81556, %3054 ], [ %.pre2725, %._crit_edge2856 ]
  %.91540 = phi i32 [ %.81539, %3054 ], [ %.pre2723, %._crit_edge2856 ]
  %.71526 = phi i32 [ %.61525, %3054 ], [ %.pre2721, %._crit_edge2856 ]
  %.161514 = phi i32 [ %.151513, %3054 ], [ %.pre2719, %._crit_edge2856 ]
  %.171493 = phi i32 [ %.161492, %3054 ], [ %.pre2717, %._crit_edge2856 ]
  %.181471 = phi i32 [ %.171470, %3054 ], [ %.pre2715, %._crit_edge2856 ]
  %.141448 = phi i32 [ %.131447, %3054 ], [ %.pre2713, %._crit_edge2856 ]
  %.221427 = phi i32 [ %.211426, %3054 ], [ %.pre2711, %._crit_edge2856 ]
  %.28 = phi i32 [ %.27, %3054 ], [ %.pre, %._crit_edge2856 ]
  store i32 39, ptr %4, align 8, !tbaa !11
  %3082 = getelementptr inbounds i8, ptr %0, i64 36
  %3083 = icmp sgt i32 %.promoted2351, 0
  br i1 %3083, label %.._crit_edge2354_crit_edge, label %.lr.ph2353

.._crit_edge2354_crit_edge:                       ; preds = %3056
  %.phi.trans.insert2860 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2861 = load i32, ptr %.phi.trans.insert2860, align 8, !tbaa !37
  br label %._crit_edge2354

.lr.ph2353:                                       ; preds = %3056
  %3084 = load ptr, ptr %0, align 8, !tbaa !5
  %3085 = getelementptr inbounds i8, ptr %3084, i64 8
  %3086 = getelementptr inbounds i8, ptr %0, i64 32
  %3087 = getelementptr inbounds i8, ptr %3084, i64 12
  %3088 = getelementptr inbounds i8, ptr %3084, i64 16
  %.promoted2357 = load i32, ptr %3085, align 8, !tbaa !38
  br label %3095

._crit_edge2354:                                  ; preds = %3115, %.._crit_edge2354_crit_edge
  %3089 = phi i32 [ %.pre2861, %.._crit_edge2354_crit_edge ], [ %3105, %3115 ]
  %.lcssa2021 = phi i32 [ %.promoted2351, %.._crit_edge2354_crit_edge ], [ %3106, %3115 ]
  %3090 = add nsw i32 %.lcssa2021, -1
  %3091 = lshr i32 %3089, %3090
  %3092 = and i32 %3091, 1
  store i32 %3090, ptr %3082, align 4, !tbaa !12
  %3093 = shl i32 %.61670, 1
  %3094 = or disjoint i32 %3092, %3093
  br label %3023

3095:                                             ; preds = %.lr.ph2353, %3115
  %3096 = phi i32 [ %.promoted2357, %.lr.ph2353 ], [ %3108, %3115 ]
  %3097 = phi i32 [ %.promoted2351, %.lr.ph2353 ], [ %3106, %3115 ]
  %3098 = icmp eq i32 %3096, 0
  br i1 %3098, label %.loopexit, label %3099

3099:                                             ; preds = %3095
  %3100 = load i32, ptr %3086, align 8, !tbaa !37
  %3101 = shl i32 %3100, 8
  %3102 = load ptr, ptr %3084, align 8, !tbaa !40
  %3103 = load i8, ptr %3102, align 1, !tbaa !41
  %3104 = zext i8 %3103 to i32
  %3105 = or disjoint i32 %3101, %3104
  store i32 %3105, ptr %3086, align 8, !tbaa !37
  %3106 = add nsw i32 %3097, 8
  store i32 %3106, ptr %3082, align 4, !tbaa !12
  %3107 = getelementptr inbounds i8, ptr %3102, i64 1
  store ptr %3107, ptr %3084, align 8, !tbaa !40
  %3108 = add i32 %3096, -1
  store i32 %3108, ptr %3085, align 8, !tbaa !38
  %3109 = load i32, ptr %3087, align 4, !tbaa !42
  %3110 = add i32 %3109, 1
  store i32 %3110, ptr %3087, align 4, !tbaa !42
  %3111 = icmp eq i32 %3110, 0
  br i1 %3111, label %3112, label %3115

3112:                                             ; preds = %3099
  %3113 = load i32, ptr %3088, align 8, !tbaa !43
  %3114 = add i32 %3113, 1
  store i32 %3114, ptr %3088, align 8, !tbaa !43
  br label %3115

3115:                                             ; preds = %3112, %3099
  %3116 = icmp sgt i32 %3097, -8
  br i1 %3116, label %._crit_edge2354, label %3095

3117:                                             ; preds = %3050
  %3118 = getelementptr inbounds i32, ptr %.81739, i64 %3051
  %3119 = load i32, ptr %3118, align 4, !tbaa !76
  %3120 = sub nsw i32 %.51669, %3119
  %or.cond1879 = icmp ugt i32 %3120, 257
  br i1 %or.cond1879, label %.loopexit, label %3121

3121:                                             ; preds = %3117
  %3122 = zext nneg i32 %3120 to i64
  %3123 = getelementptr inbounds i32, ptr %.81754, i64 %3122
  %3124 = load i32, ptr %3123, align 4, !tbaa !76
  %3125 = icmp ult i32 %3124, 2
  br i1 %3125, label %2915, label %3126, !llvm.loop !79

3126:                                             ; preds = %3121
  %3127 = add nsw i32 %.41609, 1
  %3128 = getelementptr inbounds i8, ptr %0, i64 3468
  %3129 = getelementptr inbounds i8, ptr %0, i64 3724
  %3130 = getelementptr inbounds i8, ptr %0, i64 7820
  %3131 = load i32, ptr %3130, align 4, !tbaa !76
  %3132 = sext i32 %3131 to i64
  %3133 = getelementptr inbounds [4096 x i8], ptr %3129, i64 0, i64 %3132
  %3134 = load i8, ptr %3133, align 1, !tbaa !41
  %3135 = zext i8 %3134 to i64
  %3136 = getelementptr inbounds [256 x i8], ptr %3128, i64 0, i64 %3135
  %3137 = load i8, ptr %3136, align 1, !tbaa !41
  %3138 = getelementptr inbounds i8, ptr %0, i64 68
  %3139 = zext i8 %3137 to i64
  %3140 = getelementptr inbounds [256 x i32], ptr %3138, i64 0, i64 %3139
  %3141 = load i32, ptr %3140, align 4, !tbaa !76
  %3142 = add nsw i32 %3141, %3127
  store i32 %3142, ptr %3140, align 4, !tbaa !76
  %3143 = getelementptr inbounds i8, ptr %0, i64 44
  %3144 = load i8, ptr %3143, align 4, !tbaa !45
  %.not1855 = icmp eq i8 %3144, 0
  %3145 = icmp sgt i32 %.41609, -1
  br i1 %.not1855, label %.preheader1912, label %.preheader1915

.preheader1915:                                   ; preds = %3126
  br i1 %3145, label %.lr.ph2343, label %.loopexit1913

.lr.ph2343:                                       ; preds = %.preheader1915
  %3146 = zext i8 %3137 to i16
  %3147 = getelementptr inbounds i8, ptr %0, i64 3160
  %3148 = sext i32 %.61596 to i64
  %smax = call i32 @llvm.smax.i32(i32 %.61596, i32 %.61584)
  %wide.trip.count2658 = sext i32 %smax to i64
  br label %3152

.preheader1912:                                   ; preds = %3126
  br i1 %3145, label %.lr.ph2348, label %.loopexit1913

.lr.ph2348:                                       ; preds = %.preheader1912
  %3149 = zext i8 %3137 to i32
  %3150 = getelementptr inbounds i8, ptr %0, i64 3152
  %3151 = sext i32 %.61596 to i64
  %smax2664 = call i32 @llvm.smax.i32(i32 %.61596, i32 %.61584)
  %wide.trip.count2665 = sext i32 %smax2664 to i64
  br label %3158

3152:                                             ; preds = %.lr.ph2343, %3153
  %indvars.iv2654 = phi i64 [ %3148, %.lr.ph2343 ], [ %indvars.iv.next2655, %3153 ]
  %.616112341 = phi i32 [ %3127, %.lr.ph2343 ], [ %3156, %3153 ]
  %exitcond2659.not = icmp eq i64 %indvars.iv2654, %wide.trip.count2658
  br i1 %exitcond2659.not, label %.loopexit, label %3153

3153:                                             ; preds = %3152
  %3154 = load ptr, ptr %3147, align 8, !tbaa !48
  %3155 = getelementptr inbounds i16, ptr %3154, i64 %indvars.iv2654
  store i16 %3146, ptr %3155, align 2, !tbaa !80
  %indvars.iv.next2655 = add nsw i64 %indvars.iv2654, 1
  %3156 = add nsw i32 %.616112341, -1
  %3157 = icmp sgt i32 %.616112341, 1
  br i1 %3157, label %3152, label %.loopexit1913.loopexit2506, !llvm.loop !82

3158:                                             ; preds = %.lr.ph2348, %3159
  %indvars.iv2660 = phi i64 [ %3151, %.lr.ph2348 ], [ %indvars.iv.next2661, %3159 ]
  %.716122346 = phi i32 [ %3127, %.lr.ph2348 ], [ %3162, %3159 ]
  %exitcond2666.not = icmp eq i64 %indvars.iv2660, %wide.trip.count2665
  br i1 %exitcond2666.not, label %.loopexit, label %3159

3159:                                             ; preds = %3158
  %3160 = load ptr, ptr %3150, align 8, !tbaa !50
  %3161 = getelementptr inbounds i32, ptr %3160, i64 %indvars.iv2660
  store i32 %3149, ptr %3161, align 4, !tbaa !76
  %indvars.iv.next2661 = add nsw i64 %indvars.iv2660, 1
  %3162 = add nsw i32 %.716122346, -1
  %3163 = icmp sgt i32 %.716122346, 1
  br i1 %3163, label %3158, label %.loopexit1913.loopexit, !llvm.loop !83

.loopexit1913.loopexit:                           ; preds = %3159
  %3164 = trunc nsw i64 %indvars.iv.next2661 to i32
  br label %.loopexit1913

.loopexit1913.loopexit2506:                       ; preds = %3153
  %3165 = trunc nsw i64 %indvars.iv.next2655 to i32
  br label %.loopexit1913

3166:                                             ; preds = %2914
  %.not1844 = icmp slt i32 %.31593, %.31581
  br i1 %.not1844, label %3167, label %.loopexit

3167:                                             ; preds = %3166
  %3168 = add i32 %.01569, -1
  %3169 = icmp ult i32 %.01569, 17
  br i1 %3169, label %3170, label %3276

3170:                                             ; preds = %3167
  %3171 = getelementptr inbounds i8, ptr %0, i64 7820
  %3172 = load i32, ptr %3171, align 4, !tbaa !76
  %3173 = getelementptr inbounds i8, ptr %0, i64 3724
  %3174 = add i32 %3172, %3168
  %3175 = zext i32 %3174 to i64
  %3176 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3175
  %3177 = load i8, ptr %3176, align 1, !tbaa !41
  %3178 = icmp ugt i32 %3168, 3
  br i1 %3178, label %.lr.ph2312.preheader, label %iter.check3306

.lr.ph2312.preheader:                             ; preds = %3170
  %3179 = zext nneg i32 %3168 to i64
  br label %.lr.ph2312

.preheader1921:                                   ; preds = %.lr.ph2312
  %.not18452314 = icmp eq i32 %3254, 0
  br i1 %.not18452314, label %._crit_edge2317, label %iter.check3306

iter.check3306:                                   ; preds = %3170, %.preheader1921
  %.01546.lcssa2934 = phi i32 [ %3254, %.preheader1921 ], [ %3168, %3170 ]
  %3180 = zext nneg i32 %.01546.lcssa2934 to i64
  %3181 = add nsw i32 %.01546.lcssa2934, -1
  %3182 = zext i32 %3181 to i64
  %3183 = add nuw nsw i64 %3182, 1
  %min.iters.check3304 = icmp ult i32 %3181, 7
  br i1 %min.iters.check3304, label %.lr.ph2316.preheader, label %vector.scevcheck3285

vector.scevcheck3285:                             ; preds = %iter.check3306
  %3184 = add nsw i32 %.01546.lcssa2934, -1
  %3185 = add i32 %.01546.lcssa2934, %3172
  %3186 = icmp ugt i32 %3184, %3185
  %3187 = add i32 %.01546.lcssa2934, %3172
  %3188 = add i32 %3187, -1
  %3189 = icmp ugt i32 %3172, %3188
  %3190 = zext i32 %3185 to i64
  %3191 = getelementptr i8, ptr %0, i64 %3190
  %scevgep3292 = getelementptr i8, ptr %3191, i64 3724
  %3192 = zext i32 %3184 to i64
  %3193 = sub nsw i64 0, %3192
  %3194 = getelementptr i8, ptr %scevgep3292, i64 %3193
  %3195 = icmp ugt ptr %3194, %scevgep3292
  %3196 = zext i32 %3188 to i64
  %3197 = getelementptr i8, ptr %0, i64 %3196
  %scevgep3296 = getelementptr i8, ptr %3197, i64 3724
  %3198 = zext i32 %3184 to i64
  %3199 = sub nsw i64 0, %3198
  %3200 = getelementptr i8, ptr %scevgep3296, i64 %3199
  %3201 = icmp ugt ptr %3200, %scevgep3296
  %3202 = or i1 %3186, %3189
  %3203 = or i1 %3202, %3195
  %3204 = or i1 %3203, %3201
  br i1 %3204, label %.lr.ph2316.preheader, label %vector.memcheck3300

vector.memcheck3300:                              ; preds = %vector.scevcheck3285
  %3205 = add i32 %.01546.lcssa2934, %3172
  %3206 = add i32 %3205, -1
  %3207 = zext i32 %3206 to i64
  %3208 = zext i32 %3205 to i64
  %3209 = sub nsw i64 %3207, %3208
  %diff.check3301 = icmp ult i64 %3209, 16
  br i1 %diff.check3301, label %.lr.ph2316.preheader, label %vector.main.loop.iter.check3308

vector.main.loop.iter.check3308:                  ; preds = %vector.memcheck3300
  %min.iters.check3307 = icmp ult i32 %3181, 15
  br i1 %min.iters.check3307, label %vec.epilog.ph3322, label %vector.ph3309

vector.ph3309:                                    ; preds = %vector.main.loop.iter.check3308
  %n.vec3311 = and i64 %3183, 8589934576
  %invariant.gep3663 = getelementptr i8, ptr %3173, i64 -15
  %invariant.gep3665 = getelementptr i8, ptr %3173, i64 -15
  br label %vector.body3312

vector.body3312:                                  ; preds = %vector.body3312, %vector.ph3309
  %index3313 = phi i64 [ 0, %vector.ph3309 ], [ %index.next3318, %vector.body3312 ]
  %3210 = trunc i64 %index3313 to i32
  %3211 = sub i32 %.01546.lcssa2934, %3210
  %3212 = add i32 %3172, %3211
  %3213 = add i32 %3212, -1
  %3214 = zext i32 %3213 to i64
  %gep3664 = getelementptr [4096 x i8], ptr %invariant.gep3663, i64 0, i64 %3214
  %wide.load3315 = load <16 x i8>, ptr %gep3664, align 1, !tbaa !41
  %3215 = zext i32 %3212 to i64
  %gep3666 = getelementptr [4096 x i8], ptr %invariant.gep3665, i64 0, i64 %3215
  store <16 x i8> %wide.load3315, ptr %gep3666, align 1, !tbaa !41
  %index.next3318 = add nuw i64 %index3313, 16
  %3216 = icmp eq i64 %index.next3318, %n.vec3311
  br i1 %3216, label %middle.block3302, label %vector.body3312, !llvm.loop !84

middle.block3302:                                 ; preds = %vector.body3312
  %cmp.n3319 = icmp eq i64 %3183, %n.vec3311
  br i1 %cmp.n3319, label %._crit_edge2317, label %vec.epilog.iter.check3323

vec.epilog.iter.check3323:                        ; preds = %middle.block3302
  %ind.end3330 = sub nsw i64 %3180, %n.vec3311
  %n.vec.remaining3324 = and i64 %3183, 8
  %min.epilog.iters.check3325.not.not = icmp eq i64 %n.vec.remaining3324, 0
  br i1 %min.epilog.iters.check3325.not.not, label %.lr.ph2316.preheader, label %vec.epilog.ph3322

.lr.ph2316.preheader:                             ; preds = %vec.epilog.middle.block3320, %vector.memcheck3300, %vector.scevcheck3285, %iter.check3306, %vec.epilog.iter.check3323
  %indvars.iv2650.ph = phi i64 [ %3180, %iter.check3306 ], [ %3180, %vector.memcheck3300 ], [ %3180, %vector.scevcheck3285 ], [ %ind.end3330, %vec.epilog.iter.check3323 ], [ %ind.end3329, %vec.epilog.middle.block3320 ]
  %3217 = trunc i64 %indvars.iv2650.ph to i32
  %xtraiter3551 = and i32 %3217, 1
  %lcmp.mod3552.not = icmp eq i32 %xtraiter3551, 0
  br i1 %lcmp.mod3552.not, label %.lr.ph2316.prol.loopexit, label %.lr.ph2316.prol

.lr.ph2316.prol:                                  ; preds = %.lr.ph2316.preheader
  %3218 = trunc nuw i64 %indvars.iv2650.ph to i32
  %3219 = add i32 %3172, %3218
  %3220 = add i32 %3219, -1
  %3221 = zext i32 %3220 to i64
  %3222 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3221
  %3223 = load i8, ptr %3222, align 1, !tbaa !41
  %3224 = zext i32 %3219 to i64
  %3225 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3224
  store i8 %3223, ptr %3225, align 1, !tbaa !41
  %indvars.iv.next2651.prol = add nsw i64 %indvars.iv2650.ph, -1
  br label %.lr.ph2316.prol.loopexit

.lr.ph2316.prol.loopexit:                         ; preds = %.lr.ph2316.prol, %.lr.ph2316.preheader
  %indvars.iv2650.unr = phi i64 [ %indvars.iv2650.ph, %.lr.ph2316.preheader ], [ %indvars.iv.next2651.prol, %.lr.ph2316.prol ]
  %3226 = icmp eq i32 %3217, 1
  br i1 %3226, label %._crit_edge2317, label %.lr.ph2316

vec.epilog.ph3322:                                ; preds = %vector.main.loop.iter.check3308, %vec.epilog.iter.check3323
  %vec.epilog.resume.val3326 = phi i64 [ %n.vec3311, %vec.epilog.iter.check3323 ], [ 0, %vector.main.loop.iter.check3308 ]
  %n.vec3328 = and i64 %3183, 8589934584
  %ind.end3329 = sub nsw i64 %3180, %n.vec3328
  %invariant.gep3667 = getelementptr i8, ptr %3173, i64 -7
  %invariant.gep3669 = getelementptr i8, ptr %3173, i64 -7
  br label %vec.epilog.vector.body3332

vec.epilog.vector.body3332:                       ; preds = %vec.epilog.vector.body3332, %vec.epilog.ph3322
  %index3333 = phi i64 [ %vec.epilog.resume.val3326, %vec.epilog.ph3322 ], [ %index.next3338, %vec.epilog.vector.body3332 ]
  %3227 = trunc i64 %index3333 to i32
  %3228 = sub i32 %.01546.lcssa2934, %3227
  %3229 = add i32 %3172, %3228
  %3230 = add i32 %3229, -1
  %3231 = zext i32 %3230 to i64
  %gep3668 = getelementptr [4096 x i8], ptr %invariant.gep3667, i64 0, i64 %3231
  %wide.load3335 = load <8 x i8>, ptr %gep3668, align 1, !tbaa !41
  %3232 = zext i32 %3229 to i64
  %gep3670 = getelementptr [4096 x i8], ptr %invariant.gep3669, i64 0, i64 %3232
  store <8 x i8> %wide.load3335, ptr %gep3670, align 1, !tbaa !41
  %index.next3338 = add nuw i64 %index3333, 8
  %3233 = icmp eq i64 %index.next3338, %n.vec3328
  br i1 %3233, label %vec.epilog.middle.block3320, label %vec.epilog.vector.body3332, !llvm.loop !85

vec.epilog.middle.block3320:                      ; preds = %vec.epilog.vector.body3332
  %cmp.n3339 = icmp eq i64 %3183, %n.vec3328
  br i1 %cmp.n3339, label %._crit_edge2317, label %.lr.ph2316.preheader

.lr.ph2312:                                       ; preds = %.lr.ph2312.preheader, %.lr.ph2312
  %indvars.iv2646 = phi i64 [ %3179, %.lr.ph2312.preheader ], [ %indvars.iv.next2647, %.lr.ph2312 ]
  %3234 = trunc i64 %indvars.iv2646 to i32
  %3235 = add i32 %3172, %3234
  %3236 = add nsw i32 %3235, -1
  %3237 = sext i32 %3236 to i64
  %3238 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3237
  %3239 = load i8, ptr %3238, align 1, !tbaa !41
  %3240 = sext i32 %3235 to i64
  %3241 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3240
  store i8 %3239, ptr %3241, align 1, !tbaa !41
  %3242 = add nsw i32 %3235, -2
  %3243 = sext i32 %3242 to i64
  %3244 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3243
  %3245 = load i8, ptr %3244, align 1, !tbaa !41
  store i8 %3245, ptr %3238, align 1, !tbaa !41
  %3246 = add nsw i32 %3235, -3
  %3247 = sext i32 %3246 to i64
  %3248 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3247
  %3249 = load i8, ptr %3248, align 1, !tbaa !41
  store i8 %3249, ptr %3244, align 1, !tbaa !41
  %3250 = add nsw i32 %3235, -4
  %3251 = sext i32 %3250 to i64
  %3252 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3251
  %3253 = load i8, ptr %3252, align 1, !tbaa !41
  store i8 %3253, ptr %3248, align 1, !tbaa !41
  %indvars.iv.next2647 = add i64 %indvars.iv2646, -4
  %3254 = trunc i64 %indvars.iv.next2647 to i32
  %3255 = icmp ugt i32 %3254, 3
  br i1 %3255, label %.lr.ph2312, label %.preheader1921, !llvm.loop !86

.lr.ph2316:                                       ; preds = %.lr.ph2316.prol.loopexit, %.lr.ph2316
  %indvars.iv2650 = phi i64 [ %indvars.iv.next2651.1, %.lr.ph2316 ], [ %indvars.iv2650.unr, %.lr.ph2316.prol.loopexit ]
  %3256 = trunc nuw i64 %indvars.iv2650 to i32
  %3257 = add i32 %3172, %3256
  %3258 = add i32 %3257, -1
  %3259 = zext i32 %3258 to i64
  %3260 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3259
  %3261 = load i8, ptr %3260, align 1, !tbaa !41
  %3262 = zext i32 %3257 to i64
  %3263 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3262
  store i8 %3261, ptr %3263, align 1, !tbaa !41
  %3264 = trunc i64 %indvars.iv2650 to i32
  %3265 = add i32 %3264, -1
  %3266 = add i32 %3172, %3265
  %3267 = add i32 %3266, -1
  %3268 = zext i32 %3267 to i64
  %3269 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3268
  %3270 = load i8, ptr %3269, align 1, !tbaa !41
  %3271 = zext i32 %3266 to i64
  %3272 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3271
  store i8 %3270, ptr %3272, align 1, !tbaa !41
  %indvars.iv.next2651.1 = add nsw i64 %indvars.iv2650, -2
  %3273 = and i64 %indvars.iv.next2651.1, 4294967295
  %.not1845.1 = icmp eq i64 %3273, 0
  br i1 %.not1845.1, label %._crit_edge2317, label %.lr.ph2316, !llvm.loop !87

._crit_edge2317:                                  ; preds = %.lr.ph2316.prol.loopexit, %.lr.ph2316, %middle.block3302, %vec.epilog.middle.block3320, %.preheader1921
  %3274 = sext i32 %3172 to i64
  %3275 = getelementptr inbounds [4096 x i8], ptr %3173, i64 0, i64 %3274
  store i8 %3177, ptr %3275, align 1, !tbaa !41
  br label %.loopexit1924

3276:                                             ; preds = %3167
  %3277 = lshr i32 %3168, 4
  %3278 = and i32 %3168, 15
  %3279 = getelementptr inbounds i8, ptr %0, i64 7820
  %3280 = zext nneg i32 %3277 to i64
  %3281 = getelementptr inbounds [16 x i32], ptr %3279, i64 0, i64 %3280
  %3282 = load i32, ptr %3281, align 4, !tbaa !76
  %3283 = add nsw i32 %3282, %3278
  %3284 = getelementptr inbounds i8, ptr %0, i64 3724
  %3285 = sext i32 %3283 to i64
  %3286 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3285
  %3287 = load i8, ptr %3286, align 1, !tbaa !41
  %.not2483 = icmp eq i32 %3278, 0
  br i1 %.not2483, label %.lr.ph2304.preheader, label %.lr.ph2299.preheader

.lr.ph2299.preheader:                             ; preds = %3276
  %3288 = sext i32 %3282 to i64
  %3289 = add i32 %.01569, 15
  %3290 = and i32 %3289, 15
  %3291 = zext nneg i32 %3290 to i64
  %3292 = add nsw i64 %3288, %3291
  br label %.lr.ph2299

.lr.ph2299:                                       ; preds = %.lr.ph2299.preheader, %.lr.ph2299
  %indvars.iv2628 = phi i64 [ %3292, %.lr.ph2299.preheader ], [ %indvars.iv.next2629, %.lr.ph2299 ]
  %indvars.iv.next2629 = add nsw i64 %indvars.iv2628, -1
  %3293 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2629
  %3294 = load i8, ptr %3293, align 1, !tbaa !41
  %3295 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv2628
  store i8 %3294, ptr %3295, align 1, !tbaa !41
  %3296 = load i32, ptr %3281, align 4, !tbaa !76
  %3297 = sext i32 %3296 to i64
  %3298 = icmp sgt i64 %indvars.iv.next2629, %3297
  br i1 %3298, label %.lr.ph2299, label %.lr.ph2304.preheader, !llvm.loop !88

.lr.ph2304.preheader:                             ; preds = %.lr.ph2299, %3276
  %.lcssa2041 = phi i32 [ %3282, %3276 ], [ %3296, %.lr.ph2299 ]
  %3299 = add nsw i32 %.lcssa2041, 1
  store i32 %3299, ptr %3281, align 4, !tbaa !76
  br label %.lr.ph2304

.lr.ph2304:                                       ; preds = %.lr.ph2304.preheader, %.lr.ph2304
  %indvars.iv2632 = phi i64 [ %3280, %.lr.ph2304.preheader ], [ %indvars.iv.next2633, %.lr.ph2304 ]
  %3300 = getelementptr inbounds [16 x i32], ptr %3279, i64 0, i64 %indvars.iv2632
  %3301 = load i32, ptr %3300, align 4, !tbaa !76
  %3302 = add nsw i32 %3301, -1
  store i32 %3302, ptr %3300, align 4, !tbaa !76
  %indvars.iv.next2633 = add nsw i64 %indvars.iv2632, -1
  %3303 = getelementptr inbounds [16 x i32], ptr %3279, i64 0, i64 %indvars.iv.next2633
  %3304 = load i32, ptr %3303, align 4, !tbaa !76
  %3305 = add nsw i32 %3304, 15
  %3306 = sext i32 %3305 to i64
  %3307 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3306
  %3308 = load i8, ptr %3307, align 1, !tbaa !41
  %3309 = sext i32 %3302 to i64
  %3310 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3309
  store i8 %3308, ptr %3310, align 1, !tbaa !41
  %3311 = icmp sgt i64 %indvars.iv2632, 1
  br i1 %3311, label %.lr.ph2304, label %._crit_edge2305, !llvm.loop !89

._crit_edge2305:                                  ; preds = %.lr.ph2304
  %3312 = load i32, ptr %3279, align 4, !tbaa !76
  %3313 = add nsw i32 %3312, -1
  store i32 %3313, ptr %3279, align 4, !tbaa !76
  %3314 = sext i32 %3313 to i64
  %3315 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3314
  store i8 %3287, ptr %3315, align 1, !tbaa !41
  %3316 = load i32, ptr %3279, align 4, !tbaa !76
  %3317 = icmp eq i32 %3316, 0
  br i1 %3317, label %.preheader1922, label %.loopexit1924

.preheader1922:                                   ; preds = %._crit_edge2305, %.preheader1922
  %indvars.iv2640 = phi i64 [ %indvars.iv.next2641, %.preheader1922 ], [ 15, %._crit_edge2305 ]
  %indvars.iv2638 = phi i64 [ %indvars.iv.next2639, %.preheader1922 ], [ 4095, %._crit_edge2305 ]
  %3318 = getelementptr inbounds [16 x i32], ptr %3279, i64 0, i64 %indvars.iv2640
  %3319 = load i32, ptr %3318, align 4, !tbaa !76
  %3320 = add nsw i32 %3319, 15
  %3321 = sext i32 %3320 to i64
  %3322 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3321
  %3323 = load i8, ptr %3322, align 1, !tbaa !41
  %3324 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv2638
  store i8 %3323, ptr %3324, align 1, !tbaa !41
  %indvars.iv.next2635 = add nsw i64 %indvars.iv2638, -1
  %3325 = load i32, ptr %3318, align 4, !tbaa !76
  %3326 = add nsw i32 %3325, 14
  %3327 = sext i32 %3326 to i64
  %3328 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3327
  %3329 = load i8, ptr %3328, align 1, !tbaa !41
  %3330 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635
  store i8 %3329, ptr %3330, align 1, !tbaa !41
  %indvars.iv.next2635.1 = add nsw i64 %indvars.iv2638, -2
  %3331 = load i32, ptr %3318, align 4, !tbaa !76
  %3332 = add nsw i32 %3331, 13
  %3333 = sext i32 %3332 to i64
  %3334 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3333
  %3335 = load i8, ptr %3334, align 1, !tbaa !41
  %3336 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.1
  store i8 %3335, ptr %3336, align 1, !tbaa !41
  %indvars.iv.next2635.2 = add nsw i64 %indvars.iv2638, -3
  %3337 = load i32, ptr %3318, align 4, !tbaa !76
  %3338 = add nsw i32 %3337, 12
  %3339 = sext i32 %3338 to i64
  %3340 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3339
  %3341 = load i8, ptr %3340, align 1, !tbaa !41
  %3342 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.2
  store i8 %3341, ptr %3342, align 1, !tbaa !41
  %indvars.iv.next2635.3 = add nsw i64 %indvars.iv2638, -4
  %3343 = load i32, ptr %3318, align 4, !tbaa !76
  %3344 = add nsw i32 %3343, 11
  %3345 = sext i32 %3344 to i64
  %3346 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3345
  %3347 = load i8, ptr %3346, align 1, !tbaa !41
  %3348 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.3
  store i8 %3347, ptr %3348, align 1, !tbaa !41
  %indvars.iv.next2635.4 = add nsw i64 %indvars.iv2638, -5
  %3349 = load i32, ptr %3318, align 4, !tbaa !76
  %3350 = add nsw i32 %3349, 10
  %3351 = sext i32 %3350 to i64
  %3352 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3351
  %3353 = load i8, ptr %3352, align 1, !tbaa !41
  %3354 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.4
  store i8 %3353, ptr %3354, align 1, !tbaa !41
  %indvars.iv.next2635.5 = add nsw i64 %indvars.iv2638, -6
  %3355 = load i32, ptr %3318, align 4, !tbaa !76
  %3356 = add nsw i32 %3355, 9
  %3357 = sext i32 %3356 to i64
  %3358 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3357
  %3359 = load i8, ptr %3358, align 1, !tbaa !41
  %3360 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.5
  store i8 %3359, ptr %3360, align 1, !tbaa !41
  %indvars.iv.next2635.6 = add nsw i64 %indvars.iv2638, -7
  %3361 = load i32, ptr %3318, align 4, !tbaa !76
  %3362 = add nsw i32 %3361, 8
  %3363 = sext i32 %3362 to i64
  %3364 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3363
  %3365 = load i8, ptr %3364, align 1, !tbaa !41
  %3366 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.6
  store i8 %3365, ptr %3366, align 1, !tbaa !41
  %indvars.iv.next2635.7 = add nsw i64 %indvars.iv2638, -8
  %3367 = load i32, ptr %3318, align 4, !tbaa !76
  %3368 = add nsw i32 %3367, 7
  %3369 = sext i32 %3368 to i64
  %3370 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3369
  %3371 = load i8, ptr %3370, align 1, !tbaa !41
  %3372 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.7
  store i8 %3371, ptr %3372, align 1, !tbaa !41
  %indvars.iv.next2635.8 = add nsw i64 %indvars.iv2638, -9
  %3373 = load i32, ptr %3318, align 4, !tbaa !76
  %3374 = add nsw i32 %3373, 6
  %3375 = sext i32 %3374 to i64
  %3376 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3375
  %3377 = load i8, ptr %3376, align 1, !tbaa !41
  %3378 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.8
  store i8 %3377, ptr %3378, align 1, !tbaa !41
  %indvars.iv.next2635.9 = add nsw i64 %indvars.iv2638, -10
  %3379 = load i32, ptr %3318, align 4, !tbaa !76
  %3380 = add nsw i32 %3379, 5
  %3381 = sext i32 %3380 to i64
  %3382 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3381
  %3383 = load i8, ptr %3382, align 1, !tbaa !41
  %3384 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.9
  store i8 %3383, ptr %3384, align 1, !tbaa !41
  %indvars.iv.next2635.10 = add nsw i64 %indvars.iv2638, -11
  %3385 = load i32, ptr %3318, align 4, !tbaa !76
  %3386 = add nsw i32 %3385, 4
  %3387 = sext i32 %3386 to i64
  %3388 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3387
  %3389 = load i8, ptr %3388, align 1, !tbaa !41
  %3390 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.10
  store i8 %3389, ptr %3390, align 1, !tbaa !41
  %indvars.iv.next2635.11 = add nsw i64 %indvars.iv2638, -12
  %3391 = load i32, ptr %3318, align 4, !tbaa !76
  %3392 = add nsw i32 %3391, 3
  %3393 = sext i32 %3392 to i64
  %3394 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3393
  %3395 = load i8, ptr %3394, align 1, !tbaa !41
  %3396 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.11
  store i8 %3395, ptr %3396, align 1, !tbaa !41
  %indvars.iv.next2635.12 = add nsw i64 %indvars.iv2638, -13
  %3397 = load i32, ptr %3318, align 4, !tbaa !76
  %3398 = add nsw i32 %3397, 2
  %3399 = sext i32 %3398 to i64
  %3400 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3399
  %3401 = load i8, ptr %3400, align 1, !tbaa !41
  %3402 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.12
  store i8 %3401, ptr %3402, align 1, !tbaa !41
  %indvars.iv.next2635.13 = add nsw i64 %indvars.iv2638, -14
  %3403 = load i32, ptr %3318, align 4, !tbaa !76
  %3404 = add nsw i32 %3403, 1
  %3405 = sext i32 %3404 to i64
  %3406 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3405
  %3407 = load i8, ptr %3406, align 1, !tbaa !41
  %3408 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.13
  store i8 %3407, ptr %3408, align 1, !tbaa !41
  %indvars.iv.next2635.14 = add nsw i64 %indvars.iv2638, -15
  %3409 = load i32, ptr %3318, align 4, !tbaa !76
  %3410 = sext i32 %3409 to i64
  %3411 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %3410
  %3412 = load i8, ptr %3411, align 1, !tbaa !41
  %3413 = getelementptr inbounds [4096 x i8], ptr %3284, i64 0, i64 %indvars.iv.next2635.14
  store i8 %3412, ptr %3413, align 1, !tbaa !41
  %3414 = trunc nsw i64 %indvars.iv.next2635.14 to i32
  %indvars.iv.next2639 = add nsw i64 %indvars.iv2638, -16
  store i32 %3414, ptr %3318, align 4, !tbaa !76
  %indvars.iv.next2641 = add nsw i64 %indvars.iv2640, -1
  %.not2931 = icmp eq i64 %indvars.iv2640, 0
  br i1 %.not2931, label %.loopexit1924, label %.preheader1922, !llvm.loop !90

.loopexit1924:                                    ; preds = %.preheader1922, %._crit_edge2305, %._crit_edge2317
  %.01398 = phi i8 [ %3177, %._crit_edge2317 ], [ %3287, %._crit_edge2305 ], [ %3287, %.preheader1922 ]
  %3415 = getelementptr inbounds i8, ptr %0, i64 68
  %3416 = getelementptr inbounds i8, ptr %0, i64 3468
  %3417 = zext i8 %.01398 to i64
  %3418 = getelementptr inbounds [256 x i8], ptr %3416, i64 0, i64 %3417
  %3419 = load i8, ptr %3418, align 1, !tbaa !41
  %3420 = zext i8 %3419 to i64
  %3421 = getelementptr inbounds [256 x i32], ptr %3415, i64 0, i64 %3420
  %3422 = load i32, ptr %3421, align 4, !tbaa !76
  %3423 = add nsw i32 %3422, 1
  store i32 %3423, ptr %3421, align 4, !tbaa !76
  %3424 = getelementptr inbounds i8, ptr %0, i64 44
  %3425 = load i8, ptr %3424, align 4, !tbaa !45
  %.not1846 = icmp eq i8 %3425, 0
  %3426 = sext i32 %.31593 to i64
  br i1 %.not1846, label %3432, label %3427

3427:                                             ; preds = %.loopexit1924
  %3428 = zext i8 %3419 to i16
  %3429 = getelementptr inbounds i8, ptr %0, i64 3160
  %3430 = load ptr, ptr %3429, align 8, !tbaa !48
  %3431 = getelementptr inbounds i16, ptr %3430, i64 %3426
  store i16 %3428, ptr %3431, align 2, !tbaa !80
  br label %3437

3432:                                             ; preds = %.loopexit1924
  %3433 = zext i8 %3419 to i32
  %3434 = getelementptr inbounds i8, ptr %0, i64 3152
  %3435 = load ptr, ptr %3434, align 8, !tbaa !50
  %3436 = getelementptr inbounds i32, ptr %3435, i64 %3426
  store i32 %3433, ptr %3436, align 4, !tbaa !76
  br label %3437

3437:                                             ; preds = %3432, %3427
  %3438 = add nsw i32 %.31593, 1
  %3439 = icmp eq i32 %.41552, 0
  br i1 %3439, label %3440, label %3458

3440:                                             ; preds = %3437
  %3441 = add nsw i32 %.41535, 1
  %.not1847 = icmp slt i32 %3441, %.121510
  br i1 %.not1847, label %3442, label %.loopexit

3442:                                             ; preds = %3440
  %3443 = getelementptr inbounds i8, ptr %0, i64 7884
  %3444 = sext i32 %3441 to i64
  %3445 = getelementptr inbounds [18002 x i8], ptr %3443, i64 0, i64 %3444
  %3446 = load i8, ptr %3445, align 1, !tbaa !41
  %3447 = zext i8 %3446 to i32
  %3448 = getelementptr inbounds i8, ptr %0, i64 64012
  %3449 = zext i8 %3446 to i64
  %3450 = getelementptr inbounds [6 x i32], ptr %3448, i64 0, i64 %3449
  %3451 = load i32, ptr %3450, align 4, !tbaa !76
  %3452 = getelementptr inbounds i8, ptr %0, i64 45436
  %3453 = getelementptr inbounds [6 x [258 x i32]], ptr %3452, i64 0, i64 %3449
  %3454 = getelementptr inbounds i8, ptr %0, i64 57820
  %3455 = getelementptr inbounds [6 x [258 x i32]], ptr %3454, i64 0, i64 %3449
  %3456 = getelementptr inbounds i8, ptr %0, i64 51628
  %3457 = getelementptr inbounds [6 x [258 x i32]], ptr %3456, i64 0, i64 %3449
  br label %3458

3458:                                             ; preds = %3442, %3437
  %.101756 = phi ptr [ %3455, %3442 ], [ %.41750, %3437 ]
  %.101741 = phi ptr [ %3457, %3442 ], [ %.41735, %3437 ]
  %.101726 = phi ptr [ %3453, %3442 ], [ %.41720, %3437 ]
  %.101711 = phi i32 [ %3451, %3442 ], [ %.41705, %3437 ]
  %.101696 = phi i32 [ %3447, %3442 ], [ %.41690, %3437 ]
  %.101558 = phi i32 [ 50, %3442 ], [ %.41552, %3437 ]
  %.101541 = phi i32 [ %3441, %3442 ], [ %.41535, %3437 ]
  %3459 = add nsw i32 %.101558, -1
  br label %3460

3460:                                             ; preds = %3458, %34
  %3461 = phi ptr [ %2888, %3458 ], [ %58, %34 ]
  %3462 = phi ptr [ %2889, %3458 ], [ %57, %34 ]
  %3463 = phi ptr [ %2890, %3458 ], [ %56, %34 ]
  %3464 = phi ptr [ %2891, %3458 ], [ %55, %34 ]
  %3465 = phi ptr [ %2892, %3458 ], [ %54, %34 ]
  %3466 = phi ptr [ %2893, %3458 ], [ %53, %34 ]
  %3467 = phi ptr [ %2894, %3458 ], [ %52, %34 ]
  %3468 = phi ptr [ %2895, %3458 ], [ %51, %34 ]
  %3469 = phi ptr [ %2896, %3458 ], [ %50, %34 ]
  %3470 = phi ptr [ %2897, %3458 ], [ %49, %34 ]
  %3471 = phi ptr [ %2898, %3458 ], [ %48, %34 ]
  %3472 = phi ptr [ %2899, %3458 ], [ %47, %34 ]
  %3473 = phi ptr [ %2900, %3458 ], [ %46, %34 ]
  %3474 = phi ptr [ %2901, %3458 ], [ %45, %34 ]
  %3475 = phi ptr [ %2902, %3458 ], [ %44, %34 ]
  %3476 = phi ptr [ %2903, %3458 ], [ %43, %34 ]
  %3477 = phi ptr [ %2904, %3458 ], [ %42, %34 ]
  %3478 = phi ptr [ %2905, %3458 ], [ %41, %34 ]
  %3479 = phi ptr [ %2906, %3458 ], [ %40, %34 ]
  %3480 = phi ptr [ %2907, %3458 ], [ %39, %34 ]
  %3481 = phi ptr [ %2908, %3458 ], [ %38, %34 ]
  %3482 = phi ptr [ %2909, %3458 ], [ %37, %34 ]
  %3483 = phi ptr [ %2910, %3458 ], [ %36, %34 ]
  %3484 = phi ptr [ %2911, %3458 ], [ %35, %34 ]
  %3485 = phi i32 [ %2912, %3458 ], [ %.pre2739, %34 ]
  %.111757 = phi ptr [ %.101756, %3458 ], [ %.pre2755, %34 ]
  %.111742 = phi ptr [ %.101741, %3458 ], [ %.pre2753, %34 ]
  %.111727 = phi ptr [ %.101726, %3458 ], [ %.pre2751, %34 ]
  %.111712 = phi i32 [ %.101711, %3458 ], [ %.pre2749, %34 ]
  %.111697 = phi i32 [ %.101696, %3458 ], [ %.pre2747, %34 ]
  %.71682 = phi i32 [ %.21677, %3458 ], [ %.pre2745, %34 ]
  %.71671 = phi i32 [ %.21666, %3458 ], [ %.pre2743, %34 ]
  %.81658 = phi i32 [ %.101711, %3458 ], [ %.pre2741, %34 ]
  %.151646 = phi i32 [ %.101641, %3458 ], [ %.pre2737, %34 ]
  %.51627 = phi i32 [ %.01622, %3458 ], [ %.pre2735, %34 ]
  %.91614 = phi i32 [ %.01605, %3458 ], [ %.pre2733, %34 ]
  %.111601 = phi i32 [ %3438, %3458 ], [ %.pre2731, %34 ]
  %.81586 = phi i32 [ %.31581, %3458 ], [ %.pre2729, %34 ]
  %.51574 = phi i32 [ %.01569, %3458 ], [ %.pre2727, %34 ]
  %.111559 = phi i32 [ %3459, %3458 ], [ %.pre2725, %34 ]
  %.111542 = phi i32 [ %.101541, %3458 ], [ %.pre2723, %34 ]
  %.81527 = phi i32 [ %.31522, %3458 ], [ %.pre2721, %34 ]
  %.171515 = phi i32 [ %.121510, %3458 ], [ %.pre2719, %34 ]
  %.181494 = phi i32 [ %.131489, %3458 ], [ %.pre2717, %34 ]
  %.191472 = phi i32 [ %.141467, %3458 ], [ %.pre2715, %34 ]
  %.151449 = phi i32 [ %.101444, %3458 ], [ %.pre2713, %34 ]
  %.231428 = phi i32 [ %.181423, %3458 ], [ %.pre2711, %34 ]
  %.29 = phi i32 [ %.24, %3458 ], [ %.pre, %34 ]
  store i32 40, ptr %4, align 8, !tbaa !11
  %3486 = getelementptr inbounds i8, ptr %0, i64 36
  %.promoted2318 = load i32, ptr %3486, align 4, !tbaa !12
  %.not18482319 = icmp slt i32 %.promoted2318, %.81658
  br i1 %.not18482319, label %.lr.ph2321, label %.._crit_edge2322_crit_edge

.._crit_edge2322_crit_edge:                       ; preds = %3460
  %.phi.trans.insert2846 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2847 = load i32, ptr %.phi.trans.insert2846, align 8, !tbaa !37
  br label %._crit_edge2322

.lr.ph2321:                                       ; preds = %3460
  %3487 = load ptr, ptr %0, align 8, !tbaa !5
  %3488 = getelementptr inbounds i8, ptr %3487, i64 8
  %3489 = getelementptr inbounds i8, ptr %0, i64 32
  %3490 = getelementptr inbounds i8, ptr %3487, i64 12
  %3491 = getelementptr inbounds i8, ptr %3487, i64 16
  %.promoted2325 = load i32, ptr %3488, align 8, !tbaa !38
  br label %3497

._crit_edge2322:                                  ; preds = %3517, %.._crit_edge2322_crit_edge
  %3492 = phi i32 [ %.pre2847, %.._crit_edge2322_crit_edge ], [ %3507, %3517 ]
  %.lcssa2037 = phi i32 [ %.promoted2318, %.._crit_edge2322_crit_edge ], [ %3508, %3517 ]
  %3493 = sub nsw i32 %.lcssa2037, %.81658
  %3494 = lshr i32 %3492, %3493
  %notmask1849 = shl nsw i32 -1, %.81658
  %3495 = xor i32 %notmask1849, -1
  %3496 = and i32 %3494, %3495
  store i32 %3493, ptr %3486, align 4, !tbaa !12
  br label %3518

3497:                                             ; preds = %.lr.ph2321, %3517
  %3498 = phi i32 [ %.promoted2325, %.lr.ph2321 ], [ %3510, %3517 ]
  %3499 = phi i32 [ %.promoted2318, %.lr.ph2321 ], [ %3508, %3517 ]
  %3500 = icmp eq i32 %3498, 0
  br i1 %3500, label %.loopexit, label %3501

3501:                                             ; preds = %3497
  %3502 = load i32, ptr %3489, align 8, !tbaa !37
  %3503 = shl i32 %3502, 8
  %3504 = load ptr, ptr %3487, align 8, !tbaa !40
  %3505 = load i8, ptr %3504, align 1, !tbaa !41
  %3506 = zext i8 %3505 to i32
  %3507 = or disjoint i32 %3503, %3506
  store i32 %3507, ptr %3489, align 8, !tbaa !37
  %3508 = add nsw i32 %3499, 8
  store i32 %3508, ptr %3486, align 4, !tbaa !12
  %3509 = getelementptr inbounds i8, ptr %3504, i64 1
  store ptr %3509, ptr %3487, align 8, !tbaa !40
  %3510 = add i32 %3498, -1
  store i32 %3510, ptr %3488, align 8, !tbaa !38
  %3511 = load i32, ptr %3490, align 4, !tbaa !42
  %3512 = add i32 %3511, 1
  store i32 %3512, ptr %3490, align 4, !tbaa !42
  %3513 = icmp eq i32 %3512, 0
  br i1 %3513, label %3514, label %3517

3514:                                             ; preds = %3501
  %3515 = load i32, ptr %3491, align 8, !tbaa !43
  %3516 = add i32 %3515, 1
  store i32 %3516, ptr %3491, align 8, !tbaa !43
  br label %3517

3517:                                             ; preds = %3514, %3501
  %.not1848 = icmp slt i32 %3508, %.81658
  br i1 %.not1848, label %3497, label %._crit_edge2322

3518:                                             ; preds = %._crit_edge2329, %._crit_edge2322
  %3519 = phi ptr [ %3552, %._crit_edge2329 ], [ %3461, %._crit_edge2322 ]
  %3520 = phi ptr [ %3553, %._crit_edge2329 ], [ %3462, %._crit_edge2322 ]
  %3521 = phi ptr [ %3554, %._crit_edge2329 ], [ %3463, %._crit_edge2322 ]
  %3522 = phi ptr [ %3555, %._crit_edge2329 ], [ %3464, %._crit_edge2322 ]
  %3523 = phi ptr [ %3556, %._crit_edge2329 ], [ %3465, %._crit_edge2322 ]
  %3524 = phi ptr [ %3557, %._crit_edge2329 ], [ %3466, %._crit_edge2322 ]
  %3525 = phi ptr [ %3558, %._crit_edge2329 ], [ %3467, %._crit_edge2322 ]
  %3526 = phi ptr [ %3559, %._crit_edge2329 ], [ %3468, %._crit_edge2322 ]
  %3527 = phi ptr [ %3560, %._crit_edge2329 ], [ %3469, %._crit_edge2322 ]
  %3528 = phi ptr [ %3561, %._crit_edge2329 ], [ %3470, %._crit_edge2322 ]
  %3529 = phi ptr [ %3562, %._crit_edge2329 ], [ %3471, %._crit_edge2322 ]
  %3530 = phi ptr [ %3563, %._crit_edge2329 ], [ %3472, %._crit_edge2322 ]
  %3531 = phi ptr [ %3564, %._crit_edge2329 ], [ %3473, %._crit_edge2322 ]
  %3532 = phi ptr [ %3565, %._crit_edge2329 ], [ %3474, %._crit_edge2322 ]
  %3533 = phi ptr [ %3566, %._crit_edge2329 ], [ %3475, %._crit_edge2322 ]
  %3534 = phi ptr [ %3567, %._crit_edge2329 ], [ %3476, %._crit_edge2322 ]
  %3535 = phi ptr [ %3568, %._crit_edge2329 ], [ %3477, %._crit_edge2322 ]
  %3536 = phi ptr [ %3569, %._crit_edge2329 ], [ %3478, %._crit_edge2322 ]
  %3537 = phi ptr [ %3570, %._crit_edge2329 ], [ %3479, %._crit_edge2322 ]
  %3538 = phi ptr [ %3571, %._crit_edge2329 ], [ %3480, %._crit_edge2322 ]
  %3539 = phi ptr [ %3572, %._crit_edge2329 ], [ %3481, %._crit_edge2322 ]
  %3540 = phi ptr [ %3573, %._crit_edge2329 ], [ %3482, %._crit_edge2322 ]
  %3541 = phi ptr [ %3574, %._crit_edge2329 ], [ %3483, %._crit_edge2322 ]
  %3542 = phi ptr [ %3575, %._crit_edge2329 ], [ %3484, %._crit_edge2322 ]
  %3543 = phi i32 [ %3576, %._crit_edge2329 ], [ %3485, %._crit_edge2322 ]
  %.promoted23262851 = phi i32 [ %3585, %._crit_edge2329 ], [ %3493, %._crit_edge2322 ]
  %.121758 = phi ptr [ %.131759, %._crit_edge2329 ], [ %.111757, %._crit_edge2322 ]
  %.121743 = phi ptr [ %.131744, %._crit_edge2329 ], [ %.111742, %._crit_edge2322 ]
  %.121728 = phi ptr [ %.131729, %._crit_edge2329 ], [ %.111727, %._crit_edge2322 ]
  %.121713 = phi i32 [ %.131714, %._crit_edge2329 ], [ %.111712, %._crit_edge2322 ]
  %.121698 = phi i32 [ %.131699, %._crit_edge2329 ], [ %.111697, %._crit_edge2322 ]
  %.81683 = phi i32 [ %3587, %._crit_edge2329 ], [ %.71682, %._crit_edge2322 ]
  %.81672 = phi i32 [ %3589, %._crit_edge2329 ], [ %3496, %._crit_edge2322 ]
  %.91659 = phi i32 [ %.101660, %._crit_edge2329 ], [ %.81658, %._crit_edge2322 ]
  %.161647 = phi i32 [ %.171648, %._crit_edge2329 ], [ %.151646, %._crit_edge2322 ]
  %.61628 = phi i32 [ %.71629, %._crit_edge2329 ], [ %.51627, %._crit_edge2322 ]
  %.101615 = phi i32 [ %.111616, %._crit_edge2329 ], [ %.91614, %._crit_edge2322 ]
  %.121602 = phi i32 [ %.131603, %._crit_edge2329 ], [ %.111601, %._crit_edge2322 ]
  %.91587 = phi i32 [ %.101588, %._crit_edge2329 ], [ %.81586, %._crit_edge2322 ]
  %.61575 = phi i32 [ %.71576, %._crit_edge2329 ], [ %.51574, %._crit_edge2322 ]
  %.121560 = phi i32 [ %.131561, %._crit_edge2329 ], [ %.111559, %._crit_edge2322 ]
  %.121543 = phi i32 [ %.131544, %._crit_edge2329 ], [ %.111542, %._crit_edge2322 ]
  %.91528 = phi i32 [ %.101529, %._crit_edge2329 ], [ %.81527, %._crit_edge2322 ]
  %.181516 = phi i32 [ %.191517, %._crit_edge2329 ], [ %.171515, %._crit_edge2322 ]
  %.191495 = phi i32 [ %.201496, %._crit_edge2329 ], [ %.181494, %._crit_edge2322 ]
  %.201473 = phi i32 [ %.211474, %._crit_edge2329 ], [ %.191472, %._crit_edge2322 ]
  %.161450 = phi i32 [ %.171451, %._crit_edge2329 ], [ %.151449, %._crit_edge2322 ]
  %.241429 = phi i32 [ %.251430, %._crit_edge2329 ], [ %.231428, %._crit_edge2322 ]
  %.30 = phi i32 [ %.31, %._crit_edge2329 ], [ %.29, %._crit_edge2322 ]
  %3544 = icmp sgt i32 %.91659, 20
  br i1 %3544, label %.loopexit, label %3545

3545:                                             ; preds = %3518
  %3546 = sext i32 %.91659 to i64
  %3547 = getelementptr inbounds i32, ptr %.121728, i64 %3546
  %3548 = load i32, ptr %3547, align 4, !tbaa !76
  %.not1850 = icmp sgt i32 %.81672, %3548
  br i1 %.not1850, label %3549, label %3612

3549:                                             ; preds = %3545
  %3550 = add nsw i32 %.91659, 1
  br label %3551

3551:                                             ; preds = %._crit_edge2848, %3549
  %3552 = phi ptr [ %58, %._crit_edge2848 ], [ %3519, %3549 ]
  %3553 = phi ptr [ %57, %._crit_edge2848 ], [ %3520, %3549 ]
  %3554 = phi ptr [ %56, %._crit_edge2848 ], [ %3521, %3549 ]
  %3555 = phi ptr [ %55, %._crit_edge2848 ], [ %3522, %3549 ]
  %3556 = phi ptr [ %54, %._crit_edge2848 ], [ %3523, %3549 ]
  %3557 = phi ptr [ %53, %._crit_edge2848 ], [ %3524, %3549 ]
  %3558 = phi ptr [ %52, %._crit_edge2848 ], [ %3525, %3549 ]
  %3559 = phi ptr [ %51, %._crit_edge2848 ], [ %3526, %3549 ]
  %3560 = phi ptr [ %50, %._crit_edge2848 ], [ %3527, %3549 ]
  %3561 = phi ptr [ %49, %._crit_edge2848 ], [ %3528, %3549 ]
  %3562 = phi ptr [ %48, %._crit_edge2848 ], [ %3529, %3549 ]
  %3563 = phi ptr [ %47, %._crit_edge2848 ], [ %3530, %3549 ]
  %3564 = phi ptr [ %46, %._crit_edge2848 ], [ %3531, %3549 ]
  %3565 = phi ptr [ %45, %._crit_edge2848 ], [ %3532, %3549 ]
  %3566 = phi ptr [ %44, %._crit_edge2848 ], [ %3533, %3549 ]
  %3567 = phi ptr [ %43, %._crit_edge2848 ], [ %3534, %3549 ]
  %3568 = phi ptr [ %42, %._crit_edge2848 ], [ %3535, %3549 ]
  %3569 = phi ptr [ %41, %._crit_edge2848 ], [ %3536, %3549 ]
  %3570 = phi ptr [ %40, %._crit_edge2848 ], [ %3537, %3549 ]
  %3571 = phi ptr [ %39, %._crit_edge2848 ], [ %3538, %3549 ]
  %3572 = phi ptr [ %38, %._crit_edge2848 ], [ %3539, %3549 ]
  %3573 = phi ptr [ %37, %._crit_edge2848 ], [ %3540, %3549 ]
  %3574 = phi ptr [ %36, %._crit_edge2848 ], [ %3541, %3549 ]
  %3575 = phi ptr [ %35, %._crit_edge2848 ], [ %3542, %3549 ]
  %3576 = phi i32 [ %.pre2739, %._crit_edge2848 ], [ %3543, %3549 ]
  %.promoted2326 = phi i32 [ %.promoted2326.pre, %._crit_edge2848 ], [ %.promoted23262851, %3549 ]
  %.131759 = phi ptr [ %.pre2755, %._crit_edge2848 ], [ %.121758, %3549 ]
  %.131744 = phi ptr [ %.pre2753, %._crit_edge2848 ], [ %.121743, %3549 ]
  %.131729 = phi ptr [ %.pre2751, %._crit_edge2848 ], [ %.121728, %3549 ]
  %.131714 = phi i32 [ %.pre2749, %._crit_edge2848 ], [ %.121713, %3549 ]
  %.131699 = phi i32 [ %.pre2747, %._crit_edge2848 ], [ %.121698, %3549 ]
  %.91684 = phi i32 [ %.pre2745, %._crit_edge2848 ], [ %.81683, %3549 ]
  %.91673 = phi i32 [ %.pre2743, %._crit_edge2848 ], [ %.81672, %3549 ]
  %.101660 = phi i32 [ %.pre2741, %._crit_edge2848 ], [ %3550, %3549 ]
  %.171648 = phi i32 [ %.pre2737, %._crit_edge2848 ], [ %.161647, %3549 ]
  %.71629 = phi i32 [ %.pre2735, %._crit_edge2848 ], [ %.61628, %3549 ]
  %.111616 = phi i32 [ %.pre2733, %._crit_edge2848 ], [ %.101615, %3549 ]
  %.131603 = phi i32 [ %.pre2731, %._crit_edge2848 ], [ %.121602, %3549 ]
  %.101588 = phi i32 [ %.pre2729, %._crit_edge2848 ], [ %.91587, %3549 ]
  %.71576 = phi i32 [ %.pre2727, %._crit_edge2848 ], [ %.61575, %3549 ]
  %.131561 = phi i32 [ %.pre2725, %._crit_edge2848 ], [ %.121560, %3549 ]
  %.131544 = phi i32 [ %.pre2723, %._crit_edge2848 ], [ %.121543, %3549 ]
  %.101529 = phi i32 [ %.pre2721, %._crit_edge2848 ], [ %.91528, %3549 ]
  %.191517 = phi i32 [ %.pre2719, %._crit_edge2848 ], [ %.181516, %3549 ]
  %.201496 = phi i32 [ %.pre2717, %._crit_edge2848 ], [ %.191495, %3549 ]
  %.211474 = phi i32 [ %.pre2715, %._crit_edge2848 ], [ %.201473, %3549 ]
  %.171451 = phi i32 [ %.pre2713, %._crit_edge2848 ], [ %.161450, %3549 ]
  %.251430 = phi i32 [ %.pre2711, %._crit_edge2848 ], [ %.241429, %3549 ]
  %.31 = phi i32 [ %.pre, %._crit_edge2848 ], [ %.30, %3549 ]
  store i32 41, ptr %4, align 8, !tbaa !11
  %3577 = getelementptr inbounds i8, ptr %0, i64 36
  %3578 = icmp sgt i32 %.promoted2326, 0
  br i1 %3578, label %.._crit_edge2329_crit_edge, label %.lr.ph2328

.._crit_edge2329_crit_edge:                       ; preds = %3551
  %.phi.trans.insert2852 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2853 = load i32, ptr %.phi.trans.insert2852, align 8, !tbaa !37
  br label %._crit_edge2329

.lr.ph2328:                                       ; preds = %3551
  %3579 = load ptr, ptr %0, align 8, !tbaa !5
  %3580 = getelementptr inbounds i8, ptr %3579, i64 8
  %3581 = getelementptr inbounds i8, ptr %0, i64 32
  %3582 = getelementptr inbounds i8, ptr %3579, i64 12
  %3583 = getelementptr inbounds i8, ptr %3579, i64 16
  %.promoted2332 = load i32, ptr %3580, align 8, !tbaa !38
  br label %3590

._crit_edge2329:                                  ; preds = %3610, %.._crit_edge2329_crit_edge
  %3584 = phi i32 [ %.pre2853, %.._crit_edge2329_crit_edge ], [ %3600, %3610 ]
  %.lcssa2033 = phi i32 [ %.promoted2326, %.._crit_edge2329_crit_edge ], [ %3601, %3610 ]
  %3585 = add nsw i32 %.lcssa2033, -1
  %3586 = lshr i32 %3584, %3585
  %3587 = and i32 %3586, 1
  store i32 %3585, ptr %3577, align 4, !tbaa !12
  %3588 = shl i32 %.91673, 1
  %3589 = or disjoint i32 %3587, %3588
  br label %3518

3590:                                             ; preds = %.lr.ph2328, %3610
  %3591 = phi i32 [ %.promoted2332, %.lr.ph2328 ], [ %3603, %3610 ]
  %3592 = phi i32 [ %.promoted2326, %.lr.ph2328 ], [ %3601, %3610 ]
  %3593 = icmp eq i32 %3591, 0
  br i1 %3593, label %.loopexit, label %3594

3594:                                             ; preds = %3590
  %3595 = load i32, ptr %3581, align 8, !tbaa !37
  %3596 = shl i32 %3595, 8
  %3597 = load ptr, ptr %3579, align 8, !tbaa !40
  %3598 = load i8, ptr %3597, align 1, !tbaa !41
  %3599 = zext i8 %3598 to i32
  %3600 = or disjoint i32 %3596, %3599
  store i32 %3600, ptr %3581, align 8, !tbaa !37
  %3601 = add nsw i32 %3592, 8
  store i32 %3601, ptr %3577, align 4, !tbaa !12
  %3602 = getelementptr inbounds i8, ptr %3597, i64 1
  store ptr %3602, ptr %3579, align 8, !tbaa !40
  %3603 = add i32 %3591, -1
  store i32 %3603, ptr %3580, align 8, !tbaa !38
  %3604 = load i32, ptr %3582, align 4, !tbaa !42
  %3605 = add i32 %3604, 1
  store i32 %3605, ptr %3582, align 4, !tbaa !42
  %3606 = icmp eq i32 %3605, 0
  br i1 %3606, label %3607, label %3610

3607:                                             ; preds = %3594
  %3608 = load i32, ptr %3583, align 8, !tbaa !43
  %3609 = add i32 %3608, 1
  store i32 %3609, ptr %3583, align 8, !tbaa !43
  br label %3610

3610:                                             ; preds = %3607, %3594
  %3611 = icmp sgt i32 %3592, -8
  br i1 %3611, label %._crit_edge2329, label %3590

3612:                                             ; preds = %3545
  %3613 = getelementptr inbounds i32, ptr %.121743, i64 %3546
  %3614 = load i32, ptr %3613, align 4, !tbaa !76
  %3615 = sub nsw i32 %.81672, %3614
  %or.cond1880 = icmp ugt i32 %3615, 257
  br i1 %or.cond1880, label %.loopexit, label %3616

3616:                                             ; preds = %3612
  %3617 = zext nneg i32 %3615 to i64
  %3618 = getelementptr inbounds i32, ptr %.121758, i64 %3617
  %3619 = load i32, ptr %3618, align 4, !tbaa !76
  br label %.loopexit1913

3620:                                             ; preds = %.loopexit1913
  %3621 = getelementptr inbounds i8, ptr %0, i64 56
  %3622 = load i32, ptr %3621, align 8, !tbaa !56
  %3623 = icmp sgt i32 %3622, -1
  %.not1858 = icmp slt i32 %3622, %.31593
  %or.cond1881 = select i1 %3623, i1 %.not1858, i1 false
  br i1 %or.cond1881, label %.preheader1909, label %.loopexit

.preheader1909:                                   ; preds = %3620
  %3624 = getelementptr inbounds i8, ptr %0, i64 68
  br label %3625

3625:                                             ; preds = %3645, %.preheader1909
  %indvars.iv2667 = phi i64 [ 0, %.preheader1909 ], [ %indvars.iv.next2668.3, %3645 ]
  %3626 = getelementptr inbounds [256 x i32], ptr %3624, i64 0, i64 %indvars.iv2667
  %3627 = load i32, ptr %3626, align 4, !tbaa !76
  %3628 = icmp slt i32 %3627, 0
  %3629 = icmp sgt i32 %3627, %.31593
  %or.cond1882 = select i1 %3628, i1 true, i1 %3629
  br i1 %or.cond1882, label %.loopexit.loopexit2502, label %3630

3630:                                             ; preds = %3625
  %indvars.iv.next2668 = or disjoint i64 %indvars.iv2667, 1
  %3631 = getelementptr inbounds [256 x i32], ptr %3624, i64 0, i64 %indvars.iv.next2668
  %3632 = load i32, ptr %3631, align 4, !tbaa !76
  %3633 = icmp slt i32 %3632, 0
  %3634 = icmp sgt i32 %3632, %.31593
  %or.cond1882.1 = select i1 %3633, i1 true, i1 %3634
  br i1 %or.cond1882.1, label %.loopexit.loopexit2502, label %3635

3635:                                             ; preds = %3630
  %indvars.iv.next2668.1 = or disjoint i64 %indvars.iv2667, 2
  %3636 = getelementptr inbounds [256 x i32], ptr %3624, i64 0, i64 %indvars.iv.next2668.1
  %3637 = load i32, ptr %3636, align 4, !tbaa !76
  %3638 = icmp slt i32 %3637, 0
  %3639 = icmp sgt i32 %3637, %.31593
  %or.cond1882.2 = select i1 %3638, i1 true, i1 %3639
  br i1 %or.cond1882.2, label %.loopexit.loopexit2502, label %3640

3640:                                             ; preds = %3635
  %indvars.iv.next2668.2 = or disjoint i64 %indvars.iv2667, 3
  %3641 = getelementptr inbounds [256 x i32], ptr %3624, i64 0, i64 %indvars.iv.next2668.2
  %3642 = load i32, ptr %3641, align 4, !tbaa !76
  %3643 = icmp slt i32 %3642, 0
  %3644 = icmp sgt i32 %3642, %.31593
  %or.cond1882.3 = select i1 %3643, i1 true, i1 %3644
  br i1 %or.cond1882.3, label %.loopexit.loopexit2502, label %3645

3645:                                             ; preds = %3640
  %indvars.iv.next2668.3 = add nuw nsw i64 %indvars.iv2667, 4
  %exitcond2671.not.3 = icmp eq i64 %indvars.iv.next2668.3, 256
  br i1 %exitcond2671.not.3, label %vector.ph3342, label %3625, !llvm.loop !91

vector.ph3342:                                    ; preds = %3645
  %3646 = getelementptr inbounds i8, ptr %0, i64 1096
  store i32 0, ptr %3646, align 8, !tbaa !76
  %3647 = getelementptr inbounds i8, ptr %0, i64 84
  %wide.load3347 = load <4 x i32>, ptr %3624, align 4, !tbaa !76
  %wide.load3348 = load <4 x i32>, ptr %3647, align 4, !tbaa !76
  %3648 = getelementptr inbounds i8, ptr %0, i64 1100
  %3649 = getelementptr inbounds i8, ptr %0, i64 1116
  store <4 x i32> %wide.load3347, ptr %3648, align 4, !tbaa !76
  store <4 x i32> %wide.load3348, ptr %3649, align 4, !tbaa !76
  %3650 = getelementptr inbounds i8, ptr %0, i64 100
  %3651 = getelementptr inbounds i8, ptr %0, i64 116
  %wide.load3347.1 = load <4 x i32>, ptr %3650, align 4, !tbaa !76
  %wide.load3348.1 = load <4 x i32>, ptr %3651, align 4, !tbaa !76
  %3652 = getelementptr inbounds i8, ptr %0, i64 1132
  %3653 = getelementptr inbounds i8, ptr %0, i64 1148
  store <4 x i32> %wide.load3347.1, ptr %3652, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.1, ptr %3653, align 4, !tbaa !76
  %3654 = getelementptr inbounds i8, ptr %0, i64 132
  %3655 = getelementptr inbounds i8, ptr %0, i64 148
  %wide.load3347.2 = load <4 x i32>, ptr %3654, align 4, !tbaa !76
  %wide.load3348.2 = load <4 x i32>, ptr %3655, align 4, !tbaa !76
  %3656 = getelementptr inbounds i8, ptr %0, i64 1164
  %3657 = getelementptr inbounds i8, ptr %0, i64 1180
  store <4 x i32> %wide.load3347.2, ptr %3656, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.2, ptr %3657, align 4, !tbaa !76
  %3658 = getelementptr inbounds i8, ptr %0, i64 164
  %3659 = getelementptr inbounds i8, ptr %0, i64 180
  %wide.load3347.3 = load <4 x i32>, ptr %3658, align 4, !tbaa !76
  %wide.load3348.3 = load <4 x i32>, ptr %3659, align 4, !tbaa !76
  %3660 = getelementptr inbounds i8, ptr %0, i64 1196
  %3661 = getelementptr inbounds i8, ptr %0, i64 1212
  store <4 x i32> %wide.load3347.3, ptr %3660, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.3, ptr %3661, align 4, !tbaa !76
  %3662 = getelementptr inbounds i8, ptr %0, i64 196
  %3663 = getelementptr inbounds i8, ptr %0, i64 212
  %wide.load3347.4 = load <4 x i32>, ptr %3662, align 4, !tbaa !76
  %wide.load3348.4 = load <4 x i32>, ptr %3663, align 4, !tbaa !76
  %3664 = getelementptr inbounds i8, ptr %0, i64 1228
  %3665 = getelementptr inbounds i8, ptr %0, i64 1244
  store <4 x i32> %wide.load3347.4, ptr %3664, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.4, ptr %3665, align 4, !tbaa !76
  %3666 = getelementptr inbounds i8, ptr %0, i64 228
  %3667 = getelementptr inbounds i8, ptr %0, i64 244
  %wide.load3347.5 = load <4 x i32>, ptr %3666, align 4, !tbaa !76
  %wide.load3348.5 = load <4 x i32>, ptr %3667, align 4, !tbaa !76
  %3668 = getelementptr inbounds i8, ptr %0, i64 1260
  %3669 = getelementptr inbounds i8, ptr %0, i64 1276
  store <4 x i32> %wide.load3347.5, ptr %3668, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.5, ptr %3669, align 4, !tbaa !76
  %3670 = getelementptr inbounds i8, ptr %0, i64 260
  %3671 = getelementptr inbounds i8, ptr %0, i64 276
  %wide.load3347.6 = load <4 x i32>, ptr %3670, align 4, !tbaa !76
  %wide.load3348.6 = load <4 x i32>, ptr %3671, align 4, !tbaa !76
  %3672 = getelementptr inbounds i8, ptr %0, i64 1292
  %3673 = getelementptr inbounds i8, ptr %0, i64 1308
  store <4 x i32> %wide.load3347.6, ptr %3672, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.6, ptr %3673, align 4, !tbaa !76
  %3674 = getelementptr inbounds i8, ptr %0, i64 292
  %3675 = getelementptr inbounds i8, ptr %0, i64 308
  %wide.load3347.7 = load <4 x i32>, ptr %3674, align 4, !tbaa !76
  %wide.load3348.7 = load <4 x i32>, ptr %3675, align 4, !tbaa !76
  %3676 = getelementptr inbounds i8, ptr %0, i64 1324
  %3677 = getelementptr inbounds i8, ptr %0, i64 1340
  store <4 x i32> %wide.load3347.7, ptr %3676, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.7, ptr %3677, align 4, !tbaa !76
  %3678 = getelementptr inbounds i8, ptr %0, i64 324
  %3679 = getelementptr inbounds i8, ptr %0, i64 340
  %wide.load3347.8 = load <4 x i32>, ptr %3678, align 4, !tbaa !76
  %wide.load3348.8 = load <4 x i32>, ptr %3679, align 4, !tbaa !76
  %3680 = getelementptr inbounds i8, ptr %0, i64 1356
  %3681 = getelementptr inbounds i8, ptr %0, i64 1372
  store <4 x i32> %wide.load3347.8, ptr %3680, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.8, ptr %3681, align 4, !tbaa !76
  %3682 = getelementptr inbounds i8, ptr %0, i64 356
  %3683 = getelementptr inbounds i8, ptr %0, i64 372
  %wide.load3347.9 = load <4 x i32>, ptr %3682, align 4, !tbaa !76
  %wide.load3348.9 = load <4 x i32>, ptr %3683, align 4, !tbaa !76
  %3684 = getelementptr inbounds i8, ptr %0, i64 1388
  %3685 = getelementptr inbounds i8, ptr %0, i64 1404
  store <4 x i32> %wide.load3347.9, ptr %3684, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.9, ptr %3685, align 4, !tbaa !76
  %3686 = getelementptr inbounds i8, ptr %0, i64 388
  %3687 = getelementptr inbounds i8, ptr %0, i64 404
  %wide.load3347.10 = load <4 x i32>, ptr %3686, align 4, !tbaa !76
  %wide.load3348.10 = load <4 x i32>, ptr %3687, align 4, !tbaa !76
  %3688 = getelementptr inbounds i8, ptr %0, i64 1420
  %3689 = getelementptr inbounds i8, ptr %0, i64 1436
  store <4 x i32> %wide.load3347.10, ptr %3688, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.10, ptr %3689, align 4, !tbaa !76
  %3690 = getelementptr inbounds i8, ptr %0, i64 420
  %3691 = getelementptr inbounds i8, ptr %0, i64 436
  %wide.load3347.11 = load <4 x i32>, ptr %3690, align 4, !tbaa !76
  %wide.load3348.11 = load <4 x i32>, ptr %3691, align 4, !tbaa !76
  %3692 = getelementptr inbounds i8, ptr %0, i64 1452
  %3693 = getelementptr inbounds i8, ptr %0, i64 1468
  store <4 x i32> %wide.load3347.11, ptr %3692, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.11, ptr %3693, align 4, !tbaa !76
  %3694 = getelementptr inbounds i8, ptr %0, i64 452
  %3695 = getelementptr inbounds i8, ptr %0, i64 468
  %wide.load3347.12 = load <4 x i32>, ptr %3694, align 4, !tbaa !76
  %wide.load3348.12 = load <4 x i32>, ptr %3695, align 4, !tbaa !76
  %3696 = getelementptr inbounds i8, ptr %0, i64 1484
  %3697 = getelementptr inbounds i8, ptr %0, i64 1500
  store <4 x i32> %wide.load3347.12, ptr %3696, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.12, ptr %3697, align 4, !tbaa !76
  %3698 = getelementptr inbounds i8, ptr %0, i64 484
  %3699 = getelementptr inbounds i8, ptr %0, i64 500
  %wide.load3347.13 = load <4 x i32>, ptr %3698, align 4, !tbaa !76
  %wide.load3348.13 = load <4 x i32>, ptr %3699, align 4, !tbaa !76
  %3700 = getelementptr inbounds i8, ptr %0, i64 1516
  %3701 = getelementptr inbounds i8, ptr %0, i64 1532
  store <4 x i32> %wide.load3347.13, ptr %3700, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.13, ptr %3701, align 4, !tbaa !76
  %3702 = getelementptr inbounds i8, ptr %0, i64 516
  %3703 = getelementptr inbounds i8, ptr %0, i64 532
  %wide.load3347.14 = load <4 x i32>, ptr %3702, align 4, !tbaa !76
  %wide.load3348.14 = load <4 x i32>, ptr %3703, align 4, !tbaa !76
  %3704 = getelementptr inbounds i8, ptr %0, i64 1548
  %3705 = getelementptr inbounds i8, ptr %0, i64 1564
  store <4 x i32> %wide.load3347.14, ptr %3704, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.14, ptr %3705, align 4, !tbaa !76
  %3706 = getelementptr inbounds i8, ptr %0, i64 548
  %3707 = getelementptr inbounds i8, ptr %0, i64 564
  %wide.load3347.15 = load <4 x i32>, ptr %3706, align 4, !tbaa !76
  %wide.load3348.15 = load <4 x i32>, ptr %3707, align 4, !tbaa !76
  %3708 = getelementptr inbounds i8, ptr %0, i64 1580
  %3709 = getelementptr inbounds i8, ptr %0, i64 1596
  store <4 x i32> %wide.load3347.15, ptr %3708, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.15, ptr %3709, align 4, !tbaa !76
  %3710 = getelementptr inbounds i8, ptr %0, i64 580
  %3711 = getelementptr inbounds i8, ptr %0, i64 596
  %wide.load3347.16 = load <4 x i32>, ptr %3710, align 4, !tbaa !76
  %wide.load3348.16 = load <4 x i32>, ptr %3711, align 4, !tbaa !76
  %3712 = getelementptr inbounds i8, ptr %0, i64 1612
  %3713 = getelementptr inbounds i8, ptr %0, i64 1628
  store <4 x i32> %wide.load3347.16, ptr %3712, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.16, ptr %3713, align 4, !tbaa !76
  %3714 = getelementptr inbounds i8, ptr %0, i64 612
  %3715 = getelementptr inbounds i8, ptr %0, i64 628
  %wide.load3347.17 = load <4 x i32>, ptr %3714, align 4, !tbaa !76
  %wide.load3348.17 = load <4 x i32>, ptr %3715, align 4, !tbaa !76
  %3716 = getelementptr inbounds i8, ptr %0, i64 1644
  %3717 = getelementptr inbounds i8, ptr %0, i64 1660
  store <4 x i32> %wide.load3347.17, ptr %3716, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.17, ptr %3717, align 4, !tbaa !76
  %3718 = getelementptr inbounds i8, ptr %0, i64 644
  %3719 = getelementptr inbounds i8, ptr %0, i64 660
  %wide.load3347.18 = load <4 x i32>, ptr %3718, align 4, !tbaa !76
  %wide.load3348.18 = load <4 x i32>, ptr %3719, align 4, !tbaa !76
  %3720 = getelementptr inbounds i8, ptr %0, i64 1676
  %3721 = getelementptr inbounds i8, ptr %0, i64 1692
  store <4 x i32> %wide.load3347.18, ptr %3720, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.18, ptr %3721, align 4, !tbaa !76
  %3722 = getelementptr inbounds i8, ptr %0, i64 676
  %3723 = getelementptr inbounds i8, ptr %0, i64 692
  %wide.load3347.19 = load <4 x i32>, ptr %3722, align 4, !tbaa !76
  %wide.load3348.19 = load <4 x i32>, ptr %3723, align 4, !tbaa !76
  %3724 = getelementptr inbounds i8, ptr %0, i64 1708
  %3725 = getelementptr inbounds i8, ptr %0, i64 1724
  store <4 x i32> %wide.load3347.19, ptr %3724, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.19, ptr %3725, align 4, !tbaa !76
  %3726 = getelementptr inbounds i8, ptr %0, i64 708
  %3727 = getelementptr inbounds i8, ptr %0, i64 724
  %wide.load3347.20 = load <4 x i32>, ptr %3726, align 4, !tbaa !76
  %wide.load3348.20 = load <4 x i32>, ptr %3727, align 4, !tbaa !76
  %3728 = getelementptr inbounds i8, ptr %0, i64 1740
  %3729 = getelementptr inbounds i8, ptr %0, i64 1756
  store <4 x i32> %wide.load3347.20, ptr %3728, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.20, ptr %3729, align 4, !tbaa !76
  %3730 = getelementptr inbounds i8, ptr %0, i64 740
  %3731 = getelementptr inbounds i8, ptr %0, i64 756
  %wide.load3347.21 = load <4 x i32>, ptr %3730, align 4, !tbaa !76
  %wide.load3348.21 = load <4 x i32>, ptr %3731, align 4, !tbaa !76
  %3732 = getelementptr inbounds i8, ptr %0, i64 1772
  %3733 = getelementptr inbounds i8, ptr %0, i64 1788
  store <4 x i32> %wide.load3347.21, ptr %3732, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.21, ptr %3733, align 4, !tbaa !76
  %3734 = getelementptr inbounds i8, ptr %0, i64 772
  %3735 = getelementptr inbounds i8, ptr %0, i64 788
  %wide.load3347.22 = load <4 x i32>, ptr %3734, align 4, !tbaa !76
  %wide.load3348.22 = load <4 x i32>, ptr %3735, align 4, !tbaa !76
  %3736 = getelementptr inbounds i8, ptr %0, i64 1804
  %3737 = getelementptr inbounds i8, ptr %0, i64 1820
  store <4 x i32> %wide.load3347.22, ptr %3736, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.22, ptr %3737, align 4, !tbaa !76
  %3738 = getelementptr inbounds i8, ptr %0, i64 804
  %3739 = getelementptr inbounds i8, ptr %0, i64 820
  %wide.load3347.23 = load <4 x i32>, ptr %3738, align 4, !tbaa !76
  %wide.load3348.23 = load <4 x i32>, ptr %3739, align 4, !tbaa !76
  %3740 = getelementptr inbounds i8, ptr %0, i64 1836
  %3741 = getelementptr inbounds i8, ptr %0, i64 1852
  store <4 x i32> %wide.load3347.23, ptr %3740, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.23, ptr %3741, align 4, !tbaa !76
  %3742 = getelementptr inbounds i8, ptr %0, i64 836
  %3743 = getelementptr inbounds i8, ptr %0, i64 852
  %wide.load3347.24 = load <4 x i32>, ptr %3742, align 4, !tbaa !76
  %wide.load3348.24 = load <4 x i32>, ptr %3743, align 4, !tbaa !76
  %3744 = getelementptr inbounds i8, ptr %0, i64 1868
  %3745 = getelementptr inbounds i8, ptr %0, i64 1884
  store <4 x i32> %wide.load3347.24, ptr %3744, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.24, ptr %3745, align 4, !tbaa !76
  %3746 = getelementptr inbounds i8, ptr %0, i64 868
  %3747 = getelementptr inbounds i8, ptr %0, i64 884
  %wide.load3347.25 = load <4 x i32>, ptr %3746, align 4, !tbaa !76
  %wide.load3348.25 = load <4 x i32>, ptr %3747, align 4, !tbaa !76
  %3748 = getelementptr inbounds i8, ptr %0, i64 1900
  %3749 = getelementptr inbounds i8, ptr %0, i64 1916
  store <4 x i32> %wide.load3347.25, ptr %3748, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.25, ptr %3749, align 4, !tbaa !76
  %3750 = getelementptr inbounds i8, ptr %0, i64 900
  %3751 = getelementptr inbounds i8, ptr %0, i64 916
  %wide.load3347.26 = load <4 x i32>, ptr %3750, align 4, !tbaa !76
  %wide.load3348.26 = load <4 x i32>, ptr %3751, align 4, !tbaa !76
  %3752 = getelementptr inbounds i8, ptr %0, i64 1932
  %3753 = getelementptr inbounds i8, ptr %0, i64 1948
  store <4 x i32> %wide.load3347.26, ptr %3752, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.26, ptr %3753, align 4, !tbaa !76
  %3754 = getelementptr inbounds i8, ptr %0, i64 932
  %3755 = getelementptr inbounds i8, ptr %0, i64 948
  %wide.load3347.27 = load <4 x i32>, ptr %3754, align 4, !tbaa !76
  %wide.load3348.27 = load <4 x i32>, ptr %3755, align 4, !tbaa !76
  %3756 = getelementptr inbounds i8, ptr %0, i64 1964
  %3757 = getelementptr inbounds i8, ptr %0, i64 1980
  store <4 x i32> %wide.load3347.27, ptr %3756, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.27, ptr %3757, align 4, !tbaa !76
  %3758 = getelementptr inbounds i8, ptr %0, i64 964
  %3759 = getelementptr inbounds i8, ptr %0, i64 980
  %wide.load3347.28 = load <4 x i32>, ptr %3758, align 4, !tbaa !76
  %wide.load3348.28 = load <4 x i32>, ptr %3759, align 4, !tbaa !76
  %3760 = getelementptr inbounds i8, ptr %0, i64 1996
  %3761 = getelementptr inbounds i8, ptr %0, i64 2012
  store <4 x i32> %wide.load3347.28, ptr %3760, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.28, ptr %3761, align 4, !tbaa !76
  %3762 = getelementptr inbounds i8, ptr %0, i64 996
  %3763 = getelementptr inbounds i8, ptr %0, i64 1012
  %wide.load3347.29 = load <4 x i32>, ptr %3762, align 4, !tbaa !76
  %wide.load3348.29 = load <4 x i32>, ptr %3763, align 4, !tbaa !76
  %3764 = getelementptr inbounds i8, ptr %0, i64 2028
  %3765 = getelementptr inbounds i8, ptr %0, i64 2044
  store <4 x i32> %wide.load3347.29, ptr %3764, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.29, ptr %3765, align 4, !tbaa !76
  %3766 = getelementptr inbounds i8, ptr %0, i64 1028
  %3767 = getelementptr inbounds i8, ptr %0, i64 1044
  %wide.load3347.30 = load <4 x i32>, ptr %3766, align 4, !tbaa !76
  %wide.load3348.30 = load <4 x i32>, ptr %3767, align 4, !tbaa !76
  %3768 = getelementptr inbounds i8, ptr %0, i64 2060
  %3769 = getelementptr inbounds i8, ptr %0, i64 2076
  store <4 x i32> %wide.load3347.30, ptr %3768, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.30, ptr %3769, align 4, !tbaa !76
  %3770 = getelementptr inbounds i8, ptr %0, i64 1060
  %3771 = getelementptr inbounds i8, ptr %0, i64 1076
  %wide.load3347.31 = load <4 x i32>, ptr %3770, align 4, !tbaa !76
  %wide.load3348.31 = load <4 x i32>, ptr %3771, align 4, !tbaa !76
  %3772 = getelementptr inbounds i8, ptr %0, i64 2092
  %3773 = getelementptr inbounds i8, ptr %0, i64 2108
  store <4 x i32> %wide.load3347.31, ptr %3772, align 4, !tbaa !76
  store <4 x i32> %wide.load3348.31, ptr %3773, align 4, !tbaa !76
  br label %.preheader1908

.preheader1908:                                   ; preds = %.preheader1908, %vector.ph3342
  %3774 = phi i32 [ 0, %vector.ph3342 ], [ %3786, %.preheader1908 ]
  %indvars.iv2677 = phi i64 [ 1, %vector.ph3342 ], [ %indvars.iv.next2678.3, %.preheader1908 ]
  %3775 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv2677
  %3776 = load i32, ptr %3775, align 4, !tbaa !76
  %3777 = add nsw i32 %3776, %3774
  store i32 %3777, ptr %3775, align 4, !tbaa !76
  %indvars.iv.next2678 = add nuw nsw i64 %indvars.iv2677, 1
  %3778 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2678
  %3779 = load i32, ptr %3778, align 4, !tbaa !76
  %3780 = add nsw i32 %3779, %3777
  store i32 %3780, ptr %3778, align 4, !tbaa !76
  %indvars.iv.next2678.1 = add nuw nsw i64 %indvars.iv2677, 2
  %3781 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2678.1
  %3782 = load i32, ptr %3781, align 4, !tbaa !76
  %3783 = add nsw i32 %3782, %3780
  store i32 %3783, ptr %3781, align 4, !tbaa !76
  %indvars.iv.next2678.2 = add nuw nsw i64 %indvars.iv2677, 3
  %3784 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2678.2
  %3785 = load i32, ptr %3784, align 4, !tbaa !76
  %3786 = add nsw i32 %3785, %3783
  store i32 %3786, ptr %3784, align 4, !tbaa !76
  %indvars.iv.next2678.3 = add nuw nsw i64 %indvars.iv2677, 4
  %exitcond2681.not.3 = icmp eq i64 %indvars.iv.next2678.3, 257
  br i1 %exitcond2681.not.3, label %.preheader1906, label %.preheader1908, !llvm.loop !92

.preheader1906:                                   ; preds = %.preheader1908, %3804
  %indvars.iv2682 = phi i64 [ %indvars.iv.next2683.3, %3804 ], [ 0, %.preheader1908 ]
  %3787 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv2682
  %3788 = load i32, ptr %3787, align 4, !tbaa !76
  %3789 = icmp slt i32 %3788, 0
  %3790 = icmp sgt i32 %3788, %.31593
  %or.cond1883 = select i1 %3789, i1 true, i1 %3790
  br i1 %or.cond1883, label %.loopexit.loopexit2501, label %3791

3791:                                             ; preds = %.preheader1906
  %exitcond2686.not = icmp eq i64 %indvars.iv2682, 256
  br i1 %exitcond2686.not, label %.preheader1904, label %.preheader1906.1, !llvm.loop !93

.preheader1906.1:                                 ; preds = %3791
  %indvars.iv.next2683 = or disjoint i64 %indvars.iv2682, 1
  %3792 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2683
  %3793 = load i32, ptr %3792, align 4, !tbaa !76
  %3794 = icmp slt i32 %3793, 0
  %3795 = icmp sgt i32 %3793, %.31593
  %or.cond1883.1 = select i1 %3794, i1 true, i1 %3795
  br i1 %or.cond1883.1, label %.loopexit.loopexit2501, label %.preheader1906.2

.preheader1906.2:                                 ; preds = %.preheader1906.1
  %indvars.iv.next2683.1 = or disjoint i64 %indvars.iv2682, 2
  %3796 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2683.1
  %3797 = load i32, ptr %3796, align 4, !tbaa !76
  %3798 = icmp slt i32 %3797, 0
  %3799 = icmp sgt i32 %3797, %.31593
  %or.cond1883.2 = select i1 %3798, i1 true, i1 %3799
  br i1 %or.cond1883.2, label %.loopexit.loopexit2501, label %.preheader1906.3

.preheader1906.3:                                 ; preds = %.preheader1906.2
  %indvars.iv.next2683.2 = or disjoint i64 %indvars.iv2682, 3
  %3800 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2683.2
  %3801 = load i32, ptr %3800, align 4, !tbaa !76
  %3802 = icmp slt i32 %3801, 0
  %3803 = icmp sgt i32 %3801, %.31593
  %or.cond1883.3 = select i1 %3802, i1 true, i1 %3803
  br i1 %or.cond1883.3, label %.loopexit.loopexit2501, label %3804

3804:                                             ; preds = %.preheader1906.3
  %indvars.iv.next2683.3 = add nuw nsw i64 %indvars.iv2682, 4
  br label %.preheader1906

.preheader1904:                                   ; preds = %3791, %3818
  %3805 = phi i32 [ %3816, %3818 ], [ 0, %3791 ]
  %indvars.iv2687 = phi i64 [ %indvars.iv.next2688.3, %3818 ], [ 1, %3791 ]
  %3806 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv2687
  %3807 = load i32, ptr %3806, align 4, !tbaa !76
  %3808 = icmp sgt i32 %3805, %3807
  br i1 %3808, label %.loopexit.loopexit2500, label %.preheader1904.1

.preheader1904.1:                                 ; preds = %.preheader1904
  %indvars.iv.next2688 = add nuw nsw i64 %indvars.iv2687, 1
  %3809 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2688
  %3810 = load i32, ptr %3809, align 4, !tbaa !76
  %3811 = icmp sgt i32 %3807, %3810
  br i1 %3811, label %.loopexit.loopexit2500, label %.preheader1904.2

.preheader1904.2:                                 ; preds = %.preheader1904.1
  %indvars.iv.next2688.1 = add nuw nsw i64 %indvars.iv2687, 2
  %3812 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2688.1
  %3813 = load i32, ptr %3812, align 4, !tbaa !76
  %3814 = icmp sgt i32 %3810, %3813
  br i1 %3814, label %.loopexit.loopexit2500, label %.preheader1904.3

.preheader1904.3:                                 ; preds = %.preheader1904.2
  %indvars.iv.next2688.2 = add nuw nsw i64 %indvars.iv2687, 3
  %3815 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %indvars.iv.next2688.2
  %3816 = load i32, ptr %3815, align 4, !tbaa !76
  %3817 = icmp sgt i32 %3813, %3816
  br i1 %3817, label %.loopexit.loopexit2500, label %3818

3818:                                             ; preds = %.preheader1904.3
  %indvars.iv.next2688.3 = add nuw nsw i64 %indvars.iv2687, 4
  %exitcond2691.not.3 = icmp eq i64 %indvars.iv.next2688.3, 257
  br i1 %exitcond2691.not.3, label %3819, label %.preheader1904, !llvm.loop !94

3819:                                             ; preds = %3818
  %3820 = getelementptr inbounds i8, ptr %0, i64 16
  store i32 0, ptr %3820, align 8, !tbaa !95
  %3821 = getelementptr inbounds i8, ptr %0, i64 12
  store i8 0, ptr %3821, align 4, !tbaa !96
  %3822 = getelementptr inbounds i8, ptr %0, i64 3184
  store i32 -1, ptr %3822, align 8, !tbaa !97
  store i32 2, ptr %4, align 8, !tbaa !11
  %3823 = getelementptr inbounds i8, ptr %0, i64 52
  %3824 = load i32, ptr %3823, align 4, !tbaa !52
  %3825 = icmp sgt i32 %3824, 1
  br i1 %3825, label %3826, label %3829

3826:                                             ; preds = %3819
  %3827 = load ptr, ptr @stderr, align 8, !tbaa !53
  %3828 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3827, ptr noundef nonnull @.str.1) #7
  br label %3829

3829:                                             ; preds = %3826, %3819
  %3830 = getelementptr inbounds i8, ptr %0, i64 44
  %3831 = load i8, ptr %3830, align 4, !tbaa !45
  %.not1859 = icmp eq i8 %3831, 0
  br i1 %.not1859, label %.preheader, label %.preheader1903

.preheader1903:                                   ; preds = %3829
  %3832 = getelementptr inbounds i8, ptr %0, i64 2124
  %3833 = getelementptr inbounds i8, ptr %0, i64 1112
  %wide.load3356 = load <4 x i32>, ptr %3646, align 4, !tbaa !76
  %wide.load3357 = load <4 x i32>, ptr %3833, align 4, !tbaa !76
  %3834 = getelementptr inbounds i8, ptr %0, i64 2140
  store <4 x i32> %wide.load3356, ptr %3832, align 4, !tbaa !76
  store <4 x i32> %wide.load3357, ptr %3834, align 4, !tbaa !76
  %3835 = getelementptr inbounds i8, ptr %0, i64 1128
  %3836 = getelementptr inbounds i8, ptr %0, i64 1144
  %wide.load3356.1 = load <4 x i32>, ptr %3835, align 4, !tbaa !76
  %wide.load3357.1 = load <4 x i32>, ptr %3836, align 4, !tbaa !76
  %3837 = getelementptr inbounds i8, ptr %0, i64 2156
  %3838 = getelementptr inbounds i8, ptr %0, i64 2172
  store <4 x i32> %wide.load3356.1, ptr %3837, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.1, ptr %3838, align 4, !tbaa !76
  %3839 = getelementptr inbounds i8, ptr %0, i64 1160
  %3840 = getelementptr inbounds i8, ptr %0, i64 1176
  %wide.load3356.2 = load <4 x i32>, ptr %3839, align 4, !tbaa !76
  %wide.load3357.2 = load <4 x i32>, ptr %3840, align 4, !tbaa !76
  %3841 = getelementptr inbounds i8, ptr %0, i64 2188
  %3842 = getelementptr inbounds i8, ptr %0, i64 2204
  store <4 x i32> %wide.load3356.2, ptr %3841, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.2, ptr %3842, align 4, !tbaa !76
  %3843 = getelementptr inbounds i8, ptr %0, i64 1192
  %3844 = getelementptr inbounds i8, ptr %0, i64 1208
  %wide.load3356.3 = load <4 x i32>, ptr %3843, align 4, !tbaa !76
  %wide.load3357.3 = load <4 x i32>, ptr %3844, align 4, !tbaa !76
  %3845 = getelementptr inbounds i8, ptr %0, i64 2220
  %3846 = getelementptr inbounds i8, ptr %0, i64 2236
  store <4 x i32> %wide.load3356.3, ptr %3845, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.3, ptr %3846, align 4, !tbaa !76
  %3847 = getelementptr inbounds i8, ptr %0, i64 1224
  %3848 = getelementptr inbounds i8, ptr %0, i64 1240
  %wide.load3356.4 = load <4 x i32>, ptr %3847, align 4, !tbaa !76
  %wide.load3357.4 = load <4 x i32>, ptr %3848, align 4, !tbaa !76
  %3849 = getelementptr inbounds i8, ptr %0, i64 2252
  %3850 = getelementptr inbounds i8, ptr %0, i64 2268
  store <4 x i32> %wide.load3356.4, ptr %3849, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.4, ptr %3850, align 4, !tbaa !76
  %3851 = getelementptr inbounds i8, ptr %0, i64 1256
  %3852 = getelementptr inbounds i8, ptr %0, i64 1272
  %wide.load3356.5 = load <4 x i32>, ptr %3851, align 4, !tbaa !76
  %wide.load3357.5 = load <4 x i32>, ptr %3852, align 4, !tbaa !76
  %3853 = getelementptr inbounds i8, ptr %0, i64 2284
  %3854 = getelementptr inbounds i8, ptr %0, i64 2300
  store <4 x i32> %wide.load3356.5, ptr %3853, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.5, ptr %3854, align 4, !tbaa !76
  %3855 = getelementptr inbounds i8, ptr %0, i64 1288
  %3856 = getelementptr inbounds i8, ptr %0, i64 1304
  %wide.load3356.6 = load <4 x i32>, ptr %3855, align 4, !tbaa !76
  %wide.load3357.6 = load <4 x i32>, ptr %3856, align 4, !tbaa !76
  %3857 = getelementptr inbounds i8, ptr %0, i64 2316
  %3858 = getelementptr inbounds i8, ptr %0, i64 2332
  store <4 x i32> %wide.load3356.6, ptr %3857, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.6, ptr %3858, align 4, !tbaa !76
  %3859 = getelementptr inbounds i8, ptr %0, i64 1320
  %3860 = getelementptr inbounds i8, ptr %0, i64 1336
  %wide.load3356.7 = load <4 x i32>, ptr %3859, align 4, !tbaa !76
  %wide.load3357.7 = load <4 x i32>, ptr %3860, align 4, !tbaa !76
  %3861 = getelementptr inbounds i8, ptr %0, i64 2348
  %3862 = getelementptr inbounds i8, ptr %0, i64 2364
  store <4 x i32> %wide.load3356.7, ptr %3861, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.7, ptr %3862, align 4, !tbaa !76
  %3863 = getelementptr inbounds i8, ptr %0, i64 1352
  %3864 = getelementptr inbounds i8, ptr %0, i64 1368
  %wide.load3356.8 = load <4 x i32>, ptr %3863, align 4, !tbaa !76
  %wide.load3357.8 = load <4 x i32>, ptr %3864, align 4, !tbaa !76
  %3865 = getelementptr inbounds i8, ptr %0, i64 2380
  %3866 = getelementptr inbounds i8, ptr %0, i64 2396
  store <4 x i32> %wide.load3356.8, ptr %3865, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.8, ptr %3866, align 4, !tbaa !76
  %3867 = getelementptr inbounds i8, ptr %0, i64 1384
  %3868 = getelementptr inbounds i8, ptr %0, i64 1400
  %wide.load3356.9 = load <4 x i32>, ptr %3867, align 4, !tbaa !76
  %wide.load3357.9 = load <4 x i32>, ptr %3868, align 4, !tbaa !76
  %3869 = getelementptr inbounds i8, ptr %0, i64 2412
  %3870 = getelementptr inbounds i8, ptr %0, i64 2428
  store <4 x i32> %wide.load3356.9, ptr %3869, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.9, ptr %3870, align 4, !tbaa !76
  %3871 = getelementptr inbounds i8, ptr %0, i64 1416
  %3872 = getelementptr inbounds i8, ptr %0, i64 1432
  %wide.load3356.10 = load <4 x i32>, ptr %3871, align 4, !tbaa !76
  %wide.load3357.10 = load <4 x i32>, ptr %3872, align 4, !tbaa !76
  %3873 = getelementptr inbounds i8, ptr %0, i64 2444
  %3874 = getelementptr inbounds i8, ptr %0, i64 2460
  store <4 x i32> %wide.load3356.10, ptr %3873, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.10, ptr %3874, align 4, !tbaa !76
  %3875 = getelementptr inbounds i8, ptr %0, i64 1448
  %3876 = getelementptr inbounds i8, ptr %0, i64 1464
  %wide.load3356.11 = load <4 x i32>, ptr %3875, align 4, !tbaa !76
  %wide.load3357.11 = load <4 x i32>, ptr %3876, align 4, !tbaa !76
  %3877 = getelementptr inbounds i8, ptr %0, i64 2476
  %3878 = getelementptr inbounds i8, ptr %0, i64 2492
  store <4 x i32> %wide.load3356.11, ptr %3877, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.11, ptr %3878, align 4, !tbaa !76
  %3879 = getelementptr inbounds i8, ptr %0, i64 1480
  %3880 = getelementptr inbounds i8, ptr %0, i64 1496
  %wide.load3356.12 = load <4 x i32>, ptr %3879, align 4, !tbaa !76
  %wide.load3357.12 = load <4 x i32>, ptr %3880, align 4, !tbaa !76
  %3881 = getelementptr inbounds i8, ptr %0, i64 2508
  %3882 = getelementptr inbounds i8, ptr %0, i64 2524
  store <4 x i32> %wide.load3356.12, ptr %3881, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.12, ptr %3882, align 4, !tbaa !76
  %3883 = getelementptr inbounds i8, ptr %0, i64 1512
  %3884 = getelementptr inbounds i8, ptr %0, i64 1528
  %wide.load3356.13 = load <4 x i32>, ptr %3883, align 4, !tbaa !76
  %wide.load3357.13 = load <4 x i32>, ptr %3884, align 4, !tbaa !76
  %3885 = getelementptr inbounds i8, ptr %0, i64 2540
  %3886 = getelementptr inbounds i8, ptr %0, i64 2556
  store <4 x i32> %wide.load3356.13, ptr %3885, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.13, ptr %3886, align 4, !tbaa !76
  %3887 = getelementptr inbounds i8, ptr %0, i64 1544
  %3888 = getelementptr inbounds i8, ptr %0, i64 1560
  %wide.load3356.14 = load <4 x i32>, ptr %3887, align 4, !tbaa !76
  %wide.load3357.14 = load <4 x i32>, ptr %3888, align 4, !tbaa !76
  %3889 = getelementptr inbounds i8, ptr %0, i64 2572
  %3890 = getelementptr inbounds i8, ptr %0, i64 2588
  store <4 x i32> %wide.load3356.14, ptr %3889, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.14, ptr %3890, align 4, !tbaa !76
  %3891 = getelementptr inbounds i8, ptr %0, i64 1576
  %3892 = getelementptr inbounds i8, ptr %0, i64 1592
  %wide.load3356.15 = load <4 x i32>, ptr %3891, align 4, !tbaa !76
  %wide.load3357.15 = load <4 x i32>, ptr %3892, align 4, !tbaa !76
  %3893 = getelementptr inbounds i8, ptr %0, i64 2604
  %3894 = getelementptr inbounds i8, ptr %0, i64 2620
  store <4 x i32> %wide.load3356.15, ptr %3893, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.15, ptr %3894, align 4, !tbaa !76
  %3895 = getelementptr inbounds i8, ptr %0, i64 1608
  %3896 = getelementptr inbounds i8, ptr %0, i64 1624
  %wide.load3356.16 = load <4 x i32>, ptr %3895, align 4, !tbaa !76
  %wide.load3357.16 = load <4 x i32>, ptr %3896, align 4, !tbaa !76
  %3897 = getelementptr inbounds i8, ptr %0, i64 2636
  %3898 = getelementptr inbounds i8, ptr %0, i64 2652
  store <4 x i32> %wide.load3356.16, ptr %3897, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.16, ptr %3898, align 4, !tbaa !76
  %3899 = getelementptr inbounds i8, ptr %0, i64 1640
  %3900 = getelementptr inbounds i8, ptr %0, i64 1656
  %wide.load3356.17 = load <4 x i32>, ptr %3899, align 4, !tbaa !76
  %wide.load3357.17 = load <4 x i32>, ptr %3900, align 4, !tbaa !76
  %3901 = getelementptr inbounds i8, ptr %0, i64 2668
  %3902 = getelementptr inbounds i8, ptr %0, i64 2684
  store <4 x i32> %wide.load3356.17, ptr %3901, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.17, ptr %3902, align 4, !tbaa !76
  %3903 = getelementptr inbounds i8, ptr %0, i64 1672
  %3904 = getelementptr inbounds i8, ptr %0, i64 1688
  %wide.load3356.18 = load <4 x i32>, ptr %3903, align 4, !tbaa !76
  %wide.load3357.18 = load <4 x i32>, ptr %3904, align 4, !tbaa !76
  %3905 = getelementptr inbounds i8, ptr %0, i64 2700
  %3906 = getelementptr inbounds i8, ptr %0, i64 2716
  store <4 x i32> %wide.load3356.18, ptr %3905, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.18, ptr %3906, align 4, !tbaa !76
  %3907 = getelementptr inbounds i8, ptr %0, i64 1704
  %3908 = getelementptr inbounds i8, ptr %0, i64 1720
  %wide.load3356.19 = load <4 x i32>, ptr %3907, align 4, !tbaa !76
  %wide.load3357.19 = load <4 x i32>, ptr %3908, align 4, !tbaa !76
  %3909 = getelementptr inbounds i8, ptr %0, i64 2732
  %3910 = getelementptr inbounds i8, ptr %0, i64 2748
  store <4 x i32> %wide.load3356.19, ptr %3909, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.19, ptr %3910, align 4, !tbaa !76
  %3911 = getelementptr inbounds i8, ptr %0, i64 1736
  %3912 = getelementptr inbounds i8, ptr %0, i64 1752
  %wide.load3356.20 = load <4 x i32>, ptr %3911, align 4, !tbaa !76
  %wide.load3357.20 = load <4 x i32>, ptr %3912, align 4, !tbaa !76
  %3913 = getelementptr inbounds i8, ptr %0, i64 2764
  %3914 = getelementptr inbounds i8, ptr %0, i64 2780
  store <4 x i32> %wide.load3356.20, ptr %3913, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.20, ptr %3914, align 4, !tbaa !76
  %3915 = getelementptr inbounds i8, ptr %0, i64 1768
  %3916 = getelementptr inbounds i8, ptr %0, i64 1784
  %wide.load3356.21 = load <4 x i32>, ptr %3915, align 4, !tbaa !76
  %wide.load3357.21 = load <4 x i32>, ptr %3916, align 4, !tbaa !76
  %3917 = getelementptr inbounds i8, ptr %0, i64 2796
  %3918 = getelementptr inbounds i8, ptr %0, i64 2812
  store <4 x i32> %wide.load3356.21, ptr %3917, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.21, ptr %3918, align 4, !tbaa !76
  %3919 = getelementptr inbounds i8, ptr %0, i64 1800
  %3920 = getelementptr inbounds i8, ptr %0, i64 1816
  %wide.load3356.22 = load <4 x i32>, ptr %3919, align 4, !tbaa !76
  %wide.load3357.22 = load <4 x i32>, ptr %3920, align 4, !tbaa !76
  %3921 = getelementptr inbounds i8, ptr %0, i64 2828
  %3922 = getelementptr inbounds i8, ptr %0, i64 2844
  store <4 x i32> %wide.load3356.22, ptr %3921, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.22, ptr %3922, align 4, !tbaa !76
  %3923 = getelementptr inbounds i8, ptr %0, i64 1832
  %3924 = getelementptr inbounds i8, ptr %0, i64 1848
  %wide.load3356.23 = load <4 x i32>, ptr %3923, align 4, !tbaa !76
  %wide.load3357.23 = load <4 x i32>, ptr %3924, align 4, !tbaa !76
  %3925 = getelementptr inbounds i8, ptr %0, i64 2860
  %3926 = getelementptr inbounds i8, ptr %0, i64 2876
  store <4 x i32> %wide.load3356.23, ptr %3925, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.23, ptr %3926, align 4, !tbaa !76
  %3927 = getelementptr inbounds i8, ptr %0, i64 1864
  %3928 = getelementptr inbounds i8, ptr %0, i64 1880
  %wide.load3356.24 = load <4 x i32>, ptr %3927, align 4, !tbaa !76
  %wide.load3357.24 = load <4 x i32>, ptr %3928, align 4, !tbaa !76
  %3929 = getelementptr inbounds i8, ptr %0, i64 2892
  %3930 = getelementptr inbounds i8, ptr %0, i64 2908
  store <4 x i32> %wide.load3356.24, ptr %3929, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.24, ptr %3930, align 4, !tbaa !76
  %3931 = getelementptr inbounds i8, ptr %0, i64 1896
  %3932 = getelementptr inbounds i8, ptr %0, i64 1912
  %wide.load3356.25 = load <4 x i32>, ptr %3931, align 4, !tbaa !76
  %wide.load3357.25 = load <4 x i32>, ptr %3932, align 4, !tbaa !76
  %3933 = getelementptr inbounds i8, ptr %0, i64 2924
  %3934 = getelementptr inbounds i8, ptr %0, i64 2940
  store <4 x i32> %wide.load3356.25, ptr %3933, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.25, ptr %3934, align 4, !tbaa !76
  %3935 = getelementptr inbounds i8, ptr %0, i64 1928
  %3936 = getelementptr inbounds i8, ptr %0, i64 1944
  %wide.load3356.26 = load <4 x i32>, ptr %3935, align 4, !tbaa !76
  %wide.load3357.26 = load <4 x i32>, ptr %3936, align 4, !tbaa !76
  %3937 = getelementptr inbounds i8, ptr %0, i64 2956
  %3938 = getelementptr inbounds i8, ptr %0, i64 2972
  store <4 x i32> %wide.load3356.26, ptr %3937, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.26, ptr %3938, align 4, !tbaa !76
  %3939 = getelementptr inbounds i8, ptr %0, i64 1960
  %3940 = getelementptr inbounds i8, ptr %0, i64 1976
  %wide.load3356.27 = load <4 x i32>, ptr %3939, align 4, !tbaa !76
  %wide.load3357.27 = load <4 x i32>, ptr %3940, align 4, !tbaa !76
  %3941 = getelementptr inbounds i8, ptr %0, i64 2988
  %3942 = getelementptr inbounds i8, ptr %0, i64 3004
  store <4 x i32> %wide.load3356.27, ptr %3941, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.27, ptr %3942, align 4, !tbaa !76
  %3943 = getelementptr inbounds i8, ptr %0, i64 1992
  %3944 = getelementptr inbounds i8, ptr %0, i64 2008
  %wide.load3356.28 = load <4 x i32>, ptr %3943, align 4, !tbaa !76
  %wide.load3357.28 = load <4 x i32>, ptr %3944, align 4, !tbaa !76
  %3945 = getelementptr inbounds i8, ptr %0, i64 3020
  %3946 = getelementptr inbounds i8, ptr %0, i64 3036
  store <4 x i32> %wide.load3356.28, ptr %3945, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.28, ptr %3946, align 4, !tbaa !76
  %3947 = getelementptr inbounds i8, ptr %0, i64 2024
  %3948 = getelementptr inbounds i8, ptr %0, i64 2040
  %wide.load3356.29 = load <4 x i32>, ptr %3947, align 4, !tbaa !76
  %wide.load3357.29 = load <4 x i32>, ptr %3948, align 4, !tbaa !76
  %3949 = getelementptr inbounds i8, ptr %0, i64 3052
  %3950 = getelementptr inbounds i8, ptr %0, i64 3068
  store <4 x i32> %wide.load3356.29, ptr %3949, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.29, ptr %3950, align 4, !tbaa !76
  %3951 = getelementptr inbounds i8, ptr %0, i64 2056
  %3952 = getelementptr inbounds i8, ptr %0, i64 2072
  %wide.load3356.30 = load <4 x i32>, ptr %3951, align 4, !tbaa !76
  %wide.load3357.30 = load <4 x i32>, ptr %3952, align 4, !tbaa !76
  %3953 = getelementptr inbounds i8, ptr %0, i64 3084
  %3954 = getelementptr inbounds i8, ptr %0, i64 3100
  store <4 x i32> %wide.load3356.30, ptr %3953, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.30, ptr %3954, align 4, !tbaa !76
  %3955 = getelementptr inbounds i8, ptr %0, i64 2088
  %3956 = getelementptr inbounds i8, ptr %0, i64 2104
  %wide.load3356.31 = load <4 x i32>, ptr %3955, align 4, !tbaa !76
  %wide.load3357.31 = load <4 x i32>, ptr %3956, align 4, !tbaa !76
  %3957 = getelementptr inbounds i8, ptr %0, i64 3116
  %3958 = getelementptr inbounds i8, ptr %0, i64 3132
  store <4 x i32> %wide.load3356.31, ptr %3957, align 4, !tbaa !76
  store <4 x i32> %wide.load3357.31, ptr %3958, align 4, !tbaa !76
  %3959 = getelementptr inbounds i8, ptr %0, i64 2120
  %3960 = load i32, ptr %3959, align 4, !tbaa !76
  %3961 = getelementptr inbounds i8, ptr %0, i64 3148
  store i32 %3960, ptr %3961, align 4, !tbaa !76
  %3962 = icmp sgt i32 %.31593, 0
  br i1 %3962, label %.lr.ph2365, label %._crit_edge2366

.preheader:                                       ; preds = %3829
  %3963 = icmp sgt i32 %.31593, 0
  %3964 = getelementptr inbounds i8, ptr %0, i64 3152
  %3965 = load ptr, ptr %3964, align 8, !tbaa !50
  br i1 %3963, label %.lr.ph2368, label %._crit_edge2369

.lr.ph2368:                                       ; preds = %.preheader
  %wide.trip.count2707 = zext nneg i32 %.31593 to i64
  %xtraiter3553 = and i64 %wide.trip.count2707, 1
  %3966 = icmp eq i32 %.31593, 1
  br i1 %3966, label %._crit_edge2369.loopexit.unr-lcssa, label %.lr.ph2368.new

.lr.ph2368.new:                                   ; preds = %.lr.ph2368
  %unroll_iter = and i64 %wide.trip.count2707, 2147483646
  br label %4130

.lr.ph2365:                                       ; preds = %.preheader1903
  %3967 = getelementptr inbounds i8, ptr %0, i64 3160
  %3968 = getelementptr inbounds i8, ptr %0, i64 3168
  %wide.trip.count2701 = zext nneg i32 %.31593 to i64
  br label %3969

3969:                                             ; preds = %.lr.ph2365, %3996
  %indvars.iv2697 = phi i64 [ 0, %.lr.ph2365 ], [ %indvars.iv.next2698, %3996 ]
  %3970 = load ptr, ptr %3967, align 8, !tbaa !48
  %3971 = getelementptr inbounds i16, ptr %3970, i64 %indvars.iv2697
  %3972 = load i16, ptr %3971, align 2, !tbaa !80
  %3973 = and i16 %3972, 255
  %3974 = zext nneg i16 %3973 to i64
  %3975 = getelementptr inbounds [257 x i32], ptr %3832, i64 0, i64 %3974
  %3976 = load i32, ptr %3975, align 4, !tbaa !76
  %3977 = trunc i32 %3976 to i16
  store i16 %3977, ptr %3971, align 2, !tbaa !80
  %3978 = and i64 %indvars.iv2697, 1
  %3979 = icmp eq i64 %3978, 0
  %3980 = load ptr, ptr %3968, align 8, !tbaa !49
  %3981 = lshr i64 %indvars.iv2697, 1
  %3982 = and i64 %3981, 2147483647
  %3983 = getelementptr inbounds i8, ptr %3980, i64 %3982
  %3984 = load i8, ptr %3983, align 1, !tbaa !41
  br i1 %3979, label %3985, label %3990

3985:                                             ; preds = %3969
  %3986 = and i8 %3984, -16
  %3987 = lshr i32 %3976, 16
  %3988 = trunc i32 %3987 to i8
  %3989 = or i8 %3986, %3988
  br label %3996

3990:                                             ; preds = %3969
  %3991 = and i8 %3984, 15
  %3992 = lshr i32 %3976, 12
  %3993 = trunc i32 %3992 to i8
  %3994 = and i8 %3993, -16
  %3995 = or disjoint i8 %3991, %3994
  br label %3996

3996:                                             ; preds = %3990, %3985
  %.sink3072 = phi i8 [ %3995, %3990 ], [ %3989, %3985 ]
  store i8 %.sink3072, ptr %3983, align 1, !tbaa !41
  %3997 = load i32, ptr %3975, align 4, !tbaa !76
  %3998 = add nsw i32 %3997, 1
  store i32 %3998, ptr %3975, align 4, !tbaa !76
  %indvars.iv.next2698 = add nuw nsw i64 %indvars.iv2697, 1
  %exitcond2702.not = icmp eq i64 %indvars.iv.next2698, %wide.trip.count2701
  br i1 %exitcond2702.not, label %._crit_edge2366, label %3969, !llvm.loop !98

._crit_edge2366:                                  ; preds = %3996, %.preheader1903
  %3999 = load i32, ptr %3621, align 8, !tbaa !56
  %4000 = getelementptr inbounds i8, ptr %0, i64 3160
  %4001 = load ptr, ptr %4000, align 8, !tbaa !48
  %4002 = sext i32 %3999 to i64
  %4003 = getelementptr inbounds i16, ptr %4001, i64 %4002
  %4004 = load i16, ptr %4003, align 2, !tbaa !80
  %4005 = zext i16 %4004 to i32
  %4006 = getelementptr inbounds i8, ptr %0, i64 3168
  %4007 = load ptr, ptr %4006, align 8, !tbaa !49
  %4008 = ashr i32 %3999, 1
  %4009 = sext i32 %4008 to i64
  %4010 = getelementptr inbounds i8, ptr %4007, i64 %4009
  %4011 = load i8, ptr %4010, align 1, !tbaa !41
  %4012 = zext i8 %4011 to i32
  %4013 = shl i32 %3999, 2
  %4014 = and i32 %4013, 4
  %4015 = lshr i32 %4012, %4014
  %4016 = shl nuw nsw i32 %4015, 16
  %4017 = and i32 %4016, 983040
  %4018 = or disjoint i32 %4017, %4005
  br label %4019

4019:                                             ; preds = %4052, %._crit_edge2366
  %.261431 = phi i32 [ %4018, %._crit_edge2366 ], [ %4036, %4052 ]
  %.39 = phi i32 [ %3999, %._crit_edge2366 ], [ %.261431, %4052 ]
  %4020 = load ptr, ptr %4000, align 8, !tbaa !48
  %4021 = zext nneg i32 %.261431 to i64
  %4022 = getelementptr inbounds i16, ptr %4020, i64 %4021
  %4023 = load i16, ptr %4022, align 2, !tbaa !80
  %4024 = zext i16 %4023 to i32
  %4025 = load ptr, ptr %4006, align 8, !tbaa !49
  %4026 = lshr i32 %.261431, 1
  %4027 = zext nneg i32 %4026 to i64
  %4028 = getelementptr inbounds i8, ptr %4025, i64 %4027
  %4029 = load i8, ptr %4028, align 1, !tbaa !41
  %4030 = zext i8 %4029 to i32
  %4031 = shl nuw nsw i32 %.261431, 2
  %4032 = and i32 %4031, 4
  %4033 = lshr i32 %4030, %4032
  %4034 = shl nuw nsw i32 %4033, 16
  %4035 = and i32 %4034, 983040
  %4036 = or disjoint i32 %4035, %4024
  %4037 = trunc i32 %.39 to i16
  store i16 %4037, ptr %4022, align 2, !tbaa !80
  %4038 = and i32 %.261431, 1
  %4039 = icmp eq i32 %4038, 0
  %4040 = load i8, ptr %4028, align 1, !tbaa !41
  br i1 %4039, label %4041, label %4046

4041:                                             ; preds = %4019
  %4042 = and i8 %4040, -16
  %4043 = lshr i32 %.39, 16
  %4044 = trunc i32 %4043 to i8
  %4045 = or i8 %4042, %4044
  br label %4052

4046:                                             ; preds = %4019
  %4047 = and i8 %4040, 15
  %4048 = lshr i32 %.39, 12
  %4049 = trunc i32 %4048 to i8
  %4050 = and i8 %4049, -16
  %4051 = or disjoint i8 %4047, %4050
  br label %4052

4052:                                             ; preds = %4046, %4041
  %storemerge = phi i8 [ %4051, %4046 ], [ %4045, %4041 ]
  store i8 %storemerge, ptr %4028, align 1, !tbaa !41
  %4053 = load i32, ptr %3621, align 8, !tbaa !56
  %.not1863 = icmp eq i32 %.261431, %4053
  br i1 %.not1863, label %4054, label %4019, !llvm.loop !99

4054:                                             ; preds = %4052
  %4055 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %.261431, ptr %4055, align 4, !tbaa !100
  %4056 = getelementptr inbounds i8, ptr %0, i64 1092
  store i32 0, ptr %4056, align 4, !tbaa !101
  %4057 = getelementptr inbounds i8, ptr %0, i64 20
  %4058 = load i8, ptr %4057, align 4, !tbaa !55
  %.not1864 = icmp eq i8 %4058, 0
  br i1 %.not1864, label %4103, label %4059

4059:                                             ; preds = %4054
  %4060 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 0, ptr %4060, align 8, !tbaa !102
  %4061 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 0, ptr %4061, align 4, !tbaa !103
  %4062 = getelementptr inbounds i8, ptr %0, i64 40
  %4063 = load i32, ptr %4062, align 8, !tbaa !44
  %4064 = mul i32 %4063, 100000
  %.not1866 = icmp ult i32 %.261431, %4064
  br i1 %.not1866, label %4065, label %4996

4065:                                             ; preds = %4059
  %4066 = tail call i32 @BZ2_indexIntoF(i32 noundef %.261431, ptr noundef nonnull %3646) #6
  %4067 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %4066, ptr %4067, align 8, !tbaa !104
  %4068 = load ptr, ptr %4000, align 8, !tbaa !48
  %4069 = load i32, ptr %4055, align 4, !tbaa !100
  %4070 = zext i32 %4069 to i64
  %4071 = getelementptr inbounds i16, ptr %4068, i64 %4070
  %4072 = load i16, ptr %4071, align 2, !tbaa !80
  %4073 = zext i16 %4072 to i32
  %4074 = load ptr, ptr %4006, align 8, !tbaa !49
  %4075 = lshr i32 %4069, 1
  %4076 = zext nneg i32 %4075 to i64
  %4077 = getelementptr inbounds i8, ptr %4074, i64 %4076
  %4078 = load i8, ptr %4077, align 1, !tbaa !41
  %4079 = zext i8 %4078 to i32
  %4080 = shl i32 %4069, 2
  %4081 = and i32 %4080, 4
  %4082 = lshr i32 %4079, %4081
  %4083 = shl nuw nsw i32 %4082, 16
  %4084 = and i32 %4083, 983040
  %4085 = or disjoint i32 %4084, %4073
  store i32 %4085, ptr %4055, align 4, !tbaa !100
  %4086 = load i32, ptr %4056, align 4, !tbaa !101
  %4087 = add nsw i32 %4086, 1
  store i32 %4087, ptr %4056, align 4, !tbaa !101
  %4088 = load i32, ptr %4060, align 8, !tbaa !102
  %4089 = icmp eq i32 %4088, 0
  br i1 %4089, label %4090, label %4097

4090:                                             ; preds = %4065
  %4091 = load i32, ptr %4061, align 4, !tbaa !103
  %4092 = sext i32 %4091 to i64
  %4093 = getelementptr inbounds [512 x i32], ptr @BZ2_rNums, i64 0, i64 %4092
  %4094 = load i32, ptr %4093, align 4, !tbaa !76
  %4095 = add nsw i32 %4091, 1
  %4096 = icmp eq i32 %4095, 512
  %spec.store.select1884 = select i1 %4096, i32 0, i32 %4095
  store i32 %spec.store.select1884, ptr %4061, align 4
  br label %4097

4097:                                             ; preds = %4090, %4065
  %4098 = phi i32 [ %4094, %4090 ], [ %4088, %4065 ]
  %4099 = add nsw i32 %4098, -1
  store i32 %4099, ptr %4060, align 8, !tbaa !102
  %4100 = icmp eq i32 %4099, 1
  %4101 = zext i1 %4100 to i32
  %4102 = xor i32 %4066, %4101
  store i32 %4102, ptr %4067, align 8, !tbaa !104
  br label %.loopexit

4103:                                             ; preds = %4054
  %4104 = getelementptr inbounds i8, ptr %0, i64 40
  %4105 = load i32, ptr %4104, align 8, !tbaa !44
  %4106 = mul i32 %4105, 100000
  %.not1865 = icmp ult i32 %.261431, %4106
  br i1 %.not1865, label %4107, label %4996

4107:                                             ; preds = %4103
  %4108 = tail call i32 @BZ2_indexIntoF(i32 noundef %.261431, ptr noundef nonnull %3646) #6
  %4109 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %4108, ptr %4109, align 8, !tbaa !104
  %4110 = load ptr, ptr %4000, align 8, !tbaa !48
  %4111 = load i32, ptr %4055, align 4, !tbaa !100
  %4112 = zext i32 %4111 to i64
  %4113 = getelementptr inbounds i16, ptr %4110, i64 %4112
  %4114 = load i16, ptr %4113, align 2, !tbaa !80
  %4115 = zext i16 %4114 to i32
  %4116 = load ptr, ptr %4006, align 8, !tbaa !49
  %4117 = lshr i32 %4111, 1
  %4118 = zext nneg i32 %4117 to i64
  %4119 = getelementptr inbounds i8, ptr %4116, i64 %4118
  %4120 = load i8, ptr %4119, align 1, !tbaa !41
  %4121 = zext i8 %4120 to i32
  %4122 = shl i32 %4111, 2
  %4123 = and i32 %4122, 4
  %4124 = lshr i32 %4121, %4123
  %4125 = shl nuw nsw i32 %4124, 16
  %4126 = and i32 %4125, 983040
  %4127 = or disjoint i32 %4126, %4115
  store i32 %4127, ptr %4055, align 4, !tbaa !100
  %4128 = load i32, ptr %4056, align 4, !tbaa !101
  %4129 = add nsw i32 %4128, 1
  store i32 %4129, ptr %4056, align 4, !tbaa !101
  br label %.loopexit

4130:                                             ; preds = %4130, %.lr.ph2368.new
  %indvars.iv2703 = phi i64 [ 0, %.lr.ph2368.new ], [ %indvars.iv.next2704.1, %4130 ]
  %niter = phi i64 [ 0, %.lr.ph2368.new ], [ %niter.next.1, %4130 ]
  %4131 = getelementptr inbounds i32, ptr %3965, i64 %indvars.iv2703
  %4132 = load i32, ptr %4131, align 4, !tbaa !76
  %4133 = trunc nuw nsw i64 %indvars.iv2703 to i32
  %4134 = shl i32 %4133, 8
  %4135 = and i32 %4132, 255
  %4136 = zext nneg i32 %4135 to i64
  %4137 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %4136
  %4138 = load i32, ptr %4137, align 4, !tbaa !76
  %4139 = sext i32 %4138 to i64
  %4140 = getelementptr inbounds i32, ptr %3965, i64 %4139
  %4141 = load i32, ptr %4140, align 4, !tbaa !76
  %4142 = or i32 %4141, %4134
  store i32 %4142, ptr %4140, align 4, !tbaa !76
  %4143 = load i32, ptr %4137, align 4, !tbaa !76
  %4144 = add nsw i32 %4143, 1
  store i32 %4144, ptr %4137, align 4, !tbaa !76
  %indvars.iv.next2704 = or disjoint i64 %indvars.iv2703, 1
  %4145 = getelementptr inbounds i32, ptr %3965, i64 %indvars.iv.next2704
  %4146 = load i32, ptr %4145, align 4, !tbaa !76
  %4147 = trunc nuw nsw i64 %indvars.iv.next2704 to i32
  %4148 = shl i32 %4147, 8
  %4149 = and i32 %4146, 255
  %4150 = zext nneg i32 %4149 to i64
  %4151 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %4150
  %4152 = load i32, ptr %4151, align 4, !tbaa !76
  %4153 = sext i32 %4152 to i64
  %4154 = getelementptr inbounds i32, ptr %3965, i64 %4153
  %4155 = load i32, ptr %4154, align 4, !tbaa !76
  %4156 = or i32 %4155, %4148
  store i32 %4156, ptr %4154, align 4, !tbaa !76
  %4157 = load i32, ptr %4151, align 4, !tbaa !76
  %4158 = add nsw i32 %4157, 1
  store i32 %4158, ptr %4151, align 4, !tbaa !76
  %indvars.iv.next2704.1 = add nuw nsw i64 %indvars.iv2703, 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_edge2369.loopexit.unr-lcssa, label %4130, !llvm.loop !105

._crit_edge2369.loopexit.unr-lcssa:               ; preds = %4130, %.lr.ph2368
  %indvars.iv2703.unr = phi i64 [ 0, %.lr.ph2368 ], [ %indvars.iv.next2704.1, %4130 ]
  %lcmp.mod3554.not = icmp eq i64 %xtraiter3553, 0
  br i1 %lcmp.mod3554.not, label %._crit_edge2369, label %._crit_edge2369.loopexit.epilog-lcssa

._crit_edge2369.loopexit.epilog-lcssa:            ; preds = %._crit_edge2369.loopexit.unr-lcssa
  %4159 = getelementptr inbounds i32, ptr %3965, i64 %indvars.iv2703.unr
  %4160 = load i32, ptr %4159, align 4, !tbaa !76
  %4161 = trunc nuw nsw i64 %indvars.iv2703.unr to i32
  %4162 = shl i32 %4161, 8
  %4163 = and i32 %4160, 255
  %4164 = zext nneg i32 %4163 to i64
  %4165 = getelementptr inbounds [257 x i32], ptr %3646, i64 0, i64 %4164
  %4166 = load i32, ptr %4165, align 4, !tbaa !76
  %4167 = sext i32 %4166 to i64
  %4168 = getelementptr inbounds i32, ptr %3965, i64 %4167
  %4169 = load i32, ptr %4168, align 4, !tbaa !76
  %4170 = or i32 %4169, %4162
  store i32 %4170, ptr %4168, align 4, !tbaa !76
  %4171 = load i32, ptr %4165, align 4, !tbaa !76
  %4172 = add nsw i32 %4171, 1
  store i32 %4172, ptr %4165, align 4, !tbaa !76
  br label %._crit_edge2369

._crit_edge2369:                                  ; preds = %._crit_edge2369.loopexit.epilog-lcssa, %._crit_edge2369.loopexit.unr-lcssa, %.preheader
  %.40.lcssa = phi i32 [ 0, %.preheader ], [ %.31593, %._crit_edge2369.loopexit.unr-lcssa ], [ %.31593, %._crit_edge2369.loopexit.epilog-lcssa ]
  %4173 = load i32, ptr %3621, align 8, !tbaa !56
  %4174 = sext i32 %4173 to i64
  %4175 = getelementptr inbounds i32, ptr %3965, i64 %4174
  %4176 = load i32, ptr %4175, align 4, !tbaa !76
  %4177 = lshr i32 %4176, 8
  %4178 = getelementptr inbounds i8, ptr %0, i64 60
  store i32 %4177, ptr %4178, align 4, !tbaa !100
  %4179 = getelementptr inbounds i8, ptr %0, i64 1092
  store i32 0, ptr %4179, align 4, !tbaa !101
  %4180 = getelementptr inbounds i8, ptr %0, i64 20
  %4181 = load i8, ptr %4180, align 4, !tbaa !55
  %.not1860 = icmp eq i8 %4181, 0
  br i1 %.not1860, label %4200, label %4182

4182:                                             ; preds = %._crit_edge2369
  %4183 = getelementptr inbounds i8, ptr %0, i64 24
  store i32 0, ptr %4183, align 8, !tbaa !102
  %4184 = getelementptr inbounds i8, ptr %0, i64 28
  store i32 0, ptr %4184, align 4, !tbaa !103
  %4185 = getelementptr inbounds i8, ptr %0, i64 40
  %4186 = load i32, ptr %4185, align 8, !tbaa !44
  %4187 = mul i32 %4186, 100000
  %.not1862 = icmp ult i32 %4177, %4187
  br i1 %.not1862, label %4188, label %4996

4188:                                             ; preds = %4182
  %4189 = zext nneg i32 %4177 to i64
  %4190 = getelementptr inbounds i32, ptr %3965, i64 %4189
  %4191 = load i32, ptr %4190, align 4, !tbaa !76
  %4192 = and i32 %4191, 255
  %4193 = getelementptr inbounds i8, ptr %0, i64 64
  %4194 = lshr i32 %4191, 8
  store i32 %4194, ptr %4178, align 4, !tbaa !100
  store i32 1, ptr %4179, align 4, !tbaa !101
  %4195 = load i32, ptr @BZ2_rNums, align 16, !tbaa !76
  store i32 1, ptr %4184, align 4
  %4196 = add nsw i32 %4195, -1
  store i32 %4196, ptr %4183, align 8, !tbaa !102
  %4197 = icmp eq i32 %4196, 1
  %4198 = zext i1 %4197 to i32
  %4199 = xor i32 %4192, %4198
  store i32 %4199, ptr %4193, align 8, !tbaa !104
  br label %.loopexit

4200:                                             ; preds = %._crit_edge2369
  %4201 = getelementptr inbounds i8, ptr %0, i64 40
  %4202 = load i32, ptr %4201, align 8, !tbaa !44
  %4203 = mul i32 %4202, 100000
  %.not1861 = icmp ult i32 %4177, %4203
  br i1 %.not1861, label %4204, label %4996

4204:                                             ; preds = %4200
  %4205 = zext nneg i32 %4177 to i64
  %4206 = getelementptr inbounds i32, ptr %3965, i64 %4205
  %4207 = load i32, ptr %4206, align 4, !tbaa !76
  %4208 = and i32 %4207, 255
  %4209 = getelementptr inbounds i8, ptr %0, i64 64
  store i32 %4208, ptr %4209, align 8, !tbaa !104
  %4210 = lshr i32 %4207, 8
  store i32 %4210, ptr %4178, align 4, !tbaa !100
  store i32 1, ptr %4179, align 4, !tbaa !101
  br label %.loopexit

4211:                                             ; preds = %._crit_edge2885, %._crit_edge2152
  %4212 = phi ptr [ %58, %._crit_edge2885 ], [ %362, %._crit_edge2152 ]
  %4213 = phi ptr [ %57, %._crit_edge2885 ], [ %363, %._crit_edge2152 ]
  %4214 = phi ptr [ %56, %._crit_edge2885 ], [ %364, %._crit_edge2152 ]
  %4215 = phi ptr [ %55, %._crit_edge2885 ], [ %365, %._crit_edge2152 ]
  %4216 = phi ptr [ %54, %._crit_edge2885 ], [ %366, %._crit_edge2152 ]
  %4217 = phi ptr [ %53, %._crit_edge2885 ], [ %367, %._crit_edge2152 ]
  %4218 = phi ptr [ %52, %._crit_edge2885 ], [ %368, %._crit_edge2152 ]
  %4219 = phi ptr [ %51, %._crit_edge2885 ], [ %369, %._crit_edge2152 ]
  %4220 = phi ptr [ %50, %._crit_edge2885 ], [ %370, %._crit_edge2152 ]
  %4221 = phi ptr [ %49, %._crit_edge2885 ], [ %371, %._crit_edge2152 ]
  %4222 = phi ptr [ %48, %._crit_edge2885 ], [ %372, %._crit_edge2152 ]
  %4223 = phi ptr [ %47, %._crit_edge2885 ], [ %373, %._crit_edge2152 ]
  %4224 = phi ptr [ %46, %._crit_edge2885 ], [ %374, %._crit_edge2152 ]
  %4225 = phi ptr [ %45, %._crit_edge2885 ], [ %375, %._crit_edge2152 ]
  %4226 = phi ptr [ %44, %._crit_edge2885 ], [ %376, %._crit_edge2152 ]
  %4227 = phi ptr [ %43, %._crit_edge2885 ], [ %377, %._crit_edge2152 ]
  %4228 = phi ptr [ %42, %._crit_edge2885 ], [ %378, %._crit_edge2152 ]
  %4229 = phi ptr [ %41, %._crit_edge2885 ], [ %379, %._crit_edge2152 ]
  %4230 = phi ptr [ %40, %._crit_edge2885 ], [ %380, %._crit_edge2152 ]
  %4231 = phi ptr [ %39, %._crit_edge2885 ], [ %381, %._crit_edge2152 ]
  %4232 = phi ptr [ %38, %._crit_edge2885 ], [ %382, %._crit_edge2152 ]
  %4233 = phi ptr [ %37, %._crit_edge2885 ], [ %383, %._crit_edge2152 ]
  %4234 = phi ptr [ %36, %._crit_edge2885 ], [ %384, %._crit_edge2152 ]
  %4235 = phi ptr [ %35, %._crit_edge2885 ], [ %385, %._crit_edge2152 ]
  %4236 = phi i32 [ %.pre, %._crit_edge2885 ], [ %386, %._crit_edge2152 ]
  %4237 = phi i32 [ %.pre2711, %._crit_edge2885 ], [ %387, %._crit_edge2152 ]
  %4238 = phi i32 [ %.pre2713, %._crit_edge2885 ], [ %388, %._crit_edge2152 ]
  %4239 = phi i32 [ %.pre2715, %._crit_edge2885 ], [ %389, %._crit_edge2152 ]
  %4240 = phi i32 [ %.pre2717, %._crit_edge2885 ], [ %390, %._crit_edge2152 ]
  %4241 = phi i32 [ %.pre2719, %._crit_edge2885 ], [ %391, %._crit_edge2152 ]
  %4242 = phi i32 [ %.pre2721, %._crit_edge2885 ], [ %392, %._crit_edge2152 ]
  %4243 = phi i32 [ %.pre2723, %._crit_edge2885 ], [ %393, %._crit_edge2152 ]
  %4244 = phi i32 [ %.pre2725, %._crit_edge2885 ], [ %394, %._crit_edge2152 ]
  %4245 = phi i32 [ %.pre2727, %._crit_edge2885 ], [ %395, %._crit_edge2152 ]
  %4246 = phi i32 [ %.pre2729, %._crit_edge2885 ], [ %396, %._crit_edge2152 ]
  %4247 = phi i32 [ %.pre2731, %._crit_edge2885 ], [ %397, %._crit_edge2152 ]
  %4248 = phi i32 [ %.pre2733, %._crit_edge2885 ], [ %398, %._crit_edge2152 ]
  %4249 = phi i32 [ %.pre2735, %._crit_edge2885 ], [ %399, %._crit_edge2152 ]
  %4250 = phi i32 [ %.pre2737, %._crit_edge2885 ], [ %400, %._crit_edge2152 ]
  %4251 = phi i32 [ %.pre2739, %._crit_edge2885 ], [ %401, %._crit_edge2152 ]
  %4252 = phi i32 [ %.pre2741, %._crit_edge2885 ], [ %402, %._crit_edge2152 ]
  %4253 = phi i32 [ %.pre2743, %._crit_edge2885 ], [ %403, %._crit_edge2152 ]
  %4254 = phi i32 [ %.pre2745, %._crit_edge2885 ], [ %404, %._crit_edge2152 ]
  %4255 = phi i32 [ %.pre2747, %._crit_edge2885 ], [ %405, %._crit_edge2152 ]
  %4256 = phi i32 [ %.pre2749, %._crit_edge2885 ], [ %406, %._crit_edge2152 ]
  %4257 = phi ptr [ %.pre2751, %._crit_edge2885 ], [ %407, %._crit_edge2152 ]
  %4258 = phi ptr [ %.pre2753, %._crit_edge2885 ], [ %408, %._crit_edge2152 ]
  %4259 = phi ptr [ %.pre2755, %._crit_edge2885 ], [ %409, %._crit_edge2152 ]
  %.promoted2420 = phi i32 [ %.promoted2420.pre, %._crit_edge2885 ], [ %418, %._crit_edge2152 ]
  store i32 42, ptr %4, align 8, !tbaa !11
  %4260 = getelementptr inbounds i8, ptr %0, i64 36
  %4261 = icmp sgt i32 %.promoted2420, 7
  br i1 %4261, label %.._crit_edge2423_crit_edge, label %.lr.ph2422

.._crit_edge2423_crit_edge:                       ; preds = %4211
  %.phi.trans.insert2888 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2889 = load i32, ptr %.phi.trans.insert2888, align 8, !tbaa !37
  br label %._crit_edge2423

.lr.ph2422:                                       ; preds = %4211
  %4262 = load ptr, ptr %0, align 8, !tbaa !5
  %4263 = getelementptr inbounds i8, ptr %4262, i64 8
  %4264 = getelementptr inbounds i8, ptr %0, i64 32
  %4265 = getelementptr inbounds i8, ptr %4262, i64 12
  %4266 = getelementptr inbounds i8, ptr %4262, i64 16
  %.promoted2426 = load i32, ptr %4263, align 8, !tbaa !38
  br label %4271

._crit_edge2423:                                  ; preds = %4291, %.._crit_edge2423_crit_edge
  %4267 = phi i32 [ %.pre2889, %.._crit_edge2423_crit_edge ], [ %4281, %4291 ]
  %.lcssa1984 = phi i32 [ %.promoted2420, %.._crit_edge2423_crit_edge ], [ %4282, %4291 ]
  %4268 = add nsw i32 %.lcssa1984, -8
  %4269 = lshr i32 %4267, %4268
  store i32 %4268, ptr %4260, align 4, !tbaa !12
  %4270 = and i32 %4269, 255
  %.not1872 = icmp eq i32 %4270, 114
  br i1 %.not1872, label %4293, label %.loopexit

4271:                                             ; preds = %.lr.ph2422, %4291
  %4272 = phi i32 [ %.promoted2426, %.lr.ph2422 ], [ %4284, %4291 ]
  %4273 = phi i32 [ %.promoted2420, %.lr.ph2422 ], [ %4282, %4291 ]
  %4274 = icmp eq i32 %4272, 0
  br i1 %4274, label %.loopexit, label %4275

4275:                                             ; preds = %4271
  %4276 = load i32, ptr %4264, align 8, !tbaa !37
  %4277 = shl i32 %4276, 8
  %4278 = load ptr, ptr %4262, align 8, !tbaa !40
  %4279 = load i8, ptr %4278, align 1, !tbaa !41
  %4280 = zext i8 %4279 to i32
  %4281 = or disjoint i32 %4277, %4280
  store i32 %4281, ptr %4264, align 8, !tbaa !37
  %4282 = add nsw i32 %4273, 8
  store i32 %4282, ptr %4260, align 4, !tbaa !12
  %4283 = getelementptr inbounds i8, ptr %4278, i64 1
  store ptr %4283, ptr %4262, align 8, !tbaa !40
  %4284 = add i32 %4272, -1
  store i32 %4284, ptr %4263, align 8, !tbaa !38
  %4285 = load i32, ptr %4265, align 4, !tbaa !42
  %4286 = add i32 %4285, 1
  store i32 %4286, ptr %4265, align 4, !tbaa !42
  %4287 = icmp eq i32 %4286, 0
  br i1 %4287, label %4288, label %4291

4288:                                             ; preds = %4275
  %4289 = load i32, ptr %4266, align 8, !tbaa !43
  %4290 = add i32 %4289, 1
  store i32 %4290, ptr %4266, align 8, !tbaa !43
  br label %4291

4291:                                             ; preds = %4288, %4275
  %4292 = icmp sgt i32 %4273, -1
  br i1 %4292, label %._crit_edge2423, label %4271

4293:                                             ; preds = %._crit_edge2890, %._crit_edge2423
  %4294 = phi ptr [ %58, %._crit_edge2890 ], [ %4212, %._crit_edge2423 ]
  %4295 = phi ptr [ %57, %._crit_edge2890 ], [ %4213, %._crit_edge2423 ]
  %4296 = phi ptr [ %56, %._crit_edge2890 ], [ %4214, %._crit_edge2423 ]
  %4297 = phi ptr [ %55, %._crit_edge2890 ], [ %4215, %._crit_edge2423 ]
  %4298 = phi ptr [ %54, %._crit_edge2890 ], [ %4216, %._crit_edge2423 ]
  %4299 = phi ptr [ %53, %._crit_edge2890 ], [ %4217, %._crit_edge2423 ]
  %4300 = phi ptr [ %52, %._crit_edge2890 ], [ %4218, %._crit_edge2423 ]
  %4301 = phi ptr [ %51, %._crit_edge2890 ], [ %4219, %._crit_edge2423 ]
  %4302 = phi ptr [ %50, %._crit_edge2890 ], [ %4220, %._crit_edge2423 ]
  %4303 = phi ptr [ %49, %._crit_edge2890 ], [ %4221, %._crit_edge2423 ]
  %4304 = phi ptr [ %48, %._crit_edge2890 ], [ %4222, %._crit_edge2423 ]
  %4305 = phi ptr [ %47, %._crit_edge2890 ], [ %4223, %._crit_edge2423 ]
  %4306 = phi ptr [ %46, %._crit_edge2890 ], [ %4224, %._crit_edge2423 ]
  %4307 = phi ptr [ %45, %._crit_edge2890 ], [ %4225, %._crit_edge2423 ]
  %4308 = phi ptr [ %44, %._crit_edge2890 ], [ %4226, %._crit_edge2423 ]
  %4309 = phi ptr [ %43, %._crit_edge2890 ], [ %4227, %._crit_edge2423 ]
  %4310 = phi ptr [ %42, %._crit_edge2890 ], [ %4228, %._crit_edge2423 ]
  %4311 = phi ptr [ %41, %._crit_edge2890 ], [ %4229, %._crit_edge2423 ]
  %4312 = phi ptr [ %40, %._crit_edge2890 ], [ %4230, %._crit_edge2423 ]
  %4313 = phi ptr [ %39, %._crit_edge2890 ], [ %4231, %._crit_edge2423 ]
  %4314 = phi ptr [ %38, %._crit_edge2890 ], [ %4232, %._crit_edge2423 ]
  %4315 = phi ptr [ %37, %._crit_edge2890 ], [ %4233, %._crit_edge2423 ]
  %4316 = phi ptr [ %36, %._crit_edge2890 ], [ %4234, %._crit_edge2423 ]
  %4317 = phi ptr [ %35, %._crit_edge2890 ], [ %4235, %._crit_edge2423 ]
  %4318 = phi i32 [ %.pre, %._crit_edge2890 ], [ %4236, %._crit_edge2423 ]
  %4319 = phi i32 [ %.pre2711, %._crit_edge2890 ], [ %4237, %._crit_edge2423 ]
  %4320 = phi i32 [ %.pre2713, %._crit_edge2890 ], [ %4238, %._crit_edge2423 ]
  %4321 = phi i32 [ %.pre2715, %._crit_edge2890 ], [ %4239, %._crit_edge2423 ]
  %4322 = phi i32 [ %.pre2717, %._crit_edge2890 ], [ %4240, %._crit_edge2423 ]
  %4323 = phi i32 [ %.pre2719, %._crit_edge2890 ], [ %4241, %._crit_edge2423 ]
  %4324 = phi i32 [ %.pre2721, %._crit_edge2890 ], [ %4242, %._crit_edge2423 ]
  %4325 = phi i32 [ %.pre2723, %._crit_edge2890 ], [ %4243, %._crit_edge2423 ]
  %4326 = phi i32 [ %.pre2725, %._crit_edge2890 ], [ %4244, %._crit_edge2423 ]
  %4327 = phi i32 [ %.pre2727, %._crit_edge2890 ], [ %4245, %._crit_edge2423 ]
  %4328 = phi i32 [ %.pre2729, %._crit_edge2890 ], [ %4246, %._crit_edge2423 ]
  %4329 = phi i32 [ %.pre2731, %._crit_edge2890 ], [ %4247, %._crit_edge2423 ]
  %4330 = phi i32 [ %.pre2733, %._crit_edge2890 ], [ %4248, %._crit_edge2423 ]
  %4331 = phi i32 [ %.pre2735, %._crit_edge2890 ], [ %4249, %._crit_edge2423 ]
  %4332 = phi i32 [ %.pre2737, %._crit_edge2890 ], [ %4250, %._crit_edge2423 ]
  %4333 = phi i32 [ %.pre2739, %._crit_edge2890 ], [ %4251, %._crit_edge2423 ]
  %4334 = phi i32 [ %.pre2741, %._crit_edge2890 ], [ %4252, %._crit_edge2423 ]
  %4335 = phi i32 [ %.pre2743, %._crit_edge2890 ], [ %4253, %._crit_edge2423 ]
  %4336 = phi i32 [ %.pre2745, %._crit_edge2890 ], [ %4254, %._crit_edge2423 ]
  %4337 = phi i32 [ %.pre2747, %._crit_edge2890 ], [ %4255, %._crit_edge2423 ]
  %4338 = phi i32 [ %.pre2749, %._crit_edge2890 ], [ %4256, %._crit_edge2423 ]
  %4339 = phi ptr [ %.pre2751, %._crit_edge2890 ], [ %4257, %._crit_edge2423 ]
  %4340 = phi ptr [ %.pre2753, %._crit_edge2890 ], [ %4258, %._crit_edge2423 ]
  %4341 = phi ptr [ %.pre2755, %._crit_edge2890 ], [ %4259, %._crit_edge2423 ]
  %.promoted2427 = phi i32 [ %.promoted2427.pre, %._crit_edge2890 ], [ %4268, %._crit_edge2423 ]
  store i32 43, ptr %4, align 8, !tbaa !11
  %4342 = getelementptr inbounds i8, ptr %0, i64 36
  %4343 = icmp sgt i32 %.promoted2427, 7
  br i1 %4343, label %.._crit_edge2430_crit_edge, label %.lr.ph2429

.._crit_edge2430_crit_edge:                       ; preds = %4293
  %.phi.trans.insert2893 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2894 = load i32, ptr %.phi.trans.insert2893, align 8, !tbaa !37
  br label %._crit_edge2430

.lr.ph2429:                                       ; preds = %4293
  %4344 = load ptr, ptr %0, align 8, !tbaa !5
  %4345 = getelementptr inbounds i8, ptr %4344, i64 8
  %4346 = getelementptr inbounds i8, ptr %0, i64 32
  %4347 = getelementptr inbounds i8, ptr %4344, i64 12
  %4348 = getelementptr inbounds i8, ptr %4344, i64 16
  %.promoted2433 = load i32, ptr %4345, align 8, !tbaa !38
  br label %4353

._crit_edge2430:                                  ; preds = %4373, %.._crit_edge2430_crit_edge
  %4349 = phi i32 [ %.pre2894, %.._crit_edge2430_crit_edge ], [ %4363, %4373 ]
  %.lcssa1980 = phi i32 [ %.promoted2427, %.._crit_edge2430_crit_edge ], [ %4364, %4373 ]
  %4350 = add nsw i32 %.lcssa1980, -8
  %4351 = lshr i32 %4349, %4350
  store i32 %4350, ptr %4342, align 4, !tbaa !12
  %4352 = and i32 %4351, 255
  %.not1873 = icmp eq i32 %4352, 69
  br i1 %.not1873, label %4375, label %.loopexit

4353:                                             ; preds = %.lr.ph2429, %4373
  %4354 = phi i32 [ %.promoted2433, %.lr.ph2429 ], [ %4366, %4373 ]
  %4355 = phi i32 [ %.promoted2427, %.lr.ph2429 ], [ %4364, %4373 ]
  %4356 = icmp eq i32 %4354, 0
  br i1 %4356, label %.loopexit, label %4357

4357:                                             ; preds = %4353
  %4358 = load i32, ptr %4346, align 8, !tbaa !37
  %4359 = shl i32 %4358, 8
  %4360 = load ptr, ptr %4344, align 8, !tbaa !40
  %4361 = load i8, ptr %4360, align 1, !tbaa !41
  %4362 = zext i8 %4361 to i32
  %4363 = or disjoint i32 %4359, %4362
  store i32 %4363, ptr %4346, align 8, !tbaa !37
  %4364 = add nsw i32 %4355, 8
  store i32 %4364, ptr %4342, align 4, !tbaa !12
  %4365 = getelementptr inbounds i8, ptr %4360, i64 1
  store ptr %4365, ptr %4344, align 8, !tbaa !40
  %4366 = add i32 %4354, -1
  store i32 %4366, ptr %4345, align 8, !tbaa !38
  %4367 = load i32, ptr %4347, align 4, !tbaa !42
  %4368 = add i32 %4367, 1
  store i32 %4368, ptr %4347, align 4, !tbaa !42
  %4369 = icmp eq i32 %4368, 0
  br i1 %4369, label %4370, label %4373

4370:                                             ; preds = %4357
  %4371 = load i32, ptr %4348, align 8, !tbaa !43
  %4372 = add i32 %4371, 1
  store i32 %4372, ptr %4348, align 8, !tbaa !43
  br label %4373

4373:                                             ; preds = %4370, %4357
  %4374 = icmp sgt i32 %4355, -1
  br i1 %4374, label %._crit_edge2430, label %4353

4375:                                             ; preds = %._crit_edge2895, %._crit_edge2430
  %4376 = phi ptr [ %58, %._crit_edge2895 ], [ %4294, %._crit_edge2430 ]
  %4377 = phi ptr [ %57, %._crit_edge2895 ], [ %4295, %._crit_edge2430 ]
  %4378 = phi ptr [ %56, %._crit_edge2895 ], [ %4296, %._crit_edge2430 ]
  %4379 = phi ptr [ %55, %._crit_edge2895 ], [ %4297, %._crit_edge2430 ]
  %4380 = phi ptr [ %54, %._crit_edge2895 ], [ %4298, %._crit_edge2430 ]
  %4381 = phi ptr [ %53, %._crit_edge2895 ], [ %4299, %._crit_edge2430 ]
  %4382 = phi ptr [ %52, %._crit_edge2895 ], [ %4300, %._crit_edge2430 ]
  %4383 = phi ptr [ %51, %._crit_edge2895 ], [ %4301, %._crit_edge2430 ]
  %4384 = phi ptr [ %50, %._crit_edge2895 ], [ %4302, %._crit_edge2430 ]
  %4385 = phi ptr [ %49, %._crit_edge2895 ], [ %4303, %._crit_edge2430 ]
  %4386 = phi ptr [ %48, %._crit_edge2895 ], [ %4304, %._crit_edge2430 ]
  %4387 = phi ptr [ %47, %._crit_edge2895 ], [ %4305, %._crit_edge2430 ]
  %4388 = phi ptr [ %46, %._crit_edge2895 ], [ %4306, %._crit_edge2430 ]
  %4389 = phi ptr [ %45, %._crit_edge2895 ], [ %4307, %._crit_edge2430 ]
  %4390 = phi ptr [ %44, %._crit_edge2895 ], [ %4308, %._crit_edge2430 ]
  %4391 = phi ptr [ %43, %._crit_edge2895 ], [ %4309, %._crit_edge2430 ]
  %4392 = phi ptr [ %42, %._crit_edge2895 ], [ %4310, %._crit_edge2430 ]
  %4393 = phi ptr [ %41, %._crit_edge2895 ], [ %4311, %._crit_edge2430 ]
  %4394 = phi ptr [ %40, %._crit_edge2895 ], [ %4312, %._crit_edge2430 ]
  %4395 = phi ptr [ %39, %._crit_edge2895 ], [ %4313, %._crit_edge2430 ]
  %4396 = phi ptr [ %38, %._crit_edge2895 ], [ %4314, %._crit_edge2430 ]
  %4397 = phi ptr [ %37, %._crit_edge2895 ], [ %4315, %._crit_edge2430 ]
  %4398 = phi ptr [ %36, %._crit_edge2895 ], [ %4316, %._crit_edge2430 ]
  %4399 = phi ptr [ %35, %._crit_edge2895 ], [ %4317, %._crit_edge2430 ]
  %4400 = phi i32 [ %.pre, %._crit_edge2895 ], [ %4318, %._crit_edge2430 ]
  %4401 = phi i32 [ %.pre2711, %._crit_edge2895 ], [ %4319, %._crit_edge2430 ]
  %4402 = phi i32 [ %.pre2713, %._crit_edge2895 ], [ %4320, %._crit_edge2430 ]
  %4403 = phi i32 [ %.pre2715, %._crit_edge2895 ], [ %4321, %._crit_edge2430 ]
  %4404 = phi i32 [ %.pre2717, %._crit_edge2895 ], [ %4322, %._crit_edge2430 ]
  %4405 = phi i32 [ %.pre2719, %._crit_edge2895 ], [ %4323, %._crit_edge2430 ]
  %4406 = phi i32 [ %.pre2721, %._crit_edge2895 ], [ %4324, %._crit_edge2430 ]
  %4407 = phi i32 [ %.pre2723, %._crit_edge2895 ], [ %4325, %._crit_edge2430 ]
  %4408 = phi i32 [ %.pre2725, %._crit_edge2895 ], [ %4326, %._crit_edge2430 ]
  %4409 = phi i32 [ %.pre2727, %._crit_edge2895 ], [ %4327, %._crit_edge2430 ]
  %4410 = phi i32 [ %.pre2729, %._crit_edge2895 ], [ %4328, %._crit_edge2430 ]
  %4411 = phi i32 [ %.pre2731, %._crit_edge2895 ], [ %4329, %._crit_edge2430 ]
  %4412 = phi i32 [ %.pre2733, %._crit_edge2895 ], [ %4330, %._crit_edge2430 ]
  %4413 = phi i32 [ %.pre2735, %._crit_edge2895 ], [ %4331, %._crit_edge2430 ]
  %4414 = phi i32 [ %.pre2737, %._crit_edge2895 ], [ %4332, %._crit_edge2430 ]
  %4415 = phi i32 [ %.pre2739, %._crit_edge2895 ], [ %4333, %._crit_edge2430 ]
  %4416 = phi i32 [ %.pre2741, %._crit_edge2895 ], [ %4334, %._crit_edge2430 ]
  %4417 = phi i32 [ %.pre2743, %._crit_edge2895 ], [ %4335, %._crit_edge2430 ]
  %4418 = phi i32 [ %.pre2745, %._crit_edge2895 ], [ %4336, %._crit_edge2430 ]
  %4419 = phi i32 [ %.pre2747, %._crit_edge2895 ], [ %4337, %._crit_edge2430 ]
  %4420 = phi i32 [ %.pre2749, %._crit_edge2895 ], [ %4338, %._crit_edge2430 ]
  %4421 = phi ptr [ %.pre2751, %._crit_edge2895 ], [ %4339, %._crit_edge2430 ]
  %4422 = phi ptr [ %.pre2753, %._crit_edge2895 ], [ %4340, %._crit_edge2430 ]
  %4423 = phi ptr [ %.pre2755, %._crit_edge2895 ], [ %4341, %._crit_edge2430 ]
  %.promoted2434 = phi i32 [ %.promoted2434.pre, %._crit_edge2895 ], [ %4350, %._crit_edge2430 ]
  store i32 44, ptr %4, align 8, !tbaa !11
  %4424 = getelementptr inbounds i8, ptr %0, i64 36
  %4425 = icmp sgt i32 %.promoted2434, 7
  br i1 %4425, label %.._crit_edge2437_crit_edge, label %.lr.ph2436

.._crit_edge2437_crit_edge:                       ; preds = %4375
  %.phi.trans.insert2898 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2899 = load i32, ptr %.phi.trans.insert2898, align 8, !tbaa !37
  br label %._crit_edge2437

.lr.ph2436:                                       ; preds = %4375
  %4426 = load ptr, ptr %0, align 8, !tbaa !5
  %4427 = getelementptr inbounds i8, ptr %4426, i64 8
  %4428 = getelementptr inbounds i8, ptr %0, i64 32
  %4429 = getelementptr inbounds i8, ptr %4426, i64 12
  %4430 = getelementptr inbounds i8, ptr %4426, i64 16
  %.promoted2440 = load i32, ptr %4427, align 8, !tbaa !38
  br label %4435

._crit_edge2437:                                  ; preds = %4455, %.._crit_edge2437_crit_edge
  %4431 = phi i32 [ %.pre2899, %.._crit_edge2437_crit_edge ], [ %4445, %4455 ]
  %.lcssa1976 = phi i32 [ %.promoted2434, %.._crit_edge2437_crit_edge ], [ %4446, %4455 ]
  %4432 = add nsw i32 %.lcssa1976, -8
  %4433 = lshr i32 %4431, %4432
  store i32 %4432, ptr %4424, align 4, !tbaa !12
  %4434 = and i32 %4433, 255
  %.not1874 = icmp eq i32 %4434, 56
  br i1 %.not1874, label %4457, label %.loopexit

4435:                                             ; preds = %.lr.ph2436, %4455
  %4436 = phi i32 [ %.promoted2440, %.lr.ph2436 ], [ %4448, %4455 ]
  %4437 = phi i32 [ %.promoted2434, %.lr.ph2436 ], [ %4446, %4455 ]
  %4438 = icmp eq i32 %4436, 0
  br i1 %4438, label %.loopexit, label %4439

4439:                                             ; preds = %4435
  %4440 = load i32, ptr %4428, align 8, !tbaa !37
  %4441 = shl i32 %4440, 8
  %4442 = load ptr, ptr %4426, align 8, !tbaa !40
  %4443 = load i8, ptr %4442, align 1, !tbaa !41
  %4444 = zext i8 %4443 to i32
  %4445 = or disjoint i32 %4441, %4444
  store i32 %4445, ptr %4428, align 8, !tbaa !37
  %4446 = add nsw i32 %4437, 8
  store i32 %4446, ptr %4424, align 4, !tbaa !12
  %4447 = getelementptr inbounds i8, ptr %4442, i64 1
  store ptr %4447, ptr %4426, align 8, !tbaa !40
  %4448 = add i32 %4436, -1
  store i32 %4448, ptr %4427, align 8, !tbaa !38
  %4449 = load i32, ptr %4429, align 4, !tbaa !42
  %4450 = add i32 %4449, 1
  store i32 %4450, ptr %4429, align 4, !tbaa !42
  %4451 = icmp eq i32 %4450, 0
  br i1 %4451, label %4452, label %4455

4452:                                             ; preds = %4439
  %4453 = load i32, ptr %4430, align 8, !tbaa !43
  %4454 = add i32 %4453, 1
  store i32 %4454, ptr %4430, align 8, !tbaa !43
  br label %4455

4455:                                             ; preds = %4452, %4439
  %4456 = icmp sgt i32 %4437, -1
  br i1 %4456, label %._crit_edge2437, label %4435

4457:                                             ; preds = %._crit_edge2900, %._crit_edge2437
  %4458 = phi ptr [ %58, %._crit_edge2900 ], [ %4376, %._crit_edge2437 ]
  %4459 = phi ptr [ %57, %._crit_edge2900 ], [ %4377, %._crit_edge2437 ]
  %4460 = phi ptr [ %56, %._crit_edge2900 ], [ %4378, %._crit_edge2437 ]
  %4461 = phi ptr [ %55, %._crit_edge2900 ], [ %4379, %._crit_edge2437 ]
  %4462 = phi ptr [ %54, %._crit_edge2900 ], [ %4380, %._crit_edge2437 ]
  %4463 = phi ptr [ %53, %._crit_edge2900 ], [ %4381, %._crit_edge2437 ]
  %4464 = phi ptr [ %52, %._crit_edge2900 ], [ %4382, %._crit_edge2437 ]
  %4465 = phi ptr [ %51, %._crit_edge2900 ], [ %4383, %._crit_edge2437 ]
  %4466 = phi ptr [ %50, %._crit_edge2900 ], [ %4384, %._crit_edge2437 ]
  %4467 = phi ptr [ %49, %._crit_edge2900 ], [ %4385, %._crit_edge2437 ]
  %4468 = phi ptr [ %48, %._crit_edge2900 ], [ %4386, %._crit_edge2437 ]
  %4469 = phi ptr [ %47, %._crit_edge2900 ], [ %4387, %._crit_edge2437 ]
  %4470 = phi ptr [ %46, %._crit_edge2900 ], [ %4388, %._crit_edge2437 ]
  %4471 = phi ptr [ %45, %._crit_edge2900 ], [ %4389, %._crit_edge2437 ]
  %4472 = phi ptr [ %44, %._crit_edge2900 ], [ %4390, %._crit_edge2437 ]
  %4473 = phi ptr [ %43, %._crit_edge2900 ], [ %4391, %._crit_edge2437 ]
  %4474 = phi ptr [ %42, %._crit_edge2900 ], [ %4392, %._crit_edge2437 ]
  %4475 = phi ptr [ %41, %._crit_edge2900 ], [ %4393, %._crit_edge2437 ]
  %4476 = phi ptr [ %40, %._crit_edge2900 ], [ %4394, %._crit_edge2437 ]
  %4477 = phi ptr [ %39, %._crit_edge2900 ], [ %4395, %._crit_edge2437 ]
  %4478 = phi ptr [ %38, %._crit_edge2900 ], [ %4396, %._crit_edge2437 ]
  %4479 = phi ptr [ %37, %._crit_edge2900 ], [ %4397, %._crit_edge2437 ]
  %4480 = phi ptr [ %36, %._crit_edge2900 ], [ %4398, %._crit_edge2437 ]
  %4481 = phi ptr [ %35, %._crit_edge2900 ], [ %4399, %._crit_edge2437 ]
  %4482 = phi i32 [ %.pre, %._crit_edge2900 ], [ %4400, %._crit_edge2437 ]
  %4483 = phi i32 [ %.pre2711, %._crit_edge2900 ], [ %4401, %._crit_edge2437 ]
  %4484 = phi i32 [ %.pre2713, %._crit_edge2900 ], [ %4402, %._crit_edge2437 ]
  %4485 = phi i32 [ %.pre2715, %._crit_edge2900 ], [ %4403, %._crit_edge2437 ]
  %4486 = phi i32 [ %.pre2717, %._crit_edge2900 ], [ %4404, %._crit_edge2437 ]
  %4487 = phi i32 [ %.pre2719, %._crit_edge2900 ], [ %4405, %._crit_edge2437 ]
  %4488 = phi i32 [ %.pre2721, %._crit_edge2900 ], [ %4406, %._crit_edge2437 ]
  %4489 = phi i32 [ %.pre2723, %._crit_edge2900 ], [ %4407, %._crit_edge2437 ]
  %4490 = phi i32 [ %.pre2725, %._crit_edge2900 ], [ %4408, %._crit_edge2437 ]
  %4491 = phi i32 [ %.pre2727, %._crit_edge2900 ], [ %4409, %._crit_edge2437 ]
  %4492 = phi i32 [ %.pre2729, %._crit_edge2900 ], [ %4410, %._crit_edge2437 ]
  %4493 = phi i32 [ %.pre2731, %._crit_edge2900 ], [ %4411, %._crit_edge2437 ]
  %4494 = phi i32 [ %.pre2733, %._crit_edge2900 ], [ %4412, %._crit_edge2437 ]
  %4495 = phi i32 [ %.pre2735, %._crit_edge2900 ], [ %4413, %._crit_edge2437 ]
  %4496 = phi i32 [ %.pre2737, %._crit_edge2900 ], [ %4414, %._crit_edge2437 ]
  %4497 = phi i32 [ %.pre2739, %._crit_edge2900 ], [ %4415, %._crit_edge2437 ]
  %4498 = phi i32 [ %.pre2741, %._crit_edge2900 ], [ %4416, %._crit_edge2437 ]
  %4499 = phi i32 [ %.pre2743, %._crit_edge2900 ], [ %4417, %._crit_edge2437 ]
  %4500 = phi i32 [ %.pre2745, %._crit_edge2900 ], [ %4418, %._crit_edge2437 ]
  %4501 = phi i32 [ %.pre2747, %._crit_edge2900 ], [ %4419, %._crit_edge2437 ]
  %4502 = phi i32 [ %.pre2749, %._crit_edge2900 ], [ %4420, %._crit_edge2437 ]
  %4503 = phi ptr [ %.pre2751, %._crit_edge2900 ], [ %4421, %._crit_edge2437 ]
  %4504 = phi ptr [ %.pre2753, %._crit_edge2900 ], [ %4422, %._crit_edge2437 ]
  %4505 = phi ptr [ %.pre2755, %._crit_edge2900 ], [ %4423, %._crit_edge2437 ]
  %.promoted2441 = phi i32 [ %.promoted2441.pre, %._crit_edge2900 ], [ %4432, %._crit_edge2437 ]
  store i32 45, ptr %4, align 8, !tbaa !11
  %4506 = getelementptr inbounds i8, ptr %0, i64 36
  %4507 = icmp sgt i32 %.promoted2441, 7
  br i1 %4507, label %.._crit_edge2444_crit_edge, label %.lr.ph2443

.._crit_edge2444_crit_edge:                       ; preds = %4457
  %.phi.trans.insert2903 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2904 = load i32, ptr %.phi.trans.insert2903, align 8, !tbaa !37
  %4508 = add nsw i32 %.promoted2441, -8
  br label %._crit_edge2444

.lr.ph2443:                                       ; preds = %4457
  %4509 = load ptr, ptr %0, align 8, !tbaa !5
  %4510 = getelementptr inbounds i8, ptr %4509, i64 8
  %4511 = getelementptr inbounds i8, ptr %0, i64 32
  %4512 = getelementptr inbounds i8, ptr %4509, i64 12
  %4513 = getelementptr inbounds i8, ptr %4509, i64 16
  %.promoted2447 = load i32, ptr %4510, align 8, !tbaa !38
  br label %4517

._crit_edge2444:                                  ; preds = %4537, %.._crit_edge2444_crit_edge
  %4514 = phi i32 [ %.pre2904, %.._crit_edge2444_crit_edge ], [ %4527, %4537 ]
  %.lcssa1972 = phi i32 [ %4508, %.._crit_edge2444_crit_edge ], [ %4519, %4537 ]
  %4515 = lshr i32 %4514, %.lcssa1972
  store i32 %.lcssa1972, ptr %4506, align 4, !tbaa !12
  %4516 = and i32 %4515, 255
  %.not1875 = icmp eq i32 %4516, 80
  br i1 %.not1875, label %4539, label %.loopexit

4517:                                             ; preds = %.lr.ph2443, %4537
  %4518 = phi i32 [ %.promoted2447, %.lr.ph2443 ], [ %4530, %4537 ]
  %4519 = phi i32 [ %.promoted2441, %.lr.ph2443 ], [ %4528, %4537 ]
  %4520 = icmp eq i32 %4518, 0
  br i1 %4520, label %.loopexit, label %4521

4521:                                             ; preds = %4517
  %4522 = load i32, ptr %4511, align 8, !tbaa !37
  %4523 = shl i32 %4522, 8
  %4524 = load ptr, ptr %4509, align 8, !tbaa !40
  %4525 = load i8, ptr %4524, align 1, !tbaa !41
  %4526 = zext i8 %4525 to i32
  %4527 = or disjoint i32 %4523, %4526
  store i32 %4527, ptr %4511, align 8, !tbaa !37
  %4528 = add nsw i32 %4519, 8
  store i32 %4528, ptr %4506, align 4, !tbaa !12
  %4529 = getelementptr inbounds i8, ptr %4524, i64 1
  store ptr %4529, ptr %4509, align 8, !tbaa !40
  %4530 = add i32 %4518, -1
  store i32 %4530, ptr %4510, align 8, !tbaa !38
  %4531 = load i32, ptr %4512, align 4, !tbaa !42
  %4532 = add i32 %4531, 1
  store i32 %4532, ptr %4512, align 4, !tbaa !42
  %4533 = icmp eq i32 %4532, 0
  br i1 %4533, label %4534, label %4537

4534:                                             ; preds = %4521
  %4535 = load i32, ptr %4513, align 8, !tbaa !43
  %4536 = add i32 %4535, 1
  store i32 %4536, ptr %4513, align 8, !tbaa !43
  br label %4537

4537:                                             ; preds = %4534, %4521
  %4538 = icmp sgt i32 %4519, -1
  br i1 %4538, label %._crit_edge2444, label %4517

4539:                                             ; preds = %._crit_edge2905, %._crit_edge2444
  %4540 = phi ptr [ %58, %._crit_edge2905 ], [ %4458, %._crit_edge2444 ]
  %4541 = phi ptr [ %57, %._crit_edge2905 ], [ %4459, %._crit_edge2444 ]
  %4542 = phi ptr [ %56, %._crit_edge2905 ], [ %4460, %._crit_edge2444 ]
  %4543 = phi ptr [ %55, %._crit_edge2905 ], [ %4461, %._crit_edge2444 ]
  %4544 = phi ptr [ %54, %._crit_edge2905 ], [ %4462, %._crit_edge2444 ]
  %4545 = phi ptr [ %53, %._crit_edge2905 ], [ %4463, %._crit_edge2444 ]
  %4546 = phi ptr [ %52, %._crit_edge2905 ], [ %4464, %._crit_edge2444 ]
  %4547 = phi ptr [ %51, %._crit_edge2905 ], [ %4465, %._crit_edge2444 ]
  %4548 = phi ptr [ %50, %._crit_edge2905 ], [ %4466, %._crit_edge2444 ]
  %4549 = phi ptr [ %49, %._crit_edge2905 ], [ %4467, %._crit_edge2444 ]
  %4550 = phi ptr [ %48, %._crit_edge2905 ], [ %4468, %._crit_edge2444 ]
  %4551 = phi ptr [ %47, %._crit_edge2905 ], [ %4469, %._crit_edge2444 ]
  %4552 = phi ptr [ %46, %._crit_edge2905 ], [ %4470, %._crit_edge2444 ]
  %4553 = phi ptr [ %45, %._crit_edge2905 ], [ %4471, %._crit_edge2444 ]
  %4554 = phi ptr [ %44, %._crit_edge2905 ], [ %4472, %._crit_edge2444 ]
  %4555 = phi ptr [ %43, %._crit_edge2905 ], [ %4473, %._crit_edge2444 ]
  %4556 = phi ptr [ %42, %._crit_edge2905 ], [ %4474, %._crit_edge2444 ]
  %4557 = phi ptr [ %41, %._crit_edge2905 ], [ %4475, %._crit_edge2444 ]
  %4558 = phi ptr [ %40, %._crit_edge2905 ], [ %4476, %._crit_edge2444 ]
  %4559 = phi ptr [ %39, %._crit_edge2905 ], [ %4477, %._crit_edge2444 ]
  %4560 = phi ptr [ %38, %._crit_edge2905 ], [ %4478, %._crit_edge2444 ]
  %4561 = phi ptr [ %37, %._crit_edge2905 ], [ %4479, %._crit_edge2444 ]
  %4562 = phi ptr [ %36, %._crit_edge2905 ], [ %4480, %._crit_edge2444 ]
  %4563 = phi ptr [ %35, %._crit_edge2905 ], [ %4481, %._crit_edge2444 ]
  %4564 = phi i32 [ %.pre, %._crit_edge2905 ], [ %4482, %._crit_edge2444 ]
  %4565 = phi i32 [ %.pre2711, %._crit_edge2905 ], [ %4483, %._crit_edge2444 ]
  %4566 = phi i32 [ %.pre2713, %._crit_edge2905 ], [ %4484, %._crit_edge2444 ]
  %4567 = phi i32 [ %.pre2715, %._crit_edge2905 ], [ %4485, %._crit_edge2444 ]
  %4568 = phi i32 [ %.pre2717, %._crit_edge2905 ], [ %4486, %._crit_edge2444 ]
  %4569 = phi i32 [ %.pre2719, %._crit_edge2905 ], [ %4487, %._crit_edge2444 ]
  %4570 = phi i32 [ %.pre2721, %._crit_edge2905 ], [ %4488, %._crit_edge2444 ]
  %4571 = phi i32 [ %.pre2723, %._crit_edge2905 ], [ %4489, %._crit_edge2444 ]
  %4572 = phi i32 [ %.pre2725, %._crit_edge2905 ], [ %4490, %._crit_edge2444 ]
  %4573 = phi i32 [ %.pre2727, %._crit_edge2905 ], [ %4491, %._crit_edge2444 ]
  %4574 = phi i32 [ %.pre2729, %._crit_edge2905 ], [ %4492, %._crit_edge2444 ]
  %4575 = phi i32 [ %.pre2731, %._crit_edge2905 ], [ %4493, %._crit_edge2444 ]
  %4576 = phi i32 [ %.pre2733, %._crit_edge2905 ], [ %4494, %._crit_edge2444 ]
  %4577 = phi i32 [ %.pre2735, %._crit_edge2905 ], [ %4495, %._crit_edge2444 ]
  %4578 = phi i32 [ %.pre2737, %._crit_edge2905 ], [ %4496, %._crit_edge2444 ]
  %4579 = phi i32 [ %.pre2739, %._crit_edge2905 ], [ %4497, %._crit_edge2444 ]
  %4580 = phi i32 [ %.pre2741, %._crit_edge2905 ], [ %4498, %._crit_edge2444 ]
  %4581 = phi i32 [ %.pre2743, %._crit_edge2905 ], [ %4499, %._crit_edge2444 ]
  %4582 = phi i32 [ %.pre2745, %._crit_edge2905 ], [ %4500, %._crit_edge2444 ]
  %4583 = phi i32 [ %.pre2747, %._crit_edge2905 ], [ %4501, %._crit_edge2444 ]
  %4584 = phi i32 [ %.pre2749, %._crit_edge2905 ], [ %4502, %._crit_edge2444 ]
  %4585 = phi ptr [ %.pre2751, %._crit_edge2905 ], [ %4503, %._crit_edge2444 ]
  %4586 = phi ptr [ %.pre2753, %._crit_edge2905 ], [ %4504, %._crit_edge2444 ]
  %4587 = phi ptr [ %.pre2755, %._crit_edge2905 ], [ %4505, %._crit_edge2444 ]
  %.promoted2448 = phi i32 [ %.promoted2448.pre, %._crit_edge2905 ], [ %.lcssa1972, %._crit_edge2444 ]
  store i32 46, ptr %4, align 8, !tbaa !11
  %4588 = getelementptr inbounds i8, ptr %0, i64 36
  %4589 = icmp sgt i32 %.promoted2448, 7
  br i1 %4589, label %.._crit_edge2451_crit_edge, label %.lr.ph2450

.._crit_edge2451_crit_edge:                       ; preds = %4539
  %.phi.trans.insert2908 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2909 = load i32, ptr %.phi.trans.insert2908, align 8, !tbaa !37
  %4590 = add nsw i32 %.promoted2448, -8
  br label %._crit_edge2451

.lr.ph2450:                                       ; preds = %4539
  %4591 = load ptr, ptr %0, align 8, !tbaa !5
  %4592 = getelementptr inbounds i8, ptr %4591, i64 8
  %4593 = getelementptr inbounds i8, ptr %0, i64 32
  %4594 = getelementptr inbounds i8, ptr %4591, i64 12
  %4595 = getelementptr inbounds i8, ptr %4591, i64 16
  %.promoted2454 = load i32, ptr %4592, align 8, !tbaa !38
  br label %4599

._crit_edge2451:                                  ; preds = %4619, %.._crit_edge2451_crit_edge
  %4596 = phi i32 [ %.pre2909, %.._crit_edge2451_crit_edge ], [ %4609, %4619 ]
  %.lcssa1968 = phi i32 [ %4590, %.._crit_edge2451_crit_edge ], [ %4601, %4619 ]
  %4597 = lshr i32 %4596, %.lcssa1968
  store i32 %.lcssa1968, ptr %4588, align 4, !tbaa !12
  %4598 = and i32 %4597, 255
  %.not1876 = icmp eq i32 %4598, 144
  br i1 %.not1876, label %4621, label %.loopexit

4599:                                             ; preds = %.lr.ph2450, %4619
  %4600 = phi i32 [ %.promoted2454, %.lr.ph2450 ], [ %4612, %4619 ]
  %4601 = phi i32 [ %.promoted2448, %.lr.ph2450 ], [ %4610, %4619 ]
  %4602 = icmp eq i32 %4600, 0
  br i1 %4602, label %.loopexit, label %4603

4603:                                             ; preds = %4599
  %4604 = load i32, ptr %4593, align 8, !tbaa !37
  %4605 = shl i32 %4604, 8
  %4606 = load ptr, ptr %4591, align 8, !tbaa !40
  %4607 = load i8, ptr %4606, align 1, !tbaa !41
  %4608 = zext i8 %4607 to i32
  %4609 = or disjoint i32 %4605, %4608
  store i32 %4609, ptr %4593, align 8, !tbaa !37
  %4610 = add nsw i32 %4601, 8
  store i32 %4610, ptr %4588, align 4, !tbaa !12
  %4611 = getelementptr inbounds i8, ptr %4606, i64 1
  store ptr %4611, ptr %4591, align 8, !tbaa !40
  %4612 = add i32 %4600, -1
  store i32 %4612, ptr %4592, align 8, !tbaa !38
  %4613 = load i32, ptr %4594, align 4, !tbaa !42
  %4614 = add i32 %4613, 1
  store i32 %4614, ptr %4594, align 4, !tbaa !42
  %4615 = icmp eq i32 %4614, 0
  br i1 %4615, label %4616, label %4619

4616:                                             ; preds = %4603
  %4617 = load i32, ptr %4595, align 8, !tbaa !43
  %4618 = add i32 %4617, 1
  store i32 %4618, ptr %4595, align 8, !tbaa !43
  br label %4619

4619:                                             ; preds = %4616, %4603
  %4620 = icmp sgt i32 %4601, -1
  br i1 %4620, label %._crit_edge2451, label %4599

4621:                                             ; preds = %._crit_edge2451
  %4622 = getelementptr inbounds i8, ptr %0, i64 3180
  store i32 0, ptr %4622, align 4, !tbaa !106
  br label %4623

4623:                                             ; preds = %._crit_edge2910, %4621
  %4624 = phi ptr [ %58, %._crit_edge2910 ], [ %4540, %4621 ]
  %4625 = phi ptr [ %57, %._crit_edge2910 ], [ %4541, %4621 ]
  %4626 = phi ptr [ %56, %._crit_edge2910 ], [ %4542, %4621 ]
  %4627 = phi ptr [ %55, %._crit_edge2910 ], [ %4543, %4621 ]
  %4628 = phi ptr [ %54, %._crit_edge2910 ], [ %4544, %4621 ]
  %4629 = phi ptr [ %53, %._crit_edge2910 ], [ %4545, %4621 ]
  %4630 = phi ptr [ %52, %._crit_edge2910 ], [ %4546, %4621 ]
  %4631 = phi ptr [ %51, %._crit_edge2910 ], [ %4547, %4621 ]
  %4632 = phi ptr [ %50, %._crit_edge2910 ], [ %4548, %4621 ]
  %4633 = phi ptr [ %49, %._crit_edge2910 ], [ %4549, %4621 ]
  %4634 = phi ptr [ %48, %._crit_edge2910 ], [ %4550, %4621 ]
  %4635 = phi ptr [ %47, %._crit_edge2910 ], [ %4551, %4621 ]
  %4636 = phi ptr [ %46, %._crit_edge2910 ], [ %4552, %4621 ]
  %4637 = phi ptr [ %45, %._crit_edge2910 ], [ %4553, %4621 ]
  %4638 = phi ptr [ %44, %._crit_edge2910 ], [ %4554, %4621 ]
  %4639 = phi ptr [ %43, %._crit_edge2910 ], [ %4555, %4621 ]
  %4640 = phi ptr [ %42, %._crit_edge2910 ], [ %4556, %4621 ]
  %4641 = phi ptr [ %41, %._crit_edge2910 ], [ %4557, %4621 ]
  %4642 = phi ptr [ %40, %._crit_edge2910 ], [ %4558, %4621 ]
  %4643 = phi ptr [ %39, %._crit_edge2910 ], [ %4559, %4621 ]
  %4644 = phi ptr [ %38, %._crit_edge2910 ], [ %4560, %4621 ]
  %4645 = phi ptr [ %37, %._crit_edge2910 ], [ %4561, %4621 ]
  %4646 = phi ptr [ %36, %._crit_edge2910 ], [ %4562, %4621 ]
  %4647 = phi ptr [ %35, %._crit_edge2910 ], [ %4563, %4621 ]
  %4648 = phi i32 [ %.pre, %._crit_edge2910 ], [ %4564, %4621 ]
  %4649 = phi i32 [ %.pre2711, %._crit_edge2910 ], [ %4565, %4621 ]
  %4650 = phi i32 [ %.pre2713, %._crit_edge2910 ], [ %4566, %4621 ]
  %4651 = phi i32 [ %.pre2715, %._crit_edge2910 ], [ %4567, %4621 ]
  %4652 = phi i32 [ %.pre2717, %._crit_edge2910 ], [ %4568, %4621 ]
  %4653 = phi i32 [ %.pre2719, %._crit_edge2910 ], [ %4569, %4621 ]
  %4654 = phi i32 [ %.pre2721, %._crit_edge2910 ], [ %4570, %4621 ]
  %4655 = phi i32 [ %.pre2723, %._crit_edge2910 ], [ %4571, %4621 ]
  %4656 = phi i32 [ %.pre2725, %._crit_edge2910 ], [ %4572, %4621 ]
  %4657 = phi i32 [ %.pre2727, %._crit_edge2910 ], [ %4573, %4621 ]
  %4658 = phi i32 [ %.pre2729, %._crit_edge2910 ], [ %4574, %4621 ]
  %4659 = phi i32 [ %.pre2731, %._crit_edge2910 ], [ %4575, %4621 ]
  %4660 = phi i32 [ %.pre2733, %._crit_edge2910 ], [ %4576, %4621 ]
  %4661 = phi i32 [ %.pre2735, %._crit_edge2910 ], [ %4577, %4621 ]
  %4662 = phi i32 [ %.pre2737, %._crit_edge2910 ], [ %4578, %4621 ]
  %4663 = phi i32 [ %.pre2739, %._crit_edge2910 ], [ %4579, %4621 ]
  %4664 = phi i32 [ %.pre2741, %._crit_edge2910 ], [ %4580, %4621 ]
  %4665 = phi i32 [ %.pre2743, %._crit_edge2910 ], [ %4581, %4621 ]
  %4666 = phi i32 [ %.pre2745, %._crit_edge2910 ], [ %4582, %4621 ]
  %4667 = phi i32 [ %.pre2747, %._crit_edge2910 ], [ %4583, %4621 ]
  %4668 = phi i32 [ %.pre2749, %._crit_edge2910 ], [ %4584, %4621 ]
  %4669 = phi ptr [ %.pre2751, %._crit_edge2910 ], [ %4585, %4621 ]
  %4670 = phi ptr [ %.pre2753, %._crit_edge2910 ], [ %4586, %4621 ]
  %4671 = phi ptr [ %.pre2755, %._crit_edge2910 ], [ %4587, %4621 ]
  %.promoted2455 = phi i32 [ %.promoted2455.pre, %._crit_edge2910 ], [ %.lcssa1968, %4621 ]
  store i32 47, ptr %4, align 8, !tbaa !11
  %4672 = getelementptr inbounds i8, ptr %0, i64 36
  %4673 = icmp sgt i32 %.promoted2455, 7
  br i1 %4673, label %.._crit_edge2458_crit_edge, label %.lr.ph2457

.._crit_edge2458_crit_edge:                       ; preds = %4623
  %.phi.trans.insert2913 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2914 = load i32, ptr %.phi.trans.insert2913, align 8, !tbaa !37
  %4674 = add nsw i32 %.promoted2455, -8
  br label %._crit_edge2458

.lr.ph2457:                                       ; preds = %4623
  %4675 = load ptr, ptr %0, align 8, !tbaa !5
  %4676 = getelementptr inbounds i8, ptr %4675, i64 8
  %4677 = getelementptr inbounds i8, ptr %0, i64 32
  %4678 = getelementptr inbounds i8, ptr %4675, i64 12
  %4679 = getelementptr inbounds i8, ptr %4675, i64 16
  %.promoted2461 = load i32, ptr %4676, align 8, !tbaa !38
  br label %4687

._crit_edge2458:                                  ; preds = %4707, %.._crit_edge2458_crit_edge
  %4680 = phi i32 [ %.pre2914, %.._crit_edge2458_crit_edge ], [ %4697, %4707 ]
  %.lcssa1964 = phi i32 [ %4674, %.._crit_edge2458_crit_edge ], [ %4689, %4707 ]
  %4681 = lshr i32 %4680, %.lcssa1964
  store i32 %.lcssa1964, ptr %4672, align 4, !tbaa !12
  %4682 = getelementptr inbounds i8, ptr %0, i64 3180
  %4683 = load i32, ptr %4682, align 4, !tbaa !106
  %4684 = shl i32 %4683, 8
  %4685 = and i32 %4681, 255
  %4686 = or disjoint i32 %4684, %4685
  store i32 %4686, ptr %4682, align 4, !tbaa !106
  br label %4709

4687:                                             ; preds = %.lr.ph2457, %4707
  %4688 = phi i32 [ %.promoted2461, %.lr.ph2457 ], [ %4700, %4707 ]
  %4689 = phi i32 [ %.promoted2455, %.lr.ph2457 ], [ %4698, %4707 ]
  %4690 = icmp eq i32 %4688, 0
  br i1 %4690, label %.loopexit, label %4691

4691:                                             ; preds = %4687
  %4692 = load i32, ptr %4677, align 8, !tbaa !37
  %4693 = shl i32 %4692, 8
  %4694 = load ptr, ptr %4675, align 8, !tbaa !40
  %4695 = load i8, ptr %4694, align 1, !tbaa !41
  %4696 = zext i8 %4695 to i32
  %4697 = or disjoint i32 %4693, %4696
  store i32 %4697, ptr %4677, align 8, !tbaa !37
  %4698 = add nsw i32 %4689, 8
  store i32 %4698, ptr %4672, align 4, !tbaa !12
  %4699 = getelementptr inbounds i8, ptr %4694, i64 1
  store ptr %4699, ptr %4675, align 8, !tbaa !40
  %4700 = add i32 %4688, -1
  store i32 %4700, ptr %4676, align 8, !tbaa !38
  %4701 = load i32, ptr %4678, align 4, !tbaa !42
  %4702 = add i32 %4701, 1
  store i32 %4702, ptr %4678, align 4, !tbaa !42
  %4703 = icmp eq i32 %4702, 0
  br i1 %4703, label %4704, label %4707

4704:                                             ; preds = %4691
  %4705 = load i32, ptr %4679, align 8, !tbaa !43
  %4706 = add i32 %4705, 1
  store i32 %4706, ptr %4679, align 8, !tbaa !43
  br label %4707

4707:                                             ; preds = %4704, %4691
  %4708 = icmp sgt i32 %4689, -1
  br i1 %4708, label %._crit_edge2458, label %4687

4709:                                             ; preds = %._crit_edge2915, %._crit_edge2458
  %4710 = phi ptr [ %58, %._crit_edge2915 ], [ %4624, %._crit_edge2458 ]
  %4711 = phi ptr [ %57, %._crit_edge2915 ], [ %4625, %._crit_edge2458 ]
  %4712 = phi ptr [ %56, %._crit_edge2915 ], [ %4626, %._crit_edge2458 ]
  %4713 = phi ptr [ %55, %._crit_edge2915 ], [ %4627, %._crit_edge2458 ]
  %4714 = phi ptr [ %54, %._crit_edge2915 ], [ %4628, %._crit_edge2458 ]
  %4715 = phi ptr [ %53, %._crit_edge2915 ], [ %4629, %._crit_edge2458 ]
  %4716 = phi ptr [ %52, %._crit_edge2915 ], [ %4630, %._crit_edge2458 ]
  %4717 = phi ptr [ %51, %._crit_edge2915 ], [ %4631, %._crit_edge2458 ]
  %4718 = phi ptr [ %50, %._crit_edge2915 ], [ %4632, %._crit_edge2458 ]
  %4719 = phi ptr [ %49, %._crit_edge2915 ], [ %4633, %._crit_edge2458 ]
  %4720 = phi ptr [ %48, %._crit_edge2915 ], [ %4634, %._crit_edge2458 ]
  %4721 = phi ptr [ %47, %._crit_edge2915 ], [ %4635, %._crit_edge2458 ]
  %4722 = phi ptr [ %46, %._crit_edge2915 ], [ %4636, %._crit_edge2458 ]
  %4723 = phi ptr [ %45, %._crit_edge2915 ], [ %4637, %._crit_edge2458 ]
  %4724 = phi ptr [ %44, %._crit_edge2915 ], [ %4638, %._crit_edge2458 ]
  %4725 = phi ptr [ %43, %._crit_edge2915 ], [ %4639, %._crit_edge2458 ]
  %4726 = phi ptr [ %42, %._crit_edge2915 ], [ %4640, %._crit_edge2458 ]
  %4727 = phi ptr [ %41, %._crit_edge2915 ], [ %4641, %._crit_edge2458 ]
  %4728 = phi ptr [ %40, %._crit_edge2915 ], [ %4642, %._crit_edge2458 ]
  %4729 = phi ptr [ %39, %._crit_edge2915 ], [ %4643, %._crit_edge2458 ]
  %4730 = phi ptr [ %38, %._crit_edge2915 ], [ %4644, %._crit_edge2458 ]
  %4731 = phi ptr [ %37, %._crit_edge2915 ], [ %4645, %._crit_edge2458 ]
  %4732 = phi ptr [ %36, %._crit_edge2915 ], [ %4646, %._crit_edge2458 ]
  %4733 = phi ptr [ %35, %._crit_edge2915 ], [ %4647, %._crit_edge2458 ]
  %4734 = phi i32 [ %.pre, %._crit_edge2915 ], [ %4648, %._crit_edge2458 ]
  %4735 = phi i32 [ %.pre2711, %._crit_edge2915 ], [ %4649, %._crit_edge2458 ]
  %4736 = phi i32 [ %.pre2713, %._crit_edge2915 ], [ %4650, %._crit_edge2458 ]
  %4737 = phi i32 [ %.pre2715, %._crit_edge2915 ], [ %4651, %._crit_edge2458 ]
  %4738 = phi i32 [ %.pre2717, %._crit_edge2915 ], [ %4652, %._crit_edge2458 ]
  %4739 = phi i32 [ %.pre2719, %._crit_edge2915 ], [ %4653, %._crit_edge2458 ]
  %4740 = phi i32 [ %.pre2721, %._crit_edge2915 ], [ %4654, %._crit_edge2458 ]
  %4741 = phi i32 [ %.pre2723, %._crit_edge2915 ], [ %4655, %._crit_edge2458 ]
  %4742 = phi i32 [ %.pre2725, %._crit_edge2915 ], [ %4656, %._crit_edge2458 ]
  %4743 = phi i32 [ %.pre2727, %._crit_edge2915 ], [ %4657, %._crit_edge2458 ]
  %4744 = phi i32 [ %.pre2729, %._crit_edge2915 ], [ %4658, %._crit_edge2458 ]
  %4745 = phi i32 [ %.pre2731, %._crit_edge2915 ], [ %4659, %._crit_edge2458 ]
  %4746 = phi i32 [ %.pre2733, %._crit_edge2915 ], [ %4660, %._crit_edge2458 ]
  %4747 = phi i32 [ %.pre2735, %._crit_edge2915 ], [ %4661, %._crit_edge2458 ]
  %4748 = phi i32 [ %.pre2737, %._crit_edge2915 ], [ %4662, %._crit_edge2458 ]
  %4749 = phi i32 [ %.pre2739, %._crit_edge2915 ], [ %4663, %._crit_edge2458 ]
  %4750 = phi i32 [ %.pre2741, %._crit_edge2915 ], [ %4664, %._crit_edge2458 ]
  %4751 = phi i32 [ %.pre2743, %._crit_edge2915 ], [ %4665, %._crit_edge2458 ]
  %4752 = phi i32 [ %.pre2745, %._crit_edge2915 ], [ %4666, %._crit_edge2458 ]
  %4753 = phi i32 [ %.pre2747, %._crit_edge2915 ], [ %4667, %._crit_edge2458 ]
  %4754 = phi i32 [ %.pre2749, %._crit_edge2915 ], [ %4668, %._crit_edge2458 ]
  %4755 = phi ptr [ %.pre2751, %._crit_edge2915 ], [ %4669, %._crit_edge2458 ]
  %4756 = phi ptr [ %.pre2753, %._crit_edge2915 ], [ %4670, %._crit_edge2458 ]
  %4757 = phi ptr [ %.pre2755, %._crit_edge2915 ], [ %4671, %._crit_edge2458 ]
  %.promoted2462 = phi i32 [ %.promoted2462.pre, %._crit_edge2915 ], [ %.lcssa1964, %._crit_edge2458 ]
  store i32 48, ptr %4, align 8, !tbaa !11
  %4758 = getelementptr inbounds i8, ptr %0, i64 36
  %4759 = icmp sgt i32 %.promoted2462, 7
  br i1 %4759, label %.._crit_edge2465_crit_edge, label %.lr.ph2464

.._crit_edge2465_crit_edge:                       ; preds = %4709
  %.phi.trans.insert2918 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2919 = load i32, ptr %.phi.trans.insert2918, align 8, !tbaa !37
  %4760 = add nsw i32 %.promoted2462, -8
  br label %._crit_edge2465

.lr.ph2464:                                       ; preds = %4709
  %4761 = load ptr, ptr %0, align 8, !tbaa !5
  %4762 = getelementptr inbounds i8, ptr %4761, i64 8
  %4763 = getelementptr inbounds i8, ptr %0, i64 32
  %4764 = getelementptr inbounds i8, ptr %4761, i64 12
  %4765 = getelementptr inbounds i8, ptr %4761, i64 16
  %.promoted2468 = load i32, ptr %4762, align 8, !tbaa !38
  br label %4773

._crit_edge2465:                                  ; preds = %4793, %.._crit_edge2465_crit_edge
  %4766 = phi i32 [ %.pre2919, %.._crit_edge2465_crit_edge ], [ %4783, %4793 ]
  %.lcssa1960 = phi i32 [ %4760, %.._crit_edge2465_crit_edge ], [ %4775, %4793 ]
  %4767 = lshr i32 %4766, %.lcssa1960
  store i32 %.lcssa1960, ptr %4758, align 4, !tbaa !12
  %4768 = getelementptr inbounds i8, ptr %0, i64 3180
  %4769 = load i32, ptr %4768, align 4, !tbaa !106
  %4770 = shl i32 %4769, 8
  %4771 = and i32 %4767, 255
  %4772 = or disjoint i32 %4770, %4771
  store i32 %4772, ptr %4768, align 4, !tbaa !106
  br label %4795

4773:                                             ; preds = %.lr.ph2464, %4793
  %4774 = phi i32 [ %.promoted2468, %.lr.ph2464 ], [ %4786, %4793 ]
  %4775 = phi i32 [ %.promoted2462, %.lr.ph2464 ], [ %4784, %4793 ]
  %4776 = icmp eq i32 %4774, 0
  br i1 %4776, label %.loopexit, label %4777

4777:                                             ; preds = %4773
  %4778 = load i32, ptr %4763, align 8, !tbaa !37
  %4779 = shl i32 %4778, 8
  %4780 = load ptr, ptr %4761, align 8, !tbaa !40
  %4781 = load i8, ptr %4780, align 1, !tbaa !41
  %4782 = zext i8 %4781 to i32
  %4783 = or disjoint i32 %4779, %4782
  store i32 %4783, ptr %4763, align 8, !tbaa !37
  %4784 = add nsw i32 %4775, 8
  store i32 %4784, ptr %4758, align 4, !tbaa !12
  %4785 = getelementptr inbounds i8, ptr %4780, i64 1
  store ptr %4785, ptr %4761, align 8, !tbaa !40
  %4786 = add i32 %4774, -1
  store i32 %4786, ptr %4762, align 8, !tbaa !38
  %4787 = load i32, ptr %4764, align 4, !tbaa !42
  %4788 = add i32 %4787, 1
  store i32 %4788, ptr %4764, align 4, !tbaa !42
  %4789 = icmp eq i32 %4788, 0
  br i1 %4789, label %4790, label %4793

4790:                                             ; preds = %4777
  %4791 = load i32, ptr %4765, align 8, !tbaa !43
  %4792 = add i32 %4791, 1
  store i32 %4792, ptr %4765, align 8, !tbaa !43
  br label %4793

4793:                                             ; preds = %4790, %4777
  %4794 = icmp sgt i32 %4775, -1
  br i1 %4794, label %._crit_edge2465, label %4773

4795:                                             ; preds = %._crit_edge2920, %._crit_edge2465
  %4796 = phi ptr [ %58, %._crit_edge2920 ], [ %4710, %._crit_edge2465 ]
  %4797 = phi ptr [ %57, %._crit_edge2920 ], [ %4711, %._crit_edge2465 ]
  %4798 = phi ptr [ %56, %._crit_edge2920 ], [ %4712, %._crit_edge2465 ]
  %4799 = phi ptr [ %55, %._crit_edge2920 ], [ %4713, %._crit_edge2465 ]
  %4800 = phi ptr [ %54, %._crit_edge2920 ], [ %4714, %._crit_edge2465 ]
  %4801 = phi ptr [ %53, %._crit_edge2920 ], [ %4715, %._crit_edge2465 ]
  %4802 = phi ptr [ %52, %._crit_edge2920 ], [ %4716, %._crit_edge2465 ]
  %4803 = phi ptr [ %51, %._crit_edge2920 ], [ %4717, %._crit_edge2465 ]
  %4804 = phi ptr [ %50, %._crit_edge2920 ], [ %4718, %._crit_edge2465 ]
  %4805 = phi ptr [ %49, %._crit_edge2920 ], [ %4719, %._crit_edge2465 ]
  %4806 = phi ptr [ %48, %._crit_edge2920 ], [ %4720, %._crit_edge2465 ]
  %4807 = phi ptr [ %47, %._crit_edge2920 ], [ %4721, %._crit_edge2465 ]
  %4808 = phi ptr [ %46, %._crit_edge2920 ], [ %4722, %._crit_edge2465 ]
  %4809 = phi ptr [ %45, %._crit_edge2920 ], [ %4723, %._crit_edge2465 ]
  %4810 = phi ptr [ %44, %._crit_edge2920 ], [ %4724, %._crit_edge2465 ]
  %4811 = phi ptr [ %43, %._crit_edge2920 ], [ %4725, %._crit_edge2465 ]
  %4812 = phi ptr [ %42, %._crit_edge2920 ], [ %4726, %._crit_edge2465 ]
  %4813 = phi ptr [ %41, %._crit_edge2920 ], [ %4727, %._crit_edge2465 ]
  %4814 = phi ptr [ %40, %._crit_edge2920 ], [ %4728, %._crit_edge2465 ]
  %4815 = phi ptr [ %39, %._crit_edge2920 ], [ %4729, %._crit_edge2465 ]
  %4816 = phi ptr [ %38, %._crit_edge2920 ], [ %4730, %._crit_edge2465 ]
  %4817 = phi ptr [ %37, %._crit_edge2920 ], [ %4731, %._crit_edge2465 ]
  %4818 = phi ptr [ %36, %._crit_edge2920 ], [ %4732, %._crit_edge2465 ]
  %4819 = phi ptr [ %35, %._crit_edge2920 ], [ %4733, %._crit_edge2465 ]
  %4820 = phi i32 [ %.pre, %._crit_edge2920 ], [ %4734, %._crit_edge2465 ]
  %4821 = phi i32 [ %.pre2711, %._crit_edge2920 ], [ %4735, %._crit_edge2465 ]
  %4822 = phi i32 [ %.pre2713, %._crit_edge2920 ], [ %4736, %._crit_edge2465 ]
  %4823 = phi i32 [ %.pre2715, %._crit_edge2920 ], [ %4737, %._crit_edge2465 ]
  %4824 = phi i32 [ %.pre2717, %._crit_edge2920 ], [ %4738, %._crit_edge2465 ]
  %4825 = phi i32 [ %.pre2719, %._crit_edge2920 ], [ %4739, %._crit_edge2465 ]
  %4826 = phi i32 [ %.pre2721, %._crit_edge2920 ], [ %4740, %._crit_edge2465 ]
  %4827 = phi i32 [ %.pre2723, %._crit_edge2920 ], [ %4741, %._crit_edge2465 ]
  %4828 = phi i32 [ %.pre2725, %._crit_edge2920 ], [ %4742, %._crit_edge2465 ]
  %4829 = phi i32 [ %.pre2727, %._crit_edge2920 ], [ %4743, %._crit_edge2465 ]
  %4830 = phi i32 [ %.pre2729, %._crit_edge2920 ], [ %4744, %._crit_edge2465 ]
  %4831 = phi i32 [ %.pre2731, %._crit_edge2920 ], [ %4745, %._crit_edge2465 ]
  %4832 = phi i32 [ %.pre2733, %._crit_edge2920 ], [ %4746, %._crit_edge2465 ]
  %4833 = phi i32 [ %.pre2735, %._crit_edge2920 ], [ %4747, %._crit_edge2465 ]
  %4834 = phi i32 [ %.pre2737, %._crit_edge2920 ], [ %4748, %._crit_edge2465 ]
  %4835 = phi i32 [ %.pre2739, %._crit_edge2920 ], [ %4749, %._crit_edge2465 ]
  %4836 = phi i32 [ %.pre2741, %._crit_edge2920 ], [ %4750, %._crit_edge2465 ]
  %4837 = phi i32 [ %.pre2743, %._crit_edge2920 ], [ %4751, %._crit_edge2465 ]
  %4838 = phi i32 [ %.pre2745, %._crit_edge2920 ], [ %4752, %._crit_edge2465 ]
  %4839 = phi i32 [ %.pre2747, %._crit_edge2920 ], [ %4753, %._crit_edge2465 ]
  %4840 = phi i32 [ %.pre2749, %._crit_edge2920 ], [ %4754, %._crit_edge2465 ]
  %4841 = phi ptr [ %.pre2751, %._crit_edge2920 ], [ %4755, %._crit_edge2465 ]
  %4842 = phi ptr [ %.pre2753, %._crit_edge2920 ], [ %4756, %._crit_edge2465 ]
  %4843 = phi ptr [ %.pre2755, %._crit_edge2920 ], [ %4757, %._crit_edge2465 ]
  %.promoted2469 = phi i32 [ %.promoted2469.pre, %._crit_edge2920 ], [ %.lcssa1960, %._crit_edge2465 ]
  store i32 49, ptr %4, align 8, !tbaa !11
  %4844 = getelementptr inbounds i8, ptr %0, i64 36
  %4845 = icmp sgt i32 %.promoted2469, 7
  br i1 %4845, label %.._crit_edge2472_crit_edge, label %.lr.ph2471

.._crit_edge2472_crit_edge:                       ; preds = %4795
  %.phi.trans.insert2923 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2924 = load i32, ptr %.phi.trans.insert2923, align 8, !tbaa !37
  %4846 = add nsw i32 %.promoted2469, -8
  br label %._crit_edge2472

.lr.ph2471:                                       ; preds = %4795
  %4847 = load ptr, ptr %0, align 8, !tbaa !5
  %4848 = getelementptr inbounds i8, ptr %4847, i64 8
  %4849 = getelementptr inbounds i8, ptr %0, i64 32
  %4850 = getelementptr inbounds i8, ptr %4847, i64 12
  %4851 = getelementptr inbounds i8, ptr %4847, i64 16
  %.promoted2475 = load i32, ptr %4848, align 8, !tbaa !38
  br label %4859

._crit_edge2472:                                  ; preds = %4879, %.._crit_edge2472_crit_edge
  %4852 = phi i32 [ %.pre2924, %.._crit_edge2472_crit_edge ], [ %4869, %4879 ]
  %.lcssa1956 = phi i32 [ %4846, %.._crit_edge2472_crit_edge ], [ %4861, %4879 ]
  %4853 = lshr i32 %4852, %.lcssa1956
  store i32 %.lcssa1956, ptr %4844, align 4, !tbaa !12
  %4854 = getelementptr inbounds i8, ptr %0, i64 3180
  %4855 = load i32, ptr %4854, align 4, !tbaa !106
  %4856 = shl i32 %4855, 8
  %4857 = and i32 %4853, 255
  %4858 = or disjoint i32 %4856, %4857
  store i32 %4858, ptr %4854, align 4, !tbaa !106
  br label %4881

4859:                                             ; preds = %.lr.ph2471, %4879
  %4860 = phi i32 [ %.promoted2475, %.lr.ph2471 ], [ %4872, %4879 ]
  %4861 = phi i32 [ %.promoted2469, %.lr.ph2471 ], [ %4870, %4879 ]
  %4862 = icmp eq i32 %4860, 0
  br i1 %4862, label %.loopexit, label %4863

4863:                                             ; preds = %4859
  %4864 = load i32, ptr %4849, align 8, !tbaa !37
  %4865 = shl i32 %4864, 8
  %4866 = load ptr, ptr %4847, align 8, !tbaa !40
  %4867 = load i8, ptr %4866, align 1, !tbaa !41
  %4868 = zext i8 %4867 to i32
  %4869 = or disjoint i32 %4865, %4868
  store i32 %4869, ptr %4849, align 8, !tbaa !37
  %4870 = add nsw i32 %4861, 8
  store i32 %4870, ptr %4844, align 4, !tbaa !12
  %4871 = getelementptr inbounds i8, ptr %4866, i64 1
  store ptr %4871, ptr %4847, align 8, !tbaa !40
  %4872 = add i32 %4860, -1
  store i32 %4872, ptr %4848, align 8, !tbaa !38
  %4873 = load i32, ptr %4850, align 4, !tbaa !42
  %4874 = add i32 %4873, 1
  store i32 %4874, ptr %4850, align 4, !tbaa !42
  %4875 = icmp eq i32 %4874, 0
  br i1 %4875, label %4876, label %4879

4876:                                             ; preds = %4863
  %4877 = load i32, ptr %4851, align 8, !tbaa !43
  %4878 = add i32 %4877, 1
  store i32 %4878, ptr %4851, align 8, !tbaa !43
  br label %4879

4879:                                             ; preds = %4876, %4863
  %4880 = icmp sgt i32 %4861, -1
  br i1 %4880, label %._crit_edge2472, label %4859

4881:                                             ; preds = %._crit_edge2925, %._crit_edge2472
  %4882 = phi ptr [ %58, %._crit_edge2925 ], [ %4796, %._crit_edge2472 ]
  %4883 = phi ptr [ %57, %._crit_edge2925 ], [ %4797, %._crit_edge2472 ]
  %4884 = phi ptr [ %56, %._crit_edge2925 ], [ %4798, %._crit_edge2472 ]
  %4885 = phi ptr [ %55, %._crit_edge2925 ], [ %4799, %._crit_edge2472 ]
  %4886 = phi ptr [ %54, %._crit_edge2925 ], [ %4800, %._crit_edge2472 ]
  %4887 = phi ptr [ %53, %._crit_edge2925 ], [ %4801, %._crit_edge2472 ]
  %4888 = phi ptr [ %52, %._crit_edge2925 ], [ %4802, %._crit_edge2472 ]
  %4889 = phi ptr [ %51, %._crit_edge2925 ], [ %4803, %._crit_edge2472 ]
  %4890 = phi ptr [ %50, %._crit_edge2925 ], [ %4804, %._crit_edge2472 ]
  %4891 = phi ptr [ %49, %._crit_edge2925 ], [ %4805, %._crit_edge2472 ]
  %4892 = phi ptr [ %48, %._crit_edge2925 ], [ %4806, %._crit_edge2472 ]
  %4893 = phi ptr [ %47, %._crit_edge2925 ], [ %4807, %._crit_edge2472 ]
  %4894 = phi ptr [ %46, %._crit_edge2925 ], [ %4808, %._crit_edge2472 ]
  %4895 = phi ptr [ %45, %._crit_edge2925 ], [ %4809, %._crit_edge2472 ]
  %4896 = phi ptr [ %44, %._crit_edge2925 ], [ %4810, %._crit_edge2472 ]
  %4897 = phi ptr [ %43, %._crit_edge2925 ], [ %4811, %._crit_edge2472 ]
  %4898 = phi ptr [ %42, %._crit_edge2925 ], [ %4812, %._crit_edge2472 ]
  %4899 = phi ptr [ %41, %._crit_edge2925 ], [ %4813, %._crit_edge2472 ]
  %4900 = phi ptr [ %40, %._crit_edge2925 ], [ %4814, %._crit_edge2472 ]
  %4901 = phi ptr [ %39, %._crit_edge2925 ], [ %4815, %._crit_edge2472 ]
  %4902 = phi ptr [ %38, %._crit_edge2925 ], [ %4816, %._crit_edge2472 ]
  %4903 = phi ptr [ %37, %._crit_edge2925 ], [ %4817, %._crit_edge2472 ]
  %4904 = phi ptr [ %36, %._crit_edge2925 ], [ %4818, %._crit_edge2472 ]
  %4905 = phi ptr [ %35, %._crit_edge2925 ], [ %4819, %._crit_edge2472 ]
  %4906 = phi i32 [ %.pre, %._crit_edge2925 ], [ %4820, %._crit_edge2472 ]
  %4907 = phi i32 [ %.pre2711, %._crit_edge2925 ], [ %4821, %._crit_edge2472 ]
  %4908 = phi i32 [ %.pre2713, %._crit_edge2925 ], [ %4822, %._crit_edge2472 ]
  %4909 = phi i32 [ %.pre2715, %._crit_edge2925 ], [ %4823, %._crit_edge2472 ]
  %4910 = phi i32 [ %.pre2717, %._crit_edge2925 ], [ %4824, %._crit_edge2472 ]
  %4911 = phi i32 [ %.pre2719, %._crit_edge2925 ], [ %4825, %._crit_edge2472 ]
  %4912 = phi i32 [ %.pre2721, %._crit_edge2925 ], [ %4826, %._crit_edge2472 ]
  %4913 = phi i32 [ %.pre2723, %._crit_edge2925 ], [ %4827, %._crit_edge2472 ]
  %4914 = phi i32 [ %.pre2725, %._crit_edge2925 ], [ %4828, %._crit_edge2472 ]
  %4915 = phi i32 [ %.pre2727, %._crit_edge2925 ], [ %4829, %._crit_edge2472 ]
  %4916 = phi i32 [ %.pre2729, %._crit_edge2925 ], [ %4830, %._crit_edge2472 ]
  %4917 = phi i32 [ %.pre2731, %._crit_edge2925 ], [ %4831, %._crit_edge2472 ]
  %4918 = phi i32 [ %.pre2733, %._crit_edge2925 ], [ %4832, %._crit_edge2472 ]
  %4919 = phi i32 [ %.pre2735, %._crit_edge2925 ], [ %4833, %._crit_edge2472 ]
  %4920 = phi i32 [ %.pre2737, %._crit_edge2925 ], [ %4834, %._crit_edge2472 ]
  %4921 = phi i32 [ %.pre2739, %._crit_edge2925 ], [ %4835, %._crit_edge2472 ]
  %4922 = phi i32 [ %.pre2741, %._crit_edge2925 ], [ %4836, %._crit_edge2472 ]
  %4923 = phi i32 [ %.pre2743, %._crit_edge2925 ], [ %4837, %._crit_edge2472 ]
  %4924 = phi i32 [ %.pre2745, %._crit_edge2925 ], [ %4838, %._crit_edge2472 ]
  %4925 = phi i32 [ %.pre2747, %._crit_edge2925 ], [ %4839, %._crit_edge2472 ]
  %4926 = phi i32 [ %.pre2749, %._crit_edge2925 ], [ %4840, %._crit_edge2472 ]
  %4927 = phi ptr [ %.pre2751, %._crit_edge2925 ], [ %4841, %._crit_edge2472 ]
  %4928 = phi ptr [ %.pre2753, %._crit_edge2925 ], [ %4842, %._crit_edge2472 ]
  %4929 = phi ptr [ %.pre2755, %._crit_edge2925 ], [ %4843, %._crit_edge2472 ]
  %.promoted2476 = phi i32 [ %.promoted2476.pre, %._crit_edge2925 ], [ %.lcssa1956, %._crit_edge2472 ]
  store i32 50, ptr %4, align 8, !tbaa !11
  %4930 = getelementptr inbounds i8, ptr %0, i64 36
  %4931 = icmp sgt i32 %.promoted2476, 7
  br i1 %4931, label %.._crit_edge2479_crit_edge, label %.lr.ph2478

.._crit_edge2479_crit_edge:                       ; preds = %4881
  %.phi.trans.insert2928 = getelementptr inbounds i8, ptr %0, i64 32
  %.pre2929 = load i32, ptr %.phi.trans.insert2928, align 8, !tbaa !37
  %4932 = add nsw i32 %.promoted2476, -8
  br label %._crit_edge2479

.lr.ph2478:                                       ; preds = %4881
  %4933 = load ptr, ptr %0, align 8, !tbaa !5
  %4934 = getelementptr inbounds i8, ptr %4933, i64 8
  %4935 = getelementptr inbounds i8, ptr %0, i64 32
  %4936 = getelementptr inbounds i8, ptr %4933, i64 12
  %4937 = getelementptr inbounds i8, ptr %4933, i64 16
  %.promoted2482 = load i32, ptr %4934, align 8, !tbaa !38
  br label %4945

._crit_edge2479:                                  ; preds = %4965, %.._crit_edge2479_crit_edge
  %4938 = phi i32 [ %.pre2929, %.._crit_edge2479_crit_edge ], [ %4955, %4965 ]
  %.lcssa = phi i32 [ %4932, %.._crit_edge2479_crit_edge ], [ %4947, %4965 ]
  %4939 = lshr i32 %4938, %.lcssa
  store i32 %.lcssa, ptr %4930, align 4, !tbaa !12
  %4940 = getelementptr inbounds i8, ptr %0, i64 3180
  %4941 = load i32, ptr %4940, align 4, !tbaa !106
  %4942 = shl i32 %4941, 8
  %4943 = and i32 %4939, 255
  %4944 = or disjoint i32 %4942, %4943
  store i32 %4944, ptr %4940, align 4, !tbaa !106
  store i32 1, ptr %4, align 8, !tbaa !11
  br label %.loopexit

4945:                                             ; preds = %.lr.ph2478, %4965
  %4946 = phi i32 [ %.promoted2482, %.lr.ph2478 ], [ %4958, %4965 ]
  %4947 = phi i32 [ %.promoted2476, %.lr.ph2478 ], [ %4956, %4965 ]
  %4948 = icmp eq i32 %4946, 0
  br i1 %4948, label %.loopexit, label %4949

4949:                                             ; preds = %4945
  %4950 = load i32, ptr %4935, align 8, !tbaa !37
  %4951 = shl i32 %4950, 8
  %4952 = load ptr, ptr %4933, align 8, !tbaa !40
  %4953 = load i8, ptr %4952, align 1, !tbaa !41
  %4954 = zext i8 %4953 to i32
  %4955 = or disjoint i32 %4951, %4954
  store i32 %4955, ptr %4935, align 8, !tbaa !37
  %4956 = add nsw i32 %4947, 8
  store i32 %4956, ptr %4930, align 4, !tbaa !12
  %4957 = getelementptr inbounds i8, ptr %4952, i64 1
  store ptr %4957, ptr %4933, align 8, !tbaa !40
  %4958 = add i32 %4946, -1
  store i32 %4958, ptr %4934, align 8, !tbaa !38
  %4959 = load i32, ptr %4936, align 4, !tbaa !42
  %4960 = add i32 %4959, 1
  store i32 %4960, ptr %4936, align 4, !tbaa !42
  %4961 = icmp eq i32 %4960, 0
  br i1 %4961, label %4962, label %4965

4962:                                             ; preds = %4949
  %4963 = load i32, ptr %4937, align 8, !tbaa !43
  %4964 = add i32 %4963, 1
  store i32 %4964, ptr %4937, align 8, !tbaa !43
  br label %4965

4965:                                             ; preds = %4962, %4949
  %4966 = icmp sgt i32 %4947, -1
  br i1 %4966, label %._crit_edge2479, label %4945

4967:                                             ; preds = %34
  tail call void @BZ2_bz__AssertH__fail(i32 noundef 4001) #6
  tail call void @BZ2_bz__AssertH__fail(i32 noundef 4002) #6
  br label %.loopexit

.loopexit.loopexit2500:                           ; preds = %.preheader1904.3, %.preheader1904.2, %.preheader1904.1, %.preheader1904
  %indvars.iv2687.lcssa = phi i64 [ %indvars.iv2687, %.preheader1904 ], [ %indvars.iv.next2688, %.preheader1904.1 ], [ %indvars.iv.next2688.1, %.preheader1904.2 ], [ %indvars.iv.next2688.2, %.preheader1904.3 ]
  %4968 = trunc nuw nsw i64 %indvars.iv2687.lcssa to i32
  br label %.loopexit

.loopexit.loopexit2501:                           ; preds = %.preheader1906.3, %.preheader1906.2, %.preheader1906.1, %.preheader1906
  %indvars.iv2682.lcssa = phi i64 [ %indvars.iv2682, %.preheader1906 ], [ %indvars.iv.next2683, %.preheader1906.1 ], [ %indvars.iv.next2683.1, %.preheader1906.2 ], [ %indvars.iv.next2683.2, %.preheader1906.3 ]
  %4969 = trunc nuw nsw i64 %indvars.iv2682.lcssa to i32
  br label %.loopexit

.loopexit.loopexit2502:                           ; preds = %3640, %3635, %3630, %3625
  %indvars.iv2667.lcssa = phi i64 [ %indvars.iv2667, %3625 ], [ %indvars.iv.next2668, %3630 ], [ %indvars.iv.next2668.1, %3635 ], [ %indvars.iv.next2668.2, %3640 ]
  %4970 = trunc nuw nsw i64 %indvars.iv2667.lcssa to i32
  br label %.loopexit

.loopexit:                                        ; preds = %67, %148, %229, %312, %420, %502, %584, %666, %748, %830, %928, %1014, %1100, %1186, %1271, %1357, %1443, %1530, %1992, %2071, %2759, %3497, %3590, %3002, %3152, %3158, %3095, %2858, %2380, %2542, %2618, %2174, %2152, %1851, %1671, %4271, %4353, %4435, %4517, %4599, %4687, %4773, %4859, %4945, %.loopexit.loopexit2502, %.loopexit.loopexit2501, %.loopexit.loopexit2500, %._crit_edge2451, %._crit_edge2444, %._crit_edge2437, %._crit_edge2430, %._crit_edge2423, %4107, %4097, %4204, %4188, %3620, %3612, %3518, %3440, %3166, %3117, %3023, %2945, %2915, %2880, %2780, %2700, %2445, %._crit_edge2258, %._crit_edge2251, %._crit_edge2251, %._crit_edge2251, %1929, %1552, %._crit_edge2243, %._crit_edge2187, %._crit_edge2180, %._crit_edge2173, %._crit_edge2166, %._crit_edge2159, %._crit_edge2152, %356, %342, %._crit_edge2145, %._crit_edge2138, %._crit_edge2131, %._crit_edge, %4967, %._crit_edge2479
  %4971 = phi ptr [ %58, %4967 ], [ %4882, %._crit_edge2479 ], [ %31, %._crit_edge ], [ %90, %._crit_edge2131 ], [ %171, %._crit_edge2138 ], [ %252, %._crit_edge2145 ], [ %252, %342 ], [ %252, %356 ], [ %362, %._crit_edge2152 ], [ %443, %._crit_edge2159 ], [ %525, %._crit_edge2166 ], [ %607, %._crit_edge2173 ], [ %689, %._crit_edge2180 ], [ %771, %._crit_edge2187 ], [ %1466, %._crit_edge2243 ], [ %1466, %1552 ], [ %1693, %1929 ], [ %1936, %._crit_edge2251 ], [ %1936, %._crit_edge2251 ], [ %1936, %._crit_edge2251 ], [ %2015, %._crit_edge2258 ], [ %2446, %2445 ], [ %2278, %2700 ], [ %2781, %2780 ], [ %2781, %2880 ], [ %2916, %2915 ], [ %2916, %2945 ], [ %3024, %3023 ], [ %3024, %3117 ], [ %2888, %3166 ], [ %2888, %3440 ], [ %3519, %3518 ], [ %3519, %3612 ], [ %2888, %3620 ], [ %2888, %4188 ], [ %2888, %4204 ], [ %2888, %4097 ], [ %2888, %4107 ], [ %4212, %._crit_edge2423 ], [ %4294, %._crit_edge2430 ], [ %4376, %._crit_edge2437 ], [ %4458, %._crit_edge2444 ], [ %4540, %._crit_edge2451 ], [ %2888, %.loopexit.loopexit2500 ], [ %2888, %.loopexit.loopexit2501 ], [ %2888, %.loopexit.loopexit2502 ], [ %4882, %4945 ], [ %4796, %4859 ], [ %4710, %4773 ], [ %4624, %4687 ], [ %4540, %4599 ], [ %4458, %4517 ], [ %4376, %4435 ], [ %4294, %4353 ], [ %4212, %4271 ], [ %1609, %1671 ], [ %1794, %1851 ], [ %.ph, %2152 ], [ %.ph, %2174 ], [ %2565, %2618 ], [ %2489, %2542 ], [ %2328, %2380 ], [ %2817, %2858 ], [ %3057, %3095 ], [ %3024, %3158 ], [ %3024, %3152 ], [ %2966, %3002 ], [ %3552, %3590 ], [ %3461, %3497 ], [ %2718, %2759 ], [ %2015, %2071 ], [ %1936, %1992 ], [ %1466, %1530 ], [ %1380, %1443 ], [ %1294, %1357 ], [ %1209, %1271 ], [ %1123, %1186 ], [ %1037, %1100 ], [ %951, %1014 ], [ %865, %928 ], [ %771, %830 ], [ %689, %748 ], [ %607, %666 ], [ %525, %584 ], [ %443, %502 ], [ %362, %420 ], [ %252, %312 ], [ %171, %229 ], [ %90, %148 ], [ %31, %67 ]
  %4972 = phi ptr [ %57, %4967 ], [ %4883, %._crit_edge2479 ], [ %30, %._crit_edge ], [ %91, %._crit_edge2131 ], [ %172, %._crit_edge2138 ], [ %253, %._crit_edge2145 ], [ %253, %342 ], [ %253, %356 ], [ %363, %._crit_edge2152 ], [ %444, %._crit_edge2159 ], [ %526, %._crit_edge2166 ], [ %608, %._crit_edge2173 ], [ %690, %._crit_edge2180 ], [ %772, %._crit_edge2187 ], [ %1467, %._crit_edge2243 ], [ %1467, %1552 ], [ %1694, %1929 ], [ %1937, %._crit_edge2251 ], [ %1937, %._crit_edge2251 ], [ %1937, %._crit_edge2251 ], [ %2016, %._crit_edge2258 ], [ %2447, %2445 ], [ %2279, %2700 ], [ %2782, %2780 ], [ %2782, %2880 ], [ %2917, %2915 ], [ %2917, %2945 ], [ %3025, %3023 ], [ %3025, %3117 ], [ %2889, %3166 ], [ %2889, %3440 ], [ %3520, %3518 ], [ %3520, %3612 ], [ %2889, %3620 ], [ %2889, %4188 ], [ %2889, %4204 ], [ %2889, %4097 ], [ %2889, %4107 ], [ %4213, %._crit_edge2423 ], [ %4295, %._crit_edge2430 ], [ %4377, %._crit_edge2437 ], [ %4459, %._crit_edge2444 ], [ %4541, %._crit_edge2451 ], [ %2889, %.loopexit.loopexit2500 ], [ %2889, %.loopexit.loopexit2501 ], [ %2889, %.loopexit.loopexit2502 ], [ %4883, %4945 ], [ %4797, %4859 ], [ %4711, %4773 ], [ %4625, %4687 ], [ %4541, %4599 ], [ %4459, %4517 ], [ %4377, %4435 ], [ %4295, %4353 ], [ %4213, %4271 ], [ %1610, %1671 ], [ %1795, %1851 ], [ %.ph3399, %2152 ], [ %.ph3399, %2174 ], [ %2566, %2618 ], [ %2490, %2542 ], [ %2329, %2380 ], [ %2818, %2858 ], [ %3058, %3095 ], [ %3025, %3158 ], [ %3025, %3152 ], [ %2967, %3002 ], [ %3553, %3590 ], [ %3462, %3497 ], [ %2719, %2759 ], [ %2016, %2071 ], [ %1937, %1992 ], [ %1467, %1530 ], [ %1381, %1443 ], [ %1295, %1357 ], [ %1210, %1271 ], [ %1124, %1186 ], [ %1038, %1100 ], [ %952, %1014 ], [ %866, %928 ], [ %772, %830 ], [ %690, %748 ], [ %608, %666 ], [ %526, %584 ], [ %444, %502 ], [ %363, %420 ], [ %253, %312 ], [ %172, %229 ], [ %91, %148 ], [ %30, %67 ]
  %4973 = phi ptr [ %56, %4967 ], [ %4884, %._crit_edge2479 ], [ %29, %._crit_edge ], [ %92, %._crit_edge2131 ], [ %173, %._crit_edge2138 ], [ %254, %._crit_edge2145 ], [ %254, %342 ], [ %254, %356 ], [ %364, %._crit_edge2152 ], [ %445, %._crit_edge2159 ], [ %527, %._crit_edge2166 ], [ %609, %._crit_edge2173 ], [ %691, %._crit_edge2180 ], [ %773, %._crit_edge2187 ], [ %1468, %._crit_edge2243 ], [ %1468, %1552 ], [ %1695, %1929 ], [ %1938, %._crit_edge2251 ], [ %1938, %._crit_edge2251 ], [ %1938, %._crit_edge2251 ], [ %2017, %._crit_edge2258 ], [ %2448, %2445 ], [ %2280, %2700 ], [ %2783, %2780 ], [ %2783, %2880 ], [ %2918, %2915 ], [ %2918, %2945 ], [ %3026, %3023 ], [ %3026, %3117 ], [ %2890, %3166 ], [ %2890, %3440 ], [ %3521, %3518 ], [ %3521, %3612 ], [ %2890, %3620 ], [ %2890, %4188 ], [ %2890, %4204 ], [ %2890, %4097 ], [ %2890, %4107 ], [ %4214, %._crit_edge2423 ], [ %4296, %._crit_edge2430 ], [ %4378, %._crit_edge2437 ], [ %4460, %._crit_edge2444 ], [ %4542, %._crit_edge2451 ], [ %2890, %.loopexit.loopexit2500 ], [ %2890, %.loopexit.loopexit2501 ], [ %2890, %.loopexit.loopexit2502 ], [ %4884, %4945 ], [ %4798, %4859 ], [ %4712, %4773 ], [ %4626, %4687 ], [ %4542, %4599 ], [ %4460, %4517 ], [ %4378, %4435 ], [ %4296, %4353 ], [ %4214, %4271 ], [ %1611, %1671 ], [ %1796, %1851 ], [ %.ph3400, %2152 ], [ %.ph3400, %2174 ], [ %2567, %2618 ], [ %2491, %2542 ], [ %2330, %2380 ], [ %2819, %2858 ], [ %3059, %3095 ], [ %3026, %3158 ], [ %3026, %3152 ], [ %2968, %3002 ], [ %3554, %3590 ], [ %3463, %3497 ], [ %2720, %2759 ], [ %2017, %2071 ], [ %1938, %1992 ], [ %1468, %1530 ], [ %1382, %1443 ], [ %1296, %1357 ], [ %1211, %1271 ], [ %1125, %1186 ], [ %1039, %1100 ], [ %953, %1014 ], [ %867, %928 ], [ %773, %830 ], [ %691, %748 ], [ %609, %666 ], [ %527, %584 ], [ %445, %502 ], [ %364, %420 ], [ %254, %312 ], [ %173, %229 ], [ %92, %148 ], [ %29, %67 ]
  %4974 = phi ptr [ %55, %4967 ], [ %4885, %._crit_edge2479 ], [ %28, %._crit_edge ], [ %93, %._crit_edge2131 ], [ %174, %._crit_edge2138 ], [ %255, %._crit_edge2145 ], [ %255, %342 ], [ %255, %356 ], [ %365, %._crit_edge2152 ], [ %446, %._crit_edge2159 ], [ %528, %._crit_edge2166 ], [ %610, %._crit_edge2173 ], [ %692, %._crit_edge2180 ], [ %774, %._crit_edge2187 ], [ %1469, %._crit_edge2243 ], [ %1469, %1552 ], [ %1696, %1929 ], [ %1939, %._crit_edge2251 ], [ %1939, %._crit_edge2251 ], [ %1939, %._crit_edge2251 ], [ %2018, %._crit_edge2258 ], [ %2449, %2445 ], [ %2281, %2700 ], [ %2784, %2780 ], [ %2784, %2880 ], [ %2919, %2915 ], [ %2919, %2945 ], [ %3027, %3023 ], [ %3027, %3117 ], [ %2891, %3166 ], [ %2891, %3440 ], [ %3522, %3518 ], [ %3522, %3612 ], [ %2891, %3620 ], [ %2891, %4188 ], [ %2891, %4204 ], [ %2891, %4097 ], [ %2891, %4107 ], [ %4215, %._crit_edge2423 ], [ %4297, %._crit_edge2430 ], [ %4379, %._crit_edge2437 ], [ %4461, %._crit_edge2444 ], [ %4543, %._crit_edge2451 ], [ %2891, %.loopexit.loopexit2500 ], [ %2891, %.loopexit.loopexit2501 ], [ %2891, %.loopexit.loopexit2502 ], [ %4885, %4945 ], [ %4799, %4859 ], [ %4713, %4773 ], [ %4627, %4687 ], [ %4543, %4599 ], [ %4461, %4517 ], [ %4379, %4435 ], [ %4297, %4353 ], [ %4215, %4271 ], [ %1612, %1671 ], [ %1797, %1851 ], [ %.ph3401, %2152 ], [ %.ph3401, %2174 ], [ %2568, %2618 ], [ %2492, %2542 ], [ %2331, %2380 ], [ %2820, %2858 ], [ %3060, %3095 ], [ %3027, %3158 ], [ %3027, %3152 ], [ %2969, %3002 ], [ %3555, %3590 ], [ %3464, %3497 ], [ %2721, %2759 ], [ %2018, %2071 ], [ %1939, %1992 ], [ %1469, %1530 ], [ %1383, %1443 ], [ %1297, %1357 ], [ %1212, %1271 ], [ %1126, %1186 ], [ %1040, %1100 ], [ %954, %1014 ], [ %868, %928 ], [ %774, %830 ], [ %692, %748 ], [ %610, %666 ], [ %528, %584 ], [ %446, %502 ], [ %365, %420 ], [ %255, %312 ], [ %174, %229 ], [ %93, %148 ], [ %28, %67 ]
  %4975 = phi ptr [ %54, %4967 ], [ %4886, %._crit_edge2479 ], [ %27, %._crit_edge ], [ %94, %._crit_edge2131 ], [ %175, %._crit_edge2138 ], [ %256, %._crit_edge2145 ], [ %256, %342 ], [ %256, %356 ], [ %366, %._crit_edge2152 ], [ %447, %._crit_edge2159 ], [ %529, %._crit_edge2166 ], [ %611, %._crit_edge2173 ], [ %693, %._crit_edge2180 ], [ %775, %._crit_edge2187 ], [ %1470, %._crit_edge2243 ], [ %1470, %1552 ], [ %1697, %1929 ], [ %1940, %._crit_edge2251 ], [ %1940, %._crit_edge2251 ], [ %1940, %._crit_edge2251 ], [ %2019, %._crit_edge2258 ], [ %2450, %2445 ], [ %2282, %2700 ], [ %2785, %2780 ], [ %2785, %2880 ], [ %2920, %2915 ], [ %2920, %2945 ], [ %3028, %3023 ], [ %3028, %3117 ], [ %2892, %3166 ], [ %2892, %3440 ], [ %3523, %3518 ], [ %3523, %3612 ], [ %2892, %3620 ], [ %2892, %4188 ], [ %2892, %4204 ], [ %2892, %4097 ], [ %2892, %4107 ], [ %4216, %._crit_edge2423 ], [ %4298, %._crit_edge2430 ], [ %4380, %._crit_edge2437 ], [ %4462, %._crit_edge2444 ], [ %4544, %._crit_edge2451 ], [ %2892, %.loopexit.loopexit2500 ], [ %2892, %.loopexit.loopexit2501 ], [ %2892, %.loopexit.loopexit2502 ], [ %4886, %4945 ], [ %4800, %4859 ], [ %4714, %4773 ], [ %4628, %4687 ], [ %4544, %4599 ], [ %4462, %4517 ], [ %4380, %4435 ], [ %4298, %4353 ], [ %4216, %4271 ], [ %1613, %1671 ], [ %1798, %1851 ], [ %.ph3402, %2152 ], [ %.ph3402, %2174 ], [ %2569, %2618 ], [ %2493, %2542 ], [ %2332, %2380 ], [ %2821, %2858 ], [ %3061, %3095 ], [ %3028, %3158 ], [ %3028, %3152 ], [ %2970, %3002 ], [ %3556, %3590 ], [ %3465, %3497 ], [ %2722, %2759 ], [ %2019, %2071 ], [ %1940, %1992 ], [ %1470, %1530 ], [ %1384, %1443 ], [ %1298, %1357 ], [ %1213, %1271 ], [ %1127, %1186 ], [ %1041, %1100 ], [ %955, %1014 ], [ %869, %928 ], [ %775, %830 ], [ %693, %748 ], [ %611, %666 ], [ %529, %584 ], [ %447, %502 ], [ %366, %420 ], [ %256, %312 ], [ %175, %229 ], [ %94, %148 ], [ %27, %67 ]
  %4976 = phi ptr [ %53, %4967 ], [ %4887, %._crit_edge2479 ], [ %26, %._crit_edge ], [ %95, %._crit_edge2131 ], [ %176, %._crit_edge2138 ], [ %257, %._crit_edge2145 ], [ %257, %342 ], [ %257, %356 ], [ %367, %._crit_edge2152 ], [ %448, %._crit_edge2159 ], [ %530, %._crit_edge2166 ], [ %612, %._crit_edge2173 ], [ %694, %._crit_edge2180 ], [ %776, %._crit_edge2187 ], [ %1471, %._crit_edge2243 ], [ %1471, %1552 ], [ %1698, %1929 ], [ %1941, %._crit_edge2251 ], [ %1941, %._crit_edge2251 ], [ %1941, %._crit_edge2251 ], [ %2020, %._crit_edge2258 ], [ %2451, %2445 ], [ %2283, %2700 ], [ %2786, %2780 ], [ %2786, %2880 ], [ %2921, %2915 ], [ %2921, %2945 ], [ %3029, %3023 ], [ %3029, %3117 ], [ %2893, %3166 ], [ %2893, %3440 ], [ %3524, %3518 ], [ %3524, %3612 ], [ %2893, %3620 ], [ %2893, %4188 ], [ %2893, %4204 ], [ %2893, %4097 ], [ %2893, %4107 ], [ %4217, %._crit_edge2423 ], [ %4299, %._crit_edge2430 ], [ %4381, %._crit_edge2437 ], [ %4463, %._crit_edge2444 ], [ %4545, %._crit_edge2451 ], [ %2893, %.loopexit.loopexit2500 ], [ %2893, %.loopexit.loopexit2501 ], [ %2893, %.loopexit.loopexit2502 ], [ %4887, %4945 ], [ %4801, %4859 ], [ %4715, %4773 ], [ %4629, %4687 ], [ %4545, %4599 ], [ %4463, %4517 ], [ %4381, %4435 ], [ %4299, %4353 ], [ %4217, %4271 ], [ %1614, %1671 ], [ %1799, %1851 ], [ %.ph3403, %2152 ], [ %.ph3403, %2174 ], [ %2570, %2618 ], [ %2494, %2542 ], [ %2333, %2380 ], [ %2822, %2858 ], [ %3062, %3095 ], [ %3029, %3158 ], [ %3029, %3152 ], [ %2971, %3002 ], [ %3557, %3590 ], [ %3466, %3497 ], [ %2723, %2759 ], [ %2020, %2071 ], [ %1941, %1992 ], [ %1471, %1530 ], [ %1385, %1443 ], [ %1299, %1357 ], [ %1214, %1271 ], [ %1128, %1186 ], [ %1042, %1100 ], [ %956, %1014 ], [ %870, %928 ], [ %776, %830 ], [ %694, %748 ], [ %612, %666 ], [ %530, %584 ], [ %448, %502 ], [ %367, %420 ], [ %257, %312 ], [ %176, %229 ], [ %95, %148 ], [ %26, %67 ]
  %4977 = phi ptr [ %52, %4967 ], [ %4888, %._crit_edge2479 ], [ %25, %._crit_edge ], [ %96, %._crit_edge2131 ], [ %177, %._crit_edge2138 ], [ %258, %._crit_edge2145 ], [ %258, %342 ], [ %258, %356 ], [ %368, %._crit_edge2152 ], [ %449, %._crit_edge2159 ], [ %531, %._crit_edge2166 ], [ %613, %._crit_edge2173 ], [ %695, %._crit_edge2180 ], [ %777, %._crit_edge2187 ], [ %1472, %._crit_edge2243 ], [ %1472, %1552 ], [ %1699, %1929 ], [ %1942, %._crit_edge2251 ], [ %1942, %._crit_edge2251 ], [ %1942, %._crit_edge2251 ], [ %2021, %._crit_edge2258 ], [ %2452, %2445 ], [ %2284, %2700 ], [ %2787, %2780 ], [ %2787, %2880 ], [ %2922, %2915 ], [ %2922, %2945 ], [ %3030, %3023 ], [ %3030, %3117 ], [ %2894, %3166 ], [ %2894, %3440 ], [ %3525, %3518 ], [ %3525, %3612 ], [ %2894, %3620 ], [ %2894, %4188 ], [ %2894, %4204 ], [ %2894, %4097 ], [ %2894, %4107 ], [ %4218, %._crit_edge2423 ], [ %4300, %._crit_edge2430 ], [ %4382, %._crit_edge2437 ], [ %4464, %._crit_edge2444 ], [ %4546, %._crit_edge2451 ], [ %2894, %.loopexit.loopexit2500 ], [ %2894, %.loopexit.loopexit2501 ], [ %2894, %.loopexit.loopexit2502 ], [ %4888, %4945 ], [ %4802, %4859 ], [ %4716, %4773 ], [ %4630, %4687 ], [ %4546, %4599 ], [ %4464, %4517 ], [ %4382, %4435 ], [ %4300, %4353 ], [ %4218, %4271 ], [ %1615, %1671 ], [ %1800, %1851 ], [ %.ph3404, %2152 ], [ %.ph3404, %2174 ], [ %2571, %2618 ], [ %2495, %2542 ], [ %2334, %2380 ], [ %2823, %2858 ], [ %3063, %3095 ], [ %3030, %3158 ], [ %3030, %3152 ], [ %2972, %3002 ], [ %3558, %3590 ], [ %3467, %3497 ], [ %2724, %2759 ], [ %2021, %2071 ], [ %1942, %1992 ], [ %1472, %1530 ], [ %1386, %1443 ], [ %1300, %1357 ], [ %1215, %1271 ], [ %1129, %1186 ], [ %1043, %1100 ], [ %957, %1014 ], [ %871, %928 ], [ %777, %830 ], [ %695, %748 ], [ %613, %666 ], [ %531, %584 ], [ %449, %502 ], [ %368, %420 ], [ %258, %312 ], [ %177, %229 ], [ %96, %148 ], [ %25, %67 ]
  %4978 = phi ptr [ %51, %4967 ], [ %4889, %._crit_edge2479 ], [ %24, %._crit_edge ], [ %97, %._crit_edge2131 ], [ %178, %._crit_edge2138 ], [ %259, %._crit_edge2145 ], [ %259, %342 ], [ %259, %356 ], [ %369, %._crit_edge2152 ], [ %450, %._crit_edge2159 ], [ %532, %._crit_edge2166 ], [ %614, %._crit_edge2173 ], [ %696, %._crit_edge2180 ], [ %778, %._crit_edge2187 ], [ %1473, %._crit_edge2243 ], [ %1473, %1552 ], [ %1700, %1929 ], [ %1943, %._crit_edge2251 ], [ %1943, %._crit_edge2251 ], [ %1943, %._crit_edge2251 ], [ %2022, %._crit_edge2258 ], [ %2453, %2445 ], [ %2285, %2700 ], [ %2788, %2780 ], [ %2788, %2880 ], [ %2923, %2915 ], [ %2923, %2945 ], [ %3031, %3023 ], [ %3031, %3117 ], [ %2895, %3166 ], [ %2895, %3440 ], [ %3526, %3518 ], [ %3526, %3612 ], [ %2895, %3620 ], [ %2895, %4188 ], [ %2895, %4204 ], [ %2895, %4097 ], [ %2895, %4107 ], [ %4219, %._crit_edge2423 ], [ %4301, %._crit_edge2430 ], [ %4383, %._crit_edge2437 ], [ %4465, %._crit_edge2444 ], [ %4547, %._crit_edge2451 ], [ %2895, %.loopexit.loopexit2500 ], [ %2895, %.loopexit.loopexit2501 ], [ %2895, %.loopexit.loopexit2502 ], [ %4889, %4945 ], [ %4803, %4859 ], [ %4717, %4773 ], [ %4631, %4687 ], [ %4547, %4599 ], [ %4465, %4517 ], [ %4383, %4435 ], [ %4301, %4353 ], [ %4219, %4271 ], [ %1616, %1671 ], [ %1801, %1851 ], [ %.ph3405, %2152 ], [ %.ph3405, %2174 ], [ %2572, %2618 ], [ %2496, %2542 ], [ %2335, %2380 ], [ %2824, %2858 ], [ %3064, %3095 ], [ %3031, %3158 ], [ %3031, %3152 ], [ %2973, %3002 ], [ %3559, %3590 ], [ %3468, %3497 ], [ %2725, %2759 ], [ %2022, %2071 ], [ %1943, %1992 ], [ %1473, %1530 ], [ %1387, %1443 ], [ %1301, %1357 ], [ %1216, %1271 ], [ %1130, %1186 ], [ %1044, %1100 ], [ %958, %1014 ], [ %872, %928 ], [ %778, %830 ], [ %696, %748 ], [ %614, %666 ], [ %532, %584 ], [ %450, %502 ], [ %369, %420 ], [ %259, %312 ], [ %178, %229 ], [ %97, %148 ], [ %24, %67 ]
  %4979 = phi ptr [ %50, %4967 ], [ %4890, %._crit_edge2479 ], [ %23, %._crit_edge ], [ %98, %._crit_edge2131 ], [ %179, %._crit_edge2138 ], [ %260, %._crit_edge2145 ], [ %260, %342 ], [ %260, %356 ], [ %370, %._crit_edge2152 ], [ %451, %._crit_edge2159 ], [ %533, %._crit_edge2166 ], [ %615, %._crit_edge2173 ], [ %697, %._crit_edge2180 ], [ %779, %._crit_edge2187 ], [ %1474, %._crit_edge2243 ], [ %1474, %1552 ], [ %1701, %1929 ], [ %1944, %._crit_edge2251 ], [ %1944, %._crit_edge2251 ], [ %1944, %._crit_edge2251 ], [ %2023, %._crit_edge2258 ], [ %2454, %2445 ], [ %2286, %2700 ], [ %2789, %2780 ], [ %2789, %2880 ], [ %2924, %2915 ], [ %2924, %2945 ], [ %3032, %3023 ], [ %3032, %3117 ], [ %2896, %3166 ], [ %2896, %3440 ], [ %3527, %3518 ], [ %3527, %3612 ], [ %2896, %3620 ], [ %2896, %4188 ], [ %2896, %4204 ], [ %2896, %4097 ], [ %2896, %4107 ], [ %4220, %._crit_edge2423 ], [ %4302, %._crit_edge2430 ], [ %4384, %._crit_edge2437 ], [ %4466, %._crit_edge2444 ], [ %4548, %._crit_edge2451 ], [ %2896, %.loopexit.loopexit2500 ], [ %2896, %.loopexit.loopexit2501 ], [ %2896, %.loopexit.loopexit2502 ], [ %4890, %4945 ], [ %4804, %4859 ], [ %4718, %4773 ], [ %4632, %4687 ], [ %4548, %4599 ], [ %4466, %4517 ], [ %4384, %4435 ], [ %4302, %4353 ], [ %4220, %4271 ], [ %1617, %1671 ], [ %1802, %1851 ], [ %.ph3406, %2152 ], [ %.ph3406, %2174 ], [ %2573, %2618 ], [ %2497, %2542 ], [ %2336, %2380 ], [ %2825, %2858 ], [ %3065, %3095 ], [ %3032, %3158 ], [ %3032, %3152 ], [ %2974, %3002 ], [ %3560, %3590 ], [ %3469, %3497 ], [ %2726, %2759 ], [ %2023, %2071 ], [ %1944, %1992 ], [ %1474, %1530 ], [ %1388, %1443 ], [ %1302, %1357 ], [ %1217, %1271 ], [ %1131, %1186 ], [ %1045, %1100 ], [ %959, %1014 ], [ %873, %928 ], [ %779, %830 ], [ %697, %748 ], [ %615, %666 ], [ %533, %584 ], [ %451, %502 ], [ %370, %420 ], [ %260, %312 ], [ %179, %229 ], [ %98, %148 ], [ %23, %67 ]
  %4980 = phi ptr [ %49, %4967 ], [ %4891, %._crit_edge2479 ], [ %22, %._crit_edge ], [ %99, %._crit_edge2131 ], [ %180, %._crit_edge2138 ], [ %261, %._crit_edge2145 ], [ %261, %342 ], [ %261, %356 ], [ %371, %._crit_edge2152 ], [ %452, %._crit_edge2159 ], [ %534, %._crit_edge2166 ], [ %616, %._crit_edge2173 ], [ %698, %._crit_edge2180 ], [ %780, %._crit_edge2187 ], [ %1475, %._crit_edge2243 ], [ %1475, %1552 ], [ %1702, %1929 ], [ %1945, %._crit_edge2251 ], [ %1945, %._crit_edge2251 ], [ %1945, %._crit_edge2251 ], [ %2024, %._crit_edge2258 ], [ %2455, %2445 ], [ %2287, %2700 ], [ %2790, %2780 ], [ %2790, %2880 ], [ %2925, %2915 ], [ %2925, %2945 ], [ %3033, %3023 ], [ %3033, %3117 ], [ %2897, %3166 ], [ %2897, %3440 ], [ %3528, %3518 ], [ %3528, %3612 ], [ %2897, %3620 ], [ %2897, %4188 ], [ %2897, %4204 ], [ %2897, %4097 ], [ %2897, %4107 ], [ %4221, %._crit_edge2423 ], [ %4303, %._crit_edge2430 ], [ %4385, %._crit_edge2437 ], [ %4467, %._crit_edge2444 ], [ %4549, %._crit_edge2451 ], [ %2897, %.loopexit.loopexit2500 ], [ %2897, %.loopexit.loopexit2501 ], [ %2897, %.loopexit.loopexit2502 ], [ %4891, %4945 ], [ %4805, %4859 ], [ %4719, %4773 ], [ %4633, %4687 ], [ %4549, %4599 ], [ %4467, %4517 ], [ %4385, %4435 ], [ %4303, %4353 ], [ %4221, %4271 ], [ %1618, %1671 ], [ %1803, %1851 ], [ %.ph3407, %2152 ], [ %.ph3407, %2174 ], [ %2574, %2618 ], [ %2498, %2542 ], [ %2337, %2380 ], [ %2826, %2858 ], [ %3066, %3095 ], [ %3033, %3158 ], [ %3033, %3152 ], [ %2975, %3002 ], [ %3561, %3590 ], [ %3470, %3497 ], [ %2727, %2759 ], [ %2024, %2071 ], [ %1945, %1992 ], [ %1475, %1530 ], [ %1389, %1443 ], [ %1303, %1357 ], [ %1218, %1271 ], [ %1132, %1186 ], [ %1046, %1100 ], [ %960, %1014 ], [ %874, %928 ], [ %780, %830 ], [ %698, %748 ], [ %616, %666 ], [ %534, %584 ], [ %452, %502 ], [ %371, %420 ], [ %261, %312 ], [ %180, %229 ], [ %99, %148 ], [ %22, %67 ]
  %4981 = phi ptr [ %48, %4967 ], [ %4892, %._crit_edge2479 ], [ %21, %._crit_edge ], [ %100, %._crit_edge2131 ], [ %181, %._crit_edge2138 ], [ %262, %._crit_edge2145 ], [ %262, %342 ], [ %262, %356 ], [ %372, %._crit_edge2152 ], [ %453, %._crit_edge2159 ], [ %535, %._crit_edge2166 ], [ %617, %._crit_edge2173 ], [ %699, %._crit_edge2180 ], [ %781, %._crit_edge2187 ], [ %1476, %._crit_edge2243 ], [ %1476, %1552 ], [ %1703, %1929 ], [ %1946, %._crit_edge2251 ], [ %1946, %._crit_edge2251 ], [ %1946, %._crit_edge2251 ], [ %2025, %._crit_edge2258 ], [ %2456, %2445 ], [ %2288, %2700 ], [ %2791, %2780 ], [ %2791, %2880 ], [ %2926, %2915 ], [ %2926, %2945 ], [ %3034, %3023 ], [ %3034, %3117 ], [ %2898, %3166 ], [ %2898, %3440 ], [ %3529, %3518 ], [ %3529, %3612 ], [ %2898, %3620 ], [ %2898, %4188 ], [ %2898, %4204 ], [ %2898, %4097 ], [ %2898, %4107 ], [ %4222, %._crit_edge2423 ], [ %4304, %._crit_edge2430 ], [ %4386, %._crit_edge2437 ], [ %4468, %._crit_edge2444 ], [ %4550, %._crit_edge2451 ], [ %2898, %.loopexit.loopexit2500 ], [ %2898, %.loopexit.loopexit2501 ], [ %2898, %.loopexit.loopexit2502 ], [ %4892, %4945 ], [ %4806, %4859 ], [ %4720, %4773 ], [ %4634, %4687 ], [ %4550, %4599 ], [ %4468, %4517 ], [ %4386, %4435 ], [ %4304, %4353 ], [ %4222, %4271 ], [ %1619, %1671 ], [ %1804, %1851 ], [ %.ph3408, %2152 ], [ %.ph3408, %2174 ], [ %2575, %2618 ], [ %2499, %2542 ], [ %2338, %2380 ], [ %2827, %2858 ], [ %3067, %3095 ], [ %3034, %3158 ], [ %3034, %3152 ], [ %2976, %3002 ], [ %3562, %3590 ], [ %3471, %3497 ], [ %2728, %2759 ], [ %2025, %2071 ], [ %1946, %1992 ], [ %1476, %1530 ], [ %1390, %1443 ], [ %1304, %1357 ], [ %1219, %1271 ], [ %1133, %1186 ], [ %1047, %1100 ], [ %961, %1014 ], [ %875, %928 ], [ %781, %830 ], [ %699, %748 ], [ %617, %666 ], [ %535, %584 ], [ %453, %502 ], [ %372, %420 ], [ %262, %312 ], [ %181, %229 ], [ %100, %148 ], [ %21, %67 ]
  %4982 = phi ptr [ %47, %4967 ], [ %4893, %._crit_edge2479 ], [ %20, %._crit_edge ], [ %101, %._crit_edge2131 ], [ %182, %._crit_edge2138 ], [ %263, %._crit_edge2145 ], [ %263, %342 ], [ %263, %356 ], [ %373, %._crit_edge2152 ], [ %454, %._crit_edge2159 ], [ %536, %._crit_edge2166 ], [ %618, %._crit_edge2173 ], [ %700, %._crit_edge2180 ], [ %782, %._crit_edge2187 ], [ %1477, %._crit_edge2243 ], [ %1477, %1552 ], [ %1704, %1929 ], [ %1947, %._crit_edge2251 ], [ %1947, %._crit_edge2251 ], [ %1947, %._crit_edge2251 ], [ %2026, %._crit_edge2258 ], [ %2457, %2445 ], [ %2289, %2700 ], [ %2792, %2780 ], [ %2792, %2880 ], [ %2927, %2915 ], [ %2927, %2945 ], [ %3035, %3023 ], [ %3035, %3117 ], [ %2899, %3166 ], [ %2899, %3440 ], [ %3530, %3518 ], [ %3530, %3612 ], [ %2899, %3620 ], [ %2899, %4188 ], [ %2899, %4204 ], [ %2899, %4097 ], [ %2899, %4107 ], [ %4223, %._crit_edge2423 ], [ %4305, %._crit_edge2430 ], [ %4387, %._crit_edge2437 ], [ %4469, %._crit_edge2444 ], [ %4551, %._crit_edge2451 ], [ %2899, %.loopexit.loopexit2500 ], [ %2899, %.loopexit.loopexit2501 ], [ %2899, %.loopexit.loopexit2502 ], [ %4893, %4945 ], [ %4807, %4859 ], [ %4721, %4773 ], [ %4635, %4687 ], [ %4551, %4599 ], [ %4469, %4517 ], [ %4387, %4435 ], [ %4305, %4353 ], [ %4223, %4271 ], [ %1620, %1671 ], [ %1805, %1851 ], [ %.ph3409, %2152 ], [ %.ph3409, %2174 ], [ %2576, %2618 ], [ %2500, %2542 ], [ %2339, %2380 ], [ %2828, %2858 ], [ %3068, %3095 ], [ %3035, %3158 ], [ %3035, %3152 ], [ %2977, %3002 ], [ %3563, %3590 ], [ %3472, %3497 ], [ %2729, %2759 ], [ %2026, %2071 ], [ %1947, %1992 ], [ %1477, %1530 ], [ %1391, %1443 ], [ %1305, %1357 ], [ %1220, %1271 ], [ %1134, %1186 ], [ %1048, %1100 ], [ %962, %1014 ], [ %876, %928 ], [ %782, %830 ], [ %700, %748 ], [ %618, %666 ], [ %536, %584 ], [ %454, %502 ], [ %373, %420 ], [ %263, %312 ], [ %182, %229 ], [ %101, %148 ], [ %20, %67 ]
  %4983 = phi ptr [ %46, %4967 ], [ %4894, %._crit_edge2479 ], [ %19, %._crit_edge ], [ %102, %._crit_edge2131 ], [ %183, %._crit_edge2138 ], [ %264, %._crit_edge2145 ], [ %264, %342 ], [ %264, %356 ], [ %374, %._crit_edge2152 ], [ %455, %._crit_edge2159 ], [ %537, %._crit_edge2166 ], [ %619, %._crit_edge2173 ], [ %701, %._crit_edge2180 ], [ %783, %._crit_edge2187 ], [ %1478, %._crit_edge2243 ], [ %1478, %1552 ], [ %1705, %1929 ], [ %1948, %._crit_edge2251 ], [ %1948, %._crit_edge2251 ], [ %1948, %._crit_edge2251 ], [ %2027, %._crit_edge2258 ], [ %2458, %2445 ], [ %2290, %2700 ], [ %2793, %2780 ], [ %2793, %2880 ], [ %2928, %2915 ], [ %2928, %2945 ], [ %3036, %3023 ], [ %3036, %3117 ], [ %2900, %3166 ], [ %2900, %3440 ], [ %3531, %3518 ], [ %3531, %3612 ], [ %2900, %3620 ], [ %2900, %4188 ], [ %2900, %4204 ], [ %2900, %4097 ], [ %2900, %4107 ], [ %4224, %._crit_edge2423 ], [ %4306, %._crit_edge2430 ], [ %4388, %._crit_edge2437 ], [ %4470, %._crit_edge2444 ], [ %4552, %._crit_edge2451 ], [ %2900, %.loopexit.loopexit2500 ], [ %2900, %.loopexit.loopexit2501 ], [ %2900, %.loopexit.loopexit2502 ], [ %4894, %4945 ], [ %4808, %4859 ], [ %4722, %4773 ], [ %4636, %4687 ], [ %4552, %4599 ], [ %4470, %4517 ], [ %4388, %4435 ], [ %4306, %4353 ], [ %4224, %4271 ], [ %1621, %1671 ], [ %1806, %1851 ], [ %.ph3410, %2152 ], [ %.ph3410, %2174 ], [ %2577, %2618 ], [ %2501, %2542 ], [ %2340, %2380 ], [ %2829, %2858 ], [ %3069, %3095 ], [ %3036, %3158 ], [ %3036, %3152 ], [ %2978, %3002 ], [ %3564, %3590 ], [ %3473, %3497 ], [ %2730, %2759 ], [ %2027, %2071 ], [ %1948, %1992 ], [ %1478, %1530 ], [ %1392, %1443 ], [ %1306, %1357 ], [ %1221, %1271 ], [ %1135, %1186 ], [ %1049, %1100 ], [ %963, %1014 ], [ %877, %928 ], [ %783, %830 ], [ %701, %748 ], [ %619, %666 ], [ %537, %584 ], [ %455, %502 ], [ %374, %420 ], [ %264, %312 ], [ %183, %229 ], [ %102, %148 ], [ %19, %67 ]
  %4984 = phi ptr [ %45, %4967 ], [ %4895, %._crit_edge2479 ], [ %18, %._crit_edge ], [ %103, %._crit_edge2131 ], [ %184, %._crit_edge2138 ], [ %265, %._crit_edge2145 ], [ %265, %342 ], [ %265, %356 ], [ %375, %._crit_edge2152 ], [ %456, %._crit_edge2159 ], [ %538, %._crit_edge2166 ], [ %620, %._crit_edge2173 ], [ %702, %._crit_edge2180 ], [ %784, %._crit_edge2187 ], [ %1479, %._crit_edge2243 ], [ %1479, %1552 ], [ %1706, %1929 ], [ %1949, %._crit_edge2251 ], [ %1949, %._crit_edge2251 ], [ %1949, %._crit_edge2251 ], [ %2028, %._crit_edge2258 ], [ %2459, %2445 ], [ %2291, %2700 ], [ %2794, %2780 ], [ %2794, %2880 ], [ %2929, %2915 ], [ %2929, %2945 ], [ %3037, %3023 ], [ %3037, %3117 ], [ %2901, %3166 ], [ %2901, %3440 ], [ %3532, %3518 ], [ %3532, %3612 ], [ %2901, %3620 ], [ %2901, %4188 ], [ %2901, %4204 ], [ %2901, %4097 ], [ %2901, %4107 ], [ %4225, %._crit_edge2423 ], [ %4307, %._crit_edge2430 ], [ %4389, %._crit_edge2437 ], [ %4471, %._crit_edge2444 ], [ %4553, %._crit_edge2451 ], [ %2901, %.loopexit.loopexit2500 ], [ %2901, %.loopexit.loopexit2501 ], [ %2901, %.loopexit.loopexit2502 ], [ %4895, %4945 ], [ %4809, %4859 ], [ %4723, %4773 ], [ %4637, %4687 ], [ %4553, %4599 ], [ %4471, %4517 ], [ %4389, %4435 ], [ %4307, %4353 ], [ %4225, %4271 ], [ %1622, %1671 ], [ %1807, %1851 ], [ %.ph3411, %2152 ], [ %.ph3411, %2174 ], [ %2578, %2618 ], [ %2502, %2542 ], [ %2341, %2380 ], [ %2830, %2858 ], [ %3070, %3095 ], [ %3037, %3158 ], [ %3037, %3152 ], [ %2979, %3002 ], [ %3565, %3590 ], [ %3474, %3497 ], [ %2731, %2759 ], [ %2028, %2071 ], [ %1949, %1992 ], [ %1479, %1530 ], [ %1393, %1443 ], [ %1307, %1357 ], [ %1222, %1271 ], [ %1136, %1186 ], [ %1050, %1100 ], [ %964, %1014 ], [ %878, %928 ], [ %784, %830 ], [ %702, %748 ], [ %620, %666 ], [ %538, %584 ], [ %456, %502 ], [ %375, %420 ], [ %265, %312 ], [ %184, %229 ], [ %103, %148 ], [ %18, %67 ]
  %4985 = phi ptr [ %44, %4967 ], [ %4896, %._crit_edge2479 ], [ %17, %._crit_edge ], [ %104, %._crit_edge2131 ], [ %185, %._crit_edge2138 ], [ %266, %._crit_edge2145 ], [ %266, %342 ], [ %266, %356 ], [ %376, %._crit_edge2152 ], [ %457, %._crit_edge2159 ], [ %539, %._crit_edge2166 ], [ %621, %._crit_edge2173 ], [ %703, %._crit_edge2180 ], [ %785, %._crit_edge2187 ], [ %1480, %._crit_edge2243 ], [ %1480, %1552 ], [ %1707, %1929 ], [ %1950, %._crit_edge2251 ], [ %1950, %._crit_edge2251 ], [ %1950, %._crit_edge2251 ], [ %2029, %._crit_edge2258 ], [ %2460, %2445 ], [ %2292, %2700 ], [ %2795, %2780 ], [ %2795, %2880 ], [ %2930, %2915 ], [ %2930, %2945 ], [ %3038, %3023 ], [ %3038, %3117 ], [ %2902, %3166 ], [ %2902, %3440 ], [ %3533, %3518 ], [ %3533, %3612 ], [ %2902, %3620 ], [ %2902, %4188 ], [ %2902, %4204 ], [ %2902, %4097 ], [ %2902, %4107 ], [ %4226, %._crit_edge2423 ], [ %4308, %._crit_edge2430 ], [ %4390, %._crit_edge2437 ], [ %4472, %._crit_edge2444 ], [ %4554, %._crit_edge2451 ], [ %2902, %.loopexit.loopexit2500 ], [ %2902, %.loopexit.loopexit2501 ], [ %2902, %.loopexit.loopexit2502 ], [ %4896, %4945 ], [ %4810, %4859 ], [ %4724, %4773 ], [ %4638, %4687 ], [ %4554, %4599 ], [ %4472, %4517 ], [ %4390, %4435 ], [ %4308, %4353 ], [ %4226, %4271 ], [ %1623, %1671 ], [ %1808, %1851 ], [ %.ph3412, %2152 ], [ %.ph3412, %2174 ], [ %2579, %2618 ], [ %2503, %2542 ], [ %2342, %2380 ], [ %2831, %2858 ], [ %3071, %3095 ], [ %3038, %3158 ], [ %3038, %3152 ], [ %2980, %3002 ], [ %3566, %3590 ], [ %3475, %3497 ], [ %2732, %2759 ], [ %2029, %2071 ], [ %1950, %1992 ], [ %1480, %1530 ], [ %1394, %1443 ], [ %1308, %1357 ], [ %1223, %1271 ], [ %1137, %1186 ], [ %1051, %1100 ], [ %965, %1014 ], [ %879, %928 ], [ %785, %830 ], [ %703, %748 ], [ %621, %666 ], [ %539, %584 ], [ %457, %502 ], [ %376, %420 ], [ %266, %312 ], [ %185, %229 ], [ %104, %148 ], [ %17, %67 ]
  %4986 = phi ptr [ %43, %4967 ], [ %4897, %._crit_edge2479 ], [ %16, %._crit_edge ], [ %105, %._crit_edge2131 ], [ %186, %._crit_edge2138 ], [ %267, %._crit_edge2145 ], [ %267, %342 ], [ %267, %356 ], [ %377, %._crit_edge2152 ], [ %458, %._crit_edge2159 ], [ %540, %._crit_edge2166 ], [ %622, %._crit_edge2173 ], [ %704, %._crit_edge2180 ], [ %786, %._crit_edge2187 ], [ %1481, %._crit_edge2243 ], [ %1481, %1552 ], [ %1708, %1929 ], [ %1951, %._crit_edge2251 ], [ %1951, %._crit_edge2251 ], [ %1951, %._crit_edge2251 ], [ %2030, %._crit_edge2258 ], [ %2461, %2445 ], [ %2293, %2700 ], [ %2796, %2780 ], [ %2796, %2880 ], [ %2931, %2915 ], [ %2931, %2945 ], [ %3039, %3023 ], [ %3039, %3117 ], [ %2903, %3166 ], [ %2903, %3440 ], [ %3534, %3518 ], [ %3534, %3612 ], [ %2903, %3620 ], [ %2903, %4188 ], [ %2903, %4204 ], [ %2903, %4097 ], [ %2903, %4107 ], [ %4227, %._crit_edge2423 ], [ %4309, %._crit_edge2430 ], [ %4391, %._crit_edge2437 ], [ %4473, %._crit_edge2444 ], [ %4555, %._crit_edge2451 ], [ %2903, %.loopexit.loopexit2500 ], [ %2903, %.loopexit.loopexit2501 ], [ %2903, %.loopexit.loopexit2502 ], [ %4897, %4945 ], [ %4811, %4859 ], [ %4725, %4773 ], [ %4639, %4687 ], [ %4555, %4599 ], [ %4473, %4517 ], [ %4391, %4435 ], [ %4309, %4353 ], [ %4227, %4271 ], [ %1624, %1671 ], [ %1809, %1851 ], [ %.ph3413, %2152 ], [ %.ph3413, %2174 ], [ %2580, %2618 ], [ %2504, %2542 ], [ %2343, %2380 ], [ %2832, %2858 ], [ %3072, %3095 ], [ %3039, %3158 ], [ %3039, %3152 ], [ %2981, %3002 ], [ %3567, %3590 ], [ %3476, %3497 ], [ %2733, %2759 ], [ %2030, %2071 ], [ %1951, %1992 ], [ %1481, %1530 ], [ %1395, %1443 ], [ %1309, %1357 ], [ %1224, %1271 ], [ %1138, %1186 ], [ %1052, %1100 ], [ %966, %1014 ], [ %880, %928 ], [ %786, %830 ], [ %704, %748 ], [ %622, %666 ], [ %540, %584 ], [ %458, %502 ], [ %377, %420 ], [ %267, %312 ], [ %186, %229 ], [ %105, %148 ], [ %16, %67 ]
  %4987 = phi ptr [ %42, %4967 ], [ %4898, %._crit_edge2479 ], [ %15, %._crit_edge ], [ %106, %._crit_edge2131 ], [ %187, %._crit_edge2138 ], [ %268, %._crit_edge2145 ], [ %268, %342 ], [ %268, %356 ], [ %378, %._crit_edge2152 ], [ %459, %._crit_edge2159 ], [ %541, %._crit_edge2166 ], [ %623, %._crit_edge2173 ], [ %705, %._crit_edge2180 ], [ %787, %._crit_edge2187 ], [ %1482, %._crit_edge2243 ], [ %1482, %1552 ], [ %1709, %1929 ], [ %1952, %._crit_edge2251 ], [ %1952, %._crit_edge2251 ], [ %1952, %._crit_edge2251 ], [ %2031, %._crit_edge2258 ], [ %2462, %2445 ], [ %2294, %2700 ], [ %2797, %2780 ], [ %2797, %2880 ], [ %2932, %2915 ], [ %2932, %2945 ], [ %3040, %3023 ], [ %3040, %3117 ], [ %2904, %3166 ], [ %2904, %3440 ], [ %3535, %3518 ], [ %3535, %3612 ], [ %2904, %3620 ], [ %2904, %4188 ], [ %2904, %4204 ], [ %2904, %4097 ], [ %2904, %4107 ], [ %4228, %._crit_edge2423 ], [ %4310, %._crit_edge2430 ], [ %4392, %._crit_edge2437 ], [ %4474, %._crit_edge2444 ], [ %4556, %._crit_edge2451 ], [ %2904, %.loopexit.loopexit2500 ], [ %2904, %.loopexit.loopexit2501 ], [ %2904, %.loopexit.loopexit2502 ], [ %4898, %4945 ], [ %4812, %4859 ], [ %4726, %4773 ], [ %4640, %4687 ], [ %4556, %4599 ], [ %4474, %4517 ], [ %4392, %4435 ], [ %4310, %4353 ], [ %4228, %4271 ], [ %1625, %1671 ], [ %1810, %1851 ], [ %.ph3414, %2152 ], [ %.ph3414, %2174 ], [ %2581, %2618 ], [ %2505, %2542 ], [ %2344, %2380 ], [ %2833, %2858 ], [ %3073, %3095 ], [ %3040, %3158 ], [ %3040, %3152 ], [ %2982, %3002 ], [ %3568, %3590 ], [ %3477, %3497 ], [ %2734, %2759 ], [ %2031, %2071 ], [ %1952, %1992 ], [ %1482, %1530 ], [ %1396, %1443 ], [ %1310, %1357 ], [ %1225, %1271 ], [ %1139, %1186 ], [ %1053, %1100 ], [ %967, %1014 ], [ %881, %928 ], [ %787, %830 ], [ %705, %748 ], [ %623, %666 ], [ %541, %584 ], [ %459, %502 ], [ %378, %420 ], [ %268, %312 ], [ %187, %229 ], [ %106, %148 ], [ %15, %67 ]
  %4988 = phi ptr [ %41, %4967 ], [ %4899, %._crit_edge2479 ], [ %14, %._crit_edge ], [ %107, %._crit_edge2131 ], [ %188, %._crit_edge2138 ], [ %269, %._crit_edge2145 ], [ %269, %342 ], [ %269, %356 ], [ %379, %._crit_edge2152 ], [ %460, %._crit_edge2159 ], [ %542, %._crit_edge2166 ], [ %624, %._crit_edge2173 ], [ %706, %._crit_edge2180 ], [ %788, %._crit_edge2187 ], [ %1483, %._crit_edge2243 ], [ %1483, %1552 ], [ %1710, %1929 ], [ %1953, %._crit_edge2251 ], [ %1953, %._crit_edge2251 ], [ %1953, %._crit_edge2251 ], [ %2032, %._crit_edge2258 ], [ %2463, %2445 ], [ %2295, %2700 ], [ %2798, %2780 ], [ %2798, %2880 ], [ %2933, %2915 ], [ %2933, %2945 ], [ %3041, %3023 ], [ %3041, %3117 ], [ %2905, %3166 ], [ %2905, %3440 ], [ %3536, %3518 ], [ %3536, %3612 ], [ %2905, %3620 ], [ %2905, %4188 ], [ %2905, %4204 ], [ %2905, %4097 ], [ %2905, %4107 ], [ %4229, %._crit_edge2423 ], [ %4311, %._crit_edge2430 ], [ %4393, %._crit_edge2437 ], [ %4475, %._crit_edge2444 ], [ %4557, %._crit_edge2451 ], [ %2905, %.loopexit.loopexit2500 ], [ %2905, %.loopexit.loopexit2501 ], [ %2905, %.loopexit.loopexit2502 ], [ %4899, %4945 ], [ %4813, %4859 ], [ %4727, %4773 ], [ %4641, %4687 ], [ %4557, %4599 ], [ %4475, %4517 ], [ %4393, %4435 ], [ %4311, %4353 ], [ %4229, %4271 ], [ %1626, %1671 ], [ %1811, %1851 ], [ %.ph3415, %2152 ], [ %.ph3415, %2174 ], [ %2582, %2618 ], [ %2506, %2542 ], [ %2345, %2380 ], [ %2834, %2858 ], [ %3074, %3095 ], [ %3041, %3158 ], [ %3041, %3152 ], [ %2983, %3002 ], [ %3569, %3590 ], [ %3478, %3497 ], [ %2735, %2759 ], [ %2032, %2071 ], [ %1953, %1992 ], [ %1483, %1530 ], [ %1397, %1443 ], [ %1311, %1357 ], [ %1226, %1271 ], [ %1140, %1186 ], [ %1054, %1100 ], [ %968, %1014 ], [ %882, %928 ], [ %788, %830 ], [ %706, %748 ], [ %624, %666 ], [ %542, %584 ], [ %460, %502 ], [ %379, %420 ], [ %269, %312 ], [ %188, %229 ], [ %107, %148 ], [ %14, %67 ]
  %4989 = phi ptr [ %40, %4967 ], [ %4900, %._crit_edge2479 ], [ %13, %._crit_edge ], [ %108, %._crit_edge2131 ], [ %189, %._crit_edge2138 ], [ %270, %._crit_edge2145 ], [ %270, %342 ], [ %270, %356 ], [ %380, %._crit_edge2152 ], [ %461, %._crit_edge2159 ], [ %543, %._crit_edge2166 ], [ %625, %._crit_edge2173 ], [ %707, %._crit_edge2180 ], [ %789, %._crit_edge2187 ], [ %1484, %._crit_edge2243 ], [ %1484, %1552 ], [ %1711, %1929 ], [ %1954, %._crit_edge2251 ], [ %1954, %._crit_edge2251 ], [ %1954, %._crit_edge2251 ], [ %2033, %._crit_edge2258 ], [ %2464, %2445 ], [ %2296, %2700 ], [ %2799, %2780 ], [ %2799, %2880 ], [ %2934, %2915 ], [ %2934, %2945 ], [ %3042, %3023 ], [ %3042, %3117 ], [ %2906, %3166 ], [ %2906, %3440 ], [ %3537, %3518 ], [ %3537, %3612 ], [ %2906, %3620 ], [ %2906, %4188 ], [ %2906, %4204 ], [ %2906, %4097 ], [ %2906, %4107 ], [ %4230, %._crit_edge2423 ], [ %4312, %._crit_edge2430 ], [ %4394, %._crit_edge2437 ], [ %4476, %._crit_edge2444 ], [ %4558, %._crit_edge2451 ], [ %2906, %.loopexit.loopexit2500 ], [ %2906, %.loopexit.loopexit2501 ], [ %2906, %.loopexit.loopexit2502 ], [ %4900, %4945 ], [ %4814, %4859 ], [ %4728, %4773 ], [ %4642, %4687 ], [ %4558, %4599 ], [ %4476, %4517 ], [ %4394, %4435 ], [ %4312, %4353 ], [ %4230, %4271 ], [ %1627, %1671 ], [ %1812, %1851 ], [ %.ph3416, %2152 ], [ %.ph3416, %2174 ], [ %2583, %2618 ], [ %2507, %2542 ], [ %2346, %2380 ], [ %2835, %2858 ], [ %3075, %3095 ], [ %3042, %3158 ], [ %3042, %3152 ], [ %2984, %3002 ], [ %3570, %3590 ], [ %3479, %3497 ], [ %2736, %2759 ], [ %2033, %2071 ], [ %1954, %1992 ], [ %1484, %1530 ], [ %1398, %1443 ], [ %1312, %1357 ], [ %1227, %1271 ], [ %1141, %1186 ], [ %1055, %1100 ], [ %969, %1014 ], [ %883, %928 ], [ %789, %830 ], [ %707, %748 ], [ %625, %666 ], [ %543, %584 ], [ %461, %502 ], [ %380, %420 ], [ %270, %312 ], [ %189, %229 ], [ %108, %148 ], [ %13, %67 ]
  %4990 = phi ptr [ %39, %4967 ], [ %4901, %._crit_edge2479 ], [ %12, %._crit_edge ], [ %109, %._crit_edge2131 ], [ %190, %._crit_edge2138 ], [ %271, %._crit_edge2145 ], [ %271, %342 ], [ %271, %356 ], [ %381, %._crit_edge2152 ], [ %462, %._crit_edge2159 ], [ %544, %._crit_edge2166 ], [ %626, %._crit_edge2173 ], [ %708, %._crit_edge2180 ], [ %790, %._crit_edge2187 ], [ %1485, %._crit_edge2243 ], [ %1485, %1552 ], [ %1712, %1929 ], [ %1955, %._crit_edge2251 ], [ %1955, %._crit_edge2251 ], [ %1955, %._crit_edge2251 ], [ %2034, %._crit_edge2258 ], [ %2465, %2445 ], [ %2297, %2700 ], [ %2800, %2780 ], [ %2800, %2880 ], [ %2935, %2915 ], [ %2935, %2945 ], [ %3043, %3023 ], [ %3043, %3117 ], [ %2907, %3166 ], [ %2907, %3440 ], [ %3538, %3518 ], [ %3538, %3612 ], [ %2907, %3620 ], [ %2907, %4188 ], [ %2907, %4204 ], [ %2907, %4097 ], [ %2907, %4107 ], [ %4231, %._crit_edge2423 ], [ %4313, %._crit_edge2430 ], [ %4395, %._crit_edge2437 ], [ %4477, %._crit_edge2444 ], [ %4559, %._crit_edge2451 ], [ %2907, %.loopexit.loopexit2500 ], [ %2907, %.loopexit.loopexit2501 ], [ %2907, %.loopexit.loopexit2502 ], [ %4901, %4945 ], [ %4815, %4859 ], [ %4729, %4773 ], [ %4643, %4687 ], [ %4559, %4599 ], [ %4477, %4517 ], [ %4395, %4435 ], [ %4313, %4353 ], [ %4231, %4271 ], [ %1628, %1671 ], [ %1813, %1851 ], [ %.ph3417, %2152 ], [ %.ph3417, %2174 ], [ %2584, %2618 ], [ %2508, %2542 ], [ %2347, %2380 ], [ %2836, %2858 ], [ %3076, %3095 ], [ %3043, %3158 ], [ %3043, %3152 ], [ %2985, %3002 ], [ %3571, %3590 ], [ %3480, %3497 ], [ %2737, %2759 ], [ %2034, %2071 ], [ %1955, %1992 ], [ %1485, %1530 ], [ %1399, %1443 ], [ %1313, %1357 ], [ %1228, %1271 ], [ %1142, %1186 ], [ %1056, %1100 ], [ %970, %1014 ], [ %884, %928 ], [ %790, %830 ], [ %708, %748 ], [ %626, %666 ], [ %544, %584 ], [ %462, %502 ], [ %381, %420 ], [ %271, %312 ], [ %190, %229 ], [ %109, %148 ], [ %12, %67 ]
  %4991 = phi ptr [ %38, %4967 ], [ %4902, %._crit_edge2479 ], [ %11, %._crit_edge ], [ %110, %._crit_edge2131 ], [ %191, %._crit_edge2138 ], [ %272, %._crit_edge2145 ], [ %272, %342 ], [ %272, %356 ], [ %382, %._crit_edge2152 ], [ %463, %._crit_edge2159 ], [ %545, %._crit_edge2166 ], [ %627, %._crit_edge2173 ], [ %709, %._crit_edge2180 ], [ %791, %._crit_edge2187 ], [ %1486, %._crit_edge2243 ], [ %1486, %1552 ], [ %1713, %1929 ], [ %1956, %._crit_edge2251 ], [ %1956, %._crit_edge2251 ], [ %1956, %._crit_edge2251 ], [ %2035, %._crit_edge2258 ], [ %2466, %2445 ], [ %2298, %2700 ], [ %2801, %2780 ], [ %2801, %2880 ], [ %2936, %2915 ], [ %2936, %2945 ], [ %3044, %3023 ], [ %3044, %3117 ], [ %2908, %3166 ], [ %2908, %3440 ], [ %3539, %3518 ], [ %3539, %3612 ], [ %2908, %3620 ], [ %2908, %4188 ], [ %2908, %4204 ], [ %2908, %4097 ], [ %2908, %4107 ], [ %4232, %._crit_edge2423 ], [ %4314, %._crit_edge2430 ], [ %4396, %._crit_edge2437 ], [ %4478, %._crit_edge2444 ], [ %4560, %._crit_edge2451 ], [ %2908, %.loopexit.loopexit2500 ], [ %2908, %.loopexit.loopexit2501 ], [ %2908, %.loopexit.loopexit2502 ], [ %4902, %4945 ], [ %4816, %4859 ], [ %4730, %4773 ], [ %4644, %4687 ], [ %4560, %4599 ], [ %4478, %4517 ], [ %4396, %4435 ], [ %4314, %4353 ], [ %4232, %4271 ], [ %1629, %1671 ], [ %1814, %1851 ], [ %.ph3418, %2152 ], [ %.ph3418, %2174 ], [ %2585, %2618 ], [ %2509, %2542 ], [ %2348, %2380 ], [ %2837, %2858 ], [ %3077, %3095 ], [ %3044, %3158 ], [ %3044, %3152 ], [ %2986, %3002 ], [ %3572, %3590 ], [ %3481, %3497 ], [ %2738, %2759 ], [ %2035, %2071 ], [ %1956, %1992 ], [ %1486, %1530 ], [ %1400, %1443 ], [ %1314, %1357 ], [ %1229, %1271 ], [ %1143, %1186 ], [ %1057, %1100 ], [ %971, %1014 ], [ %885, %928 ], [ %791, %830 ], [ %709, %748 ], [ %627, %666 ], [ %545, %584 ], [ %463, %502 ], [ %382, %420 ], [ %272, %312 ], [ %191, %229 ], [ %110, %148 ], [ %11, %67 ]
  %4992 = phi ptr [ %37, %4967 ], [ %4903, %._crit_edge2479 ], [ %10, %._crit_edge ], [ %111, %._crit_edge2131 ], [ %192, %._crit_edge2138 ], [ %273, %._crit_edge2145 ], [ %273, %342 ], [ %273, %356 ], [ %383, %._crit_edge2152 ], [ %464, %._crit_edge2159 ], [ %546, %._crit_edge2166 ], [ %628, %._crit_edge2173 ], [ %710, %._crit_edge2180 ], [ %792, %._crit_edge2187 ], [ %1487, %._crit_edge2243 ], [ %1487, %1552 ], [ %1714, %1929 ], [ %1957, %._crit_edge2251 ], [ %1957, %._crit_edge2251 ], [ %1957, %._crit_edge2251 ], [ %2036, %._crit_edge2258 ], [ %2467, %2445 ], [ %2299, %2700 ], [ %2802, %2780 ], [ %2802, %2880 ], [ %2937, %2915 ], [ %2937, %2945 ], [ %3045, %3023 ], [ %3045, %3117 ], [ %2909, %3166 ], [ %2909, %3440 ], [ %3540, %3518 ], [ %3540, %3612 ], [ %2909, %3620 ], [ %2909, %4188 ], [ %2909, %4204 ], [ %2909, %4097 ], [ %2909, %4107 ], [ %4233, %._crit_edge2423 ], [ %4315, %._crit_edge2430 ], [ %4397, %._crit_edge2437 ], [ %4479, %._crit_edge2444 ], [ %4561, %._crit_edge2451 ], [ %2909, %.loopexit.loopexit2500 ], [ %2909, %.loopexit.loopexit2501 ], [ %2909, %.loopexit.loopexit2502 ], [ %4903, %4945 ], [ %4817, %4859 ], [ %4731, %4773 ], [ %4645, %4687 ], [ %4561, %4599 ], [ %4479, %4517 ], [ %4397, %4435 ], [ %4315, %4353 ], [ %4233, %4271 ], [ %1630, %1671 ], [ %1815, %1851 ], [ %.ph3419, %2152 ], [ %.ph3419, %2174 ], [ %2586, %2618 ], [ %2510, %2542 ], [ %2349, %2380 ], [ %2838, %2858 ], [ %3078, %3095 ], [ %3045, %3158 ], [ %3045, %3152 ], [ %2987, %3002 ], [ %3573, %3590 ], [ %3482, %3497 ], [ %2739, %2759 ], [ %2036, %2071 ], [ %1957, %1992 ], [ %1487, %1530 ], [ %1401, %1443 ], [ %1315, %1357 ], [ %1230, %1271 ], [ %1144, %1186 ], [ %1058, %1100 ], [ %972, %1014 ], [ %886, %928 ], [ %792, %830 ], [ %710, %748 ], [ %628, %666 ], [ %546, %584 ], [ %464, %502 ], [ %383, %420 ], [ %273, %312 ], [ %192, %229 ], [ %111, %148 ], [ %10, %67 ]
  %4993 = phi ptr [ %36, %4967 ], [ %4904, %._crit_edge2479 ], [ %8, %._crit_edge ], [ %112, %._crit_edge2131 ], [ %193, %._crit_edge2138 ], [ %274, %._crit_edge2145 ], [ %274, %342 ], [ %274, %356 ], [ %384, %._crit_edge2152 ], [ %465, %._crit_edge2159 ], [ %547, %._crit_edge2166 ], [ %629, %._crit_edge2173 ], [ %711, %._crit_edge2180 ], [ %793, %._crit_edge2187 ], [ %1488, %._crit_edge2243 ], [ %1488, %1552 ], [ %1715, %1929 ], [ %1958, %._crit_edge2251 ], [ %1958, %._crit_edge2251 ], [ %1958, %._crit_edge2251 ], [ %2037, %._crit_edge2258 ], [ %2468, %2445 ], [ %2300, %2700 ], [ %2803, %2780 ], [ %2803, %2880 ], [ %2938, %2915 ], [ %2938, %2945 ], [ %3046, %3023 ], [ %3046, %3117 ], [ %2910, %3166 ], [ %2910, %3440 ], [ %3541, %3518 ], [ %3541, %3612 ], [ %2910, %3620 ], [ %2910, %4188 ], [ %2910, %4204 ], [ %2910, %4097 ], [ %2910, %4107 ], [ %4234, %._crit_edge2423 ], [ %4316, %._crit_edge2430 ], [ %4398, %._crit_edge2437 ], [ %4480, %._crit_edge2444 ], [ %4562, %._crit_edge2451 ], [ %2910, %.loopexit.loopexit2500 ], [ %2910, %.loopexit.loopexit2501 ], [ %2910, %.loopexit.loopexit2502 ], [ %4904, %4945 ], [ %4818, %4859 ], [ %4732, %4773 ], [ %4646, %4687 ], [ %4562, %4599 ], [ %4480, %4517 ], [ %4398, %4435 ], [ %4316, %4353 ], [ %4234, %4271 ], [ %1631, %1671 ], [ %1816, %1851 ], [ %.ph3420, %2152 ], [ %.ph3420, %2174 ], [ %2587, %2618 ], [ %2511, %2542 ], [ %2350, %2380 ], [ %2839, %2858 ], [ %3079, %3095 ], [ %3046, %3158 ], [ %3046, %3152 ], [ %2988, %3002 ], [ %3574, %3590 ], [ %3483, %3497 ], [ %2740, %2759 ], [ %2037, %2071 ], [ %1958, %1992 ], [ %1488, %1530 ], [ %1402, %1443 ], [ %1316, %1357 ], [ %1231, %1271 ], [ %1145, %1186 ], [ %1059, %1100 ], [ %973, %1014 ], [ %887, %928 ], [ %793, %830 ], [ %711, %748 ], [ %629, %666 ], [ %547, %584 ], [ %465, %502 ], [ %384, %420 ], [ %274, %312 ], [ %193, %229 ], [ %112, %148 ], [ %8, %67 ]
  %4994 = phi ptr [ %35, %4967 ], [ %4905, %._crit_edge2479 ], [ %9, %._crit_edge ], [ %113, %._crit_edge2131 ], [ %194, %._crit_edge2138 ], [ %275, %._crit_edge2145 ], [ %275, %342 ], [ %275, %356 ], [ %385, %._crit_edge2152 ], [ %466, %._crit_edge2159 ], [ %548, %._crit_edge2166 ], [ %630, %._crit_edge2173 ], [ %712, %._crit_edge2180 ], [ %794, %._crit_edge2187 ], [ %1489, %._crit_edge2243 ], [ %1489, %1552 ], [ %1716, %1929 ], [ %1959, %._crit_edge2251 ], [ %1959, %._crit_edge2251 ], [ %1959, %._crit_edge2251 ], [ %2038, %._crit_edge2258 ], [ %2469, %2445 ], [ %2301, %2700 ], [ %2804, %2780 ], [ %2804, %2880 ], [ %2939, %2915 ], [ %2939, %2945 ], [ %3047, %3023 ], [ %3047, %3117 ], [ %2911, %3166 ], [ %2911, %3440 ], [ %3542, %3518 ], [ %3542, %3612 ], [ %2911, %3620 ], [ %2911, %4188 ], [ %2911, %4204 ], [ %2911, %4097 ], [ %2911, %4107 ], [ %4235, %._crit_edge2423 ], [ %4317, %._crit_edge2430 ], [ %4399, %._crit_edge2437 ], [ %4481, %._crit_edge2444 ], [ %4563, %._crit_edge2451 ], [ %2911, %.loopexit.loopexit2500 ], [ %2911, %.loopexit.loopexit2501 ], [ %2911, %.loopexit.loopexit2502 ], [ %4905, %4945 ], [ %4819, %4859 ], [ %4733, %4773 ], [ %4647, %4687 ], [ %4563, %4599 ], [ %4481, %4517 ], [ %4399, %4435 ], [ %4317, %4353 ], [ %4235, %4271 ], [ %1632, %1671 ], [ %1817, %1851 ], [ %.ph3421, %2152 ], [ %.ph3421, %2174 ], [ %2588, %2618 ], [ %2512, %2542 ], [ %2351, %2380 ], [ %2840, %2858 ], [ %3080, %3095 ], [ %3047, %3158 ], [ %3047, %3152 ], [ %2989, %3002 ], [ %3575, %3590 ], [ %3484, %3497 ], [ %2741, %2759 ], [ %2038, %2071 ], [ %1959, %1992 ], [ %1489, %1530 ], [ %1403, %1443 ], [ %1317, %1357 ], [ %1232, %1271 ], [ %1146, %1186 ], [ %1060, %1100 ], [ %974, %1014 ], [ %888, %928 ], [ %794, %830 ], [ %712, %748 ], [ %630, %666 ], [ %548, %584 ], [ %466, %502 ], [ %385, %420 ], [ %275, %312 ], [ %194, %229 ], [ %113, %148 ], [ %9, %67 ]
  %4995 = phi i32 [ %.pre2739, %4967 ], [ %4921, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %129, %._crit_edge2131 ], [ %210, %._crit_edge2138 ], [ %291, %._crit_edge2145 ], [ %291, %342 ], [ %291, %356 ], [ %401, %._crit_edge2152 ], [ %482, %._crit_edge2159 ], [ %564, %._crit_edge2166 ], [ %646, %._crit_edge2173 ], [ %728, %._crit_edge2180 ], [ %810, %._crit_edge2187 ], [ %1505, %._crit_edge2243 ], [ %1505, %1552 ], [ %1730, %1929 ], [ %1972, %._crit_edge2251 ], [ %1972, %._crit_edge2251 ], [ %1972, %._crit_edge2251 ], [ %2050, %._crit_edge2258 ], [ %2478, %2445 ], [ %2310, %2700 ], [ %2808, %2780 ], [ %2808, %2880 ], [ %2940, %2915 ], [ %2940, %2945 ], [ %3048, %3023 ], [ %3048, %3117 ], [ %2912, %3166 ], [ %2912, %3440 ], [ %3543, %3518 ], [ %3543, %3612 ], [ %2912, %3620 ], [ %2912, %4188 ], [ %2912, %4204 ], [ %2912, %4097 ], [ %2912, %4107 ], [ %4251, %._crit_edge2423 ], [ %4333, %._crit_edge2430 ], [ %4415, %._crit_edge2437 ], [ %4497, %._crit_edge2444 ], [ %4579, %._crit_edge2451 ], [ %2912, %.loopexit.loopexit2500 ], [ %2912, %.loopexit.loopexit2501 ], [ %2912, %.loopexit.loopexit2502 ], [ %4921, %4945 ], [ %4835, %4859 ], [ %4749, %4773 ], [ %4663, %4687 ], [ %4579, %4599 ], [ %4497, %4517 ], [ %4415, %4435 ], [ %4333, %4353 ], [ %4251, %4271 ], [ %1647, %1671 ], [ %1831, %1851 ], [ %.ph3432, %2152 ], [ %.ph3432, %2174 ], [ %2597, %2618 ], [ %2521, %2542 ], [ %2360, %2380 ], [ %2844, %2858 ], [ %3081, %3095 ], [ %3048, %3158 ], [ %3048, %3152 ], [ %2990, %3002 ], [ %3576, %3590 ], [ %3485, %3497 ], [ %2745, %2759 ], [ %2050, %2071 ], [ %1972, %1992 ], [ %1505, %1530 ], [ %1419, %1443 ], [ %1333, %1357 ], [ %1248, %1271 ], [ %1162, %1186 ], [ %1076, %1100 ], [ %990, %1014 ], [ %904, %928 ], [ %810, %830 ], [ %728, %748 ], [ %646, %666 ], [ %564, %584 ], [ %482, %502 ], [ %401, %420 ], [ %291, %312 ], [ %210, %229 ], [ %129, %148 ], [ 0, %67 ]
  %.141760 = phi ptr [ %.pre2755, %4967 ], [ %4929, %._crit_edge2479 ], [ null, %._crit_edge ], [ %137, %._crit_edge2131 ], [ %218, %._crit_edge2138 ], [ %299, %._crit_edge2145 ], [ %299, %342 ], [ %299, %356 ], [ %409, %._crit_edge2152 ], [ %490, %._crit_edge2159 ], [ %572, %._crit_edge2166 ], [ %654, %._crit_edge2173 ], [ %736, %._crit_edge2180 ], [ %818, %._crit_edge2187 ], [ %1513, %._crit_edge2243 ], [ %1513, %1552 ], [ %1738, %1929 ], [ %1980, %._crit_edge2251 ], [ %1980, %._crit_edge2251 ], [ %1980, %._crit_edge2251 ], [ %2058, %._crit_edge2258 ], [ %2486, %2445 ], [ %2318, %2700 ], [ %.21748, %2780 ], [ %.21748, %2880 ], [ %.51751, %2915 ], [ %.51751, %2945 ], [ %.81754, %3023 ], [ %.81754, %3117 ], [ %.41750, %3166 ], [ %.41750, %3440 ], [ %.121758, %3518 ], [ %.121758, %3612 ], [ %.41750, %3620 ], [ %.41750, %4188 ], [ %.41750, %4204 ], [ %.41750, %4097 ], [ %.41750, %4107 ], [ %4259, %._crit_edge2423 ], [ %4341, %._crit_edge2430 ], [ %4423, %._crit_edge2437 ], [ %4505, %._crit_edge2444 ], [ %4587, %._crit_edge2451 ], [ %.41750, %.loopexit.loopexit2500 ], [ %.41750, %.loopexit.loopexit2501 ], [ %.41750, %.loopexit.loopexit2502 ], [ %4929, %4945 ], [ %4843, %4859 ], [ %4757, %4773 ], [ %4671, %4687 ], [ %4587, %4599 ], [ %4505, %4517 ], [ %4423, %4435 ], [ %4341, %4353 ], [ %4259, %4271 ], [ %1655, %1671 ], [ %1839, %1851 ], [ %.ph3440, %2152 ], [ %.ph3440, %2174 ], [ %2605, %2618 ], [ %2529, %2542 ], [ %2368, %2380 ], [ %.31749, %2858 ], [ %.91755, %3095 ], [ %.81754, %3158 ], [ %.81754, %3152 ], [ %.71753, %3002 ], [ %.131759, %3590 ], [ %.111757, %3497 ], [ %.11747, %2759 ], [ %2058, %2071 ], [ %1980, %1992 ], [ %1513, %1530 ], [ %1427, %1443 ], [ %1341, %1357 ], [ %1256, %1271 ], [ %1170, %1186 ], [ %1084, %1100 ], [ %998, %1014 ], [ %912, %928 ], [ %818, %830 ], [ %736, %748 ], [ %654, %666 ], [ %572, %584 ], [ %490, %502 ], [ %409, %420 ], [ %299, %312 ], [ %218, %229 ], [ %137, %148 ], [ null, %67 ]
  %.141745 = phi ptr [ %.pre2753, %4967 ], [ %4928, %._crit_edge2479 ], [ null, %._crit_edge ], [ %136, %._crit_edge2131 ], [ %217, %._crit_edge2138 ], [ %298, %._crit_edge2145 ], [ %298, %342 ], [ %298, %356 ], [ %408, %._crit_edge2152 ], [ %489, %._crit_edge2159 ], [ %571, %._crit_edge2166 ], [ %653, %._crit_edge2173 ], [ %735, %._crit_edge2180 ], [ %817, %._crit_edge2187 ], [ %1512, %._crit_edge2243 ], [ %1512, %1552 ], [ %1737, %1929 ], [ %1979, %._crit_edge2251 ], [ %1979, %._crit_edge2251 ], [ %1979, %._crit_edge2251 ], [ %2057, %._crit_edge2258 ], [ %2485, %2445 ], [ %2317, %2700 ], [ %.21733, %2780 ], [ %.21733, %2880 ], [ %.51736, %2915 ], [ %.51736, %2945 ], [ %.81739, %3023 ], [ %.81739, %3117 ], [ %.41735, %3166 ], [ %.41735, %3440 ], [ %.121743, %3518 ], [ %.121743, %3612 ], [ %.41735, %3620 ], [ %.41735, %4188 ], [ %.41735, %4204 ], [ %.41735, %4097 ], [ %.41735, %4107 ], [ %4258, %._crit_edge2423 ], [ %4340, %._crit_edge2430 ], [ %4422, %._crit_edge2437 ], [ %4504, %._crit_edge2444 ], [ %4586, %._crit_edge2451 ], [ %.41735, %.loopexit.loopexit2500 ], [ %.41735, %.loopexit.loopexit2501 ], [ %.41735, %.loopexit.loopexit2502 ], [ %4928, %4945 ], [ %4842, %4859 ], [ %4756, %4773 ], [ %4670, %4687 ], [ %4586, %4599 ], [ %4504, %4517 ], [ %4422, %4435 ], [ %4340, %4353 ], [ %4258, %4271 ], [ %1654, %1671 ], [ %1838, %1851 ], [ %.ph3439, %2152 ], [ %.ph3439, %2174 ], [ %2604, %2618 ], [ %2528, %2542 ], [ %2367, %2380 ], [ %.31734, %2858 ], [ %.91740, %3095 ], [ %.81739, %3158 ], [ %.81739, %3152 ], [ %.71738, %3002 ], [ %.131744, %3590 ], [ %.111742, %3497 ], [ %.11732, %2759 ], [ %2057, %2071 ], [ %1979, %1992 ], [ %1512, %1530 ], [ %1426, %1443 ], [ %1340, %1357 ], [ %1255, %1271 ], [ %1169, %1186 ], [ %1083, %1100 ], [ %997, %1014 ], [ %911, %928 ], [ %817, %830 ], [ %735, %748 ], [ %653, %666 ], [ %571, %584 ], [ %489, %502 ], [ %408, %420 ], [ %298, %312 ], [ %217, %229 ], [ %136, %148 ], [ null, %67 ]
  %.141730 = phi ptr [ %.pre2751, %4967 ], [ %4927, %._crit_edge2479 ], [ null, %._crit_edge ], [ %135, %._crit_edge2131 ], [ %216, %._crit_edge2138 ], [ %297, %._crit_edge2145 ], [ %297, %342 ], [ %297, %356 ], [ %407, %._crit_edge2152 ], [ %488, %._crit_edge2159 ], [ %570, %._crit_edge2166 ], [ %652, %._crit_edge2173 ], [ %734, %._crit_edge2180 ], [ %816, %._crit_edge2187 ], [ %1511, %._crit_edge2243 ], [ %1511, %1552 ], [ %1736, %1929 ], [ %1978, %._crit_edge2251 ], [ %1978, %._crit_edge2251 ], [ %1978, %._crit_edge2251 ], [ %2056, %._crit_edge2258 ], [ %2484, %2445 ], [ %2316, %2700 ], [ %.21718, %2780 ], [ %.21718, %2880 ], [ %.51721, %2915 ], [ %.51721, %2945 ], [ %.81724, %3023 ], [ %.81724, %3117 ], [ %.41720, %3166 ], [ %.41720, %3440 ], [ %.121728, %3518 ], [ %.121728, %3612 ], [ %.41720, %3620 ], [ %.41720, %4188 ], [ %.41720, %4204 ], [ %.41720, %4097 ], [ %.41720, %4107 ], [ %4257, %._crit_edge2423 ], [ %4339, %._crit_edge2430 ], [ %4421, %._crit_edge2437 ], [ %4503, %._crit_edge2444 ], [ %4585, %._crit_edge2451 ], [ %.41720, %.loopexit.loopexit2500 ], [ %.41720, %.loopexit.loopexit2501 ], [ %.41720, %.loopexit.loopexit2502 ], [ %4927, %4945 ], [ %4841, %4859 ], [ %4755, %4773 ], [ %4669, %4687 ], [ %4585, %4599 ], [ %4503, %4517 ], [ %4421, %4435 ], [ %4339, %4353 ], [ %4257, %4271 ], [ %1653, %1671 ], [ %1837, %1851 ], [ %.ph3438, %2152 ], [ %.ph3438, %2174 ], [ %2603, %2618 ], [ %2527, %2542 ], [ %2366, %2380 ], [ %.31719, %2858 ], [ %.91725, %3095 ], [ %.81724, %3158 ], [ %.81724, %3152 ], [ %.71723, %3002 ], [ %.131729, %3590 ], [ %.111727, %3497 ], [ %.11717, %2759 ], [ %2056, %2071 ], [ %1978, %1992 ], [ %1511, %1530 ], [ %1425, %1443 ], [ %1339, %1357 ], [ %1254, %1271 ], [ %1168, %1186 ], [ %1082, %1100 ], [ %996, %1014 ], [ %910, %928 ], [ %816, %830 ], [ %734, %748 ], [ %652, %666 ], [ %570, %584 ], [ %488, %502 ], [ %407, %420 ], [ %297, %312 ], [ %216, %229 ], [ %135, %148 ], [ null, %67 ]
  %.141715 = phi i32 [ %.pre2749, %4967 ], [ %4926, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %134, %._crit_edge2131 ], [ %215, %._crit_edge2138 ], [ %296, %._crit_edge2145 ], [ %296, %342 ], [ %296, %356 ], [ %406, %._crit_edge2152 ], [ %487, %._crit_edge2159 ], [ %569, %._crit_edge2166 ], [ %651, %._crit_edge2173 ], [ %733, %._crit_edge2180 ], [ %815, %._crit_edge2187 ], [ %1510, %._crit_edge2243 ], [ %1510, %1552 ], [ %1735, %1929 ], [ %1977, %._crit_edge2251 ], [ %1977, %._crit_edge2251 ], [ %1977, %._crit_edge2251 ], [ %2055, %._crit_edge2258 ], [ %2483, %2445 ], [ %2315, %2700 ], [ %.21703, %2780 ], [ %.21703, %2880 ], [ %.51706, %2915 ], [ %.51706, %2945 ], [ %.81709, %3023 ], [ %.81709, %3117 ], [ %.41705, %3166 ], [ %.41705, %3440 ], [ %.121713, %3518 ], [ %.121713, %3612 ], [ %.41705, %3620 ], [ %.41705, %4188 ], [ %.41705, %4204 ], [ %.41705, %4097 ], [ %.41705, %4107 ], [ %4256, %._crit_edge2423 ], [ %4338, %._crit_edge2430 ], [ %4420, %._crit_edge2437 ], [ %4502, %._crit_edge2444 ], [ %4584, %._crit_edge2451 ], [ %.41705, %.loopexit.loopexit2500 ], [ %.41705, %.loopexit.loopexit2501 ], [ %.41705, %.loopexit.loopexit2502 ], [ %4926, %4945 ], [ %4840, %4859 ], [ %4754, %4773 ], [ %4668, %4687 ], [ %4584, %4599 ], [ %4502, %4517 ], [ %4420, %4435 ], [ %4338, %4353 ], [ %4256, %4271 ], [ %1652, %1671 ], [ %1836, %1851 ], [ %.ph3437, %2152 ], [ %.ph3437, %2174 ], [ %2602, %2618 ], [ %2526, %2542 ], [ %2365, %2380 ], [ %.31704, %2858 ], [ %.91710, %3095 ], [ %.81709, %3158 ], [ %.81709, %3152 ], [ %.71708, %3002 ], [ %.131714, %3590 ], [ %.111712, %3497 ], [ %.11702, %2759 ], [ %2055, %2071 ], [ %1977, %1992 ], [ %1510, %1530 ], [ %1424, %1443 ], [ %1338, %1357 ], [ %1253, %1271 ], [ %1167, %1186 ], [ %1081, %1100 ], [ %995, %1014 ], [ %909, %928 ], [ %815, %830 ], [ %733, %748 ], [ %651, %666 ], [ %569, %584 ], [ %487, %502 ], [ %406, %420 ], [ %296, %312 ], [ %215, %229 ], [ %134, %148 ], [ 0, %67 ]
  %.141700 = phi i32 [ %.pre2747, %4967 ], [ %4925, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %133, %._crit_edge2131 ], [ %214, %._crit_edge2138 ], [ %295, %._crit_edge2145 ], [ %295, %342 ], [ %295, %356 ], [ %405, %._crit_edge2152 ], [ %486, %._crit_edge2159 ], [ %568, %._crit_edge2166 ], [ %650, %._crit_edge2173 ], [ %732, %._crit_edge2180 ], [ %814, %._crit_edge2187 ], [ %1509, %._crit_edge2243 ], [ %1509, %1552 ], [ %1734, %1929 ], [ %1976, %._crit_edge2251 ], [ %1976, %._crit_edge2251 ], [ %1976, %._crit_edge2251 ], [ %2054, %._crit_edge2258 ], [ %2482, %2445 ], [ %2314, %2700 ], [ %.21688, %2780 ], [ %.21688, %2880 ], [ %.51691, %2915 ], [ %.51691, %2945 ], [ %.81694, %3023 ], [ %.81694, %3117 ], [ %.41690, %3166 ], [ %.41690, %3440 ], [ %.121698, %3518 ], [ %.121698, %3612 ], [ %.41690, %3620 ], [ %.41690, %4188 ], [ %.41690, %4204 ], [ %.41690, %4097 ], [ %.41690, %4107 ], [ %4255, %._crit_edge2423 ], [ %4337, %._crit_edge2430 ], [ %4419, %._crit_edge2437 ], [ %4501, %._crit_edge2444 ], [ %4583, %._crit_edge2451 ], [ %.41690, %.loopexit.loopexit2500 ], [ %.41690, %.loopexit.loopexit2501 ], [ %.41690, %.loopexit.loopexit2502 ], [ %4925, %4945 ], [ %4839, %4859 ], [ %4753, %4773 ], [ %4667, %4687 ], [ %4583, %4599 ], [ %4501, %4517 ], [ %4419, %4435 ], [ %4337, %4353 ], [ %4255, %4271 ], [ %1651, %1671 ], [ %1835, %1851 ], [ %.ph3436, %2152 ], [ %.ph3436, %2174 ], [ %2601, %2618 ], [ %2525, %2542 ], [ %2364, %2380 ], [ %.31689, %2858 ], [ %.91695, %3095 ], [ %.81694, %3158 ], [ %.81694, %3152 ], [ %.71693, %3002 ], [ %.131699, %3590 ], [ %.111697, %3497 ], [ %.11687, %2759 ], [ %2054, %2071 ], [ %1976, %1992 ], [ %1509, %1530 ], [ %1423, %1443 ], [ %1337, %1357 ], [ %1252, %1271 ], [ %1166, %1186 ], [ %1080, %1100 ], [ %994, %1014 ], [ %908, %928 ], [ %814, %830 ], [ %732, %748 ], [ %650, %666 ], [ %568, %584 ], [ %486, %502 ], [ %405, %420 ], [ %295, %312 ], [ %214, %229 ], [ %133, %148 ], [ 0, %67 ]
  %.101685 = phi i32 [ %.pre2745, %4967 ], [ %4924, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %132, %._crit_edge2131 ], [ %213, %._crit_edge2138 ], [ %294, %._crit_edge2145 ], [ %294, %342 ], [ %294, %356 ], [ %404, %._crit_edge2152 ], [ %485, %._crit_edge2159 ], [ %567, %._crit_edge2166 ], [ %649, %._crit_edge2173 ], [ %731, %._crit_edge2180 ], [ %813, %._crit_edge2187 ], [ %1508, %._crit_edge2243 ], [ %1508, %1552 ], [ %1733, %1929 ], [ %1975, %._crit_edge2251 ], [ %1975, %._crit_edge2251 ], [ %1975, %._crit_edge2251 ], [ %2053, %._crit_edge2258 ], [ %2481, %2445 ], [ %2313, %2700 ], [ %.01675, %2780 ], [ %.01675, %2880 ], [ %.31678, %2915 ], [ %.31678, %2945 ], [ %.51680, %3023 ], [ %.51680, %3117 ], [ %.21677, %3166 ], [ %.21677, %3440 ], [ %.81683, %3518 ], [ %.81683, %3612 ], [ %.21677, %3620 ], [ %.21677, %4188 ], [ %.21677, %4204 ], [ %.21677, %4097 ], [ %.21677, %4107 ], [ %4254, %._crit_edge2423 ], [ %4336, %._crit_edge2430 ], [ %4418, %._crit_edge2437 ], [ %4500, %._crit_edge2444 ], [ %4582, %._crit_edge2451 ], [ %.21677, %.loopexit.loopexit2500 ], [ %.21677, %.loopexit.loopexit2501 ], [ %.21677, %.loopexit.loopexit2502 ], [ %4924, %4945 ], [ %4838, %4859 ], [ %4752, %4773 ], [ %4666, %4687 ], [ %4582, %4599 ], [ %4500, %4517 ], [ %4418, %4435 ], [ %4336, %4353 ], [ %4254, %4271 ], [ %1650, %1671 ], [ %1834, %1851 ], [ %.ph3435, %2152 ], [ %.ph3435, %2174 ], [ %2600, %2618 ], [ %2524, %2542 ], [ %2363, %2380 ], [ %.11676, %2858 ], [ %.61681, %3095 ], [ %.51680, %3158 ], [ %.51680, %3152 ], [ %.41679, %3002 ], [ %.91684, %3590 ], [ %.71682, %3497 ], [ %2747, %2759 ], [ %2053, %2071 ], [ %1975, %1992 ], [ %1508, %1530 ], [ %1422, %1443 ], [ %1336, %1357 ], [ %1251, %1271 ], [ %1165, %1186 ], [ %1079, %1100 ], [ %993, %1014 ], [ %907, %928 ], [ %813, %830 ], [ %731, %748 ], [ %649, %666 ], [ %567, %584 ], [ %485, %502 ], [ %404, %420 ], [ %294, %312 ], [ %213, %229 ], [ %132, %148 ], [ 0, %67 ]
  %.101674 = phi i32 [ %.pre2743, %4967 ], [ %4923, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %131, %._crit_edge2131 ], [ %212, %._crit_edge2138 ], [ %293, %._crit_edge2145 ], [ %293, %342 ], [ %293, %356 ], [ %403, %._crit_edge2152 ], [ %484, %._crit_edge2159 ], [ %566, %._crit_edge2166 ], [ %648, %._crit_edge2173 ], [ %730, %._crit_edge2180 ], [ %812, %._crit_edge2187 ], [ %1507, %._crit_edge2243 ], [ %1507, %1552 ], [ %1732, %1929 ], [ %1974, %._crit_edge2251 ], [ %1974, %._crit_edge2251 ], [ %1974, %._crit_edge2251 ], [ %2052, %._crit_edge2258 ], [ %2480, %2445 ], [ %2312, %2700 ], [ %.01664, %2780 ], [ %.01664, %2880 ], [ %.31667, %2915 ], [ %.31667, %2945 ], [ %.51669, %3023 ], [ %.51669, %3117 ], [ %.21666, %3166 ], [ %.21666, %3440 ], [ %.81672, %3518 ], [ %.81672, %3612 ], [ %.21666, %3620 ], [ %.21666, %4188 ], [ %.21666, %4204 ], [ %.21666, %4097 ], [ %.21666, %4107 ], [ %4253, %._crit_edge2423 ], [ %4335, %._crit_edge2430 ], [ %4417, %._crit_edge2437 ], [ %4499, %._crit_edge2444 ], [ %4581, %._crit_edge2451 ], [ %.21666, %.loopexit.loopexit2500 ], [ %.21666, %.loopexit.loopexit2501 ], [ %.21666, %.loopexit.loopexit2502 ], [ %4923, %4945 ], [ %4837, %4859 ], [ %4751, %4773 ], [ %4665, %4687 ], [ %4581, %4599 ], [ %4499, %4517 ], [ %4417, %4435 ], [ %4335, %4353 ], [ %4253, %4271 ], [ %1649, %1671 ], [ %1833, %1851 ], [ %.ph3434, %2152 ], [ %.ph3434, %2174 ], [ %2599, %2618 ], [ %2523, %2542 ], [ %2362, %2380 ], [ %.11665, %2858 ], [ %.61670, %3095 ], [ %.51669, %3158 ], [ %.51669, %3152 ], [ %.41668, %3002 ], [ %.91673, %3590 ], [ %.71671, %3497 ], [ %2746, %2759 ], [ %2052, %2071 ], [ %1974, %1992 ], [ %1507, %1530 ], [ %1421, %1443 ], [ %1335, %1357 ], [ %1250, %1271 ], [ %1164, %1186 ], [ %1078, %1100 ], [ %992, %1014 ], [ %906, %928 ], [ %812, %830 ], [ %730, %748 ], [ %648, %666 ], [ %566, %584 ], [ %484, %502 ], [ %403, %420 ], [ %293, %312 ], [ %212, %229 ], [ %131, %148 ], [ 0, %67 ]
  %.111661 = phi i32 [ %.pre2741, %4967 ], [ %4922, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %130, %._crit_edge2131 ], [ %211, %._crit_edge2138 ], [ %292, %._crit_edge2145 ], [ %292, %342 ], [ %292, %356 ], [ %402, %._crit_edge2152 ], [ %483, %._crit_edge2159 ], [ %565, %._crit_edge2166 ], [ %647, %._crit_edge2173 ], [ %729, %._crit_edge2180 ], [ %811, %._crit_edge2187 ], [ %1506, %._crit_edge2243 ], [ %1506, %1552 ], [ %1731, %1929 ], [ %1973, %._crit_edge2251 ], [ %1973, %._crit_edge2251 ], [ %1973, %._crit_edge2251 ], [ %2051, %._crit_edge2258 ], [ %2479, %2445 ], [ %2311, %2700 ], [ %.11651, %2780 ], [ %.11651, %2880 ], [ %.41654, %2915 ], [ %.41654, %2945 ], [ %.61656, %3023 ], [ %.61656, %3117 ], [ %.31653, %3166 ], [ %.31653, %3440 ], [ %.91659, %3518 ], [ %.91659, %3612 ], [ %.31653, %3620 ], [ %.31653, %4188 ], [ %.31653, %4204 ], [ %.31653, %4097 ], [ %.31653, %4107 ], [ %4252, %._crit_edge2423 ], [ %4334, %._crit_edge2430 ], [ %4416, %._crit_edge2437 ], [ %4498, %._crit_edge2444 ], [ %4580, %._crit_edge2451 ], [ %.31653, %.loopexit.loopexit2500 ], [ %.31653, %.loopexit.loopexit2501 ], [ %.31653, %.loopexit.loopexit2502 ], [ %4922, %4945 ], [ %4836, %4859 ], [ %4750, %4773 ], [ %4664, %4687 ], [ %4580, %4599 ], [ %4498, %4517 ], [ %4416, %4435 ], [ %4334, %4353 ], [ %4252, %4271 ], [ %1648, %1671 ], [ %1832, %1851 ], [ %.ph3433, %2152 ], [ %.ph3433, %2174 ], [ %2598, %2618 ], [ %2522, %2542 ], [ %2361, %2380 ], [ %.21652, %2858 ], [ %.71657, %3095 ], [ %.61656, %3158 ], [ %.61656, %3152 ], [ %.51655, %3002 ], [ %.101660, %3590 ], [ %.81658, %3497 ], [ %.01650, %2759 ], [ %2051, %2071 ], [ %1973, %1992 ], [ %1506, %1530 ], [ %1420, %1443 ], [ %1334, %1357 ], [ %1249, %1271 ], [ %1163, %1186 ], [ %1077, %1100 ], [ %991, %1014 ], [ %905, %928 ], [ %811, %830 ], [ %729, %748 ], [ %647, %666 ], [ %565, %584 ], [ %483, %502 ], [ %402, %420 ], [ %292, %312 ], [ %211, %229 ], [ %130, %148 ], [ 0, %67 ]
  %.181649 = phi i32 [ %.pre2737, %4967 ], [ %4920, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %128, %._crit_edge2131 ], [ %209, %._crit_edge2138 ], [ %290, %._crit_edge2145 ], [ %290, %342 ], [ %290, %356 ], [ %400, %._crit_edge2152 ], [ %481, %._crit_edge2159 ], [ %563, %._crit_edge2166 ], [ %645, %._crit_edge2173 ], [ %727, %._crit_edge2180 ], [ %809, %._crit_edge2187 ], [ %1504, %._crit_edge2243 ], [ %1504, %1552 ], [ %1729, %1929 ], [ %1971, %._crit_edge2251 ], [ %1971, %._crit_edge2251 ], [ %1971, %._crit_edge2251 ], [ %2049, %._crit_edge2258 ], [ %.31634, %2445 ], [ %.01631, %2700 ], [ %.81639, %2780 ], [ %.81639, %2880 ], [ %.111642, %2915 ], [ %.111642, %2945 ], [ %.131644, %3023 ], [ %.131644, %3117 ], [ %.101641, %3166 ], [ %.101641, %3440 ], [ %.161647, %3518 ], [ %.161647, %3612 ], [ %.101641, %3620 ], [ %.101641, %4188 ], [ %.101641, %4204 ], [ %.101641, %4097 ], [ %.101641, %4107 ], [ %4250, %._crit_edge2423 ], [ %4332, %._crit_edge2430 ], [ %4414, %._crit_edge2437 ], [ %4496, %._crit_edge2444 ], [ %4578, %._crit_edge2451 ], [ %.101641, %.loopexit.loopexit2500 ], [ %.101641, %.loopexit.loopexit2501 ], [ %.101641, %.loopexit.loopexit2502 ], [ %4920, %4945 ], [ %4834, %4859 ], [ %4748, %4773 ], [ %4662, %4687 ], [ %4578, %4599 ], [ %4496, %4517 ], [ %4414, %4435 ], [ %4332, %4353 ], [ %4250, %4271 ], [ %1646, %1671 ], [ %1830, %1851 ], [ %.ph3431, %2152 ], [ %.ph3431, %2174 ], [ %.51636, %2618 ], [ %.41635, %2542 ], [ %.11632, %2380 ], [ %.91640, %2858 ], [ %.141645, %3095 ], [ %.131644, %3158 ], [ %.131644, %3152 ], [ %.121643, %3002 ], [ %.171648, %3590 ], [ %.151646, %3497 ], [ %.71638, %2759 ], [ %2049, %2071 ], [ %1971, %1992 ], [ %1504, %1530 ], [ %1418, %1443 ], [ %1332, %1357 ], [ %1247, %1271 ], [ %1161, %1186 ], [ %1075, %1100 ], [ %989, %1014 ], [ %903, %928 ], [ %809, %830 ], [ %727, %748 ], [ %645, %666 ], [ %563, %584 ], [ %481, %502 ], [ %400, %420 ], [ %290, %312 ], [ %209, %229 ], [ %128, %148 ], [ 0, %67 ]
  %.81630 = phi i32 [ %.pre2735, %4967 ], [ %4919, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %127, %._crit_edge2131 ], [ %208, %._crit_edge2138 ], [ %289, %._crit_edge2145 ], [ %289, %342 ], [ %289, %356 ], [ %399, %._crit_edge2152 ], [ %480, %._crit_edge2159 ], [ %562, %._crit_edge2166 ], [ %644, %._crit_edge2173 ], [ %726, %._crit_edge2180 ], [ %808, %._crit_edge2187 ], [ %1503, %._crit_edge2243 ], [ %1503, %1552 ], [ %1728, %1929 ], [ %1970, %._crit_edge2251 ], [ %1970, %._crit_edge2251 ], [ %1970, %._crit_edge2251 ], [ %2048, %._crit_edge2258 ], [ %2477, %2445 ], [ %2309, %2700 ], [ %2807, %2780 ], [ %2807, %2880 ], [ %.11623, %2915 ], [ %2943, %2945 ], [ %.31625, %3023 ], [ %.31625, %3117 ], [ %.01622, %3166 ], [ %.01622, %3440 ], [ %.61628, %3518 ], [ %.61628, %3612 ], [ %.01622, %3620 ], [ %.01622, %4188 ], [ %.01622, %4204 ], [ %.01622, %4097 ], [ %.01622, %4107 ], [ %4249, %._crit_edge2423 ], [ %4331, %._crit_edge2430 ], [ %4413, %._crit_edge2437 ], [ %4495, %._crit_edge2444 ], [ %4577, %._crit_edge2451 ], [ %.01622, %.loopexit.loopexit2500 ], [ %.01622, %.loopexit.loopexit2501 ], [ %.01622, %.loopexit.loopexit2502 ], [ %4919, %4945 ], [ %4833, %4859 ], [ %4747, %4773 ], [ %4661, %4687 ], [ %4577, %4599 ], [ %4495, %4517 ], [ %4413, %4435 ], [ %4331, %4353 ], [ %4249, %4271 ], [ %1645, %1671 ], [ %1829, %1851 ], [ %.ph3430, %2152 ], [ %.ph3430, %2174 ], [ %2596, %2618 ], [ %2520, %2542 ], [ %2359, %2380 ], [ %2843, %2858 ], [ %.41626, %3095 ], [ %.31625, %3158 ], [ %.31625, %3152 ], [ %.21624, %3002 ], [ %.71629, %3590 ], [ %.51627, %3497 ], [ %2744, %2759 ], [ %2048, %2071 ], [ %1970, %1992 ], [ %1503, %1530 ], [ %1417, %1443 ], [ %1331, %1357 ], [ %1246, %1271 ], [ %1160, %1186 ], [ %1074, %1100 ], [ %988, %1014 ], [ %902, %928 ], [ %808, %830 ], [ %726, %748 ], [ %644, %666 ], [ %562, %584 ], [ %480, %502 ], [ %399, %420 ], [ %289, %312 ], [ %208, %229 ], [ %127, %148 ], [ 0, %67 ]
  %.121617 = phi i32 [ %.pre2733, %4967 ], [ %4918, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %126, %._crit_edge2131 ], [ %207, %._crit_edge2138 ], [ %288, %._crit_edge2145 ], [ %288, %342 ], [ %288, %356 ], [ %398, %._crit_edge2152 ], [ %479, %._crit_edge2159 ], [ %561, %._crit_edge2166 ], [ %643, %._crit_edge2173 ], [ %725, %._crit_edge2180 ], [ %807, %._crit_edge2187 ], [ %1502, %._crit_edge2243 ], [ %1502, %1552 ], [ %1727, %1929 ], [ %1969, %._crit_edge2251 ], [ %1969, %._crit_edge2251 ], [ %1969, %._crit_edge2251 ], [ %2047, %._crit_edge2258 ], [ %2476, %2445 ], [ %2308, %2700 ], [ %2806, %2780 ], [ %2806, %2880 ], [ %.11606, %2915 ], [ %.21607, %2945 ], [ %.41609, %3023 ], [ %.41609, %3117 ], [ %.01605, %3166 ], [ %.01605, %3440 ], [ %.101615, %3518 ], [ %.101615, %3612 ], [ %.01605, %3620 ], [ %.01605, %4188 ], [ %.01605, %4204 ], [ %.01605, %4097 ], [ %.01605, %4107 ], [ %4248, %._crit_edge2423 ], [ %4330, %._crit_edge2430 ], [ %4412, %._crit_edge2437 ], [ %4494, %._crit_edge2444 ], [ %4576, %._crit_edge2451 ], [ %.01605, %.loopexit.loopexit2500 ], [ %.01605, %.loopexit.loopexit2501 ], [ %.01605, %.loopexit.loopexit2502 ], [ %4918, %4945 ], [ %4832, %4859 ], [ %4746, %4773 ], [ %4660, %4687 ], [ %4576, %4599 ], [ %4494, %4517 ], [ %4412, %4435 ], [ %4330, %4353 ], [ %4248, %4271 ], [ %1644, %1671 ], [ %1828, %1851 ], [ %.ph3429, %2152 ], [ %.ph3429, %2174 ], [ %2595, %2618 ], [ %2519, %2542 ], [ %2358, %2380 ], [ %2842, %2858 ], [ %.51610, %3095 ], [ %.716122346, %3158 ], [ %.616112341, %3152 ], [ %.31608, %3002 ], [ %.111616, %3590 ], [ %.91614, %3497 ], [ %2743, %2759 ], [ %2047, %2071 ], [ %1969, %1992 ], [ %1502, %1530 ], [ %1416, %1443 ], [ %1330, %1357 ], [ %1245, %1271 ], [ %1159, %1186 ], [ %1073, %1100 ], [ %987, %1014 ], [ %901, %928 ], [ %807, %830 ], [ %725, %748 ], [ %643, %666 ], [ %561, %584 ], [ %479, %502 ], [ %398, %420 ], [ %288, %312 ], [ %207, %229 ], [ %126, %148 ], [ 0, %67 ]
  %.141604 = phi i32 [ %.pre2731, %4967 ], [ %4917, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %125, %._crit_edge2131 ], [ %206, %._crit_edge2138 ], [ %287, %._crit_edge2145 ], [ %287, %342 ], [ %287, %356 ], [ %397, %._crit_edge2152 ], [ %478, %._crit_edge2159 ], [ %560, %._crit_edge2166 ], [ %642, %._crit_edge2173 ], [ %724, %._crit_edge2180 ], [ %806, %._crit_edge2187 ], [ %1501, %._crit_edge2243 ], [ %1501, %1552 ], [ %1726, %1929 ], [ %1968, %._crit_edge2251 ], [ %1968, %._crit_edge2251 ], [ %1968, %._crit_edge2251 ], [ %2046, %._crit_edge2258 ], [ %2475, %2445 ], [ 0, %2700 ], [ %.11591, %2780 ], [ %.11591, %2880 ], [ %.41594, %2915 ], [ %.41594, %2945 ], [ %.61596, %3023 ], [ %.61596, %3117 ], [ %.31593, %3166 ], [ %3438, %3440 ], [ %.121602, %3518 ], [ %.121602, %3612 ], [ %.31593, %3620 ], [ %.31593, %4188 ], [ %.31593, %4204 ], [ %.31593, %4097 ], [ %.31593, %4107 ], [ %4247, %._crit_edge2423 ], [ %4329, %._crit_edge2430 ], [ %4411, %._crit_edge2437 ], [ %4493, %._crit_edge2444 ], [ %4575, %._crit_edge2451 ], [ %.31593, %.loopexit.loopexit2500 ], [ %.31593, %.loopexit.loopexit2501 ], [ %.31593, %.loopexit.loopexit2502 ], [ %4917, %4945 ], [ %4831, %4859 ], [ %4745, %4773 ], [ %4659, %4687 ], [ %4575, %4599 ], [ %4493, %4517 ], [ %4411, %4435 ], [ %4329, %4353 ], [ %4247, %4271 ], [ %1643, %1671 ], [ %1827, %1851 ], [ %.ph3428, %2152 ], [ %.ph3428, %2174 ], [ %2594, %2618 ], [ %2518, %2542 ], [ %2357, %2380 ], [ %.21592, %2858 ], [ %.71597, %3095 ], [ %smax2664, %3158 ], [ %smax, %3152 ], [ %.51595, %3002 ], [ %.131603, %3590 ], [ %.111601, %3497 ], [ %.01590, %2759 ], [ %2046, %2071 ], [ %1968, %1992 ], [ %1501, %1530 ], [ %1415, %1443 ], [ %1329, %1357 ], [ %1244, %1271 ], [ %1158, %1186 ], [ %1072, %1100 ], [ %986, %1014 ], [ %900, %928 ], [ %806, %830 ], [ %724, %748 ], [ %642, %666 ], [ %560, %584 ], [ %478, %502 ], [ %397, %420 ], [ %287, %312 ], [ %206, %229 ], [ %125, %148 ], [ 0, %67 ]
  %.111589 = phi i32 [ %.pre2729, %4967 ], [ %4916, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %124, %._crit_edge2131 ], [ %205, %._crit_edge2138 ], [ %286, %._crit_edge2145 ], [ %286, %342 ], [ %286, %356 ], [ %396, %._crit_edge2152 ], [ %477, %._crit_edge2159 ], [ %559, %._crit_edge2166 ], [ %641, %._crit_edge2173 ], [ %723, %._crit_edge2180 ], [ %805, %._crit_edge2187 ], [ %1500, %._crit_edge2243 ], [ %1500, %1552 ], [ %1725, %1929 ], [ %1967, %._crit_edge2251 ], [ %1967, %._crit_edge2251 ], [ %1967, %._crit_edge2251 ], [ %2045, %._crit_edge2258 ], [ %2474, %2445 ], [ %2673, %2700 ], [ %.11579, %2780 ], [ %.11579, %2880 ], [ %.41582, %2915 ], [ %.41582, %2945 ], [ %.61584, %3023 ], [ %.61584, %3117 ], [ %.31581, %3166 ], [ %.31581, %3440 ], [ %.91587, %3518 ], [ %.91587, %3612 ], [ %.31581, %3620 ], [ %.31581, %4188 ], [ %.31581, %4204 ], [ %.31581, %4097 ], [ %.31581, %4107 ], [ %4246, %._crit_edge2423 ], [ %4328, %._crit_edge2430 ], [ %4410, %._crit_edge2437 ], [ %4492, %._crit_edge2444 ], [ %4574, %._crit_edge2451 ], [ %.31581, %.loopexit.loopexit2500 ], [ %.31581, %.loopexit.loopexit2501 ], [ %.31581, %.loopexit.loopexit2502 ], [ %4916, %4945 ], [ %4830, %4859 ], [ %4744, %4773 ], [ %4658, %4687 ], [ %4574, %4599 ], [ %4492, %4517 ], [ %4410, %4435 ], [ %4328, %4353 ], [ %4246, %4271 ], [ %1642, %1671 ], [ %1826, %1851 ], [ %.ph3427, %2152 ], [ %.ph3427, %2174 ], [ %2593, %2618 ], [ %2517, %2542 ], [ %2356, %2380 ], [ %.21580, %2858 ], [ %.71585, %3095 ], [ %.61584, %3158 ], [ %.61584, %3152 ], [ %.51583, %3002 ], [ %.101588, %3590 ], [ %.81586, %3497 ], [ %.01578, %2759 ], [ %2045, %2071 ], [ %1967, %1992 ], [ %1500, %1530 ], [ %1414, %1443 ], [ %1328, %1357 ], [ %1243, %1271 ], [ %1157, %1186 ], [ %1071, %1100 ], [ %985, %1014 ], [ %899, %928 ], [ %805, %830 ], [ %723, %748 ], [ %641, %666 ], [ %559, %584 ], [ %477, %502 ], [ %396, %420 ], [ %286, %312 ], [ %205, %229 ], [ %124, %148 ], [ 0, %67 ]
  %.81577 = phi i32 [ %.pre2727, %4967 ], [ %4915, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %123, %._crit_edge2131 ], [ %204, %._crit_edge2138 ], [ %285, %._crit_edge2145 ], [ %285, %342 ], [ %285, %356 ], [ %395, %._crit_edge2152 ], [ %476, %._crit_edge2159 ], [ %558, %._crit_edge2166 ], [ %640, %._crit_edge2173 ], [ %722, %._crit_edge2180 ], [ %804, %._crit_edge2187 ], [ %1499, %._crit_edge2243 ], [ %1499, %1552 ], [ %1724, %1929 ], [ %1966, %._crit_edge2251 ], [ %1966, %._crit_edge2251 ], [ %1966, %._crit_edge2251 ], [ %2044, %._crit_edge2258 ], [ %2473, %2445 ], [ %2305, %2700 ], [ %2805, %2780 ], [ %2805, %2880 ], [ %.11570, %2915 ], [ %.11570, %2945 ], [ %.31572, %3023 ], [ %.31572, %3117 ], [ %.01569, %3166 ], [ %.01569, %3440 ], [ %.61575, %3518 ], [ %.61575, %3612 ], [ %.01569, %3620 ], [ %.01569, %4188 ], [ %.01569, %4204 ], [ %.01569, %4097 ], [ %.01569, %4107 ], [ %4245, %._crit_edge2423 ], [ %4327, %._crit_edge2430 ], [ %4409, %._crit_edge2437 ], [ %4491, %._crit_edge2444 ], [ %4573, %._crit_edge2451 ], [ %.01569, %.loopexit.loopexit2500 ], [ %.01569, %.loopexit.loopexit2501 ], [ %.01569, %.loopexit.loopexit2502 ], [ %4915, %4945 ], [ %4829, %4859 ], [ %4743, %4773 ], [ %4657, %4687 ], [ %4573, %4599 ], [ %4491, %4517 ], [ %4409, %4435 ], [ %4327, %4353 ], [ %4245, %4271 ], [ %1641, %1671 ], [ %1825, %1851 ], [ %.ph3426, %2152 ], [ %.ph3426, %2174 ], [ %2592, %2618 ], [ %2516, %2542 ], [ %2355, %2380 ], [ %2841, %2858 ], [ %.41573, %3095 ], [ %3124, %3158 ], [ %3124, %3152 ], [ %.21571, %3002 ], [ %.71576, %3590 ], [ %.51574, %3497 ], [ %2742, %2759 ], [ %2044, %2071 ], [ %1966, %1992 ], [ %1499, %1530 ], [ %1413, %1443 ], [ %1327, %1357 ], [ %1242, %1271 ], [ %1156, %1186 ], [ %1070, %1100 ], [ %984, %1014 ], [ %898, %928 ], [ %804, %830 ], [ %722, %748 ], [ %640, %666 ], [ %558, %584 ], [ %476, %502 ], [ %395, %420 ], [ %285, %312 ], [ %204, %229 ], [ %123, %148 ], [ 0, %67 ]
  %.141562 = phi i32 [ %.pre2725, %4967 ], [ %4914, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %122, %._crit_edge2131 ], [ %203, %._crit_edge2138 ], [ %284, %._crit_edge2145 ], [ %284, %342 ], [ %284, %356 ], [ %394, %._crit_edge2152 ], [ %475, %._crit_edge2159 ], [ %557, %._crit_edge2166 ], [ %639, %._crit_edge2173 ], [ %721, %._crit_edge2180 ], [ %803, %._crit_edge2187 ], [ %1498, %._crit_edge2243 ], [ %1498, %1552 ], [ %1723, %1929 ], [ %1965, %._crit_edge2251 ], [ %1965, %._crit_edge2251 ], [ %1965, %._crit_edge2251 ], [ %2043, %._crit_edge2258 ], [ %2472, %2445 ], [ 0, %2700 ], [ %.21550, %2780 ], [ %.21550, %2880 ], [ %.51553, %2915 ], [ 0, %2945 ], [ %.81556, %3023 ], [ %.81556, %3117 ], [ %.41552, %3166 ], [ 0, %3440 ], [ %.121560, %3518 ], [ %.121560, %3612 ], [ %.41552, %3620 ], [ %.41552, %4188 ], [ %.41552, %4204 ], [ %.41552, %4097 ], [ %.41552, %4107 ], [ %4244, %._crit_edge2423 ], [ %4326, %._crit_edge2430 ], [ %4408, %._crit_edge2437 ], [ %4490, %._crit_edge2444 ], [ %4572, %._crit_edge2451 ], [ %.41552, %.loopexit.loopexit2500 ], [ %.41552, %.loopexit.loopexit2501 ], [ %.41552, %.loopexit.loopexit2502 ], [ %4914, %4945 ], [ %4828, %4859 ], [ %4742, %4773 ], [ %4656, %4687 ], [ %4572, %4599 ], [ %4490, %4517 ], [ %4408, %4435 ], [ %4326, %4353 ], [ %4244, %4271 ], [ %1640, %1671 ], [ %1824, %1851 ], [ %.ph3425, %2152 ], [ %.ph3425, %2174 ], [ %2591, %2618 ], [ %2515, %2542 ], [ %2354, %2380 ], [ %.31551, %2858 ], [ %.91557, %3095 ], [ %.81556, %3158 ], [ %.81556, %3152 ], [ %.71555, %3002 ], [ %.131561, %3590 ], [ %.111559, %3497 ], [ %.11549, %2759 ], [ %2043, %2071 ], [ %1965, %1992 ], [ %1498, %1530 ], [ %1412, %1443 ], [ %1326, %1357 ], [ %1241, %1271 ], [ %1155, %1186 ], [ %1069, %1100 ], [ %983, %1014 ], [ %897, %928 ], [ %803, %830 ], [ %721, %748 ], [ %639, %666 ], [ %557, %584 ], [ %475, %502 ], [ %394, %420 ], [ %284, %312 ], [ %203, %229 ], [ %122, %148 ], [ 0, %67 ]
  %.141545 = phi i32 [ %.pre2723, %4967 ], [ %4913, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %121, %._crit_edge2131 ], [ %202, %._crit_edge2138 ], [ %283, %._crit_edge2145 ], [ %283, %342 ], [ %283, %356 ], [ %393, %._crit_edge2152 ], [ %474, %._crit_edge2159 ], [ %556, %._crit_edge2166 ], [ %638, %._crit_edge2173 ], [ %720, %._crit_edge2180 ], [ %802, %._crit_edge2187 ], [ %1497, %._crit_edge2243 ], [ %1497, %1552 ], [ %1722, %1929 ], [ %1964, %._crit_edge2251 ], [ %1964, %._crit_edge2251 ], [ %1964, %._crit_edge2251 ], [ %2042, %._crit_edge2258 ], [ %2471, %2445 ], [ 0, %2700 ], [ %.21533, %2780 ], [ %.21533, %2880 ], [ %.51536, %2915 ], [ %2946, %2945 ], [ %.81539, %3023 ], [ %.81539, %3117 ], [ %.41535, %3166 ], [ %3441, %3440 ], [ %.121543, %3518 ], [ %.121543, %3612 ], [ %.41535, %3620 ], [ %.41535, %4188 ], [ %.41535, %4204 ], [ %.41535, %4097 ], [ %.41535, %4107 ], [ %4243, %._crit_edge2423 ], [ %4325, %._crit_edge2430 ], [ %4407, %._crit_edge2437 ], [ %4489, %._crit_edge2444 ], [ %4571, %._crit_edge2451 ], [ %.41535, %.loopexit.loopexit2500 ], [ %.41535, %.loopexit.loopexit2501 ], [ %.41535, %.loopexit.loopexit2502 ], [ %4913, %4945 ], [ %4827, %4859 ], [ %4741, %4773 ], [ %4655, %4687 ], [ %4571, %4599 ], [ %4489, %4517 ], [ %4407, %4435 ], [ %4325, %4353 ], [ %4243, %4271 ], [ %1639, %1671 ], [ %1823, %1851 ], [ %.ph3424, %2152 ], [ %.ph3424, %2174 ], [ %2590, %2618 ], [ %2514, %2542 ], [ %2353, %2380 ], [ %.31534, %2858 ], [ %.91540, %3095 ], [ %.81539, %3158 ], [ %.81539, %3152 ], [ %.71538, %3002 ], [ %.131544, %3590 ], [ %.111542, %3497 ], [ %.11532, %2759 ], [ %2042, %2071 ], [ %1964, %1992 ], [ %1497, %1530 ], [ %1411, %1443 ], [ %1325, %1357 ], [ %1240, %1271 ], [ %1154, %1186 ], [ %1068, %1100 ], [ %982, %1014 ], [ %896, %928 ], [ %802, %830 ], [ %720, %748 ], [ %638, %666 ], [ %556, %584 ], [ %474, %502 ], [ %393, %420 ], [ %283, %312 ], [ %202, %229 ], [ %121, %148 ], [ 0, %67 ]
  %.111530 = phi i32 [ %.pre2721, %4967 ], [ %4912, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %120, %._crit_edge2131 ], [ %201, %._crit_edge2138 ], [ %282, %._crit_edge2145 ], [ %282, %342 ], [ %282, %356 ], [ %392, %._crit_edge2152 ], [ %473, %._crit_edge2159 ], [ %555, %._crit_edge2166 ], [ %637, %._crit_edge2173 ], [ %719, %._crit_edge2180 ], [ %801, %._crit_edge2187 ], [ %1496, %._crit_edge2243 ], [ %1496, %1552 ], [ %1721, %1929 ], [ %1963, %._crit_edge2251 ], [ %1963, %._crit_edge2251 ], [ %1963, %._crit_edge2251 ], [ %2041, %._crit_edge2258 ], [ %2470, %2445 ], [ %2701, %2700 ], [ %.11520, %2780 ], [ %.11520, %2880 ], [ %.41523, %2915 ], [ %.41523, %2945 ], [ %.61525, %3023 ], [ %.61525, %3117 ], [ %.31522, %3166 ], [ %.31522, %3440 ], [ %.91528, %3518 ], [ %.91528, %3612 ], [ %.01569, %3620 ], [ %.01569, %4188 ], [ %.01569, %4204 ], [ %.01569, %4097 ], [ %.01569, %4107 ], [ %4242, %._crit_edge2423 ], [ %4324, %._crit_edge2430 ], [ %4406, %._crit_edge2437 ], [ %4488, %._crit_edge2444 ], [ %4570, %._crit_edge2451 ], [ %.01569, %.loopexit.loopexit2500 ], [ %.01569, %.loopexit.loopexit2501 ], [ %.01569, %.loopexit.loopexit2502 ], [ %4912, %4945 ], [ %4826, %4859 ], [ %4740, %4773 ], [ %4654, %4687 ], [ %4570, %4599 ], [ %4488, %4517 ], [ %4406, %4435 ], [ %4324, %4353 ], [ %4242, %4271 ], [ %1638, %1671 ], [ %1822, %1851 ], [ %.ph3423, %2152 ], [ %.ph3423, %2174 ], [ %2589, %2618 ], [ %2513, %2542 ], [ %2352, %2380 ], [ %.21521, %2858 ], [ %.71526, %3095 ], [ %.61525, %3158 ], [ %.61525, %3152 ], [ %.51524, %3002 ], [ %.101529, %3590 ], [ %.81527, %3497 ], [ %.01519, %2759 ], [ %2041, %2071 ], [ %1963, %1992 ], [ %1496, %1530 ], [ %1410, %1443 ], [ %1324, %1357 ], [ %1239, %1271 ], [ %1153, %1186 ], [ %1067, %1100 ], [ %981, %1014 ], [ %895, %928 ], [ %801, %830 ], [ %719, %748 ], [ %637, %666 ], [ %555, %584 ], [ %473, %502 ], [ %392, %420 ], [ %282, %312 ], [ %201, %229 ], [ %120, %148 ], [ 0, %67 ]
  %.201518 = phi i32 [ %.pre2719, %4967 ], [ %4911, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %119, %._crit_edge2131 ], [ %200, %._crit_edge2138 ], [ %281, %._crit_edge2145 ], [ %281, %342 ], [ %281, %356 ], [ %391, %._crit_edge2152 ], [ %472, %._crit_edge2159 ], [ %554, %._crit_edge2166 ], [ %636, %._crit_edge2173 ], [ %718, %._crit_edge2180 ], [ %800, %._crit_edge2187 ], [ %1495, %._crit_edge2243 ], [ %1495, %1552 ], [ %1720, %1929 ], [ %1962, %._crit_edge2251 ], [ %1962, %._crit_edge2251 ], [ %1962, %._crit_edge2251 ], [ 0, %._crit_edge2258 ], [ %.61504, %2445 ], [ %.31501, %2700 ], [ %.101508, %2780 ], [ %.101508, %2880 ], [ %.131511, %2915 ], [ %.131511, %2945 ], [ %.151513, %3023 ], [ %.151513, %3117 ], [ %.121510, %3166 ], [ %.121510, %3440 ], [ %.181516, %3518 ], [ %.181516, %3612 ], [ %.121510, %3620 ], [ %.121510, %4188 ], [ %.121510, %4204 ], [ %.121510, %4097 ], [ %.121510, %4107 ], [ %4241, %._crit_edge2423 ], [ %4323, %._crit_edge2430 ], [ %4405, %._crit_edge2437 ], [ %4487, %._crit_edge2444 ], [ %4569, %._crit_edge2451 ], [ %.121510, %.loopexit.loopexit2500 ], [ %.121510, %.loopexit.loopexit2501 ], [ %.121510, %.loopexit.loopexit2502 ], [ %4911, %4945 ], [ %4825, %4859 ], [ %4739, %4773 ], [ %4653, %4687 ], [ %4569, %4599 ], [ %4487, %4517 ], [ %4405, %4435 ], [ %4323, %4353 ], [ %4241, %4271 ], [ %1637, %1671 ], [ %1821, %1851 ], [ %.21500.ph, %2152 ], [ %.21500.ph, %2174 ], [ %.81506, %2618 ], [ %.71505, %2542 ], [ %.41502, %2380 ], [ %.111509, %2858 ], [ %.161514, %3095 ], [ %.151513, %3158 ], [ %.151513, %3152 ], [ %.141512, %3002 ], [ %.191517, %3590 ], [ %.171515, %3497 ], [ %.91507, %2759 ], [ %2040, %2071 ], [ %1962, %1992 ], [ %1495, %1530 ], [ %1409, %1443 ], [ %1323, %1357 ], [ %1238, %1271 ], [ %1152, %1186 ], [ %1066, %1100 ], [ %980, %1014 ], [ %894, %928 ], [ %800, %830 ], [ %718, %748 ], [ %636, %666 ], [ %554, %584 ], [ %472, %502 ], [ %391, %420 ], [ %281, %312 ], [ %200, %229 ], [ %119, %148 ], [ 0, %67 ]
  %.211497 = phi i32 [ %.pre2717, %4967 ], [ %4910, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %118, %._crit_edge2131 ], [ %199, %._crit_edge2138 ], [ %280, %._crit_edge2145 ], [ %280, %342 ], [ %280, %356 ], [ %390, %._crit_edge2152 ], [ %471, %._crit_edge2159 ], [ %553, %._crit_edge2166 ], [ %635, %._crit_edge2173 ], [ %717, %._crit_edge2180 ], [ %799, %._crit_edge2187 ], [ %1494, %._crit_edge2243 ], [ %1494, %1552 ], [ %1719, %1929 ], [ %1991, %._crit_edge2251 ], [ %1991, %._crit_edge2251 ], [ %1991, %._crit_edge2251 ], [ %.01476, %._crit_edge2258 ], [ %.71483, %2445 ], [ %.41480, %2700 ], [ %.111487, %2780 ], [ %.111487, %2880 ], [ %.141490, %2915 ], [ %.141490, %2945 ], [ %.161492, %3023 ], [ %.161492, %3117 ], [ %.131489, %3166 ], [ %.131489, %3440 ], [ %.191495, %3518 ], [ %.191495, %3612 ], [ %.131489, %3620 ], [ %.131489, %4188 ], [ %.131489, %4204 ], [ %.131489, %4097 ], [ %.131489, %4107 ], [ %4240, %._crit_edge2423 ], [ %4322, %._crit_edge2430 ], [ %4404, %._crit_edge2437 ], [ %4486, %._crit_edge2444 ], [ %4568, %._crit_edge2451 ], [ %.131489, %.loopexit.loopexit2500 ], [ %.131489, %.loopexit.loopexit2501 ], [ %.131489, %.loopexit.loopexit2502 ], [ %4910, %4945 ], [ %4824, %4859 ], [ %4738, %4773 ], [ %4652, %4687 ], [ %4568, %4599 ], [ %4486, %4517 ], [ %4404, %4435 ], [ %4322, %4353 ], [ %4240, %4271 ], [ %1636, %1671 ], [ %1820, %1851 ], [ %.31479.ph, %2152 ], [ %.31479.ph, %2174 ], [ %.91485, %2618 ], [ %.81484, %2542 ], [ %.51481, %2380 ], [ %.121488, %2858 ], [ %.171493, %3095 ], [ %.161492, %3158 ], [ %.161492, %3152 ], [ %.151491, %3002 ], [ %.201496, %3590 ], [ %.181494, %3497 ], [ %.101486, %2759 ], [ %.01476, %2071 ], [ %1961, %1992 ], [ %1494, %1530 ], [ %1408, %1443 ], [ %1322, %1357 ], [ %1237, %1271 ], [ %1151, %1186 ], [ %1065, %1100 ], [ %979, %1014 ], [ %893, %928 ], [ %799, %830 ], [ %717, %748 ], [ %635, %666 ], [ %553, %584 ], [ %471, %502 ], [ %390, %420 ], [ %280, %312 ], [ %199, %229 ], [ %118, %148 ], [ 0, %67 ]
  %.221475 = phi i32 [ %.pre2715, %4967 ], [ %4909, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %117, %._crit_edge2131 ], [ %198, %._crit_edge2138 ], [ %279, %._crit_edge2145 ], [ %279, %342 ], [ %279, %356 ], [ %389, %._crit_edge2152 ], [ %470, %._crit_edge2159 ], [ %552, %._crit_edge2166 ], [ %634, %._crit_edge2173 ], [ %716, %._crit_edge2180 ], [ %798, %._crit_edge2187 ], [ %1493, %._crit_edge2243 ], [ %1493, %1552 ], [ %1718, %1929 ], [ %.01453, %._crit_edge2251 ], [ %.01453, %._crit_edge2251 ], [ %.01453, %._crit_edge2251 ], [ %.11454, %._crit_edge2258 ], [ %.81461, %2445 ], [ %.51458, %2700 ], [ %.121465, %2780 ], [ %.121465, %2880 ], [ %.151468, %2915 ], [ %.151468, %2945 ], [ %.171470, %3023 ], [ %.171470, %3117 ], [ %.141467, %3166 ], [ %.141467, %3440 ], [ %.201473, %3518 ], [ %.201473, %3612 ], [ %.141467, %3620 ], [ %.141467, %4188 ], [ %.141467, %4204 ], [ %.141467, %4097 ], [ %.141467, %4107 ], [ %4239, %._crit_edge2423 ], [ %4321, %._crit_edge2430 ], [ %4403, %._crit_edge2437 ], [ %4485, %._crit_edge2444 ], [ %4567, %._crit_edge2451 ], [ %.141467, %.loopexit.loopexit2500 ], [ %.141467, %.loopexit.loopexit2501 ], [ %.141467, %.loopexit.loopexit2502 ], [ %4909, %4945 ], [ %4823, %4859 ], [ %4737, %4773 ], [ %4651, %4687 ], [ %4567, %4599 ], [ %4485, %4517 ], [ %4403, %4435 ], [ %4321, %4353 ], [ %4239, %4271 ], [ %1635, %1671 ], [ %1819, %1851 ], [ %.41457.ph, %2152 ], [ %.41457.ph, %2174 ], [ %.101463, %2618 ], [ %.91462, %2542 ], [ %.61459, %2380 ], [ %.131466, %2858 ], [ %.181471, %3095 ], [ %.171470, %3158 ], [ %.171470, %3152 ], [ %.161469, %3002 ], [ %.211474, %3590 ], [ %.191472, %3497 ], [ %.111464, %2759 ], [ %.11454, %2071 ], [ %.01453, %1992 ], [ %1493, %1530 ], [ %1407, %1443 ], [ %1321, %1357 ], [ %1236, %1271 ], [ %1150, %1186 ], [ %1064, %1100 ], [ %978, %1014 ], [ %892, %928 ], [ %798, %830 ], [ %716, %748 ], [ %634, %666 ], [ %552, %584 ], [ %470, %502 ], [ %389, %420 ], [ %279, %312 ], [ %198, %229 ], [ %117, %148 ], [ 0, %67 ]
  %.181452 = phi i32 [ %.pre2713, %4967 ], [ %4908, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %116, %._crit_edge2131 ], [ %197, %._crit_edge2138 ], [ %278, %._crit_edge2145 ], [ %278, %342 ], [ %278, %356 ], [ %388, %._crit_edge2152 ], [ %469, %._crit_edge2159 ], [ %551, %._crit_edge2166 ], [ %633, %._crit_edge2173 ], [ %715, %._crit_edge2180 ], [ %797, %._crit_edge2187 ], [ %1492, %._crit_edge2243 ], [ %1492, %1552 ], [ %1717, %1929 ], [ %1960, %._crit_edge2251 ], [ %1960, %._crit_edge2251 ], [ %1960, %._crit_edge2251 ], [ %2039, %._crit_edge2258 ], [ %.31437, %2445 ], [ %.61440.lcssa, %2700 ], [ %.81442, %2780 ], [ %.81442, %2880 ], [ %.111445, %2915 ], [ %.111445, %2945 ], [ %.131447, %3023 ], [ %.131447, %3117 ], [ %.101444, %3166 ], [ %.101444, %3440 ], [ %.161450, %3518 ], [ %.161450, %3612 ], [ %.101444, %3620 ], [ %.101444, %4188 ], [ %.101444, %4204 ], [ %.101444, %4097 ], [ %.101444, %4107 ], [ %4238, %._crit_edge2423 ], [ %4320, %._crit_edge2430 ], [ %4402, %._crit_edge2437 ], [ %4484, %._crit_edge2444 ], [ %4566, %._crit_edge2451 ], [ %.101444, %.loopexit.loopexit2500 ], [ %.101444, %.loopexit.loopexit2501 ], [ %.101444, %.loopexit.loopexit2502 ], [ %4908, %4945 ], [ %4822, %4859 ], [ %4736, %4773 ], [ %4650, %4687 ], [ %4566, %4599 ], [ %4484, %4517 ], [ %4402, %4435 ], [ %4320, %4353 ], [ %4238, %4271 ], [ %1634, %1671 ], [ %1818, %1851 ], [ %.ph3422, %2152 ], [ %.ph3422, %2174 ], [ %.51439, %2618 ], [ %.41438, %2542 ], [ %.11435, %2380 ], [ %.91443, %2858 ], [ %.141448, %3095 ], [ %.131447, %3158 ], [ %.131447, %3152 ], [ %.121446, %3002 ], [ %.171451, %3590 ], [ %.151449, %3497 ], [ %.71441, %2759 ], [ %2039, %2071 ], [ %1960, %1992 ], [ %1492, %1530 ], [ %1406, %1443 ], [ %1320, %1357 ], [ %1235, %1271 ], [ %1149, %1186 ], [ %1063, %1100 ], [ %977, %1014 ], [ %891, %928 ], [ %797, %830 ], [ %715, %748 ], [ %633, %666 ], [ %551, %584 ], [ %469, %502 ], [ %388, %420 ], [ %278, %312 ], [ %197, %229 ], [ %116, %148 ], [ 0, %67 ]
  %.281433 = phi i32 [ %.pre2711, %4967 ], [ %4907, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %115, %._crit_edge2131 ], [ %196, %._crit_edge2138 ], [ %277, %._crit_edge2145 ], [ %277, %342 ], [ %277, %356 ], [ %387, %._crit_edge2152 ], [ %468, %._crit_edge2159 ], [ %550, %._crit_edge2166 ], [ %632, %._crit_edge2173 ], [ %714, %._crit_edge2180 ], [ %796, %._crit_edge2187 ], [ %1491, %._crit_edge2243 ], [ %1491, %1552 ], [ %.01405, %1929 ], [ %.41409, %._crit_edge2251 ], [ %.41409, %._crit_edge2251 ], [ %.41409, %._crit_edge2251 ], [ %.51410, %._crit_edge2258 ], [ %.121417, %2445 ], [ %.91414, %2700 ], [ %.161421, %2780 ], [ %.161421, %2880 ], [ %.191424, %2915 ], [ %.191424, %2945 ], [ %.211426, %3023 ], [ %.211426, %3117 ], [ %.181423, %3166 ], [ %.181423, %3440 ], [ %.241429, %3518 ], [ %.241429, %3612 ], [ %.181423, %3620 ], [ %.181423, %4188 ], [ %.181423, %4204 ], [ %4036, %4097 ], [ %4036, %4107 ], [ %4237, %._crit_edge2423 ], [ %4319, %._crit_edge2430 ], [ %4401, %._crit_edge2437 ], [ %4483, %._crit_edge2444 ], [ %4565, %._crit_edge2451 ], [ %.181423, %.loopexit.loopexit2500 ], [ %.181423, %.loopexit.loopexit2501 ], [ %.181423, %.loopexit.loopexit2502 ], [ %4907, %4945 ], [ %4821, %4859 ], [ %4735, %4773 ], [ %4649, %4687 ], [ %4565, %4599 ], [ %4483, %4517 ], [ %4401, %4435 ], [ %4319, %4353 ], [ %4237, %4271 ], [ %1633, %1671 ], [ %.21407, %1851 ], [ %.81413, %2152 ], [ %2175, %2174 ], [ %.141419, %2618 ], [ %.131418, %2542 ], [ %.101415, %2380 ], [ %.171422, %2858 ], [ %.221427, %3095 ], [ %.211426, %3158 ], [ %.211426, %3152 ], [ %.201425, %3002 ], [ %.251430, %3590 ], [ %.231428, %3497 ], [ %.151420, %2759 ], [ %.51410, %2071 ], [ %.41409, %1992 ], [ %1491, %1530 ], [ %1405, %1443 ], [ %1319, %1357 ], [ %1234, %1271 ], [ %1148, %1186 ], [ %1062, %1100 ], [ %976, %1014 ], [ %890, %928 ], [ %796, %830 ], [ %714, %748 ], [ %632, %666 ], [ %550, %584 ], [ %468, %502 ], [ %387, %420 ], [ %277, %312 ], [ %196, %229 ], [ %115, %148 ], [ 0, %67 ]
  %.42 = phi i32 [ %.pre, %4967 ], [ %4906, %._crit_edge2479 ], [ 0, %._crit_edge ], [ %114, %._crit_edge2131 ], [ %195, %._crit_edge2138 ], [ %276, %._crit_edge2145 ], [ %276, %342 ], [ %276, %356 ], [ %386, %._crit_edge2152 ], [ %467, %._crit_edge2159 ], [ %549, %._crit_edge2166 ], [ %631, %._crit_edge2173 ], [ %713, %._crit_edge2180 ], [ %795, %._crit_edge2187 ], [ %1490, %._crit_edge2243 ], [ %1490, %1552 ], [ %.3, %1929 ], [ %.7, %._crit_edge2251 ], [ %.7, %._crit_edge2251 ], [ %.7, %._crit_edge2251 ], [ %.8, %._crit_edge2258 ], [ %.16, %2445 ], [ 256, %2700 ], [ %.22, %2780 ], [ %.22, %2880 ], [ %.25, %2915 ], [ %.25, %2945 ], [ %.27, %3023 ], [ %.27, %3117 ], [ %.24, %3166 ], [ %.24, %3440 ], [ %.30, %3518 ], [ %.30, %3612 ], [ %.24, %3620 ], [ %.40.lcssa, %4188 ], [ %.40.lcssa, %4204 ], [ %.261431, %4097 ], [ %.261431, %4107 ], [ %4236, %._crit_edge2423 ], [ %4318, %._crit_edge2430 ], [ %4400, %._crit_edge2437 ], [ %4482, %._crit_edge2444 ], [ %4564, %._crit_edge2451 ], [ %4968, %.loopexit.loopexit2500 ], [ %4969, %.loopexit.loopexit2501 ], [ %4970, %.loopexit.loopexit2502 ], [ %4906, %4945 ], [ %4820, %4859 ], [ %4734, %4773 ], [ %4648, %4687 ], [ %4564, %4599 ], [ %4482, %4517 ], [ %4400, %4435 ], [ %4318, %4353 ], [ %4236, %4271 ], [ %.11404, %1671 ], [ %.5, %1851 ], [ %.11.ph, %2152 ], [ %.11.ph, %2174 ], [ %.18, %2618 ], [ %.17, %2542 ], [ %.14, %2380 ], [ %.23, %2858 ], [ %.28, %3095 ], [ %.27, %3158 ], [ %.27, %3152 ], [ %.26, %3002 ], [ %.31, %3590 ], [ %.29, %3497 ], [ %.21, %2759 ], [ %.8, %2071 ], [ %.7, %1992 ], [ %1490, %1530 ], [ %1404, %1443 ], [ %1318, %1357 ], [ %1233, %1271 ], [ %1147, %1186 ], [ %1061, %1100 ], [ %975, %1014 ], [ %889, %928 ], [ %795, %830 ], [ %713, %748 ], [ %631, %666 ], [ %549, %584 ], [ %467, %502 ], [ %386, %420 ], [ %276, %312 ], [ %195, %229 ], [ %114, %148 ], [ 0, %67 ]
  %.01399 = phi i32 [ 0, %4967 ], [ 4, %._crit_edge2479 ], [ -5, %._crit_edge ], [ -5, %._crit_edge2131 ], [ -5, %._crit_edge2138 ], [ -5, %._crit_edge2145 ], [ -3, %342 ], [ -3, %356 ], [ -4, %._crit_edge2152 ], [ -4, %._crit_edge2159 ], [ -4, %._crit_edge2166 ], [ -4, %._crit_edge2173 ], [ -4, %._crit_edge2180 ], [ -4, %._crit_edge2187 ], [ -4, %._crit_edge2243 ], [ -4, %1552 ], [ -4, %1929 ], [ -4, %._crit_edge2251 ], [ -4, %._crit_edge2251 ], [ -4, %._crit_edge2251 ], [ -4, %._crit_edge2258 ], [ -4, %2445 ], [ -4, %2700 ], [ -4, %2780 ], [ -4, %2880 ], [ -4, %2915 ], [ -4, %2945 ], [ -4, %3023 ], [ -4, %3117 ], [ -4, %3166 ], [ -4, %3440 ], [ -4, %3518 ], [ -4, %3612 ], [ -4, %3620 ], [ 0, %4188 ], [ 0, %4204 ], [ 0, %4097 ], [ 0, %4107 ], [ -4, %._crit_edge2423 ], [ -4, %._crit_edge2430 ], [ -4, %._crit_edge2437 ], [ -4, %._crit_edge2444 ], [ -4, %._crit_edge2451 ], [ -4, %.loopexit.loopexit2500 ], [ -4, %.loopexit.loopexit2501 ], [ -4, %.loopexit.loopexit2502 ], [ 0, %4945 ], [ 0, %4859 ], [ 0, %4773 ], [ 0, %4687 ], [ 0, %4599 ], [ 0, %4517 ], [ 0, %4435 ], [ 0, %4353 ], [ 0, %4271 ], [ 0, %1671 ], [ 0, %1851 ], [ 0, %2152 ], [ -4, %2174 ], [ 0, %2618 ], [ 0, %2542 ], [ 0, %2380 ], [ 0, %2858 ], [ 0, %3095 ], [ -4, %3158 ], [ -4, %3152 ], [ 0, %3002 ], [ 0, %3590 ], [ 0, %3497 ], [ 0, %2759 ], [ 0, %2071 ], [ 0, %1992 ], [ 0, %1530 ], [ 0, %1443 ], [ 0, %1357 ], [ 0, %1271 ], [ 0, %1186 ], [ 0, %1100 ], [ 0, %1014 ], [ 0, %928 ], [ 0, %830 ], [ 0, %748 ], [ 0, %666 ], [ 0, %584 ], [ 0, %502 ], [ 0, %420 ], [ 0, %312 ], [ 0, %229 ], [ 0, %148 ], [ 0, %67 ]
  store i32 %.42, ptr %4994, align 4, !tbaa !13
  store i32 %.281433, ptr %4993, align 8, !tbaa !14
  store i32 %.181452, ptr %4992, align 4, !tbaa !15
  store i32 %.221475, ptr %4991, align 8, !tbaa !16
  store i32 %.211497, ptr %4990, align 4, !tbaa !17
  store i32 %.201518, ptr %4989, align 8, !tbaa !18
  store i32 %.111530, ptr %4988, align 4, !tbaa !19
  store i32 %.141545, ptr %4987, align 8, !tbaa !20
  store i32 %.141562, ptr %4986, align 4, !tbaa !21
  store i32 %.81577, ptr %4985, align 8, !tbaa !22
  store i32 %.111589, ptr %4984, align 4, !tbaa !23
  store i32 %.141604, ptr %4983, align 8, !tbaa !24
  store i32 %.121617, ptr %4982, align 4, !tbaa !25
  store i32 %.81630, ptr %4981, align 8, !tbaa !26
  store i32 %.181649, ptr %4980, align 4, !tbaa !27
  store i32 %4995, ptr %4979, align 8, !tbaa !28
  store i32 %.111661, ptr %4978, align 4, !tbaa !29
  store i32 %.101674, ptr %4977, align 8, !tbaa !30
  store i32 %.101685, ptr %4976, align 4, !tbaa !31
  store i32 %.141700, ptr %4975, align 8, !tbaa !32
  store i32 %.141715, ptr %4974, align 4, !tbaa !33
  store ptr %.141730, ptr %4973, align 8, !tbaa !34
  store ptr %.141745, ptr %4972, align 8, !tbaa !35
  store ptr %.141760, ptr %4971, align 8, !tbaa !36
  br label %4996

4996:                                             ; preds = %4200, %4182, %4103, %4059, %.loopexit
  %.0 = phi i32 [ %.01399, %.loopexit ], [ 1, %4059 ], [ 1, %4103 ], [ 1, %4182 ], [ 1, %4200 ]
  ret i32 %.0
}

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

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

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

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

declare void @BZ2_hbCreateDecodeTables(ptr noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

declare i32 @BZ2_indexIntoF(i32 noundef, ptr noundef) local_unnamed_addr #3

declare void @BZ2_bz__AssertH__fail(i32 noundef) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smin.i32(i32, i32) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #4

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.smax.v4i32(<4 x i32>, <4 x i32>) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare <4 x i32> @llvm.smin.v4i32(<4 x i32>, <4 x i32>) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.smin.v4i32(<4 x i32>) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.vector.reduce.smax.v4i32(<4 x i32>) #4

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #6 = { nounwind }
attributes #7 = { cold 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 52}
!53 = !{!7, !7, i64 0}
!54 = !{!6, !10, i64 3176}
!55 = !{!6, !8, i64 20}
!56 = !{!6, !10, i64 56}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = distinct !{!59, !58}
!60 = distinct !{!60, !58}
!61 = !{!6, !10, i64 3192}
!62 = distinct !{!62, !58}
!63 = distinct !{!63, !58, !64, !65}
!64 = !{!"llvm.loop.isvectorized", i32 1}
!65 = !{!"llvm.loop.unroll.runtime.disable"}
!66 = distinct !{!66, !58, !64, !65}
!67 = distinct !{!67, !58, !64}
!68 = distinct !{!68, !58, !64, !65}
!69 = distinct !{!69, !58, !64, !65}
!70 = distinct !{!70, !58, !64}
!71 = distinct !{!71, !58}
!72 = distinct !{!72, !58}
!73 = distinct !{!73, !58}
!74 = distinct !{!74, !58, !64, !65}
!75 = distinct !{!75, !58, !65, !64}
!76 = !{!10, !10, i64 0}
!77 = distinct !{!77, !58}
!78 = distinct !{!78, !58}
!79 = distinct !{!79, !58}
!80 = !{!81, !81, i64 0}
!81 = !{!"short", !8, i64 0}
!82 = distinct !{!82, !58}
!83 = distinct !{!83, !58}
!84 = distinct !{!84, !58, !64, !65}
!85 = distinct !{!85, !58, !64, !65}
!86 = distinct !{!86, !58}
!87 = distinct !{!87, !58, !64}
!88 = distinct !{!88, !58}
!89 = distinct !{!89, !58}
!90 = distinct !{!90, !58}
!91 = distinct !{!91, !58}
!92 = distinct !{!92, !58}
!93 = distinct !{!93, !58}
!94 = distinct !{!94, !58}
!95 = !{!6, !10, i64 16}
!96 = !{!6, !8, i64 12}
!97 = !{!6, !10, i64 3184}
!98 = distinct !{!98, !58}
!99 = distinct !{!99, !58}
!100 = !{!6, !10, i64 60}
!101 = !{!6, !10, i64 1092}
!102 = !{!6, !10, i64 24}
!103 = !{!6, !10, i64 28}
!104 = !{!6, !10, i64 64}
!105 = distinct !{!105, !58}
!106 = !{!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