"DF_funcsigs"
{
	default
	{
		"CEntFactDictVFunc"
		{
			"Signature"	"\x8B\x01\x56\x8B\x74\x24\x08\x56\xFF\x50\x0C\x85\xC0\x56\x75\x14\x68\x8C\xD3\x4D\x22\xFF\x15\x6C\x11\x46\x22\x83\xC4\x08\x33\xC0\x5E\xC2\x04\x00\x8B\x10\x8B\xC8\xFF\x12\x5E\xC2\x04\x00"
			"Match"		"xxxxxxxxxxxxxxxxx????xx????xxxxxxxxxxxxxxxxxxx"
			// which match to use
			"Extra"		"2"
		}
		// if the above failed, this will be used to locate EntityFactoryDictionary() within CreateEntityByName
		"CreateEntFactDict"
		{
			// the number immediately after this signature is taken to be the address/offset of the dictionary function
			"Signature"	"\x56\x57\x68\xB0\x32\x5D\x22\xFF\x15\xF4\x61\x57\x22\x83\xC4\x0C\xE8"
			"Match"		"xxx????xx????xxxx"
			// is the number offset or absolute (1 or 2 respectively) (0 disables this method from being used)
			"Extra"		"1"
		}
		"CreateEntityByName"
		{
			"Signature"	"\x56\x8B\x74\x24\x0C\x83\xFE\xFF\x57\x8B\x7C\x24\x0C\x74\x25\x8B\x0D\x68\x69\x5F\x22\x8B\x01"
			"Match"		"xxxxxxxxxxxxx??xx????xx"
		}
		// where CreateNamedEntity calls GetBaseEntity
		// used to create detour of CreateEntityByName
		"CreateEntGetBaseEntity"
		{
			"Signature"	"\x8B\xC8\xFF\x52"
			"Match"		"xxxx"
		}
		"ClearMultiDamage"
		{
			"Signature"	"\xD9\xEE\x83\xC8\xFF\xD9\x15\xE4\x60\x46\x10\x33\xC9\xD9\x05\x2C\xEB\x2E\x10\xA3\x00\x61\x46\x10\xD9\x1D\xEC\x60\x46\x10\xA3\xDC\x60\x46\x10\xA3\xE0\x60\x46\x10"
			"Match"		"xxxxxxx????xxxx????x????xx????x????x????"
			//"Signature"	"\x8B\x15\x8C\x5E\x7A\x22\x33\xC9\x89\x0D\x4C\x90\x77\x22\x89\x0D\x50\x90\x77\x22\x89\x0D\x44\x90\x77\x22\x8B\x0D\x88\x5E\x7A\x22\x89\x0D\x14\x90\x77\x22"
			//"Match"		"xx???xxxxx???xxx???xxx???xxx???xxx???x"
		}
		"ApplyMultiDamage"
		{
			"Signature"	"\xA1\x58\x90\x77\x22\x83\xF8\xFF\x0F\x84\x82\x00\x00\x00\x8B\x15\x28\xCA\x6D\x22\x8B\xC8\x81\xE1\xFF\x0F\x00\x00\xC1\xE1\x04\x8D\x4C\x11\x04\xC1\xE8\x0C\x39\x41\x04\x75\x65\x8B\x09\x85\xC9\x74\x5F\xA1\x04\xED\x70\x22\x83\x78\x10\x00\x56\x7E\x04\x33\xF6\xEB\x03"
			"Match"		"x????xxxxx????xx????xxxx????xx?xxx?xx?xx?x?xxxxx?x????xx?xxx?xxx?"
		}
		"RadiusDamage"
		{
			"Signature"	"\x8B\x54\x24\x14\xD9\x44\x24\x0C\x8B\x0D\xBC\x38\x45\x10\x8B\x01\x8B\x80\xF4\x00\x00\x00\x56\x8B\x74\x24\x08\x57\x8B\x7C\x24\x10\x52\x8B\x54\x24\x1C\x52\x51\xD9\x1C\x24\x57\x56\xFF\xD0\xF6\x46\x38\x40\x74\x6D"
			"Match"		"xxx?xxx?xx????xxxx??xxxxxx?xxxx?xxxx?xxxxxxxxxxx??x?"
			//"Signature"	"\x51\x8B\x54\x24\x18\x8B\x0D\x54\x19\x6E\x22\x8B\x01\x56\x8B\x74\x24\x0C\x57\x8B\x7C\x24\x14\x52\x8B\x54\x24\x20\x52\x8B\x54\x24\x20\x52\x57\x56\xFF\x90\xC8\x00\x00\x00\xF6\x46\x3C\x40"
			//"Match"		"xxxxxxx???xxxxxxxxxxxxxxxxxxxxxxxxxxxx????xx??"
		}
		"SendPacket"
		{
			"Signature"	"\xB8\x4C\x20\x00\x00\xE8\xE6\xA2\x1E\x00\xA1\x7C\x9B\x39\x10\x83\x78\x30\x00\x53\x55\x8B\xAC\x24\x64\x20\x00\x00\x56\x8B\xB4\x24\x64\x20\x00\x00\x57\x8B\xBC\x24\x70\x20\x00\x00\x74\x28"
			"Match"		"x??xxx????x????xx?xxxxxx????xxxx????xxxx????x?"
		}
		"ReceiveDatagram"
		{
			"Signature"	"\xB8\x40\x20\x00\x00\xE8\x16\xDF\x1E\x00\x8B\x0D\xA0\xF2\x39\x10\x8B\x15\x78\x75\x29\x10\x55\x56\x8B\xB4\x24\x50\x20\x00\x00\x8B\x46\x0C"
			"Match"		"xxxxxx????xx????xx????xxxxxxxxxxxx"
		}
		"SendServerInfo"
		{
			"Signature"	"\xB8\xD8\x14\x00\x00\xE8\x86\xC1\x1A\x00\x53\x56\x68\x24\x3B\x2A\x10\x8B\xF1\xFF\x15\x58\x95\x28\x10\x68\x00\x77\x01\x00\xFF\x15\x3C\x95\x28\x10\x83\xC4\x08\x6A\xFF\x68\x00\x77\x01\x00\x50\x68\x0C\x3B\x2A\x10\x8D\x4C\x24\x18\xE8"
			"Match"		"x???xx????xxx????xxxx????x????xx????xx?xxx????xx????xxx?x"
			// which match to use
			"Extra"		"3"
		}
		"SV_BroadcastVoiceData"
		{
			"Signature"	"\xA1\x54\x78\x51\x10\x83\xEC\x54\x57\x33\xFF\x39\x78\x30\x0F\x84\x36\x01\x00\x00\x55\x8B\x6C\x24\x60\x8B\x55\x00\x8B\x42\x34\x8B\xCD\x89\x7C\x24\x14\xC7\x44\x24\x0C\xEC\xFF\x2A\x10"
			"Match"		"x????xxxxxxxx?xx????xxxx?xxxxx?xxxxx?xxxx????"
		}
		"SleepCall"
		{
			"Signature"	"\xFF\xD0\x83\xF8\x02\x74\x19\xFF\x15\x1C\x73\x09\x10\x84\xC0\x75\x0F\x8B\x0D\x30\xD3\x0B\x10\x8B\x11\x8B\x42\x08\x6A\x01\xFF\xD0"
			"Match"		"xxxxxxxx?????xxxxxx????xxxx?xxxx"
			"Extra"		"17;15;12"
		}
		"SetMoveType"
		{
			"Signature"	"\x8B\x44\x24\x04\x56\x8B\xF1\x0F\xB6\x8E\x32\x01\x00\x00\x3B\xC8\x57\x8D\xBE\x32\x01\x00\x00\x75\x1D\x8A\x54\x24\x10\x8D\x44\x24\x10\x50\x8D\x8E\x33\x01\x00\x00"
			"Match"		"xxxxxxxxxx????xxxxx????xxxx??xx??xxx????"
		}
		"ResetSequence"
		{
			"Signature"	"\xA1\x00\x00\x00\x00\x83\x78\x30\x00\x55\x8B\x6C\x24\x08\x56\x57\x8B\xF1\x74\x00\xF7\x86\xEC\x00\x00\x00\x00\x10\x00\x00\x74\x00\x8B\x46\x5C\x85\xC0\x53\x8B\x9E\x54\x03\x00\x00\x8B\xF8\x75\x00"
			"Match"		"x????xx?xxxxxxxxxxx?xx??xxxxxxx?xx?xxxxx??xxx?"
		}
		"RunTeamLogic"
		{
			"Signature"	"\x83\xEC\x18\x56\x8B\xF1\x8B\x06\x8B\x90\x8C\x02\x00\x00\xFF\xD2\x84\xC0\x0F\x84\x0C\x03\x00\x00"
			"Match"		"xx?xxxxxxx?xxxxxxxxx?xxx"
		}
		"PlayerByIndex"
		{
			"Signature"	"\x8B\x44\x24\x04\x56\x33\xF6\x85\xC0\x7E\x3B"
			"Match"		"xxxxxxxxxxx"
		}
	}
	gmod9
	{
		"CEntFactDictVFunc"
		{
			// don't do this method
			"Extra"	"9999"
		}
	}
}
