wowdump 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +56 -118
  3. package/dist/agent.js +5 -8
  4. package/dist/cli.js +497 -0
  5. package/dist/discovery.js +1 -12
  6. package/dist/dry-run.js +0 -2
  7. package/dist/focused-session.js +61 -1329
  8. package/dist/frida-runtime.js +51 -73
  9. package/dist/frida-worker.js +100 -0
  10. package/dist/ghidra.js +769 -0
  11. package/dist/main.js +66 -0
  12. package/dist/processes.js +2 -5
  13. package/dist/reader-broker.js +460 -0
  14. package/dist/reader-client.js +1 -0
  15. package/dist/reader-main.js +67 -0
  16. package/dist/session.js +17 -120
  17. package/dist/toolchain.js +594 -0
  18. package/dist/windows-launcher.js +207 -0
  19. package/dist/windows-reader.js +102 -0
  20. package/dist/wow-analysis.js +211 -236
  21. package/package.json +18 -35
  22. package/skills/wowdump/SKILL.md +15 -0
  23. package/skills/wowdump/commands.md +44 -0
  24. package/dist/analysis-path.js +0 -38
  25. package/dist/analysis-process-log.js +0 -146
  26. package/dist/broker-client.js +0 -411
  27. package/dist/broker-codec.js +0 -148
  28. package/dist/broker-core.js +0 -1045
  29. package/dist/broker-gateway.js +0 -447
  30. package/dist/broker-ledger.js +0 -196
  31. package/dist/broker-main.js +0 -291
  32. package/dist/broker-protocol.js +0 -119
  33. package/dist/broker-runtime.js +0 -1283
  34. package/dist/broker-server.js +0 -466
  35. package/dist/build-bundle-loader.js +0 -183
  36. package/dist/build-bundle.js +0 -11
  37. package/dist/focus-errors.js +0 -63
  38. package/dist/focus-service.js +0 -1855
  39. package/dist/mcp-main.js +0 -51
  40. package/dist/mcp.js +0 -924
  41. package/dist/process-log-lock.js +0 -181
  42. package/dist/runtime-config.js +0 -399
  43. package/resources/builds/retail/12.0.7.68974/build-profile.json +0 -290
  44. package/resources/builds/retail/12.0.7.68974/data-sources.json +0 -1633
  45. package/resources/builds/retail/12.0.7.68974/lua-targets.jsonl +0 -5130
  46. package/resources/builds/retail/12.0.7.68974/manifest.json +0 -63
  47. package/resources/builds/retail/12.0.7.68974/signatures.json +0 -260
@@ -1,1633 +0,0 @@
1
- {
2
- "schema": "wowdump.data-sources.v1",
3
- "buildKey": "retail@12.0.7.68974",
4
- "module": "Wow.exe",
5
- "imageBase": "0x140000000",
6
- "statusVocabulary": {
7
- "reader_ready": "Static and live invariants plus an independent cross-check passed.",
8
- "partial": "A specific data root/layout exists, but live verification is incomplete.",
9
- "unresolved": "Only a semantic anchor exists or the data root/layout is not established."
10
- },
11
- "records": [
12
- {
13
- "dataSourceId": "ds-aura-provider-anchor",
14
- "buildKey": "retail@12.0.7.68974",
15
- "module": "Wow.exe",
16
- "systemIds": [
17
- "aura",
18
- "ui-data-provider"
19
- ],
20
- "classification": "api-anchor-without-data-root",
21
- "status": "unresolved",
22
- "getterRva": null,
23
- "getterVa": null,
24
- "globalPointerRva": null,
25
- "pointerChain": [],
26
- "structureSize": null,
27
- "fields": [],
28
- "containerDefinition": null,
29
- "invariants": [],
30
- "updateEntry": {
31
- "rva": null,
32
- "status": "unresolved"
33
- },
34
- "sourceApis": [
35
- {
36
- "api": "C_Commentator.AddTrackedDefensiveAuras",
37
- "rva": "0xf28340",
38
- "va": "0x140f28340",
39
- "entryHash": "a1c0943a5c54989283963ea12f582261ba8ad56f11635de209e91d8d84c2c669",
40
- "sourceKind": "namespace-registration"
41
- },
42
- {
43
- "api": "C_Commentator.AddTrackedOffensiveAuras",
44
- "rva": "0xf29900",
45
- "va": "0x140f29900",
46
- "entryHash": "cf8006d342155f5d18a04c1fb9673b33a4f0339c37bc811ea610e0b15dc1506a",
47
- "sourceKind": "namespace-registration"
48
- },
49
- {
50
- "api": "C_Commentator.GetPlayerAuraInfo",
51
- "rva": "0xf4b790",
52
- "va": "0x140f4b790",
53
- "entryHash": "75154d90fb57a2d5070ecf7d45d3c7c123c048690247859c0e261a1169c3ff99",
54
- "sourceKind": "namespace-registration"
55
- },
56
- {
57
- "api": "C_Commentator.GetPlayerAuraInfoByUnit",
58
- "rva": "0xf4c4f0",
59
- "va": "0x140f4c4f0",
60
- "entryHash": "f336536f231aaa2516ca015acdfbae15b6e577f36b823efcb96cb310a6077a1f",
61
- "sourceKind": "namespace-registration"
62
- },
63
- {
64
- "api": "C_Commentator.HasTrackedAuras",
65
- "rva": "0xf61bb0",
66
- "va": "0x140f61bb0",
67
- "entryHash": "094a280198b55e2eae5f42041af6c2365155cc85bea846c37a70ca5621b8c959",
68
- "sourceKind": "namespace-registration"
69
- },
70
- {
71
- "api": "C_Commentator.IsTrackedDefensiveAura",
72
- "rva": "0xf63160",
73
- "va": "0x140f63160",
74
- "entryHash": "cb926088de3bddf33d42b00668c1976ef2c84baffab5cf15729e07df6a4040d5",
75
- "sourceKind": "namespace-registration"
76
- },
77
- {
78
- "api": "C_Commentator.IsTrackedOffensiveAura",
79
- "rva": "0xf63850",
80
- "va": "0x140f63850",
81
- "entryHash": "f6fe6b0ef04c4f53b6e634e3f19c9bc5f9c2f188799f7b857717851cac7abe2f",
82
- "sourceKind": "namespace-registration"
83
- },
84
- {
85
- "api": "C_Commentator.ResetTrackedAuras",
86
- "rva": "0xf69f70",
87
- "va": "0x140f69f70",
88
- "entryHash": "4464e9c84e659ca59f8fea31c55769c7c99302c1a244828dbff8e847fa9d7f72",
89
- "sourceKind": "namespace-registration"
90
- },
91
- {
92
- "api": "C_Commentator.SetBlocklistedAuras",
93
- "rva": "0xf6dca0",
94
- "va": "0x140f6dca0",
95
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
96
- "sourceKind": "namespace-registration"
97
- },
98
- {
99
- "api": "C_Secrets.GetSpellAuraSecrecy",
100
- "rva": "0x197df70",
101
- "va": "0x14197df70",
102
- "entryHash": "daa08168084fb47c8a43a7c88baa73c7465b06995da606c291978d55af1c18a9",
103
- "sourceKind": "namespace-registration"
104
- },
105
- {
106
- "api": "C_Secrets.ShouldAurasBeSecret",
107
- "rva": "0x1980180",
108
- "va": "0x141980180",
109
- "entryHash": "35e2035ff2a806e350a148955df54502bad0af95bc87e54a67337514b6e09a6a",
110
- "sourceKind": "namespace-registration"
111
- },
112
- {
113
- "api": "C_Secrets.ShouldSpellAuraBeSecret",
114
- "rva": "0x1980f50",
115
- "va": "0x141980f50",
116
- "entryHash": "ec09fe60982f304cec269abbf6740a70aaef2a58eebb068e46821b8648cfc385",
117
- "sourceKind": "namespace-registration"
118
- },
119
- {
120
- "api": "C_Secrets.ShouldUnitAuraIndexBeSecret",
121
- "rva": "0x1983260",
122
- "va": "0x141983260",
123
- "entryHash": "4ad02336a22420c7335361d2e5d4803a97e19728b8fec7dd87c2b51437d6ea1a",
124
- "sourceKind": "namespace-registration"
125
- },
126
- {
127
- "api": "C_Secrets.ShouldUnitAuraInstanceBeSecret",
128
- "rva": "0x19839b0",
129
- "va": "0x1419839b0",
130
- "entryHash": "1afbe98205c2324e75edd4f832114058c2bccf63e4aea4a1de89bc1a21ee2cce",
131
- "sourceKind": "namespace-registration"
132
- },
133
- {
134
- "api": "C_Secrets.ShouldUnitAuraSlotBeSecret",
135
- "rva": "0x19840a0",
136
- "va": "0x1419840a0",
137
- "entryHash": "b06c7edf0a16fba416df3b1949da3b5d705a2ad2266e474f74428525eb988ce0",
138
- "sourceKind": "namespace-registration"
139
- },
140
- {
141
- "api": "C_Spell.GetAuraStatChanges",
142
- "rva": "0x1a185d0",
143
- "va": "0x141a185d0",
144
- "entryHash": "e692fc845a985e08b407d06f59e5a9b0e40ae562c90164f5b0fc8f80cf0749b2",
145
- "sourceKind": "namespace-registration"
146
- },
147
- {
148
- "api": "C_Spell.GetSpellMaxCumulativeAuraApplications",
149
- "rva": "0x1a31e90",
150
- "va": "0x141a31e90",
151
- "entryHash": "f3a25aeaaa40483622ecb0244a50f459afb1162000e1e5c90abf07951ea99222",
152
- "sourceKind": "namespace-registration"
153
- },
154
- {
155
- "api": "C_Spell.IsPriorityAura",
156
- "rva": "0x1a3f140",
157
- "va": "0x141a3f140",
158
- "entryHash": "b7ab80e8e69fc2dc065dd79deb7604ca71f3ab680c2efbe3e85639c20702ce25",
159
- "sourceKind": "namespace-registration"
160
- },
161
- {
162
- "api": "C_TooltipInfo.GetUnitAura",
163
- "rva": "0x1ba1d10",
164
- "va": "0x141ba1d10",
165
- "entryHash": "53309e822ba1c181ecb0945b16f3a8ce95157d07aa6d9a72d2d1ad1a3a1cb920",
166
- "sourceKind": "namespace-registration"
167
- },
168
- {
169
- "api": "C_TooltipInfo.GetUnitAuraByAuraInstanceID",
170
- "rva": "0x1ba3960",
171
- "va": "0x141ba3960",
172
- "entryHash": "53309e822ba1c181ecb0945b16f3a8ce95157d07aa6d9a72d2d1ad1a3a1cb920",
173
- "sourceKind": "namespace-registration"
174
- }
175
- ],
176
- "sourceApiCount": 68,
177
- "staticEvidence": [],
178
- "readerStatus": "unresolved",
179
- "unresolvedReason": "Aura/DataProvider APIs are indexed, but provider instance, container layout, and update path are not resolved.",
180
- "nextAction": "Cluster C_UnitAuras wrappers and trace ResetAuraDataProvider/SwitchAuraDataProvider to the provider owner."
181
- },
182
- {
183
- "dataSourceId": "ds-client-cache-anchor",
184
- "buildKey": "retail@12.0.7.68974",
185
- "module": "Wow.exe",
186
- "systemIds": [
187
- "client-cache"
188
- ],
189
- "classification": "api-anchor-without-cache-container",
190
- "status": "unresolved",
191
- "getterRva": null,
192
- "getterVa": null,
193
- "globalPointerRva": null,
194
- "pointerChain": [],
195
- "structureSize": null,
196
- "fields": [],
197
- "containerDefinition": null,
198
- "invariants": [],
199
- "updateEntry": {
200
- "rva": null,
201
- "status": "unresolved"
202
- },
203
- "sourceApis": [
204
- {
205
- "api": "C_ClubFinder.ClearAllFinderCache",
206
- "rva": "0xed4cd0",
207
- "va": "0x140ed4cd0",
208
- "entryHash": "5f7baf7a348d496786875c132b795b0ff00464c657aa46231915ab627731af05",
209
- "sourceKind": "namespace-registration"
210
- },
211
- {
212
- "api": "C_ClubFinder.ClearClubApplicantsCache",
213
- "rva": "0xed5380",
214
- "va": "0x140ed5380",
215
- "entryHash": "c695888a8182cd1d353be1aa5d1d82f29062b9db8f35accf372a553aa8ebf0ea",
216
- "sourceKind": "namespace-registration"
217
- },
218
- {
219
- "api": "C_ClubFinder.ClearClubFinderPostingsCache",
220
- "rva": "0xed5a20",
221
- "va": "0x140ed5a20",
222
- "entryHash": "7422a296195ce560c40bb6e945f8660ca402937253e1a7aac8ac6614ddde2ede",
223
- "sourceKind": "namespace-registration"
224
- },
225
- {
226
- "api": "C_ClubFinder.ResetClubPostingMapCache",
227
- "rva": "0xeee820",
228
- "va": "0x140eee820",
229
- "entryHash": "8bd49a767274a0e495ab392ca0f5deb342debe48fc9c6323ae8d0628e82b2dc6",
230
- "sourceKind": "namespace-registration"
231
- },
232
- {
233
- "api": "C_Item.IsItemDataCached",
234
- "rva": "0x14dec70",
235
- "va": "0x1414dec70",
236
- "entryHash": "b0bb17276b16e6c66d4bb689d6584b4c91f7cd7ae52679902770bebdf0f858ec",
237
- "sourceKind": "namespace-registration"
238
- },
239
- {
240
- "api": "C_Item.IsItemDataCachedByID",
241
- "rva": "0x14df350",
242
- "va": "0x1414df350",
243
- "entryHash": "4f85ed783a13468b2fa13b98b388982028cc7c692bc96e51eb43226d6d84fdf0",
244
- "sourceKind": "namespace-registration"
245
- },
246
- {
247
- "api": "C_Spell.IsSpellDataCached",
248
- "rva": "0x1a414a0",
249
- "va": "0x141a414a0",
250
- "entryHash": "327058c16fb2fde84446c8709fea87e46266e9e1e8c2967bd9371be83d8d2afb",
251
- "sourceKind": "namespace-registration"
252
- }
253
- ],
254
- "sourceApiCount": 7,
255
- "staticEvidence": [],
256
- "readerStatus": "unresolved",
257
- "unresolvedReason": "Cache invalidation APIs are present, but cache key/value types, owner, and storage root are unresolved.",
258
- "nextAction": "Trace a naturally occurring cache clear/update transition and identify the modified container."
259
- },
260
- {
261
- "dataSourceId": "ds-cvar-registry",
262
- "buildKey": "retail@12.0.7.68974",
263
- "module": "Wow.exe",
264
- "systemIds": [
265
- "cvar-config",
266
- "container-index"
267
- ],
268
- "classification": "statically-resolved-global-open-addressing-hash-table",
269
- "status": "partial",
270
- "getterRva": "0x3cc2930",
271
- "getterVa": "0x143cc2930",
272
- "globalPointerRva": "0x5898dd8",
273
- "pointerChain": [
274
- {
275
- "step": 0,
276
- "operation": "moduleBase + 0x5898dd8",
277
- "result": "address of slot-array pointer"
278
- },
279
- {
280
- "step": 1,
281
- "operation": "readPointer",
282
- "result": "slot-array base",
283
- "validation": "readable memory"
284
- },
285
- {
286
- "step": 2,
287
- "operation": "slotBase + index * 0x10",
288
- "result": "[hash, CVar*] slot"
289
- }
290
- ],
291
- "structureSize": {
292
- "slotBytes": 16,
293
- "cvarMinimumObservedBytes": 16,
294
- "fullCVarSize": null,
295
- "status": "partial"
296
- },
297
- "fields": [
298
- {
299
- "name": "capacity",
300
- "rva": "0x5898dd0",
301
- "type": "uint64",
302
- "status": "statically_confirmed"
303
- },
304
- {
305
- "name": "slots",
306
- "rva": "0x5898dd8",
307
- "type": "CVarSlot*",
308
- "status": "statically_confirmed"
309
- },
310
- {
311
- "name": "tombstoneGate",
312
- "rva": "0x5898de8",
313
- "type": "uint64",
314
- "status": "statically_confirmed",
315
- "semantics": "partial"
316
- },
317
- {
318
- "name": "slot.hash",
319
- "offset": "0x0",
320
- "type": "uint64",
321
- "status": "statically_confirmed"
322
- },
323
- {
324
- "name": "slot.cvar",
325
- "offset": "0x8",
326
- "type": "CVar*",
327
- "status": "statically_confirmed"
328
- },
329
- {
330
- "name": "cvar.flags",
331
- "offset": "0x4",
332
- "type": "uint32",
333
- "status": "statically_confirmed",
334
- "semantics": "partial"
335
- },
336
- {
337
- "name": "cvar.value",
338
- "offset": "0x8",
339
- "type": "char*",
340
- "status": "statically_confirmed"
341
- }
342
- ],
343
- "containerDefinition": {
344
- "kind": "open-addressing-hash-table",
345
- "slotStride": 16,
346
- "key": "case-insensitive FNV-1a 64-bit hash",
347
- "value": "CVar*",
348
- "emptyHash": "0x0",
349
- "conditionalTombstoneHash": "0x1",
350
- "probe": "triangular/quadratic progression under capacity-1 mask"
351
- },
352
- "invariants": [
353
- "capacity is non-zero, power-of-two, and bounded by reader maxSlots",
354
- "slots pointer is readable for capacity * 0x10 bytes",
355
- "lookup index is hash & (capacity - 1)",
356
- "non-empty CVar pointer is null or points to readable memory",
357
- "value pointer is null or a bounded NUL-terminated string"
358
- ],
359
- "updateEntry": {
360
- "rva": null,
361
- "status": "unresolved"
362
- },
363
- "sourceApis": [
364
- {
365
- "api": "C_CVar.GetCVar",
366
- "rva": "0xd1c040",
367
- "va": "0x140d1c040",
368
- "entryHash": "27897074f2e1c64c1f8f9f835cb5f83b7288698879275289929dd356633b6687",
369
- "sourceKind": "namespace-registration"
370
- },
371
- {
372
- "api": "C_CVar.GetCVarBitfield",
373
- "rva": "0xd1d3c0",
374
- "va": "0x140d1d3c0",
375
- "entryHash": "8e8efe64a17ce56f915261b6e489f98bc40d01a2f3f97fe0b090cf85b0f69906",
376
- "sourceKind": "namespace-registration"
377
- },
378
- {
379
- "api": "C_CVar.GetCVarBool",
380
- "rva": "0xd1db60",
381
- "va": "0x140d1db60",
382
- "entryHash": "16620c8355c31455112700ac7fcbf6d6a7acc7df02312a545b157a8e3c821308",
383
- "sourceKind": "namespace-registration"
384
- },
385
- {
386
- "api": "C_CVar.GetCVarDefault",
387
- "rva": "0xd1e280",
388
- "va": "0x140d1e280",
389
- "entryHash": "27897074f2e1c64c1f8f9f835cb5f83b7288698879275289929dd356633b6687",
390
- "sourceKind": "namespace-registration"
391
- },
392
- {
393
- "api": "C_CVar.GetCVarInfo",
394
- "rva": "0xd1f810",
395
- "va": "0x140d1f810",
396
- "entryHash": "44dab8242452b0c45a212dc1eb137d1e805c3c090d54f08cf876c6bf52491116",
397
- "sourceKind": "namespace-registration"
398
- },
399
- {
400
- "api": "C_CVar.RegisterCVar",
401
- "rva": "0xd20010",
402
- "va": "0x140d20010",
403
- "entryHash": "2b4d9da65cfd079cf2ce4180dd835a457a075b99be1fe9f0934bba275c90009c",
404
- "sourceKind": "namespace-registration"
405
- },
406
- {
407
- "api": "C_CVar.ResetTestCVars",
408
- "rva": "0xd206e0",
409
- "va": "0x140d206e0",
410
- "entryHash": "23f86485ee18d077de0d05e8bccb397916056b77213413aa3947a16375025bca",
411
- "sourceKind": "namespace-registration"
412
- },
413
- {
414
- "api": "C_CVar.SetCVar",
415
- "rva": "0xd20d70",
416
- "va": "0x140d20d70",
417
- "entryHash": "479fcd2db4cf682bdcee98376d605d72d19b9c1829f9a2204433b3c2ab59f546",
418
- "sourceKind": "namespace-registration"
419
- },
420
- {
421
- "api": "C_CVar.SetCVarBitfield",
422
- "rva": "0xd215f0",
423
- "va": "0x140d215f0",
424
- "entryHash": "c144f0715d29e8b42b96d97c1d91026ea04120196112f06e98e4f2bbb09c99b8",
425
- "sourceKind": "namespace-registration"
426
- }
427
- ],
428
- "staticEvidence": [
429
- {
430
- "kind": "ida-decompilation",
431
- "va": "0x143cc2930",
432
- "rva": "0x3cc2930",
433
- "excerpt": "index = hash & (capacity - 1); slot = slots + 16 * index; return slot[1]",
434
- "query": "mcp__idalib__decompile(0x143cc2930)"
435
- },
436
- {
437
- "kind": "ida-decompilation",
438
- "va": "0x142a49720",
439
- "rva": "0x2a49720",
440
- "excerpt": "case-insensitive FNV-1a -> sub_143CC29E0; flags at +4; value pointer at +8",
441
- "query": "mcp__idalib__decompile(0x142a49720)"
442
- },
443
- {
444
- "context": "CVar \"%s\" is \"%s\"",
445
- "rva": "0x3ebd258",
446
- "va": "0x143ebd258",
447
- "section": ".rdata"
448
- },
449
- {
450
- "context": "Set the value of a CVar",
451
- "rva": "0x3ebd38b",
452
- "va": "0x143ebd38b",
453
- "section": ".rdata"
454
- },
455
- {
456
- "context": "Set the value of a CVar to its startup value",
457
- "rva": "0x3ebd3a3",
458
- "va": "0x143ebd3a3",
459
- "section": ".rdata"
460
- },
461
- {
462
- "context": "Set the value of a CVar to its coded default value",
463
- "rva": "0x3ebd3e3",
464
- "va": "0x143ebd3e3",
465
- "section": ".rdata"
466
- },
467
- {
468
- "context": "List CVars (filtered by substring if provided)",
469
- "rva": "0x3ebd41d",
470
- "va": "0x143ebd41d",
471
- "section": ".rdata"
472
- },
473
- {
474
- "context": "<CVar.%s> %s",
475
- "rva": "0x3ebd501",
476
- "va": "0x143ebd501",
477
- "section": ".rdata"
478
- },
479
- {
480
- "context": "<CVar.%s> Bad Character %u",
481
- "rva": "0x3ebd511",
482
- "va": "0x143ebd511",
483
- "section": ".rdata"
484
- },
485
- {
486
- "context": "CVar '%s' failed validation for its initial value.",
487
- "rva": "0x3ebd560",
488
- "va": "0x143ebd560",
489
- "section": ".rdata"
490
- }
491
- ],
492
- "readerStatus": "partial",
493
- "unresolvedReason": "No live memory traversal and no Lua/UI value cross-check has been recorded for this root.",
494
- "nextAction": "Dynamically discover Wow.exe, validate the getter signature and globals, then compare a bounded CVar lookup with C_CVar.GetCVar through the real Lua VM."
495
- },
496
- {
497
- "dataSourceId": "ds-db2-runtime-anchor",
498
- "buildKey": "retail@12.0.7.68974",
499
- "module": "Wow.exe",
500
- "systemIds": [
501
- "db2-casc-runtime"
502
- ],
503
- "classification": "static-type-anchor-without-runtime-object-root",
504
- "status": "unresolved",
505
- "getterRva": null,
506
- "getterVa": null,
507
- "globalPointerRva": null,
508
- "pointerChain": [],
509
- "structureSize": null,
510
- "fields": [],
511
- "containerDefinition": null,
512
- "invariants": [],
513
- "updateEntry": {
514
- "rva": null,
515
- "status": "unresolved"
516
- },
517
- "sourceApis": [
518
- {
519
- "api": "C_AccountStore.GetCategoryItems",
520
- "rva": "0xbb2700",
521
- "va": "0x140bb2700",
522
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
523
- "sourceKind": "namespace-registration"
524
- },
525
- {
526
- "api": "C_AccountStore.GetItemInfo",
527
- "rva": "0xbb5dd0",
528
- "va": "0x140bb5dd0",
529
- "entryHash": "ed71894e651900f425316fbae87f3498731948032fcc996606776a4927eee83a",
530
- "sourceKind": "namespace-registration"
531
- },
532
- {
533
- "api": "C_AccountStore.RefundItem",
534
- "rva": "0xbb7a60",
535
- "va": "0x140bb7a60",
536
- "entryHash": "2c4d1de9d6d83ec0a20c854c162361b5ac18dbf77342a5a5f98a9aa1cb513325",
537
- "sourceKind": "namespace-registration"
538
- },
539
- {
540
- "api": "C_AchievementInfo.GetRewardItemID",
541
- "rva": "0xbc5b10",
542
- "va": "0x140bc5b10",
543
- "entryHash": "0263d1b1d5ea68e7dff279321b1a28b1742c3a03cea2b6cd6985500212955353",
544
- "sourceKind": "namespace-registration-pagination"
545
- },
546
- {
547
- "api": "C_ActionBar.FindSpellActionButtons",
548
- "rva": "0xbcf5e0",
549
- "va": "0x140bcf5e0",
550
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
551
- "sourceKind": "namespace-registration"
552
- },
553
- {
554
- "api": "C_ActionBar.GetItemActionOnEquipSpellID",
555
- "rva": "0xbdf4b0",
556
- "va": "0x140bdf4b0",
557
- "entryHash": "a2f3f59eac0941625c9a8c87b126ecd99a2454b5e9033e3beb4e87d1aa588c8b",
558
- "sourceKind": "namespace-registration"
559
- },
560
- {
561
- "api": "C_ActionBar.GetSpell",
562
- "rva": "0xbe3a10",
563
- "va": "0x140be3a10",
564
- "entryHash": "083d6894d8359c556558381e58a8da67dd9413cd3e4a78e518e6785d29a2e0d4",
565
- "sourceKind": "namespace-registration"
566
- },
567
- {
568
- "api": "C_ActionBar.HasSpellActionButtons",
569
- "rva": "0xbe8d80",
570
- "va": "0x140be8d80",
571
- "entryHash": "268264104189879d6647b4d8ddf58203031dee7e48d7364b5d471c1017847cfc",
572
- "sourceKind": "namespace-registration"
573
- },
574
- {
575
- "api": "C_ActionBar.IsItemAction",
576
- "rva": "0xbeff90",
577
- "va": "0x140beff90",
578
- "entryHash": "be0a5f75e3137b863fd218b2c7ec5bd124ac3636c1893eae7161784a1d67a84f",
579
- "sourceKind": "namespace-registration"
580
- },
581
- {
582
- "api": "C_ArtifactUI.CanApplyRelicItemIDToEquippedArtifactSlot",
583
- "rva": "0xc31320",
584
- "va": "0x140c31320",
585
- "entryHash": "7d881d1cc8f79647f6e50214e41fb5ff78d9d4b1b6f1f3922730fd71e3e189f5",
586
- "sourceKind": "namespace-registration"
587
- },
588
- {
589
- "api": "C_ArtifactUI.CanApplyRelicItemIDToSlot",
590
- "rva": "0xc31a40",
591
- "va": "0x140c31a40",
592
- "entryHash": "e9057928da692e58e71049c8b4d3995cbd0815f2c14602caf9b1adcd84f4c375",
593
- "sourceKind": "namespace-registration"
594
- },
595
- {
596
- "api": "C_ArtifactUI.GetArtifactItemID",
597
- "rva": "0xc3cd50",
598
- "va": "0x140c3cd50",
599
- "entryHash": "d10ddb032c5fe7f290c1d90e142096aaa85446724e93e1feac0920dfef5c0ec7",
600
- "sourceKind": "namespace-registration"
601
- },
602
- {
603
- "api": "C_ArtifactUI.GetEquippedArtifactItemID",
604
- "rva": "0xc43800",
605
- "va": "0x140c43800",
606
- "entryHash": "67df07cbc32740ec3a53b3f9eb5acef006b342f12834d56d39700f57d12b7cc6",
607
- "sourceKind": "namespace-registration"
608
- },
609
- {
610
- "api": "C_ArtifactUI.GetItemLevelIncreaseProvidedByRelic",
611
- "rva": "0xc481a0",
612
- "va": "0x140c481a0",
613
- "entryHash": "65edd2269d402904d91395e536eca2ca548473be6d8e965a7c9cd5c27660ebbb",
614
- "sourceKind": "namespace-registration"
615
- },
616
- {
617
- "api": "C_ArtifactUI.GetPowersAffectedByRelicItemLink",
618
- "rva": "0xc53100",
619
- "va": "0x140c53100",
620
- "entryHash": "87936fdaff380ed09995caea63549534068e302367c91c8e291306bf897d3326",
621
- "sourceKind": "namespace-registration"
622
- },
623
- {
624
- "api": "C_ArtifactUI.GetRelicInfoByItemID",
625
- "rva": "0xc56830",
626
- "va": "0x140c56830",
627
- "entryHash": "6a3063a9217a9befa9a6863ce1c4de1a3e742a0e368104472814a93a1009c80d",
628
- "sourceKind": "namespace-registration"
629
- },
630
- {
631
- "api": "C_ArtifactUI.IsArtifactItem",
632
- "rva": "0xc5f620",
633
- "va": "0x140c5f620",
634
- "entryHash": "66bdbf7d665632914b3222b520628f5bb6cc103fd7e97edc0eecb5d5d8743e7c",
635
- "sourceKind": "namespace-registration"
636
- },
637
- {
638
- "api": "C_AssistedCombat.GetActionSpell",
639
- "rva": "0xc653d0",
640
- "va": "0x140c653d0",
641
- "entryHash": "6cf5f58a72f2f701888c79d5035f5b219e3d6e66db3660a4aaee58587048395d",
642
- "sourceKind": "namespace-registration-pagination"
643
- },
644
- {
645
- "api": "C_AssistedCombat.GetNextCastSpell",
646
- "rva": "0xc65a80",
647
- "va": "0x140c65a80",
648
- "entryHash": "76118e8d115ced837233480d572553ad2309598e03dbf1f4537635feeee8791d",
649
- "sourceKind": "namespace-registration-pagination"
650
- },
651
- {
652
- "api": "C_AssistedCombat.GetRotationSpells",
653
- "rva": "0xc66220",
654
- "va": "0x140c66220",
655
- "entryHash": "71bddbdbf34e3a758545e46e4dc71ee527162b2bb0ad59f3d045272e9e7b49de",
656
- "sourceKind": "namespace-registration-pagination"
657
- }
658
- ],
659
- "sourceApiCount": 600,
660
- "staticEvidence": [
661
- {
662
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class UIScriptedAnimationEffectRec_C const *,enum DB2CallbackEvent)>>(void)",
663
- "rva": "0x4f41e53",
664
- "va": "0x144f41e53",
665
- "section": ".rdata"
666
- },
667
- {
668
- "context": "wTypeName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class UIScriptedAnimationEffectRec_C>::DBCALLBACK> >*>(void)",
669
- "rva": "0x4f421dc",
670
- "va": "0x144f421dc",
671
- "section": ".rdata"
672
- },
673
- {
674
- "context": "peName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class SpellScriptTextRec_C>::DBCALLBACK> >*>(void)",
675
- "rva": "0x4f67def",
676
- "va": "0x144f67def",
677
- "section": ".rdata"
678
- },
679
- {
680
- "context": "peName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class SpellScriptRec_C>::DBCALLBACK> >*>(void)",
681
- "rva": "0x4f67e9f",
682
- "va": "0x144f67e9f",
683
- "section": ".rdata"
684
- },
685
- {
686
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class SpellScriptRec_C const *,enum DB2CallbackEvent)>>(void)",
687
- "rva": "0x4f68646",
688
- "va": "0x144f68646",
689
- "section": ".rdata"
690
- },
691
- {
692
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class SpellScriptTextRec_C const *,enum DB2CallbackEvent)>>(void)",
693
- "rva": "0x4f686d6",
694
- "va": "0x144f686d6",
695
- "section": ".rdata"
696
- },
697
- {
698
- "context": "char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class RecordPtr<class SceneScriptTextRec_C>,enum DB2CallbackEvent)>>(void)",
699
- "rva": "0x4f6e906",
700
- "va": "0x144f6e906",
701
- "section": ".rdata"
702
- },
703
- {
704
- "context": "<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientSparseDB2<class SceneScriptTextRec_C>::DBSPARSECALLBACK> >*>(void)",
705
- "rva": "0x4f6eb05",
706
- "va": "0x144f6eb05",
707
- "section": ".rdata"
708
- }
709
- ],
710
- "readerStatus": "unresolved",
711
- "unresolvedReason": "DB2 runtime types and API consumers exist, but no DB2 instance/global or CASC-to-runtime object edge is resolved.",
712
- "nextAction": "Use DB2 type strings and callback xrefs to identify one table instance, then validate an ID against static DB2/CASC data."
713
- },
714
- {
715
- "dataSourceId": "ds-framescript-event-registry",
716
- "buildKey": "retail@12.0.7.68974",
717
- "module": "Wow.exe",
718
- "systemIds": [
719
- "lua-events-payload",
720
- "script-object",
721
- "singleton",
722
- "container-index"
723
- ],
724
- "classification": "statically-resolved-process-lifetime-global-chained-hash-table",
725
- "status": "partial",
726
- "getterRva": "0x66e7d0",
727
- "getterVa": "0x14066e7d0",
728
- "globalPointerRva": "0x7f93418",
729
- "globalStorageKind": "inline-container-object",
730
- "pointerChain": [
731
- {
732
- "step": 0,
733
- "operation": "moduleBase + 0x7f93418",
734
- "result": "inline container header"
735
- },
736
- {
737
- "step": 1,
738
- "operation": "read header +0/+8/+0x10/+0x18",
739
- "result": "bucketCount/buckets/size/maxLoadFactor"
740
- },
741
- {
742
- "step": 2,
743
- "operation": "follow bounded outer chains",
744
- "result": "FrameScript_Object* -> EventID map"
745
- }
746
- ],
747
- "structureSize": {
748
- "registryHeaderBytes": 32,
749
- "outerNodeBytes": null,
750
- "nestedEventMapNodeBytes": null,
751
- "status": "partial"
752
- },
753
- "fields": [
754
- {
755
- "name": "bucketCount",
756
- "offset": "0x0",
757
- "type": "uint64",
758
- "initialValue": 8,
759
- "status": "statically_confirmed"
760
- },
761
- {
762
- "name": "buckets",
763
- "offset": "0x8",
764
- "type": "Node**",
765
- "initialValue": 0,
766
- "status": "statically_confirmed"
767
- },
768
- {
769
- "name": "size",
770
- "offset": "0x10",
771
- "type": "uint64",
772
- "initialValue": 0,
773
- "status": "statically_confirmed"
774
- },
775
- {
776
- "name": "maxLoadFactor",
777
- "offset": "0x18",
778
- "type": "float",
779
- "initialValue": 1,
780
- "status": "statically_confirmed"
781
- },
782
- {
783
- "name": "tlsInitGuard",
784
- "rva": "0x7f93438",
785
- "type": "int32",
786
- "status": "statically_confirmed"
787
- }
788
- ],
789
- "containerDefinition": {
790
- "kind": "chained-hash-table-with-nested-unordered-map",
791
- "key": "FrameScript_Object*",
792
- "value": "unordered_map<LanguageBinding::EventID, vector<function<void()>>>",
793
- "removalRva": "0x66e860",
794
- "postRemovalCleanupRva": "0x68c730"
795
- },
796
- "invariants": [
797
- "getter returns moduleBase + 0x7f93418 after thread-safe initialization",
798
- "bucketCount is non-zero, power-of-two, and bounded by reader maxBuckets",
799
- "size is bounded by reader maxItems",
800
- "outer and nested chains are cycle-detected",
801
- "FrameScript_Object pointers are null or readable before identity inspection"
802
- ],
803
- "updateEntry": {
804
- "rva": "0x66e860",
805
- "role": "remove all event bindings for object key",
806
- "status": "statically_confirmed"
807
- },
808
- "sourceApis": [
809
- {
810
- "api": "C_EventScheduler.CanShowEvents",
811
- "rva": "0x113e430",
812
- "va": "0x14113e430",
813
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
814
- "sourceKind": "namespace-registration-pagination"
815
- },
816
- {
817
- "api": "C_EventScheduler.ClearReminder",
818
- "rva": "0x113eae0",
819
- "va": "0x14113eae0",
820
- "entryHash": "38cb430e2d9b82aa1425cbc097168a483e3250d039e25d9b94f45495daa6a2f2",
821
- "sourceKind": "namespace-registration-pagination"
822
- },
823
- {
824
- "api": "C_EventScheduler.GetActiveContinentName",
825
- "rva": "0x113ff20",
826
- "va": "0x14113ff20",
827
- "entryHash": "4e34ef8b8da2022126ecb68fcfae4437929d9bd1d60053835421029122481505",
828
- "sourceKind": "namespace-registration-pagination"
829
- },
830
- {
831
- "api": "C_EventScheduler.GetEventUiMapID",
832
- "rva": "0x1141a60",
833
- "va": "0x141141a60",
834
- "entryHash": "4bc9fed7a364308da0b83a24f51d1f45fc3a44925b4f0ad7446880beee269c4d",
835
- "sourceKind": "namespace-registration-pagination"
836
- },
837
- {
838
- "api": "C_EventScheduler.GetEventZoneName",
839
- "rva": "0x11420f0",
840
- "va": "0x1411420f0",
841
- "entryHash": "0c58c5535174828da016bc2374923565fe47db8faa1042c150b9e36c6138a73b",
842
- "sourceKind": "namespace-registration-pagination"
843
- },
844
- {
845
- "api": "C_EventScheduler.GetOngoingEvents",
846
- "rva": "0x1143750",
847
- "va": "0x141143750",
848
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
849
- "sourceKind": "namespace-registration-pagination"
850
- },
851
- {
852
- "api": "C_EventScheduler.GetScheduledEvents",
853
- "rva": "0x1145150",
854
- "va": "0x141145150",
855
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
856
- "sourceKind": "namespace-registration-pagination"
857
- },
858
- {
859
- "api": "C_EventScheduler.HasData",
860
- "rva": "0x1146a40",
861
- "va": "0x141146a40",
862
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
863
- "sourceKind": "namespace-registration-pagination"
864
- },
865
- {
866
- "api": "C_EventScheduler.HasSavedReminders",
867
- "rva": "0x11470f0",
868
- "va": "0x1411470f0",
869
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
870
- "sourceKind": "namespace-registration-pagination"
871
- },
872
- {
873
- "api": "C_EventScheduler.RequestEvents",
874
- "rva": "0x11477c0",
875
- "va": "0x1411477c0",
876
- "entryHash": "efcbe0088f7a2e4c8480eb4096e3d4a9976da83cb59d582dd4f0c13180e8e388",
877
- "sourceKind": "namespace-registration-pagination"
878
- },
879
- {
880
- "api": "C_EventScheduler.SetReminder",
881
- "rva": "0x1147e90",
882
- "va": "0x141147e90",
883
- "entryHash": "38cb430e2d9b82aa1425cbc097168a483e3250d039e25d9b94f45495daa6a2f2",
884
- "sourceKind": "namespace-registration-pagination"
885
- },
886
- {
887
- "api": "C_EventUtils.IsCallbackEvent",
888
- "rva": "0x114e7b0",
889
- "va": "0x14114e7b0",
890
- "entryHash": "c62c8b963c97cb6fcf09a7051ec31cb005e11a78a88162a6f1b369a7ae718694",
891
- "sourceKind": "namespace-registration"
892
- },
893
- {
894
- "api": "C_EventUtils.IsEventValid",
895
- "rva": "0x114eea0",
896
- "va": "0x14114eea0",
897
- "entryHash": "745dbb4b6943c0f314e848824ee7178307336ff78960699854f5735a89f1d4d0",
898
- "sourceKind": "namespace-registration"
899
- }
900
- ],
901
- "sourceApiRelationship": "event-system semantic anchors; direct native wrapper edge remains unresolved",
902
- "staticEvidence": [
903
- {
904
- "kind": "ida-decompilation",
905
- "va": "0x14066e7d0",
906
- "rva": "0x66e7d0",
907
- "excerpt": "thread-safe global initialization: {8, null, 0, 1.0f}; returns &qword_147F93418",
908
- "query": "mcp__idalib__decompile(0x14066e7d0)"
909
- },
910
- {
911
- "kind": "ida-decompilation",
912
- "va": "0x14066e860",
913
- "rva": "0x66e860",
914
- "excerpt": "bounded hash-chain lookup by FrameScript_Object* and nested EventID callback-vector destruction",
915
- "query": "mcp__idalib__analyze_batch(0x14066e860)"
916
- },
917
- {
918
- "context": "FrameScript_Object",
919
- "rva": "0x4f95fbd",
920
- "va": "0x144f95fbd",
921
- "section": ".rdata"
922
- },
923
- {
924
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
925
- "rva": "0x4f9bf57",
926
- "va": "0x144f9bf57",
927
- "section": ".rdata"
928
- },
929
- {
930
- "context": "FrameScript_Object",
931
- "rva": "0x4f95fb8",
932
- "va": "0x144f95fb8",
933
- "section": ".rdata"
934
- },
935
- {
936
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
937
- "rva": "0x4f9bf52",
938
- "va": "0x144f9bf52",
939
- "section": ".rdata"
940
- },
941
- {
942
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
943
- "rva": "0x4f9bf5e",
944
- "va": "0x144f9bf5e",
945
- "section": ".rdata"
946
- },
947
- {
948
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class FrameScript_Object * const,class blz::unordered_map<enum LanguageBinding::EventID,class blz::vector<class blz::function<void __cdecl(void)>,class blz::allocator",
949
- "rva": "0x4f9c9db",
950
- "va": "0x144f9c9db",
951
- "section": ".rdata"
952
- },
953
- {
954
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class FrameScript_Object * const,class blz::unordered_map<enum LanguageBinding::EventID,class blz::vector<class blz::function<void __cdecl(void)>,class blz::allocator",
955
- "rva": "0x4f9cd4b",
956
- "va": "0x144f9cd4b",
957
- "section": ".rdata"
958
- },
959
- {
960
- "context": "const char *__cdecl WowGetRawTypeName<class FrameScript_Object*>(void)",
961
- "rva": "0x4f9db9c",
962
- "va": "0x144f9db9c",
963
- "section": ".rdata"
964
- },
965
- {
966
- "context": "eName<struct blz::chained_hash_node<struct blz::pair<enum LanguageBinding::EventID const ,class FrameScriptEvents::EventListenerList> >>(void)",
967
- "rva": "0x4f9dc40",
968
- "va": "0x144f9dc40",
969
- "section": ".rdata"
970
- },
971
- {
972
- "context": "eName<struct blz::chained_hash_node<struct blz::pair<enum LanguageBinding::EventID const ,class FrameScriptEvents::EventListenerList> >*>(void)",
973
- "rva": "0x4f9dd50",
974
- "va": "0x144f9dd50",
975
- "section": ".rdata"
976
- },
977
- {
978
- "context": "const char *__cdecl WowGetRawTypeName<struct FrameScript_Object::Script>(void)",
979
- "rva": "0x4f9de0d",
980
- "va": "0x144f9de0d",
981
- "section": ".rdata"
982
- },
983
- {
984
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::pair<class FrameScript_Object const * const,class blz::vector<struct FrameScript_Object::Script,class blz::allocator<struct FrameScript_Object::Script> > >>(void)",
985
- "rva": "0x4f9de6d",
986
- "va": "0x144f9de6d",
987
- "section": ".rdata"
988
- }
989
- ],
990
- "readerStatus": "partial",
991
- "unresolvedReason": "Nested node offsets, vtable identity, and live event payload contents are not yet verified.",
992
- "nextAction": "Observe natural event registration/unregistration, validate the getter live, then enumerate only a bounded object sample."
993
- },
994
- {
995
- "dataSourceId": "ds-framescript-name-registry",
996
- "buildKey": "retail@12.0.7.68974",
997
- "module": "Wow.exe",
998
- "systemIds": [
999
- "frame",
1000
- "script-object",
1001
- "container-index"
1002
- ],
1003
- "classification": "statically-resolved-global-chained-hash-table",
1004
- "status": "partial",
1005
- "getterRva": "0x697930",
1006
- "getterVa": "0x140697930",
1007
- "getterRole": "insert-or-find; not a pure getter",
1008
- "globalPointerRva": "0x5923320",
1009
- "pointerChain": [
1010
- {
1011
- "step": 0,
1012
- "operation": "moduleBase + 0x5923320",
1013
- "result": "address of bucket-array pointer"
1014
- },
1015
- {
1016
- "step": 1,
1017
- "operation": "readPointer",
1018
- "result": "bucket-array base",
1019
- "validation": "readable memory"
1020
- },
1021
- {
1022
- "step": 2,
1023
- "operation": "follow bounded next links",
1024
- "result": "name -> FrameScript_Object* nodes"
1025
- }
1026
- ],
1027
- "structureSize": {
1028
- "nodeBytes": 56,
1029
- "registryHeaderBytes": 32,
1030
- "fullFrameScriptObjectSize": null,
1031
- "status": "partial"
1032
- },
1033
- "fields": [
1034
- {
1035
- "name": "bucketCount",
1036
- "rva": "0x5923318",
1037
- "type": "uint64",
1038
- "status": "statically_confirmed"
1039
- },
1040
- {
1041
- "name": "buckets",
1042
- "rva": "0x5923320",
1043
- "type": "Node**",
1044
- "status": "statically_confirmed"
1045
- },
1046
- {
1047
- "name": "size",
1048
- "rva": "0x5923328",
1049
- "type": "uint64",
1050
- "status": "statically_confirmed"
1051
- },
1052
- {
1053
- "name": "maxLoadFactor",
1054
- "rva": "0x5923330",
1055
- "type": "float",
1056
- "status": "statically_confirmed"
1057
- },
1058
- {
1059
- "name": "node.next",
1060
- "offset": "0x0",
1061
- "type": "Node*",
1062
- "status": "statically_confirmed"
1063
- },
1064
- {
1065
- "name": "node.nameData",
1066
- "offset": "0x8",
1067
- "type": "char*",
1068
- "status": "statically_confirmed"
1069
- },
1070
- {
1071
- "name": "node.nameLength",
1072
- "offset": "0x10",
1073
- "type": "uint64",
1074
- "status": "statically_confirmed"
1075
- },
1076
- {
1077
- "name": "node.object",
1078
- "offset": "0x30",
1079
- "type": "FrameScript_Object*",
1080
- "status": "statically_confirmed"
1081
- },
1082
- {
1083
- "name": "node.stringMetadata",
1084
- "offset": "0x18",
1085
- "type": "unknown",
1086
- "status": "unresolved"
1087
- }
1088
- ],
1089
- "containerDefinition": {
1090
- "kind": "chained-hash-table",
1091
- "key": "blz::basic_string<char>",
1092
- "value": "FrameScript_Object*",
1093
- "nodeBytes": 56,
1094
- "hashFunctionRva": "0x388c80",
1095
- "rehashRva": "0x697bb0"
1096
- },
1097
- "invariants": [
1098
- "bucketCount is non-zero, power-of-two, and bounded by reader maxBuckets",
1099
- "size is bounded by reader maxItems",
1100
- "buckets pointer is readable for bucketCount pointers",
1101
- "each next pointer is null or readable and cycle-detected",
1102
- "nameLength is bounded and nameData is readable for nameLength bytes",
1103
- "object pointer is null or points to readable committed memory"
1104
- ],
1105
- "updateEntry": {
1106
- "rva": "0x697930",
1107
- "role": "insert-or-find",
1108
- "status": "statically_confirmed"
1109
- },
1110
- "sourceApis": [
1111
- {
1112
- "api": "C_FrameManager.GetFrameVisibilityState",
1113
- "rva": "0x1c804a0",
1114
- "va": "0x141c804a0",
1115
- "entryHash": "442c90aa2c1528d9dcc3aa8da8e31c37057d590f25cc7cf6b8a0519069215b4a",
1116
- "sourceKind": "namespace-registration"
1117
- },
1118
- {
1119
- "api": "C_UIWidgetManager.GetAllWidgetsBySetID",
1120
- "rva": "0x1c8dba0",
1121
- "va": "0x141c8dba0",
1122
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
1123
- "sourceKind": "namespace-registration-pagination"
1124
- },
1125
- {
1126
- "api": "C_UIWidgetManager.GetBelowMinimapWidgetSetID",
1127
- "rva": "0x1c8ef40",
1128
- "va": "0x141c8ef40",
1129
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1130
- "sourceKind": "namespace-registration-pagination"
1131
- },
1132
- {
1133
- "api": "C_UIWidgetManager.GetBulletTextListWidgetVisualizationInfo",
1134
- "rva": "0x1c8f630",
1135
- "va": "0x141c8f630",
1136
- "entryHash": "be0cf6b48b42e1d92f94212de167c65b4bf2f21e3e640ef140df6350d9f530d3",
1137
- "sourceKind": "namespace-registration-pagination"
1138
- },
1139
- {
1140
- "api": "C_UIWidgetManager.GetButtonHeaderWidgetVisualizationInfo",
1141
- "rva": "0x1c90d00",
1142
- "va": "0x141c90d00",
1143
- "entryHash": "d79f72d52dbfd83af4f507df4532117717520684f4cbe08f38f8770e796e01d5",
1144
- "sourceKind": "namespace-registration-pagination"
1145
- },
1146
- {
1147
- "api": "C_UIWidgetManager.GetCaptureBarWidgetVisualizationInfo",
1148
- "rva": "0x1c923a0",
1149
- "va": "0x141c923a0",
1150
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1151
- "sourceKind": "namespace-registration-pagination"
1152
- },
1153
- {
1154
- "api": "C_UIWidgetManager.GetCaptureZoneVisualizationInfo",
1155
- "rva": "0x1c93a10",
1156
- "va": "0x141c93a10",
1157
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1158
- "sourceKind": "namespace-registration-pagination"
1159
- },
1160
- {
1161
- "api": "C_UIWidgetManager.GetDiscreteProgressStepsVisualizationInfo",
1162
- "rva": "0x1c950a0",
1163
- "va": "0x141c950a0",
1164
- "entryHash": "b86aeabdd0f1ed5b829f6bbc0ed59c6070e53b9b0ac160d0e8a4aca431e7b126",
1165
- "sourceKind": "namespace-registration-pagination"
1166
- },
1167
- {
1168
- "api": "C_UIWidgetManager.GetDoubleIconAndTextWidgetVisualizationInfo",
1169
- "rva": "0x1c966d0",
1170
- "va": "0x141c966d0",
1171
- "entryHash": "f441ecbbba6447f50a59bf8e6e8542ffa22ed6448470d94890556be6e3b0b059",
1172
- "sourceKind": "namespace-registration-pagination"
1173
- },
1174
- {
1175
- "api": "C_UIWidgetManager.GetDoubleStateIconRowVisualizationInfo",
1176
- "rva": "0x1c97e60",
1177
- "va": "0x141c97e60",
1178
- "entryHash": "b86aeabdd0f1ed5b829f6bbc0ed59c6070e53b9b0ac160d0e8a4aca431e7b126",
1179
- "sourceKind": "namespace-registration-pagination"
1180
- },
1181
- {
1182
- "api": "C_UIWidgetManager.GetDoubleStatusBarWidgetVisualizationInfo",
1183
- "rva": "0x1c994b0",
1184
- "va": "0x141c994b0",
1185
- "entryHash": "5cc344f4911f51d6bc0795745f3b945834a7cf6bf9435fa3a9fefc9b6e5c52f3",
1186
- "sourceKind": "namespace-registration-pagination"
1187
- },
1188
- {
1189
- "api": "C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo",
1190
- "rva": "0x1c9ab60",
1191
- "va": "0x141c9ab60",
1192
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1193
- "sourceKind": "namespace-registration-pagination"
1194
- },
1195
- {
1196
- "api": "C_UIWidgetManager.GetHorizontalCurrenciesWidgetVisualizationInfo",
1197
- "rva": "0x1c9c1b0",
1198
- "va": "0x141c9c1b0",
1199
- "entryHash": "be0cf6b48b42e1d92f94212de167c65b4bf2f21e3e640ef140df6350d9f530d3",
1200
- "sourceKind": "namespace-registration-pagination"
1201
- },
1202
- {
1203
- "api": "C_UIWidgetManager.GetIconAndTextWidgetVisualizationInfo",
1204
- "rva": "0x1c9d810",
1205
- "va": "0x141c9d810",
1206
- "entryHash": "acbe0be8c4aa52818aae98cce786d093bcca6344de946f434c3c24d4edb5bc4c",
1207
- "sourceKind": "namespace-registration-pagination"
1208
- },
1209
- {
1210
- "api": "C_UIWidgetManager.GetIconTextAndBackgroundWidgetVisualizationInfo",
1211
- "rva": "0x1c9ee90",
1212
- "va": "0x141c9ee90",
1213
- "entryHash": "c2276d2d57122e1b4a4b46aadd73a052c08b9b23c9cf5aea3ed16126db10c896",
1214
- "sourceKind": "namespace-registration-pagination"
1215
- },
1216
- {
1217
- "api": "C_UIWidgetManager.GetIconTextAndCurrenciesWidgetVisualizationInfo",
1218
- "rva": "0x1ca04f0",
1219
- "va": "0x141ca04f0",
1220
- "entryHash": "b2a5c93327436b714e678cecda435010a315e5629d0f691b3d1a1b94eeca7b57",
1221
- "sourceKind": "namespace-registration-pagination"
1222
- },
1223
- {
1224
- "api": "C_UIWidgetManager.GetItemDisplayVisualizationInfo",
1225
- "rva": "0x1ca1bc0",
1226
- "va": "0x141ca1bc0",
1227
- "entryHash": "295e6be80290da266fb8f81ba77894ca61ccfe7ac8691f339f33a26f8eb6f762",
1228
- "sourceKind": "namespace-registration-pagination"
1229
- },
1230
- {
1231
- "api": "C_UIWidgetManager.GetMapPinAnimationWidgetVisualizationInfo",
1232
- "rva": "0x1ca3400",
1233
- "va": "0x141ca3400",
1234
- "entryHash": "abf2a7c875cbc55aaba5bd7eae08343bafd4fabc9512ee45ec0b1fb49bb7700a",
1235
- "sourceKind": "namespace-registration-pagination"
1236
- },
1237
- {
1238
- "api": "C_UIWidgetManager.GetObjectiveTrackerWidgetSetID",
1239
- "rva": "0x1ca4890",
1240
- "va": "0x141ca4890",
1241
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1242
- "sourceKind": "namespace-registration-pagination"
1243
- },
1244
- {
1245
- "api": "C_UIWidgetManager.GetPowerBarWidgetSetID",
1246
- "rva": "0x1ca4f60",
1247
- "va": "0x141ca4f60",
1248
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1249
- "sourceKind": "namespace-registration-pagination"
1250
- }
1251
- ],
1252
- "sourceApiRelationship": "semantic anchors only; direct wrapper-to-root relationship remains unresolved",
1253
- "staticEvidence": [
1254
- {
1255
- "kind": "ida-decompilation",
1256
- "va": "0x140697930",
1257
- "rva": "0x697930",
1258
- "excerpt": "global bucket pointer/count/size/load-factor; allocates 0x38-byte name -> FrameScript_Object node",
1259
- "query": "mcp__idalib__analyze_batch(0x140697930)"
1260
- },
1261
- {
1262
- "context": "<struct blz::rb_node<struct blz::pair<enum MOUSEBUTTON const ,class blz::embedded_vector<class CScriptRegion *,2,class blz::allocator<class CScriptRegion *> > > >>(void)",
1263
- "rva": "0x4f941a5",
1264
- "va": "0x144f941a5",
1265
- "section": ".rdata"
1266
- },
1267
- {
1268
- "context": "USEBUTTON const ,class blz::embedded_vector<class CScriptRegion *,2,class blz::allocator<class CScriptRegion *> > > >>(void)",
1269
- "rva": "0x4f941d2",
1270
- "va": "0x144f941d2",
1271
- "section": ".rdata"
1272
- },
1273
- {
1274
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class CScriptRegion const * const,int> >>(void)",
1275
- "rva": "0x4f9438c",
1276
- "va": "0x144f9438c",
1277
- "section": ".rdata"
1278
- },
1279
- {
1280
- "context": "const char *__cdecl WowGetRawTypeName<class CScriptRegion*>(void)",
1281
- "rva": "0x4f9463d",
1282
- "va": "0x144f9463d",
1283
- "section": ".rdata"
1284
- },
1285
- {
1286
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class CScriptRegion const * const,int> >*>(void)",
1287
- "rva": "0x4f9479c",
1288
- "va": "0x144f9479c",
1289
- "section": ".rdata"
1290
- },
1291
- {
1292
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::pair<class CScriptRegion *,enum MOUSEBUTTON>>(void)",
1293
- "rva": "0x4f949ee",
1294
- "va": "0x144f949ee",
1295
- "section": ".rdata"
1296
- },
1297
- {
1298
- "context": "FrameScript_Object",
1299
- "rva": "0x4f95fbd",
1300
- "va": "0x144f95fbd",
1301
- "section": ".rdata"
1302
- },
1303
- {
1304
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
1305
- "rva": "0x4f9bf57",
1306
- "va": "0x144f9bf57",
1307
- "section": ".rdata"
1308
- },
1309
- {
1310
- "context": "FrameScript_Object",
1311
- "rva": "0x4f95fb8",
1312
- "va": "0x144f95fb8",
1313
- "section": ".rdata"
1314
- },
1315
- {
1316
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
1317
- "rva": "0x4f9bf52",
1318
- "va": "0x144f9bf52",
1319
- "section": ".rdata"
1320
- }
1321
- ],
1322
- "readerStatus": "partial",
1323
- "unresolvedReason": "The root and node fields are static-only; object vtable/type identity and live container invariants have not been checked.",
1324
- "nextAction": "Validate globals live, enumerate a bounded sample, and cross-check names against visible frames or an independent FrameScript native path."
1325
- },
1326
- {
1327
- "dataSourceId": "ds-model-scene-anchor",
1328
- "buildKey": "retail@12.0.7.68974",
1329
- "module": "Wow.exe",
1330
- "systemIds": [
1331
- "model-scene"
1332
- ],
1333
- "classification": "live-entry-validated-api-anchor-without-data-root",
1334
- "status": "unresolved",
1335
- "getterRva": null,
1336
- "getterVa": null,
1337
- "globalPointerRva": null,
1338
- "pointerChain": [],
1339
- "structureSize": null,
1340
- "fields": [],
1341
- "containerDefinition": null,
1342
- "invariants": [],
1343
- "updateEntry": {
1344
- "rva": null,
1345
- "status": "unresolved"
1346
- },
1347
- "sourceApis": [
1348
- {
1349
- "api": "C_ModelInfo.AddActiveModelScene",
1350
- "rva": "0xb421d0",
1351
- "va": "0x140b421d0",
1352
- "entryHash": "0dffd6a9f326306d8a69d1490bdc22513853fb843e7289d459ea2bfadcb0ee3b",
1353
- "sourceKind": "namespace-registration-pagination"
1354
- },
1355
- {
1356
- "api": "C_ModelInfo.AddActiveModelSceneActor",
1357
- "rva": "0xb42860",
1358
- "va": "0x140b42860",
1359
- "entryHash": "33c3c1399bb8f9988ee96b0901ab2452f1d17037738276f103c946a520e2ecd9",
1360
- "sourceKind": "namespace-registration-pagination"
1361
- },
1362
- {
1363
- "api": "C_ModelInfo.ClearActiveModelScene",
1364
- "rva": "0xb42f50",
1365
- "va": "0x140b42f50",
1366
- "entryHash": "506f4dfbd96df5784b35f487bd4e9263062ff63914613e0723e567f69bc46205",
1367
- "sourceKind": "namespace-registration-pagination"
1368
- },
1369
- {
1370
- "api": "C_ModelInfo.ClearActiveModelSceneActor",
1371
- "rva": "0xb435b0",
1372
- "va": "0x140b435b0",
1373
- "entryHash": "43db5d20b08153c4fab3f686a94eaea69ae1185c2db60c06df21743bb4f9591a",
1374
- "sourceKind": "namespace-registration-pagination"
1375
- },
1376
- {
1377
- "api": "C_ModelInfo.GetModelSceneActorDisplayInfoByID",
1378
- "rva": "0xb43c10",
1379
- "va": "0x140b43c10",
1380
- "entryHash": "85c79f31dd8d59bcc24735ac85419721f424e6c35ccfe6d2a0072f6a1866ee1c",
1381
- "sourceKind": "namespace-registration-pagination"
1382
- },
1383
- {
1384
- "api": "C_ModelInfo.GetModelSceneActorInfoByID",
1385
- "rva": "0xb45780",
1386
- "va": "0x140b45780",
1387
- "entryHash": "e9c2587be3882d955ce427962c740ca06bda457265944f41e286bfff6555a6a1",
1388
- "sourceKind": "namespace-registration-pagination"
1389
- },
1390
- {
1391
- "api": "C_ModelInfo.GetModelSceneCameraInfoByID",
1392
- "rva": "0xb47110",
1393
- "va": "0x140b47110",
1394
- "entryHash": "868a8dae09d06b18e1d524520fa718266a734e202fc07cfaf2ad1e755127bacb",
1395
- "sourceKind": "namespace-registration-pagination"
1396
- },
1397
- {
1398
- "api": "C_ModelInfo.GetModelSceneInfoByID",
1399
- "rva": "0xb48010",
1400
- "va": "0x140b48010",
1401
- "entryHash": "3dac48b4e31117c3694a44f71fe03b8512c41e3292eebe3a24e439617c8debcb",
1402
- "sourceKind": "namespace-registration-pagination"
1403
- }
1404
- ],
1405
- "sourceApiCount": 8,
1406
- "staticEvidence": [],
1407
- "readerStatus": "unresolved",
1408
- "unresolvedReason": "Five ModelInfo wrapper entries were live byte-validated, but the active-scene manager/root was not traced.",
1409
- "nextAction": "Observe active scene operations and trace one selected wrapper to its manager and actor container."
1410
- },
1411
- {
1412
- "dataSourceId": "ds-network-update-anchor",
1413
- "buildKey": "retail@12.0.7.68974",
1414
- "module": "Wow.exe",
1415
- "systemIds": [
1416
- "network-update-landing"
1417
- ],
1418
- "classification": "runtime-module-and-export-anchor-without-landing-path",
1419
- "status": "unresolved",
1420
- "getterRva": null,
1421
- "getterVa": null,
1422
- "globalPointerRva": null,
1423
- "pointerChain": [],
1424
- "structureSize": null,
1425
- "fields": [],
1426
- "containerDefinition": null,
1427
- "invariants": [],
1428
- "updateEntry": {
1429
- "rva": null,
1430
- "status": "unresolved"
1431
- },
1432
- "sourceApis": [],
1433
- "sourceApiCount": 0,
1434
- "staticEvidence": [
1435
- {
1436
- "kind": "PE-export-anchor",
1437
- "name": "GetIpNetEntry2",
1438
- "rva": "0x2cf130",
1439
- "va": "0x1402cf130",
1440
- "scope": "network capability anchor only; not a WoW update landing path"
1441
- },
1442
- {
1443
- "kind": "PE-export-anchor",
1444
- "name": "ResolveIpNetEntry2",
1445
- "rva": "0x2cf300",
1446
- "va": "0x1402cf300",
1447
- "scope": "network capability anchor only; not a WoW update landing path"
1448
- }
1449
- ],
1450
- "readerStatus": "unresolved",
1451
- "unresolvedReason": "Networking modules/exports are observed, but no packet/update path to a manager or cache is established.",
1452
- "nextAction": "Start from a semantic manager update entry, trace backward to a bounded dispatch path, and avoid process-wide Stalker."
1453
- },
1454
- {
1455
- "dataSourceId": "ds-player-info-anchor",
1456
- "buildKey": "retail@12.0.7.68974",
1457
- "module": "Wow.exe",
1458
- "systemIds": [
1459
- "player",
1460
- "unit",
1461
- "guid"
1462
- ],
1463
- "classification": "live-entry-validated-api-anchor-without-data-root",
1464
- "status": "unresolved",
1465
- "getterRva": null,
1466
- "getterVa": null,
1467
- "globalPointerRva": null,
1468
- "pointerChain": [],
1469
- "structureSize": null,
1470
- "fields": [],
1471
- "containerDefinition": null,
1472
- "invariants": [],
1473
- "updateEntry": {
1474
- "rva": null,
1475
- "status": "unresolved"
1476
- },
1477
- "sourceApis": [
1478
- {
1479
- "api": "C_PlayerInfo.CanPlayerEnterChromieTime",
1480
- "rva": "0x17beae0",
1481
- "va": "0x1417beae0",
1482
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1483
- "sourceKind": "namespace-registration"
1484
- },
1485
- {
1486
- "api": "C_PlayerInfo.CanPlayerUseAreaLoot",
1487
- "rva": "0x17bf1d0",
1488
- "va": "0x1417bf1d0",
1489
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1490
- "sourceKind": "namespace-registration"
1491
- },
1492
- {
1493
- "api": "C_PlayerInfo.CanPlayerUseMountEquipment",
1494
- "rva": "0x17bf8d0",
1495
- "va": "0x1417bf8d0",
1496
- "entryHash": "ea65f2bbddc1b26162c412d5221ccc412508d9a81f33073b3c0b791e446db9e6",
1497
- "sourceKind": "namespace-registration"
1498
- },
1499
- {
1500
- "api": "C_PlayerInfo.CanUseItem",
1501
- "rva": "0x17c0c60",
1502
- "va": "0x1417c0c60",
1503
- "entryHash": "bb4f8502496205cf25998ee0f3097b5f498c80b8819d12b379f53e139f195c93",
1504
- "sourceKind": "namespace-registration"
1505
- },
1506
- {
1507
- "api": "C_PlayerInfo.GetAlternateFormInfo",
1508
- "rva": "0x17c1380",
1509
- "va": "0x1417c1380",
1510
- "entryHash": "041fd06bb926a77489b48cc475cd8d6cfb078693f25341c4bec6a31390570efd",
1511
- "sourceKind": "namespace-registration"
1512
- },
1513
- {
1514
- "api": "C_PlayerInfo.GetClass",
1515
- "rva": "0x17d7fd0",
1516
- "va": "0x1417d7fd0",
1517
- "entryHash": "05ae018408f0bb6820e38bcf5eabd4d9e79df05fe34a9642b8dbbd5c79ed642a",
1518
- "sourceKind": "namespace-registration-pagination"
1519
- },
1520
- {
1521
- "api": "C_PlayerInfo.GetContentDifficultyCreatureForPlayer",
1522
- "rva": "0x17c1a60",
1523
- "va": "0x1417c1a60",
1524
- "entryHash": "bc54a92181db78a30c1a5eb83aa9652f8cd19a7a59bdf50b12c1d584c2b20675",
1525
- "sourceKind": "namespace-registration"
1526
- },
1527
- {
1528
- "api": "C_PlayerInfo.GetContentDifficultyQuestForPlayer",
1529
- "rva": "0x17c21d0",
1530
- "va": "0x1417c21d0",
1531
- "entryHash": "c1b77bd826fada62479266168304b2b35b03c8bdabfcc5fa0b1ed63a009a59e0",
1532
- "sourceKind": "namespace-registration"
1533
- },
1534
- {
1535
- "api": "C_PlayerInfo.GetDisplayID",
1536
- "rva": "0x17c28b0",
1537
- "va": "0x1417c28b0",
1538
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1539
- "sourceKind": "namespace-registration"
1540
- },
1541
- {
1542
- "api": "C_PlayerInfo.GetGlidingInfo",
1543
- "rva": "0x17c2fb0",
1544
- "va": "0x1417c2fb0",
1545
- "entryHash": "3eab53b223be96bae4d2a51903857c38478d786aa21992e4bf195771c03d0bbe",
1546
- "sourceKind": "namespace-registration"
1547
- },
1548
- {
1549
- "api": "C_PlayerInfo.GetInstancesUnlockedAtLevel",
1550
- "rva": "0x17c36c0",
1551
- "va": "0x1417c36c0",
1552
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
1553
- "sourceKind": "namespace-registration"
1554
- },
1555
- {
1556
- "api": "C_PlayerInfo.GetName",
1557
- "rva": "0x17d8830",
1558
- "va": "0x1417d8830",
1559
- "entryHash": "6357ba30d34ac74483c33ed91fa71ef6643cb79187dfeb604513de23394b5f72",
1560
- "sourceKind": "namespace-registration-wrapper"
1561
- },
1562
- {
1563
- "api": "C_PlayerInfo.GetNativeDisplayID",
1564
- "rva": "0x17c5070",
1565
- "va": "0x1417c5070",
1566
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1567
- "sourceKind": "namespace-registration"
1568
- },
1569
- {
1570
- "api": "C_PlayerInfo.GetPetStableCreatureDisplayInfoID",
1571
- "rva": "0x17c5740",
1572
- "va": "0x1417c5740",
1573
- "entryHash": "f84016c0104d6cfa07ad0534a1ccff1975e3b1120ec16e36af3a2648b1aa5165",
1574
- "sourceKind": "namespace-registration"
1575
- },
1576
- {
1577
- "api": "C_PlayerInfo.GetPlayerCharacterData",
1578
- "rva": "0x17c5ea0",
1579
- "va": "0x1417c5ea0",
1580
- "entryHash": "9df5a9b6670a65bbf42950a44a8ae016e2e0fc7627632cd554cb28802f5baf81",
1581
- "sourceKind": "namespace-registration"
1582
- },
1583
- {
1584
- "api": "C_PlayerInfo.GetPlayerMythicPlusRatingSummary",
1585
- "rva": "0x17c7790",
1586
- "va": "0x1417c7790",
1587
- "entryHash": "908cdd7ad33412c8c5cadbeb02c3f79c5be0aa249b0da2d57c535ae31474bec3",
1588
- "sourceKind": "namespace-registration"
1589
- },
1590
- {
1591
- "api": "C_PlayerInfo.GetRace",
1592
- "rva": "0x17d9e40",
1593
- "va": "0x1417d9e40",
1594
- "entryHash": "0f3c675a64129cb1a16cd835637621d9ca722a50c86fe11f6052fea54c29715f",
1595
- "sourceKind": "namespace-registration-wrapper"
1596
- },
1597
- {
1598
- "api": "C_PlayerInfo.GetSex",
1599
- "rva": "0x17da500",
1600
- "va": "0x1417da500",
1601
- "entryHash": "f48b7af0d039da4856df57ae7b66aa8d5988baec89b65981b538757173741a57",
1602
- "sourceKind": "namespace-registration-wrapper"
1603
- },
1604
- {
1605
- "api": "C_PlayerInfo.GUIDIsPlayer",
1606
- "rva": "0x17d78f0",
1607
- "va": "0x1417d78f0",
1608
- "entryHash": "83f375f5bc1d44be5ac5d08e3a4dcd44ffb493846cc21fc9df4f4435aea37330",
1609
- "sourceKind": "namespace-registration-pagination"
1610
- },
1611
- {
1612
- "api": "C_PlayerInfo.HasAccountInventoryLock",
1613
- "rva": "0x17c91f0",
1614
- "va": "0x1417c91f0",
1615
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1616
- "sourceKind": "namespace-registration"
1617
- }
1618
- ],
1619
- "sourceApiCount": 39,
1620
- "staticEvidence": [
1621
- {
1622
- "context": "PlayerConditionEvaluation",
1623
- "rva": "0x4f2f89a",
1624
- "va": "0x144f2f89a",
1625
- "section": ".rdata"
1626
- }
1627
- ],
1628
- "readerStatus": "unresolved",
1629
- "unresolvedReason": "Five wrappers have ABI/static and live entry-byte evidence, but no manager/global/container root is established.",
1630
- "nextAction": "Trace the five natural callbacks and follow the confirmed business helper chain to a validated object identity/root."
1631
- }
1632
- ]
1633
- }