"Games"
{
	/*
	*  bool CCommandBuffer::InsertCommand( const char *pArgS, int nCommandSize, int nTick )
	*  Search: "WARNING: Command too long... ignoring!\n%s\n"
	*/
	"#default"
	{
		"Functions"
		{
			"CCommandBuffer::InsertCommand"
			{
				"signature"		"CCommandBuffer::InsertCommand"
				"callconv"		"thiscall"
				"return"		"bool"
				"this"			"ignore"
				"arguments"
				{
					"pArgS"
					{
						"type"	"charptr"
					}
					"nCommandSize"
					{
						"type"	"int"
					}
					"nTick"
					{
						"type"	"int"
					}
				}
			}
		}
	}

	/* L4D1 and OrangeBox games share the same signatures. */
	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead"
			"engine"	"orangebox"
		}
		"Signatures"
		{
			"CCommandBuffer::InsertCommand"
			{
				"library"		"engine"
				"linux"			"@_ZN14CCommandBuffer13InsertCommandEPKcii"
				"windows"		"\x56\x57\x8B\x2A\x2A\x2A\x81\x2A\x2A\x2A\x2A\x2A\x8B"
				/* 56 57 8B ? ? ? 81 ? ? ? ? ? 8B ? 7C ? 8B ? ? ? 50 68 */
			}
		}
	}

	/* CSGO has an extra argument. */
	"csgo"
	{
		"Functions"
		{
			"CCommandBuffer::InsertCommand"
			{
				"arguments"
				{
					"cmd_src"
					{
						"type"	"int"
					}
				}
			}
		}
		"Signatures"
		{
			"CCommandBuffer::InsertCommand"
			{
				"library"		"engine"
				"linux"			"\x55\x89\x2A\x57\x56\x53\x83\x2A\x2A\x8B\x2A\x2A\x8B\x2A\x2A\x8B\x2A\x2A\x81\x2A\x2A\x2A\x2A\x2A\x0F"
				/* 55 89 ? 57 56 53 83 ? ? 8B ? ? 8B ? ? 8B ? ? 81 ? ? ? ? ? 0F */
				"windows"		"\x55\x8B\x2A\x51\x53\x56\x57\x8B\x2A\x2A\x8B\x2A\x81"
				/* 55 8B ? 51 53 56 57 8B ? ? 8B ? 81 */
			}
		}
	}

	"cstrike"
	{
		"Signatures"
		{
			"CCommandBuffer::InsertCommand"
			{
				"library"		"engine"
				"linux"			"@_ZN14CCommandBuffer13InsertCommandEPKcii"
				"windows"		"\x55\x8B\x2A\x56\x57\x8B\x2A\x2A\x8B\x2A\x81\x2A\xFF"
				/* 55 8B ? 56 57 8B ? ? 8B ? 81 ? FF */
			}
		}
	}

	"tf"
	{
		"Signatures"
		{
			"CCommandBuffer::InsertCommand"
			{
				"library"		"engine"
				"linux"			"@_ZN14CCommandBuffer13InsertCommandEPKcii"
				"windows"		"\x55\x8B\x2A\x56\x57\x8B\x2A\x2A\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\x7C"
				/* 55 8B ? 56 57 8B ? ? 8B ? 81 ? ? ? ? ? 7C */
			}
		}
	}

	/* L4D2 has it's own Windows signature. */
	"left4dead2"
	{
		"Signatures"
		{
			"CCommandBuffer::InsertCommand"
			{
				"library"		"engine"
				"linux"			"@_ZN14CCommandBuffer13InsertCommandEPKcii"
				"windows"		"\x55\x8B\x2A\x56\x57\x8B\x2A\x2A\x8B\x2A\x81\x2A\x2A\x2A\x2A\x2A\x7C"
				/* 55 8B ? 56 57 8B ? ? 8B ? 81 ? ? ? ? ? 7C */
			}
		}
	}
}