// [TypeInfo RVA: 0x0]
public class PhotonVoiceRecovery : MonoBehaviourPunCallbacks
{
	private int maxAttempts; // 0x28
	private float retryDelay; // 0x2C
	private Photon.Voice.PUN.PunVoiceClient voiceClient; // 0x30
	private Photon.Voice.Unity.Recorder recorder; // 0x38
	private UnityEngine.Coroutine recoveryCoroutine; // 0x40

	// RVA: 0x31FC3D0 VA: 0x78188E73D0
	private void Awake();
	/*
	 *   undefined *puVar1;
	 *   void **ppvVar2;
	 *   ulong uVar3;
	 *   void *extraout_x1;
	 *   void **ppvVar4;
	 *   void *pvVar5;
	 *   undefined8 unaff_x30;
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a768 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a768 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   ppvVar4 = &this.voiceClient;
	 *   pvVar5 = *ppvVar4;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar1,methodInfo);
	 *   }
	 *   uVar3 = UnityEngine.Object.op_Equality(pvVar5,null);
	 *   if ((uVar3 & 1) != 0) {
	 *     pvVar5 = Photon.Voice.PUN.PunVoiceClient.get_Instance();
	 *     *ppvVar4 = pvVar5;
	 *     unaff_x30 = 0x32fc44c;
	 *     register0x00000008 = (BADSPACEBASE *)&stack0xffffffffffffffd0;
	 *     ppvVar2 = ppvVar4;
	 * SUB_031fdc38:
	 *     if (iRam00000000077785f0 != 0) {
	 *       *(undefined8 *)((long)register0x00000008 + -0x10) = unaff_x30;
	 *       func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
	 *                       ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *     }
	 *     return;
	 *   }
	 *   ppvVar2 = &this.recorder;
	 *   pvVar5 = *ppvVar2;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar3 = UnityEngine.Object.op_Equality(pvVar5,null);
	 *   if ((uVar3 & 1) != 0) {
	 *     pvVar5 = *ppvVar4;
	 *     if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     uVar3 = UnityEngine.Object.op_Inequality(pvVar5,null);
	 *     if ((uVar3 & 1) != 0) {
	 *       if (*ppvVar4 == null) {
	 *         IL2CPP.ThrowNullReferenceException();
	 *       }
	 *       *ppvVar2 = *(void **)((long)*ppvVar4 + 0x90);
	 *       goto SUB_031fdc38;
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x31FC4D4 VA: 0x78188E74D4
	private void Start();
	/*
	 *   void *pvVar1;
	 *   void *extraout_x1;
	 *   void **ppvVar2;
	 *
	 *   ppvVar2 = &this.recoveryCoroutine;
	 *   pvVar1 = null;
	 *   if (*ppvVar2 != null) {
	 *     UnityEngine.MonoBehaviour.StopCoroutine(this,*ppvVar2);
	 *     pvVar1 = extraout_x1;
	 *   }
	 *   pvVar1 = PhotonVoiceRecovery.VoiceRecoveryRoutine(this);
	 *   pvVar1 = UnityEngine.MonoBehaviour.StartCoroutine(this,pvVar1);
	 *   this.recoveryCoroutine = pvVar1;
	 *   if (iRam00000000077785f0 != 0) {
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x31FC52C VA: 0x78188E752C
	public override void OnJoinedRoom();
	/*
	 *   undefined *puVar1;
	 *   undefined *puVar2;
	 *   void *pvVar3;
	 *   void *extraout_x1;
	 *   void *extraout_x1_00;
	 *   void **ppvVar4;
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8;
	 *   if ((bRam000000000754a769 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8);
	 *     func_0x031fdc8c(PTR_DAT_070c0d30);
	 *     bRam000000000754a769 = 1;
	 *     methodInfo = extraout_x1_00;
	 *   }
	 *   puVar2 = PTR_DAT_070c0d30;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar1,methodInfo);
	 *   }
	 *   UnityEngine.Debug.Log(*(void **)puVar2);
	 *   ppvVar4 = &this.recoveryCoroutine;
	 *   pvVar3 = null;
	 *   if (*ppvVar4 != null) {
	 *     UnityEngine.MonoBehaviour.StopCoroutine(this,*ppvVar4);
	 *     pvVar3 = extraout_x1;
	 *   }
	 *   pvVar3 = PhotonVoiceRecovery.VoiceRecoveryRoutine(this);
	 *   pvVar3 = UnityEngine.MonoBehaviour.StartCoroutine(this,pvVar3);
	 *   this.recoveryCoroutine = pvVar3;
	 *   if (iRam00000000077785f0 != 0) {
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar4 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar4 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x31FC5A0 VA: 0x78188E75A0
	public override void OnLeftRoom();
	/*
	 *   void **ppvVar1;
	 *
	 *   ppvVar1 = &this.recoveryCoroutine;
	 *   if (*ppvVar1 != null) {
	 *     UnityEngine.MonoBehaviour.StopCoroutine(this,*ppvVar1);
	 *     this.recoveryCoroutine = null;
	 *     if (iRam00000000077785f0 != 0) {
	 *       func_0x032ed0c0(1L << ((ulong)ppvVar1 >> 0xc & 0x3f),
	 *                       ((ulong)ppvVar1 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *     }
	 *     return;
	 *   }
	 *   return;
	 */
	// RVA: 0x31FC4D8 VA: 0x78188E74D8
	public void StartVoiceRecovery();
	/*
	 *   void *pvVar1;
	 *   void *extraout_x1;
	 *   void **ppvVar2;
	 *
	 *   ppvVar2 = &this.recoveryCoroutine;
	 *   pvVar1 = null;
	 *   if (*ppvVar2 != null) {
	 *     UnityEngine.MonoBehaviour.StopCoroutine(this,*ppvVar2);
	 *     pvVar1 = extraout_x1;
	 *   }
	 *   pvVar1 = PhotonVoiceRecovery.VoiceRecoveryRoutine(this);
	 *   pvVar1 = UnityEngine.MonoBehaviour.StartCoroutine(this,pvVar1);
	 *   this.recoveryCoroutine = pvVar1;
	 *   if (iRam00000000077785f0 != 0) {
	 *     func_0x032ed0c0(1L << ((ulong)ppvVar2 >> 0xc & 0x3f),
	 *                     ((ulong)ppvVar2 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *   }
	 *   return;
	 */
	// RVA: 0x31FC5E4 VA: 0x78188E75E4
	private System.Collections.IEnumerator VoiceRecoveryRoutine();
	/*
	 *   undefined *puVar1;
	 *   void *this_00;
	 *   void *extraout_x1;
	 *
	 *   puVar1 = PTR_DAT_070c0d38;
	 *   if ((bRam000000000754a76a & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c0d38);
	 *     bRam000000000754a76a = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   this_00 = (void *)func_0x031fdf24(*(undefined8 *)puVar1,methodInfo);
	 *   System.Object..ctor(this_00);
	 *   *(undefined4 *)((long)this_00 + 0x10) = 0;
	 *   *(undefined8 *)((long)this_00 + 0x20) = this;
	 *   func_0x031fdc38((undefined8 *)((long)this_00 + 0x20),this);
	 *   return this_00;
	 */
	// RVA: 0x31FC678 VA: 0x78188E7678
	public void .ctor();
	/*
	 *   undefined *puVar1;
	 *
	 *   this.maxAttempts = 5;
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   this.retryDelay = 2.0;
	 *   if ((bRam000000000755f76f & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
	 *     bRam000000000755f76f = 1;
	 *   }
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   return;
	 */
}
