Find CCSGameRules_GoToIntermission
Locate CCSGameRules_GoToIntermission in CS2 server.dll or server.so using IDA Pro MCP tools.
Method
1. Search for Reference String
Search for the string "Going to intermission...":
mcp__ida-pro-mcp__find_regex pattern="Going to intermission"
Note the string address.
2. Find Cross-Reference and Containing Function
Get xrefs to the string address:
mcp__ida-pro-mcp__xrefs_to addrs="<string_address>"
This will lead to CCSGameRules_GoToIntermission. Rename it:
mcp__ida-pro-mcp__rename batch={"func": [{"addr": "<function_addr>", "name": "CCSGameRules_GoToIntermission"}]}
3. Get VTable Index
ALWAYS Use SKILL /get-vtable-index to get vtable offset and index for the function CCSGameRules_GoToIntermission.
VTable class name: CCSGameRules
4. Generate Signature
ALWAYS Use SKILL /generate-signature-for-function to generate a robust and unique signature for CCSGameRules_GoToIntermission.
5. Write Analysis Results as YAML
ALWAYS Use SKILL /write-vfunc-as-yaml to write the analysis results for CCSGameRules_GoToIntermission.
Required parameters:
func_name:CCSGameRules_GoToIntermissionfunc_addr: The function address from step 2func_sig: The signature from step 4
VTable parameters:
vtable_name:CCSGameRulesvfunc_index: The vtable index from step 3vfunc_offset: The vtable offset from step 3
VTable Information
- VTable Name:
CCSGameRules::vftable'` - VTable Mangled Name (Windows):
??_7CCSGameRules@@6B@ - VTable Mangled Name (Linux):
_ZTV12CCSGameRules - VTable Index: 128 - This can change when game updates.
- VTable Offset: 0x400 (128 * 8 = 1024) - This can change when game updates.
- Note that for
server.so, the first 16 bytes of "vftable" are for RTTI. The real vftable =_ZTV12CCSGameRules+0x10.
Output YAML Format
The output YAML filename depends on the platform:
server.dll→CCSGameRules_GoToIntermission.windows.yamlserver.so→CCSGameRules_GoToIntermission.linux.yaml
func_name: CCSGameRules_GoToIntermission
func_va: 0x18087eba0
func_rva: 0x87eba0
func_size: 0xe61
func_sig: 48 89 5C 24 ?? 55 56 57 41 54 41 55 41 56 41 57 48 8D AC 24 ?? ?? ?? ?? 48 81 EC ?? ?? ?? ?? 4C 8B E1
vtable_name: CCSGameRules
vfunc_offset: 0x400
vfunc_index: 128
Notes
- This function is called when a match ends and the game transitions to intermission.
- It sends
CCSUsrMsg_EndOfMatchAllPlayersDataandCCSUsrMsg_ServerRankRevealAlluser messages. - It fires the
cs_intermissiongame event. - It is a large function (~0xE61 bytes).