text: #region Local Var
  	var uLocal_0 = 0;
  	var uLocal_1 = 0;
  	int iLocal_2 = 0;
  	int iLocal_3 = 0;
  	int iLocal_4 = 0;
  	int iLocal_5 = 0;
  	int iLocal_6 = 0;
  	int iLocal_7 = 0;
  	int iLocal_8 = 0;
  	int iLocal_9 = 0;
  	int iLocal_10 = 0;
  	int iLocal_11 = 0;
  	var uLocal_12 = 0;
  	var uLocal_13 = 0;
  	float fLocal_14 = 0f;
  	var uLocal_15 = 0;
  	var uLocal_16 = 0;
  	int iLocal_17 = 0;
  	char* sLocal_18 = NULL;
  	var uLocal_19 = 0;
  	var uLocal_20 = 0;
  	float fLocal_21 = 0f;
  	var uLocal_22 = 0;
  	var uLocal_23 = 0;
  	var uLocal_24 = 0;
  	float fLocal_25 = 0f;
  	float fLocal_26 = 0f;
  	var uLocal_27 = 0;
  	int iLocal_28 = 0;
  	var uLocal_29 = 0;
  	var uLocal_30 = 0;
  	float fLocal_31 = 0f;
  	float fLocal_32 = 0f;
  	float fLocal_33 = 0f;
  	var uLocal_34 = 0;
  	var uLocal_35 = 0;
  	var uLocal_36 = 0;
  	var uLocal_37 = 0;
  	var uLocal_38 = 0;
  	int iLocal_39 = 0;
  	int iLocal_40 = 0;
  	int iLocal_41 = 0;
  	int iLocal_42 = 0;
  	var uLocal_43 = 0;
  	var uLocal_44 = 0;
  	var uLocal_45 = 0;
  	var uLocal_46 = 0;
  	var uLocal_47 = 0;
  	var uLocal_48 = 0;
  	var uLocal_49 = 0;
  	var uLocal_50 = 0;
  	var uLocal_51 = 0;
  	var uLocal_52 = 0;
  	var uLocal_53 = 0;
  	var uLocal_54 = 0;
  	var uLocal_55 = 0;
  	var uLocal_56 = 0;
  	var uLocal_57 = 0;
  	var uLocal_58 = 0;
  	var uLocal_59 = 0;
  	var uLocal_60 = 0;
  	var uLocal_61 = 0;
  	float fLocal_62 = 0f;
  	var uLocal_63 = 0;
  	var uLocal_64 = 0;
  	var uLocal_65 = 0;
  	var uLocal_66 = 0;
  	var uLocal_67 = 0;
  	var uLocal_68 = 0;
  	var uLocal_69 = 0;
  	var uLocal_70 = 0;
  	var uLocal_71 = 0;
  	var uLocal_72 = 0;
  	var uLocal_73 = 0;
  	var uLocal_74 = 0;
  	var uLocal_75 = 0;
  	var uLocal_76 = 0;
  	var uLocal_77 = -1;
  	var uLocal_78 = 0;
  	var uLocal_79 = 0;
  	var uLocal_80 = 0;
  	var uLocal_81 = 0;
  	var uLocal_82 = 0;
  	var uLocal_83 = 0;
  	var uLocal_84 = 0;
  	var uLocal_85 = 2;
  	var uLocal_86 = 0;
  	var uLocal_87 = 0;
  	var uLocal_88 = 0;
  	var uLocal_89 = 0;
  	var uLocal_90 = 0;
  	var uLocal_91 = 0;
  	var uLocal_92 = 0;
  	var uLocal_93 = 1061158912;
  	var uLocal_94 = 0;
  	var uLocal_95 = 0;
  	var uLocal_96 = 0;
  	var uLocal_97 = 0;
  	var uLocal_98 = 0;
  	var uLocal_99 = 0;
  	var uLocal_100 = 0;
  	var uLocal_101 = 0;
  	var uLocal_102 = 0;
  	var uLocal_103 = 0;
  	var uLocal_104 = 0;
  	var uLocal_105 = 0;
  	var uLocal_106 = 0;
  	var uLocal_107 = 1061158912;
  	var uLocal_108 = 0;
  	var uLocal_109 = 0;
  	var uLocal_110 = 0;
  	var uLocal_111 = 0;
  	var uLocal_112 = 0;
  	var uLocal_113 = 0;
  	var uLocal_114 = 0;
  	var uLocal_115 = -1;
  	var uLocal_116 = 0;
  	var uLocal_117 = 0;
  	var uLocal_118 = 0;
  	var uLocal_119 = -1;
  	var uLocal_120 = -1;
  	var uLocal_121 = -1;
  	var uLocal_122 = 0;
  	var uLocal_123 = 0;
  	var uLocal_124 = 0;
  	var uLocal_125 = 0;
  	var uLocal_126 = 0;
  	var uLocal_127 = 0;
  	var uLocal_128 = 0;
  	var uLocal_129 = 0;
  #endregion
  
  void __EntryFunction__()
  {
  	iLocal_2 = 1;
  	iLocal_3 = 134;
  	iLocal_4 = 134;
  	iLocal_5 = 1;
  	iLocal_6 = 1;
  	iLocal_7 = 1;
  	iLocal_8 = 134;
  	iLocal_9 = 1;
  	iLocal_10 = 12;
  	iLocal_11 = 12;
  	fLocal_14 = 0.001f;
  	iLocal_17 = -1;
  	sLocal_18 = "NULL";
  	fLocal_21 = 0f;
  	fLocal_25 = -0.0375f;
  	fLocal_26 = 0.17f;
  	iLocal_28 = 3;
  	fLocal_31 = 80f;
  	fLocal_32 = 140f;
  	fLocal_33 = 180f;
  	iLocal_39 = 1;
  	iLocal_40 = 65;
  	iLocal_41 = 49;
  	iLocal_42 = 64;
  	fLocal_62 = ((0.05f + 0.275f) - 0.01f);
  	if (func_73())
  	{
  		while (!func_59())
  		{
  			func_11(&uLocal_85);
  			SYSTEM::WAIT(0);
  		}
  	}
  	func_1();
  }
  
  void func_1()
  {
  	func_3(&uLocal_85);
  	func_2();
  }
  
  void func_2()
  {
  	unk_0xD39E529EBE5DB04F();
  }
  
  void func_3(var uParam0)
  {
  	func_9(&(uParam0->f_29.f_5));
  	func_4(uParam0, 1);
  }
  
  void func_4(var uParam0, bool bParam1)
  {
  	if (func_5(uParam0))
  	{
  		unk_0xD289B55B6AADBA10(1);
  	}
  	if (bParam1)
  	{
  		func_9(&(uParam0->f_29.f_5));
  	}
  }
  
  bool func_5(var uParam0)
  {
  	char* sVar0;
  	char* sVar1;
  	
  	func_7(uParam0, uParam0->f_29.f_2, &sVar0);
  	func_7(uParam0, uParam0->f_29.f_2, &sVar1);
  	return (func_6(&sVar0) || func_6(&sVar1));
  }
  
  var func_6(char* sParam0)
  {
  	unk_0x69476B1CA6A9FF80(sParam0);
  	return unk_0x1A3A9FFE5CA6F64B(0);
  }
  
  void func_7(var uParam0, int iParam1, char* sParam2)
  {
  	if (func_8(&(uParam0->f_29), 7))
  	{
  		Stack.Push(uParam0[iParam1 /*14*/]);
  		Stack.Push(iParam1);
  		Stack.Push(sParam2);
  		Call_Loc(uParam0->f_29.f_14);
  	}
  	else
  	{
  		StringCopy(sParam2, "MPJAC_EXIT", 16);
  	}
  }
  
  bool func_8(var uParam0, int iParam1)
  {
  	return unk_0xCE990E643CD9D0E5(*uParam0, iParam1);
  }
  
  void func_9(var uParam0)
  {
  	int iVar0;
  	
  	if (*uParam0 == -1)
  	{
  		return;
  	}
  	iVar0 = func_10(*uParam0);
  	if (iVar0 == -1)
  	{
  		*uParam0 = -1;
  		return;
  	}
  	if (iVar0 > -1 && iVar0 < 6)
  	{
  		if (Global_42356[iVar0 /*32*/])
  		{
  			Global_42356[iVar0 /*32*/].f_7 = 1;
  			*uParam0 = -1;
  			return;
  		}
  	}
  	*uParam0 = -1;
  }
  
  int func_10(int iParam0)
  {
  	int iVar0;
  	
  	if (iParam0 < 0)
  	{
  		return -1;
  	}
  	iVar0 = 0;
  	iVar0 = 0;
  	while (iVar0 < 6)
  	{
  		if (Global_42356[iVar0 /*32*/].f_1 == iParam0)
  		{
  			return iVar0;
  		}
  		iVar0++;
  	}
  	return -1;
  }
  
  void func_11(var uParam0)
  {
  	char* sVar0;
  	char* sVar1;
  	struct<14> Var2;
  	struct<3> Var3;
  	struct<3> Var4;
  	var uVar5;
  	int iVar6;
  	var uVar7;
  	var uVar8;
  	
  	func_56(uParam0);
  	func_54(uParam0);
  	Var2.f_1.f_6 = 1061158912;
  	Var2 = { *(uParam0[uParam0->f_29.f_2 /*14*/]) };
  	switch (uParam0->f_29.f_4)
  	{
  		case 0:
  			func_53(&(uParam0->f_29), 11);
  			func_52(uParam0, 1);
  			break;
  		
  		case 1:
  			if (func_51(uParam0))
  			{
  				uParam0->f_29.f_6 = unk_0x578C4EF320340AF7();
  				func_52(uParam0, 2);
  			}
  			break;
  		
  		case 2:
  			if (func_50(unk_0x9B0761B4C3EB8BC7(), uParam0[uParam0->f_29.f_2 /*14*/]))
  			{
  				if ((func_49(uParam0) || func_47(uParam0)) || !func_46(uParam0))
  				{
  					func_4(uParam0, 1);
  					func_52(uParam0, 1);
  				}
  				else if (uParam0->f_29.f_5 == -1)
  				{
  					if ((unk_0x578C4EF320340AF7() - uParam0->f_29.f_6) > 150)
  					{
  						func_45(&(uParam0->f_29.f_5), 4, "MPJAC_SIT", 0, 0, 0, 0);
  					}
  				}
  				else if (unk_0x1BD7199394D7F19A(0, 51))
  				{
  					func_9(&(uParam0->f_29.f_5));
  					func_42(uParam0);
  					func_52(uParam0, 3);
  				}
  			}
  			else
  			{
  				func_4(uParam0, 1);
  				func_52(uParam0, 1);
  			}
  			break;
  		
  		case 3:
  			func_41(uParam0, &sVar0);
  			unk_0x131ED02492676000(&sVar0);
  			if (unk_0xC614DDE265D18415(&sVar0))
  			{
  				func_52(uParam0, 4);
  			}
  			break;
  		
  		case 4:
  			func_41(uParam0, &sVar0);
  			func_40(uParam0, &sVar1);
  			if (Var2 != 3)
  			{
  				Var3 = { unk_0xD7D25254A712E758(&sVar0, &sVar1, func_39(uParam0), func_38(uParam0), 0, 2) };
  				Var4 = { unk_0xD78F5800B90C4843(&sVar0, &sVar1, func_39(uParam0), func_38(uParam0), 0, 2) };
  				uVar5 = Var4.f_2;
  				unk_0x83CAF206A9B8748C(unk_0x9B0761B4C3EB8BC7(), Var3, 1f, 500, uVar5, 0.15f);
  			}
  			func_52(uParam0, 5);
  			break;
  		
  		case 5:
  			func_26(uParam0);
  			func_41(uParam0, &sVar0);
  			func_40(uParam0, &sVar1);
  			if (Var2 == 3)
  			{
  				iVar6 = unk_0x16BC17A8EDC701A2(unk_0x9B0761B4C3EB8BC7(), 1920390111);
  			}
  			else
  			{
  				iVar6 = unk_0x16BC17A8EDC701A2(unk_0x9B0761B4C3EB8BC7(), 2106541073);
  			}
  			if (iVar6 != 1 && iVar6 != 0)
  			{
  				uParam0->f_29.f_1 = unk_0xAA579EC5104BFDA9(func_39(uParam0), func_38(uParam0), 2, 1, 0, 1065353216, 0, 1065353216);
  				unk_0x54D6514F20DE2E13(unk_0x9B0761B4C3EB8BC7(), uParam0->f_29.f_1, &sVar0, &sVar1, 2f, -1000f, 13, 16, 1.5f, 0);
  				unk_0xB88AF19828BF16ED(uParam0->f_29.f_1);
  				uParam0->f_29.f_8.f_4 = unk_0x578C4EF320340AF7();
  				func_25(&(uParam0->f_29), 8);
  				func_52(uParam0, 6);
  			}
  			break;
  		
  		case 6:
  			if (func_8(&(uParam0->f_29), 10))
  			{
  				func_53(&(uParam0->f_29), 10);
  				func_24(uParam0);
  			}
  			func_26(uParam0);
  			func_18(uParam0);
  			uVar7 = unk_0xAB6BAF5BFCAFB141(uParam0->f_29.f_1);
  			if (unk_0xFC5D6FB6EECB392F(uVar7))
  			{
  				if (unk_0x369E69441C066912(uVar7) >= 1f)
  				{
  					func_12(uParam0, 0);
  					func_41(uParam0, &sVar0);
  					func_40(uParam0, &sVar1);
  					uParam0->f_29.f_1 = unk_0xAA579EC5104BFDA9(func_39(uParam0), func_38(uParam0), 2, 1, 0, 1065353216, 0, 1065353216);
  					unk_0x54D6514F20DE2E13(unk_0x9B0761B4C3EB8BC7(), uParam0->f_29.f_1, &sVar0, &sVar1, 4f, -1.5f, 13, 16, 1000f, 0);
  					unk_0xB88AF19828BF16ED(uParam0->f_29.f_1);
  					func_25(&(uParam0->f_29), 8);
  					func_25(&(uParam0->f_29), 11);
  				}
  				else
  				{
  					func_53(&(uParam0->f_29), 8);
  				}
  			}
  			else if (!func_8(&(uParam0->f_29), 8))
  			{
  				func_52(uParam0, 8);
  			}
  			break;
  		
  		case 7:
  			unk_0x71B9CAADD460F7CC(uParam0->f_29.f_1);
  			func_52(uParam0, 8);
  			break;
  		
  		case 8:
  			uVar8 = unk_0xAB6BAF5BFCAFB141(uParam0->f_29.f_1);
  			if (unk_0xFC5D6FB6EECB392F(uVar8))
  			{
  				if ((unk_0x369E69441C066912(uVar8) >= 1f || unk_0x39CABCD7925B9200(unk_0x9B0761B4C3EB8BC7(), 364629851)) || unk_0x39CABCD7925B9200(unk_0x9B0761B4C3EB8BC7(), 2116425869))
  				{
  					unk_0x71B9CAADD460F7CC(uParam0->f_29.f_1);
  					func_4(uParam0, 1);
  					func_52(uParam0, 0);
  				}
  			}
  			else
  			{
  				func_4(uParam0, 1);
  				func_52(uParam0, 0);
  			}
  			break;
  	}
  }
  
  void func_12(var uParam0, bool bParam1)
  {
  	int iVar0;
  	int iVar1;
  	int iVar2;
  	
  	if (bParam1)
  	{
  		iVar1 = func_13(uParam0);
  		if (iVar1 != uParam0->f_29.f_8.f_1)
  		{
  			if (iVar1 == 0)
  			{
  				iVar0 = (11 + uParam0->f_29.f_8.f_1);
  			}
  			else
  			{
  				iVar0 = (6 + iVar1);
  			}
  		}
  		else
  		{
  			iVar0 = uParam0->f_29.f_8.f_2;
  		}
  		iVar1 = uParam0->f_29.f_8.f_1;
  	}
  	else if (uParam0->f_29.f_8.f_2 == 5)
  	{
  		iVar1 = uParam0->f_29.f_8.f_1;
  		iVar2 = 3;
  		iVar0 = unk_0x344C570D6F8700DF(0, iVar2);
  		if (iVar0 == uParam0->f_29.f_8.f_3)
  		{
  			iVar0 = (iVar0 + 1 % iVar2);
  		}
  	}
  	else
  	{
  		if (uParam0->f_29.f_8.f_2 > 6)
  		{
  			iVar1 = func_13(uParam0);
  			uParam0->f_29.f_8.f_4 = unk_0x578C4EF320340AF7();
  		}
  		else
  		{
  			iVar1 = uParam0->f_29.f_8.f_1;
  		}
  		if ((unk_0x578C4EF320340AF7() - uParam0->f_29.f_8.f_4) >= 90000)
  		{
  			iVar1 = func_13(uParam0);
  			if (iVar1 != uParam0->f_29.f_8.f_1)
  			{
  				if (iVar1 == 0)
  				{
  					iVar0 = (11 + uParam0->f_29.f_8.f_1);
  				}
  				else
  				{
  					iVar0 = (6 + iVar1);
  				}
  			}
  			iVar1 = uParam0->f_29.f_8.f_1;
  		}
  		else
  		{
  			iVar0 = 5;
  		}
  	}
  	uParam0->f_29.f_8.f_3 = uParam0->f_29.f_8.f_2;
  	uParam0->f_29.f_8.f_2 = iVar0;
  	uParam0->f_29.f_8.f_1 = iVar1;
  }
  
  int func_13(var uParam0)
  {
  	if (uParam0->f_29.f_8 == 2)
  	{
  		return uParam0->f_29.f_8.f_1;
  	}
  	return (uParam0->f_29.f_8.f_1 + 1 % func_14(uParam0->f_29.f_8));
  }
  
  int func_14(int iParam0)
  {
  	switch (iParam0)
  	{
  		case 0:
  			return 3;
  		
  		case 1:
  			return func_15(func_16(), 4, 5);
  		
  		case 2:
  			return 5;
  		
  		default:
  	}
  	return 0;
  }
  
  int func_15(bool bParam0, int iParam1, int iParam2)
  {
  	if (bParam0)
  	{
  		return iParam1;
  	}
  	return iParam2;
  }
  
  bool func_16()
  {
  	return func_17(unk_0x460153A63B9477BC());
  }
  
  int func_17(int iParam0)
  {
  	if (unk_0x36FE6D3220816ADA(unk_0x1FA7B77001D60F9D(iParam0)) == joaat("mp_f_freemode_01"))
  	{
  		return 1;
  	}
  	return 0;
  }
  
  void func_18(var uParam0)
  {
  	struct<3> Var0;
  	float fVar1;
  	
  	if (uParam0->f_29.f_4 == 6)
  	{
  		Var0 = { unk_0xAAC78749C4BB5219(0, 218), unk_0xAAC78749C4BB5219(0, 219), 0f };
  		fVar1 = SYSTEM::VMAG(Var0);
  		if ((uParam0->f_29.f_4 == 6 && !unk_0x39CABCD7925B9200(unk_0x9B0761B4C3EB8BC7(), -1322051853)) && !func_8(&(uParam0->f_29), 12))
  		{
  			if (fVar1 >= 0.35f)
  			{
  				func_23(uParam0);
  			}
  		}
  		if (unk_0x39CABCD7925B9200(unk_0x9B0761B4C3EB8BC7(), -1322051853))
  		{
  			func_4(uParam0, 1);
  		}
  		else if (func_22(uParam0))
  		{
  			func_4(uParam0, 1);
  		}
  		else
  		{
  			unk_0x2B6C81DF4CD1093C(2);
  			unk_0x779660A9E5364C4D(0, 24, 1);
  			unk_0x779660A9E5364C4D(0, 257, 1);
  			unk_0x779660A9E5364C4D(0, 142, 1);
  			unk_0x779660A9E5364C4D(0, 141, 1);
  			unk_0x779660A9E5364C4D(0, 140, 1);
  			unk_0x779660A9E5364C4D(0, 263, 1);
  			unk_0x779660A9E5364C4D(0, 264, 1);
  			unk_0x779660A9E5364C4D(0, 143, 1);
  			unk_0x779660A9E5364C4D(2, 200, 1);
  			if (((((!unk_0xF0C12886E5C1B20E() && !func_8(&(uParam0->f_29), 0)) && !func_8(&(uParam0->f_29), 4)) && !func_21()) && !func_19(1)) && uParam0->f_29.f_8.f_2 != 3)
  			{
  				if (uParam0->f_29.f_5 == -1)
  				{
  					func_45(&(uParam0->f_29.f_5), 4, "MPJAC_EXIT", 0, 0, 0, 0);
  				}
  				if (uParam0->f_29.f_4 == 6)
  				{
  					if (unk_0x1BD7199394D7F19A(0, 51))
  					{
  						func_24(uParam0);
  					}
  				}
  			}
  		}
  	}
  	func_53(&(uParam0->f_29), 9);
  }
  
  int func_19(bool bParam0)
  {
  	if (unk_0xDE4629DF35A51BEF())
  	{
  		if (!unk_0x5AEB5DDFFAD43CA5(unk_0x9B0761B4C3EB8BC7()))
  		{
  			if (func_20(unk_0x9B0761B4C3EB8BC7()))
  			{
  				if (unk_0x22D6FB6153F774D3(0, 25) || unk_0x22D6FB6153F774D3(0, 68))
  				{
  					return 0;
  				}
  			}
  		}
  	}
  	if (Global_22411.f_130)
  	{
  		return 0;
  	}
  	if (unk_0x22D6FB6153F774D3(0, 19) || (!bParam0 && unk_0xB9C0D9B37277621D(0, 19)))
  	{
  		return 1;
  	}
  	if (unk_0xF8EDFF98A9C94C74())
  	{
  		if (((unk_0x22D6FB6153F774D3(0, 166) || unk_0x22D6FB6153F774D3(0, 167)) || unk_0x22D6FB6153F774D3(0, 168)) || unk_0x22D6FB6153F774D3(0, 169))
  		{
  			return 1;
  		}
  		if (!bParam0)
  		{
  			if (((unk_0xB9C0D9B37277621D(0, 166) || unk_0xB9C0D9B37277621D(0, 167)) || unk_0xB9C0D9B37277621D(0, 168)) || unk_0xB9C0D9B37277621D(0, 169))
  			{
  				return 1;
  			}
  		}
  	}
  	return 0;
  }
  
  int func_20(var uParam0)
  {
  	int iVar0;
  	
  	if (unk_0xE8CD061CB2B99F32())
  	{
  		if (!unk_0x5AEB5DDFFAD43CA5(uParam0))
  		{
  			unk_0x1386E5E658CE3032(uParam0, &iVar0, 1);
  			if (((iVar0 == joaat("weapon_sniperrifle") || iVar0 == joaat("weapon_heavysniper")) || iVar0 == joaat("weapon_marksmanrifle")) || iVar0 == joaat("WEAPON_HEAVYSNIPER_MK2"))
  			{
  				return 1;
  			}
  		}
  	}
  	return 0;
  }
  
  int func_21()
  {
  	if (Global_2440049.f_1267.f_5 == -1)
  	{
  		return 0;
  	}
  	return 1;
  }
  
  bool func_22(var uParam0)
  {
  	return func_8(&(uParam0->f_29), 9);
  }
  
  void func_23(var uParam0)
  {
  	char* sVar0;
  	char* sVar1;
  	
  	if (((func_13(uParam0) != uParam0->f_29.f_8.f_1 && uParam0->f_29.f_8.f_2 < 6) && uParam0->f_29.f_8.f_2 != 3) && uParam0->f_29.f_8.f_2 != 4)
  	{
  		func_12(uParam0, 1);
  		func_41(uParam0, &sVar0);
  		func_40(uParam0, &sVar1);
  		uParam0->f_29.f_1 = unk_0xAA579EC5104BFDA9(func_39(uParam0), func_38(uParam0), 2, 1, 0, 1065353216, 0, 1065353216);
  		unk_0x54D6514F20DE2E13(unk_0x9B0761B4C3EB8BC7(), uParam0->f_29.f_1, &sVar0, &sVar1, 4f, -1.5f, 13, 16, 1000f, 0);
  		unk_0xB88AF19828BF16ED(uParam0->f_29.f_1);
  		func_25(&(uParam0->f_29), 8);
  		unk_0x1322CA891C5DF18A(unk_0x9B0761B4C3EB8BC7(), 0, 0);
  	}
  }
  
  void func_24(var uParam0)
  {
  	char* sVar0;
  	
  	uParam0->f_29.f_1 = unk_0xAA579EC5104BFDA9(func_39(uParam0), func_38(uParam0), 2, 1, 0, 1065353216, 0, 1065353216);
  	func_41(uParam0, &sVar0);
  	unk_0x54D6514F20DE2E13(unk_0x9B0761B4C3EB8BC7(), uParam0->f_29.f_1, &sVar0, "exit", 4f, -4f, 13, 16, 1000f, 0);
  	unk_0xB88AF19828BF16ED(uParam0->f_29.f_1);
  	func_9(&(uParam0->f_29.f_5));
  	func_52(uParam0, 8);
  }
  
  void func_25(var uParam0, int iParam1)
  {
  	unk_0xBE20AB8238688965(uParam0, iParam1);
  }
  
  void func_26(var uParam0)
  {
  	int iVar0;
  	
  	switch (uParam0->f_29.f_4)
  	{
  		case 4:
  		case 8:
  			func_31(1);
  		
  		case 6:
  			unk_0xE94F4428D732FD15();
  			unk_0xF6717CA8C3685C53(0);
  			unk_0x821795879234A25C(0);
  			unk_0x4CB4237D8858ADA6(19);
  			unk_0x4CB4237D8858ADA6(2);
  			unk_0x1091ECFFF4AE6744();
  			func_30();
  			if (unk_0x1386E5E658CE3032(unk_0x9B0761B4C3EB8BC7(), &iVar0, 1) && iVar0 != joaat("weapon_unarmed"))
  			{
  				unk_0x69C71C91F56D82B9(unk_0x9B0761B4C3EB8BC7(), joaat("weapon_unarmed"), 1);
  			}
  			unk_0x779660A9E5364C4D(0, 37, 1);
  			func_28(1);
  			func_27();
  			break;
  	}
  }
  
  void func_27()
  {
  	Global_22411.f_6 = 1;
  }
  
  void func_28(bool bParam0)
  {
  	if (bParam0)
  	{
  		if (func_29())
  		{
  			Global_2451787.f_40 = 1;
  		}
  	}
  	else
  	{
  		Global_2451787.f_40 = 0;
  	}
  }
  
  bool func_29()
  {
  	return unk_0xCE990E643CD9D0E5(Global_2451787.f_2, 11);
  }
  
  void func_30()
  {
  	unk_0xBE20AB8238688965(&Global_7552, 4);
  }
  
  void func_31(int iParam0)
  {
  	if (func_37())
  	{
  		return;
  	}
  	if (!Global_19681.f_1 == 1)
  	{
  		if (func_36(0))
  		{
  			func_32(iParam0);
  		}
  		unk_0xBE20AB8238688965(&Global_7552, 2);
  	}
  }
  
  void func_32(int iParam0)
  {
  	if (func_37())
  	{
  		return;
  	}
  	if (Global_19864)
  	{
  		if (func_35())
  		{
  			func_34(1, 1);
  		}
  		else
  		{
  			func_34(0, 0);
  		}
  	}
  	if (Global_19681.f_1 == 10 || Global_19681.f_1 == 9)
  	{
  		unk_0xBE20AB8238688965(&Global_7552, 16);
  	}
  	if (unk_0x6B12213471F330A3())
  	{
  		unk_0xBE4122AC23440E7D(0);
  	}
  	Global_21005 = 5;
  	if (iParam0 == 1)
  	{
  		unk_0xBE20AB8238688965(&Global_7551, 30);
  	}
  	else
  	{
  		unk_0xD2459066EA58CE43(&Global_7551, 30);
  	}
  	if (!func_33())
  	{
  		Global_19681.f_1 = 3;
  	}
  }
  
  int func_33()
  {
  	if (Global_19681.f_1 == 1 || Global_19681.f_1 == 0)
  	{
  		return 1;
  	}
  	return 0;
  }
  
  void func_34(bool bParam0, bool bParam1)
  {
  	if (bParam0)
  	{
  		if (func_36(0))
  		{
  			Global_19864 = 1;
  			if (bParam1)
  			{
  				unk_0x1F1B1269BB6217F7(&Global_19618);
  			}
  			Global_19609 = { Global_19627[Global_19626 /*3*/] };
  			unk_0x241AFEE3D5B4FF70(Global_19609);
  		}
  	}
  	else if (Global_19864 == 1)
  	{
  		Global_19864 = 0;
  		Global_19609 = { Global_19634[Global_19626 /*3*/] };
  		if (bParam1)
  		{
  			unk_0x241AFEE3D5B4FF70(Global_19618);
  		}
  		else
  		{
  			unk_0x241AFEE3D5B4FF70(Global_19609);
  		}
  	}
  }
  
  bool func_35()
  {
  	return unk_0xCE990E643CD9D0E5(Global_1689730, 5);
  }
  
  int func_36(int iParam0)
  {
  	if (iParam0 == 1)
  	{
  		if (Global_19681.f_1 > 3)
  		{
  			if (unk_0xCE990E643CD9D0E5(Global_7551, 14))
  			{
  				return 1;
  			}
  			else
  			{
  				return 0;
  			}
  		}
  		else
  		{
  			return 0;
  		}
  	}
  	if (unk_0x7B70881748D166CD(joaat("cellphone_flashhand")) > 0)
  	{
  		return 1;
  	}
  	if (Global_19681.f_1 > 3)
  	{
  		return 1;
  	}
  	return 0;
  }
  
  bool func_37()
  {
  	return unk_0xCE990E643CD9D0E5(Global_1689730, 19);
  }
  
  Vector3 func_38(var uParam0)
  {
  	struct<3> Var0;
  	
  	Var0 = { (uParam0[uParam0->f_29.f_2 /*14*/])->f_8.f_3 };
  	if (func_16() && uParam0->f_29.f_8 == 0)
  	{
  		Var0.f_2 = (Var0.f_2 - 4f);
  	}
  	return Var0;
  }
  
  Vector3 func_39(var uParam0)
  {
  	return (uParam0[uParam0->f_29.f_2 /*14*/])->f_8;
  }
  
  void func_40(var uParam0, char* sParam1)
  {
  	switch (uParam0->f_29.f_8.f_2)
  	{
  		case 0:
  			StringCopy(sParam1, "IDLE_A", 16);
  			break;
  		
  		case 1:
  			StringCopy(sParam1, "IDLE_B", 16);
  			break;
  		
  		case 2:
  			StringCopy(sParam1, "IDLE_C", 16);
  			break;
  		
  		case 3:
  			StringCopy(sParam1, "ENTER", 16);
  			break;
  		
  		case 5:
  			StringCopy(sParam1, "BASE", 16);
  			break;
  		
  		case 4:
  			StringCopy(sParam1, "EXIT", 16);
  			break;
  		
  		case 7:
  			StringCopy(sParam1, "A_TO_B", 16);
  			break;
  		
  		case 8:
  			StringCopy(sParam1, "B_TO_C", 16);
  			break;
  		
  		case 9:
  			StringCopy(sParam1, "C_TO_D", 16);
  			break;
  		
  		case 10:
  			StringCopy(sParam1, "D_TO_E", 16);
  			break;
  		
  		case 12:
  			StringCopy(sParam1, "B_TO_E", 16);
  			break;
  		
  		case 13:
  			StringCopy(sParam1, "C_TO_A", 16);
  			break;
  		
  		case 14:
  			StringCopy(sParam1, "D_TO_A", 16);
  			break;
  		
  		case 15:
  			StringCopy(sParam1, "E_TO_A", 16);
  			break;
  		
  		default:
  			StringCopy(sParam1, "invalid_clip", 16);
  	}
  }
  
  void func_41(var uParam0, char* sParam1)
  {
  	switch (uParam0->f_29.f_8)
  	{
  		case 0:
  			StringCopy(sParam1, "ANIM@AMB@CLUBHOUSE@SEATING", 64);
  			break;
  		
  		case 1:
  			StringCopy(sParam1, "ANIM@AMB@OFFICE@SEATING", 64);
  			break;
  		
  		case 2:
  			StringCopy(sParam1, "ANIM@AMB@FACILITY@BRIEFING_ROOM@SEATING", 64);
  			break;
  	}
  	if (func_16())
  	{
  		StringConCat(sParam1, "@FEMALE", 64);
  	}
  	else
  	{
  		StringConCat(sParam1, "@MALE", 64);
  	}
  	switch (uParam0->f_29.f_8)
  	{
  		case 1:
  		case 0:
  			switch (uParam0->f_29.f_8.f_1)
  			{
  				case 0:
  					StringConCat(sParam1, "@VAR_A@BASE@", 64);
  					break;
  				
  				case 1:
  					StringConCat(sParam1, "@VAR_B@BASE@", 64);
  					break;
  				
  				case 2:
  					StringConCat(sParam1, "@VAR_C@BASE@", 64);
  					break;
  				
  				case 3:
  					StringConCat(sParam1, "@VAR_D@BASE@", 64);
  					break;
  				
  				case 4:
  					StringConCat(sParam1, "@VAR_E@BASE@", 64);
  					break;
  			}
  			break;
  		
  		case 2:
  			switch (uParam0->f_29.f_8.f_1)
  			{
  				case 0:
  					StringConCat(sParam1, "@VAR_A@", 64);
  					break;
  				
  				case 1:
  					StringConCat(sParam1, "@VAR_B@", 64);
  					break;
  				
  				case 2:
  					StringConCat(sParam1, "@VAR_C@", 64);
  					break;
  				
  				case 3:
  					StringConCat(sParam1, "@VAR_D@", 64);
  					break;
  				
  				case 4:
  					StringConCat(sParam1, "@VAR_E@", 64);
  					break;
  			}
  			break;
  	}
  }
  
  void func_42(var uParam0)
  {
  	uParam0->f_29.f_8 = func_44((*uParam0)[uParam0->f_29.f_2 /*14*/]);
  	uParam0->f_29.f_8.f_1 = func_43(uParam0);
  	uParam0->f_29.f_8.f_2 = 3;
  	uParam0->f_29.f_8.f_3 = 3;
  }
  
  int func_43(var uParam0)
  {
  	int iVar0;
  	
  	switch (uParam0->f_29.f_8)
  	{
  		case 2:
  			iVar0 = unk_0x344C570D6F8700DF(0, 4);
  			if (iVar0 >= 1)
  			{
  				iVar0++;
  			}
  			break;
  		
  		default:
  			iVar0 = unk_0x344C570D6F8700DF(0, func_14(uParam0->f_29.f_8));
  	}
  	return iVar0;
  }
  
  int func_44(int iParam0)
  {
  	if (iParam0 >= 11)
  	{
  		return 0;
  	}
  	else if (iParam0 >= 9)
  	{
  		return 0;
  	}
  	else if (iParam0 >= 7)
  	{
  		return 0;
  	}
  	else if (iParam0 >= 4)
  	{
  		return 0;
  	}
  	else if (iParam0 > 1)
  	{
  		return 2;
  	}
  	return 0;
  }
  
  void func_45(var uParam0, int iParam1, char* sParam2, int iParam3, char* sParam4, int iParam5, int iParam6)
  {
  	int iVar0;
  	
  	if (unk_0x7B70881748D166CD(joaat("context_controller")) < 1)
  	{
  	}
  	if (unk_0x9CC4D06F5338CA6B())
  	{
  		if (!*uParam0 == -1)
  		{
  			func_9(uParam0);
  		}
  		return;
  	}
  	if (!*uParam0 == -1)
  	{
  		return;
  	}
  	iVar0 = 0;
  	iVar0 = 0;
  	while (iVar0 < 6)
  	{
  		if (!Global_42356[iVar0 /*32*/])
  		{
  			Global_42356[iVar0 /*32*/] = 1;
  			Global_42356[iVar0 /*32*/].f_1 = Global_42557;
  			Global_42557++;
  			Global_42356[iVar0 /*32*/].f_4 = 0;
  			Global_42356[iVar0 /*32*/].f_29 = 0;
  			Global_42356[iVar0 /*32*/].f_5 = 0;
  			Global_42356[iVar0 /*32*/].f_2 = iParam1;
  			StringCopy(&(Global_42356[iVar0 /*32*/].f_8), sParam2, 16);
  			Global_42356[iVar0 /*32*/].f_6 = iParam3;
  			Global_42356[iVar0 /*32*/].f_31 = unk_0x354AD085195C5FA6();
  			Global_42356[iVar0 /*32*/].f_7 = 0;
  			Global_42356[iVar0 /*32*/].f_3 = iParam5;
  			if (!unk_0x7BCC91F3C1CF24E8(sParam4))
  			{
  				Global_42356[iVar0 /*32*/].f_12 = 1;
  				StringCopy(&(Global_42356[iVar0 /*32*/].f_13), sParam4, 64);
  				Global_42356[iVar0 /*32*/].f_30 = iParam6;
  			}
  			else
  			{
  				Global_42356[iVar0 /*32*/].f_12 = 0;
  				Global_42356[iVar0 /*32*/].f_30 = 0;
  			}
  			*uParam0 = Global_42356[iVar0 /*32*/].f_1;
  			return;
  		}
  		iVar0++;
  	}
  }
  
  bool func_46(var uParam0)
  {
  	Stack.Push(!func_8(&(uParam0->f_29), 5));
  	Stack.Push(uParam0[uParam0->f_29.f_2 /*14*/]);
  	Stack.Push(uParam0->f_29.f_2);
  	Call_Loc(uParam0->f_29.f_13);
  	return (StackVal || StackVal);
  }
  
  int func_47(var uParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	iVar0 = 0;
  	while (iVar0 < unk_0xEFA28384DDD283E1())
  	{
  		if (unk_0xBD09DF93F957A0CF(unk_0x628A51AC66E80772(iVar0)))
  		{
  			iVar1 = unk_0x9019589211A13B02(unk_0x628A51AC66E80772(iVar0));
  			if ((iVar1 != unk_0x460153A63B9477BC() && func_48(iVar1, 1, 1)) && func_50(unk_0x1FA7B77001D60F9D(iVar1), uParam0[uParam0->f_29.f_2 /*14*/]))
  			{
  				return 1;
  			}
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  int func_48(int iParam0, bool bParam1, bool bParam2)
  {
  	int iVar0;
  	
  	iVar0 = iParam0;
  	if (iVar0 != -1)
  	{
  		if (unk_0x166E920FB00B2DBB(iParam0))
  		{
  			if (bParam1)
  			{
  				if (!unk_0x5A228A6A51E757C8(iParam0))
  				{
  					return 0;
  				}
  			}
  			if (bParam2)
  			{
  				if (!Global_2440049.f_3[iVar0])
  				{
  					return 0;
  				}
  			}
  			return 1;
  		}
  	}
  	return 0;
  }
  
  bool func_49(var uParam0)
  {
  	return uParam0->f_29 & 31 > 0;
  }
  
  bool func_50(var uParam0, var uParam1)
  {
  	return unk_0x1037B9D45CE6B788(uParam0, uParam1->f_1, uParam1->f_1.f_3, uParam1->f_1.f_6, 0, 1, 0);
  }
  
  int func_51(var uParam0)
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 < 1)
  	{
  		if (func_50(unk_0x9B0761B4C3EB8BC7(), uParam0[uParam0->f_29.f_2 /*14*/]))
  		{
  			return 1;
  		}
  		else
  		{
  			uParam0->f_29.f_2 = (uParam0->f_29.f_2 + 1 % 2);
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  void func_52(var uParam0, int iParam1)
  {
  	uParam0->f_29.f_4 = iParam1;
  }
  
  void func_53(var uParam0, int iParam1)
  {
  	unk_0xD2459066EA58CE43(uParam0, iParam1);
  }
  
  void func_54(var uParam0)
  {
  	if (uParam0->f_29.f_4 == 6)
  	{
  	}
  	else if (uParam0->f_29.f_4 > 4)
  	{
  		unk_0x04931F8228E28F2D(unk_0x9B0761B4C3EB8BC7());
  		unk_0xE1A91D6D0E2CF9AE(unk_0x9B0761B4C3EB8BC7(), func_55(uParam0));
  		uParam0->f_29.f_7 = unk_0xD3137A576BE9EC5C();
  	}
  	else if (uParam0->f_29.f_4 > 1)
  	{
  		unk_0xE1A91D6D0E2CF9AE(unk_0x9B0761B4C3EB8BC7(), func_55(uParam0));
  		uParam0->f_29.f_7 = unk_0xD3137A576BE9EC5C();
  	}
  	else if ((unk_0xD3137A576BE9EC5C() - uParam0->f_29.f_7) < 5)
  	{
  		unk_0xE1A91D6D0E2CF9AE(unk_0x9B0761B4C3EB8BC7(), func_55(uParam0));
  	}
  }
  
  float func_55(var uParam0)
  {
  	switch ((*uParam0)[uParam0->f_29.f_2 /*14*/])
  	{
  		case 12:
  		case 10:
  		case 6:
  			return 0.24f;
  		
  		case 2:
  			return 0.16f;
  		
  		case 3:
  			return 0.18f;
  		
  		default:
  	}
  	return 0.13f;
  }
  
  void func_56(var uParam0)
  {
  	func_57(&(uParam0->f_29), 4, func_58());
  	func_57(&(uParam0->f_29), 1, unk_0xA59F96B50B97E63C(unk_0x9B0761B4C3EB8BC7(), 0));
  	func_57(&(uParam0->f_29), 3, unk_0x47DBF174A0CB9D55(unk_0x9B0761B4C3EB8BC7(), 1));
  	func_57(&(uParam0->f_29), 0, func_36(0));
  	func_57(&(uParam0->f_29), 2, unk_0x4D71E6F618DC5C0E(unk_0x9B0761B4C3EB8BC7()));
  }
  
  void func_57(var uParam0, int iParam1, bool bParam2)
  {
  	var uVar0;
  	
  	uVar0 = iParam1;
  	if (bParam2)
  	{
  		unk_0xBE20AB8238688965(uParam0, uVar0);
  	}
  	else
  	{
  		unk_0xD2459066EA58CE43(uParam0, iVar0);
  	}
  }
  
  bool func_58()
  {
  	return Global_74030;
  }
  
  int func_59()
  {
  	if (!func_72(unk_0x9B0761B4C3EB8BC7()))
  	{
  		return 1;
  	}
  	if (func_61())
  	{
  		return 1;
  	}
  	if (Global_1590525 == func_60())
  	{
  		return 1;
  	}
  	return 0;
  }
  
  int func_60()
  {
  	return -1;
  }
  
  int func_61()
  {
  	var uVar0;
  	
  	func_69(&uVar0);
  	if (Global_1312872 == 0)
  	{
  		if (!unk_0x25DDB354A40FFCDB())
  		{
  			return 1;
  		}
  	}
  	if (func_68())
  	{
  		return 1;
  	}
  	if (Global_2464493)
  	{
  		return 1;
  	}
  	if (func_67())
  	{
  		return 1;
  	}
  	if (func_66(159))
  	{
  		if (!func_65())
  		{
  			return 1;
  		}
  	}
  	if (func_66(157))
  	{
  		return 1;
  	}
  	if (!unk_0x0EB6C63A09FD9DF1())
  	{
  		return 1;
  	}
  	if (func_62() != 0)
  	{
  		if (unk_0x7B70881748D166CD(func_62()) == 0)
  		{
  			return 1;
  		}
  	}
  	return 0;
  }
  
  int func_62()
  {
  	switch (func_64())
  	{
  		case 0:
  			return func_63();
  			break;
  		
  		case 2:
  			return joaat("creator");
  			break;
  	}
  	return 0;
  }
  
  int func_63()
  {
  	switch (Global_2464595)
  	{
  		case 0:
  			return joaat("freemode");
  		
  		default:
  	}
  	return joaat("freemode");
  }
  
  int func_64()
  {
  	return Global_30968;
  }
  
  bool func_65()
  {
  	return Global_2451787.f_696;
  }
  
  int func_66(int iParam0)
  {
  	if (unk_0x16F1FCCC54559709(1, iParam0))
  	{
  		return 1;
  	}
  	return 0;
  }
  
  bool func_67()
  {
  	return Global_2462250;
  }
  
  bool func_68()
  {
  	return Global_2451787.f_691;
  }
  
  void func_69(var uParam0)
  {
  	int iVar0;
  	int iVar1;
  	int iVar2;
  	struct<3> Var3;
  	
  	iVar0 = 0;
  	while (iVar0 < unk_0x2AC1C68C7CCA90E5(1))
  	{
  		iVar1 = unk_0x39BE1B4CEB4DAEC8(1, iVar0);
  		if (iVar1 == 174)
  		{
  			unk_0x477FAFFE21935947(1, iVar0, &iVar2, 2);
  			switch (iVar2)
  			{
  				case 1035596089:
  					func_70(iVar0);
  					break;
  				
  				case 1120313136:
  					unk_0x477FAFFE21935947(1, iVar0, &Var3, 4);
  					if (Var3.f_2 == 397890833)
  					{
  						*uParam0 = 1;
  					}
  					break;
  				}
  		}
  		iVar0++;
  	}
  }
  
  void func_70(int iParam0)
  {
  	struct<3> Var0;
  	var uVar1;
  	var uVar2;
  	bool bVar3;
  	
  	if (unk_0x477FAFFE21935947(1, iParam0, &Var0, 3))
  	{
  		if (func_48(Var0.f_1, 1, 1))
  		{
  			uVar1 = unk_0x1FA7B77001D60F9D(Var0.f_1);
  			if (unk_0xAE06B9E39EBDE049(uVar1))
  			{
  				if (unk_0x47DBF174A0CB9D55(uVar1, 0))
  				{
  					uVar2 = unk_0xA5D5B1042E8F47BD(uVar1, 0);
  					if (unk_0x292280AF1BBBD6AC(uVar2, Var0.f_2) && unk_0x82CC259B7B4F4AD9())
  					{
  						if (func_71(uVar2, &bVar3))
  						{
  							unk_0xADCDA8AF77C0D19D(uVar2, Var0.f_2);
  						}
  						if (bVar3)
  						{
  							unk_0xE730EAF558C97567(&uVar2);
  						}
  					}
  				}
  			}
  		}
  	}
  }
  
  int func_71(var uParam0, var uParam1)
  {
  	if (unk_0xAE06B9E39EBDE049(uParam0))
  	{
  		if (!unk_0x1758275D343D5BA3(uParam0))
  		{
  			if (unk_0x38CC98C4A0688263(uParam0))
  			{
  				if (!unk_0xCA6AF782C906AC86(unk_0x36FE6D3220816ADA(uParam0)))
  				{
  					unk_0x4F3C4F457D44BB0F(uParam0, 0, 1);
  					*uParam1 = 1;
  				}
  			}
  		}
  		if (unk_0x1D2A3118784C0272(uParam0, 0))
  		{
  			if (unk_0xAA5B806352173DEA(uParam0))
  			{
  				return 1;
  			}
  		}
  	}
  	return 0;
  }
  
  bool func_72(var uParam0)
  {
  	return unk_0x1037B9D45CE6B788(uParam0, 362.0188f, 4823.182f, -59.98693f, 374.756f, 4823.096f, -56.23059f, 9f, 0, 1, 0);
  }
  
  int func_73()
  {
  	if (Global_1590525 != func_60())
  	{
  		if (unk_0x1B2EFC1EEC84CBE3("base_quaters_seats", Global_1590525, 1, 0))
  		{
  			return 0;
  		}
  		unk_0xA88557896B79E30D(32, 0, Global_1590525);
  		func_93(0, -1, 0);
  		unk_0x3A396632EB359434(0);
  		func_92();
  		if (func_91(Global_1590525))
  		{
  			func_84();
  		}
  		else
  		{
  			func_74();
  		}
  		return 1;
  	}
  	return 0;
  }
  
  void func_74()
  {
  	func_77(2, &uLocal_85, 0);
  	func_77(3, &uLocal_85, 1);
  	func_75(&uLocal_85, 6632);
  }
  
  void func_75(var uParam0, int iParam1)
  {
  	uParam0->f_29.f_13 = iParam1;
  	func_25(&(uParam0->f_29), 5);
  }
  
  bool func_76(var uParam0, var uParam1)
  {
  	return !Global_31237;
  }
  
  void func_77(int iParam0, var uParam1, int iParam2)
  {
  	struct<3> Var0;
  	float fVar1;
  	
  	func_83(iParam0, &Var0, &fVar1);
  	(*uParam1)[iParam2 /*14*/] = 8;
  	(uParam1[iParam2 /*14*/])->f_8 = { func_80(func_81(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_8.f_3 = { 0f, 0f, (fVar1 + 0f) };
  	(uParam1[iParam2 /*14*/])->f_1 = { func_80(func_79(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_1.f_3 = { func_80(func_78(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_1.f_6 = 0.73f;
  }
  
  Vector3 func_78()
  {
  	return -0.67f, -1.66f, 0.7f;
  }
  
  Vector3 func_79()
  {
  	return -0.67f, 0f, -1.3f;
  }
  
  Vector3 func_80(struct<3> Param0, float fParam1)
  {
  	struct<3> Var0;
  	float fVar1;
  	float fVar2;
  	
  	fVar1 = SYSTEM::SIN(fParam1);
  	fVar2 = SYSTEM::COS(fParam1);
  	Var0.x = ((Param0.x * fVar2) - (Param0.f_1 * fVar1));
  	Var0.f_1 = ((Param0.x * fVar1) + (Param0.f_1 * fVar2));
  	Var0.f_2 = Param0.f_2;
  	return Var0;
  }
  
  Vector3 func_81()
  {
  	return func_80(Vector(-60f, 4841.945f, 362.58f) - func_82(), (180f - -66.83f));
  }
  
  Vector3 func_82()
  {
  	return 361.89f, 4842.36f, -59.25f;
  }
  
  void func_83(int iParam0, var uParam1, var uParam2)
  {
  	switch (iParam0)
  	{
  		case 0:
  			*uParam1 = { 361.89f, 4842.36f, -59.25f };
  			*uParam2 = (180f + -66.83f);
  			break;
  		
  		case 1:
  			*uParam1 = { 366.28f, 4839.91f, -59.25f };
  			*uParam2 = (180f + 28.31f);
  			break;
  		
  		case 2:
  			*uParam1 = { 367.33f, 4827.37f, -59.25f };
  			*uParam2 = (180f - 163.69f);
  			break;
  		
  		case 3:
  			*uParam1 = { 370.58f, 4827.01f, -59.25f };
  			*uParam2 = (180f + 163.74f);
  			break;
  	}
  }
  
  void func_84()
  {
  	func_85(2, &uLocal_85, 0);
  	func_85(3, &uLocal_85, 1);
  }
  
  void func_85(int iParam0, var uParam1, int iParam2)
  {
  	struct<3> Var0;
  	float fVar1;
  	
  	func_90(iParam0, &Var0, &fVar1);
  	(*uParam1)[iParam2 /*14*/] = 5;
  	(uParam1[iParam2 /*14*/])->f_8 = { func_80(func_88(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_8.f_3 = { 0f, 0f, (fVar1 + 3f) };
  	(uParam1[iParam2 /*14*/])->f_1 = { func_80(func_87(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_1.f_3 = { func_80(func_86(), fVar1) + Var0 };
  	(uParam1[iParam2 /*14*/])->f_1.f_6 = 0.73f;
  }
  
  Vector3 func_86()
  {
  	return 0f, -1.74f, 2f;
  }
  
  Vector3 func_87()
  {
  	return 0f, 0f, 0f;
  }
  
  Vector3 func_88()
  {
  	return func_80(Vector(-60f, 4845.8f, 364.74f) - func_89(), -4f);
  }
  
  Vector3 func_89()
  {
  	return 364.74f, 4846.2f, -60f;
  }
  
  void func_90(int iParam0, var uParam1, var uParam2)
  {
  	switch (iParam0)
  	{
  		case 0:
  			*uParam1 = { 364.74f, 4846.2f, -60f };
  			*uParam2 = 4f;
  			break;
  		
  		case 1:
  			*uParam1 = { 367.39f, 4845.325f, -60f };
  			*uParam2 = -46f;
  			break;
  		
  		case 2:
  			*uParam1 = { 369.965f, 4827.239f, -60f };
  			*uParam2 = -16f;
  			break;
  		
  		case 3:
  			*uParam1 = { 366.7f, 4827.23f, -60f };
  			*uParam2 = 15f;
  			break;
  	}
  }
  
  bool func_91(int iParam0)
  {
  	return unk_0xCE990E643CD9D0E5(Global_1590682[iParam0 /*883*/].f_274.f_271.f_1, 0);
  }
  
  void func_92()
  {
  }
  
  int func_93(int iParam0, int iParam1, bool bParam2)
  {
  	int iVar0;
  	
  	iVar0 = unk_0x361B374A50D875B4();
  	while (iVar0 != 2)
  	{
  		if (((iVar0 == 3 || iVar0 == 4) || iVar0 == 5) || iVar0 == 6)
  		{
  			if (!bParam2)
  			{
  				func_2();
  			}
  			else
  			{
  				return 0;
  			}
  		}
  		if (!func_94())
  		{
  			if (iParam0 == 0)
  			{
  				if (!unk_0x25DDB354A40FFCDB())
  				{
  					if (!bParam2)
  					{
  						func_2();
  					}
  					else
  					{
  						return 0;
  					}
  				}
  				if (func_68())
  				{
  					if (!bParam2)
  					{
  						func_2();
  					}
  					else
  					{
  						return 0;
  					}
  				}
  				if (func_66(157))
  				{
  					if (!bParam2)
  					{
  						func_2();
  					}
  					else
  					{
  						return 0;
  					}
  				}
  			}
  			else if (!unk_0x3BF0BB5923982C0D())
  			{
  				if (!bParam2)
  				{
  					func_2();
  				}
  				else
  				{
  					return 0;
  				}
  			}
  		}
  		SYSTEM::WAIT(0);
  		iVar0 = unk_0x361B374A50D875B4();
  	}
  	if (iParam1 > -1)
  	{
  		Global_1312519 = iVar0;
  	}
  	if (iParam0 == 0)
  	{
  		if (!unk_0x25DDB354A40FFCDB())
  		{
  			if (!bParam2)
  			{
  				func_2();
  			}
  			else
  			{
  				return 0;
  			}
  		}
  	}
  	else if (!unk_0x3BF0BB5923982C0D())
  	{
  		if (!bParam2)
  		{
  			func_2();
  		}
  		else
  		{
  			return 0;
  		}
  	}
  	return 1;
  }
  
  bool func_94()
  {
  	return Global_1312872;
  }
  
  