"Games"
{
	"#default"
	{
		"Functions"
		{
			"CGameClient::FileReceived"
			{
				"signature"		"CGameClient::FileReceived"
				"callconv"		"thiscall"
				"return"		"int"
				"this"			"address"
				"arguments"
				{
					"a1"
					{
						"type"	"charptr"
					}
					"a2"
					{
						"type"	"int"
					}
				}
			}
		}
	}

	"#default"
	{
		"#supported"
		{
			"engine"	"css"
			"engine"	"hl2dm"
			"engine"	"tf2"
			"engine"	"zps"
		}

		"Offsets"
		{
			"clients"
			{
				"windows"		"12"
				"linux"			"12"
			}
		}

		"Signatures"
		{
			/* Search: "CGameClient::FileReceived" */
			/* CGameClient::FileReceived(char const*, unsigned int, bool) */
			"CGameClient::FileReceived"
			{
				"library"		"engine"
				"linux"			"@_ZN11CGameClient12FileReceivedEPKcj"
				"windows"		"\x55\x8B\x2A\x56\x8B\x2A\x2A\x33\x2A\x57\x8B\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x39"
				/* 55 8B ? 56 8B ? ? 33 ? 57 8B ? 8D ? ? ? ? ? 39 */
			}
		}
	}

	"tf2"
	{
		/* TF2 function is void. */
		"Functions"
		{
			"CGameClient::FileReceived"
			{
				"return"		"void"
			}
		}
	}

	"left4dead"
	{
		/* L4D has an extra argument. */
		"Functions"
		{
			"CGameClient::FileReceived"
			{
				"arguments"
				{
					"a3"
					{
						"type"	"int"
					}
				}
			}
		}

		"Offsets"
		{
			"clients"
			{
				"windows"		"48"
				"linux"			"48"
			}
		}

		"Signatures"
		{
			"CGameClient::FileReceived"
			{
				"library"		"engine"
				"linux"			"@_ZN11CGameClient12FileReceivedEPKcjb"
				"windows"		"\x56\x8B\x2A\x2A\x2A\x33\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x8D"
				/* 56 8B ? ? ? 33 ? 8D ? ? ? ? ? 8D */
			}
		}
	}

	"left4dead2"
	{
		/* L4D2 has an extra argument. */
		"Functions"
		{
			"CGameClient::FileReceived"
			{
				"arguments"
				{
					"a3"
					{
						"type"	"int"
					}
				}
			}
		}

		"Offsets"
		{
			"clients"
			{
				"windows"		"48"
				"linux"			"48"
			}
		}

		"Signatures"
		{
			"CGameClient::FileReceived"
			{
				"library"		"engine"
				"linux"			"@_ZN11CGameClient12FileReceivedEPKcjb"
				"windows"		"\x55\x8B\x2A\x56\x8B\x2A\x2A\x33\x2A\x8D\x2A\x2A\x2A\x2A\x2A\x90"
				/* 55 8B ? 56 8B ? ? 33 ? 8D ? ? ? ? ? 90 */
			}
		}
	}
}