; LLVM IR from Try/Tempest :: Engine/thirdparty/openal-soft/alc (panning)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base" }
%"struct.std::_Optional_payload_base" = type { %"union.std::_Optional_payload_base<StereoEncoding>::_Storage", i8 }
%"union.std::_Optional_payload_base<StereoEncoding>::_Storage" = type { %"struct.std::_Optional_payload_base<StereoEncoding>::_Empty_byte" }
%"struct.std::_Optional_payload_base<StereoEncoding>::_Empty_byte" = type { i8 }
%"class.al::intrusive_ptr" = type { ptr }
%"class.std::unique_ptr.91" = type { %"struct.std::__uniq_ptr_data.92" }
%"struct.std::__uniq_ptr_data.92" = type { %"class.std::__uniq_ptr_impl.93" }
%"class.std::__uniq_ptr_impl.93" = type { %"class.std::tuple.94" }
%"class.std::tuple.94" = type { %"struct.std::_Tuple_impl.95" }
%"struct.std::_Tuple_impl.95" = type { %"struct.std::_Head_base.98" }
%"struct.std::_Head_base.98" = type { ptr }
%"struct.(anonymous namespace)::DecoderConfig" = type { i8, i8, %"class.al::span.99", i8, %"class.al::span.100", %"class.al::span.101", %"class.al::span.100", %"class.al::span.101" }
%"class.al::span.99" = type { ptr, i64 }
%"class.al::span.100" = type { ptr, i64 }
%"class.al::span.101" = type { ptr, i64 }
%"struct.std::array.7" = type { [16 x float] }
%class.anon = type { ptr, ptr, ptr, ptr }
%"class.std::optional.102" = type { %"struct.std::_Optional_base.103" }
%"struct.std::_Optional_base.103" = type { %"struct.std::_Optional_payload.105" }
%"struct.std::_Optional_payload.105" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::optional.110" = type { %"struct.std::_Optional_base.111" }
%"struct.std::_Optional_base.111" = type { %"struct.std::_Optional_payload.113" }
%"struct.std::_Optional_payload.113" = type { %"struct.std::_Optional_payload_base.base.115", [3 x i8] }
%"struct.std::_Optional_payload_base.base.115" = type <{ %"union.std::_Optional_payload_base<float>::_Storage", i8 }>
%"union.std::_Optional_payload_base<float>::_Storage" = type { float }
%"class.al::span.118" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::optional.139" = type { %"struct.std::_Optional_base.140" }
%"struct.std::_Optional_base.140" = type { %"struct.std::_Optional_payload.142" }
%"struct.std::_Optional_payload.142" = type { %"struct.std::_Optional_payload_base.base.144", [3 x i8] }
%"struct.std::_Optional_payload_base.base.144" = type <{ %"union.std::_Optional_payload_base<unsigned int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned int>::_Storage" = type { i32 }
%"class.std::unique_ptr.147" = type { %"struct.std::__uniq_ptr_data.148" }
%"struct.std::__uniq_ptr_data.148" = type { %"class.std::__uniq_ptr_impl.149" }
%"class.std::__uniq_ptr_impl.149" = type { %"class.std::tuple.150" }
%"class.std::tuple.150" = type { %"struct.std::_Tuple_impl.151" }
%"struct.std::_Tuple_impl.151" = type { %"struct.std::_Head_base.154" }
%"struct.std::_Head_base.154" = type { ptr }
%"class.std::unique_ptr.155" = type { %"struct.std::__uniq_ptr_data.156" }
%"struct.std::__uniq_ptr_data.156" = type { %"class.std::__uniq_ptr_impl.157" }
%"class.std::__uniq_ptr_impl.157" = type { %"class.std::tuple.158" }
%"class.std::tuple.158" = type { %"struct.std::_Tuple_impl.159" }
%"struct.std::_Tuple_impl.159" = type { %"struct.std::_Head_base.162" }
%"struct.std::_Head_base.162" = type { ptr }
%"class.std::unique_ptr.163" = type { %"struct.std::__uniq_ptr_data.164" }
%"struct.std::__uniq_ptr_data.164" = type { %"class.std::__uniq_ptr_impl.165" }
%"class.std::__uniq_ptr_impl.165" = type { %"class.std::tuple.166" }
%"class.std::tuple.166" = type { %"struct.std::_Tuple_impl.167" }
%"struct.std::_Tuple_impl.167" = type { %"struct.std::_Head_base.170" }
%"struct.std::_Head_base.170" = type { ptr }
%"class.std::optional.171" = type { %"struct.std::_Optional_base.172" }
%"struct.std::_Optional_base.172" = type { %"struct.std::_Optional_payload.174" }
%"struct.std::_Optional_payload.174" = type { %"struct.std::_Optional_payload_base.base.176", [3 x i8] }
%"struct.std::_Optional_payload_base.base.176" = type <{ %"union.std::_Optional_payload_base<int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<int>::_Storage" = type { i32 }
%"class.std::unique_ptr.35" = type { %"struct.std::__uniq_ptr_data.36" }
%"struct.std::__uniq_ptr_data.36" = type { %"class.std::__uniq_ptr_impl.37" }
%"class.std::__uniq_ptr_impl.37" = type { %"class.std::tuple.38" }
%"class.std::tuple.38" = type { %"struct.std::_Tuple_impl.39" }
%"struct.std::_Tuple_impl.39" = type { %"struct.std::_Head_base.42" }
%"struct.std::_Head_base.42" = type { ptr }
%struct.DeviceBase = type { %"struct.std::atomic.0", i8, i32, i32, i32, i8, i8, i32, float, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::bitset", i8, i32, i8, float, %class.NfcFilter, %"struct.std::atomic", %"struct.std::atomic.5", %"class.std::chrono::duration", %"struct.std::array.6", %"struct.std::array.6", [8 x i8], %"struct.std::array.8", %"struct.std::array.9", %"struct.std::array.10", %"struct.std::array.11", %"struct.std::array.12", %"class.std::vector", %struct.MixParams, %"struct.std::array.14", %struct.RealMixParams, %"class.std::unique_ptr", %"class.al::intrusive_ptr", i32, %"class.std::unique_ptr.19", %"class.std::unique_ptr.27", %"class.std::unique_ptr.35", { i64, i64 }, %"class.std::unique_ptr.43", %"class.std::unique_ptr.51", float, i32, %"struct.std::atomic", %"class.al::atomic_unique_ptr", [8 x i8] }
%"struct.std::atomic.0" = type { %"struct.std::__atomic_base.1" }
%"struct.std::__atomic_base.1" = type { i8 }
%"class.std::bitset" = type { %"struct.std::_Base_bitset" }
%"struct.std::_Base_bitset" = type { i64 }
%class.NfcFilter = type { %struct.NfcFilter1, %struct.NfcFilter2, %struct.NfcFilter3, %struct.NfcFilter4 }
%struct.NfcFilter1 = type { float, float, float, float, %"struct.std::array" }
%"struct.std::array" = type { [1 x float] }
%struct.NfcFilter2 = type { float, float, float, float, float, float, %"struct.std::array.2" }
%"struct.std::array.2" = type { [2 x float] }
%struct.NfcFilter3 = type { float, float, float, float, float, float, float, float, %"struct.std::array.3" }
%"struct.std::array.3" = type { [3 x float] }
%struct.NfcFilter4 = type { float, float, float, float, float, float, float, float, float, float, %"struct.std::array.4" }
%"struct.std::array.4" = type { [4 x float] }
%"struct.std::atomic.5" = type { %"class.std::chrono::duration" }
%"class.std::chrono::duration" = type { i64 }
%"struct.std::array.6" = type { [16 x %"struct.std::array.7"] }
%"struct.std::array.8" = type { [20480 x float] }
%"struct.std::array.9" = type { [1328 x float] }
%"struct.std::array.10" = type { [1024 x float] }
%"struct.std::array.11" = type { [1088 x float] }
%"struct.std::array.12" = type { [1152 x %"struct.std::array.2"] }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::array<float, 1024>, al::allocator<std::array<float, 1024>, 16>>::_Vector_impl" }
%"struct.std::_Vector_base<std::array<float, 1024>, al::allocator<std::array<float, 1024>, 16>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::array<float, 1024>, al::allocator<std::array<float, 1024>, 16>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::array<float, 1024>, al::allocator<std::array<float, 1024>, 16>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%struct.MixParams = type { %"struct.std::array.13", %"class.al::span" }
%"struct.std::array.13" = type { [16 x %struct.BFChannelConfig] }
%struct.BFChannelConfig = type { float, i32 }
%"class.al::span" = type { ptr, i64 }
%"struct.std::array.14" = type { [4 x i32] }
%struct.RealMixParams = type { %"class.al::span.15", %"struct.std::array.16", %"class.al::span" }
%"class.al::span.15" = type { ptr, i64 }
%"struct.std::array.16" = type { [36 x i8] }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.18" }
%"struct.std::_Head_base.18" = type { ptr }
%"class.std::unique_ptr.19" = type { %"struct.std::__uniq_ptr_data.20" }
%"struct.std::__uniq_ptr_data.20" = type { %"class.std::__uniq_ptr_impl.21" }
%"class.std::__uniq_ptr_impl.21" = type { %"class.std::tuple.22" }
%"class.std::tuple.22" = type { %"struct.std::_Tuple_impl.23" }
%"struct.std::_Tuple_impl.23" = type { %"struct.std::_Head_base.26" }
%"struct.std::_Head_base.26" = type { ptr }
%"class.std::unique_ptr.27" = type { %"struct.std::__uniq_ptr_data.28" }
%"struct.std::__uniq_ptr_data.28" = type { %"class.std::__uniq_ptr_impl.29" }
%"class.std::__uniq_ptr_impl.29" = type { %"class.std::tuple.30" }
%"class.std::tuple.30" = type { %"struct.std::_Tuple_impl.31" }
%"struct.std::_Tuple_impl.31" = type { %"struct.std::_Head_base.34" }
%"struct.std::_Head_base.34" = type { ptr }
%"class.std::unique_ptr.43" = type { %"struct.std::__uniq_ptr_data.44" }
%"struct.std::__uniq_ptr_data.44" = type { %"class.std::__uniq_ptr_impl.45" }
%"class.std::__uniq_ptr_impl.45" = type { %"class.std::tuple.46" }
%"class.std::tuple.46" = type { %"struct.std::_Tuple_impl.47" }
%"struct.std::_Tuple_impl.47" = type { %"struct.std::_Head_base.50" }
%"struct.std::_Head_base.50" = type { ptr }
%"class.std::unique_ptr.51" = type { %"struct.std::__uniq_ptr_data.52" }
%"struct.std::__uniq_ptr_data.52" = type { %"class.std::__uniq_ptr_impl.53" }
%"class.std::__uniq_ptr_impl.53" = type { %"class.std::tuple.54" }
%"class.std::tuple.54" = type { %"struct.std::_Tuple_impl.55" }
%"struct.std::_Tuple_impl.55" = type { %"struct.std::_Head_base.58" }
%"struct.std::_Head_base.58" = type { ptr }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i32 }
%"class.al::atomic_unique_ptr" = type { %"struct.std::atomic.59" }
%"struct.std::atomic.59" = type { %"struct.std::__atomic_base.60" }
%"struct.std::__atomic_base.60" = type { ptr }
%struct.ALCdevice = type { %"class.al::intrusive_ref", [12 x i8], %struct.DeviceBase.base, %"class.std::mutex", %"class.std::unique_ptr.61", i32, i32, i32, i32, %"class.std::__cxx11::basic_string", %"class.std::vector.69", i32, %"struct.std::atomic.74", %"class.std::mutex", %"class.std::vector.76", %"class.std::mutex", %"class.std::vector.81", %"class.std::unordered_map", %"class.std::unordered_map", [8 x i8] }
%"class.al::intrusive_ref" = type { %"struct.std::atomic" }
%struct.DeviceBase.base = type { %"struct.std::atomic.0", i8, i32, i32, i32, i8, i8, i32, float, i8, i8, i8, %"class.std::__cxx11::basic_string", %"class.std::bitset", i8, i32, i8, float, %class.NfcFilter, %"struct.std::atomic", %"struct.std::atomic.5", %"class.std::chrono::duration", %"struct.std::array.6", %"struct.std::array.6", [8 x i8], %"struct.std::array.8", %"struct.std::array.9", %"struct.std::array.10", %"struct.std::array.11", %"struct.std::array.12", %"class.std::vector", %struct.MixParams, %"struct.std::array.14", %struct.RealMixParams, %"class.std::unique_ptr", %"class.al::intrusive_ptr", i32, %"class.std::unique_ptr.19", %"class.std::unique_ptr.27", %"class.std::unique_ptr.35", { i64, i64 }, %"class.std::unique_ptr.43", %"class.std::unique_ptr.51", float, i32, %"struct.std::atomic", %"class.al::atomic_unique_ptr" }
%"class.std::unique_ptr.61" = type { %"struct.std::__uniq_ptr_data.62" }
%"struct.std::__uniq_ptr_data.62" = type { %"class.std::__uniq_ptr_impl.63" }
%"class.std::__uniq_ptr_impl.63" = type { %"class.std::tuple.64" }
%"class.std::tuple.64" = type { %"struct.std::_Tuple_impl.65" }
%"struct.std::_Tuple_impl.65" = type { %"struct.std::_Head_base.68" }
%"struct.std::_Head_base.68" = type { ptr }
%"class.std::vector.69" = type { %"struct.std::_Vector_base.70" }
%"struct.std::_Vector_base.70" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::atomic.74" = type { %"struct.std::__atomic_base.75" }
%"struct.std::__atomic_base.75" = type { i32 }
%"class.std::vector.76" = type { %"struct.std::_Vector_base.77" }
%"struct.std::_Vector_base.77" = type { %"struct.std::_Vector_base<EffectSubList, std::allocator<EffectSubList>>::_Vector_impl" }
%"struct.std::_Vector_base<EffectSubList, std::allocator<EffectSubList>>::_Vector_impl" = type { %"struct.std::_Vector_base<EffectSubList, std::allocator<EffectSubList>>::_Vector_impl_data" }
%"struct.std::_Vector_base<EffectSubList, std::allocator<EffectSubList>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::mutex" = type { %"class.std::__mutex_base" }
%"class.std::__mutex_base" = type { %union.pthread_mutex_t }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::vector.81" = type { %"struct.std::_Vector_base.82" }
%"struct.std::_Vector_base.82" = type { %"struct.std::_Vector_base<FilterSubList, std::allocator<FilterSubList>>::_Vector_impl" }
%"struct.std::_Vector_base<FilterSubList, std::allocator<FilterSubList>>::_Vector_impl" = type { %"struct.std::_Vector_base<FilterSubList, std::allocator<FilterSubList>>::_Vector_impl_data" }
%"struct.std::_Vector_base<FilterSubList, std::allocator<FilterSubList>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%struct.HrtfStore = type { %"struct.std::atomic", i32, %"class.al::span.135", %"class.al::span.136", %"class.al::span.137", %"class.al::span.138", [8 x i8] }
%"class.al::span.135" = type { ptr, i64 }
%"class.al::span.136" = type { ptr, i64 }
%"class.al::span.137" = type { ptr, i64 }
%"class.al::span.138" = type { ptr, i64 }

@.str = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZL11MinIrLength = external hidden constant i32, align 4
@UhjEncodeQuality = external dso_local global i8, align 1
@.str.13 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [91 x i8], align 1
@__PRETTY_FUNCTION__._Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE(ptr noundef %0, i32 noundef %1, i16 %2) #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::optional", align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.al::intrusive_ptr", align 8
  %8 = alloca %"class.al::intrusive_ptr", align 8
  %9 = alloca %"class.al::intrusive_ptr", align 8
  %10 = alloca ptr, align 8
  %11 = alloca %"class.std::unique_ptr.91", align 8
  %12 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %13 = alloca %"struct.std::array.7", align 4
  %14 = alloca %class.anon, align 8
  %15 = alloca i8, align 1
  %16 = alloca %"class.std::optional.102", align 8
  %17 = alloca %"class.std::basic_string_view", align 8
  %18 = alloca %"class.std::basic_string_view", align 8
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i8, align 1
  %22 = alloca %"class.std::basic_string_view", align 8
  %23 = alloca %"class.std::basic_string_view", align 8
  %24 = alloca i8, align 1
  %25 = alloca %"class.std::basic_string_view", align 8
  %26 = alloca %"class.std::basic_string_view", align 8
  %27 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %28 = alloca float, align 4
  %29 = alloca float, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca float, align 4
  %34 = alloca float, align 4
  %35 = alloca %"class.std::optional.110", align 4
  %36 = alloca %"class.std::basic_string_view", align 8
  %37 = alloca %"class.std::basic_string_view", align 8
  %38 = alloca float, align 4
  %39 = alloca %"class.al::span.99", align 8
  %40 = alloca %"class.al::span.118", align 8
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i8, align 1
  %44 = alloca %"class.std::basic_string_view", align 8
  %45 = alloca %"class.al::intrusive_ptr", align 8
  %46 = alloca %"class.std::basic_string_view", align 8
  %47 = alloca ptr, align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %"class.std::basic_string_view", align 8
  %51 = alloca %"class.al::intrusive_ptr", align 8
  %52 = alloca %"class.std::basic_string_view", align 8
  %53 = alloca %"class.al::intrusive_ptr", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"class.std::optional.139", align 4
  %56 = alloca %"class.std::basic_string_view", align 8
  %57 = alloca %"class.std::basic_string_view", align 8
  %58 = alloca %"class.al::intrusive_ptr", align 8
  %59 = alloca i8, align 1
  %60 = alloca %"class.std::unique_ptr.147", align 8
  %61 = alloca %"class.std::unique_ptr.155", align 8
  %62 = alloca %"class.std::unique_ptr.163", align 8
  %63 = alloca %"class.std::optional.171", align 4
  %64 = alloca %"class.std::basic_string_view", align 8
  %65 = alloca %"class.std::basic_string_view", align 8
  %66 = alloca %"class.std::unique_ptr.35", align 8
  %67 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %68 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %69 = getelementptr inbounds %"class.std::optional", ptr %4, i32 0, i32 0
  %70 = getelementptr inbounds %"struct.std::_Optional_base", ptr %69, i32 0, i32 0
  %71 = getelementptr inbounds %"struct.std::_Optional_payload", ptr %70, i32 0, i32 0
  store i16 %2, ptr %71, align 1
  store ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #11
  %72 = load ptr, ptr %5, align 8, !tbaa !5
  %73 = getelementptr inbounds i8, ptr %72, i64 16
  %74 = getelementptr inbounds %struct.DeviceBase, ptr %73, i32 0, i32 35
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %74) #11
  %75 = load ptr, ptr %5, align 8, !tbaa !5
  %76 = getelementptr inbounds i8, ptr %75, i64 16
  %77 = getelementptr inbounds %struct.DeviceBase, ptr %76, i32 0, i32 34
  %78 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI15DirectHrtfStateSt14default_deleteIS0_EEaSEDn(ptr noundef nonnull align 8 dereferenceable(8) %77, ptr null) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr null) #11
  %79 = load ptr, ptr %5, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i64 16
  %81 = getelementptr inbounds %struct.DeviceBase, ptr %80, i32 0, i32 35
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %81, ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #11
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = getelementptr inbounds i8, ptr %83, i64 16
  %85 = getelementptr inbounds %struct.DeviceBase, ptr %84, i32 0, i32 36
  store i32 0, ptr %85, align 16, !tbaa !11
  %86 = load ptr, ptr %5, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.ALCdevice, ptr %86, i32 0, i32 9
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %87) #11
  %88 = load ptr, ptr %5, align 8, !tbaa !5
  %89 = getelementptr inbounds i8, ptr %88, i64 16
  %90 = getelementptr inbounds %struct.DeviceBase, ptr %89, i32 0, i32 8
  store float 4.000000e+02, ptr %90, align 8, !tbaa !99
  %91 = load ptr, ptr %5, align 8, !tbaa !5
  %92 = getelementptr inbounds i8, ptr %91, i64 16
  %93 = getelementptr inbounds %struct.DeviceBase, ptr %92, i32 0, i32 9
  store i8 0, ptr %93, align 4, !tbaa !100
  %94 = load ptr, ptr %5, align 8, !tbaa !5
  %95 = getelementptr inbounds i8, ptr %94, i64 16
  %96 = getelementptr inbounds %struct.DeviceBase, ptr %95, i32 0, i32 16
  store i8 0, ptr %96, align 16, !tbaa !101
  %97 = load ptr, ptr %5, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 16
  %99 = getelementptr inbounds %struct.DeviceBase, ptr %98, i32 0, i32 5
  %100 = load i8, ptr %99, align 16, !tbaa !102
  %101 = zext i8 %100 to i32
  %102 = icmp ne i32 %101, 1
  br i1 %102, label %103, label %366

103:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr null) #11
  %104 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %9) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  %105 = call noundef zeroext i1 @_ZNKSt8optionalI14StereoEncodingEcvbEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #11
  br i1 %105, label %106, label %113

106:                                              ; preds = %103
  %107 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNRSt8optionalI14StereoEncodingEdeEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #11
  %108 = load i8, ptr %107, align 1, !tbaa !103
  %109 = icmp eq i8 %108, 2
  br i1 %109, label %110, label %113

110:                                              ; preds = %106
  %111 = load ptr, ptr %5, align 8, !tbaa !5
  %112 = getelementptr inbounds %struct.ALCdevice, ptr %111, i32 0, i32 11
  store i32 5, ptr %112, align 16, !tbaa !105
  br label %113

113:                                              ; preds = %110, %106, %103
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr null, ptr %10, align 8, !tbaa !5
  %114 = load ptr, ptr %5, align 8, !tbaa !5
  %115 = getelementptr inbounds i8, ptr %114, i64 16
  %116 = getelementptr inbounds %struct.DeviceBase, ptr %115, i32 0, i32 5
  %117 = load i8, ptr %116, align 16, !tbaa !102
  %118 = zext i8 %117 to i32
  switch i32 %118, label %127 [
    i32 2, label %119
    i32 3, label %120
    i32 4, label %121
    i32 5, label %122
    i32 6, label %123
    i32 7, label %124
    i32 8, label %125
    i32 0, label %126
    i32 1, label %126
    i32 9, label %126
  ]

119:                                              ; preds = %113
  store ptr @.str, ptr %10, align 8, !tbaa !5
  br label %127

120:                                              ; preds = %113
  store ptr @.str.1, ptr %10, align 8, !tbaa !5
  br label %127

121:                                              ; preds = %113
  store ptr @.str.2, ptr %10, align 8, !tbaa !5
  br label %127

122:                                              ; preds = %113
  store ptr @.str.3, ptr %10, align 8, !tbaa !5
  br label %127

123:                                              ; preds = %113
  store ptr @.str.4, ptr %10, align 8, !tbaa !5
  br label %127

124:                                              ; preds = %113
  store ptr @.str.5, ptr %10, align 8, !tbaa !5
  br label %127

125:                                              ; preds = %113
  store ptr @.str.6, ptr %10, align 8, !tbaa !5
  br label %127

126:                                              ; preds = %113, %113, %113
  br label %127

127:                                              ; preds = %126, %125, %124, %123, %122, %121, %120, %119, %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EEC2IS5_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.start.p0(i64 96, ptr %12) #11
  %128 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 0
  store i8 0, ptr %128, align 8, !tbaa !134
  %129 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 1
  store i8 0, ptr %129, align 1, !tbaa !139
  %130 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 8 %130, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %130) #11
  %131 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 3
  store i8 0, ptr %131, align 8, !tbaa !140
  %132 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 4
  call void @llvm.memset.p0.i64(ptr align 8 %132, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %132) #11
  %133 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 5
  call void @llvm.memset.p0.i64(ptr align 8 %133, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %133) #11
  %134 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 6
  call void @llvm.memset.p0.i64(ptr align 8 %134, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %134) #11
  %135 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 7
  call void @llvm.memset.p0.i64(ptr align 8 %135, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %135) #11
  call void @llvm.lifetime.start.p0(i64 64, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 4 %13, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #11
  %136 = getelementptr inbounds %class.anon, ptr %14, i32 0, i32 0
  %137 = load ptr, ptr %5, align 8, !tbaa !5
  store ptr %137, ptr %136, align 8, !tbaa !141
  %138 = getelementptr inbounds %class.anon, ptr %14, i32 0, i32 1
  store ptr %11, ptr %138, align 8, !tbaa !5
  %139 = getelementptr inbounds %class.anon, ptr %14, i32 0, i32 2
  store ptr %12, ptr %139, align 8, !tbaa !5
  %140 = getelementptr inbounds %class.anon, ptr %14, i32 0, i32 3
  store ptr %13, ptr %140, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #11
  store i8 0, ptr %15, align 1, !tbaa !143
  %141 = load ptr, ptr %10, align 8, !tbaa !5
  %142 = icmp ne ptr %141, null
  br i1 %142, label %143, label %172

143:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 40, ptr %16) #11
  %144 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef @.str.7) #11
  %145 = load ptr, ptr %10, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef %145) #11
  %146 = getelementptr inbounds { i64, ptr }, ptr %17, i32 0, i32 0
  %147 = load i64, ptr %146, align 8
  %148 = getelementptr inbounds { i64, ptr }, ptr %17, i32 0, i32 1
  %149 = load ptr, ptr %148, align 8
  %150 = getelementptr inbounds { i64, ptr }, ptr %18, i32 0, i32 0
  %151 = load i64, ptr %150, align 8
  %152 = getelementptr inbounds { i64, ptr }, ptr %18, i32 0, i32 1
  %153 = load ptr, ptr %152, align 8
  invoke void @_ZN9ALCdevice11configValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt8optionalIT_ESt17basic_string_viewIcS4_ESB_(ptr dead_on_unwind writable sret(%"class.std::optional.102") align 8 %16, ptr noundef nonnull align 16 dereferenceable(107960) %144, i64 %147, ptr %149, i64 %151, ptr %153)
          to label %154 unwind label %162

154:                                              ; preds = %143
  %155 = call noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %16) #11
  br i1 %155, label %156, label %170

156:                                              ; preds = %154
  %157 = call noundef ptr @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %16) #11
  %158 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %157) #11
  %159 = invoke noundef zeroext i1 @"_ZZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEENK3$_0clEPKc"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %158)
          to label %160 unwind label %166

160:                                              ; preds = %156
  %161 = zext i1 %159 to i8
  store i8 %161, ptr %15, align 1, !tbaa !143
  br label %170

162:                                              ; preds = %143
  %163 = landingpad { ptr, i32 }
          cleanup
  %164 = extractvalue { ptr, i32 } %163, 0
  store ptr %164, ptr %19, align 8
  %165 = extractvalue { ptr, i32 } %163, 1
  store i32 %165, ptr %20, align 4
  br label %171

166:                                              ; preds = %156
  %167 = landingpad { ptr, i32 }
          cleanup
  %168 = extractvalue { ptr, i32 } %167, 0
  store ptr %168, ptr %19, align 8
  %169 = extractvalue { ptr, i32 } %167, 1
  store i32 %169, ptr %20, align 4
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #11
  br label %171

170:                                              ; preds = %160, %154
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %16) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #11
  br label %172

171:                                              ; preds = %166, %162
  call void @llvm.lifetime.end.p0(i64 40, ptr %16) #11
  br label %365

172:                                              ; preds = %170, %127
  %173 = load i8, ptr %15, align 1, !tbaa !143, !range !144, !noundef !145
  %174 = trunc i8 %173 to i1
  br i1 %174, label %188, label %175

175:                                              ; preds = %172
  %176 = load ptr, ptr %5, align 8, !tbaa !5
  %177 = getelementptr inbounds i8, ptr %176, i64 16
  %178 = getelementptr inbounds %struct.DeviceBase, ptr %177, i32 0, i32 5
  %179 = load i8, ptr %178, align 16, !tbaa !102
  %180 = zext i8 %179 to i32
  %181 = icmp ne i32 %180, 9
  br i1 %181, label %182, label %188

182:                                              ; preds = %175
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  %184 = getelementptr inbounds i8, ptr %183, i64 16
  %185 = getelementptr inbounds %struct.DeviceBase, ptr %184, i32 0, i32 5
  %186 = load i8, ptr %185, align 16, !tbaa !102
  %187 = call noundef ptr @_Z20DevFmtChannelsString14DevFmtChannels(i8 noundef zeroext %186) #11
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef @.str.8, ptr noundef %187) #11
  br label %188

188:                                              ; preds = %182, %175, %172
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #11
  %189 = load ptr, ptr %5, align 8, !tbaa !5
  %190 = getelementptr inbounds i8, ptr %189, i64 16
  %191 = getelementptr inbounds %struct.DeviceBase, ptr %190, i32 0, i32 33
  %192 = getelementptr inbounds %struct.RealMixParams, ptr %191, i32 0, i32 1
  %193 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %192, i64 noundef 2) #11
  %194 = load i8, ptr %193, align 1, !tbaa !146
  %195 = zext i8 %194 to i32
  %196 = icmp ne i32 %195, 255
  br i1 %196, label %197, label %227

197:                                              ; preds = %188
  %198 = load ptr, ptr %5, align 8, !tbaa !5
  %199 = getelementptr inbounds i8, ptr %198, i64 16
  %200 = getelementptr inbounds %struct.DeviceBase, ptr %199, i32 0, i32 33
  %201 = getelementptr inbounds %struct.RealMixParams, ptr %200, i32 0, i32 1
  %202 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %201, i64 noundef 0) #11
  %203 = load i8, ptr %202, align 1, !tbaa !146
  %204 = zext i8 %203 to i32
  %205 = icmp ne i32 %204, 255
  br i1 %205, label %206, label %227

206:                                              ; preds = %197
  %207 = load ptr, ptr %5, align 8, !tbaa !5
  %208 = getelementptr inbounds i8, ptr %207, i64 16
  %209 = getelementptr inbounds %struct.DeviceBase, ptr %208, i32 0, i32 33
  %210 = getelementptr inbounds %struct.RealMixParams, ptr %209, i32 0, i32 1
  %211 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %210, i64 noundef 1) #11
  %212 = load i8, ptr %211, align 1, !tbaa !146
  %213 = zext i8 %212 to i32
  %214 = icmp ne i32 %213, 255
  br i1 %214, label %215, label %227

215:                                              ; preds = %206
  %216 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef @.str.9) #11
  %217 = getelementptr inbounds { i64, ptr }, ptr %22, i32 0, i32 0
  %218 = load i64, ptr %217, align 8
  %219 = getelementptr inbounds { i64, ptr }, ptr %22, i32 0, i32 1
  %220 = load ptr, ptr %219, align 8
  %221 = getelementptr inbounds { i64, ptr }, ptr %23, i32 0, i32 0
  %222 = load i64, ptr %221, align 8
  %223 = getelementptr inbounds { i64, ptr }, ptr %23, i32 0, i32 1
  %224 = load ptr, ptr %223, align 8
  %225 = invoke noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960) %216, i64 %218, ptr %220, i64 %222, ptr %224, i1 noundef zeroext false)
          to label %226 unwind label %259

226:                                              ; preds = %215
  br label %227

227:                                              ; preds = %226, %206, %197, %188
  %228 = phi i1 [ false, %206 ], [ false, %197 ], [ false, %188 ], [ %225, %226 ]
  %229 = zext i1 %228 to i8
  store i8 %229, ptr %21, align 1, !tbaa !143
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #11
  %230 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %25, ptr noundef @.str.7) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef @.str.10) #11
  %231 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 0
  %232 = load i64, ptr %231, align 8
  %233 = getelementptr inbounds { i64, ptr }, ptr %25, i32 0, i32 1
  %234 = load ptr, ptr %233, align 8
  %235 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 0
  %236 = load i64, ptr %235, align 8
  %237 = getelementptr inbounds { i64, ptr }, ptr %26, i32 0, i32 1
  %238 = load ptr, ptr %237, align 8
  %239 = invoke noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960) %230, i64 %232, ptr %234, i64 %236, ptr %238, i1 noundef zeroext true)
          to label %240 unwind label %263

240:                                              ; preds = %227
  %241 = zext i1 %239 to i8
  store i8 %241, ptr %24, align 1, !tbaa !143
  %242 = load ptr, ptr %5, align 8, !tbaa !5
  %243 = load i8, ptr %24, align 1, !tbaa !143, !range !144, !noundef !145
  %244 = trunc i8 %243 to i1
  %245 = load i8, ptr %21, align 1, !tbaa !143, !range !144, !noundef !145
  %246 = trunc i8 %245 to i1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %27, ptr align 8 %12, i64 96, i1 false), !tbaa.struct !147
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef %242, i1 noundef zeroext %244, i1 noundef zeroext %246, ptr noundef byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %27)
          to label %247 unwind label %263

247:                                              ; preds = %240
  %248 = call noundef zeroext i1 @_ZNK12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEcvbEv(ptr noundef nonnull align 8 dereferenceable(96) %12) #11
  br i1 %248, label %249, label %347

249:                                              ; preds = %247
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  store float 0.000000e+00, ptr %28, align 4, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  store float 0.000000e+00, ptr %29, align 4, !tbaa !150
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #11
  store ptr %13, ptr %30, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #11
  %250 = load ptr, ptr %30, align 8, !tbaa !5
  %251 = call noundef ptr @_ZNSt5arrayIfLm16EE5beginEv(ptr noundef nonnull align 4 dereferenceable(64) %250) #12
  store ptr %251, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  %252 = load ptr, ptr %30, align 8, !tbaa !5
  %253 = call noundef ptr @_ZNSt5arrayIfLm16EE3endEv(ptr noundef nonnull align 4 dereferenceable(64) %252) #12
  store ptr %253, ptr %32, align 8, !tbaa !5
  br label %254

254:                                              ; preds = %279, %249
  %255 = load ptr, ptr %31, align 8, !tbaa !5
  %256 = load ptr, ptr %32, align 8, !tbaa !5
  %257 = icmp ne ptr %255, %256
  br i1 %257, label %267, label %258

258:                                              ; preds = %254
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #11
  br label %282

259:                                              ; preds = %215
  %260 = landingpad { ptr, i32 }
          cleanup
  %261 = extractvalue { ptr, i32 } %260, 0
  store ptr %261, ptr %19, align 8
  %262 = extractvalue { ptr, i32 } %260, 1
  store i32 %262, ptr %20, align 4
  br label %364

263:                                              ; preds = %240, %227
  %264 = landingpad { ptr, i32 }
          cleanup
  %265 = extractvalue { ptr, i32 } %264, 0
  store ptr %265, ptr %19, align 8
  %266 = extractvalue { ptr, i32 } %264, 1
  store i32 %266, ptr %20, align 4
  br label %363

267:                                              ; preds = %254
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %268 = load ptr, ptr %31, align 8, !tbaa !5
  %269 = load float, ptr %268, align 4, !tbaa !150
  store float %269, ptr %33, align 4, !tbaa !150
  %270 = load float, ptr %33, align 4, !tbaa !150
  %271 = fcmp ogt float %270, 0.000000e+00
  br i1 %271, label %272, label %278

272:                                              ; preds = %267
  %273 = load float, ptr %33, align 4, !tbaa !150
  %274 = load float, ptr %28, align 4, !tbaa !150
  %275 = fadd float %274, %273
  store float %275, ptr %28, align 4, !tbaa !150
  %276 = load float, ptr %29, align 4, !tbaa !150
  %277 = fadd float %276, 1.000000e+00
  store float %277, ptr %29, align 4, !tbaa !150
  br label %278

278:                                              ; preds = %272, %267
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %279

279:                                              ; preds = %278
  %280 = load ptr, ptr %31, align 8, !tbaa !5
  %281 = getelementptr inbounds float, ptr %280, i32 1
  store ptr %281, ptr %31, align 8, !tbaa !5
  br label %254

282:                                              ; preds = %258
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %283 = load float, ptr %28, align 4, !tbaa !150
  %284 = fcmp ogt float %283, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  br i1 %284, label %285, label %292

285:                                              ; preds = %282
  %286 = load float, ptr %29, align 4, !tbaa !150
  %287 = fcmp ogt float %286, 0.000000e+00
  br i1 %287, label %288, label %292

288:                                              ; preds = %285
  %289 = load float, ptr %28, align 4, !tbaa !150
  %290 = load float, ptr %29, align 4, !tbaa !150
  %291 = fdiv float %289, %290
  br label %308

292:                                              ; preds = %285, %282
  %293 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %36, ptr noundef @.str.7) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef @.str.11) #11
  %294 = getelementptr inbounds { i64, ptr }, ptr %36, i32 0, i32 0
  %295 = load i64, ptr %294, align 8
  %296 = getelementptr inbounds { i64, ptr }, ptr %36, i32 0, i32 1
  %297 = load ptr, ptr %296, align 8
  %298 = getelementptr inbounds { i64, ptr }, ptr %37, i32 0, i32 0
  %299 = load i64, ptr %298, align 8
  %300 = getelementptr inbounds { i64, ptr }, ptr %37, i32 0, i32 1
  %301 = load ptr, ptr %300, align 8
  %302 = invoke i64 @_ZN9ALCdevice11configValueIfEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %293, i64 %295, ptr %297, i64 %299, ptr %301)
          to label %303 unwind label %332

303:                                              ; preds = %292
  %304 = getelementptr inbounds %"class.std::optional.110", ptr %35, i32 0, i32 0
  %305 = getelementptr inbounds %"struct.std::_Optional_base.111", ptr %304, i32 0, i32 0
  store i64 %302, ptr %305, align 4
  store float 1.000000e+00, ptr %38, align 4, !tbaa !150
  %306 = invoke noundef float @_ZNOSt8optionalIfE8value_orIfEEfOT_(ptr noundef nonnull align 4 dereferenceable(8) %35, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %307 unwind label %336

307:                                              ; preds = %303
  br label %308

308:                                              ; preds = %307, %288
  %309 = phi float [ %291, %288 ], [ %306, %307 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  store float %309, ptr %34, align 4, !tbaa !150
  %310 = load ptr, ptr %5, align 8, !tbaa !5
  %311 = load float, ptr %34, align 4, !tbaa !150
  %312 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 0
  %313 = load i8, ptr %312, align 8, !tbaa !134
  %314 = zext i8 %313 to i32
  %315 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 1
  %316 = load i8, ptr %315, align 1, !tbaa !139, !range !144, !noundef !145
  %317 = trunc i8 %316 to i1
  invoke void @_ZN12_GLOBAL__N_117InitNearFieldCtrlEP9ALCdevicefjb(ptr noundef %310, float noundef %311, i32 noundef %314, i1 noundef zeroext %317)
          to label %318 unwind label %341

318:                                              ; preds = %308
  %319 = load float, ptr %29, align 4, !tbaa !150
  %320 = fcmp ogt float %319, 0.000000e+00
  br i1 %320, label %321, label %345

321:                                              ; preds = %318
  %322 = load ptr, ptr %5, align 8, !tbaa !5
  %323 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %12, i32 0, i32 2
  invoke void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %39, ptr noundef nonnull align 8 dereferenceable(16) %323)
          to label %324 unwind label %341

324:                                              ; preds = %321
  call void @_ZN2al4spanIKfLm16EEC2ILm16EEERSt5arrayIfXT_EE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 4 dereferenceable(64) %13) #11
  %325 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %326 = load ptr, ptr %325, align 8
  %327 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %328 = load i64, ptr %327, align 8
  %329 = getelementptr inbounds %"class.al::span.118", ptr %40, i32 0, i32 0
  %330 = load ptr, ptr %329, align 8
  invoke void @_ZN12_GLOBAL__N_116InitDistanceCompEP9ALCdeviceN2al4spanIK7ChannelLm18446744073709551615EEENS3_IKfLm16EEE(ptr noundef %322, ptr %326, i64 %328, ptr %330)
          to label %331 unwind label %341

331:                                              ; preds = %324
  br label %345

332:                                              ; preds = %292
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %19, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %20, align 4
  br label %340

336:                                              ; preds = %303
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %19, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %340

340:                                              ; preds = %336, %332
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %346

341:                                              ; preds = %324, %321, %308
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %19, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %20, align 4
  br label %346

345:                                              ; preds = %331, %318
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %347

346:                                              ; preds = %341, %340
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %363

347:                                              ; preds = %345, %247
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #11
  %348 = load ptr, ptr %5, align 8, !tbaa !5
  %349 = getelementptr inbounds i8, ptr %348, i64 16
  %350 = getelementptr inbounds %struct.DeviceBase, ptr %349, i32 0, i32 38
  %351 = call noundef ptr @_ZNKSt10unique_ptrI10BFormatDecSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %350) #11
  store ptr %351, ptr %41, align 8, !tbaa !5
  %352 = load ptr, ptr %41, align 8, !tbaa !5
  %353 = icmp ne ptr %352, null
  br i1 %353, label %354, label %362

354:                                              ; preds = %347
  %355 = load ptr, ptr %41, align 8, !tbaa !5
  %356 = call noundef zeroext i1 @_ZNK10BFormatDec12hasStablizerEv(ptr noundef nonnull align 16 dereferenceable(8232) %355) #11
  %357 = zext i1 %356 to i64
  %358 = select i1 %356, { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase23ProcessAmbiDecStablizedEm to i64), i64 0 }, { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase14ProcessAmbiDecEm to i64), i64 0 }
  %359 = load ptr, ptr %5, align 8, !tbaa !5
  %360 = getelementptr inbounds i8, ptr %359, i64 16
  %361 = getelementptr inbounds %struct.DeviceBase, ptr %360, i32 0, i32 40
  store { i64, i64 } %358, ptr %361, align 16, !tbaa !151
  br label %362

362:                                              ; preds = %354, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #11
  store i32 1, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr %12) #11
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  br label %728

363:                                              ; preds = %346, %263
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #11
  br label %364

364:                                              ; preds = %363, %259
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #11
  br label %365

365:                                              ; preds = %364, %171
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 64, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 96, ptr %12) #11
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  br label %731

366:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #11
  store i8 0, ptr %43, align 1, !tbaa !103
  %367 = invoke noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2) %4, ptr noundef nonnull align 1 dereferenceable(1) %43)
          to label %368 unwind label %389

368:                                              ; preds = %366
  %369 = icmp eq i8 %367, 2
  br i1 %369, label %380, label %370

370:                                              ; preds = %368
  %371 = call noundef zeroext i1 @_ZNKSt8optionalI14StereoEncodingEcvbEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #11
  br i1 %371, label %378, label %372

372:                                              ; preds = %370
  %373 = load ptr, ptr %5, align 8, !tbaa !5
  %374 = getelementptr inbounds i8, ptr %373, i64 16
  %375 = getelementptr inbounds %struct.DeviceBase, ptr %374, i32 0, i32 13
  %376 = invoke noundef zeroext i1 @_ZNKSt6bitsetILm6EE4testEm(ptr noundef nonnull align 8 dereferenceable(8) %375, i64 noundef 4)
          to label %377 unwind label %389

377:                                              ; preds = %372
  br label %378

378:                                              ; preds = %377, %370
  %379 = phi i1 [ false, %370 ], [ %376, %377 ]
  br label %380

380:                                              ; preds = %378, %368
  %381 = phi i1 [ true, %368 ], [ %379, %378 ]
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  br i1 %381, label %382, label %581

382:                                              ; preds = %380
  %383 = load ptr, ptr %5, align 8, !tbaa !5
  %384 = getelementptr inbounds %struct.ALCdevice, ptr %383, i32 0, i32 10
  %385 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %384) #11
  br i1 %385, label %386, label %397

386:                                              ; preds = %382
  %387 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN9ALCdevice14enumerateHrtfsEv(ptr noundef nonnull align 16 dereferenceable(107960) %387)
          to label %388 unwind label %393

388:                                              ; preds = %386
  br label %397

389:                                              ; preds = %372, %366
  %390 = landingpad { ptr, i32 }
          cleanup
  %391 = extractvalue { ptr, i32 } %390, 0
  store ptr %391, ptr %19, align 8
  %392 = extractvalue { ptr, i32 } %390, 1
  store i32 %392, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  br label %731

393:                                              ; preds = %714, %630, %386
  %394 = landingpad { ptr, i32 }
          cleanup
  %395 = extractvalue { ptr, i32 } %394, 0
  store ptr %395, ptr %19, align 8
  %396 = extractvalue { ptr, i32 } %394, 1
  store i32 %396, ptr %20, align 4
  br label %731

397:                                              ; preds = %388, %382
  %398 = load i32, ptr %6, align 4, !tbaa !9
  %399 = icmp sge i32 %398, 0
  br i1 %399, label %400, label %447

400:                                              ; preds = %397
  %401 = load i32, ptr %6, align 4, !tbaa !9
  %402 = zext i32 %401 to i64
  %403 = load ptr, ptr %5, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.ALCdevice, ptr %403, i32 0, i32 10
  %405 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %404) #11
  %406 = icmp ult i64 %402, %405
  br i1 %406, label %407, label %447

407:                                              ; preds = %400
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #11
  %408 = load ptr, ptr %5, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.ALCdevice, ptr %408, i32 0, i32 10
  %410 = load i32, ptr %6, align 4, !tbaa !9
  %411 = zext i32 %410 to i64
  %412 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %409, i64 noundef %411) #11
  %413 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %412) #11
  %414 = getelementptr inbounds { i64, ptr }, ptr %44, i32 0, i32 0
  %415 = extractvalue { i64, ptr } %413, 0
  store i64 %415, ptr %414, align 8
  %416 = getelementptr inbounds { i64, ptr }, ptr %44, i32 0, i32 1
  %417 = extractvalue { i64, ptr } %413, 1
  store ptr %417, ptr %416, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %46, ptr align 8 %44, i64 16, i1 false), !tbaa.struct !152
  %418 = load ptr, ptr %5, align 8, !tbaa !5
  %419 = getelementptr inbounds i8, ptr %418, i64 16
  %420 = getelementptr inbounds %struct.DeviceBase, ptr %419, i32 0, i32 2
  %421 = load i32, ptr %420, align 4, !tbaa !153
  %422 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 0
  %423 = load i64, ptr %422, align 8
  %424 = getelementptr inbounds { i64, ptr }, ptr %46, i32 0, i32 1
  %425 = load ptr, ptr %424, align 8
  invoke void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind writable sret(%"class.al::intrusive_ptr") align 8 %45, i64 %423, ptr %425, i32 noundef %421)
          to label %426 unwind label %437

426:                                              ; preds = %407
  %427 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br i1 %427, label %428, label %445

428:                                              ; preds = %426
  %429 = load ptr, ptr %5, align 8, !tbaa !5
  %430 = getelementptr inbounds i8, ptr %429, i64 16
  %431 = getelementptr inbounds %struct.DeviceBase, ptr %430, i32 0, i32 35
  %432 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %431, ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  %433 = load ptr, ptr %5, align 8, !tbaa !5
  %434 = getelementptr inbounds %struct.ALCdevice, ptr %433, i32 0, i32 9
  %435 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32) %434, ptr noundef nonnull align 8 dereferenceable(16) %44)
          to label %436 unwind label %441

436:                                              ; preds = %428
  br label %445

437:                                              ; preds = %407
  %438 = landingpad { ptr, i32 }
          cleanup
  %439 = extractvalue { ptr, i32 } %438, 0
  store ptr %439, ptr %19, align 8
  %440 = extractvalue { ptr, i32 } %438, 1
  store i32 %440, ptr %20, align 4
  br label %446

441:                                              ; preds = %428
  %442 = landingpad { ptr, i32 }
          cleanup
  %443 = extractvalue { ptr, i32 } %442, 0
  store ptr %443, ptr %19, align 8
  %444 = extractvalue { ptr, i32 } %442, 1
  store i32 %444, ptr %20, align 4
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  br label %446

445:                                              ; preds = %436, %426
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %45) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  br label %447

446:                                              ; preds = %441, %437
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  br label %731

447:                                              ; preds = %445, %400, %397
  %448 = load ptr, ptr %5, align 8, !tbaa !5
  %449 = getelementptr inbounds i8, ptr %448, i64 16
  %450 = getelementptr inbounds %struct.DeviceBase, ptr %449, i32 0, i32 35
  %451 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %450) #11
  br i1 %451, label %510, label %452

452:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %453 = load ptr, ptr %5, align 8, !tbaa !5
  %454 = getelementptr inbounds %struct.ALCdevice, ptr %453, i32 0, i32 10
  store ptr %454, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  %455 = load ptr, ptr %47, align 8, !tbaa !5
  %456 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %455) #11
  %457 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %48, i32 0, i32 0
  store ptr %456, ptr %457, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #11
  %458 = load ptr, ptr %47, align 8, !tbaa !5
  %459 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %458) #11
  %460 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %49, i32 0, i32 0
  store ptr %459, ptr %460, align 8
  br label %461

461:                                              ; preds = %505, %452
  %462 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #11
  br i1 %462, label %464, label %463

463:                                              ; preds = %461
  store i32 5, ptr %42, align 4
  br label %508

464:                                              ; preds = %461
  call void @llvm.lifetime.start.p0(i64 16, ptr %50) #11
  %465 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #11
  %466 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %465) #11
  %467 = getelementptr inbounds { i64, ptr }, ptr %50, i32 0, i32 0
  %468 = extractvalue { i64, ptr } %466, 0
  store i64 %468, ptr %467, align 8
  %469 = getelementptr inbounds { i64, ptr }, ptr %50, i32 0, i32 1
  %470 = extractvalue { i64, ptr } %466, 1
  store ptr %470, ptr %469, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %52, ptr align 8 %50, i64 16, i1 false), !tbaa.struct !152
  %471 = load ptr, ptr %5, align 8, !tbaa !5
  %472 = getelementptr inbounds i8, ptr %471, i64 16
  %473 = getelementptr inbounds %struct.DeviceBase, ptr %472, i32 0, i32 2
  %474 = load i32, ptr %473, align 4, !tbaa !153
  %475 = getelementptr inbounds { i64, ptr }, ptr %52, i32 0, i32 0
  %476 = load i64, ptr %475, align 8
  %477 = getelementptr inbounds { i64, ptr }, ptr %52, i32 0, i32 1
  %478 = load ptr, ptr %477, align 8
  invoke void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind writable sret(%"class.al::intrusive_ptr") align 8 %51, i64 %476, ptr %478, i32 noundef %474)
          to label %479 unwind label %490

479:                                              ; preds = %464
  %480 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  br i1 %480, label %481, label %498

481:                                              ; preds = %479
  %482 = load ptr, ptr %5, align 8, !tbaa !5
  %483 = getelementptr inbounds i8, ptr %482, i64 16
  %484 = getelementptr inbounds %struct.DeviceBase, ptr %483, i32 0, i32 35
  %485 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  %486 = load ptr, ptr %5, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.ALCdevice, ptr %486, i32 0, i32 9
  %488 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32) %487, ptr noundef nonnull align 8 dereferenceable(16) %50)
          to label %489 unwind label %494

489:                                              ; preds = %481
  store i32 5, ptr %42, align 4
  br label %499

490:                                              ; preds = %464
  %491 = landingpad { ptr, i32 }
          cleanup
  %492 = extractvalue { ptr, i32 } %491, 0
  store ptr %492, ptr %19, align 8
  %493 = extractvalue { ptr, i32 } %491, 1
  store i32 %493, ptr %20, align 4
  br label %507

494:                                              ; preds = %481
  %495 = landingpad { ptr, i32 }
          cleanup
  %496 = extractvalue { ptr, i32 } %495, 0
  store ptr %496, ptr %19, align 8
  %497 = extractvalue { ptr, i32 } %495, 1
  store i32 %497, ptr %20, align 4
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  br label %507

498:                                              ; preds = %479
  store i32 0, ptr %42, align 4
  br label %499

499:                                              ; preds = %498, %489
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %51) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  %500 = load i32, ptr %42, align 4
  switch i32 %500, label %502 [
    i32 0, label %501
  ]

501:                                              ; preds = %499
  store i32 0, ptr %42, align 4
  br label %502

502:                                              ; preds = %501, %499
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #11
  %503 = load i32, ptr %42, align 4
  switch i32 %503, label %508 [
    i32 0, label %504
  ]

504:                                              ; preds = %502
  br label %505

505:                                              ; preds = %504
  %506 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #11
  br label %461

507:                                              ; preds = %494, %490
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  br label %731

508:                                              ; preds = %502, %463
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509, %447
  %511 = load ptr, ptr %5, align 8, !tbaa !5
  %512 = getelementptr inbounds i8, ptr %511, i64 16
  %513 = getelementptr inbounds %struct.DeviceBase, ptr %512, i32 0, i32 35
  %514 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %513) #11
  br i1 %514, label %515, label %580

515:                                              ; preds = %510
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %53, ptr null) #11
  %516 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %53) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  %517 = load ptr, ptr %5, align 8, !tbaa !5
  %518 = getelementptr inbounds i8, ptr %517, i64 16
  %519 = getelementptr inbounds %struct.DeviceBase, ptr %518, i32 0, i32 35
  %520 = call noundef ptr @_ZNK2al13intrusive_ptrI9HrtfStoreE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %519) #11
  store ptr %520, ptr %54, align 8, !tbaa !5
  %521 = load ptr, ptr %54, align 8, !tbaa !5
  %522 = getelementptr inbounds %struct.HrtfStore, ptr %521, i32 0, i32 1
  %523 = load i32, ptr %522, align 4
  %524 = lshr i32 %523, 24
  %525 = load ptr, ptr %5, align 8, !tbaa !5
  %526 = getelementptr inbounds i8, ptr %525, i64 16
  %527 = getelementptr inbounds %struct.DeviceBase, ptr %526, i32 0, i32 36
  store i32 %524, ptr %527, align 16, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %56) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %57, ptr noundef @.str.12) #11
  %529 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 0
  %530 = load i64, ptr %529, align 8
  %531 = getelementptr inbounds { i64, ptr }, ptr %56, i32 0, i32 1
  %532 = load ptr, ptr %531, align 8
  %533 = getelementptr inbounds { i64, ptr }, ptr %57, i32 0, i32 0
  %534 = load i64, ptr %533, align 8
  %535 = getelementptr inbounds { i64, ptr }, ptr %57, i32 0, i32 1
  %536 = load ptr, ptr %535, align 8
  %537 = invoke i64 @_ZN9ALCdevice11configValueIjEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %528, i64 %530, ptr %532, i64 %534, ptr %536)
          to label %538 unwind label %562

538:                                              ; preds = %515
  %539 = getelementptr inbounds %"class.std::optional.139", ptr %55, i32 0, i32 0
  %540 = getelementptr inbounds %"struct.std::_Optional_base.140", ptr %539, i32 0, i32 0
  store i64 %537, ptr %540, align 4
  %541 = call noundef zeroext i1 @_ZNKSt8optionalIjEcvbEv(ptr noundef nonnull align 4 dereferenceable(8) %55) #11
  br i1 %541, label %542, label %567

542:                                              ; preds = %538
  %543 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %55) #11
  %544 = load i32, ptr %543, align 4, !tbaa !9
  %545 = icmp ugt i32 %544, 0
  br i1 %545, label %546, label %566

546:                                              ; preds = %542
  %547 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %55) #11
  %548 = load i32, ptr %547, align 4, !tbaa !9
  %549 = load ptr, ptr %5, align 8, !tbaa !5
  %550 = getelementptr inbounds i8, ptr %549, i64 16
  %551 = getelementptr inbounds %struct.DeviceBase, ptr %550, i32 0, i32 36
  %552 = load i32, ptr %551, align 16, !tbaa !11
  %553 = icmp ult i32 %548, %552
  br i1 %553, label %554, label %566

554:                                              ; preds = %546
  %555 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %55) #11
  %556 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %555, ptr noundef nonnull align 4 dereferenceable(4) @_ZL11MinIrLength)
          to label %557 unwind label %562

557:                                              ; preds = %554
  %558 = load i32, ptr %556, align 4, !tbaa !9
  %559 = load ptr, ptr %5, align 8, !tbaa !5
  %560 = getelementptr inbounds i8, ptr %559, i64 16
  %561 = getelementptr inbounds %struct.DeviceBase, ptr %560, i32 0, i32 36
  store i32 %558, ptr %561, align 16, !tbaa !11
  br label %566

562:                                              ; preds = %554, %515
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %19, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  br label %579

566:                                              ; preds = %557, %546, %542
  br label %567

567:                                              ; preds = %566, %538
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  %568 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN12_GLOBAL__N_115InitHrtfPanningEP9ALCdevice(ptr noundef %568)
          to label %569 unwind label %575

569:                                              ; preds = %567
  %570 = load ptr, ptr %5, align 8, !tbaa !5
  %571 = getelementptr inbounds i8, ptr %570, i64 16
  %572 = getelementptr inbounds %struct.DeviceBase, ptr %571, i32 0, i32 40
  store { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase11ProcessHrtfEm to i64), i64 0 }, ptr %572, align 16, !tbaa !151
  %573 = load ptr, ptr %5, align 8, !tbaa !5
  %574 = getelementptr inbounds %struct.ALCdevice, ptr %573, i32 0, i32 11
  store i32 1, ptr %574, align 16, !tbaa !105
  store i32 1, ptr %42, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %728

575:                                              ; preds = %567
  %576 = landingpad { ptr, i32 }
          cleanup
  %577 = extractvalue { ptr, i32 } %576, 0
  store ptr %577, ptr %19, align 8
  %578 = extractvalue { ptr, i32 } %576, 1
  store i32 %578, ptr %20, align 4
  br label %579

579:                                              ; preds = %575, %562
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %731

580:                                              ; preds = %510
  br label %581

581:                                              ; preds = %580, %380
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr null) #11
  %582 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %59) #11
  store i8 0, ptr %59, align 1, !tbaa !103
  %583 = invoke noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2) %4, ptr noundef nonnull align 1 dereferenceable(1) %59)
          to label %584 unwind label %588

584:                                              ; preds = %581
  %585 = icmp eq i8 %583, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  br i1 %585, label %586, label %636

586:                                              ; preds = %584
  %587 = load i8, ptr @UhjEncodeQuality, align 1, !tbaa !154
  switch i8 %587, label %622 [
    i8 0, label %592
    i8 1, label %602
    i8 2, label %612
  ]

588:                                              ; preds = %581
  %589 = landingpad { ptr, i32 }
          cleanup
  %590 = extractvalue { ptr, i32 } %589, 0
  store ptr %590, ptr %19, align 8
  %591 = extractvalue { ptr, i32 } %589, 1
  store i32 %591, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %59) #11
  br label %731

592:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  invoke void @_ZSt11make_uniqueI13UhjEncoderIIRJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.147") align 8 %60)
          to label %593 unwind label %598

593:                                              ; preds = %592
  %594 = load ptr, ptr %5, align 8, !tbaa !5
  %595 = getelementptr inbounds i8, ptr %594, i64 16
  %596 = getelementptr inbounds %struct.DeviceBase, ptr %595, i32 0, i32 37
  %597 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI13UhjEncoderIIRS1_IS5_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISA_EEEESt13is_assignableIRS2_OSB_EEE5valueERS3_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(8) %596, ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  call void @_ZNSt10unique_ptrI13UhjEncoderIIRSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %622

598:                                              ; preds = %592
  %599 = landingpad { ptr, i32 }
          cleanup
  %600 = extractvalue { ptr, i32 } %599, 0
  store ptr %600, ptr %19, align 8
  %601 = extractvalue { ptr, i32 } %599, 1
  store i32 %601, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  br label %731

602:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  invoke void @_ZSt11make_uniqueI10UhjEncoderILm256EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.155") align 8 %61)
          to label %603 unwind label %608

603:                                              ; preds = %602
  %604 = load ptr, ptr %5, align 8, !tbaa !5
  %605 = getelementptr inbounds i8, ptr %604, i64 16
  %606 = getelementptr inbounds %struct.DeviceBase, ptr %605, i32 0, i32 37
  %607 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI10UhjEncoderILm256EES1_IS6_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISB_EEEESt13is_assignableIRS2_OSC_EEE5valueERS3_E4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(8) %606, ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @_ZNSt10unique_ptrI10UhjEncoderILm256EESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  br label %622

608:                                              ; preds = %602
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %19, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  br label %731

612:                                              ; preds = %586
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  invoke void @_ZSt11make_uniqueI10UhjEncoderILm512EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.163") align 8 %62)
          to label %613 unwind label %618

613:                                              ; preds = %612
  %614 = load ptr, ptr %5, align 8, !tbaa !5
  %615 = getelementptr inbounds i8, ptr %614, i64 16
  %616 = getelementptr inbounds %struct.DeviceBase, ptr %615, i32 0, i32 37
  %617 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI10UhjEncoderILm512EES1_IS6_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISB_EEEESt13is_assignableIRS2_OSC_EEE5valueERS3_E4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @_ZNSt10unique_ptrI10UhjEncoderILm512EESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %62) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %622

618:                                              ; preds = %612
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %19, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %20, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  br label %731

622:                                              ; preds = %613, %603, %593, %586
  %623 = load ptr, ptr %5, align 8, !tbaa !5
  %624 = getelementptr inbounds i8, ptr %623, i64 16
  %625 = getelementptr inbounds %struct.DeviceBase, ptr %624, i32 0, i32 37
  %626 = call noundef zeroext i1 @_ZStneI14UhjEncoderBaseSt14default_deleteIS0_EEbRKSt10unique_ptrIT_T0_EDn(ptr noundef nonnull align 8 dereferenceable(8) %625, ptr null) #11
  br i1 %626, label %627, label %628

627:                                              ; preds = %622
  br label %630

628:                                              ; preds = %622
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.14, i32 noundef 1189, ptr noundef @__PRETTY_FUNCTION__._Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE) #13
  unreachable

629:                                              ; No predecessors!
  br label %630

630:                                              ; preds = %629, %627
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef @.str.15) #11
  %631 = load ptr, ptr %5, align 8, !tbaa !5
  invoke void @_ZN12_GLOBAL__N_114InitUhjPanningEP9ALCdevice(ptr noundef %631)
          to label %632 unwind label %393

632:                                              ; preds = %630
  %633 = load ptr, ptr %5, align 8, !tbaa !5
  %634 = getelementptr inbounds i8, ptr %633, i64 16
  %635 = getelementptr inbounds %struct.DeviceBase, ptr %634, i32 0, i32 40
  store { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase10ProcessUhjEm to i64), i64 0 }, ptr %635, align 16, !tbaa !151
  store i32 1, ptr %42, align 4
  br label %728

636:                                              ; preds = %584
  %637 = load ptr, ptr %5, align 8, !tbaa !5
  %638 = getelementptr inbounds i8, ptr %637, i64 16
  %639 = getelementptr inbounds %struct.DeviceBase, ptr %638, i32 0, i32 16
  store i8 1, ptr %639, align 16, !tbaa !101
  %640 = load ptr, ptr %5, align 8, !tbaa !5
  %641 = getelementptr inbounds i8, ptr %640, i64 16
  %642 = getelementptr inbounds %struct.DeviceBase, ptr %641, i32 0, i32 1
  %643 = load i8, ptr %642, align 1, !tbaa !156
  %644 = icmp ne i8 %643, 2
  br i1 %644, label %645, label %714

645:                                              ; preds = %636
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #11
  %646 = load ptr, ptr %5, align 8, !tbaa !5
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #11
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef @.str.16) #11
  %647 = getelementptr inbounds { i64, ptr }, ptr %64, i32 0, i32 0
  %648 = load i64, ptr %647, align 8
  %649 = getelementptr inbounds { i64, ptr }, ptr %64, i32 0, i32 1
  %650 = load ptr, ptr %649, align 8
  %651 = getelementptr inbounds { i64, ptr }, ptr %65, i32 0, i32 0
  %652 = load i64, ptr %651, align 8
  %653 = getelementptr inbounds { i64, ptr }, ptr %65, i32 0, i32 1
  %654 = load ptr, ptr %653, align 8
  %655 = invoke i64 @_ZN9ALCdevice11configValueIiEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %646, i64 %648, ptr %650, i64 %652, ptr %654)
          to label %656 unwind label %695

656:                                              ; preds = %645
  %657 = getelementptr inbounds %"class.std::optional.171", ptr %63, i32 0, i32 0
  %658 = getelementptr inbounds %"struct.std::_Optional_base.172", ptr %657, i32 0, i32 0
  store i64 %655, ptr %658, align 4
  %659 = call noundef zeroext i1 @_ZNKSt8optionalIiEcvbEv(ptr noundef nonnull align 4 dereferenceable(8) %63) #11
  br i1 %659, label %660, label %709

660:                                              ; preds = %656
  %661 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %63) #11
  %662 = load i32, ptr %661, align 4, !tbaa !9
  %663 = icmp sgt i32 %662, 0
  br i1 %663, label %664, label %708

664:                                              ; preds = %660
  %665 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %63) #11
  %666 = load i32, ptr %665, align 4, !tbaa !9
  %667 = icmp sle i32 %666, 6
  br i1 %667, label %668, label %708

668:                                              ; preds = %664
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #11
  invoke void @_ZSt11make_uniqueIN4Bs2b4bs2bEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind writable sret(%"class.std::unique_ptr.35") align 8 %66)
          to label %669 unwind label %699

669:                                              ; preds = %668
  %670 = call noundef ptr @_ZNKSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  %671 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %63) #11
  %672 = load i32, ptr %671, align 4, !tbaa !9
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = getelementptr inbounds i8, ptr %673, i64 16
  %675 = getelementptr inbounds %struct.DeviceBase, ptr %674, i32 0, i32 2
  %676 = load i32, ptr %675, align 4, !tbaa !153
  invoke void @_ZN4Bs2b4bs2b10set_paramsEii(ptr noundef nonnull align 4 dereferenceable(44) %670, i32 noundef %672, i32 noundef %676)
          to label %677 unwind label %703

677:                                              ; preds = %669
  %678 = load ptr, ptr %5, align 8, !tbaa !5
  %679 = getelementptr inbounds i8, ptr %678, i64 16
  %680 = getelementptr inbounds %struct.DeviceBase, ptr %679, i32 0, i32 39
  %681 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %680, ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef @.str.17) #11
  %682 = load ptr, ptr %5, align 8, !tbaa !5
  %683 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 0
  store i8 0, ptr %683, align 8, !tbaa !134
  %684 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 1
  store i8 0, ptr %684, align 1, !tbaa !139
  %685 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 8 %685, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %685) #11
  %686 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 3
  store i8 0, ptr %686, align 8, !tbaa !140
  %687 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 4
  call void @llvm.memset.p0.i64(ptr align 8 %687, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %687) #11
  %688 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 5
  call void @llvm.memset.p0.i64(ptr align 8 %688, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %688) #11
  %689 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 6
  call void @llvm.memset.p0.i64(ptr align 8 %689, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %689) #11
  %690 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %67, i32 0, i32 7
  call void @llvm.memset.p0.i64(ptr align 8 %690, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %690) #11
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef %682, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %67)
          to label %691 unwind label %703

691:                                              ; preds = %677
  %692 = load ptr, ptr %5, align 8, !tbaa !5
  %693 = getelementptr inbounds i8, ptr %692, i64 16
  %694 = getelementptr inbounds %struct.DeviceBase, ptr %693, i32 0, i32 40
  store { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase11ProcessBs2bEm to i64), i64 0 }, ptr %694, align 16, !tbaa !151
  store i32 1, ptr %42, align 4
  call void @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %710

695:                                              ; preds = %645
  %696 = landingpad { ptr, i32 }
          cleanup
  %697 = extractvalue { ptr, i32 } %696, 0
  store ptr %697, ptr %19, align 8
  %698 = extractvalue { ptr, i32 } %696, 1
  store i32 %698, ptr %20, align 4
  br label %713

699:                                              ; preds = %668
  %700 = landingpad { ptr, i32 }
          cleanup
  %701 = extractvalue { ptr, i32 } %700, 0
  store ptr %701, ptr %19, align 8
  %702 = extractvalue { ptr, i32 } %700, 1
  store i32 %702, ptr %20, align 4
  br label %707

703:                                              ; preds = %677, %669
  %704 = landingpad { ptr, i32 }
          cleanup
  %705 = extractvalue { ptr, i32 } %704, 0
  store ptr %705, ptr %19, align 8
  %706 = extractvalue { ptr, i32 } %704, 1
  store i32 %706, ptr %20, align 4
  call void @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #11
  br label %707

707:                                              ; preds = %703, %699
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #11
  br label %713

708:                                              ; preds = %664, %660
  br label %709

709:                                              ; preds = %708, %656
  store i32 0, ptr %42, align 4
  br label %710

710:                                              ; preds = %709, %691
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  %711 = load i32, ptr %42, align 4
  switch i32 %711, label %728 [
    i32 0, label %712
  ]

712:                                              ; preds = %710
  br label %714

713:                                              ; preds = %707, %695
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #11
  br label %731

714:                                              ; preds = %712, %636
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef @.str.18) #11
  %715 = load ptr, ptr %5, align 8, !tbaa !5
  %716 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 0
  store i8 0, ptr %716, align 8, !tbaa !134
  %717 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 1
  store i8 0, ptr %717, align 1, !tbaa !139
  %718 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 2
  call void @llvm.memset.p0.i64(ptr align 8 %718, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %718) #11
  %719 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 3
  store i8 0, ptr %719, align 8, !tbaa !140
  %720 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 4
  call void @llvm.memset.p0.i64(ptr align 8 %720, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %720) #11
  %721 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 5
  call void @llvm.memset.p0.i64(ptr align 8 %721, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %721) #11
  %722 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 6
  call void @llvm.memset.p0.i64(ptr align 8 %722, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %722) #11
  %723 = getelementptr inbounds %"struct.(anonymous namespace)::DecoderConfig", ptr %68, i32 0, i32 7
  call void @llvm.memset.p0.i64(ptr align 8 %723, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %723) #11
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef %715, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %68)
          to label %724 unwind label %393

724:                                              ; preds = %714
  %725 = load ptr, ptr %5, align 8, !tbaa !5
  %726 = getelementptr inbounds i8, ptr %725, i64 16
  %727 = getelementptr inbounds %struct.DeviceBase, ptr %726, i32 0, i32 40
  store { i64, i64 } { i64 ptrtoint (ptr @_ZN10DeviceBase14ProcessAmbiDecEm to i64), i64 0 }, ptr %727, align 16, !tbaa !151
  store i32 0, ptr %42, align 4
  br label %728

728:                                              ; preds = %724, %710, %632, %569, %362
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #11
  %729 = load i32, ptr %42, align 4
  switch i32 %729, label %737 [
    i32 0, label %730
    i32 1, label %730
  ]

730:                                              ; preds = %728, %728
  ret void

731:                                              ; preds = %713, %618, %608, %598, %588, %579, %507, %446, %393, %389, %365
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #11
  br label %732

732:                                              ; preds = %731
  %733 = load ptr, ptr %19, align 8
  %734 = load i32, ptr %20, align 4
  %735 = insertvalue { ptr, i32 } poison, ptr %733, 0
  %736 = insertvalue { ptr, i32 } %735, i32 %734, 1
  resume { ptr, i32 } %736

737:                                              ; preds = %728
  unreachable
}

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9ALCdevice11configValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt8optionalIT_ESt17basic_string_viewIcS4_ESB_(ptr dead_on_unwind noalias writable sret(%"class.std::optional.102") align 8, ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) #4 align 2

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEENK3$_0clEPKc"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #4 align 2

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

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

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

; Function Attrs: nounwind
declare void @_Z8al_print8LogLevelPKcz(i32 noundef, ptr noundef, ...) #6

; Function Attrs: nounwind
declare noundef ptr @_Z20DevFmtChannelsString14DevFmtChannels(i8 noundef zeroext) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36), i64 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr, i1 noundef zeroext) #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef, i1 noundef zeroext, i1 noundef zeroext, ptr noundef byval(%"struct.(anonymous namespace)::DecoderConfig") align 8) #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) #7

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZNK12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEcvbEv(ptr noundef nonnull align 8 dereferenceable(96)) #2 align 2

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm16EE5beginEv(ptr noundef nonnull align 4 dereferenceable(64)) #8 align 2

; Function Attrs: mustprogress nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm16EE3endEv(ptr noundef nonnull align 4 dereferenceable(64)) #8 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIfEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) #4 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_117InitNearFieldCtrlEP9ALCdevicefjb(ptr noundef, float noundef, i32 noundef, i1 noundef zeroext) #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_116InitDistanceCompEP9ALCdeviceN2al4spanIK7ChannelLm18446744073709551615EEENS3_IKfLm16EEE(ptr noundef, ptr, i64, ptr) #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2al4spanIKfLm16EEC2ILm16EEERSt5arrayIfXT_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10BFormatDec12hasStablizerEv(ptr noundef nonnull align 16 dereferenceable(8232)) #2 align 2

declare void @_ZN10DeviceBase23ProcessAmbiDecStablizedEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #9

declare void @_ZN10DeviceBase14ProcessAmbiDecEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #9

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(1)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6bitsetILm6EE4testEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

declare void @_ZN9ALCdevice14enumerateHrtfsEv(ptr noundef nonnull align 16 dereferenceable(107960)) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind writable sret(%"class.al::intrusive_ptr") align 8, i64, ptr, i32 noundef) #9

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) #0 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIjEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalIjEcvbEv(ptr noundef nonnull align 4 dereferenceable(8)) #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_115InitHrtfPanningEP9ALCdevice(ptr noundef) #0

declare void @_ZN10DeviceBase11ProcessHrtfEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI13UhjEncoderIIRJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.147") align 8) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI10UhjEncoderILm256EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.155") align 8) #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI10UhjEncoderILm512EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.163") align 8) #4

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #10

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114InitUhjPanningEP9ALCdevice(ptr noundef) #0

declare void @_ZN10DeviceBase10ProcessUhjEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #9

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIiEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalIiEcvbEv(ptr noundef nonnull align 4 dereferenceable(8)) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN4Bs2b4bs2bEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.35") align 8) #4

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

declare void @_ZN4Bs2b4bs2b10set_paramsEii(ptr noundef nonnull align 4 dereferenceable(44), i32 noundef, i32 noundef) #9

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

declare void @_ZN10DeviceBase11ProcessBs2bEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #9

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #5 = { 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 #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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { mustprogress nounwind willreturn memory(none) 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 = { "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 #10 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 107488}
!12 = !{!"_ZTS10DeviceBase", !13, i64 0, !16, i64 1, !10, i64 4, !10, i64 8, !10, i64 12, !17, i64 16, !18, i64 17, !10, i64 20, !19, i64 24, !15, i64 28, !20, i64 29, !21, i64 30, !22, i64 32, !25, i64 64, !27, i64 72, !10, i64 76, !28, i64 80, !19, i64 84, !29, i64 88, !38, i64 240, !40, i64 248, !41, i64 256, !42, i64 264, !42, i64 1288, !43, i64 2320, !44, i64 84240, !45, i64 89552, !46, i64 93648, !47, i64 98000, !48, i64 107216, !52, i64 107240, !55, i64 107384, !56, i64 107400, !59, i64 107472, !65, i64 107480, !10, i64 107488, !66, i64 107496, !72, i64 107504, !78, i64 107512, !7, i64 107520, !84, i64 107536, !90, i64 107544, !19, i64 107552, !10, i64 107556, !38, i64 107560, !96, i64 107568}
!13 = !{!"_ZTSSt6atomicIbE", !14, i64 0}
!14 = !{!"_ZTSSt13__atomic_baseIbE", !15, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTS10DeviceType", !7, i64 0}
!17 = !{!"_ZTS14DevFmtChannels", !7, i64 0}
!18 = !{!"_ZTS10DevFmtType", !7, i64 0}
!19 = !{!"float", !7, i64 0}
!20 = !{!"_ZTS13DevAmbiLayout", !7, i64 0}
!21 = !{!"_ZTS14DevAmbiScaling", !7, i64 0}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !24, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"long", !7, i64 0}
!25 = !{!"_ZTSSt6bitsetILm6EE", !26, i64 0}
!26 = !{!"_ZTSSt12_Base_bitsetILm1EE", !24, i64 0}
!27 = !{!"_ZTS11DeviceState", !7, i64 0}
!28 = !{!"_ZTS10RenderMode", !7, i64 0}
!29 = !{!"_ZTS9NfcFilter", !30, i64 0, !32, i64 20, !34, i64 52, !36, i64 96}
!30 = !{!"_ZTS10NfcFilter1", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !31, i64 16}
!31 = !{!"_ZTSSt5arrayIfLm1EE", !7, i64 0}
!32 = !{!"_ZTS10NfcFilter2", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !33, i64 24}
!33 = !{!"_ZTSSt5arrayIfLm2EE", !7, i64 0}
!34 = !{!"_ZTS10NfcFilter3", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !35, i64 32}
!35 = !{!"_ZTSSt5arrayIfLm3EE", !7, i64 0}
!36 = !{!"_ZTS10NfcFilter4", !19, i64 0, !19, i64 4, !19, i64 8, !19, i64 12, !19, i64 16, !19, i64 20, !19, i64 24, !19, i64 28, !19, i64 32, !19, i64 36, !37, i64 40}
!37 = !{!"_ZTSSt5arrayIfLm4EE", !7, i64 0}
!38 = !{!"_ZTSSt6atomicIjE", !39, i64 0}
!39 = !{!"_ZTSSt13__atomic_baseIjE", !10, i64 0}
!40 = !{!"_ZTSSt6atomicINSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEEE", !41, i64 0}
!41 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !24, i64 0}
!42 = !{!"_ZTSSt5arrayIS_IfLm16EELm16EE", !7, i64 0}
!43 = !{!"_ZTSSt5arrayIfLm20480EE", !7, i64 0}
!44 = !{!"_ZTSSt5arrayIfLm1328EE", !7, i64 0}
!45 = !{!"_ZTSSt5arrayIfLm1024EE", !7, i64 0}
!46 = !{!"_ZTSSt5arrayIfLm1088EE", !7, i64 0}
!47 = !{!"_ZTSSt5arrayIS_IfLm2EELm1152EE", !7, i64 0}
!48 = !{!"_ZTSSt6vectorISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE", !49, i64 0}
!49 = !{!"_ZTSSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE12_Vector_implE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!52 = !{!"_ZTS9MixParams", !53, i64 0, !54, i64 128}
!53 = !{!"_ZTSSt5arrayI15BFChannelConfigLm16EE", !7, i64 0}
!54 = !{!"_ZTSN2al4spanISt5arrayIfLm1024EELm18446744073709551615EEE", !6, i64 0, !24, i64 8}
!55 = !{!"_ZTSSt5arrayIjLm4EE", !7, i64 0}
!56 = !{!"_ZTS13RealMixParams", !57, i64 0, !58, i64 16, !54, i64 56}
!57 = !{!"_ZTSN2al4spanIK13InputRemixMapLm18446744073709551615EEE", !6, i64 0, !24, i64 8}
!58 = !{!"_ZTSSt5arrayIhLm36EE", !7, i64 0}
!59 = !{!"_ZTSSt10unique_ptrI15DirectHrtfStateSt14default_deleteIS0_EE", !60, i64 0}
!60 = !{!"_ZTSSt15__uniq_ptr_dataI15DirectHrtfStateSt14default_deleteIS0_ELb1ELb1EE", !61, i64 0}
!61 = !{!"_ZTSSt15__uniq_ptr_implI15DirectHrtfStateSt14default_deleteIS0_EE", !62, i64 0}
!62 = !{!"_ZTSSt5tupleIJP15DirectHrtfStateSt14default_deleteIS0_EEE", !63, i64 0}
!63 = !{!"_ZTSSt11_Tuple_implILm0EJP15DirectHrtfStateSt14default_deleteIS0_EEE", !64, i64 0}
!64 = !{!"_ZTSSt10_Head_baseILm0EP15DirectHrtfStateLb0EE", !6, i64 0}
!65 = !{!"_ZTSN2al13intrusive_ptrI9HrtfStoreEE", !6, i64 0}
!66 = !{!"_ZTSSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EE", !67, i64 0}
!67 = !{!"_ZTSSt15__uniq_ptr_dataI14UhjEncoderBaseSt14default_deleteIS0_ELb1ELb1EE", !68, i64 0}
!68 = !{!"_ZTSSt15__uniq_ptr_implI14UhjEncoderBaseSt14default_deleteIS0_EE", !69, i64 0}
!69 = !{!"_ZTSSt5tupleIJP14UhjEncoderBaseSt14default_deleteIS0_EEE", !70, i64 0}
!70 = !{!"_ZTSSt11_Tuple_implILm0EJP14UhjEncoderBaseSt14default_deleteIS0_EEE", !71, i64 0}
!71 = !{!"_ZTSSt10_Head_baseILm0EP14UhjEncoderBaseLb0EE", !6, i64 0}
!72 = !{!"_ZTSSt10unique_ptrI10BFormatDecSt14default_deleteIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt15__uniq_ptr_dataI10BFormatDecSt14default_deleteIS0_ELb1ELb1EE", !74, i64 0}
!74 = !{!"_ZTSSt15__uniq_ptr_implI10BFormatDecSt14default_deleteIS0_EE", !75, i64 0}
!75 = !{!"_ZTSSt5tupleIJP10BFormatDecSt14default_deleteIS0_EEE", !76, i64 0}
!76 = !{!"_ZTSSt11_Tuple_implILm0EJP10BFormatDecSt14default_deleteIS0_EEE", !77, i64 0}
!77 = !{!"_ZTSSt10_Head_baseILm0EP10BFormatDecLb0EE", !6, i64 0}
!78 = !{!"_ZTSSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EE", !79, i64 0}
!79 = !{!"_ZTSSt15__uniq_ptr_dataIN4Bs2b4bs2bESt14default_deleteIS1_ELb1ELb1EE", !80, i64 0}
!80 = !{!"_ZTSSt15__uniq_ptr_implIN4Bs2b4bs2bESt14default_deleteIS1_EE", !81, i64 0}
!81 = !{!"_ZTSSt5tupleIJPN4Bs2b4bs2bESt14default_deleteIS1_EEE", !82, i64 0}
!82 = !{!"_ZTSSt11_Tuple_implILm0EJPN4Bs2b4bs2bESt14default_deleteIS1_EEE", !83, i64 0}
!83 = !{!"_ZTSSt10_Head_baseILm0EPN4Bs2b4bs2bELb0EE", !6, i64 0}
!84 = !{!"_ZTSSt10unique_ptrI10CompressorSt14default_deleteIS0_EE", !85, i64 0}
!85 = !{!"_ZTSSt15__uniq_ptr_dataI10CompressorSt14default_deleteIS0_ELb1ELb1EE", !86, i64 0}
!86 = !{!"_ZTSSt15__uniq_ptr_implI10CompressorSt14default_deleteIS0_EE", !87, i64 0}
!87 = !{!"_ZTSSt5tupleIJP10CompressorSt14default_deleteIS0_EEE", !88, i64 0}
!88 = !{!"_ZTSSt11_Tuple_implILm0EJP10CompressorSt14default_deleteIS0_EEE", !89, i64 0}
!89 = !{!"_ZTSSt10_Head_baseILm0EP10CompressorLb0EE", !6, i64 0}
!90 = !{!"_ZTSSt10unique_ptrI12DistanceCompSt14default_deleteIS0_EE", !91, i64 0}
!91 = !{!"_ZTSSt15__uniq_ptr_dataI12DistanceCompSt14default_deleteIS0_ELb1ELb1EE", !92, i64 0}
!92 = !{!"_ZTSSt15__uniq_ptr_implI12DistanceCompSt14default_deleteIS0_EE", !93, i64 0}
!93 = !{!"_ZTSSt5tupleIJP12DistanceCompSt14default_deleteIS0_EEE", !94, i64 0}
!94 = !{!"_ZTSSt11_Tuple_implILm0EJP12DistanceCompSt14default_deleteIS0_EEE", !95, i64 0}
!95 = !{!"_ZTSSt10_Head_baseILm0EP12DistanceCompLb0EE", !6, i64 0}
!96 = !{!"_ZTSN2al17atomic_unique_ptrINS_9FlexArrayIP11ContextBaseLm8EEESt14default_deleteIS4_EEE", !97, i64 0}
!97 = !{!"_ZTSSt6atomicIPN2al9FlexArrayIP11ContextBaseLm8EEEE", !98, i64 0}
!98 = !{!"_ZTSSt13__atomic_baseIPN2al9FlexArrayIP11ContextBaseLm8EEEE", !6, i64 0}
!99 = !{!12, !19, i64 24}
!100 = !{!12, !15, i64 28}
!101 = !{!12, !28, i64 80}
!102 = !{!12, !17, i64 16}
!103 = !{!104, !104, i64 0}
!104 = !{!"_ZTS14StereoEncoding", !7, i64 0}
!105 = !{!106, !10, i64 107712}
!106 = !{!"_ZTS9ALCdevice", !107, i64 0, !12, i64 16, !108, i64 107592, !110, i64 107632, !10, i64 107640, !10, i64 107644, !10, i64 107648, !10, i64 107652, !22, i64 107656, !116, i64 107688, !10, i64 107712, !120, i64 107716, !108, i64 107720, !122, i64 107760, !108, i64 107784, !126, i64 107824, !130, i64 107848, !130, i64 107904}
!107 = !{!"_ZTSN2al13intrusive_refI9ALCdeviceEE", !38, i64 0}
!108 = !{!"_ZTSSt5mutex", !109, i64 0}
!109 = !{!"_ZTSSt12__mutex_base", !7, i64 0}
!110 = !{!"_ZTSSt10unique_ptrI11BackendBaseSt14default_deleteIS0_EE", !111, i64 0}
!111 = !{!"_ZTSSt15__uniq_ptr_dataI11BackendBaseSt14default_deleteIS0_ELb1ELb1EE", !112, i64 0}
!112 = !{!"_ZTSSt15__uniq_ptr_implI11BackendBaseSt14default_deleteIS0_EE", !113, i64 0}
!113 = !{!"_ZTSSt5tupleIJP11BackendBaseSt14default_deleteIS0_EEE", !114, i64 0}
!114 = !{!"_ZTSSt11_Tuple_implILm0EJP11BackendBaseSt14default_deleteIS0_EEE", !115, i64 0}
!115 = !{!"_ZTSSt10_Head_baseILm0EP11BackendBaseLb0EE", !6, i64 0}
!116 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !117, i64 0}
!117 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !118, i64 0}
!118 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !119, i64 0}
!119 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!120 = !{!"_ZTSSt6atomicIiE", !121, i64 0}
!121 = !{!"_ZTSSt13__atomic_baseIiE", !10, i64 0}
!122 = !{!"_ZTSSt6vectorI13EffectSubListSaIS0_EE", !123, i64 0}
!123 = !{!"_ZTSSt12_Vector_baseI13EffectSubListSaIS0_EE", !124, i64 0}
!124 = !{!"_ZTSNSt12_Vector_baseI13EffectSubListSaIS0_EE12_Vector_implE", !125, i64 0}
!125 = !{!"_ZTSNSt12_Vector_baseI13EffectSubListSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!126 = !{!"_ZTSSt6vectorI13FilterSubListSaIS0_EE", !127, i64 0}
!127 = !{!"_ZTSSt12_Vector_baseI13FilterSubListSaIS0_EE", !128, i64 0}
!128 = !{!"_ZTSNSt12_Vector_baseI13FilterSubListSaIS0_EE12_Vector_implE", !129, i64 0}
!129 = !{!"_ZTSNSt12_Vector_baseI13FilterSubListSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!130 = !{!"_ZTSSt13unordered_mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !131, i64 0}
!131 = !{!"_ZTSSt10_HashtableIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !6, i64 0, !24, i64 8, !132, i64 16, !24, i64 24, !133, i64 32, !6, i64 48}
!132 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!133 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !19, i64 0, !24, i64 8}
!134 = !{!135, !7, i64 0}
!135 = !{!"_ZTSN12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEE", !7, i64 0, !15, i64 1, !136, i64 8, !21, i64 24, !137, i64 32, !138, i64 48, !137, i64 64, !138, i64 80}
!136 = !{!"_ZTSN2al4spanIK7ChannelLm18446744073709551615EEE", !6, i64 0, !24, i64 8}
!137 = !{!"_ZTSN2al4spanIKfLm18446744073709551615EEE", !6, i64 0, !24, i64 8}
!138 = !{!"_ZTSN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEE", !6, i64 0, !24, i64 8}
!139 = !{!135, !15, i64 1}
!140 = !{!135, !21, i64 24}
!141 = !{!142, !6, i64 0}
!142 = !{!"_ZTSZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEE3$_0", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!143 = !{!15, !15, i64 0}
!144 = !{i8 0, i8 2}
!145 = !{}
!146 = !{!7, !7, i64 0}
!147 = !{i64 0, i64 1, !146, i64 1, i64 1, !143, i64 8, i64 8, !5, i64 16, i64 8, !148, i64 24, i64 1, !149, i64 32, i64 8, !5, i64 40, i64 8, !148, i64 48, i64 8, !5, i64 56, i64 8, !148, i64 64, i64 8, !5, i64 72, i64 8, !148, i64 80, i64 8, !5, i64 88, i64 8, !148}
!148 = !{!24, !24, i64 0}
!149 = !{!21, !21, i64 0}
!150 = !{!19, !19, i64 0}
!151 = !{!12, !7, i64 107520}
!152 = !{i64 0, i64 8, !148, i64 8, i64 8, !5}
!153 = !{!12, !10, i64 4}
!154 = !{!155, !155, i64 0}
!155 = !{!"_ZTS14UhjQualityType", !7, i64 0}
!156 = !{!12, !16, i64 1}


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

%"class.std::optional" = type { %"struct.std::_Optional_base" }
%"struct.std::_Optional_base" = type { %"struct.std::_Optional_payload" }
%"struct.std::_Optional_payload" = type { %"struct.std::_Optional_payload_base" }
%"struct.std::_Optional_payload_base" = type { %"union.std::_Optional_payload_base<StereoEncoding>::_Storage", i8 }
%"union.std::_Optional_payload_base<StereoEncoding>::_Storage" = type { %"struct.std::_Optional_payload_base<StereoEncoding>::_Empty_byte" }
%"struct.std::_Optional_payload_base<StereoEncoding>::_Empty_byte" = type { i8 }
%"class.al::intrusive_ptr" = type { ptr }
%"class.std::unique_ptr.91" = type { %"struct.std::__uniq_ptr_data.92" }
%"struct.std::__uniq_ptr_data.92" = type { %"class.std::__uniq_ptr_impl.93" }
%"class.std::__uniq_ptr_impl.93" = type { %"class.std::tuple.94" }
%"class.std::tuple.94" = type { %"struct.std::_Tuple_impl.95" }
%"struct.std::_Tuple_impl.95" = type { %"struct.std::_Head_base.98" }
%"struct.std::_Head_base.98" = type { ptr }
%"struct.(anonymous namespace)::DecoderConfig" = type { i8, i8, %"class.al::span.99", i8, %"class.al::span.100", %"class.al::span.101", %"class.al::span.100", %"class.al::span.101" }
%"class.al::span.99" = type { ptr, i64 }
%"class.al::span.100" = type { ptr, i64 }
%"class.al::span.101" = type { ptr, i64 }
%"struct.std::array.7" = type { [16 x float] }
%class.anon = type { ptr, ptr, ptr, ptr }
%"class.std::optional.102" = type { %"struct.std::_Optional_base.103" }
%"struct.std::_Optional_base.103" = type { %"struct.std::_Optional_payload.105" }
%"struct.std::_Optional_payload.105" = type { %"struct.std::_Optional_payload.base", [7 x i8] }
%"struct.std::_Optional_payload.base" = type { %"struct.std::_Optional_payload_base.base" }
%"struct.std::_Optional_payload_base.base" = type <{ %"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage", i8 }>
%"union.std::_Optional_payload_base<std::__cxx11::basic_string<char>>::_Storage" = type { %"class.std::__cxx11::basic_string" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::basic_string_view" = type { i64, ptr }
%"class.std::optional.110" = type { %"struct.std::_Optional_base.111" }
%"struct.std::_Optional_base.111" = type { %"struct.std::_Optional_payload.113" }
%"struct.std::_Optional_payload.113" = type { %"struct.std::_Optional_payload_base.base.115", [3 x i8] }
%"struct.std::_Optional_payload_base.base.115" = type <{ %"union.std::_Optional_payload_base<float>::_Storage", i8 }>
%"union.std::_Optional_payload_base<float>::_Storage" = type { float }
%"class.al::span.118" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::optional.139" = type { %"struct.std::_Optional_base.140" }
%"struct.std::_Optional_base.140" = type { %"struct.std::_Optional_payload.142" }
%"struct.std::_Optional_payload.142" = type { %"struct.std::_Optional_payload_base.base.144", [3 x i8] }
%"struct.std::_Optional_payload_base.base.144" = type <{ %"union.std::_Optional_payload_base<unsigned int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<unsigned int>::_Storage" = type { i32 }
%"class.std::unique_ptr.147" = type { %"struct.std::__uniq_ptr_data.148" }
%"struct.std::__uniq_ptr_data.148" = type { %"class.std::__uniq_ptr_impl.149" }
%"class.std::__uniq_ptr_impl.149" = type { %"class.std::tuple.150" }
%"class.std::tuple.150" = type { %"struct.std::_Tuple_impl.151" }
%"struct.std::_Tuple_impl.151" = type { %"struct.std::_Head_base.154" }
%"struct.std::_Head_base.154" = type { ptr }
%"class.std::unique_ptr.155" = type { %"struct.std::__uniq_ptr_data.156" }
%"struct.std::__uniq_ptr_data.156" = type { %"class.std::__uniq_ptr_impl.157" }
%"class.std::__uniq_ptr_impl.157" = type { %"class.std::tuple.158" }
%"class.std::tuple.158" = type { %"struct.std::_Tuple_impl.159" }
%"struct.std::_Tuple_impl.159" = type { %"struct.std::_Head_base.162" }
%"struct.std::_Head_base.162" = type { ptr }
%"class.std::unique_ptr.163" = type { %"struct.std::__uniq_ptr_data.164" }
%"struct.std::__uniq_ptr_data.164" = type { %"class.std::__uniq_ptr_impl.165" }
%"class.std::__uniq_ptr_impl.165" = type { %"class.std::tuple.166" }
%"class.std::tuple.166" = type { %"struct.std::_Tuple_impl.167" }
%"struct.std::_Tuple_impl.167" = type { %"struct.std::_Head_base.170" }
%"struct.std::_Head_base.170" = type { ptr }
%"class.std::optional.171" = type { %"struct.std::_Optional_base.172" }
%"struct.std::_Optional_base.172" = type { %"struct.std::_Optional_payload.174" }
%"struct.std::_Optional_payload.174" = type { %"struct.std::_Optional_payload_base.base.176", [3 x i8] }
%"struct.std::_Optional_payload_base.base.176" = type <{ %"union.std::_Optional_payload_base<int>::_Storage", i8 }>
%"union.std::_Optional_payload_base<int>::_Storage" = type { i32 }
%"class.std::unique_ptr.35" = type { %"struct.std::__uniq_ptr_data.36" }
%"struct.std::__uniq_ptr_data.36" = type { %"class.std::__uniq_ptr_impl.37" }
%"class.std::__uniq_ptr_impl.37" = type { %"class.std::tuple.38" }
%"class.std::tuple.38" = type { %"struct.std::_Tuple_impl.39" }
%"struct.std::_Tuple_impl.39" = type { %"struct.std::_Head_base.42" }
%"struct.std::_Head_base.42" = type { ptr }

@.str = external hidden unnamed_addr constant [5 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [10 x i8], align 1
@_ZL11MinIrLength = external hidden constant i32, align 4
@UhjEncodeQuality = external dso_local local_unnamed_addr global i8, align 1
@.str.13 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [91 x i8], align 1
@__PRETTY_FUNCTION__._Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE = external hidden unnamed_addr constant [70 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [18 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local void @_Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE(ptr noundef %0, i32 noundef %1, i16 %2) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %4 = alloca %"class.std::optional", align 2
  %5 = alloca %"class.al::intrusive_ptr", align 8
  %6 = alloca %"class.al::intrusive_ptr", align 8
  %7 = alloca %"class.al::intrusive_ptr", align 8
  %8 = alloca %"class.std::unique_ptr.91", align 8
  %9 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %10 = alloca %"struct.std::array.7", align 4
  %11 = alloca %class.anon, align 8
  %12 = alloca %"class.std::optional.102", align 8
  %13 = alloca %"class.std::basic_string_view", align 8
  %14 = alloca %"class.std::basic_string_view", align 8
  %15 = alloca %"class.std::basic_string_view", align 8
  %16 = alloca %"class.std::basic_string_view", align 8
  %17 = alloca %"class.std::basic_string_view", align 8
  %18 = alloca %"class.std::basic_string_view", align 8
  %19 = alloca %"class.std::optional.110", align 8
  %20 = alloca %"class.std::basic_string_view", align 8
  %21 = alloca %"class.std::basic_string_view", align 8
  %22 = alloca float, align 4
  %23 = alloca %"class.al::span.99", align 8
  %24 = alloca %"class.al::span.118", align 8
  %25 = alloca i8, align 1
  %26 = alloca %"class.std::basic_string_view", align 8
  %27 = alloca %"class.al::intrusive_ptr", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca %"class.std::basic_string_view", align 8
  %31 = alloca %"class.al::intrusive_ptr", align 8
  %32 = alloca %"class.al::intrusive_ptr", align 8
  %33 = alloca %"class.std::optional.139", align 8
  %34 = alloca %"class.std::basic_string_view", align 8
  %35 = alloca %"class.std::basic_string_view", align 8
  %36 = alloca %"class.al::intrusive_ptr", align 8
  %37 = alloca i8, align 1
  %38 = alloca %"class.std::unique_ptr.147", align 8
  %39 = alloca %"class.std::unique_ptr.155", align 8
  %40 = alloca %"class.std::unique_ptr.163", align 8
  %41 = alloca %"class.std::optional.171", align 8
  %42 = alloca %"class.std::basic_string_view", align 8
  %43 = alloca %"class.std::basic_string_view", align 8
  %44 = alloca %"class.std::unique_ptr.35", align 8
  %45 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  %46 = alloca %"struct.(anonymous namespace)::DecoderConfig", align 8
  store i16 %2, ptr %4, align 2
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %47 = getelementptr inbounds i8, ptr %0, i64 107496
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EOS2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  %48 = getelementptr inbounds i8, ptr %0, i64 107488
  %49 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI15DirectHrtfStateSt14default_deleteIS0_EEaSEDn(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr null) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr null) #10
  %50 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %51 = getelementptr inbounds i8, ptr %0, i64 107504
  store i32 0, ptr %51, align 16, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %0, i64 107656
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5clearEv(ptr noundef nonnull align 8 dereferenceable(32) %52) #10
  %53 = getelementptr inbounds i8, ptr %0, i64 40
  store float 4.000000e+02, ptr %53, align 8, !tbaa !97
  %54 = getelementptr inbounds i8, ptr %0, i64 44
  store i8 0, ptr %54, align 4, !tbaa !98
  %55 = getelementptr inbounds i8, ptr %0, i64 96
  store i8 0, ptr %55, align 16, !tbaa !99
  %56 = getelementptr inbounds i8, ptr %0, i64 32
  %57 = load i8, ptr %56, align 16, !tbaa !100
  %.not = icmp eq i8 %57, 1
  br i1 %.not, label %192, label %58

58:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr null) #10
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  %60 = call noundef zeroext i1 @_ZNKSt8optionalI14StereoEncodingEcvbEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #10
  br i1 %60, label %61, label %67

61:                                               ; preds = %58
  %62 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNRSt8optionalI14StereoEncodingEdeEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #10
  %63 = load i8, ptr %62, align 1, !tbaa !101
  %64 = icmp eq i8 %63, 2
  br i1 %64, label %65, label %67

65:                                               ; preds = %61
  %66 = getelementptr inbounds i8, ptr %0, i64 107712
  store i32 5, ptr %66, align 16, !tbaa !103
  br label %67

67:                                               ; preds = %65, %61, %58
  %68 = load i8, ptr %56, align 16, !tbaa !100
  switch i8 %68, label %76 [
    i8 2, label %69
    i8 3, label %70
    i8 4, label %71
    i8 5, label %72
    i8 6, label %73
    i8 7, label %74
    i8 8, label %75
  ]

69:                                               ; preds = %67
  br label %76

70:                                               ; preds = %67
  br label %76

71:                                               ; preds = %67
  br label %76

72:                                               ; preds = %67
  br label %76

73:                                               ; preds = %67
  br label %76

74:                                               ; preds = %67
  br label %76

75:                                               ; preds = %67
  br label %76

76:                                               ; preds = %75, %74, %73, %72, %71, %70, %69, %67
  %.not142 = phi i1 [ true, %67 ], [ false, %75 ], [ false, %74 ], [ false, %73 ], [ false, %72 ], [ false, %71 ], [ false, %70 ], [ false, %69 ]
  %.0 = phi ptr [ null, %67 ], [ @.str.6, %75 ], [ @.str.5, %74 ], [ @.str.4, %73 ], [ @.str.3, %72 ], [ @.str.2, %71 ], [ @.str.1, %70 ], [ @.str, %69 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EEC2IS5_vEEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %9) #10
  store i8 0, ptr %9, align 8, !tbaa !132
  %77 = getelementptr inbounds i8, ptr %9, i64 1
  store i8 0, ptr %77, align 1, !tbaa !137
  %78 = getelementptr inbounds i8, ptr %9, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %78, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %78) #10
  %79 = getelementptr inbounds i8, ptr %9, i64 24
  store i8 0, ptr %79, align 8, !tbaa !138
  %80 = getelementptr inbounds i8, ptr %9, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %80, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %80) #10
  %81 = getelementptr inbounds i8, ptr %9, i64 48
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %81, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %81) #10
  %82 = getelementptr inbounds i8, ptr %9, i64 64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %82, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %82) #10
  %83 = getelementptr inbounds i8, ptr %9, i64 80
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %83, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %83) #10
  call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %10) #10
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(64) %10, i8 0, i64 64, i1 false)
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #10
  store ptr %0, ptr %11, align 8, !tbaa !139
  %84 = getelementptr inbounds i8, ptr %11, i64 8
  store ptr %8, ptr %84, align 8, !tbaa !141
  %85 = getelementptr inbounds i8, ptr %11, i64 16
  store ptr %9, ptr %85, align 8, !tbaa !141
  %86 = getelementptr inbounds i8, ptr %11, i64 24
  store ptr %10, ptr %86, align 8, !tbaa !141
  br i1 %.not142, label %.critedge160, label %87

87:                                               ; preds = %76
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %13, ptr noundef @.str.7) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef %.0) #10
  %88 = load i64, ptr %13, align 8
  %89 = getelementptr inbounds i8, ptr %13, i64 8
  %90 = load ptr, ptr %89, align 8
  %91 = load i64, ptr %14, align 8
  %92 = getelementptr inbounds i8, ptr %14, i64 8
  %93 = load ptr, ptr %92, align 8
  invoke void @_ZN9ALCdevice11configValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt8optionalIT_ESt17basic_string_viewIcS4_ESB_(ptr dead_on_unwind nonnull writable sret(%"class.std::optional.102") align 8 %12, ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %88, ptr %90, i64 %91, ptr %93)
          to label %94 unwind label %100

94:                                               ; preds = %87
  %95 = call noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40) %12) #10
  br i1 %95, label %96, label %.critedge166

96:                                               ; preds = %94
  %97 = call noundef ptr @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEptEv(ptr noundef nonnull align 8 dereferenceable(40) %12) #10
  %98 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %97) #10
  %99 = invoke noundef zeroext i1 @"_ZZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEENK3$_0clEPKc"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef %98)
          to label %104 unwind label %102

100:                                              ; preds = %87
  %101 = landingpad { ptr, i32 }
          cleanup
  br label %105

102:                                              ; preds = %96
  %103 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #10
  br label %105

104:                                              ; preds = %96
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10
  br i1 %99, label %109, label %.critedge160

105:                                              ; preds = %102, %100
  %.pn143 = phi { ptr, i32 } [ %103, %102 ], [ %101, %100 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10
  br label %191

.critedge166:                                     ; preds = %94
  call void @_ZNSt14_Optional_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEELb0ELb0EED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %12) #10
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10
  br label %.critedge160

.critedge160:                                     ; preds = %76, %.critedge166, %104
  %106 = load i8, ptr %56, align 16, !tbaa !100
  %.not145 = icmp eq i8 %106, 9
  br i1 %.not145, label %109, label %107

107:                                              ; preds = %.critedge160
  %108 = call noundef ptr @_Z20DevFmtChannelsString14DevFmtChannels(i8 noundef zeroext %106) #10
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef nonnull @.str.8, ptr noundef %108) #10
  br label %109

109:                                              ; preds = %107, %.critedge160, %104
  %110 = getelementptr inbounds i8, ptr %0, i64 107432
  %111 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %110, i64 noundef 2) #10
  %112 = load i8, ptr %111, align 1, !tbaa !142
  %.not146 = icmp eq i8 %112, -1
  br i1 %.not146, label %127, label %113

113:                                              ; preds = %109
  %114 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %110, i64 noundef 0) #10
  %115 = load i8, ptr %114, align 1, !tbaa !142
  %.not147 = icmp eq i8 %115, -1
  br i1 %.not147, label %127, label %116

116:                                              ; preds = %113
  %117 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36) %110, i64 noundef 1) #10
  %118 = load i8, ptr %117, align 1, !tbaa !142
  %.not148 = icmp eq i8 %118, -1
  br i1 %.not148, label %127, label %119

119:                                              ; preds = %116
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %16, ptr noundef @.str.9) #10
  %120 = load i64, ptr %15, align 8
  %121 = getelementptr inbounds i8, ptr %15, i64 8
  %122 = load ptr, ptr %121, align 8
  %123 = load i64, ptr %16, align 8
  %124 = getelementptr inbounds i8, ptr %16, i64 8
  %125 = load ptr, ptr %124, align 8
  %126 = invoke noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %120, ptr %122, i64 %123, ptr %125, i1 noundef zeroext false)
          to label %127 unwind label %144

127:                                              ; preds = %119, %116, %113, %109
  %128 = phi i1 [ false, %116 ], [ false, %113 ], [ false, %109 ], [ %126, %119 ]
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %17, ptr noundef @.str.7) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef @.str.10) #10
  %129 = load i64, ptr %17, align 8
  %130 = getelementptr inbounds i8, ptr %17, i64 8
  %131 = load ptr, ptr %130, align 8
  %132 = load i64, ptr %18, align 8
  %133 = getelementptr inbounds i8, ptr %18, i64 8
  %134 = load ptr, ptr %133, align 8
  %135 = invoke noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %129, ptr %131, i64 %132, ptr %134, i1 noundef zeroext true)
          to label %136 unwind label %146

136:                                              ; preds = %127
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef nonnull %0, i1 noundef zeroext %135, i1 noundef zeroext %128, ptr noundef nonnull byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %9)
          to label %137 unwind label %146

137:                                              ; preds = %136
  %138 = call noundef zeroext i1 @_ZNK12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEcvbEv(ptr noundef nonnull align 8 dereferenceable(96) %9) #10
  br i1 %138, label %139, label %184

139:                                              ; preds = %137
  %140 = call noundef ptr @_ZNSt5arrayIfLm16EE5beginEv(ptr noundef nonnull align 4 dereferenceable(64) %10) #11
  %141 = call noundef ptr @_ZNSt5arrayIfLm16EE3endEv(ptr noundef nonnull align 4 dereferenceable(64) %10) #11
  %.not149167 = icmp eq ptr %140, %141
  br i1 %.not149167, label %._crit_edge.thread, label %.lr.ph

._crit_edge.thread:                               ; preds = %139
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #10
  br label %155

._crit_edge:                                      ; preds = %.lr.ph
  %142 = fcmp ogt float %.1118, 0.000000e+00
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %22) #10
  %143 = fcmp ogt float %.1120, 0.000000e+00
  %or.cond = select i1 %142, i1 %143, i1 false
  br i1 %or.cond, label %153, label %155

144:                                              ; preds = %119
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %191

146:                                              ; preds = %136, %127
  %147 = landingpad { ptr, i32 }
          cleanup
  br label %191

.lr.ph:                                           ; preds = %139, %.lr.ph
  %.0117170 = phi float [ %.1118, %.lr.ph ], [ 0.000000e+00, %139 ]
  %.0119169 = phi float [ %.1120, %.lr.ph ], [ 0.000000e+00, %139 ]
  %.0123168 = phi ptr [ %152, %.lr.ph ], [ %140, %139 ]
  %148 = load float, ptr %.0123168, align 4, !tbaa !143
  %149 = fcmp ogt float %148, 0.000000e+00
  %150 = fadd float %.0117170, %148
  %151 = fadd float %.0119169, 1.000000e+00
  %.1120 = select i1 %149, float %151, float %.0119169
  %.1118 = select i1 %149, float %150, float %.0117170
  %152 = getelementptr inbounds i8, ptr %.0123168, i64 4
  %.not149 = icmp eq ptr %152, %141
  br i1 %.not149, label %._crit_edge, label %.lr.ph

153:                                              ; preds = %._crit_edge
  %154 = fdiv float %.1118, %.1120
  br label %166

155:                                              ; preds = %._crit_edge.thread, %._crit_edge
  %156 = phi i1 [ false, %._crit_edge.thread ], [ %143, %._crit_edge ]
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef @.str.7) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %21, ptr noundef @.str.11) #10
  %157 = load i64, ptr %20, align 8
  %158 = getelementptr inbounds i8, ptr %20, i64 8
  %159 = load ptr, ptr %158, align 8
  %160 = load i64, ptr %21, align 8
  %161 = getelementptr inbounds i8, ptr %21, i64 8
  %162 = load ptr, ptr %161, align 8
  %163 = invoke i64 @_ZN9ALCdevice11configValueIfEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %157, ptr %159, i64 %160, ptr %162)
          to label %164 unwind label %180

164:                                              ; preds = %155
  store i64 %163, ptr %19, align 8
  store float 1.000000e+00, ptr %22, align 4, !tbaa !143
  %165 = call noundef float @_ZNOSt8optionalIfE8value_orIfEEfOT_(ptr noundef nonnull align 4 dereferenceable(8) %19, ptr noundef nonnull align 4 dereferenceable(4) %22)
  br label %166

166:                                              ; preds = %164, %153
  %167 = phi i1 [ %143, %153 ], [ %156, %164 ]
  %168 = phi float [ %154, %153 ], [ %165, %164 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %22) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  %169 = load i8, ptr %9, align 8, !tbaa !132
  %170 = zext i8 %169 to i32
  %171 = load i8, ptr %77, align 1, !tbaa !137, !range !144, !noundef !145
  %172 = trunc nuw i8 %171 to i1
  invoke void @_ZN12_GLOBAL__N_117InitNearFieldCtrlEP9ALCdevicefjb(ptr noundef %0, float noundef %168, i32 noundef %170, i1 noundef zeroext %172)
          to label %173 unwind label %182

173:                                              ; preds = %166
  br i1 %167, label %174, label %184

174:                                              ; preds = %173
  invoke void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %78)
          to label %175 unwind label %182

175:                                              ; preds = %174
  call void @_ZN2al4spanIKfLm16EEC2ILm16EEERSt5arrayIfXT_EE(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 4 dereferenceable(64) %10) #10
  %176 = load ptr, ptr %23, align 8
  %177 = getelementptr inbounds i8, ptr %23, i64 8
  %178 = load i64, ptr %177, align 8
  %179 = load ptr, ptr %24, align 8
  invoke void @_ZN12_GLOBAL__N_116InitDistanceCompEP9ALCdeviceN2al4spanIK7ChannelLm18446744073709551615EEENS3_IKfLm16EEE(ptr noundef %0, ptr %176, i64 %178, ptr %179)
          to label %184 unwind label %182

180:                                              ; preds = %155
  %181 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #10
  br label %191

182:                                              ; preds = %175, %174, %166
  %183 = landingpad { ptr, i32 }
          cleanup
  br label %191

184:                                              ; preds = %173, %175, %137
  %185 = getelementptr inbounds i8, ptr %0, i64 107520
  %186 = call noundef ptr @_ZNKSt10unique_ptrI10BFormatDecSt14default_deleteIS0_EE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %185) #10
  %.not156 = icmp eq ptr %186, null
  br i1 %.not156, label %190, label %187

187:                                              ; preds = %184
  %188 = call noundef zeroext i1 @_ZNK10BFormatDec12hasStablizerEv(ptr noundef nonnull align 16 dereferenceable(8232) %186) #10
  %189 = getelementptr inbounds i8, ptr %0, i64 107536
  %.elt = select i1 %188, i64 ptrtoint (ptr @_ZN10DeviceBase23ProcessAmbiDecStablizedEm to i64), i64 ptrtoint (ptr @_ZN10DeviceBase14ProcessAmbiDecEm to i64)
  store i64 %.elt, ptr %189, align 16, !tbaa !146
  %.repack157 = getelementptr inbounds i8, ptr %0, i64 107544
  store i64 0, ptr %.repack157, align 8, !tbaa !146
  br label %190

190:                                              ; preds = %187, %184
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %9) #10
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %388

191:                                              ; preds = %144, %180, %182, %146, %105
  %.pn150.pn.pn.pn = phi { ptr, i32 } [ %.pn143, %105 ], [ %145, %144 ], [ %147, %146 ], [ %183, %182 ], [ %181, %180 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %9) #10
  call void @_ZNSt10unique_ptrIN12_GLOBAL__N_113DecoderConfigILNS0_11DecoderModeE1ELm16EEESt14default_deleteIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %389

192:                                              ; preds = %3
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %25) #10
  store i8 0, ptr %25, align 1, !tbaa !101
  %193 = call noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2) %4, ptr noundef nonnull align 1 dereferenceable(1) %25)
  %194 = icmp eq i8 %193, 2
  br i1 %194, label %.critedge, label %195

195:                                              ; preds = %192
  %196 = call noundef zeroext i1 @_ZNKSt8optionalI14StereoEncodingEcvbEv(ptr noundef nonnull align 1 dereferenceable(2) %4) #10
  br i1 %196, label %.critedge5, label %197

197:                                              ; preds = %195
  %198 = getelementptr inbounds i8, ptr %0, i64 80
  %199 = invoke noundef zeroext i1 @_ZNKSt6bitsetILm6EE4testEm(ptr noundef nonnull align 8 dereferenceable(8) %198, i64 noundef 4)
          to label %200 unwind label %205

200:                                              ; preds = %197
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  br i1 %199, label %201, label %299

.critedge:                                        ; preds = %192
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  br label %201

201:                                              ; preds = %.critedge, %200
  %202 = getelementptr inbounds i8, ptr %0, i64 107688
  %203 = call noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %202) #10
  br i1 %203, label %204, label %209

204:                                              ; preds = %201
  invoke void @_ZN9ALCdevice14enumerateHrtfsEv(ptr noundef nonnull align 16 dereferenceable(107960) %0)
          to label %209 unwind label %207

205:                                              ; preds = %197
  %206 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  br label %389

207:                                              ; preds = %378, %327, %204
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %389

209:                                              ; preds = %204, %201
  %210 = icmp sgt i32 %1, -1
  br i1 %210, label %211, label %234

211:                                              ; preds = %209
  %212 = zext nneg i32 %1 to i64
  %213 = call noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %202) #10
  %214 = icmp ugt i64 %213, %212
  br i1 %214, label %215, label %234

215:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %26) #10
  %216 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %202, i64 noundef %212) #10
  %217 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %216) #10
  %218 = extractvalue { i64, ptr } %217, 0
  store i64 %218, ptr %26, align 8
  %219 = getelementptr inbounds i8, ptr %26, i64 8
  %220 = extractvalue { i64, ptr } %217, 1
  store ptr %220, ptr %219, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #10
  %221 = getelementptr inbounds i8, ptr %0, i64 20
  %222 = load i32, ptr %221, align 4, !tbaa !147
  invoke void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind nonnull writable sret(%"class.al::intrusive_ptr") align 8 %27, i64 %218, ptr %220, i32 noundef %222)
          to label %223 unwind label %228

223:                                              ; preds = %215
  %224 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br i1 %224, label %225, label %232

225:                                              ; preds = %223
  %226 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  %227 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(16) %26)
          to label %232 unwind label %230

228:                                              ; preds = %215
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %233

230:                                              ; preds = %225
  %231 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  br label %233

232:                                              ; preds = %225, %223
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %234

233:                                              ; preds = %230, %228
  %.pn = phi { ptr, i32 } [ %231, %230 ], [ %229, %228 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %26) #10
  br label %389

234:                                              ; preds = %232, %211, %209
  %235 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br i1 %235, label %262, label %236

236:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #10
  %237 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %202) #10
  store ptr %237, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #10
  %238 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %202) #10
  store ptr %238, ptr %29, align 8
  %239 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br i1 %239, label %.lr.ph173, label %.loopexit

.lr.ph173:                                        ; preds = %236
  %240 = getelementptr inbounds i8, ptr %30, i64 8
  %241 = getelementptr inbounds i8, ptr %0, i64 20
  br label %242

242:                                              ; preds = %.lr.ph173, %258
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #10
  %243 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  %244 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %243) #10
  %245 = extractvalue { i64, ptr } %244, 0
  store i64 %245, ptr %30, align 8
  %246 = extractvalue { i64, ptr } %244, 1
  store ptr %246, ptr %240, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #10
  %247 = load i32, ptr %241, align 4, !tbaa !147
  invoke void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind nonnull writable sret(%"class.al::intrusive_ptr") align 8 %31, i64 %245, ptr %246, i32 noundef %247)
          to label %248 unwind label %253

248:                                              ; preds = %242
  %249 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br i1 %249, label %250, label %258

250:                                              ; preds = %248
  %251 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  %252 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32) %52, ptr noundef nonnull align 8 dereferenceable(16) %30)
          to label %257 unwind label %255

253:                                              ; preds = %242
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %261

255:                                              ; preds = %250
  %256 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  br label %261

257:                                              ; preds = %250
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  br label %.loopexit

258:                                              ; preds = %248
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  %259 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #10
  %260 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #10
  br i1 %260, label %242, label %.loopexit

261:                                              ; preds = %255, %253
  %.pn129 = phi { ptr, i32 } [ %256, %255 ], [ %254, %253 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %389

.loopexit:                                        ; preds = %258, %236, %257
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #10
  br label %262

262:                                              ; preds = %.loopexit, %234
  %263 = call noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  br i1 %263, label %264, label %299

264:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr null) #10
  %265 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #10
  %266 = call noundef ptr @_ZNK2al13intrusive_ptrI9HrtfStoreE3getEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #10
  %267 = getelementptr inbounds i8, ptr %266, i64 4
  %268 = load i32, ptr %267, align 4
  %269 = lshr i32 %268, 24
  store i32 %269, ptr %51, align 16, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef @.str.12) #10
  %270 = load i64, ptr %34, align 8
  %271 = getelementptr inbounds i8, ptr %34, i64 8
  %272 = load ptr, ptr %271, align 8
  %273 = load i64, ptr %35, align 8
  %274 = getelementptr inbounds i8, ptr %35, i64 8
  %275 = load ptr, ptr %274, align 8
  %276 = invoke i64 @_ZN9ALCdevice11configValueIjEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %270, ptr %272, i64 %273, ptr %275)
          to label %277 unwind label %291

277:                                              ; preds = %264
  store i64 %276, ptr %33, align 8
  %278 = call noundef zeroext i1 @_ZNKSt8optionalIjEcvbEv(ptr noundef nonnull align 4 dereferenceable(8) %33) #10
  br i1 %278, label %279, label %293

279:                                              ; preds = %277
  %280 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %33) #10
  %281 = load i32, ptr %280, align 4, !tbaa !148
  %.not138 = icmp eq i32 %281, 0
  br i1 %.not138, label %293, label %282

282:                                              ; preds = %279
  %283 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %33) #10
  %284 = load i32, ptr %283, align 4, !tbaa !148
  %285 = load i32, ptr %51, align 16, !tbaa !5
  %286 = icmp ult i32 %284, %285
  br i1 %286, label %287, label %293

287:                                              ; preds = %282
  %288 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIjEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %33) #10
  %289 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4) %288, ptr noundef nonnull align 4 dereferenceable(4) @_ZL11MinIrLength)
  %290 = load i32, ptr %289, align 4, !tbaa !148
  store i32 %290, ptr %51, align 16, !tbaa !5
  br label %293

291:                                              ; preds = %264
  %292 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  br label %389

293:                                              ; preds = %279, %282, %287, %277
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #10
  invoke void @_ZN12_GLOBAL__N_115InitHrtfPanningEP9ALCdevice(ptr noundef nonnull %0)
          to label %294 unwind label %297

294:                                              ; preds = %293
  %295 = getelementptr inbounds i8, ptr %0, i64 107536
  store i64 ptrtoint (ptr @_ZN10DeviceBase11ProcessHrtfEm to i64), ptr %295, align 16, !tbaa !146
  %.repack141 = getelementptr inbounds i8, ptr %0, i64 107544
  store i64 0, ptr %.repack141, align 8, !tbaa !146
  %296 = getelementptr inbounds i8, ptr %0, i64 107712
  store i32 1, ptr %296, align 16, !tbaa !103
  br label %388

297:                                              ; preds = %293
  %298 = landingpad { ptr, i32 }
          cleanup
  br label %389

.critedge5:                                       ; preds = %195
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %25) #10
  br label %299

299:                                              ; preds = %262, %.critedge5, %200
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreEC2EDn(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr null) #10
  %300 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN2al13intrusive_ptrI9HrtfStoreEaSEOS2_(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(8) %36) #10
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #10
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %37) #10
  store i8 0, ptr %37, align 1, !tbaa !101
  %301 = call noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2) %4, ptr noundef nonnull align 1 dereferenceable(1) %37)
  %302 = icmp eq i8 %301, 1
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %37) #10
  br i1 %302, label %303, label %330

303:                                              ; preds = %299
  %304 = load i8, ptr @UhjEncodeQuality, align 1, !tbaa !149
  switch i8 %304, label %323 [
    i8 0, label %305
    i8 1, label %311
    i8 2, label %317
  ]

305:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #10
  invoke void @_ZSt11make_uniqueI13UhjEncoderIIRJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.147") align 8 %38)
          to label %306 unwind label %309

306:                                              ; preds = %305
  %307 = getelementptr inbounds i8, ptr %0, i64 107512
  %308 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI13UhjEncoderIIRS1_IS5_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISA_EEEESt13is_assignableIRS2_OSB_EEE5valueERS3_E4typeEOSC_(ptr noundef nonnull align 8 dereferenceable(8) %307, ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @_ZNSt10unique_ptrI13UhjEncoderIIRSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %38) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  br label %323

309:                                              ; preds = %305
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #10
  br label %389

311:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #10
  invoke void @_ZSt11make_uniqueI10UhjEncoderILm256EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.155") align 8 %39)
          to label %312 unwind label %315

312:                                              ; preds = %311
  %313 = getelementptr inbounds i8, ptr %0, i64 107512
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI10UhjEncoderILm256EES1_IS6_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISB_EEEESt13is_assignableIRS2_OSC_EEE5valueERS3_E4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  call void @_ZNSt10unique_ptrI10UhjEncoderILm256EESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #10
  br label %323

315:                                              ; preds = %311
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #10
  br label %389

317:                                              ; preds = %303
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #10
  invoke void @_ZSt11make_uniqueI10UhjEncoderILm512EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.163") align 8 %40)
          to label %318 unwind label %321

318:                                              ; preds = %317
  %319 = getelementptr inbounds i8, ptr %0, i64 107512
  %320 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EEaSI10UhjEncoderILm512EES1_IS6_EEENSt9enable_ifIXsr6__and_ISt6__and_IJSt14is_convertibleINS_IT_T0_E7pointerEPS0_ESt6__not_ISt8is_arrayISB_EEEESt13is_assignableIRS2_OSC_EEE5valueERS3_E4typeEOSD_(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  call void @_ZNSt10unique_ptrI10UhjEncoderILm512EESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %40) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %323

321:                                              ; preds = %317
  %322 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #10
  br label %389

323:                                              ; preds = %318, %312, %306, %303
  %324 = getelementptr inbounds i8, ptr %0, i64 107512
  %325 = call noundef zeroext i1 @_ZStneI14UhjEncoderBaseSt14default_deleteIS0_EEbRKSt10unique_ptrIT_T0_EDn(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr null) #10
  br i1 %325, label %327, label %326

326:                                              ; preds = %323
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.14, i32 noundef 1189, ptr noundef nonnull @__PRETTY_FUNCTION__._Z15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingE) #12
  unreachable

327:                                              ; preds = %323
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef nonnull @.str.15) #10
  invoke void @_ZN12_GLOBAL__N_114InitUhjPanningEP9ALCdevice(ptr noundef nonnull %0)
          to label %328 unwind label %207

328:                                              ; preds = %327
  %329 = getelementptr inbounds i8, ptr %0, i64 107536
  store i64 ptrtoint (ptr @_ZN10DeviceBase10ProcessUhjEm to i64), ptr %329, align 16, !tbaa !146
  %.repack137 = getelementptr inbounds i8, ptr %0, i64 107544
  store i64 0, ptr %.repack137, align 8, !tbaa !146
  br label %388

330:                                              ; preds = %299
  store i8 1, ptr %55, align 16, !tbaa !99
  %331 = getelementptr inbounds i8, ptr %0, i64 17
  %332 = load i8, ptr %331, align 1, !tbaa !151
  %.not131 = icmp eq i8 %332, 2
  br i1 %.not131, label %378, label %333

333:                                              ; preds = %330
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %42) #10
  call void @_ZNSt17basic_string_viewIcSt11char_traitsIcEEC2EPKc(ptr noundef nonnull align 8 dereferenceable(16) %43, ptr noundef @.str.16) #10
  %334 = load i64, ptr %42, align 8
  %335 = getelementptr inbounds i8, ptr %42, i64 8
  %336 = load ptr, ptr %335, align 8
  %337 = load i64, ptr %43, align 8
  %338 = getelementptr inbounds i8, ptr %43, i64 8
  %339 = load ptr, ptr %338, align 8
  %340 = invoke i64 @_ZN9ALCdevice11configValueIiEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960) %0, i64 %334, ptr %336, i64 %337, ptr %339)
          to label %341 unwind label %369

341:                                              ; preds = %333
  store i64 %340, ptr %41, align 8
  %342 = call noundef zeroext i1 @_ZNKSt8optionalIiEcvbEv(ptr noundef nonnull align 4 dereferenceable(8) %41) #10
  br i1 %342, label %343, label %376

343:                                              ; preds = %341
  %344 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %41) #10
  %345 = load i32, ptr %344, align 4, !tbaa !148
  %346 = icmp sgt i32 %345, 0
  br i1 %346, label %347, label %376

347:                                              ; preds = %343
  %348 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %41) #10
  %349 = load i32, ptr %348, align 4, !tbaa !148
  %350 = icmp slt i32 %349, 7
  br i1 %350, label %351, label %376

351:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #10
  invoke void @_ZSt11make_uniqueIN4Bs2b4bs2bEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind nonnull writable sret(%"class.std::unique_ptr.35") align 8 %44)
          to label %352 unwind label %371

352:                                              ; preds = %351
  %353 = call noundef ptr @_ZNKSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  %354 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNRSt8optionalIiEdeEv(ptr noundef nonnull align 4 dereferenceable(8) %41) #10
  %355 = load i32, ptr %354, align 4, !tbaa !148
  %356 = getelementptr inbounds i8, ptr %0, i64 20
  %357 = load i32, ptr %356, align 4, !tbaa !147
  invoke void @_ZN4Bs2b4bs2b10set_paramsEii(ptr noundef nonnull align 4 dereferenceable(44) %353, i32 noundef %355, i32 noundef %357)
          to label %358 unwind label %373

358:                                              ; preds = %352
  %359 = getelementptr inbounds i8, ptr %0, i64 107528
  %360 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef nonnull @.str.17) #10
  store i8 0, ptr %45, align 8, !tbaa !132
  %361 = getelementptr inbounds i8, ptr %45, i64 1
  store i8 0, ptr %361, align 1, !tbaa !137
  %362 = getelementptr inbounds i8, ptr %45, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %362, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %362) #10
  %363 = getelementptr inbounds i8, ptr %45, i64 24
  store i8 0, ptr %363, align 8, !tbaa !138
  %364 = getelementptr inbounds i8, ptr %45, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %364, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %364) #10
  %365 = getelementptr inbounds i8, ptr %45, i64 48
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %365, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %365) #10
  %366 = getelementptr inbounds i8, ptr %45, i64 64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %366, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %366) #10
  %367 = getelementptr inbounds i8, ptr %45, i64 80
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %367, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %367) #10
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef nonnull %0, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef nonnull byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %45)
          to label %.critedge164 unwind label %373

.critedge164:                                     ; preds = %358
  %368 = getelementptr inbounds i8, ptr %0, i64 107536
  store i64 ptrtoint (ptr @_ZN10DeviceBase11ProcessBs2bEm to i64), ptr %368, align 16, !tbaa !146
  %.repack135 = getelementptr inbounds i8, ptr %0, i64 107544
  store i64 0, ptr %.repack135, align 8, !tbaa !146
  call void @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %388

369:                                              ; preds = %333
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %377

371:                                              ; preds = %351
  %372 = landingpad { ptr, i32 }
          cleanup
  br label %375

373:                                              ; preds = %358, %352
  %374 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %44) #10
  br label %375

375:                                              ; preds = %373, %371
  %.pn132 = phi { ptr, i32 } [ %374, %373 ], [ %372, %371 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #10
  br label %377

376:                                              ; preds = %341, %347, %343
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %378

377:                                              ; preds = %375, %369
  %.pn132.pn = phi { ptr, i32 } [ %.pn132, %375 ], [ %370, %369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #10
  br label %389

378:                                              ; preds = %376, %330
  call void (i32, ptr, ...) @_Z8al_print8LogLevelPKcz(i32 noundef 3, ptr noundef nonnull @.str.18) #10
  store i8 0, ptr %46, align 8, !tbaa !132
  %379 = getelementptr inbounds i8, ptr %46, i64 1
  store i8 0, ptr %379, align 1, !tbaa !137
  %380 = getelementptr inbounds i8, ptr %46, i64 8
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %380, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %380) #10
  %381 = getelementptr inbounds i8, ptr %46, i64 24
  store i8 0, ptr %381, align 8, !tbaa !138
  %382 = getelementptr inbounds i8, ptr %46, i64 32
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %382, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %382) #10
  %383 = getelementptr inbounds i8, ptr %46, i64 48
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %383, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383) #10
  %384 = getelementptr inbounds i8, ptr %46, i64 64
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %384, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKfLm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %384) #10
  %385 = getelementptr inbounds i8, ptr %46, i64 80
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %385, i8 0, i64 16, i1 false)
  call void @_ZN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %385) #10
  invoke void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef nonnull %0, i1 noundef zeroext false, i1 noundef zeroext false, ptr noundef nonnull byval(%"struct.(anonymous namespace)::DecoderConfig") align 8 %46)
          to label %386 unwind label %207

386:                                              ; preds = %378
  %387 = getelementptr inbounds i8, ptr %0, i64 107536
  store i64 ptrtoint (ptr @_ZN10DeviceBase14ProcessAmbiDecEm to i64), ptr %387, align 16, !tbaa !146
  %.repack136 = getelementptr inbounds i8, ptr %0, i64 107544
  store i64 0, ptr %.repack136, align 8, !tbaa !146
  br label %388

388:                                              ; preds = %.critedge164, %386, %328, %294, %190
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  ret void

389:                                              ; preds = %291, %297, %377, %321, %315, %309, %261, %233, %207, %205, %191
  %.pn150.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn150.pn.pn.pn, %191 ], [ %208, %207 ], [ %322, %321 ], [ %316, %315 ], [ %310, %309 ], [ %.pn132.pn, %377 ], [ %.pn129, %261 ], [ %.pn, %233 ], [ %206, %205 ], [ %298, %297 ], [ %292, %291 ]
  call void @_ZN2al13intrusive_ptrI9HrtfStoreED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  resume { ptr, i32 } %.pn150.pn.pn.pn.pn
}

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZN9ALCdevice11configValueINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESt8optionalIT_ESt17basic_string_viewIcS4_ESB_(ptr dead_on_unwind noalias writable sret(%"class.std::optional.102") align 8, ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) local_unnamed_addr #4 align 2

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

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEcvbEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden noundef zeroext i1 @"_ZZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEENK3$_0clEPKc"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNSt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEptEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: nounwind
declare void @_Z8al_print8LogLevelPKcz(i32 noundef, ptr noundef, ...) local_unnamed_addr #6

; Function Attrs: nounwind
declare noundef ptr @_Z20DevFmtChannelsString14DevFmtChannels(i8 noundef zeroext) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 1 dereferenceable(1) ptr @_ZNSt5arrayIhLm36EEixEm(ptr noundef nonnull align 1 dereferenceable(36), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN9ALCdevice18getConfigValueBoolESt17basic_string_viewIcSt11char_traitsIcEES3_b(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr, i1 noundef zeroext) local_unnamed_addr #0 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_111InitPanningEP9ALCdevicebbNS_13DecoderConfigILNS_11DecoderModeE1ELm0EEE(ptr noundef, i1 noundef zeroext, i1 noundef zeroext, ptr noundef byval(%"struct.(anonymous namespace)::DecoderConfig") align 8) local_unnamed_addr #0

; Function Attrs: mustprogress nounwind uwtable
declare hidden noundef zeroext i1 @_ZNK12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEcvbEv(ptr noundef nonnull align 8 dereferenceable(96)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm16EE5beginEv(ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #7 align 2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none) uwtable
declare dso_local noundef ptr @_ZNSt5arrayIfLm16EE3endEv(ptr noundef nonnull align 4 dereferenceable(64)) local_unnamed_addr #7 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIfEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_117InitNearFieldCtrlEP9ALCdevicefjb(ptr noundef, float noundef, i32 noundef, i1 noundef zeroext) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_116InitDistanceCompEP9ALCdeviceN2al4spanIK7ChannelLm18446744073709551615EEENS3_IKfLm16EEE(ptr noundef, ptr, i64, ptr) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN2al4spanIK7ChannelLm18446744073709551615EEC2IRS3_TnNSt9enable_ifIXsr7detail_E18is_valid_containerIT_S2_EEbE4typeELb1EEEOS7_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN2al4spanIKfLm16EEC2ILm16EEERSt5arrayIfXT_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 4 dereferenceable(64)) unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK10BFormatDec12hasStablizerEv(ptr noundef nonnull align 16 dereferenceable(8232)) local_unnamed_addr #2 align 2

declare void @_ZN10DeviceBase23ProcessAmbiDecStablizedEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #8

declare void @_ZN10DeviceBase14ProcessAmbiDecEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #8

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i8 @_ZNKRSt8optionalI14StereoEncodingE8value_orIS0_EES0_OT_(ptr noundef nonnull align 1 dereferenceable(2), ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6bitsetILm6EE4testEm(ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

declare void @_ZN9ALCdevice14enumerateHrtfsEv(ptr noundef nonnull align 16 dereferenceable(107960)) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare void @_Z13GetLoadedHrtfSt17basic_string_viewIcSt11char_traitsIcEEj(ptr dead_on_unwind writable sret(%"class.al::intrusive_ptr") align 8, i64, ptr, i32 noundef) local_unnamed_addr #8

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK2al13intrusive_ptrI9HrtfStoreEcvbEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSISt17basic_string_viewIcS2_EEENSt9enable_ifIXsr6__and_ISt14is_convertibleIRKT_S7_ESt6__not_IS9_IPSB_PKS4_EESE_IS9_ISC_PKcEEEE5valueERS4_E4typeESC_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 align 2

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIjEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalIjEcvbEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZSt3maxIjERKT_S2_S2_(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_115InitHrtfPanningEP9ALCdevice(ptr noundef) local_unnamed_addr #0

declare void @_ZN10DeviceBase11ProcessHrtfEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI13UhjEncoderIIRJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.147") align 8) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI10UhjEncoderILm256EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.155") align 8) local_unnamed_addr #4

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueI10UhjEncoderILm512EEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.163") align 8) local_unnamed_addr #4

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

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

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

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare hidden void @_ZN12_GLOBAL__N_114InitUhjPanningEP9ALCdevice(ptr noundef) local_unnamed_addr #0

declare void @_ZN10DeviceBase10ProcessUhjEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #8

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local i64 @_ZN9ALCdevice11configValueIiEESt8optionalIT_ESt17basic_string_viewIcSt11char_traitsIcEES7_(ptr noundef nonnull align 16 dereferenceable(107960), i64, ptr, i64, ptr) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt8optionalIiEcvbEv(ptr noundef nonnull align 4 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt11make_uniqueIN4Bs2b4bs2bEJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_(ptr dead_on_unwind noalias writable sret(%"class.std::unique_ptr.35") align 8) local_unnamed_addr #4

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

declare void @_ZN4Bs2b4bs2b10set_paramsEii(ptr noundef nonnull align 4 dereferenceable(44), i32 noundef, i32 noundef) local_unnamed_addr #8

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

declare void @_ZN10DeviceBase11ProcessBs2bEm(ptr noundef nonnull align 16 dereferenceable(107576), i64 noundef) #8

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

attributes #0 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #5 = { 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 #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 = { mustprogress nofree nosync nounwind willreturn memory(none) 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 = { "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 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { 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, !13, i64 107488}
!6 = !{!"_ZTS10DeviceBase", !7, i64 0, !12, i64 1, !13, i64 4, !13, i64 8, !13, i64 12, !14, i64 16, !15, i64 17, !13, i64 20, !16, i64 24, !9, i64 28, !17, i64 29, !18, i64 30, !19, i64 32, !23, i64 64, !25, i64 72, !13, i64 76, !26, i64 80, !16, i64 84, !27, i64 88, !36, i64 240, !38, i64 248, !39, i64 256, !40, i64 264, !40, i64 1288, !41, i64 2320, !42, i64 84240, !43, i64 89552, !44, i64 93648, !45, i64 98000, !46, i64 107216, !50, i64 107240, !53, i64 107384, !54, i64 107400, !57, i64 107472, !63, i64 107480, !13, i64 107488, !64, i64 107496, !70, i64 107504, !76, i64 107512, !10, i64 107520, !82, i64 107536, !88, i64 107544, !16, i64 107552, !13, i64 107556, !36, i64 107560, !94, i64 107568}
!7 = !{!"_ZTSSt6atomicIbE", !8, i64 0}
!8 = !{!"_ZTSSt13__atomic_baseIbE", !9, i64 0}
!9 = !{!"bool", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!"_ZTS10DeviceType", !10, i64 0}
!13 = !{!"int", !10, i64 0}
!14 = !{!"_ZTS14DevFmtChannels", !10, i64 0}
!15 = !{!"_ZTS10DevFmtType", !10, i64 0}
!16 = !{!"float", !10, i64 0}
!17 = !{!"_ZTS13DevAmbiLayout", !10, i64 0}
!18 = !{!"_ZTS14DevAmbiScaling", !10, i64 0}
!19 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !20, i64 0, !22, i64 8, !10, i64 16}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !21, i64 0}
!21 = !{!"any pointer", !10, i64 0}
!22 = !{!"long", !10, i64 0}
!23 = !{!"_ZTSSt6bitsetILm6EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Base_bitsetILm1EE", !22, i64 0}
!25 = !{!"_ZTS11DeviceState", !10, i64 0}
!26 = !{!"_ZTS10RenderMode", !10, i64 0}
!27 = !{!"_ZTS9NfcFilter", !28, i64 0, !30, i64 20, !32, i64 52, !34, i64 96}
!28 = !{!"_ZTS10NfcFilter1", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !29, i64 16}
!29 = !{!"_ZTSSt5arrayIfLm1EE", !10, i64 0}
!30 = !{!"_ZTS10NfcFilter2", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !31, i64 24}
!31 = !{!"_ZTSSt5arrayIfLm2EE", !10, i64 0}
!32 = !{!"_ZTS10NfcFilter3", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !33, i64 32}
!33 = !{!"_ZTSSt5arrayIfLm3EE", !10, i64 0}
!34 = !{!"_ZTS10NfcFilter4", !16, i64 0, !16, i64 4, !16, i64 8, !16, i64 12, !16, i64 16, !16, i64 20, !16, i64 24, !16, i64 28, !16, i64 32, !16, i64 36, !35, i64 40}
!35 = !{!"_ZTSSt5arrayIfLm4EE", !10, i64 0}
!36 = !{!"_ZTSSt6atomicIjE", !37, i64 0}
!37 = !{!"_ZTSSt13__atomic_baseIjE", !13, i64 0}
!38 = !{!"_ZTSSt6atomicINSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEEE", !39, i64 0}
!39 = !{!"_ZTSNSt6chrono8durationIlSt5ratioILl1ELl1000000000EEEE", !22, i64 0}
!40 = !{!"_ZTSSt5arrayIS_IfLm16EELm16EE", !10, i64 0}
!41 = !{!"_ZTSSt5arrayIfLm20480EE", !10, i64 0}
!42 = !{!"_ZTSSt5arrayIfLm1328EE", !10, i64 0}
!43 = !{!"_ZTSSt5arrayIfLm1024EE", !10, i64 0}
!44 = !{!"_ZTSSt5arrayIfLm1088EE", !10, i64 0}
!45 = !{!"_ZTSSt5arrayIS_IfLm2EELm1152EE", !10, i64 0}
!46 = !{!"_ZTSSt6vectorISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE", !47, i64 0}
!47 = !{!"_ZTSSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE", !48, i64 0}
!48 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE12_Vector_implE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseISt5arrayIfLm1024EEN2al9allocatorIS1_Lm16EEEE17_Vector_impl_dataE", !21, i64 0, !21, i64 8, !21, i64 16}
!50 = !{!"_ZTS9MixParams", !51, i64 0, !52, i64 128}
!51 = !{!"_ZTSSt5arrayI15BFChannelConfigLm16EE", !10, i64 0}
!52 = !{!"_ZTSN2al4spanISt5arrayIfLm1024EELm18446744073709551615EEE", !21, i64 0, !22, i64 8}
!53 = !{!"_ZTSSt5arrayIjLm4EE", !10, i64 0}
!54 = !{!"_ZTS13RealMixParams", !55, i64 0, !56, i64 16, !52, i64 56}
!55 = !{!"_ZTSN2al4spanIK13InputRemixMapLm18446744073709551615EEE", !21, i64 0, !22, i64 8}
!56 = !{!"_ZTSSt5arrayIhLm36EE", !10, i64 0}
!57 = !{!"_ZTSSt10unique_ptrI15DirectHrtfStateSt14default_deleteIS0_EE", !58, i64 0}
!58 = !{!"_ZTSSt15__uniq_ptr_dataI15DirectHrtfStateSt14default_deleteIS0_ELb1ELb1EE", !59, i64 0}
!59 = !{!"_ZTSSt15__uniq_ptr_implI15DirectHrtfStateSt14default_deleteIS0_EE", !60, i64 0}
!60 = !{!"_ZTSSt5tupleIJP15DirectHrtfStateSt14default_deleteIS0_EEE", !61, i64 0}
!61 = !{!"_ZTSSt11_Tuple_implILm0EJP15DirectHrtfStateSt14default_deleteIS0_EEE", !62, i64 0}
!62 = !{!"_ZTSSt10_Head_baseILm0EP15DirectHrtfStateLb0EE", !21, i64 0}
!63 = !{!"_ZTSN2al13intrusive_ptrI9HrtfStoreEE", !21, i64 0}
!64 = !{!"_ZTSSt10unique_ptrI14UhjEncoderBaseSt14default_deleteIS0_EE", !65, i64 0}
!65 = !{!"_ZTSSt15__uniq_ptr_dataI14UhjEncoderBaseSt14default_deleteIS0_ELb1ELb1EE", !66, i64 0}
!66 = !{!"_ZTSSt15__uniq_ptr_implI14UhjEncoderBaseSt14default_deleteIS0_EE", !67, i64 0}
!67 = !{!"_ZTSSt5tupleIJP14UhjEncoderBaseSt14default_deleteIS0_EEE", !68, i64 0}
!68 = !{!"_ZTSSt11_Tuple_implILm0EJP14UhjEncoderBaseSt14default_deleteIS0_EEE", !69, i64 0}
!69 = !{!"_ZTSSt10_Head_baseILm0EP14UhjEncoderBaseLb0EE", !21, i64 0}
!70 = !{!"_ZTSSt10unique_ptrI10BFormatDecSt14default_deleteIS0_EE", !71, i64 0}
!71 = !{!"_ZTSSt15__uniq_ptr_dataI10BFormatDecSt14default_deleteIS0_ELb1ELb1EE", !72, i64 0}
!72 = !{!"_ZTSSt15__uniq_ptr_implI10BFormatDecSt14default_deleteIS0_EE", !73, i64 0}
!73 = !{!"_ZTSSt5tupleIJP10BFormatDecSt14default_deleteIS0_EEE", !74, i64 0}
!74 = !{!"_ZTSSt11_Tuple_implILm0EJP10BFormatDecSt14default_deleteIS0_EEE", !75, i64 0}
!75 = !{!"_ZTSSt10_Head_baseILm0EP10BFormatDecLb0EE", !21, i64 0}
!76 = !{!"_ZTSSt10unique_ptrIN4Bs2b4bs2bESt14default_deleteIS1_EE", !77, i64 0}
!77 = !{!"_ZTSSt15__uniq_ptr_dataIN4Bs2b4bs2bESt14default_deleteIS1_ELb1ELb1EE", !78, i64 0}
!78 = !{!"_ZTSSt15__uniq_ptr_implIN4Bs2b4bs2bESt14default_deleteIS1_EE", !79, i64 0}
!79 = !{!"_ZTSSt5tupleIJPN4Bs2b4bs2bESt14default_deleteIS1_EEE", !80, i64 0}
!80 = !{!"_ZTSSt11_Tuple_implILm0EJPN4Bs2b4bs2bESt14default_deleteIS1_EEE", !81, i64 0}
!81 = !{!"_ZTSSt10_Head_baseILm0EPN4Bs2b4bs2bELb0EE", !21, i64 0}
!82 = !{!"_ZTSSt10unique_ptrI10CompressorSt14default_deleteIS0_EE", !83, i64 0}
!83 = !{!"_ZTSSt15__uniq_ptr_dataI10CompressorSt14default_deleteIS0_ELb1ELb1EE", !84, i64 0}
!84 = !{!"_ZTSSt15__uniq_ptr_implI10CompressorSt14default_deleteIS0_EE", !85, i64 0}
!85 = !{!"_ZTSSt5tupleIJP10CompressorSt14default_deleteIS0_EEE", !86, i64 0}
!86 = !{!"_ZTSSt11_Tuple_implILm0EJP10CompressorSt14default_deleteIS0_EEE", !87, i64 0}
!87 = !{!"_ZTSSt10_Head_baseILm0EP10CompressorLb0EE", !21, i64 0}
!88 = !{!"_ZTSSt10unique_ptrI12DistanceCompSt14default_deleteIS0_EE", !89, i64 0}
!89 = !{!"_ZTSSt15__uniq_ptr_dataI12DistanceCompSt14default_deleteIS0_ELb1ELb1EE", !90, i64 0}
!90 = !{!"_ZTSSt15__uniq_ptr_implI12DistanceCompSt14default_deleteIS0_EE", !91, i64 0}
!91 = !{!"_ZTSSt5tupleIJP12DistanceCompSt14default_deleteIS0_EEE", !92, i64 0}
!92 = !{!"_ZTSSt11_Tuple_implILm0EJP12DistanceCompSt14default_deleteIS0_EEE", !93, i64 0}
!93 = !{!"_ZTSSt10_Head_baseILm0EP12DistanceCompLb0EE", !21, i64 0}
!94 = !{!"_ZTSN2al17atomic_unique_ptrINS_9FlexArrayIP11ContextBaseLm8EEESt14default_deleteIS4_EEE", !95, i64 0}
!95 = !{!"_ZTSSt6atomicIPN2al9FlexArrayIP11ContextBaseLm8EEEE", !96, i64 0}
!96 = !{!"_ZTSSt13__atomic_baseIPN2al9FlexArrayIP11ContextBaseLm8EEEE", !21, i64 0}
!97 = !{!6, !16, i64 24}
!98 = !{!6, !9, i64 28}
!99 = !{!6, !26, i64 80}
!100 = !{!6, !14, i64 16}
!101 = !{!102, !102, i64 0}
!102 = !{!"_ZTS14StereoEncoding", !10, i64 0}
!103 = !{!104, !13, i64 107712}
!104 = !{!"_ZTS9ALCdevice", !105, i64 0, !6, i64 16, !106, i64 107592, !108, i64 107632, !13, i64 107640, !13, i64 107644, !13, i64 107648, !13, i64 107652, !19, i64 107656, !114, i64 107688, !13, i64 107712, !118, i64 107716, !106, i64 107720, !120, i64 107760, !106, i64 107784, !124, i64 107824, !128, i64 107848, !128, i64 107904}
!105 = !{!"_ZTSN2al13intrusive_refI9ALCdeviceEE", !36, i64 0}
!106 = !{!"_ZTSSt5mutex", !107, i64 0}
!107 = !{!"_ZTSSt12__mutex_base", !10, i64 0}
!108 = !{!"_ZTSSt10unique_ptrI11BackendBaseSt14default_deleteIS0_EE", !109, i64 0}
!109 = !{!"_ZTSSt15__uniq_ptr_dataI11BackendBaseSt14default_deleteIS0_ELb1ELb1EE", !110, i64 0}
!110 = !{!"_ZTSSt15__uniq_ptr_implI11BackendBaseSt14default_deleteIS0_EE", !111, i64 0}
!111 = !{!"_ZTSSt5tupleIJP11BackendBaseSt14default_deleteIS0_EEE", !112, i64 0}
!112 = !{!"_ZTSSt11_Tuple_implILm0EJP11BackendBaseSt14default_deleteIS0_EEE", !113, i64 0}
!113 = !{!"_ZTSSt10_Head_baseILm0EP11BackendBaseLb0EE", !21, i64 0}
!114 = !{!"_ZTSSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !115, i64 0}
!115 = !{!"_ZTSSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE", !116, i64 0}
!116 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12_Vector_implE", !117, i64 0}
!117 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !21, i64 0, !21, i64 8, !21, i64 16}
!118 = !{!"_ZTSSt6atomicIiE", !119, i64 0}
!119 = !{!"_ZTSSt13__atomic_baseIiE", !13, i64 0}
!120 = !{!"_ZTSSt6vectorI13EffectSubListSaIS0_EE", !121, i64 0}
!121 = !{!"_ZTSSt12_Vector_baseI13EffectSubListSaIS0_EE", !122, i64 0}
!122 = !{!"_ZTSNSt12_Vector_baseI13EffectSubListSaIS0_EE12_Vector_implE", !123, i64 0}
!123 = !{!"_ZTSNSt12_Vector_baseI13EffectSubListSaIS0_EE17_Vector_impl_dataE", !21, i64 0, !21, i64 8, !21, i64 16}
!124 = !{!"_ZTSSt6vectorI13FilterSubListSaIS0_EE", !125, i64 0}
!125 = !{!"_ZTSSt12_Vector_baseI13FilterSubListSaIS0_EE", !126, i64 0}
!126 = !{!"_ZTSNSt12_Vector_baseI13FilterSubListSaIS0_EE12_Vector_implE", !127, i64 0}
!127 = !{!"_ZTSNSt12_Vector_baseI13FilterSubListSaIS0_EE17_Vector_impl_dataE", !21, i64 0, !21, i64 8, !21, i64 16}
!128 = !{!"_ZTSSt13unordered_mapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4hashIjESt8equal_toIjESaISt4pairIKjS5_EEE", !129, i64 0}
!129 = !{!"_ZTSSt10_HashtableIjSt4pairIKjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIjESt4hashIjENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEE", !21, i64 0, !22, i64 8, !130, i64 16, !22, i64 24, !131, i64 32, !21, i64 48}
!130 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !21, i64 0}
!131 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !16, i64 0, !22, i64 8}
!132 = !{!133, !10, i64 0}
!133 = !{!"_ZTSN12_GLOBAL__N_113DecoderConfigILNS_11DecoderModeE1ELm0EEE", !10, i64 0, !9, i64 1, !134, i64 8, !18, i64 24, !135, i64 32, !136, i64 48, !135, i64 64, !136, i64 80}
!134 = !{!"_ZTSN2al4spanIK7ChannelLm18446744073709551615EEE", !21, i64 0, !22, i64 8}
!135 = !{!"_ZTSN2al4spanIKfLm18446744073709551615EEE", !21, i64 0, !22, i64 8}
!136 = !{!"_ZTSN2al4spanIKSt5arrayIfLm16EELm18446744073709551615EEE", !21, i64 0, !22, i64 8}
!137 = !{!133, !9, i64 1}
!138 = !{!133, !18, i64 24}
!139 = !{!140, !21, i64 0}
!140 = !{!"_ZTSZ15aluInitRendererP9ALCdeviceiSt8optionalI14StereoEncodingEE3$_0", !21, i64 0, !21, i64 8, !21, i64 16, !21, i64 24}
!141 = !{!21, !21, i64 0}
!142 = !{!10, !10, i64 0}
!143 = !{!16, !16, i64 0}
!144 = !{i8 0, i8 2}
!145 = !{}
!146 = !{!6, !10, i64 107520}
!147 = !{!6, !13, i64 4}
!148 = !{!13, !13, i64 0}
!149 = !{!150, !150, i64 0}
!150 = !{!"_ZTS14UhjQualityType", !10, i64 0}
!151 = !{!6, !12, i64 1}


; Effective O3 passes: CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,SROAPass,SimplifyCFGPass