"Games"
{
	"#default"
	{
		"Offsets"
		{
			// Offset of the listeners CUtlLinkedList in CServerRemoteAccess
			"RemoteListeners"
			{
				"windows"	"44"
				"linux"		"44"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"orangebox"
			"engine"	"left4dead"
		}
		
		"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"
			}
			"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"
		{
			"game"	"tf"
			"game"	"cstrike"
			"game"	"dod"
			"game"	"hl2mp"
		}
		
		"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\x56\x8B\x75\x08\x57\xFF\x75\x14\x8B\xF9\x8B\xCE"
				"linux"		"@_ZN19CServerRemoteAccess13CheckPasswordEP11CRConServerjiPKc"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x83\xEC\x0C\x8B\x40\x30\x85\xC0"
				"linux"		"@_Z20Filter_ShouldDiscardRK8netadr_s"
			}
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x8B\xD1\x83\x78\x30\x00"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8B\x75\x10\xC6\x41\x50\x01"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"game"	"tf"
			"game"	"cstrike"
			"game"	"dod"
			"game"	"hl2mp"
		}
		
		"Signatures"
		{
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x41\x2A\x83\xC1\x2A\x85\xC0\x74\x2A\x80\x38\x00\x74"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead2"
		}
		
		"Signatures"
		{
			"WriteDataRequest"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x81\xEC\x78\x03\x00\x00\xA1\x2A\x2A\x2A\x2A\x33\xC5\x89\x45\xFC\x8B\x45\x08"
				"linux"		"@_ZN19CServerRemoteAccess16WriteDataRequestEP11CRConServerjPKvi"
			}
			"CheckPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x45\x14\x53\x56\x8B\x75\x08\x8B\xD9"
				"linux"		"@_ZN19CServerRemoteAccess13CheckPasswordEP11CRConServerjiPKc"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x51\xA1\x2A\x2A\x2A\x2A\x8B\x40\x30\x85\xC0\x75\x2A\x32\xC0\x8B\xE5\x5D\xC3\x8B\x4D\x08"
				"linux"		"@_Z20Filter_ShouldDiscardRK8netadr_s"
			}
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8D\x71\x40"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x83\x78\x30\x00\x57"
				"linux"		"@_ZN19CServerRemoteAccess10LogCommandEjPKc"
			}
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8B\x75\x10\xC6\x41\x5C\x01"
				"linux"		"@_ZN11CRConServer14OnSocketClosedEiRK8netadr_sPv"
			}
		}
	}
	
	"#default"
	{
		"#supported"
		{
			"engine"	"left4dead"
		}
		
		"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\x83\xE4\xF8\x81\xEC\x94\x09\x00\x00"
				"linux"		"\x55\x89\xE5\x57\x56\x53\x81\xEC\x7C\x03\x00\x00"
			}
			"CheckPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x51\x53\x56\x8B\x75\x08\x8B\xD9\x57\x89\x5D\xFC"
				"linux"		"\x55\x89\xE5\x57\x56\x53\x83\xEC\x2C\x8B\x5D\x0C\x8B\x45\x18"
			}
			"Filter_ShouldDiscard"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x51\x56\x8B\xF1\x8B\x0D\x2A\x2A\x2A\x2A\x81\xF9\x2A\x2A\x2A\x2A\x75\x2A\xA1"
				"linux"		"\x55\x89\xE5\x57\x56\x53\x83\xEC\x3C\xA1\x2A\x2A\x2A\x2A\x8B\x75\x08"
			}
			"LogCommand"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\xA1\x2A\x2A\x2A\x2A\x53\x8B\xD9\xB9\x2A\x2A\x2A\x2A\xFF\x50\x34"
				"linux"		"\x55\x89\xE5\x83\xEC\x38\xA1\x2A\x2A\x2A\x2A\x89\x5D\xF4\x89\x75\xF8\x8B\x5D\x08\x89\x7D\xFC\x8B\x75\x0C"
			}
			"OnSocketClosed"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x56\x8B\x2A\x2A\xC6\x2A\x2A\x2A\x85\xF6\x74"
				"linux"		"\x55\x89\xE5\x53\x83\xEC\x24\x8B\x5D\x14\x8B\x45\x08"
			}
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x41\x38\x85\xC0"
				"linux"		"\x55\x89\xE5\x53\x83\xEC\x14\x8B\x5D\x08\x89\x1C\x24\xE8\x2A\x2A\x2A\x2A\x31\xD2\x84\xC0"
			}
		}
	}
	
	"tf"
	{
		"Signatures"
		{
			"IsPassword"
			{
				"library"	"engine"
				"windows"	"\x55\x8B\xEC\x8B\x41\x2A\x83\xC1\x2A\x85\xC0\x74\x2A\x80\x38\x00\x74\x2A\xE8"
				"linux"		"@_ZNK11CRConServer10IsPasswordEPKc"
			}
		}
	}
}
