; LLVM IR from siara-cc/Unishox_Arduino_lib :: src/unishox2.ll (Z23unishox2_compress_linesPKciPcPKhS3_PS0_S4_P10us_lnk_lst)

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

@usx_code_94 = external dso_local global [94 x i8], align 16
@usx_vcodes = external dso_local global [28 x i8], align 16
@usx_vcode_lens = external dso_local global [28 x i8], align 16
@usx_freq_codes = external dso_local global [6 x i8], align 1
@_ZL11count_codes = external hidden constant [5 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z10init_coderv() #0

; 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: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11append_bitsPciihi(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z18append_switch_codePciih(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11encodeCountPciii(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z13encodeUnicodePciiii(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z8readUTF8PKciiPi(ptr noundef, i32 noundef, i32 noundef, ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14matchOccurancePKciiPciPiPhPKhS5_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z9matchLinePKciiPciPiP10us_lnk_lstPhPKhS7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z17append_final_bitsPciihhPKhS1_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext, ptr noundef, ptr noundef) #0

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef i32 @_Z23unishox2_compress_linesPKciPcPKhS3_PS0_S4_P10us_lnk_lst(ptr noundef %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef %7) #0 {
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i8, align 1
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i8, align 1
  %23 = alloca i8, align 1
  %24 = alloca i32, align 4
  %25 = alloca i8, align 1
  %26 = alloca i8, align 1
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i8, align 1
  %39 = alloca i32, align 4
  %40 = alloca i8, align 1
  %41 = alloca i8, align 1
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i8, align 1
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  %51 = alloca i8, align 1
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i8, align 1
  %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 i8, align 1
  %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
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i8, align 1
  %103 = alloca i8, align 1
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i8, align 1
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  store ptr %0, ptr %10, align 8, !tbaa !5
  store i32 %1, ptr %11, align 4, !tbaa !9
  store ptr %2, ptr %12, align 8, !tbaa !5
  store ptr %3, ptr %13, align 8, !tbaa !5
  store ptr %4, ptr %14, align 8, !tbaa !5
  store ptr %5, ptr %15, align 8, !tbaa !5
  store ptr %6, ptr %16, align 8, !tbaa !5
  store ptr %7, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %18) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #3
  call void @llvm.lifetime.start.p0(i64 1, ptr %26) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #3
  store i32 2147483646, ptr %27, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #3
  store i32 2147483646, ptr %28, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #3
  store i8 0, ptr %29, align 1, !tbaa !11
  call void @_Z10init_coderv()
  store i32 0, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %24, align 4, !tbaa !9
  store i8 0, ptr %18, align 1, !tbaa !11
  store i8 0, ptr %26, align 1, !tbaa !11
  br label %157

157:                                              ; preds = %8
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #3
  %158 = load ptr, ptr %12, align 8, !tbaa !5
  %159 = load i32, ptr %21, align 4, !tbaa !9
  %160 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %158, i32 noundef 2147483646, i32 noundef %159, i8 noundef zeroext -1, i32 noundef 1)
  store i32 %160, ptr %21, align 4, !tbaa !9
  store i32 %160, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #3
  store i32 2147483646, ptr %31, align 4, !tbaa !9
  %161 = load i32, ptr %30, align 4, !tbaa !9
  %162 = icmp slt i32 %161, 0
  br i1 %162, label %163, label %164

163:                                              ; preds = %157
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %165

164:                                              ; preds = %157
  store i32 0, ptr %32, align 4
  br label %165

165:                                              ; preds = %164, %163
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #3
  %166 = load i32, ptr %32, align 4
  switch i32 %166, label %2067 [
    i32 0, label %167
  ]

167:                                              ; preds = %165
  br label %168

168:                                              ; preds = %167
  br label %169

169:                                              ; preds = %168
  store i32 0, ptr %19, align 4, !tbaa !9
  br label %170

170:                                              ; preds = %2051, %169
  %171 = load i32, ptr %19, align 4, !tbaa !9
  %172 = load i32, ptr %11, align 4, !tbaa !9
  %173 = icmp slt i32 %171, %172
  br i1 %173, label %174, label %2054

174:                                              ; preds = %170
  %175 = load ptr, ptr %14, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %175, i64 3
  %177 = load i8, ptr %176, align 1, !tbaa !11
  %178 = icmp ne i8 %177, 0
  br i1 %178, label %179, label %234

179:                                              ; preds = %174
  %180 = load i32, ptr %19, align 4, !tbaa !9
  %181 = load i32, ptr %11, align 4, !tbaa !9
  %182 = sub nsw i32 %181, 5
  %183 = add nsw i32 %182, 1
  %184 = icmp slt i32 %180, %183
  br i1 %184, label %185, label %234

185:                                              ; preds = %179
  %186 = load ptr, ptr %17, align 8, !tbaa !5
  %187 = icmp ne ptr %186, null
  br i1 %187, label %188, label %211

188:                                              ; preds = %185
  %189 = load ptr, ptr %10, align 8, !tbaa !5
  %190 = load i32, ptr %11, align 4, !tbaa !9
  %191 = load i32, ptr %19, align 4, !tbaa !9
  %192 = load ptr, ptr %12, align 8, !tbaa !5
  %193 = load ptr, ptr %17, align 8, !tbaa !5
  %194 = load ptr, ptr %13, align 8, !tbaa !5
  %195 = load ptr, ptr %14, align 8, !tbaa !5
  %196 = call noundef i32 @_Z9matchLinePKciiPciPiP10us_lnk_lstPhPKhS7_(ptr noundef %189, i32 noundef %190, i32 noundef %191, ptr noundef %192, i32 noundef 2147483646, ptr noundef %21, ptr noundef %193, ptr noundef %18, ptr noundef %194, ptr noundef %195)
  store i32 %196, ptr %19, align 4, !tbaa !9
  %197 = load i32, ptr %19, align 4, !tbaa !9
  %198 = icmp sgt i32 %197, 0
  br i1 %198, label %199, label %200

199:                                              ; preds = %188
  br label %2051

200:                                              ; preds = %188
  %201 = load i32, ptr %19, align 4, !tbaa !9
  %202 = icmp slt i32 %201, 0
  br i1 %202, label %203, label %207

203:                                              ; preds = %200
  %204 = load i32, ptr %21, align 4, !tbaa !9
  %205 = icmp slt i32 %204, 0
  br i1 %205, label %206, label %207

206:                                              ; preds = %203
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %2067

207:                                              ; preds = %203, %200
  br label %208

208:                                              ; preds = %207
  %209 = load i32, ptr %19, align 4, !tbaa !9
  %210 = sub nsw i32 0, %209
  store i32 %210, ptr %19, align 4, !tbaa !9
  br label %233

211:                                              ; preds = %185
  %212 = load ptr, ptr %10, align 8, !tbaa !5
  %213 = load i32, ptr %11, align 4, !tbaa !9
  %214 = load i32, ptr %19, align 4, !tbaa !9
  %215 = load ptr, ptr %12, align 8, !tbaa !5
  %216 = load ptr, ptr %13, align 8, !tbaa !5
  %217 = load ptr, ptr %14, align 8, !tbaa !5
  %218 = call noundef i32 @_Z14matchOccurancePKciiPciPiPhPKhS5_(ptr noundef %212, i32 noundef %213, i32 noundef %214, ptr noundef %215, i32 noundef 2147483646, ptr noundef %21, ptr noundef %18, ptr noundef %216, ptr noundef %217)
  store i32 %218, ptr %19, align 4, !tbaa !9
  %219 = load i32, ptr %19, align 4, !tbaa !9
  %220 = icmp sgt i32 %219, 0
  br i1 %220, label %221, label %222

221:                                              ; preds = %211
  br label %2051

222:                                              ; preds = %211
  %223 = load i32, ptr %19, align 4, !tbaa !9
  %224 = icmp slt i32 %223, 0
  br i1 %224, label %225, label %229

225:                                              ; preds = %222
  %226 = load i32, ptr %21, align 4, !tbaa !9
  %227 = icmp slt i32 %226, 0
  br i1 %227, label %228, label %229

228:                                              ; preds = %225
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %2067

229:                                              ; preds = %225, %222
  br label %230

230:                                              ; preds = %229
  %231 = load i32, ptr %19, align 4, !tbaa !9
  %232 = sub nsw i32 0, %231
  store i32 %232, ptr %19, align 4, !tbaa !9
  br label %233

233:                                              ; preds = %230, %208
  br label %234

234:                                              ; preds = %233, %179, %174
  %235 = load ptr, ptr %10, align 8, !tbaa !5
  %236 = load i32, ptr %19, align 4, !tbaa !9
  %237 = sext i32 %236 to i64
  %238 = getelementptr inbounds i8, ptr %235, i64 %237
  %239 = load i8, ptr %238, align 1, !tbaa !11
  store i8 %239, ptr %22, align 1, !tbaa !11
  %240 = load i32, ptr %19, align 4, !tbaa !9
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %363

242:                                              ; preds = %234
  %243 = load i32, ptr %11, align 4, !tbaa !9
  %244 = icmp sgt i32 %243, 4
  br i1 %244, label %245, label %363

245:                                              ; preds = %242
  %246 = load i32, ptr %19, align 4, !tbaa !9
  %247 = load i32, ptr %11, align 4, !tbaa !9
  %248 = sub nsw i32 %247, 4
  %249 = icmp slt i32 %246, %248
  br i1 %249, label %250, label %363

250:                                              ; preds = %245
  %251 = load ptr, ptr %14, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %251, i64 2
  %253 = load i8, ptr %252, align 1, !tbaa !11
  %254 = icmp ne i8 %253, 0
  br i1 %254, label %255, label %363

255:                                              ; preds = %250
  %256 = load i8, ptr %22, align 1, !tbaa !11
  %257 = sext i8 %256 to i32
  %258 = load ptr, ptr %10, align 8, !tbaa !5
  %259 = load i32, ptr %19, align 4, !tbaa !9
  %260 = sub nsw i32 %259, 1
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds i8, ptr %258, i64 %261
  %263 = load i8, ptr %262, align 1, !tbaa !11
  %264 = sext i8 %263 to i32
  %265 = icmp eq i32 %257, %264
  br i1 %265, label %266, label %362

266:                                              ; preds = %255
  %267 = load i8, ptr %22, align 1, !tbaa !11
  %268 = sext i8 %267 to i32
  %269 = load ptr, ptr %10, align 8, !tbaa !5
  %270 = load i32, ptr %19, align 4, !tbaa !9
  %271 = add nsw i32 %270, 1
  %272 = sext i32 %271 to i64
  %273 = getelementptr inbounds i8, ptr %269, i64 %272
  %274 = load i8, ptr %273, align 1, !tbaa !11
  %275 = sext i8 %274 to i32
  %276 = icmp eq i32 %268, %275
  br i1 %276, label %277, label %362

277:                                              ; preds = %266
  %278 = load i8, ptr %22, align 1, !tbaa !11
  %279 = sext i8 %278 to i32
  %280 = load ptr, ptr %10, align 8, !tbaa !5
  %281 = load i32, ptr %19, align 4, !tbaa !9
  %282 = add nsw i32 %281, 2
  %283 = sext i32 %282 to i64
  %284 = getelementptr inbounds i8, ptr %280, i64 %283
  %285 = load i8, ptr %284, align 1, !tbaa !11
  %286 = sext i8 %285 to i32
  %287 = icmp eq i32 %279, %286
  br i1 %287, label %288, label %362

288:                                              ; preds = %277
  %289 = load i8, ptr %22, align 1, !tbaa !11
  %290 = sext i8 %289 to i32
  %291 = load ptr, ptr %10, align 8, !tbaa !5
  %292 = load i32, ptr %19, align 4, !tbaa !9
  %293 = add nsw i32 %292, 3
  %294 = sext i32 %293 to i64
  %295 = getelementptr inbounds i8, ptr %291, i64 %294
  %296 = load i8, ptr %295, align 1, !tbaa !11
  %297 = sext i8 %296 to i32
  %298 = icmp eq i32 %290, %297
  br i1 %298, label %299, label %362

299:                                              ; preds = %288
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #3
  %300 = load i32, ptr %19, align 4, !tbaa !9
  %301 = add nsw i32 %300, 4
  store i32 %301, ptr %33, align 4, !tbaa !9
  br label %302

302:                                              ; preds = %318, %299
  %303 = load i32, ptr %33, align 4, !tbaa !9
  %304 = load i32, ptr %11, align 4, !tbaa !9
  %305 = icmp slt i32 %303, %304
  br i1 %305, label %306, label %316

306:                                              ; preds = %302
  %307 = load ptr, ptr %10, align 8, !tbaa !5
  %308 = load i32, ptr %33, align 4, !tbaa !9
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds i8, ptr %307, i64 %309
  %311 = load i8, ptr %310, align 1, !tbaa !11
  %312 = sext i8 %311 to i32
  %313 = load i8, ptr %22, align 1, !tbaa !11
  %314 = sext i8 %313 to i32
  %315 = icmp eq i32 %312, %314
  br label %316

316:                                              ; preds = %306, %302
  %317 = phi i1 [ false, %302 ], [ %315, %306 ]
  br i1 %317, label %318, label %321

318:                                              ; preds = %316
  %319 = load i32, ptr %33, align 4, !tbaa !9
  %320 = add nsw i32 %319, 1
  store i32 %320, ptr %33, align 4, !tbaa !9
  br label %302, !llvm.loop !12

321:                                              ; preds = %316
  %322 = load i32, ptr %19, align 4, !tbaa !9
  %323 = load i32, ptr %33, align 4, !tbaa !9
  %324 = sub nsw i32 %323, %322
  store i32 %324, ptr %33, align 4, !tbaa !9
  br label %325

325:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #3
  %326 = load ptr, ptr %12, align 8, !tbaa !5
  %327 = load i32, ptr %21, align 4, !tbaa !9
  %328 = load ptr, ptr %13, align 8, !tbaa !5
  %329 = load ptr, ptr %14, align 8, !tbaa !5
  %330 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %326, i32 noundef 2147483646, i32 noundef %327, i8 noundef zeroext 90, ptr noundef %18, ptr noundef %328, ptr noundef %329)
  store i32 %330, ptr %21, align 4, !tbaa !9
  store i32 %330, ptr %34, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #3
  store i32 2147483646, ptr %35, align 4, !tbaa !9
  %331 = load i32, ptr %34, align 4, !tbaa !9
  %332 = icmp slt i32 %331, 0
  br i1 %332, label %333, label %334

333:                                              ; preds = %325
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %335

334:                                              ; preds = %325
  store i32 0, ptr %32, align 4
  br label %335

335:                                              ; preds = %334, %333
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #3
  %336 = load i32, ptr %32, align 4
  switch i32 %336, label %360 [
    i32 0, label %337
  ]

337:                                              ; preds = %335
  br label %338

338:                                              ; preds = %337
  br label %339

339:                                              ; preds = %338
  br label %340

340:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #3
  %341 = load ptr, ptr %12, align 8, !tbaa !5
  %342 = load i32, ptr %21, align 4, !tbaa !9
  %343 = load i32, ptr %33, align 4, !tbaa !9
  %344 = sub nsw i32 %343, 4
  %345 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %341, i32 noundef 2147483646, i32 noundef %342, i32 noundef %344)
  store i32 %345, ptr %21, align 4, !tbaa !9
  store i32 %345, ptr %36, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #3
  store i32 2147483646, ptr %37, align 4, !tbaa !9
  %346 = load i32, ptr %36, align 4, !tbaa !9
  %347 = icmp slt i32 %346, 0
  br i1 %347, label %348, label %349

348:                                              ; preds = %340
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %350

349:                                              ; preds = %340
  store i32 0, ptr %32, align 4
  br label %350

350:                                              ; preds = %349, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #3
  %351 = load i32, ptr %32, align 4
  switch i32 %351, label %360 [
    i32 0, label %352
  ]

352:                                              ; preds = %350
  br label %353

353:                                              ; preds = %352
  br label %354

354:                                              ; preds = %353
  %355 = load i32, ptr %33, align 4, !tbaa !9
  %356 = load i32, ptr %19, align 4, !tbaa !9
  %357 = add nsw i32 %356, %355
  store i32 %357, ptr %19, align 4, !tbaa !9
  %358 = load i32, ptr %19, align 4, !tbaa !9
  %359 = add nsw i32 %358, -1
  store i32 %359, ptr %19, align 4, !tbaa !9
  store i32 6, ptr %32, align 4
  br label %360

360:                                              ; preds = %354, %350, %335
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #3
  %361 = load i32, ptr %32, align 4
  switch i32 %361, label %2067 [
    i32 6, label %2051
  ]

362:                                              ; preds = %288, %277, %266, %255
  br label %363

363:                                              ; preds = %362, %250, %245, %242, %234
  %364 = load i32, ptr %19, align 4, !tbaa !9
  %365 = load i32, ptr %11, align 4, !tbaa !9
  %366 = sub nsw i32 %365, 36
  %367 = icmp sle i32 %364, %366
  br i1 %367, label %368, label %562

368:                                              ; preds = %363
  %369 = load ptr, ptr %14, align 8, !tbaa !5
  %370 = getelementptr inbounds i8, ptr %369, i64 2
  %371 = load i8, ptr %370, align 1, !tbaa !11
  %372 = icmp ne i8 %371, 0
  br i1 %372, label %373, label %562

373:                                              ; preds = %368
  %374 = load ptr, ptr %10, align 8, !tbaa !5
  %375 = load i32, ptr %19, align 4, !tbaa !9
  %376 = add nsw i32 %375, 8
  %377 = sext i32 %376 to i64
  %378 = getelementptr inbounds i8, ptr %374, i64 %377
  %379 = load i8, ptr %378, align 1, !tbaa !11
  %380 = sext i8 %379 to i32
  %381 = icmp eq i32 %380, 45
  br i1 %381, label %382, label %561

382:                                              ; preds = %373
  %383 = load ptr, ptr %10, align 8, !tbaa !5
  %384 = load i32, ptr %19, align 4, !tbaa !9
  %385 = add nsw i32 %384, 13
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds i8, ptr %383, i64 %386
  %388 = load i8, ptr %387, align 1, !tbaa !11
  %389 = sext i8 %388 to i32
  %390 = icmp eq i32 %389, 45
  br i1 %390, label %391, label %561

391:                                              ; preds = %382
  %392 = load ptr, ptr %10, align 8, !tbaa !5
  %393 = load i32, ptr %19, align 4, !tbaa !9
  %394 = add nsw i32 %393, 18
  %395 = sext i32 %394 to i64
  %396 = getelementptr inbounds i8, ptr %392, i64 %395
  %397 = load i8, ptr %396, align 1, !tbaa !11
  %398 = sext i8 %397 to i32
  %399 = icmp eq i32 %398, 45
  br i1 %399, label %400, label %561

400:                                              ; preds = %391
  %401 = load ptr, ptr %10, align 8, !tbaa !5
  %402 = load i32, ptr %19, align 4, !tbaa !9
  %403 = add nsw i32 %402, 23
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds i8, ptr %401, i64 %404
  %406 = load i8, ptr %405, align 1, !tbaa !11
  %407 = sext i8 %406 to i32
  %408 = icmp eq i32 %407, 45
  br i1 %408, label %409, label %561

409:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #3
  store i8 0, ptr %38, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #3
  %410 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %410, ptr %39, align 4, !tbaa !9
  br label %411

411:                                              ; preds = %467, %409
  %412 = load i32, ptr %39, align 4, !tbaa !9
  %413 = load i32, ptr %19, align 4, !tbaa !9
  %414 = add nsw i32 %413, 36
  %415 = icmp slt i32 %412, %414
  br i1 %415, label %416, label %470

416:                                              ; preds = %411
  call void @llvm.lifetime.start.p0(i64 1, ptr %40) #3
  %417 = load ptr, ptr %10, align 8, !tbaa !5
  %418 = load i32, ptr %39, align 4, !tbaa !9
  %419 = sext i32 %418 to i64
  %420 = getelementptr inbounds i8, ptr %417, i64 %419
  %421 = load i8, ptr %420, align 1, !tbaa !11
  store i8 %421, ptr %40, align 1, !tbaa !11
  %422 = load i8, ptr %40, align 1, !tbaa !11
  %423 = sext i8 %422 to i32
  %424 = icmp eq i32 %423, 45
  br i1 %424, label %425, label %438

425:                                              ; preds = %416
  %426 = load i32, ptr %39, align 4, !tbaa !9
  %427 = icmp eq i32 %426, 8
  br i1 %427, label %437, label %428

428:                                              ; preds = %425
  %429 = load i32, ptr %39, align 4, !tbaa !9
  %430 = icmp eq i32 %429, 13
  br i1 %430, label %437, label %431

431:                                              ; preds = %428
  %432 = load i32, ptr %39, align 4, !tbaa !9
  %433 = icmp eq i32 %432, 18
  br i1 %433, label %437, label %434

434:                                              ; preds = %431
  %435 = load i32, ptr %39, align 4, !tbaa !9
  %436 = icmp eq i32 %435, 23
  br i1 %436, label %437, label %438

437:                                              ; preds = %434, %431, %428, %425
  store i32 15, ptr %32, align 4
  br label %464

438:                                              ; preds = %434, %416
  call void @llvm.lifetime.start.p0(i64 1, ptr %41) #3
  %439 = load i8, ptr %40, align 1, !tbaa !11
  %440 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %439)
  store i8 %440, ptr %41, align 1, !tbaa !11
  %441 = load i8, ptr %41, align 1, !tbaa !11
  %442 = sext i8 %441 to i32
  %443 = icmp eq i32 %442, 3
  br i1 %443, label %444, label %445

444:                                              ; preds = %438
  store i32 13, ptr %32, align 4
  br label %463

445:                                              ; preds = %438
  %446 = load i8, ptr %41, align 1, !tbaa !11
  %447 = sext i8 %446 to i32
  %448 = icmp ne i32 %447, 0
  br i1 %448, label %449, label %462

449:                                              ; preds = %445
  %450 = load i8, ptr %38, align 1, !tbaa !11
  %451 = sext i8 %450 to i32
  %452 = icmp ne i32 %451, 0
  br i1 %452, label %453, label %460

453:                                              ; preds = %449
  %454 = load i8, ptr %38, align 1, !tbaa !11
  %455 = sext i8 %454 to i32
  %456 = load i8, ptr %41, align 1, !tbaa !11
  %457 = sext i8 %456 to i32
  %458 = icmp ne i32 %455, %457
  br i1 %458, label %459, label %460

459:                                              ; preds = %453
  store i32 13, ptr %32, align 4
  br label %463

460:                                              ; preds = %453, %449
  %461 = load i8, ptr %41, align 1, !tbaa !11
  store i8 %461, ptr %38, align 1, !tbaa !11
  br label %462

462:                                              ; preds = %460, %445
  store i32 0, ptr %32, align 4
  br label %463

463:                                              ; preds = %462, %459, %444
  call void @llvm.lifetime.end.p0(i64 1, ptr %41) #3
  br label %464

464:                                              ; preds = %463, %437
  call void @llvm.lifetime.end.p0(i64 1, ptr %40) #3
  %465 = load i32, ptr %32, align 4
  switch i32 %465, label %2069 [
    i32 0, label %466
    i32 15, label %467
    i32 13, label %470
  ]

466:                                              ; preds = %464
  br label %467

467:                                              ; preds = %466, %464
  %468 = load i32, ptr %39, align 4, !tbaa !9
  %469 = add nsw i32 %468, 1
  store i32 %469, ptr %39, align 4, !tbaa !9
  br label %411, !llvm.loop !14

470:                                              ; preds = %464, %411
  %471 = load i32, ptr %39, align 4, !tbaa !9
  %472 = load i32, ptr %19, align 4, !tbaa !9
  %473 = add nsw i32 %472, 36
  %474 = icmp eq i32 %471, %473
  br i1 %474, label %475, label %557

475:                                              ; preds = %470
  br label %476

476:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #3
  %477 = load ptr, ptr %12, align 8, !tbaa !5
  %478 = load i32, ptr %21, align 4, !tbaa !9
  %479 = load i8, ptr %18, align 1, !tbaa !11
  %480 = load ptr, ptr %13, align 8, !tbaa !5
  %481 = load ptr, ptr %14, align 8, !tbaa !5
  %482 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %477, i32 noundef 2147483646, i32 noundef %478, i8 noundef zeroext %479, ptr noundef %480, ptr noundef %481)
  store i32 %482, ptr %21, align 4, !tbaa !9
  store i32 %482, ptr %42, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #3
  store i32 2147483646, ptr %43, align 4, !tbaa !9
  %483 = load i32, ptr %42, align 4, !tbaa !9
  %484 = icmp slt i32 %483, 0
  br i1 %484, label %485, label %486

485:                                              ; preds = %476
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %487

486:                                              ; preds = %476
  store i32 0, ptr %32, align 4
  br label %487

487:                                              ; preds = %486, %485
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #3
  %488 = load i32, ptr %32, align 4
  switch i32 %488, label %558 [
    i32 0, label %489
  ]

489:                                              ; preds = %487
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #3
  %493 = load ptr, ptr %12, align 8, !tbaa !5
  %494 = load i32, ptr %21, align 4, !tbaa !9
  %495 = load i8, ptr %38, align 1, !tbaa !11
  %496 = sext i8 %495 to i32
  %497 = icmp eq i32 %496, 1
  %498 = zext i1 %497 to i64
  %499 = select i1 %497, i32 192, i32 240
  %500 = trunc i32 %499 to i8
  %501 = load i8, ptr %38, align 1, !tbaa !11
  %502 = sext i8 %501 to i32
  %503 = icmp eq i32 %502, 1
  %504 = zext i1 %503 to i64
  %505 = select i1 %503, i32 3, i32 5
  %506 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %493, i32 noundef 2147483646, i32 noundef %494, i8 noundef zeroext %500, i32 noundef %505)
  store i32 %506, ptr %21, align 4, !tbaa !9
  store i32 %506, ptr %44, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #3
  store i32 2147483646, ptr %45, align 4, !tbaa !9
  %507 = load i32, ptr %44, align 4, !tbaa !9
  %508 = icmp slt i32 %507, 0
  br i1 %508, label %509, label %510

509:                                              ; preds = %492
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %511

510:                                              ; preds = %492
  store i32 0, ptr %32, align 4
  br label %511

511:                                              ; preds = %510, %509
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #3
  %512 = load i32, ptr %32, align 4
  switch i32 %512, label %558 [
    i32 0, label %513
  ]

513:                                              ; preds = %511
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  %516 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %516, ptr %39, align 4, !tbaa !9
  br label %517

517:                                              ; preds = %551, %515
  %518 = load i32, ptr %39, align 4, !tbaa !9
  %519 = load i32, ptr %19, align 4, !tbaa !9
  %520 = add nsw i32 %519, 36
  %521 = icmp slt i32 %518, %520
  br i1 %521, label %522, label %554

522:                                              ; preds = %517
  call void @llvm.lifetime.start.p0(i64 1, ptr %46) #3
  %523 = load ptr, ptr %10, align 8, !tbaa !5
  %524 = load i32, ptr %39, align 4, !tbaa !9
  %525 = sext i32 %524 to i64
  %526 = getelementptr inbounds i8, ptr %523, i64 %525
  %527 = load i8, ptr %526, align 1, !tbaa !11
  store i8 %527, ptr %46, align 1, !tbaa !11
  %528 = load i8, ptr %46, align 1, !tbaa !11
  %529 = sext i8 %528 to i32
  %530 = icmp ne i32 %529, 45
  br i1 %530, label %531, label %547

531:                                              ; preds = %522
  br label %532

532:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #3
  %533 = load ptr, ptr %12, align 8, !tbaa !5
  %534 = load i32, ptr %21, align 4, !tbaa !9
  %535 = load i8, ptr %46, align 1, !tbaa !11
  %536 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %535)
  %537 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %533, i32 noundef 2147483646, i32 noundef %534, i8 noundef zeroext %536, i32 noundef 4)
  store i32 %537, ptr %21, align 4, !tbaa !9
  store i32 %537, ptr %47, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #3
  store i32 2147483646, ptr %48, align 4, !tbaa !9
  %538 = load i32, ptr %47, align 4, !tbaa !9
  %539 = icmp slt i32 %538, 0
  br i1 %539, label %540, label %541

540:                                              ; preds = %532
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %542

541:                                              ; preds = %532
  store i32 0, ptr %32, align 4
  br label %542

542:                                              ; preds = %541, %540
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #3
  %543 = load i32, ptr %32, align 4
  switch i32 %543, label %548 [
    i32 0, label %544
  ]

544:                                              ; preds = %542
  br label %545

545:                                              ; preds = %544
  br label %546

546:                                              ; preds = %545
  br label %547

547:                                              ; preds = %546, %522
  store i32 0, ptr %32, align 4
  br label %548

548:                                              ; preds = %547, %542
  call void @llvm.lifetime.end.p0(i64 1, ptr %46) #3
  %549 = load i32, ptr %32, align 4
  switch i32 %549, label %558 [
    i32 0, label %550
  ]

550:                                              ; preds = %548
  br label %551

551:                                              ; preds = %550
  %552 = load i32, ptr %39, align 4, !tbaa !9
  %553 = add nsw i32 %552, 1
  store i32 %553, ptr %39, align 4, !tbaa !9
  br label %517, !llvm.loop !15

554:                                              ; preds = %517
  %555 = load i32, ptr %19, align 4, !tbaa !9
  %556 = add nsw i32 %555, 35
  store i32 %556, ptr %19, align 4, !tbaa !9
  store i32 6, ptr %32, align 4
  br label %558

557:                                              ; preds = %470
  store i32 0, ptr %32, align 4
  br label %558

558:                                              ; preds = %557, %554, %548, %511, %487
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #3
  %559 = load i32, ptr %32, align 4
  switch i32 %559, label %2067 [
    i32 0, label %560
    i32 6, label %2051
  ]

560:                                              ; preds = %558
  br label %561

561:                                              ; preds = %560, %400, %391, %382, %373
  br label %562

562:                                              ; preds = %561, %368, %363
  %563 = load i32, ptr %19, align 4, !tbaa !9
  %564 = load i32, ptr %11, align 4, !tbaa !9
  %565 = sub nsw i32 %564, 5
  %566 = icmp slt i32 %563, %565
  br i1 %566, label %567, label %721

567:                                              ; preds = %562
  %568 = load ptr, ptr %14, align 8, !tbaa !5
  %569 = getelementptr inbounds i8, ptr %568, i64 2
  %570 = load i8, ptr %569, align 1, !tbaa !11
  %571 = icmp ne i8 %570, 0
  br i1 %571, label %572, label %721

572:                                              ; preds = %567
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #3
  store i8 0, ptr %49, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #3
  store i32 0, ptr %50, align 4, !tbaa !9
  br label %573

573:                                              ; preds = %609, %572
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #3
  %574 = load ptr, ptr %10, align 8, !tbaa !5
  %575 = load i32, ptr %19, align 4, !tbaa !9
  %576 = load i32, ptr %50, align 4, !tbaa !9
  %577 = add nsw i32 %575, %576
  %578 = sext i32 %577 to i64
  %579 = getelementptr inbounds i8, ptr %574, i64 %578
  %580 = load i8, ptr %579, align 1, !tbaa !11
  %581 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %580)
  store i8 %581, ptr %51, align 1, !tbaa !11
  %582 = load i8, ptr %51, align 1, !tbaa !11
  %583 = sext i8 %582 to i32
  %584 = icmp eq i32 %583, 3
  br i1 %584, label %585, label %586

585:                                              ; preds = %573
  store i32 25, ptr %32, align 4
  br label %606

586:                                              ; preds = %573
  %587 = load i8, ptr %51, align 1, !tbaa !11
  %588 = sext i8 %587 to i32
  %589 = icmp ne i32 %588, 0
  br i1 %589, label %590, label %603

590:                                              ; preds = %586
  %591 = load i8, ptr %49, align 1, !tbaa !11
  %592 = sext i8 %591 to i32
  %593 = icmp ne i32 %592, 0
  br i1 %593, label %594, label %601

594:                                              ; preds = %590
  %595 = load i8, ptr %49, align 1, !tbaa !11
  %596 = sext i8 %595 to i32
  %597 = load i8, ptr %51, align 1, !tbaa !11
  %598 = sext i8 %597 to i32
  %599 = icmp ne i32 %596, %598
  br i1 %599, label %600, label %601

600:                                              ; preds = %594
  store i32 25, ptr %32, align 4
  br label %606

601:                                              ; preds = %594, %590
  %602 = load i8, ptr %51, align 1, !tbaa !11
  store i8 %602, ptr %49, align 1, !tbaa !11
  br label %603

603:                                              ; preds = %601, %586
  %604 = load i32, ptr %50, align 4, !tbaa !9
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr %50, align 4, !tbaa !9
  store i32 0, ptr %32, align 4
  br label %606

606:                                              ; preds = %603, %600, %585
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #3
  %607 = load i32, ptr %32, align 4
  switch i32 %607, label %2069 [
    i32 0, label %608
    i32 25, label %615
  ]

608:                                              ; preds = %606
  br label %609

609:                                              ; preds = %608
  %610 = load i32, ptr %19, align 4, !tbaa !9
  %611 = load i32, ptr %50, align 4, !tbaa !9
  %612 = add nsw i32 %610, %611
  %613 = load i32, ptr %11, align 4, !tbaa !9
  %614 = icmp slt i32 %612, %613
  br i1 %614, label %573, label %615, !llvm.loop !16

615:                                              ; preds = %609, %606
  %616 = load i32, ptr %50, align 4, !tbaa !9
  %617 = icmp sgt i32 %616, 10
  br i1 %617, label %618, label %623

618:                                              ; preds = %615
  %619 = load i8, ptr %49, align 1, !tbaa !11
  %620 = sext i8 %619 to i32
  %621 = icmp eq i32 %620, 0
  br i1 %621, label %622, label %623

622:                                              ; preds = %618
  store i8 1, ptr %49, align 1, !tbaa !11
  br label %623

623:                                              ; preds = %622, %618, %615
  %624 = load i8, ptr %49, align 1, !tbaa !11
  %625 = sext i8 %624 to i32
  %626 = icmp eq i32 %625, 1
  br i1 %626, label %631, label %627

627:                                              ; preds = %623
  %628 = load i8, ptr %49, align 1, !tbaa !11
  %629 = sext i8 %628 to i32
  %630 = icmp eq i32 %629, 2
  br i1 %630, label %631, label %717

631:                                              ; preds = %627, %623
  %632 = load i32, ptr %50, align 4, !tbaa !9
  %633 = icmp sgt i32 %632, 3
  br i1 %633, label %634, label %717

634:                                              ; preds = %631
  br label %635

635:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #3
  %636 = load ptr, ptr %12, align 8, !tbaa !5
  %637 = load i32, ptr %21, align 4, !tbaa !9
  %638 = load i8, ptr %18, align 1, !tbaa !11
  %639 = load ptr, ptr %13, align 8, !tbaa !5
  %640 = load ptr, ptr %14, align 8, !tbaa !5
  %641 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %636, i32 noundef 2147483646, i32 noundef %637, i8 noundef zeroext %638, ptr noundef %639, ptr noundef %640)
  store i32 %641, ptr %21, align 4, !tbaa !9
  store i32 %641, ptr %52, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #3
  store i32 2147483646, ptr %53, align 4, !tbaa !9
  %642 = load i32, ptr %52, align 4, !tbaa !9
  %643 = icmp slt i32 %642, 0
  br i1 %643, label %644, label %645

644:                                              ; preds = %635
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %646

645:                                              ; preds = %635
  store i32 0, ptr %32, align 4
  br label %646

646:                                              ; preds = %645, %644
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #3
  %647 = load i32, ptr %32, align 4
  switch i32 %647, label %718 [
    i32 0, label %648
  ]

648:                                              ; preds = %646
  br label %649

649:                                              ; preds = %648
  br label %650

650:                                              ; preds = %649
  br label %651

651:                                              ; preds = %650
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #3
  %652 = load ptr, ptr %12, align 8, !tbaa !5
  %653 = load i32, ptr %21, align 4, !tbaa !9
  %654 = load i8, ptr %49, align 1, !tbaa !11
  %655 = sext i8 %654 to i32
  %656 = icmp eq i32 %655, 1
  %657 = zext i1 %656 to i64
  %658 = select i1 %656, i32 128, i32 224
  %659 = trunc i32 %658 to i8
  %660 = load i8, ptr %49, align 1, !tbaa !11
  %661 = sext i8 %660 to i32
  %662 = icmp eq i32 %661, 1
  %663 = zext i1 %662 to i64
  %664 = select i1 %662, i32 2, i32 4
  %665 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %652, i32 noundef 2147483646, i32 noundef %653, i8 noundef zeroext %659, i32 noundef %664)
  store i32 %665, ptr %21, align 4, !tbaa !9
  store i32 %665, ptr %54, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #3
  store i32 2147483646, ptr %55, align 4, !tbaa !9
  %666 = load i32, ptr %54, align 4, !tbaa !9
  %667 = icmp slt i32 %666, 0
  br i1 %667, label %668, label %669

668:                                              ; preds = %651
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %670

669:                                              ; preds = %651
  store i32 0, ptr %32, align 4
  br label %670

670:                                              ; preds = %669, %668
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #3
  %671 = load i32, ptr %32, align 4
  switch i32 %671, label %718 [
    i32 0, label %672
  ]

672:                                              ; preds = %670
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  br label %675

675:                                              ; preds = %674
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #3
  %676 = load ptr, ptr %12, align 8, !tbaa !5
  %677 = load i32, ptr %21, align 4, !tbaa !9
  %678 = load i32, ptr %50, align 4, !tbaa !9
  %679 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %676, i32 noundef 2147483646, i32 noundef %677, i32 noundef %678)
  store i32 %679, ptr %21, align 4, !tbaa !9
  store i32 %679, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #3
  store i32 2147483646, ptr %57, align 4, !tbaa !9
  %680 = load i32, ptr %56, align 4, !tbaa !9
  %681 = icmp slt i32 %680, 0
  br i1 %681, label %682, label %683

682:                                              ; preds = %675
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %684

683:                                              ; preds = %675
  store i32 0, ptr %32, align 4
  br label %684

684:                                              ; preds = %683, %682
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #3
  %685 = load i32, ptr %32, align 4
  switch i32 %685, label %718 [
    i32 0, label %686
  ]

686:                                              ; preds = %684
  br label %687

687:                                              ; preds = %686
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %710, %688
  br label %690

690:                                              ; preds = %689
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #3
  %691 = load ptr, ptr %12, align 8, !tbaa !5
  %692 = load i32, ptr %21, align 4, !tbaa !9
  %693 = load ptr, ptr %10, align 8, !tbaa !5
  %694 = load i32, ptr %19, align 4, !tbaa !9
  %695 = add nsw i32 %694, 1
  store i32 %695, ptr %19, align 4, !tbaa !9
  %696 = sext i32 %694 to i64
  %697 = getelementptr inbounds i8, ptr %693, i64 %696
  %698 = load i8, ptr %697, align 1, !tbaa !11
  %699 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %698)
  %700 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %691, i32 noundef 2147483646, i32 noundef %692, i8 noundef zeroext %699, i32 noundef 4)
  store i32 %700, ptr %21, align 4, !tbaa !9
  store i32 %700, ptr %58, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #3
  store i32 2147483646, ptr %59, align 4, !tbaa !9
  %701 = load i32, ptr %58, align 4, !tbaa !9
  %702 = icmp slt i32 %701, 0
  br i1 %702, label %703, label %704

703:                                              ; preds = %690
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %705

704:                                              ; preds = %690
  store i32 0, ptr %32, align 4
  br label %705

705:                                              ; preds = %704, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #3
  %706 = load i32, ptr %32, align 4
  switch i32 %706, label %718 [
    i32 0, label %707
  ]

707:                                              ; preds = %705
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  %711 = load i32, ptr %50, align 4, !tbaa !9
  %712 = add nsw i32 %711, -1
  store i32 %712, ptr %50, align 4, !tbaa !9
  %713 = icmp ne i32 %712, 0
  br i1 %713, label %689, label %714, !llvm.loop !17

714:                                              ; preds = %710
  %715 = load i32, ptr %19, align 4, !tbaa !9
  %716 = add nsw i32 %715, -1
  store i32 %716, ptr %19, align 4, !tbaa !9
  store i32 6, ptr %32, align 4
  br label %718

717:                                              ; preds = %631, %627
  store i32 0, ptr %32, align 4
  br label %718

718:                                              ; preds = %717, %714, %705, %684, %670, %646
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #3
  %719 = load i32, ptr %32, align 4
  switch i32 %719, label %2067 [
    i32 0, label %720
    i32 6, label %2051
  ]

720:                                              ; preds = %718
  br label %721

721:                                              ; preds = %720, %567, %562
  %722 = load ptr, ptr %16, align 8, !tbaa !5
  %723 = icmp ne ptr %722, null
  br i1 %723, label %724, label %1059

724:                                              ; preds = %721
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #3
  store i32 0, ptr %60, align 4, !tbaa !9
  br label %725

725:                                              ; preds = %1048, %724
  %726 = load i32, ptr %60, align 4, !tbaa !9
  %727 = icmp slt i32 %726, 5
  br i1 %727, label %728, label %1051

728:                                              ; preds = %725
  %729 = load ptr, ptr %16, align 8, !tbaa !5
  %730 = load i32, ptr %60, align 4, !tbaa !9
  %731 = sext i32 %730 to i64
  %732 = getelementptr inbounds ptr, ptr %729, i64 %731
  %733 = load ptr, ptr %732, align 8, !tbaa !5
  %734 = icmp ne ptr %733, null
  br i1 %734, label %735, label %1047

735:                                              ; preds = %728
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #3
  %736 = load ptr, ptr %16, align 8, !tbaa !5
  %737 = load i32, ptr %60, align 4, !tbaa !9
  %738 = sext i32 %737 to i64
  %739 = getelementptr inbounds ptr, ptr %736, i64 %738
  %740 = load ptr, ptr %739, align 8, !tbaa !5
  %741 = call i64 @strlen(ptr noundef %740) #4
  %742 = trunc i64 %741 to i32
  store i32 %742, ptr %61, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #3
  store i32 0, ptr %62, align 4, !tbaa !9
  br label %743

743:                                              ; preds = %844, %735
  %744 = load i32, ptr %62, align 4, !tbaa !9
  %745 = load i32, ptr %61, align 4, !tbaa !9
  %746 = icmp slt i32 %744, %745
  br i1 %746, label %747, label %753

747:                                              ; preds = %743
  %748 = load i32, ptr %19, align 4, !tbaa !9
  %749 = load i32, ptr %62, align 4, !tbaa !9
  %750 = add nsw i32 %748, %749
  %751 = load i32, ptr %11, align 4, !tbaa !9
  %752 = icmp slt i32 %750, %751
  br label %753

753:                                              ; preds = %747, %743
  %754 = phi i1 [ false, %743 ], [ %752, %747 ]
  br i1 %754, label %755, label %847

755:                                              ; preds = %753
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #3
  %756 = load ptr, ptr %16, align 8, !tbaa !5
  %757 = load i32, ptr %60, align 4, !tbaa !9
  %758 = sext i32 %757 to i64
  %759 = getelementptr inbounds ptr, ptr %756, i64 %758
  %760 = load ptr, ptr %759, align 8, !tbaa !5
  %761 = load i32, ptr %62, align 4, !tbaa !9
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds i8, ptr %760, i64 %762
  %764 = load i8, ptr %763, align 1, !tbaa !11
  store i8 %764, ptr %63, align 1, !tbaa !11
  %765 = load ptr, ptr %10, align 8, !tbaa !5
  %766 = load i32, ptr %19, align 4, !tbaa !9
  %767 = load i32, ptr %62, align 4, !tbaa !9
  %768 = add nsw i32 %766, %767
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds i8, ptr %765, i64 %769
  %771 = load i8, ptr %770, align 1, !tbaa !11
  store i8 %771, ptr %22, align 1, !tbaa !11
  %772 = load i8, ptr %63, align 1, !tbaa !11
  %773 = sext i8 %772 to i32
  %774 = icmp eq i32 %773, 102
  br i1 %774, label %779, label %775

775:                                              ; preds = %755
  %776 = load i8, ptr %63, align 1, !tbaa !11
  %777 = sext i8 %776 to i32
  %778 = icmp eq i32 %777, 70
  br i1 %778, label %779, label %796

779:                                              ; preds = %775, %755
  %780 = load i8, ptr %22, align 1, !tbaa !11
  %781 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %780)
  %782 = sext i8 %781 to i32
  %783 = load i8, ptr %63, align 1, !tbaa !11
  %784 = sext i8 %783 to i32
  %785 = icmp eq i32 %784, 102
  %786 = zext i1 %785 to i64
  %787 = select i1 %785, i32 1, i32 2
  %788 = icmp ne i32 %782, %787
  br i1 %788, label %789, label %795

789:                                              ; preds = %779
  %790 = load i8, ptr %22, align 1, !tbaa !11
  %791 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %790)
  %792 = sext i8 %791 to i32
  %793 = icmp ne i32 %792, 0
  br i1 %793, label %794, label %795

794:                                              ; preds = %789
  store i32 40, ptr %32, align 4
  br label %841

795:                                              ; preds = %789, %779
  br label %840

796:                                              ; preds = %775
  %797 = load i8, ptr %63, align 1, !tbaa !11
  %798 = sext i8 %797 to i32
  %799 = icmp eq i32 %798, 114
  br i1 %799, label %808, label %800

800:                                              ; preds = %796
  %801 = load i8, ptr %63, align 1, !tbaa !11
  %802 = sext i8 %801 to i32
  %803 = icmp eq i32 %802, 116
  br i1 %803, label %808, label %804

804:                                              ; preds = %800
  %805 = load i8, ptr %63, align 1, !tbaa !11
  %806 = sext i8 %805 to i32
  %807 = icmp eq i32 %806, 111
  br i1 %807, label %808, label %831

808:                                              ; preds = %804, %800, %796
  %809 = load i8, ptr %22, align 1, !tbaa !11
  %810 = sext i8 %809 to i32
  %811 = icmp slt i32 %810, 48
  br i1 %811, label %829, label %812

812:                                              ; preds = %808
  %813 = load i8, ptr %22, align 1, !tbaa !11
  %814 = sext i8 %813 to i32
  %815 = load i8, ptr %63, align 1, !tbaa !11
  %816 = sext i8 %815 to i32
  %817 = icmp eq i32 %816, 114
  br i1 %817, label %818, label %819

818:                                              ; preds = %812
  br label %825

819:                                              ; preds = %812
  %820 = load i8, ptr %63, align 1, !tbaa !11
  %821 = sext i8 %820 to i32
  %822 = icmp eq i32 %821, 116
  %823 = zext i1 %822 to i64
  %824 = select i1 %822, i8 51, i8 49
  br label %825

825:                                              ; preds = %819, %818
  %826 = phi i8 [ 55, %818 ], [ %824, %819 ]
  %827 = sext i8 %826 to i32
  %828 = icmp sgt i32 %814, %827
  br i1 %828, label %829, label %830

829:                                              ; preds = %825, %808
  store i32 40, ptr %32, align 4
  br label %841

830:                                              ; preds = %825
  br label %839

831:                                              ; preds = %804
  %832 = load i8, ptr %63, align 1, !tbaa !11
  %833 = sext i8 %832 to i32
  %834 = load i8, ptr %22, align 1, !tbaa !11
  %835 = sext i8 %834 to i32
  %836 = icmp ne i32 %833, %835
  br i1 %836, label %837, label %838

837:                                              ; preds = %831
  store i32 40, ptr %32, align 4
  br label %841

838:                                              ; preds = %831
  br label %839

839:                                              ; preds = %838, %830
  br label %840

840:                                              ; preds = %839, %795
  store i32 0, ptr %32, align 4
  br label %841

841:                                              ; preds = %840, %837, %829, %794
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #3
  %842 = load i32, ptr %32, align 4
  switch i32 %842, label %2069 [
    i32 0, label %843
    i32 40, label %847
  ]

843:                                              ; preds = %841
  br label %844

844:                                              ; preds = %843
  %845 = load i32, ptr %62, align 4, !tbaa !9
  %846 = add nsw i32 %845, 1
  store i32 %846, ptr %62, align 4, !tbaa !9
  br label %743, !llvm.loop !18

847:                                              ; preds = %841, %753
  %848 = load i32, ptr %62, align 4, !tbaa !9
  %849 = sitofp i32 %848 to float
  %850 = load i32, ptr %61, align 4, !tbaa !9
  %851 = sitofp i32 %850 to float
  %852 = fdiv float %849, %851
  %853 = fpext float %852 to double
  %854 = fcmp ogt double %853, 6.600000e-01
  br i1 %854, label %855, label %1043

855:                                              ; preds = %847
  %856 = load i32, ptr %61, align 4, !tbaa !9
  %857 = load i32, ptr %62, align 4, !tbaa !9
  %858 = sub nsw i32 %856, %857
  store i32 %858, ptr %61, align 4, !tbaa !9
  br label %859

859:                                              ; preds = %855
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #3
  %860 = load ptr, ptr %12, align 8, !tbaa !5
  %861 = load i32, ptr %21, align 4, !tbaa !9
  %862 = load i8, ptr %18, align 1, !tbaa !11
  %863 = load ptr, ptr %13, align 8, !tbaa !5
  %864 = load ptr, ptr %14, align 8, !tbaa !5
  %865 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %860, i32 noundef 2147483646, i32 noundef %861, i8 noundef zeroext %862, ptr noundef %863, ptr noundef %864)
  store i32 %865, ptr %21, align 4, !tbaa !9
  store i32 %865, ptr %64, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #3
  store i32 2147483646, ptr %65, align 4, !tbaa !9
  %866 = load i32, ptr %64, align 4, !tbaa !9
  %867 = icmp slt i32 %866, 0
  br i1 %867, label %868, label %869

868:                                              ; preds = %859
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %870

869:                                              ; preds = %859
  store i32 0, ptr %32, align 4
  br label %870

870:                                              ; preds = %869, %868
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #3
  %871 = load i32, ptr %32, align 4
  switch i32 %871, label %1044 [
    i32 0, label %872
  ]

872:                                              ; preds = %870
  br label %873

873:                                              ; preds = %872
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #3
  %876 = load ptr, ptr %12, align 8, !tbaa !5
  %877 = load i32, ptr %21, align 4, !tbaa !9
  %878 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %876, i32 noundef 2147483646, i32 noundef %877, i8 noundef zeroext 0, i32 noundef 1)
  store i32 %878, ptr %21, align 4, !tbaa !9
  store i32 %878, ptr %66, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #3
  store i32 2147483646, ptr %67, align 4, !tbaa !9
  %879 = load i32, ptr %66, align 4, !tbaa !9
  %880 = icmp slt i32 %879, 0
  br i1 %880, label %881, label %882

881:                                              ; preds = %875
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %883

882:                                              ; preds = %875
  store i32 0, ptr %32, align 4
  br label %883

883:                                              ; preds = %882, %881
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #3
  %884 = load i32, ptr %32, align 4
  switch i32 %884, label %1044 [
    i32 0, label %885
  ]

885:                                              ; preds = %883
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886
  br label %888

888:                                              ; preds = %887
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #3
  %889 = load ptr, ptr %12, align 8, !tbaa !5
  %890 = load i32, ptr %21, align 4, !tbaa !9
  %891 = load i32, ptr %60, align 4, !tbaa !9
  %892 = sext i32 %891 to i64
  %893 = getelementptr inbounds [5 x i8], ptr @_ZL11count_codes, i64 0, i64 %892
  %894 = load i8, ptr %893, align 1, !tbaa !11
  %895 = zext i8 %894 to i32
  %896 = and i32 %895, 248
  %897 = trunc i32 %896 to i8
  %898 = load i32, ptr %60, align 4, !tbaa !9
  %899 = sext i32 %898 to i64
  %900 = getelementptr inbounds [5 x i8], ptr @_ZL11count_codes, i64 0, i64 %899
  %901 = load i8, ptr %900, align 1, !tbaa !11
  %902 = zext i8 %901 to i32
  %903 = and i32 %902, 7
  %904 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %889, i32 noundef 2147483646, i32 noundef %890, i8 noundef zeroext %897, i32 noundef %903)
  store i32 %904, ptr %21, align 4, !tbaa !9
  store i32 %904, ptr %68, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #3
  store i32 2147483646, ptr %69, align 4, !tbaa !9
  %905 = load i32, ptr %68, align 4, !tbaa !9
  %906 = icmp slt i32 %905, 0
  br i1 %906, label %907, label %908

907:                                              ; preds = %888
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %909

908:                                              ; preds = %888
  store i32 0, ptr %32, align 4
  br label %909

909:                                              ; preds = %908, %907
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #3
  %910 = load i32, ptr %32, align 4
  switch i32 %910, label %1044 [
    i32 0, label %911
  ]

911:                                              ; preds = %909
  br label %912

912:                                              ; preds = %911
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #3
  %915 = load ptr, ptr %12, align 8, !tbaa !5
  %916 = load i32, ptr %21, align 4, !tbaa !9
  %917 = load i32, ptr %61, align 4, !tbaa !9
  %918 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %915, i32 noundef 2147483646, i32 noundef %916, i32 noundef %917)
  store i32 %918, ptr %21, align 4, !tbaa !9
  store i32 %918, ptr %70, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #3
  store i32 2147483646, ptr %71, align 4, !tbaa !9
  %919 = load i32, ptr %70, align 4, !tbaa !9
  %920 = icmp slt i32 %919, 0
  br i1 %920, label %921, label %922

921:                                              ; preds = %914
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %923

922:                                              ; preds = %914
  store i32 0, ptr %32, align 4
  br label %923

923:                                              ; preds = %922, %921
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #3
  %924 = load i32, ptr %32, align 4
  switch i32 %924, label %1044 [
    i32 0, label %925
  ]

925:                                              ; preds = %923
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #3
  store i32 0, ptr %72, align 4, !tbaa !9
  br label %928

928:                                              ; preds = %1032, %927
  %929 = load i32, ptr %72, align 4, !tbaa !9
  %930 = load i32, ptr %62, align 4, !tbaa !9
  %931 = icmp slt i32 %929, %930
  br i1 %931, label %933, label %932

932:                                              ; preds = %928
  store i32 51, ptr %32, align 4
  br label %1035

933:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 1, ptr %73) #3
  %934 = load ptr, ptr %16, align 8, !tbaa !5
  %935 = load i32, ptr %60, align 4, !tbaa !9
  %936 = sext i32 %935 to i64
  %937 = getelementptr inbounds ptr, ptr %934, i64 %936
  %938 = load ptr, ptr %937, align 8, !tbaa !5
  %939 = load i32, ptr %72, align 4, !tbaa !9
  %940 = sext i32 %939 to i64
  %941 = getelementptr inbounds i8, ptr %938, i64 %940
  %942 = load i8, ptr %941, align 1, !tbaa !11
  store i8 %942, ptr %73, align 1, !tbaa !11
  %943 = load i8, ptr %73, align 1, !tbaa !11
  %944 = sext i8 %943 to i32
  %945 = icmp eq i32 %944, 102
  br i1 %945, label %950, label %946

946:                                              ; preds = %933
  %947 = load i8, ptr %73, align 1, !tbaa !11
  %948 = sext i8 %947 to i32
  %949 = icmp eq i32 %948, 70
  br i1 %949, label %950, label %972

950:                                              ; preds = %946, %933
  br label %951

951:                                              ; preds = %950
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #3
  %952 = load ptr, ptr %12, align 8, !tbaa !5
  %953 = load i32, ptr %21, align 4, !tbaa !9
  %954 = load ptr, ptr %10, align 8, !tbaa !5
  %955 = load i32, ptr %19, align 4, !tbaa !9
  %956 = load i32, ptr %72, align 4, !tbaa !9
  %957 = add nsw i32 %955, %956
  %958 = sext i32 %957 to i64
  %959 = getelementptr inbounds i8, ptr %954, i64 %958
  %960 = load i8, ptr %959, align 1, !tbaa !11
  %961 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %960)
  %962 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %952, i32 noundef 2147483646, i32 noundef %953, i8 noundef zeroext %961, i32 noundef 4)
  store i32 %962, ptr %21, align 4, !tbaa !9
  store i32 %962, ptr %74, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #3
  store i32 2147483646, ptr %75, align 4, !tbaa !9
  %963 = load i32, ptr %74, align 4, !tbaa !9
  %964 = icmp slt i32 %963, 0
  br i1 %964, label %965, label %966

965:                                              ; preds = %951
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %967

966:                                              ; preds = %951
  store i32 0, ptr %32, align 4
  br label %967

967:                                              ; preds = %966, %965
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #3
  %968 = load i32, ptr %32, align 4
  switch i32 %968, label %1029 [
    i32 0, label %969
  ]

969:                                              ; preds = %967
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  br label %1028

972:                                              ; preds = %946
  %973 = load i8, ptr %73, align 1, !tbaa !11
  %974 = sext i8 %973 to i32
  %975 = icmp eq i32 %974, 114
  br i1 %975, label %984, label %976

976:                                              ; preds = %972
  %977 = load i8, ptr %73, align 1, !tbaa !11
  %978 = sext i8 %977 to i32
  %979 = icmp eq i32 %978, 116
  br i1 %979, label %984, label %980

980:                                              ; preds = %976
  %981 = load i8, ptr %73, align 1, !tbaa !11
  %982 = sext i8 %981 to i32
  %983 = icmp eq i32 %982, 111
  br i1 %983, label %984, label %1027

984:                                              ; preds = %980, %976, %972
  %985 = load i8, ptr %73, align 1, !tbaa !11
  %986 = sext i8 %985 to i32
  %987 = icmp eq i32 %986, 114
  br i1 %987, label %988, label %989

988:                                              ; preds = %984
  br label %995

989:                                              ; preds = %984
  %990 = load i8, ptr %73, align 1, !tbaa !11
  %991 = sext i8 %990 to i32
  %992 = icmp eq i32 %991, 116
  %993 = zext i1 %992 to i64
  %994 = select i1 %992, i32 2, i32 1
  br label %995

995:                                              ; preds = %989, %988
  %996 = phi i32 [ 3, %988 ], [ %994, %989 ]
  %997 = trunc i32 %996 to i8
  store i8 %997, ptr %73, align 1, !tbaa !11
  br label %998

998:                                              ; preds = %995
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #3
  %999 = load ptr, ptr %12, align 8, !tbaa !5
  %1000 = load i32, ptr %21, align 4, !tbaa !9
  %1001 = load ptr, ptr %10, align 8, !tbaa !5
  %1002 = load i32, ptr %19, align 4, !tbaa !9
  %1003 = load i32, ptr %72, align 4, !tbaa !9
  %1004 = add nsw i32 %1002, %1003
  %1005 = sext i32 %1004 to i64
  %1006 = getelementptr inbounds i8, ptr %1001, i64 %1005
  %1007 = load i8, ptr %1006, align 1, !tbaa !11
  %1008 = sext i8 %1007 to i32
  %1009 = sub nsw i32 %1008, 48
  %1010 = load i8, ptr %73, align 1, !tbaa !11
  %1011 = sext i8 %1010 to i32
  %1012 = sub nsw i32 8, %1011
  %1013 = shl i32 %1009, %1012
  %1014 = trunc i32 %1013 to i8
  %1015 = load i8, ptr %73, align 1, !tbaa !11
  %1016 = sext i8 %1015 to i32
  %1017 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %999, i32 noundef 2147483646, i32 noundef %1000, i8 noundef zeroext %1014, i32 noundef %1016)
  store i32 %1017, ptr %21, align 4, !tbaa !9
  store i32 %1017, ptr %76, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #3
  store i32 2147483646, ptr %77, align 4, !tbaa !9
  %1018 = load i32, ptr %76, align 4, !tbaa !9
  %1019 = icmp slt i32 %1018, 0
  br i1 %1019, label %1020, label %1021

1020:                                             ; preds = %998
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1022

1021:                                             ; preds = %998
  store i32 0, ptr %32, align 4
  br label %1022

1022:                                             ; preds = %1021, %1020
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #3
  %1023 = load i32, ptr %32, align 4
  switch i32 %1023, label %1029 [
    i32 0, label %1024
  ]

1024:                                             ; preds = %1022
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  br label %1027

1027:                                             ; preds = %1026, %980
  br label %1028

1028:                                             ; preds = %1027, %971
  store i32 0, ptr %32, align 4
  br label %1029

1029:                                             ; preds = %1028, %1022, %967
  call void @llvm.lifetime.end.p0(i64 1, ptr %73) #3
  %1030 = load i32, ptr %32, align 4
  switch i32 %1030, label %1035 [
    i32 0, label %1031
  ]

1031:                                             ; preds = %1029
  br label %1032

1032:                                             ; preds = %1031
  %1033 = load i32, ptr %72, align 4, !tbaa !9
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr %72, align 4, !tbaa !9
  br label %928, !llvm.loop !19

1035:                                             ; preds = %1029, %932
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #3
  %1036 = load i32, ptr %32, align 4
  switch i32 %1036, label %1044 [
    i32 51, label %1037
  ]

1037:                                             ; preds = %1035
  %1038 = load i32, ptr %62, align 4, !tbaa !9
  %1039 = load i32, ptr %19, align 4, !tbaa !9
  %1040 = add nsw i32 %1039, %1038
  store i32 %1040, ptr %19, align 4, !tbaa !9
  %1041 = load i32, ptr %19, align 4, !tbaa !9
  %1042 = add nsw i32 %1041, -1
  store i32 %1042, ptr %19, align 4, !tbaa !9
  store i32 37, ptr %32, align 4
  br label %1044

1043:                                             ; preds = %847
  store i32 0, ptr %32, align 4
  br label %1044

1044:                                             ; preds = %1043, %1037, %1035, %923, %909, %883, %870
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #3
  %1045 = load i32, ptr %32, align 4
  switch i32 %1045, label %1056 [
    i32 0, label %1046
    i32 37, label %1051
  ]

1046:                                             ; preds = %1044
  br label %1047

1047:                                             ; preds = %1046, %728
  br label %1048

1048:                                             ; preds = %1047
  %1049 = load i32, ptr %60, align 4, !tbaa !9
  %1050 = add nsw i32 %1049, 1
  store i32 %1050, ptr %60, align 4, !tbaa !9
  br label %725, !llvm.loop !20

1051:                                             ; preds = %1044, %725
  %1052 = load i32, ptr %60, align 4, !tbaa !9
  %1053 = icmp slt i32 %1052, 5
  br i1 %1053, label %1054, label %1055

1054:                                             ; preds = %1051
  store i32 6, ptr %32, align 4
  br label %1056

1055:                                             ; preds = %1051
  store i32 0, ptr %32, align 4
  br label %1056

1056:                                             ; preds = %1055, %1054, %1044
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #3
  %1057 = load i32, ptr %32, align 4
  switch i32 %1057, label %2067 [
    i32 0, label %1058
    i32 6, label %2051
  ]

1058:                                             ; preds = %1056
  br label %1059

1059:                                             ; preds = %1058, %721
  %1060 = load ptr, ptr %15, align 8, !tbaa !5
  %1061 = icmp ne ptr %1060, null
  br i1 %1061, label %1062, label %1151

1062:                                             ; preds = %1059
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #3
  store i32 0, ptr %78, align 4, !tbaa !9
  br label %1063

1063:                                             ; preds = %1140, %1062
  %1064 = load i32, ptr %78, align 4, !tbaa !9
  %1065 = icmp slt i32 %1064, 6
  br i1 %1065, label %1066, label %1143

1066:                                             ; preds = %1063
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #3
  %1067 = load ptr, ptr %15, align 8, !tbaa !5
  %1068 = load i32, ptr %78, align 4, !tbaa !9
  %1069 = sext i32 %1068 to i64
  %1070 = getelementptr inbounds ptr, ptr %1067, i64 %1069
  %1071 = load ptr, ptr %1070, align 8, !tbaa !5
  %1072 = call i64 @strlen(ptr noundef %1071) #4
  %1073 = trunc i64 %1072 to i32
  store i32 %1073, ptr %79, align 4, !tbaa !9
  %1074 = load i32, ptr %11, align 4, !tbaa !9
  %1075 = load i32, ptr %79, align 4, !tbaa !9
  %1076 = sub nsw i32 %1074, %1075
  %1077 = icmp sge i32 %1076, 0
  br i1 %1077, label %1078, label %1136

1078:                                             ; preds = %1066
  %1079 = load i32, ptr %19, align 4, !tbaa !9
  %1080 = load i32, ptr %11, align 4, !tbaa !9
  %1081 = load i32, ptr %79, align 4, !tbaa !9
  %1082 = sub nsw i32 %1080, %1081
  %1083 = icmp sle i32 %1079, %1082
  br i1 %1083, label %1084, label %1136

1084:                                             ; preds = %1078
  %1085 = load ptr, ptr %15, align 8, !tbaa !5
  %1086 = load i32, ptr %78, align 4, !tbaa !9
  %1087 = sext i32 %1086 to i64
  %1088 = getelementptr inbounds ptr, ptr %1085, i64 %1087
  %1089 = load ptr, ptr %1088, align 8, !tbaa !5
  %1090 = load ptr, ptr %10, align 8, !tbaa !5
  %1091 = load i32, ptr %19, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds i8, ptr %1090, i64 %1092
  %1094 = load i32, ptr %79, align 4, !tbaa !9
  %1095 = sext i32 %1094 to i64
  %1096 = call i32 @memcmp(ptr noundef %1089, ptr noundef %1093, i64 noundef %1095) #4
  %1097 = icmp eq i32 %1096, 0
  br i1 %1097, label %1098, label %1135

1098:                                             ; preds = %1084
  %1099 = load ptr, ptr %14, align 8, !tbaa !5
  %1100 = load i32, ptr %78, align 4, !tbaa !9
  %1101 = sext i32 %1100 to i64
  %1102 = getelementptr inbounds [6 x i8], ptr @usx_freq_codes, i64 0, i64 %1101
  %1103 = load i8, ptr %1102, align 1, !tbaa !11
  %1104 = zext i8 %1103 to i32
  %1105 = ashr i32 %1104, 5
  %1106 = sext i32 %1105 to i64
  %1107 = getelementptr inbounds i8, ptr %1099, i64 %1106
  %1108 = load i8, ptr %1107, align 1, !tbaa !11
  %1109 = icmp ne i8 %1108, 0
  br i1 %1109, label %1110, label %1135

1110:                                             ; preds = %1098
  br label %1111

1111:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #3
  %1112 = load ptr, ptr %12, align 8, !tbaa !5
  %1113 = load i32, ptr %21, align 4, !tbaa !9
  %1114 = load i32, ptr %78, align 4, !tbaa !9
  %1115 = sext i32 %1114 to i64
  %1116 = getelementptr inbounds [6 x i8], ptr @usx_freq_codes, i64 0, i64 %1115
  %1117 = load i8, ptr %1116, align 1, !tbaa !11
  %1118 = load ptr, ptr %13, align 8, !tbaa !5
  %1119 = load ptr, ptr %14, align 8, !tbaa !5
  %1120 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1112, i32 noundef 2147483646, i32 noundef %1113, i8 noundef zeroext %1117, ptr noundef %18, ptr noundef %1118, ptr noundef %1119)
  store i32 %1120, ptr %21, align 4, !tbaa !9
  store i32 %1120, ptr %80, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #3
  store i32 2147483646, ptr %81, align 4, !tbaa !9
  %1121 = load i32, ptr %80, align 4, !tbaa !9
  %1122 = icmp slt i32 %1121, 0
  br i1 %1122, label %1123, label %1124

1123:                                             ; preds = %1111
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1125

1124:                                             ; preds = %1111
  store i32 0, ptr %32, align 4
  br label %1125

1125:                                             ; preds = %1124, %1123
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #3
  %1126 = load i32, ptr %32, align 4
  switch i32 %1126, label %1137 [
    i32 0, label %1127
  ]

1127:                                             ; preds = %1125
  br label %1128

1128:                                             ; preds = %1127
  br label %1129

1129:                                             ; preds = %1128
  %1130 = load i32, ptr %79, align 4, !tbaa !9
  %1131 = load i32, ptr %19, align 4, !tbaa !9
  %1132 = add nsw i32 %1131, %1130
  store i32 %1132, ptr %19, align 4, !tbaa !9
  %1133 = load i32, ptr %19, align 4, !tbaa !9
  %1134 = add nsw i32 %1133, -1
  store i32 %1134, ptr %19, align 4, !tbaa !9
  store i32 58, ptr %32, align 4
  br label %1137

1135:                                             ; preds = %1098, %1084
  br label %1136

1136:                                             ; preds = %1135, %1078, %1066
  store i32 0, ptr %32, align 4
  br label %1137

1137:                                             ; preds = %1136, %1129, %1125
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #3
  %1138 = load i32, ptr %32, align 4
  switch i32 %1138, label %1148 [
    i32 0, label %1139
    i32 58, label %1143
  ]

1139:                                             ; preds = %1137
  br label %1140

1140:                                             ; preds = %1139
  %1141 = load i32, ptr %78, align 4, !tbaa !9
  %1142 = add nsw i32 %1141, 1
  store i32 %1142, ptr %78, align 4, !tbaa !9
  br label %1063, !llvm.loop !21

1143:                                             ; preds = %1137, %1063
  %1144 = load i32, ptr %78, align 4, !tbaa !9
  %1145 = icmp slt i32 %1144, 6
  br i1 %1145, label %1146, label %1147

1146:                                             ; preds = %1143
  store i32 6, ptr %32, align 4
  br label %1148

1147:                                             ; preds = %1143
  store i32 0, ptr %32, align 4
  br label %1148

1148:                                             ; preds = %1147, %1146, %1137
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #3
  %1149 = load i32, ptr %32, align 4
  switch i32 %1149, label %2067 [
    i32 0, label %1150
    i32 6, label %2051
  ]

1150:                                             ; preds = %1148
  br label %1151

1151:                                             ; preds = %1150, %1059
  %1152 = load ptr, ptr %10, align 8, !tbaa !5
  %1153 = load i32, ptr %19, align 4, !tbaa !9
  %1154 = sext i32 %1153 to i64
  %1155 = getelementptr inbounds i8, ptr %1152, i64 %1154
  %1156 = load i8, ptr %1155, align 1, !tbaa !11
  store i8 %1156, ptr %22, align 1, !tbaa !11
  store i8 0, ptr %25, align 1, !tbaa !11
  %1157 = load i8, ptr %22, align 1, !tbaa !11
  %1158 = sext i8 %1157 to i32
  %1159 = icmp sge i32 %1158, 65
  br i1 %1159, label %1160, label %1165

1160:                                             ; preds = %1151
  %1161 = load i8, ptr %22, align 1, !tbaa !11
  %1162 = sext i8 %1161 to i32
  %1163 = icmp sle i32 %1162, 90
  br i1 %1163, label %1164, label %1165

1164:                                             ; preds = %1160
  store i8 1, ptr %25, align 1, !tbaa !11
  br label %1204

1165:                                             ; preds = %1160, %1151
  %1166 = load i8, ptr %26, align 1, !tbaa !11
  %1167 = icmp ne i8 %1166, 0
  br i1 %1167, label %1168, label %1203

1168:                                             ; preds = %1165
  store i8 0, ptr %26, align 1, !tbaa !11
  br label %1169

1169:                                             ; preds = %1168
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #3
  %1170 = load ptr, ptr %12, align 8, !tbaa !5
  %1171 = load i32, ptr %21, align 4, !tbaa !9
  %1172 = load i8, ptr %18, align 1, !tbaa !11
  %1173 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1170, i32 noundef 2147483646, i32 noundef %1171, i8 noundef zeroext %1172)
  store i32 %1173, ptr %21, align 4, !tbaa !9
  store i32 %1173, ptr %82, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #3
  store i32 2147483646, ptr %83, align 4, !tbaa !9
  %1174 = load i32, ptr %82, align 4, !tbaa !9
  %1175 = icmp slt i32 %1174, 0
  br i1 %1175, label %1176, label %1177

1176:                                             ; preds = %1169
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1178

1177:                                             ; preds = %1169
  store i32 0, ptr %32, align 4
  br label %1178

1178:                                             ; preds = %1177, %1176
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #3
  %1179 = load i32, ptr %32, align 4
  switch i32 %1179, label %2067 [
    i32 0, label %1180
  ]

1180:                                             ; preds = %1178
  br label %1181

1181:                                             ; preds = %1180
  br label %1182

1182:                                             ; preds = %1181
  br label %1183

1183:                                             ; preds = %1182
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #3
  %1184 = load ptr, ptr %12, align 8, !tbaa !5
  %1185 = load i32, ptr %21, align 4, !tbaa !9
  %1186 = load ptr, ptr %13, align 8, !tbaa !5
  %1187 = getelementptr inbounds i8, ptr %1186, i64 0
  %1188 = load i8, ptr %1187, align 1, !tbaa !11
  %1189 = load ptr, ptr %14, align 8, !tbaa !5
  %1190 = getelementptr inbounds i8, ptr %1189, i64 0
  %1191 = load i8, ptr %1190, align 1, !tbaa !11
  %1192 = zext i8 %1191 to i32
  %1193 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1184, i32 noundef 2147483646, i32 noundef %1185, i8 noundef zeroext %1188, i32 noundef %1192)
  store i32 %1193, ptr %21, align 4, !tbaa !9
  store i32 %1193, ptr %84, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #3
  store i32 2147483646, ptr %85, align 4, !tbaa !9
  %1194 = load i32, ptr %84, align 4, !tbaa !9
  %1195 = icmp slt i32 %1194, 0
  br i1 %1195, label %1196, label %1197

1196:                                             ; preds = %1183
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1198

1197:                                             ; preds = %1183
  store i32 0, ptr %32, align 4
  br label %1198

1198:                                             ; preds = %1197, %1196
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #3
  %1199 = load i32, ptr %32, align 4
  switch i32 %1199, label %2067 [
    i32 0, label %1200
  ]

1200:                                             ; preds = %1198
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201
  store i8 0, ptr %18, align 1, !tbaa !11
  br label %1203

1203:                                             ; preds = %1202, %1165
  br label %1204

1204:                                             ; preds = %1203, %1164
  %1205 = load i8, ptr %25, align 1, !tbaa !11
  %1206 = icmp ne i8 %1205, 0
  br i1 %1206, label %1207, label %1323

1207:                                             ; preds = %1204
  %1208 = load i8, ptr %26, align 1, !tbaa !11
  %1209 = icmp ne i8 %1208, 0
  br i1 %1209, label %1323, label %1210

1210:                                             ; preds = %1207
  %1211 = load i8, ptr %18, align 1, !tbaa !11
  %1212 = zext i8 %1211 to i32
  %1213 = icmp eq i32 %1212, 2
  br i1 %1213, label %1214, label %1249

1214:                                             ; preds = %1210
  br label %1215

1215:                                             ; preds = %1214
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #3
  %1216 = load ptr, ptr %12, align 8, !tbaa !5
  %1217 = load i32, ptr %21, align 4, !tbaa !9
  %1218 = load i8, ptr %18, align 1, !tbaa !11
  %1219 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1216, i32 noundef 2147483646, i32 noundef %1217, i8 noundef zeroext %1218)
  store i32 %1219, ptr %21, align 4, !tbaa !9
  store i32 %1219, ptr %86, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #3
  store i32 2147483646, ptr %87, align 4, !tbaa !9
  %1220 = load i32, ptr %86, align 4, !tbaa !9
  %1221 = icmp slt i32 %1220, 0
  br i1 %1221, label %1222, label %1223

1222:                                             ; preds = %1215
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1224

1223:                                             ; preds = %1215
  store i32 0, ptr %32, align 4
  br label %1224

1224:                                             ; preds = %1223, %1222
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #3
  %1225 = load i32, ptr %32, align 4
  switch i32 %1225, label %2067 [
    i32 0, label %1226
  ]

1226:                                             ; preds = %1224
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #3
  %1230 = load ptr, ptr %12, align 8, !tbaa !5
  %1231 = load i32, ptr %21, align 4, !tbaa !9
  %1232 = load ptr, ptr %13, align 8, !tbaa !5
  %1233 = getelementptr inbounds i8, ptr %1232, i64 0
  %1234 = load i8, ptr %1233, align 1, !tbaa !11
  %1235 = load ptr, ptr %14, align 8, !tbaa !5
  %1236 = getelementptr inbounds i8, ptr %1235, i64 0
  %1237 = load i8, ptr %1236, align 1, !tbaa !11
  %1238 = zext i8 %1237 to i32
  %1239 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1230, i32 noundef 2147483646, i32 noundef %1231, i8 noundef zeroext %1234, i32 noundef %1238)
  store i32 %1239, ptr %21, align 4, !tbaa !9
  store i32 %1239, ptr %88, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #3
  store i32 2147483646, ptr %89, align 4, !tbaa !9
  %1240 = load i32, ptr %88, align 4, !tbaa !9
  %1241 = icmp slt i32 %1240, 0
  br i1 %1241, label %1242, label %1243

1242:                                             ; preds = %1229
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1244

1243:                                             ; preds = %1229
  store i32 0, ptr %32, align 4
  br label %1244

1244:                                             ; preds = %1243, %1242
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #3
  %1245 = load i32, ptr %32, align 4
  switch i32 %1245, label %2067 [
    i32 0, label %1246
  ]

1246:                                             ; preds = %1244
  br label %1247

1247:                                             ; preds = %1246
  br label %1248

1248:                                             ; preds = %1247
  store i8 0, ptr %18, align 1, !tbaa !11
  br label %1249

1249:                                             ; preds = %1248, %1210
  br label %1250

1250:                                             ; preds = %1249
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #3
  %1251 = load ptr, ptr %12, align 8, !tbaa !5
  %1252 = load i32, ptr %21, align 4, !tbaa !9
  %1253 = load i8, ptr %18, align 1, !tbaa !11
  %1254 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1251, i32 noundef 2147483646, i32 noundef %1252, i8 noundef zeroext %1253)
  store i32 %1254, ptr %21, align 4, !tbaa !9
  store i32 %1254, ptr %90, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #3
  store i32 2147483646, ptr %91, align 4, !tbaa !9
  %1255 = load i32, ptr %90, align 4, !tbaa !9
  %1256 = icmp slt i32 %1255, 0
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1250
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1259

1258:                                             ; preds = %1250
  store i32 0, ptr %32, align 4
  br label %1259

1259:                                             ; preds = %1258, %1257
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #3
  %1260 = load i32, ptr %32, align 4
  switch i32 %1260, label %2067 [
    i32 0, label %1261
  ]

1261:                                             ; preds = %1259
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

1264:                                             ; preds = %1263
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #3
  %1265 = load ptr, ptr %12, align 8, !tbaa !5
  %1266 = load i32, ptr %21, align 4, !tbaa !9
  %1267 = load ptr, ptr %13, align 8, !tbaa !5
  %1268 = getelementptr inbounds i8, ptr %1267, i64 0
  %1269 = load i8, ptr %1268, align 1, !tbaa !11
  %1270 = load ptr, ptr %14, align 8, !tbaa !5
  %1271 = getelementptr inbounds i8, ptr %1270, i64 0
  %1272 = load i8, ptr %1271, align 1, !tbaa !11
  %1273 = zext i8 %1272 to i32
  %1274 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1265, i32 noundef 2147483646, i32 noundef %1266, i8 noundef zeroext %1269, i32 noundef %1273)
  store i32 %1274, ptr %21, align 4, !tbaa !9
  store i32 %1274, ptr %92, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #3
  store i32 2147483646, ptr %93, align 4, !tbaa !9
  %1275 = load i32, ptr %92, align 4, !tbaa !9
  %1276 = icmp slt i32 %1275, 0
  br i1 %1276, label %1277, label %1278

1277:                                             ; preds = %1264
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1279

1278:                                             ; preds = %1264
  store i32 0, ptr %32, align 4
  br label %1279

1279:                                             ; preds = %1278, %1277
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #3
  %1280 = load i32, ptr %32, align 4
  switch i32 %1280, label %2067 [
    i32 0, label %1281
  ]

1281:                                             ; preds = %1279
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282
  %1284 = load i8, ptr %18, align 1, !tbaa !11
  %1285 = zext i8 %1284 to i32
  %1286 = icmp eq i32 %1285, 4
  br i1 %1286, label %1287, label %1322

1287:                                             ; preds = %1283
  store i8 0, ptr %18, align 1, !tbaa !11
  br label %1288

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #3
  %1289 = load ptr, ptr %12, align 8, !tbaa !5
  %1290 = load i32, ptr %21, align 4, !tbaa !9
  %1291 = load i8, ptr %18, align 1, !tbaa !11
  %1292 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1289, i32 noundef 2147483646, i32 noundef %1290, i8 noundef zeroext %1291)
  store i32 %1292, ptr %21, align 4, !tbaa !9
  store i32 %1292, ptr %94, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #3
  store i32 2147483646, ptr %95, align 4, !tbaa !9
  %1293 = load i32, ptr %94, align 4, !tbaa !9
  %1294 = icmp slt i32 %1293, 0
  br i1 %1294, label %1295, label %1296

1295:                                             ; preds = %1288
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1297

1296:                                             ; preds = %1288
  store i32 0, ptr %32, align 4
  br label %1297

1297:                                             ; preds = %1296, %1295
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #3
  %1298 = load i32, ptr %32, align 4
  switch i32 %1298, label %2067 [
    i32 0, label %1299
  ]

1299:                                             ; preds = %1297
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #3
  %1303 = load ptr, ptr %12, align 8, !tbaa !5
  %1304 = load i32, ptr %21, align 4, !tbaa !9
  %1305 = load ptr, ptr %13, align 8, !tbaa !5
  %1306 = getelementptr inbounds i8, ptr %1305, i64 0
  %1307 = load i8, ptr %1306, align 1, !tbaa !11
  %1308 = load ptr, ptr %14, align 8, !tbaa !5
  %1309 = getelementptr inbounds i8, ptr %1308, i64 0
  %1310 = load i8, ptr %1309, align 1, !tbaa !11
  %1311 = zext i8 %1310 to i32
  %1312 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1303, i32 noundef 2147483646, i32 noundef %1304, i8 noundef zeroext %1307, i32 noundef %1311)
  store i32 %1312, ptr %21, align 4, !tbaa !9
  store i32 %1312, ptr %96, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #3
  store i32 2147483646, ptr %97, align 4, !tbaa !9
  %1313 = load i32, ptr %96, align 4, !tbaa !9
  %1314 = icmp slt i32 %1313, 0
  br i1 %1314, label %1315, label %1316

1315:                                             ; preds = %1302
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1317

1316:                                             ; preds = %1302
  store i32 0, ptr %32, align 4
  br label %1317

1317:                                             ; preds = %1316, %1315
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #3
  %1318 = load i32, ptr %32, align 4
  switch i32 %1318, label %2067 [
    i32 0, label %1319
  ]

1319:                                             ; preds = %1317
  br label %1320

1320:                                             ; preds = %1319
  br label %1321

1321:                                             ; preds = %1320
  br label %1322

1322:                                             ; preds = %1321, %1283
  br label %1323

1323:                                             ; preds = %1322, %1207, %1204
  store i8 0, ptr %23, align 1, !tbaa !11
  %1324 = load i32, ptr %19, align 4, !tbaa !9
  %1325 = add nsw i32 %1324, 1
  %1326 = load i32, ptr %11, align 4, !tbaa !9
  %1327 = icmp slt i32 %1325, %1326
  br i1 %1327, label %1328, label %1335

1328:                                             ; preds = %1323
  %1329 = load ptr, ptr %10, align 8, !tbaa !5
  %1330 = load i32, ptr %19, align 4, !tbaa !9
  %1331 = add nsw i32 %1330, 1
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds i8, ptr %1329, i64 %1332
  %1334 = load i8, ptr %1333, align 1, !tbaa !11
  store i8 %1334, ptr %23, align 1, !tbaa !11
  br label %1335

1335:                                             ; preds = %1328, %1323
  %1336 = load i8, ptr %22, align 1, !tbaa !11
  %1337 = sext i8 %1336 to i32
  %1338 = icmp sge i32 %1337, 32
  br i1 %1338, label %1339, label %1601

1339:                                             ; preds = %1335
  %1340 = load i8, ptr %22, align 1, !tbaa !11
  %1341 = sext i8 %1340 to i32
  %1342 = icmp sle i32 %1341, 126
  br i1 %1342, label %1343, label %1601

1343:                                             ; preds = %1339
  %1344 = load i8, ptr %25, align 1, !tbaa !11
  %1345 = icmp ne i8 %1344, 0
  br i1 %1345, label %1346, label %1424

1346:                                             ; preds = %1343
  %1347 = load i8, ptr %26, align 1, !tbaa !11
  %1348 = icmp ne i8 %1347, 0
  br i1 %1348, label %1424, label %1349

1349:                                             ; preds = %1346
  %1350 = load i32, ptr %19, align 4, !tbaa !9
  %1351 = add nsw i32 %1350, 4
  store i32 %1351, ptr %20, align 4, !tbaa !9
  br label %1352

1352:                                             ; preds = %1380, %1349
  %1353 = load i32, ptr %20, align 4, !tbaa !9
  %1354 = load i32, ptr %19, align 4, !tbaa !9
  %1355 = icmp sge i32 %1353, %1354
  br i1 %1355, label %1356, label %1360

1356:                                             ; preds = %1352
  %1357 = load i32, ptr %20, align 4, !tbaa !9
  %1358 = load i32, ptr %11, align 4, !tbaa !9
  %1359 = icmp slt i32 %1357, %1358
  br label %1360

1360:                                             ; preds = %1356, %1352
  %1361 = phi i1 [ false, %1352 ], [ %1359, %1356 ]
  br i1 %1361, label %1362, label %1383

1362:                                             ; preds = %1360
  %1363 = load ptr, ptr %10, align 8, !tbaa !5
  %1364 = load i32, ptr %20, align 4, !tbaa !9
  %1365 = sext i32 %1364 to i64
  %1366 = getelementptr inbounds i8, ptr %1363, i64 %1365
  %1367 = load i8, ptr %1366, align 1, !tbaa !11
  %1368 = sext i8 %1367 to i32
  %1369 = icmp slt i32 %1368, 65
  br i1 %1369, label %1378, label %1370

1370:                                             ; preds = %1362
  %1371 = load ptr, ptr %10, align 8, !tbaa !5
  %1372 = load i32, ptr %20, align 4, !tbaa !9
  %1373 = sext i32 %1372 to i64
  %1374 = getelementptr inbounds i8, ptr %1371, i64 %1373
  %1375 = load i8, ptr %1374, align 1, !tbaa !11
  %1376 = sext i8 %1375 to i32
  %1377 = icmp sgt i32 %1376, 90
  br i1 %1377, label %1378, label %1379

1378:                                             ; preds = %1370, %1362
  br label %1383

1379:                                             ; preds = %1370
  br label %1380

1380:                                             ; preds = %1379
  %1381 = load i32, ptr %20, align 4, !tbaa !9
  %1382 = add nsw i32 %1381, -1
  store i32 %1382, ptr %20, align 4, !tbaa !9
  br label %1352, !llvm.loop !22

1383:                                             ; preds = %1378, %1360
  %1384 = load i32, ptr %20, align 4, !tbaa !9
  %1385 = load i32, ptr %19, align 4, !tbaa !9
  %1386 = sub nsw i32 %1385, 1
  %1387 = icmp eq i32 %1384, %1386
  br i1 %1387, label %1388, label %1423

1388:                                             ; preds = %1383
  br label %1389

1389:                                             ; preds = %1388
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #3
  %1390 = load ptr, ptr %12, align 8, !tbaa !5
  %1391 = load i32, ptr %21, align 4, !tbaa !9
  %1392 = load i8, ptr %18, align 1, !tbaa !11
  %1393 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1390, i32 noundef 2147483646, i32 noundef %1391, i8 noundef zeroext %1392)
  store i32 %1393, ptr %21, align 4, !tbaa !9
  store i32 %1393, ptr %98, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #3
  store i32 2147483646, ptr %99, align 4, !tbaa !9
  %1394 = load i32, ptr %98, align 4, !tbaa !9
  %1395 = icmp slt i32 %1394, 0
  br i1 %1395, label %1396, label %1397

1396:                                             ; preds = %1389
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1398

1397:                                             ; preds = %1389
  store i32 0, ptr %32, align 4
  br label %1398

1398:                                             ; preds = %1397, %1396
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #3
  %1399 = load i32, ptr %32, align 4
  switch i32 %1399, label %2067 [
    i32 0, label %1400
  ]

1400:                                             ; preds = %1398
  br label %1401

1401:                                             ; preds = %1400
  br label %1402

1402:                                             ; preds = %1401
  br label %1403

1403:                                             ; preds = %1402
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #3
  %1404 = load ptr, ptr %12, align 8, !tbaa !5
  %1405 = load i32, ptr %21, align 4, !tbaa !9
  %1406 = load ptr, ptr %13, align 8, !tbaa !5
  %1407 = getelementptr inbounds i8, ptr %1406, i64 0
  %1408 = load i8, ptr %1407, align 1, !tbaa !11
  %1409 = load ptr, ptr %14, align 8, !tbaa !5
  %1410 = getelementptr inbounds i8, ptr %1409, i64 0
  %1411 = load i8, ptr %1410, align 1, !tbaa !11
  %1412 = zext i8 %1411 to i32
  %1413 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1404, i32 noundef 2147483646, i32 noundef %1405, i8 noundef zeroext %1408, i32 noundef %1412)
  store i32 %1413, ptr %21, align 4, !tbaa !9
  store i32 %1413, ptr %100, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #3
  store i32 2147483646, ptr %101, align 4, !tbaa !9
  %1414 = load i32, ptr %100, align 4, !tbaa !9
  %1415 = icmp slt i32 %1414, 0
  br i1 %1415, label %1416, label %1417

1416:                                             ; preds = %1403
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1418

1417:                                             ; preds = %1403
  store i32 0, ptr %32, align 4
  br label %1418

1418:                                             ; preds = %1417, %1416
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #3
  %1419 = load i32, ptr %32, align 4
  switch i32 %1419, label %2067 [
    i32 0, label %1420
  ]

1420:                                             ; preds = %1418
  br label %1421

1421:                                             ; preds = %1420
  br label %1422

1422:                                             ; preds = %1421
  store i8 0, ptr %18, align 1, !tbaa !11
  store i8 1, ptr %26, align 1, !tbaa !11
  br label %1423

1423:                                             ; preds = %1422, %1383
  br label %1424

1424:                                             ; preds = %1423, %1346, %1343
  %1425 = load i8, ptr %18, align 1, !tbaa !11
  %1426 = zext i8 %1425 to i32
  %1427 = icmp eq i32 %1426, 4
  br i1 %1427, label %1428, label %1519

1428:                                             ; preds = %1424
  %1429 = load i8, ptr %22, align 1, !tbaa !11
  %1430 = sext i8 %1429 to i32
  %1431 = icmp eq i32 %1430, 32
  br i1 %1431, label %1440, label %1432

1432:                                             ; preds = %1428
  %1433 = load i8, ptr %22, align 1, !tbaa !11
  %1434 = sext i8 %1433 to i32
  %1435 = icmp eq i32 %1434, 46
  br i1 %1435, label %1440, label %1436

1436:                                             ; preds = %1432
  %1437 = load i8, ptr %22, align 1, !tbaa !11
  %1438 = sext i8 %1437 to i32
  %1439 = icmp eq i32 %1438, 44
  br i1 %1439, label %1440, label %1519

1440:                                             ; preds = %1436, %1432, %1428
  call void @llvm.lifetime.start.p0(i64 1, ptr %102) #3
  %1441 = load i8, ptr %22, align 1, !tbaa !11
  %1442 = sext i8 %1441 to i32
  %1443 = icmp eq i32 %1442, 44
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1440
  br label %1458

1445:                                             ; preds = %1440
  %1446 = load i8, ptr %22, align 1, !tbaa !11
  %1447 = sext i8 %1446 to i32
  %1448 = icmp eq i32 %1447, 46
  br i1 %1448, label %1449, label %1450

1449:                                             ; preds = %1445
  br label %1456

1450:                                             ; preds = %1445
  %1451 = load i8, ptr %22, align 1, !tbaa !11
  %1452 = sext i8 %1451 to i32
  %1453 = icmp eq i32 %1452, 32
  %1454 = zext i1 %1453 to i64
  %1455 = select i1 %1453, i32 0, i32 255
  br label %1456

1456:                                             ; preds = %1450, %1449
  %1457 = phi i32 [ 224, %1449 ], [ %1455, %1450 ]
  br label %1458

1458:                                             ; preds = %1456, %1444
  %1459 = phi i32 [ 192, %1444 ], [ %1457, %1456 ]
  %1460 = trunc i32 %1459 to i8
  store i8 %1460, ptr %102, align 1, !tbaa !11
  %1461 = load i8, ptr %102, align 1, !tbaa !11
  %1462 = zext i8 %1461 to i32
  %1463 = icmp ne i32 %1462, 255
  br i1 %1463, label %1464, label %1515

1464:                                             ; preds = %1458
  call void @llvm.lifetime.start.p0(i64 1, ptr %103) #3
  %1465 = load i8, ptr %22, align 1, !tbaa !11
  %1466 = sext i8 %1465 to i32
  %1467 = icmp eq i32 %1466, 44
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1464
  br label %1482

1469:                                             ; preds = %1464
  %1470 = load i8, ptr %22, align 1, !tbaa !11
  %1471 = sext i8 %1470 to i32
  %1472 = icmp eq i32 %1471, 46
  br i1 %1472, label %1473, label %1474

1473:                                             ; preds = %1469
  br label %1480

1474:                                             ; preds = %1469
  %1475 = load i8, ptr %22, align 1, !tbaa !11
  %1476 = sext i8 %1475 to i32
  %1477 = icmp eq i32 %1476, 32
  %1478 = zext i1 %1477 to i64
  %1479 = select i1 %1477, i32 1, i32 4
  br label %1480

1480:                                             ; preds = %1474, %1473
  %1481 = phi i32 [ 4, %1473 ], [ %1479, %1474 ]
  br label %1482

1482:                                             ; preds = %1480, %1468
  %1483 = phi i32 [ 3, %1468 ], [ %1481, %1480 ]
  %1484 = trunc i32 %1483 to i8
  store i8 %1484, ptr %103, align 1, !tbaa !11
  br label %1485

1485:                                             ; preds = %1482
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #3
  %1486 = load ptr, ptr %12, align 8, !tbaa !5
  %1487 = load i32, ptr %21, align 4, !tbaa !9
  %1488 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1486, i32 noundef 2147483646, i32 noundef %1487, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %1488, ptr %21, align 4, !tbaa !9
  store i32 %1488, ptr %104, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #3
  store i32 2147483646, ptr %105, align 4, !tbaa !9
  %1489 = load i32, ptr %104, align 4, !tbaa !9
  %1490 = icmp slt i32 %1489, 0
  br i1 %1490, label %1491, label %1492

1491:                                             ; preds = %1485
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1493

1492:                                             ; preds = %1485
  store i32 0, ptr %32, align 4
  br label %1493

1493:                                             ; preds = %1492, %1491
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #3
  %1494 = load i32, ptr %32, align 4
  switch i32 %1494, label %1514 [
    i32 0, label %1495
  ]

1495:                                             ; preds = %1493
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #3
  %1499 = load ptr, ptr %12, align 8, !tbaa !5
  %1500 = load i32, ptr %21, align 4, !tbaa !9
  %1501 = load i8, ptr %102, align 1, !tbaa !11
  %1502 = load i8, ptr %103, align 1, !tbaa !11
  %1503 = zext i8 %1502 to i32
  %1504 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1499, i32 noundef 2147483646, i32 noundef %1500, i8 noundef zeroext %1501, i32 noundef %1503)
  store i32 %1504, ptr %21, align 4, !tbaa !9
  store i32 %1504, ptr %106, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #3
  store i32 2147483646, ptr %107, align 4, !tbaa !9
  %1505 = load i32, ptr %106, align 4, !tbaa !9
  %1506 = icmp slt i32 %1505, 0
  br i1 %1506, label %1507, label %1508

1507:                                             ; preds = %1498
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1509

1508:                                             ; preds = %1498
  store i32 0, ptr %32, align 4
  br label %1509

1509:                                             ; preds = %1508, %1507
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #3
  %1510 = load i32, ptr %32, align 4
  switch i32 %1510, label %1514 [
    i32 0, label %1511
  ]

1511:                                             ; preds = %1509
  br label %1512

1512:                                             ; preds = %1511
  br label %1513

1513:                                             ; preds = %1512
  store i32 6, ptr %32, align 4
  br label %1514

1514:                                             ; preds = %1513, %1509, %1493
  call void @llvm.lifetime.end.p0(i64 1, ptr %103) #3
  br label %1516

1515:                                             ; preds = %1458
  store i32 0, ptr %32, align 4
  br label %1516

1516:                                             ; preds = %1515, %1514
  call void @llvm.lifetime.end.p0(i64 1, ptr %102) #3
  %1517 = load i32, ptr %32, align 4
  switch i32 %1517, label %2067 [
    i32 0, label %1518
    i32 6, label %2051
  ]

1518:                                             ; preds = %1516
  br label %1519

1519:                                             ; preds = %1518, %1436, %1424
  %1520 = load i8, ptr %22, align 1, !tbaa !11
  %1521 = sext i8 %1520 to i32
  %1522 = sub nsw i32 %1521, 32
  %1523 = trunc i32 %1522 to i8
  store i8 %1523, ptr %22, align 1, !tbaa !11
  %1524 = load i8, ptr %26, align 1, !tbaa !11
  %1525 = icmp ne i8 %1524, 0
  br i1 %1525, label %1526, label %1534

1526:                                             ; preds = %1519
  %1527 = load i8, ptr %25, align 1, !tbaa !11
  %1528 = icmp ne i8 %1527, 0
  br i1 %1528, label %1529, label %1534

1529:                                             ; preds = %1526
  %1530 = load i8, ptr %22, align 1, !tbaa !11
  %1531 = sext i8 %1530 to i32
  %1532 = add nsw i32 %1531, 32
  %1533 = trunc i32 %1532 to i8
  store i8 %1533, ptr %22, align 1, !tbaa !11
  br label %1534

1534:                                             ; preds = %1529, %1526, %1519
  %1535 = load i8, ptr %22, align 1, !tbaa !11
  %1536 = sext i8 %1535 to i32
  %1537 = icmp eq i32 %1536, 0
  br i1 %1537, label %1538, label %1577

1538:                                             ; preds = %1534
  %1539 = load i8, ptr %18, align 1, !tbaa !11
  %1540 = zext i8 %1539 to i32
  %1541 = icmp eq i32 %1540, 2
  br i1 %1541, label %1542, label %1559

1542:                                             ; preds = %1538
  br label %1543

1543:                                             ; preds = %1542
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #3
  %1544 = load ptr, ptr %12, align 8, !tbaa !5
  %1545 = load i32, ptr %21, align 4, !tbaa !9
  %1546 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcodes, i64 0, i64 17), align 1, !tbaa !11
  %1547 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcode_lens, i64 0, i64 17), align 1, !tbaa !11
  %1548 = zext i8 %1547 to i32
  %1549 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1544, i32 noundef 2147483646, i32 noundef %1545, i8 noundef zeroext %1546, i32 noundef %1548)
  store i32 %1549, ptr %21, align 4, !tbaa !9
  store i32 %1549, ptr %108, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #3
  store i32 2147483646, ptr %109, align 4, !tbaa !9
  %1550 = load i32, ptr %108, align 4, !tbaa !9
  %1551 = icmp slt i32 %1550, 0
  br i1 %1551, label %1552, label %1553

1552:                                             ; preds = %1543
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1554

1553:                                             ; preds = %1543
  store i32 0, ptr %32, align 4
  br label %1554

1554:                                             ; preds = %1553, %1552
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #3
  %1555 = load i32, ptr %32, align 4
  switch i32 %1555, label %2067 [
    i32 0, label %1556
  ]

1556:                                             ; preds = %1554
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

1558:                                             ; preds = %1557
  br label %1576

1559:                                             ; preds = %1538
  br label %1560

1560:                                             ; preds = %1559
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #3
  %1561 = load ptr, ptr %12, align 8, !tbaa !5
  %1562 = load i32, ptr %21, align 4, !tbaa !9
  %1563 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcodes, i64 0, i64 1), align 1, !tbaa !11
  %1564 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcode_lens, i64 0, i64 1), align 1, !tbaa !11
  %1565 = zext i8 %1564 to i32
  %1566 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1561, i32 noundef 2147483646, i32 noundef %1562, i8 noundef zeroext %1563, i32 noundef %1565)
  store i32 %1566, ptr %21, align 4, !tbaa !9
  store i32 %1566, ptr %110, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #3
  store i32 2147483646, ptr %111, align 4, !tbaa !9
  %1567 = load i32, ptr %110, align 4, !tbaa !9
  %1568 = icmp slt i32 %1567, 0
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1560
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1571

1570:                                             ; preds = %1560
  store i32 0, ptr %32, align 4
  br label %1571

1571:                                             ; preds = %1570, %1569
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #3
  %1572 = load i32, ptr %32, align 4
  switch i32 %1572, label %2067 [
    i32 0, label %1573
  ]

1573:                                             ; preds = %1571
  br label %1574

1574:                                             ; preds = %1573
  br label %1575

1575:                                             ; preds = %1574
  br label %1576

1576:                                             ; preds = %1575, %1558
  br label %1600

1577:                                             ; preds = %1534
  %1578 = load i8, ptr %22, align 1, !tbaa !11
  %1579 = add i8 %1578, -1
  store i8 %1579, ptr %22, align 1, !tbaa !11
  br label %1580

1580:                                             ; preds = %1577
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #3
  %1581 = load ptr, ptr %12, align 8, !tbaa !5
  %1582 = load i32, ptr %21, align 4, !tbaa !9
  %1583 = load i8, ptr %22, align 1, !tbaa !11
  %1584 = sext i8 %1583 to i32
  %1585 = sext i32 %1584 to i64
  %1586 = getelementptr inbounds [94 x i8], ptr @usx_code_94, i64 0, i64 %1585
  %1587 = load i8, ptr %1586, align 1, !tbaa !11
  %1588 = load ptr, ptr %13, align 8, !tbaa !5
  %1589 = load ptr, ptr %14, align 8, !tbaa !5
  %1590 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1581, i32 noundef 2147483646, i32 noundef %1582, i8 noundef zeroext %1587, ptr noundef %18, ptr noundef %1588, ptr noundef %1589)
  store i32 %1590, ptr %21, align 4, !tbaa !9
  store i32 %1590, ptr %112, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #3
  store i32 2147483646, ptr %113, align 4, !tbaa !9
  %1591 = load i32, ptr %112, align 4, !tbaa !9
  %1592 = icmp slt i32 %1591, 0
  br i1 %1592, label %1593, label %1594

1593:                                             ; preds = %1580
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1595

1594:                                             ; preds = %1580
  store i32 0, ptr %32, align 4
  br label %1595

1595:                                             ; preds = %1594, %1593
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #3
  %1596 = load i32, ptr %32, align 4
  switch i32 %1596, label %2067 [
    i32 0, label %1597
  ]

1597:                                             ; preds = %1595
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599, %1576
  br label %2050

1601:                                             ; preds = %1339, %1335
  %1602 = load i8, ptr %22, align 1, !tbaa !11
  %1603 = sext i8 %1602 to i32
  %1604 = icmp eq i32 %1603, 13
  br i1 %1604, label %1605, label %1627

1605:                                             ; preds = %1601
  %1606 = load i8, ptr %23, align 1, !tbaa !11
  %1607 = sext i8 %1606 to i32
  %1608 = icmp eq i32 %1607, 10
  br i1 %1608, label %1609, label %1627

1609:                                             ; preds = %1605
  br label %1610

1610:                                             ; preds = %1609
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #3
  %1611 = load ptr, ptr %12, align 8, !tbaa !5
  %1612 = load i32, ptr %21, align 4, !tbaa !9
  %1613 = load ptr, ptr %13, align 8, !tbaa !5
  %1614 = load ptr, ptr %14, align 8, !tbaa !5
  %1615 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1611, i32 noundef 2147483646, i32 noundef %1612, i8 noundef zeroext 40, ptr noundef %18, ptr noundef %1613, ptr noundef %1614)
  store i32 %1615, ptr %21, align 4, !tbaa !9
  store i32 %1615, ptr %114, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #3
  store i32 2147483646, ptr %115, align 4, !tbaa !9
  %1616 = load i32, ptr %114, align 4, !tbaa !9
  %1617 = icmp slt i32 %1616, 0
  br i1 %1617, label %1618, label %1619

1618:                                             ; preds = %1610
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1620

1619:                                             ; preds = %1610
  store i32 0, ptr %32, align 4
  br label %1620

1620:                                             ; preds = %1619, %1618
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #3
  %1621 = load i32, ptr %32, align 4
  switch i32 %1621, label %2067 [
    i32 0, label %1622
  ]

1622:                                             ; preds = %1620
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  %1625 = load i32, ptr %19, align 4, !tbaa !9
  %1626 = add nsw i32 %1625, 1
  store i32 %1626, ptr %19, align 4, !tbaa !9
  br label %2049

1627:                                             ; preds = %1605, %1601
  %1628 = load i8, ptr %22, align 1, !tbaa !11
  %1629 = sext i8 %1628 to i32
  %1630 = icmp eq i32 %1629, 10
  br i1 %1630, label %1631, label %1679

1631:                                             ; preds = %1627
  %1632 = load i8, ptr %18, align 1, !tbaa !11
  %1633 = zext i8 %1632 to i32
  %1634 = icmp eq i32 %1633, 4
  br i1 %1634, label %1635, label %1662

1635:                                             ; preds = %1631
  br label %1636

1636:                                             ; preds = %1635
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #3
  %1637 = load ptr, ptr %12, align 8, !tbaa !5
  %1638 = load i32, ptr %21, align 4, !tbaa !9
  %1639 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1637, i32 noundef 2147483646, i32 noundef %1638, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %1639, ptr %21, align 4, !tbaa !9
  store i32 %1639, ptr %116, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #3
  store i32 2147483646, ptr %117, align 4, !tbaa !9
  %1640 = load i32, ptr %116, align 4, !tbaa !9
  %1641 = icmp slt i32 %1640, 0
  br i1 %1641, label %1642, label %1643

1642:                                             ; preds = %1636
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1644

1643:                                             ; preds = %1636
  store i32 0, ptr %32, align 4
  br label %1644

1644:                                             ; preds = %1643, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #3
  %1645 = load i32, ptr %32, align 4
  switch i32 %1645, label %2067 [
    i32 0, label %1646
  ]

1646:                                             ; preds = %1644
  br label %1647

1647:                                             ; preds = %1646
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #3
  %1650 = load ptr, ptr %12, align 8, !tbaa !5
  %1651 = load i32, ptr %21, align 4, !tbaa !9
  %1652 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1650, i32 noundef 2147483646, i32 noundef %1651, i8 noundef zeroext -16, i32 noundef 4)
  store i32 %1652, ptr %21, align 4, !tbaa !9
  store i32 %1652, ptr %118, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #3
  store i32 2147483646, ptr %119, align 4, !tbaa !9
  %1653 = load i32, ptr %118, align 4, !tbaa !9
  %1654 = icmp slt i32 %1653, 0
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1649
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1657

1656:                                             ; preds = %1649
  store i32 0, ptr %32, align 4
  br label %1657

1657:                                             ; preds = %1656, %1655
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #3
  %1658 = load i32, ptr %32, align 4
  switch i32 %1658, label %2067 [
    i32 0, label %1659
  ]

1659:                                             ; preds = %1657
  br label %1660

1660:                                             ; preds = %1659
  br label %1661

1661:                                             ; preds = %1660
  br label %1678

1662:                                             ; preds = %1631
  br label %1663

1663:                                             ; preds = %1662
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #3
  %1664 = load ptr, ptr %12, align 8, !tbaa !5
  %1665 = load i32, ptr %21, align 4, !tbaa !9
  %1666 = load ptr, ptr %13, align 8, !tbaa !5
  %1667 = load ptr, ptr %14, align 8, !tbaa !5
  %1668 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1664, i32 noundef 2147483646, i32 noundef %1665, i8 noundef zeroext 39, ptr noundef %18, ptr noundef %1666, ptr noundef %1667)
  store i32 %1668, ptr %21, align 4, !tbaa !9
  store i32 %1668, ptr %120, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %121) #3
  store i32 2147483646, ptr %121, align 4, !tbaa !9
  %1669 = load i32, ptr %120, align 4, !tbaa !9
  %1670 = icmp slt i32 %1669, 0
  br i1 %1670, label %1671, label %1672

1671:                                             ; preds = %1663
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1673

1672:                                             ; preds = %1663
  store i32 0, ptr %32, align 4
  br label %1673

1673:                                             ; preds = %1672, %1671
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #3
  %1674 = load i32, ptr %32, align 4
  switch i32 %1674, label %2067 [
    i32 0, label %1675
  ]

1675:                                             ; preds = %1673
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677, %1661
  br label %2048

1679:                                             ; preds = %1627
  %1680 = load i8, ptr %22, align 1, !tbaa !11
  %1681 = sext i8 %1680 to i32
  %1682 = icmp eq i32 %1681, 13
  br i1 %1682, label %1683, label %1699

1683:                                             ; preds = %1679
  br label %1684

1684:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #3
  %1685 = load ptr, ptr %12, align 8, !tbaa !5
  %1686 = load i32, ptr %21, align 4, !tbaa !9
  %1687 = load ptr, ptr %13, align 8, !tbaa !5
  %1688 = load ptr, ptr %14, align 8, !tbaa !5
  %1689 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1685, i32 noundef 2147483646, i32 noundef %1686, i8 noundef zeroext 54, ptr noundef %18, ptr noundef %1687, ptr noundef %1688)
  store i32 %1689, ptr %21, align 4, !tbaa !9
  store i32 %1689, ptr %122, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #3
  store i32 2147483646, ptr %123, align 4, !tbaa !9
  %1690 = load i32, ptr %122, align 4, !tbaa !9
  %1691 = icmp slt i32 %1690, 0
  br i1 %1691, label %1692, label %1693

1692:                                             ; preds = %1684
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1694

1693:                                             ; preds = %1684
  store i32 0, ptr %32, align 4
  br label %1694

1694:                                             ; preds = %1693, %1692
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #3
  %1695 = load i32, ptr %32, align 4
  switch i32 %1695, label %2067 [
    i32 0, label %1696
  ]

1696:                                             ; preds = %1694
  br label %1697

1697:                                             ; preds = %1696
  br label %1698

1698:                                             ; preds = %1697
  br label %2047

1699:                                             ; preds = %1679
  %1700 = load i8, ptr %22, align 1, !tbaa !11
  %1701 = sext i8 %1700 to i32
  %1702 = icmp eq i32 %1701, 9
  br i1 %1702, label %1703, label %1719

1703:                                             ; preds = %1699
  br label %1704

1704:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #3
  %1705 = load ptr, ptr %12, align 8, !tbaa !5
  %1706 = load i32, ptr %21, align 4, !tbaa !9
  %1707 = load ptr, ptr %13, align 8, !tbaa !5
  %1708 = load ptr, ptr %14, align 8, !tbaa !5
  %1709 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %1705, i32 noundef 2147483646, i32 noundef %1706, i8 noundef zeroext 46, ptr noundef %18, ptr noundef %1707, ptr noundef %1708)
  store i32 %1709, ptr %21, align 4, !tbaa !9
  store i32 %1709, ptr %124, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #3
  store i32 2147483646, ptr %125, align 4, !tbaa !9
  %1710 = load i32, ptr %124, align 4, !tbaa !9
  %1711 = icmp slt i32 %1710, 0
  br i1 %1711, label %1712, label %1713

1712:                                             ; preds = %1704
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1714

1713:                                             ; preds = %1704
  store i32 0, ptr %32, align 4
  br label %1714

1714:                                             ; preds = %1713, %1712
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #3
  %1715 = load i32, ptr %32, align 4
  switch i32 %1715, label %2067 [
    i32 0, label %1716
  ]

1716:                                             ; preds = %1714
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717
  br label %2046

1719:                                             ; preds = %1699
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #3
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #3
  %1720 = load ptr, ptr %10, align 8, !tbaa !5
  %1721 = load i32, ptr %11, align 4, !tbaa !9
  %1722 = load i32, ptr %19, align 4, !tbaa !9
  %1723 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef %1720, i32 noundef %1721, i32 noundef %1722, ptr noundef %126)
  store i32 %1723, ptr %127, align 4, !tbaa !9
  %1724 = load i32, ptr %127, align 4, !tbaa !9
  %1725 = icmp ne i32 %1724, 0
  br i1 %1725, label %1726, label %1888

1726:                                             ; preds = %1719
  %1727 = load i32, ptr %126, align 4, !tbaa !9
  %1728 = load i32, ptr %19, align 4, !tbaa !9
  %1729 = add nsw i32 %1728, %1727
  store i32 %1729, ptr %19, align 4, !tbaa !9
  %1730 = load i8, ptr %18, align 1, !tbaa !11
  %1731 = zext i8 %1730 to i32
  %1732 = icmp ne i32 %1731, 4
  br i1 %1732, label %1733, label %1869

1733:                                             ; preds = %1726
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #3
  %1734 = load ptr, ptr %10, align 8, !tbaa !5
  %1735 = load i32, ptr %11, align 4, !tbaa !9
  %1736 = load i32, ptr %19, align 4, !tbaa !9
  %1737 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef %1734, i32 noundef %1735, i32 noundef %1736, ptr noundef %126)
  store i32 %1737, ptr %128, align 4, !tbaa !9
  %1738 = load i32, ptr %128, align 4, !tbaa !9
  %1739 = icmp ne i32 %1738, 0
  br i1 %1739, label %1740, label %1830

1740:                                             ; preds = %1733
  %1741 = load i8, ptr %18, align 1, !tbaa !11
  %1742 = zext i8 %1741 to i32
  %1743 = icmp ne i32 %1742, 0
  br i1 %1743, label %1744, label %1779

1744:                                             ; preds = %1740
  br label %1745

1745:                                             ; preds = %1744
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #3
  %1746 = load ptr, ptr %12, align 8, !tbaa !5
  %1747 = load i32, ptr %21, align 4, !tbaa !9
  %1748 = load i8, ptr %18, align 1, !tbaa !11
  %1749 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1746, i32 noundef 2147483646, i32 noundef %1747, i8 noundef zeroext %1748)
  store i32 %1749, ptr %21, align 4, !tbaa !9
  store i32 %1749, ptr %129, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %130) #3
  store i32 2147483646, ptr %130, align 4, !tbaa !9
  %1750 = load i32, ptr %129, align 4, !tbaa !9
  %1751 = icmp slt i32 %1750, 0
  br i1 %1751, label %1752, label %1753

1752:                                             ; preds = %1745
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1754

1753:                                             ; preds = %1745
  store i32 0, ptr %32, align 4
  br label %1754

1754:                                             ; preds = %1753, %1752
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #3
  %1755 = load i32, ptr %32, align 4
  switch i32 %1755, label %1866 [
    i32 0, label %1756
  ]

1756:                                             ; preds = %1754
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

1759:                                             ; preds = %1758
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #3
  %1760 = load ptr, ptr %12, align 8, !tbaa !5
  %1761 = load i32, ptr %21, align 4, !tbaa !9
  %1762 = load ptr, ptr %13, align 8, !tbaa !5
  %1763 = getelementptr inbounds i8, ptr %1762, i64 0
  %1764 = load i8, ptr %1763, align 1, !tbaa !11
  %1765 = load ptr, ptr %14, align 8, !tbaa !5
  %1766 = getelementptr inbounds i8, ptr %1765, i64 0
  %1767 = load i8, ptr %1766, align 1, !tbaa !11
  %1768 = zext i8 %1767 to i32
  %1769 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1760, i32 noundef 2147483646, i32 noundef %1761, i8 noundef zeroext %1764, i32 noundef %1768)
  store i32 %1769, ptr %21, align 4, !tbaa !9
  store i32 %1769, ptr %131, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #3
  store i32 2147483646, ptr %132, align 4, !tbaa !9
  %1770 = load i32, ptr %131, align 4, !tbaa !9
  %1771 = icmp slt i32 %1770, 0
  br i1 %1771, label %1772, label %1773

1772:                                             ; preds = %1759
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1774

1773:                                             ; preds = %1759
  store i32 0, ptr %32, align 4
  br label %1774

1774:                                             ; preds = %1773, %1772
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #3
  %1775 = load i32, ptr %32, align 4
  switch i32 %1775, label %1866 [
    i32 0, label %1776
  ]

1776:                                             ; preds = %1774
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778, %1740
  br label %1780

1780:                                             ; preds = %1779
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #3
  %1781 = load ptr, ptr %12, align 8, !tbaa !5
  %1782 = load i32, ptr %21, align 4, !tbaa !9
  %1783 = load i8, ptr %18, align 1, !tbaa !11
  %1784 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1781, i32 noundef 2147483646, i32 noundef %1782, i8 noundef zeroext %1783)
  store i32 %1784, ptr %21, align 4, !tbaa !9
  store i32 %1784, ptr %133, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #3
  store i32 2147483646, ptr %134, align 4, !tbaa !9
  %1785 = load i32, ptr %133, align 4, !tbaa !9
  %1786 = icmp slt i32 %1785, 0
  br i1 %1786, label %1787, label %1788

1787:                                             ; preds = %1780
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1789

1788:                                             ; preds = %1780
  store i32 0, ptr %32, align 4
  br label %1789

1789:                                             ; preds = %1788, %1787
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #3
  %1790 = load i32, ptr %32, align 4
  switch i32 %1790, label %1866 [
    i32 0, label %1791
  ]

1791:                                             ; preds = %1789
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792
  br label %1794

1794:                                             ; preds = %1793
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #3
  %1795 = load ptr, ptr %12, align 8, !tbaa !5
  %1796 = load i32, ptr %21, align 4, !tbaa !9
  %1797 = load ptr, ptr %13, align 8, !tbaa !5
  %1798 = getelementptr inbounds i8, ptr %1797, i64 0
  %1799 = load i8, ptr %1798, align 1, !tbaa !11
  %1800 = load ptr, ptr %14, align 8, !tbaa !5
  %1801 = getelementptr inbounds i8, ptr %1800, i64 0
  %1802 = load i8, ptr %1801, align 1, !tbaa !11
  %1803 = zext i8 %1802 to i32
  %1804 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1795, i32 noundef 2147483646, i32 noundef %1796, i8 noundef zeroext %1799, i32 noundef %1803)
  store i32 %1804, ptr %21, align 4, !tbaa !9
  store i32 %1804, ptr %135, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #3
  store i32 2147483646, ptr %136, align 4, !tbaa !9
  %1805 = load i32, ptr %135, align 4, !tbaa !9
  %1806 = icmp slt i32 %1805, 0
  br i1 %1806, label %1807, label %1808

1807:                                             ; preds = %1794
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1809

1808:                                             ; preds = %1794
  store i32 0, ptr %32, align 4
  br label %1809

1809:                                             ; preds = %1808, %1807
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #3
  %1810 = load i32, ptr %32, align 4
  switch i32 %1810, label %1866 [
    i32 0, label %1811
  ]

1811:                                             ; preds = %1809
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #3
  %1815 = load ptr, ptr %12, align 8, !tbaa !5
  %1816 = load i32, ptr %21, align 4, !tbaa !9
  %1817 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcodes, i64 0, i64 1), align 1, !tbaa !11
  %1818 = load i8, ptr getelementptr inbounds ([28 x i8], ptr @usx_vcode_lens, i64 0, i64 1), align 1, !tbaa !11
  %1819 = zext i8 %1818 to i32
  %1820 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1815, i32 noundef 2147483646, i32 noundef %1816, i8 noundef zeroext %1817, i32 noundef %1819)
  store i32 %1820, ptr %21, align 4, !tbaa !9
  store i32 %1820, ptr %137, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #3
  store i32 2147483646, ptr %138, align 4, !tbaa !9
  %1821 = load i32, ptr %137, align 4, !tbaa !9
  %1822 = icmp slt i32 %1821, 0
  br i1 %1822, label %1823, label %1824

1823:                                             ; preds = %1814
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1825

1824:                                             ; preds = %1814
  store i32 0, ptr %32, align 4
  br label %1825

1825:                                             ; preds = %1824, %1823
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #3
  %1826 = load i32, ptr %32, align 4
  switch i32 %1826, label %1866 [
    i32 0, label %1827
  ]

1827:                                             ; preds = %1825
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828
  store i8 4, ptr %18, align 1, !tbaa !11
  br label %1865

1830:                                             ; preds = %1733
  br label %1831

1831:                                             ; preds = %1830
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #3
  %1832 = load ptr, ptr %12, align 8, !tbaa !5
  %1833 = load i32, ptr %21, align 4, !tbaa !9
  %1834 = load i8, ptr %18, align 1, !tbaa !11
  %1835 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %1832, i32 noundef 2147483646, i32 noundef %1833, i8 noundef zeroext %1834)
  store i32 %1835, ptr %21, align 4, !tbaa !9
  store i32 %1835, ptr %139, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #3
  store i32 2147483646, ptr %140, align 4, !tbaa !9
  %1836 = load i32, ptr %139, align 4, !tbaa !9
  %1837 = icmp slt i32 %1836, 0
  br i1 %1837, label %1838, label %1839

1838:                                             ; preds = %1831
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1840

1839:                                             ; preds = %1831
  store i32 0, ptr %32, align 4
  br label %1840

1840:                                             ; preds = %1839, %1838
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #3
  %1841 = load i32, ptr %32, align 4
  switch i32 %1841, label %1866 [
    i32 0, label %1842
  ]

1842:                                             ; preds = %1840
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843
  br label %1845

1845:                                             ; preds = %1844
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #3
  %1846 = load ptr, ptr %12, align 8, !tbaa !5
  %1847 = load i32, ptr %21, align 4, !tbaa !9
  %1848 = load ptr, ptr %13, align 8, !tbaa !5
  %1849 = getelementptr inbounds i8, ptr %1848, i64 4
  %1850 = load i8, ptr %1849, align 1, !tbaa !11
  %1851 = load ptr, ptr %14, align 8, !tbaa !5
  %1852 = getelementptr inbounds i8, ptr %1851, i64 4
  %1853 = load i8, ptr %1852, align 1, !tbaa !11
  %1854 = zext i8 %1853 to i32
  %1855 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1846, i32 noundef 2147483646, i32 noundef %1847, i8 noundef zeroext %1850, i32 noundef %1854)
  store i32 %1855, ptr %21, align 4, !tbaa !9
  store i32 %1855, ptr %141, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #3
  store i32 2147483646, ptr %142, align 4, !tbaa !9
  %1856 = load i32, ptr %141, align 4, !tbaa !9
  %1857 = icmp slt i32 %1856, 0
  br i1 %1857, label %1858, label %1859

1858:                                             ; preds = %1845
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1860

1859:                                             ; preds = %1845
  store i32 0, ptr %32, align 4
  br label %1860

1860:                                             ; preds = %1859, %1858
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #3
  %1861 = load i32, ptr %32, align 4
  switch i32 %1861, label %1866 [
    i32 0, label %1862
  ]

1862:                                             ; preds = %1860
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864, %1829
  store i32 0, ptr %32, align 4
  br label %1866

1866:                                             ; preds = %1865, %1860, %1840, %1825, %1809, %1789, %1774, %1754
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #3
  %1867 = load i32, ptr %32, align 4
  switch i32 %1867, label %2043 [
    i32 0, label %1868
  ]

1868:                                             ; preds = %1866
  br label %1869

1869:                                             ; preds = %1868, %1726
  br label %1870

1870:                                             ; preds = %1869
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #3
  %1871 = load ptr, ptr %12, align 8, !tbaa !5
  %1872 = load i32, ptr %21, align 4, !tbaa !9
  %1873 = load i32, ptr %127, align 4, !tbaa !9
  %1874 = load i32, ptr %24, align 4, !tbaa !9
  %1875 = call noundef i32 @_Z13encodeUnicodePciiii(ptr noundef %1871, i32 noundef 2147483646, i32 noundef %1872, i32 noundef %1873, i32 noundef %1874)
  store i32 %1875, ptr %21, align 4, !tbaa !9
  store i32 %1875, ptr %143, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #3
  store i32 2147483646, ptr %144, align 4, !tbaa !9
  %1876 = load i32, ptr %143, align 4, !tbaa !9
  %1877 = icmp slt i32 %1876, 0
  br i1 %1877, label %1878, label %1879

1878:                                             ; preds = %1870
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1880

1879:                                             ; preds = %1870
  store i32 0, ptr %32, align 4
  br label %1880

1880:                                             ; preds = %1879, %1878
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #3
  %1881 = load i32, ptr %32, align 4
  switch i32 %1881, label %2043 [
    i32 0, label %1882
  ]

1882:                                             ; preds = %1880
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  %1885 = load i32, ptr %127, align 4, !tbaa !9
  store i32 %1885, ptr %24, align 4, !tbaa !9
  %1886 = load i32, ptr %19, align 4, !tbaa !9
  %1887 = add nsw i32 %1886, -1
  store i32 %1887, ptr %19, align 4, !tbaa !9
  br label %2042

1888:                                             ; preds = %1719
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #3
  store i32 1, ptr %145, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #3
  %1889 = load i32, ptr %19, align 4, !tbaa !9
  %1890 = add nsw i32 %1889, 1
  store i32 %1890, ptr %146, align 4, !tbaa !9
  br label %1891

1891:                                             ; preds = %1964, %1888
  %1892 = load i32, ptr %146, align 4, !tbaa !9
  %1893 = load i32, ptr %11, align 4, !tbaa !9
  %1894 = icmp slt i32 %1892, %1893
  br i1 %1894, label %1896, label %1895

1895:                                             ; preds = %1891
  store i32 124, ptr %32, align 4
  br label %1967

1896:                                             ; preds = %1891
  call void @llvm.lifetime.start.p0(i64 1, ptr %147) #3
  %1897 = load ptr, ptr %10, align 8, !tbaa !5
  %1898 = load i32, ptr %146, align 4, !tbaa !9
  %1899 = sext i32 %1898 to i64
  %1900 = getelementptr inbounds i8, ptr %1897, i64 %1899
  %1901 = load i8, ptr %1900, align 1, !tbaa !11
  store i8 %1901, ptr %147, align 1, !tbaa !11
  %1902 = load ptr, ptr %10, align 8, !tbaa !5
  %1903 = load i32, ptr %11, align 4, !tbaa !9
  %1904 = load i32, ptr %146, align 4, !tbaa !9
  %1905 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef %1902, i32 noundef %1903, i32 noundef %1904, ptr noundef %126)
  %1906 = icmp ne i32 %1905, 0
  br i1 %1906, label %1907, label %1908

1907:                                             ; preds = %1896
  store i32 124, ptr %32, align 4
  br label %1961

1908:                                             ; preds = %1896
  %1909 = load i32, ptr %146, align 4, !tbaa !9
  %1910 = load i32, ptr %11, align 4, !tbaa !9
  %1911 = sub nsw i32 %1910, 4
  %1912 = icmp slt i32 %1909, %1911
  br i1 %1912, label %1913, label %1958

1913:                                             ; preds = %1908
  %1914 = load i8, ptr %147, align 1, !tbaa !11
  %1915 = sext i8 %1914 to i32
  %1916 = load ptr, ptr %10, align 8, !tbaa !5
  %1917 = load i32, ptr %146, align 4, !tbaa !9
  %1918 = sub nsw i32 %1917, 1
  %1919 = sext i32 %1918 to i64
  %1920 = getelementptr inbounds i8, ptr %1916, i64 %1919
  %1921 = load i8, ptr %1920, align 1, !tbaa !11
  %1922 = sext i8 %1921 to i32
  %1923 = icmp eq i32 %1915, %1922
  br i1 %1923, label %1924, label %1958

1924:                                             ; preds = %1913
  %1925 = load i8, ptr %147, align 1, !tbaa !11
  %1926 = sext i8 %1925 to i32
  %1927 = load ptr, ptr %10, align 8, !tbaa !5
  %1928 = load i32, ptr %146, align 4, !tbaa !9
  %1929 = add nsw i32 %1928, 1
  %1930 = sext i32 %1929 to i64
  %1931 = getelementptr inbounds i8, ptr %1927, i64 %1930
  %1932 = load i8, ptr %1931, align 1, !tbaa !11
  %1933 = sext i8 %1932 to i32
  %1934 = icmp eq i32 %1926, %1933
  br i1 %1934, label %1935, label %1958

1935:                                             ; preds = %1924
  %1936 = load i8, ptr %147, align 1, !tbaa !11
  %1937 = sext i8 %1936 to i32
  %1938 = load ptr, ptr %10, align 8, !tbaa !5
  %1939 = load i32, ptr %146, align 4, !tbaa !9
  %1940 = add nsw i32 %1939, 2
  %1941 = sext i32 %1940 to i64
  %1942 = getelementptr inbounds i8, ptr %1938, i64 %1941
  %1943 = load i8, ptr %1942, align 1, !tbaa !11
  %1944 = sext i8 %1943 to i32
  %1945 = icmp eq i32 %1937, %1944
  br i1 %1945, label %1946, label %1958

1946:                                             ; preds = %1935
  %1947 = load i8, ptr %147, align 1, !tbaa !11
  %1948 = sext i8 %1947 to i32
  %1949 = load ptr, ptr %10, align 8, !tbaa !5
  %1950 = load i32, ptr %146, align 4, !tbaa !9
  %1951 = add nsw i32 %1950, 3
  %1952 = sext i32 %1951 to i64
  %1953 = getelementptr inbounds i8, ptr %1949, i64 %1952
  %1954 = load i8, ptr %1953, align 1, !tbaa !11
  %1955 = sext i8 %1954 to i32
  %1956 = icmp eq i32 %1948, %1955
  br i1 %1956, label %1957, label %1958

1957:                                             ; preds = %1946
  store i32 124, ptr %32, align 4
  br label %1961

1958:                                             ; preds = %1946, %1935, %1924, %1913, %1908
  %1959 = load i32, ptr %145, align 4, !tbaa !9
  %1960 = add nsw i32 %1959, 1
  store i32 %1960, ptr %145, align 4, !tbaa !9
  store i32 0, ptr %32, align 4
  br label %1961

1961:                                             ; preds = %1958, %1957, %1907
  call void @llvm.lifetime.end.p0(i64 1, ptr %147) #3
  %1962 = load i32, ptr %32, align 4
  switch i32 %1962, label %1967 [
    i32 0, label %1963
  ]

1963:                                             ; preds = %1961
  br label %1964

1964:                                             ; preds = %1963
  %1965 = load i32, ptr %146, align 4, !tbaa !9
  %1966 = add nsw i32 %1965, 1
  store i32 %1966, ptr %146, align 4, !tbaa !9
  br label %1891, !llvm.loop !23

1967:                                             ; preds = %1961, %1895
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #3
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #3
  %1970 = load ptr, ptr %12, align 8, !tbaa !5
  %1971 = load i32, ptr %21, align 4, !tbaa !9
  %1972 = load i8, ptr %18, align 1, !tbaa !11
  %1973 = load ptr, ptr %13, align 8, !tbaa !5
  %1974 = load ptr, ptr %14, align 8, !tbaa !5
  %1975 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %1970, i32 noundef 2147483646, i32 noundef %1971, i8 noundef zeroext %1972, ptr noundef %1973, ptr noundef %1974)
  store i32 %1975, ptr %21, align 4, !tbaa !9
  store i32 %1975, ptr %148, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #3
  store i32 2147483646, ptr %149, align 4, !tbaa !9
  %1976 = load i32, ptr %148, align 4, !tbaa !9
  %1977 = icmp slt i32 %1976, 0
  br i1 %1977, label %1978, label %1979

1978:                                             ; preds = %1969
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1980

1979:                                             ; preds = %1969
  store i32 0, ptr %32, align 4
  br label %1980

1980:                                             ; preds = %1979, %1978
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #3
  %1981 = load i32, ptr %32, align 4
  switch i32 %1981, label %2039 [
    i32 0, label %1982
  ]

1982:                                             ; preds = %1980
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #3
  %1986 = load ptr, ptr %12, align 8, !tbaa !5
  %1987 = load i32, ptr %21, align 4, !tbaa !9
  %1988 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %1986, i32 noundef 2147483646, i32 noundef %1987, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %1988, ptr %21, align 4, !tbaa !9
  store i32 %1988, ptr %150, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #3
  store i32 2147483646, ptr %151, align 4, !tbaa !9
  %1989 = load i32, ptr %150, align 4, !tbaa !9
  %1990 = icmp slt i32 %1989, 0
  br i1 %1990, label %1991, label %1992

1991:                                             ; preds = %1985
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %1993

1992:                                             ; preds = %1985
  store i32 0, ptr %32, align 4
  br label %1993

1993:                                             ; preds = %1992, %1991
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #3
  %1994 = load i32, ptr %32, align 4
  switch i32 %1994, label %2039 [
    i32 0, label %1995
  ]

1995:                                             ; preds = %1993
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #3
  %1999 = load ptr, ptr %12, align 8, !tbaa !5
  %2000 = load i32, ptr %21, align 4, !tbaa !9
  %2001 = load i32, ptr %145, align 4, !tbaa !9
  %2002 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %1999, i32 noundef 2147483646, i32 noundef %2000, i32 noundef %2001)
  store i32 %2002, ptr %21, align 4, !tbaa !9
  store i32 %2002, ptr %152, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #3
  store i32 2147483646, ptr %153, align 4, !tbaa !9
  %2003 = load i32, ptr %152, align 4, !tbaa !9
  %2004 = icmp slt i32 %2003, 0
  br i1 %2004, label %2005, label %2006

2005:                                             ; preds = %1998
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %2007

2006:                                             ; preds = %1998
  store i32 0, ptr %32, align 4
  br label %2007

2007:                                             ; preds = %2006, %2005
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #3
  %2008 = load i32, ptr %32, align 4
  switch i32 %2008, label %2039 [
    i32 0, label %2009
  ]

2009:                                             ; preds = %2007
  br label %2010

2010:                                             ; preds = %2009
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2032, %2011
  br label %2013

2013:                                             ; preds = %2012
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #3
  %2014 = load ptr, ptr %12, align 8, !tbaa !5
  %2015 = load i32, ptr %21, align 4, !tbaa !9
  %2016 = load ptr, ptr %10, align 8, !tbaa !5
  %2017 = load i32, ptr %19, align 4, !tbaa !9
  %2018 = add nsw i32 %2017, 1
  store i32 %2018, ptr %19, align 4, !tbaa !9
  %2019 = sext i32 %2017 to i64
  %2020 = getelementptr inbounds i8, ptr %2016, i64 %2019
  %2021 = load i8, ptr %2020, align 1, !tbaa !11
  %2022 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2014, i32 noundef 2147483646, i32 noundef %2015, i8 noundef zeroext %2021, i32 noundef 8)
  store i32 %2022, ptr %21, align 4, !tbaa !9
  store i32 %2022, ptr %154, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #3
  store i32 2147483646, ptr %155, align 4, !tbaa !9
  %2023 = load i32, ptr %154, align 4, !tbaa !9
  %2024 = icmp slt i32 %2023, 0
  br i1 %2024, label %2025, label %2026

2025:                                             ; preds = %2013
  store i32 2147483647, ptr %9, align 4
  store i32 1, ptr %32, align 4
  br label %2027

2026:                                             ; preds = %2013
  store i32 0, ptr %32, align 4
  br label %2027

2027:                                             ; preds = %2026, %2025
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #3
  %2028 = load i32, ptr %32, align 4
  switch i32 %2028, label %2039 [
    i32 0, label %2029
  ]

2029:                                             ; preds = %2027
  br label %2030

2030:                                             ; preds = %2029
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  %2033 = load i32, ptr %145, align 4, !tbaa !9
  %2034 = add nsw i32 %2033, -1
  store i32 %2034, ptr %145, align 4, !tbaa !9
  %2035 = icmp ne i32 %2034, 0
  br i1 %2035, label %2012, label %2036, !llvm.loop !24

2036:                                             ; preds = %2032
  %2037 = load i32, ptr %19, align 4, !tbaa !9
  %2038 = add nsw i32 %2037, -1
  store i32 %2038, ptr %19, align 4, !tbaa !9
  store i32 0, ptr %32, align 4
  br label %2039

2039:                                             ; preds = %2036, %2027, %2007, %1993, %1980
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #3
  %2040 = load i32, ptr %32, align 4
  switch i32 %2040, label %2043 [
    i32 0, label %2041
  ]

2041:                                             ; preds = %2039
  br label %2042

2042:                                             ; preds = %2041, %1884
  store i32 0, ptr %32, align 4
  br label %2043

2043:                                             ; preds = %2042, %2039, %1880, %1866
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #3
  %2044 = load i32, ptr %32, align 4
  switch i32 %2044, label %2067 [
    i32 0, label %2045
  ]

2045:                                             ; preds = %2043
  br label %2046

2046:                                             ; preds = %2045, %1718
  br label %2047

2047:                                             ; preds = %2046, %1698
  br label %2048

2048:                                             ; preds = %2047, %1678
  br label %2049

2049:                                             ; preds = %2048, %1624
  br label %2050

2050:                                             ; preds = %2049, %1600
  br label %2051

2051:                                             ; preds = %2050, %1516, %1148, %1056, %718, %558, %360, %221, %199
  %2052 = load i32, ptr %19, align 4, !tbaa !9
  %2053 = add nsw i32 %2052, 1
  store i32 %2053, ptr %19, align 4, !tbaa !9
  br label %170, !llvm.loop !25

2054:                                             ; preds = %170
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #3
  %2055 = load i32, ptr %21, align 4, !tbaa !9
  %2056 = add nsw i32 %2055, 7
  %2057 = sdiv i32 %2056, 8
  store i32 %2057, ptr %156, align 4, !tbaa !9
  %2058 = load ptr, ptr %12, align 8, !tbaa !5
  %2059 = load i32, ptr %156, align 4, !tbaa !9
  %2060 = load i32, ptr %21, align 4, !tbaa !9
  %2061 = load i8, ptr %18, align 1, !tbaa !11
  %2062 = load i8, ptr %26, align 1, !tbaa !11
  %2063 = load ptr, ptr %13, align 8, !tbaa !5
  %2064 = load ptr, ptr %14, align 8, !tbaa !5
  %2065 = call noundef i32 @_Z17append_final_bitsPciihhPKhS1_(ptr noundef %2058, i32 noundef %2059, i32 noundef %2060, i8 noundef zeroext %2061, i8 noundef zeroext %2062, ptr noundef %2063, ptr noundef %2064)
  %2066 = load i32, ptr %156, align 4, !tbaa !9
  store i32 %2066, ptr %9, align 4
  store i32 1, ptr %32, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #3
  br label %2067

2067:                                             ; preds = %2054, %2043, %1714, %1694, %1673, %1657, %1644, %1620, %1595, %1571, %1554, %1516, %1418, %1398, %1317, %1297, %1279, %1259, %1244, %1224, %1198, %1178, %1148, %1056, %718, %558, %360, %228, %206, %165
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %26) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #3
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #3
  call void @llvm.lifetime.end.p0(i64 1, ptr %18) #3
  %2068 = load i32, ptr %9, align 4
  ret i32 %2068

2069:                                             ; preds = %841, %606, %464
  unreachable
}

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #2

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

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

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


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

@usx_code_94 = external dso_local local_unnamed_addr global [94 x i8], align 16
@usx_vcodes = external dso_local local_unnamed_addr global [28 x i8], align 16
@usx_vcode_lens = external dso_local local_unnamed_addr global [28 x i8], align 16
@usx_freq_codes = external dso_local local_unnamed_addr global [6 x i8], align 1
@_ZL11count_codes = external hidden local_unnamed_addr constant [5 x i8], align 1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_Z10init_coderv() local_unnamed_addr #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: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11append_bitsPciihi(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z18append_switch_codePciih(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z11encodeCountPciii(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z13encodeUnicodePciiii(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z8readUTF8PKciiPi(ptr noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z14matchOccurancePKciiPciPiPhPKhS5_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z9matchLinePKciiPciPiP10us_lnk_lstPhPKhS7_(ptr noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_Z17append_final_bitsPciihhPKhS1_(ptr noundef, i32 noundef, i32 noundef, i8 noundef zeroext, i8 noundef zeroext, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
define dso_local noundef range(i32 -268435455, -2147483648) i32 @_Z23unishox2_compress_linesPKciPcPKhS3_PS0_S4_P10us_lnk_lst(ptr noundef %0, i32 noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef readonly %5, ptr noundef readonly %6, ptr noundef %7) local_unnamed_addr #0 {
  %9 = alloca i8, align 1
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  tail call void @_Z10init_coderv()
  store i8 0, ptr %9, align 1, !tbaa !5
  %12 = tail call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef 0, i8 noundef zeroext -1, i32 noundef 1)
  store i32 %12, ptr %10, align 4, !tbaa !8
  %13 = icmp sgt i32 %12, -1
  br i1 %13, label %.preheader965, label %.thread

.preheader965:                                    ; preds = %8
  %14 = icmp sgt i32 %1, 0
  br i1 %14, label %.lr.ph1026, label %._crit_edge1027

.lr.ph1026:                                       ; preds = %.preheader965
  %15 = getelementptr inbounds i8, ptr %4, i64 3
  %16 = add nsw i32 %1, -4
  %.not794 = icmp eq ptr %7, null
  %17 = icmp ugt i32 %1, 4
  %18 = getelementptr inbounds i8, ptr %4, i64 2
  %19 = add nsw i32 %1, -36
  %20 = add nsw i32 %1, -5
  %.not807 = icmp eq ptr %6, null
  %.not813 = icmp eq ptr %5, null
  %21 = getelementptr inbounds i8, ptr %3, i64 4
  %22 = getelementptr inbounds i8, ptr %4, i64 4
  %23 = zext nneg i32 %1 to i64
  %24 = sext i32 %16 to i64
  %25 = getelementptr inbounds i8, ptr %6, i64 8
  %26 = getelementptr inbounds i8, ptr %6, i64 16
  %27 = getelementptr inbounds i8, ptr %6, i64 24
  %28 = getelementptr inbounds i8, ptr %6, i64 32
  %29 = getelementptr inbounds i8, ptr %5, i64 8
  %30 = getelementptr inbounds i8, ptr %5, i64 16
  %31 = getelementptr inbounds i8, ptr %5, i64 24
  %32 = getelementptr inbounds i8, ptr %5, i64 32
  %33 = getelementptr inbounds i8, ptr %5, i64 40
  br label %34

34:                                               ; preds = %.lr.ph1026, %.loopexit960
  %.06381025 = phi i32 [ 0, %.lr.ph1026 ], [ %785, %.loopexit960 ]
  %.06651024 = phi i32 [ 0, %.lr.ph1026 ], [ %.3668, %.loopexit960 ]
  %.06701023 = phi i8 [ 0, %.lr.ph1026 ], [ %.3673, %.loopexit960 ]
  %35 = load i8, ptr %15, align 1, !tbaa !5
  %.not = icmp ne i8 %35, 0
  %36 = icmp slt i32 %.06381025, %16
  %or.cond826 = select i1 %.not, i1 %36, i1 false
  br i1 %or.cond826, label %37, label %56

37:                                               ; preds = %34
  br i1 %.not794, label %47, label %38

38:                                               ; preds = %37
  %39 = call noundef i32 @_Z9matchLinePKciiPciPiP10us_lnk_lstPhPKhS7_(ptr noundef %0, i32 noundef %1, i32 noundef %.06381025, ptr noundef %2, i32 noundef 2147483646, ptr noundef nonnull %10, ptr noundef nonnull %7, ptr noundef nonnull %9, ptr noundef %3, ptr noundef nonnull %4)
  %40 = icmp sgt i32 %39, 0
  br i1 %40, label %.loopexit960, label %41

41:                                               ; preds = %38
  %42 = icmp ne i32 %39, 0
  %43 = load i32, ptr %10, align 4
  %44 = icmp slt i32 %43, 0
  %or.cond = select i1 %42, i1 %44, i1 false
  br i1 %or.cond, label %.thread, label %45

45:                                               ; preds = %41
  %46 = sub nsw i32 0, %39
  br label %56

47:                                               ; preds = %37
  %48 = call noundef i32 @_Z14matchOccurancePKciiPciPiPhPKhS5_(ptr noundef %0, i32 noundef %1, i32 noundef %.06381025, ptr noundef %2, i32 noundef 2147483646, ptr noundef nonnull %10, ptr noundef nonnull %9, ptr noundef %3, ptr noundef nonnull %4)
  %49 = icmp sgt i32 %48, 0
  br i1 %49, label %.loopexit960, label %50

50:                                               ; preds = %47
  %51 = icmp ne i32 %48, 0
  %52 = load i32, ptr %10, align 4
  %53 = icmp slt i32 %52, 0
  %or.cond60 = select i1 %51, i1 %53, i1 false
  br i1 %or.cond60, label %.thread, label %54

54:                                               ; preds = %50
  %55 = sub nsw i32 0, %48
  br label %56

56:                                               ; preds = %45, %54, %34
  %.1639 = phi i32 [ %46, %45 ], [ %55, %54 ], [ %.06381025, %34 ]
  %.13651.fr = freeze i32 %.1639
  %57 = sext i32 %.13651.fr to i64
  %58 = getelementptr inbounds i8, ptr %0, i64 %57
  %59 = load i8, ptr %58, align 1, !tbaa !5
  %60 = icmp ne i32 %.13651.fr, 0
  %or.cond62 = and i1 %17, %60
  %61 = icmp slt i32 %.13651.fr, %16
  %or.cond828 = select i1 %or.cond62, i1 %61, i1 false
  br i1 %or.cond828, label %62, label %97

62:                                               ; preds = %56
  %63 = load i8, ptr %18, align 1, !tbaa !5
  %.not795 = icmp eq i8 %63, 0
  br i1 %.not795, label %97, label %64

64:                                               ; preds = %62
  %65 = getelementptr i8, ptr %58, i64 -1
  %66 = load i8, ptr %65, align 1, !tbaa !5
  %67 = icmp eq i8 %59, %66
  br i1 %67, label %68, label %97

68:                                               ; preds = %64
  %69 = getelementptr i8, ptr %58, i64 1
  %70 = load i8, ptr %69, align 1, !tbaa !5
  %71 = icmp eq i8 %59, %70
  br i1 %71, label %72, label %97

72:                                               ; preds = %68
  %73 = getelementptr i8, ptr %58, i64 2
  %74 = load i8, ptr %73, align 1, !tbaa !5
  %75 = icmp eq i8 %59, %74
  br i1 %75, label %76, label %97

76:                                               ; preds = %72
  %77 = getelementptr i8, ptr %58, i64 3
  %78 = load i8, ptr %77, align 1, !tbaa !5
  %79 = icmp eq i8 %59, %78
  br i1 %79, label %80, label %97

80:                                               ; preds = %76
  %81 = add nsw i32 %.13651.fr, 4
  %82 = icmp slt i32 %81, %1
  br i1 %82, label %.lr.ph.preheader, label %.critedge

.lr.ph.preheader:                                 ; preds = %80
  %83 = sext i32 %81 to i64
  br label %.lr.ph

.lr.ph:                                           ; preds = %.lr.ph.preheader, %87
  %indvars.iv = phi i64 [ %83, %.lr.ph.preheader ], [ %indvars.iv.next, %87 ]
  %84 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv
  %85 = load i8, ptr %84, align 1, !tbaa !5
  %86 = icmp eq i8 %85, %59
  br i1 %86, label %87, label %.critedge.loopexit.split.loop.exit1104

87:                                               ; preds = %.lr.ph
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %23
  br i1 %exitcond.not, label %.critedge, label %.lr.ph, !llvm.loop !10

.critedge.loopexit.split.loop.exit1104:           ; preds = %.lr.ph
  %88 = trunc nsw i64 %indvars.iv to i32
  br label %.critedge

.critedge:                                        ; preds = %87, %.critedge.loopexit.split.loop.exit1104, %80
  %.0744.lcssa = phi i32 [ %81, %80 ], [ %88, %.critedge.loopexit.split.loop.exit1104 ], [ %1, %87 ]
  %89 = load i32, ptr %10, align 4, !tbaa !8
  %90 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %89, i8 noundef zeroext 90, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %90, ptr %10, align 4, !tbaa !8
  %91 = icmp sgt i32 %90, -1
  br i1 %91, label %92, label %.thread

92:                                               ; preds = %.critedge
  %reass.sub = sub i32 %.0744.lcssa, %.13651.fr
  %93 = add i32 %reass.sub, -4
  %94 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %2, i32 noundef 2147483646, i32 noundef %90, i32 noundef %93)
  store i32 %94, ptr %10, align 4, !tbaa !8
  %95 = icmp sgt i32 %94, -1
  %96 = add nsw i32 %.0744.lcssa, -1
  br i1 %95, label %.loopexit960, label %.thread

97:                                               ; preds = %64, %68, %72, %76, %62, %56
  %.not796 = icmp sgt i32 %.13651.fr, %19
  br i1 %.not796, label %.thread870, label %98

98:                                               ; preds = %97
  %99 = load i8, ptr %18, align 1, !tbaa !5
  %.not797 = icmp eq i8 %99, 0
  br i1 %.not797, label %.thread870, label %100

100:                                              ; preds = %98
  %101 = getelementptr i8, ptr %58, i64 8
  %102 = load i8, ptr %101, align 1, !tbaa !5
  %103 = icmp eq i8 %102, 45
  br i1 %103, label %104, label %.thread870

104:                                              ; preds = %100
  %105 = getelementptr i8, ptr %58, i64 13
  %106 = load i8, ptr %105, align 1, !tbaa !5
  %107 = icmp eq i8 %106, 45
  br i1 %107, label %108, label %.thread870

108:                                              ; preds = %104
  %109 = getelementptr i8, ptr %58, i64 18
  %110 = load i8, ptr %109, align 1, !tbaa !5
  %111 = icmp eq i8 %110, 45
  br i1 %111, label %112, label %.thread870

112:                                              ; preds = %108
  %113 = getelementptr i8, ptr %58, i64 23
  %114 = load i8, ptr %113, align 1, !tbaa !5
  %115 = icmp eq i8 %114, 45
  br i1 %115, label %.preheader964, label %.thread870

.preheader964:                                    ; preds = %112
  %116 = add i32 %.13651.fr, 36
  br label %117

117:                                              ; preds = %.preheader964, %125
  %indvars.iv1043 = phi i64 [ %57, %.preheader964 ], [ %indvars.iv.next1044, %125 ]
  %.0750985 = phi i8 [ 0, %.preheader964 ], [ %.3753.ph, %125 ]
  %118 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1043
  %119 = load i8, ptr %118, align 1, !tbaa !5
  %120 = icmp eq i8 %119, 45
  %121 = trunc nsw i64 %indvars.iv1043 to i32
  br i1 %120, label %122, label %._crit_edge1090

122:                                              ; preds = %117
  switch i32 %121, label %._crit_edge1090 [
    i32 23, label %125
    i32 18, label %125
    i32 13, label %125
    i32 8, label %125
  ]

._crit_edge1090:                                  ; preds = %117, %122
  %123 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %119)
  switch i8 %123, label %124 [
    i8 3, label %.thread854
    i8 0, label %125
  ]

124:                                              ; preds = %._crit_edge1090
  %.not799 = icmp eq i8 %.0750985, 0
  %.not800 = icmp eq i8 %.0750985, %123
  %or.cond829 = or i1 %.not799, %.not800
  br i1 %or.cond829, label %125, label %.thread854

125:                                              ; preds = %._crit_edge1090, %124, %122, %122, %122, %122
  %.3753.ph = phi i8 [ %.0750985, %122 ], [ %.0750985, %122 ], [ %.0750985, %122 ], [ %.0750985, %122 ], [ %.0750985, %._crit_edge1090 ], [ %123, %124 ]
  %indvars.iv.next1044 = add nsw i64 %indvars.iv1043, 1
  %lftr.wideiv = trunc i64 %indvars.iv.next1044 to i32
  %exitcond1045.not = icmp eq i32 %116, %lftr.wideiv
  br i1 %exitcond1045.not, label %.thread854.thread, label %117, !llvm.loop !12

.thread854:                                       ; preds = %124, %._crit_edge1090
  %126 = icmp eq i32 %116, %121
  br i1 %126, label %.thread854.thread, label %.thread870

.thread854.thread:                                ; preds = %125, %.thread854
  %.0750.lcssa1094 = phi i8 [ %.0750985, %.thread854 ], [ %.3753.ph, %125 ]
  %127 = load i32, ptr %10, align 4, !tbaa !8
  %128 = load i8, ptr %9, align 1, !tbaa !5
  %129 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %127, i8 noundef zeroext %128, ptr noundef %3, ptr noundef %4)
  store i32 %129, ptr %10, align 4, !tbaa !8
  %130 = icmp sgt i32 %129, -1
  br i1 %130, label %131, label %.thread

131:                                              ; preds = %.thread854.thread
  %132 = icmp eq i8 %.0750.lcssa1094, 1
  %133 = select i1 %132, i8 -64, i8 -16
  %134 = select i1 %132, i32 3, i32 5
  %135 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %129, i8 noundef zeroext %133, i32 noundef %134)
  store i32 %135, ptr %10, align 4, !tbaa !8
  %136 = icmp sgt i32 %135, -1
  br i1 %136, label %.preheader962.preheader, label %.thread

.preheader962.preheader:                          ; preds = %131
  %137 = sext i32 %116 to i64
  br label %.preheader962

.preheader962:                                    ; preds = %.preheader962.preheader, %.critedge831
  %138 = phi i32 [ %135, %.preheader962.preheader ], [ %145, %.critedge831 ]
  %indvars.iv1046 = phi i64 [ %57, %.preheader962.preheader ], [ %indvars.iv.next1047, %.critedge831 ]
  %139 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1046
  %140 = load i8, ptr %139, align 1, !tbaa !5
  %.not801 = icmp eq i8 %140, 45
  br i1 %.not801, label %.critedge831, label %141

141:                                              ; preds = %.preheader962
  %142 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %140)
  %143 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %138, i8 noundef zeroext %142, i32 noundef 4)
  store i32 %143, ptr %10, align 4, !tbaa !8
  %144 = icmp sgt i32 %143, -1
  br i1 %144, label %.critedge831, label %.thread

.critedge831:                                     ; preds = %141, %.preheader962
  %145 = phi i32 [ %143, %141 ], [ %138, %.preheader962 ]
  %indvars.iv.next1047 = add nsw i64 %indvars.iv1046, 1
  %146 = icmp slt i64 %indvars.iv.next1047, %137
  br i1 %146, label %.preheader962, label %._crit_edge, !llvm.loop !13

._crit_edge:                                      ; preds = %.critedge831
  %147 = add nsw i32 %.13651.fr, 35
  br label %.loopexit960

.thread870:                                       ; preds = %.thread854, %100, %104, %108, %112, %98, %97
  %148 = icmp slt i32 %.13651.fr, %20
  br i1 %148, label %149, label %.thread886

149:                                              ; preds = %.thread870
  %150 = load i8, ptr %18, align 1, !tbaa !5
  %.not802 = icmp eq i8 %150, 0
  br i1 %.not802, label %.thread886, label %.preheader961.preheader

.preheader961.preheader:                          ; preds = %149
  %invariant.gep = getelementptr i8, ptr %0, i64 %57
  %invariant.op = sub nsw i64 %23, %57
  br label %.preheader961

.preheader961:                                    ; preds = %.preheader961.preheader, %154
  %indvars.iv1049 = phi i64 [ 0, %.preheader961.preheader ], [ %indvars.iv.next1050, %154 ]
  %.0760 = phi i32 [ 0, %.preheader961.preheader ], [ %155, %154 ]
  %.0757 = phi i8 [ 0, %.preheader961.preheader ], [ %.1758, %154 ]
  %gep = getelementptr i8, ptr %invariant.gep, i64 %indvars.iv1049
  %151 = load i8, ptr %gep, align 1, !tbaa !5
  %152 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %151)
  switch i8 %152, label %153 [
    i8 3, label %.thread874.split.loop.exit1106
    i8 0, label %154
  ]

153:                                              ; preds = %.preheader961
  %.not804 = icmp eq i8 %.0757, 0
  %.not805 = icmp eq i8 %.0757, %152
  %or.cond832 = or i1 %.not804, %.not805
  br i1 %or.cond832, label %154, label %.thread874.split.loop.exit

154:                                              ; preds = %.preheader961, %153
  %.1758 = phi i8 [ %.0757, %.preheader961 ], [ %152, %153 ]
  %indvars.iv.next1050 = add nuw nsw i64 %indvars.iv1049, 1
  %155 = add nuw nsw i32 %.0760, 1
  %156 = icmp slt i64 %indvars.iv.next1050, %invariant.op
  br i1 %156, label %.preheader961, label %.thread874, !llvm.loop !14

.thread874.split.loop.exit:                       ; preds = %153
  %157 = trunc nuw nsw i64 %indvars.iv1049 to i32
  br label %.thread874

.thread874.split.loop.exit1106:                   ; preds = %.preheader961
  %158 = trunc nuw nsw i64 %indvars.iv1049 to i32
  br label %.thread874

.thread874:                                       ; preds = %154, %.thread874.split.loop.exit1106, %.thread874.split.loop.exit
  %.2759881 = phi i8 [ %.0757, %.thread874.split.loop.exit ], [ %.0757, %.thread874.split.loop.exit1106 ], [ %.1758, %154 ]
  %.1761880 = phi i32 [ %157, %.thread874.split.loop.exit ], [ %158, %.thread874.split.loop.exit1106 ], [ %155, %154 ]
  %159 = icmp sgt i32 %.1761880, 10
  %160 = icmp eq i8 %.2759881, 0
  %or.cond71 = select i1 %159, i1 %160, i1 false
  %161 = sext i8 %.2759881 to i32
  %162 = select i1 %or.cond71, i32 1, i32 %161
  %163 = icmp eq i32 %162, 1
  %164 = add nsw i32 %162, -1
  %or.cond74 = icmp ult i32 %164, 2
  %165 = icmp sgt i32 %.1761880, 3
  %or.cond76 = and i1 %165, %or.cond74
  br i1 %or.cond76, label %166, label %.thread886

166:                                              ; preds = %.thread874
  %167 = load i32, ptr %10, align 4, !tbaa !8
  %168 = load i8, ptr %9, align 1, !tbaa !5
  %169 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %167, i8 noundef zeroext %168, ptr noundef %3, ptr noundef %4)
  store i32 %169, ptr %10, align 4, !tbaa !8
  %170 = icmp sgt i32 %169, -1
  br i1 %170, label %171, label %.thread

171:                                              ; preds = %166
  %172 = select i1 %163, i8 -128, i8 -32
  %173 = select i1 %163, i32 2, i32 4
  %174 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %169, i8 noundef zeroext %172, i32 noundef %173)
  store i32 %174, ptr %10, align 4, !tbaa !8
  %175 = icmp sgt i32 %174, -1
  br i1 %175, label %176, label %.thread

176:                                              ; preds = %171
  %177 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %2, i32 noundef 2147483646, i32 noundef %174, i32 noundef %.1761880)
  store i32 %177, ptr %10, align 4, !tbaa !8
  %178 = icmp sgt i32 %177, -1
  br i1 %178, label %.preheader958, label %.thread

.preheader958:                                    ; preds = %176, %185
  %179 = phi i32 [ %183, %185 ], [ %177, %176 ]
  %indvars.iv1051 = phi i64 [ %indvars.iv.next1052, %185 ], [ %57, %176 ]
  %.2762 = phi i32 [ %186, %185 ], [ %.1761880, %176 ]
  %180 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1051
  %181 = load i8, ptr %180, align 1, !tbaa !5
  %182 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %181)
  %183 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %179, i8 noundef zeroext %182, i32 noundef 4)
  store i32 %183, ptr %10, align 4, !tbaa !8
  %184 = icmp sgt i32 %183, -1
  br i1 %184, label %185, label %.thread

185:                                              ; preds = %.preheader958
  %indvars.iv.next1052 = add nsw i64 %indvars.iv1051, 1
  %186 = add nsw i32 %.2762, -1
  %.not806 = icmp eq i32 %186, 0
  br i1 %.not806, label %.loopexit960.loopexit, label %.preheader958, !llvm.loop !15

.thread886:                                       ; preds = %.thread874, %149, %.thread870
  br i1 %.not807, label %.thread906, label %.preheader957.preheader

.preheader957.preheader:                          ; preds = %.thread886
  %smax = call i32 @llvm.smax.i32(i32 %.13651.fr, i32 %1)
  %187 = sub i32 %smax, %.13651.fr
  %188 = load ptr, ptr %6, align 8, !tbaa !16
  %.not808 = icmp eq ptr %188, null
  br i1 %.not808, label %.thread900, label %189

189:                                              ; preds = %.preheader957.preheader
  %190 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %188) #6
  %191 = trunc i64 %190 to i32
  %192 = icmp sgt i32 %191, 0
  br i1 %192, label %.lr.ph990.preheader, label %.critedge78

.lr.ph990.preheader:                              ; preds = %189
  %193 = and i64 %190, 2147483647
  br label %.lr.ph990

.lr.ph990:                                        ; preds = %.lr.ph990.preheader, %219
  %indvars.iv1054 = phi i64 [ 0, %.lr.ph990.preheader ], [ %indvars.iv.next1055, %219 ]
  %194 = add nsw i64 %indvars.iv1054, %57
  %195 = icmp slt i64 %194, %23
  br i1 %195, label %196, label %.critedge78

196:                                              ; preds = %.lr.ph990
  %197 = load ptr, ptr %6, align 8, !tbaa !16
  %198 = getelementptr inbounds i8, ptr %197, i64 %indvars.iv1054
  %199 = load i8, ptr %198, align 1, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %0, i64 %194
  %201 = load i8, ptr %200, align 1, !tbaa !5
  switch i8 %199, label %209 [
    i8 102, label %202
    i8 70, label %202
  ]

202:                                              ; preds = %196, %196
  %203 = icmp eq i8 %199, 102
  %204 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %201)
  %205 = sext i8 %204 to i32
  %206 = select i1 %203, i32 1, i32 2
  %.not810 = icmp eq i32 %206, %205
  br i1 %.not810, label %219, label %207

207:                                              ; preds = %202
  %208 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %201)
  %.not811 = icmp eq i8 %208, 0
  br i1 %.not811, label %219, label %.critedge78.loopexit.split.loop.exit1117

209:                                              ; preds = %196
  %210 = icmp eq i8 %199, 114
  %211 = icmp eq i8 %199, 116
  switch i8 %199, label %218 [
    i8 116, label %212
    i8 114, label %212
    i8 111, label %212
  ]

212:                                              ; preds = %209, %209, %209
  %213 = icmp slt i8 %201, 48
  br i1 %213, label %.critedge78.loopexit.split.loop.exit1113, label %214

214:                                              ; preds = %212
  %215 = zext nneg i8 %201 to i32
  %216 = select i1 %211, i32 51, i32 49
  %spec.select = select i1 %210, i32 55, i32 %216
  %217 = icmp ult i32 %spec.select, %215
  br i1 %217, label %.critedge78.loopexit.split.loop.exit1115, label %219

218:                                              ; preds = %209
  %.not809 = icmp eq i8 %199, %201
  br i1 %.not809, label %219, label %.critedge78.loopexit.split.loop.exit

219:                                              ; preds = %214, %218, %202, %207
  %indvars.iv.next1055 = add nuw nsw i64 %indvars.iv1054, 1
  %exitcond1057.not = icmp eq i64 %indvars.iv.next1055, %193
  br i1 %exitcond1057.not, label %.critedge78, label %.lr.ph990, !llvm.loop !18

.critedge78.loopexit.split.loop.exit:             ; preds = %218
  %220 = trunc nuw nsw i64 %indvars.iv1054 to i32
  br label %.critedge78

.critedge78.loopexit.split.loop.exit1113:         ; preds = %212
  %221 = trunc nuw nsw i64 %indvars.iv1054 to i32
  br label %.critedge78

.critedge78.loopexit.split.loop.exit1115:         ; preds = %214
  %222 = trunc nuw nsw i64 %indvars.iv1054 to i32
  br label %.critedge78

.critedge78.loopexit.split.loop.exit1117:         ; preds = %207
  %223 = trunc nuw nsw i64 %indvars.iv1054 to i32
  br label %.critedge78

.critedge78:                                      ; preds = %219, %.lr.ph990, %.critedge78.loopexit.split.loop.exit, %.critedge78.loopexit.split.loop.exit1113, %.critedge78.loopexit.split.loop.exit1115, %.critedge78.loopexit.split.loop.exit1117, %189
  %.0764.lcssa = phi i32 [ 0, %189 ], [ %220, %.critedge78.loopexit.split.loop.exit ], [ %221, %.critedge78.loopexit.split.loop.exit1113 ], [ %222, %.critedge78.loopexit.split.loop.exit1115 ], [ %223, %.critedge78.loopexit.split.loop.exit1117 ], [ %191, %219 ], [ %187, %.lr.ph990 ]
  %224 = uitofp nneg i32 %.0764.lcssa to float
  %225 = sitofp i32 %191 to float
  %226 = fdiv float %224, %225
  %227 = fpext float %226 to double
  %228 = fcmp ogt double %227, 6.600000e-01
  br i1 %228, label %229, label %.thread900

229:                                              ; preds = %.critedge78.4, %.critedge78.3, %.critedge78.2, %.critedge78.1, %.critedge78
  %.lcssa1036 = phi i64 [ 0, %.critedge78 ], [ 1, %.critedge78.1 ], [ 2, %.critedge78.2 ], [ 3, %.critedge78.3 ], [ 4, %.critedge78.4 ]
  %.lcssa1034 = phi ptr [ %6, %.critedge78 ], [ %25, %.critedge78.1 ], [ %26, %.critedge78.2 ], [ %27, %.critedge78.3 ], [ %28, %.critedge78.4 ]
  %.0764.lcssa.lcssa = phi i32 [ %.0764.lcssa, %.critedge78 ], [ %.0764.lcssa.1, %.critedge78.1 ], [ %.0764.lcssa.2, %.critedge78.2 ], [ %.0764.lcssa.3, %.critedge78.3 ], [ %.0764.lcssa.4, %.critedge78.4 ]
  %.lcssa = phi i32 [ %191, %.critedge78 ], [ %277, %.critedge78.1 ], [ %318, %.critedge78.2 ], [ %359, %.critedge78.3 ], [ %400, %.critedge78.4 ]
  %230 = sub nsw i32 %.lcssa, %.0764.lcssa.lcssa
  %231 = load i32, ptr %10, align 4, !tbaa !8
  %232 = load i8, ptr %9, align 1, !tbaa !5
  %233 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %231, i8 noundef zeroext %232, ptr noundef %3, ptr noundef %4)
  store i32 %233, ptr %10, align 4, !tbaa !8
  %234 = icmp sgt i32 %233, -1
  br i1 %234, label %235, label %.thread

235:                                              ; preds = %229
  %236 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %233, i8 noundef zeroext 0, i32 noundef 1)
  store i32 %236, ptr %10, align 4, !tbaa !8
  %237 = icmp sgt i32 %236, -1
  br i1 %237, label %238, label %.thread

238:                                              ; preds = %235
  %239 = getelementptr inbounds [5 x i8], ptr @_ZL11count_codes, i64 0, i64 %.lcssa1036
  %240 = load i8, ptr %239, align 1, !tbaa !5
  %241 = and i8 %240, -8
  %242 = and i8 %240, 7
  %243 = zext nneg i8 %242 to i32
  %244 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %236, i8 noundef zeroext %241, i32 noundef %243)
  store i32 %244, ptr %10, align 4, !tbaa !8
  %245 = icmp sgt i32 %244, -1
  br i1 %245, label %246, label %.thread

246:                                              ; preds = %238
  %247 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %2, i32 noundef 2147483646, i32 noundef %244, i32 noundef %230)
  store i32 %247, ptr %10, align 4, !tbaa !8
  %248 = icmp sgt i32 %247, -1
  br i1 %248, label %.preheader956, label %.thread

.preheader956:                                    ; preds = %246
  %.not8121003.not = icmp eq i32 %.0764.lcssa.lcssa, 0
  br i1 %.not8121003.not, label %._crit_edge1006, label %.lr.ph1005.preheader

.lr.ph1005.preheader:                             ; preds = %.preheader956
  %wide.trip.count = zext i32 %.0764.lcssa.lcssa to i64
  %invariant.gep1178 = getelementptr i8, ptr %0, i64 %57
  %invariant.gep1180 = getelementptr i8, ptr %0, i64 %57
  br label %.lr.ph1005

.lr.ph1005:                                       ; preds = %.lr.ph1005.preheader, %.critedge840
  %249 = phi i32 [ %247, %.lr.ph1005.preheader ], [ %273, %.critedge840 ]
  %indvars.iv1062 = phi i64 [ 0, %.lr.ph1005.preheader ], [ %indvars.iv.next1063, %.critedge840 ]
  %250 = load ptr, ptr %.lcssa1034, align 8, !tbaa !16
  %251 = getelementptr inbounds i8, ptr %250, i64 %indvars.iv1062
  %252 = load i8, ptr %251, align 1, !tbaa !5
  %253 = and i8 %252, -33
  %or.cond90 = icmp eq i8 %253, 70
  br i1 %or.cond90, label %254, label %259

254:                                              ; preds = %.lr.ph1005
  %gep1181 = getelementptr i8, ptr %invariant.gep1180, i64 %indvars.iv1062
  %255 = load i8, ptr %gep1181, align 1, !tbaa !5
  %256 = call noundef zeroext i8 @_Z11getBaseCodec(i8 noundef signext %255)
  %257 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %249, i8 noundef zeroext %256, i32 noundef 4)
  store i32 %257, ptr %10, align 4, !tbaa !8
  %258 = icmp sgt i32 %257, -1
  br i1 %258, label %.critedge840, label %.thread

259:                                              ; preds = %.lr.ph1005
  switch i8 %252, label %.critedge840 [
    i8 114, label %263
    i8 111, label %260
    i8 116, label %260
  ]

260:                                              ; preds = %259, %259
  %261 = icmp eq i8 %252, 116
  %262 = select i1 %261, i32 2, i32 1
  br label %263

263:                                              ; preds = %259, %260
  %264 = phi i32 [ %262, %260 ], [ 3, %259 ]
  %gep1179 = getelementptr i8, ptr %invariant.gep1178, i64 %indvars.iv1062
  %265 = load i8, ptr %gep1179, align 1, !tbaa !5
  %266 = zext i8 %265 to i32
  %267 = add nuw nsw i32 %266, 208
  %268 = sub nuw nsw i32 8, %264
  %269 = shl nuw nsw i32 %267, %268
  %270 = trunc i32 %269 to i8
  %271 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %249, i8 noundef zeroext %270, i32 noundef %264)
  store i32 %271, ptr %10, align 4, !tbaa !8
  %272 = icmp sgt i32 %271, -1
  br i1 %272, label %.critedge840, label %.thread

.critedge840:                                     ; preds = %259, %263, %254
  %273 = phi i32 [ %249, %259 ], [ %271, %263 ], [ %257, %254 ]
  %indvars.iv.next1063 = add nuw nsw i64 %indvars.iv1062, 1
  %exitcond1065.not = icmp eq i64 %indvars.iv.next1063, %wide.trip.count
  br i1 %exitcond1065.not, label %._crit_edge1006, label %.lr.ph1005, !llvm.loop !19

.thread900:                                       ; preds = %.critedge78, %.preheader957.preheader
  %274 = load ptr, ptr %25, align 8, !tbaa !16
  %.not808.1 = icmp eq ptr %274, null
  br i1 %.not808.1, label %.thread900.1, label %275

275:                                              ; preds = %.thread900
  %276 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %274) #6
  %277 = trunc i64 %276 to i32
  %278 = icmp sgt i32 %277, 0
  br i1 %278, label %.lr.ph990.preheader.1, label %.critedge78.1

.lr.ph990.preheader.1:                            ; preds = %275
  %279 = and i64 %276, 2147483647
  br label %.lr.ph990.1

.lr.ph990.1:                                      ; preds = %305, %.lr.ph990.preheader.1
  %indvars.iv1054.1 = phi i64 [ 0, %.lr.ph990.preheader.1 ], [ %indvars.iv.next1055.1, %305 ]
  %280 = add nsw i64 %indvars.iv1054.1, %57
  %281 = icmp slt i64 %280, %23
  br i1 %281, label %282, label %.critedge78.1

282:                                              ; preds = %.lr.ph990.1
  %283 = load ptr, ptr %25, align 8, !tbaa !16
  %284 = getelementptr inbounds i8, ptr %283, i64 %indvars.iv1054.1
  %285 = load i8, ptr %284, align 1, !tbaa !5
  %286 = getelementptr inbounds i8, ptr %0, i64 %280
  %287 = load i8, ptr %286, align 1, !tbaa !5
  switch i8 %285, label %295 [
    i8 102, label %288
    i8 70, label %288
  ]

288:                                              ; preds = %282, %282
  %289 = icmp eq i8 %285, 102
  %290 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %287)
  %291 = sext i8 %290 to i32
  %292 = select i1 %289, i32 1, i32 2
  %.not810.1 = icmp eq i32 %292, %291
  br i1 %.not810.1, label %305, label %293

293:                                              ; preds = %288
  %294 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %287)
  %.not811.1 = icmp eq i8 %294, 0
  br i1 %.not811.1, label %305, label %.critedge78.1.loopexit.split.loop.exit1132

295:                                              ; preds = %282
  %296 = icmp eq i8 %285, 114
  %297 = icmp eq i8 %285, 116
  switch i8 %285, label %304 [
    i8 116, label %298
    i8 114, label %298
    i8 111, label %298
  ]

298:                                              ; preds = %295, %295, %295
  %299 = icmp slt i8 %287, 48
  br i1 %299, label %.critedge78.1.loopexit.split.loop.exit1130, label %300

300:                                              ; preds = %298
  %301 = zext nneg i8 %287 to i32
  %302 = select i1 %297, i32 51, i32 49
  %spec.select.1 = select i1 %296, i32 55, i32 %302
  %303 = icmp ult i32 %spec.select.1, %301
  br i1 %303, label %.critedge78.1.loopexit.split.loop.exit1128, label %305

304:                                              ; preds = %295
  %.not809.1 = icmp eq i8 %285, %287
  br i1 %.not809.1, label %305, label %.critedge78.1.loopexit.split.loop.exit1126

305:                                              ; preds = %304, %300, %293, %288
  %indvars.iv.next1055.1 = add nuw nsw i64 %indvars.iv1054.1, 1
  %exitcond1057.1.not = icmp eq i64 %indvars.iv.next1055.1, %279
  br i1 %exitcond1057.1.not, label %.critedge78.1, label %.lr.ph990.1, !llvm.loop !18

.critedge78.1.loopexit.split.loop.exit1126:       ; preds = %304
  %306 = trunc nuw nsw i64 %indvars.iv1054.1 to i32
  br label %.critedge78.1

.critedge78.1.loopexit.split.loop.exit1128:       ; preds = %300
  %307 = trunc nuw nsw i64 %indvars.iv1054.1 to i32
  br label %.critedge78.1

.critedge78.1.loopexit.split.loop.exit1130:       ; preds = %298
  %308 = trunc nuw nsw i64 %indvars.iv1054.1 to i32
  br label %.critedge78.1

.critedge78.1.loopexit.split.loop.exit1132:       ; preds = %293
  %309 = trunc nuw nsw i64 %indvars.iv1054.1 to i32
  br label %.critedge78.1

.critedge78.1:                                    ; preds = %305, %.lr.ph990.1, %.critedge78.1.loopexit.split.loop.exit1126, %.critedge78.1.loopexit.split.loop.exit1128, %.critedge78.1.loopexit.split.loop.exit1130, %.critedge78.1.loopexit.split.loop.exit1132, %275
  %.0764.lcssa.1 = phi i32 [ 0, %275 ], [ %306, %.critedge78.1.loopexit.split.loop.exit1126 ], [ %307, %.critedge78.1.loopexit.split.loop.exit1128 ], [ %308, %.critedge78.1.loopexit.split.loop.exit1130 ], [ %309, %.critedge78.1.loopexit.split.loop.exit1132 ], [ %277, %305 ], [ %187, %.lr.ph990.1 ]
  %310 = uitofp nneg i32 %.0764.lcssa.1 to float
  %311 = sitofp i32 %277 to float
  %312 = fdiv float %310, %311
  %313 = fpext float %312 to double
  %314 = fcmp ogt double %313, 6.600000e-01
  br i1 %314, label %229, label %.thread900.1

.thread900.1:                                     ; preds = %.critedge78.1, %.thread900
  %315 = load ptr, ptr %26, align 8, !tbaa !16
  %.not808.2 = icmp eq ptr %315, null
  br i1 %.not808.2, label %.thread900.2, label %316

316:                                              ; preds = %.thread900.1
  %317 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %315) #6
  %318 = trunc i64 %317 to i32
  %319 = icmp sgt i32 %318, 0
  br i1 %319, label %.lr.ph990.preheader.2, label %.critedge78.2

.lr.ph990.preheader.2:                            ; preds = %316
  %320 = and i64 %317, 2147483647
  br label %.lr.ph990.2

.lr.ph990.2:                                      ; preds = %346, %.lr.ph990.preheader.2
  %indvars.iv1054.2 = phi i64 [ 0, %.lr.ph990.preheader.2 ], [ %indvars.iv.next1055.2, %346 ]
  %321 = add nsw i64 %indvars.iv1054.2, %57
  %322 = icmp slt i64 %321, %23
  br i1 %322, label %323, label %.critedge78.2

323:                                              ; preds = %.lr.ph990.2
  %324 = load ptr, ptr %26, align 8, !tbaa !16
  %325 = getelementptr inbounds i8, ptr %324, i64 %indvars.iv1054.2
  %326 = load i8, ptr %325, align 1, !tbaa !5
  %327 = getelementptr inbounds i8, ptr %0, i64 %321
  %328 = load i8, ptr %327, align 1, !tbaa !5
  switch i8 %326, label %336 [
    i8 102, label %329
    i8 70, label %329
  ]

329:                                              ; preds = %323, %323
  %330 = icmp eq i8 %326, 102
  %331 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %328)
  %332 = sext i8 %331 to i32
  %333 = select i1 %330, i32 1, i32 2
  %.not810.2 = icmp eq i32 %333, %332
  br i1 %.not810.2, label %346, label %334

334:                                              ; preds = %329
  %335 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %328)
  %.not811.2 = icmp eq i8 %335, 0
  br i1 %.not811.2, label %346, label %.critedge78.2.loopexit.split.loop.exit1145

336:                                              ; preds = %323
  %337 = icmp eq i8 %326, 114
  %338 = icmp eq i8 %326, 116
  switch i8 %326, label %345 [
    i8 116, label %339
    i8 114, label %339
    i8 111, label %339
  ]

339:                                              ; preds = %336, %336, %336
  %340 = icmp slt i8 %328, 48
  br i1 %340, label %.critedge78.2.loopexit.split.loop.exit1143, label %341

341:                                              ; preds = %339
  %342 = zext nneg i8 %328 to i32
  %343 = select i1 %338, i32 51, i32 49
  %spec.select.2 = select i1 %337, i32 55, i32 %343
  %344 = icmp ult i32 %spec.select.2, %342
  br i1 %344, label %.critedge78.2.loopexit.split.loop.exit1141, label %346

345:                                              ; preds = %336
  %.not809.2 = icmp eq i8 %326, %328
  br i1 %.not809.2, label %346, label %.critedge78.2.loopexit.split.loop.exit1139

346:                                              ; preds = %345, %341, %334, %329
  %indvars.iv.next1055.2 = add nuw nsw i64 %indvars.iv1054.2, 1
  %exitcond1057.2.not = icmp eq i64 %indvars.iv.next1055.2, %320
  br i1 %exitcond1057.2.not, label %.critedge78.2, label %.lr.ph990.2, !llvm.loop !18

.critedge78.2.loopexit.split.loop.exit1139:       ; preds = %345
  %347 = trunc nuw nsw i64 %indvars.iv1054.2 to i32
  br label %.critedge78.2

.critedge78.2.loopexit.split.loop.exit1141:       ; preds = %341
  %348 = trunc nuw nsw i64 %indvars.iv1054.2 to i32
  br label %.critedge78.2

.critedge78.2.loopexit.split.loop.exit1143:       ; preds = %339
  %349 = trunc nuw nsw i64 %indvars.iv1054.2 to i32
  br label %.critedge78.2

.critedge78.2.loopexit.split.loop.exit1145:       ; preds = %334
  %350 = trunc nuw nsw i64 %indvars.iv1054.2 to i32
  br label %.critedge78.2

.critedge78.2:                                    ; preds = %346, %.lr.ph990.2, %.critedge78.2.loopexit.split.loop.exit1139, %.critedge78.2.loopexit.split.loop.exit1141, %.critedge78.2.loopexit.split.loop.exit1143, %.critedge78.2.loopexit.split.loop.exit1145, %316
  %.0764.lcssa.2 = phi i32 [ 0, %316 ], [ %347, %.critedge78.2.loopexit.split.loop.exit1139 ], [ %348, %.critedge78.2.loopexit.split.loop.exit1141 ], [ %349, %.critedge78.2.loopexit.split.loop.exit1143 ], [ %350, %.critedge78.2.loopexit.split.loop.exit1145 ], [ %318, %346 ], [ %187, %.lr.ph990.2 ]
  %351 = uitofp nneg i32 %.0764.lcssa.2 to float
  %352 = sitofp i32 %318 to float
  %353 = fdiv float %351, %352
  %354 = fpext float %353 to double
  %355 = fcmp ogt double %354, 6.600000e-01
  br i1 %355, label %229, label %.thread900.2

.thread900.2:                                     ; preds = %.critedge78.2, %.thread900.1
  %356 = load ptr, ptr %27, align 8, !tbaa !16
  %.not808.3 = icmp eq ptr %356, null
  br i1 %.not808.3, label %.thread900.3, label %357

357:                                              ; preds = %.thread900.2
  %358 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %356) #6
  %359 = trunc i64 %358 to i32
  %360 = icmp sgt i32 %359, 0
  br i1 %360, label %.lr.ph990.preheader.3, label %.critedge78.3

.lr.ph990.preheader.3:                            ; preds = %357
  %361 = and i64 %358, 2147483647
  br label %.lr.ph990.3

.lr.ph990.3:                                      ; preds = %387, %.lr.ph990.preheader.3
  %indvars.iv1054.3 = phi i64 [ 0, %.lr.ph990.preheader.3 ], [ %indvars.iv.next1055.3, %387 ]
  %362 = add nsw i64 %indvars.iv1054.3, %57
  %363 = icmp slt i64 %362, %23
  br i1 %363, label %364, label %.critedge78.3

364:                                              ; preds = %.lr.ph990.3
  %365 = load ptr, ptr %27, align 8, !tbaa !16
  %366 = getelementptr inbounds i8, ptr %365, i64 %indvars.iv1054.3
  %367 = load i8, ptr %366, align 1, !tbaa !5
  %368 = getelementptr inbounds i8, ptr %0, i64 %362
  %369 = load i8, ptr %368, align 1, !tbaa !5
  switch i8 %367, label %377 [
    i8 102, label %370
    i8 70, label %370
  ]

370:                                              ; preds = %364, %364
  %371 = icmp eq i8 %367, 102
  %372 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %369)
  %373 = sext i8 %372 to i32
  %374 = select i1 %371, i32 1, i32 2
  %.not810.3 = icmp eq i32 %374, %373
  br i1 %.not810.3, label %387, label %375

375:                                              ; preds = %370
  %376 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %369)
  %.not811.3 = icmp eq i8 %376, 0
  br i1 %.not811.3, label %387, label %.critedge78.3.loopexit.split.loop.exit1158

377:                                              ; preds = %364
  %378 = icmp eq i8 %367, 114
  %379 = icmp eq i8 %367, 116
  switch i8 %367, label %386 [
    i8 116, label %380
    i8 114, label %380
    i8 111, label %380
  ]

380:                                              ; preds = %377, %377, %377
  %381 = icmp slt i8 %369, 48
  br i1 %381, label %.critedge78.3.loopexit.split.loop.exit1156, label %382

382:                                              ; preds = %380
  %383 = zext nneg i8 %369 to i32
  %384 = select i1 %379, i32 51, i32 49
  %spec.select.3 = select i1 %378, i32 55, i32 %384
  %385 = icmp ult i32 %spec.select.3, %383
  br i1 %385, label %.critedge78.3.loopexit.split.loop.exit1154, label %387

386:                                              ; preds = %377
  %.not809.3 = icmp eq i8 %367, %369
  br i1 %.not809.3, label %387, label %.critedge78.3.loopexit.split.loop.exit1152

387:                                              ; preds = %386, %382, %375, %370
  %indvars.iv.next1055.3 = add nuw nsw i64 %indvars.iv1054.3, 1
  %exitcond1057.3.not = icmp eq i64 %indvars.iv.next1055.3, %361
  br i1 %exitcond1057.3.not, label %.critedge78.3, label %.lr.ph990.3, !llvm.loop !18

.critedge78.3.loopexit.split.loop.exit1152:       ; preds = %386
  %388 = trunc nuw nsw i64 %indvars.iv1054.3 to i32
  br label %.critedge78.3

.critedge78.3.loopexit.split.loop.exit1154:       ; preds = %382
  %389 = trunc nuw nsw i64 %indvars.iv1054.3 to i32
  br label %.critedge78.3

.critedge78.3.loopexit.split.loop.exit1156:       ; preds = %380
  %390 = trunc nuw nsw i64 %indvars.iv1054.3 to i32
  br label %.critedge78.3

.critedge78.3.loopexit.split.loop.exit1158:       ; preds = %375
  %391 = trunc nuw nsw i64 %indvars.iv1054.3 to i32
  br label %.critedge78.3

.critedge78.3:                                    ; preds = %387, %.lr.ph990.3, %.critedge78.3.loopexit.split.loop.exit1152, %.critedge78.3.loopexit.split.loop.exit1154, %.critedge78.3.loopexit.split.loop.exit1156, %.critedge78.3.loopexit.split.loop.exit1158, %357
  %.0764.lcssa.3 = phi i32 [ 0, %357 ], [ %388, %.critedge78.3.loopexit.split.loop.exit1152 ], [ %389, %.critedge78.3.loopexit.split.loop.exit1154 ], [ %390, %.critedge78.3.loopexit.split.loop.exit1156 ], [ %391, %.critedge78.3.loopexit.split.loop.exit1158 ], [ %359, %387 ], [ %187, %.lr.ph990.3 ]
  %392 = uitofp nneg i32 %.0764.lcssa.3 to float
  %393 = sitofp i32 %359 to float
  %394 = fdiv float %392, %393
  %395 = fpext float %394 to double
  %396 = fcmp ogt double %395, 6.600000e-01
  br i1 %396, label %229, label %.thread900.3

.thread900.3:                                     ; preds = %.critedge78.3, %.thread900.2
  %397 = load ptr, ptr %28, align 8, !tbaa !16
  %.not808.4 = icmp eq ptr %397, null
  br i1 %.not808.4, label %.thread906, label %398

398:                                              ; preds = %.thread900.3
  %399 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %397) #6
  %400 = trunc i64 %399 to i32
  %401 = icmp sgt i32 %400, 0
  br i1 %401, label %.lr.ph990.preheader.4, label %.critedge78.4

.lr.ph990.preheader.4:                            ; preds = %398
  %402 = and i64 %399, 2147483647
  br label %.lr.ph990.4

.lr.ph990.4:                                      ; preds = %428, %.lr.ph990.preheader.4
  %indvars.iv1054.4 = phi i64 [ 0, %.lr.ph990.preheader.4 ], [ %indvars.iv.next1055.4, %428 ]
  %403 = add nsw i64 %indvars.iv1054.4, %57
  %404 = icmp slt i64 %403, %23
  br i1 %404, label %405, label %.critedge78.4

405:                                              ; preds = %.lr.ph990.4
  %406 = load ptr, ptr %28, align 8, !tbaa !16
  %407 = getelementptr inbounds i8, ptr %406, i64 %indvars.iv1054.4
  %408 = load i8, ptr %407, align 1, !tbaa !5
  %409 = getelementptr inbounds i8, ptr %0, i64 %403
  %410 = load i8, ptr %409, align 1, !tbaa !5
  switch i8 %408, label %418 [
    i8 102, label %411
    i8 70, label %411
  ]

411:                                              ; preds = %405, %405
  %412 = icmp eq i8 %408, 102
  %413 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %410)
  %414 = sext i8 %413 to i32
  %415 = select i1 %412, i32 1, i32 2
  %.not810.4 = icmp eq i32 %415, %414
  br i1 %.not810.4, label %428, label %416

416:                                              ; preds = %411
  %417 = call noundef signext i8 @_Z13getNibbleTypec(i8 noundef signext %410)
  %.not811.4 = icmp eq i8 %417, 0
  br i1 %.not811.4, label %428, label %.critedge78.4.loopexit.split.loop.exit1171

418:                                              ; preds = %405
  %419 = icmp eq i8 %408, 114
  %420 = icmp eq i8 %408, 116
  switch i8 %408, label %427 [
    i8 116, label %421
    i8 114, label %421
    i8 111, label %421
  ]

421:                                              ; preds = %418, %418, %418
  %422 = icmp slt i8 %410, 48
  br i1 %422, label %.critedge78.4.loopexit.split.loop.exit1169, label %423

423:                                              ; preds = %421
  %424 = zext nneg i8 %410 to i32
  %425 = select i1 %420, i32 51, i32 49
  %spec.select.4 = select i1 %419, i32 55, i32 %425
  %426 = icmp ult i32 %spec.select.4, %424
  br i1 %426, label %.critedge78.4.loopexit.split.loop.exit1167, label %428

427:                                              ; preds = %418
  %.not809.4 = icmp eq i8 %408, %410
  br i1 %.not809.4, label %428, label %.critedge78.4.loopexit.split.loop.exit1165

428:                                              ; preds = %427, %423, %416, %411
  %indvars.iv.next1055.4 = add nuw nsw i64 %indvars.iv1054.4, 1
  %exitcond1057.4.not = icmp eq i64 %indvars.iv.next1055.4, %402
  br i1 %exitcond1057.4.not, label %.critedge78.4, label %.lr.ph990.4, !llvm.loop !18

.critedge78.4.loopexit.split.loop.exit1165:       ; preds = %427
  %429 = trunc nuw nsw i64 %indvars.iv1054.4 to i32
  br label %.critedge78.4

.critedge78.4.loopexit.split.loop.exit1167:       ; preds = %423
  %430 = trunc nuw nsw i64 %indvars.iv1054.4 to i32
  br label %.critedge78.4

.critedge78.4.loopexit.split.loop.exit1169:       ; preds = %421
  %431 = trunc nuw nsw i64 %indvars.iv1054.4 to i32
  br label %.critedge78.4

.critedge78.4.loopexit.split.loop.exit1171:       ; preds = %416
  %432 = trunc nuw nsw i64 %indvars.iv1054.4 to i32
  br label %.critedge78.4

.critedge78.4:                                    ; preds = %428, %.lr.ph990.4, %.critedge78.4.loopexit.split.loop.exit1165, %.critedge78.4.loopexit.split.loop.exit1167, %.critedge78.4.loopexit.split.loop.exit1169, %.critedge78.4.loopexit.split.loop.exit1171, %398
  %.0764.lcssa.4 = phi i32 [ 0, %398 ], [ %429, %.critedge78.4.loopexit.split.loop.exit1165 ], [ %430, %.critedge78.4.loopexit.split.loop.exit1167 ], [ %431, %.critedge78.4.loopexit.split.loop.exit1169 ], [ %432, %.critedge78.4.loopexit.split.loop.exit1171 ], [ %400, %428 ], [ %187, %.lr.ph990.4 ]
  %433 = uitofp nneg i32 %.0764.lcssa.4 to float
  %434 = sitofp i32 %400 to float
  %435 = fdiv float %433, %434
  %436 = fpext float %435 to double
  %437 = fcmp ogt double %436, 6.600000e-01
  br i1 %437, label %229, label %.thread906

._crit_edge1006:                                  ; preds = %.critedge840, %.preheader956
  %438 = add i32 %.13651.fr, -1
  %439 = add i32 %438, %.0764.lcssa.lcssa
  br label %.loopexit960

.thread906:                                       ; preds = %.thread900.3, %.critedge78.4, %.thread886
  br i1 %.not813, label %.thread921, label %.preheader955

.preheader955:                                    ; preds = %.thread906
  %invariant.smax = call i32 @llvm.smax.i32(i32 %.13651.fr, i32 0)
  %440 = load ptr, ptr %5, align 8, !tbaa !16
  %441 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %440) #6
  %442 = trunc i64 %441 to i32
  %443 = sub nsw i32 %1, %442
  %or.cond841 = icmp slt i32 %443, %invariant.smax
  br i1 %or.cond841, label %459, label %444

444:                                              ; preds = %.preheader955
  %sext = shl i64 %441, 32
  %445 = ashr exact i64 %sext, 32
  %bcmp = call i32 @bcmp(ptr %440, ptr nonnull %58, i64 %445)
  %446 = icmp eq i32 %bcmp, 0
  br i1 %446, label %447, label %459

447:                                              ; preds = %444
  %448 = load i8, ptr @usx_freq_codes, align 1, !tbaa !5
  %449 = lshr i8 %448, 5
  %450 = zext nneg i8 %449 to i64
  %451 = getelementptr inbounds i8, ptr %4, i64 %450
  %452 = load i8, ptr %451, align 1, !tbaa !5
  %.not815 = icmp eq i8 %452, 0
  br i1 %.not815, label %459, label %453

453:                                              ; preds = %523, %509, %495, %481, %467, %447
  %.lcssa1039 = phi i32 [ %442, %447 ], [ %462, %467 ], [ %476, %481 ], [ %490, %495 ], [ %504, %509 ], [ %518, %523 ]
  %.lcssa1038 = phi i8 [ %448, %447 ], [ %468, %467 ], [ %482, %481 ], [ %496, %495 ], [ %510, %509 ], [ %524, %523 ]
  %454 = load i32, ptr %10, align 4, !tbaa !8
  %455 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %454, i8 noundef zeroext %.lcssa1038, ptr noundef nonnull %9, ptr noundef %3, ptr noundef nonnull %4)
  store i32 %455, ptr %10, align 4, !tbaa !8
  %456 = icmp sgt i32 %455, -1
  br i1 %456, label %.thread951, label %.thread

.thread951:                                       ; preds = %453
  %457 = add i32 %.13651.fr, -1
  %458 = add i32 %457, %.lcssa1039
  br label %.loopexit960

459:                                              ; preds = %444, %447, %.preheader955
  %460 = load ptr, ptr %29, align 8, !tbaa !16
  %461 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %460) #6
  %462 = trunc i64 %461 to i32
  %463 = sub nsw i32 %1, %462
  %or.cond841.1 = icmp slt i32 %463, %invariant.smax
  br i1 %or.cond841.1, label %473, label %464

464:                                              ; preds = %459
  %sext.1 = shl i64 %461, 32
  %465 = ashr exact i64 %sext.1, 32
  %bcmp.1 = call i32 @bcmp(ptr %460, ptr nonnull %58, i64 %465)
  %466 = icmp eq i32 %bcmp.1, 0
  br i1 %466, label %467, label %473

467:                                              ; preds = %464
  %468 = load i8, ptr getelementptr inbounds (i8, ptr @usx_freq_codes, i64 1), align 1, !tbaa !5
  %469 = lshr i8 %468, 5
  %470 = zext nneg i8 %469 to i64
  %471 = getelementptr inbounds i8, ptr %4, i64 %470
  %472 = load i8, ptr %471, align 1, !tbaa !5
  %.not815.1 = icmp eq i8 %472, 0
  br i1 %.not815.1, label %473, label %453

473:                                              ; preds = %467, %464, %459
  %474 = load ptr, ptr %30, align 8, !tbaa !16
  %475 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %474) #6
  %476 = trunc i64 %475 to i32
  %477 = sub nsw i32 %1, %476
  %or.cond841.2 = icmp slt i32 %477, %invariant.smax
  br i1 %or.cond841.2, label %487, label %478

478:                                              ; preds = %473
  %sext.2 = shl i64 %475, 32
  %479 = ashr exact i64 %sext.2, 32
  %bcmp.2 = call i32 @bcmp(ptr %474, ptr nonnull %58, i64 %479)
  %480 = icmp eq i32 %bcmp.2, 0
  br i1 %480, label %481, label %487

481:                                              ; preds = %478
  %482 = load i8, ptr getelementptr inbounds (i8, ptr @usx_freq_codes, i64 2), align 1, !tbaa !5
  %483 = lshr i8 %482, 5
  %484 = zext nneg i8 %483 to i64
  %485 = getelementptr inbounds i8, ptr %4, i64 %484
  %486 = load i8, ptr %485, align 1, !tbaa !5
  %.not815.2 = icmp eq i8 %486, 0
  br i1 %.not815.2, label %487, label %453

487:                                              ; preds = %481, %478, %473
  %488 = load ptr, ptr %31, align 8, !tbaa !16
  %489 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %488) #6
  %490 = trunc i64 %489 to i32
  %491 = sub nsw i32 %1, %490
  %or.cond841.3 = icmp slt i32 %491, %invariant.smax
  br i1 %or.cond841.3, label %501, label %492

492:                                              ; preds = %487
  %sext.3 = shl i64 %489, 32
  %493 = ashr exact i64 %sext.3, 32
  %bcmp.3 = call i32 @bcmp(ptr %488, ptr nonnull %58, i64 %493)
  %494 = icmp eq i32 %bcmp.3, 0
  br i1 %494, label %495, label %501

495:                                              ; preds = %492
  %496 = load i8, ptr getelementptr inbounds (i8, ptr @usx_freq_codes, i64 3), align 1, !tbaa !5
  %497 = lshr i8 %496, 5
  %498 = zext nneg i8 %497 to i64
  %499 = getelementptr inbounds i8, ptr %4, i64 %498
  %500 = load i8, ptr %499, align 1, !tbaa !5
  %.not815.3 = icmp eq i8 %500, 0
  br i1 %.not815.3, label %501, label %453

501:                                              ; preds = %495, %492, %487
  %502 = load ptr, ptr %32, align 8, !tbaa !16
  %503 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %502) #6
  %504 = trunc i64 %503 to i32
  %505 = sub nsw i32 %1, %504
  %or.cond841.4 = icmp slt i32 %505, %invariant.smax
  br i1 %or.cond841.4, label %515, label %506

506:                                              ; preds = %501
  %sext.4 = shl i64 %503, 32
  %507 = ashr exact i64 %sext.4, 32
  %bcmp.4 = call i32 @bcmp(ptr %502, ptr nonnull %58, i64 %507)
  %508 = icmp eq i32 %bcmp.4, 0
  br i1 %508, label %509, label %515

509:                                              ; preds = %506
  %510 = load i8, ptr getelementptr inbounds (i8, ptr @usx_freq_codes, i64 4), align 1, !tbaa !5
  %511 = lshr i8 %510, 5
  %512 = zext nneg i8 %511 to i64
  %513 = getelementptr inbounds i8, ptr %4, i64 %512
  %514 = load i8, ptr %513, align 1, !tbaa !5
  %.not815.4 = icmp eq i8 %514, 0
  br i1 %.not815.4, label %515, label %453

515:                                              ; preds = %509, %506, %501
  %516 = load ptr, ptr %33, align 8, !tbaa !16
  %517 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %516) #6
  %518 = trunc i64 %517 to i32
  %519 = sub nsw i32 %1, %518
  %or.cond841.5 = icmp slt i32 %519, %invariant.smax
  br i1 %or.cond841.5, label %.thread921, label %520

520:                                              ; preds = %515
  %sext.5 = shl i64 %517, 32
  %521 = ashr exact i64 %sext.5, 32
  %bcmp.5 = call i32 @bcmp(ptr %516, ptr nonnull %58, i64 %521)
  %522 = icmp eq i32 %bcmp.5, 0
  br i1 %522, label %523, label %.thread921

523:                                              ; preds = %520
  %524 = load i8, ptr getelementptr inbounds (i8, ptr @usx_freq_codes, i64 5), align 1, !tbaa !5
  %525 = lshr i8 %524, 5
  %526 = zext nneg i8 %525 to i64
  %527 = getelementptr inbounds i8, ptr %4, i64 %526
  %528 = load i8, ptr %527, align 1, !tbaa !5
  %.not815.5 = icmp eq i8 %528, 0
  br i1 %.not815.5, label %.thread921, label %453

.thread921:                                       ; preds = %515, %520, %523, %.thread906
  %529 = load i8, ptr %58, align 1, !tbaa !5
  %530 = add i8 %529, -91
  %or.cond99 = icmp ult i8 %530, -26
  %.not816 = icmp eq i8 %.06701023, 0
  br i1 %or.cond99, label %531, label %544

531:                                              ; preds = %.thread921
  br i1 %.not816, label %.thread925, label %532

532:                                              ; preds = %531
  %533 = load i32, ptr %10, align 4, !tbaa !8
  %534 = load i8, ptr %9, align 1, !tbaa !5
  %535 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %533, i8 noundef zeroext %534)
  store i32 %535, ptr %10, align 4, !tbaa !8
  %536 = icmp sgt i32 %535, -1
  br i1 %536, label %537, label %.thread

537:                                              ; preds = %532
  %538 = load i8, ptr %3, align 1, !tbaa !5
  %539 = load i8, ptr %4, align 1, !tbaa !5
  %540 = zext i8 %539 to i32
  %541 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %535, i8 noundef zeroext %538, i32 noundef %540)
  store i32 %541, ptr %10, align 4, !tbaa !8
  %542 = icmp sgt i32 %541, -1
  br i1 %542, label %543, label %.thread

543:                                              ; preds = %537
  store i8 0, ptr %9, align 1, !tbaa !5
  br label %.thread925

544:                                              ; preds = %.thread921
  br i1 %.not816, label %545, label %.thread925

545:                                              ; preds = %544
  %546 = load i8, ptr %9, align 1, !tbaa !5
  %547 = icmp eq i8 %546, 2
  %.pre = load i32, ptr %10, align 4, !tbaa !8
  br i1 %547, label %548, label %558

548:                                              ; preds = %545
  %549 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %.pre, i8 noundef zeroext 2)
  store i32 %549, ptr %10, align 4, !tbaa !8
  %550 = icmp sgt i32 %549, -1
  br i1 %550, label %551, label %.thread

551:                                              ; preds = %548
  %552 = load i8, ptr %3, align 1, !tbaa !5
  %553 = load i8, ptr %4, align 1, !tbaa !5
  %554 = zext i8 %553 to i32
  %555 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %549, i8 noundef zeroext %552, i32 noundef %554)
  store i32 %555, ptr %10, align 4, !tbaa !8
  %556 = icmp sgt i32 %555, -1
  br i1 %556, label %557, label %.thread

557:                                              ; preds = %551
  store i8 0, ptr %9, align 1, !tbaa !5
  br label %558

558:                                              ; preds = %545, %557
  %559 = phi i8 [ %546, %545 ], [ 0, %557 ]
  %560 = phi i32 [ %.pre, %545 ], [ %555, %557 ]
  %561 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %560, i8 noundef zeroext %559)
  store i32 %561, ptr %10, align 4, !tbaa !8
  %562 = icmp sgt i32 %561, -1
  br i1 %562, label %563, label %.thread

563:                                              ; preds = %558
  %564 = load i8, ptr %3, align 1, !tbaa !5
  %565 = load i8, ptr %4, align 1, !tbaa !5
  %566 = zext i8 %565 to i32
  %567 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %561, i8 noundef zeroext %564, i32 noundef %566)
  store i32 %567, ptr %10, align 4, !tbaa !8
  %568 = icmp sgt i32 %567, -1
  br i1 %568, label %569, label %.thread

569:                                              ; preds = %563
  %570 = load i8, ptr %9, align 1, !tbaa !5
  %571 = icmp eq i8 %570, 4
  br i1 %571, label %572, label %.thread925

572:                                              ; preds = %569
  store i8 0, ptr %9, align 1, !tbaa !5
  %573 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %567, i8 noundef zeroext 0)
  store i32 %573, ptr %10, align 4, !tbaa !8
  %574 = icmp sgt i32 %573, -1
  br i1 %574, label %575, label %.thread

575:                                              ; preds = %572
  %576 = load i8, ptr %3, align 1, !tbaa !5
  %577 = load i8, ptr %4, align 1, !tbaa !5
  %578 = zext i8 %577 to i32
  %579 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %573, i8 noundef zeroext %576, i32 noundef %578)
  store i32 %579, ptr %10, align 4, !tbaa !8
  %580 = icmp sgt i32 %579, -1
  br i1 %580, label %.thread925, label %.thread

.thread925:                                       ; preds = %543, %531, %569, %575, %544
  %or.cond101929 = phi i1 [ false, %569 ], [ false, %575 ], [ true, %544 ], [ true, %531 ], [ true, %543 ]
  %.1671928 = phi i8 [ 0, %569 ], [ 0, %575 ], [ %.06701023, %544 ], [ 0, %531 ], [ 0, %543 ]
  %581 = add nsw i32 %.13651.fr, 1
  %582 = icmp slt i32 %581, %1
  br i1 %582, label %583, label %587

583:                                              ; preds = %.thread925
  %584 = sext i32 %581 to i64
  %585 = getelementptr inbounds i8, ptr %0, i64 %584
  %586 = load i8, ptr %585, align 1, !tbaa !5
  br label %587

587:                                              ; preds = %583, %.thread925
  %.0664 = phi i8 [ %586, %583 ], [ 0, %.thread925 ]
  %588 = add i8 %529, -32
  %or.cond104 = icmp ult i8 %588, 95
  br i1 %or.cond104, label %589, label %654

589:                                              ; preds = %587
  br i1 %or.cond101929, label %._crit_edge1085, label %590

._crit_edge1085:                                  ; preds = %589
  %.pr.pre = load i8, ptr %9, align 1, !tbaa !5
  br label %611

590:                                              ; preds = %589
  %591 = add nsw i32 %.13651.fr, 4
  %592 = icmp slt i32 %591, %1
  br i1 %592, label %.lr.ph1018.preheader, label %._crit_edge1019.thread

._crit_edge1019.thread:                           ; preds = %590
  %.pr.pre10861096 = load i8, ptr %9, align 1, !tbaa !5
  br label %611

.lr.ph1018.preheader:                             ; preds = %590
  %593 = sext i32 %591 to i64
  br label %.lr.ph1018

.lr.ph1018:                                       ; preds = %.lr.ph1018.preheader, %597
  %indvars.iv1078 = phi i64 [ %593, %.lr.ph1018.preheader ], [ %indvars.iv.next1079, %597 ]
  %594 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1078
  %595 = load i8, ptr %594, align 1, !tbaa !5
  %596 = add i8 %595, -91
  %or.cond843 = icmp ult i8 %596, -26
  br i1 %or.cond843, label %._crit_edge1019, label %597

597:                                              ; preds = %.lr.ph1018
  %indvars.iv.next1079 = add nsw i64 %indvars.iv1078, -1
  %598 = icmp sgt i64 %indvars.iv1078, %57
  br i1 %598, label %.lr.ph1018, label %._crit_edge1019, !llvm.loop !20

._crit_edge1019:                                  ; preds = %597, %.lr.ph1018
  %.0662.lcssa.ph.in = phi i64 [ %indvars.iv.next1079, %597 ], [ %indvars.iv1078, %.lr.ph1018 ]
  %.0662.lcssa.ph = trunc i64 %.0662.lcssa.ph.in to i32
  %599 = add nsw i32 %.13651.fr, -1
  %600 = icmp eq i32 %599, %.0662.lcssa.ph
  %.pr.pre1086 = load i8, ptr %9, align 1, !tbaa !5
  br i1 %600, label %601, label %611

601:                                              ; preds = %._crit_edge1019
  %602 = load i32, ptr %10, align 4, !tbaa !8
  %603 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %602, i8 noundef zeroext %.pr.pre1086)
  store i32 %603, ptr %10, align 4, !tbaa !8
  %604 = icmp sgt i32 %603, -1
  br i1 %604, label %605, label %.thread

605:                                              ; preds = %601
  %606 = load i8, ptr %3, align 1, !tbaa !5
  %607 = load i8, ptr %4, align 1, !tbaa !5
  %608 = zext i8 %607 to i32
  %609 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %603, i8 noundef zeroext %606, i32 noundef %608)
  store i32 %609, ptr %10, align 4, !tbaa !8
  %610 = icmp sgt i32 %609, -1
  br i1 %610, label %.thread930, label %.thread

.thread930:                                       ; preds = %605
  store i8 0, ptr %9, align 1, !tbaa !5
  br label %.thread937

611:                                              ; preds = %._crit_edge1019.thread, %._crit_edge1085, %._crit_edge1019
  %.pr = phi i8 [ %.pr.pre1086, %._crit_edge1019 ], [ %.pr.pre, %._crit_edge1085 ], [ %.pr.pre10861096, %._crit_edge1019.thread ]
  %.2672.ph = phi i8 [ 0, %._crit_edge1019 ], [ %.1671928, %._crit_edge1085 ], [ 0, %._crit_edge1019.thread ]
  %612 = icmp eq i8 %.pr, 4
  br i1 %612, label %613, label %.thread937

613:                                              ; preds = %611
  %614 = icmp ne i8 %529, 32
  %615 = icmp eq i8 %529, 44
  switch i8 %529, label %.thread937 [
    i8 46, label %616
    i8 44, label %616
    i8 32, label %616
  ]

616:                                              ; preds = %613, %613, %613
  %617 = icmp eq i8 %529, 46
  %618 = sext i1 %614 to i8
  %.mux = select i1 %617, i8 -32, i8 %618
  %619 = select i1 %615, i8 -64, i8 %.mux
  %.not823 = icmp eq i8 %619, -1
  br i1 %.not823, label %.thread937, label %620

620:                                              ; preds = %616
  %621 = load i32, ptr %10, align 4, !tbaa !8
  %622 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %621, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %622, ptr %10, align 4, !tbaa !8
  %623 = icmp sgt i32 %622, -1
  br i1 %623, label %624, label %.thread

624:                                              ; preds = %620
  %625 = select i1 %614, i32 4, i32 1
  %626 = select i1 %615, i32 3, i32 %625
  %627 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %622, i8 noundef zeroext %619, i32 noundef %626)
  store i32 %627, ptr %10, align 4, !tbaa !8
  %628 = icmp sgt i32 %627, -1
  br i1 %628, label %.loopexit960, label %.thread

.thread937:                                       ; preds = %616, %.thread930, %613, %611
  %629 = phi i8 [ 0, %.thread930 ], [ 4, %613 ], [ %.pr, %611 ], [ 4, %616 ]
  %.2672932 = phi i8 [ 1, %.thread930 ], [ %.2672.ph, %613 ], [ %.2672.ph, %611 ], [ %.2672.ph, %616 ]
  %630 = icmp eq i8 %.2672932, 0
  %or.cond114.not = or i1 %or.cond99, %630
  %spec.select845 = select i1 %or.cond114.not, i8 %588, i8 %529
  %631 = icmp eq i8 %spec.select845, 0
  %632 = load i32, ptr %10, align 4, !tbaa !8
  br i1 %631, label %633, label %647

633:                                              ; preds = %.thread937
  %634 = icmp eq i8 %629, 2
  br i1 %634, label %635, label %641

635:                                              ; preds = %633
  %636 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcodes, i64 17), align 1, !tbaa !5
  %637 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcode_lens, i64 17), align 1, !tbaa !5
  %638 = zext i8 %637 to i32
  %639 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %632, i8 noundef zeroext %636, i32 noundef %638)
  store i32 %639, ptr %10, align 4, !tbaa !8
  %640 = icmp sgt i32 %639, -1
  br i1 %640, label %.loopexit960, label %.thread

641:                                              ; preds = %633
  %642 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcodes, i64 1), align 1, !tbaa !5
  %643 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcode_lens, i64 1), align 1, !tbaa !5
  %644 = zext i8 %643 to i32
  %645 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %632, i8 noundef zeroext %642, i32 noundef %644)
  store i32 %645, ptr %10, align 4, !tbaa !8
  %646 = icmp sgt i32 %645, -1
  br i1 %646, label %.loopexit960, label %.thread

647:                                              ; preds = %.thread937
  %648 = add nsw i8 %spec.select845, -1
  %649 = sext i8 %648 to i64
  %650 = getelementptr inbounds [94 x i8], ptr @usx_code_94, i64 0, i64 %649
  %651 = load i8, ptr %650, align 1, !tbaa !5
  %652 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %632, i8 noundef zeroext %651, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %652, ptr %10, align 4, !tbaa !8
  %653 = icmp sgt i32 %652, -1
  br i1 %653, label %.loopexit960, label %.thread

654:                                              ; preds = %587
  %655 = icmp eq i8 %529, 13
  %656 = icmp eq i8 %.0664, 10
  %or.cond117 = select i1 %655, i1 %656, i1 false
  br i1 %or.cond117, label %657, label %661

657:                                              ; preds = %654
  %658 = load i32, ptr %10, align 4, !tbaa !8
  %659 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %658, i8 noundef zeroext 40, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %659, ptr %10, align 4, !tbaa !8
  %660 = icmp sgt i32 %659, -1
  br i1 %660, label %.loopexit960, label %.thread

661:                                              ; preds = %654
  %662 = icmp eq i8 %529, 10
  br i1 %662, label %663, label %676

663:                                              ; preds = %661
  %664 = load i8, ptr %9, align 1, !tbaa !5
  %665 = icmp eq i8 %664, 4
  %666 = load i32, ptr %10, align 4, !tbaa !8
  br i1 %665, label %667, label %673

667:                                              ; preds = %663
  %668 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %666, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %668, ptr %10, align 4, !tbaa !8
  %669 = icmp sgt i32 %668, -1
  br i1 %669, label %670, label %.thread

670:                                              ; preds = %667
  %671 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %668, i8 noundef zeroext -16, i32 noundef 4)
  store i32 %671, ptr %10, align 4, !tbaa !8
  %672 = icmp sgt i32 %671, -1
  br i1 %672, label %.loopexit960, label %.thread

673:                                              ; preds = %663
  %674 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %666, i8 noundef zeroext 39, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %674, ptr %10, align 4, !tbaa !8
  %675 = icmp sgt i32 %674, -1
  br i1 %675, label %.loopexit960, label %.thread

676:                                              ; preds = %661
  br i1 %655, label %677, label %681

677:                                              ; preds = %676
  %678 = load i32, ptr %10, align 4, !tbaa !8
  %679 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %678, i8 noundef zeroext 54, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %679, ptr %10, align 4, !tbaa !8
  %680 = icmp sgt i32 %679, -1
  br i1 %680, label %.loopexit960, label %.thread

681:                                              ; preds = %676
  %682 = icmp eq i8 %529, 9
  br i1 %682, label %683, label %687

683:                                              ; preds = %681
  %684 = load i32, ptr %10, align 4, !tbaa !8
  %685 = call noundef i32 @_Z11append_codePciihPhPKhS2_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %684, i8 noundef zeroext 46, ptr noundef nonnull %9, ptr noundef %3, ptr noundef %4)
  store i32 %685, ptr %10, align 4, !tbaa !8
  %686 = icmp sgt i32 %685, -1
  br i1 %686, label %.loopexit960, label %.thread

687:                                              ; preds = %681
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #5
  %688 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef nonnull %0, i32 noundef %1, i32 noundef %.13651.fr, ptr noundef nonnull %11)
  %.not817 = icmp eq i32 %688, 0
  br i1 %.not817, label %.preheader954, label %691

.preheader954:                                    ; preds = %687
  br i1 %582, label %.lr.ph1010.preheader, label %.thread940

.lr.ph1010.preheader:                             ; preds = %.preheader954
  %689 = sext i32 %581 to i64
  %690 = sub i32 %1, %.13651.fr
  br label %.lr.ph1010

691:                                              ; preds = %687
  %692 = load i32, ptr %11, align 4, !tbaa !8
  %693 = add nsw i32 %692, %.13651.fr
  %694 = load i8, ptr %9, align 1, !tbaa !5
  %.not820 = icmp eq i8 %694, 4
  br i1 %.not820, label %..critedge847_crit_edge, label %695

..critedge847_crit_edge:                          ; preds = %691
  %.pre1084 = load i32, ptr %10, align 4, !tbaa !8
  br label %.critedge847

695:                                              ; preds = %691
  %696 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef nonnull %0, i32 noundef %1, i32 noundef %693, ptr noundef nonnull %11)
  %.not821 = icmp eq i32 %696, 0
  br i1 %.not821, label %726, label %697

697:                                              ; preds = %695
  %698 = load i8, ptr %9, align 1, !tbaa !5
  %.not822 = icmp eq i8 %698, 0
  %.pre1081 = load i32, ptr %10, align 4, !tbaa !8
  br i1 %.not822, label %708, label %699

699:                                              ; preds = %697
  %700 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %.pre1081, i8 noundef zeroext %698)
  store i32 %700, ptr %10, align 4, !tbaa !8
  %701 = icmp sgt i32 %700, -1
  br i1 %701, label %702, label %.thread944

702:                                              ; preds = %699
  %703 = load i8, ptr %3, align 1, !tbaa !5
  %704 = load i8, ptr %4, align 1, !tbaa !5
  %705 = zext i8 %704 to i32
  %706 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %700, i8 noundef zeroext %703, i32 noundef %705)
  store i32 %706, ptr %10, align 4, !tbaa !8
  %707 = icmp sgt i32 %706, -1
  br i1 %707, label %._crit_edge1082, label %.thread944

._crit_edge1082:                                  ; preds = %702
  %.pre1083 = load i8, ptr %9, align 1, !tbaa !5
  br label %708

708:                                              ; preds = %._crit_edge1082, %697
  %709 = phi i8 [ 0, %697 ], [ %.pre1083, %._crit_edge1082 ]
  %710 = phi i32 [ %.pre1081, %697 ], [ %706, %._crit_edge1082 ]
  %711 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %710, i8 noundef zeroext %709)
  store i32 %711, ptr %10, align 4, !tbaa !8
  %712 = icmp sgt i32 %711, -1
  br i1 %712, label %713, label %.thread944

713:                                              ; preds = %708
  %714 = load i8, ptr %3, align 1, !tbaa !5
  %715 = load i8, ptr %4, align 1, !tbaa !5
  %716 = zext i8 %715 to i32
  %717 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %711, i8 noundef zeroext %714, i32 noundef %716)
  store i32 %717, ptr %10, align 4, !tbaa !8
  %718 = icmp sgt i32 %717, -1
  br i1 %718, label %719, label %.thread944

719:                                              ; preds = %713
  %720 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcodes, i64 1), align 1, !tbaa !5
  %721 = load i8, ptr getelementptr inbounds (i8, ptr @usx_vcode_lens, i64 1), align 1, !tbaa !5
  %722 = zext i8 %721 to i32
  %723 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %717, i8 noundef zeroext %720, i32 noundef %722)
  store i32 %723, ptr %10, align 4, !tbaa !8
  %724 = icmp sgt i32 %723, -1
  br i1 %724, label %725, label %.thread944

725:                                              ; preds = %719
  store i8 4, ptr %9, align 1, !tbaa !5
  br label %.critedge847

726:                                              ; preds = %695
  %727 = load i32, ptr %10, align 4, !tbaa !8
  %728 = load i8, ptr %9, align 1, !tbaa !5
  %729 = call noundef i32 @_Z18append_switch_codePciih(ptr noundef %2, i32 noundef 2147483646, i32 noundef %727, i8 noundef zeroext %728)
  store i32 %729, ptr %10, align 4, !tbaa !8
  %730 = icmp sgt i32 %729, -1
  br i1 %730, label %731, label %.thread944

731:                                              ; preds = %726
  %732 = load i8, ptr %21, align 1, !tbaa !5
  %733 = load i8, ptr %22, align 1, !tbaa !5
  %734 = zext i8 %733 to i32
  %735 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %729, i8 noundef zeroext %732, i32 noundef %734)
  store i32 %735, ptr %10, align 4, !tbaa !8
  %736 = icmp sgt i32 %735, -1
  br i1 %736, label %.critedge847, label %.thread944

.critedge847:                                     ; preds = %..critedge847_crit_edge, %725, %731
  %737 = phi i32 [ %.pre1084, %..critedge847_crit_edge ], [ %723, %725 ], [ %735, %731 ]
  %738 = call noundef i32 @_Z13encodeUnicodePciiii(ptr noundef %2, i32 noundef 2147483646, i32 noundef %737, i32 noundef %688, i32 noundef %.06651024)
  store i32 %738, ptr %10, align 4, !tbaa !8
  %739 = icmp sgt i32 %738, -1
  br i1 %739, label %740, label %.thread944

740:                                              ; preds = %.critedge847
  %741 = add nsw i32 %693, -1
  br label %.loopexit

.lr.ph1010:                                       ; preds = %.lr.ph1010.preheader, %764
  %indvars.iv1070 = phi i64 [ %689, %.lr.ph1010.preheader ], [ %indvars.iv.next1071, %764 ]
  %.07461008 = phi i32 [ 1, %.lr.ph1010.preheader ], [ %765, %764 ]
  %742 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1070
  %743 = load i8, ptr %742, align 1, !tbaa !5
  %744 = trunc nsw i64 %indvars.iv1070 to i32
  %745 = call noundef i32 @_Z8readUTF8PKciiPi(ptr noundef nonnull %0, i32 noundef %1, i32 noundef %744, ptr noundef nonnull %11)
  %.not818 = icmp eq i32 %745, 0
  br i1 %.not818, label %746, label %.thread940

746:                                              ; preds = %.lr.ph1010
  %747 = icmp slt i64 %indvars.iv1070, %24
  br i1 %747, label %748, label %764

748:                                              ; preds = %746
  %749 = getelementptr i8, ptr %742, i64 -1
  %750 = load i8, ptr %749, align 1, !tbaa !5
  %751 = icmp eq i8 %743, %750
  br i1 %751, label %752, label %764

752:                                              ; preds = %748
  %753 = getelementptr i8, ptr %742, i64 1
  %754 = load i8, ptr %753, align 1, !tbaa !5
  %755 = icmp eq i8 %743, %754
  br i1 %755, label %756, label %764

756:                                              ; preds = %752
  %757 = getelementptr i8, ptr %742, i64 2
  %758 = load i8, ptr %757, align 1, !tbaa !5
  %759 = icmp eq i8 %743, %758
  br i1 %759, label %760, label %764

760:                                              ; preds = %756
  %761 = getelementptr i8, ptr %742, i64 3
  %762 = load i8, ptr %761, align 1, !tbaa !5
  %763 = icmp eq i8 %743, %762
  br i1 %763, label %.thread940, label %764

764:                                              ; preds = %760, %756, %752, %748, %746
  %765 = add nuw nsw i32 %.07461008, 1
  %indvars.iv.next1071 = add nsw i64 %indvars.iv1070, 1
  %lftr.wideiv1073 = trunc i64 %indvars.iv.next1071 to i32
  %exitcond1074.not = icmp eq i32 %lftr.wideiv1073, %1
  br i1 %exitcond1074.not, label %.thread940, label %.lr.ph1010, !llvm.loop !21

.thread940:                                       ; preds = %764, %.lr.ph1010, %760, %.preheader954
  %.0746.lcssa = phi i32 [ 1, %.preheader954 ], [ %.07461008, %760 ], [ %.07461008, %.lr.ph1010 ], [ %690, %764 ]
  %766 = load i32, ptr %10, align 4, !tbaa !8
  %767 = load i8, ptr %9, align 1, !tbaa !5
  %768 = call noundef i32 @_Z20append_nibble_escapePciihPKhS1_(ptr noundef %2, i32 noundef 2147483646, i32 noundef %766, i8 noundef zeroext %767, ptr noundef %3, ptr noundef %4)
  store i32 %768, ptr %10, align 4, !tbaa !8
  %769 = icmp sgt i32 %768, -1
  br i1 %769, label %770, label %.thread944

770:                                              ; preds = %.thread940
  %771 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %768, i8 noundef zeroext -8, i32 noundef 5)
  store i32 %771, ptr %10, align 4, !tbaa !8
  %772 = icmp sgt i32 %771, -1
  br i1 %772, label %773, label %.thread944

773:                                              ; preds = %770
  %774 = call noundef i32 @_Z11encodeCountPciii(ptr noundef %2, i32 noundef 2147483646, i32 noundef %771, i32 noundef %.0746.lcssa)
  store i32 %774, ptr %10, align 4, !tbaa !8
  %775 = icmp sgt i32 %774, -1
  br i1 %775, label %.preheader, label %.thread944

.preheader:                                       ; preds = %773, %781
  %776 = phi i32 [ %779, %781 ], [ %774, %773 ]
  %indvars.iv1075 = phi i64 [ %indvars.iv.next1076, %781 ], [ %57, %773 ]
  %.3749 = phi i32 [ %782, %781 ], [ %.0746.lcssa, %773 ]
  %777 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv1075
  %778 = load i8, ptr %777, align 1, !tbaa !5
  %779 = call noundef i32 @_Z11append_bitsPciihi(ptr noundef %2, i32 noundef 2147483646, i32 noundef %776, i8 noundef zeroext %778, i32 noundef 8)
  store i32 %779, ptr %10, align 4, !tbaa !8
  %780 = icmp sgt i32 %779, -1
  br i1 %780, label %781, label %.thread944

781:                                              ; preds = %.preheader
  %indvars.iv.next1076 = add nsw i64 %indvars.iv1075, 1
  %782 = add nsw i32 %.3749, -1
  %.not819 = icmp eq i32 %782, 0
  br i1 %.not819, label %.loopexit.loopexit, label %.preheader, !llvm.loop !22

.thread944:                                       ; preds = %.critedge847, %702, %699, %719, %713, %708, %731, %726, %773, %770, %.thread940, %.preheader
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  br label %.thread

.loopexit.loopexit:                               ; preds = %781
  %783 = trunc nsw i64 %indvars.iv1075 to i32
  br label %.loopexit

.loopexit:                                        ; preds = %.loopexit.loopexit, %740
  %.2667 = phi i32 [ %688, %740 ], [ %.06651024, %.loopexit.loopexit ]
  %.22660 = phi i32 [ %741, %740 ], [ %783, %.loopexit.loopexit ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #5
  br label %.loopexit960

.loopexit960.loopexit:                            ; preds = %185
  %784 = trunc nsw i64 %indvars.iv1051 to i32
  br label %.loopexit960

.loopexit960:                                     ; preds = %.loopexit960.loopexit, %._crit_edge1006, %.thread951, %.loopexit, %624, %._crit_edge, %657, %647, %635, %641, %673, %670, %683, %677, %47, %38, %92
  %.3673 = phi i8 [ %.06701023, %38 ], [ %.06701023, %92 ], [ %.06701023, %._crit_edge ], [ %.2672932, %635 ], [ %.2672932, %641 ], [ %.2672932, %647 ], [ %.1671928, %670 ], [ %.1671928, %673 ], [ %.1671928, %677 ], [ %.1671928, %683 ], [ %.1671928, %.loopexit ], [ %.06701023, %47 ], [ %.1671928, %657 ], [ %.06701023, %._crit_edge1006 ], [ %.2672.ph, %624 ], [ %.06701023, %.thread951 ], [ %.06701023, %.loopexit960.loopexit ]
  %.3668 = phi i32 [ %.06651024, %38 ], [ %.06651024, %92 ], [ %.06651024, %._crit_edge ], [ %.06651024, %635 ], [ %.06651024, %641 ], [ %.06651024, %647 ], [ %.06651024, %670 ], [ %.06651024, %673 ], [ %.06651024, %677 ], [ %.06651024, %683 ], [ %.2667, %.loopexit ], [ %.06651024, %47 ], [ %.06651024, %657 ], [ %.06651024, %._crit_edge1006 ], [ %.06651024, %624 ], [ %.06651024, %.thread951 ], [ %.06651024, %.loopexit960.loopexit ]
  %.23661 = phi i32 [ %39, %38 ], [ %96, %92 ], [ %147, %._crit_edge ], [ %.13651.fr, %635 ], [ %.13651.fr, %641 ], [ %.13651.fr, %647 ], [ %.13651.fr, %670 ], [ %.13651.fr, %673 ], [ %.13651.fr, %677 ], [ %.13651.fr, %683 ], [ %.22660, %.loopexit ], [ %48, %47 ], [ %581, %657 ], [ %439, %._crit_edge1006 ], [ %.13651.fr, %624 ], [ %458, %.thread951 ], [ %784, %.loopexit960.loopexit ]
  %785 = add nsw i32 %.23661, 1
  %786 = icmp slt i32 %785, %1
  br i1 %786, label %34, label %._crit_edge1027.loopexit, !llvm.loop !23

._crit_edge1027.loopexit:                         ; preds = %.loopexit960
  %.pre1088 = load i32, ptr %10, align 4, !tbaa !8
  %.pre1089 = load i8, ptr %9, align 1, !tbaa !5
  br label %._crit_edge1027

._crit_edge1027:                                  ; preds = %._crit_edge1027.loopexit, %.preheader965
  %787 = phi i8 [ 0, %.preheader965 ], [ %.pre1089, %._crit_edge1027.loopexit ]
  %788 = phi i32 [ %12, %.preheader965 ], [ %.pre1088, %._crit_edge1027.loopexit ]
  %.0670.lcssa = phi i8 [ 0, %.preheader965 ], [ %.3673, %._crit_edge1027.loopexit ]
  %789 = add nsw i32 %788, 7
  %790 = sdiv i32 %789, 8
  %791 = call noundef i32 @_Z17append_final_bitsPciihhPKhS1_(ptr noundef %2, i32 noundef %790, i32 noundef %788, i8 noundef zeroext %787, i8 noundef zeroext %.0670.lcssa, ptr noundef %3, ptr noundef %4)
  br label %.thread

.thread:                                          ; preds = %624, %620, %453, %246, %238, %235, %229, %166, %171, %176, %.thread854.thread, %131, %.critedge, %50, %41, %92, %537, %532, %551, %548, %575, %572, %563, %558, %605, %601, %635, %641, %647, %657, %670, %667, %673, %677, %683, %141, %.preheader958, %263, %254, %.thread944, %8, %._crit_edge1027
  %.91 = phi i32 [ %790, %._crit_edge1027 ], [ 2147483647, %8 ], [ 2147483647, %.thread944 ], [ 2147483647, %254 ], [ 2147483647, %263 ], [ 2147483647, %.preheader958 ], [ 2147483647, %141 ], [ 2147483647, %683 ], [ 2147483647, %677 ], [ 2147483647, %673 ], [ 2147483647, %667 ], [ 2147483647, %670 ], [ 2147483647, %657 ], [ 2147483647, %647 ], [ 2147483647, %641 ], [ 2147483647, %635 ], [ 2147483647, %601 ], [ 2147483647, %605 ], [ 2147483647, %558 ], [ 2147483647, %563 ], [ 2147483647, %572 ], [ 2147483647, %575 ], [ 2147483647, %548 ], [ 2147483647, %551 ], [ 2147483647, %532 ], [ 2147483647, %537 ], [ 2147483647, %92 ], [ 2147483647, %41 ], [ 2147483647, %50 ], [ 2147483647, %.critedge ], [ 2147483647, %131 ], [ 2147483647, %.thread854.thread ], [ 2147483647, %176 ], [ 2147483647, %171 ], [ 2147483647, %166 ], [ 2147483647, %229 ], [ 2147483647, %235 ], [ 2147483647, %238 ], [ 2147483647, %246 ], [ 2147483647, %453 ], [ 2147483647, %620 ], [ 2147483647, %624 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  ret i32 %.91
}

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #3

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #4

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

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


; Effective O3 passes: ConstraintEliminationPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass