Find CCSCustomHudLayout_SetInputCaptureEnabled
Target: CCSCustomHudLayout_SetInputCaptureEnabled (func) in the CS2 server module.
Do NOT anchor on raw byte patterns from older releases - they shift. Use anchors only to locate
the function, then generate a fresh minimal-unique function-head signature with relocated bytes
wildcarded. Produce ONLY the output file(s) listed in this skill's expected outputs, for the binary
loaded in THIS session (one platform per run). NEVER open or analyze the other platform's binary.
Method
The gamedata consumer stores a BYTE SIGNATURE for this entry - ALWAYS emit the func
schema (func_sig), never vfunc fields. The function may be virtual; locating it via
the owning class vtable (RTTI) is a fine strategy, but once found, read its head bytes
and emit func_sig. Locate via cross-references, distinctive constants/strings, callers
of related symbols, or vtable slots; verify by decompilation before committing.
Mandatory self-check before emitting
The pipeline re-reads the bytes at your func_va and deterministically regenerates func_sig from
them - if your func_sig does not match those bytes EXACTLY (with ?? matching anything), the run
aborts. Therefore:
- After picking the function, read the actual bytes at
func_va via the IDA MCP.
- Derive
func_sig FROM those bytes: keep stable opcode bytes literally, wildcard relocated or
variable operands as ??.
func_sig MUST start at func_va (the true function head).
- Only then write the YAML. A mismatch is always a bug in YOUR output, never in the pipeline.
Output schema (STRICT)
Write the YAML file <symbol>.{platform}.yaml with EXACTLY these fields:
func_name: <SYMBOL_NAME>
func_va: "<hex virtual address>"
func_rva: "<hex rva>"
func_size: "<hex size>"
func_sig: "<byte pattern, ?? wildcards, function head, minimal-unique>"
NEVER include vfunc_index, vfunc_offset, vfunc_sig or vtable_name.
Verification
- Decompile the candidate and confirm the behavior matches the purpose above (not a caller or callee).
- Confirm uniqueness: the generated pattern must match exactly one location in the loaded binary.
- If a candidate cannot be confirmed, report the shortlist instead of guessing - a skipped symbol is
safer than a wrong signature.