; LLVM IR from wichue/nethello :: src/core/press/PressModel.ll (ZN3chw10PressModel14onManagerModelEv)

; 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.9", ptr }
%"class.std::shared_ptr.9" = type { %"class.std::__shared_ptr.10" }
%"class.std::__shared_ptr.10" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.std::_Setw" = type { i32 }
%"struct.std::_Setprecision" = type { i32 }
%"class.chw::PressModel" = type <{ %"class.chw::workmodel", %"class.std::shared_ptr.0", %"class.std::shared_ptr.3", %"class.std::shared_ptr.6", i8, [7 x i8], %"class.chw::Ticker", %"class.chw::Ticker", %"class.std::__cxx11::basic_string", i64, i64, i64, i32, i32, i64, i64, i64, i64, i8, [7 x i8] }>
%"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.std::shared_ptr.6" = type { %"class.std::__shared_ptr.7" }
%"class.std::__shared_ptr.7" = 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.5 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN3chw10PressModel14onManagerModelEv = external hidden unnamed_addr constant [15 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = 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_accessIN3chw6ServerELN9__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: noreturn nounwind
declare void @exit(i32 noundef) #5

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

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

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)) #6

; 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) #7

; 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) #7

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

; 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 @_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 @_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 @_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 @_ZN3chw10PressModel14onManagerModelEv(ptr noundef nonnull align 8 dereferenceable(289) %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 %"class.chw::LogContextCapture", align 8
  %12 = alloca %"struct.std::_Setw", align 4
  %13 = alloca %"struct.std::_Setw", align 4
  %14 = alloca %"struct.std::_Setprecision", align 4
  %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::_Setw", align 4
  %22 = alloca %"struct.std::_Setprecision", align 4
  %23 = alloca %"struct.std::_Setprecision", align 4
  %24 = alloca %"class.chw::LogContextCapture", align 8
  %25 = alloca %"struct.std::_Setw", align 4
  %26 = alloca %"struct.std::_Setw", align 4
  %27 = alloca %"struct.std::_Setprecision", align 4
  store ptr %0, ptr %2, align 8, !tbaa !5
  %28 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %3) #8
  %29 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 7
  %30 = call noundef i64 @_ZNK3chw6Ticker11elapsedTimeEv(ptr noundef nonnull align 8 dereferenceable(48) %29)
  store i64 %30, 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
  %31 = load i64, ptr %3, align 8, !tbaa !9
  %32 = icmp ugt i64 %31, 0
  br i1 %32, label %33, label %36

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

36:                                               ; preds = %33, %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 %37 unwind label %49

37:                                               ; preds = %36
  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
  %38 = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !13
  %39 = sext i8 %38 to i32
  %40 = icmp eq i32 %39, 99
  br i1 %40, label %41, label %57

41:                                               ; preds = %37
  %42 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 2
  %43 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6ClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %42) #8
  %44 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %43)
          to label %45 unwind label %53

45:                                               ; preds = %41
  %46 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %44) #8
  %47 = invoke noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %46)
          to label %48 unwind label %53

48:                                               ; preds = %45
  store i64 %47, ptr %5, align 8, !tbaa !9
  br label %71

49:                                               ; preds = %36
  %50 = landingpad { ptr, i32 }
          cleanup
  %51 = extractvalue { ptr, i32 } %50, 0
  store ptr %51, ptr %9, align 8
  %52 = extractvalue { ptr, i32 } %50, 1
  store i32 %52, 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 %331

53:                                               ; preds = %326, %322, %71, %57, %45, %41
  %54 = landingpad { ptr, i32 }
          cleanup
  %55 = extractvalue { ptr, i32 } %54, 0
  store ptr %55, ptr %9, align 8
  %56 = extractvalue { ptr, i32 } %54, 1
  store i32 %56, ptr %10, align 4
  br label %330

57:                                               ; preds = %37
  %58 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 17
  store i64 0, ptr %58, align 8, !tbaa !19
  %59 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 1
  %60 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6ServerELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %59) #8
  %61 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 14
  %62 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 15
  %63 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 16
  %64 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 17
  %65 = load ptr, ptr %60, align 8, !tbaa !42
  %66 = getelementptr inbounds ptr, ptr %65, i64 3
  %67 = load ptr, ptr %66, align 8
  invoke void %67(ptr noundef nonnull align 8 dereferenceable(120) %60, ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %68 unwind label %53

68:                                               ; preds = %57
  %69 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 17
  %70 = load i64, ptr %69, align 8, !tbaa !19
  store i64 %70, ptr %5, align 8, !tbaa !9
  br label %71

71:                                               ; preds = %68, %48
  %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 %53

73:                                               ; preds = %71
  %74 = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !13
  %75 = sext i8 %74 to i32
  %76 = icmp eq i32 %75, 115
  br i1 %76, label %77, label %253

77:                                               ; preds = %73
  %78 = load double, ptr %6, align 8, !tbaa !11
  %79 = fcmp ogt double %78, 0.000000e+00
  br i1 %79, label %80, label %253

80:                                               ; preds = %77
  %81 = load i32, ptr getelementptr inbounds (%"struct.chw::ConfigCmd", ptr @_ZN3chw10gConfigCmdE, i32 0, i32 2), align 8, !tbaa !44
  %82 = icmp eq i32 %81, 0
  br i1 %82, label %83, label %140

83:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #8
  %84 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %85 unwind label %116

85:                                               ; preds = %83
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %11, ptr noundef nonnull align 8 dereferenceable(144) %84, i32 noundef 2, ptr noundef @.str.5, ptr noundef @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 233, ptr noundef @.str.1)
          to label %86 unwind label %116

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

88:                                               ; preds = %86
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %89 = invoke i32 @_ZSt4setwi(i32 noundef 16)
          to label %90 unwind label %124

90:                                               ; preds = %88
  %91 = getelementptr inbounds %"struct.std::_Setw", ptr %12, i32 0, i32 0
  store i32 %89, ptr %91, align 4
  %92 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %93 unwind label %124

93:                                               ; preds = %90
  %94 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %92, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %95 unwind label %124

95:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %96 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %97 unwind label %128

97:                                               ; preds = %95
  %98 = getelementptr inbounds %"struct.std::_Setw", ptr %13, i32 0, i32 0
  store i32 %96, ptr %98, align 4
  %99 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull align 4 dereferenceable(4) %13)
          to label %100 unwind label %128

100:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %101 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %102 unwind label %132

102:                                              ; preds = %100
  %103 = getelementptr inbounds %"struct.std::_Setprecision", ptr %14, i32 0, i32 0
  store i32 %101, ptr %103, align 4
  %104 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %99, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %105 unwind label %132

105:                                              ; preds = %102
  %106 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %104, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %107 unwind label %132

107:                                              ; preds = %105
  %108 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %106, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %109 unwind label %132

109:                                              ; preds = %107
  %110 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %111 unwind label %132

111:                                              ; preds = %109
  %112 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %110, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %113 unwind label %132

113:                                              ; preds = %111
  %114 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %112, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %115 unwind label %132

115:                                              ; preds = %113
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  br label %252

116:                                              ; preds = %85, %83
  %117 = landingpad { ptr, i32 }
          cleanup
  %118 = extractvalue { ptr, i32 } %117, 0
  store ptr %118, ptr %9, align 8
  %119 = extractvalue { ptr, i32 } %117, 1
  store i32 %119, ptr %10, align 4
  br label %139

120:                                              ; preds = %86
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %9, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %10, align 4
  br label %138

124:                                              ; preds = %93, %90, %88
  %125 = landingpad { ptr, i32 }
          cleanup
  %126 = extractvalue { ptr, i32 } %125, 0
  store ptr %126, ptr %9, align 8
  %127 = extractvalue { ptr, i32 } %125, 1
  store i32 %127, ptr %10, align 4
  br label %137

128:                                              ; preds = %97, %95
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %9, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %10, align 4
  br label %136

132:                                              ; preds = %113, %111, %109, %107, %105, %102, %100
  %133 = landingpad { ptr, i32 }
          cleanup
  %134 = extractvalue { ptr, i32 } %133, 0
  store ptr %134, ptr %9, align 8
  %135 = extractvalue { ptr, i32 } %133, 1
  store i32 %135, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %136

136:                                              ; preds = %132, %128
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %137

137:                                              ; preds = %136, %124
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %138

138:                                              ; preds = %137, %120
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %11) #8
  br label %139

139:                                              ; preds = %138, %116
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #8
  br label %330

140:                                              ; preds = %80
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %141 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 15
  %142 = load i64, ptr %141, align 8, !tbaa !45
  %143 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 14
  %144 = load i64, ptr %143, align 8, !tbaa !46
  %145 = sub i64 %142, %144
  %146 = trunc i64 %145 to i32
  store i32 %146, ptr %15, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %147 = load i32, ptr %15, align 4, !tbaa !47
  %148 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 12
  %149 = load i32, ptr %148, align 8, !tbaa !48
  %150 = sub i32 %147, %149
  store i32 %150, ptr %16, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %151 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 15
  %152 = load i64, ptr %151, align 8, !tbaa !45
  %153 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 13
  %154 = load i32, ptr %153, align 4, !tbaa !49
  %155 = zext i32 %154 to i64
  %156 = sub i64 %152, %155
  %157 = trunc i64 %156 to i32
  store i32 %157, ptr %17, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %158 = load i32, ptr %16, align 4, !tbaa !47
  %159 = uitofp i32 %158 to double
  %160 = load i32, ptr %17, align 4, !tbaa !47
  %161 = uitofp i32 %160 to double
  %162 = fdiv double %159, %161
  %163 = fmul double %162, 1.000000e+02
  store double %163, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %19) #8
  %164 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %165 unwind label %223

165:                                              ; preds = %140
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(144) %164, i32 noundef 2, ptr noundef @.str.5, ptr noundef @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 243, ptr noundef @.str.1)
          to label %166 unwind label %223

166:                                              ; preds = %165
  %167 = 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 %168 unwind label %227

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

170:                                              ; preds = %168
  %171 = getelementptr inbounds %"struct.std::_Setw", ptr %20, 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) %20)
          to label %173 unwind label %231

173:                                              ; preds = %170
  %174 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %172, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %175 unwind label %231

175:                                              ; preds = %173
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %176 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %177 unwind label %235

177:                                              ; preds = %175
  %178 = getelementptr inbounds %"struct.std::_Setw", ptr %21, i32 0, i32 0
  store i32 %176, ptr %178, align 4
  %179 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %174, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %180 unwind label %235

180:                                              ; preds = %177
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %181 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %182 unwind label %239

182:                                              ; preds = %180
  %183 = getelementptr inbounds %"struct.std::_Setprecision", ptr %22, i32 0, i32 0
  store i32 %181, ptr %183, align 4
  %184 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %179, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %185 unwind label %239

185:                                              ; preds = %182
  %186 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %184, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %187 unwind label %239

187:                                              ; preds = %185
  %188 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %186, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %189 unwind label %239

189:                                              ; preds = %187
  %190 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %188, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %191 unwind label %239

191:                                              ; preds = %189
  %192 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %190, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %193 unwind label %239

193:                                              ; preds = %191
  %194 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %192, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %195 unwind label %239

195:                                              ; preds = %193
  %196 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA5_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %194, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %197 unwind label %239

197:                                              ; preds = %195
  %198 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %196, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %199 unwind label %239

199:                                              ; preds = %197
  %200 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %198, ptr noundef nonnull align 1 dereferenceable(2) @.str.19)
          to label %201 unwind label %239

201:                                              ; preds = %199
  %202 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %200, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %203 unwind label %239

203:                                              ; preds = %201
  %204 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %202, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %205 unwind label %239

205:                                              ; preds = %203
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %206 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %207 unwind label %243

207:                                              ; preds = %205
  %208 = getelementptr inbounds %"struct.std::_Setprecision", ptr %23, i32 0, i32 0
  store i32 %206, ptr %208, align 4
  %209 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %204, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %210 unwind label %243

210:                                              ; preds = %207
  %211 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %212 unwind label %243

212:                                              ; preds = %210
  %213 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %211, ptr noundef nonnull align 8 dereferenceable(8) %18)
          to label %214 unwind label %243

214:                                              ; preds = %212
  %215 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %213, ptr noundef nonnull align 1 dereferenceable(3) @.str.17)
          to label %216 unwind label %243

216:                                              ; preds = %214
  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
  %217 = load i32, ptr %15, align 4, !tbaa !47
  %218 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 12
  store i32 %217, ptr %218, align 8, !tbaa !48
  %219 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 15
  %220 = load i64, ptr %219, align 8, !tbaa !45
  %221 = trunc i64 %220 to i32
  %222 = getelementptr inbounds %"class.chw::PressModel", ptr %28, i32 0, i32 13
  store i32 %221, ptr %222, align 4, !tbaa !49
  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 %252

223:                                              ; preds = %165, %140
  %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 %251

227:                                              ; preds = %166
  %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 %250

231:                                              ; preds = %173, %170, %168
  %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 %249

235:                                              ; preds = %177, %175
  %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 %248

239:                                              ; preds = %203, %201, %199, %197, %195, %193, %191, %189, %187, %185, %182, %180
  %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 %247

243:                                              ; preds = %214, %212, %210, %207, %205
  %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
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %247

247:                                              ; preds = %243, %239
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %248

248:                                              ; preds = %247, %235
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %249

249:                                              ; preds = %248, %231
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %250

250:                                              ; preds = %249, %227
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %19) #8
  br label %251

251:                                              ; preds = %250, %223
  call void @llvm.lifetime.end.p0(i64 24, ptr %19) #8
  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 %330

252:                                              ; preds = %216, %115
  br label %253

253:                                              ; preds = %252, %77, %73
  %254 = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !13
  %255 = sext i8 %254 to i32
  %256 = icmp eq i32 %255, 99
  br i1 %256, label %257, label %314

257:                                              ; preds = %253
  call void @llvm.lifetime.start.p0(i64 24, ptr %24) #8
  %258 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %259 unwind label %290

259:                                              ; preds = %257
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull align 8 dereferenceable(144) %258, i32 noundef 2, ptr noundef @.str.5, ptr noundef @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 258, ptr noundef @.str.1)
          to label %260 unwind label %290

260:                                              ; preds = %259
  %261 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %24, ptr noundef nonnull @_ZSt4leftRSt8ios_base)
          to label %262 unwind label %294

262:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %263 = invoke i32 @_ZSt4setwi(i32 noundef 16)
          to label %264 unwind label %298

264:                                              ; preds = %262
  %265 = getelementptr inbounds %"struct.std::_Setw", ptr %25, i32 0, i32 0
  store i32 %263, ptr %265, align 4
  %266 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %261, ptr noundef nonnull align 4 dereferenceable(4) %25)
          to label %267 unwind label %298

267:                                              ; preds = %264
  %268 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %266, ptr noundef nonnull align 8 dereferenceable(8) %4)
          to label %269 unwind label %298

269:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %270 = invoke i32 @_ZSt4setwi(i32 noundef 8)
          to label %271 unwind label %302

271:                                              ; preds = %269
  %272 = getelementptr inbounds %"struct.std::_Setw", ptr %26, i32 0, i32 0
  store i32 %270, ptr %272, align 4
  %273 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %268, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %274 unwind label %302

274:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %275 = invoke i32 @_ZSt12setprecisioni(i32 noundef 2)
          to label %276 unwind label %306

276:                                              ; preds = %274
  %277 = getelementptr inbounds %"struct.std::_Setprecision", ptr %27, i32 0, i32 0
  store i32 %275, ptr %277, align 4
  %278 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %273, ptr noundef nonnull align 4 dereferenceable(4) %27)
          to label %279 unwind label %306

279:                                              ; preds = %276
  %280 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %278, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %281 unwind label %306

281:                                              ; preds = %279
  %282 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %280, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %283 unwind label %306

283:                                              ; preds = %281
  %284 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %282, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %285 unwind label %306

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %284, ptr noundef nonnull align 8 dereferenceable(32) %7)
          to label %287 unwind label %306

287:                                              ; preds = %285
  %288 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %286, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %289 unwind label %306

289:                                              ; preds = %287
  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 @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #8
  br label %314

290:                                              ; preds = %259, %257
  %291 = landingpad { ptr, i32 }
          cleanup
  %292 = extractvalue { ptr, i32 } %291, 0
  store ptr %292, ptr %9, align 8
  %293 = extractvalue { ptr, i32 } %291, 1
  store i32 %293, ptr %10, align 4
  br label %313

294:                                              ; preds = %260
  %295 = landingpad { ptr, i32 }
          cleanup
  %296 = extractvalue { ptr, i32 } %295, 0
  store ptr %296, ptr %9, align 8
  %297 = extractvalue { ptr, i32 } %295, 1
  store i32 %297, ptr %10, align 4
  br label %312

298:                                              ; preds = %267, %264, %262
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %9, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %10, align 4
  br label %311

302:                                              ; preds = %271, %269
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %9, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %10, align 4
  br label %310

306:                                              ; preds = %287, %285, %283, %281, %279, %276, %274
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %9, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %310

310:                                              ; preds = %306, %302
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %311

311:                                              ; preds = %310, %298
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %312

312:                                              ; preds = %311, %294
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %24) #8
  br label %313

313:                                              ; preds = %312, %290
  call void @llvm.lifetime.end.p0(i64 24, ptr %24) #8
  br label %330

314:                                              ; preds = %289, %253
  %315 = load i32, ptr getelementptr inbounds (%"struct.chw::ConfigCmd", ptr @_ZN3chw10gConfigCmdE, i32 0, i32 5), align 4, !tbaa !50
  %316 = icmp ugt i32 %315, 0
  br i1 %316, label %317, label %329

317:                                              ; preds = %314
  %318 = load i64, ptr %4, align 8, !tbaa !9
  %319 = load i32, ptr getelementptr inbounds (%"struct.chw::ConfigCmd", ptr @_ZN3chw10gConfigCmdE, i32 0, i32 5), align 4, !tbaa !50
  %320 = zext i32 %319 to i64
  %321 = icmp uge i64 %318, %320
  br i1 %321, label %322, label %329

322:                                              ; preds = %317
  %323 = load ptr, ptr %28, align 8, !tbaa !42
  %324 = getelementptr inbounds ptr, ptr %323, i64 3
  %325 = load ptr, ptr %324, align 8
  invoke void %325(ptr noundef nonnull align 8 dereferenceable(289) %28)
          to label %326 unwind label %53

326:                                              ; preds = %322
  %327 = invoke i32 @usleep(i32 noundef 100000)
          to label %328 unwind label %53

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

329:                                              ; preds = %317, %314
  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

330:                                              ; preds = %313, %251, %139, %53
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  br label %331

331:                                              ; preds = %330, %49
  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 %332

332:                                              ; preds = %331
  %333 = load ptr, ptr %9, align 8
  %334 = load i32, ptr %10, align 4
  %335 = insertvalue { ptr, i32 } poison, ptr %333, 0
  %336 = insertvalue { ptr, i32 } %335, i32 %334, 1
  resume { ptr, i32 } %336
}

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 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) #0

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

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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { 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 #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, !7, i64 0}
!14 = !{!"_ZTSN3chw9ConfigCmdE", !7, i64 0, !6, i64 8, !15, i64 16, !16, i64 20, !17, i64 24, !16, i64 28, !12, i64 32, !6, i64 40, !16, i64 48, !16, i64 52, !18, i64 56, !17, i64 60, !6, i64 64, !7, i64 72, !6, i64 80, !6, i64 88, !6, i64 96}
!15 = !{!"_ZTSN3chw7SockNum8SockTypeE", !7, i64 0}
!16 = !{!"int", !7, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!"_ZTSN3chw9WorkModelE", !7, i64 0}
!19 = !{!20, !10, i64 280}
!20 = !{!"_ZTSN3chw10PressModelE", !21, i64 0, !29, i64 40, !31, i64 56, !33, i64 72, !35, i64 88, !36, i64 96, !36, i64 144, !40, i64 192, !10, i64 224, !10, i64 232, !10, i64 240, !16, i64 248, !16, i64 252, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !35, i64 288}
!21 = !{!"_ZTSN3chw9workmodelE", !22, i64 8, !26, i64 24}
!22 = !{!"_ZTSSt23enable_shared_from_thisIN3chw9workmodelEE", !23, i64 0}
!23 = !{!"_ZTSSt8weak_ptrIN3chw9workmodelEE", !24, i64 0}
!24 = !{!"_ZTSSt10__weak_ptrIN3chw9workmodelELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !25, i64 8}
!25 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!26 = !{!"_ZTSSt10shared_ptrIN3chw9EventLoopEE", !27, i64 0}
!27 = !{!"_ZTSSt12__shared_ptrIN3chw9EventLoopELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!28 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!29 = !{!"_ZTSSt10shared_ptrIN3chw6ServerEE", !30, i64 0}
!30 = !{!"_ZTSSt12__shared_ptrIN3chw6ServerELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!31 = !{!"_ZTSSt10shared_ptrIN3chw6ClientEE", !32, i64 0}
!32 = !{!"_ZTSSt12__shared_ptrIN3chw6ClientELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!33 = !{!"_ZTSSt10shared_ptrIN3chw5TimerEE", !34, i64 0}
!34 = !{!"_ZTSSt12__shared_ptrIN3chw5TimerELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!35 = !{!"bool", !7, i64 0}
!36 = !{!"_ZTSN3chw6TickerE", !10, i64 0, !10, i64 8, !10, i64 16, !37, i64 24}
!37 = !{!"_ZTSN3chw17LogContextCaptureE", !38, i64 0, !6, i64 16}
!38 = !{!"_ZTSSt10shared_ptrIN3chw10LogContextEE", !39, i64 0}
!39 = !{!"_ZTSSt12__shared_ptrIN3chw10LogContextELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!40 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !41, i64 0, !10, i64 8, !7, i64 16}
!41 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!42 = !{!43, !43, i64 0}
!43 = !{!"vtable pointer", !8, i64 0}
!44 = !{!14, !15, i64 16}
!45 = !{!20, !10, i64 264}
!46 = !{!20, !10, i64 256}
!47 = !{!16, !16, i64 0}
!48 = !{!20, !16, i64 248}
!49 = !{!20, !16, i64 252}
!50 = !{!14, !16, i64 28}


; 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.9", ptr }
%"class.std::shared_ptr.9" = type { %"class.std::__shared_ptr.10" }
%"class.std::__shared_ptr.10" = 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.5 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [3 x i8], align 1
@__FUNCTION__._ZN3chw10PressModel14onManagerModelEv = external hidden unnamed_addr constant [15 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.19 = 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_accessIN3chw6ServerELN9__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: noreturn nounwind
declare void @exit(i32 noundef) local_unnamed_addr #5

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

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

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)) #6

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

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

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

; 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 @_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 @_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 @_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 @_ZN3chw10PressModel14onManagerModelEv(ptr noundef nonnull align 8 dereferenceable(289) %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 %"class.chw::LogContextCapture", align 8
  %7 = alloca %"struct.std::_Setw", align 4
  %8 = alloca %"struct.std::_Setw", align 4
  %9 = alloca %"struct.std::_Setprecision", align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca double, align 8
  %13 = alloca %"class.chw::LogContextCapture", align 8
  %14 = alloca %"struct.std::_Setw", align 4
  %15 = alloca %"struct.std::_Setw", align 4
  %16 = alloca %"struct.std::_Setprecision", align 4
  %17 = alloca %"struct.std::_Setprecision", align 4
  %18 = alloca %"class.chw::LogContextCapture", align 8
  %19 = alloca %"struct.std::_Setw", align 4
  %20 = alloca %"struct.std::_Setw", align 4
  %21 = alloca %"struct.std::_Setprecision", align 4
  %22 = getelementptr inbounds i8, ptr %0, i64 144
  %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 %35

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
  %26 = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !11
  %27 = icmp eq i8 %26, 99
  br i1 %27, label %28, label %39

28:                                               ; preds = %25
  %29 = getelementptr inbounds i8, ptr %0, i64 56
  %30 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6ClientELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  %31 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK3chw6Client7getSockEv(ptr noundef nonnull align 8 dereferenceable(120) %30)
          to label %32 unwind label %37

32:                                               ; preds = %28
  %33 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6SocketELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %31) #8
  %34 = invoke noundef i64 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072) %33)
          to label %51 unwind label %37

35:                                               ; preds = %1
  %36 = 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 %240

37:                                               ; preds = %235, %231, %51, %39, %32, %28
  %38 = landingpad { ptr, i32 }
          cleanup
  br label %239

39:                                               ; preds = %25
  %40 = getelementptr inbounds i8, ptr %0, i64 280
  store i64 0, ptr %40, align 8, !tbaa !18
  %41 = getelementptr inbounds i8, ptr %0, i64 40
  %42 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN3chw6ServerELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %41) #8
  %43 = getelementptr inbounds i8, ptr %0, i64 256
  %44 = getelementptr inbounds i8, ptr %0, i64 264
  %45 = getelementptr inbounds i8, ptr %0, i64 272
  %46 = load ptr, ptr %42, align 8, !tbaa !41
  %47 = getelementptr inbounds i8, ptr %46, i64 24
  %48 = load ptr, ptr %47, align 8
  invoke void %48(ptr noundef nonnull align 8 dereferenceable(120) %42, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45, ptr noundef nonnull align 8 dereferenceable(8) %40)
          to label %49 unwind label %37

49:                                               ; preds = %39
  %50 = load i64, ptr %40, align 8, !tbaa !18
  br label %51

51:                                               ; preds = %32, %49
  %.0 = phi i64 [ %50, %49 ], [ %34, %32 ]
  invoke void @_ZN3chw11speed_humanEmRdRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(i64 noundef %.0, ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %52 unwind label %37

52:                                               ; preds = %51
  %53 = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !11
  %54 = icmp eq i8 %53, 115
  %55 = load double, ptr %3, align 8
  %56 = fcmp ogt double %55, 0.000000e+00
  %or.cond = select i1 %54, i1 %56, i1 false
  br i1 %or.cond, label %57, label %183

57:                                               ; preds = %52
  %58 = load i32, ptr getelementptr inbounds (i8, ptr @_ZN3chw10gConfigCmdE, i64 16), align 8, !tbaa !43
  %59 = icmp eq i32 %58, 0
  br i1 %59, label %60, label %101

60:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #8
  %61 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %62 unwind label %87

62:                                               ; preds = %60
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(144) %61, i32 noundef 2, ptr noundef nonnull @.str.5, ptr noundef nonnull @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 233, ptr noundef nonnull @.str.1)
          to label %63 unwind label %87

63:                                               ; preds = %62
  %64 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull @_ZSt4leftRSt8ios_base)
          to label %65 unwind label %89

65:                                               ; preds = %63
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #8
  %66 = call i32 @_ZSt4setwi(i32 noundef 16)
  store i32 %66, ptr %7, align 4
  %67 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %64, ptr noundef nonnull align 4 dereferenceable(4) %7)
          to label %68 unwind label %91

68:                                               ; preds = %65
  %69 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %67, ptr noundef nonnull align 8 dereferenceable(8) %2)
          to label %70 unwind label %91

70:                                               ; preds = %68
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #8
  %71 = call i32 @_ZSt4setwi(i32 noundef 8)
  store i32 %71, ptr %8, align 4
  %72 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 4 dereferenceable(4) %8)
          to label %73 unwind label %93

73:                                               ; preds = %70
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #8
  %74 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %74, ptr %9, align 4
  %75 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %72, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %76 unwind label %95

76:                                               ; preds = %73
  %77 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %75, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %78 unwind label %95

78:                                               ; preds = %76
  %79 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %77, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %80 unwind label %95

80:                                               ; preds = %78
  %81 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %79, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %82 unwind label %95

82:                                               ; preds = %80
  %83 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %81, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %84 unwind label %95

84:                                               ; preds = %82
  %85 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %83, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %86 unwind label %95

86:                                               ; preds = %84
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  br label %thread-pre-split

87:                                               ; preds = %62, %60
  %88 = landingpad { ptr, i32 }
          cleanup
  br label %100

89:                                               ; preds = %63
  %90 = landingpad { ptr, i32 }
          cleanup
  br label %99

91:                                               ; preds = %68, %65
  %92 = landingpad { ptr, i32 }
          cleanup
  br label %98

93:                                               ; preds = %70
  %94 = landingpad { ptr, i32 }
          cleanup
  br label %97

95:                                               ; preds = %84, %82, %80, %78, %76, %73
  %96 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #8
  br label %97

97:                                               ; preds = %95, %93
  %.pn31 = phi { ptr, i32 } [ %96, %95 ], [ %94, %93 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #8
  br label %98

98:                                               ; preds = %97, %91
  %.pn31.pn = phi { ptr, i32 } [ %.pn31, %97 ], [ %92, %91 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #8
  br label %99

99:                                               ; preds = %98, %89
  %.pn31.pn.pn = phi { ptr, i32 } [ %.pn31.pn, %98 ], [ %90, %89 ]
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #8
  br label %100

100:                                              ; preds = %99, %87
  %.pn31.pn.pn.pn = phi { ptr, i32 } [ %.pn31.pn.pn, %99 ], [ %88, %87 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #8
  br label %239

101:                                              ; preds = %57
  %102 = getelementptr inbounds i8, ptr %0, i64 264
  %103 = load i64, ptr %102, align 8, !tbaa !44
  %104 = getelementptr inbounds i8, ptr %0, i64 256
  %105 = load i64, ptr %104, align 8, !tbaa !45
  %106 = sub i64 %103, %105
  %107 = trunc i64 %106 to i32
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #8
  %108 = getelementptr inbounds i8, ptr %0, i64 248
  %109 = load i32, ptr %108, align 8, !tbaa !46
  %110 = sub i32 %107, %109
  store i32 %110, ptr %10, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %11) #8
  %111 = getelementptr inbounds i8, ptr %0, i64 252
  %112 = load i32, ptr %111, align 4, !tbaa !48
  %113 = trunc i64 %103 to i32
  %114 = sub i32 %113, %112
  store i32 %114, ptr %11, align 4, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %115 = uitofp i32 %110 to double
  %116 = uitofp i32 %114 to double
  %117 = fdiv double %115, %116
  %118 = fmul double %117, 1.000000e+02
  store double %118, ptr %12, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %13) #8
  %119 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %120 unwind label %166

120:                                              ; preds = %101
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(144) %119, i32 noundef 2, ptr noundef nonnull @.str.5, ptr noundef nonnull @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 243, ptr noundef nonnull @.str.1)
          to label %121 unwind label %166

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull @_ZSt4leftRSt8ios_base)
          to label %123 unwind label %168

123:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %14) #8
  %124 = call i32 @_ZSt4setwi(i32 noundef 16)
  store i32 %124, ptr %14, align 4
  %125 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %122, ptr noundef nonnull align 4 dereferenceable(4) %14)
          to label %126 unwind label %170

126:                                              ; preds = %123
  %127 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %125, ptr noundef nonnull align 8 dereferenceable(8) %2)
          to label %128 unwind label %170

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

131:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #8
  %132 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %132, ptr %16, align 4
  %133 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %130, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %134 unwind label %174

134:                                              ; preds = %131
  %135 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %133, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %136 unwind label %174

136:                                              ; preds = %134
  %137 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %135, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %138 unwind label %174

138:                                              ; preds = %136
  %139 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %137, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %140 unwind label %174

140:                                              ; preds = %138
  %141 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %139, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %142 unwind label %174

142:                                              ; preds = %140
  %143 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %141, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %144 unwind label %174

144:                                              ; preds = %142
  %145 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA5_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %143, ptr noundef nonnull align 1 dereferenceable(5) @.str.18)
          to label %146 unwind label %174

146:                                              ; preds = %144
  %147 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %148 unwind label %174

148:                                              ; preds = %146
  %149 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %147, ptr noundef nonnull align 1 dereferenceable(2) @.str.19)
          to label %150 unwind label %174

150:                                              ; preds = %148
  %151 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRjEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %149, ptr noundef nonnull align 4 dereferenceable(4) %11)
          to label %152 unwind label %174

152:                                              ; preds = %150
  %153 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %151, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %154 unwind label %174

154:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %17) #8
  %155 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %155, ptr %17, align 4
  %156 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %153, ptr noundef nonnull align 4 dereferenceable(4) %17)
          to label %157 unwind label %176

157:                                              ; preds = %154
  %158 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %156, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %159 unwind label %176

159:                                              ; preds = %157
  %160 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %158, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %161 unwind label %176

161:                                              ; preds = %159
  %162 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA3_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %160, ptr noundef nonnull align 1 dereferenceable(3) @.str.17)
          to label %163 unwind label %176

163:                                              ; preds = %161
  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 @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %13) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #8
  store i32 %107, ptr %108, align 8, !tbaa !46
  %164 = load i64, ptr %102, align 8, !tbaa !44
  %165 = trunc i64 %164 to i32
  store i32 %165, ptr %111, align 4, !tbaa !48
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  br label %thread-pre-split

166:                                              ; preds = %120, %101
  %167 = landingpad { ptr, i32 }
          cleanup
  br label %182

168:                                              ; preds = %121
  %169 = landingpad { ptr, i32 }
          cleanup
  br label %181

170:                                              ; preds = %126, %123
  %171 = landingpad { ptr, i32 }
          cleanup
  br label %180

172:                                              ; preds = %128
  %173 = landingpad { ptr, i32 }
          cleanup
  br label %179

174:                                              ; preds = %152, %150, %148, %146, %144, %142, %140, %138, %136, %134, %131
  %175 = landingpad { ptr, i32 }
          cleanup
  br label %178

176:                                              ; preds = %161, %159, %157, %154
  %177 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %17) #8
  br label %178

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

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

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

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

182:                                              ; preds = %181, %166
  %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn, %181 ], [ %167, %166 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #8
  br label %239

thread-pre-split:                                 ; preds = %163, %86
  %.pr = load i8, ptr @_ZN3chw10gConfigCmdE, align 8, !tbaa !11
  br label %183

183:                                              ; preds = %thread-pre-split, %52
  %184 = phi i8 [ %.pr, %thread-pre-split ], [ %53, %52 ]
  %185 = icmp eq i8 %184, 99
  br i1 %185, label %186, label %227

186:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #8
  %187 = invoke noundef nonnull align 8 dereferenceable(144) ptr @_ZN3chw9getLoggerEv()
          to label %188 unwind label %213

188:                                              ; preds = %186
  invoke void @_ZN3chw17LogContextCaptureC1ERNS_6LoggerENS_8LogLevelEPKcS5_iS5_(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(144) %187, i32 noundef 2, ptr noundef nonnull @.str.5, ptr noundef nonnull @__FUNCTION__._ZN3chw10PressModel14onManagerModelEv, i32 noundef 258, ptr noundef nonnull @.str.1)
          to label %189 unwind label %213

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

191:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #8
  %192 = call i32 @_ZSt4setwi(i32 noundef 16)
  store i32 %192, ptr %19, align 4
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %190, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %194 unwind label %217

194:                                              ; preds = %191
  %195 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRmEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %193, ptr noundef nonnull align 8 dereferenceable(8) %2)
          to label %196 unwind label %217

196:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %20) #8
  %197 = call i32 @_ZSt4setwi(i32 noundef 8)
  store i32 %197, ptr %20, align 4
  %198 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt5_SetwEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %195, ptr noundef nonnull align 4 dereferenceable(4) %20)
          to label %199 unwind label %219

199:                                              ; preds = %196
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %21) #8
  %200 = call i32 @_ZSt12setprecisioni(i32 noundef 2)
  store i32 %200, ptr %21, align 4
  %201 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsISt13_SetprecisionEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %198, ptr noundef nonnull align 4 dereferenceable(4) %21)
          to label %202 unwind label %221

202:                                              ; preds = %199
  %203 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRFRSt8ios_baseS3_EEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %201, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %204 unwind label %221

204:                                              ; preds = %202
  %205 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRdEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %203, ptr noundef nonnull align 8 dereferenceable(8) %3)
          to label %206 unwind label %221

206:                                              ; preds = %204
  %207 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %205, ptr noundef nonnull align 1 dereferenceable(2) @.str.10)
          to label %208 unwind label %221

208:                                              ; preds = %206
  %209 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %207, ptr noundef nonnull align 8 dereferenceable(32) %4)
          to label %210 unwind label %221

210:                                              ; preds = %208
  %211 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN3chw17LogContextCapturelsIRA2_KcEERS0_OT_(ptr noundef nonnull align 8 dereferenceable(24) %209, ptr noundef nonnull align 1 dereferenceable(2) @.str.11)
          to label %212 unwind label %221

212:                                              ; preds = %210
  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 @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  br label %227

213:                                              ; preds = %188, %186
  %214 = landingpad { ptr, i32 }
          cleanup
  br label %226

215:                                              ; preds = %189
  %216 = landingpad { ptr, i32 }
          cleanup
  br label %225

217:                                              ; preds = %194, %191
  %218 = landingpad { ptr, i32 }
          cleanup
  br label %224

219:                                              ; preds = %196
  %220 = landingpad { ptr, i32 }
          cleanup
  br label %223

221:                                              ; preds = %210, %208, %206, %204, %202, %199
  %222 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %21) #8
  br label %223

223:                                              ; preds = %221, %219
  %.pn36 = phi { ptr, i32 } [ %222, %221 ], [ %220, %219 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %20) #8
  br label %224

224:                                              ; preds = %223, %217
  %.pn36.pn = phi { ptr, i32 } [ %.pn36, %223 ], [ %218, %217 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #8
  br label %225

225:                                              ; preds = %224, %215
  %.pn36.pn.pn = phi { ptr, i32 } [ %.pn36.pn, %224 ], [ %216, %215 ]
  call void @_ZN3chw17LogContextCaptureD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %18) #8
  br label %226

226:                                              ; preds = %225, %213
  %.pn36.pn.pn.pn = phi { ptr, i32 } [ %.pn36.pn.pn, %225 ], [ %214, %213 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #8
  br label %239

227:                                              ; preds = %212, %183
  %228 = load i32, ptr getelementptr inbounds (i8, ptr @_ZN3chw10gConfigCmdE, i64 28), align 4, !tbaa !49
  %.not41 = icmp eq i32 %228, 0
  %229 = load i64, ptr %2, align 8
  %230 = zext i32 %228 to i64
  %.not42 = icmp ult i64 %229, %230
  %or.cond47 = select i1 %.not41, i1 true, i1 %.not42
  br i1 %or.cond47, label %238, label %231

231:                                              ; preds = %227
  %232 = load ptr, ptr %0, align 8, !tbaa !41
  %233 = getelementptr inbounds i8, ptr %232, i64 24
  %234 = load ptr, ptr %233, align 8
  invoke void %234(ptr noundef nonnull align 8 dereferenceable(289) %0)
          to label %235 unwind label %37

235:                                              ; preds = %231
  %236 = invoke i32 @usleep(i32 noundef 100000)
          to label %237 unwind label %37

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

238:                                              ; preds = %227
  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

239:                                              ; preds = %226, %182, %100, %37
  %.pn43 = phi { ptr, i32 } [ %38, %37 ], [ %.pn36.pn.pn.pn, %226 ], [ %.pn31.pn.pn.pn, %100 ], [ %.pn.pn.pn.pn.pn, %182 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #8
  br label %240

240:                                              ; preds = %239, %35
  %.pn43.pn = phi { ptr, i32 } [ %.pn43, %239 ], [ %36, %35 ]
  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 } %.pn43.pn
}

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 @_ZN3chw6Socket12getSendSpeedEv(ptr noundef nonnull align 8 dereferenceable(1072)) local_unnamed_addr #0

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

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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 #7 = { 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 #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, !7, i64 0}
!12 = !{!"_ZTSN3chw9ConfigCmdE", !7, i64 0, !13, i64 8, !14, i64 16, !15, i64 20, !16, i64 24, !15, i64 28, !10, i64 32, !13, i64 40, !15, i64 48, !15, i64 52, !17, i64 56, !16, i64 60, !13, i64 64, !7, i64 72, !13, i64 80, !13, i64 88, !13, i64 96}
!13 = !{!"any pointer", !7, i64 0}
!14 = !{!"_ZTSN3chw7SockNum8SockTypeE", !7, i64 0}
!15 = !{!"int", !7, i64 0}
!16 = !{!"short", !7, i64 0}
!17 = !{!"_ZTSN3chw9WorkModelE", !7, i64 0}
!18 = !{!19, !6, i64 280}
!19 = !{!"_ZTSN3chw10PressModelE", !20, i64 0, !28, i64 40, !30, i64 56, !32, i64 72, !34, i64 88, !35, i64 96, !35, i64 144, !39, i64 192, !6, i64 224, !6, i64 232, !6, i64 240, !15, i64 248, !15, i64 252, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !34, i64 288}
!20 = !{!"_ZTSN3chw9workmodelE", !21, i64 8, !25, i64 24}
!21 = !{!"_ZTSSt23enable_shared_from_thisIN3chw9workmodelEE", !22, i64 0}
!22 = !{!"_ZTSSt8weak_ptrIN3chw9workmodelEE", !23, i64 0}
!23 = !{!"_ZTSSt10__weak_ptrIN3chw9workmodelELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !24, i64 8}
!24 = !{!"_ZTSSt12__weak_countILN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0}
!25 = !{!"_ZTSSt10shared_ptrIN3chw9EventLoopEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN3chw9EventLoopELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0}
!28 = !{!"_ZTSSt10shared_ptrIN3chw6ServerEE", !29, i64 0}
!29 = !{!"_ZTSSt12__shared_ptrIN3chw6ServerELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !27, i64 8}
!30 = !{!"_ZTSSt10shared_ptrIN3chw6ClientEE", !31, i64 0}
!31 = !{!"_ZTSSt12__shared_ptrIN3chw6ClientELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !27, i64 8}
!32 = !{!"_ZTSSt10shared_ptrIN3chw5TimerEE", !33, i64 0}
!33 = !{!"_ZTSSt12__shared_ptrIN3chw5TimerELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !27, i64 8}
!34 = !{!"bool", !7, i64 0}
!35 = !{!"_ZTSN3chw6TickerE", !6, i64 0, !6, i64 8, !6, i64 16, !36, i64 24}
!36 = !{!"_ZTSN3chw17LogContextCaptureE", !37, i64 0, !13, i64 16}
!37 = !{!"_ZTSSt10shared_ptrIN3chw10LogContextEE", !38, i64 0}
!38 = !{!"_ZTSSt12__shared_ptrIN3chw10LogContextELN9__gnu_cxx12_Lock_policyE2EE", !13, i64 0, !27, i64 8}
!39 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !40, i64 0, !6, i64 8, !7, i64 16}
!40 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !13, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"vtable pointer", !8, i64 0}
!43 = !{!12, !14, i64 16}
!44 = !{!19, !6, i64 264}
!45 = !{!19, !6, i64 256}
!46 = !{!19, !15, i64 248}
!47 = !{!15, !15, i64 0}
!48 = !{!19, !15, i64 252}
!49 = !{!12, !15, i64 28}


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