; LLVM IR from dynexcoin/Dynex :: src/PaymentGate (WalletService)

; 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.Crypto::SecretKey" = type { [32 x i8] }
%"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.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::error_code" = type { i32, ptr }
%"class.System::EventLock" = type { ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }
%"class.PaymentService::WalletService" = type { ptr, ptr, ptr, ptr, ptr, ptr, i8, %"class.Logging::LoggerRef", ptr, %"class.System::Event", %"class.System::ContextGroup", %"class.std::map.237" }
%"class.System::Event" = type { ptr, i8, ptr, ptr }
%"class.System::ContextGroup" = type { ptr, %"struct.System::NativeContextGroup" }
%"struct.System::NativeContextGroup" = type { ptr, ptr, ptr, ptr }
%"class.std::map.237" = type { %"class.std::_Rb_tree.238" }
%"class.std::_Rb_tree.238" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, unsigned long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, unsigned long>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, unsigned long>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, unsigned long>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }

@_ZN7DynexCNL15NULL_SECRET_KEYE = external hidden global %"struct.Crypto::SecretKey", align 1
@_ZTISt12system_error = external constant ptr
@_ZTISt9exception = external constant ptr
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.102 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [40 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #2

declare ptr @__cxa_begin_catch(ptr)

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 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

declare void @__cxa_end_catch()

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

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

declare void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8, ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: nounwind
declare void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(32)) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(40)) #7

declare noundef zeroext i1 @_ZN6Common7fromHexERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvmRm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #8 align 2

declare void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef) #8

; Function Attrs: nounwind
declare void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(8)) #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(33)) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(32)) #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(26)) #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoeqERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7Logging9LoggerRefC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN14PaymentService12_GLOBAL__N_19parseHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7Logging9LoggerRefE(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4

; Function Attrs: mustprogress uwtable
define dso_local { i32, ptr } @_ZN14PaymentService13WalletService19getTransactionProofERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RS6_(ptr noundef nonnull align 8 dereferenceable(224) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::error_code", align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.System::EventLock", align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca %"struct.Crypto::Hash", align 1
  %16 = alloca %"class.Logging::LoggerRef", align 8
  %17 = alloca %"struct.Crypto::SecretKey", align 1
  %18 = alloca %"struct.Crypto::SecretKey", align 1
  %19 = alloca %"struct.Crypto::Hash", align 1
  %20 = alloca i64, align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca i32, align 4
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  %24 = alloca %"class.Logging::LoggerMessage", align 8
  %25 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %26 = alloca %"class.Logging::LoggerMessage", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.Logging::LoggerMessage", align 8
  %29 = alloca ptr, align 8
  %30 = alloca %"class.Logging::LoggerMessage", align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.Logging::LoggerMessage", align 8
  %34 = alloca ptr, align 8
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  %35 = load ptr, ptr %7, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %36 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 9
  invoke void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %37 unwind label %71

37:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #10
  %38 = load ptr, ptr %8, align 8, !tbaa !5
  %39 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZN7Logging9LoggerRefC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(40) %39)
          to label %40 unwind label %75

40:                                               ; preds = %37
  invoke void @_ZN14PaymentService12_GLOBAL__N_19parseHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7Logging9LoggerRefE(ptr dead_on_unwind writable sret(%"struct.Crypto::Hash") align 1 %15, ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef %16)
          to label %41 unwind label %79

41:                                               ; preds = %40
  call void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #10
  %42 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 2
  %43 = load ptr, ptr %42, align 8, !tbaa !9
  %44 = load ptr, ptr %43, align 8, !tbaa !27
  %45 = getelementptr inbounds ptr, ptr %44, i64 37
  %46 = load ptr, ptr %45, align 8
  invoke void %46(ptr dead_on_unwind writable sret(%"struct.Crypto::SecretKey") align 1 %17, ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 1 dereferenceable(32) %15)
          to label %47 unwind label %83

47:                                               ; preds = %41
  %48 = load ptr, ptr %10, align 8, !tbaa !5
  %49 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %48) #10
  br i1 %49, label %131, label %50

50:                                               ; preds = %47
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %51 = load ptr, ptr %10, align 8, !tbaa !5
  %52 = invoke noundef zeroext i1 @_ZN6Common7fromHexERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvmRm(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef %19, i64 noundef 32, ptr noundef nonnull align 8 dereferenceable(8) %20)
          to label %53 unwind label %87

53:                                               ; preds = %50
  br i1 %52, label %54, label %57

54:                                               ; preds = %53
  %55 = load i64, ptr %20, align 8, !tbaa !29
  %56 = icmp ne i64 %55, 32
  br i1 %56, label %57, label %100

57:                                               ; preds = %54, %53
  call void @llvm.lifetime.start.p0(i64 432, ptr %21) #10
  %58 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %58, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %59 unwind label %91

59:                                               ; preds = %57
  %60 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(32) @.str.102)
          to label %61 unwind label %95

61:                                               ; preds = %59
  %62 = load ptr, ptr %10, align 8, !tbaa !5
  %63 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %60, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %64 unwind label %95

64:                                               ; preds = %61
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %21) #10
  %65 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 33)
          to label %66 unwind label %87

66:                                               ; preds = %64
  %67 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %68 = extractvalue { i32, ptr } %65, 0
  store i32 %68, ptr %67, align 8
  %69 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %70 = extractvalue { i32, ptr } %65, 1
  store ptr %70, ptr %69, align 8
  store i32 1, ptr %22, align 4
  br label %127

71:                                               ; preds = %5
  %72 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %73 = extractvalue { ptr, i32 } %72, 0
  store ptr %73, ptr %13, align 8
  %74 = extractvalue { ptr, i32 } %72, 1
  store i32 %74, ptr %14, align 4
  br label %234

75:                                               ; preds = %37
  %76 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %77 = extractvalue { ptr, i32 } %76, 0
  store ptr %77, ptr %13, align 8
  %78 = extractvalue { ptr, i32 } %76, 1
  store i32 %78, ptr %14, align 4
  br label %233

79:                                               ; preds = %40
  %80 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %81 = extractvalue { ptr, i32 } %80, 0
  store ptr %81, ptr %13, align 8
  %82 = extractvalue { ptr, i32 } %80, 1
  store i32 %82, ptr %14, align 4
  call void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #10
  br label %233

83:                                               ; preds = %138, %131, %41
  %84 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %13, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %14, align 4
  br label %232

87:                                               ; preds = %110, %103, %100, %64, %50
  %88 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %13, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %14, align 4
  br label %130

91:                                               ; preds = %57
  %92 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %93 = extractvalue { ptr, i32 } %92, 0
  store ptr %93, ptr %13, align 8
  %94 = extractvalue { ptr, i32 } %92, 1
  store i32 %94, ptr %14, align 4
  br label %99

95:                                               ; preds = %61, %59
  %96 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %97 = extractvalue { ptr, i32 } %96, 0
  store ptr %97, ptr %13, align 8
  %98 = extractvalue { ptr, i32 } %96, 1
  store i32 %98, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #10
  br label %99

99:                                               ; preds = %95, %91
  call void @llvm.lifetime.end.p0(i64 432, ptr %21) #10
  br label %130

100:                                              ; preds = %54
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %18, ptr align 1 %19, i64 32, i1 false), !tbaa.struct !30
  %101 = invoke noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(32) @_ZN7DynexCNL15NULL_SECRET_KEYE)
          to label %102 unwind label %87

102:                                              ; preds = %100
  br i1 %101, label %103, label %126

103:                                              ; preds = %102
  %104 = invoke noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(32) %18)
          to label %105 unwind label %87

105:                                              ; preds = %103
  br i1 %104, label %106, label %126

106:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 432, ptr %23) #10
  %107 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %107, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %108 unwind label %117

108:                                              ; preds = %106
  %109 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 1 dereferenceable(37) @.str.103)
          to label %110 unwind label %121

110:                                              ; preds = %108
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %23) #10
  %111 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 33)
          to label %112 unwind label %87

112:                                              ; preds = %110
  %113 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %114 = extractvalue { i32, ptr } %111, 0
  store i32 %114, ptr %113, align 8
  %115 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %116 = extractvalue { i32, ptr } %111, 1
  store ptr %116, ptr %115, align 8
  store i32 1, ptr %22, align 4
  br label %127

117:                                              ; preds = %106
  %118 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %119 = extractvalue { ptr, i32 } %118, 0
  store ptr %119, ptr %13, align 8
  %120 = extractvalue { ptr, i32 } %118, 1
  store i32 %120, ptr %14, align 4
  br label %125

121:                                              ; preds = %108
  %122 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %13, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #10
  br label %125

125:                                              ; preds = %121, %117
  call void @llvm.lifetime.end.p0(i64 432, ptr %23) #10
  br label %130

126:                                              ; preds = %105, %102
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %17, ptr align 1 %18, i64 32, i1 false), !tbaa.struct !30
  store i32 0, ptr %22, align 4
  br label %127

127:                                              ; preds = %126, %112, %66
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  %128 = load i32, ptr %22, align 4
  switch i32 %128, label %227 [
    i32 0, label %129
  ]

129:                                              ; preds = %127
  br label %155

130:                                              ; preds = %125, %99, %87
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #10
  br label %232

131:                                              ; preds = %47
  %132 = invoke noundef zeroext i1 @_ZN6CryptoeqERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(32) @_ZN7DynexCNL15NULL_SECRET_KEYE)
          to label %133 unwind label %83

133:                                              ; preds = %131
  br i1 %132, label %134, label %154

134:                                              ; preds = %133
  call void @llvm.lifetime.start.p0(i64 432, ptr %24) #10
  %135 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %24, ptr noundef nonnull align 8 dereferenceable(40) %135, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %136 unwind label %145

136:                                              ; preds = %134
  %137 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %24, ptr noundef nonnull align 1 dereferenceable(33) @.str.104)
          to label %138 unwind label %149

138:                                              ; preds = %136
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #10
  %139 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 22)
          to label %140 unwind label %83

140:                                              ; preds = %138
  %141 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %142 = extractvalue { i32, ptr } %139, 0
  store i32 %142, ptr %141, align 8
  %143 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %144 = extractvalue { i32, ptr } %139, 1
  store ptr %144, ptr %143, align 8
  store i32 1, ptr %22, align 4
  br label %227

145:                                              ; preds = %134
  %146 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %147 = extractvalue { ptr, i32 } %146, 0
  store ptr %147, ptr %13, align 8
  %148 = extractvalue { ptr, i32 } %146, 1
  store i32 %148, ptr %14, align 4
  br label %153

149:                                              ; preds = %136
  %150 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %151 = extractvalue { ptr, i32 } %150, 0
  store ptr %151, ptr %13, align 8
  %152 = extractvalue { ptr, i32 } %150, 1
  store i32 %152, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %24) #10
  br label %153

153:                                              ; preds = %149, %145
  call void @llvm.lifetime.end.p0(i64 432, ptr %24) #10
  br label %232

154:                                              ; preds = %133
  br label %155

155:                                              ; preds = %154, %129
  call void @llvm.lifetime.start.p0(i64 64, ptr %25) #10
  %156 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 1
  %157 = load ptr, ptr %156, align 8, !tbaa !32
  %158 = load ptr, ptr %9, align 8, !tbaa !5
  %159 = invoke noundef zeroext i1 @_ZNK7DynexCN8Currency25parseAccountAddressStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_20AccountPublicAddressE(ptr noundef nonnull align 8 dereferenceable(984) %157, ptr noundef nonnull align 8 dereferenceable(32) %158, ptr noundef nonnull align 1 dereferenceable(64) %25)
          to label %160 unwind label %175

160:                                              ; preds = %155
  br i1 %159, label %188, label %161

161:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 432, ptr %26) #10
  %162 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %162, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %163 unwind label %179

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %26, ptr noundef nonnull align 1 dereferenceable(26) @.str.105)
          to label %165 unwind label %183

165:                                              ; preds = %163
  %166 = load ptr, ptr %9, align 8, !tbaa !5
  %167 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %164, ptr noundef nonnull align 8 dereferenceable(32) %166)
          to label %168 unwind label %183

168:                                              ; preds = %165
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #10
  %169 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 7)
          to label %170 unwind label %175

170:                                              ; preds = %168
  %171 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %172 = extractvalue { i32, ptr } %169, 0
  store i32 %172, ptr %171, align 8
  %173 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %174 = extractvalue { i32, ptr } %169, 1
  store ptr %174, ptr %173, align 8
  store i32 1, ptr %22, align 4
  br label %226

175:                                              ; preds = %168, %155
  %176 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %13, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %14, align 4
  br label %231

179:                                              ; preds = %161
  %180 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %181 = extractvalue { ptr, i32 } %180, 0
  store ptr %181, ptr %13, align 8
  %182 = extractvalue { ptr, i32 } %180, 1
  store i32 %182, ptr %14, align 4
  br label %187

183:                                              ; preds = %165, %163
  %184 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %185 = extractvalue { ptr, i32 } %184, 0
  store ptr %185, ptr %13, align 8
  %186 = extractvalue { ptr, i32 } %184, 1
  store i32 %186, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %26) #10
  br label %187

187:                                              ; preds = %183, %179
  call void @llvm.lifetime.end.p0(i64 432, ptr %26) #10
  br label %231

188:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 32, ptr %27) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  %189 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 2
  %190 = load ptr, ptr %189, align 8, !tbaa !9
  %191 = load ptr, ptr %190, align 8, !tbaa !27
  %192 = getelementptr inbounds ptr, ptr %191, i64 38
  %193 = load ptr, ptr %192, align 8
  %194 = invoke noundef zeroext i1 %193(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull align 1 dereferenceable(32) %15, ptr noundef nonnull align 1 dereferenceable(64) %25, ptr noundef nonnull align 1 dereferenceable(32) %17, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %195 unwind label %200

195:                                              ; preds = %188
  br i1 %194, label %196, label %204

196:                                              ; preds = %195
  %197 = load ptr, ptr %11, align 8, !tbaa !5
  %198 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %197, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %199 unwind label %200

199:                                              ; preds = %196
  br label %224

200:                                              ; preds = %208, %196, %188
  %201 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %202 = extractvalue { ptr, i32 } %201, 0
  store ptr %202, ptr %13, align 8
  %203 = extractvalue { ptr, i32 } %201, 1
  store i32 %203, ptr %14, align 4
  br label %230

204:                                              ; preds = %195
  call void @llvm.lifetime.start.p0(i64 432, ptr %28) #10
  %205 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %28, ptr noundef nonnull align 8 dereferenceable(40) %205, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %206 unwind label %215

206:                                              ; preds = %204
  %207 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %28, ptr noundef nonnull align 1 dereferenceable(32) @.str.106)
          to label %208 unwind label %219

208:                                              ; preds = %206
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %28) #10
  %209 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
          to label %210 unwind label %200

210:                                              ; preds = %208
  %211 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %212 = extractvalue { i32, ptr } %209, 0
  store i32 %212, ptr %211, align 8
  %213 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %214 = extractvalue { i32, ptr } %209, 1
  store ptr %214, ptr %213, align 8
  store i32 1, ptr %22, align 4
  br label %225

215:                                              ; preds = %204
  %216 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %217 = extractvalue { ptr, i32 } %216, 0
  store ptr %217, ptr %13, align 8
  %218 = extractvalue { ptr, i32 } %216, 1
  store i32 %218, ptr %14, align 4
  br label %223

219:                                              ; preds = %206
  %220 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  %221 = extractvalue { ptr, i32 } %220, 0
  store ptr %221, ptr %13, align 8
  %222 = extractvalue { ptr, i32 } %220, 1
  store i32 %222, ptr %14, align 4
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %28) #10
  br label %223

223:                                              ; preds = %219, %215
  call void @llvm.lifetime.end.p0(i64 432, ptr %28) #10
  br label %230

224:                                              ; preds = %199
  store i32 0, ptr %22, align 4
  br label %225

225:                                              ; preds = %224, %210
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #10
  br label %226

226:                                              ; preds = %225, %170
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #10
  br label %227

227:                                              ; preds = %226, %140, %127
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  %228 = load i32, ptr %22, align 4
  switch i32 %228, label %324 [
    i32 0, label %229
    i32 1, label %314
  ]

229:                                              ; preds = %227
  br label %313

230:                                              ; preds = %223, %200
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr %27) #10
  br label %231

231:                                              ; preds = %230, %187, %175
  call void @llvm.lifetime.end.p0(i64 64, ptr %25) #10
  br label %232

232:                                              ; preds = %231, %153, %130, %83
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #10
  br label %233

233:                                              ; preds = %232, %79, %75
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %12) #10
  br label %234

234:                                              ; preds = %233, %71
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  br label %235

235:                                              ; preds = %234
  %236 = load i32, ptr %14, align 4
  %237 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt12system_error) #10
  %238 = icmp eq i32 %236, %237
  br i1 %238, label %239, label %255

239:                                              ; preds = %235
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  %240 = load ptr, ptr %13, align 8
  %241 = call ptr @__cxa_begin_catch(ptr %240) #10
  store ptr %241, ptr %32, align 8
  call void @llvm.lifetime.start.p0(i64 432, ptr %33) #10
  %242 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %33, ptr noundef nonnull align 8 dereferenceable(40) %242, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %243 unwind label %298

243:                                              ; preds = %239
  %244 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %33, ptr noundef nonnull align 1 dereferenceable(40) @.str.107)
          to label %245 unwind label %302

245:                                              ; preds = %243
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  %246 = load ptr, ptr %32, align 8, !tbaa !5
  %247 = load ptr, ptr %246, align 8, !tbaa !27
  %248 = getelementptr inbounds ptr, ptr %247, i64 2
  %249 = load ptr, ptr %248, align 8
  %250 = call noundef ptr %249(ptr noundef nonnull align 8 dereferenceable(16) %246) #10
  store ptr %250, ptr %34, align 8, !tbaa !5
  %251 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %244, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %252 unwind label %306

252:                                              ; preds = %245
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #10
  %253 = load ptr, ptr %32, align 8, !tbaa !5
  %254 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32) %253) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %6, ptr align 8 %254, i64 16, i1 false), !tbaa.struct !33
  store i32 1, ptr %22, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %314

255:                                              ; preds = %235
  %256 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTISt9exception) #10
  %257 = icmp eq i32 %236, %256
  br i1 %257, label %258, label %316

258:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %259 = load ptr, ptr %13, align 8
  %260 = call ptr @__cxa_begin_catch(ptr %259) #10
  store ptr %260, ptr %29, align 8
  call void @llvm.lifetime.start.p0(i64 432, ptr %30) #10
  %261 = getelementptr inbounds %"class.PaymentService::WalletService", ptr %35, i32 0, i32 7
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8 %30, ptr noundef nonnull align 8 dereferenceable(40) %261, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %262 unwind label %278

262:                                              ; preds = %258
  %263 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %30, ptr noundef nonnull align 1 dereferenceable(40) @.str.107)
          to label %264 unwind label %282

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %265 = load ptr, ptr %29, align 8, !tbaa !5
  %266 = load ptr, ptr %265, align 8, !tbaa !27
  %267 = getelementptr inbounds ptr, ptr %266, i64 2
  %268 = load ptr, ptr %267, align 8
  %269 = call noundef ptr %268(ptr noundef nonnull align 8 dereferenceable(8) %265) #10
  store ptr %269, ptr %31, align 8, !tbaa !5
  %270 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %263, ptr noundef nonnull align 8 dereferenceable(8) %31)
          to label %271 unwind label %286

271:                                              ; preds = %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %30) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr %30) #10
  %272 = invoke { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
          to label %273 unwind label %292

273:                                              ; preds = %271
  %274 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 0
  %275 = extractvalue { i32, ptr } %272, 0
  store i32 %275, ptr %274, align 8
  %276 = getelementptr inbounds { i32, ptr }, ptr %6, i32 0, i32 1
  %277 = extractvalue { i32, ptr } %272, 1
  store ptr %277, ptr %276, align 8
  store i32 1, ptr %22, align 4
  call void @__cxa_end_catch()
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %314

278:                                              ; preds = %258
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %13, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %14, align 4
  br label %291

282:                                              ; preds = %262
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %13, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %14, align 4
  br label %290

286:                                              ; preds = %264
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %13, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %290

290:                                              ; preds = %286, %282
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %30) #10
  br label %291

291:                                              ; preds = %290, %278
  call void @llvm.lifetime.end.p0(i64 432, ptr %30) #10
  br label %296

292:                                              ; preds = %271
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %13, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %14, align 4
  br label %296

296:                                              ; preds = %292, %291
  invoke void @__cxa_end_catch()
          to label %297 unwind label %321

297:                                              ; preds = %296
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  br label %316

298:                                              ; preds = %239
  %299 = landingpad { ptr, i32 }
          cleanup
  %300 = extractvalue { ptr, i32 } %299, 0
  store ptr %300, ptr %13, align 8
  %301 = extractvalue { ptr, i32 } %299, 1
  store i32 %301, ptr %14, align 4
  br label %311

302:                                              ; preds = %243
  %303 = landingpad { ptr, i32 }
          cleanup
  %304 = extractvalue { ptr, i32 } %303, 0
  store ptr %304, ptr %13, align 8
  %305 = extractvalue { ptr, i32 } %303, 1
  store i32 %305, ptr %14, align 4
  br label %310

306:                                              ; preds = %245
  %307 = landingpad { ptr, i32 }
          cleanup
  %308 = extractvalue { ptr, i32 } %307, 0
  store ptr %308, ptr %13, align 8
  %309 = extractvalue { ptr, i32 } %307, 1
  store i32 %309, ptr %14, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  br label %310

310:                                              ; preds = %306, %302
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %33) #10
  br label %311

311:                                              ; preds = %310, %298
  call void @llvm.lifetime.end.p0(i64 432, ptr %33) #10
  invoke void @__cxa_end_catch()
          to label %312 unwind label %321

312:                                              ; preds = %311
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %316

313:                                              ; preds = %229
  call void @_ZNSt10error_codeC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #10
  br label %314

314:                                              ; preds = %313, %273, %252, %227
  %315 = load { i32, ptr }, ptr %6, align 8
  ret { i32, ptr } %315

316:                                              ; preds = %312, %297, %255
  %317 = load ptr, ptr %13, align 8
  %318 = load i32, ptr %14, align 4
  %319 = insertvalue { ptr, i32 } poison, ptr %317, 0
  %320 = insertvalue { ptr, i32 } %319, i32 %318, 1
  resume { ptr, i32 } %320

321:                                              ; preds = %311, %296
  %322 = landingpad { ptr, i32 }
          catch ptr null
  %323 = extractvalue { ptr, i32 } %322, 0
  call void @__clang_call_terminate(ptr %323) #11
  unreachable

324:                                              ; preds = %227
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(37)) #7

declare noundef zeroext i1 @_ZNK7DynexCN8Currency25parseAccountAddressStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_20AccountPublicAddressE(ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(64)) #5

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "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 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 = { 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 #9 = { nounwind memory(none) }
attributes #10 = { nounwind }
attributes #11 = { 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, !6, i64 16}
!10 = !{!"_ZTSN14PaymentService13WalletServiceE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !11, i64 48, !12, i64 56, !6, i64 96, !16, i64 104, !17, i64 136, !19, i64 176}
!11 = !{!"bool", !7, i64 0}
!12 = !{!"_ZTSN7Logging9LoggerRefE", !6, i64 0, !13, i64 8}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !14, i64 0, !15, i64 8, !7, i64 16}
!14 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!15 = !{!"long", !7, i64 0}
!16 = !{!"_ZTSN6System5EventE", !6, i64 0, !11, i64 8, !6, i64 16, !6, i64 24}
!17 = !{!"_ZTSN6System12ContextGroupE", !6, i64 0, !18, i64 8}
!18 = !{!"_ZTSN6System18NativeContextGroupE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!19 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmSt4lessIS5_ESaISt4pairIKS5_mEEE", !20, i64 0}
!20 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_mESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !21, i64 0}
!21 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_mESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !22, i64 0, !24, i64 8}
!22 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !23, i64 0}
!23 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!24 = !{!"_ZTSSt15_Rb_tree_header", !25, i64 0, !15, i64 32}
!25 = !{!"_ZTSSt18_Rb_tree_node_base", !26, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!26 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!27 = !{!28, !28, i64 0}
!28 = !{!"vtable pointer", !8, i64 0}
!29 = !{!15, !15, i64 0}
!30 = !{i64 0, i64 32, !31}
!31 = !{!7, !7, i64 0}
!32 = !{!10, !6, i64 8}
!33 = !{i64 0, i64 4, !34, i64 8, i64 8, !5}
!34 = !{!35, !35, i64 0}
!35 = !{!"int", !7, i64 0}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.Crypto::SecretKey" = type { [32 x i8] }
%"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.Logging::LoggerMessage" = type <{ %"class.std::basic_ostream.base", %"class.std::basic_streambuf", ptr, %"class.std::__cxx11::basic_string", i32, [4 x i8], %"class.std::__cxx11::basic_string", %"class.boost::posix_time::ptime", i8, [7 x i8], %"class.std::basic_ios" }>
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%"class.boost::posix_time::ptime" = type { %"class.boost::date_time::base_time" }
%"class.boost::date_time::base_time" = type { %"struct.boost::date_time::counted_time_rep" }
%"struct.boost::date_time::counted_time_rep" = type { %"class.boost::date_time::int_adapter" }
%"class.boost::date_time::int_adapter" = type { i64 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"struct.Crypto::Hash" = type { [32 x i8] }
%"class.std::error_code" = type { i32, ptr }
%"class.System::EventLock" = type { ptr }
%"class.Logging::LoggerRef" = type { ptr, %"class.std::__cxx11::basic_string" }
%"struct.DynexCN::AccountPublicAddress" = type { %"struct.Crypto::PublicKey", %"struct.Crypto::PublicKey" }
%"struct.Crypto::PublicKey" = type { [32 x i8] }

@_ZN7DynexCNL15NULL_SECRET_KEYE = external hidden global %"struct.Crypto::SecretKey", align 1
@_ZTISt12system_error = external constant ptr
@_ZTISt9exception = external constant ptr
@_ZN7Logging13BRIGHT_YELLOWB5cxx11E = external global %"class.std::__cxx11::basic_string", align 8
@.str.102 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [40 x i8], align 1

declare i32 @__gxx_personality_v0(...)

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

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

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

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #2

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 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

declare void @__cxa_end_catch() local_unnamed_addr

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

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

declare void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.Logging::LoggerMessage") align 8, ptr noundef nonnull align 8 dereferenceable(40), i32 noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: nounwind
declare void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161)) unnamed_addr #6

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(40)) local_unnamed_addr #7

declare noundef zeroext i1 @_ZN6Common7fromHexERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvmRm(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #8 align 2

declare void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef) local_unnamed_addr #8

; Function Attrs: nounwind
declare void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #6

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(33)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(26)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoeqERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN7Logging9LoggerRefC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN14PaymentService12_GLOBAL__N_19parseHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7Logging9LoggerRefE(ptr dead_on_unwind noalias writable sret(%"struct.Crypto::Hash") align 1, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
define dso_local { i32, ptr } @_ZN14PaymentService13WalletService19getTransactionProofERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_S8_RS6_(ptr noundef nonnull align 8 dereferenceable(224) %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::error_code", align 8
  %7 = alloca %"class.System::EventLock", align 8
  %8 = alloca %"struct.Crypto::Hash", align 1
  %9 = alloca %"class.Logging::LoggerRef", align 8
  %10 = alloca %"struct.Crypto::SecretKey", align 1
  %11 = alloca %"struct.Crypto::SecretKey", align 1
  %12 = alloca %"struct.Crypto::Hash", align 1
  %13 = alloca i64, align 8
  %14 = alloca %"class.Logging::LoggerMessage", align 8
  %15 = alloca %"class.Logging::LoggerMessage", align 8
  %16 = alloca %"class.Logging::LoggerMessage", align 8
  %17 = alloca %"struct.DynexCN::AccountPublicAddress", align 1
  %18 = alloca %"class.Logging::LoggerMessage", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.Logging::LoggerMessage", align 8
  %21 = alloca %"class.Logging::LoggerMessage", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"class.Logging::LoggerMessage", align 8
  %24 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  %25 = getelementptr inbounds i8, ptr %0, i64 104
  invoke void @_ZN6System9EventLockC1ERNS_5EventE(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %26 unwind label %48

26:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #10
  %27 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZN7Logging9LoggerRefC2ERKS0_(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(40) %27)
          to label %28 unwind label %50

28:                                               ; preds = %26
  invoke void @_ZN14PaymentService12_GLOBAL__N_19parseHashERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN7Logging9LoggerRefE(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::Hash") align 1 %8, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull %9)
          to label %29 unwind label %52

29:                                               ; preds = %28
  call void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #10
  %30 = getelementptr inbounds i8, ptr %0, i64 16
  %31 = load ptr, ptr %30, align 8, !tbaa !5
  %32 = load ptr, ptr %31, align 8, !tbaa !26
  %33 = getelementptr inbounds i8, ptr %32, i64 296
  %34 = load ptr, ptr %33, align 8
  invoke void %34(ptr dead_on_unwind nonnull writable sret(%"struct.Crypto::SecretKey") align 1 %10, ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 1 dereferenceable(32) %8)
          to label %35 unwind label %54

35:                                               ; preds = %29
  %36 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %3) #10
  br i1 %36, label %78, label %37

37:                                               ; preds = %35
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #10
  %38 = invoke noundef zeroext i1 @_ZN6Common7fromHexERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPvmRm(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull %12, i64 noundef 32, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %39 unwind label %56

39:                                               ; preds = %37
  %40 = load i64, ptr %13, align 8
  %41 = icmp eq i64 %40, 32
  %or.cond.not = select i1 %38, i1 %41, i1 false
  br i1 %or.cond.not, label %63, label %42

42:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %14) #10
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %14, ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %43 unwind label %58

43:                                               ; preds = %42
  %44 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %14, ptr noundef nonnull align 1 dereferenceable(32) @.str.102)
          to label %45 unwind label %60

45:                                               ; preds = %43
  %46 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %44, ptr noundef nonnull align 8 dereferenceable(32) %3)
          to label %47 unwind label %60

47:                                               ; preds = %45
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #10
  br label %.critedge

48:                                               ; preds = %5
  %49 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %146

50:                                               ; preds = %26
  %51 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %145

52:                                               ; preds = %28
  %53 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging9LoggerRefD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #10
  br label %145

54:                                               ; preds = %29
  %55 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %144

56:                                               ; preds = %37
  %57 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %77

58:                                               ; preds = %42
  %59 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %62

60:                                               ; preds = %45, %43
  %61 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %14) #10
  br label %62

62:                                               ; preds = %60, %58
  %.pn40 = phi { ptr, i32 } [ %61, %60 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %14) #10
  br label %77

63:                                               ; preds = %39
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %11, ptr noundef nonnull align 1 dereferenceable(32) %12, i64 32, i1 false), !tbaa.struct !28
  %64 = call noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) @_ZN7DynexCNL15NULL_SECRET_KEYE)
  br i1 %64, label %65, label %76

65:                                               ; preds = %63
  %66 = call noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %11)
  br i1 %66, label %67, label %76

67:                                               ; preds = %65
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %15) #10
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %15, ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %68 unwind label %71

68:                                               ; preds = %67
  %69 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %15, ptr noundef nonnull align 1 dereferenceable(37) @.str.103)
          to label %70 unwind label %73

70:                                               ; preds = %68
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #10
  br label %.critedge

71:                                               ; preds = %67
  %72 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %75

73:                                               ; preds = %68
  %74 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %15) #10
  br label %75

75:                                               ; preds = %73, %71
  %.pn = phi { ptr, i32 } [ %74, %73 ], [ %72, %71 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %15) #10
  br label %77

76:                                               ; preds = %65, %63
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) %11, i64 32, i1 false), !tbaa.struct !28
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br label %93

77:                                               ; preds = %75, %62, %56
  %.pn40.pn = phi { ptr, i32 } [ %.pn40, %62 ], [ %.pn, %75 ], [ %57, %56 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br label %144

78:                                               ; preds = %35
  %79 = call noundef zeroext i1 @_ZN6CryptoeqERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 1 dereferenceable(32) @_ZN7DynexCNL15NULL_SECRET_KEYE)
  br i1 %79, label %80, label %93

80:                                               ; preds = %78
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %16) #10
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %16, ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %81 unwind label %88

81:                                               ; preds = %80
  %82 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA33_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %16, ptr noundef nonnull align 1 dereferenceable(33) @.str.104)
          to label %83 unwind label %90

83:                                               ; preds = %81
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %16) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %16) #10
  %84 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 22)
  %85 = extractvalue { i32, ptr } %84, 0
  store i32 %85, ptr %6, align 8
  %86 = getelementptr inbounds i8, ptr %6, i64 8
  %87 = extractvalue { i32, ptr } %84, 1
  store ptr %87, ptr %86, align 8
  br label %.thread

88:                                               ; preds = %80
  %89 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %92

90:                                               ; preds = %81
  %91 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %16) #10
  br label %92

92:                                               ; preds = %90, %88
  %.pn50 = phi { ptr, i32 } [ %91, %90 ], [ %89, %88 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %16) #10
  br label %144

93:                                               ; preds = %76, %78
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %17) #10
  %94 = getelementptr inbounds i8, ptr %0, i64 8
  %95 = load ptr, ptr %94, align 8, !tbaa !30
  %96 = invoke noundef zeroext i1 @_ZNK7DynexCN8Currency25parseAccountAddressStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_20AccountPublicAddressE(ptr noundef nonnull align 8 dereferenceable(984) %95, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(64) %17)
          to label %97 unwind label %107

97:                                               ; preds = %93
  br i1 %96, label %114, label %98

98:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %18) #10
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %18, ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %99 unwind label %109

99:                                               ; preds = %98
  %100 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA26_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %18, ptr noundef nonnull align 1 dereferenceable(26) @.str.105)
          to label %101 unwind label %111

101:                                              ; preds = %99
  %102 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEOT_S9_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %100, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %.thread63 unwind label %111

.thread63:                                        ; preds = %101
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #10
  %103 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 7)
  %104 = extractvalue { i32, ptr } %103, 0
  store i32 %104, ptr %6, align 8
  %105 = getelementptr inbounds i8, ptr %6, i64 8
  %106 = extractvalue { i32, ptr } %103, 1
  store ptr %106, ptr %105, align 8
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br label %198

107:                                              ; preds = %93
  %108 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %143

109:                                              ; preds = %98
  %110 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %113

111:                                              ; preds = %101, %99
  %112 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %18) #10
  br label %113

113:                                              ; preds = %111, %109
  %.pn43 = phi { ptr, i32 } [ %112, %111 ], [ %110, %109 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %18) #10
  br label %143

114:                                              ; preds = %97
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #10
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  %115 = load ptr, ptr %30, align 8, !tbaa !5
  %116 = load ptr, ptr %115, align 8, !tbaa !26
  %117 = getelementptr inbounds i8, ptr %116, i64 304
  %118 = load ptr, ptr %117, align 8
  %119 = invoke noundef zeroext i1 %118(ptr noundef nonnull align 8 dereferenceable(8) %115, ptr noundef nonnull align 1 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(64) %17, ptr noundef nonnull align 1 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %120 unwind label %123

120:                                              ; preds = %114
  br i1 %119, label %121, label %125

121:                                              ; preds = %120
  %122 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 8 dereferenceable(32) %19)
          to label %141 unwind label %123

123:                                              ; preds = %121, %114
  %124 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %142

125:                                              ; preds = %120
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %20) #10
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %27, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %126 unwind label %133

126:                                              ; preds = %125
  %127 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA32_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %20, ptr noundef nonnull align 1 dereferenceable(32) @.str.106)
          to label %128 unwind label %135

128:                                              ; preds = %126
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %20) #10
  %129 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
  %130 = extractvalue { i32, ptr } %129, 0
  store i32 %130, ptr %6, align 8
  %131 = getelementptr inbounds i8, ptr %6, i64 8
  %132 = extractvalue { i32, ptr } %129, 1
  store ptr %132, ptr %131, align 8
  br label %141

133:                                              ; preds = %125
  %134 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  br label %137

135:                                              ; preds = %126
  %136 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTISt12system_error
          catch ptr @_ZTISt9exception
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %20) #10
  br label %137

137:                                              ; preds = %135, %133
  %.pn45 = phi { ptr, i32 } [ %136, %135 ], [ %134, %133 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %20) #10
  br label %142

.critedge:                                        ; preds = %70, %47
  %138 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 33)
  %storemerge = extractvalue { i32, ptr } %138, 0
  store i32 %storemerge, ptr %6, align 8
  %139 = getelementptr inbounds i8, ptr %6, i64 8
  %140 = extractvalue { i32, ptr } %138, 1
  store ptr %140, ptr %139, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  br label %.thread

.thread:                                          ; preds = %83, %.critedge
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br label %198

141:                                              ; preds = %128, %121
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  br i1 %119, label %197, label %198

142:                                              ; preds = %137, %123
  %.pn47 = phi { ptr, i32 } [ %124, %123 ], [ %.pn45, %137 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #10
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #10
  br label %143

143:                                              ; preds = %142, %113, %107
  %.pn47.pn = phi { ptr, i32 } [ %.pn47, %142 ], [ %.pn43, %113 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %17) #10
  br label %144

144:                                              ; preds = %143, %92, %77, %54
  %.pn50.pn = phi { ptr, i32 } [ %.pn50, %92 ], [ %.pn47.pn, %143 ], [ %.pn40.pn, %77 ], [ %55, %54 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #10
  br label %145

145:                                              ; preds = %144, %52, %50
  %.pn50.pn.pn = phi { ptr, i32 } [ %.pn50.pn, %144 ], [ %53, %52 ], [ %51, %50 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #10
  call void @_ZN6System9EventLockD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  br label %146

146:                                              ; preds = %145, %48
  %.pn50.pn.pn.pn = phi { ptr, i32 } [ %.pn50.pn.pn, %145 ], [ %49, %48 ]
  %.10 = extractvalue { ptr, i32 } %.pn50.pn.pn.pn, 0
  %.1028 = extractvalue { ptr, i32 } %.pn50.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  %147 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt12system_error) #10
  %148 = icmp eq i32 %.1028, %147
  br i1 %148, label %149, label %162

149:                                              ; preds = %146
  %150 = call ptr @__cxa_begin_catch(ptr %.10) #10
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %23) #10
  %151 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %23, ptr noundef nonnull align 8 dereferenceable(40) %151, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %152 unwind label %189

152:                                              ; preds = %149
  %153 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %23, ptr noundef nonnull align 1 dereferenceable(40) @.str.107)
          to label %154 unwind label %191

154:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #10
  %155 = load ptr, ptr %150, align 8, !tbaa !26
  %156 = getelementptr inbounds i8, ptr %155, i64 16
  %157 = load ptr, ptr %156, align 8
  %158 = call noundef ptr %157(ptr noundef nonnull align 8 dereferenceable(16) %150) #10
  store ptr %158, ptr %24, align 8, !tbaa !31
  %159 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %153, ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %160 unwind label %193

160:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #10
  %161 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNKSt12system_error4codeEv(ptr noundef nonnull align 8 dereferenceable(32) %150) #10
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 8 dereferenceable(16) %161, i64 16, i1 false), !tbaa.struct !32
  call void @__cxa_end_catch()
  br label %198

162:                                              ; preds = %146
  %163 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #10
  %164 = icmp eq i32 %.1028, %163
  br i1 %164, label %165, label %199

165:                                              ; preds = %162
  %166 = call ptr @__cxa_begin_catch(ptr %.10) #10
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %21) #10
  %167 = getelementptr inbounds i8, ptr %0, i64 56
  invoke void @_ZNK7Logging9LoggerRefclENS_5LevelERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.Logging::LoggerMessage") align 8 %21, ptr noundef nonnull align 8 dereferenceable(40) %167, i32 noundef 2, ptr noundef nonnull align 8 dereferenceable(32) @_ZN7Logging13BRIGHT_YELLOWB5cxx11E)
          to label %168 unwind label %181

168:                                              ; preds = %165
  %169 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA40_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %21, ptr noundef nonnull align 1 dereferenceable(40) @.str.107)
          to label %170 unwind label %183

170:                                              ; preds = %168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #10
  %171 = load ptr, ptr %166, align 8, !tbaa !26
  %172 = getelementptr inbounds i8, ptr %171, i64 16
  %173 = load ptr, ptr %172, align 8
  %174 = call noundef ptr %173(ptr noundef nonnull align 8 dereferenceable(8) %166) #10
  store ptr %174, ptr %22, align 8, !tbaa !31
  %175 = invoke noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEPKcEOT_S5_RKT0_(ptr noundef nonnull align 8 dereferenceable(161) %169, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %176 unwind label %185

176:                                              ; preds = %170
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #10
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #10
  %177 = call { i32, ptr } @_Z15make_error_codeN7DynexCN5error16WalletErrorCodesE(i32 noundef 5)
  %178 = extractvalue { i32, ptr } %177, 0
  store i32 %178, ptr %6, align 8
  %179 = getelementptr inbounds i8, ptr %6, i64 8
  %180 = extractvalue { i32, ptr } %177, 1
  store ptr %180, ptr %179, align 8
  call void @__cxa_end_catch()
  br label %198

181:                                              ; preds = %165
  %182 = landingpad { ptr, i32 }
          cleanup
  br label %188

183:                                              ; preds = %168
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %187

185:                                              ; preds = %170
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #10
  br label %187

187:                                              ; preds = %185, %183
  %.pn55 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %21) #10
  br label %188

188:                                              ; preds = %187, %181
  %.pn55.pn = phi { ptr, i32 } [ %.pn55, %187 ], [ %182, %181 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %21) #10
  invoke void @__cxa_end_catch()
          to label %199 unwind label %200

189:                                              ; preds = %149
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %196

191:                                              ; preds = %152
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %195

193:                                              ; preds = %154
  %194 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #10
  br label %195

195:                                              ; preds = %193, %191
  %.pn58 = phi { ptr, i32 } [ %194, %193 ], [ %192, %191 ]
  call void @_ZN7Logging13LoggerMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(161) %23) #10
  br label %196

196:                                              ; preds = %195, %189
  %.pn58.pn = phi { ptr, i32 } [ %.pn58, %195 ], [ %190, %189 ]
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %23) #10
  invoke void @__cxa_end_catch()
          to label %199 unwind label %200

197:                                              ; preds = %141
  call void @_ZNSt10error_codeC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #10
  br label %198

198:                                              ; preds = %.thread63, %.thread, %141, %197, %176, %160
  %.fca.0.load = load i32, ptr %6, align 8
  %.fca.0.insert = insertvalue { i32, ptr } poison, i32 %.fca.0.load, 0
  %.fca.1.gep = getelementptr inbounds i8, ptr %6, i64 8
  %.fca.1.load = load ptr, ptr %.fca.1.gep, align 8
  %.fca.1.insert = insertvalue { i32, ptr } %.fca.0.insert, ptr %.fca.1.load, 1
  ret { i32, ptr } %.fca.1.insert

199:                                              ; preds = %196, %188, %162
  %.merged = phi { ptr, i32 } [ %.pn50.pn.pn.pn, %162 ], [ %.pn55.pn, %188 ], [ %.pn58.pn, %196 ]
  resume { ptr, i32 } %.merged

200:                                              ; preds = %196, %188
  %201 = landingpad { ptr, i32 }
          catch ptr null
  %202 = extractvalue { ptr, i32 } %201, 0
  call void @__clang_call_terminate(ptr %202) #11
  unreachable
}

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN6CryptoneERKNS_9SecretKeyES2_(ptr noundef nonnull align 1 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(32)) local_unnamed_addr #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(161) ptr @_ZStlsIN7Logging13LoggerMessageEA37_cEOT_S4_RKT0_(ptr noundef nonnull align 8 dereferenceable(161), ptr noundef nonnull align 1 dereferenceable(37)) local_unnamed_addr #7

declare noundef zeroext i1 @_ZNK7DynexCN8Currency25parseAccountAddressStringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERNS_20AccountPublicAddressE(ptr noundef nonnull align 8 dereferenceable(984), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(64)) local_unnamed_addr #5

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { noinline noreturn nounwind uwtable "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "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 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 = { 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 #9 = { nofree nosync nounwind memory(none) }
attributes #10 = { nounwind }
attributes #11 = { 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, !7, i64 16}
!6 = !{!"_ZTSN14PaymentService13WalletServiceE", !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !10, i64 48, !11, i64 56, !7, i64 96, !15, i64 104, !16, i64 136, !18, i64 176}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"bool", !8, i64 0}
!11 = !{!"_ZTSN7Logging9LoggerRefE", !7, i64 0, !12, i64 8}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !8, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !7, i64 0}
!14 = !{!"long", !8, i64 0}
!15 = !{!"_ZTSN6System5EventE", !7, i64 0, !10, i64 8, !7, i64 16, !7, i64 24}
!16 = !{!"_ZTSN6System12ContextGroupE", !7, i64 0, !17, i64 8}
!17 = !{!"_ZTSN6System18NativeContextGroupE", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!18 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEmSt4lessIS5_ESaISt4pairIKS5_mEEE", !19, i64 0}
!19 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_mESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !20, i64 0}
!20 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_mESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !21, i64 0, !23, i64 8}
!21 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !22, i64 0}
!22 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!23 = !{!"_ZTSSt15_Rb_tree_header", !24, i64 0, !14, i64 32}
!24 = !{!"_ZTSSt18_Rb_tree_node_base", !25, i64 0, !7, i64 8, !7, i64 16, !7, i64 24}
!25 = !{!"_ZTSSt14_Rb_tree_color", !8, i64 0}
!26 = !{!27, !27, i64 0}
!27 = !{!"vtable pointer", !9, i64 0}
!28 = !{i64 0, i64 32, !29}
!29 = !{!8, !8, i64 0}
!30 = !{!6, !7, i64 8}
!31 = !{!7, !7, i64 0}
!32 = !{i64 0, i64 4, !33, i64 8, i64 8, !31}
!33 = !{!34, !34, i64 0}
!34 = !{!"int", !8, i64 0}


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