// [TypeInfo RVA: 0x0]
public class AudioOcclusion_Optimized : MonoBehaviour
{
	public UnityEngine.LayerMask OcclusionLayer; // 0x20
	public float updateFrequency; // 0x24
	public bool DrawDebugLines; // 0x28
	public bool skipIfOutOfRange; // 0x29
	public int sampleRays; // 0x2C
	public float sampleSpreadMeters; // 0x30
	public int minSampleRays; // 0x34
	public bool countUniqueTransforms; // 0x38
	public int maxCountToConsider; // 0x3C
	public bool ignoreSourceChildren; // 0x40
	public bool useAbsoluteCutoffs; // 0x41
	public float minCutoffFreq; // 0x44
	public float minVolumeMultiplier; // 0x48
	public System.Single[] absoluteCutoffs; // 0x50
	public System.Single[] cutoffMultipliers; // 0x58
	public System.Single[] volumeMultipliers; // 0x60
	public float occlusionLerpSpeed; // 0x68
	public float FadeDuration; // 0x6C
	public bool onlyWhilePlaying; // 0x70
	public UnityEngine.QueryTriggerInteraction triggerInteraction; // 0x74
	private int ObstacleCount; // 0x78
	private float OcclusionLevel; // 0x7C
	private UnityEngine.AudioLowPassFilter lowPassFilter; // 0x80
	private UnityEngine.AudioSource[] audioSources; // 0x88
	private System.Single[] defaultVolumes; // 0x90
	private float defaultCutoffFreq; // 0x98
	private float currentCutoff; // 0x9C
	private float targetCutoff; // 0xA0
	private float targetVolumeMultiplier; // 0xA4
	private float updateTimer; // 0xA8
	private UnityEngine.RaycastHit[] hitBuffer; // 0xB0
	private UnityEngine.Transform[] uniqueTransformsBuffer; // 0xB8
	private int uniqueTransformsCount; // 0xC0
	private UnityEngine.Transform audioListener; // 0xC8
	private int occlusionLayerMaskInt; // 0xD0
	private UnityEngine.Transform cachedTransform; // 0xD8
	private float distanceThresholdSqr; // 0xE0

	// RVA: 0x32358D0 VA: 0x78189208D0
	private void Awake();
	/*
	 *   void *pvVar1;
	 *   void **ppvVar2;
	 *
	 *   if ((bRam000000000754a970 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3288);
	 *     func_0x031fdc8c(PTR_DAT_070c3290);
	 *     func_0x031fdc8c(PTR_DAT_070c3298);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c0f68);
	 *     bRam000000000754a970 = 1;
	 *   }
	 *   pvVar1 = UnityEngine.Component.get_transform(this);
	 *   ppvVar2 = &this.cachedTransform;
	 *   *ppvVar2 = pvVar1;
	 *   if (iRam00000000077785f0 != 0) {
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x3235D60 VA: 0x7818920D60
	private void OnValidate();
	/*
	 *   int iVar1;
	 *   int iVar2;
	 *   int iVar3;
	 *   int iVar4;
	 *   ulong uVar5;
	 *   ulong uVar6;
	 *   float fVar7;
	 *   ulong uVar8;
	 *   float fVar9;
	 *
	 *   iVar2 = this.sampleRays;
	 *   iVar3 = this.maxCountToConsider;
	 *   uVar8._0_4_ = this.occlusionLerpSpeed;
	 *   uVar8._4_4_ = this.FadeDuration;
	 *   if (7 < iVar2) {
	 *     iVar2 = 8;
	 *   }
	 *   iVar4 = this.minSampleRays;
	 *   if (iVar2 < 2) {
	 *     iVar2 = 1;
	 *   }
	 *   this.sampleRays = iVar2;
	 *   iVar1 = iVar4;
	 *   if (iVar2 <= iVar4) {
	 *     iVar1 = iVar2;
	 *   }
	 *   if (iVar4 < 1) {
	 *     iVar1 = 1;
	 *   }
	 *   if (4 < iVar3) {
	 *     iVar3 = 5;
	 *   }
	 *   this.minSampleRays = iVar1;
	 *   uVar6 = _UNK_0134d6e0;
	 *   if (iVar3 < 2) {
	 *     iVar3 = 1;
	 *   }
	 *   fVar9 = (float)_UNK_0134d6e0;
	 *   uVar5 = _UNK_0134d6e0 >> 0x20;
	 *   this.maxCountToConsider = iVar3;
	 *   fVar7 = 1.0;
	 *   if (1.0 <= this.updateFrequency) {
	 *     fVar7 = this.updateFrequency;
	 *   }
	 *   this.updateFrequency = fVar7;
	 *   uVar8 = uVar8 ^ (uVar8 ^ uVar6) &
	 *                   CONCAT44(-(uint)((float)uVar8._4_4_ < (float)uVar5),
	 *                            -(uint)((float)(undefined4)uVar8 < fVar9));
	 *   fVar7 = 0.0;
	 *   if (0.0 <= this.sampleSpreadMeters) {
	 *     fVar7 = this.sampleSpreadMeters;
	 *   }
	 *   this.occlusionLerpSpeed = (float)(int)uVar8;
	 *   this.FadeDuration = (float)(int)(uVar8 >> 0x20);
	 *   this.sampleSpreadMeters = fVar7;
	 *   return;
	 */
	// RVA: 0x3235DF8 VA: 0x7818920DF8
	private void Update();
	/*
	 *   undefined *puVar1;
	 *   char cVar2;
	 *   ulong uVar3;
	 *   ulong uVar4;
	 *   void *extraout_x1;
	 *   void *methodInfo_00;
	 *   void *pvVar5;
	 *   void **ppvVar6;
	 *   void *pvVar7;
	 *   float fVar8;
	 *   int iVar9;
	 *   float fVar10;
	 *   float fVar11;
	 *   float fVar12;
	 *   int iVar13;
	 *   int iVar14;
	 *   float fVar15;
	 *   float fVar16;
	 *   float fVar17;
	 *   undefined1 auVar18 [16];
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a971 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a971 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   ppvVar6 = &this.audioListener;
	 *   pvVar7 = *ppvVar6;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar1,methodInfo);
	 *   }
	 *   pvVar5 = null;
	 *   auVar18 = UnityEngine.Object.op_Equality(pvVar7,null);
	 *   if (((ulong)auVar18._0_8_ & 1) != 0) {
	 *     pvVar7 = AudioOcclusion_Optimized.FindListenerSafe(auVar18._0_8_);
	 *     *ppvVar6 = pvVar7;
	 *     func_0x031fdc38(ppvVar6,pvVar7);
	 *     pvVar7 = *ppvVar6;
	 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     pvVar5 = null;
	 *     uVar3 = UnityEngine.Object.op_Equality(pvVar7,null);
	 *     if ((uVar3 & 1) != 0) {
	 *       return;
	 *     }
	 *   }
	 *   fVar16 = this.updateTimer;
	 *   fVar8 = UnityEngine.Time.get_deltaTime();
	 *   fVar16 = fVar16 + fVar8;
	 *   fVar8 = 1.0 / this.updateFrequency;
	 *   this.updateTimer = fVar16;
	 *   if (fVar8 <= fVar16) {
	 *     this.updateTimer = fVar16 - fVar8;
	 *     AudioOcclusion_Optimized.DoOcclusionChecksFast(this);
	 *   }
	 *   iVar13 = this.ObstacleCount;
	 *   fVar17 = this.OcclusionLevel;
	 *   iVar9 = this.maxCountToConsider;
	 *   fVar16 = this.occlusionLerpSpeed;
	 *   fVar8 = UnityEngine.Time.get_deltaTime();
	 *   fVar16 = (float)func_0x06cb3970(-(fVar16 * fVar8));
	 *   cVar2 = cRam000000000754aa30;
	 *   fVar16 = 1.0 - fVar16;
	 *   fVar8 = 1.0;
	 *   if (fVar16 <= 1.0) {
	 *     fVar8 = fVar16;
	 *   }
	 *   fVar10 = 0.0;
	 *   if (0.0 <= fVar16) {
	 *     fVar10 = fVar8;
	 *   }
	 *   iVar14 = this.maxCountToConsider;
	 *   fVar17 = fVar17 + ((float)iVar13 / (float)iVar9 - fVar17) * fVar10;
	 *   this.OcclusionLevel = fVar17;
	 *   if (cVar2 == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754aa30 = '\x01';
	 *   }
	 *   fVar17 = fVar17 * (float)iVar14;
	 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   iVar9 = -0x80000000;
	 *   if ((float)(int)fVar17 != INFINITY) {
	 *     iVar9 = (int)fVar17;
	 *   }
	 *   iVar13 = this.maxCountToConsider;
	 *   if (iVar9 + 1 < iVar13) {
	 *     iVar13 = iVar9 + 1;
	 *   }
	 *   iVar14 = 0;
	 *   if (-1 < iVar9 + 1) {
	 *     iVar14 = iVar13;
	 *   }
	 *   fVar17 = fVar17 - (float)iVar9;
	 *   fVar16 = AudioOcclusion_Optimized.GetCutoffForIndex(this,iVar9);
	 *   fVar10 = AudioOcclusion_Optimized.GetCutoffForIndex(this,iVar14);
	 *   fVar11 = AudioOcclusion_Optimized.GetVolumeForIndex(this,iVar9);
	 *   fVar12 = AudioOcclusion_Optimized.GetVolumeForIndex(this,iVar14);
	 *   fVar8 = 1.0;
	 *   if (fVar17 <= 1.0) {
	 *     fVar8 = fVar17;
	 *   }
	 *   fVar15 = 0.0;
	 *   if (0.0 <= fVar17) {
	 *     fVar15 = fVar8;
	 *   }
	 *   fVar8 = this.currentCutoff;
	 *   fVar16 = fVar16 + fVar15 * (fVar10 - fVar16);
	 *   fVar11 = fVar11 + fVar15 * (fVar12 - fVar11);
	 *   if (fVar16 <= this.minCutoffFreq) {
	 *     fVar16 = this.minCutoffFreq;
	 *   }
	 *   fVar17 = 1.0;
	 *   if (fVar11 <= 1.0) {
	 *     fVar17 = fVar11;
	 *   }
	 *   fVar10 = this.minVolumeMultiplier;
	 *   if (this.minVolumeMultiplier <= fVar11) {
	 *     fVar10 = fVar17;
	 *   }
	 *   fVar17 = ABS(fVar16 - fVar8) / this.FadeDuration;
	 *   this.targetCutoff = fVar16;
	 *   this.targetVolumeMultiplier = fVar10;
	 *   if (this.FadeDuration <= 0.0) {
	 *     fVar17 = INFINITY;
	 *   }
	 *   fVar12 = UnityEngine.Time.get_deltaTime();
	 *   fVar10 = -(fVar17 * fVar12);
	 *   if (0.0 <= fVar16 - fVar8) {
	 *     fVar10 = fVar17 * fVar12;
	 *   }
	 *   fVar10 = fVar8 + fVar10;
	 *   if (ABS(fVar16 - fVar8) <= fVar17 * fVar12) {
	 *     fVar10 = fVar16;
	 *   }
	 *   this.currentCutoff = fVar10;
	 *   if (this.lowPassFilter != null) {
	 *     UnityEngine.AudioLowPassFilter.set_cutoffFrequency(this.lowPassFilter,fVar10);
	 *     pvVar7 = this.audioSources;
	 *     if (pvVar7 != null) {
	 *       uVar3 = 0;
	 *       do {
	 *         if ((long)(int)*(uint *)((long)pvVar7 + 0x18) <= (long)uVar3) {
	 *           return;
	 *         }
	 *         if (*(uint *)((long)pvVar7 + 0x18) <= uVar3) {
	 * LAB_0333618c:
	 *           IL2CPP.ThrowIndexOutOfRangeException();
	 *         }
	 *         pvVar7 = *(void **)((long)pvVar7 + uVar3 * 8 + 0x20);
	 *         if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar4 = UnityEngine.Object.op_Equality(pvVar7,null);
	 *         if ((uVar4 & 1) == 0) {
	 *           pvVar5 = this.defaultVolumes;
	 *           if (pvVar5 == null) break;
	 *           if (*(uint *)((long)pvVar5 + 0x18) <= uVar3) goto LAB_0333618c;
	 *           if (pvVar7 == null) break;
	 *           fVar17 = *(float *)((long)pvVar5 + uVar3 * 4 + 0x20) * this.targetVolumeMultiplier;
	 *           fVar8 = UnityEngine.AudioSource.get_volume(pvVar7);
	 *           fVar16 = ABS(fVar17 - fVar8) / this.FadeDuration;
	 *           if (this.FadeDuration <= 0.0) {
	 *             fVar16 = INFINITY;
	 *           }
	 *           fVar12 = UnityEngine.Time.get_deltaTime();
	 *           fVar10 = -(fVar16 * fVar12);
	 *           if (0.0 <= fVar17 - fVar8) {
	 *             fVar10 = fVar16 * fVar12;
	 *           }
	 *           fVar10 = fVar8 + fVar10;
	 *           if (ABS(fVar17 - fVar8) <= fVar16 * fVar12) {
	 *             fVar10 = fVar17;
	 *           }
	 *           UnityEngine.AudioSource.set_volume(pvVar7,fVar10);
	 *         }
	 *         pvVar7 = this.audioSources;
	 *         uVar3 = uVar3 + 1;
	 *       } while (pvVar7 != null);
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3236190 VA: 0x7818921190
	private void DoOcclusionChecksFast();
	/*
	 *   uint uVar1;
	 *   uint uVar2;
	 *   int iVar3;
	 *   UnityEngine_Color color;
	 *   UnityEngine_Color color_00;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   bool bVar6;
	 *   uint uVar7;
	 *   ulong uVar8;
	 *   long lVar9;
	 *   ulong uVar10;
	 *   long lVar11;
	 *   void *pvVar12;
	 *   void *pvVar13;
	 *   long *plVar14;
	 *   ulong uVar15;
	 *   uint uVar16;
	 *   long lVar17;
	 *   long lVar18;
	 *   uint uVar19;
	 *   float fVar20;
	 *   float fVar21;
	 *   float fVar22;
	 *   float fVar23;
	 *   float fVar24;
	 *   double dVar25;
	 *   float fVar26;
	 *   int iVar27;
	 *   undefined8 uVar28;
	 *   float fVar29;
	 *   float fVar30;
	 *   int iVar31;
	 *   float fVar32;
	 *   float in_s7;
	 *   undefined8 uVar33;
	 *   float fVar34;
	 *   double dVar35;
	 *   float fVar36;
	 *   float fVar37;
	 *   float fVar38;
	 *   float fVar39;
	 *   UnityEngine_Vector3 UVar40;
	 *   UnityEngine_Vector3 UVar41;
	 *   UnityEngine_Vector3 start;
	 *   UnityEngine_Vector3 UVar42;
	 *   UnityEngine_Vector3 start_00;
	 *   UnityEngine_Vector3 end;
	 *   undefined8 uStack_158;
	 *   float fStack_b0;
	 *   float fStack_ac;
	 *   double dStack_a8;
	 *
	 *   if ((bRam000000000754a972 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
	 *     func_0x031fdc8c(PTR_DAT_070c32a8);
	 *     bRam000000000754a972 = 1;
	 *   }
	 *   pvVar13 = this.audioSources;
	 *   this.uniqueTransformsCount = 0;
	 *   this.ObstacleCount = 0;
	 *   puVar4 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (pvVar13 == null) {
	 *     return;
	 *   }
	 *   uVar10 = *(ulong *)((long)pvVar13 + 0x18);
	 *   if (uVar10 == 0) {
	 *     return;
	 *   }
	 *   if (this.onlyWhilePlaying != false) {
	 *     if (0 < (int)uVar10) {
	 *       uVar15 = 0;
	 *       do {
	 *         if ((uVar10 & 0xffffffff) <= uVar15) goto LAB_03336ecc;
	 *         pvVar12 = *(void **)((long)pvVar13 + uVar15 * 8 + 0x20);
	 *         if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar10 = UnityEngine.Object.op_Inequality(pvVar12,null);
	 *         if ((uVar10 & 1) != 0) {
	 *           if (pvVar12 == null) goto LAB_03336ec8;
	 *           bVar6 = UnityEngine.AudioSource.get_isPlaying(pvVar12);
	 *           if (bVar6) goto LAB_03336294;
	 *         }
	 *         uVar10 = (ulong)*(uint *)((long)pvVar13 + 0x18);
	 *         uVar15 = uVar15 + 1;
	 *       } while ((long)uVar15 < (long)(int)*(uint *)((long)pvVar13 + 0x18));
	 *     }
	 * LAB_033364ac:
	 *     iVar31 = 0;
	 *     goto LAB_033364b0;
	 *   }
	 * LAB_03336294:
	 *   if ((this.skipIfOutOfRange != false) && (0.0 < this.distanceThresholdSqr)) {
	 *     pvVar13 = this.audioListener;
	 *     if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     uVar10 = UnityEngine.Object.op_Inequality(pvVar13,null);
	 *     if ((uVar10 & 1) != 0) {
	 *       if (this.audioListener == null) goto LAB_03336ec8;
	 *       UVar40 = UnityEngine.Transform.get_position(this.audioListener);
	 *       if (this.cachedTransform == null) goto LAB_03336ec8;
	 *       UVar41 = UnityEngine.Transform.get_position(this.cachedTransform);
	 *       fVar20 = UVar40.x - UVar41.x;
	 *       fVar26 = UVar40.y - UVar41.y;
	 *       fVar29 = UVar40.z - UVar41.z;
	 *       if (this.distanceThresholdSqr < fVar29 * fVar29 + fVar20 * fVar20 + fVar26 * fVar26)
	 *       goto LAB_033364ac;
	 *     }
	 *   }
	 *   if (this.cachedTransform == null) {
	 * LAB_03336ec8:
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   UVar40 = UnityEngine.Transform.get_position(this.cachedTransform);
	 *   if (this.audioListener == null) goto LAB_03336ec8;
	 *   UVar41 = UnityEngine.Transform.get_position(this.audioListener);
	 *   if (cRam000000000754a89e == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754a89e = '\x01';
	 *   }
	 *   puVar4 = typeinfo_ptr_mscorlib_Math_6FC0738;
	 *   fVar20 = UVar41.x - UVar40.x;
	 *   fVar26 = UVar41.y - UVar40.y;
	 *   fVar29 = UVar41.z - UVar40.z;
	 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   fVar32 = SQRT(fVar29 * fVar29 + fVar20 * fVar20 + fVar26 * fVar26);
	 *   if (fVar32 <= _UNK_0134ef58) goto LAB_033364ac;
	 *   iVar31 = this.sampleRays;
	 *   fVar21 = SQRT(this.distanceThresholdSqr) * _UNK_0134e4b0;
	 *   fVar39 = 1.0;
	 *   if (1.0 <= fVar21) {
	 *     fVar39 = fVar21;
	 *   }
	 *   fVar21 = 1.0 - fVar32 / fVar39;
	 *   fVar39 = 1.0;
	 *   if (fVar21 <= 1.0) {
	 *     fVar39 = fVar21;
	 *   }
	 *   fVar30 = 0.0;
	 *   if (0.0 <= fVar21) {
	 *     fVar30 = fVar39;
	 *   }
	 *   iVar27 = this.minSampleRays;
	 *   fVar39 = 0.0;
	 *   if (0.0 <= fVar30) {
	 *     fVar39 = fVar30;
	 *   }
	 *   if (cRam000000000754a7ca == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754a7ca = '\x01';
	 *   }
	 *   fVar39 = ((float)iVar31 - (float)iVar27) * fVar39 + (float)iVar27;
	 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   dVar35 = (double)fVar39;
	 *   dVar25 = (double)func_0x06cb38d0(dVar35,&dStack_a8);
	 *   if (0.0 <= fVar39) {
	 *     if (dVar25 == 0.5) {
	 *       dVar25 = 1.0;
	 *       goto LAB_033364f8;
	 *     }
	 *     dStack_a8 = (double)(long)(dVar35 + 0.5);
	 *   }
	 *   else if (dVar25 == -0.5) {
	 *     dVar25 = -1.0;
	 * LAB_033364f8:
	 *     if (((long)dStack_a8 & 1U) != 0) {
	 *       dStack_a8 = dStack_a8 + dVar25;
	 *     }
	 *   }
	 *   else {
	 *     dStack_a8 = (double)(long)(dVar35 + -0.5);
	 *   }
	 *   fVar20 = fVar20 / fVar32;
	 *   fVar26 = fVar26 / fVar32;
	 *   fVar29 = fVar29 / fVar32;
	 *   uVar19 = 0x80000000;
	 *   if (dStack_a8 != INFINITY) {
	 *     uVar19 = (int)dStack_a8;
	 *   }
	 *   uVar2 = uVar19;
	 *   if (this.sampleRays <= (int)uVar19) {
	 *     uVar2 = this.sampleRays;
	 *   }
	 *   uVar1 = this.minSampleRays;
	 *   if (this.minSampleRays <= (int)uVar19) {
	 *     uVar1 = uVar2;
	 *   }
	 *   if (cRam000000000754a7cb == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *     cRam000000000754a7cb = '\x01';
	 *   }
	 *   puVar5 = typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08;
	 *   lVar11 = *(long *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
	 *   fVar30 = *(float *)(lVar11 + 0x18);
	 *   fVar39 = *(float *)(lVar11 + 0x1c);
	 *   fVar21 = *(float *)(lVar11 + 0x20);
	 *   if (_UNK_0134ee60 < ABS(fVar29 * fVar21 + fVar30 * fVar20 + fVar39 * fVar26)) {
	 *     if (cRam000000000754aa31 == '\0') {
	 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *       cRam000000000754aa31 = '\x01';
	 *       lVar11 = *(long *)(*(long *)puVar5 + 0xb8);
	 *     }
	 *     fVar39 = *(float *)(lVar11 + 0x40);
	 *     fVar21 = *(float *)(lVar11 + 0x44);
	 *     fVar30 = *(float *)(lVar11 + 0x3c);
	 *   }
	 *   uVar33 = NEON_ext(CONCAT44(fVar29,fVar26),CONCAT44(fVar26,fVar20),4,1);
	 *   fVar38 = (float)((ulong)uVar33 >> 0x20);
	 *   if (cRam000000000754a7cc == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754a7cc = '\x01';
	 *   }
	 *   fVar37 = fVar26 * fVar21 - (float)uVar33 * fVar39;
	 *   fVar21 = fVar29 * fVar30 - fVar38 * fVar21;
	 *   fVar39 = fVar20 * fVar39 - fVar26 * fVar30;
	 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   fVar30 = _UNK_0134eeec;
	 *   fVar22 = SQRT(fVar39 * fVar39 + fVar37 * fVar37 + fVar21 * fVar21);
	 *   if (fVar22 <= _UNK_0134eeec) {
	 *     if (cRam000000000754a7ce == '\0') {
	 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *       cRam000000000754a7ce = '\x01';
	 *     }
	 *     uVar28 = **(undefined8 **)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
	 *     fVar39 = *(float *)(*(undefined8 **)
	 *                          (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1);
	 *   }
	 *   else {
	 *     fVar39 = fVar39 / fVar22;
	 *     uVar28 = CONCAT44(fVar21 / fVar22,fVar37 / fVar22);
	 *   }
	 *   fVar21 = (float)((ulong)uVar28 >> 0x20);
	 *   fVar37 = (float)uVar28;
	 *   uVar28 = NEON_ext(CONCAT44(fVar39,fVar21),uVar28,4,1);
	 *   if (cRam000000000754a7cc == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754a7cc = '\x01';
	 *   }
	 *   fVar22 = (float)uVar33 * fVar21 - fVar26 * (float)uVar28;
	 *   fVar34 = fVar38 * fVar39 - fVar29 * (float)((ulong)uVar28 >> 0x20);
	 *   fVar38 = fVar26 * fVar37 - fVar20 * fVar21;
	 *   if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   fVar23 = SQRT(fVar38 * fVar38 + fVar22 * fVar22 + fVar34 * fVar34);
	 *   if (fVar23 <= fVar30) {
	 *     if (cRam000000000754a7ce == '\0') {
	 *       func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *       cRam000000000754a7ce = '\x01';
	 *     }
	 *     uStack_158 = **(undefined8 **)
	 *                    (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
	 *     fVar38 = *(float *)(*(undefined8 **)
	 *                          (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8) + 1);
	 *   }
	 *   else {
	 *     fVar38 = fVar38 / fVar23;
	 *     uStack_158 = CONCAT44(fVar34 / fVar23,fVar22 / fVar23);
	 *   }
	 *   puVar4 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   fVar30 = _UNK_0134ed28;
	 *   if (0 < (int)uVar1) {
	 *     fVar22 = (float)uStack_158;
	 *     fVar34 = (float)((ulong)uStack_158 >> 0x20);
	 *     uVar19 = 0;
	 *     uVar2 = uVar1;
	 *     if ((int)uVar1 < 7) {
	 *       uVar2 = 6;
	 *     }
	 *     fVar32 = fVar32 + _UNK_0134e6e4;
	 *     fVar23 = fVar29 * _UNK_0134ed30;
	 *     do {
	 *       if (cRam000000000754a7ce == '\0') {
	 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *         cRam000000000754a7ce = '\x01';
	 *       }
	 *       if ((int)uVar19 < 3) {
	 *         if (uVar19 == 1) {
	 *           fVar24 = this.sampleSpreadMeters;
	 *           uVar33 = CONCAT44(fVar21 * fVar24,fVar37 * fVar24);
	 *           fVar24 = fVar39 * fVar24;
	 *         }
	 *         else {
	 *           if (uVar19 == 2) {
	 *             fVar24 = this.sampleSpreadMeters;
	 *             uVar33 = CONCAT44(-fVar21 * fVar24,-fVar37 * fVar24);
	 *             fVar36 = fVar39;
	 *             goto LAB_03336900;
	 *           }
	 * LAB_03336908:
	 *           if (uVar19 < 5) {
	 *             uVar33 = **(undefined8 **)
	 *                        (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8);
	 *             fVar24 = *(float *)(*(undefined8 **)
	 *                                  (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 +
	 *                                  0xb8) + 1);
	 *           }
	 *           else {
	 *             fVar24 = (float)(int)(uVar19 - 5) * fVar30;
	 *             func_0x06cb3940((fVar24 + fVar24) / (float)(int)(uVar2 - 5),&fStack_ac,&fStack_b0);
	 *             fVar36 = this.sampleSpreadMeters;
	 *             fVar24 = fVar39 * fStack_b0 * fVar36 + fVar38 * fStack_ac * fVar36;
	 *             uVar33 = CONCAT44(fVar21 * fStack_b0 * fVar36 + fVar34 * fStack_ac * fVar36,
	 *                               fVar37 * fStack_b0 * fVar36 + fVar22 * fStack_ac * fVar36);
	 *           }
	 *         }
	 *       }
	 *       else if (uVar19 == 3) {
	 *         fVar24 = this.sampleSpreadMeters;
	 *         uVar33 = CONCAT44(fVar34 * fVar24,fVar22 * fVar24);
	 *         fVar24 = fVar38 * fVar24;
	 *       }
	 *       else {
	 *         if (uVar19 != 4) goto LAB_03336908;
	 *         fVar24 = this.sampleSpreadMeters;
	 *         uVar33 = CONCAT44(-fVar34 * fVar24,-fVar22 * fVar24);
	 *         fVar36 = fVar38;
	 * LAB_03336900:
	 *         fVar24 = fVar24 * -fVar36;
	 *       }
	 *       pvVar13 = this.hitBuffer;
	 *       iVar31 = this.occlusionLayerMaskInt;
	 *       iVar27 = this.triggerInteraction;
	 *       if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8 + 0xe4) == 0) {
	 *         func_0x031fde08();
	 *       }
	 *       fVar36 = fVar23 + UVar40.z + fVar24;
	 *       UVar41.x = fVar20 * 0.02 + UVar40.x + (float)uVar33;
	 *       fVar24 = fVar26 * 0.02 + UVar40.y + (float)((ulong)uVar33 >> 0x20);
	 *       UVar41.y = fVar24;
	 *       UVar41.z = fVar36;
	 *       UVar42.y = fVar26;
	 *       UVar42.x = fVar20;
	 *       UVar42.z = fVar29;
	 *       uVar7 = Physics.RaycastNonAlloc(UVar41,UVar42,pvVar13,fVar32,iVar31,iVar27);
	 *       if (0 < (int)uVar7) {
	 *         uVar10 = 0;
	 *         do {
	 *           pvVar13 = this.hitBuffer;
	 *           if (pvVar13 == null) goto LAB_03336ec8;
	 *           if (*(uint *)((long)pvVar13 + 0x18) <= uVar10) goto LAB_03336ecc;
	 *           pvVar13 = UnityEngine.RaycastHit.get_collider((void *)((long)pvVar13 + uVar10 * 0x2c + 0x20));
	 *           if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *             func_0x031fde08(*(long *)puVar4);
	 *           }
	 *           uVar15 = UnityEngine.Object.op_Equality(pvVar13,null);
	 *           if ((uVar15 & 1) == 0) {
	 *             if (pvVar13 == null) goto LAB_03336ec8;
	 *             pvVar13 = UnityEngine.Component.get_transform(pvVar13);
	 *             pvVar12 = this.cachedTransform;
	 *             if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *               func_0x031fde08(*(long *)puVar4);
	 *             }
	 *             uVar15 = UnityEngine.Object.op_Equality(pvVar13,pvVar12);
	 *             if ((uVar15 & 1) == 0) {
	 *               if (this.ignoreSourceChildren != false) {
	 *                 if (pvVar13 == null) goto LAB_03336ec8;
	 *                 bVar6 = UnityEngine.Transform.IsChildOf(pvVar13,this.cachedTransform);
	 *                 if (bVar6) goto LAB_03336d80;
	 *               }
	 *               if (this.countUniqueTransforms == false) {
	 *                 plVar14 = this.uniqueTransformsBuffer;
	 *                 if (plVar14 == null) goto LAB_03336ec8;
	 *                 uVar16 = this.uniqueTransformsCount;
	 *                 if ((int)uVar16 < (int)plVar14[3]) {
	 *                   this.uniqueTransformsCount = uVar16 + 1;
	 *                 }
	 *                 else {
	 *                   plVar14 = (long *)func_0x031fdd78(*(undefined8 *)PTR_DAT_070c32a8,
	 *                                                     (int)plVar14[3] << 1);
	 *                   pvVar12 = this.uniqueTransformsBuffer;
	 *                   if (pvVar12 == null) goto LAB_03336ec8;
	 *                   lVar18 = 0x20;
	 *                   lVar11 = 4;
	 *                   while( true ) {
	 *                     uVar15 = lVar11 - 4;
	 *                     if ((long)(int)*(uint *)((long)pvVar12 + 0x18) <= (long)uVar15) break;
	 *                     if (*(uint *)((long)pvVar12 + 0x18) <= uVar15) goto LAB_03336ecc;
	 *                     if (plVar14 == null) goto LAB_03336ec8;
	 *                     lVar17 = *(long *)((long)pvVar12 + lVar11 * 8);
	 *                     if ((lVar17 != 0) &&
	 *                        (lVar9 = func_0x031fde0c(lVar17,*(undefined8 *)(*plVar14 + 0x40)), lVar9 == 0
	 *                        )) goto LAB_03336ed0;
	 *                     if (*(uint *)(plVar14 + 3) <= uVar15) goto LAB_03336ecc;
	 *                     plVar14[lVar11] = lVar17;
	 *                     func_0x031fdc38((long)plVar14 + lVar18,lVar17);
	 *                     pvVar12 = this.uniqueTransformsBuffer;
	 *                     lVar11 = lVar11 + 1;
	 *                     lVar18 = lVar18 + 8;
	 *                     if (pvVar12 == null) goto LAB_03336ec8;
	 *                   }
	 *                   this.uniqueTransformsBuffer = plVar14;
	 *                   func_0x031fdc38(&this.uniqueTransformsBuffer,plVar14);
	 *                   uVar16 = this.uniqueTransformsCount;
	 *                   plVar14 = this.uniqueTransformsBuffer;
	 *                   this.uniqueTransformsCount = uVar16 + 1;
	 *                   if (plVar14 == null) goto LAB_03336ec8;
	 *                 }
	 *                 if ((pvVar13 != null) &&
	 *                    (lVar11 = func_0x031fde0c(pvVar13,*(undefined8 *)(*plVar14 + 0x40)), lVar11 == 0)
	 *                    ) goto LAB_03336ed0;
	 *                 if (*(uint *)(plVar14 + 3) <= uVar16) goto LAB_03336ecc;
	 *                 plVar14 = plVar14 + (int)uVar16;
	 *               }
	 *               else {
	 *                 uVar16 = this.uniqueTransformsCount;
	 *                 if (0 < (int)uVar16) {
	 *                   uVar15 = 0;
	 *                   do {
	 *                     pvVar12 = this.uniqueTransformsBuffer;
	 *                     if (pvVar12 == null) goto LAB_03336ec8;
	 *                     if (*(uint *)((long)pvVar12 + 0x18) <= uVar15) goto LAB_03336ecc;
	 *                     uVar33 = *(undefined8 *)((long)pvVar12 + uVar15 * 8 + 0x20);
	 *                     if (*(int *)(*(long *)puVar4 + 0xe4) == 0) {
	 *                       func_0x031fde08();
	 *                     }
	 *                     uVar8 = UnityEngine.Object.op_Equality(uVar33,pvVar13);
	 *                     if ((uVar8 & 1) != 0) goto LAB_03336d70;
	 *                     uVar16 = this.uniqueTransformsCount;
	 *                     uVar15 = uVar15 + 1;
	 *                   } while ((long)uVar15 < (long)(int)uVar16);
	 *                 }
	 *                 plVar14 = this.uniqueTransformsBuffer;
	 *                 if (plVar14 == null) goto LAB_03336ec8;
	 *                 if ((int)uVar16 < (int)plVar14[3]) {
	 *                   this.uniqueTransformsCount = uVar16 + 1;
	 *                 }
	 *                 else {
	 *                   plVar14 = (long *)func_0x031fdd78(*(undefined8 *)PTR_DAT_070c32a8,
	 *                                                     (int)plVar14[3] << 1);
	 *                   pvVar12 = this.uniqueTransformsBuffer;
	 *                   if (pvVar12 == null) goto LAB_03336ec8;
	 *                   lVar18 = 0x20;
	 *                   lVar11 = 4;
	 *                   while( true ) {
	 *                     uVar15 = lVar11 - 4;
	 *                     if ((long)(int)*(uint *)((long)pvVar12 + 0x18) <= (long)uVar15) break;
	 *                     if (*(uint *)((long)pvVar12 + 0x18) <= uVar15) goto LAB_03336ecc;
	 *                     if (plVar14 == null) goto LAB_03336ec8;
	 *                     lVar17 = *(long *)((long)pvVar12 + lVar11 * 8);
	 *                     if ((lVar17 != 0) &&
	 *                        (lVar9 = func_0x031fde0c(lVar17,*(undefined8 *)(*plVar14 + 0x40)), lVar9 == 0
	 *                        )) goto LAB_03336ed0;
	 *                     if (*(uint *)(plVar14 + 3) <= uVar15) goto LAB_03336ecc;
	 *                     plVar14[lVar11] = lVar17;
	 *                     func_0x031fdc38((long)plVar14 + lVar18,lVar17);
	 *                     pvVar12 = this.uniqueTransformsBuffer;
	 *                     lVar11 = lVar11 + 1;
	 *                     lVar18 = lVar18 + 8;
	 *                     if (pvVar12 == null) goto LAB_03336ec8;
	 *                   }
	 *                   this.uniqueTransformsBuffer = plVar14;
	 *                   func_0x031fdc38(&this.uniqueTransformsBuffer,plVar14);
	 *                   uVar16 = this.uniqueTransformsCount;
	 *                   plVar14 = this.uniqueTransformsBuffer;
	 *                   this.uniqueTransformsCount = uVar16 + 1;
	 *                   if (plVar14 == null) goto LAB_03336ec8;
	 *                 }
	 *                 if ((pvVar13 != null) &&
	 *                    (lVar11 = func_0x031fde0c(pvVar13,*(undefined8 *)(*plVar14 + 0x40)), lVar11 == 0)
	 *                    ) {
	 * LAB_03336ed0:
	 *                   uVar33 = func_0x031fdf58();
	 *                   IL2CPP.ThrowManagedException();
	 *                 }
	 *                 if (*(uint *)(plVar14 + 3) <= uVar16) goto LAB_03336ecc;
	 *                 plVar14 = plVar14 + (int)uVar16;
	 *               }
	 *               plVar14[4] = (long)pvVar13;
	 *               func_0x031fdc38(plVar14 + 4,pvVar13);
	 * LAB_03336d70:
	 *               iVar31 = this.maxCountToConsider;
	 *               if (this.maxCountToConsider <= this.uniqueTransformsCount) goto LAB_033364b0;
	 *             }
	 *           }
	 * LAB_03336d80:
	 *           uVar10 = uVar10 + 1;
	 *         } while (uVar10 != uVar7);
	 *       }
	 *       if (this.DrawDebugLines != false) {
	 *         if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         end.x = fVar20 * fVar32 + UVar41.x;
	 *         end.z = fVar29 * fVar32 + fVar36;
	 *         color.b = 0.0;
	 *         color.a = 1.0;
	 *         color.r = 1.0;
	 *         color.g = 0.0;
	 *         start.y = fVar24;
	 *         start.x = UVar41.x;
	 *         start.z = fVar36;
	 *         end.y = fVar26 * fVar32 + fVar24;
	 *         UnityEngine.Debug.DrawLine(start,end,color,in_s7);
	 *         if (0 < (int)uVar7) {
	 *           pvVar13 = this.hitBuffer;
	 *           if (pvVar13 == null) goto LAB_03336ec8;
	 *           if (*(int *)((long)pvVar13 + 0x18) == 0) {
	 * LAB_03336ecc:
	 *             IL2CPP.ThrowIndexOutOfRangeException();
	 *           }
	 *           UVar42 = UnityEngine.RaycastHit.get_point((void *)((long)pvVar13 + 0x20));
	 *           if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           color_00.b = 0.015686275;
	 *           color_00.a = 1.0;
	 *           color_00.r = 1.0;
	 *           color_00.g = 0.92156863;
	 *           start_00.y = fVar24;
	 *           start_00.x = UVar41.x;
	 *           start_00.z = fVar36;
	 *           UnityEngine.Debug.DrawLine(start_00,UVar42,color_00,in_s7);
	 *         }
	 *       }
	 *       uVar19 = uVar19 + 1;
	 *     } while (uVar19 != uVar1);
	 *   }
	 *   iVar3 = this.uniqueTransformsCount;
	 *   iVar27 = iVar3;
	 *   if (this.maxCountToConsider <= iVar3) {
	 *     iVar27 = this.maxCountToConsider;
	 *   }
	 *   iVar31 = 0;
	 *   if (-1 < iVar3) {
	 *     iVar31 = iVar27;
	 *   }
	 * LAB_033364b0:
	 *   this.ObstacleCount = iVar31;
	 *   return;
	 */
	// RVA: 0x3236EDC VA: 0x7818921EDC
	private float GetCutoffForIndex(int idx);
	/*
	 *   uint uVar1;
	 *   uint uVar2;
	 *   void *pvVar3;
	 *   float fVar4;
	 *   float fVar5;
	 *
	 *   uVar1 = this.maxCountToConsider;
	 *   if (idx <= this.maxCountToConsider) {
	 *     uVar1 = idx;
	 *   }
	 *   if (4 < (int)uVar1) {
	 *     uVar1 = 5;
	 *   }
	 *   uVar2 = 0;
	 *   if (-1 < idx) {
	 *     uVar2 = uVar1;
	 *   }
	 *   if (((this.useAbsoluteCutoffs != false) &&
	 *       (pvVar3 = this.absoluteCutoffs, pvVar3 != null)) &&
	 *      ((int)uVar2 < (int)*(uint *)((long)pvVar3 + 0x18))) {
	 *     if (*(uint *)((long)pvVar3 + 0x18) <= uVar2) goto LAB_03336f74;
	 *     fVar4 = *(float *)((long)pvVar3 + (long)(int)uVar2 * 4 + 0x20);
	 *     if (0.0 < fVar4) {
	 *       return fVar4;
	 *     }
	 *   }
	 *   pvVar3 = this.cutoffMultipliers;
	 *   fVar4 = _UNK_0134eca0;
	 *   if ((pvVar3 != null) && ((int)uVar2 < (int)*(uint *)((long)pvVar3 + 0x18))) {
	 *     if (*(uint *)((long)pvVar3 + 0x18) <= uVar2) {
	 * LAB_03336f74:
	 *       IL2CPP.ThrowIndexOutOfRangeException();
	 *     }
	 *     fVar4 = *(float *)((long)pvVar3 + (long)(int)uVar2 * 4 + 0x20);
	 *   }
	 *   fVar4 = fVar4 * this.defaultCutoffFreq;
	 *   fVar5 = this.minCutoffFreq;
	 *   if (this.minCutoffFreq <= fVar4) {
	 *     fVar5 = fVar4;
	 *   }
	 *   return fVar5;
	 */
	// RVA: 0x3236F78 VA: 0x7818921F78
	private float GetVolumeForIndex(int idx);
	/*
	 *   uint uVar1;
	 *   uint uVar2;
	 *   void *pvVar3;
	 *   float fVar4;
	 *   float fVar5;
	 *   float fVar6;
	 *
	 *   uVar1 = this.maxCountToConsider;
	 *   if (idx <= this.maxCountToConsider) {
	 *     uVar1 = idx;
	 *   }
	 *   pvVar3 = this.volumeMultipliers;
	 *   if (4 < (int)uVar1) {
	 *     uVar1 = 5;
	 *   }
	 *   uVar2 = 0;
	 *   if (-1 < idx) {
	 *     uVar2 = uVar1;
	 *   }
	 *   if ((pvVar3 != null) && ((int)uVar2 < (int)*(uint *)((long)pvVar3 + 0x18))) {
	 *     if (uVar2 < *(uint *)((long)pvVar3 + 0x18)) {
	 *       fVar6 = *(float *)((long)pvVar3 + (long)(int)uVar2 * 4 + 0x20);
	 *       fVar4 = 1.0;
	 *       if (fVar6 <= 1.0) {
	 *         fVar4 = fVar6;
	 *       }
	 *       fVar5 = this.minVolumeMultiplier;
	 *       if (this.minVolumeMultiplier <= fVar6) {
	 *         fVar5 = fVar4;
	 *       }
	 *       return fVar5;
	 *     }
	 *     IL2CPP.ThrowIndexOutOfRangeException();
	 *   }
	 *   return this.minVolumeMultiplier;
	 */
	// RVA: 0x3235CC8 VA: 0x7818920CC8
	private UnityEngine.Transform FindListenerSafe();
	/*
	 *   undefined *puVar1;
	 *   undefined *puVar2;
	 *   void *pvVar3;
	 *   ulong uVar4;
	 *   undefined8 *puVar5;
	 *   void *pvVar6;
	 *   void *extraout_x1;
	 *   long lVar7;
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a973 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c32a0);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a973 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   puVar2 = PTR_DAT_070c32a0;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar1,methodInfo);
	 *   }
	 *   pvVar3 = (void *)func_0x03890424(*(undefined8 *)puVar2);
	 *   uVar4 = UnityEngine.Object.op_Implicit(pvVar3);
	 *   if ((uVar4 & 1) == 0) {
	 *     return null;
	 *   }
	 *   if (pvVar3 == null) {
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   if ((bRam000000000755f766 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_0714f3d0,0);
	 *     func_0x031fdc8c(PTR_DAT_0714df98);
	 *     bRam000000000755f766 = 1;
	 *   }
	 *   if (pvVar3 != null) {
	 *     lVar7 = *(long *)((long)pvVar3 + 0x10);
	 *     if (lVar7 == 0) {
	 *       UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(pvVar3);
	 *     }
	 *     puVar1 = PTR_DAT_0714df98;
	 *     if (pcRam000000000755f770 == null) {
	 *       pcRam000000000755f770 = (code *)func_0x031fdc50(&UNK_0135e216);
	 *     }
	 *     pvVar3 = (void *)(*pcRam000000000755f770)(lVar7);
	 *     lVar7 = *(long *)puVar1;
	 *     if (*(long *)(lVar7 + 0x38) == 0) {
	 *       func_0x03237280(lVar7);
	 *     }
	 *     if (pvVar3 != null) {
	 *       if (cRam000000000754b07b == '\0') {
	 *         func_0x031fdc8c(&DAT_0726eae8);
	 *         cRam000000000754b07b = '\x01';
	 *       }
	 *       if (((ulong)pvVar3 & 1) == 0) {
	 *         puVar5 = (undefined8 *)System.IntPtr.op_Explicit();
	 *         pvVar3 = (void *)*puVar5;
	 *       }
	 *       else {
	 *         pvVar3 = System.Runtime.InteropServices.GCHandle.GetTarget(pvVar3);
	 *       }
	 *       lVar7 = **(long **)(lVar7 + 0x38);
	 *       if ((*(ushort *)(lVar7 + 0x135) & 1) == 0) {
	 *         lVar7 = func_0x03237224(lVar7);
	 *       }
	 *       if (pvVar3 != null) {
	 *         pvVar6 = (void *)func_0x031fde0c(pvVar3,lVar7);
	 *         if (pvVar6 != null) {
	 *           return pvVar6;
	 *         }
	 *         noreturn_helper_30fe2b4(pvVar3,lVar7);
	 *       }
	 *     }
	 *     return null;
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3236FE4 VA: 0x7818921FE4
	public int GetObstacleCount();
	/*
	 *   return this.ObstacleCount;
	 */
	// RVA: 0x3236FEC VA: 0x7818921FEC
	public float GetOcclusionLevel();
	/*
	 *   return this.OcclusionLevel;
	 */
	// RVA: 0x3236FF4 VA: 0x7818921FF4
	public void .ctor();
	/*
	 *   undefined8 uVar1;
	 *   undefined4 uVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   undefined8 uVar7;
	 *   int iVar8;
	 *   undefined8 uVar9;
	 *   void *pvVar10;
	 *
	 *   puVar6 = PTR_DAT_070c32b8;
	 *   puVar5 = PTR_DAT_070c32b0;
	 *   puVar4 = PTR_DAT_070c32a8;
	 *   puVar3 = PTR_DAT_070c0f68;
	 *   if ((bRam000000000754a974 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c32b8);
	 *     func_0x031fdc8c(PTR_DAT_070c0f68);
	 *     func_0x031fdc8c(PTR_DAT_070c32a8);
	 *     func_0x031fdc8c(PTR_DAT_070c32b0);
	 *     bRam000000000754a974 = 1;
	 *   }
	 *   iVar8 = UnityEngine.LayerMask.op_Implicit(-1);
	 *   this.OcclusionLayer = iVar8;
	 *   this.updateFrequency = 5.0;
	 *   uVar9 = *(undefined8 *)puVar3;
	 *   this.minSampleRays = 2;
	 *   this.maxCountToConsider = 5;
	 *   uVar1 = _UNK_0134d6e8;
	 *   this.sampleRays = 3;
	 *   this.sampleSpreadMeters = 0.25;
	 *   this.skipIfOutOfRange = true;
	 *   this.ignoreSourceChildren = true;
	 *   uVar7 = _UNK_0134d6e8;
	 *   _UNK_0134d6e8 = (undefined4)uVar1;
	 *   _UNK_0134d6ec = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134d6ec;
	 *   this.minCutoffFreq = (float)_UNK_0134d6e8;
	 *   _UNK_0134d6e8 = uVar7;
	 *   this.minVolumeMultiplier = (float)uVar2;
	 *   pvVar10 = (void *)func_0x031fdd78(uVar9,6);
	 *   this.absoluteCutoffs = pvVar10;
	 *   func_0x031fdc38();
	 *   pvVar10 = (void *)func_0x031fdd78(*(undefined8 *)puVar3,6);
	 *   RuntimeHelpers.InitializeArray(pvVar10,*(undefined8 *)puVar5);
	 *   this.cutoffMultipliers = pvVar10;
	 *   func_0x031fdc38(&this.cutoffMultipliers,pvVar10);
	 *   pvVar10 = (void *)func_0x031fdd78(*(undefined8 *)puVar3,6);
	 *   RuntimeHelpers.InitializeArray(pvVar10,*(undefined8 *)puVar5);
	 *   this.volumeMultipliers = pvVar10;
	 *   func_0x031fdc38(&this.volumeMultipliers,pvVar10);
	 *   uVar1 = _UNK_0134d520;
	 *   uVar9 = *(undefined8 *)puVar6;
	 *   this.onlyWhilePlaying = true;
	 *   this.triggerInteraction = 1;
	 *   uVar7 = _UNK_0134d520;
	 *   _UNK_0134d520 = (undefined4)uVar1;
	 *   _UNK_0134d524 = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134d524;
	 *   this.occlusionLerpSpeed = (float)_UNK_0134d520;
	 *   _UNK_0134d520 = uVar7;
	 *   this.FadeDuration = (float)uVar2;
	 *   this.targetVolumeMultiplier = 1.0;
	 *   pvVar10 = (void *)func_0x031fdd78(uVar9,0x20);
	 *   this.hitBuffer = pvVar10;
	 *   func_0x031fdc38();
	 *   pvVar10 = (void *)func_0x031fdd78(*(undefined8 *)puVar4,0x10);
	 *   this.uniqueTransformsBuffer = pvVar10;
	 *   func_0x031fdc38();
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000755f76f & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
	 *     bRam000000000755f76f = 1;
	 *   }
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   return;
	 */
}
