// [TypeInfo RVA: 0x0]
public class LocalNavMeshBuilder : MonoBehaviour
{
	public UnityEngine.Transform m_Tracked; // 0x20
	public UnityEngine.Vector3 m_Size; // 0x28
	private UnityEngine.AI.NavMeshData m_NavMesh; // 0x38
	private UnityEngine.AsyncOperation m_Operation; // 0x40
	private UnityEngine.AI.NavMeshDataInstance m_Instance; // 0x48
	private System.Collections.Generic.List<UnityEngine.AI.NavMeshBuildSource> m_Sources; // 0x50

	// RVA: 0x323E194 VA: 0x7818929194
	private System.Collections.IEnumerator Start();
	/*
	 *   undefined *puVar1;
	 *   void *this_00;
	 *   void *extraout_x1;
	 *
	 *   puVar1 = PTR_DAT_070c3638;
	 *   if ((bRam000000000754a9cf & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3638);
	 *     bRam000000000754a9cf = 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: 0x323E228 VA: 0x7818929228
	private void OnEnable();
	/*
	 *   undefined *puVar1;
	 *   undefined *puVar2;
	 *   undefined4 uVar3;
	 *   void *pvVar4;
	 *   long lVar5;
	 *   ulong uVar6;
	 *   void *extraout_x1;
	 *   void *extraout_x1_00;
	 *   void *extraout_x1_01;
	 *   void **ppvVar7;
	 *   undefined8 uStack_190;
	 *   undefined8 uStack_188;
	 *   undefined8 uStack_180;
	 *   undefined8 uStack_170;
	 *   undefined8 uStack_168;
	 *   undefined8 uStack_160;
	 *   undefined8 uStack_158;
	 *   undefined8 uStack_150;
	 *   undefined8 uStack_148;
	 *   undefined8 uStack_140;
	 *   undefined8 uStack_138;
	 *   undefined8 uStack_c8;
	 *   undefined8 uStack_c0;
	 *   undefined8 uStack_b8;
	 *   undefined8 uStack_b0;
	 *   undefined8 uStack_a8;
	 *   undefined8 uStack_a0;
	 *   undefined8 uStack_98;
	 *   undefined8 uStack_90;
	 *   undefined8 uStack_88;
	 *   undefined8 uStack_80;
	 *   undefined8 uStack_78;
	 *   undefined8 uStack_70;
	 *   undefined8 uStack_68;
	 *   undefined8 uStack_60;
	 *   undefined8 uStack_58;
	 *   undefined8 uStack_50;
	 *   undefined8 uStack_48;
	 *   undefined8 uStack_40;
	 *   undefined8 uStack_38;
	 *
	 *   puVar2 = PTR_DAT_070c3640;
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a9d0 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3640);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a9d0 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   pvVar4 = (void *)func_0x031fdf24(*(undefined8 *)puVar2,methodInfo);
	 *   UnityEngine.AI.NavMeshData..ctor(pvVar4);
	 *   ppvVar7 = &this.m_NavMesh;
	 *   *ppvVar7 = pvVar4;
	 *   func_0x031fdc38(ppvVar7,pvVar4);
	 *   uVar3 = NavMesh.AddNavMeshData(*ppvVar7);
	 *   lVar5 = *(long *)puVar1;
	 *   pvVar4 = this.m_Tracked;
	 *   *(undefined4 *)&this.m_Instance = uVar3;
	 *   if (*(int *)(lVar5 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar6 = UnityEngine.Object.op_Equality(pvVar4,null);
	 *   if ((uVar6 & 1) != 0) {
	 *     pvVar4 = UnityEngine.Component.get_transform(this);
	 *     this.m_Tracked = pvVar4;
	 *     func_0x031fdc38(&this.m_Tracked,pvVar4);
	 *   }
	 *   puVar1 = PTR_DAT_070c3648;
	 *   pvVar4 = null;
	 *   if ((bRam000000000754a9d1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3648);
	 *     bRam000000000754a9d1 = 1;
	 *     pvVar4 = extraout_x1_00;
	 *   }
	 *   uStack_88 = 0;
	 *   uStack_80 = 0;
	 *   uStack_78 = 0;
	 *   uStack_68 = 0;
	 *   uStack_70 = 0;
	 *   uStack_58 = 0;
	 *   uStack_60 = 0;
	 *   uStack_48 = 0;
	 *   uStack_50 = 0;
	 *   uStack_38 = 0;
	 *   uStack_40 = 0;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *     pvVar4 = extraout_x1_01;
	 *   }
	 *   NavMeshSourceTag.Collect(&this.m_Sources);
	 *   NavMesh.GetSettingsByID(&uStack_c8,0,0);
	 *   uStack_68 = uStack_c0;
	 *   uStack_70 = uStack_c8;
	 *   uStack_58 = uStack_b0;
	 *   uStack_60 = uStack_b8;
	 *   uStack_48 = uStack_a0;
	 *   uStack_50 = uStack_a8;
	 *   uStack_38 = uStack_90;
	 *   uStack_40 = uStack_98;
	 *   LocalNavMeshBuilder.QuantizedBounds(&uStack_88);
	 *   uStack_168 = uStack_68;
	 *   uStack_170 = uStack_70;
	 *   uStack_158 = uStack_58;
	 *   uStack_160 = uStack_60;
	 *   uStack_180 = uStack_78;
	 *   uStack_148 = uStack_48;
	 *   uStack_150 = uStack_50;
	 *   uStack_138 = uStack_38;
	 *   uStack_140 = uStack_40;
	 *   uStack_188 = uStack_80;
	 *   uStack_190 = uStack_88;
	 *   NavMeshBuilder.UpdateNavMeshData(this.m_NavMesh,&uStack_170,this.m_Sources,&uStack_190);
	 *   return;
	 */
	// RVA: 0x323E444 VA: 0x7818929444
	private void OnDisable();
	/*
	 *   undefined4 uVar1;
	 *
	 *   uVar1 = *(undefined4 *)&this.m_Instance;
	 *   if (pcRam000000000755cd70 == null) {
	 *     pcRam000000000755cd70 = (code *)func_0x031fdc50(&UNK_0135d3f8);
	 *   }
	 *   (*pcRam000000000755cd70)(uVar1);
	 *   return;
	 */
	// RVA: 0x323E310 VA: 0x7818929310
	private void UpdateNavMesh(bool asyncUpdate);
	/*
	 *   undefined *puVar1;
	 *   void *pvVar2;
	 *   void *extraout_x1;
	 *   void *extraout_x1_00;
	 *   undefined8 uStack_190;
	 *   undefined8 uStack_188;
	 *   undefined8 uStack_180;
	 *   undefined8 uStack_170;
	 *   undefined8 uStack_168;
	 *   undefined8 uStack_160;
	 *   undefined8 uStack_158;
	 *   undefined8 uStack_150;
	 *   undefined8 uStack_148;
	 *   undefined8 uStack_140;
	 *   undefined8 uStack_138;
	 *   undefined8 uStack_130;
	 *   undefined8 uStack_128;
	 *   undefined8 uStack_120;
	 *   undefined8 uStack_110;
	 *   undefined8 uStack_108;
	 *   undefined8 uStack_100;
	 *   undefined8 uStack_f8;
	 *   undefined8 uStack_f0;
	 *   undefined8 uStack_e8;
	 *   undefined8 uStack_e0;
	 *   undefined8 uStack_d8;
	 *   undefined8 uStack_c8;
	 *   undefined8 uStack_c0;
	 *   undefined8 uStack_b8;
	 *   undefined8 uStack_b0;
	 *   undefined8 uStack_a8;
	 *   undefined8 uStack_a0;
	 *   undefined8 uStack_98;
	 *   undefined8 uStack_90;
	 *   undefined8 uStack_88;
	 *   undefined8 uStack_80;
	 *   undefined8 uStack_78;
	 *   undefined8 uStack_70;
	 *   undefined8 uStack_68;
	 *   undefined8 uStack_60;
	 *   undefined8 uStack_58;
	 *   undefined8 uStack_50;
	 *   undefined8 uStack_48;
	 *   undefined8 uStack_40;
	 *   undefined8 uStack_38;
	 *
	 *   puVar1 = PTR_DAT_070c3648;
	 *   pvVar2 = (void *)(ulong)asyncUpdate;
	 *   if ((bRam000000000754a9d1 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3648);
	 *     bRam000000000754a9d1 = 1;
	 *     pvVar2 = extraout_x1;
	 *   }
	 *   uStack_88 = 0;
	 *   uStack_80 = 0;
	 *   uStack_78 = 0;
	 *   uStack_68 = 0;
	 *   uStack_70 = 0;
	 *   uStack_58 = 0;
	 *   uStack_60 = 0;
	 *   uStack_48 = 0;
	 *   uStack_50 = 0;
	 *   uStack_38 = 0;
	 *   uStack_40 = 0;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *     pvVar2 = extraout_x1_00;
	 *   }
	 *   NavMeshSourceTag.Collect(&this.m_Sources);
	 *   NavMesh.GetSettingsByID(&uStack_c8,0,0);
	 *   uStack_68 = uStack_c0;
	 *   uStack_70 = uStack_c8;
	 *   uStack_58 = uStack_b0;
	 *   uStack_60 = uStack_b8;
	 *   uStack_48 = uStack_a0;
	 *   uStack_50 = uStack_a8;
	 *   uStack_38 = uStack_90;
	 *   uStack_40 = uStack_98;
	 *   LocalNavMeshBuilder.QuantizedBounds(&uStack_88);
	 *   if (asyncUpdate) {
	 *     uStack_108 = uStack_68;
	 *     uStack_110 = uStack_70;
	 *     uStack_f8 = uStack_58;
	 *     uStack_100 = uStack_60;
	 *     uStack_120 = uStack_78;
	 *     uStack_e8 = uStack_48;
	 *     uStack_f0 = uStack_50;
	 *     uStack_d8 = uStack_38;
	 *     uStack_e0 = uStack_40;
	 *     uStack_128 = uStack_80;
	 *     uStack_130 = uStack_88;
	 *     pvVar2 = (void *)NavMeshBuilder.UpdateNavMeshDataAsync(this.m_NavMesh,&uStack_110,this.m_Sources,&uStack_130);
	 *     this.m_Operation = pvVar2;
	 *     func_0x031fdc38(&this.m_Operation,pvVar2);
	 *   }
	 *   else {
	 *     uStack_168 = uStack_68;
	 *     uStack_170 = uStack_70;
	 *     uStack_158 = uStack_58;
	 *     uStack_160 = uStack_60;
	 *     uStack_180 = uStack_78;
	 *     uStack_148 = uStack_48;
	 *     uStack_150 = uStack_50;
	 *     uStack_138 = uStack_38;
	 *     uStack_140 = uStack_40;
	 *     uStack_188 = uStack_80;
	 *     uStack_190 = uStack_88;
	 *     NavMeshBuilder.UpdateNavMeshData(this.m_NavMesh,&uStack_170,this.m_Sources,&uStack_190);
	 *   }
	 *   return;
	 */
	// RVA: 0x323EAB0 VA: 0x7818929AB0
	private static UnityEngine.Vector3 Quantize(UnityEngine.Vector3 v, UnityEngine.Vector3 quant);
	/*
	 *   UnityEngine_Vector3 UVar1;
	 *
	 *   UVar1.x = quant.x * (float)(int)(v.x / quant.x);
	 *   UVar1.y = quant.y * (float)(int)(v.y / quant.y);
	 *   UVar1.z = quant.z * (float)(int)(v.z / quant.z);
	 *   return UVar1;
	 */
	// RVA: 0x323E9AC VA: 0x78189299AC
	private UnityEngine.Bounds QuantizedBounds();
	/*
	 *   undefined *puVar1;
	 *   ulong uVar2;
	 *   void *this;
	 *   undefined8 uVar3;
	 *   float fVar4;
	 *   float fVar5;
	 *   float fVar6;
	 *   float fVar7;
	 *   float fVar8;
	 *   UnityEngine_Vector3 UVar9;
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a9d2 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a9d2 = 1;
	 *   }
	 *   uVar3 = *(undefined8 *)((long)param_2 + 0x20);
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar2 = UnityEngine.Object.op_Implicit(uVar3);
	 *   if ((uVar2 & 1) == 0) {
	 *     this = UnityEngine.Component.get_transform(param_2);
	 *   }
	 *   else {
	 *     this = *(void **)((long)param_2 + 0x20);
	 *   }
	 *   if (this != null) {
	 *     UVar9 = UnityEngine.Transform.get_position(this);
	 *     uVar3 = *(undefined8 *)((long)param_2 + 0x2c);
	 *     param_1[2] = 0.0;
	 *     param_1[3] = 0.0;
	 *     param_1[4] = 0.0;
	 *     param_1[5] = 0.0;
	 *     param_1[0] = 0.0;
	 *     param_1[1] = 0.0;
	 *     fVar6 = (float)uVar3;
	 *     fVar4 = fVar6 * 0.1;
	 *     fVar7 = (float)((ulong)uVar3 >> 0x20);
	 *     fVar5 = fVar7 * 0.1;
	 *     fVar8 = *(float *)((long)param_2 + 0x28) * _UNK_0134eca0;
	 *     *(ulong *)(param_1 + 3) = CONCAT44(fVar6 * 0.5,*(float *)((long)param_2 + 0x28) * 0.5);
	 *     *(ulong *)(param_1 + 1) =
	 *          CONCAT44(fVar5 * (float)(int)(UVar9.z / fVar5),fVar4 * (float)(int)(UVar9.y / fVar4));
	 *     param_1[5] = fVar7 * 0.5;
	 *     *param_1 = fVar8 * (float)(int)(UVar9.x / fVar8);
	 *     return;
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x323EAD8 VA: 0x7818929AD8
	private void OnDrawGizmosSelected();
	/*
	 *   undefined *puVar1;
	 *   long lVar2;
	 *   ulong uVar3;
	 *   void *extraout_x1;
	 *   void *pvVar4;
	 *   float fVar5;
	 *   UnityEngine_Vector3 UVar6;
	 *   UnityEngine_Color value;
	 *   UnityEngine_Color value_00;
	 *   UnityEngine_Color value_01;
	 *   UnityEngine_Vector3 size;
	 *   UnityEngine_Vector3 UStack_58;
	 *   undefined8 uStack_4c;
	 *   float fStack_44;
	 *
	 *   puVar1 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   if ((bRam000000000754a9d3 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     bRam000000000754a9d3 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   lVar2 = *(long *)puVar1;
	 *   pvVar4 = this.m_NavMesh;
	 *   if (*(int *)(lVar2 + 0xe4) == 0) {
	 *     func_0x031fde08(lVar2,methodInfo);
	 *   }
	 *   uVar3 = UnityEngine.Object.op_Implicit(pvVar4);
	 *   if ((uVar3 & 1) != 0) {
	 *     value.b = 0.0;
	 *     value.a = 1.0;
	 *     value.r = 0.0;
	 *     value.g = 1.0;
	 *     UnityEngine.Gizmos.set_color(value);
	 *     if (this.m_NavMesh == null) goto LAB_0333ec80;
	 *     UnityEngine.AI.NavMeshData.get_sourceBounds(&UStack_58,this.m_NavMesh,0);
	 *     UVar6 = UStack_58;
	 *     if (this.m_NavMesh == null) goto LAB_0333ec80;
	 *     UnityEngine.AI.NavMeshData.get_sourceBounds(&UStack_58,this.m_NavMesh,0);
	 *     size.x = (float)uStack_4c + (float)uStack_4c;
	 *     fVar5 = (float)((ulong)uStack_4c >> 0x20);
	 *     size.z = fStack_44 + fStack_44;
	 *     size.y = fVar5 + fVar5;
	 *     UnityEngine.Gizmos.DrawWireCube(UVar6,size);
	 *   }
	 *   value_00.g = (float)_UNK_0134e944;
	 *   value_00.r = 1.0;
	 *   value_00.a = 1.0;
	 *   value_00.b = (float)_UNK_0134ed8c;
	 *   UnityEngine.Gizmos.set_color(value_00);
	 *   LocalNavMeshBuilder.QuantizedBounds(&UStack_58);
	 *   UVar6.x = (float)uStack_4c + (float)uStack_4c;
	 *   fVar5 = (float)((ulong)uStack_4c >> 0x20);
	 *   UVar6.z = fStack_44 + fStack_44;
	 *   UVar6.y = fVar5 + fVar5;
	 *   UnityEngine.Gizmos.DrawWireCube(UStack_58,UVar6);
	 *   value_01.b = 0.0;
	 *   value_01.a = 1.0;
	 *   value_01.r = 0.0;
	 *   value_01.g = 1.0;
	 *   UnityEngine.Gizmos.set_color(value_01);
	 *   pvVar4 = this.m_Tracked;
	 *   if (*(int *)(*(long *)puVar1 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   uVar3 = UnityEngine.Object.op_Implicit(pvVar4);
	 *   if ((uVar3 & 1) == 0) {
	 *     pvVar4 = UnityEngine.Component.get_transform(this);
	 *   }
	 *   else {
	 *     pvVar4 = this.m_Tracked;
	 *   }
	 *   if (pvVar4 != null) {
	 *     UVar6 = UnityEngine.Transform.get_position(pvVar4);
	 *     UnityEngine.Gizmos.DrawWireCube(UVar6,this.m_Size);
	 *     return;
	 *   }
	 * LAB_0333ec80:
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x323EC84 VA: 0x7818929C84
	public void .ctor();
	/*
	 *   undefined8 uVar1;
	 *   undefined4 uVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   undefined8 uVar5;
	 *   undefined8 uVar6;
	 *   void *pvVar7;
	 *   void *extraout_x1;
	 *
	 *   puVar4 = PTR_DAT_070c3688;
	 *   puVar3 = PTR_DAT_070c3680;
	 *   if ((bRam000000000754a9d4 & 1) == 0) {
	 *     func_0x031fdc8c(PTR_DAT_070c3688);
	 *     func_0x031fdc8c(PTR_DAT_070c3680);
	 *     bRam000000000754a9d4 = 1;
	 *     methodInfo = extraout_x1;
	 *   }
	 *   uVar1 = _UNK_0134d178;
	 *   uVar6 = *(undefined8 *)puVar3;
	 *   (this.m_Size).z = 80.0;
	 *   uVar5 = _UNK_0134d178;
	 *   _UNK_0134d178 = (undefined4)uVar1;
	 *   _UNK_0134d17c = SUB84(uVar1,4);
	 *   uVar2 = _UNK_0134d17c;
	 *   (this.m_Size).x = (float)_UNK_0134d178;
	 *   _UNK_0134d178 = uVar5;
	 *   (this.m_Size).y = (float)uVar2;
	 *   pvVar7 = (void *)func_0x031fdf24(uVar6,methodInfo);
	 *   func_0x03f223b4(pvVar7,*(undefined8 *)puVar4);
	 *   this.m_Sources = pvVar7;
	 *   func_0x031fdc38(&this.m_Sources,pvVar7);
	 *   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;
	 */
}
