; LLVM IR from HRI-EU/Rcs :: src/RcsCore (Rcs_BVHParser)

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

%struct._G_fpos_t = type { i64, %struct.__mbstate_t }
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%struct._MatNd = type { ptr, i32, i32, i32, i8 }
%struct._RcsGraph = type { ptr, [10 x %struct._RcsBody], i32, i32, ptr, ptr, ptr, ptr, ptr }
%struct._RcsBody = type { double, i8, i32, [3 x double], [3 x double], double, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct._RcsJoint = type { ptr, double, double, double, double, double, double, double, i8, i32, i32, i32, i32, ptr, %struct.HTr, double, double, double, double, i32, ptr, ptr, ptr, ptr, ptr }
%struct.HTr = type { [3 x double], [3 x [3 x double]] }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@RCS_GLOBAL_RLOG_CB = external global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@RcsLogLevel = external global i32, align 4
@stderr = external global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [15 x i8], align 1
@__func__.RcsGraph_createTrajectoryFromBVHFile = external hidden unnamed_addr constant [37 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [32 x i8], align 1

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

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

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #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 i32 @__isoc99_fscanf(ptr noundef, ptr noundef, ...) #1

declare i32 @fclose(ptr noundef) #1

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

declare void @print_trace() #1

; Function Attrs: noreturn nounwind
declare void @abort() #5

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

declare ptr @RcsBody_depthFirstTraversalGetNext(ptr noundef) #1

declare ptr @MatNd_create(i32 noundef, i32 noundef) #1

; Function Attrs: nounwind uwtable
define dso_local ptr @RcsGraph_createTrajectoryFromBVHFile(ptr noundef %0, ptr noundef %1, ptr noundef %2, double noundef %3, double noundef %4) #6 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca double, align 8
  %11 = alloca double, align 8
  %12 = alloca [256 x i8], align 16
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca [64 x i8], align 16
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca double, align 8
  %21 = alloca %struct._G_fpos_t, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct._MatNd, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store double %3, ptr %10, align 8, !tbaa !9
  store double %4, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 256, ptr %12) #7
  call void @llvm.memset.p0.i64(ptr align 16 %12, i8 0, i64 256, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  %32 = load ptr, ptr %8, align 8, !tbaa !5
  %33 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  %34 = call zeroext i1 @Rcs_getAbsoluteFileName(ptr noundef %32, ptr noundef %33)
  %35 = zext i1 %34 to i8
  store i8 %35, ptr %13, align 1, !tbaa !11
  %36 = load i8, ptr %13, align 1, !tbaa !11, !range !13, !noundef !14
  %37 = trunc i8 %36 to i1
  %38 = zext i1 %37 to i32
  %39 = icmp eq i32 %38, 0
  br i1 %39, label %40, label %74

40:                                               ; preds = %5
  %41 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %42 = icmp sle i32 1, %41
  br i1 %42, label %43, label %73

43:                                               ; preds = %40
  br label %44

44:                                               ; preds = %43
  %45 = load ptr, ptr @stderr, align 8, !tbaa !5
  %46 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef @.str.16, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 544) #7
  %47 = load ptr, ptr @stderr, align 8, !tbaa !5
  %48 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %47, ptr noundef @.str.17) #7
  %49 = load ptr, ptr @stderr, align 8, !tbaa !5
  %50 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef @.str.4) #7
  %51 = load ptr, ptr @stderr, align 8, !tbaa !5
  %52 = call i32 @fflush(ptr noundef %51)
  br label %53

53:                                               ; preds = %44
  br label %54

54:                                               ; preds = %53
  call void @Rcs_printResourcePath()
  br label %55

55:                                               ; preds = %54
  %56 = load ptr, ptr @stderr, align 8, !tbaa !5
  %57 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %56, ptr noundef @.str.16, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 547) #7
  %58 = load ptr, ptr @stderr, align 8, !tbaa !5
  %59 = load ptr, ptr %8, align 8, !tbaa !5
  %60 = icmp ne ptr %59, null
  br i1 %60, label %61, label %63

61:                                               ; preds = %55
  %62 = load ptr, ptr %8, align 8, !tbaa !5
  br label %64

63:                                               ; preds = %55
  br label %64

64:                                               ; preds = %63, %61
  %65 = phi ptr [ %62, %61 ], [ @.str.19, %63 ]
  %66 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef @.str.18, ptr noundef %65) #7
  %67 = load ptr, ptr @stderr, align 8, !tbaa !5
  %68 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %67, ptr noundef @.str.4) #7
  %69 = load ptr, ptr @stderr, align 8, !tbaa !5
  %70 = call i32 @fflush(ptr noundef %69)
  br label %71

71:                                               ; preds = %64
  br label %72

72:                                               ; preds = %71
  br label %73

73:                                               ; preds = %72, %40
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %532

74:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #7
  %75 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  %76 = call noalias ptr @fopen(ptr noundef %75, ptr noundef @.str)
  store ptr %76, ptr %15, align 8, !tbaa !5
  %77 = load ptr, ptr %15, align 8, !tbaa !5
  %78 = icmp eq ptr %77, null
  br i1 %78, label %79, label %100

79:                                               ; preds = %74
  br label %80

80:                                               ; preds = %79
  %81 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %82 = icmp ne ptr %81, null
  br i1 %82, label %83, label %86

83:                                               ; preds = %80
  %84 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %85 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  call void (i32, ptr, ptr, i32, ptr, ...) %84(i32 noundef 1, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 556, ptr noundef @.str.2, ptr noundef %85)
  br label %86

86:                                               ; preds = %83, %80
  %87 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %88 = icmp sle i32 1, %87
  br i1 %88, label %89, label %97

89:                                               ; preds = %86
  %90 = load ptr, ptr @stderr, align 8, !tbaa !5
  %91 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %90, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 556) #7
  %92 = load ptr, ptr @stderr, align 8, !tbaa !5
  %93 = getelementptr inbounds [256 x i8], ptr %12, i64 0, i64 0
  %94 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef @.str.2, ptr noundef %93) #7
  %95 = load ptr, ptr @stderr, align 8, !tbaa !5
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %95, ptr noundef @.str.4) #7
  br label %97

97:                                               ; preds = %89, %86
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %531

100:                                              ; preds = %74
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #7
  %101 = load ptr, ptr %15, align 8, !tbaa !5
  %102 = call zeroext i1 @findKeyword(ptr noundef @.str.20, ptr noundef %101)
  %103 = zext i1 %102 to i8
  store i8 %103, ptr %16, align 1, !tbaa !11
  %104 = load i8, ptr %16, align 1, !tbaa !11, !range !13, !noundef !14
  %105 = trunc i8 %104 to i1
  %106 = zext i1 %105 to i32
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %108, label %129

108:                                              ; preds = %100
  br label %109

109:                                              ; preds = %108
  %110 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %111 = icmp ne ptr %110, null
  br i1 %111, label %112, label %114

112:                                              ; preds = %109
  %113 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  call void (i32, ptr, ptr, i32, ptr, ...) %113(i32 noundef 1, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 565, ptr noundef @.str.21)
  br label %114

114:                                              ; preds = %112, %109
  %115 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %116 = icmp sle i32 1, %115
  br i1 %116, label %117, label %124

117:                                              ; preds = %114
  %118 = load ptr, ptr @stderr, align 8, !tbaa !5
  %119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 565) #7
  %120 = load ptr, ptr @stderr, align 8, !tbaa !5
  %121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %120, ptr noundef @.str.21) #7
  %122 = load ptr, ptr @stderr, align 8, !tbaa !5
  %123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef @.str.4) #7
  br label %124

124:                                              ; preds = %117, %114
  br label %125

125:                                              ; preds = %124
  br label %126

126:                                              ; preds = %125
  %127 = load ptr, ptr %15, align 8, !tbaa !5
  %128 = call i32 @fclose(ptr noundef %127)
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %530

129:                                              ; preds = %100
  call void @llvm.lifetime.start.p0(i64 64, ptr %17) #7
  call void @llvm.memset.p0.i64(ptr align 16 %17, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  %130 = load ptr, ptr %15, align 8, !tbaa !5
  %131 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %132 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %130, ptr noundef @.str.22, ptr noundef %131)
  store i32 %132, ptr %18, align 4, !tbaa !15
  br label %133

133:                                              ; preds = %129
  %134 = load i32, ptr %18, align 4, !tbaa !15
  %135 = icmp eq i32 %134, 1
  br i1 %135, label %139, label %136

136:                                              ; preds = %133
  %137 = load ptr, ptr @stderr, align 8, !tbaa !5
  %138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %137, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 572, ptr noundef @.str.23) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

139:                                              ; preds = %133
  br label %140

140:                                              ; preds = %139
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  %143 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %144 = call i32 @strcasecmp(ptr noundef %143, ptr noundef @.str.24) #9
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %149, label %146

146:                                              ; preds = %142
  %147 = load ptr, ptr @stderr, align 8, !tbaa !5
  %148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 573, ptr noundef @.str.25) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

149:                                              ; preds = %142
  br label %150

150:                                              ; preds = %149
  br label %151

151:                                              ; preds = %150
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !15
  %152 = load ptr, ptr %15, align 8, !tbaa !5
  %153 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %152, ptr noundef @.str.26, ptr noundef %19)
  store i32 %153, ptr %18, align 4, !tbaa !15
  br label %154

154:                                              ; preds = %151
  %155 = load i32, ptr %18, align 4, !tbaa !15
  %156 = icmp eq i32 %155, 1
  br i1 %156, label %160, label %157

157:                                              ; preds = %154
  %158 = load ptr, ptr @stderr, align 8, !tbaa !5
  %159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %158, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 577, ptr noundef @.str.23) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

160:                                              ; preds = %154
  br label %161

161:                                              ; preds = %160
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162
  %164 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %165 = icmp ne ptr %164, null
  br i1 %165, label %166, label %169

166:                                              ; preds = %163
  %167 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %168 = load i32, ptr %19, align 4, !tbaa !15
  call void (i32, ptr, ptr, i32, ptr, ...) %167(i32 noundef 5, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 578, ptr noundef @.str.27, i32 noundef %168)
  br label %169

169:                                              ; preds = %166, %163
  %170 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %171 = icmp sle i32 5, %170
  br i1 %171, label %172, label %180

172:                                              ; preds = %169
  %173 = load ptr, ptr @stderr, align 8, !tbaa !5
  %174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 578) #7
  %175 = load ptr, ptr @stderr, align 8, !tbaa !5
  %176 = load i32, ptr %19, align 4, !tbaa !15
  %177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str.27, i32 noundef %176) #7
  %178 = load ptr, ptr @stderr, align 8, !tbaa !5
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %178, ptr noundef @.str.4) #7
  br label %180

180:                                              ; preds = %172, %169
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181
  %183 = load ptr, ptr %15, align 8, !tbaa !5
  %184 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %185 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %183, ptr noundef @.str.22, ptr noundef %184)
  store i32 %185, ptr %18, align 4, !tbaa !15
  br label %186

186:                                              ; preds = %182
  %187 = load i32, ptr %18, align 4, !tbaa !15
  %188 = icmp eq i32 %187, 1
  br i1 %188, label %192, label %189

189:                                              ; preds = %186
  %190 = load ptr, ptr @stderr, align 8, !tbaa !5
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 581, ptr noundef @.str.23) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

192:                                              ; preds = %186
  br label %193

193:                                              ; preds = %192
  br label %194

194:                                              ; preds = %193
  br label %195

195:                                              ; preds = %194
  %196 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %197 = call i32 @strcasecmp(ptr noundef %196, ptr noundef @.str.28) #9
  %198 = icmp eq i32 %197, 0
  br i1 %198, label %207, label %199

199:                                              ; preds = %195
  %200 = load ptr, ptr @stderr, align 8, !tbaa !5
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef @.str.29, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 582, ptr noundef @.str.30) #7
  %202 = load ptr, ptr @stderr, align 8, !tbaa !5
  %203 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef @.str.31, ptr noundef %203) #7
  %205 = load ptr, ptr @stderr, align 8, !tbaa !5
  %206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef @.str.4) #7
  call void @print_trace()
  call void @exit(i32 noundef 1) #8
  unreachable

207:                                              ; preds = %195
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  %210 = load ptr, ptr %15, align 8, !tbaa !5
  %211 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %212 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %210, ptr noundef @.str.22, ptr noundef %211)
  store i32 %212, ptr %18, align 4, !tbaa !15
  br label %213

213:                                              ; preds = %209
  %214 = load i32, ptr %18, align 4, !tbaa !15
  %215 = icmp eq i32 %214, 1
  br i1 %215, label %219, label %216

216:                                              ; preds = %213
  %217 = load ptr, ptr @stderr, align 8, !tbaa !5
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %217, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 585, ptr noundef @.str.23) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

219:                                              ; preds = %213
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  %223 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %224 = call i32 @strcasecmp(ptr noundef %223, ptr noundef @.str.32) #9
  %225 = icmp eq i32 %224, 0
  br i1 %225, label %234, label %226

226:                                              ; preds = %222
  %227 = load ptr, ptr @stderr, align 8, !tbaa !5
  %228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef @.str.29, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 586, ptr noundef @.str.33) #7
  %229 = load ptr, ptr @stderr, align 8, !tbaa !5
  %230 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef @.str.31, ptr noundef %230) #7
  %232 = load ptr, ptr @stderr, align 8, !tbaa !5
  %233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %232, ptr noundef @.str.4) #7
  call void @print_trace()
  call void @exit(i32 noundef 1) #8
  unreachable

234:                                              ; preds = %222
  br label %235

235:                                              ; preds = %234
  br label %236

236:                                              ; preds = %235
  %237 = load ptr, ptr %15, align 8, !tbaa !5
  %238 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %239 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %237, ptr noundef @.str.22, ptr noundef %238)
  store i32 %239, ptr %18, align 4, !tbaa !15
  br label %240

240:                                              ; preds = %236
  %241 = load i32, ptr %18, align 4, !tbaa !15
  %242 = icmp eq i32 %241, 1
  br i1 %242, label %246, label %243

243:                                              ; preds = %240
  %244 = load ptr, ptr @stderr, align 8, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 589, ptr noundef @.str.23) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

246:                                              ; preds = %240
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %249 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %250 = call double @String_toDouble_l(ptr noundef %249)
  store double %250, ptr %20, align 8, !tbaa !9
  br label %251

251:                                              ; preds = %248
  %252 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %253 = icmp ne ptr %252, null
  br i1 %253, label %254, label %257

254:                                              ; preds = %251
  %255 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %256 = load double, ptr %20, align 8, !tbaa !9
  call void (i32, ptr, ptr, i32, ptr, ...) %255(i32 noundef 5, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 591, ptr noundef @.str.34, double noundef %256)
  br label %257

257:                                              ; preds = %254, %251
  %258 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %259 = icmp sle i32 5, %258
  br i1 %259, label %260, label %268

260:                                              ; preds = %257
  %261 = load ptr, ptr @stderr, align 8, !tbaa !5
  %262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 591) #7
  %263 = load ptr, ptr @stderr, align 8, !tbaa !5
  %264 = load double, ptr %20, align 8, !tbaa !9
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef @.str.34, double noundef %264) #7
  %266 = load ptr, ptr @stderr, align 8, !tbaa !5
  %267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %266, ptr noundef @.str.4) #7
  br label %268

268:                                              ; preds = %260, %257
  br label %269

269:                                              ; preds = %268
  br label %270

270:                                              ; preds = %269
  %271 = load ptr, ptr %9, align 8, !tbaa !5
  %272 = icmp ne ptr %271, null
  br i1 %272, label %273, label %276

273:                                              ; preds = %270
  %274 = load double, ptr %20, align 8, !tbaa !9
  %275 = load ptr, ptr %9, align 8, !tbaa !5
  store double %274, ptr %275, align 8, !tbaa !9
  br label %276

276:                                              ; preds = %273, %270
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %277 = load ptr, ptr %15, align 8, !tbaa !5
  %278 = call i32 @fgetpos(ptr noundef %277, ptr noundef %21)
  store i32 %278, ptr %22, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  store i32 0, ptr %23, align 4, !tbaa !15
  br label %279

279:                                              ; preds = %276
  %280 = load i32, ptr %22, align 4, !tbaa !15
  %281 = icmp eq i32 %280, 0
  br i1 %281, label %285, label %282

282:                                              ; preds = %279
  %283 = load ptr, ptr @stderr, align 8, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %283, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 601, ptr noundef @.str.35) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

285:                                              ; preds = %279
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  store i32 0, ptr %24, align 4, !tbaa !15
  br label %288

288:                                              ; preds = %294, %287
  %289 = load ptr, ptr %15, align 8, !tbaa !5
  %290 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %291 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %289, ptr noundef @.str.22, ptr noundef %290)
  store i32 %291, ptr %24, align 4, !tbaa !15
  %292 = load i32, ptr %23, align 4, !tbaa !15
  %293 = add i32 %292, 1
  store i32 %293, ptr %23, align 4, !tbaa !15
  br label %294

294:                                              ; preds = %288
  %295 = load i32, ptr %24, align 4, !tbaa !15
  %296 = icmp ne i32 %295, -1
  br i1 %296, label %288, label %297, !llvm.loop !17

297:                                              ; preds = %294
  br label %298

298:                                              ; preds = %297
  %299 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %300 = icmp ne ptr %299, null
  br i1 %300, label %301, label %304

301:                                              ; preds = %298
  %302 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %303 = load i32, ptr %23, align 4, !tbaa !15
  call void (i32, ptr, ptr, i32, ptr, ...) %302(i32 noundef 5, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 611, ptr noundef @.str.36, i32 noundef %303)
  br label %304

304:                                              ; preds = %301, %298
  %305 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %306 = icmp sle i32 5, %305
  br i1 %306, label %307, label %315

307:                                              ; preds = %304
  %308 = load ptr, ptr @stderr, align 8, !tbaa !5
  %309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %308, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 611) #7
  %310 = load ptr, ptr @stderr, align 8, !tbaa !5
  %311 = load i32, ptr %23, align 4, !tbaa !15
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef @.str.36, i32 noundef %311) #7
  %313 = load ptr, ptr @stderr, align 8, !tbaa !5
  %314 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %313, ptr noundef @.str.4) #7
  br label %315

315:                                              ; preds = %307, %304
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  %318 = load i32, ptr %23, align 4, !tbaa !15
  %319 = add i32 %318, -1
  store i32 %319, ptr %23, align 4, !tbaa !15
  %320 = load i32, ptr %23, align 4, !tbaa !15
  %321 = load i32, ptr %19, align 4, !tbaa !15
  %322 = urem i32 %320, %321
  %323 = icmp ne i32 %322, 0
  br i1 %323, label %324, label %351

324:                                              ; preds = %317
  br label %325

325:                                              ; preds = %324
  %326 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %327 = icmp ne ptr %326, null
  br i1 %327, label %328, label %333

328:                                              ; preds = %325
  %329 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %330 = load i32, ptr %23, align 4, !tbaa !15
  %331 = load i32, ptr %19, align 4, !tbaa !15
  %332 = urem i32 %330, %331
  call void (i32, ptr, ptr, i32, ptr, ...) %329(i32 noundef 4, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 617, ptr noundef @.str.37, i32 noundef %332)
  br label %333

333:                                              ; preds = %328, %325
  %334 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %335 = icmp sle i32 4, %334
  br i1 %335, label %336, label %346

336:                                              ; preds = %333
  %337 = load ptr, ptr @stderr, align 8, !tbaa !5
  %338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %337, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 617) #7
  %339 = load ptr, ptr @stderr, align 8, !tbaa !5
  %340 = load i32, ptr %23, align 4, !tbaa !15
  %341 = load i32, ptr %19, align 4, !tbaa !15
  %342 = urem i32 %340, %341
  %343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef @.str.37, i32 noundef %342) #7
  %344 = load ptr, ptr @stderr, align 8, !tbaa !5
  %345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %344, ptr noundef @.str.4) #7
  br label %346

346:                                              ; preds = %336, %333
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  %349 = load ptr, ptr %15, align 8, !tbaa !5
  %350 = call i32 @fclose(ptr noundef %349)
  store ptr null, ptr %6, align 8
  store i32 1, ptr %14, align 4
  br label %529

351:                                              ; preds = %317
  %352 = load ptr, ptr %15, align 8, !tbaa !5
  %353 = call i32 @fsetpos(ptr noundef %352, ptr noundef %21)
  store i32 %353, ptr %22, align 4, !tbaa !15
  br label %354

354:                                              ; preds = %351
  %355 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %356 = icmp ne ptr %355, null
  br i1 %356, label %357, label %363

357:                                              ; preds = %354
  %358 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !5
  %359 = load i32, ptr %19, align 4, !tbaa !15
  %360 = load i32, ptr %23, align 4, !tbaa !15
  %361 = load i32, ptr %19, align 4, !tbaa !15
  %362 = sdiv i32 %360, %361
  call void (i32, ptr, ptr, i32, ptr, ...) %358(i32 noundef 5, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 624, ptr noundef @.str.38, i32 noundef %359, i32 noundef %362)
  br label %363

363:                                              ; preds = %357, %354
  %364 = load i32, ptr @RcsLogLevel, align 4, !tbaa !15
  %365 = icmp sle i32 5, %364
  br i1 %365, label %366, label %377

366:                                              ; preds = %363
  %367 = load ptr, ptr @stderr, align 8, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef @.str.3, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 624) #7
  %369 = load ptr, ptr @stderr, align 8, !tbaa !5
  %370 = load i32, ptr %19, align 4, !tbaa !15
  %371 = load i32, ptr %23, align 4, !tbaa !15
  %372 = load i32, ptr %19, align 4, !tbaa !15
  %373 = sdiv i32 %371, %372
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %369, ptr noundef @.str.38, i32 noundef %370, i32 noundef %373) #7
  %375 = load ptr, ptr @stderr, align 8, !tbaa !5
  %376 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %375, ptr noundef @.str.4) #7
  br label %377

377:                                              ; preds = %366, %363
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #7
  %380 = load i32, ptr %19, align 4, !tbaa !15
  %381 = load i32, ptr %23, align 4, !tbaa !15
  %382 = load i32, ptr %19, align 4, !tbaa !15
  %383 = sdiv i32 %381, %382
  %384 = call ptr @MatNd_create(i32 noundef %380, i32 noundef %383)
  store ptr %384, ptr %25, align 8, !tbaa !5
  %385 = load ptr, ptr %7, align 8, !tbaa !5
  %386 = icmp ne ptr %385, null
  br i1 %386, label %387, label %402

387:                                              ; preds = %379
  br label %388

388:                                              ; preds = %387
  %389 = load ptr, ptr %7, align 8, !tbaa !5
  %390 = getelementptr inbounds %struct._RcsGraph, ptr %389, i32 0, i32 2
  %391 = load i32, ptr %390, align 8, !tbaa !19
  %392 = load i32, ptr %19, align 4, !tbaa !15
  %393 = mul i32 %391, %392
  %394 = load i32, ptr %23, align 4, !tbaa !15
  %395 = icmp eq i32 %393, %394
  br i1 %395, label %399, label %396

396:                                              ; preds = %388
  %397 = load ptr, ptr @stderr, align 8, !tbaa !5
  %398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef @.str.12, ptr noundef @.str.1, ptr noundef @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 629, ptr noundef @.str.39) #7
  call void @print_trace()
  call void @abort() #8
  unreachable

399:                                              ; preds = %388
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401, %379
  store i32 0, ptr %23, align 4, !tbaa !15
  store i32 0, ptr %24, align 4, !tbaa !15
  br label %403

403:                                              ; preds = %421, %402
  %404 = load ptr, ptr %15, align 8, !tbaa !5
  %405 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %406 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef %404, ptr noundef @.str.22, ptr noundef %405)
  store i32 %406, ptr %24, align 4, !tbaa !15
  %407 = load i32, ptr %24, align 4, !tbaa !15
  %408 = icmp ne i32 %407, -1
  br i1 %408, label %409, label %420

409:                                              ; preds = %403
  %410 = getelementptr inbounds [64 x i8], ptr %17, i64 0, i64 0
  %411 = call double @String_toDouble_l(ptr noundef %410)
  %412 = load ptr, ptr %25, align 8, !tbaa !5
  %413 = getelementptr inbounds %struct._MatNd, ptr %412, i32 0, i32 0
  %414 = load ptr, ptr %413, align 8, !tbaa !21
  %415 = load i32, ptr %23, align 4, !tbaa !15
  %416 = zext i32 %415 to i64
  %417 = getelementptr inbounds double, ptr %414, i64 %416
  store double %411, ptr %417, align 8, !tbaa !9
  %418 = load i32, ptr %23, align 4, !tbaa !15
  %419 = add i32 %418, 1
  store i32 %419, ptr %23, align 4, !tbaa !15
  br label %420

420:                                              ; preds = %409, %403
  br label %421

421:                                              ; preds = %420
  %422 = load i32, ptr %24, align 4, !tbaa !15
  %423 = icmp ne i32 %422, -1
  br i1 %423, label %403, label %424, !llvm.loop !23

424:                                              ; preds = %421
  %425 = load ptr, ptr %15, align 8, !tbaa !5
  %426 = call i32 @fclose(ptr noundef %425)
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  %427 = load ptr, ptr %7, align 8, !tbaa !5
  %428 = icmp ne ptr %427, null
  br i1 %428, label %429, label %433

429:                                              ; preds = %424
  %430 = load ptr, ptr %7, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct._RcsGraph, ptr %430, i32 0, i32 2
  %432 = load i32, ptr %431, align 8, !tbaa !19
  br label %437

433:                                              ; preds = %424
  %434 = load ptr, ptr %25, align 8, !tbaa !5
  %435 = getelementptr inbounds %struct._MatNd, ptr %434, i32 0, i32 2
  %436 = load i32, ptr %435, align 4, !tbaa !24
  br label %437

437:                                              ; preds = %433, %429
  %438 = phi i32 [ %432, %429 ], [ %436, %433 ]
  %439 = call ptr @MatNd_create(i32 noundef 1, i32 noundef %438)
  store ptr %439, ptr %26, align 8, !tbaa !5
  %440 = load ptr, ptr %7, align 8, !tbaa !5
  %441 = icmp ne ptr %440, null
  br i1 %441, label %442, label %484

442:                                              ; preds = %437
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %443 = load ptr, ptr %7, align 8, !tbaa !5
  %444 = getelementptr inbounds %struct._RcsGraph, ptr %443, i32 0, i32 0
  %445 = load ptr, ptr %444, align 8, !tbaa !25
  store ptr %445, ptr %27, align 8, !tbaa !5
  br label %446

446:                                              ; preds = %480, %442
  %447 = load ptr, ptr %27, align 8, !tbaa !5
  %448 = icmp ne ptr %447, null
  br i1 %448, label %450, label %449

449:                                              ; preds = %446
  store i32 44, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  br label %483

450:                                              ; preds = %446
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #7
  %451 = load ptr, ptr %27, align 8, !tbaa !5
  %452 = getelementptr inbounds %struct._RcsBody, ptr %451, i32 0, i32 18
  %453 = load ptr, ptr %452, align 8, !tbaa !26
  store ptr %453, ptr %28, align 8, !tbaa !5
  br label %454

454:                                              ; preds = %475, %450
  %455 = load ptr, ptr %28, align 8, !tbaa !5
  %456 = icmp ne ptr %455, null
  br i1 %456, label %458, label %457

457:                                              ; preds = %454
  store i32 47, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #7
  br label %479

458:                                              ; preds = %454
  %459 = load ptr, ptr %28, align 8, !tbaa !5
  %460 = call zeroext i1 @RcsJoint_isRotation(ptr noundef %459)
  br i1 %460, label %461, label %463

461:                                              ; preds = %458
  %462 = load double, ptr %11, align 8, !tbaa !9
  br label %465

463:                                              ; preds = %458
  %464 = load double, ptr %10, align 8, !tbaa !9
  br label %465

465:                                              ; preds = %463, %461
  %466 = phi double [ %462, %461 ], [ %464, %463 ]
  %467 = load ptr, ptr %26, align 8, !tbaa !5
  %468 = getelementptr inbounds %struct._MatNd, ptr %467, i32 0, i32 0
  %469 = load ptr, ptr %468, align 8, !tbaa !21
  %470 = load ptr, ptr %28, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct._RcsJoint, ptr %470, i32 0, i32 11
  %472 = load i32, ptr %471, align 4, !tbaa !28
  %473 = sext i32 %472 to i64
  %474 = getelementptr inbounds double, ptr %469, i64 %473
  store double %466, ptr %474, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %465
  %476 = load ptr, ptr %28, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct._RcsJoint, ptr %476, i32 0, i32 23
  %478 = load ptr, ptr %477, align 8, !tbaa !31
  store ptr %478, ptr %28, align 8, !tbaa !5
  br label %454, !llvm.loop !32

479:                                              ; preds = %457
  br label %480

480:                                              ; preds = %479
  %481 = load ptr, ptr %27, align 8, !tbaa !5
  %482 = call ptr @RcsBody_depthFirstTraversalGetNext(ptr noundef %481)
  store ptr %482, ptr %27, align 8, !tbaa !5
  br label %446, !llvm.loop !33

483:                                              ; preds = %449
  br label %511

484:                                              ; preds = %437
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #7
  store i32 0, ptr %29, align 4, !tbaa !15
  br label %485

485:                                              ; preds = %507, %484
  %486 = load i32, ptr %29, align 4, !tbaa !15
  %487 = load ptr, ptr %25, align 8, !tbaa !5
  %488 = getelementptr inbounds %struct._MatNd, ptr %487, i32 0, i32 2
  %489 = load i32, ptr %488, align 4, !tbaa !24
  %490 = icmp ult i32 %486, %489
  br i1 %490, label %492, label %491

491:                                              ; preds = %485
  store i32 50, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #7
  br label %510

492:                                              ; preds = %485
  %493 = load i32, ptr %29, align 4, !tbaa !15
  %494 = icmp ult i32 %493, 3
  br i1 %494, label %495, label %497

495:                                              ; preds = %492
  %496 = load double, ptr %10, align 8, !tbaa !9
  br label %499

497:                                              ; preds = %492
  %498 = load double, ptr %11, align 8, !tbaa !9
  br label %499

499:                                              ; preds = %497, %495
  %500 = phi double [ %496, %495 ], [ %498, %497 ]
  %501 = load ptr, ptr %26, align 8, !tbaa !5
  %502 = getelementptr inbounds %struct._MatNd, ptr %501, i32 0, i32 0
  %503 = load ptr, ptr %502, align 8, !tbaa !21
  %504 = load i32, ptr %29, align 4, !tbaa !15
  %505 = zext i32 %504 to i64
  %506 = getelementptr inbounds double, ptr %503, i64 %505
  store double %500, ptr %506, align 8, !tbaa !9
  br label %507

507:                                              ; preds = %499
  %508 = load i32, ptr %29, align 4, !tbaa !15
  %509 = add i32 %508, 1
  store i32 %509, ptr %29, align 4, !tbaa !15
  br label %485, !llvm.loop !34

510:                                              ; preds = %491
  br label %511

511:                                              ; preds = %510, %483
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #7
  store i32 0, ptr %30, align 4, !tbaa !15
  br label %512

512:                                              ; preds = %523, %511
  %513 = load i32, ptr %30, align 4, !tbaa !15
  %514 = load ptr, ptr %25, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct._MatNd, ptr %514, i32 0, i32 1
  %516 = load i32, ptr %515, align 8, !tbaa !35
  %517 = icmp ult i32 %513, %516
  br i1 %517, label %519, label %518

518:                                              ; preds = %512
  store i32 53, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %526

519:                                              ; preds = %512
  call void @llvm.lifetime.start.p0(i64 24, ptr %31) #7
  %520 = load ptr, ptr %25, align 8, !tbaa !5
  %521 = load i32, ptr %30, align 4, !tbaa !15
  call void @MatNd_getRowView(ptr dead_on_unwind writable sret(%struct._MatNd) align 8 %31, ptr noundef %520, i32 noundef %521)
  %522 = load ptr, ptr %26, align 8, !tbaa !5
  call void @MatNd_eleMulSelf(ptr noundef %31, ptr noundef %522)
  call void @llvm.lifetime.end.p0(i64 24, ptr %31) #7
  br label %523

523:                                              ; preds = %519
  %524 = load i32, ptr %30, align 4, !tbaa !15
  %525 = add i32 %524, 1
  store i32 %525, ptr %30, align 4, !tbaa !15
  br label %512, !llvm.loop !36

526:                                              ; preds = %518
  %527 = load ptr, ptr %26, align 8, !tbaa !5
  call void @MatNd_destroy(ptr noundef %527)
  %528 = load ptr, ptr %25, align 8, !tbaa !5
  store ptr %528, ptr %6, align 8
  store i32 1, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #7
  br label %529

529:                                              ; preds = %526, %348
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr %17) #7
  br label %530

530:                                              ; preds = %529, %126
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #7
  br label %531

531:                                              ; preds = %530, %99
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #7
  br label %532

532:                                              ; preds = %531, %73
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 256, ptr %12) #7
  %533 = load ptr, ptr %6, align 8
  ret ptr %533
}

declare zeroext i1 @Rcs_getAbsoluteFileName(ptr noundef, ptr noundef) #1

declare i32 @fflush(ptr noundef) #1

declare void @Rcs_printResourcePath() #1

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @findKeyword(ptr noundef, ptr noundef) #6

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) #5

declare double @String_toDouble_l(ptr noundef) #1

declare i32 @fgetpos(ptr noundef, ptr noundef) #1

declare i32 @fsetpos(ptr noundef, ptr noundef) #1

declare zeroext i1 @RcsJoint_isRotation(ptr noundef) #1

declare void @MatNd_getRowView(ptr dead_on_unwind writable sret(%struct._MatNd) align 8, ptr noundef, i32 noundef) #1

declare void @MatNd_eleMulSelf(ptr noundef, ptr noundef) #1

declare void @MatNd_destroy(ptr noundef) #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = !{!20, !16, i64 1848}
!20 = !{!"_RcsGraph", !6, i64 0, !7, i64 8, !16, i64 1848, !16, i64 1852, !6, i64 1856, !6, i64 1864, !6, i64 1872, !6, i64 1880, !6, i64 1888}
!21 = !{!22, !6, i64 0}
!22 = !{!"_MatNd", !6, i64 0, !16, i64 8, !16, i64 12, !16, i64 16, !12, i64 20}
!23 = distinct !{!23, !18}
!24 = !{!22, !16, i64 12}
!25 = !{!20, !6, i64 0}
!26 = !{!27, !6, i64 168}
!27 = !{!"_RcsBody", !10, i64 0, !12, i64 8, !16, i64 12, !7, i64 16, !7, i64 40, !10, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176}
!28 = !{!29, !16, i64 76}
!29 = !{!"_RcsJoint", !6, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !12, i64 64, !16, i64 68, !16, i64 72, !16, i64 76, !16, i64 80, !6, i64 88, !30, i64 96, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !16, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !6, i64 256, !6, i64 264}
!30 = !{!"", !7, i64 0, !7, i64 24}
!31 = !{!29, !6, i64 256}
!32 = distinct !{!32, !18}
!33 = distinct !{!33, !18}
!34 = distinct !{!34, !18}
!35 = !{!22, !16, i64 8}
!36 = distinct !{!36, !18}


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

%struct._G_fpos_t = type { i64, %struct.__mbstate_t }
%struct.__mbstate_t = type { i32, %union.anon }
%union.anon = type { i32 }
%struct._MatNd = type { ptr, i32, i32, i32, i8 }

@.str = external hidden unnamed_addr constant [2 x i8], align 1
@RCS_GLOBAL_RLOG_CB = external local_unnamed_addr global ptr, align 8
@.str.1 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [28 x i8], align 1
@RcsLogLevel = external local_unnamed_addr global i32, align 4
@stderr = external local_unnamed_addr global ptr, align 8
@.str.3 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [15 x i8], align 1
@__func__.RcsGraph_createTrajectoryFromBVHFile = external hidden unnamed_addr constant [37 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [32 x i8], align 1

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

; Function Attrs: 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 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

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

declare i32 @__isoc99_fscanf(ptr noundef, ptr noundef, ...) local_unnamed_addr #3

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

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

declare void @print_trace() local_unnamed_addr #3

; Function Attrs: noreturn nounwind
declare void @abort() local_unnamed_addr #5

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

declare ptr @RcsBody_depthFirstTraversalGetNext(ptr noundef) local_unnamed_addr #3

declare ptr @MatNd_create(i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local ptr @RcsGraph_createTrajectoryFromBVHFile(ptr noundef readonly %0, ptr noundef %1, ptr noundef writeonly %2, double noundef %3, double noundef %4) local_unnamed_addr #6 {
  %6 = alloca [256 x i8], align 16
  %7 = alloca [64 x i8], align 16
  %8 = alloca i32, align 4
  %9 = alloca %struct._G_fpos_t, align 8
  %10 = alloca %struct._MatNd, align 8
  call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %6) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %6, i8 0, i64 256, i1 false)
  %11 = call zeroext i1 @Rcs_getAbsoluteFileName(ptr noundef %1, ptr noundef nonnull %6) #7
  br i1 %11, label %33, label %12

12:                                               ; preds = %5
  %13 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %14 = icmp sgt i32 %13, 0
  br i1 %14, label %15, label %265

15:                                               ; preds = %12
  %16 = load ptr, ptr @stderr, align 8, !tbaa !9
  %17 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %16, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 544) #8
  %18 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %18, ptr noundef nonnull @.str.17) #8
  %20 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %20, ptr noundef nonnull @.str.4) #8
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = call i32 @fflush(ptr noundef %22)
  call void @Rcs_printResourcePath() #7
  %24 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 547) #8
  %26 = load ptr, ptr @stderr, align 8, !tbaa !9
  %.not113 = icmp eq ptr %1, null
  %27 = select i1 %.not113, ptr @.str.19, ptr %1
  %28 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %26, ptr noundef nonnull @.str.18, ptr noundef nonnull %27) #8
  %29 = load ptr, ptr @stderr, align 8, !tbaa !9
  %30 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull @.str.4) #8
  %31 = load ptr, ptr @stderr, align 8, !tbaa !9
  %32 = call i32 @fflush(ptr noundef %31)
  br label %265

33:                                               ; preds = %5
  %34 = call noalias ptr @fopen(ptr noundef nonnull %6, ptr noundef nonnull @.str)
  %35 = icmp eq ptr %34, null
  br i1 %35, label %36, label %49

36:                                               ; preds = %33
  %37 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not112 = icmp eq ptr %37, null
  br i1 %.not112, label %39, label %38

38:                                               ; preds = %36
  call void (i32, ptr, ptr, i32, ptr, ...) %37(i32 noundef 1, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 556, ptr noundef nonnull @.str.2, ptr noundef nonnull %6) #7
  br label %39

39:                                               ; preds = %38, %36
  %40 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %41 = icmp sgt i32 %40, 0
  br i1 %41, label %42, label %265

42:                                               ; preds = %39
  %43 = load ptr, ptr @stderr, align 8, !tbaa !9
  %44 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %43, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 556) #8
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull @.str.2, ptr noundef nonnull %6) #8
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %47, ptr noundef nonnull @.str.4) #8
  br label %265

49:                                               ; preds = %33
  %50 = call zeroext i1 @findKeyword(ptr noundef nonnull @.str.20, ptr noundef nonnull %34)
  br i1 %50, label %66, label %51

51:                                               ; preds = %49
  %52 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not111 = icmp eq ptr %52, null
  br i1 %.not111, label %54, label %53

53:                                               ; preds = %51
  call void (i32, ptr, ptr, i32, ptr, ...) %52(i32 noundef 1, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 565, ptr noundef nonnull @.str.21) #7
  br label %54

54:                                               ; preds = %53, %51
  %55 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %56 = icmp sgt i32 %55, 0
  br i1 %56, label %57, label %64

57:                                               ; preds = %54
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 565) #8
  %60 = load ptr, ptr @stderr, align 8, !tbaa !9
  %61 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %60, ptr noundef nonnull @.str.21) #8
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull @.str.4) #8
  br label %64

64:                                               ; preds = %57, %54
  %65 = call i32 @fclose(ptr noundef nonnull %34)
  br label %265

66:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %7) #7
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(64) %7, i8 0, i64 64, i1 false)
  %67 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %68 = icmp eq i32 %67, 1
  br i1 %68, label %72, label %69

69:                                               ; preds = %66
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 572, ptr noundef nonnull @.str.23) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

72:                                               ; preds = %66
  %73 = call i32 @strcasecmp(ptr noundef nonnull %7, ptr noundef nonnull @.str.24) #10
  %74 = icmp eq i32 %73, 0
  br i1 %74, label %78, label %75

75:                                               ; preds = %72
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %76, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 573, ptr noundef nonnull @.str.25) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

78:                                               ; preds = %72
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #7
  store i32 0, ptr %8, align 4, !tbaa !5
  %79 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.26, ptr noundef nonnull %8) #7
  %80 = icmp eq i32 %79, 1
  br i1 %80, label %84, label %81

81:                                               ; preds = %78
  %82 = load ptr, ptr @stderr, align 8, !tbaa !9
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %82, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 577, ptr noundef nonnull @.str.23) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

84:                                               ; preds = %78
  %85 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not = icmp eq ptr %85, null
  br i1 %.not, label %88, label %86

86:                                               ; preds = %84
  %87 = load i32, ptr %8, align 4, !tbaa !5
  call void (i32, ptr, ptr, i32, ptr, ...) %85(i32 noundef 5, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 578, ptr noundef nonnull @.str.27, i32 noundef %87) #7
  br label %88

88:                                               ; preds = %86, %84
  %89 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %90 = icmp sgt i32 %89, 4
  br i1 %90, label %91, label %99

91:                                               ; preds = %88
  %92 = load ptr, ptr @stderr, align 8, !tbaa !9
  %93 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %92, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 578) #8
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = load i32, ptr %8, align 4, !tbaa !5
  %96 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %94, ptr noundef nonnull @.str.27, i32 noundef %95) #8
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef nonnull @.str.4) #8
  br label %99

99:                                               ; preds = %91, %88
  %100 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %101 = icmp eq i32 %100, 1
  br i1 %101, label %105, label %102

102:                                              ; preds = %99
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 581, ptr noundef nonnull @.str.23) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

105:                                              ; preds = %99
  %106 = call i32 @strcasecmp(ptr noundef nonnull %7, ptr noundef nonnull @.str.28) #10
  %107 = icmp eq i32 %106, 0
  br i1 %107, label %115, label %108

108:                                              ; preds = %105
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %109, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 582, ptr noundef nonnull @.str.30) #8
  %111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %111, ptr noundef nonnull @.str.31, ptr noundef nonnull %7) #8
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %113, ptr noundef nonnull @.str.4) #8
  call void @print_trace() #7
  call void @exit(i32 noundef 1) #9
  unreachable

115:                                              ; preds = %105
  %116 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %117 = icmp eq i32 %116, 1
  br i1 %117, label %121, label %118

118:                                              ; preds = %115
  %119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %119, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 585, ptr noundef nonnull @.str.23) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

121:                                              ; preds = %115
  %122 = call i32 @strcasecmp(ptr noundef nonnull %7, ptr noundef nonnull @.str.32) #10
  %123 = icmp eq i32 %122, 0
  br i1 %123, label %131, label %124

124:                                              ; preds = %121
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 586, ptr noundef nonnull @.str.33) #8
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef nonnull @.str.31, ptr noundef nonnull %7) #8
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull @.str.4) #8
  call void @print_trace() #7
  call void @exit(i32 noundef 1) #9
  unreachable

131:                                              ; preds = %121
  %132 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %133 = icmp eq i32 %132, 1
  br i1 %133, label %137, label %134

134:                                              ; preds = %131
  %135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %135, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 589, ptr noundef nonnull @.str.23) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

137:                                              ; preds = %131
  %138 = call double @String_toDouble_l(ptr noundef nonnull %7) #7
  %139 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not100 = icmp eq ptr %139, null
  br i1 %.not100, label %141, label %140

140:                                              ; preds = %137
  call void (i32, ptr, ptr, i32, ptr, ...) %139(i32 noundef 5, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 591, ptr noundef nonnull @.str.34, double noundef %138) #7
  br label %141

141:                                              ; preds = %140, %137
  %142 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %143 = icmp sgt i32 %142, 4
  br i1 %143, label %144, label %151

144:                                              ; preds = %141
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %145, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 591) #8
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull @.str.34, double noundef %138) #8
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef nonnull @.str.4) #8
  br label %151

151:                                              ; preds = %144, %141
  %.not101 = icmp eq ptr %2, null
  br i1 %.not101, label %153, label %152

152:                                              ; preds = %151
  store double %138, ptr %2, align 8, !tbaa !11
  br label %153

153:                                              ; preds = %152, %151
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) #7
  %154 = call i32 @fgetpos(ptr noundef nonnull %34, ptr noundef nonnull %9)
  %155 = icmp eq i32 %154, 0
  br i1 %155, label %.preheader116, label %156

156:                                              ; preds = %153
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %157, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 601, ptr noundef nonnull @.str.35) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

.preheader116:                                    ; preds = %153, %.preheader116
  %.084 = phi i32 [ %160, %.preheader116 ], [ 0, %153 ]
  %159 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %160 = add i32 %.084, 1
  %.not102 = icmp eq i32 %159, -1
  br i1 %.not102, label %161, label %.preheader116, !llvm.loop !13

161:                                              ; preds = %.preheader116
  %162 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not103 = icmp eq ptr %162, null
  br i1 %.not103, label %164, label %163

163:                                              ; preds = %161
  call void (i32, ptr, ptr, i32, ptr, ...) %162(i32 noundef 5, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 611, ptr noundef nonnull @.str.36, i32 noundef %160) #7
  br label %164

164:                                              ; preds = %163, %161
  %165 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %166 = icmp sgt i32 %165, 4
  br i1 %166, label %167, label %174

167:                                              ; preds = %164
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 611) #8
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef nonnull @.str.36, i32 noundef %160) #8
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull @.str.4) #8
  br label %174

174:                                              ; preds = %167, %164
  %175 = load i32, ptr %8, align 4, !tbaa !5
  %176 = urem i32 %.084, %175
  %.not104 = icmp eq i32 %176, 0
  br i1 %.not104, label %194, label %177

177:                                              ; preds = %174
  %178 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not110 = icmp eq ptr %178, null
  br i1 %.not110, label %180, label %179

179:                                              ; preds = %177
  call void (i32, ptr, ptr, i32, ptr, ...) %178(i32 noundef 4, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 617, ptr noundef nonnull @.str.37, i32 noundef %176) #7
  br label %180

180:                                              ; preds = %179, %177
  %181 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %182 = icmp sgt i32 %181, 3
  br i1 %182, label %183, label %192

183:                                              ; preds = %180
  %184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %184, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 617) #8
  %186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %187 = load i32, ptr %8, align 4, !tbaa !5
  %188 = urem i32 %.084, %187
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef nonnull @.str.37, i32 noundef %188) #8
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef nonnull @.str.4) #8
  br label %192

192:                                              ; preds = %183, %180
  %193 = call i32 @fclose(ptr noundef nonnull %34)
  br label %264

194:                                              ; preds = %174
  %195 = call i32 @fsetpos(ptr noundef nonnull %34, ptr noundef nonnull %9)
  %196 = load ptr, ptr @RCS_GLOBAL_RLOG_CB, align 8, !tbaa !9
  %.not105 = icmp eq ptr %196, null
  br i1 %.not105, label %200, label %197

197:                                              ; preds = %194
  %198 = load i32, ptr %8, align 4, !tbaa !5
  %199 = sdiv i32 %.084, %198
  call void (i32, ptr, ptr, i32, ptr, ...) %196(i32 noundef 5, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 624, ptr noundef nonnull @.str.38, i32 noundef %198, i32 noundef %199) #7
  br label %200

200:                                              ; preds = %197, %194
  %201 = load i32, ptr @RcsLogLevel, align 4, !tbaa !5
  %202 = icmp sgt i32 %201, 4
  br i1 %202, label %203, label %212

203:                                              ; preds = %200
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %204, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 624) #8
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = load i32, ptr %8, align 4, !tbaa !5
  %208 = sdiv i32 %.084, %207
  %209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef nonnull @.str.38, i32 noundef %207, i32 noundef %208) #8
  %210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %210, ptr noundef nonnull @.str.4) #8
  br label %212

212:                                              ; preds = %203, %200
  %213 = load i32, ptr %8, align 4, !tbaa !5
  %214 = sdiv i32 %.084, %213
  %215 = call ptr @MatNd_create(i32 noundef %213, i32 noundef %214) #7
  %.not106 = icmp eq ptr %0, null
  br i1 %.not106, label %225, label %216

216:                                              ; preds = %212
  %217 = getelementptr inbounds i8, ptr %0, i64 1848
  %218 = load i32, ptr %217, align 8, !tbaa !15
  %219 = load i32, ptr %8, align 4, !tbaa !5
  %220 = mul i32 %219, %218
  %221 = icmp eq i32 %220, %.084
  br i1 %221, label %225, label %222

222:                                              ; preds = %216
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, ptr noundef nonnull @__func__.RcsGraph_createTrajectoryFromBVHFile, i32 noundef 629, ptr noundef nonnull @.str.39) #8
  call void @print_trace() #7
  call void @abort() #9
  unreachable

225:                                              ; preds = %216, %212
  %226 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %.not107117 = icmp eq i32 %226, -1
  br i1 %.not107117, label %._crit_edge, label %.lr.ph

.lr.ph:                                           ; preds = %225, %.lr.ph
  %.185118 = phi i32 [ %231, %.lr.ph ], [ 0, %225 ]
  %227 = call double @String_toDouble_l(ptr noundef nonnull %7) #7
  %228 = load ptr, ptr %215, align 8, !tbaa !17
  %229 = zext i32 %.185118 to i64
  %230 = getelementptr inbounds double, ptr %228, i64 %229
  store double %227, ptr %230, align 8, !tbaa !11
  %231 = add i32 %.185118, 1
  %232 = call i32 (ptr, ptr, ...) @__isoc99_fscanf(ptr noundef nonnull %34, ptr noundef nonnull @.str.22, ptr noundef nonnull %7) #7
  %.not107 = icmp eq i32 %232, -1
  br i1 %.not107, label %._crit_edge, label %.lr.ph, !llvm.loop !20

._crit_edge:                                      ; preds = %.lr.ph, %225
  %233 = call i32 @fclose(ptr noundef nonnull %34)
  %234 = getelementptr inbounds i8, ptr %0, i64 1848
  %235 = getelementptr inbounds i8, ptr %215, i64 12
  %.in = select i1 %.not106, ptr %235, ptr %234
  %236 = load i32, ptr %.in, align 4, !tbaa !5
  %237 = call ptr @MatNd_create(i32 noundef 1, i32 noundef %236) #7
  br i1 %.not106, label %.preheader, label %246

.preheader:                                       ; preds = %._crit_edge
  %238 = load i32, ptr %235, align 4, !tbaa !21
  %.not135 = icmp eq i32 %238, 0
  br i1 %.not135, label %.loopexit, label %.lr.ph130

.lr.ph130:                                        ; preds = %.preheader
  %239 = load ptr, ptr %237, align 8, !tbaa !17
  %wide.trip.count = zext i32 %238 to i64
  store double %3, ptr %239, align 8, !tbaa !11
  %exitcond.peel.not = icmp eq i32 %238, 1
  br i1 %exitcond.peel.not, label %.loopexit, label %.peel.next

.peel.next:                                       ; preds = %.lr.ph130
  %240 = getelementptr inbounds i8, ptr %239, i64 8
  store double %3, ptr %240, align 8, !tbaa !11
  %exitcond.peel141.not = icmp eq i32 %238, 2
  br i1 %exitcond.peel141.not, label %.loopexit, label %.peel.next139

.peel.next139:                                    ; preds = %.peel.next
  %241 = getelementptr inbounds i8, ptr %239, i64 16
  store double %3, ptr %241, align 8, !tbaa !11
  %exitcond.peel144.not = icmp eq i32 %238, 3
  br i1 %exitcond.peel144.not, label %.loopexit, label %.peel.next142.preheader

.peel.next142.preheader:                          ; preds = %.peel.next139
  %242 = add nsw i64 %wide.trip.count, -3
  %min.iters.check = icmp ult i64 %242, 4
  br i1 %min.iters.check, label %.peel.next142.preheader148, label %vector.ph

.peel.next142.preheader148:                       ; preds = %middle.block, %.peel.next142.preheader
  %indvars.iv.ph = phi i64 [ 3, %.peel.next142.preheader ], [ %ind.end, %middle.block ]
  br label %.peel.next142

vector.ph:                                        ; preds = %.peel.next142.preheader
  %n.vec = and i64 %242, -4
  %ind.end = or i64 %242, 3
  %broadcast.splatinsert = insertelement <2 x double> poison, double %4, i64 0
  %broadcast.splat = shufflevector <2 x double> %broadcast.splatinsert, <2 x double> poison, <2 x i32> zeroinitializer
  br label %vector.body

vector.body:                                      ; preds = %vector.body, %vector.ph
  %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
  %offset.idx = or disjoint i64 %index, 3
  %243 = getelementptr inbounds double, ptr %239, i64 %offset.idx
  %244 = getelementptr inbounds i8, ptr %243, i64 16
  store <2 x double> %broadcast.splat, ptr %243, align 8, !tbaa !11
  store <2 x double> %broadcast.splat, ptr %244, align 8, !tbaa !11
  %index.next = add nuw i64 %index, 4
  %245 = icmp eq i64 %index.next, %n.vec
  br i1 %245, label %middle.block, label %vector.body, !llvm.loop !22

middle.block:                                     ; preds = %vector.body
  %cmp.n = icmp eq i64 %242, %n.vec
  br i1 %cmp.n, label %.loopexit, label %.peel.next142.preheader148

246:                                              ; preds = %._crit_edge
  %247 = load ptr, ptr %0, align 8, !tbaa !26
  %.not108125 = icmp eq ptr %247, null
  br i1 %.not108125, label %.loopexit, label %.lr.ph128

.lr.ph128:                                        ; preds = %246, %._crit_edge124
  %.082126 = phi ptr [ %249, %._crit_edge124 ], [ %247, %246 ]
  %248 = getelementptr inbounds i8, ptr %.082126, i64 168
  %.081119 = load ptr, ptr %248, align 8, !tbaa !9
  %.not109120 = icmp eq ptr %.081119, null
  br i1 %.not109120, label %._crit_edge124, label %.lr.ph123

._crit_edge124:                                   ; preds = %.lr.ph123, %.lr.ph128
  %249 = call ptr @RcsBody_depthFirstTraversalGetNext(ptr noundef nonnull %.082126) #7
  %.not108 = icmp eq ptr %249, null
  br i1 %.not108, label %.loopexit, label %.lr.ph128, !llvm.loop !27

.lr.ph123:                                        ; preds = %.lr.ph128, %.lr.ph123
  %.081121 = phi ptr [ %.081, %.lr.ph123 ], [ %.081119, %.lr.ph128 ]
  %250 = call zeroext i1 @RcsJoint_isRotation(ptr noundef nonnull %.081121) #7
  %251 = select i1 %250, double %4, double %3
  %252 = load ptr, ptr %237, align 8, !tbaa !17
  %253 = getelementptr inbounds i8, ptr %.081121, i64 76
  %254 = load i32, ptr %253, align 4, !tbaa !28
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds double, ptr %252, i64 %255
  store double %251, ptr %256, align 8, !tbaa !11
  %257 = getelementptr inbounds i8, ptr %.081121, i64 256
  %.081 = load ptr, ptr %257, align 8, !tbaa !9
  %.not109 = icmp eq ptr %.081, null
  br i1 %.not109, label %._crit_edge124, label %.lr.ph123, !llvm.loop !31

.peel.next142:                                    ; preds = %.peel.next142.preheader148, %.peel.next142
  %indvars.iv = phi i64 [ %indvars.iv.next, %.peel.next142 ], [ %indvars.iv.ph, %.peel.next142.preheader148 ]
  %258 = getelementptr inbounds double, ptr %239, i64 %indvars.iv
  store double %4, ptr %258, align 8, !tbaa !11
  %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 %.loopexit, label %.peel.next142, !llvm.loop !32

.loopexit:                                        ; preds = %._crit_edge124, %.peel.next142, %middle.block, %.lr.ph130, %.peel.next, %.peel.next139, %246, %.preheader
  %259 = getelementptr inbounds i8, ptr %215, i64 8
  %260 = load i32, ptr %259, align 8, !tbaa !33
  %.not136 = icmp eq i32 %260, 0
  br i1 %.not136, label %._crit_edge134, label %.lr.ph133

._crit_edge134:                                   ; preds = %.lr.ph133, %.loopexit
  call void @MatNd_destroy(ptr noundef %237) #7
  br label %264

.lr.ph133:                                        ; preds = %.loopexit, %.lr.ph133
  %.0131 = phi i32 [ %261, %.lr.ph133 ], [ 0, %.loopexit ]
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #7
  call void @MatNd_getRowView(ptr dead_on_unwind nonnull writable sret(%struct._MatNd) align 8 %10, ptr noundef nonnull %215, i32 noundef %.0131) #7
  call void @MatNd_eleMulSelf(ptr noundef nonnull %10, ptr noundef %237) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #7
  %261 = add nuw i32 %.0131, 1
  %262 = load i32, ptr %259, align 8, !tbaa !33
  %263 = icmp ult i32 %261, %262
  br i1 %263, label %.lr.ph133, label %._crit_edge134, !llvm.loop !34

264:                                              ; preds = %._crit_edge134, %192
  %.083 = phi ptr [ null, %192 ], [ %215, %._crit_edge134 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #7
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %7) #7
  br label %265

265:                                              ; preds = %42, %39, %264, %64, %12, %15
  %.3 = phi ptr [ null, %15 ], [ null, %12 ], [ null, %42 ], [ null, %39 ], [ null, %64 ], [ %.083, %264 ]
  call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %6) #7
  ret ptr %.3
}

declare zeroext i1 @Rcs_getAbsoluteFileName(ptr noundef, ptr noundef) local_unnamed_addr #3

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

declare void @Rcs_printResourcePath() local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare hidden zeroext i1 @findKeyword(ptr noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #5

declare double @String_toDouble_l(ptr noundef) local_unnamed_addr #3

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

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

declare zeroext i1 @RcsJoint_isRotation(ptr noundef) local_unnamed_addr #3

declare void @MatNd_getRowView(ptr dead_on_unwind writable sret(%struct._MatNd) align 8, ptr noundef, i32 noundef) local_unnamed_addr #3

declare void @MatNd_eleMulSelf(ptr noundef, ptr noundef) local_unnamed_addr #3

declare void @MatNd_destroy(ptr noundef) local_unnamed_addr #3

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"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 = distinct !{!13, !14}
!14 = !{!"llvm.loop.mustprogress"}
!15 = !{!16, !6, i64 1848}
!16 = !{!"_RcsGraph", !10, i64 0, !7, i64 8, !6, i64 1848, !6, i64 1852, !10, i64 1856, !10, i64 1864, !10, i64 1872, !10, i64 1880, !10, i64 1888}
!17 = !{!18, !10, i64 0}
!18 = !{!"_MatNd", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !19, i64 20}
!19 = !{!"_Bool", !7, i64 0}
!20 = distinct !{!20, !14}
!21 = !{!18, !6, i64 12}
!22 = distinct !{!22, !14, !23, !24, !25}
!23 = !{!"llvm.loop.peeled.count", i32 3}
!24 = !{!"llvm.loop.isvectorized", i32 1}
!25 = !{!"llvm.loop.unroll.runtime.disable"}
!26 = !{!16, !10, i64 0}
!27 = distinct !{!27, !14}
!28 = !{!29, !6, i64 76}
!29 = !{!"_RcsJoint", !10, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !12, i64 32, !12, i64 40, !12, i64 48, !12, i64 56, !19, i64 64, !6, i64 68, !6, i64 72, !6, i64 76, !6, i64 80, !10, i64 88, !30, i64 96, !12, i64 192, !12, i64 200, !12, i64 208, !12, i64 216, !6, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264}
!30 = !{!"", !7, i64 0, !7, i64 24}
!31 = distinct !{!31, !14}
!32 = distinct !{!32, !14, !23, !25, !24}
!33 = !{!18, !6, i64 8}
!34 = distinct !{!34, !14}


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