--- func_80166690 (line 4861) ---
// @class: count
// @crack: MATCH. Every accumulator here is a short, not an int: sVar7/sVar8/sVar9/sVar3 are
// `short`, the colour temp `t` is `u8` (the field width) and `w` is `int`. The four `short`s are
// what emit the target's `move s2,v0` / `move s0,v0` / `move s3,v1` copies — `short v = <int expr>`
// is an SI->HI truncation whose SImode source is still live in the following `sll/sra` test, so
// local-alloc refuses the tie (local-alloc.c:1855) and the copy survives. Writing them as `int`
// (or as `unsigned int` with a hand temp) loses those four copies. `t` must be `u8` and not
// `short`: at `short` it shares uVar7's cse quantity (cse.c:1029) and canon_reg forwards $s0 into
// the first `sb`; at `u8` the mode gate keeps it separate and the `sb` reads the copy. No levers.
--- every @class/@stuck/@crack note in this translation unit ---
// @class: struct
// @stuck: none — MATCH (match_one 88/88); fn-ptr-array dispatch, top-level if/else needed branch-polarity invert (small block falls through, big block at L854)
// @class: struct
// @stuck: none — dispatch + control flow on a single callee-saved param; expect MATCH
// @class: schedule
// @stuck: none — MATCH (goto forces the func_80161240 block to the function tail; bnez-to-end layout vs early-return fall-through)
// @class: regalloc-order
// @stuck: none — MATCH (uVar1 pinned $s3, uVar5 pinned $s1; param_1->s2, iVar4->s0 fall out)
// @class: struct
// @stuck: none — MATCH (pending gate)
// @class: regalloc-order
// @stuck: pinning a0->$s1 and buffer-ptr->$s0; body copy already matches
// @class: plumbing
// @stuck: none — MATCH
// @class: loose-typing
// @stuck: none — MATCH (field 0xb8 compared as u16 == 0x8000, not s16 == -0x8000)
// @class: struct
// @stuck: none — MATCH (mirrors byte-matched func_8015F89C/func_8015F9A4 in same overlay)
// @class: other
// @stuck: none — MATCH (proxy gate)
// @class: struct
// @stuck: none — MATCH (mirrors byte-matched func_8015F89C/func_8015F9A4 in same overlay)
// @class: other
// @stuck: none — MATCH (proxy gate)
// @class: struct
// @stuck: none — MATCH (pending whole-binary gate); fn-ptr table folds %lo via extern array, 0x234 single word store
// @class: struct
// @stuck: none — MATCH (pending whole-binary gate); s16 v[3] array forces all 3 locals addressable (reload-from-stack), u16* psVar1 → lhu null/flag check
// @class: struct
// @stuck: none — MATCH (clean -O2 reconstruction; table-of-fnptr indexed by param_1[0])
// @class: plumbing
// @stuck: none — MATCH (straight STUB call sequence; param saved to $s0 across calls)
// @class: struct
// @stuck: none — MATCH (indexed fn-ptr table call + byte-offset struct stores; mirrors sibling func_801599A4 idiom)
// @class: plumbing
// @stuck: none — MATCH expected; simple 3-call sequence with global table index
// @class: struct
// @stuck: none — MATCH expected (fn-ptr-table dispatch + ushort struct fields)
// @class: struct
// @stuck: none — MATCH (function-pointer table folds %lo via extern array indexed by halfword)
// @class: struct
// @stuck: none — MATCH (pending byte-gate); function-pointer table %lo-fold via extern array
// @class: struct
// @stuck: none — MATCH (mirrors byte-matched func_8015DBD4 in same overlay; dispatch via D_80192AC8 + func_80147078/func_80159B70 tail, func_80161208 else)
// @class: struct
// @stuck: none — MATCH
// @class: schedule
// @stuck: none — MATCH
// @class: other
// @stuck: first draft — plain if-chain over the flag bits
// @class: schedule
// @stuck: none — MATCH
// @class: struct
// @stuck: none — MATCH (indexed-global %lo-fold via extern u16 array, §18)
// @class: plumbing
// @stuck: none — MATCH (20 ins)
// @class: struct
// @stuck: none — MATCH (indexed-global %lo-fold via extern u16 array, §18)
// @class: other
// @stuck: none — MATCH (short-circuit && chain; reused 0x80FFFFFF mask const, andi-0xFF on callee ret)
