"Games"
{
	"#default"
	{
		"Offsets"
		{
			// Offset of the listeners CUtlLinkedList in CServerRemoteAccess
			"RemoteListeners"
			{
				"windows"	"44"
				"linux"		"44"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox"
			"engine"	"left4dead"
			"engine"	"left4dead2"
		}
		
		"Signatures"
		{
			"WriteDataRequest"
			{
				"library"	"engine"
				"windows"	"\x8B\x44\x24\x10\x81\xEC\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x01"
				"linux"		"@_ZN19CServerRemoteAccess16WriteDataRequestEP11CRConServerjPKvi"
			}
			"CheckPassword"
			{
				"library"	"engine"
				"windows"	"\x8B\x2A\x2A\x2A\x55\x56\x8B\x2A\x2A\x2A\x8B\xE9\x50\x8B"
				"linux"		"@_ZN19CServerRemoteAccess13CheckPasswordEP11CRConServerjiPKc"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x51\xA1\x2A\x2A\x2A\x2A\x8B\x40\x2A\x85\xC0\x75\x2A\x32"
				"linux"		"@_Z20Filter_ShouldDiscardRK8netadr_s"
			}
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x56\x8D\x71\x2A\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x85\xC0\x75"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox_valve"
			"engine"	"css"
		}
		
		"Signatures"
		{
			"WriteDataRequest"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x01"
				"linux"		"@_ZN19CServerRemoteAccess16WriteDataRequestEP11CRConServerjPKvi"
			}
			"CheckPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x2A\x2A\x53\x56\x8B\x2A\x2A\x8B\xD9\x50\x8B"
				"linux"		"@_ZN19CServerRemoteAccess13CheckPasswordEP11CRConServerjiPKc"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x83\xEC\x08\x85\xC0\x75\x2A\x32\xC0\x8B\xE5\x5D\xC3\x8B"
				"linux"		"@_Z20Filter_ShouldDiscardRK8netadr_s"
			}
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x83\x2A\x2A\x2A\x74\x2A\x8B\x2A\x2A\x3B\x2A\x2A\x73"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8B\x75\x2A\x2A\x2A\x2A\x2A\x2A\x2A\x74\x2A\x8B\xCE\xE8"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8D\x71\x2A\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x85\xC0\x75"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox"
			"engine"	"left4dead"
		}
		
		"Signatures"
		{
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\xA1\x2A\x2A\x2A\x2A\x83\x78\x2A\x00\x74\x2A\x8B\x2A\x2A\x2A\x3B\x41\x2A\x73\x2A\x8D"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead2"
		}
		
		"Signatures"
		{
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\xA1\x2A\x2A\x2A\x2A\x83\x78\x2A\x00\x57\x8B\xF9\x0F\x2A\x2A\x2A\x2A\x2A\x8B"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead"
			"engine"	"left4dead2"
		}
		
		"Signatures"
		{
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x56\x8B\x2A\x2A\x2A\x85\xF6\xC6\x2A\x2A\x2A\x74\x2A\x8B"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox"
		}
		
		"Signatures"
		{
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x56\x8B\x2A\x2A\x2A\x85\xF6\x74\x2A\x8B\xCE\xE8"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"csgo"
		}
		
		"Signatures"
		{
			"WriteDataRequest"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x2A\x2A\x81\xEC\x2A\x2A\x2A\x2A\x2A\x8B\x2A\x01"
				"linux"		"@_ZN19CServerRemoteAccess16WriteDataRequestEP11CRConServerjPKvi"
			}
			"CheckPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x2A\x2A\x53\x56\x8B\x2A\x2A\x8B\xD9\x50"
				"linux"		"@_ZN19CServerRemoteAccess13CheckPasswordEP11CRConServerjiPKc"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x0D\x2A\x2A\x2A\x2A\x83\xEC\x2A\x81\xF9\x2A\x2A\x2A\x2A\x75\x2A\xA1\x2A\x2A\x2A\x2A\xEB\x0D\x8B\x01\x8B\x50\x2A\xFF\xD2\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC0\x0F\x2A\x2A\x2A\x2A\x2A\xC6"
				"linux"		"@_Z20Filter_ShouldDiscardRK8netadr_s"
			}
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x8B\x2A\x2A\x57\x8B\xF9\xB9\x2A\x2A\x2A\x2A\xFF"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8B\x2A\x2A\xC6\x2A\x2A\x2A\x85\xF6\x74"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8D\x2A\x2A\x8B\xCE\xE8\x2A\x2A\x2A\x2A\x85"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
		}
	}
}