; LLVM IR from wichue/nethello :: src/core/raw/RawPressModel.ll (ZN3chw13RawPressModel14onManagerModelEv)

; 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.chw::ConfigCmd" = type { i8, ptr, i32, i32, i16, i32, double, ptr, i32, i32, i32, i16, ptr, [6 x i8], ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.chw::LogContextCapture" = type { %"class.std::shared_ptr.6", ptr }
%"class.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.std::_Setw" = type { i32 }
%"struct.std::_Setprecision" = type { i32 }
%"class.chw::RawPressModel" = type { %"class.chw::workmodel", %"class.std::shared_ptr.0", %"class.std::shared_ptr.3", i8, %"class.chw::Ticker", %"class.chw::Ticker", i64, i64, i64, i32, i32, i64, i64, i64, i64 }
%"class.chw::workmodel" = type { ptr, %"class.std::enable_shared_from_this", %"class.std::shared_ptr" }
%"class.std::enable_shared_from_this" = type { %"class.std::weak_ptr" }
%"class.std::weak_ptr" = type { %"class.std::__weak_ptr" }
%"class.std::__weak_ptr" = type { ptr, %"class.std::__weak_count" }
%"class.std::__weak_count" = type { ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.0" = type { %"class.std::__shared_ptr.1" }
%"class.std::__shared_ptr.1" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.3" = type { %"class.std::__shared_ptr.4" }
%"class.std::__shared_ptr.4" = type { ptr, %"class.std::__shared_count" }
%"class.chw::Ticker" = type { i64, i64, i64, %"class.chw::LogContextCapture" }

@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZN3chw10gConfigCmdE = external global %"struct.chw::ConfigCmd", align 8
@.str.4 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN3chw13RawPressModel14onManagerModelEv = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(144), i32 noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #0

; Function Attrs: nounwind
declare void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

declare noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv() #0

declare i32 @usleep(i32 noundef) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3chw6Ticker11elapsedTimeEv(ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

declare noundef i64 @_ZN3chw14RawPressClient9GetPktNumEv(ptr noundef nonnull align 8 dereferenceable(176)) #0

declare noundef i64 @_ZN3chw14RawPressClient6GetSeqEv(ptr noundef nonnull align 8 dereferenceable(176)) #0

declare noundef i64 @_ZN3chw14RawPressClient9GetRcvLenEv(ptr noundef nonnull align 8 dereferenceable(176)) #0

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120)) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) #3 align 2

declare noundef i64 @_ZN3chw6Socket12getRecvSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) #0

declare void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt4leftRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt12setprecisioni(i32 noundef) #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt5fixedRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(2)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(3)) #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3chw13RawPressModel14onManagerModelEv(ptr noundef nonnull align 8 dereferenceable(240) %0) #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca i64, align 8
  %4 = alloca i64, align 8
  %5 = alloca i64, align 8
  %6 = alloca double, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i64, align 8
  %12 = alloca double, align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::allocator", align 1
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca double, align 8
  %19 = alloca %"class.chw::LogContextCapture", align 8
  %20 = alloca %"struct.std::_Setw", align 4
  %21 = alloca %"struct.std::_Setprecision", align 4
  %22 = alloca %"struct.std::_Setw", align 4
  %23 = alloca %"struct.std::_Setprecision", align 4
  %24 = alloca %"struct.std::_Setw", align 4
  %25 = alloca %"struct.std::_Setw", align 4
  %26 = alloca %"struct.std::_Setprecision", align 4
  %27 = alloca %"struct.std::_Setw", align 4
  %28 = alloca %"struct.std::_Setprecision", align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %29 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  %30 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 5
  %31 = call noundef i64 @_ZNK3chw6Ticker11elapsedTimeEv(ptr noundef nonnull align 8 dereferenceable(48) %30)
  store i64 %31, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  store i64 0, ptr %4, align 8, !tbaa !9
  %32 = load i64, ptr %3, align 8, !tbaa !9
  %33 = icmp ugt i64 %32, 0
  br i1 %33, label %34, label %37

34:                                               ; preds = %1
  %35 = load i64, ptr %3, align 8, !tbaa !9
  %36 = udiv i64 %35, 1000
  store i64 %36, ptr %4, align 8, !tbaa !9
  br label %37

37:                                               ; preds = %34, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  store i64 0, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %38 unwind label %102

38:                                               ; preds = %37
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  store i64 0, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #8
  store double 0.000000e+00, ptr %12, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %39 unwind label %106

39:                                               ; preds = %38
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  %40 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 1
  %41 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %40) #8
  %42 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %41)
          to label %43 unwind label %110

43:                                               ; preds = %39
  %44 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  %45 = invoke noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %44)
          to label %46 unwind label %110

46:                                               ; preds = %43
  store i64 %45, ptr %5, align 8, !tbaa !9
  %47 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 1
  %48 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  %49 = invoke noundef i64 @_ZN3chw14RawPressClient9GetPktNumEv(ptr noundef nonnull align 8 dereferenceable(176) %48)
          to label %50 unwind label %110

50:                                               ; preds = %46
  %51 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 11
  store i64 %49, ptr %51, align 8, !tbaa !13
  %52 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 1
  %53 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  %54 = invoke noundef i64 @_ZN3chw14RawPressClient6GetSeqEv(ptr noundef nonnull align 8 dereferenceable(176) %53)
          to label %55 unwind label %110

55:                                               ; preds = %50
  %56 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 12
  store i64 %54, ptr %56, align 8, !tbaa !33
  %57 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 1
  %58 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %57) #8
  %59 = invoke noundef i64 @_ZN3chw14RawPressClient9GetRcvLenEv(ptr noundef nonnull align 8 dereferenceable(176) %58)
          to label %60 unwind label %110

60:                                               ; preds = %55
  %61 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 13
  store i64 %59, ptr %61, align 8, !tbaa !34
  %62 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 1
  %63 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %62) #8
  %64 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %63)
          to label %65 unwind label %110

65:                                               ; preds = %60
  %66 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  %67 = invoke noundef i64 @_ZN3chw6Socket12getRecvSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %66)
          to label %68 unwind label %110

68:                                               ; preds = %65
  %69 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 14
  store i64 %67, ptr %69, align 8, !tbaa !35
  %70 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 14
  %71 = load i64, ptr %70, align 8, !tbaa !35
  store i64 %71, ptr %11, align 8, !tbaa !9
  %72 = load i64, ptr %5, align 8, !tbaa !9
  invoke void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef %72, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %73 unwind label %110

73:                                               ; preds = %68
  %74 = load i64, ptr %11, align 8, !tbaa !9
  invoke void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef %74, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %75 unwind label %110

75:                                               ; preds = %73
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %76 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 12
  %77 = load i64, ptr %76, align 8, !tbaa !33
  %78 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 11
  %79 = load i64, ptr %78, align 8, !tbaa !13
  %80 = sub i64 %77, %79
  %81 = trunc i64 %80 to i32
  store i32 %81, ptr %15, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %82 = load i32, ptr %15, align 4, !tbaa !36
  %83 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 9
  %84 = load i32, ptr %83, align 8, !tbaa !37
  %85 = sub i32 %82, %84
  store i32 %85, ptr %16, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %86 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 12
  %87 = load i64, ptr %86, align 8, !tbaa !33
  %88 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 10
  %89 = load i32, ptr %88, align 4, !tbaa !38
  %90 = zext i32 %89 to i64
  %91 = sub i64 %87, %90
  %92 = trunc i64 %91 to i32
  store i32 %92, ptr %17, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  store double 0.000000e+00, ptr %18, align 8, !tbaa !11
  %93 = load i32, ptr %17, align 4, !tbaa !36
  %94 = icmp ne i32 %93, 0
  br i1 %94, label %95, label %114

95:                                               ; preds = %75
  %96 = load i32, ptr %16, align 4, !tbaa !36
  %97 = uitofp i32 %96 to double
  %98 = load i32, ptr %17, align 4, !tbaa !36
  %99 = uitofp i32 %98 to double
  %100 = fdiv double %97, %99
  %101 = fmul double %100, 1.000000e+02
  store double %101, ptr %18, align 8, !tbaa !11
  br label %114

102:                                              ; preds = %37
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %9, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #8
  br label %277

106:                                              ; preds = %38
  %107 = landingpad { ptr, i32 }
          cleanup
  %108 = extractvalue { ptr, i32 } %107, 0
  store ptr %108, ptr %9, align 8
  %109 = extractvalue { ptr, i32 } %107, 1
  store i32 %109, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #8
  br label %276

110:                                              ; preds = %73, %68, %65, %60, %55, %50, %46, %43, %39
  %111 = landingpad { ptr, i32 }
          cleanup
  %112 = extractvalue { ptr, i32 } %111, 0
  store ptr %112, ptr %9, align 8
  %113 = extractvalue { ptr, i32 } %111, 1
  store i32 %113, ptr %10, align 4
  br label %275

114:                                              ; preds = %95, %75
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #8
  %115 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %116 unwind label %215

116:                                              ; preds = %114
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(144) %115, i32 noundef 2, ptr noundef @.str.4, ptr noundef @__FUNCTION__._ZN3chw13RawPressModel14onManagerModelEv, i32 noundef 213, ptr noundef @.str.1)
          to label %117 unwind label %215

117:                                              ; preds = %116
  %118 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull @_ZSt4leftRSt8ios_base)
          to label %119 unwind label %219

119:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %120 = invoke i32 @_ZSt4setwi(i32 noundef 12)
          to label %121 unwind label %223

121:                                              ; preds = %119
  %122 = getelementptr inbounds %"struct.std::_Setw", ptr %20, i32 0, i32 0
  store i32 %120, ptr %122, align 4
  %123 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %118, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %124 unwind label %223

124:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %125 = invoke i32 @_ZSt12setprecisioni(i32 noundef 0)
          to label %126 unwind label %227

126:                                              ; preds = %124
  %127 = getelementptr inbounds %"struct.std::_Setprecision", ptr %21, i32 0, i32 0
  store i32 %125, ptr %127, align 4
  %128 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %129 unwind label %227

129:                                              ; preds = %126
  %130 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %128, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %131 unwind label %227

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %133 unwind label %227

133:                                              ; preds = %131
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %134 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %135 unwind label %231

135:                                              ; preds = %133
  %136 = getelementptr inbounds %"struct.std::_Setw", ptr %22, i32 0, i32 0
  store i32 %134, ptr %136, align 4
  %137 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %132, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %138 unwind label %231

138:                                              ; preds = %135
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %139 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %140 unwind label %235

140:                                              ; preds = %138
  %141 = getelementptr inbounds %"struct.std::_Setprecision", ptr %23, i32 0, i32 0
  store i32 %139, ptr %141, align 4
  %142 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %137, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %143 unwind label %235

143:                                              ; preds = %140
  %144 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %142, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %145 unwind label %235

145:                                              ; preds = %143
  %146 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %144, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %147 unwind label %235

147:                                              ; preds = %145
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %148 = invoke i32 @_ZSt4setwi(i32 noundef 12)
          to label %149 unwind label %239

149:                                              ; preds = %147
  %150 = getelementptr inbounds %"struct.std::_Setw", ptr %24, i32 0, i32 0
  store i32 %148, ptr %150, align 4
  %151 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %152 unwind label %239

152:                                              ; preds = %149
  %153 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %154 unwind label %239

154:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %155 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %156 unwind label %243

156:                                              ; preds = %154
  %157 = getelementptr inbounds %"struct.std::_Setw", ptr %25, i32 0, i32 0
  store i32 %155, ptr %157, align 4
  %158 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %159 unwind label %243

159:                                              ; preds = %156
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %160 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %161 unwind label %247

161:                                              ; preds = %159
  %162 = getelementptr inbounds %"struct.std::_Setprecision", ptr %26, i32 0, i32 0
  store i32 %160, ptr %162, align 4
  %163 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %158, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %164 unwind label %247

164:                                              ; preds = %161
  %165 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %163, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %166 unwind label %247

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %165, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %168 unwind label %247

168:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %169 = invoke i32 @_ZSt4setwi(i32 noundef 12)
          to label %170 unwind label %251

170:                                              ; preds = %168
  %171 = getelementptr inbounds %"struct.std::_Setw", ptr %27, i32 0, i32 0
  store i32 %169, ptr %171, align 4
  %172 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %167, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %173 unwind label %251

173:                                              ; preds = %170
  %174 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %172, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %175 unwind label %251

175:                                              ; preds = %173
  %176 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %174, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %177 unwind label %251

177:                                              ; preds = %175
  %178 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %176, ptr noundef nonnull align 1 dereferenceable(2) @.str.14)
          to label %179 unwind label %251

179:                                              ; preds = %177
  %180 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %178, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %181 unwind label %251

181:                                              ; preds = %179
  %182 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %180, ptr noundef nonnull align 1 dereferenceable(2) @.str.12)
          to label %183 unwind label %251

183:                                              ; preds = %181
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %184 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %185 unwind label %255

185:                                              ; preds = %183
  %186 = getelementptr inbounds %"struct.std::_Setprecision", ptr %28, i32 0, i32 0
  store i32 %184, ptr %186, align 4
  %187 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %182, ptr noundef nonnull align 4 dereferenceable(4) %28)
          to label %188 unwind label %255

188:                                              ; preds = %185
  %189 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %187, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %190 unwind label %255

190:                                              ; preds = %188
  %191 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %189, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %192 unwind label %255

192:                                              ; preds = %190
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %191, ptr noundef nonnull align 1 dereferenceable(3) @.str.13)
          to label %194 unwind label %255

194:                                              ; preds = %192
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  %195 = load i32, ptr %15, align 4, !tbaa !36
  %196 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 9
  store i32 %195, ptr %196, align 8, !tbaa !37
  %197 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 12
  %198 = load i64, ptr %197, align 8, !tbaa !33
  %199 = trunc i64 %198 to i32
  %200 = getelementptr inbounds %"class.chw::RawPressModel", ptr %29, i32 0, i32 10
  store i32 %199, ptr %200, align 4, !tbaa !38
  %201 = load i32, ptr getelementptr inbounds (%"struct.chw::ConfigCmd", ptr @_ZN3chw10gConfigCmdE, i32 0, i32 5), align 4, !tbaa !39
  %202 = icmp ugt i32 %201, 0
  br i1 %202, label %203, label %273

203:                                              ; preds = %194
  %204 = load i64, ptr %4, align 8, !tbaa !9
  %205 = load i32, ptr getelementptr inbounds (%"struct.chw::ConfigCmd", ptr @_ZN3chw10gConfigCmdE, i32 0, i32 5), align 4, !tbaa !39
  %206 = zext i32 %205 to i64
  %207 = icmp uge i64 %204, %206
  br i1 %207, label %208, label %273

208:                                              ; preds = %203
  %209 = load ptr, ptr %29, align 8, !tbaa !44
  %210 = getelementptr inbounds ptr, ptr %209, i64 3
  %211 = load ptr, ptr %210, align 8
  invoke void %211(ptr noundef nonnull align 8 dereferenceable(240) %29)
          to label %212 unwind label %269

212:                                              ; preds = %208
  %213 = invoke i32 @usleep(i32 noundef 100000)
          to label %214 unwind label %269

214:                                              ; preds = %212
  call void @exit(i32 noundef 1) #9
  unreachable

215:                                              ; preds = %116, %114
  %216 = landingpad { ptr, i32 }
          cleanup
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %9, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %10, align 4
  br label %268

219:                                              ; preds = %117
  %220 = landingpad { ptr, i32 }
          cleanup
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %9, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %10, align 4
  br label %267

223:                                              ; preds = %121, %119
  %224 = landingpad { ptr, i32 }
          cleanup
  %225 = extractvalue { ptr, i32 } %224, 0
  store ptr %225, ptr %9, align 8
  %226 = extractvalue { ptr, i32 } %224, 1
  store i32 %226, ptr %10, align 4
  br label %266

227:                                              ; preds = %131, %129, %126, %124
  %228 = landingpad { ptr, i32 }
          cleanup
  %229 = extractvalue { ptr, i32 } %228, 0
  store ptr %229, ptr %9, align 8
  %230 = extractvalue { ptr, i32 } %228, 1
  store i32 %230, ptr %10, align 4
  br label %265

231:                                              ; preds = %135, %133
  %232 = landingpad { ptr, i32 }
          cleanup
  %233 = extractvalue { ptr, i32 } %232, 0
  store ptr %233, ptr %9, align 8
  %234 = extractvalue { ptr, i32 } %232, 1
  store i32 %234, ptr %10, align 4
  br label %264

235:                                              ; preds = %145, %143, %140, %138
  %236 = landingpad { ptr, i32 }
          cleanup
  %237 = extractvalue { ptr, i32 } %236, 0
  store ptr %237, ptr %9, align 8
  %238 = extractvalue { ptr, i32 } %236, 1
  store i32 %238, ptr %10, align 4
  br label %263

239:                                              ; preds = %152, %149, %147
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %9, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %10, align 4
  br label %262

243:                                              ; preds = %156, %154
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %9, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %10, align 4
  br label %261

247:                                              ; preds = %166, %164, %161, %159
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %9, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %10, align 4
  br label %260

251:                                              ; preds = %181, %179, %177, %175, %173, %170, %168
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %9, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %10, align 4
  br label %259

255:                                              ; preds = %192, %190, %188, %185, %183
  %256 = landingpad { ptr, i32 }
          cleanup
  %257 = extractvalue { ptr, i32 } %256, 0
  store ptr %257, ptr %9, align 8
  %258 = extractvalue { ptr, i32 } %256, 1
  store i32 %258, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %259

259:                                              ; preds = %255, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %260

260:                                              ; preds = %259, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %261

261:                                              ; preds = %260, %243
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %262

262:                                              ; preds = %261, %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %263

263:                                              ; preds = %262, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %264

264:                                              ; preds = %263, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %265

265:                                              ; preds = %264, %227
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %266

266:                                              ; preds = %265, %223
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %267

267:                                              ; preds = %266, %219
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  br label %268

268:                                              ; preds = %267, %215
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  br label %274

269:                                              ; preds = %212, %208
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %9, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %10, align 4
  br label %274

273:                                              ; preds = %203, %194
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  ret void

274:                                              ; preds = %269, %268
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %275

275:                                              ; preds = %274, %110
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #8
  br label %276

276:                                              ; preds = %275, %106
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %277

277:                                              ; preds = %276, %102
  call void @llvm.lifetime.end.p0(i64 32, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %3) #8
  br label %278

278:                                              ; preds = %277
  %279 = load ptr, ptr %9, align 8
  %280 = load i32, ptr %10, align 4
  %281 = insertvalue { ptr, i32 } poison, ptr %279, 0
  %282 = insertvalue { ptr, i32 } %281, i32 %280, 1
  resume { ptr, i32 } %282
}

declare noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) #0

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { inlinehint 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 #6 = { inlinehint 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 #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn 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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"double", !7, i64 0}
!13 = !{!14, !10, i64 208}
!14 = !{!"_ZTSN3chw13RawPressModelE", !15, i64 0, !23, i64 40, !25, i64 56, !27, i64 72, !28, i64 80, !28, i64 128, !10, i64 176, !10, i64 184, !10, i64 192, !32, i64 200, !32, i64 204, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232}
!15 = !{!"_ZTSN3chw9workmodelE", !16, i64 8, !20, i64 24}
!16 = !{!"_ZTSSt23enable_shared_from_thisIN3chw9workmodelEE", !17, i64 0}
!17 = !{!"_ZTSSt8weak_ptrIN3chw9workmodelEE", !18, i64 0}
!18 = !{!"_ZTSSt10__weak_ptrIN3chw9workmodelELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !19, i64 8}
!19 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!20 = !{!"_ZTSSt10shared_ptrIN3chw9EventLoopEE", !21, i64 0}
!21 = !{!"_ZTSSt12__shared_ptrIN3chw9EventLoopELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !22, i64 8}
!22 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!23 = !{!"_ZTSSt10shared_ptrIN3chw14RawPressClientEE", !24, i64 0}
!24 = !{!"_ZTSSt12__shared_ptrIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !22, i64 8}
!25 = !{!"_ZTSSt10shared_ptrIN3chw5TimerEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN3chw5TimerELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !22, i64 8}
!27 = !{!"bool", !7, i64 0}
!28 = !{!"_ZTSN3chw6TickerE", !10, i64 0, !10, i64 8, !10, i64 16, !29, i64 24}
!29 = !{!"_ZTSN3chw17LogContextCaptureE", !30, i64 0, !6, i64 16}
!30 = !{!"_ZTSSt10shared_ptrIN3chw10LogContextEE", !31, i64 0}
!31 = !{!"_ZTSSt12__shared_ptrIN3chw10LogContextELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !22, i64 8}
!32 = !{!"int", !7, i64 0}
!33 = !{!14, !10, i64 216}
!34 = !{!14, !10, i64 224}
!35 = !{!14, !10, i64 232}
!36 = !{!32, !32, i64 0}
!37 = !{!14, !32, i64 200}
!38 = !{!14, !32, i64 204}
!39 = !{!40, !32, i64 28}
!40 = !{!"_ZTSN3chw9ConfigCmdE", !7, i64 0, !6, i64 8, !41, i64 16, !32, i64 20, !42, i64 24, !32, i64 28, !12, i64 32, !6, i64 40, !32, i64 48, !32, i64 52, !43, i64 56, !42, i64 60, !6, i64 64, !7, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!41 = !{!"_ZTSN3chw7SockNum8SockTypeE", !7, i64 0}
!42 = !{!"short", !7, i64 0}
!43 = !{!"_ZTSN3chw9WorkModelE", !7, i64 0}
!44 = !{!45, !45, i64 0}
!45 = !{!"vtable pointer", !8, 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"

%"struct.chw::ConfigCmd" = type { i8, ptr, i32, i32, i16, i32, double, ptr, i32, i32, i32, i16, ptr, [6 x i8], ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::allocator" = type { i8 }
%"class.chw::LogContextCapture" = type { %"class.std::shared_ptr.6", ptr }
%"class.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.std::_Setw" = type { i32 }
%"struct.std::_Setprecision" = type { i32 }

@.str.1 = external hidden unnamed_addr constant [1 x i8], align 1
@_ZN3chw10gConfigCmdE = external local_unnamed_addr global %"struct.chw::ConfigCmd", align 8
@.str.4 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN3chw13RawPressModel14onManagerModelEv = external hidden unnamed_addr constant [15 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1

declare i32 @__gxx_personality_v0(...)

declare void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(144), i32 noundef, ptr noundef, ptr noundef, i32 noundef, ptr noundef) unnamed_addr #0

; Function Attrs: nounwind
declare void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #3 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

declare noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv() local_unnamed_addr #0

declare i32 @usleep(i32 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZNK3chw6Ticker11elapsedTimeEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

declare noundef i64 @_ZN3chw14RawPressClient9GetPktNumEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

declare noundef i64 @_ZN3chw14RawPressClient6GetSeqEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

declare noundef i64 @_ZN3chw14RawPressClient9GetRcvLenEv(ptr noundef nonnull align 8 dereferenceable(176)) local_unnamed_addr #0

declare noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120)) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #3 align 2

declare noundef i64 @_ZN3chw6Socket12getRecvSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) local_unnamed_addr #0

declare void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef, ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt4leftRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt4setwi(i32 noundef) local_unnamed_addr #6

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local i32 @_ZSt12setprecisioni(i32 noundef) local_unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt5fixedRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(2)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 1 dereferenceable(3)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN3chw13RawPressModel14onManagerModelEv(ptr noundef nonnull align 8 dereferenceable(240) %0) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i64, align 8
  %3 = alloca double, align 8
  %4 = alloca %"class.std::__cxx11::basic_string", align 8
  %5 = alloca %"class.std::allocator", align 1
  %6 = alloca double, align 8
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::allocator", align 1
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca double, align 8
  %12 = alloca %"class.chw::LogContextCapture", align 8
  %13 = alloca %"struct.std::_Setw", align 4
  %14 = alloca %"struct.std::_Setprecision", align 4
  %15 = alloca %"struct.std::_Setw", align 4
  %16 = alloca %"struct.std::_Setprecision", align 4
  %17 = alloca %"struct.std::_Setw", align 4
  %18 = alloca %"struct.std::_Setw", align 4
  %19 = alloca %"struct.std::_Setprecision", align 4
  %20 = alloca %"struct.std::_Setw", align 4
  %21 = alloca %"struct.std::_Setprecision", align 4
  %22 = getelementptr inbounds i8, ptr %0, i64 128
  %23 = tail call noundef i64 @_ZNK3chw6Ticker11elapsedTimeEv(ptr noundef nonnull align 8 dereferenceable(48) %22)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #8
  %24 = udiv i64 %23, 1000
  store i64 %24, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #8
  store double 0.000000e+00, ptr %3, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %5)
          to label %25 unwind label %71

25:                                               ; preds = %1
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #8
  store double 0.000000e+00, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %26 unwind label %73

26:                                               ; preds = %25
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  %27 = getelementptr inbounds i8, ptr %0, i64 40
  %28 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  %29 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %28)
          to label %30 unwind label %75

30:                                               ; preds = %26
  %31 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  %32 = invoke noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %31)
          to label %33 unwind label %75

33:                                               ; preds = %30
  %34 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  %35 = invoke noundef i64 @_ZN3chw14RawPressClient9GetPktNumEv(ptr noundef nonnull align 8 dereferenceable(176) %34)
          to label %36 unwind label %75

36:                                               ; preds = %33
  %37 = getelementptr inbounds i8, ptr %0, i64 208
  store i64 %35, ptr %37, align 8, !tbaa !11
  %38 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  %39 = invoke noundef i64 @_ZN3chw14RawPressClient6GetSeqEv(ptr noundef nonnull align 8 dereferenceable(176) %38)
          to label %40 unwind label %75

40:                                               ; preds = %36
  %41 = getelementptr inbounds i8, ptr %0, i64 216
  store i64 %39, ptr %41, align 8, !tbaa !32
  %42 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  %43 = invoke noundef i64 @_ZN3chw14RawPressClient9GetRcvLenEv(ptr noundef nonnull align 8 dereferenceable(176) %42)
          to label %44 unwind label %75

44:                                               ; preds = %40
  %45 = getelementptr inbounds i8, ptr %0, i64 224
  store i64 %43, ptr %45, align 8, !tbaa !33
  %46 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %27) #8
  %47 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %46)
          to label %48 unwind label %75

48:                                               ; preds = %44
  %49 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %47) #8
  %50 = invoke noundef i64 @_ZN3chw6Socket12getRecvSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %49)
          to label %51 unwind label %75

51:                                               ; preds = %48
  %52 = getelementptr inbounds i8, ptr %0, i64 232
  store i64 %50, ptr %52, align 8, !tbaa !34
  invoke void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef %32, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %53 unwind label %75

53:                                               ; preds = %51
  invoke void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef %50, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %54 unwind label %75

54:                                               ; preds = %53
  %55 = load i64, ptr %41, align 8, !tbaa !32
  %56 = load i64, ptr %37, align 8, !tbaa !11
  %57 = sub i64 %55, %56
  %58 = trunc i64 %57 to i32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  %59 = getelementptr inbounds i8, ptr %0, i64 200
  %60 = load i32, ptr %59, align 8, !tbaa !35
  %61 = sub i32 %58, %60
  store i32 %61, ptr %9, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %62 = getelementptr inbounds i8, ptr %0, i64 204
  %63 = load i32, ptr %62, align 4, !tbaa !37
  %64 = trunc i64 %55 to i32
  %65 = sub i32 %64, %63
  store i32 %65, ptr %10, align 4, !tbaa !36
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %.not25 = icmp eq i32 %63, %64
  %66 = uitofp i32 %61 to double
  %67 = uitofp i32 %65 to double
  %68 = fdiv double %66, %67
  %69 = fmul double %68, 1.000000e+02
  %storemerge = select i1 %.not25, double 0.000000e+00, double %69
  store double %storemerge, ptr %11, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #8
  %70 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %77 unwind label %150

71:                                               ; preds = %1
  %72 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) #8
  br label %188

73:                                               ; preds = %25
  %74 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #8
  br label %187

75:                                               ; preds = %53, %51, %48, %44, %40, %36, %33, %30, %26
  %76 = landingpad { ptr, i32 }
          cleanup
  br label %186

77:                                               ; preds = %54
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(144) %70, i32 noundef 2, ptr noundef nonnull @.str.4, ptr noundef nonnull @__FUNCTION__._ZN3chw13RawPressModel14onManagerModelEv, i32 noundef 213, ptr noundef nonnull @.str.1)
          to label %78 unwind label %150

78:                                               ; preds = %77
  %79 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull @_ZSt4leftRSt8ios_base)
          to label %80 unwind label %152

80:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %13) #8
  %81 = call i32 @_ZSt4setwi(i32 noundef 12)
  store i32 %81, ptr %13, align 4
  %82 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %83 unwind label %154

83:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  %84 = call i32 @_ZSt12setprecisioni(i32 noundef 0)
  store i32 %84, ptr %14, align 4
  %85 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %86 unwind label %156

86:                                               ; preds = %83
  %87 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %85, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %88 unwind label %156

88:                                               ; preds = %86
  %89 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 8 dereferenceable(8) %2)
          to label %90 unwind label %156

90:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %15) #8
  %91 = call i32 @_ZSt4setwi(i32 noundef 8)
  store i32 %91, ptr %15, align 4
  %92 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 4 dereferenceable(4) %15)
          to label %93 unwind label %158

93:                                               ; preds = %90
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #8
  %94 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %94, ptr %16, align 4
  %95 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %92, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %96 unwind label %160

96:                                               ; preds = %93
  %97 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %98 unwind label %160

98:                                               ; preds = %96
  %99 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %97, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %100 unwind label %160

100:                                              ; preds = %98
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #8
  %101 = call i32 @_ZSt4setwi(i32 noundef 12)
  store i32 %101, ptr %17, align 4
  %102 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %103 unwind label %162

103:                                              ; preds = %100
  %104 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %105 unwind label %162

105:                                              ; preds = %103
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #8
  %106 = call i32 @_ZSt4setwi(i32 noundef 8)
  store i32 %106, ptr %18, align 4
  %107 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull align 4 dereferenceable(4) %18)
          to label %108 unwind label %164

108:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  %109 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %109, ptr %19, align 4
  %110 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %111 unwind label %166

111:                                              ; preds = %108
  %112 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %113 unwind label %166

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %115 unwind label %166

115:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #8
  %116 = call i32 @_ZSt4setwi(i32 noundef 12)
  store i32 %116, ptr %20, align 4
  %117 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %114, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %118 unwind label %168

118:                                              ; preds = %115
  %119 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %117, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %120 unwind label %168

120:                                              ; preds = %118
  %121 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %119, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %122 unwind label %168

122:                                              ; preds = %120
  %123 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %121, ptr noundef nonnull align 1 dereferenceable(2) @.str.14)
          to label %124 unwind label %168

124:                                              ; preds = %122
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %123, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %126 unwind label %168

126:                                              ; preds = %124
  %127 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 1 dereferenceable(2) @.str.12)
          to label %128 unwind label %168

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #8
  %129 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %129, ptr %21, align 4
  %130 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %127, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %131 unwind label %170

131:                                              ; preds = %128
  %132 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %133 unwind label %170

133:                                              ; preds = %131
  %134 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %132, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %135 unwind label %170

135:                                              ; preds = %133
  %136 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %134, ptr noundef nonnull align 1 dereferenceable(3) @.str.13)
          to label %137 unwind label %170

137:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  store i32 %58, ptr %59, align 8, !tbaa !35
  %138 = load i64, ptr %41, align 8, !tbaa !32
  %139 = trunc i64 %138 to i32
  store i32 %139, ptr %62, align 4, !tbaa !37
  %140 = load i32, ptr getelementptr inbounds (i8, ptr @_ZN3chw10gConfigCmdE, i64 28), align 4, !tbaa !38
  %.not36 = icmp eq i32 %140, 0
  %141 = load i64, ptr %2, align 8
  %142 = zext i32 %140 to i64
  %.not37 = icmp ult i64 %141, %142
  %or.cond = select i1 %.not36, i1 true, i1 %.not37
  br i1 %or.cond, label %184, label %143

143:                                              ; preds = %137
  %144 = load ptr, ptr %0, align 8, !tbaa !43
  %145 = getelementptr inbounds i8, ptr %144, i64 24
  %146 = load ptr, ptr %145, align 8
  invoke void %146(ptr noundef nonnull align 8 dereferenceable(240) %0)
          to label %147 unwind label %182

147:                                              ; preds = %143
  %148 = invoke i32 @usleep(i32 noundef 100000)
          to label %149 unwind label %182

149:                                              ; preds = %147
  call void @exit(i32 noundef 1) #9
  unreachable

150:                                              ; preds = %77, %54
  %151 = landingpad { ptr, i32 }
          cleanup
  br label %181

152:                                              ; preds = %78
  %153 = landingpad { ptr, i32 }
          cleanup
  br label %180

154:                                              ; preds = %80
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %179

156:                                              ; preds = %88, %86, %83
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %178

158:                                              ; preds = %90
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %177

160:                                              ; preds = %98, %96, %93
  %161 = landingpad { ptr, i32 }
          cleanup
  br label %176

162:                                              ; preds = %103, %100
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %175

164:                                              ; preds = %105
  %165 = landingpad { ptr, i32 }
          cleanup
  br label %174

166:                                              ; preds = %113, %111, %108
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %173

168:                                              ; preds = %126, %124, %122, %120, %118, %115
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %172

170:                                              ; preds = %135, %133, %131, %128
  %171 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  br label %172

172:                                              ; preds = %170, %168
  %.pn = phi { ptr, i32 } [ %171, %170 ], [ %169, %168 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  br label %173

173:                                              ; preds = %172, %166
  %.pn.pn = phi { ptr, i32 } [ %.pn, %172 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  br label %174

174:                                              ; preds = %173, %164
  %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %173 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #8
  br label %175

175:                                              ; preds = %174, %162
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %174 ], [ %163, %162 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  br label %176

176:                                              ; preds = %175, %160
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %175 ], [ %161, %160 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #8
  br label %177

177:                                              ; preds = %176, %158
  %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn, %176 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %15) #8
  br label %178

178:                                              ; preds = %177, %156
  %.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn, %177 ], [ %157, %156 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %14) #8
  br label %179

179:                                              ; preds = %178, %154
  %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %178 ], [ %155, %154 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %13) #8
  br label %180

180:                                              ; preds = %179, %152
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn, %179 ], [ %153, %152 ]
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #8
  br label %181

181:                                              ; preds = %180, %150
  %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn, %180 ], [ %151, %150 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #8
  br label %185

182:                                              ; preds = %147, %143
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %185

184:                                              ; preds = %137
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  ret void

185:                                              ; preds = %182, %181
  %.pn38 = phi { ptr, i32 } [ %183, %182 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn, %181 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  br label %186

186:                                              ; preds = %185, %75
  %.pn38.pn = phi { ptr, i32 } [ %.pn38, %185 ], [ %76, %75 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %187

187:                                              ; preds = %186, %73
  %.pn38.pn.pn = phi { ptr, i32 } [ %.pn38.pn, %186 ], [ %74, %73 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %188

188:                                              ; preds = %187, %71
  %.pn38.pn.pn.pn = phi { ptr, i32 } [ %.pn38.pn.pn, %187 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn38.pn.pn.pn
}

declare noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) local_unnamed_addr #0

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

attributes #0 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #3 = { 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 #4 = { 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 #5 = { inlinehint 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 #6 = { inlinehint 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 #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"double", !7, i64 0}
!11 = !{!12, !6, i64 208}
!12 = !{!"_ZTSN3chw13RawPressModelE", !13, i64 0, !22, i64 40, !24, i64 56, !26, i64 72, !27, i64 80, !27, i64 128, !6, i64 176, !6, i64 184, !6, i64 192, !31, i64 200, !31, i64 204, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232}
!13 = !{!"_ZTSN3chw9workmodelE", !14, i64 8, !19, i64 24}
!14 = !{!"_ZTSSt23enable_shared_from_thisIN3chw9workmodelEE", !15, i64 0}
!15 = !{!"_ZTSSt8weak_ptrIN3chw9workmodelEE", !16, i64 0}
!16 = !{!"_ZTSSt10__weak_ptrIN3chw9workmodelELN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0, !18, i64 8}
!17 = !{!"any pointer", !7, i64 0}
!18 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0}
!19 = !{!"_ZTSSt10shared_ptrIN3chw9EventLoopEE", !20, i64 0}
!20 = !{!"_ZTSSt12__shared_ptrIN3chw9EventLoopELN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0, !21, i64 8}
!21 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0}
!22 = !{!"_ZTSSt10shared_ptrIN3chw14RawPressClientEE", !23, i64 0}
!23 = !{!"_ZTSSt12__shared_ptrIN3chw14RawPressClientELN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0, !21, i64 8}
!24 = !{!"_ZTSSt10shared_ptrIN3chw5TimerEE", !25, i64 0}
!25 = !{!"_ZTSSt12__shared_ptrIN3chw5TimerELN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0, !21, i64 8}
!26 = !{!"bool", !7, i64 0}
!27 = !{!"_ZTSN3chw6TickerE", !6, i64 0, !6, i64 8, !6, i64 16, !28, i64 24}
!28 = !{!"_ZTSN3chw17LogContextCaptureE", !29, i64 0, !17, i64 16}
!29 = !{!"_ZTSSt10shared_ptrIN3chw10LogContextEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrIN3chw10LogContextELN9__gnu_cxx12_Lock_policyE2EE", !17, i64 0, !21, i64 8}
!31 = !{!"int", !7, i64 0}
!32 = !{!12, !6, i64 216}
!33 = !{!12, !6, i64 224}
!34 = !{!12, !6, i64 232}
!35 = !{!12, !31, i64 200}
!36 = !{!31, !31, i64 0}
!37 = !{!12, !31, i64 204}
!38 = !{!39, !31, i64 28}
!39 = !{!"_ZTSN3chw9ConfigCmdE", !7, i64 0, !17, i64 8, !40, i64 16, !31, i64 20, !41, i64 24, !31, i64 28, !10, i64 32, !17, i64 40, !31, i64 48, !31, i64 52, !42, i64 56, !41, i64 60, !17, i64 64, !7, i64 72, !17, i64 80, !17, i64 88, !17, i64 96}
!40 = !{!"_ZTSN3chw7SockNum8SockTypeE", !7, i64 0}
!41 = !{!"short", !7, i64 0}
!42 = !{!"_ZTSN3chw9WorkModelE", !7, i64 0}
!43 = !{!44, !44, i64 0}
!44 = !{!"vtable pointer", !8, i64 0}


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