Files
BFM-decomp/docs/worklist.md
T

286 lines
37 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 ×134 — 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:** 441 · **total remaining gain:** 1,715,960 ins (6,863,840 bytes ×-fleet)
## Idiom-class summary (the groups)
| class | count | gain_ins | % of remaining |
|-------|------:|---------:|---------------:|
| GIANT | 20 | 603,268 | 35.2% |
| STRUCT | 89 | 44,240 | 2.6% |
| PINS | 38 | 94,641 | 5.5% |
| WAVE | 251 | 887,007 | 51.7% |
| O0 | 9 | 4,750 | 0.3% |
| O1 | 1 | 4,556 | 0.3% |
| STUB | 33 | 77,498 | 4.5% |
## Top 40 remaining gains (all classes)
| # | name | class | reach | nins | gain_ins | %rem | cum% | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_80144B9C | GIANT | 134 | 770 | 103180 | 6.01 | 6.0 | Y | main | | -O0 cluster fn (prologue 21F0A003, fp-frame, all locals spilled+reloaded, load-delay nops). match_one compile… | `.run/backlog_drafts/func_80144B9C.c` |
| 2 | func_80132784 | GIANT | 134 | 400 | 53600 | 3.12 | 9.1 | Y | a | 40 | HARD-DEFER (R14, byte-evidenced): hoist-vs-remat (else-branch s1m&0xFEFFFFFF + index rematerialized in v0/v1 … | `.run/backlog_drafts/func_80132784.c` |
| 3 | func_8014EE14 | GIANT | 134 | 248 | 33232 | 1.94 | 11.1 | Y | main | 6 | §20 store-vs-load tie-break (x2 loops); frame/regalloc/control-flow/constants byte-exact; no pins/asm -> perm… | `.run/backlog_drafts/func_8014EE14.c` |
| 4 | func_80148094 | GIANT | 134 | 213 | 28542 | 1.66 | 12.7 | Y | main | 107 | ~39/213 residual (LCS), all in the sVar1>=0x201 clamp blocks: $v0/$v1 mflo regalloc swap + coupled branch-pol… | `.run/backlog_drafts/func_80148094.c` |
| 5 | func_801372B0 | GIANT | 134 | 207 | 27738 | 1.62 | 14.4 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 6 | func_8013A530 | GIANT | 134 | 204 | 27336 | 1.59 | 15.9 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 7 | func_801412A8 | GIANT | 134 | 198 | 26532 | 1.55 | 17.5 | Y | main | 154 | 154-mismatch near-miss (198/198 ins, structure+branches exact). Two irreducible gcc residuals: (1) HEAD: held… | `.run/backlog_drafts/func_801412A8.c` |
| 8 | func_801571C4 | GIANT | 134 | 198 | 26532 | 1.55 | 19.0 | Y | main | 24 | body byte-perfect + 9 callee-reg maps + frame 0x60; residual = prologue schedule order + local_40/38 slot swa… | `.run/backlog_drafts/func_801571C4.c` |
| 9 | func_80129CF8 | GIANT | 134 | 191 | 25594 | 1.49 | 20.5 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 10 | func_8012D098 | GIANT | 134 | 189 | 25326 | 1.48 | 22.0 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 11 | func_8013AF20 | GIANT | 134 | 185 | 24790 | 1.44 | 23.5 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 12 | func_8014EA4C | GIANT | 134 | 183 | 24522 | 1.43 | 24.9 | Y | main | 6 | raw close=6: D_801150D8=0 store between a0/a1 loads + abs($v1 move vs in-place negu) pressure-locked by buf[1… | `.run/drafts-giants/func_8014EA4C.c` |
| 13 | func_801392FC | GIANT | 134 | 182 | 24388 | 1.42 | 26.3 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 14 | func_8012EC04 | GIANT | 134 | 178 | 23852 | 1.39 | 27.7 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 15 | func_8014F74C | GIANT | 134 | 174 | 23316 | 1.36 | 29.0 | Y | main | 0 | none — MATCH (174 ins). Last mile: §5a volatile barrier blocked gcc jump-threading | `.run/backlog_drafts/func_8014F74C.c` |
| 16 | func_80178004 | GIANT | 134 | 165 | 22110 | 1.29 | 30.3 | Y | main | 0 | none — MATCH (full register pins per sibling func_80177EA4; running-ptr $s2 to stop unroll-rebase; | `.run/backlog_drafts/func_80178004.c` |
| 17 | func_80138ED0 | GIANT | 134 | 159 | 21306 | 1.24 | 31.6 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 18 | func_80144090 | GIANT | 134 | 154 | 20636 | 1.20 | 32.8 | Y | main | 25 | raw close=25: caller-saved temp-reg coalescing in final ring-vertex block (iVar4 mflo->$a3 vs $v0; subu reuse… | `.run/drafts-giants/func_80144090.c` |
| 19 | func_80176D94 | GIANT | 134 | 152 | 20368 | 1.19 | 34.0 | Y | main | 63 | 63/152 — frame+prologue+4 calls+2x(801783D0/801777BC) MATCH (pins $s0=uVar2/$s2=param_2 + CSE-break barrier);… | `.run/backlog_drafts/func_80176D94.c` |
| 20 | func_801770E0 | GIANT | 134 | 152 | 20368 | 1.19 | 35.2 | Y | main | 53 | callee-saved regalloc EXACT (param_2->$s2, iVar6->$s1, uVar5/spill->$s0, consts 3/0xB8/0xFF->$s5/$s4/$s3). | `.run/backlog_drafts/func_801770E0.c` |
| 21 | func_80155800 | WAVE | 134 | 145 | 19430 | 1.13 | 36.3 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80155800.c` |
| 22 | func_8014E048 | WAVE | 134 | 143 | 19162 | 1.12 | 37.4 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E048.c` |
| 23 | func_8014F4C0 | WAVE | 134 | 141 | 18894 | 1.10 | 38.5 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014F4C0.c` |
| 24 | func_8014ADE0 | WAVE | 134 | 139 | 18626 | 1.09 | 39.6 | Y | main | 19 | 16 ins off — all compiler-internal ties: (1) 0xAAA8 const lands $v0 vs target $v1; | `.run/backlog_drafts/func_8014ADE0.c` |
| 25 | func_80137DD4 | STRUCT | 134 | 129 | 17286 | 1.01 | 40.6 | Y | a | 107 | regalloc fully matches (frame -0x30; s4/s3/s5=params, s2=mask, s1=ptr w/ in-place +0x24 reuse, s0=acc+reused … | `.run/backlog_drafts/func_80137DD4.c` |
| 26 | func_80174CB0 | WAVE | 134 | 123 | 16482 | 0.96 | 41.6 | Y | main | 0 | close=0 match_one MATCH but its anon typedef is named 'Buf' which COLLIDES with the existing 'Buf' (s16 h[8],… | `.run/backlog_drafts/func_80174CB0.c` |
| 27 | func_80167540 | WAVE | 134 | 117 | 15678 | 0.91 | 42.5 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80167540.c` |
| 28 | func_801325B8 | WAVE | 134 | 113 | 15142 | 0.88 | 43.4 | Y | a | 4 | 4/113 — prologue save-order of the $s0(cur/p3) vs $s5(p1) pair; gcc emits | `.run/backlog_drafts/func_801325B8.c` |
| 29 | func_801330E0 | STUB | 134 | 110 | 14740 | 0.86 | 44.2 | Y | a | 79 | none — MATCH (110/110 words byte-identical via objcopy raw .text, reloc-masked on jal+%hi/%lo(D_800AF648)). m… | `.run/backlog_drafts/func_801330E0.c` |
| 30 | func_8014DD8C | WAVE | 134 | 108 | 14472 | 0.84 | 45.1 | Y | main | 83 | WAVE: 83 mismatch | `.run/backlog_drafts/func_8014DD8C.c` |
| 31 | func_8014E284 | WAVE | 134 | 108 | 14472 | 0.84 | 45.9 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E284.c` |
| 32 | func_8012CC88 | WAVE | 134 | 105 | 14070 | 0.82 | 46.7 | Y | a | 0 | none — MATCH (105 ins, relocation-masked) | `.run/backlog_drafts/func_8012CC88.c` |
| 33 | func_80169228 | WAVE | 134 | 105 | 14070 | 0.82 | 47.5 | Y | main | 0 | none — MATCH (105 ins, relocation-masked). Key levers: arg0/p pinned $s1/$s0, | `.run/backlog_drafts/func_80169228.c` |
| 34 | func_80167714 | WAVE | 134 | 104 | 13936 | 0.81 | 48.4 | Y | main | 0 | none — MATCH (104 ins) | `.run/backlog_drafts/func_80167714.c` |
| 35 | func_801463A0 | WAVE | 134 | 101 | 13534 | 0.79 | 49.1 | Y | main | 0 | none — MATCH (101 ins, match_one); real symbol names; misaligned 8B copy + s16 stores + masked B9C last | `.run/backlog_drafts/func_801463A0.c` |
| 36 | func_80177940 | WAVE | 134 | 101 | 13534 | 0.79 | 49.9 | Y | main | 65 | prologue+setup (35 ins) byte-match exactly; loop body diverges on gcc loop-invariant hoist ORDERING (schedule… | `.run/backlog_drafts/func_80177940.c` |
| 37 | func_801387B8 | WAVE | 134 | 100 | 13400 | 0.78 | 50.7 | Y | a | 50 | the two scanned bytes land in $a0/$a1 not $a1/$a2 (gcc-2.7.2 grabs the freed incoming-arg $a0 for the first l… | `.run/backlog_drafts/func_801387B8.c` |
| 38 | func_801379FC | WAVE | 134 | 97 | 12998 | 0.76 | 51.5 | Y | a | 0 | none — MATCH (match_one 97/97) | `.run/backlog_drafts/func_801379FC.c` |
| 39 | func_8014CD80 | WAVE | 134 | 97 | 12998 | 0.76 | 52.2 | Y | main | | none — MATCH (97 ins). iVar3 pinned to $v1 (register __asm__("$3")) so | `.run/backlog_drafts/func_8014CD80.c` |
| 40 | func_8014FE60 | WAVE | 134 | 95 | 12730 | 0.74 | 53.0 | Y | main | 20 | none — MATCH (permuter closed the final bothzero-block regalloc/schedule residual: moving `a = in[2]` before … | `.run/backlog_drafts/func_8014FE60.c` |
## GIANT hand-decomp queue — 20 fns, 35.2% of all remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_80144B9C | GIANT | 134 | 770 | 103180 | 6.01 | Y | main | | -O0 cluster fn (prologue 21F0A003, fp-frame, all locals spilled+reloaded, load-delay nops). match_one compile… | `.run/backlog_drafts/func_80144B9C.c` |
| 2 | func_80132784 | GIANT | 134 | 400 | 53600 | 3.12 | Y | a | 40 | HARD-DEFER (R14, byte-evidenced): hoist-vs-remat (else-branch s1m&0xFEFFFFFF + index rematerialized in v0/v1 … | `.run/backlog_drafts/func_80132784.c` |
| 3 | func_8014EE14 | GIANT | 134 | 248 | 33232 | 1.94 | Y | main | 6 | §20 store-vs-load tie-break (x2 loops); frame/regalloc/control-flow/constants byte-exact; no pins/asm -> perm… | `.run/backlog_drafts/func_8014EE14.c` |
| 4 | func_80148094 | GIANT | 134 | 213 | 28542 | 1.66 | Y | main | 107 | ~39/213 residual (LCS), all in the sVar1>=0x201 clamp blocks: $v0/$v1 mflo regalloc swap + coupled branch-pol… | `.run/backlog_drafts/func_80148094.c` |
| 5 | func_801372B0 | GIANT | 134 | 207 | 27738 | 1.62 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 6 | func_8013A530 | GIANT | 134 | 204 | 27336 | 1.59 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 7 | func_801412A8 | GIANT | 134 | 198 | 26532 | 1.55 | Y | main | 154 | 154-mismatch near-miss (198/198 ins, structure+branches exact). Two irreducible gcc residuals: (1) HEAD: held… | `.run/backlog_drafts/func_801412A8.c` |
| 8 | func_801571C4 | GIANT | 134 | 198 | 26532 | 1.55 | Y | main | 24 | body byte-perfect + 9 callee-reg maps + frame 0x60; residual = prologue schedule order + local_40/38 slot swa… | `.run/backlog_drafts/func_801571C4.c` |
| 9 | func_80129CF8 | GIANT | 134 | 191 | 25594 | 1.49 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 10 | func_8012D098 | GIANT | 134 | 189 | 25326 | 1.48 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 11 | func_8013AF20 | GIANT | 134 | 185 | 24790 | 1.44 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 12 | func_8014EA4C | GIANT | 134 | 183 | 24522 | 1.43 | Y | main | 6 | raw close=6: D_801150D8=0 store between a0/a1 loads + abs($v1 move vs in-place negu) pressure-locked by buf[1… | `.run/drafts-giants/func_8014EA4C.c` |
| 13 | func_801392FC | GIANT | 134 | 182 | 24388 | 1.42 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 14 | func_8012EC04 | GIANT | 134 | 178 | 23852 | 1.39 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 15 | func_8014F74C | GIANT | 134 | 174 | 23316 | 1.36 | Y | main | 0 | none — MATCH (174 ins). Last mile: §5a volatile barrier blocked gcc jump-threading | `.run/backlog_drafts/func_8014F74C.c` |
| 16 | func_80178004 | GIANT | 134 | 165 | 22110 | 1.29 | Y | main | 0 | none — MATCH (full register pins per sibling func_80177EA4; running-ptr $s2 to stop unroll-rebase; | `.run/backlog_drafts/func_80178004.c` |
| 17 | func_80138ED0 | GIANT | 134 | 159 | 21306 | 1.24 | Y | a | | won't compile standalone (loose-typing / missing decl) | |
| 18 | func_80144090 | GIANT | 134 | 154 | 20636 | 1.20 | Y | main | 25 | raw close=25: caller-saved temp-reg coalescing in final ring-vertex block (iVar4 mflo->$a3 vs $v0; subu reuse… | `.run/drafts-giants/func_80144090.c` |
| 19 | func_80176D94 | GIANT | 134 | 152 | 20368 | 1.19 | Y | main | 63 | 63/152 — frame+prologue+4 calls+2x(801783D0/801777BC) MATCH (pins $s0=uVar2/$s2=param_2 + CSE-break barrier);… | `.run/backlog_drafts/func_80176D94.c` |
| 20 | func_801770E0 | GIANT | 134 | 152 | 20368 | 1.19 | Y | main | 53 | callee-saved regalloc EXACT (param_2->$s2, iVar6->$s1, uVar5/spill->$s0, consts 3/0xB8/0xFF->$s5/$s4/$s3). | `.run/backlog_drafts/func_801770E0.c` |
## Idiom-group tables
### STRUCT — 89 fns, 2.6% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_80137DD4 | STRUCT | 134 | 129 | 17286 | 1.01 | Y | a | 107 | regalloc fully matches (frame -0x30; s4/s3/s5=params, s2=mask, s1=ptr w/ in-place +0x24 reuse, s0=acc+reused … | `.run/backlog_drafts/func_80137DD4.c` |
| 2 | func_80132F40 | STRUCT | 134 | 72 | 9648 | 0.56 | Y | a | | gcc gives src (sp+0x10) a 5th saved reg ($s3, frame 0x38 not 0x40); target rematerializes | `.run/backlog_drafts/func_80132F40.c` |
| 3 | func_801719A4 | STRUCT | 134 | 24 | 3216 | 0.19 | Y | main | 25 | none — MATCH (24 ins, relocation-masked) | `.run/backlog_drafts/func_801719A4.c` |
| 4 | func_8017C974 | STRUCT | 1 | 947 | 947 | 0.06 | Y | main | | | |
| 5 | func_80178D40 | STRUCT | 1 | 890 | 890 | 0.05 | Y | main | | | |
| 6 | func_8018103C | STRUCT | 1 | 579 | 579 | 0.03 | Y | main | | | |
| 7 | func_8015AE2C | STRUCT | 1 | 562 | 562 | 0.03 | Y | main | | | |
| 8 | func_8017A4AC | STRUCT | 1 | 536 | 536 | 0.03 | Y | main | | | |
| 9 | func_8015A3C8 | STRUCT | 1 | 493 | 493 | 0.03 | Y | main | | | |
| 10 | func_8013F350 | STRUCT | 1 | 490 | 490 | 0.03 | Y | main | | | |
| 11 | func_801380E0 | STRUCT | 1 | 438 | 438 | 0.03 | n | a | | | |
| 12 | func_80131340 | STRUCT | 1 | 424 | 424 | 0.02 | n | a | | | |
| 13 | func_8015444C | STRUCT | 1 | 363 | 363 | 0.02 | Y | main | | | |
| 14 | func_80159C84 | STRUCT | 1 | 337 | 337 | 0.02 | Y | main | | | |
| 15 | func_80183324 | STRUCT | 1 | 324 | 324 | 0.02 | Y | main | | | |
| 16 | func_80135EB0 | STRUCT | 1 | 289 | 289 | 0.02 | n | a | | | |
| 17 | func_8015B950 | STRUCT | 1 | 271 | 271 | 0.02 | Y | main | | | |
| 18 | func_8017FD14 | STRUCT | 1 | 249 | 249 | 0.01 | Y | main | | | |
| 19 | func_80134C20 | STRUCT | 1 | 230 | 230 | 0.01 | n | a | | | |
| 20 | func_8015C32C | STRUCT | 1 | 222 | 222 | 0.01 | Y | main | | | |
| 21 | func_8013FFD8 | STRUCT | 1 | 213 | 213 | 0.01 | Y | main | | | |
| 22 | func_8015EA3C | STRUCT | 1 | 204 | 204 | 0.01 | Y | main | | | |
| 23 | func_8015D738 | STRUCT | 1 | 201 | 201 | 0.01 | Y | main | | | |
| 24 | func_80181BE4 | STRUCT | 1 | 201 | 201 | 0.01 | Y | main | | | |
| 25 | func_8015F448 | STRUCT | 1 | 188 | 188 | 0.01 | Y | main | | | |
| 26 | func_8016AB6C | STRUCT | 1 | 188 | 188 | 0.01 | Y | main | | | |
| 27 | func_8014032C | STRUCT | 1 | 183 | 183 | 0.01 | Y | main | | | |
| 28 | func_80135A4C | STRUCT | 1 | 181 | 181 | 0.01 | n | a | | | |
| 29 | func_8017AE2C | STRUCT | 1 | 174 | 174 | 0.01 | Y | main | | | |
| 30 | func_80154C24 | STRUCT | 1 | 173 | 173 | 0.01 | Y | main | | | |
| 31 | func_8018308C | STRUCT | 1 | 166 | 166 | 0.01 | Y | main | | | |
| 32 | func_801347A0 | STRUCT | 1 | 162 | 162 | 0.01 | n | a | | | |
| 33 | func_80160534 | STRUCT | 1 | 161 | 161 | 0.01 | Y | main | | | |
| 34 | func_80180C90 | STRUCT | 1 | 160 | 160 | 0.01 | Y | main | | | |
| 35 | func_801299C8 | STRUCT | 1 | 158 | 158 | 0.01 | n | a | | | |
| 36 | func_8012C890 | STRUCT | 1 | 149 | 149 | 0.01 | n | a | | | |
| 37 | func_80135260 | STRUCT | 1 | 136 | 136 | 0.01 | n | a | | | |
| 38 | func_80183834 | STRUCT | 1 | 135 | 135 | 0.01 | Y | main | | | |
| 39 | func_80181948 | STRUCT | 1 | 132 | 132 | 0.01 | Y | main | | | |
| 40 | func_80185E68 | STRUCT | 1 | 132 | 132 | 0.01 | Y | main | | | |
*(+49 more STRUCT fns — see `.run/worklist.json`)*
### PINS — 38 fns, 5.5% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_8014E5B4 | PINS | 134 | 59 | 7906 | 0.46 | Y | main | 23 | none — MATCH | `.run/backlog_drafts/func_8014E5B4.c` |
| 2 | func_80151C54 | PINS | 134 | 52 | 6968 | 0.41 | Y | main | | none — MATCH (52 ins). Branch-polarity §3-T4: BD60 arm is fall-through (if !=1 && ==0x11), BC44 is else. | `.run/backlog_drafts/func_80151C54.c` |
| 3 | func_80136DFC | PINS | 134 | 50 | 6700 | 0.39 | Y | a | 0 | none — MATCH | `.run/backlog_drafts/func_80136DFC.c` |
| 4 | func_8015F380 | PINS | 134 | 50 | 6700 | 0.39 | Y | main | 0 | none — expect MATCH (single call-crossing local pinned to $s0) | `.run/backlog_drafts/func_8015F380.c` |
| 5 | func_80151B98 | PINS | 134 | 47 | 6298 | 0.37 | Y | main | | none — MATCH | `.run/backlog_drafts/func_80151B98.c` |
| 6 | func_80129C40 | PINS | 134 | 46 | 6164 | 0.36 | Y | a | 0 | none — MATCH (array-of-struct %lo-fold for the two 3-element 0xA4-stride bases) | `.run/backlog_drafts/func_80129C40.c` |
| 7 | func_80163764 | PINS | 134 | 42 | 5628 | 0.33 | Y | main | 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` |
| 8 | func_801522CC | PINS | 134 | 41 | 5494 | 0.32 | Y | main | 0 | TBD — first compile; func_80153C18 canonical is (void) but target sets $a0=$s0 in its delay slot (call-site c… | `.run/backlog_drafts/func_801522CC.c` |
| 9 | func_80152C80 | PINS | 134 | 41 | 5494 | 0.32 | Y | main | | none — MATCH expected (linear call/store sequence, no regalloc tension) | `.run/backlog_drafts/func_80152C80.c` |
| 10 | func_80146AFC | PINS | 134 | 40 | 5360 | 0.31 | Y | main | 13 | none — MATCH | `.run/backlog_drafts/func_80146AFC.c` |
| 11 | func_80131A34 | PINS | 134 | 37 | 4958 | 0.29 | Y | a | 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 | 134 | 35 | 4690 | 0.27 | Y | main | 0 | none — MATCH (35 ins, relocation-masked); canonical externs kept, call-site casts only | `.run/backlog_drafts/func_80151664.c` |
| 13 | func_80170CF0 | PINS | 134 | 30 | 4020 | 0.23 | Y | main | | 4-ins PROLOGUE-ORDER residual (body insns 4-29 byte-identical). My cc1 hoists the funcptr lui/lw ABOVE the fr… | `.run/backlog_drafts/func_80170CF0.c` |
| 14 | func_80141B90 | PINS | 134 | 29 | 3886 | 0.23 | Y | main | 24 | none — MATCH (29 ins); array-of-int %lo-fold + call + u16 if-block; volatile-double reserves the target's 8-b… | `.run/backlog_drafts/func_80141B90.c` |
| 15 | func_8016F0E4 | PINS | 134 | 26 | 3484 | 0.20 | Y | main | 1 | none — MATCH (26 ins); natural C form, param_1 auto-allocated to $s0 | `.run/backlog_drafts/func_8016F0E4.c` |
| 16 | func_801733FC | PINS | 134 | 25 | 3350 | 0.20 | Y | main | 0 | none — modeled on sibling func_80173460 (packed 8-byte struct copy + two s16=1 stores) | `.run/backlog_drafts/func_801733FC.c` |
| 17 | func_80131CA8 | PINS | 134 | 19 | 2546 | 0.15 | Y | a | 0 | none — MATCH (call-through-fnptr dispatcher: explicit return 1/return 0) | `.run/backlog_drafts/func_80131CA8.c` |
| 18 | func_80156600 | PINS | 134 | 18 | 2412 | 0.14 | Y | main | | none — MATCH (simple counted scan, do-while form per Ghidra-C) | `.run/backlog_drafts/func_80156600.c` |
| 19 | func_80161208 | PINS | 134 | 14 | 1876 | 0.11 | Y | main | 0 | none — MATCH expected (param saved across call → natural $s0, no pin needed) | `.run/backlog_drafts/func_80161208.c` |
| 20 | func_80164930 | PINS | 1 | 81 | 81 | 0.00 | Y | main | | none — MATCH (81 ins, relocation-masked) | `.run/backlog_drafts/func_80164930.c` |
| 21 | func_80141A60 | PINS | 1 | 76 | 76 | 0.00 | Y | main | 63 | none — MATCH (76 ins, relocation-masked). Body byte-identical; target reserves an 8-byte | `.run/backlog_drafts/func_80141A60.c` |
| 22 | func_8013E83C | PINS | 1 | 71 | 71 | 0.00 | Y | main | | none — MATCH (scalar global stores + 2 conditional calls; §3-T4 branch-polarity invert on the &0xFF test) | `.run/backlog_drafts/func_8013E83C.c` |
| 23 | func_8015D01C | PINS | 1 | 58 | 58 | 0.00 | Y | main | 0 | none — MATCH | `.run/backlog_drafts/func_8015D01C.c` |
| 24 | func_80158FA4 | PINS | 1 | 51 | 51 | 0.00 | Y | main | 17 | target keeps a DEAD `sra $a1,$v0,16` before `beqz $a1` (sign-extend of func_80159464's | `.run/backlog_drafts/func_80158FA4.c` |
| 25 | func_80178BF8 | PINS | 1 | 49 | 49 | 0.00 | Y | main | 0 | none — MATCH (pure scalar-store + two pointer-decrement do-while loops) | `.run/backlog_drafts/func_80178BF8.c` |
| 26 | func_80184C0C | PINS | 1 | 48 | 48 | 0.00 | Y | main | 1 | none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34) | `.run/backlog_drafts/func_80184C0C.c` |
| 27 | func_80140E6C | PINS | 1 | 37 | 37 | 0.00 | Y | main | 4 | 4 ins — each save-across-call copy (move s1,v0 / move s0,v0) should fill the NEXT jal's delay slot (target) b… | `.run/backlog_drafts/func_80140E6C.c` |
| 28 | func_80161C24 | PINS | 1 | 29 | 29 | 0.00 | Y | main | 1 | none — MATCH (array-of-struct %lo-fold; even/odd u16 fields at off 0/2, stride 4) | `.run/backlog_drafts/func_80161C24.c` |
| 29 | func_8018301C | PINS | 1 | 28 | 28 | 0.00 | Y | main | 24 | none — MATCH (straight-line, statement-order; verify with match_one) | `.run/backlog_drafts/func_8018301C.c` |
| 30 | func_80182338 | PINS | 1 | 26 | 26 | 0.00 | Y | main | | none — straight-line init; rely on gcc scheduler to hoist $a1/$v0=6 into prologue/delay-slot | `.run/backlog_drafts/func_80182338.c` |
| 31 | func_80182988 | PINS | 1 | 22 | 22 | 0.00 | Y | main | 0 | none — MATCH (u16 store of 0xAA10 forces ori, not sign-extended addiu) | `.run/backlog_drafts/func_80182988.c` |
| 32 | func_8012F828 | PINS | 1 | 21 | 21 | 0.00 | Y | a | | | |
| 33 | func_8012F8C8 | PINS | 1 | 21 | 21 | 0.00 | Y | a | | | |
| 34 | func_80157D20 | PINS | 1 | 21 | 21 | 0.00 | Y | main | 0 | none — MATCH expected (call, indexed u16-global load as 2nd arg, then call; param_1 saved across all three ca… | `.run/backlog_drafts/func_80157D20.c` |
| 35 | func_80161CD0 | PINS | 1 | 20 | 20 | 0.00 | Y | main | 14 | param_2 must survive the call in $s0; try plain C first then pin to $16 | `.run/backlog_drafts/func_80161CD0.c` |
| 36 | func_8013373C | PINS | 1 | 18 | 18 | 0.00 | Y | a | | | |
| 37 | func_801577C8 | PINS | 1 | 16 | 16 | 0.00 | Y | main | 0 | none — MATCH expected (scalar global store + two sequential calls, param preserved across first call) | `.run/backlog_drafts/func_801577C8.c` |
| 38 | func_80161D20 | PINS | 1 | 14 | 14 | 0.00 | Y | main | 1 | none — MATCH (array-of-u16 %lo-fold, §18) | `.run/backlog_drafts/func_80161D20.c` |
### WAVE — 251 fns, 51.7% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_80155800 | WAVE | 134 | 145 | 19430 | 1.13 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80155800.c` |
| 2 | func_8014E048 | WAVE | 134 | 143 | 19162 | 1.12 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E048.c` |
| 3 | func_8014F4C0 | WAVE | 134 | 141 | 18894 | 1.10 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014F4C0.c` |
| 4 | func_8014ADE0 | WAVE | 134 | 139 | 18626 | 1.09 | Y | main | 19 | 16 ins off — all compiler-internal ties: (1) 0xAAA8 const lands $v0 vs target $v1; | `.run/backlog_drafts/func_8014ADE0.c` |
| 5 | func_80174CB0 | WAVE | 134 | 123 | 16482 | 0.96 | Y | main | 0 | close=0 match_one MATCH but its anon typedef is named 'Buf' which COLLIDES with the existing 'Buf' (s16 h[8],… | `.run/backlog_drafts/func_80174CB0.c` |
| 6 | func_80167540 | WAVE | 134 | 117 | 15678 | 0.91 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_80167540.c` |
| 7 | func_801325B8 | WAVE | 134 | 113 | 15142 | 0.88 | Y | a | 4 | 4/113 — prologue save-order of the $s0(cur/p3) vs $s5(p1) pair; gcc emits | `.run/backlog_drafts/func_801325B8.c` |
| 8 | func_8014DD8C | WAVE | 134 | 108 | 14472 | 0.84 | Y | main | 83 | WAVE: 83 mismatch | `.run/backlog_drafts/func_8014DD8C.c` |
| 9 | func_8014E284 | WAVE | 134 | 108 | 14472 | 0.84 | Y | main | | won't compile standalone (loose-typing / missing decl) | `.run/backlog_drafts/func_8014E284.c` |
| 10 | func_8012CC88 | WAVE | 134 | 105 | 14070 | 0.82 | Y | a | 0 | none — MATCH (105 ins, relocation-masked) | `.run/backlog_drafts/func_8012CC88.c` |
| 11 | func_80169228 | WAVE | 134 | 105 | 14070 | 0.82 | Y | main | 0 | none — MATCH (105 ins, relocation-masked). Key levers: arg0/p pinned $s1/$s0, | `.run/backlog_drafts/func_80169228.c` |
| 12 | func_80167714 | WAVE | 134 | 104 | 13936 | 0.81 | Y | main | 0 | none — MATCH (104 ins) | `.run/backlog_drafts/func_80167714.c` |
| 13 | func_801463A0 | WAVE | 134 | 101 | 13534 | 0.79 | Y | main | 0 | none — MATCH (101 ins, match_one); real symbol names; misaligned 8B copy + s16 stores + masked B9C last | `.run/backlog_drafts/func_801463A0.c` |
| 14 | func_80177940 | WAVE | 134 | 101 | 13534 | 0.79 | Y | main | 65 | prologue+setup (35 ins) byte-match exactly; loop body diverges on gcc loop-invariant hoist ORDERING (schedule… | `.run/backlog_drafts/func_80177940.c` |
| 15 | func_801387B8 | WAVE | 134 | 100 | 13400 | 0.78 | Y | a | 50 | the two scanned bytes land in $a0/$a1 not $a1/$a2 (gcc-2.7.2 grabs the freed incoming-arg $a0 for the first l… | `.run/backlog_drafts/func_801387B8.c` |
| 16 | func_801379FC | WAVE | 134 | 97 | 12998 | 0.76 | Y | a | 0 | none — MATCH (match_one 97/97) | `.run/backlog_drafts/func_801379FC.c` |
| 17 | func_8014CD80 | WAVE | 134 | 97 | 12998 | 0.76 | Y | main | | none — MATCH (97 ins). iVar3 pinned to $v1 (register __asm__("$3")) so | `.run/backlog_drafts/func_8014CD80.c` |
| 18 | func_8014FE60 | WAVE | 134 | 95 | 12730 | 0.74 | Y | main | 20 | none — MATCH (permuter closed the final bothzero-block regalloc/schedule residual: moving `a = in[2]` before … | `.run/backlog_drafts/func_8014FE60.c` |
| 19 | func_80150170 | WAVE | 134 | 95 | 12730 | 0.74 | Y | main | | none — MATCH (95/95). Keys: (1) two parallel 3-halfword groups via chained assign `sp10.x = sp18.x = v` (sp18… | `.run/backlog_drafts/func_80150170.c` |
| 20 | func_8014D12C | WAVE | 134 | 93 | 12462 | 0.73 | Y | main | | none — MATCH (93 ins). Block-order lever: success-continuation (return 1) | `.run/backlog_drafts/func_8014D12C.c` |
| 21 | func_8014FFDC | WAVE | 134 | 93 | 12462 | 0.73 | Y | main | 1 | none — MATCH | `.run/backlog_drafts/func_8014FFDC.c` |
| 22 | func_801502EC | WAVE | 134 | 93 | 12462 | 0.73 | Y | main | | none — MATCH (93 ins). 8-byte block copy via alignment-1 struct (Blk8{u8 b[8]}) assignment reproduces the lwl… | `.run/backlog_drafts/func_801502EC.c` |
| 23 | func_8014C6F4 | WAVE | 134 | 91 | 12194 | 0.71 | Y | main | | 19-off loop tie-break — target compiles the search as a while/for (pre-guard sltu;beqz present) with the foun… | `.run/backlog_drafts/func_8014C6F4.c` |
| 24 | func_80173CB4 | WAVE | 134 | 90 | 12060 | 0.70 | Y | main | | none — MATCH (switch form keeps cases unmerged; final block: reuse one temp for the D_8012750C test + the fun… | `.run/backlog_drafts/func_80173CB4.c` |
| 25 | func_8016A73C | WAVE | 134 | 85 | 11390 | 0.66 | Y | main | | none — MATCH (85 ins, relocation-masked) | `.run/backlog_drafts/func_8016A73C.c` |
| 26 | func_8012B4B8 | WAVE | 134 | 84 | 11256 | 0.66 | Y | a | 0 | none — MATCH | `.run/backlog_drafts/func_8012B4B8.c` |
| 27 | func_8014D4C0 | WAVE | 134 | 84 | 11256 | 0.66 | Y | main | | none — MATCH (goto forces if-body out-of-line/last; `>=` fixes slt operand order) | `.run/backlog_drafts/func_8014D4C0.c` |
| 28 | func_80156670 | WAVE | 134 | 83 | 11122 | 0.65 | Y | main | | none — MATCH (83 ins). Key: hoist `iVar1 = uVar3*4;` as its OWN statement before the if so gcc schedules `sll… | `.run/backlog_drafts/func_80156670.c` |
| 29 | func_8014CF04 | WAVE | 134 | 82 | 10988 | 0.64 | Y | main | | none — MATCH (82 ins; array-of-struct scan, for-loop over Ent D_801202A0[96], stride 0x10C) | `.run/backlog_drafts/func_8014CF04.c` |
| 30 | func_8012E138 | WAVE | 134 | 81 | 10854 | 0.63 | Y | a | 0 | none — MATCH (81/81 ins, match_one proxy); reloaded ptr pinned to $a0 | `.run/backlog_drafts/func_8012E138.c` |
| 31 | func_8014D2A0 | WAVE | 134 | 80 | 10720 | 0.62 | Y | main | 27 | none — MATCH (80 ins, relocation-masked); loop-guard idiom per engine_core DEFINE_func_80164ACC | `.run/backlog_drafts/func_8014D2A0.c` |
| 32 | func_8012A1BC | WAVE | 134 | 78 | 10452 | 0.61 | Y | a | 42 | 42/78 — block-copy bytes correct (char[8] => lwl/lwr/swl/swr); residual is gcc's load-hoist split. Target hoi… | `.run/backlog_drafts/func_8012A1BC.c` |
| 33 | func_80137178 | WAVE | 134 | 78 | 10452 | 0.61 | Y | a | 15 | reg values all correct; prologue independent-addiu order + lazy sw placement differ | `.run/backlog_drafts/func_80137178.c` |
| 34 | func_8016163C | WAVE | 134 | 78 | 10452 | 0.61 | Y | main | 50 | none — MATCH (78 ins). First arm calls func_801599A4 with NO arg (asm nop delay slot) via fn-ptr cast ((void(… | `.run/backlog_drafts/func_8016163C.c` |
| 35 | func_80163534 | WAVE | 134 | 76 | 10184 | 0.59 | Y | main | | mismatch=13, a single 1-position scheduling tie. Instrs 1-30 byte-perfect; all registers correct | `.run/backlog_drafts/func_80163534.c` |
| 36 | func_8014D610 | WAVE | 134 | 74 | 9916 | 0.58 | Y | main | | none — MATCH (74 ins). for-loop + continue, single IV pointer p; gcc derives the $s0 = p+0x75 second inductio… | `.run/backlog_drafts/func_8014D610.c` |
| 37 | func_8012E014 | WAVE | 134 | 73 | 9782 | 0.57 | Y | a | 0 | none — MATCH (expected; straightforward struct-field + global-copy body) | `.run/backlog_drafts/func_8012E014.c` |
| 38 | func_80164418 | WAVE | 134 | 70 | 9380 | 0.55 | Y | main | 0 | none — MATCH (s16 stack array forces the spill; 2nd ratan2 reuses /dy/ in $a1) | `.run/backlog_drafts/func_80164418.c` |
| 39 | func_80161774 | WAVE | 134 | 69 | 9246 | 0.54 | Y | main | 53 | none — MATCH (69 ins, match_one verified; clean nested-if; param_1 -> $s0 call-crossing) | `.run/backlog_drafts/func_80161774.c` |
| 40 | func_80175308 | WAVE | 134 | 67 | 8978 | 0.52 | Y | main | | none — MATCH (67 ins, relocation-masked) | `.run/backlog_drafts/func_80175308.c` |
*(+211 more WAVE fns — see `.run/worklist.json`)*
### O0 — 9 fns, 0.3% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_8013C08C | O0 | 134 | 27 | 3618 | 0.21 | Y | o0 | | | |
| 2 | func_8013C414 | O0 | 1 | 329 | 329 | 0.02 | Y | o0 | | | |
| 3 | func_8013B83C | O0 | 1 | 272 | 272 | 0.02 | Y | o0 | | | |
| 4 | func_8013BD74 | O0 | 1 | 198 | 198 | 0.01 | Y | o0 | | | |
| 5 | func_8013C0F8 | O0 | 1 | 154 | 154 | 0.01 | Y | o0 | | | |
| 6 | func_8013B6A0 | O0 | 1 | 67 | 67 | 0.00 | Y | o0 | | | |
| 7 | func_8013B598 | O0 | 1 | 66 | 66 | 0.00 | Y | o0 | | | |
| 8 | func_8013BC7C | O0 | 1 | 24 | 24 | 0.00 | Y | o0 | | | |
| 9 | func_8013BCDC | O0 | 1 | 22 | 22 | 0.00 | Y | o0 | | | |
### O1 — 1 fns, 0.3% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_80161A90 | O1 | 134 | 34 | 4556 | 0.27 | Y | main | | none — MATCH (34 ins) at the overlay's STANDARD -O2 (match_one reports MATCH). NO -O1 split needed. | `.run/backlog_drafts/func_80161A90.c` |
### STUB — 33 fns, 4.5% of remaining gain
| # | name | class | reach | nins | gain_ins | %rem | cached | region | close | where it stuck | best draft |
|--:|------|-------|------:|-----:|---------:|-----:|--------|--------|------:|----------------|------------|
| 1 | func_801330E0 | STUB | 134 | 110 | 14740 | 0.86 | Y | a | 79 | none — MATCH (110/110 words byte-identical via objcopy raw .text, reloc-masked on jal+%hi/%lo(D_800AF648)). m… | `.run/backlog_drafts/func_801330E0.c` |
| 2 | func_80158638 | STUB | 134 | 87 | 11658 | 0.68 | Y | main | 2 | none — MATCH (proxy); callee externs are plain func_<addr>, gate's canon/cast passes own them | `.run/backlog_drafts/func_80158638.c` |
| 3 | func_80173BC0 | STUB | 134 | 41 | 5494 | 0.32 | Y | main | | none — MATCH. Keys: invert mask branch (else-block = 80174650 path so func_8013E588 | `.run/backlog_drafts/func_80173BC0.c` |
| 4 | func_8012A6D0 | STUB | 134 | 34 | 4556 | 0.27 | Y | a | 0 | none — MATCH (sum order p[2]^2 + p[0]^2, then ratan2(p1[1]-p2[1], (s16)dist)) | `.run/backlog_drafts/func_8012A6D0.c` |
| 5 | func_8012EFB8 | STUB | 134 | 32 | 4288 | 0.25 | Y | a | 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` |
| 6 | func_8016BA68 | STUB | 134 | 29 | 3886 | 0.23 | Y | main | | none — MATCH (29 ins, straight-line; lh narrow loads at call site) | `.run/backlog_drafts/func_8016BA68.c` |
| 7 | func_80160F00 | STUB | 134 | 28 | 3752 | 0.22 | Y | main | 0 | none — MATCH (straight-line STUB; $s0 holds param_1 across calls naturally) | `.run/backlog_drafts/func_80160F00.c` |
| 8 | func_80146C3C | STUB | 134 | 23 | 3082 | 0.18 | Y | main | 0 | none — MATCH | `.run/backlog_drafts/func_80146C3C.c` |
| 9 | func_80162CCC | STUB | 134 | 23 | 3082 | 0.18 | Y | main | 0 | none — MATCH expected; direct translation, psVar1 as u16* gives lhu, $s0=param_1 survives both calls | `.run/backlog_drafts/func_80162CCC.c` |
| 10 | func_80166244 | STUB | 134 | 22 | 2948 | 0.17 | Y | main | 0 | none — MATCH expected (single tail-call STUB) | `.run/backlog_drafts/func_80166244.c` |
| 11 | func_801653B8 | STUB | 134 | 15 | 2010 | 0.12 | Y | main | 0 | none — MATCH expected (simple call-crossing wrapper, param saved in $s0) | `.run/backlog_drafts/func_801653B8.c` |
| 12 | func_801542A4 | STUB | 134 | 14 | 1876 | 0.11 | Y | main | 0 | none — MATCH expected (simple stub: field stores + tail call) | `.run/backlog_drafts/func_801542A4.c` |
| 13 | func_8016F0AC | STUB | 134 | 14 | 1876 | 0.11 | Y | main | 0 | none — MATCH (expected; address CSE'd into $s0 across both calls) | `.run/backlog_drafts/func_8016F0AC.c` |
| 14 | func_8014C568 | STUB | 134 | 13 | 1742 | 0.10 | Y | main | 0 | none — MATCH expected; straightforward ratan2 wrapper with two s16 deltas & 0xFFF | `.run/backlog_drafts/func_8014C568.c` |
| 15 | func_8015BE94 | STUB | 134 | 12 | 1608 | 0.09 | Y | main | 0 | none — MATCH | `.run/backlog_drafts/func_8015BE94.c` |
| 16 | func_801732C4 | STUB | 134 | 12 | 1608 | 0.09 | Y | main | 0 | none — MATCH (param survives first call → $s0; ghidra-C order is correct) | `.run/backlog_drafts/func_801732C4.c` |
| 17 | func_8017331C | STUB | 134 | 12 | 1608 | 0.09 | Y | main | 0 | none — MATCH (param_1 saved to $s0 across first call, passed to second) | `.run/backlog_drafts/func_8017331C.c` |
| 18 | func_80173374 | STUB | 134 | 12 | 1608 | 0.09 | Y | main | 0 | none — MATCH expected (param_1 lives across first call → naturally lands in $s0) | `.run/backlog_drafts/func_80173374.c` |
| 19 | func_80174554 | STUB | 134 | 12 | 1608 | 0.09 | Y | main | 0 | none — MATCH (clean stub; param_1 reused in $a0 across first call, saved to $s0 for second) | `.run/backlog_drafts/func_80174554.c` |
| 20 | func_801745AC | STUB | 134 | 12 | 1608 | 0.09 | Y | main | | none — MATCH (stub: param saved in $s0 across first call, passed to second) | `.run/backlog_drafts/func_801745AC.c` |
| 21 | func_80174650 | STUB | 134 | 9 | 1206 | 0.07 | Y | main | | | |
| 22 | func_80133CD4 | STUB | 1 | 399 | 399 | 0.02 | n | a | | | |
| 23 | func_8013CB84 | STUB | 1 | 249 | 249 | 0.01 | Y | main | | | |
| 24 | func_8013D53C | STUB | 1 | 240 | 240 | 0.01 | Y | main | | | |
| 25 | func_8013B274 | STUB | 1 | 189 | 189 | 0.01 | n | a | | | |
| 26 | func_8013D9B0 | STUB | 1 | 141 | 141 | 0.01 | Y | main | | | |
| 27 | func_80140F00 | STUB | 1 | 128 | 128 | 0.01 | Y | main | | | |
| 28 | func_8013AD38 | STUB | 1 | 122 | 122 | 0.01 | n | a | | | |
| 29 | func_80138C60 | STUB | 1 | 62 | 62 | 0.00 | n | a | | | |
| 30 | func_8016BEA0 | STUB | 1 | 37 | 37 | 0.00 | Y | main | 0 | none — MATCH (expected) | `.run/backlog_drafts/func_8016BEA0.c` |
| 31 | func_8017D900 | STUB | 1 | 35 | 35 | 0.00 | Y | main | 0 | none — expect MATCH (STUB: ordered global stores + single tail call, sibling of func_8017D840) | `.run/backlog_drafts/func_8017D900.c` |
| 32 | func_8017D98C | STUB | 1 | 31 | 31 | 0.00 | Y | main | 0 | none — MATCH (expected): straight global stores + tail call; const 0x140 reused for two halves | `.run/backlog_drafts/func_8017D98C.c` |
| 33 | func_801336E8 | STUB | 1 | 21 | 21 | 0.00 | n | a | | | |