private int SortCachedPoints(ref TSVector realRelPos1, FP pen) { int num = -1; FP y = pen; for (int i = 0; i < 4; i++) { bool flag = this.contactList[i].penetration > y; if (flag) { num = i; y = this.contactList[i].penetration; } } FP x = 0; FP y2 = 0; FP z = 0; FP w = 0; bool flag2 = num != 0; if (flag2) { TSVector tSVector; TSVector.Subtract(ref realRelPos1, ref this.contactList[1].relativePos1, out tSVector); TSVector tSVector2; TSVector.Subtract(ref this.contactList[3].relativePos1, ref this.contactList[2].relativePos1, out tSVector2); TSVector tSVector3; TSVector.Cross(ref tSVector, ref tSVector2, out tSVector3); x = tSVector3.sqrMagnitude; } bool flag3 = num != 1; if (flag3) { TSVector tSVector4; TSVector.Subtract(ref realRelPos1, ref this.contactList[0].relativePos1, out tSVector4); TSVector tSVector5; TSVector.Subtract(ref this.contactList[3].relativePos1, ref this.contactList[2].relativePos1, out tSVector5); TSVector tSVector6; TSVector.Cross(ref tSVector4, ref tSVector5, out tSVector6); y2 = tSVector6.sqrMagnitude; } bool flag4 = num != 2; if (flag4) { TSVector tSVector7; TSVector.Subtract(ref realRelPos1, ref this.contactList[0].relativePos1, out tSVector7); TSVector tSVector8; TSVector.Subtract(ref this.contactList[3].relativePos1, ref this.contactList[1].relativePos1, out tSVector8); TSVector tSVector9; TSVector.Cross(ref tSVector7, ref tSVector8, out tSVector9); z = tSVector9.sqrMagnitude; } bool flag5 = num != 3; if (flag5) { TSVector tSVector10; TSVector.Subtract(ref realRelPos1, ref this.contactList[0].relativePos1, out tSVector10); TSVector tSVector11; TSVector.Subtract(ref this.contactList[2].relativePos1, ref this.contactList[1].relativePos1, out tSVector11); TSVector tSVector12; TSVector.Cross(ref tSVector10, ref tSVector11, out tSVector12); w = tSVector12.sqrMagnitude; } return(Arbiter.MaxAxis(x, y2, z, w)); }