Files
BFM-decomp/docs/struct-map.md
T

16 KiB

The struct map — the types the fleet's cast sites need (Phase 37 T1)

Generated by tools/type_census.py at 23fc5d215 (2026-09-12T05:44:31Z); never typed (R75). Every raw pointer-cast dereference in src/ was assigned to a base (a parameter, a local, a global by value or by address, an absolute address) and the bases were clustered by EVIDENCE only — the same global symbol, an argument passed to a callee's parameter, an assignment or return, a pointer field read, a shared body's fleet-wide identity — never by a similar offset signature. Each cluster is one type the tree needs. Names are placeholders (Unkstruct_<addr>: the lowest global instance's address, else the lowest member function's); fields are placeholders (unk<HEX>) until Phase 38 cites evidence.

18760 types explain 498896 of 503016 dereference sites (99.2 %); 4120 sites have a base the census could not classify; 729 types carry a width conflict. Merges by evidence: param 36550, assign 14717, arg 10176, field 9623, ret-of 3410, return 1523, assign& 1051, arg& 270.

# type sites bodies fields size ≥ width conflicts (+sign mixes) instance globals pointer globals
1 Unkstruct_800B5CB8 107598 11186 134 0x10c 50 (+55 sign) D_800B5CB8, D_800D3888, D_80181448, D_80181538… D_8006386C, D_80074778, D_80074780, D_80074784…
2 Unkstruct_80126B58 65397 17047 175 0x24c 50 (+60 sign) D_80126B58 D_80126B58
3 Unkstruct_8018E71C 6745 396 7 0x10 0 (+0 sign) D_8018E71C
4 Unkstruct_dac960ce 4464 124 13 0x24c 0 (+2 sign)
5 Unkstruct_0caecd54 4340 124 23 0xfe 0 (+1 sign)
6 Unkstruct_f8ed2b9f 4061 4061 1 0x217 0 (+0 sign)
7 Unkstruct_a32b99a1 3936 123 8 0x4b 0 (+1 sign)
8 Unkstruct_8e3dbe51 3930 131 5 0x4c 0 (+1 sign)
9 Unkstruct_8014A1B0 3778 542 13 0xfe 0 (+1 sign)
10 Unkstruct_80128EA8 3311 632 18 0x38 0 (+13 sign)
11 Unkstruct_ade2e8a0 3271 196 26 0xa4 3 (+9 sign)
12 Unkstruct_1fa9e810 3144 131 3 0x49 0 (+0 sign)
13 Unkstruct_30b21035 3100 124 13 0x54 0 (+0 sign)
14 Unkstruct_80126948 2986 832 34 0xa4 0 (+10 sign) D_80126948, D_80126E60 D_80114EE8, D_801151D4, D_80126948, D_80126E60…
15 Unkstruct_adc0bee4 2646 126 8 0x34 0 (+3 sign)
16 Unkstruct_198fc7cc 2580 129 16 0x38 3 (+1 sign)
17 Unkstruct_801439FC 2489 981 57 0x10c 9 (+22 sign)
18 Unkstruct_80130D48 2382 587 25 0x64 6 (+3 sign) D_80072C84, D_80078E78
19 Unkstruct_ed8f1335 2356 124 18 0x24 0 (+0 sign)
20 Unkstruct_8016B4F8 2140 535 5 0x30 0 (+0 sign)
21 Unkstruct_80139C7C 2111 265 14 0x44 0 (+3 sign)
22 Unkstruct_b047cdf2 2108 124 6 0x20 0 (+0 sign)
23 Unkstruct_2729e670 2091 123 6 0x4b 0 (+0 sign)
24 Unkstruct_dd542e54 2016 126 7 0x18 0 (+0 sign)
25 Unkstruct_f49880fd 2000 125 6 0x54 0 (+1 sign)
26 Unkstruct_a8d34bce 1948 1948 1 0x215 0 (+0 sign)
27 Unkstruct_568f7bda 1875 125 9 0x38 0 (+0 sign)
28 Unkstruct_8016DF5C 1791 131 9 0x38 0 (+3 sign)
29 Unkstruct_f1f49381 1764 126 10 0x38 0 (+0 sign)
30 Unkstruct_8011F7A8 1746 271 7 0x11e 0 (+0 sign) D_8011F7A8
31 Unkstruct_84612d18 1722 123 8 0x4b 0 (+0 sign)
32 Unkstruct_57db4d07 1664 128 13 0x0 13 (+0 sign)
33 Unkstruct_4692fc17 1612 124 4 0x1e 0 (+3 sign)
34 Unkstruct_eda88e53 1596 133 6 0x54 6 (+0 sign)
35 Unkstruct_8012D3B4 1588 183 23 0x24 16 (+9 sign) D_80074808, D_800A5E60
36 Unkstruct_4e09b6d9 1572 131 9 0x32 0 (+1 sign)
37 Unkstruct_23e45db5 1512 126 11 0x16 0 (+0 sign)
38 Unkstruct_47470ce3 1488 124 6 0x1e 0 (+0 sign)
39 Unkstruct_b5c0372a 1441 131 9 0x58 0 (+0 sign)
40 Unkstruct_0980b9f0 1441 131 4 0x49 0 (+0 sign)
41 Unkstruct_ba6e2e9f 1439 1439 1 0x4 0 (+0 sign)
42 Unkstruct_a68f6d03 1364 124 9 0x14 0 (+0 sign)
43 Unkstruct_8fdd92d1 1300 130 4 0x24 2 (+0 sign)
44 Unkstruct_110cf29e 1250 125 7 0x2c 0 (+0 sign)
45 Unkstruct_4db8cec8 1240 124 8 0x36 0 (+0 sign)
46 Unkstruct_f0bc3b7a 1240 124 7 0x100 0 (+0 sign)
47 Unkstruct_297e7547 1240 124 10 0x58 0 (+0 sign)
48 Unkstruct_dd59c999 1240 124 6 0x38 0 (+2 sign)
49 Unkstruct_919ca3ea 1230 123 6 0x10 0 (+0 sign)
50 Unkstruct_a459e3e5 1220 122 6 0x34 0 (+0 sign)
51 Unkstruct_8014CA00 1219 407 4 0x2e 0 (+3 sign)
52 Unkstruct_74787850 1206 1073 1 0x2 0 (+1 sign) D_801152A8
53 Unkstruct_f9a7989e 1179 131 3 0x36 0 (+1 sign)
54 Unkstruct_0b30043d 1128 376 3 0x5e 0 (+0 sign)
55 Unkstruct_301381d4 1116 124 3 0x36 0 (+1 sign)
56 Unkstruct_0ced46e2 1116 124 5 0xfe 0 (+0 sign)
57 Unkstruct_f153f338 1107 123 5 0x34 0 (+0 sign)
58 Unkstruct_50a3f6b4 1040 130 3 0x36 0 (+0 sign)
59 Unkstruct_800B9A02 992 434 1 0x2 0 (+0 sign) D_800B9A02
60 Unkstruct_f74e3af7 992 124 5 0xfe 0 (+0 sign)
61 Unkstruct_6b138cb0 931 133 7 0x20 1 (+0 sign)
62 Unkstruct_b774eeeb 917 131 4 0x41 0 (+0 sign)
63 Unkstruct_6d856e9d 917 131 5 0x1e 3 (+1 sign)
64 Unkstruct_d0c6cce6 917 131 4 0x38 0 (+0 sign)
65 Unkstruct_859b4fab 910 130 4 0xb0 0 (+0 sign)
66 Unkstruct_801463A0 907 210 13 0x54 0 (+1 sign) D_80126B78
67 Unkstruct_6d3f3f5d 889 127 6 0x38 0 (+0 sign)
68 Unkstruct_1e86c313 882 126 4 0x8 0 (+0 sign)
69 Unkstruct_a41ec127 882 126 6 0x38 0 (+0 sign)
70 Unkstruct_3f697924 875 125 5 0x38 0 (+0 sign)
71 Unkstruct_e505dcd3 868 124 4 0x8 0 (+0 sign)
72 Unkstruct_fe02110c 868 124 3 0x10 0 (+2 sign)
73 Unkstruct_92677d11 861 123 5 0x240 0 (+0 sign)
74 Unkstruct_86465c2c 861 123 7 0x20 0 (+0 sign)
75 Unkstruct_ffd2397c 854 122 5 0x34 0 (+0 sign)
76 Unkstruct_17738e2c 821 30 32 0xa4 12 (+5 sign)
77 Unkstruct_801270C0 821 820 1 0x2 0 (+0 sign) D_801270C0
78 Unkstruct_2932a0a7 798 133 6 0x12 5 (+0 sign)
79 Unkstruct_0a8f505b 790 83 14 0x10c 0 (+5 sign)
80 Unkstruct_12f4cee2 786 131 5 0x28 0 (+0 sign)
81 Unkstruct_d2490774 786 131 3 0xb0 0 (+0 sign)
82 Unkstruct_80135260 780 130 3 0x54 0 (+0 sign)
83 Unkstruct_b196f9c0 768 128 5 0x14 1 (+0 sign)
84 Unkstruct_36c327cf 762 127 2 0x18 0 (+0 sign)
85 Unkstruct_6cd0e445 756 126 2 0x10 0 (+0 sign)
86 Unkstruct_c0b9c5d5 750 125 6 0x10 0 (+0 sign)
87 Unkstruct_64375b18 744 124 5 0xa0 0 (+0 sign)
88 Unkstruct_438adcd1 744 124 5 0x14 0 (+0 sign)
89 Unkstruct_97b6f459 744 124 5 0x28 0 (+0 sign)
90 Unkstruct_38975874 744 124 4 0x84 0 (+0 sign)
91 Unkstruct_76b1caf3 744 124 2 0x3 0 (+0 sign)
92 Unkstruct_8016BBE0 690 139 9 0x38 0 (+0 sign)
93 Unkstruct_80146A6C 680 137 7 0x2c 0 (+0 sign)
94 Unkstruct_800AF630 671 537 3 0xa3dc 0 (+0 sign) D_800AF630
95 Unkstruct_8012C284 668 533 1 0x2 0 (+1 sign) D_80126720
96 Unkstruct_80115128 667 534 1 0x2 0 (+0 sign) D_80115128
97 Unkstruct_3271c3cc 665 133 3 0x5e 0 (+0 sign)
98 Unkstruct_61789347 665 133 0 0x0 0 (+0 sign)
99 Unkstruct_05fa9429 665 133 0 0x0 0 (+0 sign)
100 Unkstruct_801345F8 665 133 0 0x0 0 (+0 sign)
101 Unkstruct_801345F8 665 133 0 0x0 0 (+0 sign)
102 Unkstruct_801152A0 665 399 1 0x2 0 (+0 sign) D_801152A0
103 Unkstruct_89230a8b 665 133 5 0x1c 0 (+0 sign)
104 Unkstruct_fdd04bae 650 130 3 0x38 0 (+0 sign)
105 Unkstruct_eb8b6fbf 645 129 5 0xfe 0 (+0 sign)
106 Unkstruct_90d0825c 645 129 5 0x1c 1 (+0 sign)
107 Unkstruct_27c177f1 645 129 4 0x34 0 (+0 sign)
108 Unkstruct_4f9f60b8 630 126 4 0x78 0 (+0 sign)
109 Unkstruct_7a31a22f 630 126 2 0x19c 0 (+0 sign)
110 Unkstruct_187abeff 630 126 5 0x68 0 (+0 sign)
111 Unkstruct_dafba7ce 630 126 4 0x20 0 (+0 sign)
112 Unkstruct_20d4328b 630 126 4 0x38 0 (+0 sign)
113 Unkstruct_d94ab931 625 125 4 0x6 2 (+1 sign)
114 Unkstruct_7ef9c9ef 625 125 4 0x6 2 (+1 sign)
115 Unkstruct_8ce68494 625 125 2 0x1a 0 (+0 sign)
116 Unkstruct_57ae03d1 620 124 2 0x2c 0 (+0 sign)
117 Unkstruct_af1e9d57 620 248 4 0x64 0 (+0 sign)
118 Unkstruct_172cbd29 620 124 2 0x1fc 0 (+0 sign)
119 Unkstruct_2c2c1d2e 620 124 4 0x24 0 (+0 sign)
120 Unkstruct_aaf4c4dd 615 615 1 0x16 0 (+0 sign)
121 Unkstruct_293d71dc 600 75 0 0x0 0 (+0 sign)
122 Unkstruct_78eaa73c 553 7 15 0x10a 0 (+7 sign)
123 Unkstruct_8011512E 532 133 1 0x2 0 (+0 sign) D_8011512E
124 Unkstruct_8016BFA8 532 133 4 0x24 0 (+0 sign)
125 Unkstruct_30befa8c 520 130 3 0xfe 0 (+0 sign)
126 Unkstruct_00ddc7c9 520 130 1 0x2 1 (+0 sign)
127 Unkstruct_01082f7a 520 520 1 0x4 0 (+0 sign)
128 Unkstruct_db0ee441 516 129 4 0x38 0 (+0 sign)
129 Unkstruct_7476116e 516 129 1 0x4 0 (+0 sign)
130 Unkstruct_290ce261 504 126 3 0xfe 0 (+0 sign)
131 Unkstruct_d6100faa 504 126 3 0x20 0 (+0 sign)
132 Unkstruct_5ebcbddc 504 126 3 0xe 0 (+0 sign)
133 Unkstruct_7cb40b10 500 500 1 0x4 0 (+0 sign)
134 Unkstruct_4e078af8 496 124 2 0x4 0 (+2 sign)
135 Unkstruct_494cef68 496 124 2 0x188 0 (+0 sign)
136 Unkstruct_93df0322 496 124 4 0x38 0 (+0 sign)
137 Unkstruct_3b2b6e45 496 124 4 0x38 0 (+0 sign)
138 Unkstruct_31283f15 492 123 3 0x6 0 (+0 sign)
139 Unkstruct_a05973fa 492 123 3 0x2c 0 (+0 sign)
140 Unkstruct_48c11385 441 21 5 0x68 0 (+0 sign)
141 Unkstruct_a55a221e 428 428 1 0x215 0 (+0 sign)
142 Unkstruct_02864986 420 420 1 0x2 0 (+1 sign) D_80115158
143 Unkstruct_80131B14 404 383 5 0x32 0 (+0 sign)
144 Unkstruct_8011511A 404 146 1 0x2 0 (+1 sign) D_8011511A
145 Unkstruct_8016B5C0 399 133 2 0x1c 0 (+0 sign)
146 Unkstruct_8016BFA8 399 133 3 0x6 0 (+0 sign)
147 Unkstruct_8011F7F0 399 133 3 0x42 0 (+0 sign) D_8011F7F0
148 Unkstruct_2552224c 393 131 3 0x10 0 (+0 sign)
149 Unkstruct_1649b9a7 392 28 8 0x38 0 (+2 sign)
150 Unkstruct_ea5ed765 390 130 1 0xdb 0 (+0 sign)
151 Unkstruct_80135260 390 130 3 0x6 0 (+0 sign)
152 Unkstruct_a472a6ba 387 129 3 0x1c 0 (+0 sign)
153 Unkstruct_630777a3 387 258 2 0x5 0 (+0 sign)
154 Unkstruct_f2440762 384 128 1 0x4 0 (+0 sign)
155 Unkstruct_80164BDC 384 128 5 0x64 0 (+1 sign)
156 Unkstruct_8c2ab96e 384 128 3 0x8 0 (+0 sign)
157 Unkstruct_d448adea 384 48 0 0x0 0 (+0 sign)
158 Unkstruct_e79a0730 378 126 2 0x24 0 (+0 sign)
159 Unkstruct_1a8e907f 378 126 1 0x4 0 (+0 sign)
160 Unkstruct_e1c73ac0 378 126 3 0x6 0 (+0 sign)
161 Unkstruct_8ba4da0a 378 126 3 0x1c 0 (+0 sign)
162 Unkstruct_93e44aed 378 126 2 0x1c 0 (+0 sign)
163 Unkstruct_24687968 378 126 3 0xe 0 (+0 sign)
164 Unkstruct_89684c99 375 125 3 0x6 0 (+0 sign)
165 Unkstruct_831a2d3a 375 125 2 0x24 0 (+0 sign)
166 Unkstruct_89f82b52 372 124 3 0x1ca 0 (+0 sign)
167 Unkstruct_924d03d6 372 124 3 0x6 0 (+0 sign)
168 Unkstruct_7fd6458b 372 124 1 0x40 0 (+0 sign)
169 Unkstruct_92a372de 372 124 2 0x24 0 (+0 sign)
170 Unkstruct_4a31f01c 372 124 3 0x1c 0 (+0 sign)
171 Unkstruct_39de3511 372 124 3 0x12 0 (+0 sign)
172 Unkstruct_1b4331f0 369 123 3 0x5e 0 (+0 sign)
173 Unkstruct_75e9a6af 369 123 3 0x10 0 (+0 sign)
174 Unkstruct_b39064df 366 14 24 0xa2 3 (+3 sign)
175 Unkstruct_5c635b4b 364 14 13 0x34 0 (+0 sign)
176 Unkstruct_800AE620 325 322 0 0x0 0 (+0 sign) D_800AE620
177 Unkstruct_814e4d87 300 75 0 0x0 0 (+0 sign)
178 Unkstruct_09b02bee 300 75 2 0x4 0 (+0 sign)
179 Unkstruct_1ef3b11b 280 10 7 0x10c 0 (+1 sign)
180 Unkstruct_80115188 274 270 1 0x4 0 (+0 sign) D_80115188
181 Unkstruct_80129CF8 273 90 33 0xa435 0 (+5 sign) D_800AF630
182 Unkstruct_a2d6c72b 273 21 4 0x100 0 (+0 sign)
183 Unkstruct_80078EB4 270 137 1 0x2 0 (+0 sign) D_80078EB4
184 Unkstruct_80115118 268 265 1 0x2 0 (+1 sign) D_80115118
185 Unkstruct_801152B0 268 268 0 0x0 0 (+0 sign) D_801152B0
186 Unkstruct_801269F4 267 134 1 0x2 0 (+0 sign) D_801269F4
187 Unkstruct_8012C1DC 267 134 3 0x1c 0 (+0 sign)
188 Unkstruct_8011515C 267 267 1 0x2 0 (+1 sign) D_8011515C
189 Unkstruct_640f8122 266 133 1 0x2e 0 (+0 sign)
190 Unkstruct_02495693 266 133 2 0x1e 0 (+0 sign)
191 Unkstruct_3f149285 266 133 1 0x2 0 (+0 sign)
192 Unkstruct_a310cf42 266 133 1 0x4 0 (+0 sign)
193 Unkstruct_80115124 266 266 1 0x2 0 (+0 sign) D_80115124
194 Unkstruct_800D4BE0 266 133 1 0x4 0 (+0 sign) D_800D4BE0
195 Unkstruct_800D4F8C 266 133 1 0x4 0 (+0 sign) D_800D4F8C
196 Unkstruct_8016BFA8 266 133 0 0x0 0 (+0 sign)
197 Unkstruct_8016BFA8 266 133 0 0x0 0 (+0 sign)
198 Unkstruct_80176734 266 133 1 0x2c 0 (+0 sign) D_8011F7B0
199 Unkstruct_80126B62 265 252 2 0xe 0 (+1 sign) D_80126B62
200 Unkstruct_76f4299b 262 131 1 0x4a 0 (+0 sign)

18760 types in all; the table shows the 200 largest by site count. The full map with every type's layout (offset, width, sign, site count per field) and conflicts is .run/P37/census/struct_map.json.