// [TypeInfo RVA: 0x0]
private sealed class <WanderCoroutine>d__74 : Object
{
	private int <>1__state; // 0x10
	private object <>2__current; // 0x18
	public AdvancedAI_Final <>4__this; // 0x20
	private float <timer>5__2; // 0x28
	private float <timeout>5__3; // 0x2C

	// RVA: 0x31F5CFC VA: 0x78188E0CFC
	public void .ctor(int <>1__state);
	/*
	 *   System.Object..ctor(this);
	 *   this.n_1_state = n_1_state;
	 *   return;
	 */
	// RVA: 0x31F8898 VA: 0x78188E3898
	private void System.IDisposable.Dispose();
	/*
	 *   return;
	 */
	// RVA: 0x31F889C VA: 0x78188E389C
	private bool MoveNext();
	/*
	 *   int iVar1;
	 *   undefined4 uVar2;
	 *   undefined *puVar3;
	 *   bool bVar4;
	 *   long lVar5;
	 *   ulong uVar6;
	 *   void *extraout_x1;
	 *   void *extraout_x1_00;
	 *   void *methodInfo_00;
	 *   void *methodInfo_01;
	 *   void *in_x2;
	 *   AdvancedAI_Final *this_00;
	 *   void *pvVar7;
	 *   float fVar8;
	 *   float fVar9;
	 *   UnityEngine_Vector3 dest;
	 *   undefined1 auVar10 [16];
	 *
	 *   if ((bRam000000000754a74a & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
	 *     bRam000000000754a74a = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   iVar1 = this.n_1_state;
	 *   this_00 = this.n_4_this;
	 *   if (iVar1 == 2) {
	 *     this.n_1_state = -1;
	 *     if (this_00 == null) goto LAB_032f8b5c;
	 *     pvVar7 = AdvancedAI_Final.ChooseBestTarget(this_00,null);
	 *     if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *       func_0x031fde08(*(long *)puVar3);
	 *     }
	 *     auVar10 = UnityEngine.Object.op_Inequality(pvVar7,null);
	 *     methodInfo_00 = auVar10._8_8_;
	 *     if ((auVar10._0_8_ & 1) != 0) {
	 *       this_00->currentTarget = pvVar7;
	 *       func_0x031fdc38(&this_00->currentTarget,pvVar7);
	 *       return false;
	 *     }
	 * LAB_032f89f4:
	 *     dest = AdvancedAI_Final.GetNextWanderPoint(this_00);
	 *     AdvancedAI_Final.SetDestination(this_00,dest);
	 *     uVar2 = _UNK_0134d51c;
	 *     this.timer_5_2 = (float)_UNK_0134d518;
	 *     this.timeout_5_3 = (float)uVar2;
	 *   }
	 *   else {
	 *     if (iVar1 != 1) {
	 *       if (iVar1 != 0) {
	 *         return false;
	 *       }
	 *       this.n_1_state = -1;
	 *       if (this_00 == null) goto LAB_032f8b5c;
	 *       lVar5 = *(long *)puVar3;
	 *       this_00->currentBehavior = 0;
	 *       this_00->dbgWander = false;
	 *       this_00->dbgStalk = false;
	 *       this_00->dbgWatch = false;
	 *       this_00->dbgRunAround = false;
	 *       this_00->dbgKill = false;
	 *       pvVar7 = this_00->agent;
	 *       iVar1 = *(int *)(lVar5 + 0xe4);
	 *       this_00->dbgWander = true;
	 *       if (iVar1 == 0) {
	 *         func_0x031fde08(lVar5,methodInfo);
	 *       }
	 *       auVar10 = UnityEngine.Object.op_Inequality(pvVar7,null);
	 *       methodInfo_00 = auVar10._8_8_;
	 *       if ((auVar10._0_8_ & 1) != 0) {
	 *         if (this_00->agent == null) goto LAB_032f8b5c;
	 *         UnityEngine.AI.NavMeshAgent.set_acceleration(this_00->agent,200.0);
	 *         if (this_00->agent == null) goto LAB_032f8b5c;
	 *         UnityEngine.AI.NavMeshAgent.set_isStopped(this_00->agent,false);
	 *         if (this_00->agent == null) goto LAB_032f8b5c;
	 *         UnityEngine.AI.NavMeshAgent.set_speed(this_00->agent,this_00->wanderSpeed);
	 *         methodInfo_00 = extraout_x1_00;
	 *       }
	 *       goto LAB_032f89f4;
	 *     }
	 *     this.n_1_state = -1;
	 *     if (this_00 == null) goto LAB_032f8b5c;
	 *   }
	 *   pvVar7 = this_00->agent;
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar6 = UnityEngine.Object.op_Equality(pvVar7,null);
	 *   if ((uVar6 & 1) == 0) {
	 *     if (this_00->agent == null) goto LAB_032f8b5c;
	 *     bVar4 = UnityEngine.AI.NavMeshAgent.get_pathPending(this_00->agent);
	 *     if (bVar4) goto LAB_032f8a4c;
	 *     pvVar7 = this_00->agent;
	 *     if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     uVar6 = UnityEngine.Object.op_Inequality(pvVar7,null);
	 *     if ((uVar6 & 1) != 0) {
	 *       if (this_00->agent == null) goto LAB_032f8b5c;
	 *       fVar8 = UnityEngine.AI.NavMeshAgent.get_remainingDistance(this_00->agent);
	 *       if (this_00->wanderPointReachThreshold < fVar8) goto LAB_032f8a4c;
	 *     }
	 *   }
	 *   else {
	 * LAB_032f8a4c:
	 *     fVar9 = this.timer_5_2;
	 *     fVar8 = UnityEngine.Time.get_deltaTime();
	 *     fVar9 = fVar9 + fVar8;
	 *     this.timer_5_2 = fVar9;
	 *     if (fVar9 <= this.timeout_5_3) {
	 *       this.n_2_current = null;
	 *       func_0x031fdc38(&this.n_2_current,0);
	 *       this.n_1_state = 1;
	 *       return true;
	 *     }
	 *   }
	 *   pvVar7 = this_00->agent;
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar6 = UnityEngine.Object.op_Inequality(pvVar7,null);
	 *   if ((uVar6 & 1) != 0) {
	 *     if (this_00->agent == null) {
	 * LAB_032f8b5c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     UnityEngine.AI.NavMeshAgent.set_speed(this_00->agent,this_00->wanderSpeed);
	 *   }
	 *   fVar8 = this_00->minWanderPause;
	 *   pvVar7 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                     typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
	 *   UnityEngine.WaitForSeconds..ctor(pvVar7,fVar8);
	 *   this.n_2_current = pvVar7;
	 *   func_0x031fdc38(&this.n_2_current,pvVar7);
	 *   this.n_1_state = 2;
	 *   return true;
	 */
	// RVA: 0x31F8B60 VA: 0x78188E3B60
	private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
	/*
	 *   return this.n_2_current;
	 */
	// RVA: 0x31F8B68 VA: 0x78188E3B68
	private void System.Collections.IEnumerator.Reset();
	/*
	 *   void *this_00;
	 *   undefined8 uVar1;
	 *
	 *   func_0x031fdca0(PTR_DAT_070c0ad0);
	 *   this_00 = (void *)func_0x031fdf24();
	 *   System.NotSupportedException..ctor(this_00);
	 *   uVar1 = func_0x031fdca0(PTR_DAT_070c0b20);
	 *   IL2CPP.ThrowManagedException();
	 */
	// RVA: 0x31F8BA0 VA: 0x78188E3BA0
	private object System.Collections.IEnumerator.get_Current();
	/*
	 *   return this.n_2_current;
	 */
}
