; LLVM IR from cvra/robot-software :: lib/cmp/test (test)

; 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.buf_s = type { i64, i64, i64, ptr }
%struct.cmp_ctx_s = type { i8, ptr, ptr, ptr }
%struct.cmp_object_s = type { i8, %union.cmp_object_data_u }
%union.cmp_object_data_u = type { i64 }

@.str.16 = external hidden unnamed_addr constant [7 x i8], align 1
@__func__.run_obj_tests = external hidden unnamed_addr constant [14 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [11 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

; Function Attrs: nounwind uwtable
declare hidden void @setup_cmp_and_buf(ptr noundef, ptr noundef) #1

declare zeroext i1 @M_BufferSeek(ptr noundef, i64 noundef) #2

declare zeroext i1 @cmp_read_object(ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden void @error_printf(ptr noundef, ...) #1

declare ptr @cmp_strerror(ptr noundef) #2

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

declare zeroext i1 @cmp_read_uinteger(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_write_sint(ptr noundef, i64 noundef) #2

declare zeroext i1 @cmp_write_uint(ptr noundef, i64 noundef) #2

declare zeroext i1 @cmp_write_float(ptr noundef, float noundef) #2

declare zeroext i1 @cmp_write_double(ptr noundef, double noundef) #2

declare zeroext i1 @cmp_write_nil(ptr noundef) #2

declare zeroext i1 @cmp_write_false(ptr noundef) #2

declare zeroext i1 @cmp_write_true(ptr noundef) #2

declare zeroext i1 @cmp_write_bool(ptr noundef, i1 noundef zeroext) #2

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

declare zeroext i1 @cmp_write_bin(ptr noundef, ptr noundef, i32 noundef) #2

declare zeroext i1 @cmp_write_str(ptr noundef, ptr noundef, i32 noundef) #2

declare zeroext i1 @cmp_write_array(ptr noundef, i32 noundef) #2

declare zeroext i1 @cmp_write_map(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
define dso_local zeroext i1 @run_obj_tests() #1 {
  %1 = alloca i1, align 1
  %2 = alloca %struct.buf_s, align 8
  %3 = alloca %struct.cmp_ctx_s, align 8
  %4 = alloca %struct.cmp_object_s, align 8
  %5 = alloca i8, align 1
  %6 = alloca i32, align 4
  %7 = alloca i16, align 2
  %8 = alloca i32, align 4
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca i16, align 2
  %12 = alloca i32, align 4
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i32, align 4
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca i8, align 1
  %21 = alloca i16, align 2
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i8, align 1
  %26 = alloca i16, align 2
  %27 = alloca i32, align 4
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i16, align 2
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i16, align 2
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca i64, align 8
  %45 = alloca i64, align 8
  %46 = alloca float, align 4
  %47 = alloca double, align 8
  %48 = alloca i8, align 1
  %49 = alloca i8, align 1
  %50 = alloca i8, align 1
  %51 = alloca i8, align 1
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i64, align 8
  %56 = alloca i64, align 8
  %57 = alloca i32, align 4
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr %2) #4
  call void @llvm.lifetime.start.p0(i64 32, ptr %3) #4
  call void @llvm.lifetime.start.p0(i64 16, ptr %4) #4
  call void @setup_cmp_and_buf(ptr noundef %3, ptr noundef %2)
  %60 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %61 = call zeroext i1 @cmp_write_sint(ptr noundef %3, i64 noundef -1)
  %62 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %63 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %64

64:                                               ; preds = %0
  call void @llvm.lifetime.start.p0(i64 1, ptr %5) #4
  %65 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %65, label %67, label %66

66:                                               ; preds = %64
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2417)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %77

67:                                               ; preds = %64
  %68 = call zeroext i1 @cmp_object_as_char(ptr noundef %4, ptr noundef %5)
  br i1 %68, label %71, label %69

69:                                               ; preds = %67
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2417)
  %70 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.381, ptr noundef %70)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %77

71:                                               ; preds = %67
  %72 = load i8, ptr %5, align 1, !tbaa !5
  %73 = sext i8 %72 to i32
  %74 = icmp ne i32 %73, -1
  br i1 %74, label %75, label %76

75:                                               ; preds = %71
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2417)
  call void (ptr, ...) @error_printf(ptr noundef @.str.382)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %77

76:                                               ; preds = %71
  store i32 0, ptr %6, align 4
  br label %77

77:                                               ; preds = %76, %75, %69, %66
  call void @llvm.lifetime.end.p0(i64 1, ptr %5) #4
  %78 = load i32, ptr %6, align 4
  switch i32 %78, label %2160 [
    i32 0, label %79
  ]

79:                                               ; preds = %77
  br label %80

80:                                               ; preds = %79
  br label %81

81:                                               ; preds = %80
  br label %82

82:                                               ; preds = %81
  call void @llvm.lifetime.start.p0(i64 2, ptr %7) #4
  %83 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %83, label %85, label %84

84:                                               ; preds = %82
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2418)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %95

85:                                               ; preds = %82
  %86 = call zeroext i1 @cmp_object_as_short(ptr noundef %4, ptr noundef %7)
  br i1 %86, label %89, label %87

87:                                               ; preds = %85
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2418)
  %88 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.384, ptr noundef %88)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %95

89:                                               ; preds = %85
  %90 = load i16, ptr %7, align 2, !tbaa !8
  %91 = sext i16 %90 to i32
  %92 = icmp ne i32 %91, -1
  br i1 %92, label %93, label %94

93:                                               ; preds = %89
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2418)
  call void (ptr, ...) @error_printf(ptr noundef @.str.382)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %95

94:                                               ; preds = %89
  store i32 0, ptr %6, align 4
  br label %95

95:                                               ; preds = %94, %93, %87, %84
  call void @llvm.lifetime.end.p0(i64 2, ptr %7) #4
  %96 = load i32, ptr %6, align 4
  switch i32 %96, label %2160 [
    i32 0, label %97
  ]

97:                                               ; preds = %95
  br label %98

98:                                               ; preds = %97
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #4
  %101 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %101, label %103, label %102

102:                                              ; preds = %100
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2419)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %112

103:                                              ; preds = %100
  %104 = call zeroext i1 @cmp_object_as_int(ptr noundef %4, ptr noundef %8)
  br i1 %104, label %107, label %105

105:                                              ; preds = %103
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2419)
  %106 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.386, ptr noundef %106)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %112

107:                                              ; preds = %103
  %108 = load i32, ptr %8, align 4, !tbaa !10
  %109 = icmp ne i32 %108, -1
  br i1 %109, label %110, label %111

110:                                              ; preds = %107
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2419)
  call void (ptr, ...) @error_printf(ptr noundef @.str.382)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %112

111:                                              ; preds = %107
  store i32 0, ptr %6, align 4
  br label %112

112:                                              ; preds = %111, %110, %105, %102
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #4
  %113 = load i32, ptr %6, align 4
  switch i32 %113, label %2160 [
    i32 0, label %114
  ]

114:                                              ; preds = %112
  br label %115

115:                                              ; preds = %114
  br label %116

116:                                              ; preds = %115
  br label %117

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #4
  %118 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %118, label %120, label %119

119:                                              ; preds = %117
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2420)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %129

120:                                              ; preds = %117
  %121 = call zeroext i1 @cmp_object_as_long(ptr noundef %4, ptr noundef %9)
  br i1 %121, label %124, label %122

122:                                              ; preds = %120
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2420)
  %123 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.388, ptr noundef %123)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %129

124:                                              ; preds = %120
  %125 = load i64, ptr %9, align 8, !tbaa !12
  %126 = icmp ne i64 %125, -1
  br i1 %126, label %127, label %128

127:                                              ; preds = %124
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2420)
  call void (ptr, ...) @error_printf(ptr noundef @.str.382)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %129

128:                                              ; preds = %124
  store i32 0, ptr %6, align 4
  br label %129

129:                                              ; preds = %128, %127, %122, %119
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #4
  %130 = load i32, ptr %6, align 4
  switch i32 %130, label %2160 [
    i32 0, label %131
  ]

131:                                              ; preds = %129
  br label %132

132:                                              ; preds = %131
  br label %133

133:                                              ; preds = %132
  br label %134

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #4
  %135 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %135, label %137, label %136

136:                                              ; preds = %134
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2422)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %146

137:                                              ; preds = %134
  %138 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef %4, ptr noundef %10)
  br i1 %138, label %141, label %139

139:                                              ; preds = %137
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2422)
  %140 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.390, ptr noundef %140)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %146

141:                                              ; preds = %137
  %142 = load i64, ptr %10, align 8, !tbaa !12
  %143 = icmp ne i64 %142, -1
  br i1 %143, label %144, label %145

144:                                              ; preds = %141
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2422)
  call void (ptr, ...) @error_printf(ptr noundef @.str.382)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %146

145:                                              ; preds = %141
  store i32 0, ptr %6, align 4
  br label %146

146:                                              ; preds = %145, %144, %139, %136
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #4
  %147 = load i32, ptr %6, align 4
  switch i32 %147, label %2160 [
    i32 0, label %148
  ]

148:                                              ; preds = %146
  br label %149

149:                                              ; preds = %148
  br label %150

150:                                              ; preds = %149
  %151 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2423)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

153:                                              ; preds = %150
  %154 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %154, label %155, label %156

155:                                              ; preds = %153
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2424)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

156:                                              ; preds = %153
  %157 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %157, label %158, label %159

158:                                              ; preds = %156
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2425)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

159:                                              ; preds = %156
  %160 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %160, label %161, label %162

161:                                              ; preds = %159
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2426)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

162:                                              ; preds = %159
  %163 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %163, label %164, label %165

164:                                              ; preds = %162
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2427)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

165:                                              ; preds = %162
  %166 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %166, label %167, label %168

167:                                              ; preds = %165
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2428)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

168:                                              ; preds = %165
  %169 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %169, label %170, label %171

170:                                              ; preds = %168
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2429)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

171:                                              ; preds = %168
  %172 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %172, label %173, label %174

173:                                              ; preds = %171
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2430)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

174:                                              ; preds = %171
  %175 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %175, label %176, label %177

176:                                              ; preds = %174
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2431)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

177:                                              ; preds = %174
  %178 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %178, label %179, label %180

179:                                              ; preds = %177
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2432)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

180:                                              ; preds = %177
  %181 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %181, label %182, label %183

182:                                              ; preds = %180
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2433)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

183:                                              ; preds = %180
  %184 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %184, label %185, label %186

185:                                              ; preds = %183
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2434)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

186:                                              ; preds = %183
  %187 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %187, label %188, label %189

188:                                              ; preds = %186
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2435)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

189:                                              ; preds = %186
  %190 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %190, label %191, label %192

191:                                              ; preds = %189
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2436)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

192:                                              ; preds = %189
  %193 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %194 = call zeroext i1 @cmp_write_sint(ptr noundef %3, i64 noundef -129)
  %195 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %196 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %197

197:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 2, ptr %11) #4
  %198 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %198, label %200, label %199

199:                                              ; preds = %197
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2439)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %210

200:                                              ; preds = %197
  %201 = call zeroext i1 @cmp_object_as_short(ptr noundef %4, ptr noundef %11)
  br i1 %201, label %204, label %202

202:                                              ; preds = %200
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2439)
  %203 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.384, ptr noundef %203)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %210

204:                                              ; preds = %200
  %205 = load i16, ptr %11, align 2, !tbaa !8
  %206 = sext i16 %205 to i32
  %207 = icmp ne i32 %206, -129
  br i1 %207, label %208, label %209

208:                                              ; preds = %204
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2439)
  call void (ptr, ...) @error_printf(ptr noundef @.str.406)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %210

209:                                              ; preds = %204
  store i32 0, ptr %6, align 4
  br label %210

210:                                              ; preds = %209, %208, %202, %199
  call void @llvm.lifetime.end.p0(i64 2, ptr %11) #4
  %211 = load i32, ptr %6, align 4
  switch i32 %211, label %2160 [
    i32 0, label %212
  ]

212:                                              ; preds = %210
  br label %213

213:                                              ; preds = %212
  br label %214

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #4
  %216 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %216, label %218, label %217

217:                                              ; preds = %215
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2440)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %227

218:                                              ; preds = %215
  %219 = call zeroext i1 @cmp_object_as_int(ptr noundef %4, ptr noundef %12)
  br i1 %219, label %222, label %220

220:                                              ; preds = %218
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2440)
  %221 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.386, ptr noundef %221)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %227

222:                                              ; preds = %218
  %223 = load i32, ptr %12, align 4, !tbaa !10
  %224 = icmp ne i32 %223, -129
  br i1 %224, label %225, label %226

225:                                              ; preds = %222
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2440)
  call void (ptr, ...) @error_printf(ptr noundef @.str.406)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %227

226:                                              ; preds = %222
  store i32 0, ptr %6, align 4
  br label %227

227:                                              ; preds = %226, %225, %220, %217
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #4
  %228 = load i32, ptr %6, align 4
  switch i32 %228, label %2160 [
    i32 0, label %229
  ]

229:                                              ; preds = %227
  br label %230

230:                                              ; preds = %229
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #4
  %233 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %233, label %235, label %234

234:                                              ; preds = %232
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2441)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %244

235:                                              ; preds = %232
  %236 = call zeroext i1 @cmp_object_as_long(ptr noundef %4, ptr noundef %13)
  br i1 %236, label %239, label %237

237:                                              ; preds = %235
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2441)
  %238 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.388, ptr noundef %238)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %244

239:                                              ; preds = %235
  %240 = load i64, ptr %13, align 8, !tbaa !12
  %241 = icmp ne i64 %240, -129
  br i1 %241, label %242, label %243

242:                                              ; preds = %239
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2441)
  call void (ptr, ...) @error_printf(ptr noundef @.str.406)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %244

243:                                              ; preds = %239
  store i32 0, ptr %6, align 4
  br label %244

244:                                              ; preds = %243, %242, %237, %234
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #4
  %245 = load i32, ptr %6, align 4
  switch i32 %245, label %2160 [
    i32 0, label %246
  ]

246:                                              ; preds = %244
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #4
  %250 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %250, label %252, label %251

251:                                              ; preds = %249
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2443)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %261

252:                                              ; preds = %249
  %253 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef %4, ptr noundef %14)
  br i1 %253, label %256, label %254

254:                                              ; preds = %252
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2443)
  %255 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.390, ptr noundef %255)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %261

256:                                              ; preds = %252
  %257 = load i64, ptr %14, align 8, !tbaa !12
  %258 = icmp ne i64 %257, -129
  br i1 %258, label %259, label %260

259:                                              ; preds = %256
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2443)
  call void (ptr, ...) @error_printf(ptr noundef @.str.406)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %261

260:                                              ; preds = %256
  store i32 0, ptr %6, align 4
  br label %261

261:                                              ; preds = %260, %259, %254, %251
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #4
  %262 = load i32, ptr %6, align 4
  switch i32 %262, label %2160 [
    i32 0, label %263
  ]

263:                                              ; preds = %261
  br label %264

264:                                              ; preds = %263
  br label %265

265:                                              ; preds = %264
  %266 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %266, label %267, label %268

267:                                              ; preds = %265
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2444)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

268:                                              ; preds = %265
  %269 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %269, label %270, label %271

270:                                              ; preds = %268
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2445)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

271:                                              ; preds = %268
  %272 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %272, label %273, label %274

273:                                              ; preds = %271
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2446)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

274:                                              ; preds = %271
  %275 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %275, label %276, label %277

276:                                              ; preds = %274
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2447)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

277:                                              ; preds = %274
  %278 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %278, label %279, label %280

279:                                              ; preds = %277
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2448)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

280:                                              ; preds = %277
  %281 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %281, label %282, label %283

282:                                              ; preds = %280
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2449)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

283:                                              ; preds = %280
  %284 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %284, label %285, label %286

285:                                              ; preds = %283
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2450)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

286:                                              ; preds = %283
  %287 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %287, label %288, label %289

288:                                              ; preds = %286
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2451)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

289:                                              ; preds = %286
  %290 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %290, label %291, label %292

291:                                              ; preds = %289
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2452)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

292:                                              ; preds = %289
  %293 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %293, label %294, label %295

294:                                              ; preds = %292
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2453)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

295:                                              ; preds = %292
  %296 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %296, label %297, label %298

297:                                              ; preds = %295
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2454)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

298:                                              ; preds = %295
  %299 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %299, label %300, label %301

300:                                              ; preds = %298
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2455)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

301:                                              ; preds = %298
  %302 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %302, label %303, label %304

303:                                              ; preds = %301
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2456)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

304:                                              ; preds = %301
  %305 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %305, label %306, label %307

306:                                              ; preds = %304
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2457)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

307:                                              ; preds = %304
  %308 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %308, label %309, label %310

309:                                              ; preds = %307
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2458)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

310:                                              ; preds = %307
  %311 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %312 = call zeroext i1 @cmp_write_sint(ptr noundef %3, i64 noundef -32769)
  %313 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %314 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %315

315:                                              ; preds = %310
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #4
  %316 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %316, label %318, label %317

317:                                              ; preds = %315
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2461)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %327

318:                                              ; preds = %315
  %319 = call zeroext i1 @cmp_object_as_int(ptr noundef %4, ptr noundef %15)
  br i1 %319, label %322, label %320

320:                                              ; preds = %318
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2461)
  %321 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.386, ptr noundef %321)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %327

322:                                              ; preds = %318
  %323 = load i32, ptr %15, align 4, !tbaa !10
  %324 = icmp ne i32 %323, -32769
  br i1 %324, label %325, label %326

325:                                              ; preds = %322
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2461)
  call void (ptr, ...) @error_printf(ptr noundef @.str.407)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %327

326:                                              ; preds = %322
  store i32 0, ptr %6, align 4
  br label %327

327:                                              ; preds = %326, %325, %320, %317
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #4
  %328 = load i32, ptr %6, align 4
  switch i32 %328, label %2160 [
    i32 0, label %329
  ]

329:                                              ; preds = %327
  br label %330

330:                                              ; preds = %329
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #4
  %333 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %333, label %335, label %334

334:                                              ; preds = %332
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2462)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %344

335:                                              ; preds = %332
  %336 = call zeroext i1 @cmp_object_as_long(ptr noundef %4, ptr noundef %16)
  br i1 %336, label %339, label %337

337:                                              ; preds = %335
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2462)
  %338 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.388, ptr noundef %338)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %344

339:                                              ; preds = %335
  %340 = load i64, ptr %16, align 8, !tbaa !12
  %341 = icmp ne i64 %340, -32769
  br i1 %341, label %342, label %343

342:                                              ; preds = %339
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2462)
  call void (ptr, ...) @error_printf(ptr noundef @.str.407)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %344

343:                                              ; preds = %339
  store i32 0, ptr %6, align 4
  br label %344

344:                                              ; preds = %343, %342, %337, %334
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #4
  %345 = load i32, ptr %6, align 4
  switch i32 %345, label %2160 [
    i32 0, label %346
  ]

346:                                              ; preds = %344
  br label %347

347:                                              ; preds = %346
  br label %348

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #4
  %350 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %350, label %352, label %351

351:                                              ; preds = %349
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2464)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %361

352:                                              ; preds = %349
  %353 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef %4, ptr noundef %17)
  br i1 %353, label %356, label %354

354:                                              ; preds = %352
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2464)
  %355 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.390, ptr noundef %355)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %361

356:                                              ; preds = %352
  %357 = load i64, ptr %17, align 8, !tbaa !12
  %358 = icmp ne i64 %357, -32769
  br i1 %358, label %359, label %360

359:                                              ; preds = %356
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2464)
  call void (ptr, ...) @error_printf(ptr noundef @.str.407)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %361

360:                                              ; preds = %356
  store i32 0, ptr %6, align 4
  br label %361

361:                                              ; preds = %360, %359, %354, %351
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #4
  %362 = load i32, ptr %6, align 4
  switch i32 %362, label %2160 [
    i32 0, label %363
  ]

363:                                              ; preds = %361
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  %366 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %366, label %367, label %368

367:                                              ; preds = %365
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2465)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

368:                                              ; preds = %365
  %369 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %369, label %370, label %371

370:                                              ; preds = %368
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2466)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

371:                                              ; preds = %368
  %372 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %372, label %373, label %374

373:                                              ; preds = %371
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2467)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

374:                                              ; preds = %371
  %375 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %375, label %376, label %377

376:                                              ; preds = %374
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2468)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

377:                                              ; preds = %374
  %378 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %378, label %379, label %380

379:                                              ; preds = %377
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2469)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

380:                                              ; preds = %377
  %381 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %381, label %382, label %383

382:                                              ; preds = %380
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2470)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

383:                                              ; preds = %380
  %384 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %384, label %385, label %386

385:                                              ; preds = %383
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2471)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

386:                                              ; preds = %383
  %387 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %387, label %388, label %389

388:                                              ; preds = %386
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2472)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

389:                                              ; preds = %386
  %390 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %390, label %391, label %392

391:                                              ; preds = %389
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2473)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

392:                                              ; preds = %389
  %393 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %393, label %394, label %395

394:                                              ; preds = %392
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2474)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

395:                                              ; preds = %392
  %396 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %396, label %397, label %398

397:                                              ; preds = %395
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2475)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

398:                                              ; preds = %395
  %399 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %399, label %400, label %401

400:                                              ; preds = %398
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2476)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

401:                                              ; preds = %398
  %402 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %402, label %403, label %404

403:                                              ; preds = %401
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2477)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

404:                                              ; preds = %401
  %405 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %405, label %406, label %407

406:                                              ; preds = %404
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2478)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

407:                                              ; preds = %404
  %408 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %408, label %409, label %410

409:                                              ; preds = %407
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2479)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

410:                                              ; preds = %407
  %411 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %411, label %412, label %413

412:                                              ; preds = %410
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2480)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

413:                                              ; preds = %410
  %414 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %415 = call zeroext i1 @cmp_write_sint(ptr noundef %3, i64 noundef -2147483649)
  %416 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %417 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %418

418:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #4
  %419 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %419, label %421, label %420

420:                                              ; preds = %418
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2484)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %430

421:                                              ; preds = %418
  %422 = call zeroext i1 @cmp_object_as_long(ptr noundef %4, ptr noundef %18)
  br i1 %422, label %425, label %423

423:                                              ; preds = %421
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2484)
  %424 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.388, ptr noundef %424)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %430

425:                                              ; preds = %421
  %426 = load i64, ptr %18, align 8, !tbaa !12
  %427 = icmp ne i64 %426, -2147483649
  br i1 %427, label %428, label %429

428:                                              ; preds = %425
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2484)
  call void (ptr, ...) @error_printf(ptr noundef @.str.408)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %430

429:                                              ; preds = %425
  store i32 0, ptr %6, align 4
  br label %430

430:                                              ; preds = %429, %428, %423, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #4
  %431 = load i32, ptr %6, align 4
  switch i32 %431, label %2160 [
    i32 0, label %432
  ]

432:                                              ; preds = %430
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #4
  %436 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %436, label %438, label %437

437:                                              ; preds = %435
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2489)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %447

438:                                              ; preds = %435
  %439 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef %4, ptr noundef %19)
  br i1 %439, label %442, label %440

440:                                              ; preds = %438
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2489)
  %441 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.390, ptr noundef %441)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %447

442:                                              ; preds = %438
  %443 = load i64, ptr %19, align 8, !tbaa !12
  %444 = icmp ne i64 %443, -2147483649
  br i1 %444, label %445, label %446

445:                                              ; preds = %442
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2489)
  call void (ptr, ...) @error_printf(ptr noundef @.str.408)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %447

446:                                              ; preds = %442
  store i32 0, ptr %6, align 4
  br label %447

447:                                              ; preds = %446, %445, %440, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #4
  %448 = load i32, ptr %6, align 4
  switch i32 %448, label %2160 [
    i32 0, label %449
  ]

449:                                              ; preds = %447
  br label %450

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  %452 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %452, label %453, label %454

453:                                              ; preds = %451
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2490)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

454:                                              ; preds = %451
  %455 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %455, label %456, label %457

456:                                              ; preds = %454
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2491)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

457:                                              ; preds = %454
  %458 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %458, label %459, label %460

459:                                              ; preds = %457
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2492)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

460:                                              ; preds = %457
  %461 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %461, label %462, label %463

462:                                              ; preds = %460
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2493)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

463:                                              ; preds = %460
  %464 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %464, label %465, label %466

465:                                              ; preds = %463
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2494)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

466:                                              ; preds = %463
  %467 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %467, label %468, label %469

468:                                              ; preds = %466
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2495)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

469:                                              ; preds = %466
  %470 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %470, label %471, label %472

471:                                              ; preds = %469
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2496)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

472:                                              ; preds = %469
  %473 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %473, label %474, label %475

474:                                              ; preds = %472
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2497)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

475:                                              ; preds = %472
  %476 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %476, label %477, label %478

477:                                              ; preds = %475
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2498)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

478:                                              ; preds = %475
  %479 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %479, label %480, label %481

480:                                              ; preds = %478
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2499)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

481:                                              ; preds = %478
  %482 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %482, label %483, label %484

483:                                              ; preds = %481
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2500)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

484:                                              ; preds = %481
  %485 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %485, label %486, label %487

486:                                              ; preds = %484
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2501)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

487:                                              ; preds = %484
  %488 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %488, label %489, label %490

489:                                              ; preds = %487
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2502)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

490:                                              ; preds = %487
  %491 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %491, label %492, label %493

492:                                              ; preds = %490
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2503)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

493:                                              ; preds = %490
  %494 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %494, label %495, label %496

495:                                              ; preds = %493
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2504)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

496:                                              ; preds = %493
  %497 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %497, label %498, label %499

498:                                              ; preds = %496
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2505)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

499:                                              ; preds = %496
  %500 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %500, label %501, label %502

501:                                              ; preds = %499
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2506)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

502:                                              ; preds = %499
  %503 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %504 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 1)
  %505 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %506 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %507

507:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #4
  %508 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %508, label %510, label %509

509:                                              ; preds = %507
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2509)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %520

510:                                              ; preds = %507
  %511 = call zeroext i1 @cmp_object_as_uchar(ptr noundef %4, ptr noundef %20)
  br i1 %511, label %514, label %512

512:                                              ; preds = %510
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2509)
  %513 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.409, ptr noundef %513)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %520

514:                                              ; preds = %510
  %515 = load i8, ptr %20, align 1, !tbaa !5
  %516 = zext i8 %515 to i32
  %517 = icmp ne i32 %516, 1
  br i1 %517, label %518, label %519

518:                                              ; preds = %514
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2509)
  call void (ptr, ...) @error_printf(ptr noundef @.str.410)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %520

519:                                              ; preds = %514
  store i32 0, ptr %6, align 4
  br label %520

520:                                              ; preds = %519, %518, %512, %509
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #4
  %521 = load i32, ptr %6, align 4
  switch i32 %521, label %2160 [
    i32 0, label %522
  ]

522:                                              ; preds = %520
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 2, ptr %21) #4
  %526 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %526, label %528, label %527

527:                                              ; preds = %525
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2510)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %538

528:                                              ; preds = %525
  %529 = call zeroext i1 @cmp_object_as_ushort(ptr noundef %4, ptr noundef %21)
  br i1 %529, label %532, label %530

530:                                              ; preds = %528
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2510)
  %531 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.411, ptr noundef %531)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %538

532:                                              ; preds = %528
  %533 = load i16, ptr %21, align 2, !tbaa !8
  %534 = zext i16 %533 to i32
  %535 = icmp ne i32 %534, 1
  br i1 %535, label %536, label %537

536:                                              ; preds = %532
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2510)
  call void (ptr, ...) @error_printf(ptr noundef @.str.410)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %538

537:                                              ; preds = %532
  store i32 0, ptr %6, align 4
  br label %538

538:                                              ; preds = %537, %536, %530, %527
  call void @llvm.lifetime.end.p0(i64 2, ptr %21) #4
  %539 = load i32, ptr %6, align 4
  switch i32 %539, label %2160 [
    i32 0, label %540
  ]

540:                                              ; preds = %538
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #4
  %544 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %544, label %546, label %545

545:                                              ; preds = %543
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2511)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %555

546:                                              ; preds = %543
  %547 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %22)
  br i1 %547, label %550, label %548

548:                                              ; preds = %546
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2511)
  %549 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %549)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %555

550:                                              ; preds = %546
  %551 = load i32, ptr %22, align 4, !tbaa !10
  %552 = icmp ne i32 %551, 1
  br i1 %552, label %553, label %554

553:                                              ; preds = %550
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2511)
  call void (ptr, ...) @error_printf(ptr noundef @.str.410)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %555

554:                                              ; preds = %550
  store i32 0, ptr %6, align 4
  br label %555

555:                                              ; preds = %554, %553, %548, %545
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #4
  %556 = load i32, ptr %6, align 4
  switch i32 %556, label %2160 [
    i32 0, label %557
  ]

557:                                              ; preds = %555
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #4
  %561 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %561, label %563, label %562

562:                                              ; preds = %560
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2512)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %572

563:                                              ; preds = %560
  %564 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %23)
  br i1 %564, label %567, label %565

565:                                              ; preds = %563
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2512)
  %566 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %566)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %572

567:                                              ; preds = %563
  %568 = load i64, ptr %23, align 8, !tbaa !12
  %569 = icmp ne i64 %568, 1
  br i1 %569, label %570, label %571

570:                                              ; preds = %567
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2512)
  call void (ptr, ...) @error_printf(ptr noundef @.str.410)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %572

571:                                              ; preds = %567
  store i32 0, ptr %6, align 4
  br label %572

572:                                              ; preds = %571, %570, %565, %562
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #4
  %573 = load i32, ptr %6, align 4
  switch i32 %573, label %2160 [
    i32 0, label %574
  ]

574:                                              ; preds = %572
  br label %575

575:                                              ; preds = %574
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #4
  %578 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %578, label %580, label %579

579:                                              ; preds = %577
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2514)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %589

580:                                              ; preds = %577
  %581 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %24)
  br i1 %581, label %584, label %582

582:                                              ; preds = %580
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2514)
  %583 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %583)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %589

584:                                              ; preds = %580
  %585 = load i64, ptr %24, align 8, !tbaa !12
  %586 = icmp ne i64 %585, 1
  br i1 %586, label %587, label %588

587:                                              ; preds = %584
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2514)
  call void (ptr, ...) @error_printf(ptr noundef @.str.410)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %589

588:                                              ; preds = %584
  store i32 0, ptr %6, align 4
  br label %589

589:                                              ; preds = %588, %587, %582, %579
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #4
  %590 = load i32, ptr %6, align 4
  switch i32 %590, label %2160 [
    i32 0, label %591
  ]

591:                                              ; preds = %589
  br label %592

592:                                              ; preds = %591
  br label %593

593:                                              ; preds = %592
  %594 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %594, label %595, label %596

595:                                              ; preds = %593
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2515)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

596:                                              ; preds = %593
  %597 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %597, label %598, label %599

598:                                              ; preds = %596
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2516)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

599:                                              ; preds = %596
  %600 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %600, label %601, label %602

601:                                              ; preds = %599
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2517)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

602:                                              ; preds = %599
  %603 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %603, label %604, label %605

604:                                              ; preds = %602
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2518)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

605:                                              ; preds = %602
  %606 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %606, label %607, label %608

607:                                              ; preds = %605
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2519)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

608:                                              ; preds = %605
  %609 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %609, label %610, label %611

610:                                              ; preds = %608
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2520)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

611:                                              ; preds = %608
  %612 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %612, label %613, label %614

613:                                              ; preds = %611
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2521)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

614:                                              ; preds = %611
  %615 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %615, label %616, label %617

616:                                              ; preds = %614
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2522)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

617:                                              ; preds = %614
  %618 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %618, label %619, label %620

619:                                              ; preds = %617
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2523)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

620:                                              ; preds = %617
  %621 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %621, label %622, label %623

622:                                              ; preds = %620
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2524)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

623:                                              ; preds = %620
  %624 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %624, label %625, label %626

625:                                              ; preds = %623
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2525)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

626:                                              ; preds = %623
  %627 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %627, label %628, label %629

628:                                              ; preds = %626
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2526)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

629:                                              ; preds = %626
  %630 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %630, label %631, label %632

631:                                              ; preds = %629
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2527)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

632:                                              ; preds = %629
  %633 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %633, label %634, label %635

634:                                              ; preds = %632
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2528)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

635:                                              ; preds = %632
  %636 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %637 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 255)
  %638 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %639 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %640

640:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #4
  %641 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %641, label %643, label %642

642:                                              ; preds = %640
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2531)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %653

643:                                              ; preds = %640
  %644 = call zeroext i1 @cmp_object_as_uchar(ptr noundef %4, ptr noundef %25)
  br i1 %644, label %647, label %645

645:                                              ; preds = %643
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2531)
  %646 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.409, ptr noundef %646)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %653

647:                                              ; preds = %643
  %648 = load i8, ptr %25, align 1, !tbaa !5
  %649 = zext i8 %648 to i32
  %650 = icmp ne i32 %649, 255
  br i1 %650, label %651, label %652

651:                                              ; preds = %647
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2531)
  call void (ptr, ...) @error_printf(ptr noundef @.str.415)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %653

652:                                              ; preds = %647
  store i32 0, ptr %6, align 4
  br label %653

653:                                              ; preds = %652, %651, %645, %642
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #4
  %654 = load i32, ptr %6, align 4
  switch i32 %654, label %2160 [
    i32 0, label %655
  ]

655:                                              ; preds = %653
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  call void @llvm.lifetime.start.p0(i64 2, ptr %26) #4
  %659 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %659, label %661, label %660

660:                                              ; preds = %658
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2533)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %671

661:                                              ; preds = %658
  %662 = call zeroext i1 @cmp_object_as_ushort(ptr noundef %4, ptr noundef %26)
  br i1 %662, label %665, label %663

663:                                              ; preds = %661
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2533)
  %664 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.411, ptr noundef %664)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %671

665:                                              ; preds = %661
  %666 = load i16, ptr %26, align 2, !tbaa !8
  %667 = zext i16 %666 to i32
  %668 = icmp ne i32 %667, 255
  br i1 %668, label %669, label %670

669:                                              ; preds = %665
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2533)
  call void (ptr, ...) @error_printf(ptr noundef @.str.415)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %671

670:                                              ; preds = %665
  store i32 0, ptr %6, align 4
  br label %671

671:                                              ; preds = %670, %669, %663, %660
  call void @llvm.lifetime.end.p0(i64 2, ptr %26) #4
  %672 = load i32, ptr %6, align 4
  switch i32 %672, label %2160 [
    i32 0, label %673
  ]

673:                                              ; preds = %671
  br label %674

674:                                              ; preds = %673
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #4
  %677 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %677, label %679, label %678

678:                                              ; preds = %676
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2534)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %688

679:                                              ; preds = %676
  %680 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %27)
  br i1 %680, label %683, label %681

681:                                              ; preds = %679
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2534)
  %682 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %682)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %688

683:                                              ; preds = %679
  %684 = load i32, ptr %27, align 4, !tbaa !10
  %685 = icmp ne i32 %684, 255
  br i1 %685, label %686, label %687

686:                                              ; preds = %683
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2534)
  call void (ptr, ...) @error_printf(ptr noundef @.str.415)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %688

687:                                              ; preds = %683
  store i32 0, ptr %6, align 4
  br label %688

688:                                              ; preds = %687, %686, %681, %678
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #4
  %689 = load i32, ptr %6, align 4
  switch i32 %689, label %2160 [
    i32 0, label %690
  ]

690:                                              ; preds = %688
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #4
  %694 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %694, label %696, label %695

695:                                              ; preds = %693
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2535)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %705

696:                                              ; preds = %693
  %697 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %28)
  br i1 %697, label %700, label %698

698:                                              ; preds = %696
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2535)
  %699 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %699)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %705

700:                                              ; preds = %696
  %701 = load i64, ptr %28, align 8, !tbaa !12
  %702 = icmp ne i64 %701, 255
  br i1 %702, label %703, label %704

703:                                              ; preds = %700
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2535)
  call void (ptr, ...) @error_printf(ptr noundef @.str.415)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %705

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

705:                                              ; preds = %704, %703, %698, %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #4
  %706 = load i32, ptr %6, align 4
  switch i32 %706, label %2160 [
    i32 0, label %707
  ]

707:                                              ; preds = %705
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #4
  %711 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %711, label %713, label %712

712:                                              ; preds = %710
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2537)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %722

713:                                              ; preds = %710
  %714 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %29)
  br i1 %714, label %717, label %715

715:                                              ; preds = %713
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2537)
  %716 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %716)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %722

717:                                              ; preds = %713
  %718 = load i64, ptr %29, align 8, !tbaa !12
  %719 = icmp ne i64 %718, 255
  br i1 %719, label %720, label %721

720:                                              ; preds = %717
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2537)
  call void (ptr, ...) @error_printf(ptr noundef @.str.415)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %722

721:                                              ; preds = %717
  store i32 0, ptr %6, align 4
  br label %722

722:                                              ; preds = %721, %720, %715, %712
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #4
  %723 = load i32, ptr %6, align 4
  switch i32 %723, label %2160 [
    i32 0, label %724
  ]

724:                                              ; preds = %722
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  %727 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %727, label %728, label %729

728:                                              ; preds = %726
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2538)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

729:                                              ; preds = %726
  %730 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %730, label %731, label %732

731:                                              ; preds = %729
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2539)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

732:                                              ; preds = %729
  %733 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %733, label %734, label %735

734:                                              ; preds = %732
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2540)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

735:                                              ; preds = %732
  %736 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %736, label %737, label %738

737:                                              ; preds = %735
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2541)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

738:                                              ; preds = %735
  %739 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %739, label %740, label %741

740:                                              ; preds = %738
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2542)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

741:                                              ; preds = %738
  %742 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %742, label %743, label %744

743:                                              ; preds = %741
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2543)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

744:                                              ; preds = %741
  %745 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %745, label %746, label %747

746:                                              ; preds = %744
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2544)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

747:                                              ; preds = %744
  %748 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %748, label %749, label %750

749:                                              ; preds = %747
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2545)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

750:                                              ; preds = %747
  %751 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %751, label %752, label %753

752:                                              ; preds = %750
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2546)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

753:                                              ; preds = %750
  %754 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %754, label %755, label %756

755:                                              ; preds = %753
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2547)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

756:                                              ; preds = %753
  %757 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %757, label %758, label %759

758:                                              ; preds = %756
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2548)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

759:                                              ; preds = %756
  %760 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %760, label %761, label %762

761:                                              ; preds = %759
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2549)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

762:                                              ; preds = %759
  %763 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %763, label %764, label %765

764:                                              ; preds = %762
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2550)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

765:                                              ; preds = %762
  %766 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %766, label %767, label %768

767:                                              ; preds = %765
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2551)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

768:                                              ; preds = %765
  %769 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %770 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 256)
  %771 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %772 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %773

773:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 2, ptr %30) #4
  %774 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %774, label %776, label %775

775:                                              ; preds = %773
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2555)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %786

776:                                              ; preds = %773
  %777 = call zeroext i1 @cmp_object_as_ushort(ptr noundef %4, ptr noundef %30)
  br i1 %777, label %780, label %778

778:                                              ; preds = %776
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2555)
  %779 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.411, ptr noundef %779)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %786

780:                                              ; preds = %776
  %781 = load i16, ptr %30, align 2, !tbaa !8
  %782 = zext i16 %781 to i32
  %783 = icmp ne i32 %782, 256
  br i1 %783, label %784, label %785

784:                                              ; preds = %780
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2555)
  call void (ptr, ...) @error_printf(ptr noundef @.str.416)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %786

785:                                              ; preds = %780
  store i32 0, ptr %6, align 4
  br label %786

786:                                              ; preds = %785, %784, %778, %775
  call void @llvm.lifetime.end.p0(i64 2, ptr %30) #4
  %787 = load i32, ptr %6, align 4
  switch i32 %787, label %2160 [
    i32 0, label %788
  ]

788:                                              ; preds = %786
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #4
  %792 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %792, label %794, label %793

793:                                              ; preds = %791
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2556)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %803

794:                                              ; preds = %791
  %795 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %31)
  br i1 %795, label %798, label %796

796:                                              ; preds = %794
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2556)
  %797 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %797)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %803

798:                                              ; preds = %794
  %799 = load i32, ptr %31, align 4, !tbaa !10
  %800 = icmp ne i32 %799, 256
  br i1 %800, label %801, label %802

801:                                              ; preds = %798
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2556)
  call void (ptr, ...) @error_printf(ptr noundef @.str.416)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %803

802:                                              ; preds = %798
  store i32 0, ptr %6, align 4
  br label %803

803:                                              ; preds = %802, %801, %796, %793
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #4
  %804 = load i32, ptr %6, align 4
  switch i32 %804, label %2160 [
    i32 0, label %805
  ]

805:                                              ; preds = %803
  br label %806

806:                                              ; preds = %805
  br label %807

807:                                              ; preds = %806
  br label %808

808:                                              ; preds = %807
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #4
  %809 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %809, label %811, label %810

810:                                              ; preds = %808
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2557)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %820

811:                                              ; preds = %808
  %812 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %32)
  br i1 %812, label %815, label %813

813:                                              ; preds = %811
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2557)
  %814 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %814)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %820

815:                                              ; preds = %811
  %816 = load i64, ptr %32, align 8, !tbaa !12
  %817 = icmp ne i64 %816, 256
  br i1 %817, label %818, label %819

818:                                              ; preds = %815
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2557)
  call void (ptr, ...) @error_printf(ptr noundef @.str.416)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %820

819:                                              ; preds = %815
  store i32 0, ptr %6, align 4
  br label %820

820:                                              ; preds = %819, %818, %813, %810
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #4
  %821 = load i32, ptr %6, align 4
  switch i32 %821, label %2160 [
    i32 0, label %822
  ]

822:                                              ; preds = %820
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #4
  %826 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %826, label %828, label %827

827:                                              ; preds = %825
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2559)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %837

828:                                              ; preds = %825
  %829 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %33)
  br i1 %829, label %832, label %830

830:                                              ; preds = %828
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2559)
  %831 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %831)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %837

832:                                              ; preds = %828
  %833 = load i64, ptr %33, align 8, !tbaa !12
  %834 = icmp ne i64 %833, 256
  br i1 %834, label %835, label %836

835:                                              ; preds = %832
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2559)
  call void (ptr, ...) @error_printf(ptr noundef @.str.416)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %837

836:                                              ; preds = %832
  store i32 0, ptr %6, align 4
  br label %837

837:                                              ; preds = %836, %835, %830, %827
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #4
  %838 = load i32, ptr %6, align 4
  switch i32 %838, label %2160 [
    i32 0, label %839
  ]

839:                                              ; preds = %837
  br label %840

840:                                              ; preds = %839
  br label %841

841:                                              ; preds = %840
  %842 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %842, label %843, label %844

843:                                              ; preds = %841
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2560)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

844:                                              ; preds = %841
  %845 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %845, label %846, label %847

846:                                              ; preds = %844
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2561)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

847:                                              ; preds = %844
  %848 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %848, label %849, label %850

849:                                              ; preds = %847
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2562)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

850:                                              ; preds = %847
  %851 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %851, label %852, label %853

852:                                              ; preds = %850
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2563)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

853:                                              ; preds = %850
  %854 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %854, label %855, label %856

855:                                              ; preds = %853
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2564)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

856:                                              ; preds = %853
  %857 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %857, label %858, label %859

858:                                              ; preds = %856
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2565)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

859:                                              ; preds = %856
  %860 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %860, label %861, label %862

861:                                              ; preds = %859
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2566)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

862:                                              ; preds = %859
  %863 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %863, label %864, label %865

864:                                              ; preds = %862
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2567)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

865:                                              ; preds = %862
  %866 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %866, label %867, label %868

867:                                              ; preds = %865
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2568)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

868:                                              ; preds = %865
  %869 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %869, label %870, label %871

870:                                              ; preds = %868
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2569)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

871:                                              ; preds = %868
  %872 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %872, label %873, label %874

873:                                              ; preds = %871
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2570)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

874:                                              ; preds = %871
  %875 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %875, label %876, label %877

876:                                              ; preds = %874
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2571)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

877:                                              ; preds = %874
  %878 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %878, label %879, label %880

879:                                              ; preds = %877
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2572)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

880:                                              ; preds = %877
  %881 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %881, label %882, label %883

882:                                              ; preds = %880
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2573)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

883:                                              ; preds = %880
  %884 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %884, label %885, label %886

885:                                              ; preds = %883
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2574)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

886:                                              ; preds = %883
  %887 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %888 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 65535)
  %889 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %890 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %891

891:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 2, ptr %34) #4
  %892 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %892, label %894, label %893

893:                                              ; preds = %891
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2578)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %904

894:                                              ; preds = %891
  %895 = call zeroext i1 @cmp_object_as_ushort(ptr noundef %4, ptr noundef %34)
  br i1 %895, label %898, label %896

896:                                              ; preds = %894
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2578)
  %897 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.411, ptr noundef %897)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %904

898:                                              ; preds = %894
  %899 = load i16, ptr %34, align 2, !tbaa !8
  %900 = zext i16 %899 to i32
  %901 = icmp ne i32 %900, 65535
  br i1 %901, label %902, label %903

902:                                              ; preds = %898
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2578)
  call void (ptr, ...) @error_printf(ptr noundef @.str.417)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %904

903:                                              ; preds = %898
  store i32 0, ptr %6, align 4
  br label %904

904:                                              ; preds = %903, %902, %896, %893
  call void @llvm.lifetime.end.p0(i64 2, ptr %34) #4
  %905 = load i32, ptr %6, align 4
  switch i32 %905, label %2160 [
    i32 0, label %906
  ]

906:                                              ; preds = %904
  br label %907

907:                                              ; preds = %906
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #4
  %910 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %910, label %912, label %911

911:                                              ; preds = %909
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2579)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %921

912:                                              ; preds = %909
  %913 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %35)
  br i1 %913, label %916, label %914

914:                                              ; preds = %912
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2579)
  %915 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %915)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %921

916:                                              ; preds = %912
  %917 = load i32, ptr %35, align 4, !tbaa !10
  %918 = icmp ne i32 %917, 65535
  br i1 %918, label %919, label %920

919:                                              ; preds = %916
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2579)
  call void (ptr, ...) @error_printf(ptr noundef @.str.417)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %921

920:                                              ; preds = %916
  store i32 0, ptr %6, align 4
  br label %921

921:                                              ; preds = %920, %919, %914, %911
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #4
  %922 = load i32, ptr %6, align 4
  switch i32 %922, label %2160 [
    i32 0, label %923
  ]

923:                                              ; preds = %921
  br label %924

924:                                              ; preds = %923
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #4
  %927 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %927, label %929, label %928

928:                                              ; preds = %926
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2580)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %938

929:                                              ; preds = %926
  %930 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %36)
  br i1 %930, label %933, label %931

931:                                              ; preds = %929
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2580)
  %932 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %932)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %938

933:                                              ; preds = %929
  %934 = load i64, ptr %36, align 8, !tbaa !12
  %935 = icmp ne i64 %934, 65535
  br i1 %935, label %936, label %937

936:                                              ; preds = %933
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2580)
  call void (ptr, ...) @error_printf(ptr noundef @.str.417)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %938

937:                                              ; preds = %933
  store i32 0, ptr %6, align 4
  br label %938

938:                                              ; preds = %937, %936, %931, %928
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #4
  %939 = load i32, ptr %6, align 4
  switch i32 %939, label %2160 [
    i32 0, label %940
  ]

940:                                              ; preds = %938
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #4
  %944 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %944, label %946, label %945

945:                                              ; preds = %943
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2586)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %955

946:                                              ; preds = %943
  %947 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %37)
  br i1 %947, label %950, label %948

948:                                              ; preds = %946
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2586)
  %949 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %949)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %955

950:                                              ; preds = %946
  %951 = load i64, ptr %37, align 8, !tbaa !12
  %952 = icmp ne i64 %951, 65535
  br i1 %952, label %953, label %954

953:                                              ; preds = %950
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2586)
  call void (ptr, ...) @error_printf(ptr noundef @.str.417)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %955

954:                                              ; preds = %950
  store i32 0, ptr %6, align 4
  br label %955

955:                                              ; preds = %954, %953, %948, %945
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #4
  %956 = load i32, ptr %6, align 4
  switch i32 %956, label %2160 [
    i32 0, label %957
  ]

957:                                              ; preds = %955
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  %960 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %960, label %961, label %962

961:                                              ; preds = %959
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2587)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

962:                                              ; preds = %959
  %963 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %963, label %964, label %965

964:                                              ; preds = %962
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2588)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

965:                                              ; preds = %962
  %966 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %966, label %967, label %968

967:                                              ; preds = %965
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2589)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

968:                                              ; preds = %965
  %969 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %969, label %970, label %971

970:                                              ; preds = %968
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2590)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

971:                                              ; preds = %968
  %972 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %972, label %973, label %974

973:                                              ; preds = %971
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2591)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

974:                                              ; preds = %971
  %975 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %975, label %976, label %977

976:                                              ; preds = %974
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2592)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

977:                                              ; preds = %974
  %978 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %978, label %979, label %980

979:                                              ; preds = %977
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2593)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

980:                                              ; preds = %977
  %981 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %981, label %982, label %983

982:                                              ; preds = %980
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2594)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

983:                                              ; preds = %980
  %984 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %984, label %985, label %986

985:                                              ; preds = %983
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2595)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

986:                                              ; preds = %983
  %987 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %987, label %988, label %989

988:                                              ; preds = %986
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2596)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

989:                                              ; preds = %986
  %990 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %990, label %991, label %992

991:                                              ; preds = %989
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2597)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

992:                                              ; preds = %989
  %993 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %993, label %994, label %995

994:                                              ; preds = %992
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2598)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

995:                                              ; preds = %992
  %996 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %996, label %997, label %998

997:                                              ; preds = %995
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2599)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

998:                                              ; preds = %995
  %999 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %999, label %1000, label %1001

1000:                                             ; preds = %998
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2600)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1001:                                             ; preds = %998
  %1002 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1003 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 65536)
  %1004 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1005 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1006

1006:                                             ; preds = %1001
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #4
  %1007 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1007, label %1009, label %1008

1008:                                             ; preds = %1006
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2603)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1018

1009:                                             ; preds = %1006
  %1010 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %38)
  br i1 %1010, label %1013, label %1011

1011:                                             ; preds = %1009
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2603)
  %1012 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %1012)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1018

1013:                                             ; preds = %1009
  %1014 = load i32, ptr %38, align 4, !tbaa !10
  %1015 = icmp ne i32 %1014, 65536
  br i1 %1015, label %1016, label %1017

1016:                                             ; preds = %1013
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2603)
  call void (ptr, ...) @error_printf(ptr noundef @.str.418)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1018

1017:                                             ; preds = %1013
  store i32 0, ptr %6, align 4
  br label %1018

1018:                                             ; preds = %1017, %1016, %1011, %1008
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #4
  %1019 = load i32, ptr %6, align 4
  switch i32 %1019, label %2160 [
    i32 0, label %1020
  ]

1020:                                             ; preds = %1018
  br label %1021

1021:                                             ; preds = %1020
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #4
  %1024 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1024, label %1026, label %1025

1025:                                             ; preds = %1023
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2604)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1035

1026:                                             ; preds = %1023
  %1027 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %39)
  br i1 %1027, label %1030, label %1028

1028:                                             ; preds = %1026
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2604)
  %1029 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %1029)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1035

1030:                                             ; preds = %1026
  %1031 = load i64, ptr %39, align 8, !tbaa !12
  %1032 = icmp ne i64 %1031, 65536
  br i1 %1032, label %1033, label %1034

1033:                                             ; preds = %1030
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2604)
  call void (ptr, ...) @error_printf(ptr noundef @.str.418)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1035

1034:                                             ; preds = %1030
  store i32 0, ptr %6, align 4
  br label %1035

1035:                                             ; preds = %1034, %1033, %1028, %1025
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #4
  %1036 = load i32, ptr %6, align 4
  switch i32 %1036, label %2160 [
    i32 0, label %1037
  ]

1037:                                             ; preds = %1035
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

1040:                                             ; preds = %1039
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #4
  %1041 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1041, label %1043, label %1042

1042:                                             ; preds = %1040
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2610)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1052

1043:                                             ; preds = %1040
  %1044 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %40)
  br i1 %1044, label %1047, label %1045

1045:                                             ; preds = %1043
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2610)
  %1046 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %1046)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1052

1047:                                             ; preds = %1043
  %1048 = load i64, ptr %40, align 8, !tbaa !12
  %1049 = icmp ne i64 %1048, 65536
  br i1 %1049, label %1050, label %1051

1050:                                             ; preds = %1047
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2610)
  call void (ptr, ...) @error_printf(ptr noundef @.str.418)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1052

1051:                                             ; preds = %1047
  store i32 0, ptr %6, align 4
  br label %1052

1052:                                             ; preds = %1051, %1050, %1045, %1042
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #4
  %1053 = load i32, ptr %6, align 4
  switch i32 %1053, label %2160 [
    i32 0, label %1054
  ]

1054:                                             ; preds = %1052
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055
  %1057 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1057, label %1058, label %1059

1058:                                             ; preds = %1056
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2611)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1059:                                             ; preds = %1056
  %1060 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1060, label %1061, label %1062

1061:                                             ; preds = %1059
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2612)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1062:                                             ; preds = %1059
  %1063 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1062
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2613)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1065:                                             ; preds = %1062
  %1066 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1065
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2614)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1068:                                             ; preds = %1065
  %1069 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1069, label %1070, label %1071

1070:                                             ; preds = %1068
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2615)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1071:                                             ; preds = %1068
  %1072 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1072, label %1073, label %1074

1073:                                             ; preds = %1071
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2616)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1074:                                             ; preds = %1071
  %1075 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1075, label %1076, label %1077

1076:                                             ; preds = %1074
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2617)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1077:                                             ; preds = %1074
  %1078 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1078, label %1079, label %1080

1079:                                             ; preds = %1077
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2618)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1080:                                             ; preds = %1077
  %1081 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1081, label %1082, label %1083

1082:                                             ; preds = %1080
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2619)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1083:                                             ; preds = %1080
  %1084 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1084, label %1085, label %1086

1085:                                             ; preds = %1083
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2620)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1086:                                             ; preds = %1083
  %1087 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1086
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2621)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1089:                                             ; preds = %1086
  %1090 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1090, label %1091, label %1092

1091:                                             ; preds = %1089
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2622)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1092:                                             ; preds = %1089
  %1093 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1093, label %1094, label %1095

1094:                                             ; preds = %1092
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2623)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1095:                                             ; preds = %1092
  %1096 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1095
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2624)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1098:                                             ; preds = %1095
  %1099 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1099, label %1100, label %1101

1100:                                             ; preds = %1098
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2625)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1101:                                             ; preds = %1098
  %1102 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1102, label %1103, label %1104

1103:                                             ; preds = %1101
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2626)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1104:                                             ; preds = %1101
  %1105 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1106 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 4294967295)
  %1107 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1108 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1109

1109:                                             ; preds = %1104
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #4
  %1110 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1110, label %1112, label %1111

1111:                                             ; preds = %1109
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2630)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1122

1112:                                             ; preds = %1109
  %1113 = call zeroext i1 @cmp_object_as_uint(ptr noundef %4, ptr noundef %41)
  br i1 %1113, label %1116, label %1114

1114:                                             ; preds = %1112
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2630)
  %1115 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.412, ptr noundef %1115)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1122

1116:                                             ; preds = %1112
  %1117 = load i32, ptr %41, align 4, !tbaa !10
  %1118 = zext i32 %1117 to i64
  %1119 = icmp ne i64 %1118, 4294967295
  br i1 %1119, label %1120, label %1121

1120:                                             ; preds = %1116
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2630)
  call void (ptr, ...) @error_printf(ptr noundef @.str.419)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1122

1121:                                             ; preds = %1116
  store i32 0, ptr %6, align 4
  br label %1122

1122:                                             ; preds = %1121, %1120, %1114, %1111
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #4
  %1123 = load i32, ptr %6, align 4
  switch i32 %1123, label %2160 [
    i32 0, label %1124
  ]

1124:                                             ; preds = %1122
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

1127:                                             ; preds = %1126
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #4
  %1128 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1128, label %1130, label %1129

1129:                                             ; preds = %1127
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2632)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1139

1130:                                             ; preds = %1127
  %1131 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %42)
  br i1 %1131, label %1134, label %1132

1132:                                             ; preds = %1130
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2632)
  %1133 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %1133)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1139

1134:                                             ; preds = %1130
  %1135 = load i64, ptr %42, align 8, !tbaa !12
  %1136 = icmp ne i64 %1135, 4294967295
  br i1 %1136, label %1137, label %1138

1137:                                             ; preds = %1134
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2632)
  call void (ptr, ...) @error_printf(ptr noundef @.str.419)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1139

1138:                                             ; preds = %1134
  store i32 0, ptr %6, align 4
  br label %1139

1139:                                             ; preds = %1138, %1137, %1132, %1129
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #4
  %1140 = load i32, ptr %6, align 4
  switch i32 %1140, label %2160 [
    i32 0, label %1141
  ]

1141:                                             ; preds = %1139
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #4
  %1145 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1145, label %1147, label %1146

1146:                                             ; preds = %1144
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2638)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1156

1147:                                             ; preds = %1144
  %1148 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %43)
  br i1 %1148, label %1151, label %1149

1149:                                             ; preds = %1147
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2638)
  %1150 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %1150)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1156

1151:                                             ; preds = %1147
  %1152 = load i64, ptr %43, align 8, !tbaa !12
  %1153 = icmp ne i64 %1152, 4294967295
  br i1 %1153, label %1154, label %1155

1154:                                             ; preds = %1151
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2638)
  call void (ptr, ...) @error_printf(ptr noundef @.str.419)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1156

1155:                                             ; preds = %1151
  store i32 0, ptr %6, align 4
  br label %1156

1156:                                             ; preds = %1155, %1154, %1149, %1146
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #4
  %1157 = load i32, ptr %6, align 4
  switch i32 %1157, label %2160 [
    i32 0, label %1158
  ]

1158:                                             ; preds = %1156
  br label %1159

1159:                                             ; preds = %1158
  br label %1160

1160:                                             ; preds = %1159
  %1161 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1161, label %1162, label %1163

1162:                                             ; preds = %1160
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2639)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1163:                                             ; preds = %1160
  %1164 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1164, label %1165, label %1166

1165:                                             ; preds = %1163
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2640)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1166:                                             ; preds = %1163
  %1167 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1167, label %1168, label %1169

1168:                                             ; preds = %1166
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2641)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1169:                                             ; preds = %1166
  %1170 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1170, label %1171, label %1172

1171:                                             ; preds = %1169
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2642)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1172:                                             ; preds = %1169
  %1173 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1173, label %1174, label %1175

1174:                                             ; preds = %1172
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2643)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1175:                                             ; preds = %1172
  %1176 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1176, label %1177, label %1178

1177:                                             ; preds = %1175
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2644)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1178:                                             ; preds = %1175
  %1179 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1179, label %1180, label %1181

1180:                                             ; preds = %1178
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2645)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1181:                                             ; preds = %1178
  %1182 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1182, label %1183, label %1184

1183:                                             ; preds = %1181
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2646)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1184:                                             ; preds = %1181
  %1185 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1185, label %1186, label %1187

1186:                                             ; preds = %1184
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2647)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1187:                                             ; preds = %1184
  %1188 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1188, label %1189, label %1190

1189:                                             ; preds = %1187
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2648)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1190:                                             ; preds = %1187
  %1191 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1191, label %1192, label %1193

1192:                                             ; preds = %1190
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2649)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1193:                                             ; preds = %1190
  %1194 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1194, label %1195, label %1196

1195:                                             ; preds = %1193
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2650)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1196:                                             ; preds = %1193
  %1197 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1197, label %1198, label %1199

1198:                                             ; preds = %1196
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2651)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1199:                                             ; preds = %1196
  %1200 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1200, label %1201, label %1202

1201:                                             ; preds = %1199
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2652)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1202:                                             ; preds = %1199
  %1203 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1203, label %1204, label %1205

1204:                                             ; preds = %1202
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2653)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1205:                                             ; preds = %1202
  %1206 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1206, label %1207, label %1208

1207:                                             ; preds = %1205
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2654)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1208:                                             ; preds = %1205
  %1209 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1210 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 4294967296)
  %1211 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1212 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1213

1213:                                             ; preds = %1208
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #4
  %1214 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1214, label %1216, label %1215

1215:                                             ; preds = %1213
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2658)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1225

1216:                                             ; preds = %1213
  %1217 = call zeroext i1 @cmp_object_as_ulong(ptr noundef %4, ptr noundef %44)
  br i1 %1217, label %1220, label %1218

1218:                                             ; preds = %1216
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2658)
  %1219 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.413, ptr noundef %1219)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1225

1220:                                             ; preds = %1216
  %1221 = load i64, ptr %44, align 8, !tbaa !12
  %1222 = icmp ne i64 %1221, 4294967296
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1220
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2658)
  call void (ptr, ...) @error_printf(ptr noundef @.str.420)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1225

1224:                                             ; preds = %1220
  store i32 0, ptr %6, align 4
  br label %1225

1225:                                             ; preds = %1224, %1223, %1218, %1215
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #4
  %1226 = load i32, ptr %6, align 4
  switch i32 %1226, label %2160 [
    i32 0, label %1227
  ]

1227:                                             ; preds = %1225
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #4
  %1231 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1231, label %1233, label %1232

1232:                                             ; preds = %1230
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2664)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1242

1233:                                             ; preds = %1230
  %1234 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef %4, ptr noundef %45)
  br i1 %1234, label %1237, label %1235

1235:                                             ; preds = %1233
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2664)
  %1236 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.414, ptr noundef %1236)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1242

1237:                                             ; preds = %1233
  %1238 = load i64, ptr %45, align 8, !tbaa !12
  %1239 = icmp ne i64 %1238, 4294967296
  br i1 %1239, label %1240, label %1241

1240:                                             ; preds = %1237
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2664)
  call void (ptr, ...) @error_printf(ptr noundef @.str.420)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1242

1241:                                             ; preds = %1237
  store i32 0, ptr %6, align 4
  br label %1242

1242:                                             ; preds = %1241, %1240, %1235, %1232
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #4
  %1243 = load i32, ptr %6, align 4
  switch i32 %1243, label %2160 [
    i32 0, label %1244
  ]

1244:                                             ; preds = %1242
  br label %1245

1245:                                             ; preds = %1244
  br label %1246

1246:                                             ; preds = %1245
  %1247 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1247, label %1248, label %1249

1248:                                             ; preds = %1246
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2665)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1249:                                             ; preds = %1246
  %1250 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1250, label %1251, label %1252

1251:                                             ; preds = %1249
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2666)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1252:                                             ; preds = %1249
  %1253 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1253, label %1254, label %1255

1254:                                             ; preds = %1252
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2667)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1255:                                             ; preds = %1252
  %1256 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1256, label %1257, label %1258

1257:                                             ; preds = %1255
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2668)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1258:                                             ; preds = %1255
  %1259 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1259, label %1260, label %1261

1260:                                             ; preds = %1258
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2669)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1261:                                             ; preds = %1258
  %1262 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1262, label %1263, label %1264

1263:                                             ; preds = %1261
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2670)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1264:                                             ; preds = %1261
  %1265 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1265, label %1266, label %1267

1266:                                             ; preds = %1264
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2671)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1267:                                             ; preds = %1264
  %1268 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1268, label %1269, label %1270

1269:                                             ; preds = %1267
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2672)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1270:                                             ; preds = %1267
  %1271 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1271, label %1272, label %1273

1272:                                             ; preds = %1270
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2673)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1273:                                             ; preds = %1270
  %1274 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1274, label %1275, label %1276

1275:                                             ; preds = %1273
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2674)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1276:                                             ; preds = %1273
  %1277 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1277, label %1278, label %1279

1278:                                             ; preds = %1276
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2675)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1279:                                             ; preds = %1276
  %1280 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1280, label %1281, label %1282

1281:                                             ; preds = %1279
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2676)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1282:                                             ; preds = %1279
  %1283 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1283, label %1284, label %1285

1284:                                             ; preds = %1282
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2677)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1285:                                             ; preds = %1282
  %1286 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1286, label %1287, label %1288

1287:                                             ; preds = %1285
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2678)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1288:                                             ; preds = %1285
  %1289 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1289, label %1290, label %1291

1290:                                             ; preds = %1288
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2679)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1291:                                             ; preds = %1288
  %1292 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1292, label %1293, label %1294

1293:                                             ; preds = %1291
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2680)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1294:                                             ; preds = %1291
  %1295 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1295, label %1296, label %1297

1296:                                             ; preds = %1294
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2681)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1297:                                             ; preds = %1294
  %1298 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1299 = call zeroext i1 @cmp_write_float(ptr noundef %3, float noundef 1.000000e+00)
  %1300 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1301 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1302

1302:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #4
  %1303 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1303, label %1305, label %1304

1304:                                             ; preds = %1302
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2684)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1314

1305:                                             ; preds = %1302
  %1306 = call zeroext i1 @cmp_object_as_float(ptr noundef %4, ptr noundef %46)
  br i1 %1306, label %1309, label %1307

1307:                                             ; preds = %1305
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2684)
  %1308 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.421, ptr noundef %1308)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1314

1309:                                             ; preds = %1305
  %1310 = load float, ptr %46, align 4, !tbaa !14
  %1311 = fcmp une float %1310, 1.000000e+00
  br i1 %1311, label %1312, label %1313

1312:                                             ; preds = %1309
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2684)
  call void (ptr, ...) @error_printf(ptr noundef @.str.422)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1314

1313:                                             ; preds = %1309
  store i32 0, ptr %6, align 4
  br label %1314

1314:                                             ; preds = %1313, %1312, %1307, %1304
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #4
  %1315 = load i32, ptr %6, align 4
  switch i32 %1315, label %2160 [
    i32 0, label %1316
  ]

1316:                                             ; preds = %1314
  br label %1317

1317:                                             ; preds = %1316
  br label %1318

1318:                                             ; preds = %1317
  %1319 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1319, label %1320, label %1321

1320:                                             ; preds = %1318
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2685)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1321:                                             ; preds = %1318
  %1322 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1322, label %1323, label %1324

1323:                                             ; preds = %1321
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2686)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1324:                                             ; preds = %1321
  %1325 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1325, label %1326, label %1327

1326:                                             ; preds = %1324
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2687)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1327:                                             ; preds = %1324
  %1328 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1328, label %1329, label %1330

1329:                                             ; preds = %1327
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2688)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1330:                                             ; preds = %1327
  %1331 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1331, label %1332, label %1333

1332:                                             ; preds = %1330
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2689)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1333:                                             ; preds = %1330
  %1334 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1334, label %1335, label %1336

1335:                                             ; preds = %1333
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2690)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1336:                                             ; preds = %1333
  %1337 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1337, label %1338, label %1339

1338:                                             ; preds = %1336
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2691)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1339:                                             ; preds = %1336
  %1340 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1340, label %1341, label %1342

1341:                                             ; preds = %1339
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2692)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1342:                                             ; preds = %1339
  %1343 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1343, label %1344, label %1345

1344:                                             ; preds = %1342
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2693)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1345:                                             ; preds = %1342
  %1346 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1346, label %1347, label %1348

1347:                                             ; preds = %1345
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2694)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1348:                                             ; preds = %1345
  %1349 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1349, label %1350, label %1351

1350:                                             ; preds = %1348
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2695)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1351:                                             ; preds = %1348
  %1352 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1352, label %1353, label %1354

1353:                                             ; preds = %1351
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2696)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1354:                                             ; preds = %1351
  %1355 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1355, label %1356, label %1357

1356:                                             ; preds = %1354
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2697)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1357:                                             ; preds = %1354
  %1358 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1358, label %1359, label %1360

1359:                                             ; preds = %1357
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2698)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1360:                                             ; preds = %1357
  %1361 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1361, label %1362, label %1363

1362:                                             ; preds = %1360
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2699)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1363:                                             ; preds = %1360
  %1364 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1364, label %1365, label %1366

1365:                                             ; preds = %1363
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2700)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1366:                                             ; preds = %1363
  %1367 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1367, label %1368, label %1369

1368:                                             ; preds = %1366
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2701)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1369:                                             ; preds = %1366
  %1370 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1370, label %1371, label %1372

1371:                                             ; preds = %1369
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2702)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1372:                                             ; preds = %1369
  %1373 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1374 = call zeroext i1 @cmp_write_double(ptr noundef %3, double noundef 1.000000e+00)
  %1375 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1376 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1377

1377:                                             ; preds = %1372
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #4
  %1378 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1378, label %1380, label %1379

1379:                                             ; preds = %1377
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2705)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1389

1380:                                             ; preds = %1377
  %1381 = call zeroext i1 @cmp_object_as_double(ptr noundef %4, ptr noundef %47)
  br i1 %1381, label %1384, label %1382

1382:                                             ; preds = %1380
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2705)
  %1383 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.423, ptr noundef %1383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1389

1384:                                             ; preds = %1380
  %1385 = load double, ptr %47, align 8, !tbaa !16
  %1386 = fcmp une double %1385, 1.000000e+00
  br i1 %1386, label %1387, label %1388

1387:                                             ; preds = %1384
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2705)
  call void (ptr, ...) @error_printf(ptr noundef @.str.424)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1389

1388:                                             ; preds = %1384
  store i32 0, ptr %6, align 4
  br label %1389

1389:                                             ; preds = %1388, %1387, %1382, %1379
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #4
  %1390 = load i32, ptr %6, align 4
  switch i32 %1390, label %2160 [
    i32 0, label %1391
  ]

1391:                                             ; preds = %1389
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  %1394 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1394, label %1395, label %1396

1395:                                             ; preds = %1393
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2706)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1396:                                             ; preds = %1393
  %1397 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1397, label %1398, label %1399

1398:                                             ; preds = %1396
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2707)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1399:                                             ; preds = %1396
  %1400 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1400, label %1401, label %1402

1401:                                             ; preds = %1399
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2708)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1402:                                             ; preds = %1399
  %1403 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1403, label %1404, label %1405

1404:                                             ; preds = %1402
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2709)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1405:                                             ; preds = %1402
  %1406 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1406, label %1407, label %1408

1407:                                             ; preds = %1405
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2710)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1408:                                             ; preds = %1405
  %1409 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1409, label %1410, label %1411

1410:                                             ; preds = %1408
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2711)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1411:                                             ; preds = %1408
  %1412 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1412, label %1413, label %1414

1413:                                             ; preds = %1411
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2712)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1414:                                             ; preds = %1411
  %1415 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1415, label %1416, label %1417

1416:                                             ; preds = %1414
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2713)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1417:                                             ; preds = %1414
  %1418 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1418, label %1419, label %1420

1419:                                             ; preds = %1417
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2714)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1420:                                             ; preds = %1417
  %1421 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1421, label %1422, label %1423

1422:                                             ; preds = %1420
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2715)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1423:                                             ; preds = %1420
  %1424 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1424, label %1425, label %1426

1425:                                             ; preds = %1423
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2716)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1426:                                             ; preds = %1423
  %1427 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1427, label %1428, label %1429

1428:                                             ; preds = %1426
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2717)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1429:                                             ; preds = %1426
  %1430 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1430, label %1431, label %1432

1431:                                             ; preds = %1429
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2718)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1432:                                             ; preds = %1429
  %1433 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1433, label %1434, label %1435

1434:                                             ; preds = %1432
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2719)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1435:                                             ; preds = %1432
  %1436 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1436, label %1437, label %1438

1437:                                             ; preds = %1435
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2720)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1438:                                             ; preds = %1435
  %1439 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1439, label %1440, label %1441

1440:                                             ; preds = %1438
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2721)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1441:                                             ; preds = %1438
  %1442 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1442, label %1443, label %1444

1443:                                             ; preds = %1441
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2722)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1444:                                             ; preds = %1441
  %1445 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1445, label %1446, label %1447

1446:                                             ; preds = %1444
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2723)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1447:                                             ; preds = %1444
  %1448 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1449 = call zeroext i1 @cmp_write_nil(ptr noundef %3)
  %1450 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1451 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  %1452 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1452, label %1454, label %1453

1453:                                             ; preds = %1447
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2726)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1454:                                             ; preds = %1447
  %1455 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1455, label %1456, label %1457

1456:                                             ; preds = %1454
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2727)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1457:                                             ; preds = %1454
  %1458 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1458, label %1459, label %1460

1459:                                             ; preds = %1457
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2728)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1460:                                             ; preds = %1457
  %1461 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2729)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1463:                                             ; preds = %1460
  %1464 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1464, label %1465, label %1466

1465:                                             ; preds = %1463
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2730)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1466:                                             ; preds = %1463
  %1467 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1466
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2731)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1469:                                             ; preds = %1466
  %1470 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1470, label %1471, label %1472

1471:                                             ; preds = %1469
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2732)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1472:                                             ; preds = %1469
  %1473 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1473, label %1474, label %1475

1474:                                             ; preds = %1472
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2733)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1475:                                             ; preds = %1472
  %1476 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1476, label %1477, label %1478

1477:                                             ; preds = %1475
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2734)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1478:                                             ; preds = %1475
  %1479 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1479, label %1480, label %1481

1480:                                             ; preds = %1478
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2735)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1481:                                             ; preds = %1478
  %1482 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1482, label %1483, label %1484

1483:                                             ; preds = %1481
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2736)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1484:                                             ; preds = %1481
  %1485 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1485, label %1486, label %1487

1486:                                             ; preds = %1484
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2737)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1487:                                             ; preds = %1484
  %1488 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1488, label %1489, label %1490

1489:                                             ; preds = %1487
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2738)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1490:                                             ; preds = %1487
  %1491 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1491, label %1492, label %1493

1492:                                             ; preds = %1490
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2739)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1493:                                             ; preds = %1490
  %1494 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1494, label %1495, label %1496

1495:                                             ; preds = %1493
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2740)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1496:                                             ; preds = %1493
  %1497 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1497, label %1498, label %1499

1498:                                             ; preds = %1496
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2741)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1499:                                             ; preds = %1496
  %1500 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1500, label %1501, label %1502

1501:                                             ; preds = %1499
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2742)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1502:                                             ; preds = %1499
  %1503 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1503, label %1504, label %1505

1504:                                             ; preds = %1502
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2743)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1505:                                             ; preds = %1502
  %1506 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1506, label %1507, label %1508

1507:                                             ; preds = %1505
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2744)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1508:                                             ; preds = %1505
  %1509 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1510 = call zeroext i1 @cmp_write_true(ptr noundef %3)
  %1511 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1512 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1513

1513:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #4
  %1514 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1514, label %1516, label %1515

1515:                                             ; preds = %1513
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2747)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1527

1516:                                             ; preds = %1513
  %1517 = call zeroext i1 @cmp_object_as_bool(ptr noundef %4, ptr noundef %48)
  br i1 %1517, label %1520, label %1518

1518:                                             ; preds = %1516
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2747)
  %1519 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.425, ptr noundef %1519)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1527

1520:                                             ; preds = %1516
  %1521 = load i8, ptr %48, align 1, !tbaa !18, !range !20, !noundef !21
  %1522 = trunc i8 %1521 to i1
  %1523 = zext i1 %1522 to i32
  %1524 = icmp ne i32 %1523, 1
  br i1 %1524, label %1525, label %1526

1525:                                             ; preds = %1520
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2747)
  call void (ptr, ...) @error_printf(ptr noundef @.str.426)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1527

1526:                                             ; preds = %1520
  store i32 0, ptr %6, align 4
  br label %1527

1527:                                             ; preds = %1526, %1525, %1518, %1515
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #4
  %1528 = load i32, ptr %6, align 4
  switch i32 %1528, label %2160 [
    i32 0, label %1529
  ]

1529:                                             ; preds = %1527
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  %1532 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1532, label %1533, label %1534

1533:                                             ; preds = %1531
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2748)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1534:                                             ; preds = %1531
  %1535 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1535, label %1536, label %1537

1536:                                             ; preds = %1534
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2749)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1537:                                             ; preds = %1534
  %1538 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1538, label %1539, label %1540

1539:                                             ; preds = %1537
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2750)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1540:                                             ; preds = %1537
  %1541 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1541, label %1542, label %1543

1542:                                             ; preds = %1540
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2751)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1543:                                             ; preds = %1540
  %1544 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1544, label %1545, label %1546

1545:                                             ; preds = %1543
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2752)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1546:                                             ; preds = %1543
  %1547 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1547, label %1548, label %1549

1548:                                             ; preds = %1546
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2753)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1549:                                             ; preds = %1546
  %1550 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1550, label %1551, label %1552

1551:                                             ; preds = %1549
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2754)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1552:                                             ; preds = %1549
  %1553 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1553, label %1554, label %1555

1554:                                             ; preds = %1552
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2755)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1555:                                             ; preds = %1552
  %1556 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1556, label %1557, label %1558

1557:                                             ; preds = %1555
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2756)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1558:                                             ; preds = %1555
  %1559 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1559, label %1560, label %1561

1560:                                             ; preds = %1558
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2757)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1561:                                             ; preds = %1558
  %1562 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1562, label %1563, label %1564

1563:                                             ; preds = %1561
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2758)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1564:                                             ; preds = %1561
  %1565 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1565, label %1566, label %1567

1566:                                             ; preds = %1564
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2759)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1567:                                             ; preds = %1564
  %1568 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1567
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2760)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1570:                                             ; preds = %1567
  %1571 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1570
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2761)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1573:                                             ; preds = %1570
  %1574 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1574, label %1575, label %1576

1575:                                             ; preds = %1573
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2762)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1576:                                             ; preds = %1573
  %1577 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1577, label %1578, label %1579

1578:                                             ; preds = %1576
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2763)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1579:                                             ; preds = %1576
  %1580 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1580, label %1581, label %1582

1581:                                             ; preds = %1579
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2764)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1582:                                             ; preds = %1579
  %1583 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1583, label %1584, label %1585

1584:                                             ; preds = %1582
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2765)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1585:                                             ; preds = %1582
  %1586 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1587 = call zeroext i1 @cmp_write_false(ptr noundef %3)
  %1588 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1589 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1590

1590:                                             ; preds = %1585
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #4
  %1591 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1591, label %1593, label %1592

1592:                                             ; preds = %1590
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2768)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1604

1593:                                             ; preds = %1590
  %1594 = call zeroext i1 @cmp_object_as_bool(ptr noundef %4, ptr noundef %49)
  br i1 %1594, label %1597, label %1595

1595:                                             ; preds = %1593
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2768)
  %1596 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.425, ptr noundef %1596)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1604

1597:                                             ; preds = %1593
  %1598 = load i8, ptr %49, align 1, !tbaa !18, !range !20, !noundef !21
  %1599 = trunc i8 %1598 to i1
  %1600 = zext i1 %1599 to i32
  %1601 = icmp ne i32 %1600, 0
  br i1 %1601, label %1602, label %1603

1602:                                             ; preds = %1597
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2768)
  call void (ptr, ...) @error_printf(ptr noundef @.str.427)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1604

1603:                                             ; preds = %1597
  store i32 0, ptr %6, align 4
  br label %1604

1604:                                             ; preds = %1603, %1602, %1595, %1592
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #4
  %1605 = load i32, ptr %6, align 4
  switch i32 %1605, label %2160 [
    i32 0, label %1606
  ]

1606:                                             ; preds = %1604
  br label %1607

1607:                                             ; preds = %1606
  br label %1608

1608:                                             ; preds = %1607
  %1609 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1609, label %1610, label %1611

1610:                                             ; preds = %1608
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2769)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1611:                                             ; preds = %1608
  %1612 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1612, label %1613, label %1614

1613:                                             ; preds = %1611
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2770)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1614:                                             ; preds = %1611
  %1615 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1615, label %1616, label %1617

1616:                                             ; preds = %1614
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2771)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1617:                                             ; preds = %1614
  %1618 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1618, label %1619, label %1620

1619:                                             ; preds = %1617
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2772)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1620:                                             ; preds = %1617
  %1621 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1621, label %1622, label %1623

1622:                                             ; preds = %1620
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2773)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1623:                                             ; preds = %1620
  %1624 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1624, label %1625, label %1626

1625:                                             ; preds = %1623
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2774)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1626:                                             ; preds = %1623
  %1627 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1627, label %1628, label %1629

1628:                                             ; preds = %1626
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2775)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1629:                                             ; preds = %1626
  %1630 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1630, label %1631, label %1632

1631:                                             ; preds = %1629
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2776)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1632:                                             ; preds = %1629
  %1633 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1633, label %1634, label %1635

1634:                                             ; preds = %1632
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2777)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1635:                                             ; preds = %1632
  %1636 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1636, label %1637, label %1638

1637:                                             ; preds = %1635
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2778)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1638:                                             ; preds = %1635
  %1639 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1639, label %1640, label %1641

1640:                                             ; preds = %1638
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2779)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1641:                                             ; preds = %1638
  %1642 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1642, label %1643, label %1644

1643:                                             ; preds = %1641
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2780)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1644:                                             ; preds = %1641
  %1645 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1645, label %1646, label %1647

1646:                                             ; preds = %1644
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2781)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1647:                                             ; preds = %1644
  %1648 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1648, label %1649, label %1650

1649:                                             ; preds = %1647
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2782)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1650:                                             ; preds = %1647
  %1651 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1651, label %1652, label %1653

1652:                                             ; preds = %1650
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2783)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1653:                                             ; preds = %1650
  %1654 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1654, label %1655, label %1656

1655:                                             ; preds = %1653
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2784)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1656:                                             ; preds = %1653
  %1657 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1657, label %1658, label %1659

1658:                                             ; preds = %1656
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2785)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1659:                                             ; preds = %1656
  %1660 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1660, label %1661, label %1662

1661:                                             ; preds = %1659
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2786)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1662:                                             ; preds = %1659
  %1663 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1664 = call zeroext i1 @cmp_write_bool(ptr noundef %3, i1 noundef zeroext true)
  %1665 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1666 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1667

1667:                                             ; preds = %1662
  call void @llvm.lifetime.start.p0(i64 1, ptr %50) #4
  %1668 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1668, label %1670, label %1669

1669:                                             ; preds = %1667
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2789)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1681

1670:                                             ; preds = %1667
  %1671 = call zeroext i1 @cmp_object_as_bool(ptr noundef %4, ptr noundef %50)
  br i1 %1671, label %1674, label %1672

1672:                                             ; preds = %1670
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2789)
  %1673 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.425, ptr noundef %1673)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1681

1674:                                             ; preds = %1670
  %1675 = load i8, ptr %50, align 1, !tbaa !18, !range !20, !noundef !21
  %1676 = trunc i8 %1675 to i1
  %1677 = zext i1 %1676 to i32
  %1678 = icmp ne i32 %1677, 1
  br i1 %1678, label %1679, label %1680

1679:                                             ; preds = %1674
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2789)
  call void (ptr, ...) @error_printf(ptr noundef @.str.426)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1681

1680:                                             ; preds = %1674
  store i32 0, ptr %6, align 4
  br label %1681

1681:                                             ; preds = %1680, %1679, %1672, %1669
  call void @llvm.lifetime.end.p0(i64 1, ptr %50) #4
  %1682 = load i32, ptr %6, align 4
  switch i32 %1682, label %2160 [
    i32 0, label %1683
  ]

1683:                                             ; preds = %1681
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

1685:                                             ; preds = %1684
  %1686 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1686, label %1687, label %1688

1687:                                             ; preds = %1685
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2790)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1688:                                             ; preds = %1685
  %1689 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1689, label %1690, label %1691

1690:                                             ; preds = %1688
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2791)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1691:                                             ; preds = %1688
  %1692 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1692, label %1693, label %1694

1693:                                             ; preds = %1691
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2792)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1694:                                             ; preds = %1691
  %1695 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1695, label %1696, label %1697

1696:                                             ; preds = %1694
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2793)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1697:                                             ; preds = %1694
  %1698 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1698, label %1699, label %1700

1699:                                             ; preds = %1697
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2794)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1700:                                             ; preds = %1697
  %1701 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1701, label %1702, label %1703

1702:                                             ; preds = %1700
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2795)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1703:                                             ; preds = %1700
  %1704 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1704, label %1705, label %1706

1705:                                             ; preds = %1703
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2796)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1706:                                             ; preds = %1703
  %1707 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1707, label %1708, label %1709

1708:                                             ; preds = %1706
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2797)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1709:                                             ; preds = %1706
  %1710 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1710, label %1711, label %1712

1711:                                             ; preds = %1709
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2798)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1712:                                             ; preds = %1709
  %1713 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1713, label %1714, label %1715

1714:                                             ; preds = %1712
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2799)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1715:                                             ; preds = %1712
  %1716 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1716, label %1717, label %1718

1717:                                             ; preds = %1715
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2800)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1718:                                             ; preds = %1715
  %1719 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1719, label %1720, label %1721

1720:                                             ; preds = %1718
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2801)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1721:                                             ; preds = %1718
  %1722 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1722, label %1723, label %1724

1723:                                             ; preds = %1721
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2802)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1724:                                             ; preds = %1721
  %1725 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1725, label %1726, label %1727

1726:                                             ; preds = %1724
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2803)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1727:                                             ; preds = %1724
  %1728 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1728, label %1729, label %1730

1729:                                             ; preds = %1727
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2804)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1730:                                             ; preds = %1727
  %1731 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1731, label %1732, label %1733

1732:                                             ; preds = %1730
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2805)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1733:                                             ; preds = %1730
  %1734 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1734, label %1735, label %1736

1735:                                             ; preds = %1733
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2806)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1736:                                             ; preds = %1733
  %1737 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1737, label %1738, label %1739

1738:                                             ; preds = %1736
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2807)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1739:                                             ; preds = %1736
  %1740 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1741 = call zeroext i1 @cmp_write_bool(ptr noundef %3, i1 noundef zeroext false)
  %1742 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1743 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1744

1744:                                             ; preds = %1739
  call void @llvm.lifetime.start.p0(i64 1, ptr %51) #4
  %1745 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1745, label %1747, label %1746

1746:                                             ; preds = %1744
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2810)
  call void (ptr, ...) @error_printf(ptr noundef @.str.378, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1758

1747:                                             ; preds = %1744
  %1748 = call zeroext i1 @cmp_object_as_bool(ptr noundef %4, ptr noundef %51)
  br i1 %1748, label %1751, label %1749

1749:                                             ; preds = %1747
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2810)
  %1750 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.380, ptr noundef @.str.425, ptr noundef %1750)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1758

1751:                                             ; preds = %1747
  %1752 = load i8, ptr %51, align 1, !tbaa !18, !range !20, !noundef !21
  %1753 = trunc i8 %1752 to i1
  %1754 = zext i1 %1753 to i32
  %1755 = icmp ne i32 %1754, 0
  br i1 %1755, label %1756, label %1757

1756:                                             ; preds = %1751
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2810)
  call void (ptr, ...) @error_printf(ptr noundef @.str.427)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1758

1757:                                             ; preds = %1751
  store i32 0, ptr %6, align 4
  br label %1758

1758:                                             ; preds = %1757, %1756, %1749, %1746
  call void @llvm.lifetime.end.p0(i64 1, ptr %51) #4
  %1759 = load i32, ptr %6, align 4
  switch i32 %1759, label %2160 [
    i32 0, label %1760
  ]

1760:                                             ; preds = %1758
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  %1763 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1763, label %1764, label %1765

1764:                                             ; preds = %1762
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2811)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1765:                                             ; preds = %1762
  %1766 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1766, label %1767, label %1768

1767:                                             ; preds = %1765
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2812)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1768:                                             ; preds = %1765
  %1769 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1769, label %1770, label %1771

1770:                                             ; preds = %1768
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2813)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1771:                                             ; preds = %1768
  %1772 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1772, label %1773, label %1774

1773:                                             ; preds = %1771
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2814)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1774:                                             ; preds = %1771
  %1775 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1775, label %1776, label %1777

1776:                                             ; preds = %1774
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2815)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1777:                                             ; preds = %1774
  %1778 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1778, label %1779, label %1780

1779:                                             ; preds = %1777
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2816)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1780:                                             ; preds = %1777
  %1781 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1781, label %1782, label %1783

1782:                                             ; preds = %1780
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2817)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1783:                                             ; preds = %1780
  %1784 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1784, label %1785, label %1786

1785:                                             ; preds = %1783
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2818)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1786:                                             ; preds = %1783
  %1787 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1787, label %1788, label %1789

1788:                                             ; preds = %1786
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2819)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1789:                                             ; preds = %1786
  %1790 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1790, label %1791, label %1792

1791:                                             ; preds = %1789
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2820)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1792:                                             ; preds = %1789
  %1793 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1793, label %1794, label %1795

1794:                                             ; preds = %1792
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2821)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1795:                                             ; preds = %1792
  %1796 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1796, label %1797, label %1798

1797:                                             ; preds = %1795
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2822)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1798:                                             ; preds = %1795
  %1799 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1799, label %1800, label %1801

1800:                                             ; preds = %1798
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2823)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1801:                                             ; preds = %1798
  %1802 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1802, label %1803, label %1804

1803:                                             ; preds = %1801
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2824)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.401)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1804:                                             ; preds = %1801
  %1805 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1805, label %1806, label %1807

1806:                                             ; preds = %1804
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2825)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1807:                                             ; preds = %1804
  %1808 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1808, label %1809, label %1810

1809:                                             ; preds = %1807
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2826)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1810:                                             ; preds = %1807
  %1811 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1811, label %1812, label %1813

1812:                                             ; preds = %1810
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2827)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1813:                                             ; preds = %1810
  %1814 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1814, label %1815, label %1816

1815:                                             ; preds = %1813
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2828)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1816:                                             ; preds = %1813
  %1817 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1818 = call zeroext i1 @cmp_write_str(ptr noundef %3, ptr noundef @.str.428, i32 noundef 9)
  %1819 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1820 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1821

1821:                                             ; preds = %1816
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #4
  %1822 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1822, label %1824, label %1823

1823:                                             ; preds = %1821
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2831)
  call void (ptr, ...) @error_printf(ptr noundef @.str.429)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1835

1824:                                             ; preds = %1821
  %1825 = call zeroext i1 @cmp_object_as_str(ptr noundef %4, ptr noundef %52)
  br i1 %1825, label %1828, label %1826

1826:                                             ; preds = %1824
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2831)
  %1827 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.430, ptr noundef %1827)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1835

1828:                                             ; preds = %1824
  %1829 = call ptr @M_BufferGetDataAtCursor(ptr noundef %2)
  %1830 = call i32 @strcmp(ptr noundef %1829, ptr noundef @.str.428) #5
  %1831 = icmp ne i32 %1830, 0
  br i1 %1831, label %1832, label %1834

1832:                                             ; preds = %1828
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2831)
  %1833 = call ptr @M_BufferGetDataAtCursor(ptr noundef %2)
  call void (ptr, ...) @error_printf(ptr noundef @.str.431, ptr noundef %1833)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1835

1834:                                             ; preds = %1828
  store i32 0, ptr %6, align 4
  br label %1835

1835:                                             ; preds = %1834, %1832, %1826, %1823
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #4
  %1836 = load i32, ptr %6, align 4
  switch i32 %1836, label %2160 [
    i32 0, label %1837
  ]

1837:                                             ; preds = %1835
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

1839:                                             ; preds = %1838
  %1840 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1840, label %1841, label %1842

1841:                                             ; preds = %1839
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2832)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1842:                                             ; preds = %1839
  %1843 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1843, label %1844, label %1845

1844:                                             ; preds = %1842
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2833)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1845:                                             ; preds = %1842
  %1846 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1846, label %1847, label %1848

1847:                                             ; preds = %1845
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2834)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1848:                                             ; preds = %1845
  %1849 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1849, label %1850, label %1851

1850:                                             ; preds = %1848
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2835)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1851:                                             ; preds = %1848
  %1852 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1852, label %1853, label %1854

1853:                                             ; preds = %1851
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2836)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1854:                                             ; preds = %1851
  %1855 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1855, label %1856, label %1857

1856:                                             ; preds = %1854
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2837)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1857:                                             ; preds = %1854
  %1858 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1858, label %1859, label %1860

1859:                                             ; preds = %1857
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2838)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1860:                                             ; preds = %1857
  %1861 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1861, label %1862, label %1863

1862:                                             ; preds = %1860
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2839)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1863:                                             ; preds = %1860
  %1864 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1864, label %1865, label %1866

1865:                                             ; preds = %1863
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2840)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1866:                                             ; preds = %1863
  %1867 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1867, label %1868, label %1869

1868:                                             ; preds = %1866
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2841)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1869:                                             ; preds = %1866
  %1870 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1870, label %1871, label %1872

1871:                                             ; preds = %1869
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2842)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1872:                                             ; preds = %1869
  %1873 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1873, label %1874, label %1875

1874:                                             ; preds = %1872
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2843)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1875:                                             ; preds = %1872
  %1876 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1876, label %1877, label %1878

1877:                                             ; preds = %1875
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2844)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1878:                                             ; preds = %1875
  %1879 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1879, label %1880, label %1881

1880:                                             ; preds = %1878
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2845)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1881:                                             ; preds = %1878
  %1882 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1882, label %1883, label %1884

1883:                                             ; preds = %1881
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2846)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1884:                                             ; preds = %1881
  %1885 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1885, label %1886, label %1887

1886:                                             ; preds = %1884
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2847)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1887:                                             ; preds = %1884
  %1888 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1888, label %1889, label %1890

1889:                                             ; preds = %1887
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2848)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1890:                                             ; preds = %1887
  %1891 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1891, label %1892, label %1893

1892:                                             ; preds = %1890
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2849)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1893:                                             ; preds = %1890
  %1894 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1895 = call zeroext i1 @cmp_write_bin(ptr noundef %3, ptr noundef @.str.428, i32 noundef 9)
  %1896 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1897 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1898

1898:                                             ; preds = %1893
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #4
  %1899 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %1899, label %1901, label %1900

1900:                                             ; preds = %1898
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2852)
  call void (ptr, ...) @error_printf(ptr noundef @.str.432)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1917

1901:                                             ; preds = %1898
  %1902 = call zeroext i1 @cmp_object_as_bin(ptr noundef %4, ptr noundef %53)
  br i1 %1902, label %1905, label %1903

1903:                                             ; preds = %1901
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2852)
  %1904 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.433, ptr noundef %1904)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1917

1905:                                             ; preds = %1901
  %1906 = load i32, ptr %53, align 4, !tbaa !10
  %1907 = icmp ne i32 %1906, 9
  br i1 %1907, label %1908, label %1910

1908:                                             ; preds = %1905
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2852)
  %1909 = load i32, ptr %53, align 4, !tbaa !10
  call void (ptr, ...) @error_printf(ptr noundef @.str.434, i32 noundef 9, i32 noundef %1909)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1917

1910:                                             ; preds = %1905
  %1911 = call ptr @M_BufferGetDataAtCursor(ptr noundef %2)
  %1912 = call i32 @memcmp(ptr noundef %1911, ptr noundef @.str.428, i64 noundef 9) #5
  %1913 = icmp ne i32 %1912, 0
  br i1 %1913, label %1914, label %1916

1914:                                             ; preds = %1910
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2852)
  %1915 = call ptr @M_BufferGetDataAtCursor(ptr noundef %2)
  call void (ptr, ...) @error_printf(ptr noundef @.str.431, ptr noundef %1915)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %1917

1916:                                             ; preds = %1910
  store i32 0, ptr %6, align 4
  br label %1917

1917:                                             ; preds = %1916, %1914, %1908, %1903, %1900
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #4
  %1918 = load i32, ptr %6, align 4
  switch i32 %1918, label %2160 [
    i32 0, label %1919
  ]

1919:                                             ; preds = %1917
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  %1922 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %1922, label %1923, label %1924

1923:                                             ; preds = %1921
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2853)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1924:                                             ; preds = %1921
  %1925 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %1925, label %1926, label %1927

1926:                                             ; preds = %1924
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2854)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1927:                                             ; preds = %1924
  %1928 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %1928, label %1929, label %1930

1929:                                             ; preds = %1927
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2855)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1930:                                             ; preds = %1927
  %1931 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %1931, label %1932, label %1933

1932:                                             ; preds = %1930
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2856)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1933:                                             ; preds = %1930
  %1934 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %1934, label %1935, label %1936

1935:                                             ; preds = %1933
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2857)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1936:                                             ; preds = %1933
  %1937 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %1937, label %1938, label %1939

1938:                                             ; preds = %1936
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2858)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1939:                                             ; preds = %1936
  %1940 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %1940, label %1941, label %1942

1941:                                             ; preds = %1939
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2859)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1942:                                             ; preds = %1939
  %1943 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %1943, label %1944, label %1945

1944:                                             ; preds = %1942
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2860)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1945:                                             ; preds = %1942
  %1946 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %1946, label %1947, label %1948

1947:                                             ; preds = %1945
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2861)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1948:                                             ; preds = %1945
  %1949 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %1949, label %1950, label %1951

1950:                                             ; preds = %1948
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2862)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1951:                                             ; preds = %1948
  %1952 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %1952, label %1953, label %1954

1953:                                             ; preds = %1951
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2863)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1954:                                             ; preds = %1951
  %1955 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %1955, label %1956, label %1957

1956:                                             ; preds = %1954
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2864)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1957:                                             ; preds = %1954
  %1958 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %1958, label %1959, label %1960

1959:                                             ; preds = %1957
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2865)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1960:                                             ; preds = %1957
  %1961 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %1961, label %1962, label %1963

1962:                                             ; preds = %1960
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2866)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1963:                                             ; preds = %1960
  %1964 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %1964, label %1965, label %1966

1965:                                             ; preds = %1963
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2867)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.435)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1966:                                             ; preds = %1963
  %1967 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1967, label %1968, label %1969

1968:                                             ; preds = %1966
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2868)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1969:                                             ; preds = %1966
  %1970 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %1970, label %1971, label %1972

1971:                                             ; preds = %1969
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2869)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1972:                                             ; preds = %1969
  %1973 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %1973, label %1974, label %1975

1974:                                             ; preds = %1972
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2870)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

1975:                                             ; preds = %1972
  %1976 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1977 = call zeroext i1 @cmp_write_array(ptr noundef %3, i32 noundef 2)
  %1978 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 1)
  %1979 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 2)
  %1980 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %1981 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %1982

1982:                                             ; preds = %1975
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #4
  %1983 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %1983, label %1985, label %1984

1984:                                             ; preds = %1982
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef @.str.436)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

1985:                                             ; preds = %1982
  %1986 = call zeroext i1 @cmp_object_as_array(ptr noundef %4, ptr noundef %54)
  br i1 %1986, label %1989, label %1987

1987:                                             ; preds = %1985
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  %1988 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.437, ptr noundef %1988)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

1989:                                             ; preds = %1985
  %1990 = load i32, ptr %54, align 4, !tbaa !10
  %1991 = icmp ne i32 %1990, 2
  br i1 %1991, label %1992, label %1993

1992:                                             ; preds = %1989
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef @.str.438)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

1993:                                             ; preds = %1989
  %1994 = call zeroext i1 @cmp_read_uinteger(ptr noundef %3, ptr noundef %55)
  br i1 %1994, label %1996, label %1995

1995:                                             ; preds = %1993
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef @.str.439)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

1996:                                             ; preds = %1993
  %1997 = call zeroext i1 @cmp_read_uinteger(ptr noundef %3, ptr noundef %56)
  br i1 %1997, label %1999, label %1998

1998:                                             ; preds = %1996
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef @.str.440)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

1999:                                             ; preds = %1996
  %2000 = load i64, ptr %55, align 8, !tbaa !12
  %2001 = icmp ne i64 %2000, 1
  br i1 %2001, label %2002, label %2004

2002:                                             ; preds = %1999
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  %2003 = load i64, ptr %55, align 8, !tbaa !12
  call void (ptr, ...) @error_printf(ptr noundef @.str.441, i32 noundef 1, i64 noundef %2003)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

2004:                                             ; preds = %1999
  %2005 = load i64, ptr %56, align 8, !tbaa !12
  %2006 = icmp ne i64 %2005, 2
  br i1 %2006, label %2007, label %2009

2007:                                             ; preds = %2004
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2878)
  %2008 = load i64, ptr %56, align 8, !tbaa !12
  call void (ptr, ...) @error_printf(ptr noundef @.str.442, i32 noundef 2, i64 noundef %2008)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2010

2009:                                             ; preds = %2004
  store i32 0, ptr %6, align 4
  br label %2010

2010:                                             ; preds = %2009, %2007, %2002, %1998, %1995, %1992, %1987, %1984
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #4
  %2011 = load i32, ptr %6, align 4
  switch i32 %2011, label %2160 [
    i32 0, label %2012
  ]

2012:                                             ; preds = %2010
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  %2015 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %2015, label %2016, label %2017

2016:                                             ; preds = %2014
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2879)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2017:                                             ; preds = %2014
  %2018 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %2018, label %2019, label %2020

2019:                                             ; preds = %2017
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2880)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2020:                                             ; preds = %2017
  %2021 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %2021, label %2022, label %2023

2022:                                             ; preds = %2020
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2881)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2023:                                             ; preds = %2020
  %2024 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %2024, label %2025, label %2026

2025:                                             ; preds = %2023
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2882)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2026:                                             ; preds = %2023
  %2027 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %2027, label %2028, label %2029

2028:                                             ; preds = %2026
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2883)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2029:                                             ; preds = %2026
  %2030 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %2030, label %2031, label %2032

2031:                                             ; preds = %2029
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2884)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2032:                                             ; preds = %2029
  %2033 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %2033, label %2034, label %2035

2034:                                             ; preds = %2032
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2885)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2035:                                             ; preds = %2032
  %2036 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %2036, label %2037, label %2038

2037:                                             ; preds = %2035
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2886)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2038:                                             ; preds = %2035
  %2039 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %2039, label %2040, label %2041

2040:                                             ; preds = %2038
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2887)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2041:                                             ; preds = %2038
  %2042 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %2042, label %2043, label %2044

2043:                                             ; preds = %2041
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2888)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2044:                                             ; preds = %2041
  %2045 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %2045, label %2046, label %2047

2046:                                             ; preds = %2044
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2889)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2047:                                             ; preds = %2044
  %2048 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %2048, label %2049, label %2050

2049:                                             ; preds = %2047
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2890)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2050:                                             ; preds = %2047
  %2051 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %2051, label %2052, label %2053

2052:                                             ; preds = %2050
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2891)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2053:                                             ; preds = %2050
  %2054 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %2054, label %2055, label %2056

2055:                                             ; preds = %2053
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2892)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2056:                                             ; preds = %2053
  %2057 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %2057, label %2058, label %2059

2058:                                             ; preds = %2056
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2893)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.435)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2059:                                             ; preds = %2056
  %2060 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %2060, label %2061, label %2062

2061:                                             ; preds = %2059
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2894)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2062:                                             ; preds = %2059
  %2063 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %2063, label %2064, label %2065

2064:                                             ; preds = %2062
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2895)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.404)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2065:                                             ; preds = %2062
  %2066 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %2066, label %2067, label %2068

2067:                                             ; preds = %2065
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2896)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2068:                                             ; preds = %2065
  %2069 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %2070 = call zeroext i1 @cmp_write_map(ptr noundef %3, i32 noundef 1)
  %2071 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 1)
  %2072 = call zeroext i1 @cmp_write_uint(ptr noundef %3, i64 noundef 2)
  %2073 = call zeroext i1 @M_BufferSeek(ptr noundef %2, i64 noundef 0)
  %2074 = call zeroext i1 @cmp_read_object(ptr noundef %3, ptr noundef %4)
  br label %2075

2075:                                             ; preds = %2068
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #4
  %2076 = call zeroext i1 @cmp_object_is_map(ptr noundef %4)
  br i1 %2076, label %2078, label %2077

2077:                                             ; preds = %2075
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.443)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2078:                                             ; preds = %2075
  %2079 = call zeroext i1 @cmp_object_as_map(ptr noundef %4, ptr noundef %57)
  br i1 %2079, label %2082, label %2080

2080:                                             ; preds = %2078
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  %2081 = call ptr @cmp_strerror(ptr noundef %3)
  call void (ptr, ...) @error_printf(ptr noundef @.str.444, ptr noundef %2081)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2082:                                             ; preds = %2078
  %2083 = load i32, ptr %57, align 4, !tbaa !10
  %2084 = icmp ne i32 %2083, 1
  br i1 %2084, label %2085, label %2086

2085:                                             ; preds = %2082
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.445)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2086:                                             ; preds = %2082
  %2087 = call zeroext i1 @cmp_read_uinteger(ptr noundef %3, ptr noundef %58)
  br i1 %2087, label %2089, label %2088

2088:                                             ; preds = %2086
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.446)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2089:                                             ; preds = %2086
  %2090 = call zeroext i1 @cmp_read_uinteger(ptr noundef %3, ptr noundef %59)
  br i1 %2090, label %2092, label %2091

2091:                                             ; preds = %2089
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.447)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2092:                                             ; preds = %2089
  %2093 = load i64, ptr %58, align 8, !tbaa !12
  %2094 = icmp ne i64 %2093, 1
  br i1 %2094, label %2095, label %2096

2095:                                             ; preds = %2092
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.448, i32 noundef 1)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2096:                                             ; preds = %2092
  %2097 = load i64, ptr %59, align 8, !tbaa !12
  %2098 = icmp ne i64 %2097, 2
  br i1 %2098, label %2099, label %2100

2099:                                             ; preds = %2096
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef @.str.448, i32 noundef 2)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2101

2100:                                             ; preds = %2096
  store i32 0, ptr %6, align 4
  br label %2101

2101:                                             ; preds = %2100, %2099, %2095, %2091, %2088, %2085, %2080, %2077
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #4
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #4
  %2102 = load i32, ptr %6, align 4
  switch i32 %2102, label %2160 [
    i32 0, label %2103
  ]

2103:                                             ; preds = %2101
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  %2106 = call zeroext i1 @cmp_object_is_char(ptr noundef %4)
  br i1 %2106, label %2107, label %2108

2107:                                             ; preds = %2105
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2905)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.379)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2108:                                             ; preds = %2105
  %2109 = call zeroext i1 @cmp_object_is_short(ptr noundef %4)
  br i1 %2109, label %2110, label %2111

2110:                                             ; preds = %2108
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2906)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.383)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2111:                                             ; preds = %2108
  %2112 = call zeroext i1 @cmp_object_is_int(ptr noundef %4)
  br i1 %2112, label %2113, label %2114

2113:                                             ; preds = %2111
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2907)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.385)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2114:                                             ; preds = %2111
  %2115 = call zeroext i1 @cmp_object_is_long(ptr noundef %4)
  br i1 %2115, label %2116, label %2117

2116:                                             ; preds = %2114
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2908)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.387)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2117:                                             ; preds = %2114
  %2118 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef %4)
  br i1 %2118, label %2119, label %2120

2119:                                             ; preds = %2117
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2909)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.389)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2120:                                             ; preds = %2117
  %2121 = call zeroext i1 @cmp_object_is_uchar(ptr noundef %4)
  br i1 %2121, label %2122, label %2123

2122:                                             ; preds = %2120
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2910)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.392)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2123:                                             ; preds = %2120
  %2124 = call zeroext i1 @cmp_object_is_ushort(ptr noundef %4)
  br i1 %2124, label %2125, label %2126

2125:                                             ; preds = %2123
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2911)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.393)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2126:                                             ; preds = %2123
  %2127 = call zeroext i1 @cmp_object_is_uint(ptr noundef %4)
  br i1 %2127, label %2128, label %2129

2128:                                             ; preds = %2126
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2912)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.394)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2129:                                             ; preds = %2126
  %2130 = call zeroext i1 @cmp_object_is_ulong(ptr noundef %4)
  br i1 %2130, label %2131, label %2132

2131:                                             ; preds = %2129
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2913)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.395)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2132:                                             ; preds = %2129
  %2133 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef %4)
  br i1 %2133, label %2134, label %2135

2134:                                             ; preds = %2132
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2914)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.396)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2135:                                             ; preds = %2132
  %2136 = call zeroext i1 @cmp_object_is_float(ptr noundef %4)
  br i1 %2136, label %2137, label %2138

2137:                                             ; preds = %2135
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2915)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.397)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2138:                                             ; preds = %2135
  %2139 = call zeroext i1 @cmp_object_is_double(ptr noundef %4)
  br i1 %2139, label %2140, label %2141

2140:                                             ; preds = %2138
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2916)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.398)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2141:                                             ; preds = %2138
  %2142 = call zeroext i1 @cmp_object_is_nil(ptr noundef %4)
  br i1 %2142, label %2143, label %2144

2143:                                             ; preds = %2141
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2917)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.399)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2144:                                             ; preds = %2141
  %2145 = call zeroext i1 @cmp_object_is_bool(ptr noundef %4)
  br i1 %2145, label %2146, label %2147

2146:                                             ; preds = %2144
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2918)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.400)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2147:                                             ; preds = %2144
  %2148 = call zeroext i1 @cmp_object_is_str(ptr noundef %4)
  br i1 %2148, label %2149, label %2150

2149:                                             ; preds = %2147
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2919)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.435)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2150:                                             ; preds = %2147
  %2151 = call zeroext i1 @cmp_object_is_bin(ptr noundef %4)
  br i1 %2151, label %2152, label %2153

2152:                                             ; preds = %2150
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2920)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.402)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2153:                                             ; preds = %2150
  %2154 = call zeroext i1 @cmp_object_is_array(ptr noundef %4)
  br i1 %2154, label %2155, label %2156

2155:                                             ; preds = %2153
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2921)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.403)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2156:                                             ; preds = %2153
  %2157 = call zeroext i1 @cmp_object_is_ext(ptr noundef %4)
  br i1 %2157, label %2158, label %2159

2158:                                             ; preds = %2156
  call void (ptr, ...) @error_printf(ptr noundef @.str.16, ptr noundef @__func__.run_obj_tests, i32 noundef 2922)
  call void (ptr, ...) @error_printf(ptr noundef @.str.391, ptr noundef @.str.405)
  store i1 false, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2159:                                             ; preds = %2156
  store i1 true, ptr %1, align 1
  store i32 1, ptr %6, align 4
  br label %2160

2160:                                             ; preds = %2159, %2158, %2155, %2152, %2149, %2146, %2143, %2140, %2137, %2134, %2131, %2128, %2125, %2122, %2119, %2116, %2113, %2110, %2107, %2101, %2067, %2064, %2061, %2058, %2055, %2052, %2049, %2046, %2043, %2040, %2037, %2034, %2031, %2028, %2025, %2022, %2019, %2016, %2010, %1974, %1971, %1968, %1965, %1962, %1959, %1956, %1953, %1950, %1947, %1944, %1941, %1938, %1935, %1932, %1929, %1926, %1923, %1917, %1892, %1889, %1886, %1883, %1880, %1877, %1874, %1871, %1868, %1865, %1862, %1859, %1856, %1853, %1850, %1847, %1844, %1841, %1835, %1815, %1812, %1809, %1806, %1803, %1800, %1797, %1794, %1791, %1788, %1785, %1782, %1779, %1776, %1773, %1770, %1767, %1764, %1758, %1738, %1735, %1732, %1729, %1726, %1723, %1720, %1717, %1714, %1711, %1708, %1705, %1702, %1699, %1696, %1693, %1690, %1687, %1681, %1661, %1658, %1655, %1652, %1649, %1646, %1643, %1640, %1637, %1634, %1631, %1628, %1625, %1622, %1619, %1616, %1613, %1610, %1604, %1584, %1581, %1578, %1575, %1572, %1569, %1566, %1563, %1560, %1557, %1554, %1551, %1548, %1545, %1542, %1539, %1536, %1533, %1527, %1507, %1504, %1501, %1498, %1495, %1492, %1489, %1486, %1483, %1480, %1477, %1474, %1471, %1468, %1465, %1462, %1459, %1456, %1453, %1446, %1443, %1440, %1437, %1434, %1431, %1428, %1425, %1422, %1419, %1416, %1413, %1410, %1407, %1404, %1401, %1398, %1395, %1389, %1371, %1368, %1365, %1362, %1359, %1356, %1353, %1350, %1347, %1344, %1341, %1338, %1335, %1332, %1329, %1326, %1323, %1320, %1314, %1296, %1293, %1290, %1287, %1284, %1281, %1278, %1275, %1272, %1269, %1266, %1263, %1260, %1257, %1254, %1251, %1248, %1242, %1225, %1207, %1204, %1201, %1198, %1195, %1192, %1189, %1186, %1183, %1180, %1177, %1174, %1171, %1168, %1165, %1162, %1156, %1139, %1122, %1103, %1100, %1097, %1094, %1091, %1088, %1085, %1082, %1079, %1076, %1073, %1070, %1067, %1064, %1061, %1058, %1052, %1035, %1018, %1000, %997, %994, %991, %988, %985, %982, %979, %976, %973, %970, %967, %964, %961, %955, %938, %921, %904, %885, %882, %879, %876, %873, %870, %867, %864, %861, %858, %855, %852, %849, %846, %843, %837, %820, %803, %786, %767, %764, %761, %758, %755, %752, %749, %746, %743, %740, %737, %734, %731, %728, %722, %705, %688, %671, %653, %634, %631, %628, %625, %622, %619, %616, %613, %610, %607, %604, %601, %598, %595, %589, %572, %555, %538, %520, %501, %498, %495, %492, %489, %486, %483, %480, %477, %474, %471, %468, %465, %462, %459, %456, %453, %447, %430, %412, %409, %406, %403, %400, %397, %394, %391, %388, %385, %382, %379, %376, %373, %370, %367, %361, %344, %327, %309, %306, %303, %300, %297, %294, %291, %288, %285, %282, %279, %276, %273, %270, %267, %261, %244, %227, %210, %191, %188, %185, %182, %179, %176, %173, %170, %167, %164, %161, %158, %155, %152, %146, %129, %112, %95, %77
  call void @llvm.lifetime.end.p0(i64 16, ptr %4) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %3) #4
  call void @llvm.lifetime.end.p0(i64 32, ptr %2) #4
  %2161 = load i1, ptr %1, align 1
  ret i1 %2161
}

declare zeroext i1 @cmp_object_is_char(ptr noundef) #2

declare zeroext i1 @cmp_object_as_char(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_is_short(ptr noundef) #2

declare zeroext i1 @cmp_object_as_short(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_is_int(ptr noundef) #2

declare zeroext i1 @cmp_object_as_int(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_is_long(ptr noundef) #2

declare zeroext i1 @cmp_object_as_long(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_is_sinteger(ptr noundef) #2

declare zeroext i1 @cmp_object_as_sinteger(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_is_uchar(ptr noundef) #2

declare zeroext i1 @cmp_object_is_ushort(ptr noundef) #2

declare zeroext i1 @cmp_object_is_uint(ptr noundef) #2

declare zeroext i1 @cmp_object_is_ulong(ptr noundef) #2

declare zeroext i1 @cmp_object_is_uinteger(ptr noundef) #2

declare zeroext i1 @cmp_object_is_float(ptr noundef) #2

declare zeroext i1 @cmp_object_is_double(ptr noundef) #2

declare zeroext i1 @cmp_object_is_nil(ptr noundef) #2

declare zeroext i1 @cmp_object_is_bool(ptr noundef) #2

declare zeroext i1 @cmp_object_is_str(ptr noundef) #2

declare zeroext i1 @cmp_object_is_bin(ptr noundef) #2

declare zeroext i1 @cmp_object_is_array(ptr noundef) #2

declare zeroext i1 @cmp_object_is_map(ptr noundef) #2

declare zeroext i1 @cmp_object_is_ext(ptr noundef) #2

declare zeroext i1 @cmp_object_as_uchar(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_ushort(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_uint(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_ulong(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_uinteger(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_float(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_double(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_bool(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_str(ptr noundef, ptr noundef) #2

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

declare ptr @M_BufferGetDataAtCursor(ptr noundef) #2

declare zeroext i1 @cmp_object_as_bin(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_array(ptr noundef, ptr noundef) #2

declare zeroext i1 @cmp_object_as_map(ptr noundef, ptr noundef) #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"short", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !6, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"long", !6, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !6, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !6, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"_Bool", !6, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}


; 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.buf_s = type { i64, i64, i64, ptr }
%struct.cmp_ctx_s = type { i8, ptr, ptr, ptr }
%struct.cmp_object_s = type { i8, %union.cmp_object_data_u }
%union.cmp_object_data_u = type { i64 }

@.str.16 = external hidden unnamed_addr constant [7 x i8], align 1
@__func__.run_obj_tests = external hidden unnamed_addr constant [14 x i8], align 1
@.str.378 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.379 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.380 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.381 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.382 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.383 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.384 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.385 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.386 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.387 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.388 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.389 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.390 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.391 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.392 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.393 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.394 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.395 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.396 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.397 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.398 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.399 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.400 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.401 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.402 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.403 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.404 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.405 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.406 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.407 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.408 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.409 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.410 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.411 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.412 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.413 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.414 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.415 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.416 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.417 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.418 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.419 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.420 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.421 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.422 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.423 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.424 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.425 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.426 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.427 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.428 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.429 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.430 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.431 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.432 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.433 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.434 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.435 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.436 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.437 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.438 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.439 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.440 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.441 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.442 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.443 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.444 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.445 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.446 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.447 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.448 = external hidden unnamed_addr constant [11 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: nounwind uwtable
declare hidden void @setup_cmp_and_buf(ptr noundef, ptr noundef) local_unnamed_addr #1

declare zeroext i1 @M_BufferSeek(ptr noundef, i64 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_read_object(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden void @error_printf(ptr noundef, ...) local_unnamed_addr #1

declare ptr @cmp_strerror(ptr noundef) local_unnamed_addr #2

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

declare zeroext i1 @cmp_read_uinteger(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_sint(ptr noundef, i64 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_uint(ptr noundef, i64 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_float(ptr noundef, float noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_double(ptr noundef, double noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_nil(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_false(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_true(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_bool(ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare zeroext i1 @cmp_write_bin(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_str(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_array(ptr noundef, i32 noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_write_map(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local noundef zeroext i1 @run_obj_tests() local_unnamed_addr #1 {
  %1 = alloca %struct.buf_s, align 8
  %2 = alloca %struct.cmp_ctx_s, align 8
  %3 = alloca %struct.cmp_object_s, align 8
  %4 = alloca i8, align 1
  %5 = alloca i16, align 2
  %6 = alloca i32, align 4
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i16, align 2
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i8, align 1
  %19 = alloca i16, align 2
  %20 = alloca i32, align 4
  %21 = alloca i64, align 8
  %22 = alloca i64, align 8
  %23 = alloca i8, align 1
  %24 = alloca i16, align 2
  %25 = alloca i32, align 4
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca i16, align 2
  %29 = alloca i32, align 4
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i16, align 2
  %33 = alloca i32, align 4
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %36 = alloca i32, align 4
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i32, align 4
  %40 = alloca i64, align 8
  %41 = alloca i64, align 8
  %42 = alloca i64, align 8
  %43 = alloca i64, align 8
  %44 = alloca float, align 4
  %45 = alloca double, align 8
  %46 = alloca i8, align 1
  %47 = alloca i8, align 1
  %48 = alloca i8, align 1
  %49 = alloca i8, align 1
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i32, align 4
  %56 = alloca i64, align 8
  %57 = alloca i64, align 8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %1) #5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %2) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #5
  call void @setup_cmp_and_buf(ptr noundef nonnull %2, ptr noundef nonnull %1)
  %58 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %59 = call zeroext i1 @cmp_write_sint(ptr noundef nonnull %2, i64 noundef -1) #5
  %60 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %61 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #5
  %62 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %62, label %64, label %63

63:                                               ; preds = %0
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2417)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.379)
  br label %.critedge

64:                                               ; preds = %0
  %65 = call zeroext i1 @cmp_object_as_char(ptr noundef nonnull %3, ptr noundef nonnull %4) #5
  br i1 %65, label %68, label %66

66:                                               ; preds = %64
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2417)
  %67 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.381, ptr noundef %67)
  br label %.critedge

68:                                               ; preds = %64
  %69 = load i8, ptr %4, align 1, !tbaa !5
  %.not = icmp eq i8 %69, -1
  br i1 %.not, label %71, label %70

70:                                               ; preds = %68
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2417)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.382)
  br label %.critedge

71:                                               ; preds = %68
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %5) #5
  %72 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %72, label %74, label %73

73:                                               ; preds = %71
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2418)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.383)
  br label %.critedge200

74:                                               ; preds = %71
  %75 = call zeroext i1 @cmp_object_as_short(ptr noundef nonnull %3, ptr noundef nonnull %5) #5
  br i1 %75, label %78, label %76

76:                                               ; preds = %74
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2418)
  %77 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.384, ptr noundef %77)
  br label %.critedge200

78:                                               ; preds = %74
  %79 = load i16, ptr %5, align 2, !tbaa !8
  %.not149 = icmp eq i16 %79, -1
  br i1 %.not149, label %81, label %80

80:                                               ; preds = %78
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2418)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.382)
  br label %.critedge200

81:                                               ; preds = %78
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #5
  %82 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %82, label %84, label %83

83:                                               ; preds = %81
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2419)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.385)
  br label %.critedge202

84:                                               ; preds = %81
  %85 = call zeroext i1 @cmp_object_as_int(ptr noundef nonnull %3, ptr noundef nonnull %6) #5
  br i1 %85, label %88, label %86

86:                                               ; preds = %84
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2419)
  %87 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.386, ptr noundef %87)
  br label %.critedge202

88:                                               ; preds = %84
  %89 = load i32, ptr %6, align 4, !tbaa !10
  %.not150 = icmp eq i32 %89, -1
  br i1 %.not150, label %91, label %90

90:                                               ; preds = %88
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2419)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.382)
  br label %.critedge202

91:                                               ; preds = %88
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #5
  %92 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %92, label %94, label %93

93:                                               ; preds = %91
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2420)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.387)
  br label %.critedge204

94:                                               ; preds = %91
  %95 = call zeroext i1 @cmp_object_as_long(ptr noundef nonnull %3, ptr noundef nonnull %7) #5
  br i1 %95, label %98, label %96

96:                                               ; preds = %94
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2420)
  %97 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.388, ptr noundef %97)
  br label %.critedge204

98:                                               ; preds = %94
  %99 = load i64, ptr %7, align 8, !tbaa !12
  %.not151 = icmp eq i64 %99, -1
  br i1 %.not151, label %101, label %100

100:                                              ; preds = %98
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2420)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.382)
  br label %.critedge204

101:                                              ; preds = %98
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  %102 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %102, label %104, label %103

103:                                              ; preds = %101
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2422)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.389)
  br label %.critedge206

104:                                              ; preds = %101
  %105 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef nonnull %3, ptr noundef nonnull %8) #5
  br i1 %105, label %108, label %106

106:                                              ; preds = %104
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2422)
  %107 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.390, ptr noundef %107)
  br label %.critedge206

108:                                              ; preds = %104
  %109 = load i64, ptr %8, align 8, !tbaa !12
  %.not152 = icmp eq i64 %109, -1
  br i1 %.not152, label %111, label %110

110:                                              ; preds = %108
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2422)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.382)
  br label %.critedge206

111:                                              ; preds = %108
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  %112 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %112, label %113, label %114

113:                                              ; preds = %111
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2423)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

114:                                              ; preds = %111
  %115 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %115, label %116, label %117

116:                                              ; preds = %114
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2424)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

117:                                              ; preds = %114
  %118 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %118, label %119, label %120

119:                                              ; preds = %117
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2425)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

120:                                              ; preds = %117
  %121 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %121, label %122, label %123

122:                                              ; preds = %120
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2426)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

123:                                              ; preds = %120
  %124 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %124, label %125, label %126

125:                                              ; preds = %123
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2427)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

126:                                              ; preds = %123
  %127 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %127, label %128, label %129

128:                                              ; preds = %126
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2428)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

129:                                              ; preds = %126
  %130 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %130, label %131, label %132

131:                                              ; preds = %129
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2429)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

132:                                              ; preds = %129
  %133 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %133, label %134, label %135

134:                                              ; preds = %132
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2430)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

135:                                              ; preds = %132
  %136 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %136, label %137, label %138

137:                                              ; preds = %135
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2431)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

138:                                              ; preds = %135
  %139 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %139, label %140, label %141

140:                                              ; preds = %138
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2432)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

141:                                              ; preds = %138
  %142 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %142, label %143, label %144

143:                                              ; preds = %141
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2433)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

144:                                              ; preds = %141
  %145 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %145, label %146, label %147

146:                                              ; preds = %144
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2434)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

147:                                              ; preds = %144
  %148 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %148, label %149, label %150

149:                                              ; preds = %147
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2435)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

150:                                              ; preds = %147
  %151 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %151, label %152, label %153

152:                                              ; preds = %150
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2436)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

153:                                              ; preds = %150
  %154 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %155 = call zeroext i1 @cmp_write_sint(ptr noundef nonnull %2, i64 noundef -129) #5
  %156 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %157 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #5
  %158 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %158, label %160, label %159

159:                                              ; preds = %153
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2439)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.383)
  br label %.critedge208

160:                                              ; preds = %153
  %161 = call zeroext i1 @cmp_object_as_short(ptr noundef nonnull %3, ptr noundef nonnull %9) #5
  br i1 %161, label %164, label %162

162:                                              ; preds = %160
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2439)
  %163 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.384, ptr noundef %163)
  br label %.critedge208

164:                                              ; preds = %160
  %165 = load i16, ptr %9, align 2, !tbaa !8
  %.not153 = icmp eq i16 %165, -129
  br i1 %.not153, label %167, label %166

166:                                              ; preds = %164
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2439)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.406)
  br label %.critedge208

167:                                              ; preds = %164
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #5
  %168 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %168, label %170, label %169

169:                                              ; preds = %167
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2440)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.385)
  br label %.critedge210

170:                                              ; preds = %167
  %171 = call zeroext i1 @cmp_object_as_int(ptr noundef nonnull %3, ptr noundef nonnull %10) #5
  br i1 %171, label %174, label %172

172:                                              ; preds = %170
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2440)
  %173 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.386, ptr noundef %173)
  br label %.critedge210

174:                                              ; preds = %170
  %175 = load i32, ptr %10, align 4, !tbaa !10
  %.not154 = icmp eq i32 %175, -129
  br i1 %.not154, label %177, label %176

176:                                              ; preds = %174
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2440)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.406)
  br label %.critedge210

177:                                              ; preds = %174
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %178 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %178, label %180, label %179

179:                                              ; preds = %177
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2441)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.387)
  br label %.critedge212

180:                                              ; preds = %177
  %181 = call zeroext i1 @cmp_object_as_long(ptr noundef nonnull %3, ptr noundef nonnull %11) #5
  br i1 %181, label %184, label %182

182:                                              ; preds = %180
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2441)
  %183 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.388, ptr noundef %183)
  br label %.critedge212

184:                                              ; preds = %180
  %185 = load i64, ptr %11, align 8, !tbaa !12
  %.not155 = icmp eq i64 %185, -129
  br i1 %.not155, label %187, label %186

186:                                              ; preds = %184
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2441)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.406)
  br label %.critedge212

187:                                              ; preds = %184
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %188 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %188, label %190, label %189

189:                                              ; preds = %187
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2443)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.389)
  br label %.critedge214

190:                                              ; preds = %187
  %191 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef nonnull %3, ptr noundef nonnull %12) #5
  br i1 %191, label %194, label %192

192:                                              ; preds = %190
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2443)
  %193 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.390, ptr noundef %193)
  br label %.critedge214

194:                                              ; preds = %190
  %195 = load i64, ptr %12, align 8, !tbaa !12
  %.not156 = icmp eq i64 %195, -129
  br i1 %.not156, label %197, label %196

196:                                              ; preds = %194
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2443)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.406)
  br label %.critedge214

197:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  %198 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %198, label %199, label %200

199:                                              ; preds = %197
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2444)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

200:                                              ; preds = %197
  %201 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %201, label %202, label %203

202:                                              ; preds = %200
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2445)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

203:                                              ; preds = %200
  %204 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %204, label %205, label %206

205:                                              ; preds = %203
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2446)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

206:                                              ; preds = %203
  %207 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %207, label %208, label %209

208:                                              ; preds = %206
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2447)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

209:                                              ; preds = %206
  %210 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %210, label %211, label %212

211:                                              ; preds = %209
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2448)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

212:                                              ; preds = %209
  %213 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %213, label %214, label %215

214:                                              ; preds = %212
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2449)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

215:                                              ; preds = %212
  %216 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %216, label %217, label %218

217:                                              ; preds = %215
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2450)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

218:                                              ; preds = %215
  %219 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %219, label %220, label %221

220:                                              ; preds = %218
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2451)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

221:                                              ; preds = %218
  %222 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %222, label %223, label %224

223:                                              ; preds = %221
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2452)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

224:                                              ; preds = %221
  %225 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %225, label %226, label %227

226:                                              ; preds = %224
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2453)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

227:                                              ; preds = %224
  %228 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %228, label %229, label %230

229:                                              ; preds = %227
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2454)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

230:                                              ; preds = %227
  %231 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %231, label %232, label %233

232:                                              ; preds = %230
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2455)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

233:                                              ; preds = %230
  %234 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %234, label %235, label %236

235:                                              ; preds = %233
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2456)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

236:                                              ; preds = %233
  %237 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %237, label %238, label %239

238:                                              ; preds = %236
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2457)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

239:                                              ; preds = %236
  %240 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %240, label %241, label %242

241:                                              ; preds = %239
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2458)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

242:                                              ; preds = %239
  %243 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %244 = call zeroext i1 @cmp_write_sint(ptr noundef nonnull %2, i64 noundef -32769) #5
  %245 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %246 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #5
  %247 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %247, label %249, label %248

248:                                              ; preds = %242
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2461)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.385)
  br label %.critedge216

249:                                              ; preds = %242
  %250 = call zeroext i1 @cmp_object_as_int(ptr noundef nonnull %3, ptr noundef nonnull %13) #5
  br i1 %250, label %253, label %251

251:                                              ; preds = %249
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2461)
  %252 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.386, ptr noundef %252)
  br label %.critedge216

253:                                              ; preds = %249
  %254 = load i32, ptr %13, align 4, !tbaa !10
  %.not157 = icmp eq i32 %254, -32769
  br i1 %.not157, label %256, label %255

255:                                              ; preds = %253
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2461)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.407)
  br label %.critedge216

256:                                              ; preds = %253
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %257 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %257, label %259, label %258

258:                                              ; preds = %256
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2462)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.387)
  br label %.critedge218

259:                                              ; preds = %256
  %260 = call zeroext i1 @cmp_object_as_long(ptr noundef nonnull %3, ptr noundef nonnull %14) #5
  br i1 %260, label %263, label %261

261:                                              ; preds = %259
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2462)
  %262 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.388, ptr noundef %262)
  br label %.critedge218

263:                                              ; preds = %259
  %264 = load i64, ptr %14, align 8, !tbaa !12
  %.not158 = icmp eq i64 %264, -32769
  br i1 %.not158, label %266, label %265

265:                                              ; preds = %263
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2462)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.407)
  br label %.critedge218

266:                                              ; preds = %263
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %267 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %267, label %269, label %268

268:                                              ; preds = %266
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2464)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.389)
  br label %.critedge220

269:                                              ; preds = %266
  %270 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef nonnull %3, ptr noundef nonnull %15) #5
  br i1 %270, label %273, label %271

271:                                              ; preds = %269
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2464)
  %272 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.390, ptr noundef %272)
  br label %.critedge220

273:                                              ; preds = %269
  %274 = load i64, ptr %15, align 8, !tbaa !12
  %.not159 = icmp eq i64 %274, -32769
  br i1 %.not159, label %276, label %275

275:                                              ; preds = %273
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2464)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.407)
  br label %.critedge220

276:                                              ; preds = %273
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  %277 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %277, label %278, label %279

278:                                              ; preds = %276
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2465)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

279:                                              ; preds = %276
  %280 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %280, label %281, label %282

281:                                              ; preds = %279
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2466)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

282:                                              ; preds = %279
  %283 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %283, label %284, label %285

284:                                              ; preds = %282
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2467)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

285:                                              ; preds = %282
  %286 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %286, label %287, label %288

287:                                              ; preds = %285
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2468)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

288:                                              ; preds = %285
  %289 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %289, label %290, label %291

290:                                              ; preds = %288
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2469)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

291:                                              ; preds = %288
  %292 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %292, label %293, label %294

293:                                              ; preds = %291
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2470)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

294:                                              ; preds = %291
  %295 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %295, label %296, label %297

296:                                              ; preds = %294
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2471)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

297:                                              ; preds = %294
  %298 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %298, label %299, label %300

299:                                              ; preds = %297
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2472)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

300:                                              ; preds = %297
  %301 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %301, label %302, label %303

302:                                              ; preds = %300
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2473)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

303:                                              ; preds = %300
  %304 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %304, label %305, label %306

305:                                              ; preds = %303
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2474)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

306:                                              ; preds = %303
  %307 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %307, label %308, label %309

308:                                              ; preds = %306
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2475)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

309:                                              ; preds = %306
  %310 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %310, label %311, label %312

311:                                              ; preds = %309
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2476)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

312:                                              ; preds = %309
  %313 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %313, label %314, label %315

314:                                              ; preds = %312
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2477)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

315:                                              ; preds = %312
  %316 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %316, label %317, label %318

317:                                              ; preds = %315
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2478)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

318:                                              ; preds = %315
  %319 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %319, label %320, label %321

320:                                              ; preds = %318
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2479)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

321:                                              ; preds = %318
  %322 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %322, label %323, label %324

323:                                              ; preds = %321
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2480)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

324:                                              ; preds = %321
  %325 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %326 = call zeroext i1 @cmp_write_sint(ptr noundef nonnull %2, i64 noundef -2147483649) #5
  %327 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %328 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %329 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %329, label %331, label %330

330:                                              ; preds = %324
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2484)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.387)
  br label %.critedge222

331:                                              ; preds = %324
  %332 = call zeroext i1 @cmp_object_as_long(ptr noundef nonnull %3, ptr noundef nonnull %16) #5
  br i1 %332, label %335, label %333

333:                                              ; preds = %331
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2484)
  %334 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.388, ptr noundef %334)
  br label %.critedge222

335:                                              ; preds = %331
  %336 = load i64, ptr %16, align 8, !tbaa !12
  %.not160 = icmp eq i64 %336, -2147483649
  br i1 %.not160, label %338, label %337

337:                                              ; preds = %335
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2484)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.408)
  br label %.critedge222

338:                                              ; preds = %335
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %339 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %339, label %341, label %340

340:                                              ; preds = %338
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2489)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.389)
  br label %.critedge224

341:                                              ; preds = %338
  %342 = call zeroext i1 @cmp_object_as_sinteger(ptr noundef nonnull %3, ptr noundef nonnull %17) #5
  br i1 %342, label %345, label %343

343:                                              ; preds = %341
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2489)
  %344 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.390, ptr noundef %344)
  br label %.critedge224

345:                                              ; preds = %341
  %346 = load i64, ptr %17, align 8, !tbaa !12
  %.not161 = icmp eq i64 %346, -2147483649
  br i1 %.not161, label %348, label %347

347:                                              ; preds = %345
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2489)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.408)
  br label %.critedge224

348:                                              ; preds = %345
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  %349 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %349, label %350, label %351

350:                                              ; preds = %348
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2490)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

351:                                              ; preds = %348
  %352 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %352, label %353, label %354

353:                                              ; preds = %351
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2491)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

354:                                              ; preds = %351
  %355 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %355, label %356, label %357

356:                                              ; preds = %354
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2492)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

357:                                              ; preds = %354
  %358 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %358, label %359, label %360

359:                                              ; preds = %357
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2493)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

360:                                              ; preds = %357
  %361 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %361, label %362, label %363

362:                                              ; preds = %360
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2494)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

363:                                              ; preds = %360
  %364 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %364, label %365, label %366

365:                                              ; preds = %363
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2495)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

366:                                              ; preds = %363
  %367 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %367, label %368, label %369

368:                                              ; preds = %366
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2496)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

369:                                              ; preds = %366
  %370 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %370, label %371, label %372

371:                                              ; preds = %369
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2497)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

372:                                              ; preds = %369
  %373 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %373, label %374, label %375

374:                                              ; preds = %372
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2498)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

375:                                              ; preds = %372
  %376 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %376, label %377, label %378

377:                                              ; preds = %375
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2499)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

378:                                              ; preds = %375
  %379 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %379, label %380, label %381

380:                                              ; preds = %378
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2500)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

381:                                              ; preds = %378
  %382 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %382, label %383, label %384

383:                                              ; preds = %381
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2501)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

384:                                              ; preds = %381
  %385 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %385, label %386, label %387

386:                                              ; preds = %384
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2502)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

387:                                              ; preds = %384
  %388 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %388, label %389, label %390

389:                                              ; preds = %387
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2503)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

390:                                              ; preds = %387
  %391 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %391, label %392, label %393

392:                                              ; preds = %390
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2504)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

393:                                              ; preds = %390
  %394 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %394, label %395, label %396

395:                                              ; preds = %393
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2505)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

396:                                              ; preds = %393
  %397 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %397, label %398, label %399

398:                                              ; preds = %396
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2506)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

399:                                              ; preds = %396
  %400 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %401 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 1) #5
  %402 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %403 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #5
  %404 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %404, label %406, label %405

405:                                              ; preds = %399
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2509)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.392)
  br label %.critedge226

406:                                              ; preds = %399
  %407 = call zeroext i1 @cmp_object_as_uchar(ptr noundef nonnull %3, ptr noundef nonnull %18) #5
  br i1 %407, label %410, label %408

408:                                              ; preds = %406
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2509)
  %409 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.409, ptr noundef %409)
  br label %.critedge226

410:                                              ; preds = %406
  %411 = load i8, ptr %18, align 1, !tbaa !5
  %.not162 = icmp eq i8 %411, 1
  br i1 %.not162, label %413, label %412

412:                                              ; preds = %410
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2509)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.410)
  br label %.critedge226

413:                                              ; preds = %410
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %19) #5
  %414 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %414, label %416, label %415

415:                                              ; preds = %413
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2510)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.393)
  br label %.critedge228

416:                                              ; preds = %413
  %417 = call zeroext i1 @cmp_object_as_ushort(ptr noundef nonnull %3, ptr noundef nonnull %19) #5
  br i1 %417, label %420, label %418

418:                                              ; preds = %416
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2510)
  %419 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.411, ptr noundef %419)
  br label %.critedge228

420:                                              ; preds = %416
  %421 = load i16, ptr %19, align 2, !tbaa !8
  %.not163 = icmp eq i16 %421, 1
  br i1 %.not163, label %423, label %422

422:                                              ; preds = %420
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2510)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.410)
  br label %.critedge228

423:                                              ; preds = %420
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #5
  %424 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %424, label %426, label %425

425:                                              ; preds = %423
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2511)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge230

426:                                              ; preds = %423
  %427 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %20) #5
  br i1 %427, label %430, label %428

428:                                              ; preds = %426
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2511)
  %429 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %429)
  br label %.critedge230

430:                                              ; preds = %426
  %431 = load i32, ptr %20, align 4, !tbaa !10
  %.not164 = icmp eq i32 %431, 1
  br i1 %.not164, label %433, label %432

432:                                              ; preds = %430
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2511)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.410)
  br label %.critedge230

433:                                              ; preds = %430
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %434 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %434, label %436, label %435

435:                                              ; preds = %433
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2512)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge232

436:                                              ; preds = %433
  %437 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %21) #5
  br i1 %437, label %440, label %438

438:                                              ; preds = %436
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2512)
  %439 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %439)
  br label %.critedge232

440:                                              ; preds = %436
  %441 = load i64, ptr %21, align 8, !tbaa !12
  %.not165 = icmp eq i64 %441, 1
  br i1 %.not165, label %443, label %442

442:                                              ; preds = %440
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2512)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.410)
  br label %.critedge232

443:                                              ; preds = %440
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  %444 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %444, label %446, label %445

445:                                              ; preds = %443
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2514)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge234

446:                                              ; preds = %443
  %447 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %22) #5
  br i1 %447, label %450, label %448

448:                                              ; preds = %446
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2514)
  %449 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %449)
  br label %.critedge234

450:                                              ; preds = %446
  %451 = load i64, ptr %22, align 8, !tbaa !12
  %.not166 = icmp eq i64 %451, 1
  br i1 %.not166, label %453, label %452

452:                                              ; preds = %450
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2514)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.410)
  br label %.critedge234

453:                                              ; preds = %450
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  %454 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %454, label %455, label %456

455:                                              ; preds = %453
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2515)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

456:                                              ; preds = %453
  %457 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %457, label %458, label %459

458:                                              ; preds = %456
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2516)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

459:                                              ; preds = %456
  %460 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %460, label %461, label %462

461:                                              ; preds = %459
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2517)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

462:                                              ; preds = %459
  %463 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %463, label %464, label %465

464:                                              ; preds = %462
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2518)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

465:                                              ; preds = %462
  %466 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %466, label %467, label %468

467:                                              ; preds = %465
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2519)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

468:                                              ; preds = %465
  %469 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %469, label %470, label %471

470:                                              ; preds = %468
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2520)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

471:                                              ; preds = %468
  %472 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %472, label %473, label %474

473:                                              ; preds = %471
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2521)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

474:                                              ; preds = %471
  %475 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %475, label %476, label %477

476:                                              ; preds = %474
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2522)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

477:                                              ; preds = %474
  %478 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %478, label %479, label %480

479:                                              ; preds = %477
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2523)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

480:                                              ; preds = %477
  %481 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %481, label %482, label %483

482:                                              ; preds = %480
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2524)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

483:                                              ; preds = %480
  %484 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %484, label %485, label %486

485:                                              ; preds = %483
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2525)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

486:                                              ; preds = %483
  %487 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %487, label %488, label %489

488:                                              ; preds = %486
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2526)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

489:                                              ; preds = %486
  %490 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %490, label %491, label %492

491:                                              ; preds = %489
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2527)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

492:                                              ; preds = %489
  %493 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %493, label %494, label %495

494:                                              ; preds = %492
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2528)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

495:                                              ; preds = %492
  %496 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %497 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 255) #5
  %498 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %499 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %23) #5
  %500 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %500, label %502, label %501

501:                                              ; preds = %495
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2531)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.392)
  br label %.critedge236

502:                                              ; preds = %495
  %503 = call zeroext i1 @cmp_object_as_uchar(ptr noundef nonnull %3, ptr noundef nonnull %23) #5
  br i1 %503, label %506, label %504

504:                                              ; preds = %502
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2531)
  %505 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.409, ptr noundef %505)
  br label %.critedge236

506:                                              ; preds = %502
  %507 = load i8, ptr %23, align 1, !tbaa !5
  %.not167 = icmp eq i8 %507, -1
  br i1 %.not167, label %509, label %508

508:                                              ; preds = %506
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2531)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.415)
  br label %.critedge236

509:                                              ; preds = %506
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %24) #5
  %510 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %510, label %512, label %511

511:                                              ; preds = %509
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2533)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.393)
  br label %.critedge238

512:                                              ; preds = %509
  %513 = call zeroext i1 @cmp_object_as_ushort(ptr noundef nonnull %3, ptr noundef nonnull %24) #5
  br i1 %513, label %516, label %514

514:                                              ; preds = %512
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2533)
  %515 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.411, ptr noundef %515)
  br label %.critedge238

516:                                              ; preds = %512
  %517 = load i16, ptr %24, align 2, !tbaa !8
  %.not168 = icmp eq i16 %517, 255
  br i1 %.not168, label %519, label %518

518:                                              ; preds = %516
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2533)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.415)
  br label %.critedge238

519:                                              ; preds = %516
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %25) #5
  %520 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %520, label %522, label %521

521:                                              ; preds = %519
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2534)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge240

522:                                              ; preds = %519
  %523 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %25) #5
  br i1 %523, label %526, label %524

524:                                              ; preds = %522
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2534)
  %525 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %525)
  br label %.critedge240

526:                                              ; preds = %522
  %527 = load i32, ptr %25, align 4, !tbaa !10
  %.not169 = icmp eq i32 %527, 255
  br i1 %.not169, label %529, label %528

528:                                              ; preds = %526
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2534)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.415)
  br label %.critedge240

529:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  %530 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %530, label %532, label %531

531:                                              ; preds = %529
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2535)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge242

532:                                              ; preds = %529
  %533 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %26) #5
  br i1 %533, label %536, label %534

534:                                              ; preds = %532
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2535)
  %535 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %535)
  br label %.critedge242

536:                                              ; preds = %532
  %537 = load i64, ptr %26, align 8, !tbaa !12
  %.not170 = icmp eq i64 %537, 255
  br i1 %.not170, label %539, label %538

538:                                              ; preds = %536
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2535)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.415)
  br label %.critedge242

539:                                              ; preds = %536
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #5
  %540 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %540, label %542, label %541

541:                                              ; preds = %539
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2537)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge244

542:                                              ; preds = %539
  %543 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %27) #5
  br i1 %543, label %546, label %544

544:                                              ; preds = %542
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2537)
  %545 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %545)
  br label %.critedge244

546:                                              ; preds = %542
  %547 = load i64, ptr %27, align 8, !tbaa !12
  %.not171 = icmp eq i64 %547, 255
  br i1 %.not171, label %549, label %548

548:                                              ; preds = %546
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2537)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.415)
  br label %.critedge244

549:                                              ; preds = %546
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  %550 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %550, label %551, label %552

551:                                              ; preds = %549
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2538)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

552:                                              ; preds = %549
  %553 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %553, label %554, label %555

554:                                              ; preds = %552
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2539)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

555:                                              ; preds = %552
  %556 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %556, label %557, label %558

557:                                              ; preds = %555
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2540)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

558:                                              ; preds = %555
  %559 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %559, label %560, label %561

560:                                              ; preds = %558
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2541)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

561:                                              ; preds = %558
  %562 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %562, label %563, label %564

563:                                              ; preds = %561
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2542)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

564:                                              ; preds = %561
  %565 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %565, label %566, label %567

566:                                              ; preds = %564
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2543)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

567:                                              ; preds = %564
  %568 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %568, label %569, label %570

569:                                              ; preds = %567
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2544)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

570:                                              ; preds = %567
  %571 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %571, label %572, label %573

572:                                              ; preds = %570
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2545)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

573:                                              ; preds = %570
  %574 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %574, label %575, label %576

575:                                              ; preds = %573
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2546)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

576:                                              ; preds = %573
  %577 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %577, label %578, label %579

578:                                              ; preds = %576
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2547)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

579:                                              ; preds = %576
  %580 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %580, label %581, label %582

581:                                              ; preds = %579
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2548)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

582:                                              ; preds = %579
  %583 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %583, label %584, label %585

584:                                              ; preds = %582
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2549)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

585:                                              ; preds = %582
  %586 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %586, label %587, label %588

587:                                              ; preds = %585
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2550)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

588:                                              ; preds = %585
  %589 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %589, label %590, label %591

590:                                              ; preds = %588
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2551)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

591:                                              ; preds = %588
  %592 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %593 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 256) #5
  %594 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %595 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %28) #5
  %596 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %596, label %598, label %597

597:                                              ; preds = %591
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2555)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.393)
  br label %.critedge246

598:                                              ; preds = %591
  %599 = call zeroext i1 @cmp_object_as_ushort(ptr noundef nonnull %3, ptr noundef nonnull %28) #5
  br i1 %599, label %602, label %600

600:                                              ; preds = %598
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2555)
  %601 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.411, ptr noundef %601)
  br label %.critedge246

602:                                              ; preds = %598
  %603 = load i16, ptr %28, align 2, !tbaa !8
  %.not172 = icmp eq i16 %603, 256
  br i1 %.not172, label %605, label %604

604:                                              ; preds = %602
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2555)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.416)
  br label %.critedge246

605:                                              ; preds = %602
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %28) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #5
  %606 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %606, label %608, label %607

607:                                              ; preds = %605
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2556)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge248

608:                                              ; preds = %605
  %609 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %29) #5
  br i1 %609, label %612, label %610

610:                                              ; preds = %608
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2556)
  %611 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %611)
  br label %.critedge248

612:                                              ; preds = %608
  %613 = load i32, ptr %29, align 4, !tbaa !10
  %.not173 = icmp eq i32 %613, 256
  br i1 %.not173, label %615, label %614

614:                                              ; preds = %612
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2556)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.416)
  br label %.critedge248

615:                                              ; preds = %612
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  %616 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %616, label %618, label %617

617:                                              ; preds = %615
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2557)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge250

618:                                              ; preds = %615
  %619 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %30) #5
  br i1 %619, label %622, label %620

620:                                              ; preds = %618
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2557)
  %621 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %621)
  br label %.critedge250

622:                                              ; preds = %618
  %623 = load i64, ptr %30, align 8, !tbaa !12
  %.not174 = icmp eq i64 %623, 256
  br i1 %.not174, label %625, label %624

624:                                              ; preds = %622
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2557)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.416)
  br label %.critedge250

625:                                              ; preds = %622
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  %626 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %626, label %628, label %627

627:                                              ; preds = %625
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2559)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge252

628:                                              ; preds = %625
  %629 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %31) #5
  br i1 %629, label %632, label %630

630:                                              ; preds = %628
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2559)
  %631 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %631)
  br label %.critedge252

632:                                              ; preds = %628
  %633 = load i64, ptr %31, align 8, !tbaa !12
  %.not175 = icmp eq i64 %633, 256
  br i1 %.not175, label %635, label %634

634:                                              ; preds = %632
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2559)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.416)
  br label %.critedge252

635:                                              ; preds = %632
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  %636 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %636, label %637, label %638

637:                                              ; preds = %635
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2560)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

638:                                              ; preds = %635
  %639 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %639, label %640, label %641

640:                                              ; preds = %638
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2561)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

641:                                              ; preds = %638
  %642 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %642, label %643, label %644

643:                                              ; preds = %641
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2562)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

644:                                              ; preds = %641
  %645 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %645, label %646, label %647

646:                                              ; preds = %644
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2563)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

647:                                              ; preds = %644
  %648 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %648, label %649, label %650

649:                                              ; preds = %647
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2564)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

650:                                              ; preds = %647
  %651 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %651, label %652, label %653

652:                                              ; preds = %650
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2565)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

653:                                              ; preds = %650
  %654 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %654, label %655, label %656

655:                                              ; preds = %653
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2566)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

656:                                              ; preds = %653
  %657 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %657, label %658, label %659

658:                                              ; preds = %656
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2567)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

659:                                              ; preds = %656
  %660 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %660, label %661, label %662

661:                                              ; preds = %659
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2568)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

662:                                              ; preds = %659
  %663 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %663, label %664, label %665

664:                                              ; preds = %662
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2569)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

665:                                              ; preds = %662
  %666 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %666, label %667, label %668

667:                                              ; preds = %665
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2570)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

668:                                              ; preds = %665
  %669 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %669, label %670, label %671

670:                                              ; preds = %668
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2571)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

671:                                              ; preds = %668
  %672 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %672, label %673, label %674

673:                                              ; preds = %671
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2572)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

674:                                              ; preds = %671
  %675 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %675, label %676, label %677

676:                                              ; preds = %674
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2573)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

677:                                              ; preds = %674
  %678 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %678, label %679, label %680

679:                                              ; preds = %677
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2574)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

680:                                              ; preds = %677
  %681 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %682 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 65535) #5
  %683 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %684 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %32) #5
  %685 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %685, label %687, label %686

686:                                              ; preds = %680
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2578)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.393)
  br label %.critedge254

687:                                              ; preds = %680
  %688 = call zeroext i1 @cmp_object_as_ushort(ptr noundef nonnull %3, ptr noundef nonnull %32) #5
  br i1 %688, label %691, label %689

689:                                              ; preds = %687
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2578)
  %690 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.411, ptr noundef %690)
  br label %.critedge254

691:                                              ; preds = %687
  %692 = load i16, ptr %32, align 2, !tbaa !8
  %.not176 = icmp eq i16 %692, -1
  br i1 %.not176, label %694, label %693

693:                                              ; preds = %691
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2578)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.417)
  br label %.critedge254

694:                                              ; preds = %691
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %32) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %33) #5
  %695 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %695, label %697, label %696

696:                                              ; preds = %694
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2579)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge256

697:                                              ; preds = %694
  %698 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %33) #5
  br i1 %698, label %701, label %699

699:                                              ; preds = %697
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2579)
  %700 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %700)
  br label %.critedge256

701:                                              ; preds = %697
  %702 = load i32, ptr %33, align 4, !tbaa !10
  %.not177 = icmp eq i32 %702, 65535
  br i1 %.not177, label %704, label %703

703:                                              ; preds = %701
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2579)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.417)
  br label %.critedge256

704:                                              ; preds = %701
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  %705 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %705, label %707, label %706

706:                                              ; preds = %704
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2580)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge258

707:                                              ; preds = %704
  %708 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %34) #5
  br i1 %708, label %711, label %709

709:                                              ; preds = %707
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2580)
  %710 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %710)
  br label %.critedge258

711:                                              ; preds = %707
  %712 = load i64, ptr %34, align 8, !tbaa !12
  %.not178 = icmp eq i64 %712, 65535
  br i1 %.not178, label %714, label %713

713:                                              ; preds = %711
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2580)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.417)
  br label %.critedge258

714:                                              ; preds = %711
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %35) #5
  %715 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %715, label %717, label %716

716:                                              ; preds = %714
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2586)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge260

717:                                              ; preds = %714
  %718 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %35) #5
  br i1 %718, label %721, label %719

719:                                              ; preds = %717
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2586)
  %720 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %720)
  br label %.critedge260

721:                                              ; preds = %717
  %722 = load i64, ptr %35, align 8, !tbaa !12
  %.not179 = icmp eq i64 %722, 65535
  br i1 %.not179, label %724, label %723

723:                                              ; preds = %721
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2586)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.417)
  br label %.critedge260

724:                                              ; preds = %721
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  %725 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %725, label %726, label %727

726:                                              ; preds = %724
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2587)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

727:                                              ; preds = %724
  %728 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %728, label %729, label %730

729:                                              ; preds = %727
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2588)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

730:                                              ; preds = %727
  %731 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %731, label %732, label %733

732:                                              ; preds = %730
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2589)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

733:                                              ; preds = %730
  %734 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %734, label %735, label %736

735:                                              ; preds = %733
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2590)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

736:                                              ; preds = %733
  %737 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %737, label %738, label %739

738:                                              ; preds = %736
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2591)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

739:                                              ; preds = %736
  %740 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %740, label %741, label %742

741:                                              ; preds = %739
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2592)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

742:                                              ; preds = %739
  %743 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %743, label %744, label %745

744:                                              ; preds = %742
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2593)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

745:                                              ; preds = %742
  %746 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %746, label %747, label %748

747:                                              ; preds = %745
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2594)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

748:                                              ; preds = %745
  %749 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %749, label %750, label %751

750:                                              ; preds = %748
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2595)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

751:                                              ; preds = %748
  %752 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %752, label %753, label %754

753:                                              ; preds = %751
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2596)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

754:                                              ; preds = %751
  %755 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %755, label %756, label %757

756:                                              ; preds = %754
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2597)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

757:                                              ; preds = %754
  %758 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %758, label %759, label %760

759:                                              ; preds = %757
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2598)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

760:                                              ; preds = %757
  %761 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %761, label %762, label %763

762:                                              ; preds = %760
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2599)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

763:                                              ; preds = %760
  %764 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %764, label %765, label %766

765:                                              ; preds = %763
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2600)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

766:                                              ; preds = %763
  %767 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %768 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 65536) #5
  %769 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %770 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %36) #5
  %771 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %771, label %773, label %772

772:                                              ; preds = %766
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2603)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge262

773:                                              ; preds = %766
  %774 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %36) #5
  br i1 %774, label %777, label %775

775:                                              ; preds = %773
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2603)
  %776 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %776)
  br label %.critedge262

777:                                              ; preds = %773
  %778 = load i32, ptr %36, align 4, !tbaa !10
  %.not180 = icmp eq i32 %778, 65536
  br i1 %.not180, label %780, label %779

779:                                              ; preds = %777
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2603)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.418)
  br label %.critedge262

780:                                              ; preds = %777
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  %781 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %781, label %783, label %782

782:                                              ; preds = %780
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2604)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge264

783:                                              ; preds = %780
  %784 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %37) #5
  br i1 %784, label %787, label %785

785:                                              ; preds = %783
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2604)
  %786 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %786)
  br label %.critedge264

787:                                              ; preds = %783
  %788 = load i64, ptr %37, align 8, !tbaa !12
  %.not181 = icmp eq i64 %788, 65536
  br i1 %.not181, label %790, label %789

789:                                              ; preds = %787
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2604)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.418)
  br label %.critedge264

790:                                              ; preds = %787
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  %791 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %791, label %793, label %792

792:                                              ; preds = %790
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2610)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge266

793:                                              ; preds = %790
  %794 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %38) #5
  br i1 %794, label %797, label %795

795:                                              ; preds = %793
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2610)
  %796 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %796)
  br label %.critedge266

797:                                              ; preds = %793
  %798 = load i64, ptr %38, align 8, !tbaa !12
  %.not182 = icmp eq i64 %798, 65536
  br i1 %.not182, label %800, label %799

799:                                              ; preds = %797
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2610)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.418)
  br label %.critedge266

800:                                              ; preds = %797
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  %801 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %801, label %802, label %803

802:                                              ; preds = %800
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2611)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

803:                                              ; preds = %800
  %804 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %804, label %805, label %806

805:                                              ; preds = %803
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2612)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

806:                                              ; preds = %803
  %807 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %807, label %808, label %809

808:                                              ; preds = %806
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2613)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

809:                                              ; preds = %806
  %810 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %810, label %811, label %812

811:                                              ; preds = %809
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2614)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

812:                                              ; preds = %809
  %813 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %813, label %814, label %815

814:                                              ; preds = %812
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2615)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

815:                                              ; preds = %812
  %816 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %816, label %817, label %818

817:                                              ; preds = %815
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2616)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

818:                                              ; preds = %815
  %819 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %819, label %820, label %821

820:                                              ; preds = %818
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2617)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

821:                                              ; preds = %818
  %822 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %822, label %823, label %824

823:                                              ; preds = %821
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2618)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

824:                                              ; preds = %821
  %825 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %825, label %826, label %827

826:                                              ; preds = %824
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2619)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

827:                                              ; preds = %824
  %828 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %828, label %829, label %830

829:                                              ; preds = %827
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2620)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

830:                                              ; preds = %827
  %831 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %831, label %832, label %833

832:                                              ; preds = %830
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2621)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

833:                                              ; preds = %830
  %834 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %834, label %835, label %836

835:                                              ; preds = %833
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2622)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

836:                                              ; preds = %833
  %837 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %837, label %838, label %839

838:                                              ; preds = %836
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2623)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

839:                                              ; preds = %836
  %840 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %840, label %841, label %842

841:                                              ; preds = %839
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2624)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

842:                                              ; preds = %839
  %843 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %843, label %844, label %845

844:                                              ; preds = %842
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2625)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

845:                                              ; preds = %842
  %846 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %846, label %847, label %848

847:                                              ; preds = %845
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2626)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

848:                                              ; preds = %845
  %849 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %850 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 4294967295) #5
  %851 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %852 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #5
  %853 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %853, label %855, label %854

854:                                              ; preds = %848
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2630)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.394)
  br label %.critedge268

855:                                              ; preds = %848
  %856 = call zeroext i1 @cmp_object_as_uint(ptr noundef nonnull %3, ptr noundef nonnull %39) #5
  br i1 %856, label %859, label %857

857:                                              ; preds = %855
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2630)
  %858 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.412, ptr noundef %858)
  br label %.critedge268

859:                                              ; preds = %855
  %860 = load i32, ptr %39, align 4, !tbaa !10
  %.not183 = icmp eq i32 %860, -1
  br i1 %.not183, label %862, label %861

861:                                              ; preds = %859
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2630)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.419)
  br label %.critedge268

862:                                              ; preds = %859
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #5
  %863 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %863, label %865, label %864

864:                                              ; preds = %862
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2632)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge270

865:                                              ; preds = %862
  %866 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %40) #5
  br i1 %866, label %869, label %867

867:                                              ; preds = %865
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2632)
  %868 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %868)
  br label %.critedge270

869:                                              ; preds = %865
  %870 = load i64, ptr %40, align 8, !tbaa !12
  %.not184 = icmp eq i64 %870, 4294967295
  br i1 %.not184, label %872, label %871

871:                                              ; preds = %869
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2632)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.419)
  br label %.critedge270

872:                                              ; preds = %869
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  %873 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %873, label %875, label %874

874:                                              ; preds = %872
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2638)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge272

875:                                              ; preds = %872
  %876 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %41) #5
  br i1 %876, label %879, label %877

877:                                              ; preds = %875
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2638)
  %878 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %878)
  br label %.critedge272

879:                                              ; preds = %875
  %880 = load i64, ptr %41, align 8, !tbaa !12
  %.not185 = icmp eq i64 %880, 4294967295
  br i1 %.not185, label %882, label %881

881:                                              ; preds = %879
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2638)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.419)
  br label %.critedge272

882:                                              ; preds = %879
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  %883 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %883, label %884, label %885

884:                                              ; preds = %882
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2639)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

885:                                              ; preds = %882
  %886 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %886, label %887, label %888

887:                                              ; preds = %885
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2640)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

888:                                              ; preds = %885
  %889 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %889, label %890, label %891

890:                                              ; preds = %888
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2641)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

891:                                              ; preds = %888
  %892 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %892, label %893, label %894

893:                                              ; preds = %891
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2642)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

894:                                              ; preds = %891
  %895 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %895, label %896, label %897

896:                                              ; preds = %894
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2643)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

897:                                              ; preds = %894
  %898 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %898, label %899, label %900

899:                                              ; preds = %897
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2644)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

900:                                              ; preds = %897
  %901 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %901, label %902, label %903

902:                                              ; preds = %900
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2645)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

903:                                              ; preds = %900
  %904 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %904, label %905, label %906

905:                                              ; preds = %903
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2646)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

906:                                              ; preds = %903
  %907 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %907, label %908, label %909

908:                                              ; preds = %906
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2647)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

909:                                              ; preds = %906
  %910 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %910, label %911, label %912

911:                                              ; preds = %909
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2648)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

912:                                              ; preds = %909
  %913 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %913, label %914, label %915

914:                                              ; preds = %912
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2649)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

915:                                              ; preds = %912
  %916 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %916, label %917, label %918

917:                                              ; preds = %915
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2650)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

918:                                              ; preds = %915
  %919 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %919, label %920, label %921

920:                                              ; preds = %918
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2651)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

921:                                              ; preds = %918
  %922 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %922, label %923, label %924

923:                                              ; preds = %921
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2652)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

924:                                              ; preds = %921
  %925 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %925, label %926, label %927

926:                                              ; preds = %924
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2653)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

927:                                              ; preds = %924
  %928 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %928, label %929, label %930

929:                                              ; preds = %927
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2654)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

930:                                              ; preds = %927
  %931 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %932 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 4294967296) #5
  %933 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %934 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #5
  %935 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %935, label %937, label %936

936:                                              ; preds = %930
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2658)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.395)
  br label %.critedge274

937:                                              ; preds = %930
  %938 = call zeroext i1 @cmp_object_as_ulong(ptr noundef nonnull %3, ptr noundef nonnull %42) #5
  br i1 %938, label %941, label %939

939:                                              ; preds = %937
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2658)
  %940 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.413, ptr noundef %940)
  br label %.critedge274

941:                                              ; preds = %937
  %942 = load i64, ptr %42, align 8, !tbaa !12
  %.not186 = icmp eq i64 %942, 4294967296
  br i1 %.not186, label %944, label %943

943:                                              ; preds = %941
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2658)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.420)
  br label %.critedge274

944:                                              ; preds = %941
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  %945 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %945, label %947, label %946

946:                                              ; preds = %944
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2664)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.396)
  br label %.critedge276

947:                                              ; preds = %944
  %948 = call zeroext i1 @cmp_object_as_uinteger(ptr noundef nonnull %3, ptr noundef nonnull %43) #5
  br i1 %948, label %951, label %949

949:                                              ; preds = %947
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2664)
  %950 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.414, ptr noundef %950)
  br label %.critedge276

951:                                              ; preds = %947
  %952 = load i64, ptr %43, align 8, !tbaa !12
  %.not187 = icmp eq i64 %952, 4294967296
  br i1 %.not187, label %954, label %953

953:                                              ; preds = %951
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2664)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.420)
  br label %.critedge276

954:                                              ; preds = %951
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  %955 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %955, label %956, label %957

956:                                              ; preds = %954
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2665)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

957:                                              ; preds = %954
  %958 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %958, label %959, label %960

959:                                              ; preds = %957
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2666)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

960:                                              ; preds = %957
  %961 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %961, label %962, label %963

962:                                              ; preds = %960
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2667)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

963:                                              ; preds = %960
  %964 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %964, label %965, label %966

965:                                              ; preds = %963
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2668)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

966:                                              ; preds = %963
  %967 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %967, label %968, label %969

968:                                              ; preds = %966
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2669)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

969:                                              ; preds = %966
  %970 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %970, label %971, label %972

971:                                              ; preds = %969
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2670)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

972:                                              ; preds = %969
  %973 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %973, label %974, label %975

974:                                              ; preds = %972
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2671)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

975:                                              ; preds = %972
  %976 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %976, label %977, label %978

977:                                              ; preds = %975
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2672)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

978:                                              ; preds = %975
  %979 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %979, label %980, label %981

980:                                              ; preds = %978
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2673)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

981:                                              ; preds = %978
  %982 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %982, label %983, label %984

983:                                              ; preds = %981
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2674)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

984:                                              ; preds = %981
  %985 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %985, label %986, label %987

986:                                              ; preds = %984
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2675)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

987:                                              ; preds = %984
  %988 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %988, label %989, label %990

989:                                              ; preds = %987
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2676)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

990:                                              ; preds = %987
  %991 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %991, label %992, label %993

992:                                              ; preds = %990
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2677)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

993:                                              ; preds = %990
  %994 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %994, label %995, label %996

995:                                              ; preds = %993
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2678)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

996:                                              ; preds = %993
  %997 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %997, label %998, label %999

998:                                              ; preds = %996
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2679)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

999:                                              ; preds = %996
  %1000 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1000, label %1001, label %1002

1001:                                             ; preds = %999
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2680)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1002:                                             ; preds = %999
  %1003 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1003, label %1004, label %1005

1004:                                             ; preds = %1002
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2681)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1005:                                             ; preds = %1002
  %1006 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1007 = call zeroext i1 @cmp_write_float(ptr noundef nonnull %2, float noundef 1.000000e+00) #5
  %1008 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1009 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %44) #5
  %1010 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1010, label %1012, label %1011

1011:                                             ; preds = %1005
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2684)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.397)
  br label %.critedge278

1012:                                             ; preds = %1005
  %1013 = call zeroext i1 @cmp_object_as_float(ptr noundef nonnull %3, ptr noundef nonnull %44) #5
  br i1 %1013, label %1016, label %1014

1014:                                             ; preds = %1012
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2684)
  %1015 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.421, ptr noundef %1015)
  br label %.critedge278

1016:                                             ; preds = %1012
  %1017 = load float, ptr %44, align 4, !tbaa !14
  %1018 = fcmp une float %1017, 1.000000e+00
  br i1 %1018, label %1019, label %1020

1019:                                             ; preds = %1016
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2684)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.422)
  br label %.critedge278

1020:                                             ; preds = %1016
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  %1021 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1021, label %1022, label %1023

1022:                                             ; preds = %1020
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2685)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1023:                                             ; preds = %1020
  %1024 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1024, label %1025, label %1026

1025:                                             ; preds = %1023
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2686)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1026:                                             ; preds = %1023
  %1027 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1027, label %1028, label %1029

1028:                                             ; preds = %1026
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2687)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1029:                                             ; preds = %1026
  %1030 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1030, label %1031, label %1032

1031:                                             ; preds = %1029
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2688)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1032:                                             ; preds = %1029
  %1033 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1033, label %1034, label %1035

1034:                                             ; preds = %1032
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2689)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1035:                                             ; preds = %1032
  %1036 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1036, label %1037, label %1038

1037:                                             ; preds = %1035
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2690)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1038:                                             ; preds = %1035
  %1039 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1039, label %1040, label %1041

1040:                                             ; preds = %1038
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2691)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1041:                                             ; preds = %1038
  %1042 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1042, label %1043, label %1044

1043:                                             ; preds = %1041
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2692)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1044:                                             ; preds = %1041
  %1045 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1045, label %1046, label %1047

1046:                                             ; preds = %1044
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2693)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1047:                                             ; preds = %1044
  %1048 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1048, label %1049, label %1050

1049:                                             ; preds = %1047
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2694)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1050:                                             ; preds = %1047
  %1051 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1051, label %1052, label %1053

1052:                                             ; preds = %1050
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2695)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1053:                                             ; preds = %1050
  %1054 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1054, label %1055, label %1056

1055:                                             ; preds = %1053
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2696)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1056:                                             ; preds = %1053
  %1057 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1057, label %1058, label %1059

1058:                                             ; preds = %1056
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2697)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1059:                                             ; preds = %1056
  %1060 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1060, label %1061, label %1062

1061:                                             ; preds = %1059
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2698)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1062:                                             ; preds = %1059
  %1063 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1063, label %1064, label %1065

1064:                                             ; preds = %1062
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2699)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1065:                                             ; preds = %1062
  %1066 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1065
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2700)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1068:                                             ; preds = %1065
  %1069 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1069, label %1070, label %1071

1070:                                             ; preds = %1068
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2701)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1071:                                             ; preds = %1068
  %1072 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1072, label %1073, label %1074

1073:                                             ; preds = %1071
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2702)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1074:                                             ; preds = %1071
  %1075 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1076 = call zeroext i1 @cmp_write_double(ptr noundef nonnull %2, double noundef 1.000000e+00) #5
  %1077 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1078 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #5
  %1079 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1079, label %1081, label %1080

1080:                                             ; preds = %1074
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2705)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.398)
  br label %.critedge280

1081:                                             ; preds = %1074
  %1082 = call zeroext i1 @cmp_object_as_double(ptr noundef nonnull %3, ptr noundef nonnull %45) #5
  br i1 %1082, label %1085, label %1083

1083:                                             ; preds = %1081
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2705)
  %1084 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.423, ptr noundef %1084)
  br label %.critedge280

1085:                                             ; preds = %1081
  %1086 = load double, ptr %45, align 8, !tbaa !16
  %1087 = fcmp une double %1086, 1.000000e+00
  br i1 %1087, label %1088, label %1089

1088:                                             ; preds = %1085
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2705)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.424)
  br label %.critedge280

1089:                                             ; preds = %1085
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  %1090 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1090, label %1091, label %1092

1091:                                             ; preds = %1089
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2706)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1092:                                             ; preds = %1089
  %1093 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1093, label %1094, label %1095

1094:                                             ; preds = %1092
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2707)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1095:                                             ; preds = %1092
  %1096 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1096, label %1097, label %1098

1097:                                             ; preds = %1095
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2708)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1098:                                             ; preds = %1095
  %1099 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1099, label %1100, label %1101

1100:                                             ; preds = %1098
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2709)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1101:                                             ; preds = %1098
  %1102 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1102, label %1103, label %1104

1103:                                             ; preds = %1101
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2710)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1104:                                             ; preds = %1101
  %1105 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1105, label %1106, label %1107

1106:                                             ; preds = %1104
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2711)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1107:                                             ; preds = %1104
  %1108 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1108, label %1109, label %1110

1109:                                             ; preds = %1107
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2712)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1110:                                             ; preds = %1107
  %1111 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1111, label %1112, label %1113

1112:                                             ; preds = %1110
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2713)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1113:                                             ; preds = %1110
  %1114 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1114, label %1115, label %1116

1115:                                             ; preds = %1113
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2714)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1116:                                             ; preds = %1113
  %1117 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1117, label %1118, label %1119

1118:                                             ; preds = %1116
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2715)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1119:                                             ; preds = %1116
  %1120 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1120, label %1121, label %1122

1121:                                             ; preds = %1119
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2716)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1122:                                             ; preds = %1119
  %1123 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1123, label %1124, label %1125

1124:                                             ; preds = %1122
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2717)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1125:                                             ; preds = %1122
  %1126 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1126, label %1127, label %1128

1127:                                             ; preds = %1125
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2718)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1128:                                             ; preds = %1125
  %1129 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1129, label %1130, label %1131

1130:                                             ; preds = %1128
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2719)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1131:                                             ; preds = %1128
  %1132 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1132, label %1133, label %1134

1133:                                             ; preds = %1131
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2720)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1134:                                             ; preds = %1131
  %1135 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1135, label %1136, label %1137

1136:                                             ; preds = %1134
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2721)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1137:                                             ; preds = %1134
  %1138 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1138, label %1139, label %1140

1139:                                             ; preds = %1137
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2722)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1140:                                             ; preds = %1137
  %1141 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1141, label %1142, label %1143

1142:                                             ; preds = %1140
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2723)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1143:                                             ; preds = %1140
  %1144 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1145 = call zeroext i1 @cmp_write_nil(ptr noundef nonnull %2) #5
  %1146 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1147 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  %1148 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1148, label %1150, label %1149

1149:                                             ; preds = %1143
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2726)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.399)
  br label %1787

1150:                                             ; preds = %1143
  %1151 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1151, label %1152, label %1153

1152:                                             ; preds = %1150
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2727)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1153:                                             ; preds = %1150
  %1154 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1154, label %1155, label %1156

1155:                                             ; preds = %1153
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2728)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1156:                                             ; preds = %1153
  %1157 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1157, label %1158, label %1159

1158:                                             ; preds = %1156
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2729)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1159:                                             ; preds = %1156
  %1160 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1160, label %1161, label %1162

1161:                                             ; preds = %1159
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2730)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1162:                                             ; preds = %1159
  %1163 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1163, label %1164, label %1165

1164:                                             ; preds = %1162
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2731)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1165:                                             ; preds = %1162
  %1166 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1166, label %1167, label %1168

1167:                                             ; preds = %1165
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2732)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1168:                                             ; preds = %1165
  %1169 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1168
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2733)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1171:                                             ; preds = %1168
  %1172 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1172, label %1173, label %1174

1173:                                             ; preds = %1171
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2734)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1174:                                             ; preds = %1171
  %1175 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1175, label %1176, label %1177

1176:                                             ; preds = %1174
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2735)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1177:                                             ; preds = %1174
  %1178 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1178, label %1179, label %1180

1179:                                             ; preds = %1177
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2736)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1180:                                             ; preds = %1177
  %1181 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1181, label %1182, label %1183

1182:                                             ; preds = %1180
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2737)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1183:                                             ; preds = %1180
  %1184 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1184, label %1185, label %1186

1185:                                             ; preds = %1183
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2738)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1186:                                             ; preds = %1183
  %1187 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1187, label %1188, label %1189

1188:                                             ; preds = %1186
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2739)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1189:                                             ; preds = %1186
  %1190 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1190, label %1191, label %1192

1191:                                             ; preds = %1189
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2740)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1192:                                             ; preds = %1189
  %1193 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1193, label %1194, label %1195

1194:                                             ; preds = %1192
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2741)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1195:                                             ; preds = %1192
  %1196 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1196, label %1197, label %1198

1197:                                             ; preds = %1195
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2742)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1198:                                             ; preds = %1195
  %1199 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1199, label %1200, label %1201

1200:                                             ; preds = %1198
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2743)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1201:                                             ; preds = %1198
  %1202 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1202, label %1203, label %1204

1203:                                             ; preds = %1201
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2744)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1204:                                             ; preds = %1201
  %1205 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1206 = call zeroext i1 @cmp_write_true(ptr noundef nonnull %2) #5
  %1207 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1208 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %46) #5
  %1209 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1209, label %1211, label %1210

1210:                                             ; preds = %1204
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2747)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.400)
  br label %.critedge282

1211:                                             ; preds = %1204
  %1212 = call zeroext i1 @cmp_object_as_bool(ptr noundef nonnull %3, ptr noundef nonnull %46) #5
  br i1 %1212, label %1215, label %1213

1213:                                             ; preds = %1211
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2747)
  %1214 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.425, ptr noundef %1214)
  br label %.critedge282

1215:                                             ; preds = %1211
  %1216 = load i8, ptr %46, align 1, !tbaa !18, !range !20, !noundef !21
  %.not188.not = icmp eq i8 %1216, 0
  br i1 %.not188.not, label %1217, label %1218

1217:                                             ; preds = %1215
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2747)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.426)
  br label %.critedge282

1218:                                             ; preds = %1215
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #5
  %1219 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1219, label %1220, label %1221

1220:                                             ; preds = %1218
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2748)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1221:                                             ; preds = %1218
  %1222 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1222, label %1223, label %1224

1223:                                             ; preds = %1221
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2749)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1224:                                             ; preds = %1221
  %1225 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1225, label %1226, label %1227

1226:                                             ; preds = %1224
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2750)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1227:                                             ; preds = %1224
  %1228 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1228, label %1229, label %1230

1229:                                             ; preds = %1227
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2751)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1230:                                             ; preds = %1227
  %1231 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1231, label %1232, label %1233

1232:                                             ; preds = %1230
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2752)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1233:                                             ; preds = %1230
  %1234 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1234, label %1235, label %1236

1235:                                             ; preds = %1233
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2753)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1236:                                             ; preds = %1233
  %1237 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1237, label %1238, label %1239

1238:                                             ; preds = %1236
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2754)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1239:                                             ; preds = %1236
  %1240 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1240, label %1241, label %1242

1241:                                             ; preds = %1239
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2755)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1242:                                             ; preds = %1239
  %1243 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1243, label %1244, label %1245

1244:                                             ; preds = %1242
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2756)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1245:                                             ; preds = %1242
  %1246 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1246, label %1247, label %1248

1247:                                             ; preds = %1245
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2757)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1248:                                             ; preds = %1245
  %1249 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1249, label %1250, label %1251

1250:                                             ; preds = %1248
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2758)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1251:                                             ; preds = %1248
  %1252 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1252, label %1253, label %1254

1253:                                             ; preds = %1251
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2759)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1254:                                             ; preds = %1251
  %1255 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1255, label %1256, label %1257

1256:                                             ; preds = %1254
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2760)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1257:                                             ; preds = %1254
  %1258 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1258, label %1259, label %1260

1259:                                             ; preds = %1257
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2761)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1260:                                             ; preds = %1257
  %1261 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1261, label %1262, label %1263

1262:                                             ; preds = %1260
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2762)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1263:                                             ; preds = %1260
  %1264 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1264, label %1265, label %1266

1265:                                             ; preds = %1263
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2763)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1266:                                             ; preds = %1263
  %1267 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1267, label %1268, label %1269

1268:                                             ; preds = %1266
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2764)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1269:                                             ; preds = %1266
  %1270 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1270, label %1271, label %1272

1271:                                             ; preds = %1269
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2765)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1272:                                             ; preds = %1269
  %1273 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1274 = call zeroext i1 @cmp_write_false(ptr noundef nonnull %2) #5
  %1275 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1276 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %47) #5
  %1277 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1277, label %1279, label %1278

1278:                                             ; preds = %1272
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2768)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.400)
  br label %.critedge284

1279:                                             ; preds = %1272
  %1280 = call zeroext i1 @cmp_object_as_bool(ptr noundef nonnull %3, ptr noundef nonnull %47) #5
  br i1 %1280, label %1283, label %1281

1281:                                             ; preds = %1279
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2768)
  %1282 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.425, ptr noundef %1282)
  br label %.critedge284

1283:                                             ; preds = %1279
  %1284 = load i8, ptr %47, align 1, !tbaa !18, !range !20, !noundef !21
  %1285 = trunc nuw i8 %1284 to i1
  br i1 %1285, label %1286, label %1287

1286:                                             ; preds = %1283
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2768)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.427)
  br label %.critedge284

1287:                                             ; preds = %1283
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  %1288 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1288, label %1289, label %1290

1289:                                             ; preds = %1287
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2769)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1290:                                             ; preds = %1287
  %1291 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1291, label %1292, label %1293

1292:                                             ; preds = %1290
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2770)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1293:                                             ; preds = %1290
  %1294 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1294, label %1295, label %1296

1295:                                             ; preds = %1293
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2771)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1296:                                             ; preds = %1293
  %1297 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1297, label %1298, label %1299

1298:                                             ; preds = %1296
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2772)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1299:                                             ; preds = %1296
  %1300 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1300, label %1301, label %1302

1301:                                             ; preds = %1299
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2773)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1302:                                             ; preds = %1299
  %1303 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1303, label %1304, label %1305

1304:                                             ; preds = %1302
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2774)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1305:                                             ; preds = %1302
  %1306 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1306, label %1307, label %1308

1307:                                             ; preds = %1305
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2775)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1308:                                             ; preds = %1305
  %1309 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1309, label %1310, label %1311

1310:                                             ; preds = %1308
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2776)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1311:                                             ; preds = %1308
  %1312 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1312, label %1313, label %1314

1313:                                             ; preds = %1311
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2777)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1314:                                             ; preds = %1311
  %1315 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1315, label %1316, label %1317

1316:                                             ; preds = %1314
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2778)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1317:                                             ; preds = %1314
  %1318 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1318, label %1319, label %1320

1319:                                             ; preds = %1317
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2779)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1320:                                             ; preds = %1317
  %1321 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1321, label %1322, label %1323

1322:                                             ; preds = %1320
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2780)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1323:                                             ; preds = %1320
  %1324 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1324, label %1325, label %1326

1325:                                             ; preds = %1323
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2781)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1326:                                             ; preds = %1323
  %1327 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1327, label %1328, label %1329

1328:                                             ; preds = %1326
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2782)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1329:                                             ; preds = %1326
  %1330 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1330, label %1331, label %1332

1331:                                             ; preds = %1329
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2783)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1332:                                             ; preds = %1329
  %1333 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1333, label %1334, label %1335

1334:                                             ; preds = %1332
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2784)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1335:                                             ; preds = %1332
  %1336 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1336, label %1337, label %1338

1337:                                             ; preds = %1335
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2785)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1338:                                             ; preds = %1335
  %1339 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1339, label %1340, label %1341

1340:                                             ; preds = %1338
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2786)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1341:                                             ; preds = %1338
  %1342 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1343 = call zeroext i1 @cmp_write_bool(ptr noundef nonnull %2, i1 noundef zeroext true) #5
  %1344 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1345 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %48) #5
  %1346 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1346, label %1348, label %1347

1347:                                             ; preds = %1341
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2789)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.400)
  br label %.critedge286

1348:                                             ; preds = %1341
  %1349 = call zeroext i1 @cmp_object_as_bool(ptr noundef nonnull %3, ptr noundef nonnull %48) #5
  br i1 %1349, label %1352, label %1350

1350:                                             ; preds = %1348
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2789)
  %1351 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.425, ptr noundef %1351)
  br label %.critedge286

1352:                                             ; preds = %1348
  %1353 = load i8, ptr %48, align 1, !tbaa !18, !range !20, !noundef !21
  %.not189.not = icmp eq i8 %1353, 0
  br i1 %.not189.not, label %1354, label %1355

1354:                                             ; preds = %1352
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2789)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.426)
  br label %.critedge286

1355:                                             ; preds = %1352
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #5
  %1356 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1355
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2790)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1358:                                             ; preds = %1355
  %1359 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1359, label %1360, label %1361

1360:                                             ; preds = %1358
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2791)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1361:                                             ; preds = %1358
  %1362 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1362, label %1363, label %1364

1363:                                             ; preds = %1361
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2792)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1364:                                             ; preds = %1361
  %1365 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1365, label %1366, label %1367

1366:                                             ; preds = %1364
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2793)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1367:                                             ; preds = %1364
  %1368 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1368, label %1369, label %1370

1369:                                             ; preds = %1367
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2794)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1370:                                             ; preds = %1367
  %1371 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1371, label %1372, label %1373

1372:                                             ; preds = %1370
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2795)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1373:                                             ; preds = %1370
  %1374 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1374, label %1375, label %1376

1375:                                             ; preds = %1373
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2796)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1376:                                             ; preds = %1373
  %1377 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1377, label %1378, label %1379

1378:                                             ; preds = %1376
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2797)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1379:                                             ; preds = %1376
  %1380 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1380, label %1381, label %1382

1381:                                             ; preds = %1379
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2798)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1382:                                             ; preds = %1379
  %1383 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1383, label %1384, label %1385

1384:                                             ; preds = %1382
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2799)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1385:                                             ; preds = %1382
  %1386 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1386, label %1387, label %1388

1387:                                             ; preds = %1385
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2800)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1388:                                             ; preds = %1385
  %1389 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1389, label %1390, label %1391

1390:                                             ; preds = %1388
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2801)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1391:                                             ; preds = %1388
  %1392 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1392, label %1393, label %1394

1393:                                             ; preds = %1391
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2802)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1394:                                             ; preds = %1391
  %1395 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1395, label %1396, label %1397

1396:                                             ; preds = %1394
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2803)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1397:                                             ; preds = %1394
  %1398 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1398, label %1399, label %1400

1399:                                             ; preds = %1397
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2804)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1400:                                             ; preds = %1397
  %1401 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1401, label %1402, label %1403

1402:                                             ; preds = %1400
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2805)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1403:                                             ; preds = %1400
  %1404 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1404, label %1405, label %1406

1405:                                             ; preds = %1403
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2806)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1406:                                             ; preds = %1403
  %1407 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1407, label %1408, label %1409

1408:                                             ; preds = %1406
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2807)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1409:                                             ; preds = %1406
  %1410 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1411 = call zeroext i1 @cmp_write_bool(ptr noundef nonnull %2, i1 noundef zeroext false) #5
  %1412 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1413 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %49) #5
  %1414 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1414, label %1416, label %1415

1415:                                             ; preds = %1409
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2810)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.378, ptr noundef nonnull @.str.400)
  br label %.critedge288

1416:                                             ; preds = %1409
  %1417 = call zeroext i1 @cmp_object_as_bool(ptr noundef nonnull %3, ptr noundef nonnull %49) #5
  br i1 %1417, label %1420, label %1418

1418:                                             ; preds = %1416
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2810)
  %1419 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.380, ptr noundef nonnull @.str.425, ptr noundef %1419)
  br label %.critedge288

1420:                                             ; preds = %1416
  %1421 = load i8, ptr %49, align 1, !tbaa !18, !range !20, !noundef !21
  %1422 = trunc nuw i8 %1421 to i1
  br i1 %1422, label %1423, label %1424

1423:                                             ; preds = %1420
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2810)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.427)
  br label %.critedge288

1424:                                             ; preds = %1420
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #5
  %1425 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1425, label %1426, label %1427

1426:                                             ; preds = %1424
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2811)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1427:                                             ; preds = %1424
  %1428 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1428, label %1429, label %1430

1429:                                             ; preds = %1427
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2812)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1430:                                             ; preds = %1427
  %1431 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1431, label %1432, label %1433

1432:                                             ; preds = %1430
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2813)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1433:                                             ; preds = %1430
  %1434 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1434, label %1435, label %1436

1435:                                             ; preds = %1433
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2814)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1436:                                             ; preds = %1433
  %1437 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1437, label %1438, label %1439

1438:                                             ; preds = %1436
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2815)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1439:                                             ; preds = %1436
  %1440 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1440, label %1441, label %1442

1441:                                             ; preds = %1439
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2816)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1442:                                             ; preds = %1439
  %1443 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1443, label %1444, label %1445

1444:                                             ; preds = %1442
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2817)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1445:                                             ; preds = %1442
  %1446 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1446, label %1447, label %1448

1447:                                             ; preds = %1445
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2818)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1448:                                             ; preds = %1445
  %1449 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1449, label %1450, label %1451

1450:                                             ; preds = %1448
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2819)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1451:                                             ; preds = %1448
  %1452 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1452, label %1453, label %1454

1453:                                             ; preds = %1451
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2820)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1454:                                             ; preds = %1451
  %1455 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1455, label %1456, label %1457

1456:                                             ; preds = %1454
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2821)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1457:                                             ; preds = %1454
  %1458 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1458, label %1459, label %1460

1459:                                             ; preds = %1457
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2822)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1460:                                             ; preds = %1457
  %1461 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1461, label %1462, label %1463

1462:                                             ; preds = %1460
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2823)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1463:                                             ; preds = %1460
  %1464 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1464, label %1465, label %1466

1465:                                             ; preds = %1463
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2824)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.401)
  br label %1787

1466:                                             ; preds = %1463
  %1467 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1467, label %1468, label %1469

1468:                                             ; preds = %1466
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2825)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1469:                                             ; preds = %1466
  %1470 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1470, label %1471, label %1472

1471:                                             ; preds = %1469
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2826)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1472:                                             ; preds = %1469
  %1473 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1473, label %1474, label %1475

1474:                                             ; preds = %1472
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2827)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1475:                                             ; preds = %1472
  %1476 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1476, label %1477, label %1478

1477:                                             ; preds = %1475
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2828)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1478:                                             ; preds = %1475
  %1479 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1480 = call zeroext i1 @cmp_write_str(ptr noundef nonnull %2, ptr noundef nonnull @.str.428, i32 noundef 9) #5
  %1481 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1482 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #5
  %1483 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1483, label %1485, label %1484

1484:                                             ; preds = %1478
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2831)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.429)
  br label %.critedge290

1485:                                             ; preds = %1478
  %1486 = call zeroext i1 @cmp_object_as_str(ptr noundef nonnull %3, ptr noundef nonnull %50) #5
  br i1 %1486, label %1489, label %1487

1487:                                             ; preds = %1485
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2831)
  %1488 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.430, ptr noundef %1488)
  br label %.critedge290

1489:                                             ; preds = %1485
  %1490 = call ptr @M_BufferGetDataAtCursor(ptr noundef nonnull %1) #5
  %1491 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %1490, ptr noundef nonnull dereferenceable(1) @.str.428) #6
  %.not190 = icmp eq i32 %1491, 0
  br i1 %.not190, label %1494, label %1492

1492:                                             ; preds = %1489
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2831)
  %1493 = call ptr @M_BufferGetDataAtCursor(ptr noundef nonnull %1) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.431, ptr noundef %1493)
  br label %.critedge290

1494:                                             ; preds = %1489
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #5
  %1495 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1495, label %1496, label %1497

1496:                                             ; preds = %1494
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2832)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1497:                                             ; preds = %1494
  %1498 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1498, label %1499, label %1500

1499:                                             ; preds = %1497
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2833)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1500:                                             ; preds = %1497
  %1501 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1501, label %1502, label %1503

1502:                                             ; preds = %1500
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2834)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1503:                                             ; preds = %1500
  %1504 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1504, label %1505, label %1506

1505:                                             ; preds = %1503
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2835)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1506:                                             ; preds = %1503
  %1507 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1507, label %1508, label %1509

1508:                                             ; preds = %1506
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2836)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1509:                                             ; preds = %1506
  %1510 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1510, label %1511, label %1512

1511:                                             ; preds = %1509
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2837)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1512:                                             ; preds = %1509
  %1513 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1513, label %1514, label %1515

1514:                                             ; preds = %1512
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2838)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1515:                                             ; preds = %1512
  %1516 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1516, label %1517, label %1518

1517:                                             ; preds = %1515
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2839)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1518:                                             ; preds = %1515
  %1519 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1519, label %1520, label %1521

1520:                                             ; preds = %1518
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2840)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1521:                                             ; preds = %1518
  %1522 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1522, label %1523, label %1524

1523:                                             ; preds = %1521
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2841)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1524:                                             ; preds = %1521
  %1525 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1525, label %1526, label %1527

1526:                                             ; preds = %1524
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2842)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1527:                                             ; preds = %1524
  %1528 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1528, label %1529, label %1530

1529:                                             ; preds = %1527
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2843)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1530:                                             ; preds = %1527
  %1531 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1531, label %1532, label %1533

1532:                                             ; preds = %1530
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2844)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1533:                                             ; preds = %1530
  %1534 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1534, label %1535, label %1536

1535:                                             ; preds = %1533
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2845)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1536:                                             ; preds = %1533
  %1537 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1537, label %1538, label %1539

1538:                                             ; preds = %1536
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2846)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1539:                                             ; preds = %1536
  %1540 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1540, label %1541, label %1542

1541:                                             ; preds = %1539
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2847)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1542:                                             ; preds = %1539
  %1543 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1543, label %1544, label %1545

1544:                                             ; preds = %1542
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2848)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1545:                                             ; preds = %1542
  %1546 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1546, label %1547, label %1548

1547:                                             ; preds = %1545
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2849)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1548:                                             ; preds = %1545
  %1549 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1550 = call zeroext i1 @cmp_write_bin(ptr noundef nonnull %2, ptr noundef nonnull @.str.428, i32 noundef 9) #5
  %1551 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1552 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %51) #5
  %1553 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1553, label %1555, label %1554

1554:                                             ; preds = %1548
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2852)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.432)
  br label %.critedge292

1555:                                             ; preds = %1548
  %1556 = call zeroext i1 @cmp_object_as_bin(ptr noundef nonnull %3, ptr noundef nonnull %51) #5
  br i1 %1556, label %1559, label %1557

1557:                                             ; preds = %1555
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2852)
  %1558 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.433, ptr noundef %1558)
  br label %.critedge292

1559:                                             ; preds = %1555
  %1560 = load i32, ptr %51, align 4, !tbaa !10
  %.not191 = icmp eq i32 %1560, 9
  br i1 %.not191, label %1563, label %1561

1561:                                             ; preds = %1559
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2852)
  %1562 = load i32, ptr %51, align 4, !tbaa !10
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.434, i32 noundef 9, i32 noundef %1562)
  br label %.critedge292

1563:                                             ; preds = %1559
  %1564 = call ptr @M_BufferGetDataAtCursor(ptr noundef nonnull %1) #5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(9) %1564, ptr noundef nonnull dereferenceable(9) @.str.428, i64 9)
  %.not192 = icmp eq i32 %bcmp, 0
  br i1 %.not192, label %1567, label %1565

1565:                                             ; preds = %1563
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2852)
  %1566 = call ptr @M_BufferGetDataAtCursor(ptr noundef nonnull %1) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.431, ptr noundef %1566)
  br label %.critedge292

1567:                                             ; preds = %1563
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #5
  %1568 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1568, label %1569, label %1570

1569:                                             ; preds = %1567
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2853)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1570:                                             ; preds = %1567
  %1571 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1571, label %1572, label %1573

1572:                                             ; preds = %1570
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2854)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1573:                                             ; preds = %1570
  %1574 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1574, label %1575, label %1576

1575:                                             ; preds = %1573
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2855)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1576:                                             ; preds = %1573
  %1577 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1577, label %1578, label %1579

1578:                                             ; preds = %1576
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2856)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1579:                                             ; preds = %1576
  %1580 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1580, label %1581, label %1582

1581:                                             ; preds = %1579
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2857)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1582:                                             ; preds = %1579
  %1583 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1583, label %1584, label %1585

1584:                                             ; preds = %1582
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2858)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1585:                                             ; preds = %1582
  %1586 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1586, label %1587, label %1588

1587:                                             ; preds = %1585
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2859)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1588:                                             ; preds = %1585
  %1589 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1589, label %1590, label %1591

1590:                                             ; preds = %1588
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2860)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1591:                                             ; preds = %1588
  %1592 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1592, label %1593, label %1594

1593:                                             ; preds = %1591
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2861)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1594:                                             ; preds = %1591
  %1595 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1595, label %1596, label %1597

1596:                                             ; preds = %1594
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2862)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1597:                                             ; preds = %1594
  %1598 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1598, label %1599, label %1600

1599:                                             ; preds = %1597
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2863)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1600:                                             ; preds = %1597
  %1601 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1601, label %1602, label %1603

1602:                                             ; preds = %1600
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2864)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1603:                                             ; preds = %1600
  %1604 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1604, label %1605, label %1606

1605:                                             ; preds = %1603
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2865)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1606:                                             ; preds = %1603
  %1607 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1607, label %1608, label %1609

1608:                                             ; preds = %1606
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2866)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1609:                                             ; preds = %1606
  %1610 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1610, label %1611, label %1612

1611:                                             ; preds = %1609
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2867)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.435)
  br label %1787

1612:                                             ; preds = %1609
  %1613 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1613, label %1614, label %1615

1614:                                             ; preds = %1612
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2868)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1615:                                             ; preds = %1612
  %1616 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1616, label %1617, label %1618

1617:                                             ; preds = %1615
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2869)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1618:                                             ; preds = %1615
  %1619 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1619, label %1620, label %1621

1620:                                             ; preds = %1618
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2870)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1621:                                             ; preds = %1618
  %1622 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1623 = call zeroext i1 @cmp_write_array(ptr noundef nonnull %2, i32 noundef 2) #5
  %1624 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 1) #5
  %1625 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 2) #5
  %1626 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1627 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %52) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #5
  %1628 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1628, label %1630, label %1629

1629:                                             ; preds = %1621
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.436)
  br label %.critedge294

1630:                                             ; preds = %1621
  %1631 = call zeroext i1 @cmp_object_as_array(ptr noundef nonnull %3, ptr noundef nonnull %52) #5
  br i1 %1631, label %1634, label %1632

1632:                                             ; preds = %1630
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  %1633 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.437, ptr noundef %1633)
  br label %.critedge294

1634:                                             ; preds = %1630
  %1635 = load i32, ptr %52, align 4, !tbaa !10
  %.not193 = icmp eq i32 %1635, 2
  br i1 %.not193, label %1637, label %1636

1636:                                             ; preds = %1634
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.438)
  br label %.critedge294

1637:                                             ; preds = %1634
  %1638 = call zeroext i1 @cmp_read_uinteger(ptr noundef nonnull %2, ptr noundef nonnull %53) #5
  br i1 %1638, label %1640, label %1639

1639:                                             ; preds = %1637
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.439)
  br label %.critedge294

1640:                                             ; preds = %1637
  %1641 = call zeroext i1 @cmp_read_uinteger(ptr noundef nonnull %2, ptr noundef nonnull %54) #5
  br i1 %1641, label %1643, label %1642

1642:                                             ; preds = %1640
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.440)
  br label %.critedge294

1643:                                             ; preds = %1640
  %1644 = load i64, ptr %53, align 8, !tbaa !12
  %.not194 = icmp eq i64 %1644, 1
  br i1 %.not194, label %1647, label %1645

1645:                                             ; preds = %1643
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  %1646 = load i64, ptr %53, align 8, !tbaa !12
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.441, i32 noundef 1, i64 noundef %1646)
  br label %.critedge294

1647:                                             ; preds = %1643
  %1648 = load i64, ptr %54, align 8, !tbaa !12
  %.not195 = icmp eq i64 %1648, 2
  br i1 %.not195, label %1651, label %1649

1649:                                             ; preds = %1647
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2878)
  %1650 = load i64, ptr %54, align 8, !tbaa !12
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.442, i32 noundef 2, i64 noundef %1650)
  br label %.critedge294

1651:                                             ; preds = %1647
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #5
  %1652 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1652, label %1653, label %1654

1653:                                             ; preds = %1651
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2879)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1654:                                             ; preds = %1651
  %1655 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1655, label %1656, label %1657

1656:                                             ; preds = %1654
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2880)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1657:                                             ; preds = %1654
  %1658 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1658, label %1659, label %1660

1659:                                             ; preds = %1657
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2881)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1660:                                             ; preds = %1657
  %1661 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1661, label %1662, label %1663

1662:                                             ; preds = %1660
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2882)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1663:                                             ; preds = %1660
  %1664 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1664, label %1665, label %1666

1665:                                             ; preds = %1663
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2883)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1666:                                             ; preds = %1663
  %1667 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1667, label %1668, label %1669

1668:                                             ; preds = %1666
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2884)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1669:                                             ; preds = %1666
  %1670 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1670, label %1671, label %1672

1671:                                             ; preds = %1669
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2885)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1672:                                             ; preds = %1669
  %1673 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1673, label %1674, label %1675

1674:                                             ; preds = %1672
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2886)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1675:                                             ; preds = %1672
  %1676 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1676, label %1677, label %1678

1677:                                             ; preds = %1675
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2887)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1678:                                             ; preds = %1675
  %1679 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1679, label %1680, label %1681

1680:                                             ; preds = %1678
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2888)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1681:                                             ; preds = %1678
  %1682 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1682, label %1683, label %1684

1683:                                             ; preds = %1681
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2889)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1684:                                             ; preds = %1681
  %1685 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1685, label %1686, label %1687

1686:                                             ; preds = %1684
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2890)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1687:                                             ; preds = %1684
  %1688 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1688, label %1689, label %1690

1689:                                             ; preds = %1687
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2891)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1690:                                             ; preds = %1687
  %1691 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1691, label %1692, label %1693

1692:                                             ; preds = %1690
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2892)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1693:                                             ; preds = %1690
  %1694 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1694, label %1695, label %1696

1695:                                             ; preds = %1693
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2893)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.435)
  br label %1787

1696:                                             ; preds = %1693
  %1697 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1697, label %1698, label %1699

1698:                                             ; preds = %1696
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2894)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1699:                                             ; preds = %1696
  %1700 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1700, label %1701, label %1702

1701:                                             ; preds = %1699
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2895)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.404)
  br label %1787

1702:                                             ; preds = %1699
  %1703 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1703, label %1704, label %1705

1704:                                             ; preds = %1702
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2896)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

1705:                                             ; preds = %1702
  %1706 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1707 = call zeroext i1 @cmp_write_map(ptr noundef nonnull %2, i32 noundef 1) #5
  %1708 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 1) #5
  %1709 = call zeroext i1 @cmp_write_uint(ptr noundef nonnull %2, i64 noundef 2) #5
  %1710 = call zeroext i1 @M_BufferSeek(ptr noundef nonnull %1, i64 noundef 0) #5
  %1711 = call zeroext i1 @cmp_read_object(ptr noundef nonnull %2, ptr noundef nonnull %3) #5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %55) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #5
  %1712 = call zeroext i1 @cmp_object_is_map(ptr noundef nonnull %3) #5
  br i1 %1712, label %1714, label %1713

1713:                                             ; preds = %1705
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.443)
  br label %.critedge296

1714:                                             ; preds = %1705
  %1715 = call zeroext i1 @cmp_object_as_map(ptr noundef nonnull %3, ptr noundef nonnull %55) #5
  br i1 %1715, label %1718, label %1716

1716:                                             ; preds = %1714
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  %1717 = call ptr @cmp_strerror(ptr noundef nonnull %2) #5
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.444, ptr noundef %1717)
  br label %.critedge296

1718:                                             ; preds = %1714
  %1719 = load i32, ptr %55, align 4, !tbaa !10
  %.not196 = icmp eq i32 %1719, 1
  br i1 %.not196, label %1721, label %1720

1720:                                             ; preds = %1718
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.445)
  br label %.critedge296

1721:                                             ; preds = %1718
  %1722 = call zeroext i1 @cmp_read_uinteger(ptr noundef nonnull %2, ptr noundef nonnull %56) #5
  br i1 %1722, label %1724, label %1723

1723:                                             ; preds = %1721
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.446)
  br label %.critedge296

1724:                                             ; preds = %1721
  %1725 = call zeroext i1 @cmp_read_uinteger(ptr noundef nonnull %2, ptr noundef nonnull %57) #5
  br i1 %1725, label %1727, label %1726

1726:                                             ; preds = %1724
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.447)
  br label %.critedge296

1727:                                             ; preds = %1724
  %1728 = load i64, ptr %56, align 8, !tbaa !12
  %.not197 = icmp eq i64 %1728, 1
  br i1 %.not197, label %1730, label %1729

1729:                                             ; preds = %1727
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.448, i32 noundef 1)
  br label %.critedge296

1730:                                             ; preds = %1727
  %1731 = load i64, ptr %57, align 8, !tbaa !12
  %.not198 = icmp eq i64 %1731, 2
  br i1 %.not198, label %1733, label %1732

1732:                                             ; preds = %1730
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2904)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.448, i32 noundef 2)
  br label %.critedge296

1733:                                             ; preds = %1730
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #5
  %1734 = call zeroext i1 @cmp_object_is_char(ptr noundef nonnull %3) #5
  br i1 %1734, label %1735, label %1736

1735:                                             ; preds = %1733
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2905)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.379)
  br label %1787

1736:                                             ; preds = %1733
  %1737 = call zeroext i1 @cmp_object_is_short(ptr noundef nonnull %3) #5
  br i1 %1737, label %1738, label %1739

1738:                                             ; preds = %1736
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2906)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.383)
  br label %1787

1739:                                             ; preds = %1736
  %1740 = call zeroext i1 @cmp_object_is_int(ptr noundef nonnull %3) #5
  br i1 %1740, label %1741, label %1742

1741:                                             ; preds = %1739
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2907)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.385)
  br label %1787

1742:                                             ; preds = %1739
  %1743 = call zeroext i1 @cmp_object_is_long(ptr noundef nonnull %3) #5
  br i1 %1743, label %1744, label %1745

1744:                                             ; preds = %1742
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2908)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.387)
  br label %1787

1745:                                             ; preds = %1742
  %1746 = call zeroext i1 @cmp_object_is_sinteger(ptr noundef nonnull %3) #5
  br i1 %1746, label %1747, label %1748

1747:                                             ; preds = %1745
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2909)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.389)
  br label %1787

1748:                                             ; preds = %1745
  %1749 = call zeroext i1 @cmp_object_is_uchar(ptr noundef nonnull %3) #5
  br i1 %1749, label %1750, label %1751

1750:                                             ; preds = %1748
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2910)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.392)
  br label %1787

1751:                                             ; preds = %1748
  %1752 = call zeroext i1 @cmp_object_is_ushort(ptr noundef nonnull %3) #5
  br i1 %1752, label %1753, label %1754

1753:                                             ; preds = %1751
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2911)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.393)
  br label %1787

1754:                                             ; preds = %1751
  %1755 = call zeroext i1 @cmp_object_is_uint(ptr noundef nonnull %3) #5
  br i1 %1755, label %1756, label %1757

1756:                                             ; preds = %1754
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2912)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.394)
  br label %1787

1757:                                             ; preds = %1754
  %1758 = call zeroext i1 @cmp_object_is_ulong(ptr noundef nonnull %3) #5
  br i1 %1758, label %1759, label %1760

1759:                                             ; preds = %1757
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2913)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.395)
  br label %1787

1760:                                             ; preds = %1757
  %1761 = call zeroext i1 @cmp_object_is_uinteger(ptr noundef nonnull %3) #5
  br i1 %1761, label %1762, label %1763

1762:                                             ; preds = %1760
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2914)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.396)
  br label %1787

1763:                                             ; preds = %1760
  %1764 = call zeroext i1 @cmp_object_is_float(ptr noundef nonnull %3) #5
  br i1 %1764, label %1765, label %1766

1765:                                             ; preds = %1763
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2915)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.397)
  br label %1787

1766:                                             ; preds = %1763
  %1767 = call zeroext i1 @cmp_object_is_double(ptr noundef nonnull %3) #5
  br i1 %1767, label %1768, label %1769

1768:                                             ; preds = %1766
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2916)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.398)
  br label %1787

1769:                                             ; preds = %1766
  %1770 = call zeroext i1 @cmp_object_is_nil(ptr noundef nonnull %3) #5
  br i1 %1770, label %1771, label %1772

1771:                                             ; preds = %1769
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2917)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.399)
  br label %1787

1772:                                             ; preds = %1769
  %1773 = call zeroext i1 @cmp_object_is_bool(ptr noundef nonnull %3) #5
  br i1 %1773, label %1774, label %1775

1774:                                             ; preds = %1772
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2918)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.400)
  br label %1787

1775:                                             ; preds = %1772
  %1776 = call zeroext i1 @cmp_object_is_str(ptr noundef nonnull %3) #5
  br i1 %1776, label %1777, label %1778

1777:                                             ; preds = %1775
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2919)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.435)
  br label %1787

1778:                                             ; preds = %1775
  %1779 = call zeroext i1 @cmp_object_is_bin(ptr noundef nonnull %3) #5
  br i1 %1779, label %1780, label %1781

1780:                                             ; preds = %1778
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2920)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.402)
  br label %1787

1781:                                             ; preds = %1778
  %1782 = call zeroext i1 @cmp_object_is_array(ptr noundef nonnull %3) #5
  br i1 %1782, label %1783, label %1784

1783:                                             ; preds = %1781
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2921)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.403)
  br label %1787

1784:                                             ; preds = %1781
  %1785 = call zeroext i1 @cmp_object_is_ext(ptr noundef nonnull %3) #5
  br i1 %1785, label %1786, label %1787

1786:                                             ; preds = %1784
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.16, ptr noundef nonnull @__func__.run_obj_tests, i32 noundef 2922)
  call void (ptr, ...) @error_printf(ptr noundef nonnull @.str.391, ptr noundef nonnull @.str.405)
  br label %1787

.critedge:                                        ; preds = %63, %66, %70
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  br label %1787

.critedge200:                                     ; preds = %73, %76, %80
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %5) #5
  br label %1787

.critedge202:                                     ; preds = %83, %86, %90
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #5
  br label %1787

.critedge204:                                     ; preds = %93, %96, %100
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #5
  br label %1787

.critedge206:                                     ; preds = %103, %106, %110
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br label %1787

.critedge208:                                     ; preds = %159, %162, %166
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #5
  br label %1787

.critedge210:                                     ; preds = %169, %172, %176
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #5
  br label %1787

.critedge212:                                     ; preds = %179, %182, %186
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  br label %1787

.critedge214:                                     ; preds = %189, %192, %196
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  br label %1787

.critedge216:                                     ; preds = %248, %251, %255
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #5
  br label %1787

.critedge218:                                     ; preds = %258, %261, %265
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  br label %1787

.critedge220:                                     ; preds = %268, %271, %275
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  br label %1787

.critedge222:                                     ; preds = %330, %333, %337
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  br label %1787

.critedge224:                                     ; preds = %340, %343, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  br label %1787

.critedge226:                                     ; preds = %405, %408, %412
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #5
  br label %1787

.critedge228:                                     ; preds = %415, %418, %422
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %19) #5
  br label %1787

.critedge230:                                     ; preds = %425, %428, %432
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #5
  br label %1787

.critedge232:                                     ; preds = %435, %438, %442
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  br label %1787

.critedge234:                                     ; preds = %445, %448, %452
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  br label %1787

.critedge236:                                     ; preds = %501, %504, %508
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %23) #5
  br label %1787

.critedge238:                                     ; preds = %511, %514, %518
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %24) #5
  br label %1787

.critedge240:                                     ; preds = %521, %524, %528
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %25) #5
  br label %1787

.critedge242:                                     ; preds = %531, %534, %538
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  br label %1787

.critedge244:                                     ; preds = %541, %544, %548
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #5
  br label %1787

.critedge246:                                     ; preds = %597, %600, %604
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %28) #5
  br label %1787

.critedge248:                                     ; preds = %607, %610, %614
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #5
  br label %1787

.critedge250:                                     ; preds = %617, %620, %624
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  br label %1787

.critedge252:                                     ; preds = %627, %630, %634
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  br label %1787

.critedge254:                                     ; preds = %686, %689, %693
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %32) #5
  br label %1787

.critedge256:                                     ; preds = %696, %699, %703
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %33) #5
  br label %1787

.critedge258:                                     ; preds = %706, %709, %713
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  br label %1787

.critedge260:                                     ; preds = %716, %719, %723
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %35) #5
  br label %1787

.critedge262:                                     ; preds = %772, %775, %779
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %36) #5
  br label %1787

.critedge264:                                     ; preds = %782, %785, %789
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  br label %1787

.critedge266:                                     ; preds = %792, %795, %799
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  br label %1787

.critedge268:                                     ; preds = %854, %857, %861
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #5
  br label %1787

.critedge270:                                     ; preds = %864, %867, %871
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #5
  br label %1787

.critedge272:                                     ; preds = %874, %877, %881
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  br label %1787

.critedge274:                                     ; preds = %936, %939, %943
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #5
  br label %1787

.critedge276:                                     ; preds = %946, %949, %953
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  br label %1787

.critedge278:                                     ; preds = %1011, %1014, %1019
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %44) #5
  br label %1787

.critedge280:                                     ; preds = %1080, %1083, %1088
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  br label %1787

.critedge282:                                     ; preds = %1210, %1213, %1217
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %46) #5
  br label %1787

.critedge284:                                     ; preds = %1278, %1281, %1286
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %47) #5
  br label %1787

.critedge286:                                     ; preds = %1347, %1350, %1354
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %48) #5
  br label %1787

.critedge288:                                     ; preds = %1415, %1418, %1423
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %49) #5
  br label %1787

.critedge290:                                     ; preds = %1484, %1487, %1492
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #5
  br label %1787

.critedge292:                                     ; preds = %1554, %1557, %1565, %1561
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %51) #5
  br label %1787

.critedge294:                                     ; preds = %1629, %1632, %1639, %1642, %1649, %1645, %1636
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %52) #5
  br label %1787

.critedge296:                                     ; preds = %1713, %1716, %1723, %1726, %1732, %1729, %1720
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %56) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %55) #5
  br label %1787

1787:                                             ; preds = %1784, %.critedge296, %.critedge294, %.critedge292, %.critedge290, %.critedge288, %.critedge286, %.critedge284, %.critedge282, %.critedge280, %.critedge278, %.critedge276, %.critedge274, %.critedge272, %.critedge270, %.critedge268, %.critedge266, %.critedge264, %.critedge262, %.critedge260, %.critedge258, %.critedge256, %.critedge254, %.critedge252, %.critedge250, %.critedge248, %.critedge246, %.critedge244, %.critedge242, %.critedge240, %.critedge238, %.critedge236, %.critedge234, %.critedge232, %.critedge230, %.critedge228, %.critedge226, %.critedge224, %.critedge222, %.critedge220, %.critedge218, %.critedge216, %.critedge214, %.critedge212, %.critedge210, %.critedge208, %.critedge206, %.critedge204, %.critedge202, %.critedge200, %.critedge, %1786, %1783, %1780, %1777, %1774, %1771, %1768, %1765, %1762, %1759, %1756, %1753, %1750, %1747, %1744, %1741, %1738, %1735, %1704, %1701, %1698, %1695, %1692, %1689, %1686, %1683, %1680, %1677, %1674, %1671, %1668, %1665, %1662, %1659, %1656, %1653, %1620, %1617, %1614, %1611, %1608, %1605, %1602, %1599, %1596, %1593, %1590, %1587, %1584, %1581, %1578, %1575, %1572, %1569, %1547, %1544, %1541, %1538, %1535, %1532, %1529, %1526, %1523, %1520, %1517, %1514, %1511, %1508, %1505, %1502, %1499, %1496, %1477, %1474, %1471, %1468, %1465, %1462, %1459, %1456, %1453, %1450, %1447, %1444, %1441, %1438, %1435, %1432, %1429, %1426, %1408, %1405, %1402, %1399, %1396, %1393, %1390, %1387, %1384, %1381, %1378, %1375, %1372, %1369, %1366, %1363, %1360, %1357, %1340, %1337, %1334, %1331, %1328, %1325, %1322, %1319, %1316, %1313, %1310, %1307, %1304, %1301, %1298, %1295, %1292, %1289, %1271, %1268, %1265, %1262, %1259, %1256, %1253, %1250, %1247, %1244, %1241, %1238, %1235, %1232, %1229, %1226, %1223, %1220, %1203, %1200, %1197, %1194, %1191, %1188, %1185, %1182, %1179, %1176, %1173, %1170, %1167, %1164, %1161, %1158, %1155, %1152, %1149, %1142, %1139, %1136, %1133, %1130, %1127, %1124, %1121, %1118, %1115, %1112, %1109, %1106, %1103, %1100, %1097, %1094, %1091, %1073, %1070, %1067, %1064, %1061, %1058, %1055, %1052, %1049, %1046, %1043, %1040, %1037, %1034, %1031, %1028, %1025, %1022, %1004, %1001, %998, %995, %992, %989, %986, %983, %980, %977, %974, %971, %968, %965, %962, %959, %956, %929, %926, %923, %920, %917, %914, %911, %908, %905, %902, %899, %896, %893, %890, %887, %884, %847, %844, %841, %838, %835, %832, %829, %826, %823, %820, %817, %814, %811, %808, %805, %802, %765, %762, %759, %756, %753, %750, %747, %744, %741, %738, %735, %732, %729, %726, %679, %676, %673, %670, %667, %664, %661, %658, %655, %652, %649, %646, %643, %640, %637, %590, %587, %584, %581, %578, %575, %572, %569, %566, %563, %560, %557, %554, %551, %494, %491, %488, %485, %482, %479, %476, %473, %470, %467, %464, %461, %458, %455, %398, %395, %392, %389, %386, %383, %380, %377, %374, %371, %368, %365, %362, %359, %356, %353, %350, %323, %320, %317, %314, %311, %308, %305, %302, %299, %296, %293, %290, %287, %284, %281, %278, %241, %238, %235, %232, %229, %226, %223, %220, %217, %214, %211, %208, %205, %202, %199, %152, %149, %146, %143, %140, %137, %134, %131, %128, %125, %122, %119, %116, %113
  %.50 = phi i1 [ false, %113 ], [ false, %116 ], [ false, %119 ], [ false, %122 ], [ false, %125 ], [ false, %128 ], [ false, %131 ], [ false, %134 ], [ false, %137 ], [ false, %140 ], [ false, %143 ], [ false, %146 ], [ false, %149 ], [ false, %152 ], [ false, %199 ], [ false, %202 ], [ false, %205 ], [ false, %208 ], [ false, %211 ], [ false, %214 ], [ false, %217 ], [ false, %220 ], [ false, %223 ], [ false, %226 ], [ false, %229 ], [ false, %232 ], [ false, %235 ], [ false, %238 ], [ false, %241 ], [ false, %278 ], [ false, %281 ], [ false, %284 ], [ false, %287 ], [ false, %290 ], [ false, %293 ], [ false, %296 ], [ false, %299 ], [ false, %302 ], [ false, %305 ], [ false, %308 ], [ false, %311 ], [ false, %314 ], [ false, %317 ], [ false, %320 ], [ false, %323 ], [ false, %350 ], [ false, %353 ], [ false, %356 ], [ false, %359 ], [ false, %362 ], [ false, %365 ], [ false, %368 ], [ false, %371 ], [ false, %374 ], [ false, %377 ], [ false, %380 ], [ false, %383 ], [ false, %386 ], [ false, %389 ], [ false, %392 ], [ false, %395 ], [ false, %398 ], [ false, %455 ], [ false, %458 ], [ false, %461 ], [ false, %464 ], [ false, %467 ], [ false, %470 ], [ false, %473 ], [ false, %476 ], [ false, %479 ], [ false, %482 ], [ false, %485 ], [ false, %488 ], [ false, %491 ], [ false, %494 ], [ false, %551 ], [ false, %554 ], [ false, %557 ], [ false, %560 ], [ false, %563 ], [ false, %566 ], [ false, %569 ], [ false, %572 ], [ false, %575 ], [ false, %578 ], [ false, %581 ], [ false, %584 ], [ false, %587 ], [ false, %590 ], [ false, %637 ], [ false, %640 ], [ false, %643 ], [ false, %646 ], [ false, %649 ], [ false, %652 ], [ false, %655 ], [ false, %658 ], [ false, %661 ], [ false, %664 ], [ false, %667 ], [ false, %670 ], [ false, %673 ], [ false, %676 ], [ false, %679 ], [ false, %726 ], [ false, %729 ], [ false, %732 ], [ false, %735 ], [ false, %738 ], [ false, %741 ], [ false, %744 ], [ false, %747 ], [ false, %750 ], [ false, %753 ], [ false, %756 ], [ false, %759 ], [ false, %762 ], [ false, %765 ], [ false, %802 ], [ false, %805 ], [ false, %808 ], [ false, %811 ], [ false, %814 ], [ false, %817 ], [ false, %820 ], [ false, %823 ], [ false, %826 ], [ false, %829 ], [ false, %832 ], [ false, %835 ], [ false, %838 ], [ false, %841 ], [ false, %844 ], [ false, %847 ], [ false, %884 ], [ false, %887 ], [ false, %890 ], [ false, %893 ], [ false, %896 ], [ false, %899 ], [ false, %902 ], [ false, %905 ], [ false, %908 ], [ false, %911 ], [ false, %914 ], [ false, %917 ], [ false, %920 ], [ false, %923 ], [ false, %926 ], [ false, %929 ], [ false, %956 ], [ false, %959 ], [ false, %962 ], [ false, %965 ], [ false, %968 ], [ false, %971 ], [ false, %974 ], [ false, %977 ], [ false, %980 ], [ false, %983 ], [ false, %986 ], [ false, %989 ], [ false, %992 ], [ false, %995 ], [ false, %998 ], [ false, %1001 ], [ false, %1004 ], [ false, %1022 ], [ false, %1025 ], [ false, %1028 ], [ false, %1031 ], [ false, %1034 ], [ false, %1037 ], [ false, %1040 ], [ false, %1043 ], [ false, %1046 ], [ false, %1049 ], [ false, %1052 ], [ false, %1055 ], [ false, %1058 ], [ false, %1061 ], [ false, %1064 ], [ false, %1067 ], [ false, %1070 ], [ false, %1073 ], [ false, %1091 ], [ false, %1094 ], [ false, %1097 ], [ false, %1100 ], [ false, %1103 ], [ false, %1106 ], [ false, %1109 ], [ false, %1112 ], [ false, %1115 ], [ false, %1118 ], [ false, %1121 ], [ false, %1124 ], [ false, %1127 ], [ false, %1130 ], [ false, %1133 ], [ false, %1136 ], [ false, %1139 ], [ false, %1142 ], [ false, %1152 ], [ false, %1155 ], [ false, %1158 ], [ false, %1161 ], [ false, %1164 ], [ false, %1167 ], [ false, %1170 ], [ false, %1173 ], [ false, %1176 ], [ false, %1179 ], [ false, %1182 ], [ false, %1185 ], [ false, %1188 ], [ false, %1191 ], [ false, %1194 ], [ false, %1197 ], [ false, %1200 ], [ false, %1203 ], [ false, %1220 ], [ false, %1223 ], [ false, %1226 ], [ false, %1229 ], [ false, %1232 ], [ false, %1235 ], [ false, %1238 ], [ false, %1241 ], [ false, %1244 ], [ false, %1247 ], [ false, %1250 ], [ false, %1253 ], [ false, %1256 ], [ false, %1259 ], [ false, %1262 ], [ false, %1265 ], [ false, %1268 ], [ false, %1271 ], [ false, %1289 ], [ false, %1292 ], [ false, %1295 ], [ false, %1298 ], [ false, %1301 ], [ false, %1304 ], [ false, %1307 ], [ false, %1310 ], [ false, %1313 ], [ false, %1316 ], [ false, %1319 ], [ false, %1322 ], [ false, %1325 ], [ false, %1328 ], [ false, %1331 ], [ false, %1334 ], [ false, %1337 ], [ false, %1340 ], [ false, %1357 ], [ false, %1360 ], [ false, %1363 ], [ false, %1366 ], [ false, %1369 ], [ false, %1372 ], [ false, %1375 ], [ false, %1378 ], [ false, %1381 ], [ false, %1384 ], [ false, %1387 ], [ false, %1390 ], [ false, %1393 ], [ false, %1396 ], [ false, %1399 ], [ false, %1402 ], [ false, %1405 ], [ false, %1408 ], [ false, %1426 ], [ false, %1429 ], [ false, %1432 ], [ false, %1435 ], [ false, %1438 ], [ false, %1441 ], [ false, %1444 ], [ false, %1447 ], [ false, %1450 ], [ false, %1453 ], [ false, %1456 ], [ false, %1459 ], [ false, %1462 ], [ false, %1465 ], [ false, %1468 ], [ false, %1471 ], [ false, %1474 ], [ false, %1477 ], [ false, %1496 ], [ false, %1499 ], [ false, %1502 ], [ false, %1505 ], [ false, %1508 ], [ false, %1511 ], [ false, %1514 ], [ false, %1517 ], [ false, %1520 ], [ false, %1523 ], [ false, %1526 ], [ false, %1529 ], [ false, %1532 ], [ false, %1535 ], [ false, %1538 ], [ false, %1541 ], [ false, %1544 ], [ false, %1547 ], [ false, %1569 ], [ false, %1572 ], [ false, %1575 ], [ false, %1578 ], [ false, %1581 ], [ false, %1584 ], [ false, %1587 ], [ false, %1590 ], [ false, %1593 ], [ false, %1596 ], [ false, %1599 ], [ false, %1602 ], [ false, %1605 ], [ false, %1608 ], [ false, %1611 ], [ false, %1614 ], [ false, %1617 ], [ false, %1620 ], [ false, %1653 ], [ false, %1656 ], [ false, %1659 ], [ false, %1662 ], [ false, %1665 ], [ false, %1668 ], [ false, %1671 ], [ false, %1674 ], [ false, %1677 ], [ false, %1680 ], [ false, %1683 ], [ false, %1686 ], [ false, %1689 ], [ false, %1692 ], [ false, %1695 ], [ false, %1698 ], [ false, %1701 ], [ false, %1704 ], [ false, %1735 ], [ false, %1738 ], [ false, %1741 ], [ false, %1744 ], [ false, %1747 ], [ false, %1750 ], [ false, %1753 ], [ false, %1756 ], [ false, %1759 ], [ false, %1762 ], [ false, %1765 ], [ false, %1768 ], [ false, %1771 ], [ false, %1774 ], [ false, %1777 ], [ false, %1780 ], [ false, %1783 ], [ false, %1786 ], [ false, %1149 ], [ false, %.critedge ], [ false, %.critedge200 ], [ false, %.critedge202 ], [ false, %.critedge204 ], [ false, %.critedge206 ], [ false, %.critedge208 ], [ false, %.critedge210 ], [ false, %.critedge212 ], [ false, %.critedge214 ], [ false, %.critedge216 ], [ false, %.critedge218 ], [ false, %.critedge220 ], [ false, %.critedge222 ], [ false, %.critedge224 ], [ false, %.critedge226 ], [ false, %.critedge228 ], [ false, %.critedge230 ], [ false, %.critedge232 ], [ false, %.critedge234 ], [ false, %.critedge236 ], [ false, %.critedge238 ], [ false, %.critedge240 ], [ false, %.critedge242 ], [ false, %.critedge244 ], [ false, %.critedge246 ], [ false, %.critedge248 ], [ false, %.critedge250 ], [ false, %.critedge252 ], [ false, %.critedge254 ], [ false, %.critedge256 ], [ false, %.critedge258 ], [ false, %.critedge260 ], [ false, %.critedge262 ], [ false, %.critedge264 ], [ false, %.critedge266 ], [ false, %.critedge268 ], [ false, %.critedge270 ], [ false, %.critedge272 ], [ false, %.critedge274 ], [ false, %.critedge276 ], [ false, %.critedge278 ], [ false, %.critedge280 ], [ false, %.critedge282 ], [ false, %.critedge284 ], [ false, %.critedge286 ], [ false, %.critedge288 ], [ false, %.critedge290 ], [ false, %.critedge292 ], [ false, %.critedge294 ], [ false, %.critedge296 ], [ true, %1784 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %2) #5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %1) #5
  ret i1 %.50
}

declare zeroext i1 @cmp_object_is_char(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_char(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_short(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_short(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_int(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_int(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_long(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_long(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_sinteger(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_sinteger(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_uchar(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_ushort(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_uint(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_ulong(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_uinteger(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_float(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_double(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_nil(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_bool(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_str(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_bin(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_array(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_map(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_is_ext(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_uchar(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_ushort(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_uint(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_ulong(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_uinteger(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_float(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_double(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_bool(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_str(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @M_BufferGetDataAtCursor(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_bin(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_array(ptr noundef, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @cmp_object_as_map(ptr noundef, ptr noundef) local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"short", !6, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"int", !6, i64 0}
!12 = !{!13, !13, i64 0}
!13 = !{!"long", !6, i64 0}
!14 = !{!15, !15, i64 0}
!15 = !{!"float", !6, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !6, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"_Bool", !6, i64 0}
!20 = !{i8 0, i8 2}
!21 = !{}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass