; LLVM IR from glaretechnologies/substrata :: opus/opus-1.3.1/src (opus_demo)

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

@stderr = external global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [13 x i8], align 1
@silk8_test = external hidden constant [8 x [4 x i32]], align 16
@.str.59 = external hidden unnamed_addr constant [14 x i8], align 1
@silk12_test = external hidden constant [8 x [4 x i32]], align 16
@.str.60 = external hidden unnamed_addr constant [14 x i8], align 1
@silk16_test = external hidden constant [8 x [4 x i32]], align 16
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@hybrid24_test = external hidden constant [4 x [4 x i32]], align 16
@.str.62 = external hidden unnamed_addr constant [16 x i8], align 1
@hybrid48_test = external hidden constant [4 x [4 x i32]], align 16
@.str.63 = external hidden unnamed_addr constant [11 x i8], align 1
@celt_test = external hidden constant [32 x [4 x i32]], align 16
@.str.64 = external hidden unnamed_addr constant [14 x i8], align 1
@celt_hq_test = external hidden constant [4 x [4 x i32]], align 16
@.str.65 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @print_usage(ptr noundef) #0

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

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca [2 x i32], align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca [2 x ptr], align 16
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca i32, align 4
  %37 = alloca double, align 8
  %38 = alloca double, align 8
  %39 = alloca double, align 8
  %40 = alloca double, align 8
  %41 = alloca double, align 8
  %42 = alloca double, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca [2 x i32], align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i64, align 8
  %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 i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca [4 x i8], align 1
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca [4 x i8], align 1
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i16, align 2
  %83 = alloca double, align 8
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #10
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #10
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #10
  store ptr null, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  store ptr null, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  store i32 0, ptr %17, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %18) #10
  call void @llvm.memset.p0.i64(ptr align 16 %18, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #10
  store ptr null, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  store i32 0, ptr %27, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #10
  store i32 0, ptr %29, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  store i32 0, ptr %30, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  store i32 0, ptr %32, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  store i32 0, ptr %33, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  store ptr null, ptr %34, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  store ptr null, ptr %35, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #10
  store i32 2049, ptr %36, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  store double 0.000000e+00, ptr %37, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  store double 0.000000e+00, ptr %38, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #10
  store double 0.000000e+00, ptr %39, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #10
  store double 0.000000e+00, ptr %40, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #10
  store double 0.000000e+00, ptr %42, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  store i32 -1000, ptr %45, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  store i32 0, ptr %47, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  store i32 1, ptr %48, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  store i32 0, ptr %49, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  store i32 0, ptr %52, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  store i32 0, ptr %53, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #10
  store i32 96000, ptr %54, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  store i32 0, ptr %56, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  store i32 0, ptr %57, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  store i32 0, ptr %58, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  store i32 0, ptr %59, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #10
  store i32 0, ptr %60, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  store i32 0, ptr %61, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #10
  store i32 0, ptr %62, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  store i32 0, ptr %63, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #10
  store ptr null, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #10
  store i32 0, ptr %65, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #10
  store i32 0, ptr %66, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #10
  store i32 0, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #10
  store i32 48000, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #10
  store i32 0, ptr %69, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #10
  store i32 0, ptr %70, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  store i32 5000, ptr %71, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #10
  store i32 0, ptr %72, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #10
  store i32 1, ptr %73, align 4, !tbaa !5
  %84 = load i32, ptr %4, align 4, !tbaa !5
  %85 = icmp slt i32 %84, 5
  br i1 %85, label %86, label %88

86:                                               ; preds = %2
  %87 = load ptr, ptr %5, align 8, !tbaa !9
  call void @print_usage(ptr noundef %87)
  br label %2209

88:                                               ; preds = %2
  store i64 0, ptr %44, align 8, !tbaa !13
  store i64 0, ptr %43, align 8, !tbaa !13
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = call ptr @opus_get_version_string()
  %91 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef @.str.17, ptr noundef %90) #10
  store i32 1, ptr %13, align 4, !tbaa !5
  %92 = load ptr, ptr %5, align 8, !tbaa !9
  %93 = load i32, ptr %13, align 4, !tbaa !5
  %94 = sext i32 %93 to i64
  %95 = getelementptr inbounds ptr, ptr %92, i64 %94
  %96 = load ptr, ptr %95, align 8, !tbaa !9
  %97 = call i32 @strcmp(ptr noundef %96, ptr noundef @.str.18) #11
  %98 = icmp eq i32 %97, 0
  br i1 %98, label %99, label %102

99:                                               ; preds = %88
  store i32 1, ptr %52, align 4, !tbaa !5
  %100 = load i32, ptr %13, align 4, !tbaa !5
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr %13, align 4, !tbaa !5
  br label %114

102:                                              ; preds = %88
  %103 = load ptr, ptr %5, align 8, !tbaa !9
  %104 = load i32, ptr %13, align 4, !tbaa !5
  %105 = sext i32 %104 to i64
  %106 = getelementptr inbounds ptr, ptr %103, i64 %105
  %107 = load ptr, ptr %106, align 8, !tbaa !9
  %108 = call i32 @strcmp(ptr noundef %107, ptr noundef @.str.19) #11
  %109 = icmp eq i32 %108, 0
  br i1 %109, label %110, label %113

110:                                              ; preds = %102
  store i32 1, ptr %53, align 4, !tbaa !5
  %111 = load i32, ptr %13, align 4, !tbaa !5
  %112 = add nsw i32 %111, 1
  store i32 %112, ptr %13, align 4, !tbaa !5
  br label %113

113:                                              ; preds = %110, %102
  br label %114

114:                                              ; preds = %113, %99
  %115 = load i32, ptr %53, align 4, !tbaa !5
  %116 = icmp ne i32 %115, 0
  br i1 %116, label %122, label %117

117:                                              ; preds = %114
  %118 = load i32, ptr %4, align 4, !tbaa !5
  %119 = icmp slt i32 %118, 7
  br i1 %119, label %120, label %122

120:                                              ; preds = %117
  %121 = load ptr, ptr %5, align 8, !tbaa !9
  call void @print_usage(ptr noundef %121)
  br label %2209

122:                                              ; preds = %117, %114
  %123 = load i32, ptr %53, align 4, !tbaa !5
  %124 = icmp ne i32 %123, 0
  br i1 %124, label %165, label %125

125:                                              ; preds = %122
  %126 = load ptr, ptr %5, align 8, !tbaa !9
  %127 = load i32, ptr %13, align 4, !tbaa !5
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds ptr, ptr %126, i64 %128
  %130 = load ptr, ptr %129, align 8, !tbaa !9
  %131 = call i32 @strcmp(ptr noundef %130, ptr noundef @.str.20) #11
  %132 = icmp eq i32 %131, 0
  br i1 %132, label %133, label %134

133:                                              ; preds = %125
  store i32 2048, ptr %36, align 4, !tbaa !5
  br label %162

134:                                              ; preds = %125
  %135 = load ptr, ptr %5, align 8, !tbaa !9
  %136 = load i32, ptr %13, align 4, !tbaa !5
  %137 = sext i32 %136 to i64
  %138 = getelementptr inbounds ptr, ptr %135, i64 %137
  %139 = load ptr, ptr %138, align 8, !tbaa !9
  %140 = call i32 @strcmp(ptr noundef %139, ptr noundef @.str.21) #11
  %141 = icmp eq i32 %140, 0
  br i1 %141, label %142, label %143

142:                                              ; preds = %134
  store i32 2051, ptr %36, align 4, !tbaa !5
  br label %161

143:                                              ; preds = %134
  %144 = load ptr, ptr %5, align 8, !tbaa !9
  %145 = load i32, ptr %13, align 4, !tbaa !5
  %146 = sext i32 %145 to i64
  %147 = getelementptr inbounds ptr, ptr %144, i64 %146
  %148 = load ptr, ptr %147, align 8, !tbaa !9
  %149 = call i32 @strcmp(ptr noundef %148, ptr noundef @.str.22) #11
  %150 = icmp ne i32 %149, 0
  br i1 %150, label %151, label %160

151:                                              ; preds = %143
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = load ptr, ptr %5, align 8, !tbaa !9
  %154 = load i32, ptr %13, align 4, !tbaa !5
  %155 = sext i32 %154 to i64
  %156 = getelementptr inbounds ptr, ptr %153, i64 %155
  %157 = load ptr, ptr %156, align 8, !tbaa !9
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef @.str.23, ptr noundef %157) #10
  %159 = load ptr, ptr %5, align 8, !tbaa !9
  call void @print_usage(ptr noundef %159)
  br label %2209

160:                                              ; preds = %143
  br label %161

161:                                              ; preds = %160, %142
  br label %162

162:                                              ; preds = %161, %133
  %163 = load i32, ptr %13, align 4, !tbaa !5
  %164 = add nsw i32 %163, 1
  store i32 %164, ptr %13, align 4, !tbaa !5
  br label %165

165:                                              ; preds = %162, %122
  %166 = load ptr, ptr %5, align 8, !tbaa !9
  %167 = load i32, ptr %13, align 4, !tbaa !5
  %168 = sext i32 %167 to i64
  %169 = getelementptr inbounds ptr, ptr %166, i64 %168
  %170 = load ptr, ptr %169, align 8, !tbaa !9
  %171 = call i64 @atol(ptr noundef %170) #11
  %172 = trunc i64 %171 to i32
  store i32 %172, ptr %20, align 4, !tbaa !5
  %173 = load i32, ptr %13, align 4, !tbaa !5
  %174 = add nsw i32 %173, 1
  store i32 %174, ptr %13, align 4, !tbaa !5
  %175 = load i32, ptr %20, align 4, !tbaa !5
  %176 = icmp ne i32 %175, 8000
  br i1 %176, label %177, label %192

177:                                              ; preds = %165
  %178 = load i32, ptr %20, align 4, !tbaa !5
  %179 = icmp ne i32 %178, 12000
  br i1 %179, label %180, label %192

180:                                              ; preds = %177
  %181 = load i32, ptr %20, align 4, !tbaa !5
  %182 = icmp ne i32 %181, 16000
  br i1 %182, label %183, label %192

183:                                              ; preds = %180
  %184 = load i32, ptr %20, align 4, !tbaa !5
  %185 = icmp ne i32 %184, 24000
  br i1 %185, label %186, label %192

186:                                              ; preds = %183
  %187 = load i32, ptr %20, align 4, !tbaa !5
  %188 = icmp ne i32 %187, 48000
  br i1 %188, label %189, label %192

189:                                              ; preds = %186
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef @.str.24) #10
  br label %2209

192:                                              ; preds = %186, %183, %180, %177, %165
  %193 = load i32, ptr %20, align 4, !tbaa !5
  %194 = sdiv i32 %193, 50
  store i32 %194, ptr %15, align 4, !tbaa !5
  %195 = load ptr, ptr %5, align 8, !tbaa !9
  %196 = load i32, ptr %13, align 4, !tbaa !5
  %197 = sext i32 %196 to i64
  %198 = getelementptr inbounds ptr, ptr %195, i64 %197
  %199 = load ptr, ptr %198, align 8, !tbaa !9
  %200 = call i32 @atoi(ptr noundef %199) #11
  store i32 %200, ptr %16, align 4, !tbaa !5
  %201 = load i32, ptr %13, align 4, !tbaa !5
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr %13, align 4, !tbaa !5
  %203 = load i32, ptr %16, align 4, !tbaa !5
  %204 = icmp slt i32 %203, 1
  br i1 %204, label %208, label %205

205:                                              ; preds = %192
  %206 = load i32, ptr %16, align 4, !tbaa !5
  %207 = icmp sgt i32 %206, 2
  br i1 %207, label %208, label %211

208:                                              ; preds = %205, %192
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef @.str.25) #10
  br label %2209

211:                                              ; preds = %205
  %212 = load i32, ptr %53, align 4, !tbaa !5
  %213 = icmp ne i32 %212, 0
  br i1 %213, label %224, label %214

214:                                              ; preds = %211
  %215 = load ptr, ptr %5, align 8, !tbaa !9
  %216 = load i32, ptr %13, align 4, !tbaa !5
  %217 = sext i32 %216 to i64
  %218 = getelementptr inbounds ptr, ptr %215, i64 %217
  %219 = load ptr, ptr %218, align 8, !tbaa !9
  %220 = call i64 @atol(ptr noundef %219) #11
  %221 = trunc i64 %220 to i32
  store i32 %221, ptr %17, align 4, !tbaa !5
  %222 = load i32, ptr %13, align 4, !tbaa !5
  %223 = add nsw i32 %222, 1
  store i32 %223, ptr %13, align 4, !tbaa !5
  br label %224

224:                                              ; preds = %214, %211
  store i32 1, ptr %21, align 4, !tbaa !5
  store i32 1500, ptr %22, align 4, !tbaa !5
  store i32 10, ptr %23, align 4, !tbaa !5
  store i32 0, ptr %24, align 4, !tbaa !5
  store i32 -1000, ptr %26, align 4, !tbaa !5
  store i32 0, ptr %25, align 4, !tbaa !5
  store i32 0, ptr %28, align 4, !tbaa !5
  br label %225

225:                                              ; preds = %908, %224
  %226 = load i32, ptr %13, align 4, !tbaa !5
  %227 = load i32, ptr %4, align 4, !tbaa !5
  %228 = sub nsw i32 %227, 2
  %229 = icmp slt i32 %226, %228
  br i1 %229, label %230, label %909

230:                                              ; preds = %225
  %231 = load ptr, ptr %5, align 8, !tbaa !9
  %232 = load i32, ptr %13, align 4, !tbaa !5
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds ptr, ptr %231, i64 %233
  %235 = load ptr, ptr %234, align 8, !tbaa !9
  %236 = call i32 @strcmp(ptr noundef %235, ptr noundef @.str.26) #11
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %250

238:                                              ; preds = %230
  br label %239

239:                                              ; preds = %238
  %240 = load i32, ptr %53, align 4, !tbaa !5
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %245

242:                                              ; preds = %239
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %243, ptr noundef @.str.27, ptr noundef @.str.26) #10
  br label %2209

245:                                              ; preds = %239
  br label %246

246:                                              ; preds = %245
  br label %247

247:                                              ; preds = %246
  store i32 0, ptr %21, align 4, !tbaa !5
  %248 = load i32, ptr %13, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr %13, align 4, !tbaa !5
  br label %908

250:                                              ; preds = %230
  %251 = load ptr, ptr %5, align 8, !tbaa !9
  %252 = load i32, ptr %13, align 4, !tbaa !5
  %253 = sext i32 %252 to i64
  %254 = getelementptr inbounds ptr, ptr %251, i64 %253
  %255 = load ptr, ptr %254, align 8, !tbaa !9
  %256 = call i32 @strcmp(ptr noundef %255, ptr noundef @.str.28) #11
  %257 = icmp eq i32 %256, 0
  br i1 %257, label %258, label %333

258:                                              ; preds = %250
  br label %259

259:                                              ; preds = %258
  %260 = load i32, ptr %53, align 4, !tbaa !5
  %261 = icmp ne i32 %260, 0
  br i1 %261, label %262, label %265

262:                                              ; preds = %259
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.27, ptr noundef @.str.28) #10
  br label %2209

265:                                              ; preds = %259
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  %268 = load ptr, ptr %5, align 8, !tbaa !9
  %269 = load i32, ptr %13, align 4, !tbaa !5
  %270 = add nsw i32 %269, 1
  %271 = sext i32 %270 to i64
  %272 = getelementptr inbounds ptr, ptr %268, i64 %271
  %273 = load ptr, ptr %272, align 8, !tbaa !9
  %274 = call i32 @strcmp(ptr noundef %273, ptr noundef @.str.29) #11
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %277

276:                                              ; preds = %267
  store i32 1101, ptr %45, align 4, !tbaa !5
  br label %330

277:                                              ; preds = %267
  %278 = load ptr, ptr %5, align 8, !tbaa !9
  %279 = load i32, ptr %13, align 4, !tbaa !5
  %280 = add nsw i32 %279, 1
  %281 = sext i32 %280 to i64
  %282 = getelementptr inbounds ptr, ptr %278, i64 %281
  %283 = load ptr, ptr %282, align 8, !tbaa !9
  %284 = call i32 @strcmp(ptr noundef %283, ptr noundef @.str.30) #11
  %285 = icmp eq i32 %284, 0
  br i1 %285, label %286, label %287

286:                                              ; preds = %277
  store i32 1102, ptr %45, align 4, !tbaa !5
  br label %329

287:                                              ; preds = %277
  %288 = load ptr, ptr %5, align 8, !tbaa !9
  %289 = load i32, ptr %13, align 4, !tbaa !5
  %290 = add nsw i32 %289, 1
  %291 = sext i32 %290 to i64
  %292 = getelementptr inbounds ptr, ptr %288, i64 %291
  %293 = load ptr, ptr %292, align 8, !tbaa !9
  %294 = call i32 @strcmp(ptr noundef %293, ptr noundef @.str.31) #11
  %295 = icmp eq i32 %294, 0
  br i1 %295, label %296, label %297

296:                                              ; preds = %287
  store i32 1103, ptr %45, align 4, !tbaa !5
  br label %328

297:                                              ; preds = %287
  %298 = load ptr, ptr %5, align 8, !tbaa !9
  %299 = load i32, ptr %13, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds ptr, ptr %298, i64 %301
  %303 = load ptr, ptr %302, align 8, !tbaa !9
  %304 = call i32 @strcmp(ptr noundef %303, ptr noundef @.str.32) #11
  %305 = icmp eq i32 %304, 0
  br i1 %305, label %306, label %307

306:                                              ; preds = %297
  store i32 1104, ptr %45, align 4, !tbaa !5
  br label %327

307:                                              ; preds = %297
  %308 = load ptr, ptr %5, align 8, !tbaa !9
  %309 = load i32, ptr %13, align 4, !tbaa !5
  %310 = add nsw i32 %309, 1
  %311 = sext i32 %310 to i64
  %312 = getelementptr inbounds ptr, ptr %308, i64 %311
  %313 = load ptr, ptr %312, align 8, !tbaa !9
  %314 = call i32 @strcmp(ptr noundef %313, ptr noundef @.str.33) #11
  %315 = icmp eq i32 %314, 0
  br i1 %315, label %316, label %317

316:                                              ; preds = %307
  store i32 1105, ptr %45, align 4, !tbaa !5
  br label %326

317:                                              ; preds = %307
  %318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %319 = load ptr, ptr %5, align 8, !tbaa !9
  %320 = load i32, ptr %13, align 4, !tbaa !5
  %321 = add nsw i32 %320, 1
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds ptr, ptr %319, i64 %322
  %324 = load ptr, ptr %323, align 8, !tbaa !9
  %325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %318, ptr noundef @.str.34, ptr noundef %324) #10
  br label %2209

326:                                              ; preds = %316
  br label %327

327:                                              ; preds = %326, %306
  br label %328

328:                                              ; preds = %327, %296
  br label %329

329:                                              ; preds = %328, %286
  br label %330

330:                                              ; preds = %329, %276
  %331 = load i32, ptr %13, align 4, !tbaa !5
  %332 = add nsw i32 %331, 2
  store i32 %332, ptr %13, align 4, !tbaa !5
  br label %907

333:                                              ; preds = %250
  %334 = load ptr, ptr %5, align 8, !tbaa !9
  %335 = load i32, ptr %13, align 4, !tbaa !5
  %336 = sext i32 %335 to i64
  %337 = getelementptr inbounds ptr, ptr %334, i64 %336
  %338 = load ptr, ptr %337, align 8, !tbaa !9
  %339 = call i32 @strcmp(ptr noundef %338, ptr noundef @.str.35) #11
  %340 = icmp eq i32 %339, 0
  br i1 %340, label %341, label %482

341:                                              ; preds = %333
  br label %342

342:                                              ; preds = %341
  %343 = load i32, ptr %53, align 4, !tbaa !5
  %344 = icmp ne i32 %343, 0
  br i1 %344, label %345, label %348

345:                                              ; preds = %342
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef @.str.27, ptr noundef @.str.35) #10
  br label %2209

348:                                              ; preds = %342
  br label %349

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  %351 = load ptr, ptr %5, align 8, !tbaa !9
  %352 = load i32, ptr %13, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  %354 = sext i32 %353 to i64
  %355 = getelementptr inbounds ptr, ptr %351, i64 %354
  %356 = load ptr, ptr %355, align 8, !tbaa !9
  %357 = call i32 @strcmp(ptr noundef %356, ptr noundef @.str.36) #11
  %358 = icmp eq i32 %357, 0
  br i1 %358, label %359, label %362

359:                                              ; preds = %350
  %360 = load i32, ptr %20, align 4, !tbaa !5
  %361 = sdiv i32 %360, 400
  store i32 %361, ptr %15, align 4, !tbaa !5
  br label %479

362:                                              ; preds = %350
  %363 = load ptr, ptr %5, align 8, !tbaa !9
  %364 = load i32, ptr %13, align 4, !tbaa !5
  %365 = add nsw i32 %364, 1
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds ptr, ptr %363, i64 %366
  %368 = load ptr, ptr %367, align 8, !tbaa !9
  %369 = call i32 @strcmp(ptr noundef %368, ptr noundef @.str.37) #11
  %370 = icmp eq i32 %369, 0
  br i1 %370, label %371, label %374

371:                                              ; preds = %362
  %372 = load i32, ptr %20, align 4, !tbaa !5
  %373 = sdiv i32 %372, 200
  store i32 %373, ptr %15, align 4, !tbaa !5
  br label %478

374:                                              ; preds = %362
  %375 = load ptr, ptr %5, align 8, !tbaa !9
  %376 = load i32, ptr %13, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds ptr, ptr %375, i64 %378
  %380 = load ptr, ptr %379, align 8, !tbaa !9
  %381 = call i32 @strcmp(ptr noundef %380, ptr noundef @.str.38) #11
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %386

383:                                              ; preds = %374
  %384 = load i32, ptr %20, align 4, !tbaa !5
  %385 = sdiv i32 %384, 100
  store i32 %385, ptr %15, align 4, !tbaa !5
  br label %477

386:                                              ; preds = %374
  %387 = load ptr, ptr %5, align 8, !tbaa !9
  %388 = load i32, ptr %13, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds ptr, ptr %387, i64 %390
  %392 = load ptr, ptr %391, align 8, !tbaa !9
  %393 = call i32 @strcmp(ptr noundef %392, ptr noundef @.str.39) #11
  %394 = icmp eq i32 %393, 0
  br i1 %394, label %395, label %398

395:                                              ; preds = %386
  %396 = load i32, ptr %20, align 4, !tbaa !5
  %397 = sdiv i32 %396, 50
  store i32 %397, ptr %15, align 4, !tbaa !5
  br label %476

398:                                              ; preds = %386
  %399 = load ptr, ptr %5, align 8, !tbaa !9
  %400 = load i32, ptr %13, align 4, !tbaa !5
  %401 = add nsw i32 %400, 1
  %402 = sext i32 %401 to i64
  %403 = getelementptr inbounds ptr, ptr %399, i64 %402
  %404 = load ptr, ptr %403, align 8, !tbaa !9
  %405 = call i32 @strcmp(ptr noundef %404, ptr noundef @.str.40) #11
  %406 = icmp eq i32 %405, 0
  br i1 %406, label %407, label %410

407:                                              ; preds = %398
  %408 = load i32, ptr %20, align 4, !tbaa !5
  %409 = sdiv i32 %408, 25
  store i32 %409, ptr %15, align 4, !tbaa !5
  br label %475

410:                                              ; preds = %398
  %411 = load ptr, ptr %5, align 8, !tbaa !9
  %412 = load i32, ptr %13, align 4, !tbaa !5
  %413 = add nsw i32 %412, 1
  %414 = sext i32 %413 to i64
  %415 = getelementptr inbounds ptr, ptr %411, i64 %414
  %416 = load ptr, ptr %415, align 8, !tbaa !9
  %417 = call i32 @strcmp(ptr noundef %416, ptr noundef @.str.41) #11
  %418 = icmp eq i32 %417, 0
  br i1 %418, label %419, label %423

419:                                              ; preds = %410
  %420 = load i32, ptr %20, align 4, !tbaa !5
  %421 = mul nsw i32 3, %420
  %422 = sdiv i32 %421, 50
  store i32 %422, ptr %15, align 4, !tbaa !5
  br label %474

423:                                              ; preds = %410
  %424 = load ptr, ptr %5, align 8, !tbaa !9
  %425 = load i32, ptr %13, align 4, !tbaa !5
  %426 = add nsw i32 %425, 1
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds ptr, ptr %424, i64 %427
  %429 = load ptr, ptr %428, align 8, !tbaa !9
  %430 = call i32 @strcmp(ptr noundef %429, ptr noundef @.str.42) #11
  %431 = icmp eq i32 %430, 0
  br i1 %431, label %432, label %436

432:                                              ; preds = %423
  %433 = load i32, ptr %20, align 4, !tbaa !5
  %434 = mul nsw i32 4, %433
  %435 = sdiv i32 %434, 50
  store i32 %435, ptr %15, align 4, !tbaa !5
  br label %473

436:                                              ; preds = %423
  %437 = load ptr, ptr %5, align 8, !tbaa !9
  %438 = load i32, ptr %13, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  %440 = sext i32 %439 to i64
  %441 = getelementptr inbounds ptr, ptr %437, i64 %440
  %442 = load ptr, ptr %441, align 8, !tbaa !9
  %443 = call i32 @strcmp(ptr noundef %442, ptr noundef @.str.43) #11
  %444 = icmp eq i32 %443, 0
  br i1 %444, label %445, label %449

445:                                              ; preds = %436
  %446 = load i32, ptr %20, align 4, !tbaa !5
  %447 = mul nsw i32 5, %446
  %448 = sdiv i32 %447, 50
  store i32 %448, ptr %15, align 4, !tbaa !5
  br label %472

449:                                              ; preds = %436
  %450 = load ptr, ptr %5, align 8, !tbaa !9
  %451 = load i32, ptr %13, align 4, !tbaa !5
  %452 = add nsw i32 %451, 1
  %453 = sext i32 %452 to i64
  %454 = getelementptr inbounds ptr, ptr %450, i64 %453
  %455 = load ptr, ptr %454, align 8, !tbaa !9
  %456 = call i32 @strcmp(ptr noundef %455, ptr noundef @.str.44) #11
  %457 = icmp eq i32 %456, 0
  br i1 %457, label %458, label %462

458:                                              ; preds = %449
  %459 = load i32, ptr %20, align 4, !tbaa !5
  %460 = mul nsw i32 6, %459
  %461 = sdiv i32 %460, 50
  store i32 %461, ptr %15, align 4, !tbaa !5
  br label %471

462:                                              ; preds = %449
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load ptr, ptr %5, align 8, !tbaa !9
  %465 = load i32, ptr %13, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  %467 = sext i32 %466 to i64
  %468 = getelementptr inbounds ptr, ptr %464, i64 %467
  %469 = load ptr, ptr %468, align 8, !tbaa !9
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef @.str.45, ptr noundef %469) #10
  br label %2209

471:                                              ; preds = %458
  br label %472

472:                                              ; preds = %471, %445
  br label %473

473:                                              ; preds = %472, %432
  br label %474

474:                                              ; preds = %473, %419
  br label %475

475:                                              ; preds = %474, %407
  br label %476

476:                                              ; preds = %475, %395
  br label %477

477:                                              ; preds = %476, %383
  br label %478

478:                                              ; preds = %477, %371
  br label %479

479:                                              ; preds = %478, %359
  %480 = load i32, ptr %13, align 4, !tbaa !5
  %481 = add nsw i32 %480, 2
  store i32 %481, ptr %13, align 4, !tbaa !5
  br label %906

482:                                              ; preds = %333
  %483 = load ptr, ptr %5, align 8, !tbaa !9
  %484 = load i32, ptr %13, align 4, !tbaa !5
  %485 = sext i32 %484 to i64
  %486 = getelementptr inbounds ptr, ptr %483, i64 %485
  %487 = load ptr, ptr %486, align 8, !tbaa !9
  %488 = call i32 @strcmp(ptr noundef %487, ptr noundef @.str.46) #11
  %489 = icmp eq i32 %488, 0
  br i1 %489, label %490, label %509

490:                                              ; preds = %482
  br label %491

491:                                              ; preds = %490
  %492 = load i32, ptr %53, align 4, !tbaa !5
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %497

494:                                              ; preds = %491
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %495, ptr noundef @.str.27, ptr noundef @.str.46) #10
  br label %2209

497:                                              ; preds = %491
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  %500 = load ptr, ptr %5, align 8, !tbaa !9
  %501 = load i32, ptr %13, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  %503 = sext i32 %502 to i64
  %504 = getelementptr inbounds ptr, ptr %500, i64 %503
  %505 = load ptr, ptr %504, align 8, !tbaa !9
  %506 = call i32 @atoi(ptr noundef %505) #11
  store i32 %506, ptr %22, align 4, !tbaa !5
  %507 = load i32, ptr %13, align 4, !tbaa !5
  %508 = add nsw i32 %507, 2
  store i32 %508, ptr %13, align 4, !tbaa !5
  br label %905

509:                                              ; preds = %482
  %510 = load ptr, ptr %5, align 8, !tbaa !9
  %511 = load i32, ptr %13, align 4, !tbaa !5
  %512 = sext i32 %511 to i64
  %513 = getelementptr inbounds ptr, ptr %510, i64 %512
  %514 = load ptr, ptr %513, align 8, !tbaa !9
  %515 = call i32 @strcmp(ptr noundef %514, ptr noundef @.str.47) #11
  %516 = icmp eq i32 %515, 0
  br i1 %516, label %517, label %536

517:                                              ; preds = %509
  br label %518

518:                                              ; preds = %517
  %519 = load i32, ptr %53, align 4, !tbaa !5
  %520 = icmp ne i32 %519, 0
  br i1 %520, label %521, label %524

521:                                              ; preds = %518
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef @.str.27, ptr noundef @.str.47) #10
  br label %2209

524:                                              ; preds = %518
  br label %525

525:                                              ; preds = %524
  br label %526

526:                                              ; preds = %525
  %527 = load ptr, ptr %5, align 8, !tbaa !9
  %528 = load i32, ptr %13, align 4, !tbaa !5
  %529 = add nsw i32 %528, 1
  %530 = sext i32 %529 to i64
  %531 = getelementptr inbounds ptr, ptr %527, i64 %530
  %532 = load ptr, ptr %531, align 8, !tbaa !9
  %533 = call i32 @atoi(ptr noundef %532) #11
  store i32 %533, ptr %23, align 4, !tbaa !5
  %534 = load i32, ptr %13, align 4, !tbaa !5
  %535 = add nsw i32 %534, 2
  store i32 %535, ptr %13, align 4, !tbaa !5
  br label %904

536:                                              ; preds = %509
  %537 = load ptr, ptr %5, align 8, !tbaa !9
  %538 = load i32, ptr %13, align 4, !tbaa !5
  %539 = sext i32 %538 to i64
  %540 = getelementptr inbounds ptr, ptr %537, i64 %539
  %541 = load ptr, ptr %540, align 8, !tbaa !9
  %542 = call i32 @strcmp(ptr noundef %541, ptr noundef @.str.48) #11
  %543 = icmp eq i32 %542, 0
  br i1 %543, label %544, label %547

544:                                              ; preds = %536
  store i32 1, ptr %24, align 4, !tbaa !5
  %545 = load i32, ptr %13, align 4, !tbaa !5
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %13, align 4, !tbaa !5
  br label %903

547:                                              ; preds = %536
  %548 = load ptr, ptr %5, align 8, !tbaa !9
  %549 = load i32, ptr %13, align 4, !tbaa !5
  %550 = sext i32 %549 to i64
  %551 = getelementptr inbounds ptr, ptr %548, i64 %550
  %552 = load ptr, ptr %551, align 8, !tbaa !9
  %553 = call i32 @strcmp(ptr noundef %552, ptr noundef @.str.49) #11
  %554 = icmp eq i32 %553, 0
  br i1 %554, label %555, label %567

555:                                              ; preds = %547
  br label %556

556:                                              ; preds = %555
  %557 = load i32, ptr %53, align 4, !tbaa !5
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %562

559:                                              ; preds = %556
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef @.str.27, ptr noundef @.str.49) #10
  br label %2209

562:                                              ; preds = %556
  br label %563

563:                                              ; preds = %562
  br label %564

564:                                              ; preds = %563
  store i32 1, ptr %26, align 4, !tbaa !5
  %565 = load i32, ptr %13, align 4, !tbaa !5
  %566 = add nsw i32 %565, 1
  store i32 %566, ptr %13, align 4, !tbaa !5
  br label %902

567:                                              ; preds = %547
  %568 = load ptr, ptr %5, align 8, !tbaa !9
  %569 = load i32, ptr %13, align 4, !tbaa !5
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds ptr, ptr %568, i64 %570
  %572 = load ptr, ptr %571, align 8, !tbaa !9
  %573 = call i32 @strcmp(ptr noundef %572, ptr noundef @.str.50) #11
  %574 = icmp eq i32 %573, 0
  br i1 %574, label %575, label %587

575:                                              ; preds = %567
  br label %576

576:                                              ; preds = %575
  %577 = load i32, ptr %53, align 4, !tbaa !5
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %582

579:                                              ; preds = %576
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef @.str.27, ptr noundef @.str.50) #10
  br label %2209

582:                                              ; preds = %576
  br label %583

583:                                              ; preds = %582
  br label %584

584:                                              ; preds = %583
  store i32 1, ptr %27, align 4, !tbaa !5
  %585 = load i32, ptr %13, align 4, !tbaa !5
  %586 = add nsw i32 %585, 1
  store i32 %586, ptr %13, align 4, !tbaa !5
  br label %901

587:                                              ; preds = %567
  %588 = load ptr, ptr %5, align 8, !tbaa !9
  %589 = load i32, ptr %13, align 4, !tbaa !5
  %590 = sext i32 %589 to i64
  %591 = getelementptr inbounds ptr, ptr %588, i64 %590
  %592 = load ptr, ptr %591, align 8, !tbaa !9
  %593 = call i32 @strcmp(ptr noundef %592, ptr noundef @.str.51) #11
  %594 = icmp eq i32 %593, 0
  br i1 %594, label %595, label %607

595:                                              ; preds = %587
  br label %596

596:                                              ; preds = %595
  %597 = load i32, ptr %53, align 4, !tbaa !5
  %598 = icmp ne i32 %597, 0
  br i1 %598, label %599, label %602

599:                                              ; preds = %596
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %600, ptr noundef @.str.27, ptr noundef @.str.51) #10
  br label %2209

602:                                              ; preds = %596
  br label %603

603:                                              ; preds = %602
  br label %604

604:                                              ; preds = %603
  store i32 1, ptr %72, align 4, !tbaa !5
  %605 = load i32, ptr %13, align 4, !tbaa !5
  %606 = add nsw i32 %605, 1
  store i32 %606, ptr %13, align 4, !tbaa !5
  br label %900

607:                                              ; preds = %587
  %608 = load ptr, ptr %5, align 8, !tbaa !9
  %609 = load i32, ptr %13, align 4, !tbaa !5
  %610 = sext i32 %609 to i64
  %611 = getelementptr inbounds ptr, ptr %608, i64 %610
  %612 = load ptr, ptr %611, align 8, !tbaa !9
  %613 = call i32 @strcmp(ptr noundef %612, ptr noundef @.str.52) #11
  %614 = icmp eq i32 %613, 0
  br i1 %614, label %615, label %627

615:                                              ; preds = %607
  br label %616

616:                                              ; preds = %615
  %617 = load i32, ptr %53, align 4, !tbaa !5
  %618 = icmp ne i32 %617, 0
  br i1 %618, label %619, label %622

619:                                              ; preds = %616
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef @.str.27, ptr noundef @.str.52) #10
  br label %2209

622:                                              ; preds = %616
  br label %623

623:                                              ; preds = %622
  br label %624

624:                                              ; preds = %623
  store i32 1, ptr %25, align 4, !tbaa !5
  %625 = load i32, ptr %13, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr %13, align 4, !tbaa !5
  br label %899

627:                                              ; preds = %607
  %628 = load ptr, ptr %5, align 8, !tbaa !9
  %629 = load i32, ptr %13, align 4, !tbaa !5
  %630 = sext i32 %629 to i64
  %631 = getelementptr inbounds ptr, ptr %628, i64 %630
  %632 = load ptr, ptr %631, align 8, !tbaa !9
  %633 = call i32 @strcmp(ptr noundef %632, ptr noundef @.str.53) #11
  %634 = icmp eq i32 %633, 0
  br i1 %634, label %635, label %645

635:                                              ; preds = %627
  %636 = load ptr, ptr %5, align 8, !tbaa !9
  %637 = load i32, ptr %13, align 4, !tbaa !5
  %638 = add nsw i32 %637, 1
  %639 = sext i32 %638 to i64
  %640 = getelementptr inbounds ptr, ptr %636, i64 %639
  %641 = load ptr, ptr %640, align 8, !tbaa !9
  %642 = call i32 @atoi(ptr noundef %641) #11
  store i32 %642, ptr %28, align 4, !tbaa !5
  %643 = load i32, ptr %13, align 4, !tbaa !5
  %644 = add nsw i32 %643, 2
  store i32 %644, ptr %13, align 4, !tbaa !5
  br label %898

645:                                              ; preds = %627
  %646 = load ptr, ptr %5, align 8, !tbaa !9
  %647 = load i32, ptr %13, align 4, !tbaa !5
  %648 = sext i32 %647 to i64
  %649 = getelementptr inbounds ptr, ptr %646, i64 %648
  %650 = load ptr, ptr %649, align 8, !tbaa !9
  %651 = call i32 @strcmp(ptr noundef %650, ptr noundef @.str.54) #11
  %652 = icmp eq i32 %651, 0
  br i1 %652, label %653, label %672

653:                                              ; preds = %645
  br label %654

654:                                              ; preds = %653
  %655 = load i32, ptr %53, align 4, !tbaa !5
  %656 = icmp ne i32 %655, 0
  br i1 %656, label %657, label %660

657:                                              ; preds = %654
  %658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %658, ptr noundef @.str.27, ptr noundef @.str.54) #10
  br label %2209

660:                                              ; preds = %654
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  %663 = load ptr, ptr %5, align 8, !tbaa !9
  %664 = load i32, ptr %13, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  %666 = sext i32 %665 to i64
  %667 = getelementptr inbounds ptr, ptr %663, i64 %666
  %668 = load ptr, ptr %667, align 8, !tbaa !9
  %669 = call i32 @atoi(ptr noundef %668) #11
  store i32 %669, ptr %57, align 4, !tbaa !5
  %670 = load i32, ptr %13, align 4, !tbaa !5
  %671 = add nsw i32 %670, 2
  store i32 %671, ptr %13, align 4, !tbaa !5
  br label %897

672:                                              ; preds = %645
  %673 = load ptr, ptr %5, align 8, !tbaa !9
  %674 = load i32, ptr %13, align 4, !tbaa !5
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds ptr, ptr %673, i64 %675
  %677 = load ptr, ptr %676, align 8, !tbaa !9
  %678 = call i32 @strcmp(ptr noundef %677, ptr noundef @.str.55) #11
  %679 = icmp eq i32 %678, 0
  br i1 %679, label %680, label %692

680:                                              ; preds = %672
  br label %681

681:                                              ; preds = %680
  %682 = load i32, ptr %53, align 4, !tbaa !5
  %683 = icmp ne i32 %682, 0
  br i1 %683, label %684, label %687

684:                                              ; preds = %681
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.27, ptr noundef @.str.55) #10
  br label %2209

687:                                              ; preds = %681
  br label %688

688:                                              ; preds = %687
  br label %689

689:                                              ; preds = %688
  store i32 1, ptr %58, align 4, !tbaa !5
  %690 = load i32, ptr %13, align 4, !tbaa !5
  %691 = add nsw i32 %690, 1
  store i32 %691, ptr %13, align 4, !tbaa !5
  br label %896

692:                                              ; preds = %672
  %693 = load ptr, ptr %5, align 8, !tbaa !9
  %694 = load i32, ptr %13, align 4, !tbaa !5
  %695 = sext i32 %694 to i64
  %696 = getelementptr inbounds ptr, ptr %693, i64 %695
  %697 = load ptr, ptr %696, align 8, !tbaa !9
  %698 = call i32 @strcmp(ptr noundef %697, ptr noundef @.str.56) #11
  %699 = icmp eq i32 %698, 0
  br i1 %699, label %700, label %719

700:                                              ; preds = %692
  br label %701

701:                                              ; preds = %700
  %702 = load i32, ptr %53, align 4, !tbaa !5
  %703 = icmp ne i32 %702, 0
  br i1 %703, label %704, label %707

704:                                              ; preds = %701
  %705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %705, ptr noundef @.str.27, ptr noundef @.str.56) #10
  br label %2209

707:                                              ; preds = %701
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  %710 = load ptr, ptr %5, align 8, !tbaa !9
  %711 = load i32, ptr %13, align 4, !tbaa !5
  %712 = add nsw i32 %711, 1
  %713 = sext i32 %712 to i64
  %714 = getelementptr inbounds ptr, ptr %710, i64 %713
  %715 = load ptr, ptr %714, align 8, !tbaa !9
  %716 = call i32 @atoi(ptr noundef %715) #11
  store i32 %716, ptr %61, align 4, !tbaa !5
  %717 = load i32, ptr %13, align 4, !tbaa !5
  %718 = add nsw i32 %717, 2
  store i32 %718, ptr %13, align 4, !tbaa !5
  br label %895

719:                                              ; preds = %692
  %720 = load ptr, ptr %5, align 8, !tbaa !9
  %721 = load i32, ptr %13, align 4, !tbaa !5
  %722 = sext i32 %721 to i64
  %723 = getelementptr inbounds ptr, ptr %720, i64 %722
  %724 = load ptr, ptr %723, align 8, !tbaa !9
  %725 = call i32 @strcmp(ptr noundef %724, ptr noundef @.str.57) #11
  %726 = icmp eq i32 %725, 0
  br i1 %726, label %727, label %739

727:                                              ; preds = %719
  br label %728

728:                                              ; preds = %727
  %729 = load i32, ptr %53, align 4, !tbaa !5
  %730 = icmp ne i32 %729, 0
  br i1 %730, label %731, label %734

731:                                              ; preds = %728
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef @.str.27, ptr noundef @.str.57) #10
  br label %2209

734:                                              ; preds = %728
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  store i32 1, ptr %63, align 4, !tbaa !5
  %737 = load i32, ptr %13, align 4, !tbaa !5
  %738 = add nsw i32 %737, 1
  store i32 %738, ptr %13, align 4, !tbaa !5
  br label %894

739:                                              ; preds = %719
  %740 = load ptr, ptr %5, align 8, !tbaa !9
  %741 = load i32, ptr %13, align 4, !tbaa !5
  %742 = sext i32 %741 to i64
  %743 = getelementptr inbounds ptr, ptr %740, i64 %742
  %744 = load ptr, ptr %743, align 8, !tbaa !9
  %745 = call i32 @strcmp(ptr noundef %744, ptr noundef @.str.58) #11
  %746 = icmp eq i32 %745, 0
  br i1 %746, label %747, label %759

747:                                              ; preds = %739
  br label %748

748:                                              ; preds = %747
  %749 = load i32, ptr %53, align 4, !tbaa !5
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %751, label %754

751:                                              ; preds = %748
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef @.str.27, ptr noundef @.str.58) #10
  br label %2209

754:                                              ; preds = %748
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  store ptr @silk8_test, ptr %64, align 8, !tbaa !9
  store i32 8, ptr %65, align 4, !tbaa !5
  %757 = load i32, ptr %13, align 4, !tbaa !5
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr %13, align 4, !tbaa !5
  br label %893

759:                                              ; preds = %739
  %760 = load ptr, ptr %5, align 8, !tbaa !9
  %761 = load i32, ptr %13, align 4, !tbaa !5
  %762 = sext i32 %761 to i64
  %763 = getelementptr inbounds ptr, ptr %760, i64 %762
  %764 = load ptr, ptr %763, align 8, !tbaa !9
  %765 = call i32 @strcmp(ptr noundef %764, ptr noundef @.str.59) #11
  %766 = icmp eq i32 %765, 0
  br i1 %766, label %767, label %779

767:                                              ; preds = %759
  br label %768

768:                                              ; preds = %767
  %769 = load i32, ptr %53, align 4, !tbaa !5
  %770 = icmp ne i32 %769, 0
  br i1 %770, label %771, label %774

771:                                              ; preds = %768
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef @.str.27, ptr noundef @.str.59) #10
  br label %2209

774:                                              ; preds = %768
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  store ptr @silk12_test, ptr %64, align 8, !tbaa !9
  store i32 8, ptr %65, align 4, !tbaa !5
  %777 = load i32, ptr %13, align 4, !tbaa !5
  %778 = add nsw i32 %777, 1
  store i32 %778, ptr %13, align 4, !tbaa !5
  br label %892

779:                                              ; preds = %759
  %780 = load ptr, ptr %5, align 8, !tbaa !9
  %781 = load i32, ptr %13, align 4, !tbaa !5
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds ptr, ptr %780, i64 %782
  %784 = load ptr, ptr %783, align 8, !tbaa !9
  %785 = call i32 @strcmp(ptr noundef %784, ptr noundef @.str.60) #11
  %786 = icmp eq i32 %785, 0
  br i1 %786, label %787, label %799

787:                                              ; preds = %779
  br label %788

788:                                              ; preds = %787
  %789 = load i32, ptr %53, align 4, !tbaa !5
  %790 = icmp ne i32 %789, 0
  br i1 %790, label %791, label %794

791:                                              ; preds = %788
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef @.str.27, ptr noundef @.str.60) #10
  br label %2209

794:                                              ; preds = %788
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795
  store ptr @silk16_test, ptr %64, align 8, !tbaa !9
  store i32 8, ptr %65, align 4, !tbaa !5
  %797 = load i32, ptr %13, align 4, !tbaa !5
  %798 = add nsw i32 %797, 1
  store i32 %798, ptr %13, align 4, !tbaa !5
  br label %891

799:                                              ; preds = %779
  %800 = load ptr, ptr %5, align 8, !tbaa !9
  %801 = load i32, ptr %13, align 4, !tbaa !5
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds ptr, ptr %800, i64 %802
  %804 = load ptr, ptr %803, align 8, !tbaa !9
  %805 = call i32 @strcmp(ptr noundef %804, ptr noundef @.str.61) #11
  %806 = icmp eq i32 %805, 0
  br i1 %806, label %807, label %819

807:                                              ; preds = %799
  br label %808

808:                                              ; preds = %807
  %809 = load i32, ptr %53, align 4, !tbaa !5
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %814

811:                                              ; preds = %808
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef @.str.27, ptr noundef @.str.61) #10
  br label %2209

814:                                              ; preds = %808
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815
  store ptr @hybrid24_test, ptr %64, align 8, !tbaa !9
  store i32 4, ptr %65, align 4, !tbaa !5
  %817 = load i32, ptr %13, align 4, !tbaa !5
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr %13, align 4, !tbaa !5
  br label %890

819:                                              ; preds = %799
  %820 = load ptr, ptr %5, align 8, !tbaa !9
  %821 = load i32, ptr %13, align 4, !tbaa !5
  %822 = sext i32 %821 to i64
  %823 = getelementptr inbounds ptr, ptr %820, i64 %822
  %824 = load ptr, ptr %823, align 8, !tbaa !9
  %825 = call i32 @strcmp(ptr noundef %824, ptr noundef @.str.62) #11
  %826 = icmp eq i32 %825, 0
  br i1 %826, label %827, label %839

827:                                              ; preds = %819
  br label %828

828:                                              ; preds = %827
  %829 = load i32, ptr %53, align 4, !tbaa !5
  %830 = icmp ne i32 %829, 0
  br i1 %830, label %831, label %834

831:                                              ; preds = %828
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef @.str.27, ptr noundef @.str.62) #10
  br label %2209

834:                                              ; preds = %828
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  store ptr @hybrid48_test, ptr %64, align 8, !tbaa !9
  store i32 4, ptr %65, align 4, !tbaa !5
  %837 = load i32, ptr %13, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %13, align 4, !tbaa !5
  br label %889

839:                                              ; preds = %819
  %840 = load ptr, ptr %5, align 8, !tbaa !9
  %841 = load i32, ptr %13, align 4, !tbaa !5
  %842 = sext i32 %841 to i64
  %843 = getelementptr inbounds ptr, ptr %840, i64 %842
  %844 = load ptr, ptr %843, align 8, !tbaa !9
  %845 = call i32 @strcmp(ptr noundef %844, ptr noundef @.str.63) #11
  %846 = icmp eq i32 %845, 0
  br i1 %846, label %847, label %859

847:                                              ; preds = %839
  br label %848

848:                                              ; preds = %847
  %849 = load i32, ptr %53, align 4, !tbaa !5
  %850 = icmp ne i32 %849, 0
  br i1 %850, label %851, label %854

851:                                              ; preds = %848
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef @.str.27, ptr noundef @.str.63) #10
  br label %2209

854:                                              ; preds = %848
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  store ptr @celt_test, ptr %64, align 8, !tbaa !9
  store i32 32, ptr %65, align 4, !tbaa !5
  %857 = load i32, ptr %13, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr %13, align 4, !tbaa !5
  br label %888

859:                                              ; preds = %839
  %860 = load ptr, ptr %5, align 8, !tbaa !9
  %861 = load i32, ptr %13, align 4, !tbaa !5
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds ptr, ptr %860, i64 %862
  %864 = load ptr, ptr %863, align 8, !tbaa !9
  %865 = call i32 @strcmp(ptr noundef %864, ptr noundef @.str.64) #11
  %866 = icmp eq i32 %865, 0
  br i1 %866, label %867, label %879

867:                                              ; preds = %859
  br label %868

868:                                              ; preds = %867
  %869 = load i32, ptr %53, align 4, !tbaa !5
  %870 = icmp ne i32 %869, 0
  br i1 %870, label %871, label %874

871:                                              ; preds = %868
  %872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %872, ptr noundef @.str.27, ptr noundef @.str.64) #10
  br label %2209

874:                                              ; preds = %868
  br label %875

875:                                              ; preds = %874
  br label %876

876:                                              ; preds = %875
  store ptr @celt_hq_test, ptr %64, align 8, !tbaa !9
  store i32 4, ptr %65, align 4, !tbaa !5
  %877 = load i32, ptr %13, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr %13, align 4, !tbaa !5
  br label %887

879:                                              ; preds = %859
  %880 = load ptr, ptr %5, align 8, !tbaa !9
  %881 = load i32, ptr %13, align 4, !tbaa !5
  %882 = sext i32 %881 to i64
  %883 = getelementptr inbounds ptr, ptr %880, i64 %882
  %884 = load ptr, ptr %883, align 8, !tbaa !9
  %885 = call i32 (ptr, ...) @printf(ptr noundef @.str.65, ptr noundef %884)
  %886 = load ptr, ptr %5, align 8, !tbaa !9
  call void @print_usage(ptr noundef %886)
  br label %2209

887:                                              ; preds = %876
  br label %888

888:                                              ; preds = %887, %856
  br label %889

889:                                              ; preds = %888, %836
  br label %890

890:                                              ; preds = %889, %816
  br label %891

891:                                              ; preds = %890, %796
  br label %892

892:                                              ; preds = %891, %776
  br label %893

893:                                              ; preds = %892, %756
  br label %894

894:                                              ; preds = %893, %736
  br label %895

895:                                              ; preds = %894, %709
  br label %896

896:                                              ; preds = %895, %689
  br label %897

897:                                              ; preds = %896, %662
  br label %898

898:                                              ; preds = %897, %635
  br label %899

899:                                              ; preds = %898, %624
  br label %900

900:                                              ; preds = %899, %604
  br label %901

901:                                              ; preds = %900, %584
  br label %902

902:                                              ; preds = %901, %564
  br label %903

903:                                              ; preds = %902, %544
  br label %904

904:                                              ; preds = %903, %526
  br label %905

905:                                              ; preds = %904, %499
  br label %906

906:                                              ; preds = %905, %479
  br label %907

907:                                              ; preds = %906, %330
  br label %908

908:                                              ; preds = %907, %247
  br label %225, !llvm.loop !15

909:                                              ; preds = %225
  %910 = load i32, ptr %61, align 4, !tbaa !5
  %911 = icmp ne i32 %910, 0
  br i1 %911, label %912, label %914

912:                                              ; preds = %909
  %913 = load i32, ptr %17, align 4, !tbaa !5
  store i32 %913, ptr %62, align 4, !tbaa !5
  br label %914

914:                                              ; preds = %912, %909
  %915 = load i32, ptr %22, align 4, !tbaa !5
  %916 = icmp slt i32 %915, 0
  br i1 %916, label %920, label %917

917:                                              ; preds = %914
  %918 = load i32, ptr %22, align 4, !tbaa !5
  %919 = icmp sgt i32 %918, 1500
  br i1 %919, label %920, label %923

920:                                              ; preds = %917, %914
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef @.str.66, i32 noundef 1500) #10
  br label %2209

923:                                              ; preds = %917
  %924 = load ptr, ptr %5, align 8, !tbaa !9
  %925 = load i32, ptr %4, align 4, !tbaa !5
  %926 = sub nsw i32 %925, 2
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds ptr, ptr %924, i64 %927
  %929 = load ptr, ptr %928, align 8, !tbaa !9
  store ptr %929, ptr %7, align 8, !tbaa !9
  %930 = load ptr, ptr %7, align 8, !tbaa !9
  %931 = call noalias ptr @fopen(ptr noundef %930, ptr noundef @.str.67)
  store ptr %931, ptr %9, align 8, !tbaa !9
  %932 = load ptr, ptr %9, align 8, !tbaa !9
  %933 = icmp ne ptr %932, null
  br i1 %933, label %943, label %934

934:                                              ; preds = %923
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = load ptr, ptr %5, align 8, !tbaa !9
  %937 = load i32, ptr %4, align 4, !tbaa !5
  %938 = sub nsw i32 %937, 2
  %939 = sext i32 %938 to i64
  %940 = getelementptr inbounds ptr, ptr %936, i64 %939
  %941 = load ptr, ptr %940, align 8, !tbaa !9
  %942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %935, ptr noundef @.str.68, ptr noundef %941) #10
  br label %2209

943:                                              ; preds = %923
  %944 = load ptr, ptr %64, align 8, !tbaa !9
  %945 = icmp ne ptr %944, null
  br i1 %945, label %946, label %970

946:                                              ; preds = %943
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #10
  %947 = load ptr, ptr %9, align 8, !tbaa !9
  %948 = call i32 @fseek(ptr noundef %947, i64 noundef 0, i32 noundef 2)
  %949 = load ptr, ptr %9, align 8, !tbaa !9
  %950 = call i64 @ftell(ptr noundef %949)
  %951 = trunc i64 %950 to i32
  store i32 %951, ptr %74, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = load i32, ptr %74, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %952, ptr noundef @.str.69, i32 noundef %953) #10
  %955 = load ptr, ptr %9, align 8, !tbaa !9
  %956 = call i32 @fseek(ptr noundef %955, i64 noundef 0, i32 noundef 0)
  %957 = load i32, ptr %74, align 4, !tbaa !5
  %958 = sext i32 %957 to i64
  %959 = udiv i64 %958, 2
  %960 = load i32, ptr %16, align 4, !tbaa !5
  %961 = sext i32 %960 to i64
  %962 = udiv i64 %959, %961
  %963 = load i32, ptr %65, align 4, !tbaa !5
  %964 = sext i32 %963 to i64
  %965 = udiv i64 %962, %964
  %966 = trunc i64 %965 to i32
  store i32 %966, ptr %68, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr %68, align 4, !tbaa !5
  %969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef @.str.70, i32 noundef %968) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #10
  br label %970

970:                                              ; preds = %946, %943
  %971 = load ptr, ptr %5, align 8, !tbaa !9
  %972 = load i32, ptr %4, align 4, !tbaa !5
  %973 = sub nsw i32 %972, 1
  %974 = sext i32 %973 to i64
  %975 = getelementptr inbounds ptr, ptr %971, i64 %974
  %976 = load ptr, ptr %975, align 8, !tbaa !9
  store ptr %976, ptr %8, align 8, !tbaa !9
  %977 = load ptr, ptr %8, align 8, !tbaa !9
  %978 = call noalias ptr @fopen(ptr noundef %977, ptr noundef @.str.71)
  store ptr %978, ptr %10, align 8, !tbaa !9
  %979 = load ptr, ptr %10, align 8, !tbaa !9
  %980 = icmp ne ptr %979, null
  br i1 %980, label %990, label %981

981:                                              ; preds = %970
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load ptr, ptr %5, align 8, !tbaa !9
  %984 = load i32, ptr %4, align 4, !tbaa !5
  %985 = sub nsw i32 %984, 1
  %986 = sext i32 %985 to i64
  %987 = getelementptr inbounds ptr, ptr %983, i64 %986
  %988 = load ptr, ptr %987, align 8, !tbaa !9
  %989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef @.str.72, ptr noundef %988) #10
  br label %2209

990:                                              ; preds = %970
  %991 = load i32, ptr %53, align 4, !tbaa !5
  %992 = icmp ne i32 %991, 0
  br i1 %992, label %1075, label %993

993:                                              ; preds = %990
  %994 = load i32, ptr %20, align 4, !tbaa !5
  %995 = load i32, ptr %16, align 4, !tbaa !5
  %996 = load i32, ptr %36, align 4, !tbaa !5
  %997 = call ptr @opus_encoder_create(i32 noundef %994, i32 noundef %995, i32 noundef %996, ptr noundef %6)
  store ptr %997, ptr %11, align 8, !tbaa !9
  %998 = load i32, ptr %6, align 4, !tbaa !5
  %999 = icmp ne i32 %998, 0
  br i1 %999, label %1000, label %1005

1000:                                             ; preds = %993
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr %6, align 4, !tbaa !5
  %1003 = call ptr @opus_strerror(i32 noundef %1002)
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef @.str.73, ptr noundef %1003) #10
  br label %2209

1005:                                             ; preds = %993
  %1006 = load ptr, ptr %11, align 8, !tbaa !9
  %1007 = load i32, ptr %17, align 4, !tbaa !5
  %1008 = icmp eq i32 %1007, 0
  %1009 = zext i1 %1008 to i32
  %1010 = load i32, ptr %17, align 4, !tbaa !5
  %1011 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1006, i32 noundef 4002, i32 noundef %1010)
  %1012 = load ptr, ptr %11, align 8, !tbaa !9
  %1013 = load i32, ptr %45, align 4, !tbaa !5
  %1014 = icmp eq i32 %1013, 0
  %1015 = zext i1 %1014 to i32
  %1016 = load i32, ptr %45, align 4, !tbaa !5
  %1017 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1012, i32 noundef 4008, i32 noundef %1016)
  %1018 = load ptr, ptr %11, align 8, !tbaa !9
  %1019 = load i32, ptr %21, align 4, !tbaa !5
  %1020 = icmp eq i32 %1019, 0
  %1021 = zext i1 %1020 to i32
  %1022 = load i32, ptr %21, align 4, !tbaa !5
  %1023 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1018, i32 noundef 4006, i32 noundef %1022)
  %1024 = load ptr, ptr %11, align 8, !tbaa !9
  %1025 = load i32, ptr %27, align 4, !tbaa !5
  %1026 = icmp eq i32 %1025, 0
  %1027 = zext i1 %1026 to i32
  %1028 = load i32, ptr %27, align 4, !tbaa !5
  %1029 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1024, i32 noundef 4020, i32 noundef %1028)
  %1030 = load ptr, ptr %11, align 8, !tbaa !9
  %1031 = load i32, ptr %23, align 4, !tbaa !5
  %1032 = icmp eq i32 %1031, 0
  %1033 = zext i1 %1032 to i32
  %1034 = load i32, ptr %23, align 4, !tbaa !5
  %1035 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1030, i32 noundef 4010, i32 noundef %1034)
  %1036 = load ptr, ptr %11, align 8, !tbaa !9
  %1037 = load i32, ptr %24, align 4, !tbaa !5
  %1038 = icmp eq i32 %1037, 0
  %1039 = zext i1 %1038 to i32
  %1040 = load i32, ptr %24, align 4, !tbaa !5
  %1041 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1036, i32 noundef 4012, i32 noundef %1040)
  %1042 = load ptr, ptr %11, align 8, !tbaa !9
  %1043 = load i32, ptr %26, align 4, !tbaa !5
  %1044 = icmp eq i32 %1043, 0
  %1045 = zext i1 %1044 to i32
  %1046 = load i32, ptr %26, align 4, !tbaa !5
  %1047 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1042, i32 noundef 4022, i32 noundef %1046)
  %1048 = load ptr, ptr %11, align 8, !tbaa !9
  %1049 = load i32, ptr %25, align 4, !tbaa !5
  %1050 = icmp eq i32 %1049, 0
  %1051 = zext i1 %1050 to i32
  %1052 = load i32, ptr %25, align 4, !tbaa !5
  %1053 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1048, i32 noundef 4016, i32 noundef %1052)
  %1054 = load ptr, ptr %11, align 8, !tbaa !9
  %1055 = load i32, ptr %28, align 4, !tbaa !5
  %1056 = icmp eq i32 %1055, 0
  %1057 = zext i1 %1056 to i32
  %1058 = load i32, ptr %28, align 4, !tbaa !5
  %1059 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1054, i32 noundef 4014, i32 noundef %1058)
  %1060 = load ptr, ptr %11, align 8, !tbaa !9
  %1061 = ptrtoint ptr %32 to i64
  %1062 = ptrtoint ptr %32 to i64
  %1063 = sub i64 %1061, %1062
  %1064 = sdiv exact i64 %1063, 4
  %1065 = getelementptr inbounds i32, ptr %32, i64 %1064
  %1066 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1060, i32 noundef 4027, ptr noundef %1065)
  %1067 = load ptr, ptr %11, align 8, !tbaa !9
  %1068 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1067, i32 noundef 4036, i32 noundef 16)
  %1069 = load ptr, ptr %11, align 8, !tbaa !9
  %1070 = load i32, ptr %71, align 4, !tbaa !5
  %1071 = icmp eq i32 %1070, 0
  %1072 = zext i1 %1071 to i32
  %1073 = load i32, ptr %71, align 4, !tbaa !5
  %1074 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1069, i32 noundef 4040, i32 noundef %1073)
  br label %1075

1075:                                             ; preds = %1005, %990
  %1076 = load i32, ptr %52, align 4, !tbaa !5
  %1077 = icmp ne i32 %1076, 0
  br i1 %1077, label %1090, label %1078

1078:                                             ; preds = %1075
  %1079 = load i32, ptr %20, align 4, !tbaa !5
  %1080 = load i32, ptr %16, align 4, !tbaa !5
  %1081 = call ptr @opus_decoder_create(i32 noundef %1079, i32 noundef %1080, ptr noundef %6)
  store ptr %1081, ptr %12, align 8, !tbaa !9
  %1082 = load i32, ptr %6, align 4, !tbaa !5
  %1083 = icmp ne i32 %1082, 0
  br i1 %1083, label %1084, label %1089

1084:                                             ; preds = %1078
  %1085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1086 = load i32, ptr %6, align 4, !tbaa !5
  %1087 = call ptr @opus_strerror(i32 noundef %1086)
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1085, ptr noundef @.str.74, ptr noundef %1087) #10
  br label %2209

1089:                                             ; preds = %1078
  br label %1090

1090:                                             ; preds = %1089, %1075
  %1091 = load i32, ptr %45, align 4, !tbaa !5
  switch i32 %1091, label %1098 [
    i32 1101, label %1092
    i32 1102, label %1093
    i32 1103, label %1094
    i32 1104, label %1095
    i32 1105, label %1096
    i32 -1000, label %1097
  ]

1092:                                             ; preds = %1090
  store ptr @.str.75, ptr %46, align 8, !tbaa !9
  br label %1099

1093:                                             ; preds = %1090
  store ptr @.str.76, ptr %46, align 8, !tbaa !9
  br label %1099

1094:                                             ; preds = %1090
  store ptr @.str.77, ptr %46, align 8, !tbaa !9
  br label %1099

1095:                                             ; preds = %1090
  store ptr @.str.78, ptr %46, align 8, !tbaa !9
  br label %1099

1096:                                             ; preds = %1090
  store ptr @.str.79, ptr %46, align 8, !tbaa !9
  br label %1099

1097:                                             ; preds = %1090
  store ptr @.str.80, ptr %46, align 8, !tbaa !9
  br label %1099

1098:                                             ; preds = %1090
  store ptr @.str.81, ptr %46, align 8, !tbaa !9
  br label %1099

1099:                                             ; preds = %1098, %1097, %1096, %1095, %1094, %1093, %1092
  %1100 = load i32, ptr %53, align 4, !tbaa !5
  %1101 = icmp ne i32 %1100, 0
  br i1 %1101, label %1102, label %1108

1102:                                             ; preds = %1099
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = load i32, ptr %20, align 4, !tbaa !5
  %1105 = sext i32 %1104 to i64
  %1106 = load i32, ptr %16, align 4, !tbaa !5
  %1107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1103, ptr noundef @.str.82, i64 noundef %1105, i32 noundef %1106) #10
  br label %1118

1108:                                             ; preds = %1099
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = load i32, ptr %20, align 4, !tbaa !5
  %1111 = sext i32 %1110 to i64
  %1112 = load i32, ptr %17, align 4, !tbaa !5
  %1113 = sitofp i32 %1112 to double
  %1114 = fmul double %1113, 1.000000e-03
  %1115 = load ptr, ptr %46, align 8, !tbaa !9
  %1116 = load i32, ptr %15, align 4, !tbaa !5
  %1117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1109, ptr noundef @.str.83, i64 noundef %1111, double noundef %1114, ptr noundef %1115, i32 noundef %1116) #10
  br label %1118

1118:                                             ; preds = %1108, %1102
  %1119 = load i32, ptr %54, align 4, !tbaa !5
  %1120 = load i32, ptr %16, align 4, !tbaa !5
  %1121 = mul nsw i32 %1119, %1120
  %1122 = sext i32 %1121 to i64
  %1123 = mul i64 %1122, 2
  %1124 = call noalias ptr @malloc(i64 noundef %1123) #12
  store ptr %1124, ptr %34, align 8, !tbaa !9
  %1125 = load i32, ptr %54, align 4, !tbaa !5
  %1126 = load i32, ptr %16, align 4, !tbaa !5
  %1127 = mul nsw i32 %1125, %1126
  %1128 = sext i32 %1127 to i64
  %1129 = mul i64 %1128, 2
  %1130 = call noalias ptr @malloc(i64 noundef %1129) #12
  store ptr %1130, ptr %35, align 8, !tbaa !9
  %1131 = load i32, ptr %54, align 4, !tbaa !5
  %1132 = load i32, ptr %16, align 4, !tbaa !5
  %1133 = mul nsw i32 %1131, %1132
  %1134 = sext i32 %1133 to i64
  %1135 = mul i64 %1134, 2
  %1136 = call noalias ptr @malloc(i64 noundef %1135) #12
  store ptr %1136, ptr %19, align 8, !tbaa !9
  %1137 = load i32, ptr %22, align 4, !tbaa !5
  %1138 = sext i32 %1137 to i64
  %1139 = call noalias ptr @calloc(i64 noundef %1138, i64 noundef 1) #13
  %1140 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 0
  store ptr %1139, ptr %1140, align 16, !tbaa !9
  %1141 = load i32, ptr %24, align 4, !tbaa !5
  %1142 = icmp ne i32 %1141, 0
  br i1 %1142, label %1143, label %1148

1143:                                             ; preds = %1118
  %1144 = load i32, ptr %22, align 4, !tbaa !5
  %1145 = sext i32 %1144 to i64
  %1146 = call noalias ptr @calloc(i64 noundef %1145, i64 noundef 1) #13
  %1147 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 1
  store ptr %1146, ptr %1147, align 8, !tbaa !9
  br label %1148

1148:                                             ; preds = %1143, %1118
  %1149 = load i32, ptr %72, align 4, !tbaa !5
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1217

1151:                                             ; preds = %1148
  %1152 = load i32, ptr %15, align 4, !tbaa !5
  %1153 = load i32, ptr %20, align 4, !tbaa !5
  %1154 = sdiv i32 %1153, 400
  %1155 = icmp eq i32 %1152, %1154
  br i1 %1155, label %1156, label %1157

1156:                                             ; preds = %1151
  store i32 5001, ptr %71, align 4, !tbaa !5
  br label %1210

1157:                                             ; preds = %1151
  %1158 = load i32, ptr %15, align 4, !tbaa !5
  %1159 = load i32, ptr %20, align 4, !tbaa !5
  %1160 = sdiv i32 %1159, 200
  %1161 = icmp eq i32 %1158, %1160
  br i1 %1161, label %1162, label %1163

1162:                                             ; preds = %1157
  store i32 5002, ptr %71, align 4, !tbaa !5
  br label %1209

1163:                                             ; preds = %1157
  %1164 = load i32, ptr %15, align 4, !tbaa !5
  %1165 = load i32, ptr %20, align 4, !tbaa !5
  %1166 = sdiv i32 %1165, 100
  %1167 = icmp eq i32 %1164, %1166
  br i1 %1167, label %1168, label %1169

1168:                                             ; preds = %1163
  store i32 5003, ptr %71, align 4, !tbaa !5
  br label %1208

1169:                                             ; preds = %1163
  %1170 = load i32, ptr %15, align 4, !tbaa !5
  %1171 = load i32, ptr %20, align 4, !tbaa !5
  %1172 = sdiv i32 %1171, 50
  %1173 = icmp eq i32 %1170, %1172
  br i1 %1173, label %1174, label %1175

1174:                                             ; preds = %1169
  store i32 5004, ptr %71, align 4, !tbaa !5
  br label %1207

1175:                                             ; preds = %1169
  %1176 = load i32, ptr %15, align 4, !tbaa !5
  %1177 = load i32, ptr %20, align 4, !tbaa !5
  %1178 = sdiv i32 %1177, 25
  %1179 = icmp eq i32 %1176, %1178
  br i1 %1179, label %1180, label %1181

1180:                                             ; preds = %1175
  store i32 5005, ptr %71, align 4, !tbaa !5
  br label %1206

1181:                                             ; preds = %1175
  %1182 = load i32, ptr %15, align 4, !tbaa !5
  %1183 = load i32, ptr %20, align 4, !tbaa !5
  %1184 = mul nsw i32 3, %1183
  %1185 = sdiv i32 %1184, 50
  %1186 = icmp eq i32 %1182, %1185
  br i1 %1186, label %1187, label %1188

1187:                                             ; preds = %1181
  store i32 5006, ptr %71, align 4, !tbaa !5
  br label %1205

1188:                                             ; preds = %1181
  %1189 = load i32, ptr %15, align 4, !tbaa !5
  %1190 = load i32, ptr %20, align 4, !tbaa !5
  %1191 = mul nsw i32 4, %1190
  %1192 = sdiv i32 %1191, 50
  %1193 = icmp eq i32 %1189, %1192
  br i1 %1193, label %1194, label %1195

1194:                                             ; preds = %1188
  store i32 5007, ptr %71, align 4, !tbaa !5
  br label %1204

1195:                                             ; preds = %1188
  %1196 = load i32, ptr %15, align 4, !tbaa !5
  %1197 = load i32, ptr %20, align 4, !tbaa !5
  %1198 = mul nsw i32 5, %1197
  %1199 = sdiv i32 %1198, 50
  %1200 = icmp eq i32 %1196, %1199
  br i1 %1200, label %1201, label %1202

1201:                                             ; preds = %1195
  store i32 5008, ptr %71, align 4, !tbaa !5
  br label %1203

1202:                                             ; preds = %1195
  store i32 5009, ptr %71, align 4, !tbaa !5
  br label %1203

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

1204:                                             ; preds = %1203, %1194
  br label %1205

1205:                                             ; preds = %1204, %1187
  br label %1206

1206:                                             ; preds = %1205, %1180
  br label %1207

1207:                                             ; preds = %1206, %1174
  br label %1208

1208:                                             ; preds = %1207, %1168
  br label %1209

1209:                                             ; preds = %1208, %1162
  br label %1210

1210:                                             ; preds = %1209, %1156
  %1211 = load ptr, ptr %11, align 8, !tbaa !9
  %1212 = load i32, ptr %71, align 4, !tbaa !5
  %1213 = icmp eq i32 %1212, 0
  %1214 = zext i1 %1213 to i32
  %1215 = load i32, ptr %71, align 4, !tbaa !5
  %1216 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1211, i32 noundef 4040, i32 noundef %1215)
  store i32 96000, ptr %15, align 4, !tbaa !5
  br label %1217

1217:                                             ; preds = %1210, %1148
  br label %1218

1218:                                             ; preds = %2108, %1217
  %1219 = load i32, ptr %33, align 4, !tbaa !5
  %1220 = icmp ne i32 %1219, 0
  %1221 = xor i1 %1220, true
  br i1 %1221, label %1222, label %2115

1222:                                             ; preds = %1218
  %1223 = load i32, ptr %60, align 4, !tbaa !5
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1227

1225:                                             ; preds = %1222
  %1226 = load i32, ptr %59, align 4, !tbaa !5
  store i32 %1226, ptr %15, align 4, !tbaa !5
  store i32 0, ptr %60, align 4, !tbaa !5
  br label %1295

1227:                                             ; preds = %1222
  %1228 = load i32, ptr %58, align 4, !tbaa !5
  %1229 = icmp ne i32 %1228, 0
  br i1 %1229, label %1230, label %1294

1230:                                             ; preds = %1227
  %1231 = call i32 @rand() #10
  %1232 = srem i32 %1231, 20
  %1233 = icmp eq i32 %1232, 0
  br i1 %1233, label %1234, label %1294

1234:                                             ; preds = %1230
  %1235 = call i32 @rand() #10
  %1236 = srem i32 %1235, 6
  store i32 %1236, ptr %59, align 4, !tbaa !5
  %1237 = load i32, ptr %59, align 4, !tbaa !5
  switch i32 %1237, label %1257 [
    i32 0, label %1238
    i32 1, label %1241
    i32 2, label %1244
    i32 3, label %1247
    i32 4, label %1250
    i32 5, label %1253
  ]

1238:                                             ; preds = %1234
  %1239 = load i32, ptr %20, align 4, !tbaa !5
  %1240 = sdiv i32 %1239, 400
  store i32 %1240, ptr %59, align 4, !tbaa !5
  br label %1257

1241:                                             ; preds = %1234
  %1242 = load i32, ptr %20, align 4, !tbaa !5
  %1243 = sdiv i32 %1242, 200
  store i32 %1243, ptr %59, align 4, !tbaa !5
  br label %1257

1244:                                             ; preds = %1234
  %1245 = load i32, ptr %20, align 4, !tbaa !5
  %1246 = sdiv i32 %1245, 100
  store i32 %1246, ptr %59, align 4, !tbaa !5
  br label %1257

1247:                                             ; preds = %1234
  %1248 = load i32, ptr %20, align 4, !tbaa !5
  %1249 = sdiv i32 %1248, 50
  store i32 %1249, ptr %59, align 4, !tbaa !5
  br label %1257

1250:                                             ; preds = %1234
  %1251 = load i32, ptr %20, align 4, !tbaa !5
  %1252 = sdiv i32 %1251, 25
  store i32 %1252, ptr %59, align 4, !tbaa !5
  br label %1257

1253:                                             ; preds = %1234
  %1254 = load i32, ptr %20, align 4, !tbaa !5
  %1255 = mul nsw i32 3, %1254
  %1256 = sdiv i32 %1255, 50
  store i32 %1256, ptr %59, align 4, !tbaa !5
  br label %1257

1257:                                             ; preds = %1253, %1250, %1247, %1244, %1241, %1238, %1234
  br label %1258

1258:                                             ; preds = %1275, %1257
  %1259 = load i32, ptr %59, align 4, !tbaa !5
  %1260 = load i32, ptr %20, align 4, !tbaa !5
  %1261 = sdiv i32 %1260, 25
  %1262 = icmp slt i32 %1259, %1261
  br i1 %1262, label %1263, label %1273

1263:                                             ; preds = %1258
  %1264 = load i32, ptr %17, align 4, !tbaa !5
  %1265 = load i32, ptr %57, align 4, !tbaa !5
  %1266 = call i32 @llvm.abs.i32(i32 %1265, i1 true)
  %1267 = sub nsw i32 %1264, %1266
  %1268 = load i32, ptr %20, align 4, !tbaa !5
  %1269 = mul nsw i32 36, %1268
  %1270 = load i32, ptr %59, align 4, !tbaa !5
  %1271 = sdiv i32 %1269, %1270
  %1272 = icmp sle i32 %1267, %1271
  br label %1273

1273:                                             ; preds = %1263, %1258
  %1274 = phi i1 [ false, %1258 ], [ %1272, %1263 ]
  br i1 %1274, label %1275, label %1278

1275:                                             ; preds = %1273
  %1276 = load i32, ptr %59, align 4, !tbaa !5
  %1277 = mul nsw i32 %1276, 2
  store i32 %1277, ptr %59, align 4, !tbaa !5
  br label %1258, !llvm.loop !17

1278:                                             ; preds = %1273
  %1279 = load i32, ptr %59, align 4, !tbaa !5
  %1280 = load i32, ptr %20, align 4, !tbaa !5
  %1281 = sdiv i32 %1280, 100
  %1282 = icmp slt i32 %1279, %1281
  br i1 %1282, label %1283, label %1291

1283:                                             ; preds = %1278
  %1284 = load i32, ptr %15, align 4, !tbaa !5
  %1285 = load i32, ptr %20, align 4, !tbaa !5
  %1286 = sdiv i32 %1285, 100
  %1287 = icmp sge i32 %1284, %1286
  br i1 %1287, label %1288, label %1291

1288:                                             ; preds = %1283
  %1289 = load ptr, ptr %11, align 8, !tbaa !9
  %1290 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1289, i32 noundef 11002, i32 noundef 1002)
  store i32 1, ptr %60, align 4, !tbaa !5
  br label %1293

1291:                                             ; preds = %1283, %1278
  %1292 = load i32, ptr %59, align 4, !tbaa !5
  store i32 %1292, ptr %15, align 4, !tbaa !5
  br label %1293

1293:                                             ; preds = %1291, %1288
  br label %1294

1294:                                             ; preds = %1293, %1230, %1227
  br label %1295

1295:                                             ; preds = %1294, %1225
  %1296 = load i32, ptr %63, align 4, !tbaa !5
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1315

1298:                                             ; preds = %1295
  %1299 = call i32 @rand() #10
  %1300 = srem i32 %1299, 30
  %1301 = icmp eq i32 %1300, 0
  br i1 %1301, label %1302, label %1315

1302:                                             ; preds = %1298
  %1303 = load ptr, ptr %11, align 8, !tbaa !9
  %1304 = call i32 @rand() #10
  %1305 = srem i32 %1304, 4
  %1306 = icmp eq i32 %1305, 0
  %1307 = zext i1 %1306 to i32
  %1308 = icmp eq i32 %1307, 0
  %1309 = zext i1 %1308 to i32
  %1310 = call i32 @rand() #10
  %1311 = srem i32 %1310, 4
  %1312 = icmp eq i32 %1311, 0
  %1313 = zext i1 %1312 to i32
  %1314 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1303, i32 noundef 4012, i32 noundef %1313)
  br label %1315

1315:                                             ; preds = %1302, %1298, %1295
  %1316 = load i32, ptr %53, align 4, !tbaa !5
  %1317 = icmp ne i32 %1316, 0
  br i1 %1317, label %1318, label %1394

1318:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #10
  %1319 = getelementptr inbounds [4 x i8], ptr %75, i64 0, i64 0
  %1320 = load ptr, ptr %9, align 8, !tbaa !9
  %1321 = call i64 @fread(ptr noundef %1319, i64 noundef 1, i64 noundef 4, ptr noundef %1320)
  store i64 %1321, ptr %55, align 8, !tbaa !13
  %1322 = load i64, ptr %55, align 8, !tbaa !13
  %1323 = icmp ne i64 %1322, 4
  br i1 %1323, label %1324, label %1325

1324:                                             ; preds = %1318
  store i32 47, ptr %76, align 4
  br label %1391

1325:                                             ; preds = %1318
  %1326 = getelementptr inbounds [4 x i8], ptr %75, i64 0, i64 0
  %1327 = call i32 @char_to_int(ptr noundef %1326)
  %1328 = load i32, ptr %49, align 4, !tbaa !5
  %1329 = sext i32 %1328 to i64
  %1330 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1329
  store i32 %1327, ptr %1330, align 4, !tbaa !5
  %1331 = load i32, ptr %49, align 4, !tbaa !5
  %1332 = sext i32 %1331 to i64
  %1333 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1332
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = load i32, ptr %22, align 4, !tbaa !5
  %1336 = icmp sgt i32 %1334, %1335
  br i1 %1336, label %1343, label %1337

1337:                                             ; preds = %1325
  %1338 = load i32, ptr %49, align 4, !tbaa !5
  %1339 = sext i32 %1338 to i64
  %1340 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1339
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = icmp slt i32 %1341, 0
  br i1 %1342, label %1343, label %1350

1343:                                             ; preds = %1337, %1325
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = load i32, ptr %49, align 4, !tbaa !5
  %1346 = sext i32 %1345 to i64
  %1347 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1346
  %1348 = load i32, ptr %1347, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1344, ptr noundef @.str.84, i32 noundef %1348) #10
  store i32 47, ptr %76, align 4
  br label %1391

1350:                                             ; preds = %1337
  %1351 = getelementptr inbounds [4 x i8], ptr %75, i64 0, i64 0
  %1352 = load ptr, ptr %9, align 8, !tbaa !9
  %1353 = call i64 @fread(ptr noundef %1351, i64 noundef 1, i64 noundef 4, ptr noundef %1352)
  store i64 %1353, ptr %55, align 8, !tbaa !13
  %1354 = load i64, ptr %55, align 8, !tbaa !13
  %1355 = icmp ne i64 %1354, 4
  br i1 %1355, label %1356, label %1357

1356:                                             ; preds = %1350
  store i32 47, ptr %76, align 4
  br label %1391

1357:                                             ; preds = %1350
  %1358 = getelementptr inbounds [4 x i8], ptr %75, i64 0, i64 0
  %1359 = call i32 @char_to_int(ptr noundef %1358)
  %1360 = load i32, ptr %49, align 4, !tbaa !5
  %1361 = sext i32 %1360 to i64
  %1362 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1361
  store i32 %1359, ptr %1362, align 4, !tbaa !5
  %1363 = load i32, ptr %49, align 4, !tbaa !5
  %1364 = sext i32 %1363 to i64
  %1365 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1364
  %1366 = load ptr, ptr %1365, align 8, !tbaa !9
  %1367 = load i32, ptr %49, align 4, !tbaa !5
  %1368 = sext i32 %1367 to i64
  %1369 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1368
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = sext i32 %1370 to i64
  %1372 = load ptr, ptr %9, align 8, !tbaa !9
  %1373 = call i64 @fread(ptr noundef %1366, i64 noundef 1, i64 noundef %1371, ptr noundef %1372)
  store i64 %1373, ptr %55, align 8, !tbaa !13
  %1374 = load i64, ptr %55, align 8, !tbaa !13
  %1375 = load i32, ptr %49, align 4, !tbaa !5
  %1376 = sext i32 %1375 to i64
  %1377 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1376
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = sext i32 %1378 to i64
  %1380 = icmp ne i64 %1374, %1379
  br i1 %1380, label %1381, label %1390

1381:                                             ; preds = %1357
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr %49, align 4, !tbaa !5
  %1384 = sext i32 %1383 to i64
  %1385 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1384
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = load i64, ptr %55, align 8, !tbaa !13
  %1388 = trunc i64 %1387 to i32
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef @.str.85, i32 noundef %1386, i32 noundef %1388) #10
  store i32 47, ptr %76, align 4
  br label %1391

1390:                                             ; preds = %1357
  store i32 0, ptr %76, align 4
  br label %1391

1391:                                             ; preds = %1390, %1381, %1356, %1343, %1324
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  %1392 = load i32, ptr %76, align 4
  switch i32 %1392, label %2234 [
    i32 0, label %1393
    i32 47, label %2115
  ]

1393:                                             ; preds = %1391
  br label %1683

1394:                                             ; preds = %1315
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #10
  %1395 = load ptr, ptr %64, align 8, !tbaa !9
  %1396 = icmp ne ptr %1395, null
  br i1 %1396, label %1397, label %1452

1397:                                             ; preds = %1394
  %1398 = load ptr, ptr %11, align 8, !tbaa !9
  %1399 = load ptr, ptr %64, align 8, !tbaa !9
  %1400 = load i32, ptr %66, align 4, !tbaa !5
  %1401 = sext i32 %1400 to i64
  %1402 = getelementptr inbounds [4 x i32], ptr %1399, i64 %1401
  %1403 = getelementptr inbounds [4 x i32], ptr %1402, i64 0, i64 1
  %1404 = load i32, ptr %1403, align 4, !tbaa !5
  %1405 = icmp eq i32 %1404, 0
  %1406 = zext i1 %1405 to i32
  %1407 = load ptr, ptr %64, align 8, !tbaa !9
  %1408 = load i32, ptr %66, align 4, !tbaa !5
  %1409 = sext i32 %1408 to i64
  %1410 = getelementptr inbounds [4 x i32], ptr %1407, i64 %1409
  %1411 = getelementptr inbounds [4 x i32], ptr %1410, i64 0, i64 1
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1398, i32 noundef 4008, i32 noundef %1412)
  %1414 = load ptr, ptr %11, align 8, !tbaa !9
  %1415 = load ptr, ptr %64, align 8, !tbaa !9
  %1416 = load i32, ptr %66, align 4, !tbaa !5
  %1417 = sext i32 %1416 to i64
  %1418 = getelementptr inbounds [4 x i32], ptr %1415, i64 %1417
  %1419 = getelementptr inbounds [4 x i32], ptr %1418, i64 0, i64 0
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = icmp eq i32 %1420, 0
  %1422 = zext i1 %1421 to i32
  %1423 = load ptr, ptr %64, align 8, !tbaa !9
  %1424 = load i32, ptr %66, align 4, !tbaa !5
  %1425 = sext i32 %1424 to i64
  %1426 = getelementptr inbounds [4 x i32], ptr %1423, i64 %1425
  %1427 = getelementptr inbounds [4 x i32], ptr %1426, i64 0, i64 0
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1414, i32 noundef 11002, i32 noundef %1428)
  %1430 = load ptr, ptr %11, align 8, !tbaa !9
  %1431 = load ptr, ptr %64, align 8, !tbaa !9
  %1432 = load i32, ptr %66, align 4, !tbaa !5
  %1433 = sext i32 %1432 to i64
  %1434 = getelementptr inbounds [4 x i32], ptr %1431, i64 %1433
  %1435 = getelementptr inbounds [4 x i32], ptr %1434, i64 0, i64 3
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = icmp eq i32 %1436, 0
  %1438 = zext i1 %1437 to i32
  %1439 = load ptr, ptr %64, align 8, !tbaa !9
  %1440 = load i32, ptr %66, align 4, !tbaa !5
  %1441 = sext i32 %1440 to i64
  %1442 = getelementptr inbounds [4 x i32], ptr %1439, i64 %1441
  %1443 = getelementptr inbounds [4 x i32], ptr %1442, i64 0, i64 3
  %1444 = load i32, ptr %1443, align 4, !tbaa !5
  %1445 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1430, i32 noundef 4022, i32 noundef %1444)
  %1446 = load ptr, ptr %64, align 8, !tbaa !9
  %1447 = load i32, ptr %66, align 4, !tbaa !5
  %1448 = sext i32 %1447 to i64
  %1449 = getelementptr inbounds [4 x i32], ptr %1446, i64 %1448
  %1450 = getelementptr inbounds [4 x i32], ptr %1449, i64 0, i64 2
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  store i32 %1451, ptr %15, align 4, !tbaa !5
  br label %1452

1452:                                             ; preds = %1397, %1394
  %1453 = load ptr, ptr %19, align 8, !tbaa !9
  %1454 = load i32, ptr %16, align 4, !tbaa !5
  %1455 = sext i32 %1454 to i64
  %1456 = mul i64 2, %1455
  %1457 = load i32, ptr %15, align 4, !tbaa !5
  %1458 = load i32, ptr %70, align 4, !tbaa !5
  %1459 = sub nsw i32 %1457, %1458
  %1460 = sext i32 %1459 to i64
  %1461 = load ptr, ptr %9, align 8, !tbaa !9
  %1462 = call i64 @fread(ptr noundef %1453, i64 noundef %1456, i64 noundef %1460, ptr noundef %1461)
  store i64 %1462, ptr %55, align 8, !tbaa !13
  %1463 = load i64, ptr %55, align 8, !tbaa !13
  %1464 = trunc i64 %1463 to i32
  store i32 %1464, ptr %56, align 4, !tbaa !5
  %1465 = load i32, ptr %56, align 4, !tbaa !5
  %1466 = sext i32 %1465 to i64
  %1467 = load i64, ptr %43, align 8, !tbaa !13
  %1468 = add i64 %1467, %1466
  store i64 %1468, ptr %43, align 8, !tbaa !13
  store i32 0, ptr %77, align 4, !tbaa !5
  br label %1469

1469:                                             ; preds = %1507, %1452
  %1470 = load i32, ptr %77, align 4, !tbaa !5
  %1471 = load i32, ptr %56, align 4, !tbaa !5
  %1472 = load i32, ptr %16, align 4, !tbaa !5
  %1473 = mul nsw i32 %1471, %1472
  %1474 = icmp slt i32 %1470, %1473
  br i1 %1474, label %1475, label %1510

1475:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #10
  %1476 = load ptr, ptr %19, align 8, !tbaa !9
  %1477 = load i32, ptr %77, align 4, !tbaa !5
  %1478 = mul nsw i32 2, %1477
  %1479 = add nsw i32 %1478, 1
  %1480 = sext i32 %1479 to i64
  %1481 = getelementptr inbounds i8, ptr %1476, i64 %1480
  %1482 = load i8, ptr %1481, align 1, !tbaa !18
  %1483 = zext i8 %1482 to i32
  %1484 = shl i32 %1483, 8
  %1485 = load ptr, ptr %19, align 8, !tbaa !9
  %1486 = load i32, ptr %77, align 4, !tbaa !5
  %1487 = mul nsw i32 2, %1486
  %1488 = sext i32 %1487 to i64
  %1489 = getelementptr inbounds i8, ptr %1485, i64 %1488
  %1490 = load i8, ptr %1489, align 1, !tbaa !18
  %1491 = zext i8 %1490 to i32
  %1492 = or i32 %1484, %1491
  store i32 %1492, ptr %78, align 4, !tbaa !5
  %1493 = load i32, ptr %78, align 4, !tbaa !5
  %1494 = and i32 %1493, 65535
  %1495 = xor i32 %1494, 32768
  %1496 = sub nsw i32 %1495, 32768
  store i32 %1496, ptr %78, align 4, !tbaa !5
  %1497 = load i32, ptr %78, align 4, !tbaa !5
  %1498 = trunc i32 %1497 to i16
  %1499 = load ptr, ptr %34, align 8, !tbaa !9
  %1500 = load i32, ptr %77, align 4, !tbaa !5
  %1501 = load i32, ptr %70, align 4, !tbaa !5
  %1502 = load i32, ptr %16, align 4, !tbaa !5
  %1503 = mul nsw i32 %1501, %1502
  %1504 = add nsw i32 %1500, %1503
  %1505 = sext i32 %1504 to i64
  %1506 = getelementptr inbounds i16, ptr %1499, i64 %1505
  store i16 %1498, ptr %1506, align 2, !tbaa !19
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %1507

1507:                                             ; preds = %1475
  %1508 = load i32, ptr %77, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr %77, align 4, !tbaa !5
  br label %1469, !llvm.loop !21

1510:                                             ; preds = %1469
  %1511 = load i32, ptr %56, align 4, !tbaa !5
  %1512 = load i32, ptr %70, align 4, !tbaa !5
  %1513 = add nsw i32 %1511, %1512
  %1514 = load i32, ptr %15, align 4, !tbaa !5
  %1515 = icmp slt i32 %1513, %1514
  br i1 %1515, label %1516, label %1544

1516:                                             ; preds = %1510
  %1517 = load i32, ptr %56, align 4, !tbaa !5
  %1518 = load i32, ptr %70, align 4, !tbaa !5
  %1519 = add nsw i32 %1517, %1518
  %1520 = load i32, ptr %16, align 4, !tbaa !5
  %1521 = mul nsw i32 %1519, %1520
  store i32 %1521, ptr %77, align 4, !tbaa !5
  br label %1522

1522:                                             ; preds = %1533, %1516
  %1523 = load i32, ptr %77, align 4, !tbaa !5
  %1524 = load i32, ptr %15, align 4, !tbaa !5
  %1525 = load i32, ptr %16, align 4, !tbaa !5
  %1526 = mul nsw i32 %1524, %1525
  %1527 = icmp slt i32 %1523, %1526
  br i1 %1527, label %1528, label %1536

1528:                                             ; preds = %1522
  %1529 = load ptr, ptr %34, align 8, !tbaa !9
  %1530 = load i32, ptr %77, align 4, !tbaa !5
  %1531 = sext i32 %1530 to i64
  %1532 = getelementptr inbounds i16, ptr %1529, i64 %1531
  store i16 0, ptr %1532, align 2, !tbaa !19
  br label %1533

1533:                                             ; preds = %1528
  %1534 = load i32, ptr %77, align 4, !tbaa !5
  %1535 = add nsw i32 %1534, 1
  store i32 %1535, ptr %77, align 4, !tbaa !5
  br label %1522, !llvm.loop !22

1536:                                             ; preds = %1522
  %1537 = load i32, ptr %52, align 4, !tbaa !5
  %1538 = icmp ne i32 %1537, 0
  br i1 %1538, label %1542, label %1539

1539:                                             ; preds = %1536
  %1540 = load i32, ptr %53, align 4, !tbaa !5
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1543

1542:                                             ; preds = %1539, %1536
  store i32 1, ptr %33, align 4, !tbaa !5
  br label %1543

1543:                                             ; preds = %1542, %1539
  br label %1544

1544:                                             ; preds = %1543, %1510
  %1545 = load ptr, ptr %11, align 8, !tbaa !9
  %1546 = load ptr, ptr %34, align 8, !tbaa !9
  %1547 = load i32, ptr %15, align 4, !tbaa !5
  %1548 = load i32, ptr %49, align 4, !tbaa !5
  %1549 = sext i32 %1548 to i64
  %1550 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1549
  %1551 = load ptr, ptr %1550, align 8, !tbaa !9
  %1552 = load i32, ptr %22, align 4, !tbaa !5
  %1553 = call i32 @opus_encode(ptr noundef %1545, ptr noundef %1546, i32 noundef %1547, ptr noundef %1551, i32 noundef %1552)
  %1554 = load i32, ptr %49, align 4, !tbaa !5
  %1555 = sext i32 %1554 to i64
  %1556 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1555
  store i32 %1553, ptr %1556, align 4, !tbaa !5
  %1557 = load i32, ptr %49, align 4, !tbaa !5
  %1558 = sext i32 %1557 to i64
  %1559 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1558
  %1560 = load ptr, ptr %1559, align 8, !tbaa !9
  %1561 = load i32, ptr %20, align 4, !tbaa !5
  %1562 = call i32 @opus_packet_get_samples_per_frame(ptr noundef %1560, i32 noundef %1561)
  %1563 = load i32, ptr %49, align 4, !tbaa !5
  %1564 = sext i32 %1563 to i64
  %1565 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1564
  %1566 = load ptr, ptr %1565, align 8, !tbaa !9
  %1567 = load i32, ptr %49, align 4, !tbaa !5
  %1568 = sext i32 %1567 to i64
  %1569 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1568
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call i32 @opus_packet_get_nb_frames(ptr noundef %1566, i32 noundef %1570)
  %1572 = mul nsw i32 %1562, %1571
  store i32 %1572, ptr %69, align 4, !tbaa !5
  %1573 = load i32, ptr %15, align 4, !tbaa !5
  %1574 = load i32, ptr %69, align 4, !tbaa !5
  %1575 = sub nsw i32 %1573, %1574
  store i32 %1575, ptr %70, align 4, !tbaa !5
  store i32 0, ptr %77, align 4, !tbaa !5
  br label %1576

1576:                                             ; preds = %1596, %1544
  %1577 = load i32, ptr %77, align 4, !tbaa !5
  %1578 = load i32, ptr %70, align 4, !tbaa !5
  %1579 = load i32, ptr %16, align 4, !tbaa !5
  %1580 = mul nsw i32 %1578, %1579
  %1581 = icmp slt i32 %1577, %1580
  br i1 %1581, label %1582, label %1599

1582:                                             ; preds = %1576
  %1583 = load ptr, ptr %34, align 8, !tbaa !9
  %1584 = load i32, ptr %69, align 4, !tbaa !5
  %1585 = load i32, ptr %16, align 4, !tbaa !5
  %1586 = mul nsw i32 %1584, %1585
  %1587 = load i32, ptr %77, align 4, !tbaa !5
  %1588 = add nsw i32 %1586, %1587
  %1589 = sext i32 %1588 to i64
  %1590 = getelementptr inbounds i16, ptr %1583, i64 %1589
  %1591 = load i16, ptr %1590, align 2, !tbaa !19
  %1592 = load ptr, ptr %34, align 8, !tbaa !9
  %1593 = load i32, ptr %77, align 4, !tbaa !5
  %1594 = sext i32 %1593 to i64
  %1595 = getelementptr inbounds i16, ptr %1592, i64 %1594
  store i16 %1591, ptr %1595, align 2, !tbaa !19
  br label %1596

1596:                                             ; preds = %1582
  %1597 = load i32, ptr %77, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr %77, align 4, !tbaa !5
  br label %1576, !llvm.loop !23

1599:                                             ; preds = %1576
  %1600 = load i32, ptr %57, align 4, !tbaa !5
  %1601 = icmp ne i32 %1600, 0
  br i1 %1601, label %1602, label %1635

1602:                                             ; preds = %1599
  %1603 = load i32, ptr %57, align 4, !tbaa !5
  %1604 = load i32, ptr %17, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, %1603
  store i32 %1605, ptr %17, align 4, !tbaa !5
  %1606 = load i32, ptr %61, align 4, !tbaa !5
  %1607 = icmp ne i32 %1606, 0
  br i1 %1607, label %1608, label %1624

1608:                                             ; preds = %1602
  %1609 = load i32, ptr %17, align 4, !tbaa !5
  %1610 = load i32, ptr %61, align 4, !tbaa !5
  %1611 = icmp sgt i32 %1609, %1610
  br i1 %1611, label %1612, label %1615

1612:                                             ; preds = %1608
  %1613 = load i32, ptr %57, align 4, !tbaa !5
  %1614 = sub nsw i32 0, %1613
  store i32 %1614, ptr %57, align 4, !tbaa !5
  br label %1623

1615:                                             ; preds = %1608
  %1616 = load i32, ptr %17, align 4, !tbaa !5
  %1617 = load i32, ptr %62, align 4, !tbaa !5
  %1618 = icmp slt i32 %1616, %1617
  br i1 %1618, label %1619, label %1622

1619:                                             ; preds = %1615
  %1620 = load i32, ptr %57, align 4, !tbaa !5
  %1621 = sub nsw i32 0, %1620
  store i32 %1621, ptr %57, align 4, !tbaa !5
  br label %1622

1622:                                             ; preds = %1619, %1615
  br label %1623

1623:                                             ; preds = %1622, %1612
  br label %1624

1624:                                             ; preds = %1623, %1602
  %1625 = load i32, ptr %17, align 4, !tbaa !5
  %1626 = icmp slt i32 %1625, 1000
  br i1 %1626, label %1627, label %1628

1627:                                             ; preds = %1624
  store i32 1000, ptr %17, align 4, !tbaa !5
  br label %1628

1628:                                             ; preds = %1627, %1624
  %1629 = load ptr, ptr %11, align 8, !tbaa !9
  %1630 = load i32, ptr %17, align 4, !tbaa !5
  %1631 = icmp eq i32 %1630, 0
  %1632 = zext i1 %1631 to i32
  %1633 = load i32, ptr %17, align 4, !tbaa !5
  %1634 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1629, i32 noundef 4002, i32 noundef %1633)
  br label %1635

1635:                                             ; preds = %1628, %1599
  %1636 = load ptr, ptr %11, align 8, !tbaa !9
  %1637 = load i32, ptr %49, align 4, !tbaa !5
  %1638 = sext i32 %1637 to i64
  %1639 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1638
  %1640 = load i32, ptr %49, align 4, !tbaa !5
  %1641 = sext i32 %1640 to i64
  %1642 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1641
  %1643 = load i32, ptr %49, align 4, !tbaa !5
  %1644 = sext i32 %1643 to i64
  %1645 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1644
  %1646 = ptrtoint ptr %1642 to i64
  %1647 = ptrtoint ptr %1645 to i64
  %1648 = sub i64 %1646, %1647
  %1649 = sdiv exact i64 %1648, 4
  %1650 = getelementptr inbounds i32, ptr %1639, i64 %1649
  %1651 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %1636, i32 noundef 4031, ptr noundef %1650)
  %1652 = load i32, ptr %49, align 4, !tbaa !5
  %1653 = sext i32 %1652 to i64
  %1654 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1653
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = icmp slt i32 %1655, 0
  br i1 %1656, label %1657, label %1664

1657:                                             ; preds = %1635
  %1658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1659 = load i32, ptr %49, align 4, !tbaa !5
  %1660 = sext i32 %1659 to i64
  %1661 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1660
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1658, ptr noundef @.str.86, i32 noundef %1662) #10
  store i32 2, ptr %76, align 4
  br label %1680

1664:                                             ; preds = %1635
  %1665 = load i32, ptr %15, align 4, !tbaa !5
  %1666 = load i32, ptr %67, align 4, !tbaa !5
  %1667 = add nsw i32 %1666, %1665
  store i32 %1667, ptr %67, align 4, !tbaa !5
  %1668 = load i32, ptr %67, align 4, !tbaa !5
  %1669 = load i32, ptr %68, align 4, !tbaa !5
  %1670 = icmp sgt i32 %1668, %1669
  br i1 %1670, label %1671, label %1679

1671:                                             ; preds = %1664
  %1672 = load i32, ptr %66, align 4, !tbaa !5
  %1673 = load i32, ptr %65, align 4, !tbaa !5
  %1674 = sub nsw i32 %1673, 1
  %1675 = icmp slt i32 %1672, %1674
  br i1 %1675, label %1676, label %1679

1676:                                             ; preds = %1671
  %1677 = load i32, ptr %66, align 4, !tbaa !5
  %1678 = add nsw i32 %1677, 1
  store i32 %1678, ptr %66, align 4, !tbaa !5
  store i32 0, ptr %67, align 4, !tbaa !5
  br label %1679

1679:                                             ; preds = %1676, %1671, %1664
  store i32 0, ptr %76, align 4
  br label %1680

1680:                                             ; preds = %1679, %1657
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  %1681 = load i32, ptr %76, align 4
  switch i32 %1681, label %2232 [
    i32 0, label %1682
    i32 2, label %2209
  ]

1682:                                             ; preds = %1680
  br label %1683

1683:                                             ; preds = %1682, %1393
  %1684 = load i32, ptr %52, align 4, !tbaa !5
  %1685 = icmp ne i32 %1684, 0
  br i1 %1685, label %1686, label %1741

1686:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #10
  %1687 = load i32, ptr %49, align 4, !tbaa !5
  %1688 = sext i32 %1687 to i64
  %1689 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1688
  %1690 = load i32, ptr %1689, align 4, !tbaa !5
  %1691 = getelementptr inbounds [4 x i8], ptr %79, i64 0, i64 0
  call void @int_to_char(i32 noundef %1690, ptr noundef %1691)
  %1692 = getelementptr inbounds [4 x i8], ptr %79, i64 0, i64 0
  %1693 = load ptr, ptr %10, align 8, !tbaa !9
  %1694 = call i64 @fwrite(ptr noundef %1692, i64 noundef 1, i64 noundef 4, ptr noundef %1693)
  %1695 = icmp ne i64 %1694, 4
  br i1 %1695, label %1696, label %1699

1696:                                             ; preds = %1686
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1697, ptr noundef @.str.87) #10
  store i32 2, ptr %76, align 4
  br label %1738

1699:                                             ; preds = %1686
  %1700 = load i32, ptr %49, align 4, !tbaa !5
  %1701 = sext i32 %1700 to i64
  %1702 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1701
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  %1704 = getelementptr inbounds [4 x i8], ptr %79, i64 0, i64 0
  call void @int_to_char(i32 noundef %1703, ptr noundef %1704)
  %1705 = getelementptr inbounds [4 x i8], ptr %79, i64 0, i64 0
  %1706 = load ptr, ptr %10, align 8, !tbaa !9
  %1707 = call i64 @fwrite(ptr noundef %1705, i64 noundef 1, i64 noundef 4, ptr noundef %1706)
  %1708 = icmp ne i64 %1707, 4
  br i1 %1708, label %1709, label %1712

1709:                                             ; preds = %1699
  %1710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1710, ptr noundef @.str.87) #10
  store i32 2, ptr %76, align 4
  br label %1738

1712:                                             ; preds = %1699
  %1713 = load i32, ptr %49, align 4, !tbaa !5
  %1714 = sext i32 %1713 to i64
  %1715 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1714
  %1716 = load ptr, ptr %1715, align 8, !tbaa !9
  %1717 = load i32, ptr %49, align 4, !tbaa !5
  %1718 = sext i32 %1717 to i64
  %1719 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1718
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = sext i32 %1720 to i64
  %1722 = load ptr, ptr %10, align 8, !tbaa !9
  %1723 = call i64 @fwrite(ptr noundef %1716, i64 noundef 1, i64 noundef %1721, ptr noundef %1722)
  %1724 = load i32, ptr %49, align 4, !tbaa !5
  %1725 = sext i32 %1724 to i64
  %1726 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1725
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = zext i32 %1727 to i64
  %1729 = icmp ne i64 %1723, %1728
  br i1 %1729, label %1730, label %1733

1730:                                             ; preds = %1712
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1731, ptr noundef @.str.87) #10
  store i32 2, ptr %76, align 4
  br label %1738

1733:                                             ; preds = %1712
  %1734 = load i32, ptr %69, align 4, !tbaa !5
  %1735 = sitofp i32 %1734 to double
  %1736 = load double, ptr %42, align 8, !tbaa !11
  %1737 = fadd double %1736, %1735
  store double %1737, ptr %42, align 8, !tbaa !11
  store i32 0, ptr %76, align 4
  br label %1738

1738:                                             ; preds = %1733, %1730, %1709, %1696
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  %1739 = load i32, ptr %76, align 4
  switch i32 %1739, label %2232 [
    i32 0, label %1740
    i32 2, label %2209
  ]

1740:                                             ; preds = %1738
  br label %1961

1741:                                             ; preds = %1683
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #10
  %1742 = load i32, ptr %49, align 4, !tbaa !5
  %1743 = sext i32 %1742 to i64
  %1744 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1743
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = icmp eq i32 %1745, 0
  br i1 %1746, label %1757, label %1747

1747:                                             ; preds = %1741
  %1748 = load i32, ptr %28, align 4, !tbaa !5
  %1749 = icmp sgt i32 %1748, 0
  br i1 %1749, label %1750, label %1755

1750:                                             ; preds = %1747
  %1751 = call i32 @rand() #10
  %1752 = srem i32 %1751, 100
  %1753 = load i32, ptr %28, align 4, !tbaa !5
  %1754 = icmp slt i32 %1752, %1753
  br label %1755

1755:                                             ; preds = %1750, %1747
  %1756 = phi i1 [ false, %1747 ], [ %1754, %1750 ]
  br label %1757

1757:                                             ; preds = %1755, %1741
  %1758 = phi i1 [ true, %1741 ], [ %1756, %1755 ]
  %1759 = zext i1 %1758 to i32
  store i32 %1759, ptr %47, align 4, !tbaa !5
  %1760 = load i32, ptr %47, align 4, !tbaa !5
  %1761 = icmp ne i32 %1760, 0
  br i1 %1761, label %1762, label %1770

1762:                                             ; preds = %1757
  %1763 = load ptr, ptr %12, align 8, !tbaa !9
  %1764 = ptrtoint ptr %80 to i64
  %1765 = ptrtoint ptr %80 to i64
  %1766 = sub i64 %1764, %1765
  %1767 = sdiv exact i64 %1766, 4
  %1768 = getelementptr inbounds i32, ptr %80, i64 %1767
  %1769 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1763, i32 noundef 4039, ptr noundef %1768)
  br label %1772

1770:                                             ; preds = %1757
  %1771 = load i32, ptr %54, align 4, !tbaa !5
  store i32 %1771, ptr %80, align 4, !tbaa !5
  br label %1772

1772:                                             ; preds = %1770, %1762
  %1773 = load i32, ptr %29, align 4, !tbaa !5
  %1774 = load i32, ptr %24, align 4, !tbaa !5
  %1775 = icmp sge i32 %1773, %1774
  br i1 %1775, label %1776, label %1957

1776:                                             ; preds = %1772
  %1777 = load i32, ptr %24, align 4, !tbaa !5
  %1778 = icmp ne i32 %1777, 0
  br i1 %1778, label %1779, label %1825

1779:                                             ; preds = %1776
  %1780 = load i32, ptr %48, align 4, !tbaa !5
  %1781 = icmp ne i32 %1780, 0
  br i1 %1781, label %1782, label %1808

1782:                                             ; preds = %1779
  %1783 = load ptr, ptr %12, align 8, !tbaa !9
  %1784 = ptrtoint ptr %80 to i64
  %1785 = ptrtoint ptr %80 to i64
  %1786 = sub i64 %1784, %1785
  %1787 = sdiv exact i64 %1786, 4
  %1788 = getelementptr inbounds i32, ptr %80, i64 %1787
  %1789 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1783, i32 noundef 4039, ptr noundef %1788)
  %1790 = load ptr, ptr %12, align 8, !tbaa !9
  %1791 = load i32, ptr %47, align 4, !tbaa !5
  %1792 = icmp ne i32 %1791, 0
  br i1 %1792, label %1793, label %1794

1793:                                             ; preds = %1782
  br label %1799

1794:                                             ; preds = %1782
  %1795 = load i32, ptr %49, align 4, !tbaa !5
  %1796 = sext i32 %1795 to i64
  %1797 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1796
  %1798 = load ptr, ptr %1797, align 8, !tbaa !9
  br label %1799

1799:                                             ; preds = %1794, %1793
  %1800 = phi ptr [ null, %1793 ], [ %1798, %1794 ]
  %1801 = load i32, ptr %49, align 4, !tbaa !5
  %1802 = sext i32 %1801 to i64
  %1803 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1802
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = load ptr, ptr %35, align 8, !tbaa !9
  %1806 = load i32, ptr %80, align 4, !tbaa !5
  %1807 = call i32 @opus_decode(ptr noundef %1790, ptr noundef %1800, i32 noundef %1804, ptr noundef %1805, i32 noundef %1806, i32 noundef 1)
  store i32 %1807, ptr %80, align 4, !tbaa !5
  br label %1824

1808:                                             ; preds = %1779
  %1809 = load i32, ptr %54, align 4, !tbaa !5
  store i32 %1809, ptr %80, align 4, !tbaa !5
  %1810 = load ptr, ptr %12, align 8, !tbaa !9
  %1811 = load i32, ptr %49, align 4, !tbaa !5
  %1812 = sub nsw i32 1, %1811
  %1813 = sext i32 %1812 to i64
  %1814 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1813
  %1815 = load ptr, ptr %1814, align 8, !tbaa !9
  %1816 = load i32, ptr %49, align 4, !tbaa !5
  %1817 = sub nsw i32 1, %1816
  %1818 = sext i32 %1817 to i64
  %1819 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1818
  %1820 = load i32, ptr %1819, align 4, !tbaa !5
  %1821 = load ptr, ptr %35, align 8, !tbaa !9
  %1822 = load i32, ptr %80, align 4, !tbaa !5
  %1823 = call i32 @opus_decode(ptr noundef %1810, ptr noundef %1815, i32 noundef %1820, ptr noundef %1821, i32 noundef %1822, i32 noundef 0)
  store i32 %1823, ptr %80, align 4, !tbaa !5
  br label %1824

1824:                                             ; preds = %1808, %1799
  br label %1844

1825:                                             ; preds = %1776
  %1826 = load ptr, ptr %12, align 8, !tbaa !9
  %1827 = load i32, ptr %47, align 4, !tbaa !5
  %1828 = icmp ne i32 %1827, 0
  br i1 %1828, label %1829, label %1830

1829:                                             ; preds = %1825
  br label %1835

1830:                                             ; preds = %1825
  %1831 = load i32, ptr %49, align 4, !tbaa !5
  %1832 = sext i32 %1831 to i64
  %1833 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 %1832
  %1834 = load ptr, ptr %1833, align 8, !tbaa !9
  br label %1835

1835:                                             ; preds = %1830, %1829
  %1836 = phi ptr [ null, %1829 ], [ %1834, %1830 ]
  %1837 = load i32, ptr %49, align 4, !tbaa !5
  %1838 = sext i32 %1837 to i64
  %1839 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %1838
  %1840 = load i32, ptr %1839, align 4, !tbaa !5
  %1841 = load ptr, ptr %35, align 8, !tbaa !9
  %1842 = load i32, ptr %80, align 4, !tbaa !5
  %1843 = call i32 @opus_decode(ptr noundef %1826, ptr noundef %1836, i32 noundef %1840, ptr noundef %1841, i32 noundef %1842, i32 noundef 0)
  store i32 %1843, ptr %80, align 4, !tbaa !5
  br label %1844

1844:                                             ; preds = %1835, %1824
  %1845 = load i32, ptr %80, align 4, !tbaa !5
  %1846 = icmp sgt i32 %1845, 0
  br i1 %1846, label %1847, label %1947

1847:                                             ; preds = %1844
  %1848 = load i32, ptr %53, align 4, !tbaa !5
  %1849 = icmp ne i32 %1848, 0
  br i1 %1849, label %1862, label %1850

1850:                                             ; preds = %1847
  %1851 = load i64, ptr %44, align 8, !tbaa !13
  %1852 = load i32, ptr %80, align 4, !tbaa !5
  %1853 = sext i32 %1852 to i64
  %1854 = add i64 %1851, %1853
  %1855 = load i64, ptr %43, align 8, !tbaa !13
  %1856 = icmp ugt i64 %1854, %1855
  br i1 %1856, label %1857, label %1862

1857:                                             ; preds = %1850
  store i32 1, ptr %33, align 4, !tbaa !5
  %1858 = load i64, ptr %43, align 8, !tbaa !13
  %1859 = load i64, ptr %44, align 8, !tbaa !13
  %1860 = sub i64 %1858, %1859
  %1861 = trunc i64 %1860 to i32
  store i32 %1861, ptr %80, align 4, !tbaa !5
  br label %1862

1862:                                             ; preds = %1857, %1850, %1847
  %1863 = load i32, ptr %80, align 4, !tbaa !5
  %1864 = load i32, ptr %32, align 4, !tbaa !5
  %1865 = icmp sgt i32 %1863, %1864
  br i1 %1865, label %1866, label %1937

1866:                                             ; preds = %1862
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #10
  store i32 0, ptr %81, align 4, !tbaa !5
  br label %1867

1867:                                             ; preds = %1905, %1866
  %1868 = load i32, ptr %81, align 4, !tbaa !5
  %1869 = load i32, ptr %80, align 4, !tbaa !5
  %1870 = load i32, ptr %32, align 4, !tbaa !5
  %1871 = sub nsw i32 %1869, %1870
  %1872 = load i32, ptr %16, align 4, !tbaa !5
  %1873 = mul nsw i32 %1871, %1872
  %1874 = icmp slt i32 %1868, %1873
  br i1 %1874, label %1875, label %1908

1875:                                             ; preds = %1867
  call void @llvm.lifetime.start.p0(i64 2, ptr %82) #10
  %1876 = load ptr, ptr %35, align 8, !tbaa !9
  %1877 = load i32, ptr %81, align 4, !tbaa !5
  %1878 = load i32, ptr %32, align 4, !tbaa !5
  %1879 = load i32, ptr %16, align 4, !tbaa !5
  %1880 = mul nsw i32 %1878, %1879
  %1881 = add nsw i32 %1877, %1880
  %1882 = sext i32 %1881 to i64
  %1883 = getelementptr inbounds i16, ptr %1876, i64 %1882
  %1884 = load i16, ptr %1883, align 2, !tbaa !19
  store i16 %1884, ptr %82, align 2, !tbaa !19
  %1885 = load i16, ptr %82, align 2, !tbaa !19
  %1886 = sext i16 %1885 to i32
  %1887 = and i32 %1886, 255
  %1888 = trunc i32 %1887 to i8
  %1889 = load ptr, ptr %19, align 8, !tbaa !9
  %1890 = load i32, ptr %81, align 4, !tbaa !5
  %1891 = mul nsw i32 2, %1890
  %1892 = sext i32 %1891 to i64
  %1893 = getelementptr inbounds i8, ptr %1889, i64 %1892
  store i8 %1888, ptr %1893, align 1, !tbaa !18
  %1894 = load i16, ptr %82, align 2, !tbaa !19
  %1895 = sext i16 %1894 to i32
  %1896 = ashr i32 %1895, 8
  %1897 = and i32 %1896, 255
  %1898 = trunc i32 %1897 to i8
  %1899 = load ptr, ptr %19, align 8, !tbaa !9
  %1900 = load i32, ptr %81, align 4, !tbaa !5
  %1901 = mul nsw i32 2, %1900
  %1902 = add nsw i32 %1901, 1
  %1903 = sext i32 %1902 to i64
  %1904 = getelementptr inbounds i8, ptr %1899, i64 %1903
  store i8 %1898, ptr %1904, align 1, !tbaa !18
  call void @llvm.lifetime.end.p0(i64 2, ptr %82) #10
  br label %1905

1905:                                             ; preds = %1875
  %1906 = load i32, ptr %81, align 4, !tbaa !5
  %1907 = add nsw i32 %1906, 1
  store i32 %1907, ptr %81, align 4, !tbaa !5
  br label %1867, !llvm.loop !24

1908:                                             ; preds = %1867
  %1909 = load ptr, ptr %19, align 8, !tbaa !9
  %1910 = load i32, ptr %16, align 4, !tbaa !5
  %1911 = sext i32 %1910 to i64
  %1912 = mul i64 2, %1911
  %1913 = load i32, ptr %80, align 4, !tbaa !5
  %1914 = load i32, ptr %32, align 4, !tbaa !5
  %1915 = sub nsw i32 %1913, %1914
  %1916 = sext i32 %1915 to i64
  %1917 = load ptr, ptr %10, align 8, !tbaa !9
  %1918 = call i64 @fwrite(ptr noundef %1909, i64 noundef %1912, i64 noundef %1916, ptr noundef %1917)
  %1919 = load i32, ptr %80, align 4, !tbaa !5
  %1920 = load i32, ptr %32, align 4, !tbaa !5
  %1921 = sub nsw i32 %1919, %1920
  %1922 = zext i32 %1921 to i64
  %1923 = icmp ne i64 %1918, %1922
  br i1 %1923, label %1924, label %1927

1924:                                             ; preds = %1908
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1925, ptr noundef @.str.87) #10
  store i32 2, ptr %76, align 4
  br label %1934

1927:                                             ; preds = %1908
  %1928 = load i32, ptr %80, align 4, !tbaa !5
  %1929 = load i32, ptr %32, align 4, !tbaa !5
  %1930 = sub nsw i32 %1928, %1929
  %1931 = sext i32 %1930 to i64
  %1932 = load i64, ptr %44, align 8, !tbaa !13
  %1933 = add i64 %1932, %1931
  store i64 %1933, ptr %44, align 8, !tbaa !13
  store i32 0, ptr %76, align 4
  br label %1934

1934:                                             ; preds = %1927, %1924
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #10
  %1935 = load i32, ptr %76, align 4
  switch i32 %1935, label %1958 [
    i32 0, label %1936
  ]

1936:                                             ; preds = %1934
  br label %1937

1937:                                             ; preds = %1936, %1862
  %1938 = load i32, ptr %80, align 4, !tbaa !5
  %1939 = load i32, ptr %32, align 4, !tbaa !5
  %1940 = icmp slt i32 %1938, %1939
  br i1 %1940, label %1941, label %1945

1941:                                             ; preds = %1937
  %1942 = load i32, ptr %80, align 4, !tbaa !5
  %1943 = load i32, ptr %32, align 4, !tbaa !5
  %1944 = sub nsw i32 %1943, %1942
  store i32 %1944, ptr %32, align 4, !tbaa !5
  br label %1946

1945:                                             ; preds = %1937
  store i32 0, ptr %32, align 4, !tbaa !5
  br label %1946

1946:                                             ; preds = %1945, %1941
  br label %1952

1947:                                             ; preds = %1844
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = load i32, ptr %80, align 4, !tbaa !5
  %1950 = call ptr @opus_strerror(i32 noundef %1949)
  %1951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1948, ptr noundef @.str.88, ptr noundef %1950) #10
  br label %1952

1952:                                             ; preds = %1947, %1946
  %1953 = load i32, ptr %80, align 4, !tbaa !5
  %1954 = sitofp i32 %1953 to double
  %1955 = load double, ptr %42, align 8, !tbaa !11
  %1956 = fadd double %1955, %1954
  store double %1956, ptr %42, align 8, !tbaa !11
  br label %1957

1957:                                             ; preds = %1952, %1772
  store i32 0, ptr %76, align 4
  br label %1958

1958:                                             ; preds = %1957, %1934
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #10
  %1959 = load i32, ptr %76, align 4
  switch i32 %1959, label %2232 [
    i32 0, label %1960
    i32 2, label %2209
  ]

1960:                                             ; preds = %1958
  br label %1961

1961:                                             ; preds = %1960, %1740
  %1962 = load i32, ptr %52, align 4, !tbaa !5
  %1963 = icmp ne i32 %1962, 0
  br i1 %1963, label %1972, label %1964

1964:                                             ; preds = %1961
  %1965 = load ptr, ptr %12, align 8, !tbaa !9
  %1966 = ptrtoint ptr %51 to i64
  %1967 = ptrtoint ptr %51 to i64
  %1968 = sub i64 %1966, %1967
  %1969 = sdiv exact i64 %1968, 4
  %1970 = getelementptr inbounds i32, ptr %51, i64 %1969
  %1971 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %1965, i32 noundef 4031, ptr noundef %1970)
  br label %1972

1972:                                             ; preds = %1964, %1961
  %1973 = load i32, ptr %49, align 4, !tbaa !5
  %1974 = load i32, ptr %24, align 4, !tbaa !5
  %1975 = xor i32 %1973, %1974
  %1976 = sext i32 %1975 to i64
  %1977 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1976
  %1978 = load i32, ptr %1977, align 4, !tbaa !5
  %1979 = icmp ne i32 %1978, 0
  br i1 %1979, label %1980, label %2012

1980:                                             ; preds = %1972
  %1981 = load i32, ptr %52, align 4, !tbaa !5
  %1982 = icmp ne i32 %1981, 0
  br i1 %1982, label %2012, label %1983

1983:                                             ; preds = %1980
  %1984 = load i32, ptr %47, align 4, !tbaa !5
  %1985 = icmp ne i32 %1984, 0
  br i1 %1985, label %2012, label %1986

1986:                                             ; preds = %1983
  %1987 = load i32, ptr %48, align 4, !tbaa !5
  %1988 = icmp ne i32 %1987, 0
  br i1 %1988, label %2012, label %1989

1989:                                             ; preds = %1986
  %1990 = load i32, ptr %51, align 4, !tbaa !5
  %1991 = load i32, ptr %49, align 4, !tbaa !5
  %1992 = load i32, ptr %24, align 4, !tbaa !5
  %1993 = xor i32 %1991, %1992
  %1994 = sext i32 %1993 to i64
  %1995 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %1994
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = icmp ne i32 %1990, %1996
  br i1 %1997, label %1998, label %2012

1998:                                             ; preds = %1989
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr %29, align 4, !tbaa !5
  %2001 = sext i32 %2000 to i64
  %2002 = load i32, ptr %49, align 4, !tbaa !5
  %2003 = load i32, ptr %24, align 4, !tbaa !5
  %2004 = xor i32 %2002, %2003
  %2005 = sext i32 %2004 to i64
  %2006 = getelementptr inbounds [2 x i32], ptr %50, i64 0, i64 %2005
  %2007 = load i32, ptr %2006, align 4, !tbaa !5
  %2008 = zext i32 %2007 to i64
  %2009 = load i32, ptr %51, align 4, !tbaa !5
  %2010 = zext i32 %2009 to i64
  %2011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef @.str.89, i64 noundef %2001, i64 noundef %2008, i64 noundef %2010) #10
  br label %2209

2012:                                             ; preds = %1989, %1986, %1983, %1980, %1972
  %2013 = load i32, ptr %47, align 4, !tbaa !5
  store i32 %2013, ptr %48, align 4, !tbaa !5
  %2014 = load i32, ptr %29, align 4, !tbaa !5
  %2015 = load i32, ptr %24, align 4, !tbaa !5
  %2016 = icmp sge i32 %2014, %2015
  br i1 %2016, label %2017, label %2108

2017:                                             ; preds = %2012
  %2018 = load i32, ptr %49, align 4, !tbaa !5
  %2019 = sext i32 %2018 to i64
  %2020 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2019
  %2021 = load i32, ptr %2020, align 4, !tbaa !5
  %2022 = mul nsw i32 %2021, 8
  %2023 = sitofp i32 %2022 to double
  %2024 = load double, ptr %37, align 8, !tbaa !11
  %2025 = fadd double %2024, %2023
  store double %2025, ptr %37, align 8, !tbaa !11
  %2026 = load i32, ptr %49, align 4, !tbaa !5
  %2027 = sext i32 %2026 to i64
  %2028 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2027
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = mul nsw i32 %2029, 8
  %2031 = sitofp i32 %2030 to double
  %2032 = load double, ptr %38, align 8, !tbaa !11
  %2033 = fcmp ogt double %2031, %2032
  br i1 %2033, label %2034, label %2041

2034:                                             ; preds = %2017
  %2035 = load i32, ptr %49, align 4, !tbaa !5
  %2036 = sext i32 %2035 to i64
  %2037 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2036
  %2038 = load i32, ptr %2037, align 4, !tbaa !5
  %2039 = mul nsw i32 %2038, 8
  %2040 = sitofp i32 %2039 to double
  br label %2043

2041:                                             ; preds = %2017
  %2042 = load double, ptr %38, align 8, !tbaa !11
  br label %2043

2043:                                             ; preds = %2041, %2034
  %2044 = phi double [ %2040, %2034 ], [ %2042, %2041 ]
  store double %2044, ptr %38, align 8, !tbaa !11
  %2045 = load i32, ptr %49, align 4, !tbaa !5
  %2046 = sext i32 %2045 to i64
  %2047 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2046
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = load i32, ptr %49, align 4, !tbaa !5
  %2050 = sext i32 %2049 to i64
  %2051 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2050
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = mul nsw i32 %2048, %2052
  %2054 = mul nsw i32 %2053, 64
  %2055 = sitofp i32 %2054 to double
  %2056 = load double, ptr %40, align 8, !tbaa !11
  %2057 = fadd double %2056, %2055
  store double %2057, ptr %40, align 8, !tbaa !11
  %2058 = load i32, ptr %53, align 4, !tbaa !5
  %2059 = icmp ne i32 %2058, 0
  br i1 %2059, label %2107, label %2060

2060:                                             ; preds = %2043
  store double 0.000000e+00, ptr %41, align 8, !tbaa !11
  store i32 0, ptr %31, align 4, !tbaa !5
  br label %2061

2061:                                             ; preds = %2083, %2060
  %2062 = load i32, ptr %31, align 4, !tbaa !5
  %2063 = load i32, ptr %15, align 4, !tbaa !5
  %2064 = load i32, ptr %16, align 4, !tbaa !5
  %2065 = mul nsw i32 %2063, %2064
  %2066 = icmp slt i32 %2062, %2065
  br i1 %2066, label %2067, label %2086

2067:                                             ; preds = %2061
  %2068 = load ptr, ptr %34, align 8, !tbaa !9
  %2069 = load i32, ptr %31, align 4, !tbaa !5
  %2070 = sext i32 %2069 to i64
  %2071 = getelementptr inbounds i16, ptr %2068, i64 %2070
  %2072 = load i16, ptr %2071, align 2, !tbaa !19
  %2073 = sext i16 %2072 to i32
  %2074 = sitofp i32 %2073 to double
  %2075 = load ptr, ptr %34, align 8, !tbaa !9
  %2076 = load i32, ptr %31, align 4, !tbaa !5
  %2077 = sext i32 %2076 to i64
  %2078 = getelementptr inbounds i16, ptr %2075, i64 %2077
  %2079 = load i16, ptr %2078, align 2, !tbaa !19
  %2080 = sitofp i16 %2079 to double
  %2081 = load double, ptr %41, align 8, !tbaa !11
  %2082 = call double @llvm.fmuladd.f64(double %2074, double %2080, double %2081)
  store double %2082, ptr %41, align 8, !tbaa !11
  br label %2083

2083:                                             ; preds = %2067
  %2084 = load i32, ptr %31, align 4, !tbaa !5
  %2085 = add nsw i32 %2084, 1
  store i32 %2085, ptr %31, align 4, !tbaa !5
  br label %2061, !llvm.loop !25

2086:                                             ; preds = %2061
  %2087 = load i32, ptr %15, align 4, !tbaa !5
  %2088 = load i32, ptr %16, align 4, !tbaa !5
  %2089 = mul nsw i32 %2087, %2088
  %2090 = sitofp i32 %2089 to double
  %2091 = load double, ptr %41, align 8, !tbaa !11
  %2092 = fdiv double %2091, %2090
  store double %2092, ptr %41, align 8, !tbaa !11
  %2093 = load double, ptr %41, align 8, !tbaa !11
  %2094 = fcmp ogt double %2093, 1.000000e+05
  br i1 %2094, label %2095, label %2106

2095:                                             ; preds = %2086
  %2096 = load i32, ptr %49, align 4, !tbaa !5
  %2097 = sext i32 %2096 to i64
  %2098 = getelementptr inbounds [2 x i32], ptr %14, i64 0, i64 %2097
  %2099 = load i32, ptr %2098, align 4, !tbaa !5
  %2100 = mul nsw i32 %2099, 8
  %2101 = sitofp i32 %2100 to double
  %2102 = load double, ptr %39, align 8, !tbaa !11
  %2103 = fadd double %2102, %2101
  store double %2103, ptr %39, align 8, !tbaa !11
  %2104 = load i32, ptr %30, align 4, !tbaa !5
  %2105 = add nsw i32 %2104, 1
  store i32 %2105, ptr %30, align 4, !tbaa !5
  br label %2106

2106:                                             ; preds = %2095, %2086
  br label %2107

2107:                                             ; preds = %2106, %2043
  br label %2108

2108:                                             ; preds = %2107, %2012
  %2109 = load i32, ptr %29, align 4, !tbaa !5
  %2110 = add nsw i32 %2109, 1
  store i32 %2110, ptr %29, align 4, !tbaa !5
  %2111 = load i32, ptr %49, align 4, !tbaa !5
  %2112 = load i32, ptr %24, align 4, !tbaa !5
  %2113 = add nsw i32 %2111, %2112
  %2114 = and i32 %2113, 1
  store i32 %2114, ptr %49, align 4, !tbaa !5
  br label %1218, !llvm.loop !26

2115:                                             ; preds = %1391, %1218
  %2116 = load i32, ptr %53, align 4, !tbaa !5
  %2117 = icmp ne i32 %2116, 0
  br i1 %2117, label %2118, label %2127

2118:                                             ; preds = %2115
  %2119 = load i32, ptr %29, align 4, !tbaa !5
  %2120 = icmp sgt i32 %2119, 0
  br i1 %2120, label %2121, label %2127

2121:                                             ; preds = %2118
  %2122 = load double, ptr %42, align 8, !tbaa !11
  %2123 = load i32, ptr %29, align 4, !tbaa !5
  %2124 = sitofp i32 %2123 to double
  %2125 = fdiv double %2122, %2124
  %2126 = fptosi double %2125 to i32
  store i32 %2126, ptr %15, align 4, !tbaa !5
  br label %2127

2127:                                             ; preds = %2121, %2118, %2115
  %2128 = load i32, ptr %24, align 4, !tbaa !5
  %2129 = load i32, ptr %29, align 4, !tbaa !5
  %2130 = sub nsw i32 %2129, %2128
  store i32 %2130, ptr %29, align 4, !tbaa !5
  %2131 = load double, ptr %42, align 8, !tbaa !11
  %2132 = fcmp oge double %2131, 1.000000e+00
  br i1 %2132, label %2133, label %2205

2133:                                             ; preds = %2127
  %2134 = load i32, ptr %29, align 4, !tbaa !5
  %2135 = icmp sgt i32 %2134, 0
  br i1 %2135, label %2136, label %2205

2136:                                             ; preds = %2133
  %2137 = load i32, ptr %15, align 4, !tbaa !5
  %2138 = icmp ne i32 %2137, 0
  br i1 %2138, label %2139, label %2205

2139:                                             ; preds = %2136
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load double, ptr %37, align 8, !tbaa !11
  %2142 = fmul double 1.000000e-03, %2141
  %2143 = load i32, ptr %20, align 4, !tbaa !5
  %2144 = sitofp i32 %2143 to double
  %2145 = fmul double %2142, %2144
  %2146 = load double, ptr %42, align 8, !tbaa !11
  %2147 = fdiv double %2145, %2146
  %2148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef @.str.90, double noundef %2147) #10
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = load double, ptr %38, align 8, !tbaa !11
  %2151 = fmul double 1.000000e-03, %2150
  %2152 = load i32, ptr %20, align 4, !tbaa !5
  %2153 = sitofp i32 %2152 to double
  %2154 = fmul double %2151, %2153
  %2155 = load i32, ptr %15, align 4, !tbaa !5
  %2156 = sitofp i32 %2155 to double
  %2157 = fdiv double %2154, %2156
  %2158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2149, ptr noundef @.str.91, double noundef %2157) #10
  %2159 = load i32, ptr %53, align 4, !tbaa !5
  %2160 = icmp ne i32 %2159, 0
  br i1 %2160, label %2175, label %2161

2161:                                             ; preds = %2139
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = load double, ptr %39, align 8, !tbaa !11
  %2164 = fmul double 1.000000e-03, %2163
  %2165 = load i32, ptr %20, align 4, !tbaa !5
  %2166 = sitofp i32 %2165 to double
  %2167 = fmul double %2164, %2166
  %2168 = load i32, ptr %15, align 4, !tbaa !5
  %2169 = sitofp i32 %2168 to double
  %2170 = load i32, ptr %30, align 4, !tbaa !5
  %2171 = sitofp i32 %2170 to double
  %2172 = call double @llvm.fmuladd.f64(double %2169, double %2171, double 1.000000e-15)
  %2173 = fdiv double %2167, %2172
  %2174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2162, ptr noundef @.str.92, double noundef %2173) #10
  br label %2175

2175:                                             ; preds = %2161, %2139
  %2176 = load double, ptr %40, align 8, !tbaa !11
  %2177 = load i32, ptr %29, align 4, !tbaa !5
  %2178 = sitofp i32 %2177 to double
  %2179 = fdiv double %2176, %2178
  %2180 = load double, ptr %37, align 8, !tbaa !11
  %2181 = load double, ptr %37, align 8, !tbaa !11
  %2182 = fmul double %2180, %2181
  %2183 = load i32, ptr %29, align 4, !tbaa !5
  %2184 = sitofp i32 %2183 to double
  %2185 = load i32, ptr %29, align 4, !tbaa !5
  %2186 = sitofp i32 %2185 to double
  %2187 = fmul double %2184, %2186
  %2188 = fdiv double %2182, %2187
  %2189 = fsub double %2179, %2188
  store double %2189, ptr %83, align 8, !tbaa !11
  %2190 = load double, ptr %83, align 8, !tbaa !11
  %2191 = fcmp olt double %2190, 0.000000e+00
  br i1 %2191, label %2192, label %2193

2192:                                             ; preds = %2175
  store double 0.000000e+00, ptr %83, align 8, !tbaa !11
  br label %2193

2193:                                             ; preds = %2192, %2175
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load double, ptr %83, align 8, !tbaa !11
  %2196 = call double @sqrt(double noundef %2195) #10
  %2197 = fmul double 1.000000e-03, %2196
  %2198 = load i32, ptr %20, align 4, !tbaa !5
  %2199 = sitofp i32 %2198 to double
  %2200 = fmul double %2197, %2199
  %2201 = load i32, ptr %15, align 4, !tbaa !5
  %2202 = sitofp i32 %2201 to double
  %2203 = fdiv double %2200, %2202
  %2204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef @.str.93, double noundef %2203) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  br label %2208

2205:                                             ; preds = %2136, %2133, %2127
  %2206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2206, ptr noundef @.str.94) #10
  br label %2208

2208:                                             ; preds = %2205, %2193
  store i32 0, ptr %73, align 4, !tbaa !5
  br label %2209

2209:                                             ; preds = %2208, %1998, %1958, %1738, %1680, %1084, %1000, %981, %934, %920, %879, %871, %851, %831, %811, %791, %771, %751, %731, %704, %684, %657, %619, %599, %579, %559, %521, %494, %462, %345, %317, %262, %242, %208, %189, %151, %120, %86
  %2210 = load ptr, ptr %11, align 8, !tbaa !9
  call void @opus_encoder_destroy(ptr noundef %2210)
  %2211 = load ptr, ptr %12, align 8, !tbaa !9
  call void @opus_decoder_destroy(ptr noundef %2211)
  %2212 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 0
  %2213 = load ptr, ptr %2212, align 16, !tbaa !9
  call void @free(ptr noundef %2213) #10
  %2214 = getelementptr inbounds [2 x ptr], ptr %18, i64 0, i64 1
  %2215 = load ptr, ptr %2214, align 8, !tbaa !9
  call void @free(ptr noundef %2215) #10
  %2216 = load ptr, ptr %9, align 8, !tbaa !9
  %2217 = icmp ne ptr %2216, null
  br i1 %2217, label %2218, label %2221

2218:                                             ; preds = %2209
  %2219 = load ptr, ptr %9, align 8, !tbaa !9
  %2220 = call i32 @fclose(ptr noundef %2219)
  br label %2221

2221:                                             ; preds = %2218, %2209
  %2222 = load ptr, ptr %10, align 8, !tbaa !9
  %2223 = icmp ne ptr %2222, null
  br i1 %2223, label %2224, label %2227

2224:                                             ; preds = %2221
  %2225 = load ptr, ptr %10, align 8, !tbaa !9
  %2226 = call i32 @fclose(ptr noundef %2225)
  br label %2227

2227:                                             ; preds = %2224, %2221
  %2228 = load ptr, ptr %34, align 8, !tbaa !9
  call void @free(ptr noundef %2228) #10
  %2229 = load ptr, ptr %35, align 8, !tbaa !9
  call void @free(ptr noundef %2229) #10
  %2230 = load ptr, ptr %19, align 8, !tbaa !9
  call void @free(ptr noundef %2230) #10
  %2231 = load i32, ptr %73, align 4, !tbaa !5
  store i32 %2231, ptr %3, align 4
  store i32 1, ptr %76, align 4
  br label %2232

2232:                                             ; preds = %2227, %1958, %1738, %1680
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  %2233 = load i32, ptr %3, align 4
  ret i32 %2233

2234:                                             ; preds = %1391
  unreachable
}

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

declare ptr @opus_get_version_string() #4

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #5

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i64 @atol(ptr noundef nonnull) #6

; Function Attrs: inlinehint nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr noundef nonnull) #6

declare i32 @printf(ptr noundef, ...) #4

declare noalias ptr @fopen(ptr noundef, ptr noundef) #4

declare i32 @fseek(ptr noundef, i64 noundef, i32 noundef) #4

declare i64 @ftell(ptr noundef) #4

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

declare ptr @opus_encoder_create(i32 noundef, i32 noundef, i32 noundef, ptr noundef) #4

declare ptr @opus_strerror(i32 noundef) #4

declare i32 @opus_encoder_ctl(ptr noundef, i32 noundef, ...) #4

declare ptr @opus_decoder_create(i32 noundef, i32 noundef, ptr noundef) #4

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

; Function Attrs: nounwind allocsize(0,1)
declare noalias ptr @calloc(i64 noundef, i64 noundef) #8

; Function Attrs: nounwind
declare i32 @rand() #1

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #9

declare i64 @fread(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #4

; Function Attrs: nounwind uwtable
declare hidden i32 @char_to_int(ptr noundef) #0

declare i32 @opus_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #4

declare i32 @opus_packet_get_samples_per_frame(ptr noundef, i32 noundef) #4

declare i32 @opus_packet_get_nb_frames(ptr noundef, i32 noundef) #4

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

declare i64 @fwrite(ptr noundef, i64 noundef, i64 noundef, ptr noundef) #4

declare i32 @opus_decoder_ctl(ptr noundef, i32 noundef, ...) #4

declare i32 @opus_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) #4

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #9

; Function Attrs: nounwind
declare double @sqrt(double noundef) #1

declare void @opus_encoder_destroy(ptr noundef) #4

declare void @opus_decoder_destroy(ptr noundef) #4

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

declare i32 @fclose(ptr noundef) #4

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

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


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

@stderr = external local_unnamed_addr global ptr, align 8
@.str.17 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [13 x i8], align 1
@silk8_test = external hidden constant [8 x [4 x i32]], align 16
@.str.59 = external hidden unnamed_addr constant [14 x i8], align 1
@silk12_test = external hidden constant [8 x [4 x i32]], align 16
@.str.60 = external hidden unnamed_addr constant [14 x i8], align 1
@silk16_test = external hidden constant [8 x [4 x i32]], align 16
@.str.61 = external hidden unnamed_addr constant [16 x i8], align 1
@hybrid24_test = external hidden constant [4 x [4 x i32]], align 16
@.str.62 = external hidden unnamed_addr constant [16 x i8], align 1
@hybrid48_test = external hidden constant [4 x [4 x i32]], align 16
@.str.63 = external hidden unnamed_addr constant [11 x i8], align 1
@celt_test = external hidden constant [32 x [4 x i32]], align 16
@.str.64 = external hidden unnamed_addr constant [14 x i8], align 1
@celt_hq_test = external hidden constant [4 x [4 x i32]], align 16
@.str.65 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [34 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @print_usage(ptr noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 2) i32 @main(i32 noundef %0, ptr noundef %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca [2 x i32], align 4
  %5 = alloca [2 x ptr], align 16
  %6 = alloca i32, align 4
  %7 = alloca [2 x i32], align 4
  %8 = alloca i32, align 4
  %9 = alloca [4 x i8], align 1
  %10 = alloca [4 x i8], align 1
  %11 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #13
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %5, i8 0, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #13
  store i32 0, ptr %6, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #13
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #13
  %12 = icmp slt i32 %0, 5
  br i1 %12, label %13, label %14

13:                                               ; preds = %2
  tail call void @print_usage(ptr noundef %1)
  br label %828

14:                                               ; preds = %2
  %15 = load ptr, ptr @stderr, align 8, !tbaa !9
  %16 = tail call ptr @opus_get_version_string() #13
  %17 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15, ptr noundef nonnull @.str.17, ptr noundef %16) #14
  %18 = getelementptr inbounds i8, ptr %1, i64 8
  %19 = load ptr, ptr %18, align 8, !tbaa !9
  %20 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %19, ptr noundef nonnull dereferenceable(1) @.str.18) #15
  %21 = icmp eq i32 %20, 0
  br i1 %21, label %25, label %22

22:                                               ; preds = %14
  %23 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %19, ptr noundef nonnull dereferenceable(1) @.str.19) #15
  %24 = icmp eq i32 %23, 0
  br i1 %24, label %.thread813, label %25

25:                                               ; preds = %14, %22
  %.0724 = phi i32 [ 1, %22 ], [ 2, %14 ]
  %26 = icmp ult i32 %0, 7
  br i1 %26, label %27, label %28

27:                                               ; preds = %25
  tail call void @print_usage(ptr noundef nonnull %1)
  br label %828

28:                                               ; preds = %25
  %29 = zext nneg i32 %.0724 to i64
  %30 = getelementptr inbounds ptr, ptr %1, i64 %29
  %31 = load ptr, ptr %30, align 8, !tbaa !9
  %32 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.20) #15
  %33 = icmp eq i32 %32, 0
  br i1 %33, label %42, label %34

34:                                               ; preds = %28
  %35 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.21) #15
  %36 = icmp eq i32 %35, 0
  br i1 %36, label %42, label %37

37:                                               ; preds = %34
  %38 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %31, ptr noundef nonnull dereferenceable(1) @.str.22) #15
  %.not = icmp eq i32 %38, 0
  br i1 %.not, label %42, label %39

39:                                               ; preds = %37
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull @.str.23, ptr noundef %31) #14
  tail call void @print_usage(ptr noundef nonnull %1)
  br label %828

42:                                               ; preds = %34, %28, %37
  %.0686 = phi i32 [ 2049, %37 ], [ 2048, %28 ], [ 2051, %34 ]
  %43 = add nuw nsw i32 %.0724, 1
  br label %.thread813

.thread813:                                       ; preds = %22, %42
  %44 = phi i1 [ false, %42 ], [ true, %22 ]
  %.1725 = phi i32 [ %43, %42 ], [ 2, %22 ]
  %.1687 = phi i32 [ %.0686, %42 ], [ 2049, %22 ]
  %45 = zext nneg i32 %.1725 to i64
  %46 = getelementptr inbounds ptr, ptr %1, i64 %45
  %47 = load ptr, ptr %46, align 8, !tbaa !9
  %48 = tail call i64 @atol(ptr nocapture noundef %47) #15
  %49 = trunc i64 %48 to i32
  switch i32 %49, label %50 [
    i32 48000, label %53
    i32 24000, label %53
    i32 16000, label %53
    i32 12000, label %53
    i32 8000, label %53
  ]

50:                                               ; preds = %.thread813
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef nonnull @.str.24) #14
  br label %828

53:                                               ; preds = %.thread813, %.thread813, %.thread813, %.thread813, %.thread813
  %.lhs.trunc = trunc i64 %48 to i16
  %54 = udiv i16 %.lhs.trunc, 50
  %.zext = zext nneg i16 %54 to i32
  %55 = zext nneg i32 %.1725 to i64
  %56 = getelementptr ptr, ptr %1, i64 %55
  %57 = getelementptr i8, ptr %56, i64 8
  %58 = load ptr, ptr %57, align 8, !tbaa !9
  %59 = tail call i32 @atoi(ptr nocapture noundef %58) #15
  %60 = add nuw nsw i32 %.1725, 2
  %61 = add i32 %59, -3
  %or.cond11 = icmp ult i32 %61, -2
  br i1 %or.cond11, label %62, label %65

62:                                               ; preds = %53
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %63, ptr noundef nonnull @.str.25) #14
  br label %828

65:                                               ; preds = %53
  br i1 %44, label %73, label %66

66:                                               ; preds = %65
  %67 = zext nneg i32 %60 to i64
  %68 = getelementptr inbounds ptr, ptr %1, i64 %67
  %69 = load ptr, ptr %68, align 8, !tbaa !9
  %70 = tail call i64 @atol(ptr nocapture noundef %69) #15
  %71 = trunc i64 %70 to i32
  %72 = add nuw nsw i32 %.1725, 3
  br label %73

73:                                               ; preds = %66, %65
  %.2726 = phi i32 [ %60, %65 ], [ %72, %66 ]
  %.0720 = phi i32 [ 0, %65 ], [ %71, %66 ]
  %74 = add nsw i32 %0, -2
  %75 = icmp ult i32 %.2726, %74
  br i1 %75, label %.lr.ph, label %._crit_edge.thread

.lr.ph:                                           ; preds = %73
  %76 = mul nuw nsw i32 %49, 6
  %77 = udiv i32 %76, 50
  %.lhs.trunc1673 = trunc i64 %48 to i16
  %78 = udiv i16 %.lhs.trunc1673, 10
  %.zext1674 = zext nneg i16 %78 to i32
  %79 = shl nuw nsw i32 %49, 2
  %80 = udiv i32 %79, 50
  %81 = mul nuw nsw i32 %49, 3
  %82 = udiv i32 %81, 50
  %.lhs.trunc1675 = trunc i64 %48 to i16
  %83 = udiv i16 %.lhs.trunc1675, 25
  %.zext1676 = zext nneg i16 %83 to i32
  %.lhs.trunc1677 = trunc i64 %48 to i16
  %84 = udiv i16 %.lhs.trunc1677, 100
  %.zext1678 = zext nneg i16 %84 to i32
  %.lhs.trunc1679 = trunc i64 %48 to i16
  %85 = udiv i16 %.lhs.trunc1679, 200
  %.zext1680 = zext nneg i16 %85 to i32
  %.lhs.trunc1681 = trunc i64 %48 to i16
  %86 = udiv i16 %.lhs.trunc1681, 400
  %.zext1682 = zext nneg i16 %86 to i32
  br label %87

87:                                               ; preds = %.lr.ph, %310
  %.06141421 = phi i32 [ 0, %.lr.ph ], [ %.1615, %310 ]
  %.06301420 = phi i32 [ 0, %.lr.ph ], [ %.1631, %310 ]
  %.06321419 = phi ptr [ null, %.lr.ph ], [ %.1633, %310 ]
  %.06341418 = phi i32 [ 0, %.lr.ph ], [ %.1635, %310 ]
  %.06371417 = phi i32 [ 0, %.lr.ph ], [ %.1638, %310 ]
  %.06451416 = phi i32 [ 0, %.lr.ph ], [ %.1646, %310 ]
  %.06471415 = phi i32 [ 0, %.lr.ph ], [ %.1648, %310 ]
  %.06611414 = phi i32 [ -1000, %.lr.ph ], [ %.2663, %310 ]
  %.07011413 = phi i32 [ 0, %.lr.ph ], [ %.1702, %310 ]
  %.07031412 = phi i32 [ 0, %.lr.ph ], [ %.1704, %310 ]
  %.07051411 = phi i32 [ -1000, %.lr.ph ], [ %.1706, %310 ]
  %.07071410 = phi i32 [ 0, %.lr.ph ], [ %.1708, %310 ]
  %.07091409 = phi i32 [ 0, %.lr.ph ], [ %.1710, %310 ]
  %.07111408 = phi i32 [ 10, %.lr.ph ], [ %.1712, %310 ]
  %.07131407 = phi i32 [ 1500, %.lr.ph ], [ %.1714, %310 ]
  %.07151406 = phi i32 [ 1, %.lr.ph ], [ %.1716, %310 ]
  %.37271405 = phi i32 [ %.2726, %.lr.ph ], [ %311, %310 ]
  %.07291404 = phi i32 [ %.zext, %.lr.ph ], [ %.2731, %310 ]
  %88 = sext i32 %.37271405 to i64
  %89 = getelementptr inbounds ptr, ptr %1, i64 %88
  %90 = load ptr, ptr %89, align 8, !tbaa !9
  %91 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.26) #15
  %92 = icmp eq i32 %91, 0
  br i1 %92, label %93, label %97

93:                                               ; preds = %87
  br i1 %44, label %94, label %310

94:                                               ; preds = %93
  %95 = load ptr, ptr @stderr, align 8, !tbaa !9
  %96 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.26) #14
  br label %828

97:                                               ; preds = %87
  %98 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.28) #15
  %99 = icmp eq i32 %98, 0
  br i1 %99, label %100, label %124

100:                                              ; preds = %97
  br i1 %44, label %101, label %104

101:                                              ; preds = %100
  %102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %103 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.28) #14
  br label %828

104:                                              ; preds = %100
  %105 = getelementptr i8, ptr %89, i64 8
  %106 = load ptr, ptr %105, align 8, !tbaa !9
  %107 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %106, ptr noundef nonnull dereferenceable(1) @.str.29) #15
  %108 = icmp eq i32 %107, 0
  br i1 %108, label %310, label %109

109:                                              ; preds = %104
  %110 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %106, ptr noundef nonnull dereferenceable(1) @.str.30) #15
  %111 = icmp eq i32 %110, 0
  br i1 %111, label %310, label %112

112:                                              ; preds = %109
  %113 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %106, ptr noundef nonnull dereferenceable(1) @.str.31) #15
  %114 = icmp eq i32 %113, 0
  br i1 %114, label %310, label %115

115:                                              ; preds = %112
  %116 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %106, ptr noundef nonnull dereferenceable(1) @.str.32) #15
  %117 = icmp eq i32 %116, 0
  br i1 %117, label %310, label %118

118:                                              ; preds = %115
  %119 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %106, ptr noundef nonnull dereferenceable(1) @.str.33) #15
  %120 = icmp eq i32 %119, 0
  br i1 %120, label %310, label %121

121:                                              ; preds = %118
  %122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %123 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef nonnull @.str.34, ptr noundef %106) #14
  br label %828

124:                                              ; preds = %97
  %125 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.35) #15
  %126 = icmp eq i32 %125, 0
  br i1 %126, label %127, label %163

127:                                              ; preds = %124
  br i1 %44, label %128, label %131

128:                                              ; preds = %127
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.35) #14
  br label %828

131:                                              ; preds = %127
  %132 = getelementptr i8, ptr %89, i64 8
  %133 = load ptr, ptr %132, align 8, !tbaa !9
  %134 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.36) #15
  %135 = icmp eq i32 %134, 0
  br i1 %135, label %310, label %136

136:                                              ; preds = %131
  %137 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.37) #15
  %138 = icmp eq i32 %137, 0
  br i1 %138, label %310, label %139

139:                                              ; preds = %136
  %140 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.38) #15
  %141 = icmp eq i32 %140, 0
  br i1 %141, label %310, label %142

142:                                              ; preds = %139
  %143 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.39) #15
  %144 = icmp eq i32 %143, 0
  br i1 %144, label %310, label %145

145:                                              ; preds = %142
  %146 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.40) #15
  %147 = icmp eq i32 %146, 0
  br i1 %147, label %310, label %148

148:                                              ; preds = %145
  %149 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.41) #15
  %150 = icmp eq i32 %149, 0
  br i1 %150, label %310, label %151

151:                                              ; preds = %148
  %152 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.42) #15
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %310, label %154

154:                                              ; preds = %151
  %155 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.43) #15
  %156 = icmp eq i32 %155, 0
  br i1 %156, label %310, label %157

157:                                              ; preds = %154
  %158 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %133, ptr noundef nonnull dereferenceable(1) @.str.44) #15
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %310, label %160

160:                                              ; preds = %157
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %161, ptr noundef nonnull @.str.45, ptr noundef %133) #14
  br label %828

163:                                              ; preds = %124
  %164 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.46) #15
  %165 = icmp eq i32 %164, 0
  br i1 %165, label %166, label %174

166:                                              ; preds = %163
  br i1 %44, label %167, label %170

167:                                              ; preds = %166
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.46) #14
  br label %828

170:                                              ; preds = %166
  %171 = getelementptr i8, ptr %89, i64 8
  %172 = load ptr, ptr %171, align 8, !tbaa !9
  %173 = tail call i32 @atoi(ptr nocapture noundef %172) #15
  br label %310

174:                                              ; preds = %163
  %175 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.47) #15
  %176 = icmp eq i32 %175, 0
  br i1 %176, label %177, label %185

177:                                              ; preds = %174
  br i1 %44, label %178, label %181

178:                                              ; preds = %177
  %179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %180 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %179, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.47) #14
  br label %828

181:                                              ; preds = %177
  %182 = getelementptr i8, ptr %89, i64 8
  %183 = load ptr, ptr %182, align 8, !tbaa !9
  %184 = tail call i32 @atoi(ptr nocapture noundef %183) #15
  br label %310

185:                                              ; preds = %174
  %186 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.48) #15
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %310, label %188

188:                                              ; preds = %185
  %189 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.49) #15
  %190 = icmp eq i32 %189, 0
  br i1 %190, label %191, label %195

191:                                              ; preds = %188
  br i1 %44, label %192, label %310

192:                                              ; preds = %191
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %193, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.49) #14
  br label %828

195:                                              ; preds = %188
  %196 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.50) #15
  %197 = icmp eq i32 %196, 0
  br i1 %197, label %198, label %202

198:                                              ; preds = %195
  br i1 %44, label %199, label %310

199:                                              ; preds = %198
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.50) #14
  br label %828

202:                                              ; preds = %195
  %203 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.51) #15
  %204 = icmp eq i32 %203, 0
  br i1 %204, label %205, label %209

205:                                              ; preds = %202
  br i1 %44, label %206, label %310

206:                                              ; preds = %205
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %207, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.51) #14
  br label %828

209:                                              ; preds = %202
  %210 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.52) #15
  %211 = icmp eq i32 %210, 0
  br i1 %211, label %212, label %216

212:                                              ; preds = %209
  br i1 %44, label %213, label %310

213:                                              ; preds = %212
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.52) #14
  br label %828

216:                                              ; preds = %209
  %217 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.53) #15
  %218 = icmp eq i32 %217, 0
  br i1 %218, label %219, label %223

219:                                              ; preds = %216
  %220 = getelementptr i8, ptr %89, i64 8
  %221 = load ptr, ptr %220, align 8, !tbaa !9
  %222 = tail call i32 @atoi(ptr nocapture noundef %221) #15
  br label %310

223:                                              ; preds = %216
  %224 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.54) #15
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %226, label %234

226:                                              ; preds = %223
  br i1 %44, label %227, label %230

227:                                              ; preds = %226
  %228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %229 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %228, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.54) #14
  br label %828

230:                                              ; preds = %226
  %231 = getelementptr i8, ptr %89, i64 8
  %232 = load ptr, ptr %231, align 8, !tbaa !9
  %233 = tail call i32 @atoi(ptr nocapture noundef %232) #15
  br label %310

234:                                              ; preds = %223
  %235 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.55) #15
  %236 = icmp eq i32 %235, 0
  br i1 %236, label %237, label %241

237:                                              ; preds = %234
  br i1 %44, label %238, label %310

238:                                              ; preds = %237
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.55) #14
  br label %828

241:                                              ; preds = %234
  %242 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.56) #15
  %243 = icmp eq i32 %242, 0
  br i1 %243, label %244, label %252

244:                                              ; preds = %241
  br i1 %44, label %245, label %248

245:                                              ; preds = %244
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %246, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.56) #14
  br label %828

248:                                              ; preds = %244
  %249 = getelementptr i8, ptr %89, i64 8
  %250 = load ptr, ptr %249, align 8, !tbaa !9
  %251 = tail call i32 @atoi(ptr nocapture noundef %250) #15
  br label %310

252:                                              ; preds = %241
  %253 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.57) #15
  %254 = icmp eq i32 %253, 0
  br i1 %254, label %255, label %259

255:                                              ; preds = %252
  br i1 %44, label %256, label %310

256:                                              ; preds = %255
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %257, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.57) #14
  br label %828

259:                                              ; preds = %252
  %260 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.58) #15
  %261 = icmp eq i32 %260, 0
  br i1 %261, label %262, label %266

262:                                              ; preds = %259
  br i1 %44, label %263, label %310

263:                                              ; preds = %262
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.58) #14
  br label %828

266:                                              ; preds = %259
  %267 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.59) #15
  %268 = icmp eq i32 %267, 0
  br i1 %268, label %269, label %273

269:                                              ; preds = %266
  br i1 %44, label %270, label %310

270:                                              ; preds = %269
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.59) #14
  br label %828

273:                                              ; preds = %266
  %274 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.60) #15
  %275 = icmp eq i32 %274, 0
  br i1 %275, label %276, label %280

276:                                              ; preds = %273
  br i1 %44, label %277, label %310

277:                                              ; preds = %276
  %278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %279 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %278, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.60) #14
  br label %828

280:                                              ; preds = %273
  %281 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.61) #15
  %282 = icmp eq i32 %281, 0
  br i1 %282, label %283, label %287

283:                                              ; preds = %280
  br i1 %44, label %284, label %310

284:                                              ; preds = %283
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.61) #14
  br label %828

287:                                              ; preds = %280
  %288 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.62) #15
  %289 = icmp eq i32 %288, 0
  br i1 %289, label %290, label %294

290:                                              ; preds = %287
  br i1 %44, label %291, label %310

291:                                              ; preds = %290
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.62) #14
  br label %828

294:                                              ; preds = %287
  %295 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.63) #15
  %296 = icmp eq i32 %295, 0
  br i1 %296, label %297, label %301

297:                                              ; preds = %294
  br i1 %44, label %298, label %310

298:                                              ; preds = %297
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %299, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.63) #14
  br label %828

301:                                              ; preds = %294
  %302 = tail call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) @.str.64) #15
  %303 = icmp eq i32 %302, 0
  br i1 %303, label %304, label %308

304:                                              ; preds = %301
  br i1 %44, label %305, label %310

305:                                              ; preds = %304
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %306, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.64) #14
  br label %828

308:                                              ; preds = %301
  %309 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.65, ptr noundef %90)
  tail call void @print_usage(ptr noundef nonnull %1)
  br label %828

310:                                              ; preds = %304, %297, %290, %283, %276, %269, %262, %255, %237, %212, %205, %198, %191, %185, %142, %131, %136, %139, %145, %148, %151, %154, %157, %104, %109, %112, %115, %118, %93, %170, %230, %248, %219, %181
  %.sink = phi i32 [ 2, %170 ], [ 2, %230 ], [ 2, %248 ], [ 2, %219 ], [ 2, %181 ], [ 1, %93 ], [ 2, %118 ], [ 2, %115 ], [ 2, %112 ], [ 2, %109 ], [ 2, %104 ], [ 2, %157 ], [ 2, %154 ], [ 2, %151 ], [ 2, %148 ], [ 2, %145 ], [ 2, %139 ], [ 2, %136 ], [ 2, %131 ], [ 2, %142 ], [ 1, %185 ], [ 1, %191 ], [ 1, %198 ], [ 1, %205 ], [ 1, %212 ], [ 1, %237 ], [ 1, %255 ], [ 1, %262 ], [ 1, %269 ], [ 1, %276 ], [ 1, %283 ], [ 1, %290 ], [ 1, %297 ], [ 1, %304 ]
  %.2731 = phi i32 [ %.07291404, %170 ], [ %.07291404, %230 ], [ %.07291404, %248 ], [ %.07291404, %219 ], [ %.07291404, %181 ], [ %.07291404, %93 ], [ %.07291404, %118 ], [ %.07291404, %115 ], [ %.07291404, %112 ], [ %.07291404, %109 ], [ %.07291404, %104 ], [ %77, %157 ], [ %.zext1674, %154 ], [ %80, %151 ], [ %82, %148 ], [ %.zext1676, %145 ], [ %.zext1678, %139 ], [ %.zext1680, %136 ], [ %.zext1682, %131 ], [ %.zext, %142 ], [ %.07291404, %185 ], [ %.07291404, %191 ], [ %.07291404, %198 ], [ %.07291404, %205 ], [ %.07291404, %212 ], [ %.07291404, %237 ], [ %.07291404, %255 ], [ %.07291404, %262 ], [ %.07291404, %269 ], [ %.07291404, %276 ], [ %.07291404, %283 ], [ %.07291404, %290 ], [ %.07291404, %297 ], [ %.07291404, %304 ]
  %.1716 = phi i32 [ %.07151406, %170 ], [ %.07151406, %230 ], [ %.07151406, %248 ], [ %.07151406, %219 ], [ %.07151406, %181 ], [ 0, %93 ], [ %.07151406, %118 ], [ %.07151406, %115 ], [ %.07151406, %112 ], [ %.07151406, %109 ], [ %.07151406, %104 ], [ %.07151406, %157 ], [ %.07151406, %154 ], [ %.07151406, %151 ], [ %.07151406, %148 ], [ %.07151406, %145 ], [ %.07151406, %139 ], [ %.07151406, %136 ], [ %.07151406, %131 ], [ %.07151406, %142 ], [ %.07151406, %185 ], [ %.07151406, %191 ], [ %.07151406, %198 ], [ %.07151406, %205 ], [ %.07151406, %212 ], [ %.07151406, %237 ], [ %.07151406, %255 ], [ %.07151406, %262 ], [ %.07151406, %269 ], [ %.07151406, %276 ], [ %.07151406, %283 ], [ %.07151406, %290 ], [ %.07151406, %297 ], [ %.07151406, %304 ]
  %.1714 = phi i32 [ %173, %170 ], [ %.07131407, %230 ], [ %.07131407, %248 ], [ %.07131407, %219 ], [ %.07131407, %181 ], [ %.07131407, %93 ], [ %.07131407, %118 ], [ %.07131407, %115 ], [ %.07131407, %112 ], [ %.07131407, %109 ], [ %.07131407, %104 ], [ %.07131407, %157 ], [ %.07131407, %154 ], [ %.07131407, %151 ], [ %.07131407, %148 ], [ %.07131407, %145 ], [ %.07131407, %139 ], [ %.07131407, %136 ], [ %.07131407, %131 ], [ %.07131407, %142 ], [ %.07131407, %185 ], [ %.07131407, %191 ], [ %.07131407, %198 ], [ %.07131407, %205 ], [ %.07131407, %212 ], [ %.07131407, %237 ], [ %.07131407, %255 ], [ %.07131407, %262 ], [ %.07131407, %269 ], [ %.07131407, %276 ], [ %.07131407, %283 ], [ %.07131407, %290 ], [ %.07131407, %297 ], [ %.07131407, %304 ]
  %.1712 = phi i32 [ %.07111408, %170 ], [ %.07111408, %230 ], [ %.07111408, %248 ], [ %.07111408, %219 ], [ %184, %181 ], [ %.07111408, %93 ], [ %.07111408, %118 ], [ %.07111408, %115 ], [ %.07111408, %112 ], [ %.07111408, %109 ], [ %.07111408, %104 ], [ %.07111408, %157 ], [ %.07111408, %154 ], [ %.07111408, %151 ], [ %.07111408, %148 ], [ %.07111408, %145 ], [ %.07111408, %139 ], [ %.07111408, %136 ], [ %.07111408, %131 ], [ %.07111408, %142 ], [ %.07111408, %185 ], [ %.07111408, %191 ], [ %.07111408, %198 ], [ %.07111408, %205 ], [ %.07111408, %212 ], [ %.07111408, %237 ], [ %.07111408, %255 ], [ %.07111408, %262 ], [ %.07111408, %269 ], [ %.07111408, %276 ], [ %.07111408, %283 ], [ %.07111408, %290 ], [ %.07111408, %297 ], [ %.07111408, %304 ]
  %.1710 = phi i32 [ %.07091409, %170 ], [ %.07091409, %230 ], [ %.07091409, %248 ], [ %.07091409, %219 ], [ %.07091409, %181 ], [ %.07091409, %93 ], [ %.07091409, %118 ], [ %.07091409, %115 ], [ %.07091409, %112 ], [ %.07091409, %109 ], [ %.07091409, %104 ], [ %.07091409, %157 ], [ %.07091409, %154 ], [ %.07091409, %151 ], [ %.07091409, %148 ], [ %.07091409, %145 ], [ %.07091409, %139 ], [ %.07091409, %136 ], [ %.07091409, %131 ], [ %.07091409, %142 ], [ 1, %185 ], [ %.07091409, %191 ], [ %.07091409, %198 ], [ %.07091409, %205 ], [ %.07091409, %212 ], [ %.07091409, %237 ], [ %.07091409, %255 ], [ %.07091409, %262 ], [ %.07091409, %269 ], [ %.07091409, %276 ], [ %.07091409, %283 ], [ %.07091409, %290 ], [ %.07091409, %297 ], [ %.07091409, %304 ]
  %.1708 = phi i32 [ %.07071410, %170 ], [ %.07071410, %230 ], [ %.07071410, %248 ], [ %.07071410, %219 ], [ %.07071410, %181 ], [ %.07071410, %93 ], [ %.07071410, %118 ], [ %.07071410, %115 ], [ %.07071410, %112 ], [ %.07071410, %109 ], [ %.07071410, %104 ], [ %.07071410, %157 ], [ %.07071410, %154 ], [ %.07071410, %151 ], [ %.07071410, %148 ], [ %.07071410, %145 ], [ %.07071410, %139 ], [ %.07071410, %136 ], [ %.07071410, %131 ], [ %.07071410, %142 ], [ %.07071410, %185 ], [ %.07071410, %191 ], [ %.07071410, %198 ], [ %.07071410, %205 ], [ 1, %212 ], [ %.07071410, %237 ], [ %.07071410, %255 ], [ %.07071410, %262 ], [ %.07071410, %269 ], [ %.07071410, %276 ], [ %.07071410, %283 ], [ %.07071410, %290 ], [ %.07071410, %297 ], [ %.07071410, %304 ]
  %.1706 = phi i32 [ %.07051411, %170 ], [ %.07051411, %230 ], [ %.07051411, %248 ], [ %.07051411, %219 ], [ %.07051411, %181 ], [ %.07051411, %93 ], [ %.07051411, %118 ], [ %.07051411, %115 ], [ %.07051411, %112 ], [ %.07051411, %109 ], [ %.07051411, %104 ], [ %.07051411, %157 ], [ %.07051411, %154 ], [ %.07051411, %151 ], [ %.07051411, %148 ], [ %.07051411, %145 ], [ %.07051411, %139 ], [ %.07051411, %136 ], [ %.07051411, %131 ], [ %.07051411, %142 ], [ %.07051411, %185 ], [ 1, %191 ], [ %.07051411, %198 ], [ %.07051411, %205 ], [ %.07051411, %212 ], [ %.07051411, %237 ], [ %.07051411, %255 ], [ %.07051411, %262 ], [ %.07051411, %269 ], [ %.07051411, %276 ], [ %.07051411, %283 ], [ %.07051411, %290 ], [ %.07051411, %297 ], [ %.07051411, %304 ]
  %.1704 = phi i32 [ %.07031412, %170 ], [ %.07031412, %230 ], [ %.07031412, %248 ], [ %.07031412, %219 ], [ %.07031412, %181 ], [ %.07031412, %93 ], [ %.07031412, %118 ], [ %.07031412, %115 ], [ %.07031412, %112 ], [ %.07031412, %109 ], [ %.07031412, %104 ], [ %.07031412, %157 ], [ %.07031412, %154 ], [ %.07031412, %151 ], [ %.07031412, %148 ], [ %.07031412, %145 ], [ %.07031412, %139 ], [ %.07031412, %136 ], [ %.07031412, %131 ], [ %.07031412, %142 ], [ %.07031412, %185 ], [ %.07031412, %191 ], [ 1, %198 ], [ %.07031412, %205 ], [ %.07031412, %212 ], [ %.07031412, %237 ], [ %.07031412, %255 ], [ %.07031412, %262 ], [ %.07031412, %269 ], [ %.07031412, %276 ], [ %.07031412, %283 ], [ %.07031412, %290 ], [ %.07031412, %297 ], [ %.07031412, %304 ]
  %.1702 = phi i32 [ %.07011413, %170 ], [ %.07011413, %230 ], [ %.07011413, %248 ], [ %222, %219 ], [ %.07011413, %181 ], [ %.07011413, %93 ], [ %.07011413, %118 ], [ %.07011413, %115 ], [ %.07011413, %112 ], [ %.07011413, %109 ], [ %.07011413, %104 ], [ %.07011413, %157 ], [ %.07011413, %154 ], [ %.07011413, %151 ], [ %.07011413, %148 ], [ %.07011413, %145 ], [ %.07011413, %139 ], [ %.07011413, %136 ], [ %.07011413, %131 ], [ %.07011413, %142 ], [ %.07011413, %185 ], [ %.07011413, %191 ], [ %.07011413, %198 ], [ %.07011413, %205 ], [ %.07011413, %212 ], [ %.07011413, %237 ], [ %.07011413, %255 ], [ %.07011413, %262 ], [ %.07011413, %269 ], [ %.07011413, %276 ], [ %.07011413, %283 ], [ %.07011413, %290 ], [ %.07011413, %297 ], [ %.07011413, %304 ]
  %.2663 = phi i32 [ %.06611414, %170 ], [ %.06611414, %230 ], [ %.06611414, %248 ], [ %.06611414, %219 ], [ %.06611414, %181 ], [ %.06611414, %93 ], [ 1105, %118 ], [ 1104, %115 ], [ 1103, %112 ], [ 1102, %109 ], [ 1101, %104 ], [ %.06611414, %157 ], [ %.06611414, %154 ], [ %.06611414, %151 ], [ %.06611414, %148 ], [ %.06611414, %145 ], [ %.06611414, %139 ], [ %.06611414, %136 ], [ %.06611414, %131 ], [ %.06611414, %142 ], [ %.06611414, %185 ], [ %.06611414, %191 ], [ %.06611414, %198 ], [ %.06611414, %205 ], [ %.06611414, %212 ], [ %.06611414, %237 ], [ %.06611414, %255 ], [ %.06611414, %262 ], [ %.06611414, %269 ], [ %.06611414, %276 ], [ %.06611414, %283 ], [ %.06611414, %290 ], [ %.06611414, %297 ], [ %.06611414, %304 ]
  %.1648 = phi i32 [ %.06471415, %170 ], [ %233, %230 ], [ %.06471415, %248 ], [ %.06471415, %219 ], [ %.06471415, %181 ], [ %.06471415, %93 ], [ %.06471415, %118 ], [ %.06471415, %115 ], [ %.06471415, %112 ], [ %.06471415, %109 ], [ %.06471415, %104 ], [ %.06471415, %157 ], [ %.06471415, %154 ], [ %.06471415, %151 ], [ %.06471415, %148 ], [ %.06471415, %145 ], [ %.06471415, %139 ], [ %.06471415, %136 ], [ %.06471415, %131 ], [ %.06471415, %142 ], [ %.06471415, %185 ], [ %.06471415, %191 ], [ %.06471415, %198 ], [ %.06471415, %205 ], [ %.06471415, %212 ], [ %.06471415, %237 ], [ %.06471415, %255 ], [ %.06471415, %262 ], [ %.06471415, %269 ], [ %.06471415, %276 ], [ %.06471415, %283 ], [ %.06471415, %290 ], [ %.06471415, %297 ], [ %.06471415, %304 ]
  %.1646 = phi i32 [ %.06451416, %170 ], [ %.06451416, %230 ], [ %.06451416, %248 ], [ %.06451416, %219 ], [ %.06451416, %181 ], [ %.06451416, %93 ], [ %.06451416, %118 ], [ %.06451416, %115 ], [ %.06451416, %112 ], [ %.06451416, %109 ], [ %.06451416, %104 ], [ %.06451416, %157 ], [ %.06451416, %154 ], [ %.06451416, %151 ], [ %.06451416, %148 ], [ %.06451416, %145 ], [ %.06451416, %139 ], [ %.06451416, %136 ], [ %.06451416, %131 ], [ %.06451416, %142 ], [ %.06451416, %185 ], [ %.06451416, %191 ], [ %.06451416, %198 ], [ %.06451416, %205 ], [ %.06451416, %212 ], [ 1, %237 ], [ %.06451416, %255 ], [ %.06451416, %262 ], [ %.06451416, %269 ], [ %.06451416, %276 ], [ %.06451416, %283 ], [ %.06451416, %290 ], [ %.06451416, %297 ], [ %.06451416, %304 ]
  %.1638 = phi i32 [ %.06371417, %170 ], [ %.06371417, %230 ], [ %251, %248 ], [ %.06371417, %219 ], [ %.06371417, %181 ], [ %.06371417, %93 ], [ %.06371417, %118 ], [ %.06371417, %115 ], [ %.06371417, %112 ], [ %.06371417, %109 ], [ %.06371417, %104 ], [ %.06371417, %157 ], [ %.06371417, %154 ], [ %.06371417, %151 ], [ %.06371417, %148 ], [ %.06371417, %145 ], [ %.06371417, %139 ], [ %.06371417, %136 ], [ %.06371417, %131 ], [ %.06371417, %142 ], [ %.06371417, %185 ], [ %.06371417, %191 ], [ %.06371417, %198 ], [ %.06371417, %205 ], [ %.06371417, %212 ], [ %.06371417, %237 ], [ %.06371417, %255 ], [ %.06371417, %262 ], [ %.06371417, %269 ], [ %.06371417, %276 ], [ %.06371417, %283 ], [ %.06371417, %290 ], [ %.06371417, %297 ], [ %.06371417, %304 ]
  %.1635 = phi i32 [ %.06341418, %170 ], [ %.06341418, %230 ], [ %.06341418, %248 ], [ %.06341418, %219 ], [ %.06341418, %181 ], [ %.06341418, %93 ], [ %.06341418, %118 ], [ %.06341418, %115 ], [ %.06341418, %112 ], [ %.06341418, %109 ], [ %.06341418, %104 ], [ %.06341418, %157 ], [ %.06341418, %154 ], [ %.06341418, %151 ], [ %.06341418, %148 ], [ %.06341418, %145 ], [ %.06341418, %139 ], [ %.06341418, %136 ], [ %.06341418, %131 ], [ %.06341418, %142 ], [ %.06341418, %185 ], [ %.06341418, %191 ], [ %.06341418, %198 ], [ %.06341418, %205 ], [ %.06341418, %212 ], [ %.06341418, %237 ], [ 1, %255 ], [ %.06341418, %262 ], [ %.06341418, %269 ], [ %.06341418, %276 ], [ %.06341418, %283 ], [ %.06341418, %290 ], [ %.06341418, %297 ], [ %.06341418, %304 ]
  %.1633 = phi ptr [ %.06321419, %170 ], [ %.06321419, %230 ], [ %.06321419, %248 ], [ %.06321419, %219 ], [ %.06321419, %181 ], [ %.06321419, %93 ], [ %.06321419, %118 ], [ %.06321419, %115 ], [ %.06321419, %112 ], [ %.06321419, %109 ], [ %.06321419, %104 ], [ %.06321419, %157 ], [ %.06321419, %154 ], [ %.06321419, %151 ], [ %.06321419, %148 ], [ %.06321419, %145 ], [ %.06321419, %139 ], [ %.06321419, %136 ], [ %.06321419, %131 ], [ %.06321419, %142 ], [ %.06321419, %185 ], [ %.06321419, %191 ], [ %.06321419, %198 ], [ %.06321419, %205 ], [ %.06321419, %212 ], [ %.06321419, %237 ], [ %.06321419, %255 ], [ @silk8_test, %262 ], [ @silk12_test, %269 ], [ @silk16_test, %276 ], [ @hybrid24_test, %283 ], [ @hybrid48_test, %290 ], [ @celt_test, %297 ], [ @celt_hq_test, %304 ]
  %.1631 = phi i32 [ %.06301420, %170 ], [ %.06301420, %230 ], [ %.06301420, %248 ], [ %.06301420, %219 ], [ %.06301420, %181 ], [ %.06301420, %93 ], [ %.06301420, %118 ], [ %.06301420, %115 ], [ %.06301420, %112 ], [ %.06301420, %109 ], [ %.06301420, %104 ], [ %.06301420, %157 ], [ %.06301420, %154 ], [ %.06301420, %151 ], [ %.06301420, %148 ], [ %.06301420, %145 ], [ %.06301420, %139 ], [ %.06301420, %136 ], [ %.06301420, %131 ], [ %.06301420, %142 ], [ %.06301420, %185 ], [ %.06301420, %191 ], [ %.06301420, %198 ], [ %.06301420, %205 ], [ %.06301420, %212 ], [ %.06301420, %237 ], [ %.06301420, %255 ], [ 8, %262 ], [ 8, %269 ], [ 8, %276 ], [ 4, %283 ], [ 4, %290 ], [ 32, %297 ], [ 4, %304 ]
  %.1615 = phi i32 [ %.06141421, %170 ], [ %.06141421, %230 ], [ %.06141421, %248 ], [ %.06141421, %219 ], [ %.06141421, %181 ], [ %.06141421, %93 ], [ %.06141421, %118 ], [ %.06141421, %115 ], [ %.06141421, %112 ], [ %.06141421, %109 ], [ %.06141421, %104 ], [ %.06141421, %157 ], [ %.06141421, %154 ], [ %.06141421, %151 ], [ %.06141421, %148 ], [ %.06141421, %145 ], [ %.06141421, %139 ], [ %.06141421, %136 ], [ %.06141421, %131 ], [ %.06141421, %142 ], [ %.06141421, %185 ], [ %.06141421, %191 ], [ %.06141421, %198 ], [ 1, %205 ], [ %.06141421, %212 ], [ %.06141421, %237 ], [ %.06141421, %255 ], [ %.06141421, %262 ], [ %.06141421, %269 ], [ %.06141421, %276 ], [ %.06141421, %283 ], [ %.06141421, %290 ], [ %.06141421, %297 ], [ %.06141421, %304 ]
  %311 = add nsw i32 %.37271405, %.sink
  %312 = icmp slt i32 %311, %74
  br i1 %312, label %87, label %._crit_edge, !llvm.loop !11

._crit_edge:                                      ; preds = %310
  %.not764 = icmp eq i32 %.1638, 0
  %or.cond13 = icmp ugt i32 %.1714, 1500
  br i1 %or.cond13, label %313, label %._crit_edge.thread

313:                                              ; preds = %._crit_edge
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull @.str.66, i32 noundef 1500) #14
  br label %828

._crit_edge.thread:                               ; preds = %73, %._crit_edge
  %.not7641671 = phi i1 [ %.not764, %._crit_edge ], [ true, %73 ]
  %.0614.lcssa1670 = phi i32 [ %.1615, %._crit_edge ], [ 0, %73 ]
  %.0630.lcssa1669 = phi i32 [ %.1631, %._crit_edge ], [ 0, %73 ]
  %.0632.lcssa1668 = phi ptr [ %.1633, %._crit_edge ], [ null, %73 ]
  %.0634.lcssa1667 = phi i32 [ %.1635, %._crit_edge ], [ 0, %73 ]
  %.0637.lcssa1666 = phi i32 [ %.1638, %._crit_edge ], [ 0, %73 ]
  %.0645.lcssa1665 = phi i32 [ %.1646, %._crit_edge ], [ 0, %73 ]
  %.0647.lcssa1664 = phi i32 [ %.1648, %._crit_edge ], [ 0, %73 ]
  %.0661.lcssa1663 = phi i32 [ %.2663, %._crit_edge ], [ -1000, %73 ]
  %.0701.lcssa1662 = phi i32 [ %.1702, %._crit_edge ], [ 0, %73 ]
  %.0703.lcssa1661 = phi i32 [ %.1704, %._crit_edge ], [ 0, %73 ]
  %.0705.lcssa1660 = phi i32 [ %.1706, %._crit_edge ], [ -1000, %73 ]
  %.0707.lcssa1659 = phi i32 [ %.1708, %._crit_edge ], [ 0, %73 ]
  %.0709.lcssa1656 = phi i32 [ %.1710, %._crit_edge ], [ 0, %73 ]
  %.0711.lcssa1655 = phi i32 [ %.1712, %._crit_edge ], [ 10, %73 ]
  %.0713.lcssa1654 = phi i32 [ %.1714, %._crit_edge ], [ 1500, %73 ]
  %.0715.lcssa1653 = phi i32 [ %.1716, %._crit_edge ], [ 1, %73 ]
  %.0729.lcssa1652 = phi i32 [ %.2731, %._crit_edge ], [ %.zext, %73 ]
  %316 = zext nneg i32 %74 to i64
  %317 = getelementptr inbounds ptr, ptr %1, i64 %316
  %318 = load ptr, ptr %317, align 8, !tbaa !9
  %319 = tail call noalias ptr @fopen(ptr noundef %318, ptr noundef nonnull @.str.67)
  %.not765 = icmp eq ptr %319, null
  br i1 %.not765, label %320, label %324

320:                                              ; preds = %._crit_edge.thread
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load ptr, ptr %317, align 8, !tbaa !9
  %323 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef nonnull @.str.68, ptr noundef %322) #14
  br label %828

324:                                              ; preds = %._crit_edge.thread
  %.not766 = icmp eq ptr %.0632.lcssa1668, null
  br i1 %.not766, label %341, label %325

325:                                              ; preds = %324
  %326 = tail call i32 @fseek(ptr noundef nonnull %319, i64 noundef 0, i32 noundef 2)
  %327 = tail call i64 @ftell(ptr noundef nonnull %319)
  %328 = trunc i64 %327 to i32
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull @.str.69, i32 noundef %328) #14
  %331 = tail call i32 @fseek(ptr noundef nonnull %319, i64 noundef 0, i32 noundef 0)
  %sext = shl i64 %327, 32
  %332 = ashr exact i64 %sext, 32
  %333 = lshr i64 %332, 1
  %334 = zext nneg i32 %59 to i64
  %335 = udiv i64 %333, %334
  %336 = zext nneg i32 %.0630.lcssa1669 to i64
  %337 = udiv i64 %335, %336
  %338 = trunc i64 %337 to i32
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef nonnull @.str.70, i32 noundef %338) #14
  br label %341

341:                                              ; preds = %325, %324
  %.0621 = phi i32 [ %338, %325 ], [ 48000, %324 ]
  %342 = zext nneg i32 %0 to i64
  %343 = getelementptr ptr, ptr %1, i64 %342
  %344 = getelementptr i8, ptr %343, i64 -8
  %345 = load ptr, ptr %344, align 8, !tbaa !9
  %346 = tail call noalias ptr @fopen(ptr noundef %345, ptr noundef nonnull @.str.71)
  %.not767 = icmp eq ptr %346, null
  br i1 %.not767, label %347, label %351

347:                                              ; preds = %341
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = load ptr, ptr %344, align 8, !tbaa !9
  %350 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %348, ptr noundef nonnull @.str.72, ptr noundef %349) #14
  br label %828

351:                                              ; preds = %341
  br i1 %44, label %372, label %352

352:                                              ; preds = %351
  %353 = call ptr @opus_encoder_create(i32 noundef %49, i32 noundef %59, i32 noundef %.1687, ptr noundef nonnull %3) #13
  %354 = load i32, ptr %3, align 4, !tbaa !5
  %.not768 = icmp eq i32 %354, 0
  br i1 %.not768, label %359, label %355

355:                                              ; preds = %352
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = call ptr @opus_strerror(i32 noundef %354) #13
  %358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef nonnull @.str.73, ptr noundef %357) #14
  br label %828

359:                                              ; preds = %352
  %360 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4002, i32 noundef %.0720) #13
  %361 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4008, i32 noundef %.0661.lcssa1663) #13
  %362 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4006, i32 noundef %.0715.lcssa1653) #13
  %363 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4020, i32 noundef %.0703.lcssa1661) #13
  %364 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4010, i32 noundef %.0711.lcssa1655) #13
  %365 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4012, i32 noundef %.0709.lcssa1656) #13
  %366 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4022, i32 noundef %.0705.lcssa1660) #13
  %367 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4016, i32 noundef %.0707.lcssa1659) #13
  %368 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4014, i32 noundef %.0701.lcssa1662) #13
  %369 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4027, ptr noundef nonnull %6) #13
  %370 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4036, i32 noundef 16) #13
  %371 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %353, i32 noundef 4040, i32 noundef 5000) #13
  br label %372

372:                                              ; preds = %359, %351
  %.0652 = phi ptr [ null, %351 ], [ %353, %359 ]
  br i1 %21, label %380, label %373

373:                                              ; preds = %372
  %374 = call ptr @opus_decoder_create(i32 noundef %49, i32 noundef %59, ptr noundef nonnull %3) #13
  %375 = load i32, ptr %3, align 4, !tbaa !5
  %.not769 = icmp eq i32 %375, 0
  br i1 %.not769, label %380, label %376

376:                                              ; preds = %373
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call ptr @opus_strerror(i32 noundef %375) #13
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %377, ptr noundef nonnull @.str.74, ptr noundef %378) #14
  br label %828

380:                                              ; preds = %373, %372
  %.0717 = phi ptr [ null, %372 ], [ %374, %373 ]
  switch i32 %.0661.lcssa1663, label %386 [
    i32 1101, label %387
    i32 1102, label %381
    i32 1103, label %382
    i32 1104, label %383
    i32 1105, label %384
    i32 -1000, label %385
  ]

381:                                              ; preds = %380
  br label %387

382:                                              ; preds = %380
  br label %387

383:                                              ; preds = %380
  br label %387

384:                                              ; preds = %380
  br label %387

385:                                              ; preds = %380
  br label %387

386:                                              ; preds = %380
  br label %387

387:                                              ; preds = %380, %386, %385, %384, %383, %382, %381
  %.0660 = phi ptr [ @.str.81, %386 ], [ @.str.80, %385 ], [ @.str.79, %384 ], [ @.str.78, %383 ], [ @.str.77, %382 ], [ @.str.76, %381 ], [ @.str.75, %380 ]
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = and i64 %48, 65504
  br i1 %44, label %390, label %392

390:                                              ; preds = %387
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull @.str.82, i64 noundef %389, i32 noundef %59) #14
  br label %396

392:                                              ; preds = %387
  %393 = sitofp i32 %.0720 to double
  %394 = fmul double %393, 1.000000e-03
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull @.str.83, i64 noundef %389, double noundef %394, ptr noundef nonnull %.0660, i32 noundef %.0729.lcssa1652) #14
  br label %396

396:                                              ; preds = %392, %390
  %397 = mul nuw nsw i32 %59, 192000
  %398 = zext nneg i32 %397 to i64
  %399 = call noalias ptr @malloc(i64 noundef %398) #16
  %400 = call noalias ptr @malloc(i64 noundef %398) #16
  %401 = call noalias ptr @malloc(i64 noundef %398) #16
  %402 = zext nneg i32 %.0713.lcssa1654 to i64
  %403 = call noalias ptr @calloc(i64 noundef %402, i64 noundef 1) #17
  store ptr %403, ptr %5, align 16, !tbaa !9
  %.not770 = icmp eq i32 %.0709.lcssa1656, 0
  br i1 %.not770, label %407, label %404

404:                                              ; preds = %396
  %405 = call noalias ptr @calloc(i64 noundef %402, i64 noundef 1) #17
  %406 = getelementptr inbounds i8, ptr %5, i64 8
  store ptr %405, ptr %406, align 8, !tbaa !9
  br label %407

407:                                              ; preds = %404, %396
  %.not771 = icmp eq i32 %.0614.lcssa1670, 0
  %.pre = udiv i32 %49, 400
  br i1 %.not771, label %._crit_edge1632, label %408

408:                                              ; preds = %407
  %409 = icmp eq i32 %.0729.lcssa1652, %.pre
  br i1 %409, label %432, label %410

410:                                              ; preds = %408
  %411 = udiv i32 %49, 200
  %412 = icmp eq i32 %.0729.lcssa1652, %411
  br i1 %412, label %432, label %413

413:                                              ; preds = %410
  %414 = udiv i32 %49, 100
  %415 = icmp eq i32 %.0729.lcssa1652, %414
  br i1 %415, label %432, label %416

416:                                              ; preds = %413
  %417 = icmp eq i32 %.0729.lcssa1652, %.zext
  br i1 %417, label %432, label %418

418:                                              ; preds = %416
  %419 = udiv i32 %49, 25
  %420 = icmp eq i32 %.0729.lcssa1652, %419
  br i1 %420, label %432, label %421

421:                                              ; preds = %418
  %422 = mul nuw nsw i32 %49, 3
  %423 = udiv i32 %422, 50
  %424 = icmp eq i32 %.0729.lcssa1652, %423
  br i1 %424, label %432, label %425

425:                                              ; preds = %421
  %426 = shl nuw nsw i32 %49, 2
  %427 = udiv i32 %426, 50
  %428 = icmp eq i32 %.0729.lcssa1652, %427
  br i1 %428, label %432, label %429

429:                                              ; preds = %425
  %430 = udiv i32 %49, 10
  %431 = icmp eq i32 %.0729.lcssa1652, %430
  %. = select i1 %431, i32 5008, i32 5009
  br label %432

432:                                              ; preds = %429, %425, %421, %418, %416, %413, %410, %408
  %.0616 = phi i32 [ 5001, %408 ], [ 5002, %410 ], [ 5003, %413 ], [ 5004, %416 ], [ 5005, %418 ], [ 5006, %421 ], [ 5007, %425 ], [ %., %429 ]
  %433 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4040, i32 noundef %.0616) #13
  br label %._crit_edge1632

._crit_edge1632:                                  ; preds = %407, %432
  %.3732 = phi i32 [ 96000, %432 ], [ %.0729.lcssa1652, %407 ]
  %.not774 = icmp eq i32 %.0645.lcssa1665, 0
  %434 = mul nuw nsw i32 %49, 3
  %435 = udiv i32 %434, 50
  %436 = udiv i32 %49, 25
  %437 = udiv i32 %49, 100
  %438 = udiv i32 %49, 200
  %439 = mul nuw nsw i32 %49, 36
  %.not777 = icmp eq i32 %.0634.lcssa1667, 0
  %440 = shl nuw nsw i32 %59, 1
  %441 = zext nneg i32 %440 to i64
  %442 = add nsw i32 %.0630.lcssa1669, -1
  %443 = icmp sgt i32 %.0701.lcssa1662, 0
  %invariant.gep2152 = getelementptr i8, ptr %401, i64 -1
  %invariant.gep2154 = getelementptr i8, ptr %401, i64 -1
  %invariant.gep2156 = getelementptr i8, ptr %401, i64 -1
  br label %444

444:                                              ; preds = %._crit_edge1632, %780
  %.06171490 = phi i32 [ 0, %._crit_edge1632 ], [ %.1618, %780 ]
  %.06191489 = phi i32 [ 0, %._crit_edge1632 ], [ %.1620, %780 ]
  %.06221488 = phi i32 [ 0, %._crit_edge1632 ], [ %.3625, %780 ]
  %.06261487 = phi i32 [ 0, %._crit_edge1632 ], [ %.3629, %780 ]
  %.06391486 = phi i32 [ 0, %._crit_edge1632 ], [ %.1640, %780 ]
  %.06411485 = phi i32 [ 0, %._crit_edge1632 ], [ %.3644, %780 ]
  %.26491484 = phi i32 [ %.0647.lcssa1664, %._crit_edge1632 ], [ %.5, %780 ]
  %.06561481 = phi i32 [ 0, %._crit_edge1632 ], [ %783, %780 ]
  %.06571480 = phi i32 [ 1, %._crit_edge1632 ], [ %.1659847, %780 ]
  %.06581479 = phi i32 [ 0, %._crit_edge1632 ], [ %.1659847, %780 ]
  %.06641478 = phi i64 [ 0, %._crit_edge1632 ], [ %.6846, %780 ]
  %.06701477 = phi i64 [ 0, %._crit_edge1632 ], [ %.1671, %780 ]
  %.06721476 = phi double [ 0.000000e+00, %._crit_edge1632 ], [ %.4676845, %780 ]
  %.06781475 = phi double [ 0.000000e+00, %._crit_edge1632 ], [ %.1679, %780 ]
  %.06801474 = phi double [ 0.000000e+00, %._crit_edge1632 ], [ %.1681, %780 ]
  %.06821473 = phi double [ 0.000000e+00, %._crit_edge1632 ], [ %.1683, %780 ]
  %.06841472 = phi double [ 0.000000e+00, %._crit_edge1632 ], [ %.1685, %780 ]
  %.06981470 = phi i32 [ 0, %._crit_edge1632 ], [ %.1699, %780 ]
  %.07001469 = phi i32 [ 0, %._crit_edge1632 ], [ %781, %780 ]
  %.17211468 = phi i32 [ %.0720, %._crit_edge1632 ], [ %.3723, %780 ]
  %.47331467 = phi i32 [ %.3732, %._crit_edge1632 ], [ %.7736, %780 ]
  %.not773 = icmp ne i32 %.06391486, 0
  %brmerge = select i1 %.not773, i1 true, i1 %.not774
  %.06411485.mux = select i1 %.not773, i32 %.06411485, i32 %.47331467
  br i1 %brmerge, label %468, label %445

445:                                              ; preds = %444
  %446 = call i32 @rand() #13
  %447 = srem i32 %446, 20
  %448 = icmp eq i32 %447, 0
  br i1 %448, label %449, label %468

449:                                              ; preds = %445
  %450 = call i32 @rand() #13
  %451 = srem i32 %450, 6
  switch i32 %451, label %457 [
    i32 0, label %452
    i32 1, label %453
    i32 2, label %454
    i32 3, label %455
    i32 4, label %.critedge
    i32 5, label %456
  ]

452:                                              ; preds = %449
  br label %457

453:                                              ; preds = %449
  br label %457

454:                                              ; preds = %449
  br label %457

455:                                              ; preds = %449
  br label %457

456:                                              ; preds = %449
  br label %457

457:                                              ; preds = %456, %455, %454, %453, %452, %449
  %.1642 = phi i32 [ %451, %449 ], [ %435, %456 ], [ %.zext, %455 ], [ %437, %454 ], [ %438, %453 ], [ %.pre, %452 ]
  %458 = call i32 @llvm.abs.i32(i32 %.26491484, i1 true)
  %459 = sub nsw i32 %.17211468, %458
  %460 = icmp slt i32 %.1642, %436
  br i1 %460, label %.lr.ph1441, label %.critedge

.lr.ph1441:                                       ; preds = %457, %462
  %.26431439 = phi i32 [ %463, %462 ], [ %.1642, %457 ]
  %461 = sdiv i32 %439, %.26431439
  %.not775 = icmp sgt i32 %459, %461
  br i1 %.not775, label %.critedge, label %462

462:                                              ; preds = %.lr.ph1441
  %463 = shl nsw i32 %.26431439, 1
  %464 = icmp slt i32 %463, %436
  br i1 %464, label %.lr.ph1441, label %.critedge, !llvm.loop !13

.critedge:                                        ; preds = %.lr.ph1441, %462, %449, %457
  %.2643.lcssa = phi i32 [ %.1642, %457 ], [ %436, %449 ], [ %463, %462 ], [ %.26431439, %.lr.ph1441 ]
  %465 = icmp sge i32 %.2643.lcssa, %437
  %.not776 = icmp slt i32 %.47331467, %437
  %or.cond794 = select i1 %465, i1 true, i1 %.not776
  br i1 %or.cond794, label %468, label %466

466:                                              ; preds = %.critedge
  %467 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 11002, i32 noundef 1002) #13
  br label %468

468:                                              ; preds = %444, %.critedge, %445, %466
  %.5734 = phi i32 [ %.47331467, %466 ], [ %.47331467, %445 ], [ %.06411485.mux, %444 ], [ %.2643.lcssa, %.critedge ]
  %.3644 = phi i32 [ %.2643.lcssa, %466 ], [ %.06411485, %445 ], [ %.06411485, %444 ], [ %.2643.lcssa, %.critedge ]
  %.1640 = phi i32 [ 1, %466 ], [ 0, %445 ], [ 0, %444 ], [ 0, %.critedge ]
  br i1 %.not777, label %480, label %469

469:                                              ; preds = %468
  %470 = call i32 @rand() #13
  %471 = srem i32 %470, 30
  %472 = icmp eq i32 %471, 0
  br i1 %472, label %473, label %480

473:                                              ; preds = %469
  %474 = call i32 @rand() #13
  %475 = call i32 @rand() #13
  %476 = and i32 %475, 3
  %477 = icmp eq i32 %476, 0
  %478 = zext i1 %477 to i32
  %479 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4012, i32 noundef %478) #13
  br label %480

480:                                              ; preds = %473, %469, %468
  br i1 %44, label %481, label %504

481:                                              ; preds = %480
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #13
  %482 = call i64 @fread(ptr noundef nonnull %9, i64 noundef 1, i64 noundef 4, ptr noundef nonnull %319)
  %.not781 = icmp eq i64 %482, 4
  br i1 %.not781, label %483, label %.thread815

483:                                              ; preds = %481
  %484 = call i32 @char_to_int(ptr noundef nonnull %9)
  %485 = zext nneg i32 %.06561481 to i64
  %486 = getelementptr inbounds [2 x i32], ptr %4, i64 0, i64 %485
  store i32 %484, ptr %486, align 4, !tbaa !5
  %or.cond795 = icmp ugt i32 %484, %.0713.lcssa1654
  br i1 %or.cond795, label %487, label %490

487:                                              ; preds = %483
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %488, ptr noundef nonnull @.str.84, i32 noundef %484) #14
  br label %.thread815

490:                                              ; preds = %483
  %491 = call i64 @fread(ptr noundef nonnull %9, i64 noundef 1, i64 noundef 4, ptr noundef nonnull %319)
  %.not782 = icmp eq i64 %491, 4
  br i1 %.not782, label %492, label %.thread815

492:                                              ; preds = %490
  %493 = call i32 @char_to_int(ptr noundef nonnull %9)
  %494 = getelementptr inbounds [2 x i32], ptr %7, i64 0, i64 %485
  store i32 %493, ptr %494, align 4, !tbaa !5
  %495 = getelementptr inbounds [2 x ptr], ptr %5, i64 0, i64 %485
  %496 = load ptr, ptr %495, align 8, !tbaa !9
  %497 = zext nneg i32 %484 to i64
  %498 = call i64 @fread(ptr noundef %496, i64 noundef 1, i64 noundef %497, ptr noundef nonnull %319)
  %.not783 = icmp eq i64 %498, %497
  br i1 %.not783, label %503, label %499

499:                                              ; preds = %492
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = trunc i64 %498 to i32
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull @.str.85, i32 noundef %484, i32 noundef %501) #14
  br label %.thread815

.thread815:                                       ; preds = %481, %490, %487, %499
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #13
  br label %.loopexit

503:                                              ; preds = %492
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #13
  br label %613

504:                                              ; preds = %480
  br i1 %.not766, label %518, label %505

505:                                              ; preds = %504
  %506 = sext i32 %.06261487 to i64
  %507 = getelementptr inbounds [4 x i32], ptr %.0632.lcssa1668, i64 %506
  %508 = getelementptr inbounds i8, ptr %507, i64 4
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4008, i32 noundef %509) #13
  %511 = load i32, ptr %507, align 4, !tbaa !5
  %512 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 11002, i32 noundef %511) #13
  %513 = getelementptr inbounds i8, ptr %507, i64 12
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4022, i32 noundef %514) #13
  %516 = getelementptr inbounds i8, ptr %507, i64 8
  %517 = load i32, ptr %516, align 4, !tbaa !5
  br label %518

518:                                              ; preds = %505, %504
  %.6735 = phi i32 [ %517, %505 ], [ %.5734, %504 ]
  %519 = sub nsw i32 %.6735, %.06171490
  %520 = sext i32 %519 to i64
  %521 = call i64 @fread(ptr noundef %401, i64 noundef %441, i64 noundef %520, ptr noundef nonnull %319)
  %522 = trunc i64 %521 to i32
  %sext778 = shl i64 %521, 32
  %523 = ashr exact i64 %sext778, 32
  %524 = add i64 %523, %.06701477
  %525 = mul nsw i32 %59, %522
  %526 = icmp sgt i32 %525, 0
  br i1 %526, label %.lr.ph1447, label %._crit_edge1448

.lr.ph1447:                                       ; preds = %518
  %527 = mul nsw i32 %.06171490, %59
  %528 = sext i32 %527 to i64
  %wide.trip.count = zext nneg i32 %525 to i64
  %invariant.gep = getelementptr i16, ptr %399, i64 %528
  %min.iters.check1930 = icmp ult i32 %525, 8
  br i1 %min.iters.check1930, label %scalar.ph1929.preheader, label %vector.ph1931

vector.ph1931:                                    ; preds = %.lr.ph1447
  %n.vec1933 = and i64 %wide.trip.count, 2147483640
  br label %vector.body1935

vector.body1935:                                  ; preds = %vector.body1935, %vector.ph1931
  %index1936 = phi i64 [ 0, %vector.ph1931 ], [ %index.next1938, %vector.body1935 ]
  %529 = shl nuw nsw i64 %index1936, 1
  %530 = or disjoint i64 %529, 1
  %gep2153 = getelementptr i8, ptr %invariant.gep2152, i64 %530
  %wide.vec = load <16 x i8>, ptr %gep2153, align 1, !tbaa !14
  %strided.vec = shufflevector <16 x i8> %wide.vec, <16 x i8> poison, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14>
  %strided.vec1937 = shufflevector <16 x i8> %wide.vec, <16 x i8> poison, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15>
  %531 = zext <8 x i8> %strided.vec1937 to <8 x i16>
  %532 = zext <8 x i8> %strided.vec to <8 x i16>
  %533 = shl nuw <8 x i16> %531, <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>
  %534 = or disjoint <8 x i16> %533, %532
  %535 = getelementptr i16, ptr %invariant.gep, i64 %index1936
  store <8 x i16> %534, ptr %535, align 2, !tbaa !15
  %index.next1938 = add nuw i64 %index1936, 8
  %536 = icmp eq i64 %index.next1938, %n.vec1933
  br i1 %536, label %middle.block1928, label %vector.body1935, !llvm.loop !17

middle.block1928:                                 ; preds = %vector.body1935
  %cmp.n1939 = icmp eq i64 %n.vec1933, %wide.trip.count
  br i1 %cmp.n1939, label %._crit_edge1448, label %scalar.ph1929.preheader

scalar.ph1929.preheader:                          ; preds = %middle.block1928, %.lr.ph1447
  %indvars.iv.ph = phi i64 [ 0, %.lr.ph1447 ], [ %n.vec1933, %middle.block1928 ]
  br label %scalar.ph1929

scalar.ph1929:                                    ; preds = %scalar.ph1929.preheader, %scalar.ph1929
  %indvars.iv = phi i64 [ %indvars.iv.next, %scalar.ph1929 ], [ %indvars.iv.ph, %scalar.ph1929.preheader ]
  %537 = shl nuw nsw i64 %indvars.iv, 1
  %538 = or disjoint i64 %537, 1
  %539 = getelementptr inbounds i8, ptr %401, i64 %538
  %540 = load i8, ptr %539, align 1, !tbaa !14
  %541 = zext i8 %540 to i16
  %542 = getelementptr inbounds i8, ptr %401, i64 %537
  %543 = load i8, ptr %542, align 1, !tbaa !14
  %544 = zext i8 %543 to i16
  %545 = shl nuw i16 %541, 8
  %sext780 = or disjoint i16 %545, %544
  %gep = getelementptr i16, ptr %invariant.gep, i64 %indvars.iv
  store i16 %sext780, ptr %gep, align 2, !tbaa !15
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge1448, label %scalar.ph1929, !llvm.loop !20

._crit_edge1448:                                  ; preds = %scalar.ph1929, %middle.block1928, %518
  %546 = add nsw i32 %.06171490, %522
  %547 = icmp slt i32 %546, %.6735
  br i1 %547, label %548, label %._crit_edge1452

548:                                              ; preds = %._crit_edge1448
  %549 = mul nsw i32 %546, %59
  %550 = mul nsw i32 %.6735, %59
  %551 = icmp slt i32 %549, %550
  br i1 %551, label %.lr.ph1451.preheader, label %._crit_edge1452

.lr.ph1451.preheader:                             ; preds = %548
  %552 = sext i32 %549 to i64
  %553 = shl nsw i64 %552, 1
  %scevgep = getelementptr i8, ptr %399, i64 %553
  %554 = sub i32 %.6735, %546
  %555 = mul i32 %59, %554
  %556 = add i32 %555, -1
  %557 = zext i32 %556 to i64
  %558 = shl nuw nsw i64 %557, 1
  %559 = add nuw nsw i64 %558, 2
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(1) %scevgep, i8 0, i64 %559, i1 false), !tbaa !15
  br label %._crit_edge1452

._crit_edge1452:                                  ; preds = %548, %.lr.ph1451.preheader, %._crit_edge1448
  %.1691.shrunk = phi i1 [ false, %._crit_edge1448 ], [ %21, %.lr.ph1451.preheader ], [ %21, %548 ]
  %.1691 = zext i1 %.1691.shrunk to i32
  %560 = zext nneg i32 %.06561481 to i64
  %561 = getelementptr inbounds [2 x ptr], ptr %5, i64 0, i64 %560
  %562 = load ptr, ptr %561, align 8, !tbaa !9
  %563 = call i32 @opus_encode(ptr noundef %.0652, ptr noundef %399, i32 noundef %.6735, ptr noundef %562, i32 noundef %.0713.lcssa1654) #13
  %564 = getelementptr inbounds [2 x i32], ptr %4, i64 0, i64 %560
  store i32 %563, ptr %564, align 4, !tbaa !5
  %565 = call i32 @opus_packet_get_samples_per_frame(ptr noundef %562, i32 noundef %49) #13
  %566 = call i32 @opus_packet_get_nb_frames(ptr noundef %562, i32 noundef %563) #13
  %567 = mul nsw i32 %566, %565
  %568 = sub nsw i32 %.6735, %567
  %569 = mul nsw i32 %568, %59
  %570 = icmp sgt i32 %569, 0
  br i1 %570, label %.lr.ph1455, label %._crit_edge1456

.lr.ph1455:                                       ; preds = %._crit_edge1452
  %571 = mul nsw i32 %567, %59
  %572 = sext i32 %571 to i64
  %wide.trip.count1620 = zext nneg i32 %569 to i64
  %invariant.gep1804 = getelementptr i16, ptr %399, i64 %572
  %min.iters.check1917 = icmp ult i32 %569, 16
  %573 = mul nsw i64 %572, -2
  %diff.check = icmp ult i64 %573, 32
  %or.cond1940 = select i1 %min.iters.check1917, i1 true, i1 %diff.check
  br i1 %or.cond1940, label %scalar.ph1916.preheader, label %vector.ph1918

vector.ph1918:                                    ; preds = %.lr.ph1455
  %n.vec1920 = and i64 %wide.trip.count1620, 2147483632
  br label %vector.body1922

vector.body1922:                                  ; preds = %vector.body1922, %vector.ph1918
  %index1923 = phi i64 [ 0, %vector.ph1918 ], [ %index.next1926, %vector.body1922 ]
  %574 = getelementptr i16, ptr %invariant.gep1804, i64 %index1923
  %575 = getelementptr i8, ptr %574, i64 16
  %wide.load1924 = load <8 x i16>, ptr %574, align 2, !tbaa !15
  %wide.load1925 = load <8 x i16>, ptr %575, align 2, !tbaa !15
  %576 = getelementptr inbounds i16, ptr %399, i64 %index1923
  %577 = getelementptr inbounds i8, ptr %576, i64 16
  store <8 x i16> %wide.load1924, ptr %576, align 2, !tbaa !15
  store <8 x i16> %wide.load1925, ptr %577, align 2, !tbaa !15
  %index.next1926 = add nuw i64 %index1923, 16
  %578 = icmp eq i64 %index.next1926, %n.vec1920
  br i1 %578, label %middle.block1915, label %vector.body1922, !llvm.loop !21

middle.block1915:                                 ; preds = %vector.body1922
  %cmp.n1927 = icmp eq i64 %n.vec1920, %wide.trip.count1620
  br i1 %cmp.n1927, label %._crit_edge1456, label %scalar.ph1916.preheader

scalar.ph1916.preheader:                          ; preds = %middle.block1915, %.lr.ph1455
  %indvars.iv1617.ph = phi i64 [ 0, %.lr.ph1455 ], [ %n.vec1920, %middle.block1915 ]
  %xtraiter = and i64 %wide.trip.count1620, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %scalar.ph1916.prol.loopexit, label %scalar.ph1916.prol

scalar.ph1916.prol:                               ; preds = %scalar.ph1916.preheader, %scalar.ph1916.prol
  %indvars.iv1617.prol = phi i64 [ %indvars.iv.next1618.prol, %scalar.ph1916.prol ], [ %indvars.iv1617.ph, %scalar.ph1916.preheader ]
  %prol.iter = phi i64 [ %prol.iter.next, %scalar.ph1916.prol ], [ 0, %scalar.ph1916.preheader ]
  %gep1805.prol = getelementptr i16, ptr %invariant.gep1804, i64 %indvars.iv1617.prol
  %579 = load i16, ptr %gep1805.prol, align 2, !tbaa !15
  %580 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv1617.prol
  store i16 %579, ptr %580, align 2, !tbaa !15
  %indvars.iv.next1618.prol = add nuw nsw i64 %indvars.iv1617.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %scalar.ph1916.prol.loopexit, label %scalar.ph1916.prol, !llvm.loop !22

scalar.ph1916.prol.loopexit:                      ; preds = %scalar.ph1916.prol, %scalar.ph1916.preheader
  %indvars.iv1617.unr = phi i64 [ %indvars.iv1617.ph, %scalar.ph1916.preheader ], [ %indvars.iv.next1618.prol, %scalar.ph1916.prol ]
  %581 = sub nsw i64 %indvars.iv1617.ph, %wide.trip.count1620
  %582 = icmp ugt i64 %581, -4
  br i1 %582, label %._crit_edge1456, label %scalar.ph1916

scalar.ph1916:                                    ; preds = %scalar.ph1916.prol.loopexit, %scalar.ph1916
  %indvars.iv1617 = phi i64 [ %indvars.iv.next1618.3, %scalar.ph1916 ], [ %indvars.iv1617.unr, %scalar.ph1916.prol.loopexit ]
  %gep1805 = getelementptr i16, ptr %invariant.gep1804, i64 %indvars.iv1617
  %583 = load i16, ptr %gep1805, align 2, !tbaa !15
  %584 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv1617
  store i16 %583, ptr %584, align 2, !tbaa !15
  %indvars.iv.next1618 = add nuw nsw i64 %indvars.iv1617, 1
  %gep1805.1 = getelementptr i16, ptr %invariant.gep1804, i64 %indvars.iv.next1618
  %585 = load i16, ptr %gep1805.1, align 2, !tbaa !15
  %586 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1618
  store i16 %585, ptr %586, align 2, !tbaa !15
  %indvars.iv.next1618.1 = add nuw nsw i64 %indvars.iv1617, 2
  %gep1805.2 = getelementptr i16, ptr %invariant.gep1804, i64 %indvars.iv.next1618.1
  %587 = load i16, ptr %gep1805.2, align 2, !tbaa !15
  %588 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1618.1
  store i16 %587, ptr %588, align 2, !tbaa !15
  %indvars.iv.next1618.2 = add nuw nsw i64 %indvars.iv1617, 3
  %gep1805.3 = getelementptr i16, ptr %invariant.gep1804, i64 %indvars.iv.next1618.2
  %589 = load i16, ptr %gep1805.3, align 2, !tbaa !15
  %590 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1618.2
  store i16 %589, ptr %590, align 2, !tbaa !15
  %indvars.iv.next1618.3 = add nuw nsw i64 %indvars.iv1617, 4
  %exitcond1621.not.3 = icmp eq i64 %indvars.iv.next1618.3, %wide.trip.count1620
  br i1 %exitcond1621.not.3, label %._crit_edge1456, label %scalar.ph1916, !llvm.loop !24

._crit_edge1456:                                  ; preds = %scalar.ph1916.prol.loopexit, %scalar.ph1916, %middle.block1915, %._crit_edge1452
  %.not779 = icmp eq i32 %.26491484, 0
  br i1 %.not779, label %602, label %591

591:                                              ; preds = %._crit_edge1456
  %592 = add nsw i32 %.26491484, %.17211468
  br i1 %.not7641671, label %600, label %593

593:                                              ; preds = %591
  %594 = icmp sgt i32 %592, %.0637.lcssa1666
  br i1 %594, label %595, label %597

595:                                              ; preds = %593
  %596 = sub nsw i32 0, %.26491484
  br label %600

597:                                              ; preds = %593
  %598 = icmp slt i32 %592, %.0720
  %599 = sub nsw i32 0, %.26491484
  %spec.select797 = select i1 %598, i32 %599, i32 %.26491484
  br label %600

600:                                              ; preds = %597, %595, %591
  %.3650 = phi i32 [ %596, %595 ], [ %.26491484, %591 ], [ %spec.select797, %597 ]
  %spec.store.select = call i32 @llvm.smax.i32(i32 %592, i32 1000)
  %601 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4002, i32 noundef %spec.store.select) #13
  br label %602

602:                                              ; preds = %600, %._crit_edge1456
  %.2722 = phi i32 [ %spec.store.select, %600 ], [ %.17211468, %._crit_edge1456 ]
  %.4651 = phi i32 [ %.3650, %600 ], [ 0, %._crit_edge1456 ]
  %603 = getelementptr inbounds [2 x i32], ptr %7, i64 0, i64 %560
  %604 = call i32 (ptr, i32, ...) @opus_encoder_ctl(ptr noundef %.0652, i32 noundef 4031, ptr noundef nonnull %603) #13
  %605 = icmp slt i32 %563, 0
  br i1 %605, label %610, label %.thread818

.thread818:                                       ; preds = %602
  %606 = add nsw i32 %.6735, %.06221488
  %607 = icmp sgt i32 %606, %.0621
  %608 = icmp slt i32 %.06261487, %442
  %or.cond799 = select i1 %607, i1 %608, i1 false
  %609 = zext i1 %or.cond799 to i32
  %.1627 = add nsw i32 %.06261487, %609
  %.1623 = select i1 %or.cond799, i32 0, i32 %606
  br label %613

610:                                              ; preds = %602
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull @.str.86, i32 noundef %563) #14
  br label %828

613:                                              ; preds = %.thread818, %503
  %614 = phi ptr [ %496, %503 ], [ %562, %.thread818 ]
  %615 = phi i32 [ %484, %503 ], [ %563, %.thread818 ]
  %.7736 = phi i32 [ %.5734, %503 ], [ %.6735, %.thread818 ]
  %.3723 = phi i32 [ %.17211468, %503 ], [ %.2722, %.thread818 ]
  %.2692 = phi i32 [ 0, %503 ], [ %.1691, %.thread818 ]
  %.1671 = phi i64 [ %.06701477, %503 ], [ %524, %.thread818 ]
  %.5 = phi i32 [ %.26491484, %503 ], [ %.4651, %.thread818 ]
  %.3629 = phi i32 [ %.06261487, %503 ], [ %.1627, %.thread818 ]
  %.3625 = phi i32 [ %.06221488, %503 ], [ %.1623, %.thread818 ]
  %.1620 = phi i32 [ %.06191489, %503 ], [ %567, %.thread818 ]
  %.1618 = phi i32 [ %.06171490, %503 ], [ %568, %.thread818 ]
  br i1 %21, label %616, label %631

616:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #13
  call void @int_to_char(i32 noundef %615, ptr noundef nonnull %10)
  %617 = call i64 @fwrite(ptr noundef nonnull %10, i64 noundef 1, i64 noundef 4, ptr noundef nonnull %346)
  %.not787 = icmp eq i64 %617, 4
  br i1 %.not787, label %618, label %.thread824

618:                                              ; preds = %616
  %619 = zext nneg i32 %.06561481 to i64
  %620 = getelementptr inbounds [2 x i32], ptr %7, i64 0, i64 %619
  %621 = load i32, ptr %620, align 4, !tbaa !5
  call void @int_to_char(i32 noundef %621, ptr noundef nonnull %10)
  %622 = call i64 @fwrite(ptr noundef nonnull %10, i64 noundef 1, i64 noundef 4, ptr noundef nonnull %346)
  %.not788 = icmp eq i64 %622, 4
  br i1 %.not788, label %623, label %.thread824

623:                                              ; preds = %618
  %624 = sext i32 %615 to i64
  %625 = call i64 @fwrite(ptr noundef %614, i64 noundef 1, i64 noundef %624, ptr noundef nonnull %346)
  %626 = zext i32 %615 to i64
  %.not789 = icmp eq i64 %625, %626
  br i1 %.not789, label %.thread839, label %.thread824

.thread824:                                       ; preds = %623, %618, %616
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef nonnull @.str.87) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #13
  br label %828

.thread839:                                       ; preds = %623
  %629 = sitofp i32 %.1620 to double
  %630 = fadd double %.06721476, %629
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #13
  br label %723

631:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #13
  %632 = icmp eq i32 %615, 0
  br i1 %632, label %.thread828, label %633

633:                                              ; preds = %631
  br i1 %443, label %634, label %.thread829

634:                                              ; preds = %633
  %635 = call i32 @rand() #13
  %636 = srem i32 %635, 100
  %637 = icmp slt i32 %636, %.0701.lcssa1662
  br i1 %637, label %.thread828, label %.thread829

.thread828:                                       ; preds = %631, %634
  %638 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %.0717, i32 noundef 4039, ptr noundef nonnull %11) #13
  br label %639

.thread829:                                       ; preds = %633, %634
  store i32 96000, ptr %11, align 4, !tbaa !5
  br label %639

639:                                              ; preds = %.thread829, %.thread828
  %640 = phi i32 [ 0, %.thread829 ], [ 1, %.thread828 ]
  %641 = phi i1 [ false, %.thread829 ], [ true, %.thread828 ]
  %.not784 = icmp slt i32 %.07001469, %.0709.lcssa1656
  br i1 %.not784, label %.thread848, label %642

.thread848:                                       ; preds = %639
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #13
  br label %721

642:                                              ; preds = %639
  br i1 %.not770, label %656, label %643

643:                                              ; preds = %642
  %.not785 = icmp eq i32 %.06571480, 0
  br i1 %.not785, label %648, label %644

644:                                              ; preds = %643
  %645 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %.0717, i32 noundef 4039, ptr noundef nonnull %11) #13
  %spec.select = select i1 %641, ptr null, ptr %614
  %646 = load i32, ptr %11, align 4, !tbaa !5
  %647 = call i32 @opus_decode(ptr noundef %.0717, ptr noundef %spec.select, i32 noundef %615, ptr noundef %400, i32 noundef %646, i32 noundef 1) #13
  store i32 %647, ptr %11, align 4, !tbaa !5
  br label %659

648:                                              ; preds = %643
  store i32 96000, ptr %11, align 4, !tbaa !5
  %649 = xor i32 %.06561481, 1
  %650 = zext nneg i32 %649 to i64
  %651 = getelementptr inbounds [2 x ptr], ptr %5, i64 0, i64 %650
  %652 = load ptr, ptr %651, align 8, !tbaa !9
  %653 = getelementptr inbounds [2 x i32], ptr %4, i64 0, i64 %650
  %654 = load i32, ptr %653, align 4, !tbaa !5
  %655 = call i32 @opus_decode(ptr noundef %.0717, ptr noundef %652, i32 noundef %654, ptr noundef %400, i32 noundef 96000, i32 noundef 0) #13
  store i32 %655, ptr %11, align 4, !tbaa !5
  br label %659

656:                                              ; preds = %642
  %spec.select1809 = select i1 %641, ptr null, ptr %614
  %657 = load i32, ptr %11, align 4, !tbaa !5
  %658 = call i32 @opus_decode(ptr noundef %.0717, ptr noundef %spec.select1809, i32 noundef %615, ptr noundef %400, i32 noundef %657, i32 noundef 0) #13
  store i32 %658, ptr %11, align 4, !tbaa !5
  br label %659

659:                                              ; preds = %644, %648, %656
  %660 = phi i32 [ %647, %644 ], [ %655, %648 ], [ %658, %656 ]
  %661 = icmp sgt i32 %660, 0
  br i1 %661, label %662, label %.thread855

662:                                              ; preds = %659
  %663 = zext nneg i32 %660 to i64
  %664 = add i64 %.06641478, %663
  %665 = icmp ule i64 %664, %.1671
  %or.cond809.not = select i1 %44, i1 true, i1 %665
  br i1 %or.cond809.not, label %669, label %666

666:                                              ; preds = %662
  %667 = sub i64 %.1671, %.06641478
  %668 = trunc i64 %667 to i32
  store i32 %668, ptr %11, align 4, !tbaa !5
  br label %669

669:                                              ; preds = %666, %662
  %670 = phi i32 [ %660, %662 ], [ %668, %666 ]
  %.3693 = phi i32 [ %.2692, %662 ], [ 1, %666 ]
  %671 = load i32, ptr %6, align 4, !tbaa !5
  %672 = icmp sgt i32 %670, %671
  br i1 %672, label %.preheader859, label %705

.preheader859:                                    ; preds = %669
  %673 = sub nsw i32 %670, %671
  %674 = mul nsw i32 %673, %59
  %675 = icmp sgt i32 %674, 0
  br i1 %675, label %.lr.ph1458, label %._crit_edge1459

.lr.ph1458:                                       ; preds = %.preheader859
  %676 = mul nsw i32 %671, %59
  %677 = sext i32 %676 to i64
  %wide.trip.count1625 = zext nneg i32 %674 to i64
  %invariant.gep1806 = getelementptr i16, ptr %400, i64 %677
  %min.iters.check = icmp ult i32 %674, 16
  br i1 %min.iters.check, label %scalar.ph.preheader, label %vector.ph

vector.ph:                                        ; preds = %.lr.ph1458
  %n.vec = and i64 %wide.trip.count1625, 2147483632
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %678 = getelementptr i16, ptr %invariant.gep1806, i64 %index
  %679 = getelementptr i8, ptr %678, i64 16
  %wide.load = load <8 x i16>, ptr %678, align 2, !tbaa !15
  %wide.load1913 = load <8 x i16>, ptr %679, align 2, !tbaa !15
  %680 = shl nuw nsw i64 %index, 1
  %681 = shl i64 %index, 1
  %682 = lshr <8 x i16> %wide.load, <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>
  %683 = lshr <8 x i16> %wide.load1913, <i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8, i16 8>
  %684 = or disjoint i64 %680, 1
  %685 = or disjoint i64 %681, 17
  %gep2155 = getelementptr i8, ptr %invariant.gep2154, i64 %684
  %gep2157 = getelementptr i8, ptr %invariant.gep2156, i64 %685
  %686 = shufflevector <8 x i16> %wide.load, <8 x i16> %682, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %interleaved.vec = trunc <16 x i16> %686 to <16 x i8>
  store <16 x i8> %interleaved.vec, ptr %gep2155, align 1, !tbaa !14
  %687 = shufflevector <8 x i16> %wide.load1913, <8 x i16> %683, <16 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11, i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %interleaved.vec1914 = trunc <16 x i16> %687 to <16 x i8>
  store <16 x i8> %interleaved.vec1914, ptr %gep2157, align 1, !tbaa !14
  %index.next = add nuw i64 %index, 16
  %688 = icmp eq i64 %index.next, %n.vec
  br i1 %688, label %middle.block, label %vector.body, !llvm.loop !25

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %n.vec, %wide.trip.count1625
  br i1 %cmp.n, label %._crit_edge1459, label %scalar.ph.preheader

scalar.ph.preheader:                              ; preds = %middle.block, %.lr.ph1458
  %indvars.iv1622.ph = phi i64 [ 0, %.lr.ph1458 ], [ %n.vec, %middle.block ]
  br label %scalar.ph

scalar.ph:                                        ; preds = %scalar.ph.preheader, %scalar.ph
  %indvars.iv1622 = phi i64 [ %indvars.iv.next1623, %scalar.ph ], [ %indvars.iv1622.ph, %scalar.ph.preheader ]
  %gep1807 = getelementptr i16, ptr %invariant.gep1806, i64 %indvars.iv1622
  %689 = load i16, ptr %gep1807, align 2, !tbaa !15
  %690 = trunc i16 %689 to i8
  %691 = shl nuw nsw i64 %indvars.iv1622, 1
  %692 = getelementptr inbounds i8, ptr %401, i64 %691
  store i8 %690, ptr %692, align 1, !tbaa !14
  %693 = lshr i16 %689, 8
  %694 = trunc nuw i16 %693 to i8
  %695 = or disjoint i64 %691, 1
  %696 = getelementptr inbounds i8, ptr %401, i64 %695
  store i8 %694, ptr %696, align 1, !tbaa !14
  %indvars.iv.next1623 = add nuw nsw i64 %indvars.iv1622, 1
  %exitcond1626.not = icmp eq i64 %indvars.iv.next1623, %wide.trip.count1625
  br i1 %exitcond1626.not, label %._crit_edge1459, label %scalar.ph, !llvm.loop !26

._crit_edge1459:                                  ; preds = %scalar.ph, %middle.block, %.preheader859
  %697 = sext i32 %673 to i64
  %698 = call i64 @fwrite(ptr noundef %401, i64 noundef %441, i64 noundef %697, ptr noundef nonnull %346)
  %699 = load i32, ptr %11, align 4, !tbaa !5
  %700 = load i32, ptr %6, align 4, !tbaa !5
  %701 = sub nsw i32 %699, %700
  %702 = zext i32 %701 to i64
  %.not786 = icmp eq i64 %698, %702
  br i1 %.not786, label %.thread830, label %718

.thread830:                                       ; preds = %._crit_edge1459
  %703 = sext i32 %701 to i64
  %704 = add i64 %.06641478, %703
  br label %705

705:                                              ; preds = %.thread830, %669
  %706 = phi i32 [ %671, %669 ], [ %700, %.thread830 ]
  %707 = phi i32 [ %670, %669 ], [ %699, %.thread830 ]
  %.2666 = phi i64 [ %.06641478, %669 ], [ %704, %.thread830 ]
  %708 = icmp slt i32 %707, %706
  %709 = sub nsw i32 %706, %707
  %storemerge = select i1 %708, i32 %709, i32 0
  store i32 %storemerge, ptr %6, align 4, !tbaa !5
  %710 = sitofp i32 %707 to double
  %711 = fadd double %.06721476, %710
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #13
  br label %721

.thread855:                                       ; preds = %659
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call ptr @opus_strerror(i32 noundef %660) #13
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %712, ptr noundef nonnull @.str.88, ptr noundef %713) #14
  %715 = load i32, ptr %11, align 4, !tbaa !5
  %716 = sitofp i32 %715 to double
  %717 = fadd double %.06721476, %716
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #13
  br label %721

718:                                              ; preds = %._crit_edge1459
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %719, ptr noundef nonnull @.str.87) #14
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #13
  br label %828

721:                                              ; preds = %705, %.thread855, %.thread848
  %.5669.ph854 = phi i64 [ %.06641478, %.thread848 ], [ %.2666, %705 ], [ %.06641478, %.thread855 ]
  %.3675.ph853 = phi double [ %.06721476, %.thread848 ], [ %711, %705 ], [ %717, %.thread855 ]
  %.6696.ph852 = phi i32 [ %.2692, %.thread848 ], [ %.3693, %705 ], [ %.2692, %.thread855 ]
  %722 = call i32 (ptr, i32, ...) @opus_decoder_ctl(ptr noundef %.0717, i32 noundef 4031, ptr noundef nonnull %8) #13
  br label %723

723:                                              ; preds = %.thread839, %721
  %.1659847 = phi i32 [ %.06581479, %.thread839 ], [ %640, %721 ]
  %.6846 = phi i64 [ %.06641478, %.thread839 ], [ %.5669.ph854, %721 ]
  %.4676845 = phi double [ %630, %.thread839 ], [ %.3675.ph853, %721 ]
  %.7844 = phi i32 [ %.2692, %.thread839 ], [ %.6696.ph852, %721 ]
  %724 = xor i32 %.06561481, %.0709.lcssa1656
  %725 = zext nneg i32 %724 to i64
  %726 = getelementptr inbounds [2 x i32], ptr %7, i64 0, i64 %725
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = icmp eq i32 %727, 0
  %or.cond17 = or i1 %21, %728
  %729 = or i32 %.1659847, %.06571480
  %730 = icmp ne i32 %729, 0
  %or.cond21 = select i1 %or.cond17, i1 true, i1 %730
  %731 = load i32, ptr %8, align 4
  %.not790 = icmp eq i32 %731, %727
  %or.cond = select i1 %or.cond21, i1 true, i1 %.not790
  br i1 %or.cond, label %738, label %732

732:                                              ; preds = %723
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = zext nneg i32 %.07001469 to i64
  %735 = zext i32 %727 to i64
  %736 = zext i32 %731 to i64
  %737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull @.str.89, i64 noundef %734, i64 noundef %735, i64 noundef %736) #14
  br label %828

738:                                              ; preds = %723
  %.not791 = icmp slt i32 %.07001469, %.0709.lcssa1656
  br i1 %.not791, label %780, label %739

739:                                              ; preds = %738
  %740 = zext nneg i32 %.06561481 to i64
  %741 = getelementptr inbounds [2 x i32], ptr %4, i64 0, i64 %740
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = shl nsw i32 %742, 3
  %744 = sitofp i32 %743 to double
  %745 = fadd double %.06841472, %744
  %746 = fcmp olt double %.06821473, %744
  %..0682 = select i1 %746, double %744, double %.06821473
  %747 = shl i32 %742, 6
  %748 = mul i32 %747, %742
  %749 = uitofp nneg i32 %748 to double
  %750 = fadd double %.06781475, %749
  br i1 %44, label %780, label %.preheader

.preheader:                                       ; preds = %739
  %751 = mul nsw i32 %.7736, %59
  %752 = icmp sgt i32 %751, 0
  br i1 %752, label %.lr.ph1463.preheader, label %._crit_edge1464

.lr.ph1463.preheader:                             ; preds = %.preheader
  %wide.trip.count1630 = zext nneg i32 %751 to i64
  %xtraiter2044 = and i64 %wide.trip.count1630, 3
  %753 = icmp ult i32 %751, 4
  br i1 %753, label %._crit_edge1464.loopexit.unr-lcssa, label %.lr.ph1463.preheader.new

.lr.ph1463.preheader.new:                         ; preds = %.lr.ph1463.preheader
  %unroll_iter = and i64 %wide.trip.count1630, 2147483644
  br label %.lr.ph1463

.lr.ph1463:                                       ; preds = %.lr.ph1463, %.lr.ph1463.preheader.new
  %indvars.iv1627 = phi i64 [ 0, %.lr.ph1463.preheader.new ], [ %indvars.iv.next1628.3, %.lr.ph1463 ]
  %.06771462 = phi double [ 0.000000e+00, %.lr.ph1463.preheader.new ], [ %769, %.lr.ph1463 ]
  %niter = phi i64 [ 0, %.lr.ph1463.preheader.new ], [ %niter.next.3, %.lr.ph1463 ]
  %754 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv1627
  %755 = load i16, ptr %754, align 2, !tbaa !15
  %756 = sitofp i16 %755 to double
  %757 = call double @llvm.fmuladd.f64(double %756, double %756, double %.06771462)
  %indvars.iv.next1628 = or disjoint i64 %indvars.iv1627, 1
  %758 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1628
  %759 = load i16, ptr %758, align 2, !tbaa !15
  %760 = sitofp i16 %759 to double
  %761 = call double @llvm.fmuladd.f64(double %760, double %760, double %757)
  %indvars.iv.next1628.1 = or disjoint i64 %indvars.iv1627, 2
  %762 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1628.1
  %763 = load i16, ptr %762, align 2, !tbaa !15
  %764 = sitofp i16 %763 to double
  %765 = call double @llvm.fmuladd.f64(double %764, double %764, double %761)
  %indvars.iv.next1628.2 = or disjoint i64 %indvars.iv1627, 3
  %766 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv.next1628.2
  %767 = load i16, ptr %766, align 2, !tbaa !15
  %768 = sitofp i16 %767 to double
  %769 = call double @llvm.fmuladd.f64(double %768, double %768, double %765)
  %indvars.iv.next1628.3 = add nuw nsw i64 %indvars.iv1627, 4
  %niter.next.3 = add i64 %niter, 4
  %niter.ncmp.3 = icmp eq i64 %niter.next.3, %unroll_iter
  br i1 %niter.ncmp.3, label %._crit_edge1464.loopexit.unr-lcssa, label %.lr.ph1463, !llvm.loop !27

._crit_edge1464.loopexit.unr-lcssa:               ; preds = %.lr.ph1463, %.lr.ph1463.preheader
  %.lcssa.ph = phi double [ poison, %.lr.ph1463.preheader ], [ %769, %.lr.ph1463 ]
  %indvars.iv1627.unr = phi i64 [ 0, %.lr.ph1463.preheader ], [ %indvars.iv.next1628.3, %.lr.ph1463 ]
  %.06771462.unr = phi double [ 0.000000e+00, %.lr.ph1463.preheader ], [ %769, %.lr.ph1463 ]
  %lcmp.mod2045.not = icmp eq i64 %xtraiter2044, 0
  br i1 %lcmp.mod2045.not, label %._crit_edge1464, label %.lr.ph1463.epil

.lr.ph1463.epil:                                  ; preds = %._crit_edge1464.loopexit.unr-lcssa, %.lr.ph1463.epil
  %indvars.iv1627.epil = phi i64 [ %indvars.iv.next1628.epil, %.lr.ph1463.epil ], [ %indvars.iv1627.unr, %._crit_edge1464.loopexit.unr-lcssa ]
  %.06771462.epil = phi double [ %773, %.lr.ph1463.epil ], [ %.06771462.unr, %._crit_edge1464.loopexit.unr-lcssa ]
  %epil.iter = phi i64 [ %epil.iter.next, %.lr.ph1463.epil ], [ 0, %._crit_edge1464.loopexit.unr-lcssa ]
  %770 = getelementptr inbounds i16, ptr %399, i64 %indvars.iv1627.epil
  %771 = load i16, ptr %770, align 2, !tbaa !15
  %772 = sitofp i16 %771 to double
  %773 = call double @llvm.fmuladd.f64(double %772, double %772, double %.06771462.epil)
  %indvars.iv.next1628.epil = add nuw nsw i64 %indvars.iv1627.epil, 1
  %epil.iter.next = add i64 %epil.iter, 1
  %epil.iter.cmp.not = icmp eq i64 %epil.iter.next, %xtraiter2044
  br i1 %epil.iter.cmp.not, label %._crit_edge1464, label %.lr.ph1463.epil, !llvm.loop !28

._crit_edge1464:                                  ; preds = %._crit_edge1464.loopexit.unr-lcssa, %.lr.ph1463.epil, %.preheader
  %.0677.lcssa = phi double [ 0.000000e+00, %.preheader ], [ %.lcssa.ph, %._crit_edge1464.loopexit.unr-lcssa ], [ %773, %.lr.ph1463.epil ]
  %774 = sitofp i32 %751 to double
  %775 = fdiv double %.0677.lcssa, %774
  %776 = fcmp ogt double %775, 1.000000e+05
  br i1 %776, label %777, label %780

777:                                              ; preds = %._crit_edge1464
  %778 = fadd double %.06801474, %744
  %779 = add nsw i32 %.06981470, 1
  br label %780

780:                                              ; preds = %739, %777, %._crit_edge1464, %738
  %.1699 = phi i32 [ %.06981470, %739 ], [ %779, %777 ], [ %.06981470, %._crit_edge1464 ], [ %.06981470, %738 ]
  %.1685 = phi double [ %745, %739 ], [ %745, %777 ], [ %745, %._crit_edge1464 ], [ %.06841472, %738 ]
  %.1683 = phi double [ %..0682, %739 ], [ %..0682, %777 ], [ %..0682, %._crit_edge1464 ], [ %.06821473, %738 ]
  %.1681 = phi double [ %.06801474, %739 ], [ %778, %777 ], [ %.06801474, %._crit_edge1464 ], [ %.06801474, %738 ]
  %.1679 = phi double [ %750, %739 ], [ %750, %777 ], [ %750, %._crit_edge1464 ], [ %.06781475, %738 ]
  %781 = add nuw nsw i32 %.07001469, 1
  %782 = add nuw nsw i32 %.06561481, %.0709.lcssa1656
  %783 = and i32 %782, 1
  %.not772 = icmp eq i32 %.7844, 0
  br i1 %.not772, label %444, label %.loopexit, !llvm.loop !29

.loopexit:                                        ; preds = %780, %.thread815
  %.0700940 = phi i32 [ %.07001469, %.thread815 ], [ %781, %780 ]
  %.0698929 = phi i32 [ %.06981470, %.thread815 ], [ %.1699, %780 ]
  %.0684918 = phi double [ %.06841472, %.thread815 ], [ %.1685, %780 ]
  %.0682907 = phi double [ %.06821473, %.thread815 ], [ %.1683, %780 ]
  %.0680896 = phi double [ %.06801474, %.thread815 ], [ %.1681, %780 ]
  %.0678885 = phi double [ %.06781475, %.thread815 ], [ %.1679, %780 ]
  %.0672874 = phi double [ %.06721476, %.thread815 ], [ %.4676845, %780 ]
  %.8 = phi i32 [ %.5734, %.thread815 ], [ %.7736, %780 ]
  %784 = icmp ne i32 %.0700940, 0
  %or.cond23 = select i1 %44, i1 %784, i1 false
  %785 = uitofp nneg i32 %.0700940 to double
  %786 = fdiv double %.0672874, %785
  %787 = fptosi double %786 to i32
  %.9 = select i1 %or.cond23, i32 %787, i32 %.8
  %788 = sub nsw i32 %.0700940, %.0709.lcssa1656
  %789 = fcmp oge double %.0672874, 1.000000e+00
  %790 = icmp sgt i32 %788, 0
  %or.cond25 = select i1 %789, i1 %790, i1 false
  %791 = icmp ne i32 %.9, 0
  %or.cond27 = select i1 %or.cond25, i1 %791, i1 false
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  br i1 %or.cond27, label %793, label %826

793:                                              ; preds = %.loopexit
  %794 = fmul double %.0684918, 1.000000e-03
  %795 = sitofp i32 %49 to double
  %796 = fmul double %794, %795
  %797 = fdiv double %796, %.0672874
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull @.str.90, double noundef %797) #14
  %799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %800 = fmul double %.0682907, 1.000000e-03
  %801 = fmul double %800, %795
  %802 = sitofp i32 %.9 to double
  %803 = fdiv double %801, %802
  %804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %799, ptr noundef nonnull @.str.91, double noundef %803) #14
  br i1 %44, label %813, label %805

805:                                              ; preds = %793
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = fmul double %.0680896, 1.000000e-03
  %808 = fmul double %807, %795
  %809 = sitofp i32 %.0698929 to double
  %810 = call double @llvm.fmuladd.f64(double %802, double %809, double 1.000000e-15)
  %811 = fdiv double %808, %810
  %812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef nonnull @.str.92, double noundef %811) #14
  br label %813

813:                                              ; preds = %805, %793
  %814 = uitofp nneg i32 %788 to double
  %815 = fdiv double %.0678885, %814
  %816 = fmul double %.0684918, %.0684918
  %817 = fmul double %814, %814
  %818 = fdiv double %816, %817
  %819 = fsub double %815, %818
  %820 = fcmp olt double %819, 0.000000e+00
  %.0 = select i1 %820, double 0.000000e+00, double %819
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %sqrt = call double @llvm.sqrt.f64(double %.0)
  %822 = fmul double %sqrt, 1.000000e-03
  %823 = fmul double %822, %795
  %824 = fdiv double %823, %802
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %821, ptr noundef nonnull @.str.93, double noundef %824) #14
  br label %828

826:                                              ; preds = %.loopexit
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %792, ptr noundef nonnull @.str.94) #14
  br label %828

828:                                              ; preds = %718, %.thread824, %610, %813, %826, %732, %376, %355, %347, %320, %313, %308, %305, %298, %291, %284, %277, %270, %263, %256, %245, %238, %227, %213, %206, %199, %192, %178, %167, %160, %128, %121, %101, %94, %62, %50, %39, %27, %13
  %.0719 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %401, %732 ], [ %401, %718 ], [ %401, %610 ], [ null, %376 ], [ null, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %401, %826 ], [ %401, %813 ], [ %401, %.thread824 ]
  %.1718 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %.0717, %732 ], [ %.0717, %718 ], [ %.0717, %610 ], [ %374, %376 ], [ null, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %.0717, %826 ], [ %.0717, %813 ], [ %.0717, %.thread824 ]
  %.0689 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %399, %732 ], [ %399, %718 ], [ %399, %610 ], [ null, %376 ], [ null, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %399, %826 ], [ %399, %813 ], [ %399, %.thread824 ]
  %.0688 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %400, %732 ], [ %400, %718 ], [ %400, %610 ], [ null, %376 ], [ null, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %400, %826 ], [ %400, %813 ], [ %400, %.thread824 ]
  %.1653 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %.0652, %732 ], [ %.0652, %718 ], [ %.0652, %610 ], [ %.0652, %376 ], [ %353, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %.0652, %826 ], [ %.0652, %813 ], [ %.0652, %.thread824 ]
  %.0613 = phi i32 [ 1, %13 ], [ 1, %27 ], [ 1, %50 ], [ 1, %62 ], [ 1, %94 ], [ 1, %101 ], [ 1, %121 ], [ 1, %128 ], [ 1, %160 ], [ 1, %167 ], [ 1, %178 ], [ 1, %192 ], [ 1, %199 ], [ 1, %206 ], [ 1, %213 ], [ 1, %227 ], [ 1, %238 ], [ 1, %245 ], [ 1, %256 ], [ 1, %263 ], [ 1, %270 ], [ 1, %277 ], [ 1, %284 ], [ 1, %291 ], [ 1, %298 ], [ 1, %305 ], [ 1, %308 ], [ 1, %313 ], [ 1, %732 ], [ 1, %718 ], [ 1, %610 ], [ 1, %376 ], [ 1, %355 ], [ 1, %347 ], [ 1, %320 ], [ 1, %39 ], [ 0, %826 ], [ 0, %813 ], [ 1, %.thread824 ]
  %.0612 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %346, %732 ], [ %346, %718 ], [ %346, %610 ], [ %346, %376 ], [ %346, %355 ], [ null, %347 ], [ null, %320 ], [ null, %39 ], [ %346, %826 ], [ %346, %813 ], [ %346, %.thread824 ]
  %.0607 = phi ptr [ null, %13 ], [ null, %27 ], [ null, %50 ], [ null, %62 ], [ null, %94 ], [ null, %101 ], [ null, %121 ], [ null, %128 ], [ null, %160 ], [ null, %167 ], [ null, %178 ], [ null, %192 ], [ null, %199 ], [ null, %206 ], [ null, %213 ], [ null, %227 ], [ null, %238 ], [ null, %245 ], [ null, %256 ], [ null, %263 ], [ null, %270 ], [ null, %277 ], [ null, %284 ], [ null, %291 ], [ null, %298 ], [ null, %305 ], [ null, %308 ], [ null, %313 ], [ %319, %732 ], [ %319, %718 ], [ %319, %610 ], [ %319, %376 ], [ %319, %355 ], [ %319, %347 ], [ null, %320 ], [ null, %39 ], [ %319, %826 ], [ %319, %813 ], [ %319, %.thread824 ]
  call void @opus_encoder_destroy(ptr noundef %.1653) #13
  call void @opus_decoder_destroy(ptr noundef %.1718) #13
  %829 = load ptr, ptr %5, align 16, !tbaa !9
  call void @free(ptr noundef %829) #13
  %830 = getelementptr inbounds i8, ptr %5, i64 8
  %831 = load ptr, ptr %830, align 8, !tbaa !9
  call void @free(ptr noundef %831) #13
  %.not792 = icmp eq ptr %.0607, null
  br i1 %.not792, label %834, label %832

832:                                              ; preds = %828
  %833 = call i32 @fclose(ptr noundef nonnull %.0607)
  br label %834

834:                                              ; preds = %832, %828
  %.not793 = icmp eq ptr %.0612, null
  br i1 %.not793, label %837, label %835

835:                                              ; preds = %834
  %836 = call i32 @fclose(ptr noundef nonnull %.0612)
  br label %837

837:                                              ; preds = %834, %835
  call void @free(ptr noundef %.0689) #13
  call void @free(ptr noundef %.0688) #13
  call void @free(ptr noundef %.0719) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #13
  ret i32 %.0613
}

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

declare ptr @opus_get_version_string() local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i64 @atol(ptr nocapture noundef nonnull) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable
declare i32 @atoi(ptr nocapture noundef nonnull) local_unnamed_addr #6

; Function Attrs: nofree nounwind
declare noundef i32 @printf(ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noalias noundef ptr @fopen(ptr nocapture noundef readonly, ptr nocapture noundef readonly) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fseek(ptr nocapture noundef, i64 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i64 @ftell(ptr nocapture noundef) local_unnamed_addr #1

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

declare ptr @opus_encoder_create(i32 noundef, i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

declare ptr @opus_strerror(i32 noundef) local_unnamed_addr #4

declare i32 @opus_encoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #4

declare ptr @opus_decoder_create(i32 noundef, i32 noundef, ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #7

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #8

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #9

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.abs.i32(i32, i1 immarg) #10

; Function Attrs: nofree nounwind
declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
declare hidden i32 @char_to_int(ptr noundef) local_unnamed_addr #0

declare i32 @opus_encode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

declare i32 @opus_packet_get_samples_per_frame(ptr noundef, i32 noundef) local_unnamed_addr #4

declare i32 @opus_packet_get_nb_frames(ptr noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: nounwind uwtable
declare hidden void @int_to_char(i32 noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #1

declare i32 @opus_decoder_ctl(ptr noundef, i32 noundef, ...) local_unnamed_addr #4

declare i32 @opus_decode(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.fmuladd.f64(double, double, double) #10

declare void @opus_encoder_destroy(ptr noundef) local_unnamed_addr #4

declare void @opus_decoder_destroy(ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #11

; Function Attrs: nofree nounwind
declare noundef i32 @fclose(ptr nocapture noundef) local_unnamed_addr #1

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare double @llvm.sqrt.f64(double) #12

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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 #6 = { inlinehint mustprogress nofree nounwind willreturn memory(read) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #8 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #9 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #11 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #13 = { nounwind }
attributes #14 = { cold nounwind }
attributes #15 = { nounwind willreturn memory(read) }
attributes #16 = { nounwind allocsize(0) }
attributes #17 = { nounwind allocsize(0,1) }

!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 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = !{!7, !7, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = distinct !{!17, !12, !18, !19}
!18 = !{!"llvm.loop.isvectorized", i32 1}
!19 = !{!"llvm.loop.unroll.runtime.disable"}
!20 = distinct !{!20, !12, !19, !18}
!21 = distinct !{!21, !12, !18, !19}
!22 = distinct !{!22, !23}
!23 = !{!"llvm.loop.unroll.disable"}
!24 = distinct !{!24, !12, !18}
!25 = distinct !{!25, !12, !18, !19}
!26 = distinct !{!26, !12, !19, !18}
!27 = distinct !{!27, !12}
!28 = distinct !{!28, !23}
!29 = distinct !{!29, !12}


; Effective O3 passes: AggressiveInstCombinePass,BDCEPass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopInstSimplifyPass,LoopLoadEliminationPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,LoopVectorizePass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass,VectorCombinePass