// [TypeInfo RVA: 0x0]
public class ThroughWallOutline : MonoBehaviour
{
	public bool highlighted; // 0x20
	public bool includeInactiveObjects; // 0x21
	public float outlineWidth; // 0x24
	public float opacity; // 0x28
	public bool randomColors; // 0x2C
	public UnityEngine.Color highlightColor; // 0x30
	public float randomColorSpeed; // 0x40
	public float minimumSaturation; // 0x44
	public float minimumBrightness; // 0x48
	private static readonly int OutlineColorID; // 0x0
	private static readonly int OutlineWidthID; // 0x4
	private readonly System.Collections.Generic.List<ThroughWallOutline.OutlineRendererPair> outlinePairs; // 0x50
	private UnityEngine.Material outlineMaterial; // 0x58
	private UnityEngine.MaterialPropertyBlock propertyBlock; // 0x60
	private UnityEngine.Color currentRandomColor; // 0x68
	private UnityEngine.Color targetRandomColor; // 0x78

	// RVA: 0x3207CD4 VA: 0x78188F2CD4
	private void Awake();
	/*
	 *   long lVar1;
	 *   byte bVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   void *pvVar8;
	 *   ulong uVar9;
	 *   void *pvVar10;
	 *   long *sourceRenderer;
	 *   ulong uVar11;
	 *   long lVar12;
	 *   int iVar13;
	 *   long lVar14;
	 *   undefined8 uVar15;
	 *   float fVar16;
	 *   undefined4 uVar17;
	 *   undefined4 uVar18;
	 *   undefined4 uVar19;
	 *   float saturationMin;
	 *   UnityEngine_Color UVar20;
	 *
	 *   puVar4 = PTR_DAT_070c15e0;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a7dc & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c15e8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_MaterialPropertyBlock_6FC15F0);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Material_6FC15F8);
	 *     func_0x031fdc8c(PTR_DAT_070c1600);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1608);
	 *     func_0x031fdc8c(PTR_DAT_070c15e0);
	 *     func_0x031fdc8c(PTR_DAT_070c1610);
	 *     func_0x031fdc8c(PTR_DAT_070c1618);
	 *     bRam000000000754a7dc = 1;
	 *   }
	 *   pvVar8 = UnityEngine.Shader.Find(*(void **)puVar4);
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar3);
	 *   }
	 *   uVar9 = UnityEngine.Object.op_Equality(pvVar8,null);
	 *   if ((uVar9 & 1) != 0) {
	 *     if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     UnityEngine.Debug.LogError(*(undefined8 *)PTR_DAT_070c1618,this);
	 *     if ((bRam000000000755f745 & 1) == 0) {
	 *       func_0x031fdc8c(PTR_DAT_0714f3a0,0,0);
	 *       bRam000000000755f745 = 1;
	 *     }
	 *     if (this != null) {
	 *       lVar14 = *(long *)&this.field_0x10;
	 *       if (lVar14 == 0) {
	 *         UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(this);
	 *       }
	 *       if (pcRam000000000755f750 == null) {
	 *         pcRam000000000755f750 = (code *)func_0x031fdc50(&UNK_0137c3e0);
	 *       }
	 *       (*pcRam000000000755f750)(lVar14,0);
	 *       return;
	 *     }
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   pvVar10 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                      typeinfo_ptr_UnityEngine_CoreModule_Material_6FC15F8);
	 *   UnityEngine.Material..ctor(pvVar10,pvVar8);
	 *   if (pvVar10 != null) {
	 *     UnityEngine.Object.set_name(pvVar10,*(void **)PTR_DAT_070c1610)
	 *     ;
	 *     UnityEngine.Object.set_hideFlags(pvVar10,0x3d);
	 *     this.outlineMaterial = pvVar10;
	 *     func_0x031fdc38(&this.outlineMaterial,pvVar10);
	 *     pvVar8 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                       typeinfo_ptr_UnityEngine_CoreModule_MaterialPropertyBlock_6FC15F0
	 *                                     );
	 *     UnityEngine.MaterialPropertyBlock..ctor(pvVar8);
	 *     this.propertyBlock = pvVar8;
	 *     func_0x031fdc38(&this.propertyBlock,pvVar8);
	 *     UVar20 = Random.ColorHSV(0.0,1.0,this.minimumSaturation,1.0,this.minimumBrightness,1.0,1.0,1.0);
	 *     saturationMin = this.minimumSaturation;
	 *     fVar16 = this.minimumBrightness;
	 *     (this.currentRandomColor).r = UVar20.r;
	 *     (this.currentRandomColor).g = UVar20.g;
	 *     (this.currentRandomColor).b = UVar20.b;
	 *     (this.currentRandomColor).a = UVar20.a;
	 *     UVar20 = Random.ColorHSV(0.0,1.0,saturationMin,1.0,fVar16,1.0,1.0,1.0);
	 *     puVar3 = PTR_DAT_070c15e8;
	 *     bVar7 = this.includeInactiveObjects;
	 *     (this.targetRandomColor).r = UVar20.r;
	 *     (this.targetRandomColor).g = UVar20.g;
	 *     (this.targetRandomColor).b = UVar20.b;
	 *     (this.targetRandomColor).a = UVar20.a;
	 *     pvVar8 = *(void **)puVar3;
	 *     lVar14 = func_0x0373ea74(this,bVar7);
	 *     puVar4 = PTR_DAT_070c1608;
	 *     puVar3 = PTR_DAT_070c1600;
	 *     if (lVar14 != 0) {
	 *       if (0 < (int)*(ulong *)(lVar14 + 0x18)) {
	 *         uVar9 = 0;
	 *         uVar11 = *(ulong *)(lVar14 + 0x18) & 0xffffffff;
	 *         do {
	 *           if (uVar11 <= uVar9) {
	 *             IL2CPP.ThrowIndexOutOfRangeException();
	 *           }
	 *           sourceRenderer = *(long **)(lVar14 + 0x20 + uVar9 * 8);
	 *           if (sourceRenderer != null) {
	 *             lVar12 = *sourceRenderer;
	 *             bVar2 = *(byte *)(*(long *)puVar4 + 0x130);
	 *             if ((*(byte *)(lVar12 + 0x130) < bVar2) ||
	 *                (*(long *)(*(long *)(lVar12 + 200) + (ulong)bVar2 * 8 + -8) != *(long *)puVar4)) {
	 *               bVar2 = *(byte *)(*(long *)puVar3 + 0x130);
	 *               if ((bVar2 <= *(byte *)(lVar12 + 0x130)) &&
	 *                  (*(long *)(*(long *)(lVar12 + 200) + (ulong)bVar2 * 8 + -8) == *(long *)puVar3)) {
	 *                 ThroughWallOutline.CreateMeshOutline(this,sourceRenderer);
	 *               }
	 *             }
	 *             else {
	 *               ThroughWallOutline.CreateSkinnedOutline(this,sourceRenderer);
	 *             }
	 *           }
	 *           uVar11 = (ulong)*(uint *)(lVar14 + 0x18);
	 *           uVar9 = uVar9 + 1;
	 *         } while ((long)uVar9 < (long)(int)*(uint *)(lVar14 + 0x18));
	 *       }
	 *       if ((bRam000000000754a7e1 & 1) == 0) {
	 *         func_0x031fdc8c(PTR_DAT_070c1620);
	 *         func_0x031fdc8c(PTR_DAT_070c1628);
	 *         func_0x031fdc8c(PTR_DAT_070c1630);
	 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *         func_0x031fdc8c(PTR_DAT_070c1638);
	 *         bRam000000000754a7e1 = 1;
	 *       }
	 *       puVar6 = PTR_DAT_070c1638;
	 *       puVar5 = PTR_DAT_070c1630;
	 *       puVar4 = PTR_DAT_070c1620;
	 *       puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *       if (this.propertyBlock != null) {
	 *         bVar7 = this.randomColors != false;
	 *         lVar14 = 0x38;
	 *         if (bVar7) {
	 *           lVar14 = 0x70;
	 *         }
	 *         lVar12 = 0x34;
	 *         if (bVar7) {
	 *           lVar12 = 0x6c;
	 *         }
	 *         lVar1 = 0x30;
	 *         if (bVar7) {
	 *           lVar1 = 0x68;
	 *         }
	 *         if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *           IL2CPP.ThrowNullReferenceException();
	 *         }
	 *         iVar13 = *(int *)((long)this.outlinePairs + 0x18);
	 *         if (-1 < iVar13 + -1) {
	 *           uVar17 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *           uVar18 = *(undefined4 *)(&this.field_0x0 + lVar12);
	 *           uVar19 = *(undefined4 *)(&this.field_0x0 + lVar14);
	 *           fVar16 = this.opacity;
	 *           do {
	 *             if (this.outlinePairs == null) goto LAB_0330840c;
	 *             iVar13 = iVar13 + -1;
	 *             lVar14 = func_0x03f2d434(this.outlinePairs,iVar13,*(undefined8 *)puVar5);
	 *             if (lVar14 == 0) goto LAB_0330840c;
	 *             uVar15 = *(undefined8 *)(lVar14 + 0x10);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             uVar9 = UnityEngine.Object.op_Equality(uVar15,null);
	 *             if ((uVar9 & 1) == 0) {
	 *               uVar15 = *(undefined8 *)(lVar14 + 0x18);
	 *               if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               uVar9 = UnityEngine.Object.op_Equality(uVar15,null);
	 *               if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *               pvVar8 = *(void **)(lVar14 + 0x18);
	 *               if (this.highlighted == false) {
	 * LAB_03308348:
	 *                 bVar7 = false;
	 *               }
	 *               else {
	 *                 if (*(void **)(lVar14 + 0x10) == null) goto LAB_0330840c;
	 *                 bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar14 + 0x10));
	 *                 if (!bVar7) goto LAB_03308348;
	 *                 if ((*(void **)(lVar14 + 0x10) == null) ||
	 *                    (pvVar10 = UnityEngine.Component.get_gameObject(*(void **)(lVar14 + 0x10)),
	 *                    pvVar10 == null)) goto LAB_0330840c;
	 *                 bVar7 = UnityEngine.GameObject.get_activeInHierarchy(pvVar10);
	 *               }
	 *               if (pvVar8 == null) goto LAB_0330840c;
	 *               UnityEngine.Renderer.set_enabled(pvVar8,bVar7);
	 *               if (this.propertyBlock == null) goto LAB_0330840c;
	 *               UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *               pvVar8 = this.propertyBlock;
	 *               if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               if (pvVar8 == null) goto LAB_0330840c;
	 *               UVar20.g = (float)uVar18;
	 *               UVar20.r = (float)uVar17;
	 *               UVar20.a = fVar16;
	 *               UVar20.b = (float)uVar19;
	 *               UnityEngine.MaterialPropertyBlock.SetColor(pvVar8,**(int **)(*(long *)puVar6 + 0xb8),UVar20);
	 *               if (this.propertyBlock == null) goto LAB_0330840c;
	 *               UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *               if (*(void **)(lVar14 + 0x18) == null) goto LAB_0330840c;
	 *               UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar14 + 0x18),this.propertyBlock);
	 *             }
	 *             else {
	 * LAB_033082a8:
	 *               uVar15 = *(undefined8 *)(lVar14 + 0x20);
	 *               if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               uVar9 = UnityEngine.Object.op_Inequality(uVar15,null);
	 *               if ((uVar9 & 1) != 0) {
	 *                 uVar15 = *(undefined8 *)(lVar14 + 0x20);
	 *                 if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                   func_0x031fde08();
	 *                 }
	 *                 UnityEngine.Object.Destroy(uVar15);
	 *               }
	 *               if (this.outlinePairs == null) goto LAB_0330840c;
	 *               func_0x03f2ee68(this.outlinePairs,iVar13,*(undefined8 *)puVar4);
	 *             }
	 *           } while (0 < iVar13);
	 *         }
	 *       }
	 *       return;
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3207FE0 VA: 0x78188F2FE0
	private void LateUpdate();
	/*
	 *   long lVar1;
	 *   long lVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   long lVar8;
	 *   ulong uVar9;
	 *   void *this_00;
	 *   int iVar10;
	 *   undefined8 uVar11;
	 *   void *pvVar12;
	 *   undefined4 uVar13;
	 *   undefined4 uVar14;
	 *   undefined4 uVar15;
	 *   float fVar16;
	 *   UnityEngine_Color value;
	 *
	 *   ThroughWallOutline.UpdateRandomColor(this);
	 *   if ((bRam000000000754a7e1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1620);
	 *     func_0x031fdc8c(PTR_DAT_070c1628);
	 *     func_0x031fdc8c(PTR_DAT_070c1630);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1638);
	 *     bRam000000000754a7e1 = 1;
	 *   }
	 *   puVar6 = PTR_DAT_070c1638;
	 *   puVar5 = PTR_DAT_070c1630;
	 *   puVar4 = PTR_DAT_070c1620;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (this.propertyBlock != null) {
	 *     bVar7 = this.randomColors != false;
	 *     lVar8 = 0x38;
	 *     if (bVar7) {
	 *       lVar8 = 0x70;
	 *     }
	 *     lVar1 = 0x34;
	 *     if (bVar7) {
	 *       lVar1 = 0x6c;
	 *     }
	 *     lVar2 = 0x30;
	 *     if (bVar7) {
	 *       lVar2 = 0x68;
	 *     }
	 *     if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     iVar10 = *(int *)((long)this.outlinePairs + 0x18);
	 *     if (-1 < iVar10 + -1) {
	 *       uVar13 = *(undefined4 *)(&this.field_0x0 + lVar2);
	 *       uVar14 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *       uVar15 = *(undefined4 *)(&this.field_0x0 + lVar8);
	 *       fVar16 = this.opacity;
	 *       do {
	 *         if (this.outlinePairs == null) goto LAB_0330840c;
	 *         iVar10 = iVar10 + -1;
	 *         lVar8 = func_0x03f2d434(this.outlinePairs,iVar10,*(undefined8 *)puVar5);
	 *         if (lVar8 == 0) goto LAB_0330840c;
	 *         uVar11 = *(undefined8 *)(lVar8 + 0x10);
	 *         if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *         if ((uVar9 & 1) == 0) {
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x18);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *           pvVar12 = *(void **)(lVar8 + 0x18);
	 *           if (this.highlighted == false) {
	 * LAB_03308348:
	 *             bVar7 = false;
	 *           }
	 *           else {
	 *             if (*(void **)(lVar8 + 0x10) == null) goto LAB_0330840c;
	 *             bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar8 + 0x10));
	 *             if (!bVar7) goto LAB_03308348;
	 *             if ((*(void **)(lVar8 + 0x10) == null) ||
	 *                (this_00 = UnityEngine.Component.get_gameObject(*(void **)(lVar8 + 0x10)), this_00 == null))
	 *             goto LAB_0330840c;
	 *             bVar7 = UnityEngine.GameObject.get_activeInHierarchy(this_00);
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.set_enabled(pvVar12,bVar7);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *           pvVar12 = this.propertyBlock;
	 *           if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           value.g = (float)uVar14;
	 *           value.r = (float)uVar13;
	 *           value.a = fVar16;
	 *           value.b = (float)uVar15;
	 *           UnityEngine.MaterialPropertyBlock.SetColor(pvVar12,**(int **)(*(long *)puVar6 + 0xb8),value);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *           if (*(void **)(lVar8 + 0x18) == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar8 + 0x18),this.propertyBlock);
	 *         }
	 *         else {
	 * LAB_033082a8:
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Inequality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) {
	 *             uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             UnityEngine.Object.Destroy(uVar11);
	 *           }
	 *           if (this.outlinePairs == null) goto LAB_0330840c;
	 *           func_0x03f2ee68(this.outlinePairs,iVar10,*(undefined8 *)puVar4);
	 *         }
	 *       } while (0 < iVar10);
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x3207CD8 VA: 0x78188F2CD8
	private void CreateOutline();
	/*
	 *   long lVar1;
	 *   byte bVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   void *pvVar8;
	 *   ulong uVar9;
	 *   void *pvVar10;
	 *   long *sourceRenderer;
	 *   ulong uVar11;
	 *   long lVar12;
	 *   int iVar13;
	 *   long lVar14;
	 *   undefined8 uVar15;
	 *   float fVar16;
	 *   undefined4 uVar17;
	 *   undefined4 uVar18;
	 *   undefined4 uVar19;
	 *   float saturationMin;
	 *   UnityEngine_Color UVar20;
	 *
	 *   puVar4 = PTR_DAT_070c15e0;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a7dc & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c15e8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_MaterialPropertyBlock_6FC15F0);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Material_6FC15F8);
	 *     func_0x031fdc8c(PTR_DAT_070c1600);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1608);
	 *     func_0x031fdc8c(PTR_DAT_070c15e0);
	 *     func_0x031fdc8c(PTR_DAT_070c1610);
	 *     func_0x031fdc8c(PTR_DAT_070c1618);
	 *     bRam000000000754a7dc = 1;
	 *   }
	 *   pvVar8 = UnityEngine.Shader.Find(*(void **)puVar4);
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08(*(long *)puVar3);
	 *   }
	 *   uVar9 = UnityEngine.Object.op_Equality(pvVar8,null);
	 *   if ((uVar9 & 1) != 0) {
	 *     if (*(int *)(*(long *)typeinfo_ptr_UnityEngine_CoreModule_Debug_6FC07A8 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     UnityEngine.Debug.LogError(*(undefined8 *)PTR_DAT_070c1618,this);
	 *     if ((bRam000000000755f745 & 1) == 0) {
	 *       func_0x031fdc8c(PTR_DAT_0714f3a0,0,0);
	 *       bRam000000000755f745 = 1;
	 *     }
	 *     if (this != null) {
	 *       lVar14 = *(long *)&this.field_0x10;
	 *       if (lVar14 == 0) {
	 *         UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(this);
	 *       }
	 *       if (pcRam000000000755f750 == null) {
	 *         pcRam000000000755f750 = (code *)func_0x031fdc50(&UNK_0137c3e0);
	 *       }
	 *       (*pcRam000000000755f750)(lVar14,0);
	 *       return;
	 *     }
	 *     IL2CPP.ThrowNullReferenceException();
	 *   }
	 *   pvVar10 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                      typeinfo_ptr_UnityEngine_CoreModule_Material_6FC15F8);
	 *   UnityEngine.Material..ctor(pvVar10,pvVar8);
	 *   if (pvVar10 != null) {
	 *     UnityEngine.Object.set_name(pvVar10,*(void **)PTR_DAT_070c1610)
	 *     ;
	 *     UnityEngine.Object.set_hideFlags(pvVar10,0x3d);
	 *     this.outlineMaterial = pvVar10;
	 *     func_0x031fdc38(&this.outlineMaterial,pvVar10);
	 *     pvVar8 = (void *)func_0x031fdf24(*(undefined8 *)
	 *                                       typeinfo_ptr_UnityEngine_CoreModule_MaterialPropertyBlock_6FC15F0
	 *                                     );
	 *     UnityEngine.MaterialPropertyBlock..ctor(pvVar8);
	 *     this.propertyBlock = pvVar8;
	 *     func_0x031fdc38(&this.propertyBlock,pvVar8);
	 *     UVar20 = Random.ColorHSV(0.0,1.0,this.minimumSaturation,1.0,this.minimumBrightness,1.0,1.0,1.0);
	 *     saturationMin = this.minimumSaturation;
	 *     fVar16 = this.minimumBrightness;
	 *     (this.currentRandomColor).r = UVar20.r;
	 *     (this.currentRandomColor).g = UVar20.g;
	 *     (this.currentRandomColor).b = UVar20.b;
	 *     (this.currentRandomColor).a = UVar20.a;
	 *     UVar20 = Random.ColorHSV(0.0,1.0,saturationMin,1.0,fVar16,1.0,1.0,1.0);
	 *     puVar3 = PTR_DAT_070c15e8;
	 *     bVar7 = this.includeInactiveObjects;
	 *     (this.targetRandomColor).r = UVar20.r;
	 *     (this.targetRandomColor).g = UVar20.g;
	 *     (this.targetRandomColor).b = UVar20.b;
	 *     (this.targetRandomColor).a = UVar20.a;
	 *     pvVar8 = *(void **)puVar3;
	 *     lVar14 = func_0x0373ea74(this,bVar7);
	 *     puVar4 = PTR_DAT_070c1608;
	 *     puVar3 = PTR_DAT_070c1600;
	 *     if (lVar14 != 0) {
	 *       if (0 < (int)*(ulong *)(lVar14 + 0x18)) {
	 *         uVar9 = 0;
	 *         uVar11 = *(ulong *)(lVar14 + 0x18) & 0xffffffff;
	 *         do {
	 *           if (uVar11 <= uVar9) {
	 *             IL2CPP.ThrowIndexOutOfRangeException();
	 *           }
	 *           sourceRenderer = *(long **)(lVar14 + 0x20 + uVar9 * 8);
	 *           if (sourceRenderer != null) {
	 *             lVar12 = *sourceRenderer;
	 *             bVar2 = *(byte *)(*(long *)puVar4 + 0x130);
	 *             if ((*(byte *)(lVar12 + 0x130) < bVar2) ||
	 *                (*(long *)(*(long *)(lVar12 + 200) + (ulong)bVar2 * 8 + -8) != *(long *)puVar4)) {
	 *               bVar2 = *(byte *)(*(long *)puVar3 + 0x130);
	 *               if ((bVar2 <= *(byte *)(lVar12 + 0x130)) &&
	 *                  (*(long *)(*(long *)(lVar12 + 200) + (ulong)bVar2 * 8 + -8) == *(long *)puVar3)) {
	 *                 ThroughWallOutline.CreateMeshOutline(this,sourceRenderer);
	 *               }
	 *             }
	 *             else {
	 *               ThroughWallOutline.CreateSkinnedOutline(this,sourceRenderer);
	 *             }
	 *           }
	 *           uVar11 = (ulong)*(uint *)(lVar14 + 0x18);
	 *           uVar9 = uVar9 + 1;
	 *         } while ((long)uVar9 < (long)(int)*(uint *)(lVar14 + 0x18));
	 *       }
	 *       if ((bRam000000000754a7e1 & 1) == 0) {
	 *         func_0x031fdc8c(PTR_DAT_070c1620);
	 *         func_0x031fdc8c(PTR_DAT_070c1628);
	 *         func_0x031fdc8c(PTR_DAT_070c1630);
	 *         func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *         func_0x031fdc8c(PTR_DAT_070c1638);
	 *         bRam000000000754a7e1 = 1;
	 *       }
	 *       puVar6 = PTR_DAT_070c1638;
	 *       puVar5 = PTR_DAT_070c1630;
	 *       puVar4 = PTR_DAT_070c1620;
	 *       puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *       if (this.propertyBlock != null) {
	 *         bVar7 = this.randomColors != false;
	 *         lVar14 = 0x38;
	 *         if (bVar7) {
	 *           lVar14 = 0x70;
	 *         }
	 *         lVar12 = 0x34;
	 *         if (bVar7) {
	 *           lVar12 = 0x6c;
	 *         }
	 *         lVar1 = 0x30;
	 *         if (bVar7) {
	 *           lVar1 = 0x68;
	 *         }
	 *         if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *           IL2CPP.ThrowNullReferenceException();
	 *         }
	 *         iVar13 = *(int *)((long)this.outlinePairs + 0x18);
	 *         if (-1 < iVar13 + -1) {
	 *           uVar17 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *           uVar18 = *(undefined4 *)(&this.field_0x0 + lVar12);
	 *           uVar19 = *(undefined4 *)(&this.field_0x0 + lVar14);
	 *           fVar16 = this.opacity;
	 *           do {
	 *             if (this.outlinePairs == null) goto LAB_0330840c;
	 *             iVar13 = iVar13 + -1;
	 *             lVar14 = func_0x03f2d434(this.outlinePairs,iVar13,*(undefined8 *)puVar5);
	 *             if (lVar14 == 0) goto LAB_0330840c;
	 *             uVar15 = *(undefined8 *)(lVar14 + 0x10);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             uVar9 = UnityEngine.Object.op_Equality(uVar15,null);
	 *             if ((uVar9 & 1) == 0) {
	 *               uVar15 = *(undefined8 *)(lVar14 + 0x18);
	 *               if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               uVar9 = UnityEngine.Object.op_Equality(uVar15,null);
	 *               if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *               pvVar8 = *(void **)(lVar14 + 0x18);
	 *               if (this.highlighted == false) {
	 * LAB_03308348:
	 *                 bVar7 = false;
	 *               }
	 *               else {
	 *                 if (*(void **)(lVar14 + 0x10) == null) goto LAB_0330840c;
	 *                 bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar14 + 0x10));
	 *                 if (!bVar7) goto LAB_03308348;
	 *                 if ((*(void **)(lVar14 + 0x10) == null) ||
	 *                    (pvVar10 = UnityEngine.Component.get_gameObject(*(void **)(lVar14 + 0x10)),
	 *                    pvVar10 == null)) goto LAB_0330840c;
	 *                 bVar7 = UnityEngine.GameObject.get_activeInHierarchy(pvVar10);
	 *               }
	 *               if (pvVar8 == null) goto LAB_0330840c;
	 *               UnityEngine.Renderer.set_enabled(pvVar8,bVar7);
	 *               if (this.propertyBlock == null) goto LAB_0330840c;
	 *               UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *               pvVar8 = this.propertyBlock;
	 *               if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               if (pvVar8 == null) goto LAB_0330840c;
	 *               UVar20.g = (float)uVar18;
	 *               UVar20.r = (float)uVar17;
	 *               UVar20.a = fVar16;
	 *               UVar20.b = (float)uVar19;
	 *               UnityEngine.MaterialPropertyBlock.SetColor(pvVar8,**(int **)(*(long *)puVar6 + 0xb8),UVar20);
	 *               if (this.propertyBlock == null) goto LAB_0330840c;
	 *               UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *               if (*(void **)(lVar14 + 0x18) == null) goto LAB_0330840c;
	 *               UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar14 + 0x18),this.propertyBlock);
	 *             }
	 *             else {
	 * LAB_033082a8:
	 *               uVar15 = *(undefined8 *)(lVar14 + 0x20);
	 *               if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               uVar9 = UnityEngine.Object.op_Inequality(uVar15,null);
	 *               if ((uVar9 & 1) != 0) {
	 *                 uVar15 = *(undefined8 *)(lVar14 + 0x20);
	 *                 if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *                   func_0x031fde08();
	 *                 }
	 *                 UnityEngine.Object.Destroy(uVar15);
	 *               }
	 *               if (this.outlinePairs == null) goto LAB_0330840c;
	 *               func_0x03f2ee68(this.outlinePairs,iVar13,*(undefined8 *)puVar4);
	 *             }
	 *           } while (0 < iVar13);
	 *         }
	 *       }
	 *       return;
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x32086C4 VA: 0x78188F36C4
	private void CreateMeshOutline(UnityEngine.MeshRenderer sourceRenderer);
	/*
	 *   undefined *puVar1;
	 *   int iVar2;
	 *   long lVar3;
	 *   ulong uVar4;
	 *   undefined8 uVar5;
	 *   long lVar6;
	 *   void *pvVar7;
	 *   undefined8 *puVar8;
	 *   long lVar9;
	 *
	 *   if ((bRam000000000754a7dd & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1660);
	 *     func_0x031fdc8c(PTR_DAT_070c1668);
	 *     func_0x031fdc8c(PTR_DAT_070c1670);
	 *     func_0x031fdc8c(PTR_DAT_070c1648);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1650);
	 *     func_0x031fdc8c(PTR_DAT_070c1678);
	 *     bRam000000000754a7dd = 1;
	 *   }
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (sourceRenderer != null) {
	 *     lVar3 = func_0x0373df50(sourceRenderer,*(undefined8 *)PTR_DAT_070c1660);
	 *     lVar9 = *(long *)puVar1;
	 *     if (*(int *)(lVar9 + 0xe4) == 0) {
	 *       func_0x031fde08(lVar9);
	 *     }
	 *     uVar4 = UnityEngine.Object.op_Equality(lVar3,null);
	 *     if ((uVar4 & 1) != 0) {
	 *       return;
	 *     }
	 *     if (lVar3 != 0) {
	 *       uVar5 = UnityEngine.MeshFilter.get_sharedMesh(lVar3);
	 *       lVar9 = *(long *)puVar1;
	 *       if (*(int *)(lVar9 + 0xe4) == 0) {
	 *         func_0x031fde08(lVar9);
	 *       }
	 *       uVar4 = UnityEngine.Object.op_Equality(uVar5,null);
	 *       if ((uVar4 & 1) != 0) {
	 *         return;
	 *       }
	 *       lVar9 = ThroughWallOutline.CreateOutlineObject(uVar4,sourceRenderer,*(undefined8 *)PTR_DAT_070c1678);
	 *       if (lVar9 != 0) {
	 *         lVar6 = func_0x037f2fa8(lVar9,*(undefined8 *)PTR_DAT_070c1668);
	 *         uVar5 = UnityEngine.MeshFilter.get_sharedMesh(lVar3);
	 *         if (lVar6 != 0) {
	 *           UnityEngine.MeshFilter.set_sharedMesh(lVar6,uVar5);
	 *           uVar5 = func_0x037f2fa8(lVar9,*(undefined8 *)PTR_DAT_070c1670);
	 *           pvVar7 = (void *)UnityEngine.MeshFilter.get_sharedMesh(lVar3);
	 *           if (pvVar7 != null) {
	 *             iVar2 = UnityEngine.Mesh.get_subMeshCount(pvVar7);
	 *             ThroughWallOutline.ConfigureRenderer(this,sourceRenderer,uVar5,iVar2);
	 *             pvVar7 = (void *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c1650);
	 *             System.Object..ctor(pvVar7);
	 *             if (pvVar7 != null) {
	 *               puVar8 = (undefined8 *)((long)pvVar7 + 0x10);
	 *               *puVar8 = sourceRenderer;
	 *               if (iRam00000000077785f0 != 0) {
	 *                 func_0x032ed0c0(1L << ((ulong)puVar8 >> 0xc & 0x3f),
	 *                                 ((ulong)puVar8 >> 0x12 & 0x7fff) * 8 + 0x75ac5c8);
	 *               }
	 *               return;
	 *             }
	 *           }
	 *         }
	 *       }
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3208434 VA: 0x78188F3434
	private void CreateSkinnedOutline(UnityEngine.SkinnedMeshRenderer sourceRenderer);
	/*
	 *   uint uVar1;
	 *   undefined *puVar2;
	 *   int iVar3;
	 *   undefined8 uVar4;
	 *   ulong uVar5;
	 *   long lVar6;
	 *   void *this_00;
	 *   void *pvVar7;
	 *   undefined8 *puVar8;
	 *   long lVar9;
	 *   void *pvVar10;
	 *   undefined8 uStack_60;
	 *   undefined8 uStack_58;
	 *   undefined8 uStack_50;
	 *   undefined8 uStack_48;
	 *   undefined8 uStack_40;
	 *   undefined8 uStack_38;
	 *
	 *   if ((bRam000000000754a7de & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1640);
	 *     func_0x031fdc8c(PTR_DAT_070c1648);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1650);
	 *     func_0x031fdc8c(PTR_DAT_070c1658);
	 *     bRam000000000754a7de = 1;
	 *   }
	 *   puVar2 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (sourceRenderer != null) {
	 *     uVar4 = UnityEngine.SkinnedMeshRenderer.get_sharedMesh(sourceRenderer);
	 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *       func_0x031fde08(*(long *)puVar2);
	 *     }
	 *     uVar5 = UnityEngine.Object.op_Equality(uVar4,null);
	 *     if ((uVar5 & 1) != 0) {
	 *       return;
	 *     }
	 *     lVar6 = ThroughWallOutline.CreateOutlineObject(uVar5,sourceRenderer,*(undefined8 *)PTR_DAT_070c1658);
	 *     if (lVar6 != 0) {
	 *       this_00 = (void *)func_0x037f2fa8(lVar6,*(undefined8 *)PTR_DAT_070c1640);
	 *       uVar4 = UnityEngine.SkinnedMeshRenderer.get_sharedMesh(sourceRenderer);
	 *       if (this_00 != null) {
	 *         UnityEngine.SkinnedMeshRenderer.set_sharedMesh(this_00,uVar4);
	 *         pvVar7 = UnityEngine.SkinnedMeshRenderer.get_bones(sourceRenderer);
	 *         UnityEngine.SkinnedMeshRenderer.set_bones(this_00,pvVar7);
	 *         pvVar7 = UnityEngine.SkinnedMeshRenderer.get_rootBone(sourceRenderer);
	 *         UnityEngine.SkinnedMeshRenderer.set_rootBone(this_00,pvVar7);
	 *         UnityEngine.Renderer.get_localBounds(&uStack_48,sourceRenderer,0);
	 *         uStack_58 = uStack_40;
	 *         uStack_60 = uStack_48;
	 *         uStack_50 = uStack_38;
	 *         UnityEngine.Renderer.set_localBounds(this_00,&uStack_60);
	 *         iVar3 = UnityEngine.SkinnedMeshRenderer.get_quality(sourceRenderer);
	 *         UnityEngine.SkinnedMeshRenderer.set_quality(this_00,iVar3);
	 *         UnityEngine.SkinnedMeshRenderer.set_updateWhenOffscreen(this_00,true);
	 *         pvVar7 = (void *)UnityEngine.SkinnedMeshRenderer.get_sharedMesh(sourceRenderer);
	 *         if (pvVar7 != null) {
	 *           iVar3 = UnityEngine.Mesh.get_subMeshCount(pvVar7);
	 *           ThroughWallOutline.ConfigureRenderer(this,sourceRenderer,this_00,iVar3);
	 *           pvVar10 = this.outlinePairs;
	 *           pvVar7 = (void *)func_0x031fdf24(*(undefined8 *)PTR_DAT_070c1650);
	 *           System.Object..ctor(pvVar7);
	 *           if (pvVar7 != null) {
	 *             *(undefined8 *)((long)pvVar7 + 0x10) = sourceRenderer;
	 *             func_0x031fdc38((undefined8 *)((long)pvVar7 + 0x10),sourceRenderer);
	 *             *(undefined8 *)((long)pvVar7 + 0x18) = this_00;
	 *             func_0x031fdc38((undefined8 *)((long)pvVar7 + 0x18),this_00);
	 *             *(long *)((long)pvVar7 + 0x20) = lVar6;
	 *             func_0x031fdc38((long *)((long)pvVar7 + 0x20),lVar6);
	 *             if (pvVar10 != null) {
	 *               lVar6 = *(long *)((long)pvVar10 + 0x10);
	 *               lVar9 = *(long *)PTR_DAT_070c1648;
	 *               *(int *)((long)pvVar10 + 0x1c) = *(int *)((long)pvVar10 + 0x1c) + 1;
	 *               if (lVar6 != 0) {
	 *                 uVar1 = *(uint *)((long)pvVar10 + 0x18);
	 *                 if (uVar1 < *(uint *)(lVar6 + 0x18)) {
	 *                   *(uint *)((long)pvVar10 + 0x18) = uVar1 + 1;
	 *                   puVar8 = (undefined8 *)(lVar6 + (long)(int)uVar1 * 8 + 0x20);
	 *                   *puVar8 = pvVar7;
	 *                   func_0x031fdc38(puVar8,pvVar7);
	 *                   return;
	 *                 }
	 *                 func_0x03f2d704(pvVar10,pvVar7,
	 *                                 *(undefined8 *)(*(long *)(*(long *)(lVar9 + 0x20) + 0xc0) + 0x70));
	 *                 return;
	 *               }
	 *             }
	 *           }
	 *         }
	 *       }
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3208940 VA: 0x78188F3940
	private UnityEngine.GameObject CreateOutlineObject(UnityEngine.Renderer sourceRenderer, string outlineType);
	/*
	 *   undefined *puVar1;
	 *   undefined *puVar2;
	 *   undefined *puVar3;
	 *   int value;
	 *   void *pvVar4;
	 *   void *this;
	 *   void *parent;
	 *
	 *   if ((bRam000000000754a7df & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548);
	 *     func_0x031fdc8c(PTR_DAT_070c1488);
	 *     func_0x031fdc8c(PTR_DAT_070c1680);
	 *     func_0x031fdc8c(PTR_DAT_070c1688);
	 *     bRam000000000754a7df = 1;
	 *   }
	 *   if ((param_2 != null) &&
	 *      (pvVar4 = UnityEngine.Component.get_gameObject(param_2),
	 *      puVar3 = PTR_DAT_070c1688, puVar2 = typeinfo_ptr_UnityEngine_CoreModule_GameObject_6FC1548,
	 *      puVar1 = PTR_DAT_070c1488, pvVar4 != null)) {
	 *     pvVar4 = UnityEngine.Object.get_name(pvVar4);
	 *     pvVar4 = System.String.Concat(pvVar4,*(void **)puVar3,param_3,*(void **)puVar1);
	 *     this = (void *)func_0x031fdf24(*(undefined8 *)puVar2);
	 *     UnityEngine.GameObject..ctor(this,pvVar4);
	 *     pvVar4 = UnityEngine.Component.get_gameObject(param_2);
	 *     if (pvVar4 != null) {
	 *       value = UnityEngine.GameObject.get_layer(pvVar4);
	 *       puVar1 = PTR_DAT_070c1680;
	 *       if (this != null) {
	 *         UnityEngine.GameObject.set_layer(this,value);
	 *         UnityEngine.GameObject.set_tag(this,*(void **)puVar1);
	 *         pvVar4 = UnityEngine.GameObject.get_transform(this);
	 *         parent = UnityEngine.Component.get_transform(param_2);
	 *         if (pvVar4 != null) {
	 *           UnityEngine.Transform.SetParent(pvVar4,parent,false);
	 *           if (cRam000000000754a7ce == '\0') {
	 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *             cRam000000000754a7ce = '\x01';
	 *           }
	 *           puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08;
	 *           UnityEngine.Transform.set_localPosition(pvVar4,**(UnityEngine_Vector3 **)
	 *                               (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08 + 0xb8));
	 *           if (cRam000000000754a7d0 == '\0') {
	 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0);
	 *             cRam000000000754a7d0 = '\x01';
	 *           }
	 *           UnityEngine.Transform.set_localRotation(pvVar4,**(UnityEngine_Vector4 **)
	 *                               (*(long *)typeinfo_ptr_UnityEngine_CoreModule_Quaternion_6FC0EA0 +
	 *                               0xb8));
	 *           if (cRam000000000754a89c == '\0') {
	 *             func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08);
	 *             cRam000000000754a89c = '\x01';
	 *           }
	 *           UnityEngine.Transform.set_localScale(pvVar4,*(UnityEngine_Vector3 *)(*(long *)(*(long *)puVar1 + 0xb8) + 0xc));
	 *           return this;
	 *         }
	 *       }
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3208B54 VA: 0x78188F3B54
	private void ConfigureRenderer(UnityEngine.Renderer sourceRenderer, UnityEngine.Renderer outlineRenderer, int subMeshCount);
	/*
	 *   undefined *puVar1;
	 *   uint uVar2;
	 *   long *value;
	 *   long lVar3;
	 *   undefined8 uVar4;
	 *   ulong uVar5;
	 *   long *plVar6;
	 *   long lVar7;
	 *   ulong uVar8;
	 *
	 *   puVar1 = PTR_DAT_070c1690;
	 *   if ((bRam000000000754a7e0 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1690);
	 *     bRam000000000754a7e0 = 1;
	 *   }
	 *   if (param_4 < 2) {
	 *     param_4 = 1;
	 *   }
	 *   value = (long *)func_0x031fdd78(*(undefined8 *)puVar1,param_4);
	 *   if (value != null) {
	 *     if (0 < (int)value[3]) {
	 *       uVar8 = 0;
	 *       uVar5 = value[3] & 0xffffffff;
	 *       plVar6 = value + 4;
	 *       do {
	 *         lVar7 = *(long *)(param_1 + 0x58);
	 *         if (lVar7 != 0) {
	 *           lVar3 = func_0x031fde0c(lVar7,*(undefined8 *)(*value + 0x40));
	 *           if (lVar3 == 0) {
	 *             uVar4 = func_0x031fdf58();
	 *             IL2CPP.ThrowManagedException();
	 *           }
	 *           uVar5 = (ulong)*(uint *)(value + 3);
	 *         }
	 *         if (uVar5 <= uVar8) {
	 *           IL2CPP.ThrowIndexOutOfRangeException();
	 *         }
	 *         *plVar6 = lVar7;
	 *         func_0x031fdc38(plVar6,lVar7);
	 *         uVar5 = (ulong)*(uint *)(value + 3);
	 *         uVar8 = uVar8 + 1;
	 *         plVar6 = plVar6 + 1;
	 *       } while ((long)uVar8 < (long)(int)*(uint *)(value + 3));
	 *     }
	 *     if (param_3 != null) {
	 *       UnityEngine.Renderer.set_sharedMaterials(param_3,value);
	 *       UnityEngine.Renderer.set_shadowCastingMode(param_3,0);
	 *       UnityEngine.Renderer.set_receiveShadows(param_3,false);
	 *       UnityEngine.Renderer.set_lightProbeUsage(param_3,0);
	 *       UnityEngine.Renderer.set_reflectionProbeUsage(param_3,0);
	 *       UnityEngine.Renderer.set_allowOcclusionWhenDynamic(param_3,false);
	 *       if (param_2 != null) {
	 *         uVar2 = UnityEngine.Renderer.get_renderingLayerMask(param_2);
	 *         if ((bRam000000000755e660 & 1) == 0) {
	 *           func_0x031fdc8c(PTR_DAT_0714e9b0,uVar2,0);
	 *           bRam000000000755e660 = 1;
	 *         }
	 *         if (param_3 != null) {
	 *           lVar7 = *(long *)((long)param_3 + 0x10);
	 *           if (lVar7 == 0) {
	 *             UnityEngine.Bindings.ThrowHelper.ThrowNullReferenceException(param_3);
	 *           }
	 *           if (pcRam000000000755e730 == null) {
	 *             pcRam000000000755e730 = (code *)func_0x031fdc50(&UNK_01362130);
	 *           }
	 *           (*pcRam000000000755e730)(lVar7,uVar2);
	 *           return;
	 *         }
	 *         IL2CPP.ThrowNullReferenceException();
	 *       }
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3207FF8 VA: 0x78188F2FF8
	private void UpdateRandomColor();
	/*
	 *   char cVar1;
	 *   UnityEngine_Color *pUVar2;
	 *   UnityEngine_Color *pUVar3;
	 *   float fVar4;
	 *   undefined4 uVar5;
	 *   undefined4 uVar6;
	 *   float fVar7;
	 *   float fVar8;
	 *   undefined4 uVar9;
	 *   undefined4 uVar10;
	 *   float valueMin;
	 *   float fVar11;
	 *   undefined4 uVar12;
	 *   undefined4 uVar13;
	 *   undefined4 uVar14;
	 *   undefined4 uVar15;
	 *   UnityEngine_Color UVar16;
	 *
	 *   if (this.randomColors != false) {
	 *     fVar11 = this.randomColorSpeed;
	 *     fVar4 = UnityEngine.Time.get_deltaTime();
	 *     fVar11 = (float)func_0x06cb3970(-(fVar11 * fVar4));
	 *     cVar1 = cRam000000000754a89d;
	 *     pUVar2 = &this.currentRandomColor;
	 *     uVar9 = pUVar2->r;
	 *     uVar10 = pUVar2->g;
	 *     pUVar3 = &this.targetRandomColor;
	 *     uVar12 = pUVar3->r;
	 *     uVar13 = pUVar3->g;
	 *     uVar14 = (this.targetRandomColor).b;
	 *     uVar15 = (this.targetRandomColor).a;
	 *     fVar11 = 1.0 - fVar11;
	 *     fVar4 = 1.0;
	 *     if (fVar11 <= 1.0) {
	 *       fVar4 = fVar11;
	 *     }
	 *     uVar5 = (this.currentRandomColor).b;
	 *     uVar6 = (this.currentRandomColor).a;
	 *     fVar8 = 0.0;
	 *     if (0.0 <= fVar11) {
	 *       fVar8 = fVar4;
	 *     }
	 *     fVar4 = (float)uVar9 + ((float)uVar12 - (float)uVar9) * fVar8;
	 *     fVar11 = (float)uVar10 + ((float)uVar13 - (float)uVar10) * fVar8;
	 *     fVar7 = (float)uVar5 + ((float)uVar14 - (float)uVar5) * fVar8;
	 *     fVar8 = (float)uVar6 + ((float)uVar15 - (float)uVar6) * fVar8;
	 *     (this.currentRandomColor).b = fVar7;
	 *     (this.currentRandomColor).a = fVar8;
	 *     pUVar2->r = fVar4;
	 *     pUVar2->g = fVar11;
	 *     if (cVar1 == '\0') {
	 *       func_0x031fdc8c(typeinfo_ptr_mscorlib_Math_6FC0738);
	 *       cRam000000000754a89d = '\x01';
	 *     }
	 *     if (*(int *)(*(long *)typeinfo_ptr_mscorlib_Math_6FC0738 + 0xe4) == 0) {
	 *       func_0x031fde08();
	 *     }
	 *     fVar4 = fVar4 - (float)uVar12;
	 *     fVar11 = fVar11 - (float)uVar13;
	 *     fVar7 = fVar7 - (float)uVar14;
	 *     fVar8 = fVar8 - (float)uVar15;
	 *     if (SQRT(fVar8 * fVar8 + fVar7 * fVar7 + fVar4 * fVar4 + fVar11 * fVar11) < _UNK_0134e6a0) {
	 *       fVar4 = (this.targetRandomColor).a;
	 *       fVar11 = pUVar3->r;
	 *       fVar8 = pUVar3->g;
	 *       fVar7 = this.minimumSaturation;
	 *       valueMin = this.minimumBrightness;
	 *       (this.currentRandomColor).b = (this.targetRandomColor).b;
	 *       (this.currentRandomColor).a = fVar4;
	 *       pUVar2->r = fVar11;
	 *       pUVar2->g = fVar8;
	 *       UVar16 = Random.ColorHSV(0.0,1.0,fVar7,1.0,valueMin,1.0,1.0,1.0);
	 *       (this.targetRandomColor).r = UVar16.r;
	 *       (this.targetRandomColor).g = UVar16.g;
	 *       (this.targetRandomColor).b = UVar16.b;
	 *       (this.targetRandomColor).a = UVar16.a;
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x3208150 VA: 0x78188F3150
	private void UpdateOutlineRenderers();
	/*
	 *   long lVar1;
	 *   long lVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   long lVar8;
	 *   ulong uVar9;
	 *   void *this_00;
	 *   int iVar10;
	 *   undefined8 uVar11;
	 *   void *pvVar12;
	 *   undefined4 uVar13;
	 *   undefined4 uVar14;
	 *   undefined4 uVar15;
	 *   float fVar16;
	 *   UnityEngine_Color value;
	 *
	 *   if ((bRam000000000754a7e1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1620);
	 *     func_0x031fdc8c(PTR_DAT_070c1628);
	 *     func_0x031fdc8c(PTR_DAT_070c1630);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1638);
	 *     bRam000000000754a7e1 = 1;
	 *   }
	 *   puVar6 = PTR_DAT_070c1638;
	 *   puVar5 = PTR_DAT_070c1630;
	 *   puVar4 = PTR_DAT_070c1620;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (this.propertyBlock != null) {
	 *     bVar7 = this.randomColors != false;
	 *     lVar8 = 0x38;
	 *     if (bVar7) {
	 *       lVar8 = 0x70;
	 *     }
	 *     lVar1 = 0x34;
	 *     if (bVar7) {
	 *       lVar1 = 0x6c;
	 *     }
	 *     lVar2 = 0x30;
	 *     if (bVar7) {
	 *       lVar2 = 0x68;
	 *     }
	 *     if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     iVar10 = *(int *)((long)this.outlinePairs + 0x18);
	 *     if (-1 < iVar10 + -1) {
	 *       uVar13 = *(undefined4 *)(&this.field_0x0 + lVar2);
	 *       uVar14 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *       uVar15 = *(undefined4 *)(&this.field_0x0 + lVar8);
	 *       fVar16 = this.opacity;
	 *       do {
	 *         if (this.outlinePairs == null) goto LAB_0330840c;
	 *         iVar10 = iVar10 + -1;
	 *         lVar8 = func_0x03f2d434(this.outlinePairs,iVar10,*(undefined8 *)puVar5);
	 *         if (lVar8 == 0) goto LAB_0330840c;
	 *         uVar11 = *(undefined8 *)(lVar8 + 0x10);
	 *         if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *         if ((uVar9 & 1) == 0) {
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x18);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *           pvVar12 = *(void **)(lVar8 + 0x18);
	 *           if (this.highlighted == false) {
	 * LAB_03308348:
	 *             bVar7 = false;
	 *           }
	 *           else {
	 *             if (*(void **)(lVar8 + 0x10) == null) goto LAB_0330840c;
	 *             bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar8 + 0x10));
	 *             if (!bVar7) goto LAB_03308348;
	 *             if ((*(void **)(lVar8 + 0x10) == null) ||
	 *                (this_00 = UnityEngine.Component.get_gameObject(*(void **)(lVar8 + 0x10)), this_00 == null))
	 *             goto LAB_0330840c;
	 *             bVar7 = UnityEngine.GameObject.get_activeInHierarchy(this_00);
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.set_enabled(pvVar12,bVar7);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *           pvVar12 = this.propertyBlock;
	 *           if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           value.g = (float)uVar14;
	 *           value.r = (float)uVar13;
	 *           value.a = fVar16;
	 *           value.b = (float)uVar15;
	 *           UnityEngine.MaterialPropertyBlock.SetColor(pvVar12,**(int **)(*(long *)puVar6 + 0xb8),value);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *           if (*(void **)(lVar8 + 0x18) == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar8 + 0x18),this.propertyBlock);
	 *         }
	 *         else {
	 * LAB_033082a8:
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Inequality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) {
	 *             uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             UnityEngine.Object.Destroy(uVar11);
	 *           }
	 *           if (this.outlinePairs == null) goto LAB_0330840c;
	 *           func_0x03f2ee68(this.outlinePairs,iVar10,*(undefined8 *)puVar4);
	 *         }
	 *       } while (0 < iVar10);
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x3208410 VA: 0x78188F3410
	private UnityEngine.Color CreateRandomColor();
	/*
	 *   float fVar1;
	 *   float fVar2;
	 *   float fVar3;
	 *   float fVar4;
	 *   float fVar5;
	 *   float fVar6;
	 *   float fVar7;
	 *   undefined1 auVar8 [16];
	 *   UnityEngine_Color UVar9;
	 *   UnityEngine_Color UVar10;
	 *
	 *   auVar8._8_8_ = methodInfo;
	 *   auVar8._0_8_ = pcRam000000000755f608;
	 *   fVar6 = this.minimumSaturation;
	 *   fVar7 = this.minimumBrightness;
	 *   if (pcRam000000000755f608 == null) {
	 *     auVar8 = func_0x031fdc50(&UNK_0136768c);
	 *   }
	 *   pcRam000000000755f608 = auVar8._0_8_;
	 *   fVar2 = (float)(*pcRam000000000755f608)(pcRam000000000755f608,auVar8._8_8_);
	 *   fVar5 = 1.0;
	 *   if (fVar2 <= 1.0) {
	 *     fVar5 = fVar2;
	 *   }
	 *   fVar1 = 0.0;
	 *   if (0.0 <= fVar2) {
	 *     fVar1 = fVar5;
	 *   }
	 *   if (pcRam000000000755f608 == null) {
	 *     pcRam000000000755f608 = (code *)func_0x031fdc50(&UNK_0136768c);
	 *   }
	 *   fVar2 = (float)(*pcRam000000000755f608)();
	 *   fVar5 = 1.0;
	 *   if (fVar2 <= 1.0) {
	 *     fVar5 = fVar2;
	 *   }
	 *   fVar3 = 0.0;
	 *   if (0.0 <= fVar2) {
	 *     fVar3 = fVar5;
	 *   }
	 *   if (pcRam000000000755f608 == null) {
	 *     pcRam000000000755f608 = (code *)func_0x031fdc50(&UNK_0136768c);
	 *   }
	 *   fVar2 = (float)(*pcRam000000000755f608)();
	 *   fVar5 = 1.0;
	 *   if (fVar2 <= 1.0) {
	 *     fVar5 = fVar2;
	 *   }
	 *   fVar4 = 0.0;
	 *   if (0.0 <= fVar2) {
	 *     fVar4 = fVar5;
	 *   }
	 *   UVar9 = UnityEngine.Color.HSVToRGB(fVar1 * 1.0 + 0.0,(1.0 - fVar6) * fVar3 + fVar6,(1.0 - fVar7) * fVar4 + fVar7,true);
	 *   UVar10.b = UVar9.b;
	 *   if (pcRam000000000755f608 == null) {
	 *     pcRam000000000755f608 = (code *)func_0x031fdc50(&UNK_0136768c);
	 *   }
	 *   fVar7 = (float)(*pcRam000000000755f608)();
	 *   fVar6 = 1.0;
	 *   if (fVar7 <= 1.0) {
	 *     fVar6 = fVar7;
	 *   }
	 *   fVar5 = 0.0;
	 *   if (0.0 <= fVar7) {
	 *     fVar5 = fVar6;
	 *   }
	 *   UVar10.a = fVar5 * 0.0 + 1.0;
	 *   UVar10.r = (float)(int)UVar9._0_8_;
	 *   UVar10.g = (float)(int)((ulong)UVar9._0_8_ >> 0x20);
	 *   return UVar10;
	 */
	// RVA: 0x3208CD4 VA: 0x78188F3CD4
	public void SetHighlighted(bool value);
	/*
	 *   long lVar1;
	 *   long lVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   long lVar8;
	 *   ulong uVar9;
	 *   void *this_00;
	 *   int iVar10;
	 *   undefined8 uVar11;
	 *   void *pvVar12;
	 *   undefined4 uVar13;
	 *   undefined4 uVar14;
	 *   undefined4 uVar15;
	 *   float fVar16;
	 *   UnityEngine_Color value_00;
	 *
	 *   this.highlighted = value;
	 *   if ((bRam000000000754a7e1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1620);
	 *     func_0x031fdc8c(PTR_DAT_070c1628);
	 *     func_0x031fdc8c(PTR_DAT_070c1630);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1638);
	 *     bRam000000000754a7e1 = 1;
	 *   }
	 *   puVar6 = PTR_DAT_070c1638;
	 *   puVar5 = PTR_DAT_070c1630;
	 *   puVar4 = PTR_DAT_070c1620;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (this.propertyBlock != null) {
	 *     bVar7 = this.randomColors != false;
	 *     lVar8 = 0x38;
	 *     if (bVar7) {
	 *       lVar8 = 0x70;
	 *     }
	 *     lVar1 = 0x34;
	 *     if (bVar7) {
	 *       lVar1 = 0x6c;
	 *     }
	 *     lVar2 = 0x30;
	 *     if (bVar7) {
	 *       lVar2 = 0x68;
	 *     }
	 *     if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     iVar10 = *(int *)((long)this.outlinePairs + 0x18);
	 *     if (-1 < iVar10 + -1) {
	 *       uVar13 = *(undefined4 *)(&this.field_0x0 + lVar2);
	 *       uVar14 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *       uVar15 = *(undefined4 *)(&this.field_0x0 + lVar8);
	 *       fVar16 = this.opacity;
	 *       do {
	 *         if (this.outlinePairs == null) goto LAB_0330840c;
	 *         iVar10 = iVar10 + -1;
	 *         lVar8 = func_0x03f2d434(this.outlinePairs,iVar10,*(undefined8 *)puVar5);
	 *         if (lVar8 == 0) goto LAB_0330840c;
	 *         uVar11 = *(undefined8 *)(lVar8 + 0x10);
	 *         if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *         if ((uVar9 & 1) == 0) {
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x18);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *           pvVar12 = *(void **)(lVar8 + 0x18);
	 *           if (this.highlighted == false) {
	 * LAB_03308348:
	 *             bVar7 = false;
	 *           }
	 *           else {
	 *             if (*(void **)(lVar8 + 0x10) == null) goto LAB_0330840c;
	 *             bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar8 + 0x10));
	 *             if (!bVar7) goto LAB_03308348;
	 *             if ((*(void **)(lVar8 + 0x10) == null) ||
	 *                (this_00 = UnityEngine.Component.get_gameObject(*(void **)(lVar8 + 0x10)), this_00 == null))
	 *             goto LAB_0330840c;
	 *             bVar7 = UnityEngine.GameObject.get_activeInHierarchy(this_00);
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.set_enabled(pvVar12,bVar7);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *           pvVar12 = this.propertyBlock;
	 *           if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           value_00.g = (float)uVar14;
	 *           value_00.r = (float)uVar13;
	 *           value_00.a = fVar16;
	 *           value_00.b = (float)uVar15;
	 *           UnityEngine.MaterialPropertyBlock.SetColor(pvVar12,**(int **)(*(long *)puVar6 + 0xb8),value_00);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *           if (*(void **)(lVar8 + 0x18) == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar8 + 0x18),this.propertyBlock);
	 *         }
	 *         else {
	 * LAB_033082a8:
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Inequality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) {
	 *             uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             UnityEngine.Object.Destroy(uVar11);
	 *           }
	 *           if (this.outlinePairs == null) goto LAB_0330840c;
	 *           func_0x03f2ee68(this.outlinePairs,iVar10,*(undefined8 *)puVar4);
	 *         }
	 *       } while (0 < iVar10);
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x3208CDC VA: 0x78188F3CDC
	public void SetColor(UnityEngine.Color color);
	/*
	 *   long lVar1;
	 *   long lVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined *puVar5;
	 *   undefined *puVar6;
	 *   bool bVar7;
	 *   long lVar8;
	 *   ulong uVar9;
	 *   void *this_00;
	 *   int iVar10;
	 *   undefined8 uVar11;
	 *   void *pvVar12;
	 *   undefined4 uVar13;
	 *   undefined4 uVar14;
	 *   undefined4 uVar15;
	 *   float fVar16;
	 *   UnityEngine_Color value;
	 *
	 *   this.randomColors = false;
	 *   (this.highlightColor).r = color.r;
	 *   (this.highlightColor).g = color.g;
	 *   (this.highlightColor).b = color.b;
	 *   (this.highlightColor).a = color.a;
	 *   if ((bRam000000000754a7e1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1620);
	 *     func_0x031fdc8c(PTR_DAT_070c1628);
	 *     func_0x031fdc8c(PTR_DAT_070c1630);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(PTR_DAT_070c1638);
	 *     bRam000000000754a7e1 = 1;
	 *   }
	 *   puVar6 = PTR_DAT_070c1638;
	 *   puVar5 = PTR_DAT_070c1630;
	 *   puVar4 = PTR_DAT_070c1620;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if (this.propertyBlock != null) {
	 *     bVar7 = this.randomColors != false;
	 *     lVar8 = 0x38;
	 *     if (bVar7) {
	 *       lVar8 = 0x70;
	 *     }
	 *     lVar1 = 0x34;
	 *     if (bVar7) {
	 *       lVar1 = 0x6c;
	 *     }
	 *     lVar2 = 0x30;
	 *     if (bVar7) {
	 *       lVar2 = 0x68;
	 *     }
	 *     if (this.outlinePairs == null) {
	 * LAB_0330840c:
	 *       IL2CPP.ThrowNullReferenceException();
	 *     }
	 *     iVar10 = *(int *)((long)this.outlinePairs + 0x18);
	 *     if (-1 < iVar10 + -1) {
	 *       uVar13 = *(undefined4 *)(&this.field_0x0 + lVar2);
	 *       uVar14 = *(undefined4 *)(&this.field_0x0 + lVar1);
	 *       uVar15 = *(undefined4 *)(&this.field_0x0 + lVar8);
	 *       fVar16 = this.opacity;
	 *       do {
	 *         if (this.outlinePairs == null) goto LAB_0330840c;
	 *         iVar10 = iVar10 + -1;
	 *         lVar8 = func_0x03f2d434(this.outlinePairs,iVar10,*(undefined8 *)puVar5);
	 *         if (lVar8 == 0) goto LAB_0330840c;
	 *         uVar11 = *(undefined8 *)(lVar8 + 0x10);
	 *         if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *         if ((uVar9 & 1) == 0) {
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x18);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Equality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) goto LAB_033082a8;
	 *           pvVar12 = *(void **)(lVar8 + 0x18);
	 *           if (this.highlighted == false) {
	 * LAB_03308348:
	 *             bVar7 = false;
	 *           }
	 *           else {
	 *             if (*(void **)(lVar8 + 0x10) == null) goto LAB_0330840c;
	 *             bVar7 = UnityEngine.Renderer.get_enabled(*(void **)(lVar8 + 0x10));
	 *             if (!bVar7) goto LAB_03308348;
	 *             if ((*(void **)(lVar8 + 0x10) == null) ||
	 *                (this_00 = UnityEngine.Component.get_gameObject(*(void **)(lVar8 + 0x10)), this_00 == null))
	 *             goto LAB_0330840c;
	 *             bVar7 = UnityEngine.GameObject.get_activeInHierarchy(this_00);
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.set_enabled(pvVar12,bVar7);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.Clear(this.propertyBlock);
	 *           pvVar12 = this.propertyBlock;
	 *           if (*(int *)(*(long *)puVar6 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           if (pvVar12 == null) goto LAB_0330840c;
	 *           value.g = (float)uVar14;
	 *           value.r = (float)uVar13;
	 *           value.a = fVar16;
	 *           value.b = (float)uVar15;
	 *           UnityEngine.MaterialPropertyBlock.SetColor(pvVar12,**(int **)(*(long *)puVar6 + 0xb8),value);
	 *           if (this.propertyBlock == null) goto LAB_0330840c;
	 *           UnityEngine.MaterialPropertyBlock.SetFloat(this.propertyBlock,*(int *)(*(long *)(*(long *)puVar6 + 0xb8) + 4),this.outlineWidth);
	 *           if (*(void **)(lVar8 + 0x18) == null) goto LAB_0330840c;
	 *           UnityEngine.Renderer.SetPropertyBlock(*(void **)(lVar8 + 0x18),this.propertyBlock);
	 *         }
	 *         else {
	 * LAB_033082a8:
	 *           uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *           if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *             func_0x031fde08();
	 *           }
	 *           uVar9 = UnityEngine.Object.op_Inequality(uVar11,null);
	 *           if ((uVar9 & 1) != 0) {
	 *             uVar11 = *(undefined8 *)(lVar8 + 0x20);
	 *             if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *               func_0x031fde08();
	 *             }
	 *             UnityEngine.Object.Destroy(uVar11);
	 *           }
	 *           if (this.outlinePairs == null) goto LAB_0330840c;
	 *           func_0x03f2ee68(this.outlinePairs,iVar10,*(undefined8 *)puVar4);
	 *         }
	 *       } while (0 < iVar10);
	 *     }
	 *   }
	 *   return;
	 */
	// RVA: 0x3208CEC VA: 0x78188F3CEC
	private void OnDestroy();
	/*
	 *   int iVar1;
	 *   undefined *puVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   long lVar5;
	 *   ulong uVar6;
	 *   void *extraout_x1;
	 *   void *pvVar7;
	 *   undefined8 uVar8;
	 *   undefined1 auVar9 [16];
	 *   undefined8 uStack_78;
	 *   undefined8 *puStack_70;
	 *   long lStack_68;
	 *   undefined8 uStack_60;
	 *   undefined8 *puStack_58;
	 *   long lStack_50;
	 *
	 *   if ((bRam000000000754a7e2 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1698);
	 *     func_0x031fdc8c(PTR_DAT_070c16a0);
	 *     func_0x031fdc8c(PTR_DAT_070c16a8);
	 *     func_0x031fdc8c(PTR_DAT_070c16b0);
	 *     func_0x031fdc8c(PTR_DAT_070c16b8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a7e2 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   puVar4 = PTR_DAT_070c16a0;
	 *   puVar3 = PTR_DAT_070c1698;
	 *   puVar2 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   uStack_60 = 0;
	 *   puStack_58 = null;
	 *   lStack_50 = 0;
	 *   auVar9._8_8_ = 0;
	 *   auVar9._0_8_ = methodInfo;
	 *   auVar9 = auVar9 << 0x40;
	 *   if (this.outlinePairs != null) {
	 *     func_0x03f2e1a8(&uStack_78,this.outlinePairs,*(undefined8 *)PTR_DAT_070c16b8);
	 *     lStack_50 = lStack_68;
	 *     puStack_58 = puStack_70;
	 *     uStack_60 = uStack_78;
	 *     uStack_78 = 0;
	 *     puStack_70 = &uStack_60;
	 *     while (uVar6 = func_0x05018cac(&uStack_60,*(undefined8 *)puVar4), lVar5 = lStack_50,
	 *           (uVar6 & 1) != 0) {
	 *       if (lStack_50 == 0) {
	 *         IL2CPP.ThrowNullReferenceException();
	 *       }
	 *       uVar8 = *(undefined8 *)(lStack_50 + 0x20);
	 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *         func_0x031fde08();
	 *       }
	 *       uVar6 = UnityEngine.Object.op_Inequality(uVar8,null);
	 *       if ((uVar6 & 1) != 0) {
	 *         uVar8 = *(undefined8 *)(lVar5 + 0x20);
	 *         if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         UnityEngine.Object.Destroy(uVar8);
	 *       }
	 *     }
	 *     auVar9 = func_0x05018ca8(&uStack_60,*(undefined8 *)puVar3);
	 *     pvVar7 = this.outlinePairs;
	 *     if (pvVar7 != null) {
	 *       iVar1 = *(int *)((long)pvVar7 + 0x18);
	 *       *(undefined4 *)((long)pvVar7 + 0x18) = 0;
	 *       *(int *)((long)pvVar7 + 0x1c) = *(int *)((long)pvVar7 + 0x1c) + 1;
	 *       if (0 < iVar1) {
	 *         System.Array.Clear(*(undefined8 *)((long)pvVar7 + 0x10),0,iVar1);
	 *       }
	 *       pvVar7 = this.outlineMaterial;
	 *       if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *         func_0x031fde08();
	 *       }
	 *       uVar6 = UnityEngine.Object.op_Inequality(pvVar7,null);
	 *       if ((uVar6 & 1) != 0) {
	 *         pvVar7 = this.outlineMaterial;
	 *         if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *           func_0x031fde08();
	 *         }
	 *         UnityEngine.Object.Destroy(pvVar7);
	 *       }
	 *       return;
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x3208F18 VA: 0x78188F3F18
	public void .ctor();
	/*
	 *   undefined8 uVar1;
	 *   undefined4 uVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined8 uVar5;
	 *   undefined8 uVar6;
	 *   undefined8 uVar7;
	 *   void *pvVar8;
	 *   void *extraout_x1;
	 *
	 *   puVar4 = PTR_DAT_070c16c8;
	 *   puVar3 = PTR_DAT_070c16c0;
	 *   if ((bRam000000000754a7e3 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c16c8);
	 *     func_0x031fdc8c(PTR_DAT_070c16c0);
	 *     bRam000000000754a7e3 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   uVar7 = *(undefined8 *)puVar3;
	 *   uVar2 = _UNK_0134dfd4;
	 *   this.outlineWidth = (float)_UNK_0134dfd0;
	 *   uVar5 = _UNK_0134c6a8;
	 *   uVar1 = _UNK_0134c6a0;
	 *   this.opacity = (float)uVar2;
	 *   this.highlighted = true;
	 *   uVar6 = _UNK_0134c6a8;
	 *   this.includeInactiveObjects = true;
	 *   _UNK_0134c6a8 = (undefined4)uVar5;
	 *   _UNK_0134c6ac = SUB84(uVar5,4);
	 *   uVar2 = _UNK_0134c6ac;
	 *   (this.highlightColor).b = (float)_UNK_0134c6a8;
	 *   _UNK_0134c6a8 = uVar6;
	 *   uVar5 = _UNK_0134c6a0;
	 *   (this.highlightColor).a = (float)uVar2;
	 *   _UNK_0134c6a0 = (undefined4)uVar1;
	 *   _UNK_0134c6a4 = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134c6a4;
	 *   (this.highlightColor).r = (float)_UNK_0134c6a0;
	 *   _UNK_0134c6a0 = uVar5;
	 *   uVar1 = _UNK_0134d098;
	 *   (this.highlightColor).g = (float)uVar2;
	 *   this.randomColors = true;
	 *   uVar5 = _UNK_0134d098;
	 *   _UNK_0134d098 = (undefined4)uVar1;
	 *   _UNK_0134d09c = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134d09c;
	 *   this.randomColorSpeed = (float)_UNK_0134d098;
	 *   _UNK_0134d098 = uVar5;
	 *   this.minimumSaturation = (float)uVar2;
	 *   this.minimumBrightness = 0.8;
	 *   pvVar8 = (void *)func_0x031fdf24(uVar7,methodInfo);
	 *   func_0x03f2ce9c(pvVar8,*(undefined8 *)puVar4);
	 *   this.outlinePairs = pvVar8;
	 *   func_0x031fdc38(&this.outlinePairs,pvVar8);
	 *   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;
	 */
	// RVA: 0x3208FE0 VA: 0x78188F3FE0
	private static void .cctor();
	/*
	 *   undefined *puVar1;
	 *   undefined *puVar2;
	 *   undefined *puVar3;
	 *   int iVar4;
	 *   void *name;
	 *
	 *   puVar3 = PTR_DAT_070c16d8;
	 *   puVar2 = PTR_DAT_070c16d0;
	 *   puVar1 = PTR_DAT_070c1638;
	 *   if ((bRam000000000754a7e4 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c1638);
	 *     func_0x031fdc8c(PTR_DAT_070c16d8);
	 *     func_0x031fdc8c(PTR_DAT_070c16d0);
	 *     bRam000000000754a7e4 = 1;
	 *   }
	 *   iVar4 = UnityEngine.Shader.PropertyToID(*(void **)puVar2);
	 *   name = *(void **)puVar3;
	 *   **(int **)(*(long *)puVar1 + 0xb8) = iVar4;
	 *   iVar4 = UnityEngine.Shader.PropertyToID(name);
	 *   *(int *)(*(long *)(*(long *)puVar1 + 0xb8) + 4) = iVar4;
	 *   return;
	 */
}
