Files
BFM-decomp/docs/worklist.md
T
Drew T e64b3cbe41 docs(phase-30): T6 approved — P30 stays open; the measured-frontier continuation (S1-S5)
Drew's call (2026-08-01, P5d in-phase re-plan): gate 2 was reached and deliberately NOT taken —
closing now would strand roadmap-v2 bucket W3 (the overlay family mass) with no owner phase
(P31 = scope-complete/main/resident, P32 = walls/behemoths).

Order derived from the S29 frontier regen, ranked by TEMPLATABLE weight:
  S1 zero-crack propagation (29 families / 67,470 ins, ~0 agent tokens)
  S2 the LAST two reach-138 fresh cracks (func_80176734 51,198 + func_8016EC0C 12,144)
  S3 close=0 stored drafts as a DIAGNOSTIC pass (not a blind re-sweep)
  S4 PINS bounded wave (14 fns / 44,279 ins)
  S5 the x10-133 mid-multiplicity families (142,527 ins)
Excluded: the 2 GIANT walls (P32), the x2-9 mass, the x1 singleton residue.

THE PRICING FINDING (R14/R35): worklist.md ranks by h_exact reach, so a per-location PURE family
is priced x1 — under-pricing the frontier head by up to 138x. Byte-proof: S29's pair was priced
272 and 198 ins and delivered 37,536 + 27,324. func_80176734 (the single largest item on the
board) sits at rank ~50 in worklist.md. Rank family work by .run/family_hseq.json.

THE STRUCTURAL SIGNAL: after S2 the x138 era ENDS (last two crackable fleet-wide families);
everything after is <=133 members and mostly <=9. That cost-per-point rise, not a session count,
is P30's honest ROI floor and T5's trigger.
2026-08-01 08:20:41 -06:00

22 KiB
Raw Blame History

Worklist — remaining functions ranked by byte-weighted project gain

Generated by tools/worklist.py from .run/fuel_manifest.json + .run/backlog.jsonl. Ranked by byte-weighted gain gain_ins = reach × nins (fleet instructions made byte-identical once matched and propagated ×138 — the decomp.dev-comparable metric the giants move, NOT function-count). %rem = share of ALL remaining gain; cum% = running total (shows how few giants capture most of it). close = backlog match_one mismatch count (lower = nearer; blank = not yet attempted). Byte-gate (harvest_verify) is the sole arbiter (G3/P9).

Live stubs: 79 · total remaining gain: 187,366 ins (749,464 bytes ×-fleet)

Idiom-class summary (the groups)

class count gain_ins % of remaining
GIANT 2 50,094 26.7%
STRUCT 24 3,913 2.1%
PINS 14 44,279 23.6%
WAVE 35 72,796 38.9%
O1 1 4,692 2.5%
STUB 3 11,592 6.2%

Top 40 remaining gains (all classes)

# name class reach nins gain_ins %rem cum% cached region close where it stuck best draft
1 func_801412A8 GIANT 138 198 27324 14.58 14.6 Y main 110 110 mismatch (count-exact 198/198). S11 LUID(x)alloc: register-assignment permutation + prim2 store-schedule.… .run/backlog_drafts/func_801412A8.c
2 func_80178004 GIANT 138 165 22770 12.15 26.7 Y jr_801734BC 91 [Phase-27 T8 corrected] close=91 pure local-alloc regalloc wall (§52 flagship; the 'MATCH' claim was a retrac… .run/backlog_drafts/func_80178004.c
3 func_8014E5B4 PINS 138 59 8142 4.35 31.1 Y after 23 none — MATCH .run/backlog_drafts/func_8014E5B4.c
4 func_8012B77C WAVE 138 58 8004 4.27 35.4 Y jr_8012ACE0 33 gcc instruction-scheduler load-ordering + 1st-ratan2 delay-slot fill differ (s2 subtraction lands early inste… .run/backlog_drafts/func_8012B77C.c
5 func_801758FC WAVE 138 55 7590 4.05 39.4 Y jr_801734BC 0 none — MATCH (55 ins) .run/backlog_drafts/func_801758FC.c
6 func_80176144 WAVE 138 53 7314 3.90 43.3 Y jr_801734BC 0 none — MATCH .run/backlog_drafts/func_80176144.c
7 func_801376E8 WAVE 138 51 7038 3.76 47.1 Y jr_80135D20 0 none — MATCH (51 ins). 3 levers: (1) adjacent-field array u16 D_80126A14[] for A14/A16 .run/backlog_drafts/func_801376E8.c
8 func_8014C4AC WAVE 138 47 6486 3.46 50.5 Y after 0 none — MATCH .run/backlog_drafts/func_8014C4AC.c
9 func_80163764 PINS 138 42 5796 3.09 53.6 Y jr_8015C32C 10 none — MATCH (42 ins). pins $s2/$s1/$s0/$s3 + u32 counter (sltiu) + init order s2,s3,i,p .run/backlog_drafts/func_80163764.c
10 func_80146AFC PINS 138 40 5520 2.95 56.6 Y after 13 none — MATCH .run/backlog_drafts/func_80146AFC.c
11 func_80131A34 PINS 138 37 5106 2.73 59.3 Y jr_8012ACE0 3 3-off — (a) prologue saves $ra before $s0 (target: $s0 then $ra) and (b) return-0 path reuses $a1's proven-ze… .run/backlog_drafts/func_80131A34.c
12 func_80151664 PINS 138 35 4830 2.58 61.9 Y after 0 none — MATCH (35 ins, relocation-masked); canonical externs kept, call-site casts only .run/backlog_drafts/func_80151664.c
13 func_80161A90 O1 138 34 4692 2.50 64.4 Y jr_8015C32C 26 WAVE: 26 mismatch .run/backlog_drafts/func_80161A90.c
14 func_8012EFB8 STUB 138 32 4416 2.36 66.7 Y jr_8012ACE0 11 none — MATCH (32 ins, byte-verified via objdump -dz; match_one's default objdump elides the 2 consecutive rtp… .run/backlog_drafts/func_8012EFB8.c
15 func_80147364 WAVE 138 30 4140 2.21 68.9 Y after 4 none — MATCH (30 ins). Lever: hoist &D_80126B58 into a local ptr u8 *p=&D_80126B58; so gcc .run/backlog_drafts/func_80147364.c
16 func_8016706C WAVE 138 30 4140 2.21 71.1 Y jr_8015C32C 0 none — MATCH (pending gate) .run/backlog_drafts/func_8016706C.c
17 func_801708B0 WAVE 138 30 4140 2.21 73.4 Y jr_8016AB6C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_801708B0.c
18 func_80170CF0 PINS 138 30 4140 2.21 75.6 Y jr_8016AB6C 17 PINS: 17 mismatch .run/backlog_drafts/func_80170CF0.c
19 func_8012F274 WAVE 138 29 4002 2.14 77.7 Y jr_8012ACE0 0 none — MATCH (29 ins, match_one byte-clean via relocation-masked pipeline) .run/backlog_drafts/func_8012F274.c
20 func_80131CF4 WAVE 138 29 4002 2.14 79.8 Y jr_8012ACE0 15 15 mismatches cascade from a 2-instruction gap — target reloads *param_1 (lw v0,0(a0)) into v0 before the loo… .run/backlog_drafts/func_80131CF4.c
21 func_8016BA68 STUB 138 29 4002 2.14 82.0 Y jr_8016AB6C 1 STUB: 1 mismatch .run/backlog_drafts/func_8016BA68.c
22 func_80168B70 WAVE 138 27 3726 1.99 84.0 Y jr_8015C32C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_80168B70.c
23 func_80137614 WAVE 138 26 3588 1.91 85.9 Y jr_80135D20 0 none — MATCH (sibling func_8013767C pattern; all 3 params live across the call) .run/backlog_drafts/func_80137614.c
24 func_8016130C WAVE 138 26 3588 1.91 87.8 Y jr_8015C32C 9 WAVE: 9 mismatch .run/backlog_drafts/func_8016130C.c
25 func_8016F0E4 PINS 138 26 3588 1.91 89.7 Y jr_8016AB6C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_8016F0E4.c
26 func_80162CCC STUB 138 23 3174 1.69 91.4 Y jr_8015C32C 0 none — MATCH expected; direct translation, psVar1 as u16* gives lhu, $s0=param_1 survives both calls .run/backlog_drafts/func_80162CCC.c
27 func_80131CA8 PINS 138 19 2622 1.40 92.8 Y jr_8012ACE0 0 none — MATCH (call-through-fnptr dispatcher: explicit return 1/return 0) .run/backlog_drafts/func_80131CA8.c
28 func_80146A6C WAVE 138 18 2484 1.33 94.1 Y after 5 none — MATCH .run/backlog_drafts/func_80146A6C.c
29 func_80156600 PINS 138 18 2484 1.33 95.5 Y jr_80154C24 none — MATCH (simple counted scan, do-while form per Ghidra-C) .run/backlog_drafts/func_80156600.c
30 func_80161208 PINS 138 14 1932 1.03 96.5 Y jr_8015C32C 0 none — MATCH expected (param saved across call → natural $s0, no pin needed) .run/backlog_drafts/func_80161208.c
31 func_8017C974 STRUCT 1 947 947 0.51 97.0 Y jr_8017AE2C
32 func_8018103C STRUCT 1 579 579 0.31 97.3 Y jr_8017AE2C
33 func_8017C294 WAVE 2 246 492 0.26 97.6 Y jr_8017AE2C 230 structurally matched (246 ins, param_3 in $fp, spurious psVar7[1] giv killed via .run/backlog_drafts/func_8017C294.c
34 func_80176734 WAVE 1 371 371 0.20 97.8 Y jr_801734BC
35 func_80183324 STRUCT 1 324 324 0.17 97.9 Y jr_80182268
36 func_8017FD14 STRUCT 1 249 249 0.13 98.1 Y jr_8017AE2C
37 func_80181BE4 STRUCT 1 201 201 0.11 98.2 Y jr_8017AE2C
38 func_8017F7E8 WAVE 1 177 177 0.09 98.3 Y jr_8017AE2C 11 WAVE: 11 mismatch .run/backlog_drafts/func_8017F7E8.c
39 func_80185BA4 WAVE 1 177 177 0.09 98.4 Y jr_80182268 won't compile standalone (loose-typing / missing decl)
40 func_80186078 WAVE 1 174 174 0.09 98.5 Y jr_80182268

GIANT hand-decomp queue — 2 fns, 26.7% of all remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_801412A8 GIANT 138 198 27324 14.58 Y main 110 110 mismatch (count-exact 198/198). S11 LUID(x)alloc: register-assignment permutation + prim2 store-schedule.… .run/backlog_drafts/func_801412A8.c
2 func_80178004 GIANT 138 165 22770 12.15 Y jr_801734BC 91 [Phase-27 T8 corrected] close=91 pure local-alloc regalloc wall (§52 flagship; the 'MATCH' claim was a retrac… .run/backlog_drafts/func_80178004.c

Idiom-group tables

STRUCT — 24 fns, 2.1% of remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_8017C974 STRUCT 1 947 947 0.51 Y jr_8017AE2C
2 func_8018103C STRUCT 1 579 579 0.31 Y jr_8017AE2C
3 func_80183324 STRUCT 1 324 324 0.17 Y jr_80182268
4 func_8017FD14 STRUCT 1 249 249 0.13 Y jr_8017AE2C
5 func_80181BE4 STRUCT 1 201 201 0.11 Y jr_8017AE2C
6 func_8018308C STRUCT 1 166 166 0.09 Y jr_80182268
7 func_80180C90 STRUCT 1 160 160 0.09 Y jr_8017AE2C
8 func_80183834 STRUCT 1 135 135 0.07 Y jr_80182268
9 func_80181948 STRUCT 1 132 132 0.07 Y jr_8017AE2C
10 func_80185E68 STRUCT 1 132 132 0.07 Y jr_80182268 131 STRUCT: 131 mismatch .run/backlog_drafts/func_80185E68.c
11 func_80181F08 STRUCT 1 117 117 0.06 Y jr_8017AE2C
12 func_80182C9C STRUCT 1 101 101 0.05 Y jr_80182268 none — MATCH (101 ins). Inner-switch break-to-shared-tail must be written as .run/backlog_drafts/func_80182C9C.c
13 func_801820DC STRUCT 1 94 94 0.05 Y jr_8017AE2C 0 none — MATCH (switch on entity state at 0x34, inner jtbl on (s8)(u70>>8)) .run/backlog_drafts/func_801820DC.c
14 func_80182E7C STRUCT 1 85 85 0.05 Y jr_80182268 0 none — MATCH (85 ins, relocation-masked). Two switch-codegen levers: .run/backlog_drafts/func_80182E7C.c
15 func_8018281C STRUCT 1 76 76 0.04 Y jr_80182268 0 none — MATCH (76 ins). jtbl forced via explicit case 4/6 (count>=5 over MIPS tablejump threshold); case-5 blo… .run/backlog_drafts/func_8018281C.c
16 func_80180B64 STRUCT 1 75 75 0.04 Y jr_8017AE2C none — MATCH (75 ins, relocation-masked) .run/backlog_drafts/func_80180B64.c
17 func_80159A20 STRUCT 1 58 58 0.03 Y jr_801588CC none — MATCH. Key lever: block tail-MERGE (gcc shared bne ...,$L1 cross-jump) by making the two return-test… .run/backlog_drafts/func_80159A20.c
18 func_80183CF4 STRUCT 1 57 57 0.03 Y jr_80182268 0 none — MATCH (clean switch + jtbl; orchestrator owns jtbl/rodata migration) .run/backlog_drafts/func_80183CF4.c
19 func_80183AF0 STRUCT 1 47 47 0.03 Y jr_80182268 0 none — MATCH (mask pinned $a1/$5 + p pinned $v0/$2; switch w/ distributed func_8012C218 tail via dup calls + … .run/backlog_drafts/func_80183AF0.c
20 func_80183BAC STRUCT 1 41 41 0.02 Y jr_80182268 0 switch jump-table dispatch (jtbl_801D9420); verifying case grouping 0,1,2,5,6/3,7/4 emits the target table + … .run/backlog_drafts/func_80183BAC.c
21 func_80183C50 STRUCT 1 41 41 0.02 Y jr_80182268 0 none — MATCH (cross-jump exploit §cookbook L1543: dup func_8012C218 into case3/7 + case4 → merged jal;nop) .run/backlog_drafts/func_80183C50.c
22 func_801754A8 STRUCT 1 37 37 0.02 Y jr_801734BC 0 none — MATCH (37 ins, relocation-masked proxy) .run/backlog_drafts/func_801754A8.c
23 func_801549F8 STRUCT 1 31 31 0.02 Y jr_8015444C 0 none — MATCH (31 ins). Re-tie barrier on the index defeats gcc's pointer-giv .run/backlog_drafts/func_801549F8.c
24 func_80142A10 STRUCT 1 28 28 0.01 Y main 1 none — MATCH (pending byte-gate) .run/backlog_drafts/func_80142A10.c

PINS — 14 fns, 23.6% of remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_8014E5B4 PINS 138 59 8142 4.35 Y after 23 none — MATCH .run/backlog_drafts/func_8014E5B4.c
2 func_80163764 PINS 138 42 5796 3.09 Y jr_8015C32C 10 none — MATCH (42 ins). pins $s2/$s1/$s0/$s3 + u32 counter (sltiu) + init order s2,s3,i,p .run/backlog_drafts/func_80163764.c
3 func_80146AFC PINS 138 40 5520 2.95 Y after 13 none — MATCH .run/backlog_drafts/func_80146AFC.c
4 func_80131A34 PINS 138 37 5106 2.73 Y jr_8012ACE0 3 3-off — (a) prologue saves $ra before $s0 (target: $s0 then $ra) and (b) return-0 path reuses $a1's proven-ze… .run/backlog_drafts/func_80131A34.c
5 func_80151664 PINS 138 35 4830 2.58 Y after 0 none — MATCH (35 ins, relocation-masked); canonical externs kept, call-site casts only .run/backlog_drafts/func_80151664.c
6 func_80170CF0 PINS 138 30 4140 2.21 Y jr_8016AB6C 17 PINS: 17 mismatch .run/backlog_drafts/func_80170CF0.c
7 func_8016F0E4 PINS 138 26 3588 1.91 Y jr_8016AB6C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_8016F0E4.c
8 func_80131CA8 PINS 138 19 2622 1.40 Y jr_8012ACE0 0 none — MATCH (call-through-fnptr dispatcher: explicit return 1/return 0) .run/backlog_drafts/func_80131CA8.c
9 func_80156600 PINS 138 18 2484 1.33 Y jr_80154C24 none — MATCH (simple counted scan, do-while form per Ghidra-C) .run/backlog_drafts/func_80156600.c
10 func_80161208 PINS 138 14 1932 1.03 Y jr_8015C32C 0 none — MATCH expected (param saved across call → natural $s0, no pin needed) .run/backlog_drafts/func_80161208.c
11 func_80184C0C PINS 1 48 48 0.03 Y jr_80182268 1 none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34) .run/backlog_drafts/func_80184C0C.c
12 func_80161C24 PINS 1 29 29 0.02 Y jr_8015C32C 1 none — MATCH (array-of-struct %lo-fold; even/odd u16 fields at off 0/2, stride 4) .run/backlog_drafts/func_80161C24.c
13 func_80182988 PINS 1 22 22 0.01 Y jr_80182268 0 none — MATCH (u16 store of 0xAA10 forces ori, not sign-extended addiu) .run/backlog_drafts/func_80182988.c
14 func_80161CD0 PINS 1 20 20 0.01 Y jr_8015C32C 14 param_2 must survive the call in $s0; try plain C first then pin to $16 .run/backlog_drafts/func_80161CD0.c

WAVE — 35 fns, 38.9% of remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_8012B77C WAVE 138 58 8004 4.27 Y jr_8012ACE0 33 gcc instruction-scheduler load-ordering + 1st-ratan2 delay-slot fill differ (s2 subtraction lands early inste… .run/backlog_drafts/func_8012B77C.c
2 func_801758FC WAVE 138 55 7590 4.05 Y jr_801734BC 0 none — MATCH (55 ins) .run/backlog_drafts/func_801758FC.c
3 func_80176144 WAVE 138 53 7314 3.90 Y jr_801734BC 0 none — MATCH .run/backlog_drafts/func_80176144.c
4 func_801376E8 WAVE 138 51 7038 3.76 Y jr_80135D20 0 none — MATCH (51 ins). 3 levers: (1) adjacent-field array u16 D_80126A14[] for A14/A16 .run/backlog_drafts/func_801376E8.c
5 func_8014C4AC WAVE 138 47 6486 3.46 Y after 0 none — MATCH .run/backlog_drafts/func_8014C4AC.c
6 func_80147364 WAVE 138 30 4140 2.21 Y after 4 none — MATCH (30 ins). Lever: hoist &D_80126B58 into a local ptr u8 *p=&D_80126B58; so gcc .run/backlog_drafts/func_80147364.c
7 func_8016706C WAVE 138 30 4140 2.21 Y jr_8015C32C 0 none — MATCH (pending gate) .run/backlog_drafts/func_8016706C.c
8 func_801708B0 WAVE 138 30 4140 2.21 Y jr_8016AB6C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_801708B0.c
9 func_8012F274 WAVE 138 29 4002 2.14 Y jr_8012ACE0 0 none — MATCH (29 ins, match_one byte-clean via relocation-masked pipeline) .run/backlog_drafts/func_8012F274.c
10 func_80131CF4 WAVE 138 29 4002 2.14 Y jr_8012ACE0 15 15 mismatches cascade from a 2-instruction gap — target reloads *param_1 (lw v0,0(a0)) into v0 before the loo… .run/backlog_drafts/func_80131CF4.c
11 func_80168B70 WAVE 138 27 3726 1.99 Y jr_8015C32C 0 match_one MATCH but gate rejected (declaration/TU plumbing) .run/backlog_drafts/func_80168B70.c
12 func_80137614 WAVE 138 26 3588 1.91 Y jr_80135D20 0 none — MATCH (sibling func_8013767C pattern; all 3 params live across the call) .run/backlog_drafts/func_80137614.c
13 func_8016130C WAVE 138 26 3588 1.91 Y jr_8015C32C 9 WAVE: 9 mismatch .run/backlog_drafts/func_8016130C.c
14 func_80146A6C WAVE 138 18 2484 1.33 Y after 5 none — MATCH .run/backlog_drafts/func_80146A6C.c
15 func_8017C294 WAVE 2 246 492 0.26 Y jr_8017AE2C 230 structurally matched (246 ins, param_3 in $fp, spurious psVar7[1] giv killed via .run/backlog_drafts/func_8017C294.c
16 func_80176734 WAVE 1 371 371 0.20 Y jr_801734BC
17 func_8017F7E8 WAVE 1 177 177 0.09 Y jr_8017AE2C 11 WAVE: 11 mismatch .run/backlog_drafts/func_8017F7E8.c
18 func_80185BA4 WAVE 1 177 177 0.09 Y jr_80182268 won't compile standalone (loose-typing / missing decl)
19 func_80186078 WAVE 1 174 174 0.09 Y jr_80182268
20 func_8017FAAC WAVE 1 154 154 0.08 Y jr_8017AE2C
21 func_801865EC WAVE 1 125 125 0.07 Y jr_80182268
22 func_8017DAEC WAVE 1 113 113 0.06 Y jr_8017AE2C
23 func_80183FB8 WAVE 1 101 101 0.05 Y jr_80182268 none — MATCH (relocation-masked match_one, 101/101 ins) .run/backlog_drafts/func_80183FB8.c
24 func_80184D50 WAVE 1 98 98 0.05 Y jr_80182268 0 none — MATCH (98 ins, relocation-masked) .run/backlog_drafts/func_80184D50.c
25 func_80183DE0 WAVE 1 91 91 0.05 Y jr_80182268 testing if(!=1) layout + counter-before-pointer init order .run/backlog_drafts/func_80183DE0.c
26 func_8016EC0C WAVE 1 88 88 0.05 Y jr_8016AB6C 2 none — MATCH (88 ins). Sparse switch(uVar2) = gcc's beq-pivot+slti comparison .run/backlog_drafts/func_8016EC0C.c
27 func_8017F114 WAVE 1 75 75 0.04 Y jr_8017AE2C 1 none — MATCH .run/backlog_drafts/func_8017F114.c
28 func_801842C8 WAVE 1 62 62 0.03 Y jr_80182268 0 none — MATCH .run/backlog_drafts/func_801842C8.c
29 func_8017EC7C WAVE 1 52 52 0.03 Y jr_8017AE2C 0 none — MATCH (52 ins, relocation-masked) .run/backlog_drafts/func_8017EC7C.c
30 func_801803B0 WAVE 1 51 51 0.03 Y jr_8017AE2C 1 none — MATCH expected; simple if/else, no call-crossing locals beyond param in $s0 .run/backlog_drafts/func_801803B0.c
31 func_80139BE0 WAVE 1 39 39 0.02 Y jr_801380E0 32 target has redundant andi a1,v0,0xff (uchar zero-extend) gcc proves away; else identical .run/backlog_drafts/func_80139BE0.c
32 func_80184A68 WAVE 1 33 33 0.02 Y jr_80182268 none — MATCH .run/backlog_drafts/func_80184A68.c
33 func_8017E224 WAVE 1 29 29 0.02 Y jr_8017AE2C 0 none — MATCH (unaligned 8-byte memcpy of global onto stack + cond byte incr) .run/backlog_drafts/func_8017E224.c
34 func_8017F714 WAVE 1 27 27 0.01 Y jr_8017AE2C 1 none — MATCH (27/27 ins, match_one verified) .run/backlog_drafts/func_8017F714.c
35 func_80128CFC WAVE 1 25 25 0.01 n a

O1 — 1 fns, 2.5% of remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_80161A90 O1 138 34 4692 2.50 Y jr_8015C32C 26 WAVE: 26 mismatch .run/backlog_drafts/func_80161A90.c

STUB — 3 fns, 6.2% of remaining gain

# name class reach nins gain_ins %rem cached region close where it stuck best draft
1 func_8012EFB8 STUB 138 32 4416 2.36 Y jr_8012ACE0 11 none — MATCH (32 ins, byte-verified via objdump -dz; match_one's default objdump elides the 2 consecutive rtp… .run/backlog_drafts/func_8012EFB8.c
2 func_8016BA68 STUB 138 29 4002 2.14 Y jr_8016AB6C 1 STUB: 1 mismatch .run/backlog_drafts/func_8016BA68.c
3 func_80162CCC STUB 138 23 3174 1.69 Y jr_8015C32C 0 none — MATCH expected; direct translation, psVar1 as u16* gives lhu, $s0=param_1 survives both calls .run/backlog_drafts/func_80162CCC.c