; LLVM IR from CerebusOSS/CereLink :: cbhwlib/CCFUtils.ll (ZN8CCFUtilsC2EbbP5cbCCFPFvjN3ccf10_ccfResultEPKc11_cbStateCCFjEj)

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

%class.CCFUtils = type <{ ptr, ptr, i8, [7 x i8], ptr, i8, [7 x i8], ptr, i32, i32, i32, [4 x i8], ptr, i8, i8, [6 x i8] }>
%class.CCFUtilsXml_v1 = type { %class.CCFUtilsBinary, %struct.cbCCF }
%class.CCFUtilsBinary = type { %class.CCFUtils.base, [2 x i8], %"struct.ccf::ccfBinaryData" }
%class.CCFUtils.base = type <{ ptr, ptr, i8, [7 x i8], ptr, i8, [7 x i8], ptr, i32, i32, i32, [4 x i8], ptr, i8, i8 }>
%"struct.ccf::ccfBinaryData" = type <{ [160 x %struct.cbPKT_CHANINFO], %"struct.ccf::cbPKT_ADAPTFILTINFO_CB2005_37", %"struct.ccf::cbPKT_SS_DETECT_CB2005_37", %"struct.ccf::cbPKT_SS_ARTIF_REJECT_CB2005_37", [144 x %"struct.ccf::cbPKT_SS_NOISE_BOUNDARY_CB2005_37_type"], %"struct.ccf::cbPKT_SS_STATISTICS_CB2005_37_type", %"struct.ccf::cbPKT_SS_STATUS_CB2005_37", %"struct.ccf::cbPKT_SYSINFO_CB2005_37", [72 x %"struct.ccf::cbPKT_NTRODEINFO_CB2005_37"] }>
%struct.cbPKT_CHANINFO = type { %struct.cbPKT_HEADER, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.cbSCALING, %struct.cbFILTDESC, %struct.cbSCALING, %struct.cbFILTDESC, [16 x i8], i32, [4 x i32], %struct.cbSCALING, %struct.cbSCALING, i32, i32, i32, i32, %union.anon, i8, [2 x i8], i8, i16, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i16, i32, [5 x %struct.cbMANUALUNITMAPPING], [5 x [4 x %struct.cbHOOP]] }
%struct.cbPKT_HEADER = type { i64, i16, i16, i16, i8, i8 }
%struct.cbFILTDESC = type { [16 x i8], i32, i32, i32, i32, i32, i32 }
%struct.cbSCALING = type { i16, i16, i32, i32, i32, [8 x i8] }
%union.anon = type { %struct.anon }
%struct.anon = type { i16, i16, i32 }
%struct.cbMANUALUNITMAPPING = type { i16, [3 x i16], [3 x [3 x i16]], i16, i32 }
%struct.cbHOOP = type { i16, i16, i16, i16 }
%"struct.ccf::cbPKT_ADAPTFILTINFO_CB2005_37" = type { i32, i16, i8, i8, i32, i32, float, i32, i32 }
%"struct.ccf::cbPKT_SS_DETECT_CB2005_37" = type { i32, i16, i8, i8, float, float }
%"struct.ccf::cbPKT_SS_ARTIF_REJECT_CB2005_37" = type { i32, i16, i8, i8, i32, i32 }
%"struct.ccf::cbPKT_SS_NOISE_BOUNDARY_CB2005_37_type" = type { i32, i16, i8, i8, i32, [3 x float], [3 x [3 x float]] }
%"struct.ccf::cbPKT_SS_STATISTICS_CB2005_37_type" = type { i32, i16, i8, i8, i32, i32, i32, float, float, float, float, float, float, float, i32, i32 }
%"struct.ccf::cbPKT_SS_STATUS_CB2005_37" = type { i32, i16, i8, i8, %"struct.ccf::cbAdaptControl_37", %"struct.ccf::cbAdaptControl_37" }
%"struct.ccf::cbAdaptControl_37" = type { i32, float, float }
%"struct.ccf::cbPKT_SYSINFO_CB2005_37" = type { i32, i16, i8, i8, i32, i32, i32, i32, i32, i32 }
%"struct.ccf::cbPKT_NTRODEINFO_CB2005_37" = type { i32, i16, i8, i8, i32, [16 x i8], [6 x [5 x %"struct.ccf::cbMANUALUNITMAPPING_37"]], i16, i16, [4 x i16] }
%"struct.ccf::cbMANUALUNITMAPPING_37" = type { i16, [3 x i16], [3 x [3 x i16]], i16, i32 }
%struct.cbCCF = type <{ [596 x %struct.cbPKT_CHANINFO], %struct.cbPKT_ADAPTFILTINFO, %struct.cbPKT_SS_DETECT, %struct.cbPKT_SS_ARTIF_REJECT, [560 x %struct.cbPKT_SS_NOISE_BOUNDARY], %struct.cbPKT_SS_STATISTICS, %struct.cbPKT_SS_STATUS, %struct.cbPKT_SYSINFO, [280 x %struct.cbPKT_NTRODEINFO], [18 x [5 x %struct.cbPKT_AOUT_WAVEFORM]], [4 x %struct.cbPKT_FILTINFO], %struct.cbPKT_LNC }>
%struct.cbPKT_ADAPTFILTINFO = type <{ %struct.cbPKT_HEADER, i32, i32, float, i32, i32 }>
%struct.cbPKT_SS_DETECT = type { %struct.cbPKT_HEADER, float, float }
%struct.cbPKT_SS_ARTIF_REJECT = type { %struct.cbPKT_HEADER, i32, i32 }
%struct.cbPKT_SS_NOISE_BOUNDARY = type <{ %struct.cbPKT_HEADER, i32, [3 x float], [3 x [3 x float]] }>
%struct.cbPKT_SS_STATISTICS = type { %struct.cbPKT_HEADER, i32, i32, i32, float, float, float, float, float, float, float, i32, i32 }
%struct.cbPKT_SS_STATUS = type { %struct.cbPKT_HEADER, %struct.cbAdaptControl, %struct.cbAdaptControl }
%struct.cbAdaptControl = type { i32, float, float }
%struct.cbPKT_SYSINFO = type { %struct.cbPKT_HEADER, i32, i32, i32, i32, i32, i32 }
%struct.cbPKT_NTRODEINFO = type { %struct.cbPKT_HEADER, i32, [16 x i8], [6 x [5 x %struct.cbMANUALUNITMAPPING]], i16, i16, [4 x i16] }
%struct.cbPKT_AOUT_WAVEFORM = type { %struct.cbPKT_HEADER, i16, i16, i32, i8, i8, i16, i16, i8, i8, %struct.cbWaveformData }
%struct.cbWaveformData = type { i16, %union.anon.1 }
%union.anon.1 = type { %struct.anon.3 }
%struct.anon.3 = type { i16, i16, i16, [246 x i16], [246 x i16] }
%struct.cbPKT_FILTINFO = type { %struct.cbPKT_HEADER, i32, i32, [16 x i8], i32, i32, i32, i32, i32, i32, double, double, double, double, double, double, double, double, double }
%struct.cbPKT_LNC = type <{ %struct.cbPKT_HEADER, i32, i32, i32 }>

@_ZTV8CCFUtils = external dso_local unnamed_addr constant { [8 x ptr] }, align 8
@_ZTI14CCFUtilsXml_v1 = external constant ptr
@_ZTI8CCFUtils = external dso_local constant { ptr, ptr }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8CCFUtilsC2EbbP5cbCCFPFvjN3ccf10_ccfResultEPKc11_cbStateCCFjEj(ptr noundef nonnull align 8 dereferenceable(74) %0, i1 noundef zeroext %1, i1 noundef zeroext %2, ptr noundef %3, ptr noundef %4, i32 noundef %5) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %7 = alloca ptr, align 8
  %8 = alloca i8, align 1
  %9 = alloca i8, align 1
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  store ptr %0, ptr %7, align 8, !tbaa !5
  %15 = zext i1 %1 to i8
  store i8 %15, ptr %8, align 1, !tbaa !9
  %16 = zext i1 %2 to i8
  store i8 %16, ptr %9, align 1, !tbaa !9
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  store i32 %5, ptr %12, align 4, !tbaa !11
  %17 = load ptr, ptr %7, align 8
  store ptr getelementptr inbounds inrange(-16, 48) ({ [8 x ptr] }, ptr @_ZTV8CCFUtils, i32 0, i32 0, i32 2), ptr %17, align 8, !tbaa !13
  %18 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 1
  store ptr null, ptr %18, align 8, !tbaa !15
  %19 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 2
  %20 = load i8, ptr %8, align 1, !tbaa !9, !range !17, !noundef !18
  %21 = trunc i8 %20 to i1
  %22 = zext i1 %21 to i8
  store i8 %22, ptr %19, align 8, !tbaa !19
  %23 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 4
  %24 = load ptr, ptr %11, align 8, !tbaa !5
  store ptr %24, ptr %23, align 8, !tbaa !20
  %25 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 5
  %26 = load i8, ptr %9, align 1, !tbaa !9, !range !17, !noundef !18
  %27 = trunc i8 %26 to i1
  %28 = zext i1 %27 to i8
  store i8 %28, ptr %25, align 8, !tbaa !21
  %29 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 7
  %30 = load ptr, ptr %10, align 8, !tbaa !5
  store ptr %30, ptr %29, align 8, !tbaa !22
  %31 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 8
  store i32 0, ptr %31, align 8, !tbaa !23
  %32 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 9
  store i32 0, ptr %32, align 4, !tbaa !24
  %33 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 10
  %34 = load i32, ptr %12, align 4, !tbaa !11
  store i32 %34, ptr %33, align 8, !tbaa !25
  %35 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 12
  store ptr null, ptr %35, align 8, !tbaa !26
  %36 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 13
  store i8 0, ptr %36, align 8, !tbaa !27
  %37 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 14
  store i8 0, ptr %37, align 1, !tbaa !28
  %38 = load ptr, ptr %10, align 8, !tbaa !5
  %39 = icmp ne ptr %38, null
  br i1 %39, label %40, label %67

40:                                               ; preds = %6
  %41 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 1008256) #7
  invoke void @_ZN14CCFUtilsXml_v1C1Ev(ptr noundef nonnull align 8 dereferenceable(1008256) %41)
          to label %42 unwind label %54

42:                                               ; preds = %40
  %43 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 1
  store ptr %41, ptr %43, align 8, !tbaa !15
  %44 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 1
  %45 = load ptr, ptr %44, align 8, !tbaa !15
  %46 = call noundef i32 @_ZN8CCFUtils18GetInternalVersionEv(ptr noundef nonnull align 8 dereferenceable(74) %45)
  %47 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 8
  store i32 %46, ptr %47, align 8, !tbaa !23
  %48 = load ptr, ptr %10, align 8, !tbaa !5
  %49 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 1
  %50 = load ptr, ptr %49, align 8, !tbaa !15
  %51 = icmp eq ptr %50, null
  br i1 %51, label %58, label %52

52:                                               ; preds = %42
  %53 = call ptr @__dynamic_cast(ptr %50, ptr @_ZTI8CCFUtils, ptr @_ZTI14CCFUtilsXml_v1, i64 0) #8
  br label %59

54:                                               ; preds = %40
  %55 = landingpad { ptr, i32 }
          cleanup
  %56 = extractvalue { ptr, i32 } %55, 0
  store ptr %56, ptr %13, align 8
  %57 = extractvalue { ptr, i32 } %55, 1
  store i32 %57, ptr %14, align 4
  call void @_ZdlPvm(ptr noundef %41, i64 noundef 1008256) #9
  br label %68

58:                                               ; preds = %42
  br label %59

59:                                               ; preds = %58, %52
  %60 = phi ptr [ %53, %52 ], [ null, %58 ]
  %61 = getelementptr inbounds %class.CCFUtilsXml_v1, ptr %60, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %61, ptr align 1 %48, i64 818560, i1 false), !tbaa.struct !29
  %62 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 10
  %63 = load i32, ptr %62, align 8, !tbaa !25
  %64 = getelementptr inbounds %class.CCFUtils, ptr %17, i32 0, i32 1
  %65 = load ptr, ptr %64, align 8, !tbaa !15
  %66 = getelementptr inbounds %class.CCFUtils, ptr %65, i32 0, i32 10
  store i32 %63, ptr %66, align 8, !tbaa !25
  br label %67

67:                                               ; preds = %59, %6
  ret void

68:                                               ; preds = %54
  %69 = load ptr, ptr %13, align 8
  %70 = load i32, ptr %14, align 4
  %71 = insertvalue { ptr, i32 } poison, ptr %69, 0
  %72 = insertvalue { ptr, i32 } %71, i32 %70, 1
  resume { ptr, i32 } %72
}

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #1

declare void @_ZN14CCFUtilsXml_v1C1Ev(ptr noundef nonnull align 8 dereferenceable(1008256)) unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN8CCFUtils18GetInternalVersionEv(ptr noundef nonnull align 8 dereferenceable(74)) #4 align 2

; Function Attrs: nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) #5

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !6, i64 8}
!16 = !{!"_ZTS8CCFUtils", !6, i64 8, !10, i64 16, !6, i64 24, !10, i64 32, !6, i64 40, !12, i64 48, !12, i64 52, !12, i64 56, !6, i64 64, !10, i64 72, !10, i64 73}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!16, !10, i64 16}
!20 = !{!16, !6, i64 24}
!21 = !{!16, !10, i64 32}
!22 = !{!16, !6, i64 40}
!23 = !{!16, !12, i64 48}
!24 = !{!16, !12, i64 52}
!25 = !{!16, !12, i64 56}
!26 = !{!16, !6, i64 64}
!27 = !{!16, !10, i64 72}
!28 = !{!16, !10, i64 73}
!29 = !{i64 0, i64 405280, !30, i64 405280, i64 8, !31, i64 405288, i64 2, !33, i64 405290, i64 2, !33, i64 405292, i64 2, !33, i64 405294, i64 1, !30, i64 405295, i64 1, !30, i64 405296, i64 4, !11, i64 405300, i64 4, !11, i64 405304, i64 4, !35, i64 405308, i64 4, !11, i64 405312, i64 4, !11, i64 405316, i64 8, !31, i64 405324, i64 2, !33, i64 405326, i64 2, !33, i64 405328, i64 2, !33, i64 405330, i64 1, !30, i64 405331, i64 1, !30, i64 405332, i64 4, !35, i64 405336, i64 4, !35, i64 405340, i64 8, !31, i64 405348, i64 2, !33, i64 405350, i64 2, !33, i64 405352, i64 2, !33, i64 405354, i64 1, !30, i64 405355, i64 1, !30, i64 405356, i64 4, !11, i64 405360, i64 4, !11, i64 405364, i64 38080, !30, i64 443444, i64 8, !31, i64 443452, i64 2, !33, i64 443454, i64 2, !33, i64 443456, i64 2, !33, i64 443458, i64 1, !30, i64 443459, i64 1, !30, i64 443460, i64 4, !11, i64 443464, i64 4, !11, i64 443468, i64 4, !11, i64 443472, i64 4, !35, i64 443476, i64 4, !35, i64 443480, i64 4, !35, i64 443484, i64 4, !35, i64 443488, i64 4, !35, i64 443492, i64 4, !35, i64 443496, i64 4, !35, i64 443500, i64 4, !11, i64 443504, i64 4, !11, i64 443508, i64 8, !31, i64 443516, i64 2, !33, i64 443518, i64 2, !33, i64 443520, i64 2, !33, i64 443522, i64 1, !30, i64 443523, i64 1, !30, i64 443524, i64 4, !11, i64 443528, i64 4, !35, i64 443532, i64 4, !35, i64 443536, i64 4, !11, i64 443540, i64 4, !35, i64 443544, i64 4, !35, i64 443548, i64 8, !31, i64 443556, i64 2, !33, i64 443558, i64 2, !33, i64 443560, i64 2, !33, i64 443562, i64 1, !30, i64 443563, i64 1, !30, i64 443564, i64 4, !11, i64 443568, i64 4, !11, i64 443572, i64 4, !11, i64 443576, i64 4, !11, i64 443580, i64 4, !11, i64 443584, i64 4, !11, i64 443588, i64 282240, !30, i64 725828, i64 92160, !30, i64 817988, i64 544, !30, i64 818532, i64 8, !31, i64 818540, i64 2, !33, i64 818542, i64 2, !33, i64 818544, i64 2, !33, i64 818546, i64 1, !30, i64 818547, i64 1, !30, i64 818548, i64 4, !11, i64 818552, i64 4, !11, i64 818556, i64 4, !11}
!30 = !{!7, !7, i64 0}
!31 = !{!32, !32, i64 0}
!32 = !{!"long", !7, i64 0}
!33 = !{!34, !34, i64 0}
!34 = !{!"short", !7, i64 0}
!35 = !{!36, !36, i64 0}
!36 = !{!"float", !7, i64 0}


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

@_ZTV8CCFUtils = external dso_local unnamed_addr constant { [8 x ptr] }, align 8
@_ZTI14CCFUtilsXml_v1 = external constant ptr
@_ZTI8CCFUtils = external dso_local constant { ptr, ptr }, align 8

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN8CCFUtilsC2EbbP5cbCCFPFvjN3ccf10_ccfResultEPKc11_cbStateCCFjEj(ptr nocapture noundef nonnull align 8 dereferenceable(74) %0, i1 noundef zeroext %1, i1 noundef zeroext %2, ptr noundef %3, ptr noundef %4, i32 noundef %5) unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 {
  %7 = zext i1 %1 to i8
  %8 = zext i1 %2 to i8
  store ptr getelementptr inbounds inrange(-16, 48) (i8, ptr @_ZTV8CCFUtils, i64 16), ptr %0, align 8, !tbaa !5
  %9 = getelementptr inbounds i8, ptr %0, i64 8
  store ptr null, ptr %9, align 8, !tbaa !8
  %10 = getelementptr inbounds i8, ptr %0, i64 16
  store i8 %7, ptr %10, align 8, !tbaa !14
  %11 = getelementptr inbounds i8, ptr %0, i64 24
  store ptr %4, ptr %11, align 8, !tbaa !15
  %12 = getelementptr inbounds i8, ptr %0, i64 32
  store i8 %8, ptr %12, align 8, !tbaa !16
  %13 = getelementptr inbounds i8, ptr %0, i64 40
  store ptr %3, ptr %13, align 8, !tbaa !17
  %14 = getelementptr inbounds i8, ptr %0, i64 48
  store i32 0, ptr %14, align 8, !tbaa !18
  %15 = getelementptr inbounds i8, ptr %0, i64 52
  store i32 0, ptr %15, align 4, !tbaa !19
  %16 = getelementptr inbounds i8, ptr %0, i64 56
  store i32 %5, ptr %16, align 8, !tbaa !20
  %17 = getelementptr inbounds i8, ptr %0, i64 64
  store ptr null, ptr %17, align 8, !tbaa !21
  %18 = getelementptr inbounds i8, ptr %0, i64 72
  store i8 0, ptr %18, align 8, !tbaa !22
  %19 = getelementptr inbounds i8, ptr %0, i64 73
  store i8 0, ptr %19, align 1, !tbaa !23
  %.not = icmp eq ptr %3, null
  br i1 %.not, label %32, label %20

20:                                               ; preds = %6
  %21 = tail call noalias noundef nonnull dereferenceable(1008256) ptr @_Znwm(i64 noundef 1008256) #7
  invoke void @_ZN14CCFUtilsXml_v1C1Ev(ptr noundef nonnull align 8 dereferenceable(1008256) %21)
          to label %22 unwind label %30

22:                                               ; preds = %20
  store ptr %21, ptr %9, align 8, !tbaa !8
  %23 = tail call noundef i32 @_ZN8CCFUtils18GetInternalVersionEv(ptr noundef nonnull align 8 dereferenceable(74) %21)
  store i32 %23, ptr %14, align 8, !tbaa !18
  %24 = load ptr, ptr %9, align 8, !tbaa !8, !nonnull !24, !noundef !24
  %25 = tail call ptr @__dynamic_cast(ptr nonnull %24, ptr nonnull @_ZTI8CCFUtils, ptr nonnull @_ZTI14CCFUtilsXml_v1, i64 0) #8
  %26 = getelementptr inbounds i8, ptr %25, i64 189696
  tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(818560) %26, ptr noundef nonnull align 1 dereferenceable(818560) %3, i64 818560, i1 false), !tbaa.struct !25
  %27 = load i32, ptr %16, align 8, !tbaa !20
  %28 = load ptr, ptr %9, align 8, !tbaa !8
  %29 = getelementptr inbounds i8, ptr %28, i64 56
  store i32 %27, ptr %29, align 8, !tbaa !20
  br label %32

30:                                               ; preds = %20
  %31 = landingpad { ptr, i32 }
          cleanup
  tail call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef 1008256) #9
  resume { ptr, i32 } %31

32:                                               ; preds = %22, %6
  ret void
}

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #1

declare void @_ZN14CCFUtilsXml_v1C1Ev(ptr noundef nonnull align 8 dereferenceable(1008256)) unnamed_addr #2

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZN8CCFUtils18GetInternalVersionEv(ptr noundef nonnull align 8 dereferenceable(74)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nofree nounwind willreturn memory(read)
declare ptr @__dynamic_cast(ptr, ptr, ptr, i64) local_unnamed_addr #5

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !10, i64 8}
!9 = !{!"_ZTS8CCFUtils", !10, i64 8, !12, i64 16, !10, i64 24, !12, i64 32, !10, i64 40, !13, i64 48, !13, i64 52, !13, i64 56, !10, i64 64, !12, i64 72, !12, i64 73}
!10 = !{!"any pointer", !11, i64 0}
!11 = !{!"omnipotent char", !7, i64 0}
!12 = !{!"bool", !11, i64 0}
!13 = !{!"int", !11, i64 0}
!14 = !{!9, !12, i64 16}
!15 = !{!9, !10, i64 24}
!16 = !{!9, !12, i64 32}
!17 = !{!9, !10, i64 40}
!18 = !{!9, !13, i64 48}
!19 = !{!9, !13, i64 52}
!20 = !{!9, !13, i64 56}
!21 = !{!9, !10, i64 64}
!22 = !{!9, !12, i64 72}
!23 = !{!9, !12, i64 73}
!24 = !{}
!25 = !{i64 0, i64 405280, !26, i64 405280, i64 8, !27, i64 405288, i64 2, !29, i64 405290, i64 2, !29, i64 405292, i64 2, !29, i64 405294, i64 1, !26, i64 405295, i64 1, !26, i64 405296, i64 4, !31, i64 405300, i64 4, !31, i64 405304, i64 4, !32, i64 405308, i64 4, !31, i64 405312, i64 4, !31, i64 405316, i64 8, !27, i64 405324, i64 2, !29, i64 405326, i64 2, !29, i64 405328, i64 2, !29, i64 405330, i64 1, !26, i64 405331, i64 1, !26, i64 405332, i64 4, !32, i64 405336, i64 4, !32, i64 405340, i64 8, !27, i64 405348, i64 2, !29, i64 405350, i64 2, !29, i64 405352, i64 2, !29, i64 405354, i64 1, !26, i64 405355, i64 1, !26, i64 405356, i64 4, !31, i64 405360, i64 4, !31, i64 405364, i64 38080, !26, i64 443444, i64 8, !27, i64 443452, i64 2, !29, i64 443454, i64 2, !29, i64 443456, i64 2, !29, i64 443458, i64 1, !26, i64 443459, i64 1, !26, i64 443460, i64 4, !31, i64 443464, i64 4, !31, i64 443468, i64 4, !31, i64 443472, i64 4, !32, i64 443476, i64 4, !32, i64 443480, i64 4, !32, i64 443484, i64 4, !32, i64 443488, i64 4, !32, i64 443492, i64 4, !32, i64 443496, i64 4, !32, i64 443500, i64 4, !31, i64 443504, i64 4, !31, i64 443508, i64 8, !27, i64 443516, i64 2, !29, i64 443518, i64 2, !29, i64 443520, i64 2, !29, i64 443522, i64 1, !26, i64 443523, i64 1, !26, i64 443524, i64 4, !31, i64 443528, i64 4, !32, i64 443532, i64 4, !32, i64 443536, i64 4, !31, i64 443540, i64 4, !32, i64 443544, i64 4, !32, i64 443548, i64 8, !27, i64 443556, i64 2, !29, i64 443558, i64 2, !29, i64 443560, i64 2, !29, i64 443562, i64 1, !26, i64 443563, i64 1, !26, i64 443564, i64 4, !31, i64 443568, i64 4, !31, i64 443572, i64 4, !31, i64 443576, i64 4, !31, i64 443580, i64 4, !31, i64 443584, i64 4, !31, i64 443588, i64 282240, !26, i64 725828, i64 92160, !26, i64 817988, i64 544, !26, i64 818532, i64 8, !27, i64 818540, i64 2, !29, i64 818542, i64 2, !29, i64 818544, i64 2, !29, i64 818546, i64 1, !26, i64 818547, i64 1, !26, i64 818548, i64 4, !31, i64 818552, i64 4, !31, i64 818556, i64 4, !31}
!26 = !{!11, !11, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"long", !11, i64 0}
!29 = !{!30, !30, i64 0}
!30 = !{!"short", !11, i64 0}
!31 = !{!13, !13, i64 0}
!32 = !{!33, !33, i64 0}
!33 = !{!"float", !11, i64 0}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass