// [TypeInfo RVA: 0x712E0A0]
private sealed class <HandleTagBehavior>d__20 : Object
{
	private int <>1__state; // 0x10
	private object <>2__current; // 0x18
	public FlickeringLight.TagBehavior tagB; // 0x20
	public FlickeringLight <>4__this; // 0x28
	private float <startTime>5__2; // 0x30

	// RVA: 0x323D238 VA: 0x7818928238
	public void .ctor(int <>1__state);
	/*
	 *   System.Object..ctor(this);
	 *   this.n_1_state = n_1_state;
	 *   return;
	 */
	// RVA: 0x323D5B4 VA: 0x78189285B4
	private void System.IDisposable.Dispose();
	/*
	 *   return;
	 */
	// RVA: 0x323D5B8 VA: 0x78189285B8
	private bool MoveNext();
	/*
	 *   FlickeringLight *this_00;
	 *   void *methodInfo_00;
	 *   void *methodInfo_01;
	 *   void *in_x2;
	 *   FlickeringLight *this_01;
	 *   void *pvVar1;
	 *   void *pvVar2;
	 *   float fVar3;
	 *   float fVar4;
	 *   float fVar5;
	 *   float fVar6;
	 *   UnityEngine_Color value;
	 *
	 *   if ((bRam000000000754a9c6 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
	 *     bRam000000000754a9c6 = 1;
	 *   }
	 *   this_01 = this.n_4_this;
	 *   if (this.n_1_state == 1) {
	 *     this.n_1_state = -1;
	 *     if (this_01 == null) goto LAB_0333d7e8;
	 *   }
	 *   else {
	 *     if (this.n_1_state != 0) {
	 *       return false;
	 *     }
	 *     this.n_1_state = -1;
	 *     fVar3 = UnityEngine.Time.get_time();
	 *     this.startTime_5_2 = fVar3;
	 *     if (this.tagB == null) goto LAB_0333d7e8;
	 *     if (*(int *)((long)this.tagB + 0x18) == 2) {
	 *       if (this_01 != null) {
	 *         if (this_01->isBlackedOut != false) {
	 *           return false;
	 *         }
	 *         this_01->isBlackedOut = true;
	 *         if (this_01->lightSource != null) {
	 *           UnityEngine.Light.set_intensity(this_01->lightSource,0.0)
	 *           ;
	 *           FlickeringLight.PlayBlackoutSound(this_01);
	 *           return false;
	 *         }
	 *       }
	 *       goto LAB_0333d7e8;
	 *     }
	 *     if (this_01 == null) goto LAB_0333d7e8;
	 *     if (this_01->isBlackedOut != false) {
	 *       this_01->isBlackedOut = false;
	 *       FlickeringLight.PlayBlackoutSound(this_01);
	 *     }
	 *   }
	 *   if (this_01->monsterNearby == false) {
	 *     return false;
	 *   }
	 *   pvVar1 = this.tagB;
	 *   if (pvVar1 == null) goto LAB_0333d7e8;
	 *   if (*(int *)((long)pvVar1 + 0x18) == 1) {
	 *     fVar3 = UnityEngine.Time.get_time();
	 *     fVar3 = FlickeringLight.GetChaosLevel(this_00,pvVar1,fVar3 - this.startTime_5_2);
	 *     pvVar1 = this.tagB;
	 *     if (pvVar1 == null) goto LAB_0333d7e8;
	 *     pvVar2 = this_01->lightSource;
	 *     fVar5 = Random.Range(*(float *)((long)pvVar1 + 0x24),*(float *)((long)pvVar1 + 0x28));
	 *     if (pvVar2 == null) goto LAB_0333d7e8;
	 *     UnityEngine.Light.set_intensity(pvVar2,fVar5);
	 *     pvVar1 = this_01->lightSource;
	 *     fVar5 = Random.Range(0.0,fVar3);
	 *     fVar6 = Random.Range(0.0,fVar3);
	 *     fVar3 = Random.Range(0.0,fVar3);
	 *     if (pvVar1 == null) goto LAB_0333d7e8;
	 *     fVar4 = 1.0;
	 * LAB_0333d778:
	 *     value.g = fVar6;
	 *     value.r = fVar5;
	 *     value.a = fVar4;
	 *     value.b = fVar3;
	 *     UnityEngine.Light.set_color(pvVar1,value);
	 *   }
	 *   else {
	 *     if (*(int *)((long)pvVar1 + 0x18) != 0) goto LAB_0333d794;
	 *     pvVar2 = this_01->lightSource;
	 *     fVar3 = Random.Range(*(float *)((long)pvVar1 + 0x24),*(float *)((long)pvVar1 + 0x28));
	 *     if (pvVar2 == null) goto LAB_0333d7e8;
	 *     UnityEngine.Light.set_intensity(pvVar2,fVar3);
	 *     if (this_01->useColorChange != false) {
	 *       pvVar1 = this_01->lightSource;
	 *       if (pvVar1 == null) goto LAB_0333d7e8;
	 *       fVar3 = (this_01->flickerColor).b;
	 *       fVar4 = (this_01->flickerColor).a;
	 *       fVar5 = (this_01->flickerColor).r;
	 *       fVar6 = (this_01->flickerColor).g;
	 *       goto LAB_0333d778;
	 *     }
	 *   }
	 *   pvVar1 = this.tagB;
	 *   if (pvVar1 != null) {
	 * LAB_0333d794:
	 *     fVar3 = *(float *)((long)pvVar1 + 0x2c);
	 *     pvVar1 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                       typeinfo_ptr_UnityEngine_CoreModule_WaitForSeconds_6FC0B10);
	 *     UnityEngine.WaitForSeconds..ctor(pvVar1,fVar3);
	 *     this.n_2_current = pvVar1;
	 *     func_0x031fdc38(&this.n_2_current,pvVar1);
	 *     this.n_1_state = 1;
	 *     return true;
	 *   }
	 * LAB_0333d7e8:
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x323D7EC VA: 0x78189287EC
	private object System.Collections.Generic.IEnumerator<System.Object>.get_Current();
	/*
	 *   return this.n_2_current;
	 */
	// RVA: 0x323D7F4 VA: 0x78189287F4
	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_070c35f8);
	 *   IL2CPP.ThrowManagedException();
	 */
	// RVA: 0x323D82C VA: 0x781892882C
	private object System.Collections.IEnumerator.get_Current();
	/*
	 *   return this.n_2_current;
	 */
}
