// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/g_save.c
// Function: InitGame
void InitGame(void)
{

#ifdef	_WIN32
	_CrtMemCheckpoint(&startup1);
#endif
	// CTF CODE -- LM_JORM
	FILE* file;
	char		line[MAX_INFO_STRING];
	char		fname[MAX_QPATH];
	size_t		i;

	// END CTF CODE -- LM_JORM

	gi.dprintf("==== InitGame %s %d-%s %s ====\n", GAMEVERSION, LMCTF_REVISION, LMCTF_VERSION, __DATE__);

	// seed the random number generator
	srand((unsigned)time(NULL));

	gun_x = gi.cvar("gun_x", "0", 0);
	gun_y = gi.cvar("gun_y", "0", 0);
	gun_z = gi.cvar("gun_z", "0", 0);

	//FIXME: sv_ prefix is wrong for these
	sv_rollspeed = gi.cvar("sv_rollspeed", "200", 0);
	sv_rollangle = gi.cvar("sv_rollangle", "2", 0);
	sv_maxvelocity = gi.cvar("sv_maxvelocity", "2000", 0);
	sv_gravity = gi.cvar("sv_gravity", "800", 0);

	// noset vars
	dedicated = gi.cvar("dedicated", "0", CVAR_NOSET);

	gi.cvar("revision", va("%d", LMCTF_REVISION), CVAR_SERVERINFO);
	gi.cvar_set("revision", va("%d-%s", LMCTF_REVISION, LMCTF_VERSION));

	// latched vars
	sv_cheats = gi.cvar("cheats", "0", CVAR_SERVERINFO | CVAR_LATCH);
	gi.cvar("gamename", GAMEVERSION, CVAR_SERVERINFO | CVAR_LATCH);
	gi.cvar("gamedate", __DATE__, CVAR_SERVERINFO | CVAR_LATCH);

	maxclients = gi.cvar("maxclients", "4", CVAR_SERVERINFO | CVAR_LATCH);
	//maxspectators = gi.cvar ("maxspectators", "4", CVAR_SERVERINFO);
	//-bat
	maxspectators = gi.cvar("maxspectators", "24", CVAR_SERVERINFO);
	deathmatch = gi.cvar("deathmatch", "0", CVAR_LATCH);
	coop = gi.cvar("coop", "0", CVAR_LATCH);
	skill = gi.cvar("skill", "1", CVAR_LATCH);
	maxentities = gi.cvar("maxentities", "1024", CVAR_LATCH);

	// change anytime vars
	dmflags = gi.cvar("dmflags", "0", CVAR_SERVERINFO);
	fraglimit = gi.cvar("fraglimit", "0", CVAR_SERVERINFO);
	timelimit = gi.cvar("timelimit", "0", CVAR_SERVERINFO);
	railtime = gi.cvar("railtime", "0", CVAR_SERVERINFO);
	password = gi.cvar("password", "", CVAR_USERINFO);
	spectator_password = gi.cvar("spectator_password", "", CVAR_USERINFO);
	needpass = gi.cvar("needpass", "0", CVAR_SERVERINFO);
	filterban = gi.cvar("filterban", "1", 0);

	g_select_empty = gi.cvar("g_select_empty", "0", CVAR_ARCHIVE);

	run_pitch = gi.cvar("run_pitch", "0.002", 0);
	run_roll = gi.cvar("run_roll", "0.005", 0);
	bob_up = gi.cvar("bob_up", "0.005", 0);
	bob_pitch = gi.cvar("bob_pitch", "0.002", 0);
	bob_roll = gi.cvar("bob_roll", "0.002", 0);

	runes = gi.cvar("runes", "15", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
	ctfflags = gi.cvar("ctfflags", "0", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
	refset = gi.cvar("refset", "0", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
	logrename = gi.cvar("logrename", "", 0); // CTF CODE -- LM_CTF
	hostname = gi.cvar("hostname", "noname", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
	gamedir = gi.cvar("game", "lmctf", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
	skinset = gi.cvar("skinset", "0", CVAR_SERVERINFO); // CTF CODE -- LM_CTF
#ifdef OLDOBSERVERCODE
	autoobserve = gi.cvar("autoobserve", "0", CVAR_USERINFO); // CTF CODE -- LM_CTF
#endif
	refpassword = gi.cvar("refpassword", "", 0); // CTF CODE -- LM_CTF
	rconpassword = gi.cvar("rcon_password", "", 0); // CTF CODE -- LM_CTF
	disabled_weps = gi.cvar("disabled_weps", "0", 0);
	fastswitch = gi.cvar("fastswitch", "0", 0);
	mod_website = gi.cvar("mod_website", "http://lmctf.com", 0);
	autolock = gi.cvar("autolock", "0", 0);
	countdown_time = gi.cvar("countdown_time", "15", 0);


#ifdef ZBOT
	use_zbotdetect = gi.cvar("use_zbotdetect", "0", CVAR_SERVERINFO);
#endif

	//configuration files
	motd_file = gi.cvar("motd_file", "motd.txt", 0); //CTF CODE -- LM_CTF
	server_file = gi.cvar("server_file", "server.cfg", 0); //CTF CODE -- LM_CTF
	maplist_file = gi.cvar("maplist_file", "maplist.txt", 0);  //CTF CODE -- LM_CTF
	skin_file = gi.cvar("skin_file", "skins.ini", 0);
	skin_debug = gi.cvar("skin_debug", "0", 0);	// for debugging team skins in SkinsReadFile
	flag_init = gi.cvar("flag_init", "0", 0);	// flag spawning frame initialization.



	//logging startup after vars initialized
	ctf_SetLogName();
	sl_Logging(&gi, GAMEVERSION);	// StdLog - Mark Davies (Only required to set patch name)

	// dm map list
	sv_maplist = gi.cvar("sv_maplist", "", 0);

	// items
	InitItems();

	Com_sprintf(game.helpmessage1, sizeof(game.helpmessage1), "");

	Com_sprintf(game.helpmessage2, sizeof(game.helpmessage2), "");

	// initialize all entities for this game
	game.maxentities = maxentities->value;
	g_edicts = gi.TagMalloc(game.maxentities * sizeof(g_edicts[0]), TAG_GAME);
	globals.edicts = g_edicts;
	globals.max_edicts = game.maxentities;

	// initialize all clients for this game
	game.maxclients = maxclients->value;
	game.clients = gi.TagMalloc(game.maxclients * sizeof(game.clients[0]), TAG_GAME);
	globals.num_edicts = game.maxclients + 1;


	// CTF CODE -- LM_JORM
	if (!maplistindex) // Have we done this before?
	{
		//		sprintf (fname, "%s/maplist.txt", gamedir->string);
		sprintf(fname, "%s/%s", gamedir->string, maplist_file->string);
		file = fopen(fname, "r");
		if (!file)
			file = fopen("maplist.txt", "r");

		if (file)
		{
			// If there is a maplist file, read it
			//   And use it for our list of maps.

			maplistindex = 0;
			while (fgets(line, 255, file))
			{
				char* tempname = gi.TagMalloc(100, TAG_GAME);
				int tempmin = 0;
				int tempmax = 99;
				if (sscanf(line, "%s %d %d", tempname, &tempmin, &tempmax) != 3) {
					if (sscanf(line, "%s %d", tempname, &tempmin) != 2) {
						if (sscanf(line, "%s", tempname) != 1) {
							sprintf(line, "Bad entry in maplist");
							gi.dprintf(line);
							gi.TagFree(tempname);
							continue;
						}
					}
				}
				//, maplist[maplistindex]))
				// convert to lower case for subsequent comparisons
				for (i = 0; i < strlen(tempname); i++)
					tempname[i] = tolower(tempname[i]);
				maplist[maplistindex].mapname = tempname;
				maplist[maplistindex].minplayers = tempmin;
				maplist[maplistindex].maxplayers = tempmax;

				maplistindex++;

			}
			SortMaplist(maplist, 0, maplistindex - 1);
			//maplist[maplistindex][0] = 0; // Blank last entry
			sprintf(line, "%d entries in maplist.\n", maplistindex);
			gi.dprintf(line);
			fclose(file);
			if (maplistindex)  // Did we read anything?
			{
				Randomize_Map_List(maplistindex);
				maplistindex = -1; // This means first time through the list
			}
			else
				maplistindex = -2; // Not going to use it

		}
		else
		{
			sprintf(line, "Can't find %s.  Reverting to standard maps.\n", fname);
			gi.dprintf(line);
			maplistindex = -2; // Not going to use it
		}
	}


	// Reading the help text file

	sprintf(fname, "%s/help.txt", gamedir->string);
	file = fopen(fname, "r");
	if (!file)
		file = fopen("help.txt", "r");

	if (file)
	{
		// If there is a help file, read it

		i = 0;
		while (fgets(line, 255, file))
		{
			// Nul termination is guaranteed from fgets.
			memcpy(helptext[i], line, 24);
			i++;
		}
		helptext[i][0] = 0; // Blank last entry
		fclose(file);
		sprintf(line, "Read %zu lines of %s.\n", i, fname);
		gi.dprintf(line);
	}
	else
	{
		sprintf(line, "Can't find %s.  You get no help!\n", fname);
		gi.dprintf(line);
		strcpy(helptext[0], "No help available."); // Not going to use it
		helptext[1][0] = 0;
	}

	if (motd_file && strcmp(motd_file->string, "") != 0)
		sprintf(fname, "%s/%s", gamedir->string, motd_file->string);
	else
		sprintf(fname, "%s/motd.txt", gamedir->string);
	file = fopen(fname, "r");
	if (!file)
		file = fopen("motd.txt", "r");
	if (file)
	{
		size_t count = fread(motd, sizeof motd, 1, file);
		if (count)
			; // don't worry, be happy
		fclose(file);
	}

	SkinsReadFile(); // READ our skins.ini


	// END CTF CODE -- LM_JORM

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x290, %rsp            # imm = 0x290
leaq 0x2c813(%rip), %rdi     # 0x74a75
leaq 0x2865d(%rip), %rsi     # 0x708c6
movl $0x6b, %edx
leaq 0x2c820(%rip), %rcx     # 0x74a95
leaq 0x2a6c5(%rip), %r8      # 0x72941
movq 0x3a37d(%rip), %r9      # 0x82600
movb $0x0, %al
callq *0x8(%r9)
xorl %eax, %eax
movl %eax, %edi
callq 0x18f70
movl %eax, %edi
callq 0x18aa0
leaq 0x2c802(%rip), %rdi     # 0x74aa2
leaq 0x2fa09(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x3a350(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a7c0(%rip), %rax     # 0x82a80
movq %rcx, (%rax)
leaq 0x2c7de(%rip), %rdi     # 0x74aa8
leaq 0x2f9df(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x3a326(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a11e(%rip), %rax     # 0x82408
movq %rcx, (%rax)
leaq 0x2c7ba(%rip), %rdi     # 0x74aae
leaq 0x2f9b5(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x3a2fc(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a784(%rip), %rax     # 0x82a98
movq %rcx, (%rax)
leaq 0x2c796(%rip), %rdi     # 0x74ab4
leaq 0x2c79c(%rip), %rsi     # 0x74ac1
xorl %edx, %edx
movq 0x3a2d2(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3aa7a(%rip), %rax     # 0x82db8
movq %rcx, (%rax)
leaq 0x2c77d(%rip), %rdi     # 0x74ac5
leaq 0x26d11(%rip), %rsi     # 0x6f060
xorl %edx, %edx
movq 0x3a2a8(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a7e0(%rip), %rax     # 0x82b48
movq %rcx, (%rax)
leaq 0x2c760(%rip), %rdi     # 0x74ad2
leaq 0x2c768(%rip), %rsi     # 0x74ae1
xorl %edx, %edx
movq 0x3a27e(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a5de(%rip), %rax     # 0x82970
movq %rcx, (%rax)
leaq 0x2c74a(%rip), %rdi     # 0x74ae6
leaq 0x2c74e(%rip), %rsi     # 0x74af1
xorl %edx, %edx
movq 0x3a254(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3ac04(%rip), %rax     # 0x82fc0
movq %rcx, (%rax)
leaq 0x2c72f(%rip), %rdi     # 0x74af5
leaq 0x2f8e3(%rip), %rsi     # 0x77cb0
movl $0x8, %edx
movq 0x3a227(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a8cf(%rip), %rax     # 0x82cb8
movq %rcx, (%rax)
movq 0x3a20d(%rip), %rax     # 0x82600
movq 0x120(%rax), %rax
movq %rax, -0x280(%rbp)
leaq 0x2746e(%rip), %rdi     # 0x6f876
movl $0x6b, %esi
movb $0x0, %al
callq 0x19560
movq %rax, %rsi
movq -0x280(%rbp), %rax
leaq 0x2c6da(%rip), %rdi     # 0x74aff
movl $0x4, %edx
callq *%rax
movq 0x3a1cd(%rip), %rax     # 0x82600
movq 0x128(%rax), %rax
movq %rax, -0x278(%rbp)
leaq 0x2c6c0(%rip), %rdi     # 0x74b08
movl $0x6b, %esi
leaq 0x2c641(%rip), %rdx     # 0x74a95
movb $0x0, %al
callq 0x19560
movq %rax, %rsi
movq -0x278(%rbp), %rax
leaq 0x2c693(%rip), %rdi     # 0x74aff
callq *%rax
leaq 0x2c699(%rip), %rdi     # 0x74b0e
leaq 0x2f834(%rip), %rsi     # 0x77cb0
movl $0x14, %edx
movq 0x3a178(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a560(%rip), %rax     # 0x829f8
movq %rcx, (%rax)
leaq 0x2c673(%rip), %rdi     # 0x74b15
leaq 0x2841d(%rip), %rsi     # 0x708c6
movl $0x14, %edx
movq 0x3a14b(%rip), %rax     # 0x82600
callq *0x120(%rax)
leaq 0x2c65c(%rip), %rdi     # 0x74b1e
leaq 0x2a478(%rip), %rsi     # 0x72941
movl $0x14, %edx
movq 0x3a12b(%rip), %rax     # 0x82600
callq *0x120(%rax)
leaq 0x2c645(%rip), %rdi     # 0x74b27
leaq 0x278a7(%rip), %rsi     # 0x6fd90
movl $0x14, %edx
movq 0x3a10b(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a02b(%rip), %rax     # 0x82530
movq %rcx, (%rax)
leaq 0x2c623(%rip), %rdi     # 0x74b32
leaq 0x2c63e(%rip), %rsi     # 0x74b54
movl $0x4, %edx
movq 0x3a0de(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3aa06(%rip), %rax     # 0x82f38
movq %rcx, (%rax)
leaq 0x27ff2(%rip), %rdi     # 0x7052e
leaq 0x2f76d(%rip), %rsi     # 0x77cb0
movl $0x10, %edx
movq 0x3a0b1(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a961(%rip), %rax     # 0x82ec0
movq %rcx, (%rax)
leaq 0x2c917(%rip), %rdi     # 0x74e80
leaq 0x2f740(%rip), %rsi     # 0x77cb0
movl $0x10, %edx
movq 0x3a084(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a9d4(%rip), %rax     # 0x82f60
movq %rcx, (%rax)
leaq 0x2c5aa(%rip), %rdi     # 0x74b40
leaq 0x26ab7(%rip), %rsi     # 0x6f054
movl $0x10, %edx
movq 0x3a057(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a17f(%rip), %rax     # 0x82738
movq %rcx, (%rax)
leaq 0x2c583(%rip), %rdi     # 0x74b46
leaq 0x2c588(%rip), %rsi     # 0x74b52
movl $0x10, %edx
movq 0x3a02a(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39ec2(%rip), %rax     # 0x824a8
movq %rcx, (%rax)
leaq 0x26f17(%rip), %rdi     # 0x6f507
leaq 0x2f6b9(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39ffd(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a005(%rip), %rax     # 0x82618
movq %rcx, (%rax)
leaq 0x26f11(%rip), %rdi     # 0x6f52e
leaq 0x2f68c(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39fd0(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a7c0(%rip), %rax     # 0x82e00
movq %rcx, (%rax)
leaq 0x26ed6(%rip), %rdi     # 0x6f520
leaq 0x2f65f(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39fa3(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a043(%rip), %rax     # 0x826b0
movq %rcx, (%rax)
leaq 0x2c4e0(%rip), %rdi     # 0x74b57
leaq 0x2f632(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39f76(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39fb6(%rip), %rax     # 0x82650
movq %rcx, (%rax)
leaq 0x2c55d(%rip), %rdi     # 0x74c01
leaq 0x288d5(%rip), %rsi     # 0x70f80
movl $0x2, %edx
movq 0x39f49(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a191(%rip), %rax     # 0x82858
movq %rcx, (%rax)
leaq 0x2c48f(%rip), %rdi     # 0x74b60
leaq 0x288a8(%rip), %rsi     # 0x70f80
movl $0x2, %edx
movq 0x39f1c(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a534(%rip), %rax     # 0x82c28
movq %rcx, (%rax)
leaq 0x2ba67(%rip), %rdi     # 0x74165
leaq 0x2f5ab(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39eef(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a64f(%rip), %rax     # 0x82d70
movq %rcx, (%rax)
leaq 0x2c448(%rip), %rdi     # 0x74b73
leaq 0x26922(%rip), %rsi     # 0x6f054
xorl %edx, %edx
movq 0x39ec5(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a685(%rip), %rax     # 0x82dd0
movq %rcx, (%rax)
leaq 0x2c428(%rip), %rdi     # 0x74b7d
leaq 0x2f554(%rip), %rsi     # 0x77cb0
movl $0x1, %edx
movq 0x39e98(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39dd0(%rip), %rax     # 0x82548
movq %rcx, (%rax)
leaq 0x2c40a(%rip), %rdi     # 0x74b8c
leaq 0x2c40d(%rip), %rsi     # 0x74b96
xorl %edx, %edx
movq 0x39e6e(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39eb6(%rip), %rax     # 0x82658
movq %rcx, (%rax)
leaq 0x2c3f0(%rip), %rdi     # 0x74b9c
leaq 0x2c3f2(%rip), %rsi     # 0x74ba5
xorl %edx, %edx
movq 0x39e44(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a71c(%rip), %rax     # 0x82ee8
movq %rcx, (%rax)
leaq 0x2c3d5(%rip), %rdi     # 0x74bab
leaq 0x2c3c8(%rip), %rsi     # 0x74ba5
xorl %edx, %edx
movq 0x39e1a(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a2ea(%rip), %rax     # 0x82ae0
movq %rcx, (%rax)
leaq 0x2c3b2(%rip), %rdi     # 0x74bb2
leaq 0x2c38f(%rip), %rsi     # 0x74b96
xorl %edx, %edx
movq 0x39df0(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a218(%rip), %rax     # 0x82a38
movq %rcx, (%rax)
leaq 0x2c392(%rip), %rdi     # 0x74bbc
leaq 0x2c365(%rip), %rsi     # 0x74b96
xorl %edx, %edx
movq 0x39dc6(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a41e(%rip), %rax     # 0x82c68
movq %rcx, (%rax)
leaq 0x2c371(%rip), %rdi     # 0x74bc5
leaq 0x27384(%rip), %rsi     # 0x6fbdf
movl $0x4, %edx
movq 0x39d99(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39be9(%rip), %rax     # 0x82460
movq %rcx, (%rax)
leaq 0x26c92(%rip), %rdi     # 0x6f513
leaq 0x2f428(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39d6c(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a2b4(%rip), %rax     # 0x82b58
movq %rcx, (%rax)
leaq 0x26e9f(%rip), %rdi     # 0x6f74d
leaq 0x2f3fb(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39d3f(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a0c7(%rip), %rax     # 0x82998
movq %rcx, (%rax)
leaq 0x2c2f0(%rip), %rdi     # 0x74bcb
leaq 0x2869e(%rip), %rsi     # 0x70f80
xorl %edx, %edx
movq 0x39d15(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39c45(%rip), %rax     # 0x82540
movq %rcx, (%rax)
leaq 0x2c2d0(%rip), %rdi     # 0x74bd5
leaq 0x2c2d2(%rip), %rsi     # 0x74bde
movl $0x4, %edx
movq 0x39ce8(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a2c8(%rip), %rax     # 0x82bf0
movq %rcx, (%rax)
leaq 0x2c2b3(%rip), %rdi     # 0x74be5
leaq 0x2c2b1(%rip), %rsi     # 0x74bea
movl $0x4, %edx
movq 0x39cbb(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a55b(%rip), %rax     # 0x82eb0
movq %rcx, (%rax)
leaq 0x2b852(%rip), %rdi     # 0x741b1
leaq 0x2f34a(%rip), %rsi     # 0x77cb0
movl $0x4, %edx
movq 0x39c8e(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39f76(%rip), %rax     # 0x828f8
movq %rcx, (%rax)
leaq 0x2c264(%rip), %rdi     # 0x74bf0
leaq 0x285ed(%rip), %rsi     # 0x70f80
xorl %edx, %edx
movq 0x39c64(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39c64(%rip), %rax     # 0x82610
movq %rcx, (%rax)
leaq 0x2c246(%rip), %rdi     # 0x74bfc
leaq 0x285c3(%rip), %rsi     # 0x70f80
xorl %edx, %edx
movq 0x39c3a(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a082(%rip), %rax     # 0x82a58
movq %rcx, (%rax)
leaq 0x2c22a(%rip), %rdi     # 0x74c0a
leaq 0x2f2c9(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x39c10(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39a40(%rip), %rax     # 0x82440
movq %rcx, (%rax)
leaq 0x29f9f(%rip), %rdi     # 0x729a9
leaq 0x2f29f(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x39be6(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a176(%rip), %rax     # 0x82ba0
movq %rcx, (%rax)
leaq 0x2c1e4(%rip), %rdi     # 0x74c18
leaq 0x2c1e9(%rip), %rsi     # 0x74c24
xorl %edx, %edx
movq 0x39bbc(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39fd4(%rip), %rax     # 0x82a28
movq %rcx, (%rax)
leaq 0x2c1d7(%rip), %rdi     # 0x74c35
leaq 0x2f24b(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x39b92(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a292(%rip), %rax     # 0x82d10
movq %rcx, (%rax)
leaq 0x2c1b6(%rip), %rdi     # 0x74c3e
leaq 0x27150(%rip), %rsi     # 0x6fbdf
xorl %edx, %edx
movq 0x39b68(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39e08(%rip), %rax     # 0x828b0
movq %rcx, (%rax)
leaq 0x2c19b(%rip), %rdi     # 0x74c4d
leaq 0x2c2b2(%rip), %rsi     # 0x74d6b
xorl %edx, %edx
movq 0x39b3e(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a2b6(%rip), %rax     # 0x82d88
movq %rcx, (%rax)
leaq 0x2c17b(%rip), %rdi     # 0x74c57
leaq 0x269d0(%rip), %rsi     # 0x6f4b3
xorl %edx, %edx
movq 0x39b14(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39e44(%rip), %rax     # 0x82940
movq %rcx, (%rax)
leaq 0x2c15d(%rip), %rdi     # 0x74c63
leaq 0x2c163(%rip), %rsi     # 0x74c70
xorl %edx, %edx
movq 0x39aea(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39c32(%rip), %rax     # 0x82758
movq %rcx, (%rax)
leaq 0x2c14c(%rip), %rdi     # 0x74c7c
leaq 0x2c14f(%rip), %rsi     # 0x74c86
xorl %edx, %edx
movq 0x39ac0(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39b48(%rip), %rax     # 0x82698
movq %rcx, (%rax)
leaq 0x2c136(%rip), %rdi     # 0x74c90
leaq 0x2f14f(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x39a96(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39a8e(%rip), %rax     # 0x82608
movq %rcx, (%rax)
leaq 0x2c117(%rip), %rdi     # 0x74c9b
leaq 0x2f125(%rip), %rsi     # 0x77cb0
xorl %edx, %edx
movq 0x39a6c(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x39c84(%rip), %rax     # 0x82828
movq %rcx, (%rax)
movb $0x0, %al
callq 0x194c0
movq 0x39a4b(%rip), %rdi     # 0x82600
leaq 0x27d0a(%rip), %rsi     # 0x708c6
callq 0x197c0
leaq 0x2c0dd(%rip), %rdi     # 0x74ca5
leaq 0x283b1(%rip), %rsi     # 0x70f80
xorl %edx, %edx
movq 0x39a28(%rip), %rax     # 0x82600
callq *0x120(%rax)
movq %rax, %rcx
movq 0x3a0a8(%rip), %rax     # 0x82c90
movq %rcx, (%rax)
callq 0x18de0
movq 0x3a149(%rip), %rdi     # 0x82d40
movl $0x200, %esi            # imm = 0x200
leaq 0x2837d(%rip), %rdx     # 0x70f80
movb $0x0, %al
callq 0x18f90
movq 0x3a12f(%rip), %rdi     # 0x82d40
addq $0x200, %rdi            # imm = 0x200
movl $0x200, %esi            # imm = 0x200
leaq 0x2835c(%rip), %rdx     # 0x70f80
movb $0x0, %al
callq 0x18f90
movq 0x39876(%rip), %rax     # 0x824a8
movq (%rax), %rax
cvttss2si 0x20(%rax), %ecx
movq 0x3a0ff(%rip), %rax     # 0x82d40
movl %ecx, 0x614(%rax)
movq 0x399b2(%rip), %rax     # 0x82600
movq 0x108(%rax), %rax
movq 0x3a0e4(%rip), %rcx     # 0x82d40
movslq 0x614(%rcx), %rcx
imulq $0x4a8, %rcx, %rcx      # imm = 0x4A8
movl %ecx, %edi
movl $0x2fd, %esi            # imm = 0x2FD
callq *%rax
movq %rax, %rcx
movq 0x398db(%rip), %rax     # 0x82558
movq %rcx, (%rax)
movq 0x398d1(%rip), %rax     # 0x82558
movq (%rax), %rcx
movq 0x39e77(%rip), %rax     # 0x82b08
movq %rcx, 0x80(%rax)
movq 0x3a0a1(%rip), %rax     # 0x82d40
movl 0x614(%rax), %ecx
movq 0x39e5c(%rip), %rax     # 0x82b08
movl %ecx, 0x90(%rax)
movq 0x39877(%rip), %rax     # 0x82530
movq (%rax), %rax
cvttss2si 0x20(%rax), %ecx
movq 0x3a078(%rip), %rax     # 0x82d40
movl %ecx, 0x610(%rax)
movq 0x3992b(%rip), %rax     # 0x82600
movq 0x108(%rax), %rax
movq 0x3a05d(%rip), %rcx     # 0x82d40
movslq 0x610(%rcx), %rcx
imulq $0x9140, %rcx, %rcx     # imm = 0x9140
movl %ecx, %edi
movl $0x2fd, %esi            # imm = 0x2FD
callq *%rax
movq %rax, %rcx
movq 0x3a03c(%rip), %rax     # 0x82d40
movq %rcx, 0x408(%rax)
movq 0x3a02e(%rip), %rax     # 0x82d40
movl 0x610(%rax), %ecx
addl $0x1, %ecx
movq 0x39de6(%rip), %rax     # 0x82b08
movl %ecx, 0x8c(%rax)
movq 0x3a0a9(%rip), %rax     # 0x82dd8
cmpl $0x0, (%rax)
jne 0x4908e
leaq -0x250(%rbp), %rdi
movq 0x3a16a(%rip), %rax     # 0x82eb0
movq (%rax), %rax
movq 0x8(%rax), %rdx
movq 0x39a04(%rip), %rax     # 0x82758
movq (%rax), %rax
movq 0x8(%rax), %rcx
leaq 0x27c26(%rip), %rsi     # 0x70988
movb $0x0, %al
callq 0x19940
leaq -0x250(%rbp), %rdi
leaq 0x264f7(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x48d9e
leaq 0x2bee2(%rip), %rdi     # 0x74c70
leaq 0x264d9(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x4904d
movq 0x3a028(%rip), %rax     # 0x82dd8
movl $0x0, (%rax)
leaq -0x210(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl $0xff, %esi
callq 0x18ac0
cmpq $0x0, %rax
je 0x48fbe
movl $0x64, %edi
movl $0x2fd, %esi            # imm = 0x2FD
movq 0x3981a(%rip), %rax     # 0x82600
callq *0x108(%rax)
movq %rax, -0x260(%rbp)
movl $0x0, -0x264(%rbp)
movl $0x63, -0x268(%rbp)
leaq -0x210(%rbp), %rdi
movq -0x260(%rbp), %rdx
leaq 0x26ef0(%rip), %rsi     # 0x6fd0c
leaq -0x264(%rbp), %rcx
leaq -0x268(%rbp), %r8
movb $0x0, %al
callq 0x19180
cmpl $0x3, %eax
je 0x48ece
leaq -0x210(%rbp), %rdi
movq -0x260(%rbp), %rdx
leaq 0x2be61(%rip), %rsi     # 0x74cb0
leaq -0x264(%rbp), %rcx
movb $0x0, %al
callq 0x19180
cmpl $0x2, %eax
je 0x48ecc
leaq -0x210(%rbp), %rdi
movq -0x260(%rbp), %rdx
leaq 0x26b26(%rip), %rsi     # 0x6f99d
movb $0x0, %al
callq 0x19180
cmpl $0x1, %eax
je 0x48eca
leaq -0x210(%rbp), %rdi
leaq 0x2be25(%rip), %rsi     # 0x74cb6
movb $0x0, %al
callq 0x19940
movq 0x39761(%rip), %rax     # 0x82600
movq 0x8(%rax), %rcx
leaq -0x210(%rbp), %rdi
movb $0x0, %al
callq *%rcx
movq 0x3974b(%rip), %rax     # 0x82600
movq 0x110(%rax), %rax
movq -0x260(%rbp), %rdi
callq *%rax
jmp 0x48db6
jmp 0x48ecc
jmp 0x48ece
movq $0x0, -0x258(%rbp)
movq -0x258(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x260(%rbp), %rdi
callq 0x186e0
movq %rax, %rcx
movq -0x288(%rbp), %rax
cmpq %rcx, %rax
jae 0x48f40
movq -0x260(%rbp), %rax
movq -0x258(%rbp), %rcx
movsbl (%rax,%rcx), %edi
callq 0x19070
movb %al, %dl
movq -0x260(%rbp), %rax
movq -0x258(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x258(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x258(%rbp)
jmp 0x48ed9
movq -0x260(%rbp), %rcx
movq 0x39e8a(%rip), %rax     # 0x82dd8
movslq (%rax), %rdx
movq 0x39870(%rip), %rax     # 0x827c8
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movl -0x264(%rbp), %ecx
movq 0x39e69(%rip), %rax     # 0x82dd8
movslq (%rax), %rdx
movq 0x3984f(%rip), %rax     # 0x827c8
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movl -0x268(%rbp), %ecx
movq 0x39e48(%rip), %rax     # 0x82dd8
movslq (%rax), %rdx
movq 0x3982e(%rip), %rax     # 0x827c8
imulq $0x18, %rdx, %rdx
addq %rdx, %rax
movl %ecx, 0xc(%rax)
movq 0x39e2d(%rip), %rax     # 0x82dd8
movl (%rax), %ecx
addl $0x1, %ecx
movq 0x39e21(%rip), %rax     # 0x82dd8
movl %ecx, (%rax)
jmp 0x48db6
movq 0x39e13(%rip), %rax     # 0x82dd8
movl (%rax), %edx
subl $0x1, %edx
movq 0x397f7(%rip), %rdi     # 0x827c8
xorl %esi, %esi
callq 0x19780
leaq -0x210(%rbp), %rdi
movq 0x39df2(%rip), %rax     # 0x82dd8
movl (%rax), %edx
leaq 0x2bcdc(%rip), %rsi     # 0x74ccb
movb $0x0, %al
callq 0x19940
movq 0x39603(%rip), %rax     # 0x82600
movq 0x8(%rax), %rcx
leaq -0x210(%rbp), %rdi
movb $0x0, %al
callq *%rcx
movq -0x8(%rbp), %rdi
callq 0x18600
movq 0x39dbc(%rip), %rax     # 0x82dd8
cmpl $0x0, (%rax)
je 0x4903e
movq 0x39db0(%rip), %rax     # 0x82dd8
movl (%rax), %edi
callq 0x195d0
movq 0x39da2(%rip), %rax     # 0x82dd8
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0x4904b
movq 0x39d93(%rip), %rax     # 0x82dd8
movl $0xfffffffe, (%rax)     # imm = 0xFFFFFFFE
jmp 0x4908c
leaq -0x210(%rbp), %rdi
leaq -0x250(%rbp), %rdx
leaq 0x2bc81(%rip), %rsi     # 0x74ce3
movb $0x0, %al
callq 0x19940
movq 0x39590(%rip), %rax     # 0x82600
movq 0x8(%rax), %rcx
leaq -0x210(%rbp), %rdi
movb $0x0, %al
callq *%rcx
movq 0x39d52(%rip), %rax     # 0x82dd8
movl $0xfffffffe, (%rax)     # imm = 0xFFFFFFFE
jmp 0x4908e
leaq -0x250(%rbp), %rdi
movq 0x39e14(%rip), %rax     # 0x82eb0
movq (%rax), %rax
movq 0x8(%rax), %rdx
leaq 0x2bc66(%rip), %rsi     # 0x74d10
movb $0x0, %al
callq 0x19940
leaq -0x250(%rbp), %rdi
leaq 0x261af(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x490e6
leaq 0x2bc3d(%rip), %rdi     # 0x74d13
leaq 0x26191(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x491b6
movq $0x0, -0x258(%rbp)
leaq -0x210(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl $0xff, %esi
callq 0x18ac0
cmpq $0x0, %rax
je 0x4915d
movq 0x39c02(%rip), %rax     # 0x82d20
imulq $0x19, -0x258(%rbp), %rcx
addq %rcx, %rax
movq -0x210(%rbp), %rcx
movq %rcx, (%rax)
movq -0x208(%rbp), %rcx
movq %rcx, 0x8(%rax)
movq -0x200(%rbp), %rcx
movq %rcx, 0x10(%rax)
movq -0x258(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x258(%rbp)
jmp 0x490fc
movq 0x39bbc(%rip), %rax     # 0x82d20
imulq $0x19, -0x258(%rbp), %rcx
addq %rcx, %rax
movb $0x0, (%rax)
movq -0x8(%rbp), %rdi
callq 0x18600
leaq -0x210(%rbp), %rdi
movq -0x258(%rbp), %rdx
leaq -0x250(%rbp), %rcx
leaq 0x2bb85(%rip), %rsi     # 0x74d1c
movb $0x0, %al
callq 0x19940
movq 0x3945b(%rip), %rax     # 0x82600
movq 0x8(%rax), %rcx
leaq -0x210(%rbp), %rdi
movb $0x0, %al
callq *%rcx
jmp 0x49206
leaq -0x210(%rbp), %rdi
leaq -0x250(%rbp), %rdx
leaq 0x2bb68(%rip), %rsi     # 0x74d33
movb $0x0, %al
callq 0x19940
movq 0x39427(%rip), %rax     # 0x82600
movq 0x8(%rax), %rcx
leaq -0x210(%rbp), %rdi
movb $0x0, %al
callq *%rcx
movq 0x39b31(%rip), %rdi     # 0x82d20
leaq 0x2bb5f(%rip), %rsi     # 0x74d55
callq 0x182c0
movq 0x39b1e(%rip), %rax     # 0x82d20
movb $0x0, 0x19(%rax)
movq 0x39b7b(%rip), %rax     # 0x82d88
cmpq $0x0, (%rax)
je 0x49265
movq 0x39b6e(%rip), %rax     # 0x82d88
movq (%rax), %rax
movq 0x8(%rax), %rdi
leaq 0x27d58(%rip), %rsi     # 0x70f80
callq 0x18bf0
cmpl $0x0, %eax
je 0x49265
leaq -0x250(%rbp), %rdi
movq 0x39c70(%rip), %rax     # 0x82eb0
movq (%rax), %rax
movq 0x8(%rax), %rdx
movq 0x39b3a(%rip), %rax     # 0x82d88
movq (%rax), %rax
movq 0x8(%rax), %rcx
leaq 0x2772c(%rip), %rsi     # 0x70988
movb $0x0, %al
callq 0x19940
jmp 0x49288
leaq -0x250(%rbp), %rdi
movq 0x39c3d(%rip), %rax     # 0x82eb0
movq (%rax), %rax
movq 0x8(%rax), %rdx
leaq 0x2bae7(%rip), %rsi     # 0x74d68
movb $0x0, %al
callq 0x19940
leaq -0x250(%rbp), %rdi
leaq 0x25fd8(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x492bd
leaq 0x2babe(%rip), %rdi     # 0x74d6b
leaq 0x25fba(%rip), %rsi     # 0x6f26e
callq 0x196a0
movq %rax, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x492fa
movq -0x8(%rbp), %rcx
movq 0x393d1(%rip), %rdi     # 0x826a0
movl $0x3e8, %esi            # imm = 0x3E8
movl $0x1, %edx
callq 0x18430
movq %rax, -0x270(%rbp)
cmpq $0x0, -0x270(%rbp)
je 0x492f1
jmp 0x492f1
movq -0x8(%rbp), %rdi
callq 0x18600
movb $0x0, %al
callq 0x188a0
addq $0x290, %rsp            # imm = 0x290
popq %rbp
retq
nopw (%rax,%rax)