// [TypeInfo RVA: 0x0]
public class BlackHole : MonoBehaviour
{
	public float pullRadius; // 0x20
	public float minPullStrength; // 0x24
	public float maxPullStrength; // 0x28
	public float orbitStartDistance; // 0x2C
	public float maxOrbitStrength; // 0x30
	public float maxVelocity; // 0x34
	public UnityEngine.LayerMask pullLayers; // 0x38

	// RVA: 0x3249D14 VA: 0x7818934D14
	private void FixedUpdate();
	/*
	 *   uint uVar1;
	 *   undefined *puVar2;
	 *   undefined *puVar3;
	 *   undefined *puVar4;
	 *   int layerMask;
	 *   void *pvVar5;
	 *   void *pvVar6;
	 *   ulong uVar7;
	 *   void *pvVar8;
	 *   void *pvVar9;
	 *   long lVar10;
	 *   float *pfVar11;
	 *   uint uVar12;
	 *   float fVar13;
	 *   float fVar14;
	 *   float fVar15;
	 *   float fVar16;
	 *   float fVar17;
	 *   float fVar18;
	 *   float fVar19;
	 *   float fVar20;
	 *   float fVar21;
	 *   float fVar22;
	 *   float fVar23;
	 *   UnityEngine_Vector3 UVar24;
	 *   UnityEngine_Vector3 UVar25;
	 *   UnityEngine_Vector3 value;
	 *
	 *   if ((bRam000000000754aa33 & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8);
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8);
	 *     bRam000000000754aa33 = 1;
	 *   }
	 *   pvVar5 = UnityEngine.Component.get_transform(this);
	 *   puVar2 = typeinfo_ptr_UnityEngine_PhysicsModule_Physics_6FC09E8;
	 *   if (pvVar5 != null) {
	 *     UVar24 = UnityEngine.Transform.get_position(pvVar5);
	 *     fVar20 = this.pullRadius;
	 *     layerMask = UnityEngine.LayerMask.op_Implicit(this.pullLayers)
	 *     ;
	 *     if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *       func_0x031fde08(*(long *)puVar2);
	 *     }
	 *     pvVar5 = Physics.OverlapSphere(UVar24,fVar20,layerMask);
	 *     puVar4 = typeinfo_ptr_UnityEngine_CoreModule_Vector3_6FC0A08;
	 *     puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *     puVar2 = typeinfo_ptr_mscorlib_Math_6FC0738;
	 *     fVar20 = _UNK_0134eeec;
	 *     if (pvVar5 != null) {
	 *       uVar1 = *(uint *)((long)pvVar5 + 0x18);
	 *       if (0 < (int)uVar1) {
	 *         uVar12 = 0;
	 *         do {
	 *           if (uVar1 <= uVar12) {
	 *             IL2CPP.ThrowIndexOutOfRangeException();
	 *           }
	 *           pvVar6 = *(void **)((long)pvVar5 + (long)(int)uVar12 * 8 + 0x20);
	 *           if (pvVar6 == null) goto LAB_0334a2e4;
	 *           pvVar6 = UnityEngine.Collider.get_attachedRigidbody(pvVar6);
	 *           lVar10 = *(long *)puVar3;
	 *           if (*(int *)(lVar10 + 0xe4) == 0) {
	 *             func_0x031fde08(lVar10);
	 *           }
	 *           uVar7 = UnityEngine.Object.op_Equality(pvVar6,null);
	 *           if ((uVar7 & 1) == 0) {
	 *             if (pvVar6 == null) goto LAB_0334a2e4;
	 *             pvVar8 = UnityEngine.Component.get_gameObject(pvVar6);
	 *             pvVar9 = UnityEngine.Component.get_gameObject(this);
	 *             lVar10 = *(long *)puVar3;
	 *             if (*(int *)(lVar10 + 0xe4) == 0) {
	 *               func_0x031fde08(lVar10);
	 *             }
	 *             uVar7 = UnityEngine.Object.op_Equality(pvVar8,pvVar9);
	 *             if ((uVar7 & 1) == 0) {
	 *               pvVar8 = UnityEngine.Component.get_transform(this);
	 *               if (pvVar8 == null) goto LAB_0334a2e4;
	 *               UVar24 = UnityEngine.Transform.get_position(pvVar8);
	 *               UVar25 = UnityEngine.Rigidbody.get_position(pvVar6);
	 *               if (cRam000000000754a7c9 == '\0') {
	 *                 func_0x031fdc8c(puVar2);
	 *                 cRam000000000754a7c9 = '\x01';
	 *               }
	 *               if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               fVar13 = UVar24.y - UVar25.y;
	 *               fVar15 = UVar24.x - UVar25.x;
	 *               fVar19 = this.maxPullStrength;
	 *               fVar16 = UVar24.z - UVar25.z;
	 *               fVar16 = SQRT(fVar16 * fVar16 + fVar15 * fVar15 + fVar13 * fVar13);
	 *               fVar22 = this.minPullStrength;
	 *               fVar15 = 1.0 - fVar16 / this.pullRadius;
	 *               fVar13 = 1.0;
	 *               if (fVar15 <= 1.0) {
	 *                 fVar13 = fVar15;
	 *               }
	 *               fVar21 = 0.0;
	 *               if (0.0 <= fVar15) {
	 *                 fVar21 = fVar13;
	 *               }
	 *               pvVar8 = UnityEngine.Component.get_transform(this);
	 *               if (pvVar8 == null) goto LAB_0334a2e4;
	 *               UVar24 = UnityEngine.Transform.get_position(pvVar8);
	 *               UVar25 = UnityEngine.Rigidbody.get_position(pvVar6);
	 *               if (cRam000000000754a7cc == '\0') {
	 *                 func_0x031fdc8c(puVar2);
	 *                 cRam000000000754a7cc = '\x01';
	 *               }
	 *               if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               fVar15 = UVar24.y - UVar25.y;
	 *               fVar17 = UVar24.z - UVar25.z;
	 *               fVar13 = UVar24.x - UVar25.x;
	 *               fVar18 = SQRT(fVar17 * fVar17 + fVar13 * fVar13 + fVar15 * fVar15);
	 *               if (fVar18 <= fVar20) {
	 *                 if (cRam000000000754a7ce == '\0') {
	 *                   func_0x031fdc8c(puVar4);
	 *                   cRam000000000754a7ce = '\x01';
	 *                 }
	 *                 pfVar11 = *(float **)(*(long *)puVar4 + 0xb8);
	 *                 fVar13 = *pfVar11;
	 *                 fVar15 = pfVar11[1];
	 *                 fVar17 = pfVar11[2];
	 *               }
	 *               else {
	 *                 fVar13 = fVar13 / fVar18;
	 *                 fVar15 = fVar15 / fVar18;
	 *                 fVar17 = fVar17 / fVar18;
	 *               }
	 *               fVar22 = fVar22 + (fVar19 - fVar22) * fVar21;
	 *               UVar24.x = fVar22 * fVar13;
	 *               UVar24.y = fVar22 * fVar15;
	 *               UVar24.z = fVar22 * fVar17;
	 *               UnityEngine.Rigidbody.AddForce(pvVar6,UVar24,5);
	 *               fVar22 = this.orbitStartDistance;
	 *               if (fVar16 <= fVar22) {
	 *                 fVar19 = this.maxOrbitStrength;
	 *                 if (cRam000000000754a7cb == '\0') {
	 *                   func_0x031fdc8c(puVar4);
	 *                   cRam000000000754a7cb = '\x01';
	 *                 }
	 *                 lVar10 = *(long *)(*(long *)puVar4 + 0xb8);
	 *                 fVar21 = *(float *)(lVar10 + 0x18);
	 *                 fVar18 = *(float *)(lVar10 + 0x1c);
	 *                 fVar23 = *(float *)(lVar10 + 0x20);
	 *                 if (cRam000000000754a7cc == '\0') {
	 *                   func_0x031fdc8c(puVar2);
	 *                   cRam000000000754a7cc = '\x01';
	 *                 }
	 *                 if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *                   func_0x031fde08();
	 *                 }
	 *                 fVar14 = fVar15 * fVar23 - fVar17 * fVar18;
	 *                 fVar17 = fVar17 * fVar21 - fVar13 * fVar23;
	 *                 fVar13 = fVar13 * fVar18 - fVar15 * fVar21;
	 *                 fVar15 = SQRT(fVar13 * fVar13 + fVar14 * fVar14 + fVar17 * fVar17);
	 *                 if (fVar15 <= fVar20) {
	 *                   if (cRam000000000754a7ce == '\0') {
	 *                     func_0x031fdc8c(puVar4);
	 *                     cRam000000000754a7ce = '\x01';
	 *                   }
	 *                   pfVar11 = *(float **)(*(long *)puVar4 + 0xb8);
	 *                   fVar14 = *pfVar11;
	 *                   fVar17 = pfVar11[1];
	 *                   fVar13 = pfVar11[2];
	 *                 }
	 *                 else {
	 *                   fVar14 = fVar14 / fVar15;
	 *                   fVar17 = fVar17 / fVar15;
	 *                   fVar13 = fVar13 / fVar15;
	 *                 }
	 *                 fVar15 = 1.0 - fVar16 / fVar22;
	 *                 fVar15 = fVar15 * fVar15 * fVar19;
	 *                 UVar25.x = fVar15 * fVar14;
	 *                 UVar25.y = fVar15 * fVar17;
	 *                 UVar25.z = fVar15 * fVar13;
	 *                 UnityEngine.Rigidbody.AddForce(pvVar6,UVar25,5);
	 *               }
	 *               UVar24 = UnityEngine.Rigidbody.get_linearVelocity(pvVar6);
	 *               if (cRam000000000754a89e == '\0') {
	 *                 func_0x031fdc8c(puVar2);
	 *                 cRam000000000754a89e = '\x01';
	 *               }
	 *               if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *                 func_0x031fde08();
	 *               }
	 *               if (this.maxVelocity <
	 *                   SQRT(UVar24.z * UVar24.z + UVar24.x * UVar24.x + UVar24.y * UVar24.y)) {
	 *                 UVar24 = UnityEngine.Rigidbody.get_linearVelocity(pvVar6);
	 *                 fVar16 = UVar24.z;
	 *                 fVar15 = UVar24.y;
	 *                 fVar13 = UVar24.x;
	 *                 if (cRam000000000754a7cc == '\0') {
	 *                   func_0x031fdc8c(puVar2);
	 *                   cRam000000000754a7cc = '\x01';
	 *                 }
	 *                 if (*(int *)(*(long *)puVar2 + 0xe4) == 0) {
	 *                   func_0x031fde08();
	 *                 }
	 *                 fVar22 = SQRT(fVar16 * fVar16 + fVar13 * fVar13 + fVar15 * fVar15);
	 *                 if (fVar22 <= fVar20) {
	 *                   if (cRam000000000754a7ce == '\0') {
	 *                     func_0x031fdc8c(puVar4);
	 *                     cRam000000000754a7ce = '\x01';
	 *                   }
	 *                   pfVar11 = *(float **)(*(long *)puVar4 + 0xb8);
	 *                   fVar13 = *pfVar11;
	 *                   fVar15 = pfVar11[1];
	 *                   fVar16 = pfVar11[2];
	 *                 }
	 *                 else {
	 *                   fVar13 = fVar13 / fVar22;
	 *                   fVar15 = fVar15 / fVar22;
	 *                   fVar16 = fVar16 / fVar22;
	 *                 }
	 *                 fVar22 = this.maxVelocity;
	 *                 value.x = fVar13 * fVar22;
	 *                 value.y = fVar15 * fVar22;
	 *                 value.z = fVar16 * fVar22;
	 *                 UnityEngine.Rigidbody.set_linearVelocity(pvVar6,value);
	 *               }
	 *             }
	 *           }
	 *           uVar1 = *(uint *)((long)pvVar5 + 0x18);
	 *           uVar12 = uVar12 + 1;
	 *         } while ((int)uVar12 < (int)uVar1);
	 *       }
	 *       return;
	 *     }
	 *   }
	 * LAB_0334a2e4:
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x324A2EC VA: 0x78189352EC
	private void OnDrawGizmosSelected();
	/*
	 *   void *pvVar1;
	 *   float fVar2;
	 *   UnityEngine_Vector3 UVar3;
	 *   UnityEngine_Color value;
	 *   UnityEngine_Color value_00;
	 *   float fStack_2c;
	 *   float fStack_28;
	 *   float fStack_24;
	 *
	 *   value.b = 1.0;
	 *   value.a = 1.0;
	 *   value.r = 1.0;
	 *   value.g = 0.0;
	 *   UnityEngine.Gizmos.set_color(value);
	 *   pvVar1 = UnityEngine.Component.get_transform(this);
	 *   if (pvVar1 != null) {
	 *     UVar3 = UnityEngine.Transform.get_position(pvVar1);
	 *     UnityEngine.Gizmos.DrawWireSphere(UVar3,this.pullRadius);
	 *     value_00.b = 1.0;
	 *     value_00.a = 1.0;
	 *     value_00.r = 0.0;
	 *     value_00.g = 1.0;
	 *     UnityEngine.Gizmos.set_color(value_00);
	 *     pvVar1 = UnityEngine.Component.get_transform(this);
	 *     if (pvVar1 != null) {
	 *       UVar3 = UnityEngine.Transform.get_position(pvVar1);
	 *       fStack_24 = UVar3.z;
	 *       fStack_28 = UVar3.y;
	 *       fStack_2c = UVar3.x;
	 *       fVar2 = this.orbitStartDistance;
	 *       if (pcRam000000000755e198 == null) {
	 *         pcRam000000000755e198 = (code *)func_0x031fdc50(&UNK_01388e54);
	 *       }
	 *       (*pcRam000000000755e198)(fVar2,&fStack_2c);
	 *       return;
	 *     }
	 *   }
	 *   IL2CPP.ThrowNullReferenceException();
	 */
	// RVA: 0x324A374 VA: 0x7818935374
	public void .ctor();
	/*
	 *   undefined4 uVar1;
	 *   undefined8 uVar2;
	 *   undefined *puVar3;
	 *   undefined8 uVar4;
	 *   undefined8 uVar5;
	 *
	 *   uVar2 = _UNK_0134da50;
	 *   uVar5 = _UNK_0134c310;
	 *   uVar1 = _UNK_0134c31c;
	 *   this.maxPullStrength = (float)_UNK_0134c318;
	 *   uVar4 = _UNK_0134c310;
	 *   this.orbitStartDistance = (float)uVar1;
	 *   _UNK_0134c310 = (undefined4)uVar5;
	 *   _UNK_0134c314 = SUB84(uVar5,4);
	 *   uVar1 = _UNK_0134c314;
	 *   this.pullRadius = (float)_UNK_0134c310;
	 *   _UNK_0134c310 = uVar4;
	 *   uVar5 = _UNK_0134da50;
	 *   this.minPullStrength = (float)uVar1;
	 *   _UNK_0134da50 = (undefined4)uVar2;
	 *   _UNK_0134da54 = SUB84(uVar2,4);
	 *   uVar1 = _UNK_0134da54;
	 *   this.maxOrbitStrength = (float)_UNK_0134da50;
	 *   _UNK_0134da50 = uVar5;
	 *   puVar3 = typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8;
	 *   this.maxVelocity = (float)uVar1;
	 *   if ((bRam000000000755f76f & 1) == 0) {
	 *     func_0x031fdc8c(typeinfo_ptr_UnityEngine_CoreModule_Object_6FC07E8,0);
	 *     bRam000000000755f76f = 1;
	 *   }
	 *   if (*(int *)(*(long *)puVar3 + 0xe4) == 0) {
	 *     func_0x031fde08();
	 *   }
	 *   return;
	 */
}
