{ "entries": [ { "name": "g_BankruptcyEliminationDivisor", "addr": "0x00a2ec30", "convention": "data", "prototype": "double 0xBFC3333340000000 = -0.15000000596046448 = (double)(float)-0.15f -- the elimination-limit divisor, loaded by ServerPlayer::UpdateBankruptcyLimits at 0x00818612 with `DD 05` (fld QWORD). It is the negation of g_DebtInterestRate (0x009ed188), and the two are stored separately. Named here because lane N's fix cited the value but not the address", "status": "verified", "source": "lane PL own disassembly pass 2026-09-08 (reva_call read-memory 0x00818600 +200, 0x00a2ec30)" }, { "name": "PTR_g_BANKRUPTCY_PROTECTION_LIMIT_FACTOR", "addr": "0x00aedfdc", "convention": "data", "prototype": "float* -> 0x00b23e28. The config loader's pointer slot for the key BANKRUPTCY_PROTECTION_LIMIT_FACTOR, the same indirection pattern as ADDICTION_INCOME_MOD's (0x00aeca48 -> 0x00aeca44). Read once in the image, by UpdateBankruptcyLimits at 0x0081866e", "status": "verified", "source": "lane PL own disassembly pass 2026-09-08 (reva_call read-memory + find-cross-references)" }, { "name": "g_BANKRUPTCY_PROTECTION_LIMIT_FACTOR", "addr": "0x00b23e28", "convention": "data", "prototype": "FLOAT32 -- and the width is the finding. UpdateBankruptcyLimits multiplies it in at 0x00818674 with `D8 09` = FMUL m32fp, i.e. a DWORD, while the elimination divisor two instructions earlier is `DD 05` = FLD m64fp. So whatever decimal the data file carries for this key is narrowed to a 4-byte float before the multiply, and a `double` multiply truncates to a different integer at every boundary -- for a factor of 3.3 that is EVERY max income divisible by ten, starting at maxIncome = 10 (decimal 33.0 -> 33, image 32.99999952 -> 32). The file image of the slot is zero: the loader fills it at run time, so the value itself is a data-file fact, not a binary one. The corpus cannot see the difference -- all seven of its non-zero BnkPr records invert to a max income where the two agree -- so this is an instruction-stream reading, thin-covered by construction (rule 23)", "status": "verified", "source": "lane PL own disassembly pass 2026-09-08; docs/PL-players-residual.md in sots-engine" } ] }