Find CBaseEntity_EmitSoundParams
Locate CBaseEntity_EmitSoundParams in CS2 server.dll or server.so using IDA Pro MCP tools.
Method
Search for the string:
mcp__ida-pro-mcp__find_regex pattern="Stops a named sound playing from this"Get cross-references to the string:
mcp__ida-pro-mcp__xrefs_to addrs="<string_addr>"Disassemble around the xref address (*DO NOT decompile the whole referencing function — it is too large):
mcp__ida-pro-mcp__disasm addr="<xref_addr - 0x60>" max_instructions=40In the disassembly before
lea REG, aStopsANamedSou, find the last twolea REG, sub_XXXXXXXinstructions. These reference two candidate functions.Decompile both candidate functions and look for the volume-check pattern:
if ( a3 != 100 && a3 > 0 ) v19 = a3;or equivalent:
if ( a3 != 100 ) { if ( a3 > 0 ) v5 = a3; v15 = v5; }The function containing this pattern is
CBaseEntity_EmitSoundParams.Rename the function:
mcp__ida-pro-mcp__rename batch={"func": [{"addr": "<function_addr>", "name": "CBaseEntity_EmitSoundParams"}]}Generate and validate unique signature:
ALWAYS Use SKILL
/generate-signature-for-functionto generate a robust and unique signature forCBaseEntity_EmitSoundParams.Write IDA analysis output as YAML beside the binary:
ALWAYS Use SKILL
/write-func-as-yamlto write the analysis results.Required parameters:
func_name:CBaseEntity_EmitSoundParamsfunc_addr: The function address from step 5func_sig: The validated signature from step 7
Function Characteristics
- Parameters:
(this, sound_name, volume, pitch, delay)wherethisis CBaseEntity pointer - Volume default: 100 — overridden by
a3whena3 != 100 && a3 > 0 - Not a virtual function — use
/write-func-as-yaml(not vfunc variant)
Output YAML Format
The output YAML filename depends on the platform:
server.dll→CBaseEntity_EmitSoundParams.windows.yamlserver.so→CBaseEntity_EmitSoundParams.linux.yaml