// [TypeInfo RVA: 0x0]
public class ForcedShakeEmitter : MonoBehaviour
{
	public float shakeRange; // 0x20
	public float maxShakeIntensity; // 0x24
	public float shakeFrequency; // 0x28
	public bool useDecibelBasedShake; // 0x2C
	public float decibelThreshold; // 0x30
	private UnityEngine.AudioSource source; // 0x38

	// RVA: 0x3200AEC VA: 0x78188EBAEC
	private void OnEnable();
	/*
	 *   uint uVar1;
	 *   undefined *puVar2;
	 *   long lVar3;
	 *   ulong uVar4;
	 *   void *pvVar5;
	 *   void *extraout_x1;
	 *   long lVar6;
	 *   void **ppvVar7;
	 *   long lVar8;
	 *   undefined8 unaff_x30;
	 *
	 *   puVar2 = PTR_DAT_070c0f48;
	 *   if ((bRam000000000754a78f & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c0730);
	 *     func_0x031fdc8c(PTR_DAT_070c0f50);
	 *     func_0x031fdc8c(PTR_DAT_070c0f58);
	 *     func_0x031fdc8c(PTR_DAT_070c0f48);
	 *     bRam000000000754a78f = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   lVar3 = *(long *)puVar2;
	 *   if (*(int *)(lVar3 + 0xe4) == 0) {
	 *     func_0x031fde08(lVar3,methodInfo);
	 *     lVar3 = *(long *)puVar2;
	 *   }
	 *   if (**(long **)(lVar3 + 0xb8) == 0) goto LAB_03300c2c;
	 *   uVar4 = func_0x03f2daa0(**(long **)(lVar3 + 0xb8),this,*(undefined8 *)PTR_DAT_070c0f58);
	 *   if ((uVar4 & 1) == 0) {
	 *     lVar3 = *(long *)puVar2;
	 *     if (*(int *)(lVar3 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *       lVar3 = *(long *)puVar2;
	 *     }
	 *     lVar3 = **(long **)(lVar3 + 0xb8);
	 *     if (lVar3 == 0) {
	 * LAB_03300c2c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     lVar6 = *(long *)(lVar3 + 0x10);
	 *     lVar8 = *(long *)PTR_DAT_070c0f50;
	 *     *(int *)(lVar3 + 0x1c) = *(int *)(lVar3 + 0x1c) + 1;
	 *     if (lVar6 == 0) goto LAB_03300c2c;
	 *     uVar1 = *(uint *)(lVar3 + 0x18);
	 *     if (uVar1 < *(uint *)(lVar6 + 0x18)) {
	 *       *(uint *)(lVar3 + 0x18) = uVar1 + 1;
	 *       ppvVar7 = (void **)(lVar6 + (long)(int)uVar1 * 8 + 0x20);
	 *       *ppvVar7 = this;
	 *       unaff_x30 = 0x3300be8;
	 *       register0x00000008 = (BADSPACEBASE *)&stack0xffffffffffffffe0;
	 *       goto SUB_031fdc38;
	 *     }
	 *     func_0x03f2d704(lVar3,this,*(undefined8 *)(*(long *)(*(long *)(lVar8 + 0x20) + 0xc0) + 0x70));
	 *   }
	 *   pvVar5 = (void *)func_0x0373df50(this,*(undefined8 *)PTR_DAT_070c0730);
	 *   ppvVar7 = &this.source;
	 *   *ppvVar7 = pvVar5;
	 * SUB_031fdc38:
	 *   if (iRam00000000077785f0 != 0) {
	 *     *(undefined8 *)((long)register0x00000008 + -0x10) = unaff_x30;
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar7 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar7 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x3200C30 VA: 0x78188EBC30
	private void OnDisable();
	/*
	 *   undefined *puVar1;
	 *   int iVar2;
	 *   long lVar3;
	 *   void *extraout_x1;
	 *
	 *   puVar1 = PTR_DAT_070c0f48;
	 *   if ((bRam000000000754a790 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c0f60);
	 *     func_0x031fdc8c(PTR_DAT_070c0f48);
	 *     bRam000000000754a790 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   lVar3 = *(long *)puVar1;
	 *   if (*(int *)(lVar3 + 0xe4) == 0) {
	 *     func_0x031fde08(lVar3,methodInfo);
	 *     lVar3 = *(long *)puVar1;
	 *   }
	 *   lVar3 = **(long **)(lVar3 + 0xb8);
	 *   if (lVar3 != 0) {
	 *     iVar2 = func_0x03a42b70(*(undefined8 *)(lVar3 + 0x10),this,0,*(undefined4 *)(lVar3 + 0x18),
	 *                             *(undefined8 *)
	 *                              (*(long *)(*(long *)(*(long *)(*(long *)(*(long *)(*(long *)
	 *                                                   PTR_DAT_070c0f60 + 0x20) + 0xc0) + 0xd0) + 0x20) +
	 *                                        0xc0) + 0x150));
	 *     if (-1 < iVar2) {
	 *       func_0x03f2ee68(lVar3,iVar2);
	 *     }
	 *     return;
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3200CB0 VA: 0x78188EBCB0
	public float GetCurrentShakeIntensity(UnityEngine.Vector3 listenerPosition);
	/*
	 *   bool bVar1;
	 *   void *pvVar2;
	 *   ulong uVar3;
	 *   uint uVar4;
	 *   ulong uVar5;
	 *   float *pfVar6;
	 *   float fVar7;
	 *   float fVar8;
	 *   float fVar9;
	 *   float fVar10;
	 *   UnityEngine_Vector3 UVar11;
	 *
	 *   if ((bRam000000000754a791 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c0f68);
	 *     bRam000000000754a791 = 1;
	 *   }
	 *   pvVar2 = UnityEngine.Component.get_transform(this);
	 *   if (pvVar2 == null) goto LAB_03300efc;
	 *   UVar11 = UnityEngine.Transform.get_position(pvVar2);
	 *   if (cRam000000000754a7c9 == '\0') {
	 *     func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *     cRam000000000754a7c9 = '\x01';
	 *   }
	 *   if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   fVar7 = UVar11.y - listenerPosition.y;
	 *   fVar9 = UVar11.x - listenerPosition.x;
	 *   fVar10 = UVar11.z - listenerPosition.z;
	 *   fVar8 = 0.0;
	 *   fVar7 = SQRT(fVar10 * fVar10 + fVar9 * fVar9 + fVar7 * fVar7);
	 *   if (fVar7 <= this.shakeRange) {
	 *     fVar7 = fVar7 / this.shakeRange;
	 *     fVar9 = 1.0;
	 *     if (fVar7 <= 1.0) {
	 *       fVar9 = fVar7;
	 *     }
	 *     fVar10 = 1.0;
	 *     if (0.0 <= fVar7) {
	 *       fVar10 = 1.0 - fVar9;
	 *     }
	 *     if (this.useDecibelBasedShake == false) {
	 *       fVar8 = fVar10 * this.maxShakeIntensity;
	 *     }
	 *     else {
	 *       pvVar2 = this.source;
	 *       if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8 + 0xe4) == 0) {
	 *         func_0x031fde08();
	 *       }
	 *       uVar3 = UnityEngine.Object.op_Equality(pvVar2,null);
	 *       if ((uVar3 & 1) == 0) {
	 *         if (this.source == null) {
	 * LAB_03300efc:
	 *           IL2CPP.ThrowNullReferenceException();
	 *         }
	 *         bVar1 = UnityEngine.AudioSource.get_isPlaying(this.source);
	 *         if (bVar1) {
	 *           pvVar2 = (void *)func_0x031fdd78(*(undefined8 *)PTR_DAT_070c0f68,0x100);
	 *           if ((this.source == null) ||
	 *              (UnityEngine.AudioSource.GetOutputData(this.source,pvVar2,0), pvVar2 == null))
	 *           goto LAB_03300efc;
	 *           fVar8 = 0.0;
	 *           fVar7 = 0.0;
	 *           uVar4 = (uint)*(ulong *)((long)pvVar2 + 0x18);
	 *           if (0 < (int)uVar4) {
	 *             uVar3 = (ulong)(uVar4 & ((int)uVar4 >> 0x1f ^ 0xffffffffU));
	 *             uVar5 = *(ulong *)((long)pvVar2 + 0x18) & 0xffffffff;
	 *             pfVar6 = (float *)((long)pvVar2 + 0x20);
	 *             do {
	 *               if (uVar5 == 0) {
	 *                 IL2CPP.ThrowIndexOutOfRangeException();
	 *               }
	 *               uVar3 = uVar3 - 1;
	 *               uVar5 = uVar5 - 1;
	 *               fVar7 = fVar7 + *pfVar6 * *pfVar6;
	 *               pfVar6 = pfVar6 + 1;
	 *             } while (uVar3 != 0);
	 *           }
	 *           fVar7 = (float)func_0x06cb3960(SQRT(fVar7 / (float)(int)uVar4));
	 *           fVar9 = this.decibelThreshold;
	 *           if (fVar9 <= fVar7 * 20.0) {
	 *             if (fVar9 == 0.0) {
	 *               fVar7 = 0.0;
	 *             }
	 *             else {
	 *               fVar8 = (fVar7 * 20.0 - fVar9) / (0.0 - fVar9);
	 *               fVar9 = 1.0;
	 *               if (fVar8 <= 1.0) {
	 *                 fVar9 = fVar8;
	 *               }
	 *               fVar7 = 0.0;
	 *               if (0.0 <= fVar8) {
	 *                 fVar7 = fVar9;
	 *               }
	 *             }
	 *             fVar8 = fVar10 * fVar7 * this.maxShakeIntensity;
	 *           }
	 *         }
	 *       }
	 *     }
	 *   }
	 *   return fVar8;
	 */
	// RVA: 0x3200F00 VA: 0x78188EBF00
	public void .ctor();
	/*
	 *   undefined8 uVar1;
	 *   undefined4 uVar2;
	 *   undefined *puVar3;
	 *   undefined8 uVar4;
	 *
	 *   uVar1 = _UNK_0134d990;
	 *   this.shakeFrequency = 12.0;
	 *   this.decibelThreshold = -30.0;
	 *   uVar4 = _UNK_0134d990;
	 *   _UNK_0134d990 = (undefined4)uVar1;
	 *   _UNK_0134d994 = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134d994;
	 *   this.shakeRange = (float)_UNK_0134d990;
	 *   _UNK_0134d990 = uVar4;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   this.maxShakeIntensity = (float)uVar2;
	 *   if ((bRam000000000755f76f & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
	 *     bRam000000000755f76f = 1;
	 *   }
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   return;
	 */
}
