Find CBaseEntity_EmitSoundFilter
Locate CBaseEntity_EmitSoundFilter in CS2 server.dll or server.so using IDA Pro MCP tools.
Method
Search for the sound string:
mcp__ida-pro-mcp__find_regex pattern="CT_Water\.StepLeft"Get cross-references to the string:
mcp__ida-pro-mcp__xrefs_to addrs="<string_addr>"Decompile the referencing function:
mcp__ida-pro-mcp__decompile addr="<function_addr>"Identify
CBaseEntity_EmitSoundFilterfrom the decompiled code. Look for a function call pattern like:v38[0] = "CT_Water.StepLeft"; ... v30 = sub_XXXXXX(qword_YYYYYY, v29, &v32);The target function is called with a global variable, an entity pointer, and a sound parameter structure.
Rename the function:
mcp__ida-pro-mcp__rename batch={"func": {"addr": "<function_addr>", "name": "CBaseEntity_EmitSoundFilter"}}Generate and validate unique signature:
ALWAYS Use SKILL
/generate-signature-for-functionto generate a robust and unique signature for the function.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_EmitSoundFilterfunc_addr: The function address from step 4func_sig: The validated signature from step 6
Signature Pattern
The function is called in water footstep sound handling code with the string "CT_Water.StepLeft":
v38[0] = "CT_Water.StepLeft";
v39 = v33;
v40 = v26;
v38[1] = v32;
v42 = v42 & 0xE7 | 0x10;
v30 = CBaseEntity_EmitSoundFilter(qword_XXXXXX, v29, &v32);
Function Characteristics
- Parameters:
(filter_global, entity, sound_params)wherefilter_globalis a global sound filter pointer,entityis the entity emitting the sound,sound_paramscontains sound parameters - Purpose: Emits a filtered sound from an entity
- Called by: Water footstep sound handler and other sound emission code
Output YAML Format
The output YAML filename depends on the platform:
server.dll→CBaseEntity_EmitSoundFilter.windows.yamlserver.so→CBaseEntity_EmitSoundFilter.linux.yaml