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;
  	var uLocal_18 = 0;
  	var uLocal_19 = 0;
  	char* sLocal_20 = NULL;
  	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;
  	int iLocal_45 = 0;
  	struct<3> Local_46 = { 0, 0, 0 } ;
  	var uLocal_49 = 0;
  	var uLocal_50 = 0;
  	var uLocal_51 = 0;
  	var uLocal_52 = 0;
  	struct<3> Local_53 = { 0, 0, 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;
  	int* iLocal_62 = NULL;
  	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;
  	int* iLocal_71 = NULL;
  	var uLocal_72 = 0;
  	var uLocal_73 = 0;
  	int iLocal_74 = 0;
  	int iLocal_75 = 0;
  	var uLocal_76 = 0;
  	var uLocal_77 = 0;
  	var uLocal_78 = 1097859072;
  	var uLocal_79 = 1500;
  	var uLocal_80 = 45;
  	var uLocal_81 = 1103626240;
  	var uLocal_82 = 5;
  	var uLocal_83 = 0;
  	var uLocal_84 = 16;
  	var uLocal_85 = 0;
  	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 = 0;
  	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 = 0;
  	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 = 0;
  	var uLocal_116 = 0;
  	var uLocal_117 = 0;
  	var uLocal_118 = 0;
  	var uLocal_119 = 0;
  	var uLocal_120 = 0;
  	var uLocal_121 = 0;
  	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;
  	var uLocal_130 = 0;
  	var uLocal_131 = 0;
  	var uLocal_132 = 0;
  	var uLocal_133 = 0;
  	var uLocal_134 = 0;
  	var uLocal_135 = 0;
  	var uLocal_136 = 0;
  	var uLocal_137 = 0;
  	var uLocal_138 = 0;
  	var uLocal_139 = 0;
  	var uLocal_140 = 0;
  	var uLocal_141 = 0;
  	var uLocal_142 = 0;
  	var uLocal_143 = 0;
  	var uLocal_144 = 0;
  	var uLocal_145 = 0;
  	var uLocal_146 = 0;
  	var uLocal_147 = 0;
  	var uLocal_148 = 0;
  	var uLocal_149 = 0;
  	var uLocal_150 = 0;
  	var uLocal_151 = 0;
  	var uLocal_152 = 0;
  	var uLocal_153 = 0;
  	var uLocal_154 = 0;
  	var uLocal_155 = 0;
  	var uLocal_156 = 0;
  	var uLocal_157 = 0;
  	var uLocal_158 = 0;
  	var uLocal_159 = 0;
  	var uLocal_160 = 0;
  	var uLocal_161 = 0;
  	var uLocal_162 = 0;
  	var uLocal_163 = 0;
  	var uLocal_164 = 0;
  	var uLocal_165 = 0;
  	var uLocal_166 = 0;
  	var uLocal_167 = 0;
  	var uLocal_168 = 0;
  	var uLocal_169 = 0;
  	var uLocal_170 = 0;
  	var uLocal_171 = 0;
  	var uLocal_172 = 0;
  	var uLocal_173 = 0;
  	var uLocal_174 = 0;
  	var uLocal_175 = 0;
  	var uLocal_176 = 0;
  	var uLocal_177 = 0;
  	var uLocal_178 = 0;
  	var uLocal_179 = 0;
  	var uLocal_180 = 0;
  	var uLocal_181 = 0;
  	var uLocal_182 = 0;
  	var uLocal_183 = 0;
  	var uLocal_184 = 0;
  	var uLocal_185 = 0;
  	var uLocal_186 = 0;
  	var uLocal_187 = 0;
  	var uLocal_188 = 0;
  	var uLocal_189 = 0;
  	var uLocal_190 = 0;
  	var uLocal_191 = 0;
  	var uLocal_192 = 0;
  	var uLocal_193 = 0;
  	var uLocal_194 = 0;
  	var uLocal_195 = 0;
  	var uLocal_196 = 0;
  	var uLocal_197 = 0;
  	var uLocal_198 = 0;
  	var uLocal_199 = 0;
  	var uLocal_200 = 0;
  	var uLocal_201 = 0;
  	var uLocal_202 = 0;
  	var uLocal_203 = 0;
  	var uLocal_204 = 0;
  	var uLocal_205 = 0;
  	var uLocal_206 = 0;
  	var uLocal_207 = 0;
  	var uLocal_208 = 0;
  	var uLocal_209 = 0;
  	var uLocal_210 = 0;
  	var uLocal_211 = 0;
  	var uLocal_212 = 0;
  	var uLocal_213 = 0;
  	var uLocal_214 = 0;
  	var uLocal_215 = 0;
  	var uLocal_216 = 0;
  	var uLocal_217 = 0;
  	var uLocal_218 = 0;
  	var uLocal_219 = 0;
  	var uLocal_220 = 0;
  	var uLocal_221 = 0;
  	var uLocal_222 = 0;
  	var uLocal_223 = 0;
  	var uLocal_224 = 0;
  	var uLocal_225 = 0;
  	var uLocal_226 = 0;
  	var uLocal_227 = 0;
  	var uLocal_228 = 0;
  	var uLocal_229 = 0;
  	var uLocal_230 = 0;
  	var uLocal_231 = 0;
  	var uLocal_232 = 0;
  	var uLocal_233 = 0;
  	var uLocal_234 = 0;
  	var uLocal_235 = 0;
  	var uLocal_236 = 0;
  	var uLocal_237 = 0;
  	var uLocal_238 = 0;
  	var uLocal_239 = 0;
  	var uLocal_240 = 0;
  	var uLocal_241 = 0;
  	var uLocal_242 = 0;
  	var uLocal_243 = 0;
  	var uLocal_244 = 0;
  	var uLocal_245 = 0;
  	var uLocal_246 = 0;
  	var uLocal_247 = 0;
  	var uLocal_248 = 0;
  	int iLocal_249 = 0;
  	int iLocal_250 = 0;
  	var uLocal_251 = 0;
  	int iLocal_252 = 0;
  	int iLocal_253 = 0;
  	var uLocal_254 = 0;
  	var uLocal_255 = 0;
  	var uLocal_256 = 0;
  	var uLocal_257 = 0;
  	struct<3> Local_258 = { 0, 0, 0 } ;
  	float fLocal_261 = 0f;
  	int iLocal_262 = 0;
  	var uLocal_263 = 0;
  	var uLocal_264 = 0;
  	var uLocal_265 = 0;
  	var uLocal_266 = 0;
  	var uLocal_267 = 0;
  	bool bLocal_268 = 0;
  	var uLocal_269 = 0;
  	int iLocal_270 = 0;
  	int iLocal_271 = 0;
  	int iLocal_272 = 0;
  	int iLocal_273 = 0;
  	int iLocal_274 = 0;
  	int iLocal_275 = 0;
  	var uLocal_276 = 0;
  	var uLocal_277 = 0;
  	int iLocal_278 = 0;
  	int iLocal_279 = 0;
  #endregion
  
  void __EntryFunction__()
  {
  	var uVar0;
  	bool bVar1;
  	int iVar2;
  	
  	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_20 = "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;
  	iLocal_45 = -1;
  	Local_46 = { 500f, 500f, 500f };
  	iLocal_74 = 1;
  	iLocal_250 = -1;
  	Local_258 = { 405.8286f, -1627.996f, 28.2928f };
  	fLocal_261 = 1f;
  	if (PLAYER::HAS_FORCE_CLEANUP_OCCURRED(82))
  	{
  		func_156();
  	}
  	func_155(15);
  	bVar1 = false;
  	while (true)
  	{
  		if (func_152())
  		{
  			iVar2 = PLAYER::PLAYER_PED_ID();
  			if (!ENTITY::IS_ENTITY_DEAD(iVar2, false))
  			{
  				iLocal_279 = 0;
  				func_2(&iLocal_278, iVar2, &uVar0, &iLocal_279, bVar1);
  			}
  			SYSTEM::WAIT(iLocal_279);
  		}
  		else
  		{
  			func_1();
  			SYSTEM::WAIT(2000);
  		}
  	}
  }
  
  void func_1()
  {
  	STREAMING::REMOVE_ANIM_DICT("amb@world_human_smoking@male@male_a@base");
  	STREAMING::REMOVE_ANIM_DICT("oddjobs@towingcome_here");
  	STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("a_f_y_soucent_01"));
  	if (ENTITY::DOES_ENTITY_EXIST(iLocal_274))
  	{
  		if (ENTITY::IS_ENTITY_OCCLUDED(iLocal_274))
  		{
  			STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("a_f_y_soucent_01"));
  			PED::DELETE_PED(&iLocal_274);
  		}
  		else
  		{
  			STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("a_f_y_soucent_01"));
  			ENTITY::SET_PED_AS_NO_LONGER_NEEDED(&iLocal_274);
  		}
  	}
  	if (ENTITY::DOES_ENTITY_EXIST(iLocal_275))
  	{
  		if (ENTITY::IS_ENTITY_OCCLUDED(iLocal_275))
  		{
  			STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("towtruck"));
  			if (ENTITY::IS_ENTITY_A_MISSION_ENTITY(iLocal_275))
  			{
  				VEHICLE::DELETE_VEHICLE(&iLocal_275);
  			}
  		}
  		else
  		{
  			STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("towtruck"));
  			ENTITY::SET_VEHICLE_AS_NO_LONGER_NEEDED(&iLocal_275);
  		}
  	}
  }
  
  void func_2(int iParam0, int iParam1, var uParam2, int iParam3, bool bParam4)
  {
  	var uVar0;
  	struct<3> Var3;
  	var uVar6;
  	float fVar7;
  	int iVar8;
  	
  	*iParam3 = 500;
  	if (!ENTITY::IS_ENTITY_DEAD(iParam1, false))
  	{
  		if (!func_150(iParam0, 0, 0))
  		{
  		}
  		func_149(Global_111858.f_19969.f_3, &Var3, &fVar7, &uVar0, &uVar6);
  		if (Global_111858.f_19969.f_3 >= 5 || uLocal_263)
  		{
  			func_148(iParam1, Var3, fVar7, iParam0);
  			func_146(iParam0, iParam1);
  		}
  		switch (*iParam0)
  		{
  			case 0:
  				uLocal_269 = uLocal_269;
  				MISC::SET_RANDOM_SEED(((CLOCK::GET_CLOCK_SECONDS() * CLOCK::GET_CLOCK_MINUTES()) * CLOCK::GET_CLOCK_HOURS()));
  				func_144(&(Global_111858.f_19969.f_1), 2048);
  				func_144(&(Global_111858.f_19969.f_1), 4096);
  				func_144(&(Global_111858.f_19969.f_1), 8192);
  				func_144(&(Global_111858.f_19969.f_1), 16384);
  				if (Global_111858.f_19969.f_3 >= 5)
  				{
  					*iParam0 = 14;
  				}
  				break;
  			
  			case 14:
  				if (func_150(iParam0, 0, 1))
  				{
  					if (func_143(iParam1))
  					{
  						iLocal_74 = 1;
  						*iParam0 = 15;
  					}
  				}
  				break;
  			
  			case 15:
  				if (!func_150(iParam0, 0, 1))
  				{
  					iLocal_74 = 1;
  					*iParam0 = 14;
  					return;
  				}
  				if (Global_111858.f_19969.f_3 != 0)
  				{
  					if (!func_143(iParam1))
  					{
  						iLocal_74 = 1;
  						*iParam0 = 14;
  						AUDIO::SET_FRONTEND_RADIO_ACTIVE(true);
  						return;
  					}
  				}
  				if (func_150(iParam0, 0, 1))
  				{
  					if (!iLocal_262)
  					{
  						iLocal_262 = 1;
  					}
  					func_118();
  					*iParam3 = 0;
  					if (PAD::IS_CONTROL_JUST_PRESSED(0, 86) || PAD::IS_DISABLED_CONTROL_PRESSED(0, 86))
  					{
  						func_117();
  						func_115();
  						Local_53.x = iLocal_274;
  						Local_53.f_1 = iLocal_275;
  						*iParam0 = 16;
  					}
  				}
  				break;
  			
  			case 16:
  				func_117();
  				*iParam3 = 0;
  				iVar8 = func_107();
  				func_144(&(Global_111858.f_19969.f_1), 1073741824);
  				if (iVar8 == 1)
  				{
  					if (!bParam4)
  					{
  						func_24(SCRIPT::GET_THIS_SCRIPT_NAME(), 0);
  					}
  					iLocal_74 = 1;
  					*iParam0 = 17;
  				}
  				else if (iVar8 == 2)
  				{
  					func_23();
  					iLocal_74 = 1;
  					*iParam0 = 0;
  				}
  				break;
  			
  			case 17:
  				if (!SCRIPT::IS_THREAD_ACTIVE(iLocal_249))
  				{
  					if (func_22(Global_110509, 3))
  					{
  						*iParam0 = 18;
  					}
  					else
  					{
  						func_21(&iLocal_45);
  						func_3();
  						func_144(&Global_110509, 3);
  						func_1();
  						func_23();
  						iLocal_275 = 0;
  						iLocal_274 = 0;
  						if (func_22(Global_111858.f_19969.f_1, 2048))
  						{
  							iLocal_253 = 0;
  						}
  						else if (func_22(Global_111858.f_19969.f_1, 4096))
  						{
  							iLocal_253 = 10000;
  						}
  						else if (func_22(Global_111858.f_19969.f_1, 8192))
  						{
  							iLocal_253 = 60000;
  						}
  						else if (func_22(Global_111858.f_19969.f_1, 16384))
  						{
  							iLocal_253 = 120000;
  						}
  						else
  						{
  							iLocal_253 = 30000;
  						}
  						func_144(&(Global_111858.f_19969.f_1), 2048);
  						func_144(&(Global_111858.f_19969.f_1), 4096);
  						func_144(&(Global_111858.f_19969.f_1), 8192);
  						func_144(&(Global_111858.f_19969.f_1), 16384);
  						if (ENTITY::DOES_ENTITY_EXIST(iLocal_274) && !ENTITY::IS_ENTITY_DEAD(iLocal_274, false))
  						{
  							PED::REMOVE_PED_FROM_GROUP(iLocal_274);
  						}
  						if (HUD::DOES_BLIP_EXIST(iLocal_273))
  						{
  							HUD::REMOVE_BLIP(&iLocal_273);
  						}
  						*uParam2 = MISC::GET_GAME_TIMER();
  						*iParam0 = 19;
  					}
  				}
  				else
  				{
  					STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("a_f_y_soucent_01"));
  				}
  				break;
  			
  			case 18:
  				if (Global_98955 == 10)
  				{
  					if (Global_98989)
  					{
  						bParam4 = true;
  						if (iLocal_271 == joaat("towtruck"))
  						{
  							STREAMING::REQUEST_MODEL(joaat("towtruck"));
  						}
  						else if (iLocal_271 == joaat("towtruck2"))
  						{
  							STREAMING::REQUEST_MODEL(joaat("towtruck2"));
  						}
  						else
  						{
  							STREAMING::REQUEST_MODEL(joaat("towtruck"));
  							iLocal_271 = joaat("towtruck");
  						}
  						SCRIPT::REQUEST_SCRIPT("towing");
  						if (Global_111858.f_19969.f_3 >= 5)
  						{
  							if (STREAMING::HAS_MODEL_LOADED(iLocal_271))
  							{
  								MISC::CLEAR_AREA_OF_VEHICLES(408.8376f, -1638.952f, 28.2928f, 8f, false, false, false, false, false, false);
  								if (!ENTITY::DOES_ENTITY_EXIST(iLocal_275))
  								{
  									if (iLocal_271 == joaat("towtruck"))
  									{
  									}
  									else if (iLocal_271 == joaat("towtruck2"))
  									{
  									}
  									iLocal_275 = VEHICLE::CREATE_VEHICLE(iLocal_271, 408.8376f, -1638.952f, 28.2928f, 230.2387f, true, true, false);
  									STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(iLocal_271);
  								}
  								if (!ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID(), false) && !ENTITY::IS_ENTITY_DEAD(iLocal_275, false))
  								{
  									PED::SET_PED_INTO_VEHICLE(PLAYER::PLAYER_PED_ID(), iLocal_275, -1);
  									PED::SET_PED_COORDS_KEEP_VEHICLE(PLAYER::PLAYER_PED_ID(), 408.8376f, -1638.952f, 28.2928f);
  									ENTITY::SET_ENTITY_HEADING(iLocal_275, 230.2387f);
  									*iParam0 = 16;
  								}
  							}
  						}
  						else
  						{
  							*iParam0 = 16;
  						}
  					}
  				}
  				else if (Global_98955 == 13)
  				{
  					func_21(&iLocal_45);
  					func_3();
  					bParam4 = false;
  					*uParam2 = MISC::GET_GAME_TIMER();
  					*iParam0 = 19;
  				}
  				break;
  			
  			case 19:
  				if ((MISC::GET_GAME_TIMER() - *uParam2) > iLocal_253)
  				{
  					*uParam2 = 0;
  					*iParam0 = 0;
  				}
  				break;
  			}
  	}
  }
  
  void func_3()
  {
  	func_20();
  	func_12();
  	func_8();
  	func_7();
  	func_6();
  	func_5();
  	Global_98992 = 0;
  	Global_93130 = -1;
  	MISC::CLEAR_BIT(&(Global_98955.f_20), 17);
  	Global_98990 = 0;
  	MISC::PAUSE_DEATH_ARREST_RESTART(false);
  	MISC::IGNORE_NEXT_RESTART(false);
  	MISC::SET_FADE_IN_AFTER_DEATH_ARREST(true);
  	MISC::SET_FADE_OUT_AFTER_ARREST(true);
  	MISC::SET_FADE_OUT_AFTER_DEATH(true);
  	func_4(0);
  }
  
  void func_4(int iParam0)
  {
  	if (iParam0 == 1)
  	{
  		MISC::SET_BIT(&(Global_98955.f_20), 13);
  	}
  	else
  	{
  		MISC::CLEAR_BIT(&(Global_98955.f_20), 13);
  	}
  }
  
  void func_5()
  {
  	Global_77073 = { 0f, 0f, 0f };
  	Global_77076 = 0f;
  	Global_98955.f_21 = 145;
  }
  
  void func_6()
  {
  	StringCopy(&Global_77065, "", 16);
  	StringCopy(&Global_77069, "", 16);
  }
  
  void func_7()
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 <= 6)
  	{
  		Global_98955.f_22[iVar0] = 0;
  		iVar0++;
  	}
  }
  
  void func_8()
  {
  	Global_98955 = 13;
  	Global_98955.f_1 = -1;
  	Global_98955.f_2 = 0;
  	Global_98955.f_30 = 0f;
  	MISC::CLEAR_BIT(&(Global_98955.f_20), 25);
  	Global_98989 = 0;
  	func_11(0);
  	func_10();
  	func_9();
  	Global_98955.f_18 = -1;
  	Global_98955.f_19 = -1;
  }
  
  void func_9()
  {
  	MISC::CLEAR_BIT(&(Global_98955.f_20), 22);
  	MISC::CLEAR_BIT(&(Global_98955.f_20), 8);
  }
  
  void func_10()
  {
  	if (Global_98955.f_16 != 0)
  	{
  		GRAPHICS::SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(&(Global_98955.f_16));
  		Global_98955.f_16 = 0;
  	}
  	if (Global_98955.f_17 != 0)
  	{
  		GRAPHICS::SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(&(Global_98955.f_17));
  		Global_98955.f_17 = 0;
  	}
  }
  
  void func_11(int iParam0)
  {
  	if (iParam0 == 1)
  	{
  		Global_42180 = 1;
  	}
  	else
  	{
  		Global_42180 = 0;
  	}
  }
  
  void func_12()
  {
  	func_13(&Global_105407);
  }
  
  void func_13(var uParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	*uParam0 = 145;
  	func_19(&(uParam0->f_1));
  	uParam0->f_6 = -1;
  	uParam0->f_7 = -1;
  	uParam0->f_8 = 0f;
  	uParam0->f_2 = 0;
  	uParam0->f_3 = 0;
  	uParam0->f_4 = 0;
  	uParam0->f_5 = 145;
  	iVar1 = 0;
  	while (iVar1 < 3)
  	{
  		uParam0->f_9[iVar1] = -1;
  		uParam0->f_13[iVar1] = 0;
  		uParam0->f_17[iVar1] = 0;
  		uParam0->f_21[iVar1] = 0;
  		func_18(&(uParam0->f_25[0 /*295*/][iVar1 /*98*/]));
  		func_18(&(uParam0->f_25[1 /*295*/][iVar1 /*98*/]));
  		iVar0 = 0;
  		while (iVar0 < 12)
  		{
  			uParam0->f_616[iVar1 /*65*/][iVar0] = -1;
  			uParam0->f_616[iVar1 /*65*/].f_13[iVar0] = -1;
  			uParam0->f_616[iVar1 /*65*/].f_26[iVar0] = -1;
  			iVar0++;
  		}
  		uParam0->f_616[iVar1 /*65*/].f_59 = 0;
  		uParam0->f_616[iVar1 /*65*/].f_60 = -99;
  		uParam0->f_616[iVar1 /*65*/].f_61 = 2;
  		uParam0->f_616[iVar1 /*65*/].f_62 = 0;
  		uParam0->f_616[iVar1 /*65*/].f_63 = -99;
  		uParam0->f_616[iVar1 /*65*/].f_64 = 1;
  		iVar0 = 0;
  		while (iVar0 < 9)
  		{
  			uParam0->f_616[iVar1 /*65*/].f_39[iVar0] = -1;
  			uParam0->f_616[iVar1 /*65*/].f_49[iVar0] = -1;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 44)
  		{
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/].f_1 = 0;
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/].f_2 = 0;
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/].f_3 = 0;
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/].f_4 = 0;
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/] = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 51)
  		{
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/].f_1 = 0;
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/].f_2 = 0;
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/].f_3 = 0;
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/].f_4 = 0;
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/] = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 4)
  		{
  			uParam0->f_2244[iVar1 /*32*/][iVar0] = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 10)
  		{
  			uParam0->f_2244[iVar1 /*32*/].f_5[iVar0] = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 15)
  		{
  			uParam0->f_2244[iVar1 /*32*/].f_16[iVar0] = 0;
  			iVar0++;
  		}
  		uParam0->f_2341[iVar1] = 0;
  		iVar0 = 0;
  		while (iVar0 <= 3)
  		{
  			uParam0->f_2838[iVar1 /*15*/][iVar0] = 0;
  			uParam0->f_2838[iVar1 /*15*/].f_5[iVar0] = 0;
  			uParam0->f_2838[iVar1 /*15*/].f_10[iVar0] = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 <= 2)
  		{
  			uParam0->f_2345[iVar1 /*164*/][iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_4[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_8[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_12[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_16[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_20[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_24[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_28[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_32[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_36[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_40[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_44[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_48[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_52[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_56[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_60[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_64[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_68[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_72[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_76[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_80[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_84[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_88[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_92[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_96[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_100[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_104[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_108[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_112[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_116[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_120[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_124[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_128[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_132[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_136[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_140[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_144[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_148[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_152[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_156[iVar0] = 0;
  			uParam0->f_2345[iVar1 /*164*/].f_160[iVar0] = 0;
  			iVar0++;
  		}
  		iVar1++;
  	}
  	func_17(&(uParam0->f_2884));
  	func_15(&(uParam0->f_2890));
  	func_14(&(uParam0->f_2980));
  }
  
  void func_14(var uParam0)
  {
  	*uParam0 = -1;
  	uParam0->f_1 = 0;
  	uParam0->f_2 = 0;
  	uParam0->f_3 = 0;
  }
  
  void func_15(var uParam0)
  {
  	func_16(&(uParam0->f_12));
  	*uParam0 = { 0f, 0f, 0f };
  	uParam0->f_3 = { 0f, 0f, 0f };
  	uParam0->f_6 = 0f;
  	uParam0->f_8 = 0;
  	uParam0->f_9 = 0;
  }
  
  void func_16(var uParam0)
  {
  	int iVar0;
  	
  	uParam0->f_66 = 0;
  	uParam0->f_77 = 0;
  	uParam0->f_65 = 0;
  	uParam0->f_62 = 0;
  	uParam0->f_63 = 0;
  	uParam0->f_64 = 0;
  	uParam0->f_74 = 0;
  	uParam0->f_75 = 0;
  	uParam0->f_76 = 0;
  	*uParam0 = 0;
  	StringCopy(&(uParam0->f_1), "", 16);
  	uParam0->f_5 = 0;
  	uParam0->f_6 = 0;
  	uParam0->f_7 = 0;
  	uParam0->f_8 = 0;
  	iVar0 = 0;
  	while (iVar0 < 49)
  	{
  		uParam0->f_9[iVar0] = 0;
  		iVar0++;
  	}
  	iVar0 = 0;
  	while (iVar0 < 2)
  	{
  		uParam0->f_59[iVar0] = 0;
  		iVar0++;
  	}
  	uParam0->f_67 = 0;
  	uParam0->f_68 = 0;
  	uParam0->f_69 = 0;
  	uParam0->f_70 = 1;
  	uParam0->f_71 = 0;
  	uParam0->f_72 = 0;
  	uParam0->f_73 = 0;
  }
  
  void func_17(var uParam0)
  {
  	*uParam0 = { 0f, 0f, 0f };
  	uParam0->f_3 = 0f;
  	uParam0->f_4 = 0;
  	uParam0->f_5 = -1;
  }
  
  void func_18(var uParam0)
  {
  	int iVar0;
  	
  	*uParam0 = 0;
  	uParam0->f_1 = 0;
  	uParam0->f_2 = 0f;
  	uParam0->f_3 = 0;
  	uParam0->f_4 = 0;
  	uParam0->f_5 = 0;
  	uParam0->f_6 = 0;
  	uParam0->f_7 = 0;
  	uParam0->f_8 = 0;
  	uParam0->f_9 = 0;
  	uParam0->f_10 = 0;
  	iVar0 = 0;
  	while (iVar0 <= 11)
  	{
  		uParam0->f_11[iVar0] = 0;
  		iVar0++;
  	}
  	uParam0->f_24 = 0;
  	uParam0->f_25 = 0;
  	StringCopy(&(uParam0->f_27), "", 16);
  	iVar0 = 0;
  	while (iVar0 <= 48)
  	{
  		uParam0->f_31[iVar0] = 0;
  		iVar0++;
  	}
  	iVar0 = 0;
  	while (iVar0 <= 1)
  	{
  		uParam0->f_81[iVar0] = 0;
  		iVar0++;
  	}
  	uParam0->f_84 = 0;
  	uParam0->f_85 = 0;
  	uParam0->f_86 = 0;
  	uParam0->f_87 = 0;
  	uParam0->f_88 = 0;
  	uParam0->f_89 = 0;
  	uParam0->f_90 = 0;
  	uParam0->f_91 = 0;
  	uParam0->f_93 = 0;
  	uParam0->f_94 = 0;
  	uParam0->f_95 = 0;
  	uParam0->f_92 = 0;
  }
  
  void func_19(var uParam0)
  {
  	*uParam0 = -15;
  }
  
  void func_20()
  {
  	StringCopy(&Global_102415, "", 32);
  	func_13(&Global_102423);
  }
  
  void func_21(int iParam0)
  {
  	if (*iParam0 == -1)
  	{
  		return;
  	}
  	if (!*iParam0 == Global_41593)
  	{
  		*iParam0 = -1;
  		return;
  	}
  	*iParam0 = -1;
  	Global_41592 = 0;
  	Global_41594 = 0;
  	Global_41631 = 15;
  	Global_61714 = 0;
  	Global_61715 = 0;
  }
  
  bool func_22(var uParam0, int iParam1)
  {
  	return (uParam0 && iParam1) != 0;
  }
  
  void func_23()
  {
  	if (func_22(uLocal_251, 1))
  	{
  		func_144(&uLocal_251, 1);
  		func_21(&iLocal_250);
  	}
  	if (SCRIPT::IS_THREAD_ACTIVE(iLocal_249))
  	{
  		SCRIPT::TERMINATE_THREAD(iLocal_249);
  	}
  	SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED("Towing");
  }
  
  void func_24(char[4] cParam0, int iParam1)
  {
  	MISC::CLEAR_BIT(&(Global_98955.f_20), 17);
  	func_25(cParam0, iParam1, 0);
  }
  
  void func_25(char[4] cParam0, int iParam1, int iParam2)
  {
  	if (Global_98955 != 10 && Global_98955 != 9)
  	{
  		StringCopy(&Global_102415, cParam0, 32);
  		func_27(&Global_102423, cParam0, 0, "Start", iParam1, iParam2);
  		func_26();
  		Global_93133 = 0;
  	}
  }
  
  void func_26()
  {
  	int iVar0;
  	int iVar1;
  	
  	Global_105407 = Global_102423;
  	Global_105407.f_1 = Global_102423.f_1;
  	Global_105407.f_6 = Global_102423.f_6;
  	Global_105407.f_7 = Global_102423.f_7;
  	Global_105407.f_8 = Global_102423.f_8;
  	Global_105407.f_2 = Global_102423.f_2;
  	Global_105407.f_3 = Global_102423.f_3;
  	Global_105407.f_4 = Global_102423.f_4;
  	Global_105407.f_5 = Global_102423.f_5;
  	iVar1 = 0;
  	while (iVar1 < 3)
  	{
  		Global_105407.f_9[iVar1] = Global_102423.f_9[iVar1];
  		Global_105407.f_13[iVar1] = Global_102423.f_13[iVar1];
  		Global_105407.f_17[iVar1] = Global_102423.f_17[iVar1];
  		Global_105407.f_21[iVar1] = Global_102423.f_21[iVar1];
  		Global_105407.f_25[0 /*295*/][iVar1 /*98*/] = { Global_102423.f_25[0 /*295*/][iVar1 /*98*/] };
  		Global_105407.f_25[1 /*295*/][iVar1 /*98*/] = { Global_102423.f_25[1 /*295*/][iVar1 /*98*/] };
  		iVar0 = 0;
  		while (iVar0 < 12)
  		{
  			Global_105407.f_616[iVar1 /*65*/][iVar0] = Global_102423.f_616[iVar1 /*65*/][iVar0];
  			Global_105407.f_616[iVar1 /*65*/].f_13[iVar0] = Global_102423.f_616[iVar1 /*65*/].f_13[iVar0];
  			Global_105407.f_616[iVar1 /*65*/].f_26[iVar0] = Global_102423.f_616[iVar1 /*65*/].f_26[iVar0];
  			iVar0++;
  		}
  		Global_105407.f_616[iVar1 /*65*/].f_59 = Global_102423.f_616[iVar1 /*65*/].f_59;
  		Global_105407.f_616[iVar1 /*65*/].f_60 = Global_102423.f_616[iVar1 /*65*/].f_60;
  		Global_105407.f_616[iVar1 /*65*/].f_61 = Global_102423.f_616[iVar1 /*65*/].f_61;
  		Global_105407.f_616[iVar1 /*65*/].f_62 = Global_102423.f_616[iVar1 /*65*/].f_62;
  		Global_105407.f_616[iVar1 /*65*/].f_63 = Global_102423.f_616[iVar1 /*65*/].f_63;
  		Global_105407.f_616[iVar1 /*65*/].f_64 = Global_102423.f_616[iVar1 /*65*/].f_64;
  		iVar0 = 0;
  		while (iVar0 < 9)
  		{
  			Global_105407.f_616[iVar1 /*65*/].f_39[iVar0] = Global_102423.f_616[iVar1 /*65*/].f_39[iVar0];
  			Global_105407.f_616[iVar1 /*65*/].f_49[iVar0] = Global_102423.f_616[iVar1 /*65*/].f_49[iVar0];
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 44)
  		{
  			Global_105407.f_812[iVar1 /*477*/][iVar0 /*5*/] = { Global_102423.f_812[iVar1 /*477*/][iVar0 /*5*/] };
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 51)
  		{
  			Global_105407.f_812[iVar1 /*477*/].f_221[iVar0 /*5*/] = { Global_102423.f_812[iVar1 /*477*/].f_221[iVar0 /*5*/] };
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 4)
  		{
  			Global_105407.f_2244[iVar1 /*32*/][iVar0] = Global_102423.f_2244[iVar1 /*32*/][iVar0];
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 10)
  		{
  			Global_105407.f_2244[iVar1 /*32*/].f_5[iVar0] = Global_102423.f_2244[iVar1 /*32*/].f_5[iVar0];
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 15)
  		{
  			Global_105407.f_2244[iVar1 /*32*/].f_16[iVar0] = Global_102423.f_2244[iVar1 /*32*/].f_16[iVar0];
  			iVar0++;
  		}
  		Global_105407.f_2341[iVar1] = Global_102423.f_2341[iVar1];
  		iVar0 = 0;
  		while (iVar0 <= 3)
  		{
  			Global_105407.f_2838[iVar1 /*15*/][iVar0] = Global_102423.f_2838[iVar1 /*15*/][iVar0];
  			Global_105407.f_2838[iVar1 /*15*/].f_5[iVar0] = Global_102423.f_2838[iVar1 /*15*/].f_5[iVar0];
  			Global_105407.f_2838[iVar1 /*15*/].f_10[iVar0] = Global_102423.f_2838[iVar1 /*15*/].f_10[iVar0];
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 <= 2)
  		{
  			Global_105407.f_2345[iVar1 /*164*/][iVar0] = Global_102423.f_2345[iVar1 /*164*/][iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_4[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_4[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_8[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_8[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_12[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_12[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_16[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_16[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_20[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_20[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_24[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_24[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_28[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_28[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_32[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_32[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_36[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_36[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_40[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_40[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_44[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_44[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_48[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_48[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_52[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_52[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_56[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_56[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_60[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_60[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_64[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_64[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_68[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_68[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_72[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_72[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_76[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_76[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_80[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_80[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_84[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_84[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_88[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_88[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_92[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_92[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_96[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_96[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_100[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_100[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_104[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_104[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_108[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_108[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_112[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_112[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_116[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_116[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_120[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_120[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_124[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_124[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_128[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_128[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_132[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_132[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_136[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_136[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_140[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_140[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_144[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_144[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_148[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_148[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_152[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_152[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_156[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_156[iVar0];
  			Global_105407.f_2345[iVar1 /*164*/].f_160[iVar0] = Global_102423.f_2345[iVar1 /*164*/].f_160[iVar0];
  			iVar0++;
  		}
  		iVar1++;
  	}
  	Global_105407.f_2884 = { Global_102423.f_2884 };
  	Global_105407.f_2884.f_3 = Global_102423.f_2884.f_3;
  	Global_105407.f_2890 = { Global_102423.f_2890 };
  	Global_105407.f_2890.f_3 = { Global_102423.f_2890.f_3 };
  	Global_105407.f_2890.f_6 = Global_102423.f_2890.f_6;
  	Global_105407.f_2890.f_8 = Global_105407.f_2890.f_8;
  	Global_105407.f_2890.f_7 = Global_102423.f_2890.f_7;
  	Global_105407.f_2890.f_9 = Global_102423.f_2890.f_9;
  	Global_105407.f_2890.f_11 = Global_102423.f_2890.f_11;
  	Global_105407.f_2890.f_10 = Global_102423.f_2890.f_10;
  	Global_105407.f_2890.f_12 = Global_102423.f_2890.f_12;
  	Global_105407.f_2890.f_12.f_1 = { Global_102423.f_2890.f_12.f_1 };
  	Global_105407.f_2890.f_12.f_5 = Global_102423.f_2890.f_12.f_5;
  	Global_105407.f_2890.f_12.f_6 = Global_102423.f_2890.f_12.f_6;
  	Global_105407.f_2890.f_12.f_7 = Global_102423.f_2890.f_12.f_7;
  	Global_105407.f_2890.f_12.f_8 = Global_102423.f_2890.f_12.f_8;
  	Global_105407.f_2890.f_12.f_9 = { Global_102423.f_2890.f_12.f_9 };
  	Global_105407.f_2890.f_12.f_59 = { Global_102423.f_2890.f_12.f_59 };
  	Global_105407.f_2890.f_12.f_62 = Global_102423.f_2890.f_12.f_62;
  	Global_105407.f_2890.f_12.f_63 = Global_102423.f_2890.f_12.f_63;
  	Global_105407.f_2890.f_12.f_64 = Global_102423.f_2890.f_12.f_64;
  	Global_105407.f_2890.f_12.f_65 = Global_102423.f_2890.f_12.f_65;
  	Global_105407.f_2890.f_12.f_77 = Global_102423.f_2890.f_12.f_77;
  	Global_105407.f_2890.f_12.f_66 = Global_102423.f_2890.f_12.f_66;
  	Global_105407.f_2890.f_12.f_67 = Global_102423.f_2890.f_12.f_67;
  	Global_105407.f_2890.f_12.f_68 = Global_102423.f_2890.f_12.f_68;
  	Global_105407.f_2890.f_12.f_69 = Global_102423.f_2890.f_12.f_69;
  	Global_105407.f_2890.f_12.f_71 = Global_102423.f_2890.f_12.f_71;
  	Global_105407.f_2890.f_12.f_72 = Global_102423.f_2890.f_12.f_72;
  	Global_105407.f_2890.f_12.f_73 = Global_102423.f_2890.f_12.f_73;
  	Global_105407.f_2890.f_12.f_74 = Global_102423.f_2890.f_12.f_74;
  	Global_105407.f_2890.f_12.f_75 = Global_102423.f_2890.f_12.f_75;
  	Global_105407.f_2890.f_12.f_76 = Global_102423.f_2890.f_12.f_76;
  	Global_105407.f_2980 = Global_102423.f_2980;
  	Global_105407.f_2980.f_1 = Global_102423.f_2980.f_1;
  	Global_105407.f_2980.f_2 = Global_102423.f_2980.f_2;
  	Global_105407.f_2980.f_3 = Global_102423.f_2980.f_3;
  }
  
  void func_27(var uParam0, char* sParam1, int iParam2, char* sParam3, int iParam4, int iParam5)
  {
  	int iVar0;
  	int iVar1;
  	
  	*uParam0 = func_106();
  	uParam0->f_1 = func_95();
  	MISC::_GET_WEATHER_TYPE_TRANSITION(&(uParam0->f_6), &(uParam0->f_7), &(uParam0->f_8));
  	if (!PED::IS_PED_INJURED(PLAYER::PLAYER_PED_ID()))
  	{
  		func_67(&(uParam0->f_2884), 0);
  		func_66(PLAYER::PLAYER_PED_ID());
  		func_59(PLAYER::PLAYER_PED_ID(), 0);
  		WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &(uParam0->f_2), true);
  		if (uParam0->f_2 == 0 || uParam0->f_2 == joaat("object"))
  		{
  			uParam0->f_2 = joaat("weapon_unarmed");
  		}
  	}
  	iVar1 = 0;
  	while (iVar1 < 3)
  	{
  		uParam0->f_17[iVar1] = Global_111858.f_2359.f_539.f_294[iVar1];
  		if (iVar1 == func_56())
  		{
  			func_49(PLAYER::PLAYER_PED_ID(), &(uParam0->f_616[iVar1 /*65*/]), 1, -1);
  		}
  		else
  		{
  			iVar0 = 0;
  			while (iVar0 < 12)
  			{
  				uParam0->f_616[iVar1 /*65*/][iVar0] = Global_98680[iVar1 /*65*/][iVar0];
  				uParam0->f_616[iVar1 /*65*/].f_13[iVar0] = Global_98680[iVar1 /*65*/].f_13[iVar0];
  				iVar0++;
  			}
  			uParam0->f_616[iVar1 /*65*/].f_59 = Global_98680[iVar1 /*65*/].f_59;
  			uParam0->f_616[iVar1 /*65*/].f_60 = Global_98680[iVar1 /*65*/].f_60;
  			uParam0->f_616[iVar1 /*65*/].f_61 = Global_98680[iVar1 /*65*/].f_61;
  			uParam0->f_616[iVar1 /*65*/].f_62 = Global_98680[iVar1 /*65*/].f_62;
  			uParam0->f_616[iVar1 /*65*/].f_63 = Global_98680[iVar1 /*65*/].f_63;
  			uParam0->f_616[iVar1 /*65*/].f_64 = Global_98680[iVar1 /*65*/].f_64;
  			iVar0 = 0;
  			while (iVar0 < 9)
  			{
  				uParam0->f_616[iVar1 /*65*/].f_39[iVar0] = Global_98680[iVar1 /*65*/].f_39[iVar0];
  				uParam0->f_616[iVar1 /*65*/].f_49[iVar0] = Global_98680[iVar1 /*65*/].f_49[iVar0];
  				iVar0++;
  			}
  		}
  		iVar0 = 0;
  		while (iVar0 < 44)
  		{
  			uParam0->f_812[iVar1 /*477*/][iVar0 /*5*/] = { Global_111858.f_2359.f_539.f_298[iVar1 /*477*/][iVar0 /*5*/] };
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 < 51)
  		{
  			uParam0->f_812[iVar1 /*477*/].f_221[iVar0 /*5*/] = { Global_111858.f_2359.f_539.f_298[iVar1 /*477*/].f_221[iVar0 /*5*/] };
  			iVar0++;
  		}
  		switch (iVar1)
  		{
  			case 0:
  				STATS::STAT_GET_INT(joaat("sp0_weap_purch_0"), &(uParam0->f_2244[iVar1 /*32*/][0]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_purch_1"), &(uParam0->f_2244[iVar1 /*32*/][1]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_addon_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_5[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_addon_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_5[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_addon_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_5[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_addon_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_5[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_addon_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_5[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_16[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_16[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_16[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_16[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_16[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_5"), &(uParam0->f_2244[iVar1 /*32*/].f_16[5]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_6"), &(uParam0->f_2244[iVar1 /*32*/].f_16[6]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_7"), &(uParam0->f_2244[iVar1 /*32*/].f_16[7]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_8"), &(uParam0->f_2244[iVar1 /*32*/].f_16[8]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_9"), &(uParam0->f_2244[iVar1 /*32*/].f_16[9]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_10"), &(uParam0->f_2244[iVar1 /*32*/].f_16[10]), -1);
  				STATS::STAT_GET_INT(joaat("sp0_weap_tint_purch_11"), &(uParam0->f_2244[iVar1 /*32*/].f_16[11]), -1);
  				break;
  			
  			case 1:
  				STATS::STAT_GET_INT(joaat("sp1_weap_purch_0"), &(uParam0->f_2244[iVar1 /*32*/][0]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_purch_1"), &(uParam0->f_2244[iVar1 /*32*/][1]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_addon_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_5[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_addon_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_5[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_addon_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_5[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_addon_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_5[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_addon_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_5[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_16[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_16[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_16[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_16[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_16[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_5"), &(uParam0->f_2244[iVar1 /*32*/].f_16[5]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_6"), &(uParam0->f_2244[iVar1 /*32*/].f_16[6]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_7"), &(uParam0->f_2244[iVar1 /*32*/].f_16[7]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_8"), &(uParam0->f_2244[iVar1 /*32*/].f_16[8]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_9"), &(uParam0->f_2244[iVar1 /*32*/].f_16[9]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_10"), &(uParam0->f_2244[iVar1 /*32*/].f_16[10]), -1);
  				STATS::STAT_GET_INT(joaat("sp1_weap_tint_purch_11"), &(uParam0->f_2244[iVar1 /*32*/].f_16[11]), -1);
  				break;
  			
  			case 2:
  				STATS::STAT_GET_INT(joaat("sp2_weap_purch_0"), &(uParam0->f_2244[iVar1 /*32*/][0]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_purch_1"), &(uParam0->f_2244[iVar1 /*32*/][1]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_addon_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_5[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_addon_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_5[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_addon_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_5[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_addon_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_5[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_addon_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_5[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_0"), &(uParam0->f_2244[iVar1 /*32*/].f_16[0]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_1"), &(uParam0->f_2244[iVar1 /*32*/].f_16[1]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_2"), &(uParam0->f_2244[iVar1 /*32*/].f_16[2]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_3"), &(uParam0->f_2244[iVar1 /*32*/].f_16[3]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_4"), &(uParam0->f_2244[iVar1 /*32*/].f_16[4]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_5"), &(uParam0->f_2244[iVar1 /*32*/].f_16[5]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_6"), &(uParam0->f_2244[iVar1 /*32*/].f_16[6]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_7"), &(uParam0->f_2244[iVar1 /*32*/].f_16[7]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_8"), &(uParam0->f_2244[iVar1 /*32*/].f_16[8]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_9"), &(uParam0->f_2244[iVar1 /*32*/].f_16[9]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_10"), &(uParam0->f_2244[iVar1 /*32*/].f_16[10]), -1);
  				STATS::STAT_GET_INT(joaat("sp2_weap_tint_purch_11"), &(uParam0->f_2244[iVar1 /*32*/].f_16[11]), -1);
  				break;
  		}
  		uParam0->f_9[iVar1] = Global_111858.f_20560.f_233[iVar1 /*69*/].f_1;
  		uParam0->f_13[iVar1] = Global_58891[iVar1];
  		uParam0->f_25[0 /*295*/][iVar1 /*98*/] = { Global_111858.f_2359.f_539.f_2407[0 /*295*/][iVar1 /*98*/] };
  		uParam0->f_25[1 /*295*/][iVar1 /*98*/] = { Global_111858.f_2359.f_539.f_2407[1 /*295*/][iVar1 /*98*/] };
  		iVar0 = 0;
  		while (iVar0 <= 3)
  		{
  			uParam0->f_2838[iVar1 /*15*/][iVar0] = Global_111858.f_2359.f_493[iVar1 /*15*/][iVar0];
  			uParam0->f_2838[iVar1 /*15*/].f_5[iVar0] = Global_111858.f_2359.f_493[iVar1 /*15*/].f_5[iVar0];
  			uParam0->f_2838[iVar1 /*15*/].f_10[iVar0] = Global_111858.f_2359.f_493[iVar1 /*15*/].f_10[iVar0];
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 <= 2)
  		{
  			uParam0->f_2345[iVar1 /*164*/][iVar0] = Global_111858.f_2359[iVar1 /*164*/][iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_4[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_4[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_8[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_8[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_12[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_12[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_16[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_16[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_20[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_20[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_24[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_24[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_28[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_28[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_32[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_32[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_36[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_36[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_40[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_40[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_44[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_44[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_48[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_48[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_52[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_52[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_56[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_56[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_60[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_60[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_64[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_64[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_68[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_68[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_72[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_72[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_76[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_76[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_80[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_80[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_84[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_84[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_88[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_88[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_92[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_92[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_96[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_96[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_100[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_100[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_104[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_104[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_108[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_108[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_112[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_112[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_116[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_116[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_120[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_120[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_124[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_124[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_128[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_128[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_132[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_132[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_136[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_136[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_140[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_140[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_144[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_144[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_148[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_148[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_152[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_152[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_156[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_156[iVar0];
  			uParam0->f_2345[iVar1 /*164*/].f_160[iVar0] = Global_111858.f_2359[iVar1 /*164*/].f_160[iVar0];
  			iVar0++;
  		}
  		iVar1++;
  	}
  	STATS::STAT_GET_INT(joaat("sp0_special_ability"), &(uParam0->f_2341[0]), -1);
  	STATS::STAT_GET_INT(joaat("sp1_special_ability"), &(uParam0->f_2341[1]), -1);
  	STATS::STAT_GET_INT(joaat("sp2_special_ability"), &(uParam0->f_2341[2]), -1);
  	uParam0->f_5 = 145;
  	if (iParam4 == 1)
  	{
  		func_29(&(uParam0->f_2890), uParam0, iParam5, 1, 1, 0);
  	}
  	func_28(&(uParam0->f_2980));
  	sParam3 = sParam3;
  	iParam2 = iParam2;
  }
  
  int func_28(var uParam0)
  {
  	*uParam0 = Global_94804;
  	uParam0->f_1 = Global_94805;
  	uParam0->f_2 = 0;
  	uParam0->f_3 = 0;
  	return 1;
  }
  
  void func_29(var uParam0, var uParam1, int iParam2, int iParam3, int iParam4, int iParam5)
  {
  	int iVar0;
  	
  	if (iParam2 == 0)
  	{
  		iParam2 = PLAYER::PLAYER_PED_ID();
  	}
  	if (ENTITY::DOES_ENTITY_EXIST(iParam2))
  	{
  		uParam1->f_5 = func_46(iParam2);
  	}
  	if (func_43(iParam2, &iVar0, iParam3, iParam5))
  	{
  		func_30(uParam0, uParam1, iVar0, iParam4);
  	}
  	else if (ENTITY::DOES_ENTITY_EXIST(iVar0))
  	{
  		if (!ENTITY::IS_ENTITY_DEAD(iVar0, false))
  		{
  			if (VEHICLE::IS_VEHICLE_MODEL(iVar0, joaat("skylift")) && PED::IS_PED_IN_VEHICLE(PLAYER::PLAYER_PED_ID(), iVar0, false))
  			{
  				func_30(uParam0, uParam1, iVar0, iParam4);
  			}
  		}
  	}
  }
  
  int func_30(var uParam0, var uParam1, int iParam2, int iParam3)
  {
  	if (VEHICLE::IS_VEHICLE_DRIVEABLE(iParam2, false))
  	{
  		func_32(uParam0, iParam2, iParam3);
  		uParam1->f_4 = iParam2;
  		if (func_31(iParam2))
  		{
  			uParam1->f_3 = 1;
  		}
  		else
  		{
  			uParam1->f_3 = 0;
  		}
  		return 1;
  	}
  	return 0;
  }
  
  int func_31(int iParam0)
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 <= 6)
  	{
  		if (Global_98955.f_22[iVar0] == iParam0)
  		{
  			return 1;
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  void func_32(var uParam0, int iParam1, int iParam2)
  {
  	func_39(iParam1, &(uParam0->f_12));
  	uParam0->f_7 = func_35(iParam1, 145, 0);
  	uParam0->f_11 = func_34(iParam1);
  	if (!uParam0->f_7)
  	{
  		if (!uParam0->f_10)
  		{
  			uParam0->f_10 = func_33(iParam1);
  		}
  	}
  	if (iParam2 == 1)
  	{
  		*uParam0 = { ENTITY::GET_ENTITY_COORDS(iParam1, true) };
  		uParam0->f_6 = ENTITY::GET_ENTITY_HEADING(iParam1);
  		uParam0->f_3 = { ENTITY::GET_ENTITY_VELOCITY(iParam1) };
  		if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(iParam1, -1154.326f, -1523.871f, 3.262189f, -1158.453f, -1517.75f, 6.374244f, 13f, false, true, 0))
  		{
  			*uParam0 = { -1160.095f, -1515.407f, 3.1496f };
  			uParam0->f_6 = 305.6424f;
  		}
  		if (Global_76559 == iParam1)
  		{
  			uParam0->f_9 = 1;
  		}
  	}
  	if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), false))
  	{
  		uParam0->f_8 = 1;
  	}
  	else
  	{
  		uParam0->f_8 = 0;
  	}
  }
  
  int func_33(int iParam0)
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 < 68)
  	{
  		if (ENTITY::DOES_ENTITY_EXIST(Global_75654.f_484[iVar0]))
  		{
  			if (iParam0 == Global_75654.f_484[iVar0])
  			{
  				return 1;
  			}
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  int func_34(int iParam0)
  {
  	int iVar0;
  	
  	if (!ENTITY::DOES_ENTITY_EXIST(iParam0))
  	{
  		return 145;
  	}
  	if (!VEHICLE::IS_VEHICLE_DRIVEABLE(iParam0, false))
  	{
  		return 145;
  	}
  	iVar0 = 0;
  	while (iVar0 < 9)
  	{
  		if (ENTITY::DOES_ENTITY_EXIST(Global_96286[iVar0]))
  		{
  			if (Global_96286[iVar0] == iParam0)
  			{
  				return Global_96296[iVar0];
  			}
  		}
  		iVar0++;
  	}
  	return 145;
  }
  
  int func_35(int iParam0, int iParam1, int iParam2)
  {
  	int iVar0;
  	
  	if (!ENTITY::DOES_ENTITY_EXIST(iParam0))
  	{
  		return 0;
  	}
  	if (!VEHICLE::IS_VEHICLE_DRIVEABLE(iParam0, false))
  	{
  		return 0;
  	}
  	iVar0 = 0;
  	while (iVar0 < 9)
  	{
  		if (ENTITY::DOES_ENTITY_EXIST(Global_96286[iVar0]))
  		{
  			if (Global_96286[iVar0] == iParam0)
  			{
  				if (iParam1 == 145 || iParam1 == Global_96296[iVar0])
  				{
  					if (iParam2 == 0 || ENTITY::GET_ENTITY_MODEL(iParam0) == func_36(iParam1, iParam2))
  					{
  						return 1;
  					}
  				}
  			}
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  int func_36(int iParam0, int iParam1)
  {
  	struct<82> Var0;
  	
  	if (func_38(iParam0))
  	{
  		Var0.f_11 = 12;
  		Var0.f_31 = 49;
  		Var0.f_81 = 2;
  		func_37(iParam0, &Var0, iParam1);
  		return Var0;
  	}
  	else if (iParam0 != 145)
  	{
  	}
  	return 0;
  }
  
  void func_37(int iParam0, var uParam1, int iParam2)
  {
  	int iVar0;
  	
  	uParam1->f_88 = 1;
  	uParam1->f_84 = 255;
  	uParam1->f_85 = 255;
  	uParam1->f_86 = 255;
  	uParam1->f_97 = 1;
  	uParam1->f_3 = 1000;
  	uParam1->f_1 = 0;
  	switch (iParam0)
  	{
  		case 0:
  			iVar0 = joaat("tailgater");
  			if (Global_111858.f_9081.f_99.f_58[128] && !Global_111858.f_9081.f_99.f_58[131])
  			{
  				iVar0 = joaat("premier");
  			}
  			switch (iVar0)
  			{
  				case joaat("tailgater"):
  					*uParam1 = iVar0;
  					uParam1->f_2 = 3f;
  					uParam1->f_4 = 0;
  					uParam1->f_9 = 1;
  					uParam1->f_11[0] = 1;
  					StringCopy(&(uParam1->f_27), "5MDS003", 16);
  					break;
  				
  				case joaat("premier"):
  					*uParam1 = iVar0;
  					uParam1->f_2 = 14.9f;
  					uParam1->f_5 = 43;
  					uParam1->f_6 = 43;
  					uParam1->f_7 = 0;
  					uParam1->f_8 = 156;
  					uParam1->f_9 = 0;
  					StringCopy(&(uParam1->f_27), "880HS955", 16);
  					break;
  			}
  			break;
  		
  		case 2:
  			iVar0 = joaat("bodhi2");
  			switch (iVar0)
  			{
  				case joaat("bodhi2"):
  					*uParam1 = iVar0;
  					uParam1->f_2 = 14f;
  					uParam1->f_5 = 32;
  					uParam1->f_6 = 0;
  					uParam1->f_7 = 0;
  					uParam1->f_8 = 156;
  					StringCopy(&(uParam1->f_27), "BETTY 32", 16);
  					if (Global_111858.f_9081.f_99.f_58[119])
  					{
  						uParam1->f_11[1] = 1;
  					}
  					break;
  			}
  			break;
  		
  		case 1:
  			if (iParam2 == 1)
  			{
  				iVar0 = joaat("buffalo2");
  			}
  			else if (iParam2 == 2)
  			{
  				iVar0 = joaat("bagger");
  			}
  			else if (Global_111858.f_9081.f_99.f_58[118])
  			{
  				iVar0 = joaat("bagger");
  			}
  			else
  			{
  				iVar0 = joaat("buffalo2");
  			}
  			switch (iVar0)
  			{
  				case joaat("bagger"):
  					*uParam1 = iVar0;
  					uParam1->f_2 = 6f;
  					uParam1->f_5 = 53;
  					uParam1->f_6 = 0;
  					uParam1->f_7 = 59;
  					uParam1->f_8 = 156;
  					StringCopy(&(uParam1->f_27), "FC88", 16);
  					break;
  				
  				case joaat("buffalo2"):
  					*uParam1 = iVar0;
  					uParam1->f_2 = 0f;
  					uParam1->f_5 = 111;
  					uParam1->f_6 = 111;
  					uParam1->f_7 = 0;
  					uParam1->f_8 = 156;
  					uParam1->f_10 = 1;
  					StringCopy(&(uParam1->f_27), "FC1988", 16);
  					uParam1->f_11[0] = 1;
  					uParam1->f_11[1] = 1;
  					uParam1->f_11[2] = 1;
  					uParam1->f_11[3] = 1;
  					uParam1->f_11[4] = 1;
  					uParam1->f_11[5] = 1;
  					uParam1->f_11[6] = 1;
  					uParam1->f_11[7] = 1;
  					uParam1->f_11[8] = 1;
  					break;
  			}
  			break;
  		
  		default:
  			break;
  	}
  }
  
  bool func_38(int iParam0)
  {
  	return iParam0 < 3;
  }
  
  void func_39(int iParam0, var uParam1)
  {
  	int iVar0;
  	
  	if (VEHICLE::IS_VEHICLE_DRIVEABLE(iParam0, false))
  	{
  		func_16(uParam1);
  		uParam1->f_66 = ENTITY::GET_ENTITY_MODEL(iParam0);
  		StringCopy(&(uParam1->f_1), VEHICLE::GET_VEHICLE_NUMBER_PLATE_TEXT(iParam0), 16);
  		*uParam1 = VEHICLE::GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(iParam0);
  		VEHICLE::GET_VEHICLE_COLOURS(iParam0, &(uParam1->f_5), &(uParam1->f_6));
  		VEHICLE::GET_VEHICLE_EXTRA_COLOURS(iParam0, &(uParam1->f_7), &(uParam1->f_8));
  		VEHICLE::GET_VEHICLE_TYRE_SMOKE_COLOR(iParam0, &(uParam1->f_62), &(uParam1->f_63), &(uParam1->f_64));
  		uParam1->f_65 = VEHICLE::GET_VEHICLE_WINDOW_TINT(iParam0);
  		uParam1->f_67 = VEHICLE::GET_VEHICLE_LIVERY(iParam0);
  		uParam1->f_69 = VEHICLE::GET_VEHICLE_WHEEL_TYPE(iParam0);
  		uParam1->f_70 = VEHICLE::GET_VEHICLE_DOOR_LOCK_STATUS(iParam0);
  		VEHICLE::GET_VEHICLE_CUSTOM_SECONDARY_COLOUR(iParam0, &(uParam1->f_71), &(uParam1->f_72), &(uParam1->f_73));
  		VEHICLE::_GET_VEHICLE_NEON_LIGHTS_COLOUR(iParam0, &(uParam1->f_74), &(uParam1->f_75), &(uParam1->f_76));
  		if (VEHICLE::_IS_VEHICLE_NEON_LIGHT_ENABLED(iParam0, 2))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 28);
  		}
  		if (VEHICLE::_IS_VEHICLE_NEON_LIGHT_ENABLED(iParam0, 3))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 29);
  		}
  		if (VEHICLE::_IS_VEHICLE_NEON_LIGHT_ENABLED(iParam0, 0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 30);
  		}
  		if (VEHICLE::_IS_VEHICLE_NEON_LIGHT_ENABLED(iParam0, 1))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 31);
  		}
  		if (uParam1->f_65 == -1 && !func_42(uParam1->f_66))
  		{
  			uParam1->f_65 = 0;
  		}
  		if (VEHICLE::IS_VEHICLE_A_CONVERTIBLE(iParam0, false))
  		{
  			uParam1->f_68 = VEHICLE::GET_CONVERTIBLE_ROOF_STATE(iParam0);
  		}
  		if (VEHICLE::IS_THIS_MODEL_A_PLANE(uParam1->f_66))
  		{
  			if (VEHICLE::IS_PLANE_LANDING_GEAR_INTACT(iParam0))
  			{
  				switch (VEHICLE::GET_LANDING_GEAR_STATE(iParam0))
  				{
  					case 3:
  					case 0:
  						MISC::CLEAR_BIT(&(uParam1->f_77), 23);
  						MISC::SET_BIT(&(uParam1->f_77), 22);
  						break;
  					
  					case 4:
  					case 1:
  						MISC::CLEAR_BIT(&(uParam1->f_77), 23);
  						MISC::CLEAR_BIT(&(uParam1->f_77), 22);
  						break;
  					
  					case 5:
  						MISC::SET_BIT(&(uParam1->f_77), 23);
  						break;
  				}
  			}
  			else
  			{
  				MISC::SET_BIT(&(uParam1->f_77), 23);
  			}
  		}
  		if (!VEHICLE::GET_VEHICLE_TYRES_CAN_BURST(iParam0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 9);
  		}
  		if (VEHICLE::IS_VEHICLE_STOLEN(iParam0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 10);
  		}
  		if (VEHICLE::GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM(iParam0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 13);
  			VEHICLE::GET_VEHICLE_CUSTOM_PRIMARY_COLOUR(iParam0, &(uParam1->f_71), &(uParam1->f_72), &(uParam1->f_73));
  		}
  		if (VEHICLE::GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM(iParam0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 12);
  		}
  		func_41(&iParam0, &(uParam1->f_9), &(uParam1->f_59));
  		iVar0 = 0;
  		while (iVar0 <= 11)
  		{
  			if (VEHICLE::IS_VEHICLE_EXTRA_TURNED_ON(iParam0, iVar0 + 1))
  			{
  				MISC::SET_BIT(&(uParam1->f_77), func_40(iVar0 + 1));
  			}
  			iVar0++;
  		}
  		if (GRAPHICS::DOES_VEHICLE_HAVE_CREW_EMBLEM(iParam0, 0))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 11);
  		}
  		else
  		{
  			MISC::CLEAR_BIT(&(uParam1->f_77), 11);
  		}
  		if (DECORATOR::DECOR_EXIST_ON(iParam0, "IgnoredByQuickSave") && DECORATOR::DECOR_GET_BOOL(iParam0, "IgnoredByQuickSave"))
  		{
  			MISC::SET_BIT(&(uParam1->f_77), 27);
  		}
  		else
  		{
  			MISC::CLEAR_BIT(&(uParam1->f_77), 27);
  		}
  	}
  }
  
  int func_40(int iParam0)
  {
  	switch (iParam0)
  	{
  		case 1:
  			return 0;
  			break;
  		
  		case 2:
  			return 1;
  			break;
  		
  		case 3:
  			return 2;
  			break;
  		
  		case 4:
  			return 3;
  			break;
  		
  		case 5:
  			return 4;
  			break;
  		
  		case 6:
  			return 5;
  			break;
  		
  		case 7:
  			return 6;
  			break;
  		
  		case 8:
  			return 7;
  			break;
  		
  		case 9:
  			return 8;
  			break;
  		
  		case 10:
  			return 24;
  			break;
  		
  		case 11:
  			return 25;
  			break;
  		
  		case 12:
  			return 26;
  			break;
  	}
  	return 0;
  }
  
  int func_41(int iParam0, var uParam1, var uParam2)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (!VEHICLE::IS_VEHICLE_DRIVEABLE(*iParam0, false))
  	{
  		return 0;
  	}
  	if (VEHICLE::GET_NUM_MOD_KITS(*iParam0) == 0)
  	{
  		return 0;
  	}
  	iVar0 = 0;
  	while (iVar0 < *uParam1)
  	{
  		iVar1 = iVar0;
  		if ((((iVar1 == 17 || iVar1 == 18) || iVar1 == 19) || iVar1 == 20) || iVar1 == 21)
  		{
  			(*uParam1)[iVar0] = 0;
  			if (VEHICLE::IS_TOGGLE_MOD_ON(*iParam0, iVar1))
  			{
  				(*uParam1)[iVar0] = 1;
  			}
  		}
  		else if (iVar1 == 22)
  		{
  			if (VEHICLE::IS_TOGGLE_MOD_ON(*iParam0, iVar1))
  			{
  				switch (VEHICLE::_GET_VEHICLE_XENON_LIGHTS_COLOR(*iParam0))
  				{
  					case 255:
  						(*uParam1)[iVar0] = 1;
  						break;
  					
  					case 0:
  						(*uParam1)[iVar0] = 2;
  						break;
  					
  					case 1:
  						(*uParam1)[iVar0] = 3;
  						break;
  					
  					case 2:
  						(*uParam1)[iVar0] = 4;
  						break;
  					
  					case 3:
  						(*uParam1)[iVar0] = 5;
  						break;
  					
  					case 4:
  						(*uParam1)[iVar0] = 6;
  						break;
  					
  					case 5:
  						(*uParam1)[iVar0] = 7;
  						break;
  					
  					case 6:
  						(*uParam1)[iVar0] = 8;
  						break;
  					
  					case 7:
  						(*uParam1)[iVar0] = 9;
  						break;
  					
  					case 8:
  						(*uParam1)[iVar0] = 10;
  						break;
  					
  					case 9:
  						(*uParam1)[iVar0] = 11;
  						break;
  					
  					case 10:
  						(*uParam1)[iVar0] = 12;
  						break;
  					
  					case 11:
  						(*uParam1)[iVar0] = 13;
  						break;
  					
  					case 12:
  						(*uParam1)[iVar0] = 14;
  						break;
  					
  					case 13:
  						(*uParam1)[iVar0] = 15;
  						break;
  				}
  			}
  			else
  			{
  				(*uParam1)[iVar0] = 0;
  			}
  		}
  		else
  		{
  			(*uParam1)[iVar0] = VEHICLE::GET_VEHICLE_MOD(*iParam0, iVar0) + 1;
  			if (iVar0 == 23)
  			{
  				(*uParam2)[0] = VEHICLE::GET_VEHICLE_MOD_VARIATION(*iParam0, iVar0);
  			}
  			else if (iVar0 == 24)
  			{
  				(*uParam2)[1] = VEHICLE::GET_VEHICLE_MOD_VARIATION(*iParam0, iVar0);
  			}
  		}
  		iVar0++;
  	}
  	return 1;
  }
  
  int func_42(int iParam0)
  {
  	switch (iParam0)
  	{
  		case joaat("granger"):
  		case joaat("visione"):
  			return 1;
  		
  		default:
  	}
  	return 0;
  }
  
  int func_43(int iParam0, var uParam1, int iParam2, int iParam3)
  {
  	char* sVar0;
  	
  	if (ENTITY::DOES_ENTITY_EXIST(iParam0))
  	{
  		if (!PED::IS_PED_INJURED(iParam0))
  		{
  			if (iParam0 == PLAYER::PLAYER_PED_ID())
  			{
  				*uParam1 = PLAYER::GET_PLAYERS_LAST_VEHICLE();
  			}
  			else
  			{
  				*uParam1 = PED::GET_VEHICLE_PED_IS_IN(iParam0, true);
  			}
  			if (ENTITY::DOES_ENTITY_EXIST(*uParam1))
  			{
  				if (VEHICLE::IS_VEHICLE_DRIVEABLE(*uParam1, false))
  				{
  					if (iParam2 == 0 || MISC::GET_DISTANCE_BETWEEN_COORDS(ENTITY::GET_ENTITY_COORDS(*uParam1, true), ENTITY::GET_ENTITY_COORDS(iParam0, true), true) < 100f)
  					{
  						if (VEHICLE::IS_VEHICLE_MODEL(*uParam1, joaat("taxi")))
  						{
  							if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(*uParam1, -1, false) != iParam0 && VEHICLE::GET_PED_IN_VEHICLE_SEAT(*uParam1, -1, false) != 0)
  							{
  								return 0;
  							}
  						}
  						if (func_44(*uParam1, func_106(), 1))
  						{
  							sVar0 = SCRIPT::GET_THIS_SCRIPT_NAME();
  							if (!MISC::ARE_STRINGS_EQUAL(sVar0, "save_anywhere"))
  							{
  								return 0;
  							}
  							else if (!PED::IS_PED_IN_ANY_VEHICLE(iParam0, true))
  							{
  								return 0;
  							}
  						}
  						if (iParam3 == 1)
  						{
  							if (DECORATOR::DECOR_EXIST_ON(*uParam1, "IgnoredByQuickSave"))
  							{
  								if (DECORATOR::DECOR_GET_BOOL(*uParam1, "IgnoredByQuickSave"))
  								{
  									return 0;
  								}
  							}
  						}
  						else if (VEHICLE::IS_VEHICLE_MODEL(*uParam1, joaat("blimp")))
  						{
  							return 0;
  						}
  						return 1;
  					}
  				}
  			}
  		}
  	}
  	return 0;
  }
  
  int func_44(int iParam0, int iParam1, bool bParam2)
  {
  	int iVar0;
  	char* sVar1;
  	int iVar9;
  	
  	if (!ENTITY::DOES_ENTITY_EXIST(iParam0) || !VEHICLE::IS_VEHICLE_DRIVEABLE(iParam0, false))
  	{
  		return 0;
  	}
  	iVar0 = 0;
  	while (func_45(iParam1, iVar0, &sVar1, &iVar9))
  	{
  		if (!bParam2 || MISC::IS_BIT_SET(Global_111858.f_7225[iVar9], 0))
  		{
  			if (VEHICLE::IS_VEHICLE_IN_GARAGE_AREA(&sVar1, iParam0))
  			{
  				return 1;
  			}
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  int func_45(int iParam0, int iParam1, char* sParam2, var uParam3)
  {
  	StringCopy(sParam2, "", 32);
  	switch (iParam0)
  	{
  		case 0:
  			if (iParam1 == 0)
  			{
  				StringCopy(sParam2, "Michael - Beverly Hills", 32);
  				*uParam3 = 0;
  				return 1;
  			}
  			else if (iParam1 == 1)
  			{
  				StringCopy(sParam2, "Trevor - Countryside", 32);
  				*uParam3 = 1;
  				return 1;
  			}
  			break;
  		
  		case 1:
  			if (iParam1 == 0)
  			{
  				StringCopy(sParam2, "Franklin - Aunt", 32);
  				*uParam3 = 5;
  				return 1;
  			}
  			else if (iParam1 == 1)
  			{
  				StringCopy(sParam2, "Franklin - Hills", 32);
  				*uParam3 = 6;
  				return 1;
  			}
  			break;
  		
  		case 2:
  			if (iParam1 == 0)
  			{
  				StringCopy(sParam2, "Trevor - Countryside", 32);
  				*uParam3 = 2;
  				return 1;
  			}
  			else if (iParam1 == 1)
  			{
  				StringCopy(sParam2, "Trevor - City", 32);
  				*uParam3 = 3;
  				return 1;
  			}
  			else if (iParam1 == 2)
  			{
  				StringCopy(sParam2, "Trevor - Stripclub", 32);
  				*uParam3 = 4;
  				return 1;
  			}
  			break;
  	}
  	return 0;
  }
  
  int func_46(int iParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (ENTITY::DOES_ENTITY_EXIST(iParam0))
  	{
  		iVar1 = ENTITY::GET_ENTITY_MODEL(iParam0);
  		iVar0 = 0;
  		while (iVar0 <= 2)
  		{
  			if (func_47(iVar0) == iVar1)
  			{
  				return iVar0;
  			}
  			iVar0++;
  		}
  	}
  	return 145;
  }
  
  int func_47(int iParam0)
  {
  	if (func_38(iParam0))
  	{
  		return func_48(iParam0);
  	}
  	else if (iParam0 != 145)
  	{
  	}
  	return 0;
  }
  
  var func_48(int iParam0)
  {
  	return Global_1848[iParam0 /*29*/];
  }
  
  void func_49(int iParam0, var uParam1, int iParam2, int iParam3)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (!PED::IS_PED_INJURED(iParam0))
  	{
  		iVar0 = func_46(iParam0);
  		iVar1 = 0;
  		while (iVar1 < 12)
  		{
  			func_55(iParam0, iVar1, &(uParam1->f_13[iVar1]), uParam1[iVar1], &(uParam1->f_26[iVar1]), iParam2, 145);
  			iVar1++;
  		}
  		iVar1 = 0;
  		while (iVar1 < 9)
  		{
  			func_54(iParam0, iVar1, &(uParam1->f_39[iVar1]), &(uParam1->f_49[iVar1]), iParam2, 145);
  			iVar1++;
  		}
  		if (func_38(iVar0))
  		{
  			uParam1->f_59 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_59;
  			uParam1->f_60 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_60;
  			uParam1->f_61 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_61;
  			uParam1->f_62 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_62;
  			uParam1->f_63 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_63;
  			uParam1->f_64 = Global_111858.f_2359.f_539[iVar0 /*65*/].f_64;
  		}
  		else if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && ENTITY::GET_ENTITY_MODEL(iParam0) == ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()))
  		{
  			if (func_53(161, iParam3))
  			{
  				uParam1->f_59 = func_50(2052, iParam3, 0);
  			}
  			else
  			{
  				uParam1->f_59 = func_50(752, iParam3, 0);
  			}
  			uParam1->f_60 = func_50(753, iParam3, 0);
  			uParam1->f_61 = func_50(754, iParam3, 0);
  		}
  		if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && iParam0 == PLAYER::PLAYER_PED_ID())
  		{
  			if (func_53(161, iParam3))
  			{
  				uParam1->f_59 = func_50(2052, iParam3, 0);
  			}
  			else
  			{
  				uParam1->f_59 = func_50(752, iParam3, 0);
  			}
  		}
  	}
  }
  
  int func_50(int iParam0, int iParam1, int iParam2)
  {
  	int iVar0;
  	var uVar1;
  	
  	if (iParam0 != 11771)
  	{
  		if (iParam2 == 0)
  		{
  		}
  		iVar0 = Global_2552060[iParam0 /*3*/][func_51(iParam1)];
  		if (STATS::STAT_GET_INT(iVar0, &uVar1, -1))
  		{
  			return uVar1;
  		}
  	}
  	return 0;
  }
  
  int func_51(var uParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	iVar0 = uParam0;
  	if (iVar0 == -1)
  	{
  		iVar1 = func_52();
  		if (iVar1 > -1)
  		{
  			Global_2551772 = 0;
  			iVar0 = iVar1;
  		}
  		else
  		{
  			iVar0 = 0;
  			Global_2551772 = 1;
  		}
  	}
  	return iVar0;
  }
  
  var func_52()
  {
  	return Global_1312763;
  }
  
  int func_53(int iParam0, int iParam1)
  {
  	int iVar0;
  	var uVar1;
  	
  	iVar0 = Global_2588062[iParam0 /*3*/][func_51(iParam1)];
  	if (STATS::STAT_GET_BOOL(iVar0, &uVar1, -1))
  	{
  		return uVar1;
  	}
  	return 0;
  }
  
  void func_54(int iParam0, int iParam1, var uParam2, var uParam3, int iParam4, int iParam5)
  {
  	int iVar0;
  	
  	iVar0 = func_46(iParam0);
  	if (iParam0 != 0)
  	{
  		*uParam2 = PED::GET_PED_PROP_INDEX(iParam0, iParam1);
  		*uParam3 = PED::GET_PED_PROP_TEXTURE_INDEX(iParam0, iParam1);
  	}
  	else
  	{
  		iVar0 = iParam5;
  	}
  	if (iParam4 == 0)
  	{
  		return;
  	}
  	if (iParam1 == 0)
  	{
  		if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  		{
  			if (iParam0 != 0)
  			{
  				if (PED::IS_PED_WEARING_HELMET(iParam0) && PED::GET_PED_HELMET_STORED_HAT_PROP_INDEX(iParam0) != -1)
  				{
  					*uParam2 = PED::GET_PED_HELMET_STORED_HAT_PROP_INDEX(iParam0);
  					*uParam3 = PED::GET_PED_HELMET_STORED_HAT_TEX_INDEX(iParam0);
  				}
  			}
  		}
  	}
  	switch (iVar0)
  	{
  		case 0:
  			if (iParam1 == 0)
  			{
  				if (*uParam2 == 7)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 11)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 21)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 16 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 23)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 27)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 28)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 >= 14 && *uParam2 <= 20)
  				{
  					if (iParam4 & 2 != 0 || iParam4 & 4 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  			}
  			else if (iParam1 == 1)
  			{
  				if (*uParam2 == 1)
  				{
  					if (iParam4 & 2 != 0 || iParam4 & 64 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  			}
  			break;
  		
  		case 1:
  			if (iParam1 == 0)
  			{
  				if (*uParam2 == 2)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 4)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 16 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 6)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 17)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 20)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 21)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 >= 8 && *uParam2 <= 14)
  				{
  					if (iParam4 & 2 != 0 || iParam4 & 4 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  			}
  			break;
  		
  		case 2:
  			if (iParam1 == 0)
  			{
  				if (*uParam2 == 9)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 11)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 12)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 21)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 23)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if (*uParam2 == 27)
  				{
  					if ((iParam4 & 1 != 0 || iParam4 & 2 != 0) || iParam4 & 8 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  				else if ((*uParam2 >= 14 && *uParam2 <= 20) || *uParam2 == 2)
  				{
  					if (iParam4 & 2 != 0 || iParam4 & 4 != 0)
  					{
  						*uParam2 = -1;
  						*uParam3 = -1;
  					}
  				}
  			}
  			break;
  	}
  }
  
  void func_55(int iParam0, int iParam1, var uParam2, var uParam3, var uParam4, int iParam5, int iParam6)
  {
  	int iVar0;
  	
  	iVar0 = func_46(iParam0);
  	if (iParam0 != 0)
  	{
  		*uParam2 = PED::GET_PED_DRAWABLE_VARIATION(iParam0, iParam1);
  		*uParam3 = PED::GET_PED_TEXTURE_VARIATION(iParam0, iParam1);
  		*uParam4 = PED::GET_PED_PALETTE_VARIATION(iParam0, iParam1);
  	}
  	else
  	{
  		iVar0 = iParam6;
  	}
  	if (iParam5 == 0)
  	{
  		return;
  	}
  	switch (iVar0)
  	{
  		case 0:
  			if (iParam1 == 8)
  			{
  				if ((iParam5 & 1 != 0 || iParam5 & 2 != 0) || iParam5 & 32 != 0)
  				{
  					if (*uParam2 == 15)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  				if (iParam5 & 2 != 0 || iParam5 & 64 != 0)
  				{
  					if (*uParam2 == 3 || *uParam2 == 22)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  			}
  			else if (iParam1 == 9)
  			{
  				if ((iParam5 & 1 != 0 || iParam5 & 2 != 0) || iParam5 & 32 != 0)
  				{
  					if (*uParam2 == 5)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  				if (iParam5 & 2 != 0 || iParam5 & 4 != 0)
  				{
  					if (*uParam2 == 8)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  			}
  			break;
  		
  		case 1:
  			if (iParam1 == 8)
  			{
  				if ((iParam5 & 1 != 0 || iParam5 & 2 != 0) || iParam5 & 32 != 0)
  				{
  					if (*uParam2 == 1 || *uParam2 == 10)
  					{
  						*uParam2 = 14;
  						*uParam3 = 0;
  					}
  				}
  				if (iParam5 & 2 != 0 || iParam5 & 64 != 0)
  				{
  					if (*uParam2 == 19)
  					{
  						*uParam2 = 14;
  						*uParam3 = 0;
  					}
  				}
  			}
  			else if (iParam1 == 9)
  			{
  				if (iParam5 & 2 != 0 || iParam5 & 4 != 0)
  				{
  					if (*uParam2 == 5)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  			}
  			break;
  		
  		case 2:
  			if (iParam1 == 8)
  			{
  				if ((iParam5 & 1 != 0 || iParam5 & 2 != 0) || iParam5 & 32 != 0)
  				{
  					if (*uParam2 == 3)
  					{
  						*uParam2 = 14;
  						*uParam3 = 0;
  					}
  				}
  			}
  			else if (iParam1 == 9)
  			{
  				if (*uParam2 >= 5 && *uParam2 <= 7)
  				{
  					if (iParam5 & 2 != 0 || iParam5 & 4 != 0)
  					{
  						*uParam2 = 0;
  						*uParam3 = 0;
  					}
  				}
  			}
  			break;
  	}
  }
  
  int func_56()
  {
  	func_57();
  	return Global_111858.f_2359.f_539.f_4321;
  }
  
  void func_57()
  {
  	int iVar0;
  	
  	if (ENTITY::DOES_ENTITY_EXIST(PLAYER::PLAYER_PED_ID()))
  	{
  		if (func_47(Global_111858.f_2359.f_539.f_4321) != ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()))
  		{
  			iVar0 = func_46(PLAYER::PLAYER_PED_ID());
  			if (func_38(iVar0) && (!func_58(14) || Global_110809))
  			{
  				if (Global_111858.f_2359.f_539.f_4321 != iVar0 && func_38(Global_111858.f_2359.f_539.f_4321))
  				{
  					Global_111858.f_2359.f_539.f_4322 = Global_111858.f_2359.f_539.f_4321;
  				}
  				Global_111858.f_2359.f_539.f_4323 = iVar0;
  				Global_111858.f_2359.f_539.f_4321 = iVar0;
  				return;
  			}
  		}
  		else
  		{
  			if (Global_111858.f_2359.f_539.f_4321 != 145)
  			{
  				Global_111858.f_2359.f_539.f_4323 = Global_111858.f_2359.f_539.f_4321;
  			}
  			return;
  		}
  	}
  	Global_111858.f_2359.f_539.f_4321 = 145;
  }
  
  bool func_58(int iParam0)
  {
  	return Global_41631 == iParam0;
  }
  
  void func_59(int iParam0, bool bParam1)
  {
  	int iVar0;
  	int iVar1;
  	int iVar2;
  	int iVar3;
  	
  	iVar0 = func_46(iParam0);
  	if (func_38(iVar0) && !PED::IS_PED_INJURED(iParam0))
  	{
  		if (iParam0 == PLAYER::PLAYER_PED_ID())
  		{
  			func_60(iParam0, &(Global_111858.f_2359.f_539.f_298[iVar0 /*477*/]));
  			iVar2 = 0;
  			while (iVar2 <= (8 - 1))
  			{
  				Global_111858.f_2359.f_539.f_1730[iVar2 /*4*/][iVar0] = HUD::_HUD_WEAPON_WHEEL_GET_SLOT_HASH(iVar2);
  				if (bParam1)
  				{
  					iVar1 = HUD::_HUD_WEAPON_WHEEL_GET_SELECTED_HASH();
  					if (Global_111858.f_2359.f_539.f_1730[iVar2 /*4*/][iVar0] == iVar1)
  					{
  						Global_111858.f_2359.f_539.f_1763 = iVar2;
  					}
  				}
  				iVar2++;
  			}
  			PLAYER::GET_PLAYER_PARACHUTE_PACK_TINT_INDEX(PLAYER::PLAYER_ID(), &iVar3);
  			if (iVar0 == 0)
  			{
  				STATS::STAT_SET_INT(joaat("sp0_parachute_current_tint"), iVar3, true);
  			}
  			else if (iVar0 == 1)
  			{
  				STATS::STAT_SET_INT(joaat("sp1_parachute_current_tint"), iVar3, true);
  			}
  			else if (iVar0 == 2)
  			{
  				STATS::STAT_SET_INT(joaat("sp2_parachute_current_tint"), iVar3, true);
  			}
  		}
  	}
  }
  
  void func_60(int iParam0, var uParam1)
  {
  	int iVar0;
  	int iVar1;
  	int iVar2;
  	int iVar3;
  	struct<5> Var4;
  	int iVar9;
  	int iVar10;
  	struct<2> Var11;
  	struct<4> Var50;
  	int iVar72;
  	int iVar73;
  	
  	if (!PED::IS_PED_INJURED(iParam0))
  	{
  		iVar0 = 0;
  		while (iVar0 <= (44 - 1))
  		{
  			(uParam1[iVar0 /*5*/])->f_1 = 0;
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 <= (44 - 1))
  		{
  			iVar3 = func_65(iVar0);
  			if (iVar3 != 0)
  			{
  				Var4 = WEAPON::GET_PED_WEAPONTYPE_IN_SLOT(iParam0, func_65(iVar0));
  				Var4.f_1 = 0;
  				Var4.f_2 = 0;
  				Var4.f_3 = 0;
  				Var4.f_4 = 0;
  				if (Var4 != 0 && Var4 != joaat("weapon_unarmed"))
  				{
  					Var4.f_1 = WEAPON::GET_AMMO_IN_PED_WEAPON(iParam0, Var4);
  					if (Var4 == joaat("gadget_parachute"))
  					{
  						Var4.f_1 = 1;
  					}
  					Var4.f_3 = WEAPON::GET_PED_WEAPON_TINT_INDEX(iParam0, Var4);
  					Var4.f_4 = WEAPON::_0xA2C9AC24B4061285(iParam0, Var4);
  					if (Var4.f_1 == -1)
  					{
  						if (!WEAPON::GET_MAX_AMMO(iParam0, Var4, &(Var4.f_1)))
  						{
  							Var4.f_1 = 0;
  						}
  					}
  					(uParam1[iVar0 /*5*/])->f_1 = Var4.f_1;
  					iVar1 = 0;
  					iVar2 = func_63(Var4, iVar1);
  					while (iVar2 != 0)
  					{
  						if (WEAPON::HAS_PED_GOT_WEAPON_COMPONENT(iParam0, Var4, iVar2))
  						{
  							MISC::SET_BIT(&(Var4.f_2), iVar1);
  						}
  						iVar1++;
  						iVar2 = func_63(Var4, iVar1);
  					}
  				}
  				*(uParam1[iVar0 /*5*/]) = { Var4 };
  			}
  			iVar0++;
  		}
  		iVar0 = 0;
  		while (iVar0 <= 50)
  		{
  			uParam1->f_221[iVar0 /*5*/].f_1 = 0;
  			iVar0++;
  		}
  		iVar10 = FILES::_GET_NUM_DLC_WEAPONS_SP();
  		iVar9 = 0;
  		while (iVar9 < iVar10)
  		{
  			if ((FILES::_GET_DLC_WEAPON_DATA_SP(iVar9, &Var11) && !func_62(Var11.f_1)) && iVar72 < 51)
  			{
  				if (!FILES::IS_CONTENT_ITEM_LOCKED(Var11))
  				{
  					Var4 = Var11.f_1;
  					Var4.f_1 = 0;
  					Var4.f_2 = 0;
  					Var4.f_3 = 0;
  					Var4.f_4 = 0;
  					Var4.f_1 = WEAPON::GET_AMMO_IN_PED_WEAPON(iParam0, Var4);
  					if (WEAPON::HAS_PED_GOT_WEAPON(iParam0, Var4, false))
  					{
  						Var4.f_3 = WEAPON::GET_PED_WEAPON_TINT_INDEX(iParam0, Var4);
  						Var4.f_4 = WEAPON::_0xA2C9AC24B4061285(iParam0, Var4);
  					}
  					if (Var4.f_1 == -1)
  					{
  						if (!WEAPON::GET_MAX_AMMO(iParam0, Var4, &(Var4.f_1)))
  						{
  							Var4.f_1 = 0;
  						}
  					}
  					uParam1->f_221[iVar72 /*5*/].f_1 = Var4.f_1;
  					iVar73 = 0;
  					iVar1 = 0;
  					while (iVar1 < FILES::_GET_NUM_DLC_WEAPON_COMPONENTS_SP(iVar9))
  					{
  						if (FILES::_GET_DLC_WEAPON_COMPONENT_DATA_SP(iVar9, iVar1, &Var50))
  						{
  							if (!func_61(Var50.f_3))
  							{
  								if (WEAPON::HAS_PED_GOT_WEAPON_COMPONENT(iParam0, Var4, Var50.f_3))
  								{
  									MISC::SET_BIT(&(Var4.f_2), iVar73);
  								}
  								iVar73++;
  							}
  						}
  						iVar1++;
  					}
  				}
  				if (Var4 != 0)
  				{
  					if (!WEAPON::HAS_PED_GOT_WEAPON(iParam0, Var4, false))
  					{
  						Var4 = 0;
  						Var4.f_1 = 0;
  					}
  				}
  				uParam1->f_221[iVar72 /*5*/] = { Var4 };
  				iVar72++;
  			}
  			iVar9++;
  		}
  	}
  }
  
  int func_61(int iParam0)
  {
  	switch (iParam0)
  	{
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_02_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_03_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_04_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_05_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_06_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_07_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_08_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_09_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_10_SLIDE"):
  		case joaat("COMPONENT_PISTOL_MK2_CAMO_IND_01_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_02_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_03_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_04_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_05_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_06_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_07_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_08_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_09_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_10_SLIDE"):
  		case joaat("COMPONENT_SNSPISTOL_MK2_CAMO_IND_01_SLIDE"):
  			return 1;
  			break;
  	}
  	return 0;
  }
  
  int func_62(int iParam0)
  {
  	if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS())
  	{
  	}
  	else
  	{
  		switch (iParam0)
  		{
  			case joaat("weapon_pistol50"):
  			case joaat("weapon_bullpupshotgun"):
  			case joaat("weapon_assaultsmg"):
  				return 0;
  				break;
  			
  			case joaat("weapon_bottle"):
  			case joaat("weapon_snspistol"):
  			case joaat("weapon_gusenberg"):
  				return 0;
  				break;
  			
  			case joaat("weapon_heavypistol"):
  			case joaat("weapon_specialcarbine"):
  				return 0;
  				break;
  			
  			case joaat("weapon_bullpuprifle"):
  				return 0;
  				break;
  			
  			case joaat("weapon_dagger"):
  			case joaat("weapon_vintagepistol"):
  				return 0;
  				break;
  			
  			case joaat("weapon_firework"):
  			case joaat("weapon_musket"):
  				return 0;
  				break;
  			
  			case joaat("weapon_heavyshotgun"):
  			case joaat("weapon_marksmanrifle"):
  				return 0;
  				break;
  			
  			case joaat("weapon_hominglauncher"):
  			case joaat("weapon_proxmine"):
  				return 0;
  				break;
  			
  			case joaat("weapon_combatpdw"):
  			case joaat("weapon_knuckle"):
  			case joaat("weapon_marksmanpistol"):
  				return 0;
  				break;
  			
  			case -947031628:
  			case -572349828:
  			case 392730790:
  			case -1523701417:
  			case -2112826155:
  			case -664359727:
  			case -1887867191:
  			case -837150131:
  			case -344484024:
  			case joaat("weapon_flaregun"):
  			case joaat("weapon_handcuffs"):
  			case joaat("weapon_snowball"):
  			case joaat("weapon_garbagebag"):
  			case joaat("weapon_flashlight"):
  			case joaat("weapon_switchblade"):
  			case joaat("weapon_revolver"):
  			case joaat("weapon_dbshotgun"):
  			case joaat("weapon_compactrifle"):
  			case joaat("weapon_autoshotgun"):
  			case joaat("weapon_minismg"):
  			case joaat("weapon_compactlauncher"):
  			case joaat("weapon_battleaxe"):
  			case joaat("weapon_pipebomb"):
  			case joaat("weapon_poolcue"):
  			case joaat("weapon_wrench"):
  			case joaat("weapon_doubleaction"):
  			case joaat("weapon_raycarbine"):
  			case joaat("weapon_rayminigun"):
  			case joaat("weapon_raypistol"):
  			case joaat("weapon_navyrevolver"):
  			case joaat("weapon_ceramicpistol"):
  			case joaat("weapon_gadgetpistol"):
  			case joaat("weapon_militaryrifle"):
  			case joaat("weapon_combatshotgun"):
  				return 1;
  				break;
  			}
  	}
  	return 0;
  }
  
  int func_63(int iParam0, int iParam1)
  {
  	int iVar0;
  	int iVar1;
  	int iVar2;
  	int iVar3;
  	int* iVar4;
  	struct<4> Var43;
  	
  	iVar0 = 0;
  	switch (iParam0)
  	{
  		case joaat("weapon_pistol"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_pistol_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_pistol_clip_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_pi_flsh");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_pi_supp_02");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_pistol_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_combatpistol"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_combatpistol_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_combatpistol_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_pi_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_pi_supp");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_combatpistol_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_appistol"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_appistol_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_appistol_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_pi_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_pi_supp");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_appistol_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_microsmg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_microsmg_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_microsmg_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_pi_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_scope_macro");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_microsmg_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_smg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_smg_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_smg_clip_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_smg_clip_03");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_pi_supp");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_at_scope_macro_02");
  					break;
  				
  				case 7:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 8:
  					iVar0 = joaat("component_smg_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_assaultrifle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_assaultrifle_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_assaultrifle_clip_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_assaultrifle_clip_03");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_at_scope_macro");
  					break;
  				
  				case 7:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 8:
  					iVar0 = joaat("component_assaultrifle_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_carbinerifle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_carbinerifle_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_carbinerifle_clip_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_carbinerifle_clip_03");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_railcover_01");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 7:
  					iVar0 = joaat("component_at_scope_medium");
  					break;
  				
  				case 8:
  					iVar0 = joaat("component_at_ar_supp");
  					break;
  				
  				case 9:
  					iVar0 = joaat("component_carbinerifle_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_advancedrifle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_advancedrifle_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_advancedrifle_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_scope_small");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_supp");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_advancedrifle_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_mg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_mg_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_mg_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_scope_small_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_mg_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_combatmg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_combatmg_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_combatmg_clip_02");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_scope_medium");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_combatmg_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_pumpshotgun"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_at_sr_supp");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_pumpshotgun_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_assaultshotgun"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_assaultshotgun_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_assaultshotgun_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_supp");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_sniperrifle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_sniperrifle_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_at_scope_large");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_scope_max");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_sniperrifle_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_heavysniper"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = 1623028892;
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_heavysniper_clip_01");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_scope_large");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_scope_max");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_grenadelauncher"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_scope_small");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_minigun"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_minigun_clip_01");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_assaultsmg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_assaultsmg_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_assaultsmg_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_scope_macro");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_assaultsmg_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_bullpupshotgun"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_pistol50"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_pistol50_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_pistol50_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_pi_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_pistol50_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_combatpdw"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_combatpdw_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_combatpdw_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_combatpdw_clip_03");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_scope_small");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_sawnoffshotgun"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_sawnoffshotgun_varmod_luxe");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_bullpuprifle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_bullpuprifle_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_bullpuprifle_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_scope_small");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_ar_supp");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_bullpuprifle_varmod_low");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_snspistol"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_snspistol_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_snspistol_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_snspistol_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_specialcarbine"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_specialcarbine_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_specialcarbine_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_specialcarbine_clip_03");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_ar_flsh");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_at_scope_medium");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_at_ar_supp_02");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_at_ar_afgrip");
  					break;
  				
  				case 7:
  					iVar0 = joaat("component_specialcarbine_varmod_lowrider");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_knuckle"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_knuckle_varmod_pimp");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_knuckle_varmod_ballas");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_knuckle_varmod_dollar");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_knuckle_varmod_diamond");
  					break;
  				
  				case 4:
  					iVar0 = joaat("component_knuckle_varmod_hate");
  					break;
  				
  				case 5:
  					iVar0 = joaat("component_knuckle_varmod_love");
  					break;
  				
  				case 6:
  					iVar0 = joaat("component_knuckle_varmod_player");
  					break;
  				
  				case 7:
  					iVar0 = joaat("component_knuckle_varmod_king");
  					break;
  				
  				case 8:
  					iVar0 = joaat("component_knuckle_varmod_vagos");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_machinepistol"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_machinepistol_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_machinepistol_clip_02");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_machinepistol_clip_03");
  					break;
  				
  				case 3:
  					iVar0 = joaat("component_at_pi_supp");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_switchblade"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_switchblade_varmod_var1");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_switchblade_varmod_var2");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_revolver"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_revolver_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_revolver_varmod_boss");
  					break;
  				
  				case 2:
  					iVar0 = joaat("component_revolver_varmod_goon");
  					break;
  			}
  			break;
  		
  		case joaat("weapon_minismg"):
  			switch (iParam1)
  			{
  				case 0:
  					iVar0 = joaat("component_minismg_clip_01");
  					break;
  				
  				case 1:
  					iVar0 = joaat("component_minismg_clip_02");
  					break;
  			}
  			break;
  		
  		default:
  			if (iParam0 != 0)
  			{
  				iVar1 = func_64(iParam0, &iVar4);
  				if (iVar1 != -1)
  				{
  					iVar2 = 0;
  					while (iVar2 < FILES::GET_NUM_DLC_WEAPON_COMPONENTS(iVar1))
  					{
  						if (FILES::GET_DLC_WEAPON_COMPONENT_DATA(iVar1, iVar2, &Var43))
  						{
  							if (!func_61(Var43.f_3))
  							{
  								if (iVar3 == iParam1)
  								{
  									return Var43.f_3;
  								}
  								iVar3++;
  							}
  						}
  						iVar2++;
  					}
  				}
  			}
  			break;
  	}
  	return iVar0;
  }
  
  int func_64(int iParam0, int* iParam1)
  {
  	int iVar0;
  	int iVar1;
  	
  	iVar1 = FILES::GET_NUM_DLC_WEAPONS();
  	iVar0 = 0;
  	while (iVar0 < iVar1)
  	{
  		if (FILES::GET_DLC_WEAPON_DATA(iVar0, iParam1))
  		{
  			if (iParam1->f_1 == iParam0)
  			{
  				return iVar0;
  			}
  		}
  		iVar0++;
  	}
  	return -1;
  }
  
  int func_65(int iParam0)
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	switch (iParam0)
  	{
  		case 0:
  			iVar0 = 1993361168;
  			break;
  		
  		case 1:
  			iVar0 = 1277010230;
  			break;
  		
  		case 2:
  			iVar0 = 932043479;
  			break;
  		
  		case 3:
  			iVar0 = -690654591;
  			break;
  		
  		case 4:
  			iVar0 = -1459198205;
  			break;
  		
  		case 5:
  			iVar0 = 195782970;
  			break;
  		
  		case 6:
  			iVar0 = -438797331;
  			break;
  		
  		case 7:
  			iVar0 = 896793492;
  			break;
  		
  		case 8:
  			iVar0 = 495159329;
  			break;
  		
  		case 9:
  			iVar0 = -1155528315;
  			break;
  		
  		case 10:
  			iVar0 = -515636489;
  			break;
  		
  		case 11:
  			iVar0 = -871913299;
  			break;
  		
  		case 12:
  			iVar0 = -1352759032;
  			break;
  		
  		case 13:
  			iVar0 = -542958961;
  			break;
  		
  		case 14:
  			iVar0 = 1682645887;
  			break;
  		
  		case 15:
  			iVar0 = -859470162;
  			break;
  		
  		case 16:
  			iVar0 = -2125426402;
  			break;
  		
  		case 17:
  			iVar0 = 2067210266;
  			break;
  		
  		case 18:
  			iVar0 = -538172856;
  			break;
  		
  		case 19:
  			iVar0 = 1783244476;
  			break;
  		
  		case 20:
  			iVar0 = 439844898;
  			break;
  		
  		case 21:
  			iVar0 = -24829327;
  			break;
  		
  		case 22:
  			iVar0 = 1949306232;
  			break;
  		
  		case 23:
  			iVar0 = -1941230881;
  			break;
  		
  		case 24:
  			iVar0 = -1033554448;
  			break;
  		
  		case 25:
  			iVar0 = 320513715;
  			break;
  		
  		case 26:
  			iVar0 = -695165975;
  			break;
  		
  		case 27:
  			iVar0 = -281028447;
  			break;
  		
  		case 28:
  			iVar0 = -686713772;
  			break;
  		
  		case 29:
  			iVar0 = 347509793;
  			break;
  		
  		case 30:
  			iVar0 = 1769089473;
  			break;
  		
  		case 31:
  			iVar0 = 189935548;
  			break;
  		
  		case 33:
  			iVar0 = 248801358;
  			break;
  		
  		case 34:
  			iVar0 = 386596758;
  			break;
  		
  		case 35:
  			iVar0 = -157212362;
  			break;
  		
  		case 36:
  			iVar0 = 436985596;
  			break;
  		
  		case 37:
  			iVar0 = -47957369;
  			break;
  		
  		case 38:
  			iVar0 = 575938238;
  			break;
  	}
  	return iVar0;
  }
  
  void func_66(int iParam0)
  {
  	int iVar0;
  	
  	iVar0 = func_46(iParam0);
  	if (func_38(iVar0) && !PED::IS_PED_INJURED(iParam0))
  	{
  		Global_111858.f_2359.f_539.f_294[iVar0] = PED::GET_PED_ARMOUR(iParam0);
  	}
  }
  
  void func_67(var uParam0, int iParam1)
  {
  	int iVar0;
  	struct<3> Var1;
  	var uVar4;
  	int iVar5;
  	
  	*uParam0 = { ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), true) };
  	uParam0->f_3 = ENTITY::GET_ENTITY_HEADING(PLAYER::PLAYER_PED_ID());
  	uParam0->f_5 = PED::GET_PED_PARACHUTE_STATE(PLAYER::PLAYER_PED_ID());
  	if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()))
  	{
  		uParam0->f_4 = PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID());
  	}
  	if (SYSTEM::VDIST(*uParam0, 320.9934f, 265.2515f, 82.1221f) < 10f)
  	{
  		*uParam0 = { 301.2162f, 202.1357f, 103.3797f };
  		uParam0->f_3 = 156.5144f;
  	}
  	else if (SYSTEM::VDIST(*uParam0, 377.153f, -717.567f, 10.0536f) < 10f)
  	{
  		*uParam0 = { 394.2567f, -713.5439f, 28.2853f };
  		uParam0->f_3 = 276.6273f;
  	}
  	else if (SYSTEM::VDIST(*uParam0, -1425.564f, -244.3f, 15.8053f) < 10f)
  	{
  		*uParam0 = { -1423.472f, -214.2539f, 45.5004f };
  		uParam0->f_3 = 353.8757f;
  	}
  	else if (SCRIPT::_GET_NUMBER_OF_REFERENCES_OF_SCRIPT_WITH_NAME_HASH(joaat("finale_choice")) > 0)
  	{
  		*uParam0 = { 4.2587f, 525.0214f, 173.6281f };
  		uParam0->f_3 = 203.6746f;
  	}
  	else if (MISC::IS_BIT_SET(Global_77081, 4))
  	{
  		*uParam0 = { 452.0255f, 5571.85f, 780.1859f };
  		uParam0->f_3 = 78.9858f;
  	}
  	else if (MISC::IS_BIT_SET(Global_77081, 5))
  	{
  		*uParam0 = { -745.4462f, 5595.146f, 40.6594f };
  		uParam0->f_3 = 261.747f;
  	}
  	else if (MISC::IS_BIT_SET(Global_77081, 6))
  	{
  		*uParam0 = { -1675.521f, -1125.59f, 12.091f };
  		uParam0->f_3 = 271.8208f;
  	}
  	else if (MISC::IS_BIT_SET(Global_77081, 7))
  	{
  		*uParam0 = { -1631.219f, -1112.805f, 12.0212f };
  		uParam0->f_3 = 316.8879f;
  	}
  	else if (INTERIOR::GET_INTERIOR_FROM_ENTITY(PLAYER::PLAYER_PED_ID()) == INTERIOR::GET_INTERIOR_AT_COORDS_WITH_TYPE(1272.659f, -1715.467f, 53.7715f, "v_lesters"))
  	{
  		*uParam0 = { 1276.956f, -1725.189f, 53.6551f };
  		uParam0->f_3 = 204.1703f;
  	}
  	else if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), -415.4365f, 2068.289f, 113.3002f, -564.9516f, 1884.703f, 134.0403f, 258.75f, false, true, 0) || ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), -596.4706f, 2089.921f, 125.4128f, -581.2134f, 2036.256f, 136.2836f, 9.5f, false, true, 0))
  	{
  		*uParam0 = { -601.59f, 2099.197f, 128.8928f };
  		uParam0->f_3 = 204.7498f;
  	}
  	else if (SYSTEM::VDIST(*uParam0, -1007.393f, -477.9584f, 52.5357f) < 8f)
  	{
  		*uParam0 = { -1018.376f, -483.9436f, 36.0964f };
  		uParam0->f_3 = 114.7664f;
  	}
  	else if (SYSTEM::VDIST(*uParam0, 480.6662f, -1317.808f, 28.20303f) < 15f)
  	{
  		*uParam0 = { 497.7238f, -1310.932f, 28.2372f };
  		uParam0->f_3 = 289.3663f;
  	}
  	else if (SYSTEM::VDIST(*uParam0, 2329.527f, 2571.311f, 45.6779f) < 5f)
  	{
  		*uParam0 = { 2316.93f, 2594.153f, 45.7199f };
  		uParam0->f_3 = 348.1325f;
  	}
  	if (iParam1 == 1)
  	{
  		if (func_71(&iVar0))
  		{
  			if (func_69(iVar0, &Var1, &uVar4))
  			{
  				Var1.f_2 = (Var1.f_2 + 1f);
  				*uParam0 = { Var1 };
  				uParam0->f_3 = uVar4;
  			}
  		}
  		else if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), 207.4336f, -1019.795f, -100.4728f, 189.9338f, -1019.623f, -95.56883f, 17.1875f, false, true, 0))
  		{
  			iVar5 = func_106();
  			if (iVar5 == 0)
  			{
  				*uParam0 = { -65.1234f, 81.2517f, 70.5644f };
  				uParam0->f_3 = 71.6237f;
  			}
  			else if (iVar5 == 1)
  			{
  				*uParam0 = { -68.5531f, -1824.377f, 25.9424f };
  				uParam0->f_3 = 215.8295f;
  			}
  			else if (iVar5 == 2)
  			{
  				*uParam0 = { -220.8189f, -1162.302f, 22.0242f };
  				uParam0->f_3 = 70.2711f;
  			}
  		}
  		else if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), 483.7175f, -1326.63f, 28.2135f, 474.9644f, -1307.998f, 34.49498f, 12f, false, true, 0))
  		{
  			*uParam0 = { 495.4108f, -1306.08f, 29.2883f };
  			uParam0->f_3 = 213.6273f;
  		}
  		else if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), -1146.77f, -1534.22f, 3.37f, -1158.453f, -1517.75f, 6.374244f, 13f, false, true, 0))
  		{
  			*uParam0 = { -1160.095f, -1515.407f, 3.1496f };
  			uParam0->f_3 = 305.6424f;
  		}
  		else if (ENTITY::IS_ENTITY_IN_ANGLED_AREA(PLAYER::PLAYER_PED_ID(), 439.5432f, -996.9769f, 24.88307f, 428.2935f, -997.0192f, 28.57458f, 8.5f, false, true, 0))
  		{
  			*uParam0 = { 431.8853f, -1013.133f, 28.7907f };
  			uParam0->f_3 = 186.6814f;
  		}
  		else if (func_68(*uParam0, "v_hospital", 307.3065f, -589.9595f, 43.302f))
  		{
  			*uParam0 = { 279.4137f, -585.8815f, 43.2502f };
  			uParam0->f_3 = 48.8028f;
  		}
  	}
  }
  
  int func_68(struct<3> Param0, char* sParam3, struct<3> Param4)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (!INTERIOR::IS_COLLISION_MARKED_OUTSIDE(Param0))
  	{
  		iVar0 = INTERIOR::GET_INTERIOR_AT_COORDS_WITH_TYPE(Param4, sParam3);
  		if (!INTERIOR::IS_VALID_INTERIOR(iVar0))
  		{
  			return 0;
  		}
  		iVar1 = INTERIOR::GET_INTERIOR_FROM_COLLISION(Param0);
  		if (iVar1 == iVar0)
  		{
  			return 1;
  		}
  	}
  	return 0;
  }
  
  bool func_69(int iParam0, var uParam1, var uParam2)
  {
  	*uParam1 = { 0f, 0f, 0f };
  	*uParam2 = 0f;
  	switch (iParam0)
  	{
  		case 0:
  			*uParam1 = { -829.842f, -191.7454f, 36.4386f };
  			*uParam2 = 29.5061f;
  			break;
  		
  		case 1:
  			*uParam1 = { 129.8484f, -1716.528f, 28.0702f };
  			*uParam2 = 50.3483f;
  			break;
  		
  		case 2:
  			*uParam1 = { -1296.913f, -1120.999f, 5.3951f };
  			*uParam2 = 0.9933f;
  			break;
  		
  		case 3:
  			*uParam1 = { 1938.028f, 3718.736f, 31.3154f };
  			*uParam2 = 118.2305f;
  			break;
  		
  		case 4:
  			*uParam1 = { 1197.866f, -469.3809f, 65.0885f };
  			*uParam2 = 346.4477f;
  			break;
  		
  		case 5:
  			*uParam1 = { -32.2161f, -135.8212f, 56.0532f };
  			*uParam2 = 186.0052f;
  			break;
  		
  		case 6:
  			*uParam1 = { -287.7696f, 6238.081f, 30.2902f };
  			*uParam2 = 316.1349f;
  			break;
  		
  		case 7:
  			*uParam1 = { 99.2876f, -1395.16f, 28.2759f };
  			*uParam2 = 320.2739f;
  			break;
  		
  		case 8:
  			*uParam1 = { 1679.445f, 4819.056f, 41.0035f };
  			*uParam2 = 4.6192f;
  			break;
  		
  		case 9:
  			*uParam1 = { 411.3063f, -809.1863f, 28.1554f };
  			*uParam2 = 1.8972f;
  			break;
  		
  		case 10:
  			*uParam1 = { -1088.054f, 2699.167f, 19.2748f };
  			*uParam2 = 129.7382f;
  			break;
  		
  		case 11:
  			*uParam1 = { 1194.163f, 2695.644f, 36.9225f };
  			*uParam2 = 1.1454f;
  			break;
  		
  		case 12:
  			*uParam1 = { -821.2829f, -1088.027f, 10.0499f };
  			*uParam2 = 120.5883f;
  			break;
  		
  		case 13:
  			*uParam1 = { -3.3416f, 6521.303f, 30.2961f };
  			*uParam2 = 316.4451f;
  			break;
  		
  		case 14:
  			*uParam1 = { -1208.417f, -785.9635f, 16.0139f };
  			*uParam2 = 36.3181f;
  			break;
  		
  		case 15:
  			*uParam1 = { 623.1845f, 2739.191f, 40.9588f };
  			*uParam2 = 3.5411f;
  			break;
  		
  		case 16:
  			*uParam1 = { 130.9555f, -198.2084f, 53.41f };
  			*uParam2 = 251.3506f;
  			break;
  		
  		case 17:
  			*uParam1 = { -3164.065f, 1067.317f, 19.6778f };
  			*uParam2 = 101.2229f;
  			break;
  		
  		case 18:
  			*uParam1 = { -713.2797f, -174.2767f, 35.8962f };
  			*uParam2 = 29.8138f;
  			break;
  		
  		case 19:
  			*uParam1 = { -147.0616f, -306.4322f, 37.7912f };
  			*uParam2 = 160.4526f;
  			break;
  		
  		case 20:
  			*uParam1 = { -1461.355f, -230.6092f, 48.3064f };
  			*uParam2 = 318.7851f;
  			break;
  		
  		case 21:
  			*uParam1 = { -1347.739f, -1278.573f, 3.8952f };
  			*uParam2 = 17.9365f;
  			break;
  		
  		case 22:
  			*uParam1 = { 325.6833f, 164.3263f, 102.4425f };
  			*uParam2 = 68.6407f;
  			break;
  		
  		case 23:
  			*uParam1 = { 1858.774f, 3742.393f, 32.0779f };
  			*uParam2 = 301.2329f;
  			break;
  		
  		case 24:
  			*uParam1 = { -286.3272f, 6202.802f, 30.3323f };
  			*uParam2 = 225.1334f;
  			break;
  		
  		case 25:
  			*uParam1 = { -1161.596f, -1417.7f, 3.712f };
  			*uParam2 = 246.9161f;
  			break;
  		
  		case 26:
  			*uParam1 = { 1308.952f, -1660.611f, 50.2362f };
  			*uParam2 = 163.5456f;
  			break;
  		
  		case 27:
  			*uParam1 = { -3161.585f, 1074.214f, 19.6847f };
  			*uParam2 = 98.6092f;
  			break;
  		
  		case 28:
  			*uParam1 = { 28.423f, -1110.814f, 28.2848f };
  			*uParam2 = 85.2495f;
  			break;
  		
  		case 29:
  			*uParam1 = { 1704.966f, 3749.709f, 33.0188f };
  			*uParam2 = 45.6778f;
  			break;
  		
  		case 30:
  			*uParam1 = { 223.949f, -38.7894f, 68.6483f };
  			*uParam2 = 159.4265f;
  			break;
  		
  		case 31:
  			*uParam1 = { 837.7854f, -1017.963f, 26.3045f };
  			*uParam2 = 181.0445f;
  			break;
  		
  		case 32:
  			*uParam1 = { -313.1914f, 6093.351f, 30.4625f };
  			*uParam2 = 315.8405f;
  			break;
  		
  		case 33:
  			*uParam1 = { -663.4631f, -952.8069f, 20.3143f };
  			*uParam2 = 92.6796f;
  			break;
  		
  		case 34:
  			*uParam1 = { -1323.06f, -392.8577f, 35.4596f };
  			*uParam2 = 210.7398f;
  			break;
  		
  		case 35:
  			*uParam1 = { -1106.102f, 2684.35f, 18.0953f };
  			*uParam2 = 127.0383f;
  			break;
  		
  		case 36:
  			*uParam1 = { -3157.932f, 1081.309f, 19.6953f };
  			*uParam2 = 100.2942f;
  			break;
  		
  		case 37:
  			*uParam1 = { 2562.882f, 312.8641f, 107.4612f };
  			*uParam2 = 179.205f;
  			break;
  		
  		case 38:
  			*uParam1 = { 822.48f, -2142.875f, 27.8496f };
  			*uParam2 = 355.0598f;
  			break;
  		
  		case 39:
  			*uParam1 = { -1137.053f, -1993.916f, 12.1677f };
  			*uParam2 = 43.1213f;
  			break;
  		
  		case 40:
  			*uParam1 = { 717.8107f, -1084.081f, 21.3094f };
  			*uParam2 = 93.2649f;
  			break;
  		
  		case 41:
  			*uParam1 = { -387.6789f, -128.2568f, 37.6796f };
  			*uParam2 = 119.1085f;
  			break;
  		
  		case 42:
  			*uParam1 = { 117.8835f, 6599.415f, 31.0134f };
  			*uParam2 = 90.7225f;
  			break;
  		
  		case 43:
  			*uParam1 = { 1201.709f, 2664.813f, 36.8102f };
  			*uParam2 = 133.9002f;
  			break;
  		
  		case 44:
  			*uParam1 = { -200.1521f, -1297.502f, 30.296f };
  			*uParam2 = 269.0687f;
  			break;
  		
  		case 45:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 46:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 47:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 48:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 49:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 52:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 50:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 51:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  		
  		case 53:
  			*uParam1 = { 0f, 0f, 0f };
  			*uParam2 = 0f;
  			break;
  	}
  	return !func_70(*uParam1, 0f, 0f, 0f, 0);
  }
  
  bool func_70(struct<3> Param0, struct<3> Param3, bool bParam6)
  {
  	if (bParam6)
  	{
  		return (Param0.x == Param3.x && Param0.f_1 == Param3.f_1);
  	}
  	return ((Param0.x == Param3.x && Param0.f_1 == Param3.f_1) && Param0.f_2 == Param3.f_2);
  }
  
  int func_71(var uParam0)
  {
  	if (!ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID(), false) && !PED::IS_PED_INJURED(PLAYER::PLAYER_PED_ID()))
  	{
  		if (func_94())
  		{
  			*uParam0 = func_77(ENTITY::GET_ENTITY_COORDS(PLAYER::PLAYER_PED_ID(), false), 6, -1, 0, 1, -1);
  			if (func_76(*uParam0) && !func_72(*uParam0))
  			{
  				return 1;
  			}
  		}
  	}
  	return 0;
  }
  
  bool func_72(int iParam0)
  {
  	return func_73(iParam0, 0, 1);
  }
  
  int func_73(int iParam0, int iParam1, bool bParam2)
  {
  	if (iParam0 == -1)
  	{
  		return 0;
  	}
  	if (bParam2)
  	{
  		return MISC::IS_BIT_SET(Global_99007.f_1364[iParam0], iParam1);
  	}
  	else if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS())
  	{
  		if (func_75() == 0)
  		{
  			return MISC::IS_BIT_SET(func_50(func_74(iParam0), -1, 0), iParam1);
  		}
  	}
  	else
  	{
  		return MISC::IS_BIT_SET(Global_111858.f_668[iParam0], iParam1);
  	}
  	return 0;
  }
  
  int func_74(int iParam0)
  {
  	switch (iParam0)
  	{
  		case 0:
  			return 827;
  			break;
  		
  		case 1:
  			return 828;
  			break;
  		
  		case 2:
  			return 829;
  			break;
  		
  		case 3:
  			return 830;
  			break;
  		
  		case 4:
  			return 831;
  			break;
  		
  		case 5:
  			return 832;
  			break;
  		
  		case 6:
  			return 833;
  			break;
  		
  		case 7:
  			return 834;
  			break;
  		
  		case 8:
  			return 835;
  			break;
  		
  		case 9:
  			return 836;
  			break;
  		
  		case 10:
  			return 837;
  			break;
  		
  		case 11:
  			return 838;
  			break;
  		
  		case 12:
  			return 839;
  			break;
  		
  		case 13:
  			return 840;
  			break;
  		
  		case 14:
  			return 841;
  			break;
  		
  		case 15:
  			return 843;
  			break;
  		
  		case 16:
  			return 844;
  			break;
  		
  		case 17:
  			return 845;
  			break;
  		
  		case 18:
  			return 846;
  			break;
  		
  		case 19:
  			return 847;
  			break;
  		
  		case 20:
  			return 848;
  			break;
  		
  		case 21:
  			return 849;
  			break;
  		
  		case 22:
  			return 850;
  			break;
  		
  		case 23:
  			return 851;
  			break;
  		
  		case 24:
  			return 852;
  			break;
  		
  		case 25:
  			return 853;
  			break;
  		
  		case 26:
  			return 854;
  			break;
  		
  		case 27:
  			return 855;
  			break;
  		
  		case 28:
  			return 856;
  			break;
  		
  		case 29:
  			return 857;
  			break;
  		
  		case 30:
  			return 858;
  			break;
  		
  		case 31:
  			return 859;
  			break;
  		
  		case 32:
  			return 860;
  			break;
  		
  		case 33:
  			return 861;
  			break;
  		
  		case 34:
  			return 862;
  			break;
  		
  		case 35:
  			return 863;
  			break;
  		
  		case 36:
  			return 864;
  			break;
  		
  		case 37:
  			return 865;
  			break;
  		
  		case 38:
  			return 866;
  			break;
  		
  		case 39:
  			return 867;
  			break;
  		
  		case 40:
  			return 871;
  			break;
  		
  		case 41:
  			return 872;
  			break;
  		
  		case 42:
  			return 873;
  			break;
  		
  		case 43:
  			return 874;
  			break;
  		
  		case 44:
  			return 10099;
  			break;
  		
  		case 45:
  			return 3809;
  			break;
  		
  		case 46:
  			return 5384;
  			break;
  		
  		case 47:
  			return 6156;
  			break;
  		
  		case 48:
  			return 7233;
  			break;
  		
  		case 49:
  			return 7879;
  			break;
  		
  		case 52:
  			return 8913;
  			break;
  		
  		case 50:
  			return 8266;
  			break;
  		
  		case 51:
  			return 8268;
  			break;
  		
  		case 53:
  			return 9553;
  			break;
  		
  		default:
  			break;
  	}
  	return 11771;
  }
  
  int func_75()
  {
  	return Global_30968;
  }
  
  int func_76(int iParam0)
  {
  	return func_73(iParam0, 5, 1);
  }
  
  int func_77(struct<3> Param0, int iParam3, int iParam4, bool bParam5, int iParam6, int iParam7)
  {
  	int iVar0;
  	float fVar1;
  	float fVar2;
  	int iVar3;
  	
  	fVar2 = 1000000f;
  	iVar3 = -1;
  	iVar0 = 0;
  	while (iVar0 <= 53)
  	{
  		if (iParam3 == 6 || iParam3 == func_93(iVar0))
  		{
  			if (!bParam5 || func_92(iVar0))
  			{
  				fVar1 = MISC::GET_DISTANCE_BETWEEN_COORDS(Param0, func_78(iVar0, 0), true);
  				if (((fVar1 < fVar2 && (fVar1 <= IntToFloat(iParam4) || iParam4 == -1)) && (iParam6 || iVar0 != 21)) && iVar0 != iParam7)
  				{
  					fVar2 = fVar1;
  					iVar3 = iVar0;
  				}
  			}
  		}
  		iVar0++;
  	}
  	return iVar3;
  }
  
  Vector3 func_78(int iParam0, bool bParam1)
  {
  	switch (iParam0)
  	{
  		case -1:
  			return 0f, 0f, 0f;
  			break;
  		
  		case 0:
  			return -821.9946f, -187.1776f, 36.5689f;
  			break;
  		
  		case 1:
  			return 133.5702f, -1710.918f, 28.2916f;
  			break;
  		
  		case 2:
  			return -1287.082f, -1116.558f, 5.9901f;
  			break;
  		
  		case 3:
  			return 1933.119f, 3726.079f, 31.8444f;
  			break;
  		
  		case 4:
  			return 1208.333f, -470.917f, 65.208f;
  			break;
  		
  		case 5:
  			return -30.7448f, -148.4921f, 56.0765f;
  			break;
  		
  		case 6:
  			return -280.8165f, 6231.771f, 30.6955f;
  			break;
  		
  		case 7:
  			return 80.665f, -1391.669f, 28.3761f;
  			break;
  		
  		case 8:
  			return 1687.881f, 4820.55f, 41.0096f;
  			break;
  		
  		case 9:
  			return 419.531f, -807.5787f, 28.4896f;
  			break;
  		
  		case 10:
  			return -1094.049f, 2704.171f, 18.0873f;
  			break;
  		
  		case 11:
  			return 1197.972f, 2704.22f, 37.1572f;
  			break;
  		
  		case 12:
  			return -818.6218f, -1077.533f, 10.3282f;
  			break;
  		
  		case 13:
  			return -0.2361f, 6516.045f, 30.8684f;
  			break;
  		
  		case 14:
  			return -1199.809f, -776.6886f, 16.3237f;
  			break;
  		
  		case 15:
  			return 618.1857f, 2752.567f, 41.0881f;
  			break;
  		
  		case 16:
  			return 126.6853f, -212.5027f, 53.5578f;
  			break;
  		
  		case 17:
  			return -3168.966f, 1055.287f, 19.8632f;
  			break;
  		
  		case 18:
  			return -715.3598f, -155.7742f, 36.4105f;
  			break;
  		
  		case 19:
  			return -158.2199f, -304.9663f, 38.735f;
  			break;
  		
  		case 20:
  			return -1455.005f, -233.1862f, 48.7936f;
  			break;
  		
  		case 21:
  			return -1335.973f, -1278.555f, 3.8598f;
  			break;
  		
  		case 22:
  			return 321.6098f, 179.4165f, 102.5865f;
  			break;
  		
  		case 23:
  			return 1861.685f, 3750.08f, 32.0318f;
  			break;
  		
  		case 24:
  			return -290.1603f, 6199.095f, 30.4871f;
  			break;
  		
  		case 25:
  			return -1153.948f, -1425.019f, 3.9544f;
  			break;
  		
  		case 26:
  			return 1322.455f, -1651.125f, 51.1885f;
  			break;
  		
  		case 27:
  			return -3169.42f, 1074.727f, 19.8343f;
  			break;
  		
  		case 28:
  			return 17.6804f, -1114.288f, 28.797f;
  			break;
  		
  		case 29:
  			return 1697.979f, 3753.2f, 33.7053f;
  			break;
  		
  		case 30:
  			return 245.2711f, -45.8126f, 68.941f;
  			break;
  		
  		case 31:
  			return 844.1248f, -1025.571f, 27.1948f;
  			break;
  		
  		case 32:
  			return -325.8904f, 6077.026f, 30.4548f;
  			break;
  		
  		case 33:
  			return -664.2178f, -943.3646f, 20.8292f;
  			break;
  		
  		case 34:
  			return -1313.948f, -390.9637f, 35.592f;
  			break;
  		
  		case 35:
  			return -1111.238f, 2688.463f, 17.6131f;
  			break;
  		
  		case 36:
  			return -3165.231f, 1082.855f, 19.8438f;
  			break;
  		
  		case 37:
  			return 2569.612f, 302.576f, 107.7349f;
  			break;
  		
  		case 38:
  			return 811.8699f, -2149.102f, 28.6363f;
  			break;
  		
  		case 39:
  			return -1147.314f, -1992.434f, 12.1803f;
  			break;
  		
  		case 40:
  			return 724.524f, -1089.081f, 21.1692f;
  			break;
  		
  		case 41:
  			return -354.5272f, -135.4011f, 38.185f;
  			break;
  		
  		case 42:
  			return 113.2615f, 6624.28f, 30.7871f;
  			break;
  		
  		case 43:
  			return 1174.707f, 2644.45f, 36.7552f;
  			break;
  		
  		case 44:
  			if (bParam1)
  			{
  				return -211.5f, -1324.2f, 30.296f;
  			}
  			else
  			{
  				return -205.6654f, -1311.113f, 30.296f;
  			}
  			break;
  		
  		case 45:
  			return func_89(Global_101058);
  			break;
  		
  		case 46:
  			if (Global_1590519 != func_88())
  			{
  				if (func_87(Global_1590519))
  				{
  					return func_80(2, 2);
  				}
  				else if (func_79(Global_1590519))
  				{
  					return func_80(45, 3);
  				}
  				else
  				{
  					return 1000000f, 1000000f, 1000000f;
  				}
  			}
  			else
  			{
  				return 1000000f, 1000000f, 1000000f;
  			}
  			break;
  		
  		case 47:
  			return 510.1f, 4749.5f, -69f;
  			break;
  		
  		case 48:
  			return -1422.197f, -3015.803f, -79.1603f;
  			break;
  		
  		case 49:
  			return 203.0799f, 5200.189f, -89.6f;
  			break;
  		
  		case 52:
  			return 2714.547f, -354.2701f, -55.1867f;
  			break;
  		
  		case 50:
  			return Global_1696919;
  			break;
  		
  		case 51:
  			return 1100f, 220f, -50f;
  			break;
  		
  		case 53:
  			return 1560f, 400f, -50f;
  			break;
  	}
  	return 1000000f, 1000000f, 1000000f;
  }
  
  int func_79(int iParam0)
  {
  	if (iParam0 != func_88())
  	{
  		if ((MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 0) || MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 1)) || MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 2))
  		{
  			return 1;
  		}
  	}
  	return 0;
  }
  
  Vector3 func_80(int iParam0, int iParam1)
  {
  	struct<3> Var0;
  	struct<3> Var6;
  	
  	Var6 = { 1000000f, 1000000f, 1000000f };
  	if (Global_1590519 != func_88())
  	{
  		if (iParam1 == 3)
  		{
  			if (func_81(iParam0, 1, &Var0, 0, 0))
  			{
  				Var6 = { Var0 };
  			}
  		}
  		else if (iParam1 == 2)
  		{
  			if (MISC::IS_BIT_SET(Global_1590682[Global_1590519 /*883*/].f_274.f_259, 4))
  			{
  				if (func_81(iParam0, 1, &Var0, 0, 0))
  				{
  					Var6 = { Var0 };
  				}
  			}
  			else if (MISC::IS_BIT_SET(Global_1590682[Global_1590519 /*883*/].f_274.f_259, 5))
  			{
  				if (func_81(iParam0, 2, &Var0, 0, 0))
  				{
  					Var6 = { Var0 };
  				}
  			}
  		}
  	}
  	return Var6;
  }
  
  int func_81(int iParam0, int iParam1, var uParam2, int iParam3, bool bParam4)
  {
  	struct<4> Var0;
  	struct<3> Var6;
  	struct<4> Var12;
  	struct<3> Var18;
  	
  	if (!func_86(iParam3, &Var0))
  	{
  		return 0;
  	}
  	if (!func_86(iParam1, &Var6))
  	{
  		return 0;
  	}
  	if (!bParam4)
  	{
  		Var12 = { func_84(iParam0) };
  	}
  	else
  	{
  		Var12 = { func_83(iParam0) };
  	}
  	Var18 = { Var12 - Var0 };
  	Var18 = { func_82(Var18, -Var0.f_3.f_2) };
  	Var18 = { func_82(Var18, Var6.f_3.f_2) };
  	*uParam2 = { OBJECT::_GET_OBJECT_OFFSET_FROM_COORDS(Var6, 0f, Var18) };
  	uParam2->f_3 = { Var12.f_3 };
  	return 1;
  }
  
  Vector3 func_82(struct<3> Param0, float fParam3)
  {
  	struct<3> Var0;
  	float fVar3;
  	float fVar4;
  	
  	fVar3 = SYSTEM::SIN(fParam3);
  	fVar4 = SYSTEM::COS(fParam3);
  	Var0.x = ((Param0.x * fVar4) - (Param0.f_1 * fVar3));
  	Var0.f_1 = ((Param0.x * fVar3) + (Param0.f_1 * fVar4));
  	Var0.f_2 = Param0.f_2;
  	return Var0;
  }
  
  struct<6> func_83(int iParam0)
  {
  	struct<6> Var0;
  	
  	switch (iParam0)
  	{
  		case 0:
  			Var0 = { 1102.1f, -3010.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 115.92f };
  			break;
  		
  		case 1:
  			Var0 = { 1105.05f, -3010.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -103.32f };
  			break;
  		
  		case 2:
  			Var0 = { 1105.05f, -3008.75f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -77.76f };
  			break;
  		
  		case 3:
  			Var0 = { 1102.1f, -3002.1f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 102.96f };
  			break;
  		
  		case 4:
  			Var0 = { 1105.05f, -3002.1f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -101.88f };
  			break;
  		
  		case 5:
  			Var0 = { 1105.05f, -3000.65f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -81.36f };
  			break;
  		
  		case 6:
  			Var0 = { 1102.1f, -2994.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 103.32f };
  			break;
  		
  		case 7:
  			Var0 = { 1105.05f, -2994.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -109.8f };
  			break;
  		
  		case 8:
  			Var0 = { 1105.05f, -2992.65f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -84.96f };
  			break;
  	}
  	return Var0;
  }
  
  struct<6> func_84(int iParam0)
  {
  	return func_85(iParam0);
  }
  
  struct<6> func_85(int iParam0)
  {
  	struct<6> Var0;
  	
  	switch (iParam0)
  	{
  		case 0:
  			Var0 = { 1105.22f, -3013.985f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 1:
  			Var0 = { 1104.105f, -3013.985f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 19:
  			Var0 = { 1105.22f, -3005.985f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 20:
  			Var0 = { 1104.105f, -3005.985f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 2:
  			Var0 = { 1102f, -3011.925f, -39.95f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 3:
  			Var0 = { 1103f, -3010f, -38.125f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 4:
  			Var0 = { 1103.213f, -3013.483f, -39.03f };
  			Var0.f_3 = { 0f, 0f, 31.32f };
  			break;
  		
  		case 5:
  			Var0.f_3 = { 0f, 0f, 0f };
  			Var0 = { 1101.408f, -3012.32f, -38.45339f };
  			break;
  		
  		case 6:
  			Var0.f_3 = { 0f, 0f, 0f };
  			Var0 = { 1103.037f, -3012.318f, -39.99874f };
  			break;
  		
  		case 7:
  			Var0 = { 1105.645f, -3012.04f, -39.542f };
  			Var0.f_3 = { 0f, 0f, -86.04f };
  			break;
  		
  		case 8:
  			Var0.f_3 = { 0f, 0f, 0f };
  			Var0 = { 1104.063f, -3012.368f, -39.99875f };
  			break;
  		
  		case 9:
  			Var0 = { 1105.665f, -3012.334f, -38.50835f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 10:
  			Var0 = { 1102.504f, -3012.35f, -39.341f };
  			Var0.f_3 = { 0f, 0f, -96.48f };
  			break;
  		
  		case 11:
  			Var0 = { 1102.928f, -3012.693f, -39.99945f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 12:
  			Var0 = { 1102.942f, -3011.315f, -37.99945f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 61:
  			Var0 = { 1101.994f, -3012.878f, -39.95f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 62:
  			Var0 = { 1103.152f, -3013.032f, -38.24946f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 13:
  			Var0 = { 1102.465f, -3009.515f, -39.341f };
  			Var0.f_3 = { 0f, 0f, -12.96f };
  			break;
  		
  		case 14:
  			Var0 = { 1102.917f, -3009.525f, -39.99945f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 15:
  			Var0 = { 1102.922f, -3010.887f, -37.99945f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 63:
  			Var0 = { 1101.682f, -3009.227f, -39.95f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 64:
  			Var0 = { 1102.453f, -3008.51f, -38.2f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 16:
  			Var0 = { 1104.684f, -3009.561f, -39.341f };
  			Var0.f_3 = { 0f, 0f, 169.56f };
  			break;
  		
  		case 17:
  			Var0 = { 1104.34f, -3008.698f, -39.99945f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 18:
  			Var0 = { 1104.344f, -3009.618f, -37.98172f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 65:
  			Var0 = { 1105.459f, -3009.793f, -39.95f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 66:
  			Var0 = { 1104.783f, -3010.433f, -38.2f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 44:
  			Var0 = { 1104.025f, -3007.316f, -39.9987f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 21:
  			Var0 = { 1103.562f, -3014f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 22:
  			Var0 = { 1103.562f, -3014f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 23:
  			Var0 = { 1102.1f, -3010.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 115.92f };
  			break;
  		
  		case 24:
  			Var0 = { 1105.05f, -3010.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -103.32f };
  			break;
  		
  		case 25:
  			Var0 = { 1105.05f, -3008.75f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -77.76f };
  			break;
  		
  		case 26:
  			Var0 = { 1102.05f, -3011.717f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 27:
  			Var0 = { 1102.05f, -3012.653f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 28:
  			Var0 = { 1105.05f, -3012.653f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 29:
  			Var0 = { 1105.05f, -3011.717f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 30:
  			Var0 = { 1102.1f, -3002.1f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 102.96f };
  			break;
  		
  		case 31:
  			Var0 = { 1105.05f, -3002.1f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -101.88f };
  			break;
  		
  		case 32:
  			Var0 = { 1105.05f, -3000.65f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -81.36f };
  			break;
  		
  		case 33:
  			Var0 = { 1102.05f, -3003.592f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 34:
  			Var0 = { 1102.05f, -3004.541f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 35:
  			Var0 = { 1105.05f, -3004.541f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 36:
  			Var0 = { 1105.05f, -3003.592f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 37:
  			Var0 = { 1102.1f, -2994.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 103.32f };
  			break;
  		
  		case 38:
  			Var0 = { 1105.05f, -2994.2f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -109.8f };
  			break;
  		
  		case 39:
  			Var0 = { 1105.05f, -2992.65f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -84.96f };
  			break;
  		
  		case 40:
  			Var0 = { 1102.05f, -2995.582f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 41:
  			Var0 = { 1102.05f, -2996.501f, -39.35f };
  			Var0.f_3 = { 0f, 0f, 90f };
  			break;
  		
  		case 42:
  			Var0 = { 1105.05f, -2996.501f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 43:
  			Var0 = { 1105.05f, -2995.582f, -39.35f };
  			Var0.f_3 = { 0f, 0f, -90f };
  			break;
  		
  		case 45:
  			Var0 = { 1101f, -3011.9f, -39.95f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 46:
  			Var0 = { 1102f, -3010f, -38.115f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 47:
  			Var0 = { 1105.174f, -3004.16f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 48:
  			Var0 = { 1105.175f, -3005.818f, -37.91948f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 49:
  			Var0 = { 1106.6f, -3000.847f, -39.89988f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 50:
  			Var0 = { 1106.601f, -3002.171f, -37.89988f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 51:
  			Var0 = { 1101.95f, -3011.9f, -39.2f };
  			Var0.f_3 = { 0f, 0f, 49.5f };
  			break;
  		
  		case 52:
  			Var0 = { 1101.95f, -3010f, -39.2f };
  			Var0.f_3 = { 0f, 0f, 130.32f };
  			break;
  		
  		case 53:
  			Var0 = { 1105.16f, -3009.06f, -39.2f };
  			Var0.f_3 = { 0f, 0f, -44.64f };
  			break;
  		
  		case 54:
  			Var0 = { 1102.476f, -3008.508f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 55:
  			Var0 = { 1099f, -3008.508f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 56:
  			Var0 = { 1103.593f, -3008.27f, -39.9987f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 57:
  			Var0 = { 1103.565f, -3014f, -39.988f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 58:
  			Var0 = { 1103.565f, -3014f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 59:
  			Var0 = { 1103.565f, -3014f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 60:
  			Var0 = { 1103.55f, -3014f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 67:
  			Var0 = { 1103.55f, -3013.762f, -40f };
  			Var0.f_3 = { 0f, 0f, 180f };
  			break;
  		
  		case 68:
  			Var0 = { 1103.55f, -3006.186f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  		
  		case 71:
  		case 69:
  		case 70:
  		case 73:
  		case 72:
  		case 74:
  			Var0 = { 1103.6f, -3013.933f, -40f };
  			Var0.f_3 = { 0f, 0f, 0f };
  			break;
  	}
  	return Var0;
  }
  
  int func_86(int iParam0, var uParam1)
  {
  	switch (iParam0)
  	{
  		case 0:
  			*uParam1 = { 1103.562f, -3014f, -40f };
  			uParam1->f_3 = { 0f, 0f, 0f };
  			return 1;
  		
  		case 1:
  			*uParam1 = { 1103.562f, -3006f, -40f };
  			uParam1->f_3 = { 0f, 0f, 0f };
  			return 1;
  		
  		case 2:
  			*uParam1 = { 1103.562f, -2998f, -40f };
  			uParam1->f_3 = { 0f, 0f, 0f };
  			return 1;
  		
  		default:
  	}
  	return 0;
  }
  
  int func_87(int iParam0)
  {
  	if (iParam0 != func_88())
  	{
  		if ((MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 3) || MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 4)) || MISC::IS_BIT_SET(Global_1590682[iParam0 /*883*/].f_274.f_259, 5))
  		{
  			return 1;
  		}
  	}
  	return 0;
  }
  
  int func_88()
  {
  	return -1;
  }
  
  Vector3 func_89(int iParam0)
  {
  	switch (iParam0)
  	{
  		case 1:
  			return 1060f, -2990f, -35f;
  			break;
  		
  		case 2:
  			return 1060f, -2990f, -35f;
  			break;
  		
  		case 3:
  			return 974.9542f, -3000.091f, -35f;
  			break;
  		
  		case 6:
  			return -1586.36f, -566.6f, 106.17f;
  			break;
  		
  		case 7:
  			return -1389.87f, -465.17f, 82.68f;
  			break;
  		
  		case 8:
  			return -145.81f, -590.2f, 171.13f;
  			break;
  		
  		case 9:
  			return -62.49f, -823.55f, 288.74f;
  			break;
  		
  		case 4:
  			return 1102.515f, -3158.888f, -38.5186f;
  			break;
  		
  		case 5:
  			return 1005.861f, -3156.162f, -39.907f;
  			break;
  		
  		case 10:
  			return 1103.562f, -3000f, -40f;
  			break;
  		
  		case 11:
  			return 938.3077f, -3196.112f, -100f;
  			break;
  		
  		case 12:
  			return -1266.802f, -3014.836f, -49.4895f;
  			break;
  		
  		case 13:
  			return 520.0001f, 4750f, -70f;
  			break;
  		
  		case 14:
  			return 345.0041f, 4842.001f, -59.9997f;
  			break;
  		
  		case 15:
  			return -1604.664f, -3012.583f, -79.9999f;
  			break;
  		
  		case 16:
  			return -1421.015f, -3012.587f, -80f;
  			break;
  		
  		case 17:
  			if (func_90() == 0)
  			{
  				return 205f, 5180f, -90f;
  			}
  			else
  			{
  				return 170f, 5190f, 10f;
  			}
  			break;
  		
  		default:
  			return 0f, 0f, -200f;
  			break;
  	}
  	return 0f, 0f, -200f;
  }
  
  int func_90()
  {
  	return func_91(PLAYER::PLAYER_ID());
  }
  
  int func_91(int iParam0)
  {
  	return MISC::GET_BITS_IN_RANGE(Global_2426097[iParam0 /*443*/].f_314.f_3, 28, 31);
  }
  
  int func_92(int iParam0)
  {
  	return func_73(iParam0, 0, 0);
  }
  
  int func_93(int iParam0)
  {
  	switch (iParam0)
  	{
  		case -1:
  			return 6;
  			break;
  		
  		case 0:
  			return 0;
  			break;
  		
  		case 1:
  			return 0;
  			break;
  		
  		case 2:
  			return 0;
  			break;
  		
  		case 3:
  			return 0;
  			break;
  		
  		case 4:
  			return 0;
  			break;
  		
  		case 5:
  			return 0;
  			break;
  		
  		case 6:
  			return 0;
  			break;
  		
  		case 50:
  			return 0;
  			break;
  		
  		case 7:
  			return 1;
  			break;
  		
  		case 8:
  			return 1;
  			break;
  		
  		case 9:
  			return 1;
  			break;
  		
  		case 10:
  			return 1;
  			break;
  		
  		case 11:
  			return 1;
  			break;
  		
  		case 12:
  			return 1;
  			break;
  		
  		case 13:
  			return 1;
  			break;
  		
  		case 14:
  			return 1;
  			break;
  		
  		case 15:
  			return 1;
  			break;
  		
  		case 16:
  			return 1;
  			break;
  		
  		case 17:
  			return 1;
  			break;
  		
  		case 18:
  			return 1;
  			break;
  		
  		case 19:
  			return 1;
  			break;
  		
  		case 20:
  			return 1;
  			break;
  		
  		case 21:
  			return 1;
  			break;
  		
  		case 22:
  			return 2;
  			break;
  		
  		case 23:
  			return 2;
  			break;
  		
  		case 24:
  			return 2;
  			break;
  		
  		case 25:
  			return 2;
  			break;
  		
  		case 26:
  			return 2;
  			break;
  		
  		case 27:
  			return 2;
  			break;
  		
  		case 28:
  			return 3;
  			break;
  		
  		case 29:
  			return 3;
  			break;
  		
  		case 30:
  			return 3;
  			break;
  		
  		case 31:
  			return 3;
  			break;
  		
  		case 32:
  			return 3;
  			break;
  		
  		case 33:
  			return 3;
  			break;
  		
  		case 34:
  			return 3;
  			break;
  		
  		case 35:
  			return 3;
  			break;
  		
  		case 36:
  			return 3;
  			break;
  		
  		case 37:
  			return 3;
  			break;
  		
  		case 38:
  			return 3;
  			break;
  		
  		case 39:
  			return 4;
  			break;
  		
  		case 40:
  			return 4;
  			break;
  		
  		case 41:
  			return 4;
  			break;
  		
  		case 42:
  			return 4;
  			break;
  		
  		case 43:
  			return 4;
  			break;
  		
  		case 44:
  			return 4;
  			break;
  		
  		case 45:
  			return 5;
  			break;
  		
  		case 46:
  			return 3;
  			break;
  		
  		case 47:
  			return 3;
  			break;
  		
  		case 48:
  			return 3;
  			break;
  		
  		case 49:
  			return 3;
  			break;
  		
  		case 52:
  			return 3;
  			break;
  		
  		case 51:
  			return 1;
  			break;
  		
  		case 53:
  			return 3;
  			break;
  	}
  	return 6;
  }
  
  bool func_94()
  {
  	return Global_99007.f_351 > 0;
  }
  
  var func_95()
  {
  	var uVar0;
  	
  	func_105(&uVar0, CLOCK::GET_CLOCK_SECONDS());
  	func_104(&uVar0, CLOCK::GET_CLOCK_MINUTES());
  	func_103(&uVar0, CLOCK::GET_CLOCK_HOURS());
  	func_98(&uVar0, CLOCK::GET_CLOCK_DAY_OF_MONTH());
  	func_97(&uVar0, CLOCK::GET_CLOCK_MONTH());
  	func_96(&uVar0, CLOCK::GET_CLOCK_YEAR());
  	return uVar0;
  }
  
  void func_96(var uParam0, int iParam1)
  {
  	if (iParam1 <= 0)
  	{
  		return;
  	}
  	if (iParam1 > 2043 || iParam1 < 1979)
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 2080374784);
  	if (iParam1 < 2011)
  	{
  		*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT((2011 - iParam1), 26));
  		*uParam0 |= -2147483648;
  	}
  	else
  	{
  		*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT((iParam1 - 2011), 26));
  		*uParam0 = (*uParam0 - *uParam0 & -2147483648);
  	}
  }
  
  void func_97(var uParam0, int iParam1)
  {
  	if (iParam1 < 0 || iParam1 > 11)
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 15);
  	*uParam0 = (*uParam0 || iParam1);
  }
  
  void func_98(var uParam0, int iParam1)
  {
  	int iVar0;
  	int iVar1;
  	
  	iVar0 = func_102(*uParam0);
  	iVar1 = func_100(*uParam0);
  	if (iParam1 < 1 || iParam1 > func_99(iVar0, iVar1))
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 496);
  	*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT(iParam1, 4));
  }
  
  int func_99(int iParam0, int iParam1)
  {
  	if (iParam1 < 0)
  	{
  		iParam1 = 0;
  	}
  	switch (iParam0)
  	{
  		case 0:
  		case 2:
  		case 4:
  		case 6:
  		case 7:
  		case 9:
  		case 11:
  			return 31;
  			break;
  		
  		case 3:
  		case 5:
  		case 8:
  		case 10:
  			return 30;
  			break;
  		
  		case 1:
  			if ((iParam1 % 4) == 0)
  			{
  				if ((iParam1 % 100) != 0)
  				{
  					return 29;
  				}
  				else if ((iParam1 % 400) == 0)
  				{
  					return 29;
  				}
  			}
  			return 28;
  			break;
  	}
  	return 30;
  }
  
  var func_100(int iParam0)
  {
  	return (SYSTEM::SHIFT_RIGHT(iParam0, 26) & 31 * func_101(MISC::IS_BIT_SET(iParam0, 31), -1, 1)) + 2011;
  }
  
  int func_101(bool bParam0, int iParam1, int iParam2)
  {
  	if (bParam0)
  	{
  		return iParam1;
  	}
  	return iParam2;
  }
  
  int func_102(var uParam0)
  {
  	return uParam0 & 15;
  }
  
  void func_103(var uParam0, int iParam1)
  {
  	if (iParam1 < 0 || iParam1 > 24)
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 15872);
  	*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT(iParam1, 9));
  }
  
  void func_104(var uParam0, int iParam1)
  {
  	if (iParam1 < 0 || iParam1 >= 60)
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 1032192);
  	*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT(iParam1, 14));
  }
  
  void func_105(var uParam0, int iParam1)
  {
  	if (iParam1 < 0 || iParam1 >= 60)
  	{
  		return;
  	}
  	*uParam0 = (*uParam0 - *uParam0 & 66060288);
  	*uParam0 = (*uParam0 || SYSTEM::SHIFT_LEFT(iParam1, 20));
  }
  
  int func_106()
  {
  	func_57();
  	return Global_111858.f_2359.f_539.f_4321;
  }
  
  int func_107()
  {
  	int iVar0;
  	
  	if (SCRIPT::HAS_SCRIPT_LOADED("Towing"))
  	{
  		iVar0 = func_110(&iLocal_45, 6, 4, 0, 0);
  		if (iVar0 == 1)
  		{
  			HUD::CLEAR_HELP(true);
  			if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()))
  			{
  				PLAYER::CLEAR_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID());
  			}
  			Local_53.f_2 = 1;
  			iLocal_249 = SYSTEM::START_NEW_SCRIPT_WITH_ARGS("Towing", &Local_53, 9, 37500);
  			SCRIPT::SET_SCRIPT_AS_NO_LONGER_NEEDED("Towing");
  			if (!ENTITY::IS_ENTITY_DEAD(iLocal_274, false))
  			{
  				PED::SET_PED_KEEP_TASK(iLocal_274, true);
  			}
  			ENTITY::SET_PED_AS_NO_LONGER_NEEDED(&iLocal_274);
  			STREAMING::REMOVE_ANIM_DICT("amb@world_human_smoking@male@male_a@base");
  			STREAMING::REMOVE_ANIM_DICT("oddjobs@towingcome_here");
  			func_108(&uLocal_251, 1);
  			return 1;
  		}
  		else if (iVar0 == 0)
  		{
  			return 2;
  		}
  	}
  	return 3;
  }
  
  void func_108(var uParam0, int iParam1)
  {
  	func_109(uParam0, iParam1);
  }
  
  void func_109(var uParam0, var uParam1)
  {
  	*uParam0 = (*uParam0 || uParam1);
  }
  
  int func_110(int iParam0, int iParam1, int iParam2, bool bParam3, int iParam4)
  {
  	int iVar0;
  	
  	if (iParam1 == 7)
  	{
  		return 0;
  	}
  	if (!bParam3)
  	{
  		if (Global_96433.f_44 == 1)
  		{
  			return 2;
  		}
  	}
  	if (iParam1 == 0)
  	{
  		if (func_114(0))
  		{
  			return 0;
  		}
  		Global_41595++;
  		*iParam0 = Global_41595;
  		PLAYER::SET_PLAYER_INVINCIBLE(PLAYER::GET_PLAYER_INDEX(), false);
  		Global_22411.f_5 = 0;
  		if (iParam2 != 5)
  		{
  			PLAYER::FORCE_CLEANUP(8);
  		}
  		Global_41631 = iParam2;
  		Global_41593 = *iParam0;
  		Global_41594 = iParam4;
  		Global_41592 = 0;
  		return 1;
  	}
  	if (*iParam0 != -1)
  	{
  		if (Global_41592 > 0)
  		{
  			iVar0 = 0;
  			iVar0 = 0;
  			while (iVar0 < Global_41592)
  			{
  				if (Global_41598[iVar0 /*4*/] == *iParam0)
  				{
  					return 2;
  				}
  				iVar0++;
  			}
  		}
  		else if (Global_41593 == *iParam0)
  		{
  			return 1;
  		}
  		*iParam0 = -1;
  	}
  	if (*iParam0 == -1)
  	{
  		if (!func_112(iParam2))
  		{
  			return 0;
  		}
  		if (Global_41592 == 8)
  		{
  			return 0;
  		}
  		Global_41595++;
  		*iParam0 = Global_41595;
  		Global_41598[Global_41592 /*4*/] = Global_41595;
  		Global_41598[Global_41592 /*4*/].f_1 = iParam1;
  		Global_41598[Global_41592 /*4*/].f_2 = iParam2;
  		Global_41598[Global_41592 /*4*/].f_3 = 0;
  		Global_41592++;
  		if (iParam4 != 0)
  		{
  			func_111(iParam0, iParam4);
  		}
  	}
  	return 2;
  }
  
  void func_111(var uParam0, int iParam1)
  {
  	int iVar0;
  	
  	if (Global_41592 == 0)
  	{
  		return;
  	}
  	if (*uParam0 == -1)
  	{
  		return;
  	}
  	iVar0 = 0;
  	iVar0 = 0;
  	while (iVar0 < Global_41592)
  	{
  		if (Global_41598[iVar0 /*4*/] == *uParam0)
  		{
  			Global_41598[iVar0 /*4*/].f_3 = iParam1;
  		}
  		iVar0++;
  	}
  	*uParam0 = -1;
  }
  
  bool func_112(int iParam0)
  {
  	return func_113(iParam0, Global_41631);
  }
  
  int func_113(int iParam0, int iParam1)
  {
  	if (iParam1 == 15)
  	{
  		return 1;
  	}
  	if (iParam0 == 15)
  	{
  		return 0;
  	}
  	switch (iParam0)
  	{
  		case 16:
  			switch (iParam1)
  			{
  				case 9:
  				case 10:
  				case 7:
  				case 13:
  				case 14:
  					return 0;
  					break;
  			}
  			return 1;
  			break;
  		
  		case 0:
  			switch (iParam1)
  			{
  				case 5:
  				case 17:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 2:
  		case 3:
  			switch (iParam1)
  			{
  				case 5:
  				case 6:
  				case 8:
  				case 17:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 4:
  			if (iParam1 == 17)
  			{
  				return 1;
  			}
  			break;
  		
  		case 5:
  			break;
  		
  		case 6:
  		case 8:
  			if (iParam1 == 5)
  			{
  				return 1;
  			}
  			break;
  		
  		case 7:
  			if (iParam1 == 6)
  			{
  				return 1;
  			}
  			break;
  		
  		case 9:
  			if (iParam1 == 5)
  			{
  				return 1;
  			}
  			break;
  		
  		case 10:
  			switch (iParam1)
  			{
  				case 5:
  				case 6:
  				case 17:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 11:
  			if (iParam1 == 5)
  			{
  				return 1;
  			}
  			break;
  		
  		case 17:
  			switch (iParam1)
  			{
  				case 17:
  				case 12:
  				case 5:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 18:
  		case 12:
  			switch (iParam1)
  			{
  				case 5:
  				case 6:
  				case 8:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 13:
  			switch (iParam1)
  			{
  				case 5:
  					return 1;
  					break;
  			}
  			break;
  		
  		case 14:
  			switch (iParam1)
  			{
  				case 5:
  					return 1;
  					break;
  			}
  			break;
  	}
  	return 0;
  }
  
  int func_114(int iParam0)
  {
  	if (Global_41631 == 15)
  	{
  		return 0;
  	}
  	if (func_112(iParam0))
  	{
  		return 0;
  	}
  	return 1;
  }
  
  void func_115()
  {
  	AUDIO::SET_FRONTEND_RADIO_ACTIVE(true);
  	SCRIPT::REQUEST_SCRIPT("Towing");
  	HUD::CLEAR_HELP(true);
  	func_116(&iLocal_62);
  }
  
  void func_116(int* iParam0)
  {
  	iParam0->f_1 = 0f;
  	iParam0->f_2 = 0f;
  	*iParam0 = 0;
  }
  
  void func_117()
  {
  	Global_22411.f_6 = 1;
  }
  
  void func_118()
  {
  	switch (iLocal_74)
  	{
  		case 1:
  			if (!func_142())
  			{
  				if (!HUD::IS_HELP_MESSAGE_BEING_DISPLAYED() && !func_141(&iLocal_62))
  				{
  					AUDIO::SET_FRONTEND_RADIO_ACTIVE(false);
  					func_139(&iLocal_62);
  				}
  				else if (!HUD::IS_HELP_MESSAGE_BEING_DISPLAYED() && func_141(&iLocal_62))
  				{
  					if (func_136(&iLocal_62) >= 2f)
  					{
  						iLocal_74 = 0;
  					}
  				}
  			}
  			break;
  		
  		case 0:
  			if (!func_142())
  			{
  				func_135(&uLocal_84, 4, 0, "TOWDISPATCH", 0, 1);
  				if (func_120(&uLocal_84, "TOWAUD", "TOW_DISP_GEN", 9, 0, 0, 0))
  				{
  					iLocal_74 = 2;
  				}
  			}
  			break;
  		
  		case 2:
  			if (!func_142())
  			{
  				iLocal_74 = 3;
  			}
  			if (!PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), false))
  			{
  				AUDIO::SET_FRONTEND_RADIO_ACTIVE(true);
  			}
  			break;
  		
  		case 3:
  			if (func_136(&iLocal_62) >= 6f)
  			{
  				AUDIO::SET_FRONTEND_RADIO_ACTIVE(true);
  				func_119("TOW_JOBOFFRD", -1);
  				iLocal_74 = 4;
  			}
  			break;
  		
  		case 4:
  			if (func_136(&iLocal_62) > 30f)
  			{
  				if (!func_22(Global_111858.f_19969.f_1, 1024))
  				{
  					func_119("TOW_MISSEDJOB", -1);
  					func_108(&(Global_111858.f_19969.f_1), 1024);
  				}
  				iLocal_74 = 5;
  			}
  			break;
  		
  		case 5:
  			if (func_136(&iLocal_62) > 60f)
  			{
  				func_116(&iLocal_62);
  				iLocal_74 = 1;
  			}
  			break;
  	}
  }
  
  void func_119(char* sParam0, int iParam1)
  {
  	HUD::BEGIN_TEXT_COMMAND_DISPLAY_HELP(sParam0);
  	HUD::END_TEXT_COMMAND_DISPLAY_HELP(0, false, true, iParam1);
  }
  
  bool func_120(var uParam0, char* sParam1, char* sParam2, int iParam3, int iParam4, int iParam5, int iParam6)
  {
  	func_134(uParam0, 145, sParam1, iParam4, iParam5, iParam6);
  	if (iParam3 > 7)
  	{
  		if (iParam3 < 12)
  		{
  			iParam3 = 7;
  		}
  	}
  	Global_21012 = 0;
  	Global_21014 = 0;
  	Global_21019 = 0;
  	Global_21996 = 0;
  	Global_21998 = 0;
  	Global_22002 = 0;
  	Global_2621441 = 0;
  	return func_121(sParam2, iParam3, 0);
  }
  
  int func_121(char* sParam0, int iParam1, bool bParam2)
  {
  	Global_21006 = 0;
  	if (Global_21005 == 0 || Global_21007 == 2)
  	{
  		if (Global_21005 != 0)
  		{
  			if (iParam1 > Global_21007)
  			{
  				if (Global_21012 == 0)
  				{
  					AUDIO::STOP_SCRIPTED_CONVERSATION(false);
  					Global_19681.f_1 = 3;
  					Global_21005 = 0;
  					Global_21006 = 1;
  					Global_21058 = 0;
  					Global_21001 = 0;
  					Global_21002 = 0;
  					Global_21016 = 0;
  					Global_21015 = 0;
  					Global_19680 = 0;
  				}
  				else
  				{
  					func_133();
  					return 0;
  				}
  			}
  			else
  			{
  				return 0;
  			}
  		}
  		if (AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING())
  		{
  			return 0;
  		}
  		if (func_132(8, -1))
  		{
  			return 0;
  		}
  		Global_21081 = { Global_21075 };
  		func_131();
  		Global_20294 = { Global_20459 };
  		Global_21011 = Global_21012;
  		Global_21018 = Global_21019;
  		Global_2621442 = Global_2621441;
  		Global_21020 = { Global_21036 };
  		Global_21013 = Global_21014;
  		Global_21995 = Global_21996;
  		Global_22003 = { Global_22009 };
  		Global_21997 = Global_21998;
  		Global_21999 = Global_22000;
  		Global_22001 = Global_22002;
  		Global_20624.f_370 = Global_21994;
  		Global_20624.f_368 = Global_21992;
  		Global_20624.f_369 = Global_21993;
  		Global_21001 = Global_21002;
  		if (Global_21011)
  		{
  			MISC::CLEAR_BIT(&Global_7551, 20);
  			MISC::CLEAR_BIT(&Global_7552, 17);
  			MISC::CLEAR_BIT(&Global_7553, 0);
  			if (bParam2)
  			{
  				func_130();
  				if (Global_8356[Global_19681 /*2811*/][0 /*281*/].f_259 == 2)
  				{
  					if (iParam1 == 13)
  					{
  					}
  					else
  					{
  						return 0;
  					}
  				}
  				if (Global_19681.f_1 > 3)
  				{
  					return 0;
  				}
  			}
  			if (Global_19647 == 1)
  			{
  				return 0;
  			}
  			if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()))
  			{
  				if (PED::IS_PED_IN_MELEE_COMBAT(PLAYER::PLAYER_PED_ID()))
  				{
  					return 0;
  				}
  				if (func_129())
  				{
  					return 0;
  				}
  				if (TASK::IS_PED_SPRINTING(PLAYER::PLAYER_PED_ID()))
  				{
  					return 0;
  				}
  				if (PED::IS_PED_RAGDOLL(PLAYER::PLAYER_PED_ID()))
  				{
  					return 0;
  				}
  				if (PED::IS_PED_IN_PARACHUTE_FREE_FALL(PLAYER::PLAYER_PED_ID()))
  				{
  					return 0;
  				}
  				if (WEAPON::GET_IS_PED_GADGET_EQUIPPED(PLAYER::PLAYER_PED_ID(), joaat("gadget_parachute")))
  				{
  					return 0;
  				}
  				if (!Global_76833)
  				{
  					if (ENTITY::IS_ENTITY_IN_WATER(PLAYER::PLAYER_PED_ID()))
  					{
  						return 0;
  					}
  					if (PLAYER::IS_PLAYER_CLIMBING(PLAYER::PLAYER_ID()))
  					{
  						return 0;
  					}
  					if (PED::IS_PED_PLANTING_BOMB(PLAYER::PLAYER_PED_ID()))
  					{
  						return 0;
  					}
  					if (PLAYER::IS_SPECIAL_ABILITY_ACTIVE(PLAYER::PLAYER_ID(), 0))
  					{
  						return 0;
  					}
  				}
  			}
  			if (func_128())
  			{
  				return 0;
  			}
  			else
  			{
  				switch (Global_19681.f_1)
  				{
  					case 7:
  						return 0;
  						break;
  					
  					case 8:
  						return 0;
  						break;
  					
  					case 9:
  						break;
  					
  					case 10:
  						break;
  					
  					default:
  						break;
  				}
  				if (MISC::IS_BIT_SET(Global_7551, 9))
  				{
  					return 0;
  				}
  			}
  			func_127();
  			Global_21015 = bParam2;
  		}
  		Global_21007 = iParam1;
  		StringCopy(&Global_20624, sParam0, 24);
  		Global_19871 = 0;
  		func_126();
  		func_122();
  		return 1;
  	}
  	if (Global_21005 == 5)
  	{
  		return 0;
  	}
  	if (iParam1 < Global_21007 || iParam1 == Global_21007)
  	{
  		return 0;
  	}
  	if (iParam1 == 2)
  	{
  	}
  	else
  	{
  		func_133();
  	}
  	return 0;
  }
  
  void func_122()
  {
  	if (!func_123())
  	{
  		return;
  	}
  	if (Global_21011)
  	{
  		MemCopy(&(Global_1703981.f_1), {Global_20624}, 4);
  		Global_1703981 = Global_6866;
  		Global_1703981.f_6 = Global_21015;
  	}
  }
  
  int func_123()
  {
  	if (!Global_262145.f_28161)
  	{
  		return 0;
  	}
  	if (!Global_76833)
  	{
  		return 0;
  	}
  	if (PLAYER::PLAYER_ID() == func_88())
  	{
  		return 0;
  	}
  	if (func_124(PLAYER::PLAYER_ID()))
  	{
  		return 0;
  	}
  	if (MISC::IS_BIT_SET(Global_1630317[PLAYER::PLAYER_ID() /*595*/].f_1, 7))
  	{
  		return 0;
  	}
  	if (NETWORK::NETWORK_IS_ACTIVITY_SESSION())
  	{
  		return 0;
  	}
  	return 1;
  }
  
  bool func_124(int iParam0)
  {
  	return func_125(iParam0, 20);
  }
  
  bool func_125(int iParam0, int iParam1)
  {
  	return MISC::IS_BIT_SET(Global_1630317[iParam0 /*595*/].f_11.f_4, iParam1);
  }
  
  void func_126()
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 <= 69)
  	{
  		StringCopy(&(Global_19873[iVar0 /*6*/]), "", 24);
  		iVar0++;
  	}
  	AUDIO::STOP_SCRIPTED_CONVERSATION(false);
  	Global_21005 = 1;
  }
  
  void func_127()
  {
  	Global_21058 = Global_21057;
  	Global_21052 = Global_21053;
  	Global_21099 = { Global_21087 };
  	Global_21105 = { Global_21093 };
  	Global_21060 = Global_21059;
  	Global_21129 = { Global_21111 };
  	Global_21135 = { Global_21117 };
  	Global_21141 = { Global_21123 };
  	Global_21147 = { Global_21153 };
  	Global_6866 = Global_6867;
  	Global_6868 = Global_6869;
  	Global_21016 = Global_21017;
  	Global_21018 = Global_21019;
  	Global_21020 = { Global_21036 };
  	Global_21009 = Global_21010;
  	Global_22021 = 0;
  	Global_21054 = 0;
  	Global_21055 = 0;
  	MISC::CLEAR_BIT(&Global_7552, 16);
  }
  
  int func_128()
  {
  	if (Global_19681.f_1 == 1 || Global_19681.f_1 == 0)
  	{
  		return 1;
  	}
  	return 0;
  }
  
  int func_129()
  {
  	int iVar0;
  	int iVar1;
  	
  	if (Global_76833)
  	{
  		iVar0 = 0;
  		WEAPON::GET_CURRENT_PED_WEAPON(PLAYER::PLAYER_PED_ID(), &iVar1, true);
  		if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()))
  		{
  			if ((iVar1 == joaat("weapon_sniperrifle") || iVar1 == joaat("weapon_heavysniper")) || iVar1 == joaat("weapon_remotesniper"))
  			{
  				iVar0 = 1;
  			}
  		}
  		if (CAM::IS_AIM_CAM_ACTIVE() && iVar0 == 1)
  		{
  			return 1;
  		}
  		else
  		{
  			return 0;
  		}
  	}
  	if (PLAYER::IS_PLAYER_PLAYING(PLAYER::PLAYER_ID()))
  	{
  		if (PED::GET_PED_CONFIG_FLAG(PLAYER::PLAYER_PED_ID(), 78, true))
  		{
  			return 1;
  		}
  		else
  		{
  			return 0;
  		}
  	}
  	return 1;
  }
  
  void func_130()
  {
  	if (func_58(14))
  	{
  		if (!ENTITY::IS_ENTITY_DEAD(PLAYER::PLAYER_PED_ID(), false))
  		{
  			if (ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()) == Global_111858.f_28046[0 /*29*/])
  			{
  				Global_19681 = 0;
  			}
  			else if (ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()) == Global_111858.f_28046[1 /*29*/])
  			{
  				Global_19681 = 1;
  			}
  			else if (ENTITY::GET_ENTITY_MODEL(PLAYER::PLAYER_PED_ID()) == Global_111858.f_28046[2 /*29*/])
  			{
  				Global_19681 = 2;
  			}
  			else
  			{
  				Global_19681 = 0;
  			}
  		}
  	}
  	else
  	{
  		Global_19681 = func_106();
  		if (Global_19681 == 145)
  		{
  			Global_19681 = 3;
  		}
  		if (Global_76833)
  		{
  			Global_19681 = 3;
  		}
  		if (Global_19681 > 3)
  		{
  			Global_19681 = 3;
  		}
  	}
  }
  
  void func_131()
  {
  	int iVar0;
  	
  	iVar0 = 0;
  	while (iVar0 <= 15)
  	{
  		Global_20294[iVar0 /*10*/] = 0;
  		StringCopy(&(Global_20294[iVar0 /*10*/].f_1), "", 24);
  		Global_20294[iVar0 /*10*/].f_7 = 0;
  		Global_20294[iVar0 /*10*/].f_8 = 0;
  		iVar0++;
  	}
  	Global_20294.f_161 = -99;
  	Global_20294.f_162 = { 0f, 0f, 0f };
  }
  
  bool func_132(int iParam0, int iParam1)
  {
  	switch (iParam0)
  	{
  		case 5:
  			if (iParam1 > -1)
  			{
  				return Global_1377236.f_203[iParam1];
  			}
  			break;
  	}
  	return MISC::IS_BIT_SET(Global_1377236.f_1048, iParam0);
  }
  
  void func_133()
  {
  	AUDIO::RESTART_SCRIPTED_CONVERSATION();
  	Global_22016 = 0;
  	if ((AUDIO::IS_MOBILE_PHONE_CALL_ONGOING() || Global_19681.f_1 == 9) || Global_19680 == 1)
  	{
  		AUDIO::STOP_SCRIPTED_CONVERSATION(false);
  		Global_21005 = 6;
  		Global_19681.f_1 = 3;
  		return;
  	}
  	if (AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING())
  	{
  		AUDIO::STOP_SCRIPTED_CONVERSATION(true);
  		Global_21005 = 6;
  		return;
  	}
  }
  
  void func_134(var uParam0, int iParam1, char* sParam2, int iParam3, int iParam4, var uParam5)
  {
  	Global_20459 = { *uParam0 };
  	Global_6867 = iParam1;
  	StringCopy(&Global_21075, sParam2, 24);
  	Global_21994 = uParam5;
  	if (iParam3 == 0)
  	{
  		Global_21992 = 1;
  		Global_21990 = 0;
  	}
  	else
  	{
  		Global_21992 = 0;
  		Global_21990 = 1;
  	}
  	if (iParam4 == 0)
  	{
  		Global_21993 = 1;
  		Global_21991 = 0;
  	}
  	else
  	{
  		Global_21993 = 0;
  		Global_21991 = 1;
  	}
  }
  
  void func_135(var uParam0, int iParam1, int iParam2, char* sParam3, int iParam4, int iParam5)
  {
  	if ((uParam0[iParam1 /*10*/])->f_7 == 1)
  	{
  	}
  	(*uParam0)[iParam1 /*10*/] = iParam2;
  	StringCopy(&((uParam0[iParam1 /*10*/])->f_1), sParam3, 24);
  	(uParam0[iParam1 /*10*/])->f_7 = 1;
  	(uParam0[iParam1 /*10*/])->f_8 = iParam4;
  	(uParam0[iParam1 /*10*/])->f_9 = iParam5;
  	if (!Global_76833)
  	{
  		if (!PED::IS_PED_INJURED(iParam2))
  		{
  			if ((uParam0[iParam1 /*10*/])->f_8 == 0)
  			{
  				PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(iParam2, false);
  			}
  			else
  			{
  				PED::SET_PED_CAN_PLAY_AMBIENT_ANIMS(iParam2, true);
  			}
  		}
  		if (!PED::IS_PED_INJURED(iParam2))
  		{
  			if ((uParam0[iParam1 /*10*/])->f_9 == 0)
  			{
  				PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(iParam2, false);
  			}
  			else
  			{
  				PED::SET_PED_CAN_USE_AUTO_CONVERSATION_LOOKAT(iParam2, true);
  			}
  		}
  	}
  }
  
  float func_136(int* iParam0)
  {
  	if (func_141(iParam0))
  	{
  		if (func_138(iParam0))
  		{
  			return iParam0->f_2;
  		}
  		else
  		{
  			return (func_137(MISC::IS_BIT_SET(*iParam0, 4)) - iParam0->f_1);
  		}
  	}
  	return iParam0->f_1;
  }
  
  float func_137(bool bParam0)
  {
  	float fVar0;
  	float fVar1;
  	int iVar2;
  	float fVar3;
  	float fVar4;
  	
  	if (bParam0)
  	{
  		fVar0 = SYSTEM::TO_FLOAT(MISC::GET_GAME_TIMER());
  		fVar1 = (fVar0 / 1000f);
  		return fVar1;
  	}
  	if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS())
  	{
  		iVar2 = NETWORK::GET_NETWORK_TIME();
  		fVar3 = SYSTEM::TO_FLOAT(iVar2);
  		fVar4 = (fVar3 / 1000f);
  		return fVar4;
  	}
  	return (SYSTEM::TO_FLOAT(MISC::GET_GAME_TIMER()) / 1000f);
  }
  
  bool func_138(int* iParam0)
  {
  	return MISC::IS_BIT_SET(*iParam0, 2);
  }
  
  void func_139(int* iParam0)
  {
  	func_140(iParam0, 0f);
  }
  
  void func_140(int* iParam0, float fParam1)
  {
  	iParam0->f_1 = (func_137(MISC::IS_BIT_SET(*iParam0, 4)) - fParam1);
  	MISC::SET_BIT(iParam0, 1);
  	MISC::CLEAR_BIT(iParam0, 2);
  	iParam0->f_2 = 0f;
  }
  
  bool func_141(int* iParam0)
  {
  	return MISC::IS_BIT_SET(*iParam0, 1);
  }
  
  int func_142()
  {
  	if (Global_21005 != 0 || AUDIO::IS_SCRIPTED_CONVERSATION_ONGOING())
  	{
  		return 1;
  	}
  	return 0;
  }
  
  int func_143(int iParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (PED::IS_PED_IN_ANY_VEHICLE(iParam0, false))
  	{
  		iVar0 = PED::GET_VEHICLE_PED_IS_IN(iParam0, false);
  		if (!ENTITY::IS_ENTITY_DEAD(iVar0, false))
  		{
  			if (VEHICLE::GET_PED_IN_VEHICLE_SEAT(iVar0, -1, false) == iParam0)
  			{
  				iVar1 = ENTITY::GET_ENTITY_MODEL(iVar0);
  				if (iVar1 == joaat("towtruck") || iVar1 == joaat("towtruck2"))
  				{
  					iLocal_275 = iVar0;
  					if (ENTITY::DOES_ENTITY_EXIST(iLocal_275) && !ENTITY::IS_ENTITY_DEAD(iLocal_275, false))
  					{
  						iLocal_271 = ENTITY::GET_ENTITY_MODEL(iLocal_275);
  					}
  					return 1;
  				}
  			}
  		}
  	}
  	return 0;
  }
  
  void func_144(var uParam0, int iParam1)
  {
  	func_145(uParam0, iParam1);
  }
  
  void func_145(var uParam0, var uParam1)
  {
  	*uParam0 = (*uParam0 - (*uParam0 && uParam1));
  }
  
  void func_146(var uParam0, int iParam1)
  {
  	if (!func_150(uParam0, 0, 1))
  	{
  		if (func_143(iParam1))
  		{
  			if (PAD::IS_CONTROL_JUST_PRESSED(0, 86) || PAD::IS_DISABLED_CONTROL_PRESSED(0, 86))
  			{
  				if ((((((!func_142() && !HUD::IS_HELP_MESSAGE_BEING_DISPLAYED()) && !func_114(0)) && !func_58(6)) && !func_58(7)) && !PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) > 0) && func_106() == 1)
  				{
  					func_135(&uLocal_84, 1, PLAYER::PLAYER_PED_ID(), "FRANKLIN", 0, 1);
  					func_135(&uLocal_84, 4, 0, "TOWDISPATCH", 0, 1);
  					if (func_120(&uLocal_84, "TOWAUD", "TOW_JOBS_AVL", 4, 0, 0, 0))
  					{
  						if (!func_141(&iLocal_71))
  						{
  							func_147(&iLocal_71);
  						}
  						else
  						{
  							func_139(&iLocal_71);
  						}
  						iLocal_270 = 1;
  					}
  				}
  			}
  		}
  	}
  	if (iLocal_270)
  	{
  		if (func_141(&iLocal_71))
  		{
  			if (func_136(&iLocal_71) > 4f)
  			{
  				if (func_120(&uLocal_84, "TOWAUD", "TOW_NO_JOBS", 4, 0, 0, 0))
  				{
  					iLocal_270 = 0;
  				}
  			}
  		}
  	}
  }
  
  void func_147(int* iParam0)
  {
  	if (!func_141(iParam0))
  	{
  		func_139(iParam0);
  	}
  }
  
  void func_148(int iParam0, struct<3> Param1, float fParam4, var uParam5)
  {
  	float fVar0;
  	int iVar1;
  	int iVar2;
  	
  	fVar0 = SYSTEM::VDIST2(Param1, ENTITY::GET_ENTITY_COORDS(iParam0, true));
  	switch (iLocal_75)
  	{
  		case 0:
  			if (ENTITY::IS_ENTITY_DEAD(iParam0, false))
  			{
  				return;
  			}
  			if (fVar0 > 62500f)
  			{
  				return;
  			}
  			if (fVar0 < 25f && !func_22(Global_111858.f_19969.f_1, 1073741824))
  			{
  				return;
  			}
  			if (bLocal_268)
  			{
  				return;
  			}
  			if (PED::IS_PED_IN_ANY_VEHICLE(iParam0, false))
  			{
  				iVar1 = PED::GET_VEHICLE_PED_IS_IN(iParam0, false);
  				if (!ENTITY::IS_ENTITY_DEAD(iVar1, false))
  				{
  					iVar2 = ENTITY::GET_ENTITY_MODEL(iVar1);
  					if ((iVar2 == joaat("towtruck") || iVar2 == joaat("towtruck2")) && ENTITY::GET_ENTITY_HEALTH(iVar1) > 400)
  					{
  						return;
  					}
  				}
  			}
  			if (!func_150(uParam5, 0, 1))
  			{
  				return;
  			}
  			iLocal_75 = 1;
  			break;
  		
  		case 1:
  			STREAMING::REQUEST_MODEL(joaat("towtruck"));
  			iLocal_75 = 2;
  			break;
  		
  		case 2:
  			if (STREAMING::HAS_MODEL_LOADED(joaat("towtruck")))
  			{
  				if (!CAM::IS_SPHERE_VISIBLE(Local_258, fLocal_261) || func_22(Global_111858.f_19969.f_1, 1073741824))
  				{
  					if (!ENTITY::DOES_ENTITY_EXIST(iLocal_275))
  					{
  						iLocal_275 = VEHICLE::CREATE_VEHICLE(joaat("towtruck"), Param1, fParam4, true, true, false);
  						STREAMING::SET_MODEL_AS_NO_LONGER_NEEDED(joaat("towtruck"));
  						iLocal_75 = 3;
  					}
  				}
  			}
  			break;
  		
  		case 3:
  			if (PED::IS_PED_IN_ANY_VEHICLE(iParam0, false))
  			{
  				if (PED::GET_VEHICLE_PED_IS_IN(iParam0, false) == iLocal_275)
  				{
  					iLocal_75 = 0;
  				}
  			}
  			if (ENTITY::IS_ENTITY_DEAD(iLocal_275, false))
  			{
  				iLocal_75 = 0;
  			}
  			if (fVar0 > 62500f)
  			{
  				VEHICLE::DELETE_VEHICLE(&iLocal_275);
  				iLocal_75 = 0;
  			}
  			break;
  	}
  }
  
  void func_149(int iParam0, var uParam1, var uParam2, var uParam3, var uParam4)
  {
  	switch (iParam0)
  	{
  		case 0:
  			*uParam3 = { -14.3934f, -1472.696f, 29.5896f };
  			*uParam4 = 314.2467f;
  			break;
  		
  		case 1:
  			*uParam3 = { -14.3934f, -1472.696f, 29.5896f };
  			*uParam4 = 314.2467f;
  			break;
  		
  		case 2:
  			*uParam3 = { 0f, 0f, 0f };
  			*uParam4 = 0f;
  			break;
  		
  		case 3:
  			*uParam3 = { 0f, 0f, 0f };
  			*uParam4 = 0f;
  			break;
  		
  		case 4:
  			*uParam3 = { -14.3934f, -1472.696f, 29.5896f };
  			*uParam4 = 314.2467f;
  			break;
  		
  		default:
  			*uParam3 = { 0f, 0f, 0f };
  			*uParam4 = 0f;
  			break;
  	}
  	*uParam1 = { 401.637f, -1633.3f, 28.2928f };
  	*uParam2 = 231.5304f;
  }
  
  int func_150(var uParam0, bool bParam1, bool bParam2)
  {
  	if (!bParam1)
  	{
  		if (func_114(9))
  		{
  			iLocal_252 = MISC::GET_GAME_TIMER();
  			iLocal_253 = 10000;
  			return 0;
  		}
  		if (func_151(41))
  		{
  			iLocal_252 = MISC::GET_GAME_TIMER();
  			iLocal_253 = 10000;
  			return 0;
  		}
  	}
  	if (PLAYER::GET_PLAYER_WANTED_LEVEL(PLAYER::PLAYER_ID()) > 0)
  	{
  		if (*uParam0 >= 16)
  		{
  			if (Global_111858.f_19969.f_3 >= 5)
  			{
  				func_119("TOW_WANTED", -1);
  			}
  		}
  		iLocal_252 = MISC::GET_GAME_TIMER();
  		iLocal_253 = 6000;
  		return 0;
  	}
  	if (bParam2)
  	{
  		iLocal_272 = func_106();
  		if (iLocal_272 != 1)
  		{
  			return 0;
  		}
  	}
  	if ((MISC::GET_GAME_TIMER() - iLocal_252) < iLocal_253)
  	{
  		return 0;
  	}
  	return 1;
  }
  
  int func_151(int iParam0)
  {
  	int iVar0;
  	
  	if (iParam0 == 94 || iParam0 == -1)
  	{
  		return 0;
  	}
  	if (Global_92940[iParam0 /*2*/])
  	{
  		return 1;
  	}
  	iVar0 = 0;
  	while (iVar0 < Global_89707)
  	{
  		if (Global_89707[iVar0 /*5*/] != -1)
  		{
  			if (Global_77102.f_109[Global_89707[iVar0 /*5*/] /*4*/] == iParam0)
  			{
  				return 1;
  			}
  		}
  		iVar0++;
  	}
  	return 0;
  }
  
  int func_152()
  {
  	if (!func_58(0))
  	{
  		if (Global_111858.f_9081)
  		{
  			if (func_154(0, 14) && func_153(0) == 1)
  			{
  				return 1;
  			}
  		}
  		else
  		{
  			return 1;
  		}
  	}
  	else
  	{
  		iLocal_278 = 0;
  	}
  	return 0;
  }
  
  int func_153(int iParam0)
  {
  	return Global_111858.f_24900[iParam0 /*4*/];
  }
  
  bool func_154(int iParam0, int iParam1)
  {
  	bool bVar0;
  	
  	if (iParam0 == 11 || iParam0 == -1)
  	{
  		return 0;
  	}
  	if (iParam1 < 0 || iParam1 >= 32)
  	{
  		return 0;
  	}
  	bVar0 = MISC::IS_BIT_SET(Global_111858.f_9081.f_99.f_219[iParam0], iParam1);
  	return bVar0;
  }
  
  int func_155(int iParam0)
  {
  	int iVar0;
  	int iVar1;
  	
  	if (iParam0 <= 31)
  	{
  		iVar0 = 9;
  		iVar1 = iParam0;
  	}
  	else
  	{
  		iVar0 = 10;
  		iVar1 = (iParam0 - 32);
  	}
  	if (MISC::IS_BIT_SET(Global_111858.f_9081.f_99.f_219[iVar0], iVar1))
  	{
  		return 0;
  	}
  	MISC::SET_BIT(&(Global_111858.f_9081.f_99.f_219[iVar0]), iVar1);
  	return 1;
  }
  
  void func_156()
  {
  	func_23();
  	func_144(&(Global_111858.f_19969.f_1), 2048);
  	func_144(&(Global_111858.f_19969.f_1), 4096);
  	func_144(&(Global_111858.f_19969.f_1), 8192);
  	SCRIPT::TERMINATE_THIS_THREAD();
  }
  
  