# find-CSource1LegacyGameEventGameSystem_ClientPostDataUpdate

> Find and identify CSource1LegacyGameEventGameSystem_ClientPostDataUpdate function in CS2 client binary using IDA Pro MCP. CSource1LegacyGameEventGameSystem_ClientPostDataUpdate is located via the "CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed." string reference. It is a virtual function in the CSource1LegacyGameEventGameSystem vtable. Trigger: CSource1LegacyGameEventGameSystem_ClientPostDataUpdate, ClientPostDataUpdate, OnSource1Source1LegacyGameEvent

- Skill: `tools-only/find-csource1legacygameeventgamesystem-clientpostdataupdate` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds add tools-only/find-csource1legacygameeventgamesystem-clientpostdataupdate`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tools-only/find-csource1legacygameeventgamesystem-clientpostdataupdate/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: tools-only (https://skillmd.com/u/tools-only)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/tools-only/find-csource1legacygameeventgamesystem-clientpostdataupdate

---


# CSource1LegacyGameEventGameSystem_ClientPostDataUpdate Location Workflow

## Overview

Locate the virtual function `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate` in CS2 client binary.
This function references the string "CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed." and is a virtual function in the CSource1LegacyGameEventGameSystem vtable.

## Location Steps

### 1. Search for Signature String

Use `find_regex` to search for the `CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed.` string:

```
mcp__ida-pro-mcp__find_regex(pattern="CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed.")
```

### 2. Find CSource1LegacyGameEventGameSystem_ClientPostDataUpdate via Cross-References

Use `xrefs_to` on the string address to find the function that references it:

```
mcp__ida-pro-mcp__xrefs_to(addrs="<string_addr>")
```

There may be multiple functions referencing this string. The target function is the one that has **no more string references** than "CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed." — i.e., it should have minimal or only this one string reference.

### 3. Rename CSource1LegacyGameEventGameSystem_ClientPostDataUpdate

```
mcp__ida-pro-mcp__rename(batch={"func": {"addr": "<ClientPostDataUpdate_addr>", "name": "CSource1LegacyGameEventGameSystem_ClientPostDataUpdate"}})
```

### 4. Load CSource1LegacyGameEventGameSystem VTable and Get VTable Index

**ALWAYS** Use SKILL `/get-vtable-from-yaml` with `class_name=CSource1LegacyGameEventGameSystem`

If the skill returns an error, **STOP** and report to user.

Find `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate` address in `vtable_entries` to determine `vfunc_index`.

### 5. Generate Signature

**ALWAYS** Use SKILL `/generate-signature-for-function` to generate a robust and unique signature for `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate`.

### 6. Write YAML Output

**ALWAYS** Use SKILL `/write-vfunc-as-yaml` to write the analysis results for `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate`.

Required parameters:
- `func_name`: `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate`
- `func_addr`: The function address from step 2
- `func_sig`: The validated signature from step 5

VTable parameters:
- `vtable_name`: `CSource1LegacyGameEventGameSystem`
- `vfunc_offset`: calculated from vfunc_index * 8
- `vfunc_index`: from step 4

## Function Characteristics

### CSource1LegacyGameEventGameSystem_ClientPostDataUpdate

- Virtual function in CSource1LegacyGameEventGameSystem vtable
- References the string `CNetworkGameClient::OnSource1Source1LegacyGameEvent: UnserializeKeyValue failed.`
- Handles source1 legacy game event processing during client post data update

## Output YAML Files

- `CSource1LegacyGameEventGameSystem_ClientPostDataUpdate.windows.yaml` / `.linux.yaml`

