feat(phase-30 S45 II.1c): module batch dedup-banked + verified — 408 banks, R22 183/183, audit-disc 75->34 (parked-only)

- dedup measure (R37 probe): 69/1,113 module fns h_exact-match matched corpus (~6%, LOW as
  planned — modules are novel frontier); dedup_extend inapplicable (same-vram group model) ->
  family_sweep --hseq --band all over the 57 matched-exemplar families: 408 member-matches
  banked (182 into modules, 226 into the big 3 — families Part I's --only scoping missed),
  169 failed + 77 STRUCT = genuine per-member frontier
- R22 clean-fleet 183/183 BYTE-IDENTICAL; audit-disc UNCLAIMED 75->34 residue 0 (34 = 31
  parked-for-L3 + SC03/53,54,56 — 3 rows Discovery-3 never tiered, now parked with evidence)
- three instrument fixes, each negative-control-proven:
  - family_sweep --hseq stub map derives ov_*+md_*+resident (was sig.ov_* glob -> module
    members silently 'not-stub', R32 class) [committed earlier as commit:1506]
  - sig-modules seeds from the built ELF's func_* symbols (bootstrap GLUES adjacent fns
    around jtbl dispatch -> 24 false TRUNCATED; perturbed-sig control still bites)
  - corpus.audit counts CODE lines only (module .s carries its header jtbl as .word lines);
    progress.py buckets INCLUDE_RODATA symbols as blobs (unbucketed R32 hole)
- NEW HONEST BASELINE (183 binaries): 94.0% instr / 95.96% fn-count / 87.6% distinct;
  tools-health OK, audit-digest OK
This commit is contained in:
Drew T
2026-08-06 13:13:54 -06:00
parent b1dbfcb572
commit 4cadac4e11
47 changed files with 3778 additions and 522 deletions
+18 -2
View File
@@ -321,6 +321,10 @@ sig-resident:
# sig-modules (P30 S44): sign every module-class binary at ITS OWN vram (from modules.mk) with its
# own TEXT_LO (the §154 module-id-word law: code starts past the header; bootstrap from offset 0
# yields 0 functions). Same derived-jobs shape as sig-overlays (R33). Empty MODULE_BINARIES = no-op.
# S45: SEED from the built ELF's text symbols when the build exists (R33 — splat's post-link
# boundaries are the finer oracle; --bootstrap's linear partition GLUES adjacent functions around
# jtbl-dispatch code, which read as 24 TRUNCATED slices in audit-corpus). Fresh-clone fallback
# (no build yet) stays --bootstrap; the next sig-modules after a build self-heals.
MODULE_SIG_JOBS := $(foreach a,$(MODULE_BINARIES),$(a):$($(a)_EXE):$($(a)_VRAM_BASE):$($(a)_TEXT_LO))
sig-modules:
@n=0
@@ -328,8 +332,20 @@ sig-modules:
alias=$${job%%:*}; rest=$${job#*:}; f=$${rest%%:*}; rest=$${rest#*:}
vram=$${rest%%:*}; tlo=$${rest#*:}
[ -f "$$f" ] || { echo "sig-modules: WARN no payload for $$alias ($$f)"; continue; }
$(VENV_PY) tools/sig_image.py --image "$$f" --vram-base "$$vram" --bootstrap --name "$$alias" \
$${tlo:+--text-lo "$$tlo"} >/dev/null
elf="build/$$alias/$$alias.elf"
if [ -f "$$elf" ]; then
# func_*-named, 4-aligned, at/after TEXT_LO only: the module links into ONE output
# section, so nm types EVERY symbol T — data labels (odd addresses) included.
mipsel-linux-gnu-nm "$$elf" | awk -v lo=$$(($$tlo)) \
'$$2=="T" && $$3~"^func_" { a=strtonum("0x" $$1); if (a>=lo && a%4==0) printf "0x%X\n", a }' \
| sort -u > ".run/seeds.$$alias.txt"
$(VENV_PY) tools/sig_image.py --image "$$f" --vram-base "$$vram" \
--seeds ".run/seeds.$$alias.txt" --name "$$alias" \
$${tlo:+--text-lo "$$tlo"} >/dev/null
else
$(VENV_PY) tools/sig_image.py --image "$$f" --vram-base "$$vram" --bootstrap --name "$$alias" \
$${tlo:+--text-lo "$$tlo"} >/dev/null
fi
n=$$((n+1))
done
echo "sig-modules: signed $$n modules (of $(words $(MODULE_BINARIES)) onboarded)"
+44 -44
View File
@@ -9,8 +9,8 @@
| bucket | bytes | share |
|---|---:|---:|
| onboarded-code | 48,592,729 | 11.68% |
| unclaimed-code | 2,038,104 | 0.49% |
| onboarded-code | 49,594,625 | 11.92% |
| unclaimed-code | 1,036,208 | 0.25% |
| classified-data | 134,265,572 | 32.27% |
| audio-video | 184,338,000 | 44.31% |
| filesystem-metadata | 46,787,355 | 11.25% |
@@ -108,50 +108,11 @@
| MAIN.CD/20 | 1 | 1 | 3,244 | data | code | 3 | 0.84/0.0173 |
| SLUS_007.26 | - | - | 413,696 | code | data | 0 | 0.96/0.0143 |
## Code payloads — 75 UNCLAIMED of 218
## Code payloads — 34 UNCLAIMED of 218
| file | entry | type | bytes | bucket | claimed-by | valid/jr |
|---|---|---|---:|---|---|---|
| MAIN.CD/0 | 0 | 1 | 19,996 | unclaimed-code | UNCLAIMED | 0.73/0.0022 L2=3 |
| MAIN.CD/1 | 1 | 1 | 19,996 | unclaimed-code | UNCLAIMED | 0.73/0.0022 L2=3 |
| MAIN.CD/11 | 1 | 1 | 24,240 | unclaimed-code | UNCLAIMED | 0.95/0.0035 L2=3 |
| MAIN.CD/13 | 1 | 1 | 6,100 | unclaimed-code | UNCLAIMED | 0.78/0.0105 L2=3 |
| MAIN.CD/14 | 1 | 1 | 2,088 | unclaimed-code | UNCLAIMED | 0.99/0.0249 L2=3 |
| MAIN.CD/15 | 1 | 1 | 6,768 | unclaimed-code | UNCLAIMED | 0.86/0.0118 L2=3 |
| MAIN.CD/16 | 1 | 1 | 1,928 | unclaimed-code | UNCLAIMED | 0.99/0.0270 L2=3 |
| MAIN.CD/17 | 1 | 1 | 1,492 | unclaimed-code | UNCLAIMED | 0.97/0.0268 L2=3 |
| MAIN.CD/18 | 1 | 1 | 2,712 | unclaimed-code | UNCLAIMED | 0.96/0.0162 L2=3 |
| MAIN.CD/19 | 1 | 1 | 6,760 | unclaimed-code | UNCLAIMED | 0.94/0.0130 L2=3 |
| MAIN.CD/20 | 1 | 1 | 3,244 | unclaimed-code | UNCLAIMED | 0.84/0.0173 L2=3 |
| MAIN.CD/21 | 1 | 1 | 1,936 | unclaimed-code | UNCLAIMED | 0.99/0.0227 L2=3 |
| MAIN.CD/22 | 1 | 1 | 4,072 | unclaimed-code | UNCLAIMED | 1.00/0.0324 L2=3 |
| MAIN.CD/23 | 0 | 1 | 388 | unclaimed-code | UNCLAIMED | 0.99/0.0619 L2=3 |
| MAIN.CD/24 | 0 | 1 | 332 | unclaimed-code | UNCLAIMED | 0.99/0.0723 L2=3 |
| MAIN.CD/25 | 1 | 1 | 6,396 | unclaimed-code | UNCLAIMED | 0.87/0.0188 L2=3 |
| MAIN.CD/26 | 1 | 1 | 3,600 | unclaimed-code | UNCLAIMED | 0.99/0.0267 L2=3 |
| MAIN.CD/27 | 1 | 1 | 5,272 | unclaimed-code | UNCLAIMED | 0.98/0.0220 L2=3 |
| MAIN.CD/28 | 1 | 1 | 4,460 | unclaimed-code | UNCLAIMED | 0.99/0.0197 L2=3 |
| MAIN.CD/29 | 1 | 1 | 1,984 | unclaimed-code | UNCLAIMED | 0.98/0.0222 L2=3 |
| MAIN.CD/30 | 1 | 1 | 1,876 | unclaimed-code | UNCLAIMED | 0.98/0.0213 L2=3 |
| MAIN.CD/31 | 1 | 1 | 5,044 | unclaimed-code | UNCLAIMED | 0.97/0.0143 L2=3 |
| MAIN.CD/32 | 1 | 1 | 5,572 | unclaimed-code | UNCLAIMED | 0.87/0.0072 L2=3 |
| MAIN.CD/33 | 1 | 1 | 3,264 | unclaimed-code | UNCLAIMED | 0.99/0.0233 L2=3 |
| MAIN.CD/34 | 1 | 1 | 7,444 | unclaimed-code | UNCLAIMED | 0.92/0.0150 L2=3 |
| MAIN.CD/35 | 1 | 1 | 1,248 | unclaimed-code | UNCLAIMED | 0.97/0.0513 L2=3 |
| MAIN.CD/36 | 1 | 1 | 4,916 | unclaimed-code | UNCLAIMED | 0.99/0.0228 L2=3 |
| MAIN.CD/37 | 1 | 1 | 2,904 | unclaimed-code | UNCLAIMED | 0.90/0.0234 L2=3 |
| MAIN.CD/38 | 1 | 1 | 7,232 | unclaimed-code | UNCLAIMED | 0.85/0.0111 L2=3 |
| MAIN.CD/39 | 1 | 1 | 5,700 | unclaimed-code | UNCLAIMED | 0.97/0.0182 L2=3 |
| MAIN.CD/40 | 1 | 1 | 3,956 | unclaimed-code | UNCLAIMED | 0.98/0.0192 L2=3 |
| MAIN.CD/41 | 1 | 1 | 4,100 | unclaimed-code | UNCLAIMED | 0.97/0.0146 L2=3 |
| MAIN.CD/42 | 0 | 1 | 636 | unclaimed-code | UNCLAIMED | 1.00/0.0252 L2=3 |
| MAIN.CD/43 | 0 | 1 | 3,912 | unclaimed-code | UNCLAIMED | 1.00/0.0235 L2=3 |
| MAIN.CD/44 | 0 | 1 | 8,920 | unclaimed-code | UNCLAIMED | 0.98/0.0197 L2=3 |
| MAIN.CD/45 | 0 | 1 | 5,432 | unclaimed-code | UNCLAIMED | 0.97/0.0155 L2=3 |
| MAIN.CD/46 | 0 | 1 | 7,612 | unclaimed-code | UNCLAIMED | 0.94/0.0205 L2=3 |
| MAIN.CD/47 | 0 | 1 | 3,272 | unclaimed-code | UNCLAIMED | 1.00/0.0147 L2=3 |
| MAIN.CD/7 | -1 | -1 | 9,600 | unclaimed-code | UNCLAIMED | 0.99/0.0079 L2=3 |
| MAIN.CD/8 | 1 | 1 | 840 | unclaimed-code | UNCLAIMED | 1.00/0.0286 L2=3 |
| MAIN.CD/9 | 0 | 1 | 2,544 | unclaimed-code | UNCLAIMED | 0.99/0.0189 L2=3 |
| SC02.CD/9 | 0 | 1 | 70,784 | unclaimed-code | UNCLAIMED | 0.70/0.0023 L2=3 |
| SC03.CD/132 | 2 | 1 | 29,080 | unclaimed-code | UNCLAIMED | 0.79/0.0039 L2=3 |
@@ -185,10 +146,47 @@
| SC05.CD/27 | 2 | 1 | 32,792 | unclaimed-code | UNCLAIMED | 0.79/0.0043 L2=3 |
| SC05.CD/28 | 2 | 1 | 15,732 | unclaimed-code | UNCLAIMED | 0.84/0.0069 L2=3 |
| SC05.CD/29 | 2 | 1 | 39,396 | unclaimed-code | UNCLAIMED | 0.79/0.0031 L2=3 |
| SC07.CD/3 | 1 | 1 | 345,132 | unclaimed-code | UNCLAIMED | 0.57/0.0012 L2=3 |
| SC07.CD/4 | 1 | 1 | 365,152 | unclaimed-code | UNCLAIMED | 0.84/0.0035 L2=3 |
| MAIN.CD/0 | 0 | 1 | 19,996 | onboarded-code | md_MAIN_001 | 0.73/0.0022 L2=3 |
| MAIN.CD/1 | 1 | 1 | 19,996 | onboarded-code | md_MAIN_001 | 0.73/0.0022 L2=3 |
| MAIN.CD/10 | 1 | 1 | 365,404 | onboarded-code | resident | 0.72/0.0016 L2=3 |
| MAIN.CD/11 | 1 | 1 | 24,240 | onboarded-code | md_MAIN_011 | 0.95/0.0035 L2=3 |
| MAIN.CD/12 | 1 | 1 | 383,783 | onboarded-code | ov_MAIN_012 | 0.99/0.0250 L2=3 |
| MAIN.CD/13 | 1 | 1 | 6,100 | onboarded-code | md_MAIN_013 | 0.78/0.0105 L2=3 |
| MAIN.CD/14 | 1 | 1 | 2,088 | onboarded-code | md_MAIN_014 | 0.99/0.0249 L2=3 |
| MAIN.CD/15 | 1 | 1 | 6,768 | onboarded-code | md_MAIN_015 | 0.86/0.0118 L2=3 |
| MAIN.CD/16 | 1 | 1 | 1,928 | onboarded-code | md_MAIN_016 | 0.99/0.0270 L2=3 |
| MAIN.CD/17 | 1 | 1 | 1,492 | onboarded-code | md_MAIN_017 | 0.97/0.0268 L2=3 |
| MAIN.CD/18 | 1 | 1 | 2,712 | onboarded-code | md_MAIN_018 | 0.96/0.0162 L2=3 |
| MAIN.CD/19 | 1 | 1 | 6,760 | onboarded-code | md_MAIN_019 | 0.94/0.0130 L2=3 |
| MAIN.CD/20 | 1 | 1 | 3,244 | onboarded-code | md_MAIN_020 | 0.84/0.0173 L2=3 |
| MAIN.CD/21 | 1 | 1 | 1,936 | onboarded-code | md_MAIN_021 | 0.99/0.0227 L2=3 |
| MAIN.CD/22 | 1 | 1 | 4,072 | onboarded-code | md_MAIN_022 | 1.00/0.0324 L2=3 |
| MAIN.CD/23 | 0 | 1 | 388 | onboarded-code | md_MAIN_023 | 0.99/0.0619 L2=3 |
| MAIN.CD/24 | 0 | 1 | 332 | onboarded-code | md_MAIN_024 | 0.99/0.0723 L2=3 |
| MAIN.CD/25 | 1 | 1 | 6,396 | onboarded-code | md_MAIN_025 | 0.87/0.0188 L2=3 |
| MAIN.CD/26 | 1 | 1 | 3,600 | onboarded-code | md_MAIN_026 | 0.99/0.0267 L2=3 |
| MAIN.CD/27 | 1 | 1 | 5,272 | onboarded-code | md_MAIN_027 | 0.98/0.0220 L2=3 |
| MAIN.CD/28 | 1 | 1 | 4,460 | onboarded-code | md_MAIN_028 | 0.99/0.0197 L2=3 |
| MAIN.CD/29 | 1 | 1 | 1,984 | onboarded-code | md_MAIN_029 | 0.98/0.0222 L2=3 |
| MAIN.CD/30 | 1 | 1 | 1,876 | onboarded-code | md_MAIN_030 | 0.98/0.0213 L2=3 |
| MAIN.CD/31 | 1 | 1 | 5,044 | onboarded-code | md_MAIN_031 | 0.97/0.0143 L2=3 |
| MAIN.CD/32 | 1 | 1 | 5,572 | onboarded-code | md_MAIN_032 | 0.87/0.0072 L2=3 |
| MAIN.CD/33 | 1 | 1 | 3,264 | onboarded-code | md_MAIN_033 | 0.99/0.0233 L2=3 |
| MAIN.CD/34 | 1 | 1 | 7,444 | onboarded-code | md_MAIN_034 | 0.92/0.0150 L2=3 |
| MAIN.CD/35 | 1 | 1 | 1,248 | onboarded-code | md_MAIN_035 | 0.97/0.0513 L2=3 |
| MAIN.CD/36 | 1 | 1 | 4,916 | onboarded-code | md_MAIN_036 | 0.99/0.0228 L2=3 |
| MAIN.CD/37 | 1 | 1 | 2,904 | onboarded-code | md_MAIN_037 | 0.90/0.0234 L2=3 |
| MAIN.CD/38 | 1 | 1 | 7,232 | onboarded-code | md_MAIN_038 | 0.85/0.0111 L2=3 |
| MAIN.CD/39 | 1 | 1 | 5,700 | onboarded-code | md_MAIN_039 | 0.97/0.0182 L2=3 |
| MAIN.CD/40 | 1 | 1 | 3,956 | onboarded-code | md_MAIN_040 | 0.98/0.0192 L2=3 |
| MAIN.CD/41 | 1 | 1 | 4,100 | onboarded-code | md_MAIN_041 | 0.97/0.0146 L2=3 |
| MAIN.CD/42 | 0 | 1 | 636 | onboarded-code | md_MAIN_042 | 1.00/0.0252 L2=3 |
| MAIN.CD/43 | 0 | 1 | 3,912 | onboarded-code | md_MAIN_043 | 1.00/0.0235 L2=3 |
| MAIN.CD/44 | 0 | 1 | 8,920 | onboarded-code | md_MAIN_044 | 0.98/0.0197 L2=3 |
| MAIN.CD/45 | 0 | 1 | 5,432 | onboarded-code | md_MAIN_045 | 0.97/0.0155 L2=3 |
| MAIN.CD/46 | 0 | 1 | 7,612 | onboarded-code | md_MAIN_046 | 0.94/0.0205 L2=3 |
| MAIN.CD/47 | 0 | 1 | 3,272 | onboarded-code | md_MAIN_047 | 1.00/0.0147 L2=3 |
| MAIN.CD/8 | 1 | 1 | 840 | onboarded-code | md_MAIN_008 | 1.00/0.0286 L2=3 |
| SC01.CD/0 | 0 | 4 | 513,935 | onboarded-code | ov_SC01_000 | 0.95/0.0187 L2=3 |
| SC01.CD/1 | 0 | 4 | 831,599 | onboarded-code | ov_SC01_001 | 0.74/0.0119 L2=3 |
| SC01.CD/4 | 0 | 4 | 426,615 | onboarded-code | ov_SC01_004 | 0.97/0.0227 L2=3 |
@@ -325,6 +323,8 @@
| SC07.CD/10 | 1 | 4 | 529,391 | onboarded-code | ov_SC07_010 | 0.94/0.0191 L2=3 |
| SC07.CD/11 | 1 | 4 | 426,919 | onboarded-code | ov_SC07_011 | 0.98/0.0230 L2=3 |
| SC07.CD/2 | 0 | 4 | 491,391 | onboarded-code | ov_SC07_002 | 0.98/0.0210 L2=3 |
| SC07.CD/3 | 1 | 1 | 345,132 | onboarded-code | md_SC07_003 | 0.57/0.0012 L2=3 |
| SC07.CD/4 | 1 | 1 | 365,152 | onboarded-code | md_SC07_004 | 0.84/0.0035 L2=3 |
| SC07.CD/6 | 1 | 4 | 844,311 | onboarded-code | ov_SC07_006 | 0.84/0.0116 L2=3 |
| SC07.CD/7 | 1 | 4 | 653,791 | onboarded-code | ov_SC07_007 | 0.91/0.0160 L2=3 |
| SC07.CD/8 | 0 | 4 | 452,079 | onboarded-code | ov_SC07_008 | 0.97/0.0211 L2=3 |
+61 -22
View File
@@ -2,6 +2,46 @@
# sources:
# main .run/sig.SLUS_007.26.jsonl sha1=46c735b8d1f514a95f8a2ba061cccf291f45a631
# resident .run/sig.resident.jsonl sha1=a417784999c8944c72e812a01ca082703dd05414
# md_MAIN_013 .run/sig.md_MAIN_013.jsonl sha1=7ef0aab887b13304929d00a324e50f883c30a903
# md_MAIN_014 .run/sig.md_MAIN_014.jsonl sha1=d67de8a37cbdb814e14360689965c68c8888ff97
# md_MAIN_015 .run/sig.md_MAIN_015.jsonl sha1=6630706504c43c403d20e71756d42f47004eb229
# md_MAIN_016 .run/sig.md_MAIN_016.jsonl sha1=0b94374d67397804d3086f8eb5e3b5ff8243c641
# md_MAIN_017 .run/sig.md_MAIN_017.jsonl sha1=4459498b5214040466bd80856d0fd4985cd37f52
# md_MAIN_018 .run/sig.md_MAIN_018.jsonl sha1=e898d3758ed5a3106fb9ec87521efe07d539d5ac
# md_MAIN_019 .run/sig.md_MAIN_019.jsonl sha1=ab97580aa15d72368f050fad2469231168b1f872
# md_MAIN_020 .run/sig.md_MAIN_020.jsonl sha1=c763c31db7d3616870d91c9cfedfadaebe2cbb0f
# md_MAIN_021 .run/sig.md_MAIN_021.jsonl sha1=f5148cf1822b7eddd1dcebaa295f35d6681d5154
# md_MAIN_022 .run/sig.md_MAIN_022.jsonl sha1=06553bc99d5f478d96f1be673df5cfabdffe1c57
# md_MAIN_023 .run/sig.md_MAIN_023.jsonl sha1=bbb6319e2a29c15f471964c2943380a6c6bf7202
# md_MAIN_024 .run/sig.md_MAIN_024.jsonl sha1=30e78b3a9bcd4b5a56f3c41d193a8869c997debf
# md_MAIN_025 .run/sig.md_MAIN_025.jsonl sha1=87bfd50e702289c99b0d139706510baa9b85b61c
# md_MAIN_026 .run/sig.md_MAIN_026.jsonl sha1=225a2fd20375ced7a83f17faa5de76c8ad291ab0
# md_MAIN_027 .run/sig.md_MAIN_027.jsonl sha1=cb4ae91b55d4aa4b4b07178c66fb60380281164a
# md_MAIN_028 .run/sig.md_MAIN_028.jsonl sha1=056dd72e871d1944b25cd0c74f1e376a43f1b6e8
# md_MAIN_029 .run/sig.md_MAIN_029.jsonl sha1=fe61c0e82a087c4ea79c2c63606ae471e9c52ca4
# md_MAIN_030 .run/sig.md_MAIN_030.jsonl sha1=ced3202a34dcf8bfe15b8dd6613eb6b975219f24
# md_MAIN_031 .run/sig.md_MAIN_031.jsonl sha1=01a4ea9a9f20a407f76b536394db5f00a791c2e1
# md_MAIN_032 .run/sig.md_MAIN_032.jsonl sha1=725e13cf872f740119ca3d673613dee278180887
# md_MAIN_033 .run/sig.md_MAIN_033.jsonl sha1=2fe65fcd8761b19612969a38043456f7dfd58c58
# md_MAIN_034 .run/sig.md_MAIN_034.jsonl sha1=06d2b217ffa58bce4c197edaa370f1b7e08ffde3
# md_MAIN_035 .run/sig.md_MAIN_035.jsonl sha1=abe999e11a37d2f866525b14855f768bc8232d53
# md_MAIN_036 .run/sig.md_MAIN_036.jsonl sha1=875193c8605f7ead21668e238df09fd640d28b28
# md_MAIN_037 .run/sig.md_MAIN_037.jsonl sha1=e149bac4d5d8049cc51f2fa664c298feac2e888b
# md_MAIN_038 .run/sig.md_MAIN_038.jsonl sha1=16c9ab7c00879c6005a190221df1abf8f9097b28
# md_MAIN_039 .run/sig.md_MAIN_039.jsonl sha1=97a562d238491f890250cf69589a7d7b6b8e0dd9
# md_MAIN_040 .run/sig.md_MAIN_040.jsonl sha1=395cc9b0ad96f7fc81bac808cd450980a9ca223a
# md_MAIN_041 .run/sig.md_MAIN_041.jsonl sha1=43cd6e6eee8a96c97f727293eca2db5da258dbbe
# md_MAIN_042 .run/sig.md_MAIN_042.jsonl sha1=2bb0f14bc0aee2e281322cc1793435248738c4ef
# md_MAIN_043 .run/sig.md_MAIN_043.jsonl sha1=90eb3ee32bc468db31c8c323c50e9ec77eb5186e
# md_MAIN_044 .run/sig.md_MAIN_044.jsonl sha1=ff79d95fc95d836ffe9fb432ee4f7b6805fce532
# md_MAIN_045 .run/sig.md_MAIN_045.jsonl sha1=97e499655a040ac0923488fe06240153c24790d7
# md_MAIN_046 .run/sig.md_MAIN_046.jsonl sha1=63b4821ee0960645ee402302bb9d1d553a7cb876
# md_MAIN_047 .run/sig.md_MAIN_047.jsonl sha1=63f8bfb5af126957574c0c3108a2885348989236
# md_MAIN_001 .run/sig.md_MAIN_001.jsonl sha1=3fcf391554345b10d22eed03f812bbcf3ede7dbd
# md_MAIN_008 .run/sig.md_MAIN_008.jsonl sha1=2a35ee2d5729265387e42abc7393999473f2c0a4
# md_MAIN_011 .run/sig.md_MAIN_011.jsonl sha1=5c7f07d04ecfb33a45070298018e2ca3b63eeb80
# md_SC07_003 .run/sig.md_SC07_003.jsonl sha1=8257c06af37b03c91c530b4a282483a13cd9a358
# md_SC07_004 .run/sig.md_SC07_004.jsonl sha1=52e4802e51f3d553b6fe66a1b8dbba81c87eb606
# overlays 141x (named+sig_image, deduped, nins>=8) set-sha1=17474a5aae730987d8cf2edd2816ddf598b6e4b8
# Collapsible bytes = (count-1)*nins*4 (bytes saved; one member stays the source).
# A cross-binary group (binaries>1) is the Phase-12/13 work queue; lead with h_exact
@@ -11,7 +51,7 @@
## h_exact (byte-identical)
### cross-binary (binaries > 1) — 9601 groups, 30017480 collapsible bytes (top 200 of 9601 shown)
### cross-binary (binaries > 1) — 9618 groups, 30022892 collapsible bytes (top 200 of 9618 shown)
| gid | bytes | nins | count | #bin | sample members (binary:addr) |
|---|---|---|---|---|---|
| ex0 | 431200 | 770 | 141 | 141 | ov_MAIN_012:0x80144b9c; ov_SC01_000:0x80144b9c; ov_SC01_001:0x80144b9c; ov_SC01_004:0x80144b9c; …+137 |
@@ -112,10 +152,10 @@
| ex95 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x80158638; ov_SC01_000:0x80158638; ov_SC01_001:0x80158638; ov_SC01_004:0x80158638; …+137 |
| ex96 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x8016c83c; ov_SC01_000:0x8016c83c; ov_SC01_001:0x8016c83c; ov_SC01_004:0x8016c83c; …+137 |
| ex97 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x80172170; ov_SC01_000:0x80172170; ov_SC01_001:0x80172170; ov_SC01_004:0x80172170; …+137 |
| ex98 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8013895c; ov_SC01_000:0x8013895c; ov_SC01_001:0x8013895c; ov_SC01_004:0x8013895c; …+137 |
| ex99 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x80162968; ov_SC01_000:0x80162968; ov_SC01_001:0x80162968; ov_SC01_004:0x80162968; …+137 |
| ex100 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x801696d8; ov_SC01_000:0x801696d8; ov_SC01_001:0x801696d8; ov_SC01_004:0x801696d8; …+137 |
| ex101 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8016e460; ov_SC01_000:0x8016e460; ov_SC01_001:0x8016e460; ov_SC01_004:0x8016e460; …+137 |
| ex98 | 48504 | 86 | 142 | 142 | md_MAIN_022:0x800cbb38; ov_MAIN_012:0x8016e460; ov_SC01_000:0x8016e460; ov_SC01_001:0x8016e460; …+138 |
| ex99 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8013895c; ov_SC01_000:0x8013895c; ov_SC01_001:0x8013895c; ov_SC01_004:0x8013895c; …+137 |
| ex100 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x80162968; ov_SC01_000:0x80162968; ov_SC01_001:0x80162968; ov_SC01_004:0x80162968; …+137 |
| ex101 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x801696d8; ov_SC01_000:0x801696d8; ov_SC01_001:0x801696d8; ov_SC01_004:0x801696d8; …+137 |
| ex102 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x80169584; ov_SC01_000:0x80169584; ov_SC01_001:0x80169584; ov_SC01_004:0x80169584; …+137 |
| ex103 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x8016a73c; ov_SC01_000:0x8016a73c; ov_SC01_001:0x8016a73c; ov_SC01_004:0x8016a73c; …+137 |
| ex104 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x8016a8fc; ov_SC01_000:0x8016a8fc; ov_SC01_001:0x8016a8fc; ov_SC01_004:0x8016a8fc; …+137 |
@@ -215,7 +255,7 @@
| ex198 | 33040 | 59 | 141 | 141 | ov_MAIN_012:0x801777bc; ov_SC01_000:0x801777bc; ov_SC01_001:0x801777bc; ov_SC01_004:0x801777bc; …+137 |
| ex199 | 32480 | 58 | 141 | 141 | ov_MAIN_012:0x8012b77c; ov_SC01_000:0x8012b77c; ov_SC01_001:0x8012b77c; ov_SC01_004:0x8012b77c; …+137 |
### intra-binary — 188 groups, 29104 collapsible bytes
### intra-binary — 187 groups, 29072 collapsible bytes
| gid | bytes | nins | count | #bin | sample members (binary:addr) |
|---|---|---|---|---|---|
| ei0 | 304 | 38 | 3 | 1 | ov_SC07_007:0x8017d8e0; ov_SC07_007:0x8017d978; ov_SC07_007:0x8017da10 |
@@ -402,27 +442,26 @@
| ei181 | 36 | 9 | 2 | 1 | main:0x8004561c; main:0x8005b660 |
| ei182 | 36 | 9 | 2 | 1 | ov_SC05_017:0x80182ce8; ov_SC05_017:0x80183ed4 |
| ei183 | 32 | 8 | 2 | 1 | main:0x80042134; main:0x8005ba70 |
| ei184 | 32 | 8 | 2 | 1 | ov_SC02_005:0x801853cc; ov_SC02_005:0x8018bfbc |
| ei185 | 32 | 8 | 2 | 1 | ov_SC06_029:0x80180ee8; ov_SC06_029:0x801870b4 |
| ei186 | 32 | 8 | 2 | 1 | ov_SC07_007:0x8017f370; ov_SC07_007:0x80180b38 |
| ei187 | 32 | 8 | 2 | 1 | resident:0x800cefb0; resident:0x800cf398 |
| ei184 | 32 | 8 | 2 | 1 | ov_SC06_029:0x80180ee8; ov_SC06_029:0x801870b4 |
| ei185 | 32 | 8 | 2 | 1 | ov_SC07_007:0x8017f370; ov_SC07_007:0x80180b38 |
| ei186 | 32 | 8 | 2 | 1 | resident:0x800cefb0; resident:0x800cf398 |
## h_norm (structural)
### cross-binary (binaries > 1) — 9207 groups, 40218692 collapsible bytes (top 200 of 9207 shown)
### cross-binary (binaries > 1) — 9250 groups, 40234820 collapsible bytes (top 200 of 9250 shown)
| gid | bytes | nins | count | #bin | sample members (binary:addr) |
|---|---|---|---|---|---|
| nx0 | 431200 | 770 | 141 | 141 | ov_MAIN_012:0x80144b9c; ov_SC01_000:0x80144b9c; ov_SC01_001:0x80144b9c; ov_SC01_004:0x80144b9c; …+137 |
| nx1 | 266560 | 476 | 141 | 141 | ov_MAIN_012:0x80141ca4; ov_SC01_000:0x80141ca4; ov_SC01_001:0x80141ca4; ov_SC01_004:0x80141ca4; …+137 |
| nx2 | 224000 | 400 | 141 | 141 | ov_MAIN_012:0x80132784; ov_SC01_000:0x80132784; ov_SC01_001:0x80132784; ov_SC01_004:0x80132784; …+137 |
| nx3 | 223440 | 399 | 141 | 141 | ov_MAIN_012:0x80133cd4; ov_SC01_000:0x80133cd4; ov_SC01_001:0x80133cd4; ov_SC01_004:0x80133cd4; …+137 |
| nx4 | 211392 | 12 | 4405 | 141 | ov_MAIN_012:0x8014b160; ov_MAIN_012:0x80158ab4; ov_MAIN_012:0x8015be94; ov_MAIN_012:0x80161d58; …+4401 |
| nx4 | 211584 | 12 | 4409 | 145 | md_MAIN_027:0x800cb7fc; md_MAIN_034:0x800cc260; md_MAIN_035:0x800cafbc; md_MAIN_046:0x800cdba4; …+4405 |
| nx5 | 206640 | 369 | 141 | 141 | ov_MAIN_012:0x80166994; ov_SC01_000:0x80166994; ov_SC01_001:0x80166994; ov_SC01_004:0x80166994; …+137 |
| nx6 | 198848 | 8 | 6215 | 142 | ov_MAIN_012:0x80128158; ov_MAIN_012:0x80128178; ov_MAIN_012:0x80128198; ov_MAIN_012:0x801281b8; …+6211 |
| nx6 | 200192 | 8 | 6257 | 166 | md_MAIN_015:0x800cb474; md_MAIN_019:0x800cb4a8; md_MAIN_019:0x800cbf60; md_MAIN_020:0x800cafdc; …+6253 |
| nx7 | 186032 | 22 | 2115 | 141 | ov_MAIN_012:0x8014ccb4; ov_MAIN_012:0x8014d04c; ov_MAIN_012:0x8014d3e0; ov_MAIN_012:0x8014d738; …+2111 |
| nx8 | 184828 | 41 | 1128 | 141 | ov_MAIN_012:0x80151fb4; ov_MAIN_012:0x801522cc; ov_MAIN_012:0x801525f4; ov_MAIN_012:0x80152ac8; …+1124 |
| nx9 | 184240 | 329 | 141 | 141 | ov_MAIN_012:0x8013c414; ov_SC01_000:0x8013c414; ov_SC01_001:0x8013c414; ov_SC01_004:0x8013c414; …+137 |
| nx10 | 176904 | 14 | 3160 | 141 | ov_MAIN_012:0x80142740; ov_MAIN_012:0x801555bc; ov_MAIN_012:0x80157e00; ov_MAIN_012:0x80158000; …+3156 |
| nx10 | 177128 | 14 | 3164 | 145 | md_MAIN_028:0x800cb564; md_MAIN_035:0x800caf84; md_MAIN_036:0x800cb570; md_MAIN_044:0x800cda0c; …+3160 |
| nx11 | 170240 | 304 | 141 | 141 | ov_MAIN_012:0x8014d820; ov_SC01_000:0x8014d820; ov_SC01_001:0x8014d820; ov_SC01_004:0x8014d820; …+137 |
| nx12 | 159040 | 284 | 141 | 141 | ov_MAIN_012:0x8012d714; ov_SC01_000:0x8012d714; ov_SC01_001:0x8012d714; ov_SC01_004:0x8012d714; …+137 |
| nx13 | 159040 | 284 | 141 | 141 | ov_MAIN_012:0x8016a290; ov_SC01_000:0x8016a290; ov_SC01_001:0x8016a290; ov_SC01_004:0x8016a290; …+137 |
@@ -440,11 +479,11 @@
| nx25 | 115920 | 207 | 141 | 141 | ov_MAIN_012:0x801372b0; ov_SC01_000:0x801372b0; ov_SC01_001:0x801372b0; ov_SC01_004:0x801372b0; …+137 |
| nx26 | 114240 | 204 | 141 | 141 | ov_MAIN_012:0x8013a530; ov_SC01_000:0x8013a530; ov_SC01_001:0x8013a530; ov_SC01_004:0x8013a530; …+137 |
| nx27 | 113680 | 203 | 141 | 141 | ov_MAIN_012:0x80133784; ov_SC01_000:0x80133784; ov_SC01_001:0x80133784; ov_SC01_004:0x80133784; …+137 |
| nx28 | 112728 | 14 | 2014 | 141 | ov_MAIN_012:0x8016f540; ov_MAIN_012:0x8016f578; ov_MAIN_012:0x8016f610; ov_MAIN_012:0x8016f648; …+2010 |
| nx28 | 112784 | 14 | 2015 | 142 | md_MAIN_020:0x800caffc; ov_MAIN_012:0x8016f540; ov_MAIN_012:0x8016f578; ov_MAIN_012:0x8016f610; …+2011 |
| nx29 | 110880 | 198 | 141 | 141 | ov_MAIN_012:0x8013bd74; ov_SC01_000:0x8013bd74; ov_SC01_001:0x8013bd74; ov_SC01_004:0x8013bd74; …+137 |
| nx30 | 110880 | 198 | 141 | 141 | ov_MAIN_012:0x801412a8; ov_SC01_000:0x801412a8; ov_SC01_001:0x801412a8; ov_SC01_004:0x801412a8; …+137 |
| nx31 | 110880 | 198 | 141 | 141 | ov_MAIN_012:0x801571c4; ov_SC01_000:0x801571c4; ov_SC01_001:0x801571c4; ov_SC01_004:0x801571c4; …+137 |
| nx32 | 110080 | 10 | 2753 | 141 | ov_MAIN_012:0x8014b12c; ov_MAIN_012:0x8014b2a8; ov_MAIN_012:0x8014b2d0; ov_MAIN_012:0x8015e588; …+2749 |
| nx32 | 110600 | 10 | 2766 | 154 | md_MAIN_014:0x800cae0c; md_MAIN_015:0x800cae0c; md_MAIN_016:0x800cae0c; md_MAIN_019:0x800cae0c; …+2762 |
| nx33 | 109200 | 195 | 141 | 141 | ov_MAIN_012:0x80153e00; ov_SC01_000:0x80153e00; ov_SC01_001:0x80153e00; ov_SC01_004:0x80153e00; …+137 |
| nx34 | 108080 | 193 | 141 | 141 | ov_MAIN_012:0x80166690; ov_SC01_000:0x80166690; ov_SC01_001:0x80166690; ov_SC01_004:0x80166690; …+137 |
| nx35 | 106960 | 191 | 141 | 141 | ov_MAIN_012:0x80129cf8; ov_SC01_000:0x80129cf8; ov_SC01_001:0x80129cf8; ov_SC01_004:0x80129cf8; …+137 |
@@ -584,10 +623,10 @@
| nx169 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x80158638; ov_SC01_000:0x80158638; ov_SC01_001:0x80158638; ov_SC01_004:0x80158638; …+137 |
| nx170 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x8016c83c; ov_SC01_000:0x8016c83c; ov_SC01_001:0x8016c83c; ov_SC01_004:0x8016c83c; …+137 |
| nx171 | 48720 | 87 | 141 | 141 | ov_MAIN_012:0x80172170; ov_SC01_000:0x80172170; ov_SC01_001:0x80172170; ov_SC01_004:0x80172170; …+137 |
| nx172 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8013895c; ov_SC01_000:0x8013895c; ov_SC01_001:0x8013895c; ov_SC01_004:0x8013895c; …+137 |
| nx173 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x80162968; ov_SC01_000:0x80162968; ov_SC01_001:0x80162968; ov_SC01_004:0x80162968; …+137 |
| nx174 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x801696d8; ov_SC01_000:0x801696d8; ov_SC01_001:0x801696d8; ov_SC01_004:0x801696d8; …+137 |
| nx175 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8016e460; ov_SC01_000:0x8016e460; ov_SC01_001:0x8016e460; ov_SC01_004:0x8016e460; …+137 |
| nx172 | 48504 | 86 | 142 | 142 | md_MAIN_022:0x800cbb38; ov_MAIN_012:0x8016e460; ov_SC01_000:0x8016e460; ov_SC01_001:0x8016e460; …+138 |
| nx173 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x8013895c; ov_SC01_000:0x8013895c; ov_SC01_001:0x8013895c; ov_SC01_004:0x8013895c; …+137 |
| nx174 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x80162968; ov_SC01_000:0x80162968; ov_SC01_001:0x80162968; ov_SC01_004:0x80162968; …+137 |
| nx175 | 48160 | 86 | 141 | 141 | ov_MAIN_012:0x801696d8; ov_SC01_000:0x801696d8; ov_SC01_001:0x801696d8; ov_SC01_004:0x801696d8; …+137 |
| nx176 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x80169584; ov_SC01_000:0x80169584; ov_SC01_001:0x80169584; ov_SC01_004:0x80169584; …+137 |
| nx177 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x8016a73c; ov_SC01_000:0x8016a73c; ov_SC01_001:0x8016a73c; ov_SC01_004:0x8016a73c; …+137 |
| nx178 | 47600 | 85 | 141 | 141 | ov_MAIN_012:0x8016a8fc; ov_SC01_000:0x8016a8fc; ov_SC01_001:0x8016a8fc; ov_SC01_004:0x8016a8fc; …+137 |
@@ -607,13 +646,13 @@
| nx192 | 44240 | 79 | 141 | 141 | ov_MAIN_012:0x801457a4; ov_SC01_000:0x801457a4; ov_SC01_001:0x801457a4; ov_SC01_004:0x801457a4; …+137 |
| nx193 | 44240 | 79 | 141 | 141 | ov_MAIN_012:0x8016c188; ov_SC01_000:0x8016c188; ov_SC01_001:0x8016c188; ov_SC01_004:0x8016c188; …+137 |
| nx194 | 44240 | 79 | 141 | 141 | ov_MAIN_012:0x8016d848; ov_SC01_000:0x8016d848; ov_SC01_001:0x8016d848; ov_SC01_004:0x8016d848; …+137 |
| nx195 | 43940 | 13 | 846 | 141 | ov_MAIN_012:0x8015da5c; ov_MAIN_012:0x8015dc84; ov_MAIN_012:0x8015dfe4; ov_MAIN_012:0x8015e84c; …+842 |
| nx195 | 43992 | 13 | 847 | 142 | md_MAIN_035:0x800cb108; ov_MAIN_012:0x8015da5c; ov_MAIN_012:0x8015dc84; ov_MAIN_012:0x8015dfe4; …+843 |
| nx196 | 43680 | 78 | 141 | 141 | ov_MAIN_012:0x8012a1bc; ov_SC01_000:0x8012a1bc; ov_SC01_001:0x8012a1bc; ov_SC01_004:0x8012a1bc; …+137 |
| nx197 | 43680 | 78 | 141 | 141 | ov_MAIN_012:0x80137178; ov_SC01_000:0x80137178; ov_SC01_001:0x80137178; ov_SC01_004:0x80137178; …+137 |
| nx198 | 43680 | 78 | 141 | 141 | ov_MAIN_012:0x8015e714; ov_SC01_000:0x8015e714; ov_SC01_001:0x8015e714; ov_SC01_004:0x8015e714; …+137 |
| nx199 | 43680 | 78 | 141 | 141 | ov_MAIN_012:0x8016163c; ov_SC01_000:0x8016163c; ov_SC01_001:0x8016163c; ov_SC01_004:0x8016163c; …+137 |
### intra-binary — 424 groups, 76768 collapsible bytes (top 200 of 424 shown)
### intra-binary — 429 groups, 77040 collapsible bytes (top 200 of 429 shown)
| gid | bytes | nins | count | #bin | sample members (binary:addr) |
|---|---|---|---|---|---|
| ni0 | 2232 | 186 | 4 | 1 | ov_SC07_006:0x801802ec; ov_SC07_006:0x8018163c; ov_SC07_006:0x801823f8; ov_SC07_006:0x801828a4 |
+33 -33
View File
@@ -1,14 +1,14 @@
# Phase 26 — h_seq family survey (T1)
> Generated by `tools/family_hseq.py` from the 142 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
> Generated by `tools/family_hseq.py` from the 182 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
>
> **Scope: the 142 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1501` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
> **Scope: the 182 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1505` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
**Fleet (overlays):** 96.3% fn / 94.6% instr / 88.9% distinct-code matched. Unmatched: 13,214 instances / 722,956 ins (11,039 distinct classes).
**Fleet (overlays):** 96.1% fn / 94.5% instr / 88.8% distinct-code matched. Unmatched: 14,016 instances / 731,742 ins (11,809 distinct classes).
**Tail cross-check (Phase-25 close):** 7,943 tail fns / 420,760 ins → 557 h_seq families ≥2, **154 substantial (nins≥80) / 93,378 ins**.
**Tail cross-check (Phase-25 close):** 8,760 tail fns / 453,442 ins → 572 h_seq families ≥2, **134 substantial (nins≥80) / 81,929 ins**.
**Full frontier (all unmatched by h_seq):** 2577 target families (≥2 members or a matched sibling) + 3801 singletons (Step-D residue). Substantial: **495 families / 224,696 templatable ins**, 199 with a matched sibling (zero-crack). Substantial member classes: 1,456 PURE · 24 IMM · 6 STRUCT-excluded.
**Full frontier (all unmatched by h_seq):** 2558 target families (≥2 members or a matched sibling) + 4454 singletons (Step-D residue). Substantial: **390 families / 182,922 templatable ins**, 90 with a matched sibling (zero-crack). Substantial member classes: 1,173 PURE · 29 IMM · 7 STRUCT-excluded.
## Top substantial families (by templatable byte-weight)
@@ -37,31 +37,31 @@
| 20 | 424 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80131340 matched-ov077 | 1,272 |
| 21 | 254 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188e1c modal | 1,270 |
| 22 | 251 | 5 (5/0/0) | 5/5 | cross-address | PURE | 1 | Y | 0x80180b04 matched | 1,255 |
| 23 | 399 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80133cd4 matched-ov077 | 1,197 |
| 24 | 198 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80185f58 modal | 1,188 |
| 25 | 385 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x8018ff98 modal | 1,155 |
| 26 | 371 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80176734 matched-ov077 | 1,113 |
| 27 | 185 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80187aec modal | 1,110 |
| 28 | 369 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80166994 matched-ov077 | 1,107 |
| 29 | 363 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015444c matched-ov077 | 1,089 |
| 30 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 |
| 31 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 |
| 32 | 327 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80176218 matched-ov077 | 981 |
| 33 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 34 | 952 | 1 (1/0/0) | 1/1 | per-location | PURE | 116 | Y | 0x8017bebc matched | 952 |
| 35 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 |
| 36 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 37 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 38 | 304 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8014d820 matched-ov077 | 912 |
| 39 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 40 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 41 | 288 | 3 (3/0/0) | 3/3 | cross-address | PURE | 3 | Y | 0x80184c74 matched | 864 |
| 42 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 |
| 43 | 284 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8016a290 matched-ov077 | 852 |
| 44 | 279 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x801670e4 matched-ov077 | 837 |
| 45 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 46 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
| 47 | 272 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013b83c matched-ov077 | 816 |
| 48 | 271 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015b950 matched-ov077 | 813 |
| 49 | 406 | 2 (2/0/0) | 2/2 | cross-address | PURE | 0 | Y | 0x80184938 modal | 812 |
| 50 | 266 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80130d48 matched-ov077 | 798 |
| 23 | 198 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80185f58 modal | 1,188 |
| 24 | 385 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x8018ff98 modal | 1,155 |
| 25 | 185 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80187aec modal | 1,110 |
| 26 | 363 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015444c matched-ov077 | 1,089 |
| 27 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 |
| 28 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 |
| 29 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 30 | 952 | 1 (1/0/0) | 1/1 | per-location | PURE | 116 | Y | 0x8017bebc matched | 952 |
| 31 | 95 | 10 (10/0/0) | 9/10 | scattered | PURE | 0 | Y | 0x80185d70 modal | 950 |
| 32 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 33 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 34 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 35 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 36 | 288 | 3 (3/0/0) | 3/3 | cross-address | PURE | 3 | Y | 0x80184c74 matched | 864 |
| 37 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 |
| 38 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 39 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
| 40 | 272 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013b83c matched-ov077 | 816 |
| 41 | 271 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015b950 matched-ov077 | 813 |
| 42 | 406 | 2 (2/0/0) | 2/2 | cross-address | PURE | 0 | Y | 0x80184938 modal | 812 |
| 43 | 266 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80130d48 matched-ov077 | 798 |
| 44 | 196 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017ffd0 modal | 784 |
| 45 | 257 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192b60 modal | 771 |
| 46 | 255 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x8018e9bc modal | 765 |
| 47 | 254 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192768 modal | 762 |
| 48 | 147 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017ed5c modal | 735 |
| 49 | 181 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | · | 0x8017d7c0 modal | 724 |
| 50 | 102 | 7 (1/6/0) | 6/7 | cross-address | IMM | 77 | · | 0x8017d290 matched | 714 |
+51 -11
View File
@@ -1,26 +1,66 @@
# BFM FLEET matching progress (generated by tools/progress.py --fleet — authoritative)
# 143 binaries: main + resident + 141 location overlays. DETERMINISTIC,
# 183 binaries: main + resident + 181 location overlays. DETERMINISTIC,
# source-derived (committed src/*.c + config/dedup.us.yaml). Live byte gate: `make check-all`;
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 347168 / 361133 = 96.13% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12676581 / 13435348 = 94.4% (shipped .text across main + resident + 141 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5095988 / 5770185 = 88.3% (78334/89140 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 347597 / 362246 = 95.96% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12682962 / 13487439 = 94.0% (shipped .text across main + resident + 181 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 5100166 / 5820883 = 87.6% (78596/90143 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 79510 = 0.5% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-08-05; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12676145 / 13355838 = 94.9%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12682526 / 13407929 = 94.6%)
FLEET REAL substantive : 345069 (of which dedup-shared 246275 via 1919 groups / 246349 instances)
FLEET REAL substantive : 345477 (of which dedup-shared 246275 via 1919 groups / 246349 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 13958
FLEET matchable : 361133
FLEET INCLUDE_ASM stubs : 14642
FLEET matchable : 362246
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
|---|---:|---:|---:|---:|---:|---:|
| main | 54 | 2 | 959 | 1055 | 2096 | 50.3% |
| resident | 129 | 0 | 0 | 131 | 145 | 90.3% |
| ov_MAIN_012 | 1701 | 1612 | 0 | 1780 | 2403 | 74.1% |
| md_MAIN_001 | 1 | 0 | 0 | 1 | 11 | 9.1% |
| md_MAIN_008 | 0 | 0 | 0 | 0 | 6 | 0.0% |
| md_MAIN_011 | 0 | 0 | 0 | 0 | 21 | 0.0% |
| md_MAIN_013 | 3 | 0 | 0 | 3 | 16 | 18.8% |
| md_MAIN_014 | 3 | 0 | 0 | 4 | 13 | 30.8% |
| md_MAIN_015 | 3 | 0 | 0 | 3 | 20 | 15.0% |
| md_MAIN_016 | 2 | 0 | 0 | 3 | 13 | 23.1% |
| md_MAIN_017 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_018 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_019 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_020 | 5 | 0 | 0 | 6 | 14 | 42.9% |
| md_MAIN_021 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_022 | 10 | 0 | 0 | 12 | 33 | 36.4% |
| md_MAIN_023 | 2 | 0 | 0 | 3 | 6 | 50.0% |
| md_MAIN_024 | 2 | 0 | 0 | 4 | 6 | 66.7% |
| md_MAIN_025 | 3 | 0 | 0 | 3 | 30 | 10.0% |
| md_MAIN_026 | 3 | 0 | 0 | 3 | 24 | 12.5% |
| md_MAIN_027 | 6 | 0 | 0 | 8 | 29 | 27.6% |
| md_MAIN_028 | 3 | 0 | 0 | 3 | 22 | 13.6% |
| md_MAIN_029 | 3 | 0 | 0 | 4 | 11 | 36.4% |
| md_MAIN_030 | 3 | 0 | 0 | 3 | 10 | 30.0% |
| md_MAIN_031 | 2 | 0 | 0 | 2 | 18 | 11.1% |
| md_MAIN_032 | 2 | 0 | 0 | 2 | 10 | 20.0% |
| md_MAIN_033 | 2 | 0 | 0 | 2 | 19 | 10.5% |
| md_MAIN_034 | 2 | 0 | 0 | 3 | 28 | 10.7% |
| md_MAIN_035 | 7 | 0 | 0 | 8 | 16 | 50.0% |
| md_MAIN_036 | 2 | 0 | 0 | 3 | 28 | 10.7% |
| md_MAIN_037 | 2 | 0 | 0 | 2 | 17 | 11.8% |
| md_MAIN_038 | 3 | 0 | 0 | 3 | 20 | 15.0% |
| md_MAIN_039 | 2 | 0 | 0 | 2 | 26 | 7.7% |
| md_MAIN_040 | 2 | 0 | 0 | 2 | 19 | 10.5% |
| md_MAIN_041 | 3 | 0 | 0 | 3 | 15 | 20.0% |
| md_MAIN_042 | 0 | 0 | 0 | 0 | 4 | 0.0% |
| md_MAIN_043 | 2 | 0 | 0 | 3 | 23 | 13.0% |
| md_MAIN_044 | 7 | 0 | 0 | 8 | 44 | 18.2% |
| md_MAIN_045 | 0 | 0 | 0 | 1 | 21 | 4.8% |
| md_MAIN_046 | 4 | 0 | 0 | 5 | 39 | 12.8% |
| md_MAIN_047 | 3 | 0 | 0 | 4 | 12 | 33.3% |
| md_SC07_003 | 12 | 0 | 0 | 12 | 100 | 12.0% |
| md_SC07_004 | 40 | 0 | 0 | 40 | 315 | 12.7% |
| ov_MAIN_012 | 1778 | 1612 | 0 | 1857 | 2403 | 77.3% |
| ov_SC01_000 | 2389 | 1755 | 0 | 2389 | 2403 | 99.4% |
| ov_SC01_001 | 2396 | 1756 | 0 | 2398 | 2466 | 97.2% |
| ov_SC01_004 | 2393 | 1747 | 0 | 2394 | 2414 | 99.2% |
@@ -46,7 +86,7 @@ FLEET matchable : 361133
| ov_SC02_028 | 2563 | 1751 | 0 | 2573 | 2701 | 95.3% |
| ov_SC02_031 | 2493 | 1752 | 0 | 2498 | 2562 | 97.5% |
| ov_SC02_035 | 2487 | 1751 | 0 | 2490 | 2520 | 98.8% |
| ov_SC02_037 | 1720 | 1612 | 0 | 1802 | 2516 | 71.6% |
| ov_SC02_037 | 1808 | 1612 | 0 | 1890 | 2516 | 75.1% |
| ov_SC02_039 | 2394 | 1751 | 0 | 2394 | 2416 | 99.1% |
| ov_SC02_041 | 2475 | 1751 | 0 | 2478 | 2561 | 96.8% |
| ov_SC03_001 | 2669 | 1752 | 0 | 2686 | 2869 | 93.6% |
@@ -83,7 +123,7 @@ FLEET matchable : 361133
| ov_SC03_103 | 2493 | 1753 | 0 | 2496 | 2510 | 99.4% |
| ov_SC03_104 | 2541 | 1756 | 0 | 2548 | 2616 | 97.4% |
| ov_SC03_105 | 2448 | 1752 | 0 | 2455 | 2597 | 94.5% |
| ov_SC03_107 | 1705 | 1612 | 0 | 1788 | 2497 | 71.6% |
| ov_SC03_107 | 1787 | 1612 | 0 | 1870 | 2497 | 74.9% |
| ov_SC03_108 | 2399 | 1751 | 0 | 2399 | 2443 | 98.2% |
| ov_SC03_109 | 2407 | 1751 | 0 | 2409 | 2424 | 99.4% |
| ov_SC03_110 | 2440 | 1751 | 0 | 2440 | 2468 | 98.9% |
+24 -1
View File
@@ -201,7 +201,30 @@ stub on a named wall/behemoth/queue ledger** — 140/140 byte-identical througho
- **II.1b ✅ — SC07 pair onboarded BYTE-IDENTICAL at 0x801A00D8** (md_SC07_003 text-lo 0xFC,
100 fns; md_SC07_004 text-lo 0x158, 315 fns — the derived TLOs matched the plan's documented
values exactly via the independent first-prologue scan). Symbol stacks window-checked clean.
- **II.1c** (sig-modules · hseq regen · dedup pass · audit-binaries · R22 · audit-disc) — next.
- **II.1c ✅ — the module batch signed, dedup-banked, and fully verified.**
· **Dedup measure (R37 probe first):** 69/1,113 module fns h_exact-match matched corpus code
(~6% — LOW, as the plan predicted; modules are novel frontier). `dedup_extend` plans 0 (its
group model is same-vram; modules live at their own slots) → routed through
**`family_sweep --hseq --band all --only <57 exemplars>`** instead: **408 member-matches
banked** (182 into modules 1,113→931 stubs; 226 into the big 3 — families Part I's scoping
missed, caught by the regen), 169 failed + 77 STRUCT-refused = genuine frontier.
· **R22 clean-fleet: 183 passed / 0 failed of 183.**
· **`make audit-disc`: UNCLAIMED 75 → 34, residue 0.** 34 = the 31 parked-for-L3 **+ 3 rows
Discovery-3 never tiered: SC03/53, SC03/54, SC03/56** (SC-disc type-1s, per-disc runtime
routing like SC02/9 — parked for L3 with the rest; recorded in II.2/II.3 docs).
· **Three instrument fixes, each negative-control-proven:** (1) `family_sweep --hseq` stub map
now derives ov_*+md_*+resident (was sig.ov_* glob → every module member silently "not-stub",
the R32 class; 0→32 staged on the control family); (2) `sig-modules` seeds from the built
ELF's func_* symbols (bootstrap's linear partition GLUES adjacent fns around jtbl dispatch —
24 false TRUNCATED; perturbed-sig control still flags real disagreement); (3) `corpus.audit`
counts CODE lines only (a module .s legitimately carries its header jtbl as .word lines —
the paired-.rodata migration), and `progress.py` buckets INCLUDE_RODATA symbols as blobs
(the §154 id word emitted per-symbol was an unbucketed R32 hole).
· **tools-health OK · audit-digest OK. NEW HONEST BASELINE (183 binaries): 94.0% instr
(12,682,962/13,487,439) · 95.96% fn-count · 87.6% distinct (78,596/90,143 uniq).** The drop
from S44's 94.4% is the denominator growing +52k module ins (honest direction, P27/S39/S44
precedent).
- **II.2** (retirements + SETUP module recipe) — next.
---
+13 -1
View File
@@ -1,6 +1,18 @@
#include "common.h"
INCLUDE_ASM("asm/md_MAIN_001/nonmatchings/md_MAIN_001", func_800CEDFC);
void func_800CEDFC(void) {
extern u16 D_800B99E4;
extern void (*D_800CF450[])(void);
u32 v1;
v1 = D_800B99E4;
if (v1 < 8) {
D_800CF450[v1]();
}
}
INCLUDE_ASM("asm/md_MAIN_001/nonmatchings/md_MAIN_001", func_800CEE40);
+26 -3
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CAE54);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CAE98);
void func_800CAE54(void *a0) {
extern void (*D_800CB880[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB880[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEE0(u8 *a0);
void func_800CAE98(u8 *a0) {
if (func_80161104()) {
func_800CAEE0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CAEE0);
@@ -30,4 +46,11 @@ INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB56C);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB6E4);
INCLUDE_ASM("asm/md_MAIN_013/nonmatchings/md_MAIN_013", func_800CB7F0);
extern s32 func_80128ED8(void *a0, void *a1);
extern void func_80146C3C();
void func_800CB7F0(s32 a0) {
if (func_80128ED8((void *)*(s32 *)(a0 + 0x20), (void *)(a0 + 0x24)) != 0) {
((void (*)(s32))func_80146C3C)(a0);
}
}
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB5BC[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB5BC[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEB0();
void func_800CAE78(void *a0) {
func_800CAEB0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAEB0);
@@ -13,7 +26,14 @@ INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAF20);
void func_800CAF4C(void) {
}
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAF54);
void func_800CAF54(void *a0) {
extern void (*D_800CB5DC[])(void);
D_800CB5DC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_014/nonmatchings/md_MAIN_014", func_800CAF90);
+25 -3
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CBB24[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBB24[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEC0(u8 *a0);
void func_800CAE78(u8 *a0) {
if (func_80161104()) {
func_800CAEC0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CAEC0);
@@ -14,7 +30,13 @@ INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CAF9C);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB140);
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB190);
extern void func_80154A74(s32 a0, s32 a1);
s32 func_800CB190(s32 a0)
{
*(u32 *)(a0 + 0x44) = *(u32 *)(a0 + 0x44) & ~2;
func_80154A74(a0, 0x11);
}
INCLUDE_ASM("asm/md_MAIN_015/nonmatchings/md_MAIN_015", func_800CB1C0);
+16 -2
View File
@@ -2,9 +2,23 @@
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB51C[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB51C[*(u8 *)((s32)a0 + 0x197)]();
}
s32 func_800CAE78(u8 *a0)
{
s32 v = a0[407] + 1;
a0[407] = v;
return v;
}
INCLUDE_ASM("asm/md_MAIN_016/nonmatchings/md_MAIN_016", func_800CAE8C);
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CB318[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB318[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEC0();
void func_800CAE88(void *a0) {
func_800CAEC0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAEC0);
@@ -14,7 +27,14 @@ INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAF7C);
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CAFA0);
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CB190);
void func_800CB190(void *a0) {
extern void (*D_800CB350[])(void);
D_800CB350[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_017/nonmatchings/md_MAIN_017", func_800CB1CC);
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CAEB4);
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CAEF8);
void func_800CAEB4(void *a0) {
extern void (*D_800CB5E8[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB5E8[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAF30();
void func_800CAEF8(void *a0) {
func_800CAF30(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CAF30);
@@ -21,4 +34,11 @@ INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CB168);
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CB328);
INCLUDE_ASM("asm/md_MAIN_018/nonmatchings/md_MAIN_018", func_800CB5AC);
void func_800CB5AC(void *a0) {
extern void (*D_800CB614[])(void);
D_800CB614[*(u16 *)((s32)a0 + 0x2)]();
}
+25 -3
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CC104[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CC104[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEC0(u8 *a0);
void func_800CAE78(u8 *a0) {
if (func_80161104()) {
func_800CAEC0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CAEC0);
@@ -12,7 +28,13 @@ INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CAF08);
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB0C8);
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB170);
extern void func_80154A74(s32 a0, s32 a1);
s32 func_800CB170(s32 a0)
{
*(u32 *)(a0 + 0x44) = *(u32 *)(a0 + 0x44) & ~2;
func_80154A74(a0, 0x11);
}
INCLUDE_ASM("asm/md_MAIN_019/nonmatchings/md_MAIN_019", func_800CB1A0);
+35 -5
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB260[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB260[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEB0();
void func_800CAE78(void *a0) {
func_800CAEB0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAEB0);
@@ -15,11 +28,28 @@ INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAF18);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAF38);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAF6C);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFA0(void *a0);
void func_800CAF6C(s32 *a0) {
func_80147078(a0, 31);
func_800CAFA0(a0);
}
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAFA0);
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAFDC);
void func_800CAFA0(void *a0) {
extern void (*D_800CB26C[])(void);
D_800CB26C[*(u16 *)((s32)a0 + 0x2)]();
}
extern void func_800CAFFC(void);
void func_800CAFDC(void) {
func_800CAFFC();
}
INCLUDE_ASM("asm/md_MAIN_020/nonmatchings/md_MAIN_020", func_800CAFFC);
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB4FC[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB4FC[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEB0();
void func_800CAE78(void *a0) {
func_800CAEB0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CAEB0);
@@ -17,7 +30,14 @@ INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CAF94);
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CB0C8);
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CB33C);
void func_800CB33C(void *a0) {
extern void (*D_800CB508[])(void);
D_800CB508[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_021/nonmatchings/md_MAIN_021", func_800CB378);
+115 -10
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CBC90[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBC90[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEB0();
void func_800CAE78(void *a0) {
func_800CAEB0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAEB0);
@@ -15,11 +28,28 @@ void func_800CAF3C(void) {
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAF44);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAF78);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFAC(void *a0);
void func_800CAF78(s32 *a0) {
func_80147078(a0, 34);
func_800CAFAC(a0);
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAFAC);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CAFE8);
void func_800CAFAC(void *a0) {
extern void (*D_800CBC9C[])(void);
D_800CBC9C[*(u16 *)((s32)a0 + 0x2)]();
}
extern void func_800CB008(void);
void func_800CAFE8(void) {
func_800CB008();
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB008);
@@ -56,14 +86,89 @@ INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB630);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB68C);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB8A4);
extern void func_800CBAA4(s32 a0);
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
void func_800CB8A4(s32 a0) {
s32 s1;
s32 v;
s1 = *(s32 *)(a0 + 0x20);
func_800CBAA4(a0);
v = *(s32 *)(a0 + 0x1C) - 1;
*(s32 *)(a0 + 0x1C) = v;
if (v != 0) {
func_80146A6C(0x41, (void *)a0, 0, 0, 0, 0x8000, 0);
*(s16 *)(s1 + 0x18) = *(u16 *)(s1 + 0x18) + 0x100;
*(s16 *)(s1 + 0x1A) = *(u16 *)(s1 + 0x1A) + 0x140;
return;
}
*(s32 *)(a0 + 0x1C) = 0x20;
*(s16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB944);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CB9C0);
extern void func_800CBAA4(s32 a0);
extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a6);
void func_800CB944(s32 *a0) {
func_800CBAA4((s32)a0);
if (--a0[0x1C / 4] != 0) {
func_80146A6C(0x41, a0, 0, 0, 0, 0x8000, 0);
} else {
a0[0x1C / 4] = 0x10;
*(u16 *)((char *)a0 + 2) += 1;
}
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CBA30);
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CBAA4);
extern void func_800CBAA4(s32 a0);
extern void func_80146C3C();
void func_800CB9C0(void *a0) {
s32 *s1 = *(s32 **)((s32)a0 + 0x20);
func_800CBAA4((s32)a0);
if (--*(s32 *)((s32)a0 + 0x1C) != 0) {
*(u16 *)((s32)s1 + 0x18) -= 0x100;
*(u16 *)((s32)s1 + 0x1A) -= 0x120;
} else {
((void (*)(s32))func_80146C3C)((s32)a0);
}
}
extern void func_800D22E4(s32 a0);
extern void func_800CBB38(void *a0, void *a1);
extern void func_80146C3C();
void func_800CBA30(void *a0) {
s32 v0;
v0 = *(s32*)((s32)a0 + 0x1C) - 1;
*(s32*)((s32)a0 + 0x1C) = v0;
if (v0 != 0) {
func_800D22E4((s32)a0);
*(s16*)((s32)a0 + 0x16) = *(u16*)((s32)a0 + 0x16) - 3;
*(s32*)((s32)a0 + 0x30) = *(s32*)((s32)a0 + 0x30) - 0xE;
func_800CBB38(a0, (void*)((s32)a0 + 0x38));
} else {
((void (*)(void *))func_80146C3C)(a0);
}
}
extern void func_800D20C0(void *a0, void *a1, s32 a2);
extern void func_800D23D0(void *a0);
extern void RotMatrixYXZ(void *a0, void *a1);
void func_800CBAA4(s32 a0) {
s16 src[4];
u8 mtx[8];
s32 p;
p = *(s32 *)(a0 + 0x34);
src[0] = *(u16 *)(p + 0x6);
src[1] = *(u16 *)(p + 0xA) - 0x28;
src[2] = *(u16 *)(p + 0xE);
func_800D20C0((void *)src, (void *)mtx, 6);
*(s16 *)(a0 + 0x6) = src[0];
*(s16 *)(a0 + 0xA) = src[1];
*(s16 *)(a0 + 0xE) = src[2];
func_800D23D0((void *)mtx);
RotMatrixYXZ((void *)mtx, (void *)(a0 + 0x38));
}
INCLUDE_ASM("asm/md_MAIN_022/nonmatchings/md_MAIN_022", func_800CBB38);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_023/nonmatchings/md_MAIN_023", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_023/nonmatchings/md_MAIN_023", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_023/nonmatchings/md_MAIN_023", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CAF40[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CAF40[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEC0(u8 *a0);
void func_800CAE78(u8 *a0) {
if (func_80161104()) {
func_800CAEC0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_023/nonmatchings/md_MAIN_023", func_800CAEC0);
+15 -2
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_024/nonmatchings/md_MAIN_024", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_024/nonmatchings/md_MAIN_024", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_024/nonmatchings/md_MAIN_024", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CAF08[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CAF08[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEB0();
void func_800CAE78(void *a0) {
func_800CAEB0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_024/nonmatchings/md_MAIN_024", func_800CAEB0);
+20 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CAE14);
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CAE5C);
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CAEA0);
void func_800CAE5C(void *a0) {
extern void (*D_800CBE7C[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBE7C[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAED8();
void func_800CAEA0(void *a0) {
func_800CAED8(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CAED8);
@@ -20,7 +33,11 @@ INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CB0E4);
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CB138);
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CB180);
extern void func_800CBBF8(void);
void func_800CB180(void) {
func_800CBBF8();
}
INCLUDE_ASM("asm/md_MAIN_025/nonmatchings/md_MAIN_025", func_800CB1A0);
+20 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CBB10[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBB10[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEC0();
void func_800CAE88(void *a0) {
func_800CAEC0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CAEC0);
@@ -14,7 +27,11 @@ INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CAF68);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB010);
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB078);
extern void func_800CB108(void);
void func_800CB078(void) {
func_800CB108();
}
INCLUDE_ASM("asm/md_MAIN_026/nonmatchings/md_MAIN_026", func_800CB098);
+40 -6
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CC134[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CC134[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEC0();
void func_800CAE88(void *a0) {
func_800CAEC0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAEC0);
@@ -16,11 +29,28 @@ void func_800CAF20(void) {
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAF28);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAF5C);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAF90(void *a0);
void func_800CAF5C(s32 *a0) {
func_80147078(a0, 32);
func_800CAF90(a0);
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAF90);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAFCC);
void func_800CAF90(void *a0) {
extern void (*D_800CC140[])(void);
D_800CC140[*(u16 *)((s32)a0 + 0x2)]();
}
extern void func_800CAFEC(void);
void func_800CAFCC(void) {
func_800CAFEC();
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CAFEC);
@@ -54,7 +84,11 @@ INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CBECC);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CBF28);
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CBFE4);
extern void func_800CC024(void);
void func_800CBFE4(void) {
func_800CC024();
}
INCLUDE_ASM("asm/md_MAIN_027/nonmatchings/md_MAIN_027", func_800CC004);
+24 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CBE94[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBE94[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEC0();
void func_800CAE88(void *a0) {
func_800CAEC0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CAEC0);
@@ -18,7 +31,15 @@ INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB3AC);
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB484);
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB564);
extern s32 func_800CB6D4(s32 a0);
extern s32 func_800CB600(void *a0);
void func_800CB564(int param_1)
{
if (((int (*)(void))func_800CB6D4)() != 0) {
((void (*)(int))func_800CB600)(param_1);
}
}
INCLUDE_ASM("asm/md_MAIN_028/nonmatchings/md_MAIN_028", func_800CB59C);
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CAE64);
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CAEA8);
void func_800CAE64(void *a0) {
extern void (*D_800CB49C[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB49C[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEE0();
void func_800CAEA8(void *a0) {
func_800CAEE0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CAEE0);
@@ -21,4 +34,11 @@ INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CB0D0);
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CB2AC);
INCLUDE_ASM("asm/md_MAIN_029/nonmatchings/md_MAIN_029", func_800CB460);
void func_800CB460(void *a0) {
extern void (*D_800CB4BC[])(void);
D_800CB4BC[*(u16 *)((s32)a0 + 0x2)]();
}
+23 -3
View File
@@ -2,9 +2,22 @@
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CB458[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB458[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CAEC0();
void func_800CAE88(void *a0) {
func_800CAEC0(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CAEC0);
@@ -18,4 +31,11 @@ INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CB158);
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CB1EC);
INCLUDE_ASM("asm/md_MAIN_030/nonmatchings/md_MAIN_030", func_800CB41C);
void func_800CB41C(void *a0) {
extern void (*D_800CB490[])(void);
D_800CB490[*(u16 *)((s32)a0 + 0x2)]();
}
+18 -2
View File
@@ -4,9 +4,25 @@ INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CAE74);
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CAF58);
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CAF9C);
void func_800CAF58(void *a0) {
extern void (*D_800CBFE4[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBFE4[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAFE4(u8 *a0);
void func_800CAF9C(u8 *a0) {
if (func_80161104()) {
func_800CAFE4(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_031/nonmatchings/md_MAIN_031", func_800CAFE4);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB29C[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB29C[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEC0(u8 *a0);
void func_800CAE78(u8 *a0) {
if (func_80161104()) {
func_800CAEC0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_032/nonmatchings/md_MAIN_032", func_800CAEC0);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CB8A4[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB8A4[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAED0(u8 *a0);
void func_800CAE88(u8 *a0) {
if (func_80161104()) {
func_800CAED0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_033/nonmatchings/md_MAIN_033", func_800CAED0);
+15 -2
View File
@@ -26,9 +26,22 @@ INCLUDE_ASM("asm/md_MAIN_034/nonmatchings/md_MAIN_034", func_800CC110);
INCLUDE_ASM("asm/md_MAIN_034/nonmatchings/md_MAIN_034", func_800CC144);
INCLUDE_ASM("asm/md_MAIN_034/nonmatchings/md_MAIN_034", func_800CC16C);
INCLUDE_ASM("asm/md_MAIN_034/nonmatchings/md_MAIN_034", func_800CC1B0);
void func_800CC16C(void *a0) {
extern void (*D_800CCA18[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CCA18[*(u8 *)((s32)a0 + 0x197)]();
}
extern void func_800CC1E8();
void func_800CC1B0(void *a0) {
func_800CC1E8(a0);
*(u8 *)((s32)a0 + 0x197) += 1;
}
INCLUDE_ASM("asm/md_MAIN_034/nonmatchings/md_MAIN_034", func_800CC1E8);
+75 -7
View File
@@ -2,22 +2,62 @@
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAE34);
void func_800CAE34(void *a0) {
extern void (*D_800CB278[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB278[*(u8 *)((s32)a0 + 0x197)]();
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAE78);
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAEB0);
s32 func_800CAEB0(u8 *a0)
{
s32 v = a0[407] + 1;
a0[407] = v;
return v;
}
void func_800CAEC4(void) {
extern s32 D_80078EC8;
D_80078EC8 = 1;
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAEC4);
void func_800CAED8(void) {
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAEE0);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAFBC(void *a0);
void func_800CAEE0(s32 *a0) {
func_80147078(a0, 35);
func_800CAFBC(a0);
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAF14);
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAF48);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CAF48(void *a0);
void func_800CAF14(s32 *a0) {
func_80147078(a0, 35);
func_800CAF48(a0);
}
void func_800CAF48(void *a0) {
extern void (*D_800CB284[])(void);
D_800CB284[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CAF84);
@@ -29,6 +69,34 @@ INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CB080);
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CB108);
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CB13C);
// @class: other
// @stuck: none — MATCH (proxy gate)
extern void func_80149374(s32 a0, s32 a1);
void func_800CB13C(s32 param_1) {
extern s8 D_800CB290[];
s32 iVar1;
s32 iVar2;
iVar2 = *(s32 *)(param_1 + 0x178);
iVar1 = *(s32 *)(param_1 + 0x234);
*(s32 *)(param_1 + 0x234) = iVar1 + 1;
*(s16 *)(iVar2 + 6) = (s16)D_800CB290[iVar1] + *(s16 *)(*(s32 *)(iVar2 + 0x78) + 0xc);
iVar1 = *(s32 *)(param_1 + 0x234);
*(s32 *)(param_1 + 0x234) = iVar1 + 1;
*(s16 *)(iVar2 + 10) = (s16)D_800CB290[iVar1] + *(s16 *)(*(s32 *)(iVar2 + 0x78) + 0xe);
iVar1 = *(s32 *)(param_1 + 0x234);
*(s32 *)(param_1 + 0x234) = iVar1 + 1;
*(s16 *)(iVar2 + 0xe) = (s16)D_800CB290[iVar1] + *(s16 *)(*(s32 *)(iVar2 + 0x78) + 0x10);
func_80149374(param_1, iVar2 + 4);
}
INCLUDE_ASM("asm/md_MAIN_035/nonmatchings/md_MAIN_035", func_800CB1F8);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAE54);
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAE98);
void func_800CAE54(void *a0) {
extern void (*D_800CBF94[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBF94[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEE0(u8 *a0);
void func_800CAE98(u8 *a0) {
if (func_80161104()) {
func_800CAEE0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_036/nonmatchings/md_MAIN_036", func_800CAEE0);
+18 -2
View File
@@ -4,9 +4,25 @@ INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CAE70);
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CAEC0);
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CAF04);
void func_800CAEC0(void *a0) {
extern void (*D_800CB610[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB610[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAF4C(u8 *a0);
void func_800CAF04(u8 *a0) {
if (func_80161104()) {
func_800CAF4C(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_037/nonmatchings/md_MAIN_037", func_800CAF4C);
+25 -3
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CBBA8[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBBA8[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAED0(u8 *a0);
void func_800CAE88(u8 *a0) {
if (func_80161104()) {
func_800CAED0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CAED0);
@@ -14,7 +30,13 @@ INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CAFAC);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB194);
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB1E4);
extern void func_80154A74(s32 a0, s32 a1);
s32 func_800CB1E4(s32 a0)
{
*(u32 *)(a0 + 0x44) = *(u32 *)(a0 + 0x44) & ~2;
func_80154A74(a0, 0x11);
}
INCLUDE_ASM("asm/md_MAIN_038/nonmatchings/md_MAIN_038", func_800CB214);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CAE14);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CAE4C);
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CAE90);
void func_800CAE4C(void *a0) {
extern void (*D_800CBE34[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CBE34[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAED8(u8 *a0);
void func_800CAE90(u8 *a0) {
if (func_80161104()) {
func_800CAED8(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_039/nonmatchings/md_MAIN_039", func_800CAED8);
+18 -2
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CAE44);
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CAE88);
void func_800CAE44(void *a0) {
extern void (*D_800CB8C8[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB8C8[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAED0(u8 *a0);
void func_800CAE88(u8 *a0) {
if (func_80161104()) {
func_800CAED0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_040/nonmatchings/md_MAIN_040", func_800CAED0);
+25 -3
View File
@@ -2,9 +2,25 @@
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CAE0C);
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CAE34);
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CAE78);
void func_800CAE34(void *a0) {
extern void (*D_800CB7D4[])(void);
*(u32 *)((s32)a0 + 0x44) |= 8;
D_800CB7D4[*(u8 *)((s32)a0 + 0x197)]();
}
extern s32 func_80161104(void);
extern void func_800CAEC0(u8 *a0);
void func_800CAE78(u8 *a0) {
if (func_80161104()) {
func_800CAEC0(a0);
*(u8 *)(a0 + 0x197) = *(u8 *)(a0 + 0x197) + 1;
}
}
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CAEC0);
@@ -26,6 +42,12 @@ INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CB358);
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CB3BC);
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CB634);
void func_800CB634(s32 a0) {
*(s32 *)(a0 + 0x1C) = 0x20;
*(u16 *)(a0 + 0x12) = 0;
*(u16 *)(a0 + 0x10) = 0x80;
*(u16 *)(a0 + 0x2) = *(u16 *)(a0 + 0x2) + 1;
}
INCLUDE_ASM("asm/md_MAIN_041/nonmatchings/md_MAIN_041", func_800CB658);
+16 -2
View File
@@ -18,7 +18,14 @@ INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCEA0);
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCEAC);
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCF14);
void func_800CCF14(void *a0) {
extern void (*D_800CD6EC[])(void);
D_800CD6EC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CCF50);
@@ -34,7 +41,14 @@ INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CD27C);
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CD31C);
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CD3C8);
void func_800CD3C8(void *a0) {
extern void (*D_800CD6F8[])(void);
D_800CD6F8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_043/nonmatchings/md_MAIN_043", func_800CD404);
+50 -7
View File
@@ -33,7 +33,14 @@ INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD050);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD178);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD198);
void func_800CD198(void *a0) {
extern void (*D_800CE220[])(void);
D_800CE220[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD1D4);
@@ -61,13 +68,27 @@ INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD848);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD894);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD948);
void func_800CD948(void *a0) {
extern void (*D_800CE24C[])(void);
D_800CE24C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CD984);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDA0C);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDA44);
void func_800CDA44(void *a0) {
extern void (*D_800CE254[])(void);
D_800CE254[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDA80);
@@ -75,9 +96,20 @@ INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDB4C);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDBA8);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDDA8);
extern void func_800CE004(void);
void func_800CDDA8(void) {
func_800CE004();
}
void func_800CDDC8(void *a0) {
extern void (*D_800CE25C[])(void);
D_800CE25C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDDC8);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CDE04);
@@ -85,8 +117,19 @@ INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE004);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE134);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE188);
INCLUDE_ASM("asm/md_MAIN_044/nonmatchings/md_MAIN_044", func_800CE1C4);
void func_800CE188(void *a0) {
extern void (*D_800CE268[])(void);
D_800CE268[*(u16 *)((s32)a0 + 0x2)]();
}
extern void func_800CE134(void);
void func_800CE1C4(void) {
func_800CE134();
}
INCLUDE_RODATA("asm/md_MAIN_044/nonmatchings/md_MAIN_044", D_800CCB1C);
+27 -4
View File
@@ -9,11 +9,28 @@ INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCB78);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCC8C);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCCC0);
extern void func_80147078(s32 *a0, s16 a1);
extern void func_800CCCF4(void *a0);
void func_800CCCC0(s32 *a0) {
func_80147078(a0, 33);
func_800CCCF4(a0);
}
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCCF4);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCD30);
void func_800CCCF4(void *a0) {
extern void (*D_800CE044[])(void);
D_800CE044[*(u16 *)((s32)a0 + 0x2)]();
}
extern void func_800CCD50(void);
void func_800CCD30(void) {
func_800CCD50();
}
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CCD50);
@@ -61,7 +78,13 @@ INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CDA4C);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CDAB4);
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CDBA4);
extern void func_800CDBF4(void);
extern void func_800CDCA8(void);
void func_800CDBA4(s32 a0) {
func_800CDBF4();
((void (*)(s32))func_800CDCA8)(a0);
}
INCLUDE_ASM("asm/md_MAIN_046/nonmatchings/md_MAIN_046", func_800CDBD4);
+24 -3
View File
@@ -7,7 +7,14 @@ INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CCB28);
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CCB78);
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CCB84);
void func_800CCB84(void *a0) {
extern void (*D_800CD6C8[])(void);
D_800CD6C8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CCBC0);
@@ -15,9 +22,23 @@ INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CCDE8);
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD314);
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD458);
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD494);
void func_800CD458(void *a0) {
extern void (*D_800CD6D0[])(void);
D_800CD6D0[*(u16 *)((s32)a0 + 0x2)]();
}
void func_800CD494(void *a0) {
extern void (*D_800CD6D8[])(void);
D_800CD6D8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_MAIN_047/nonmatchings/md_MAIN_047", func_800CD4D0);
+129 -12
View File
@@ -98,7 +98,14 @@ INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A310C);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A312C);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A3190);
void func_801A3190(void *a0) {
extern void (*D_801A6D8C[])(void);
D_801A6D8C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A31CC);
@@ -122,7 +129,14 @@ INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4268);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A43E8);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A44C8);
void func_801A44C8(void *a0) {
extern void (*D_801A6F00[])(void);
D_801A6F00[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4504);
@@ -130,7 +144,14 @@ INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4590);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4680);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4810);
void func_801A4810(void *a0) {
extern void (*D_801A7308[])(void);
D_801A7308[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A484C);
@@ -144,33 +165,129 @@ INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4D58);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4DFC);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4F78);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A4FB4);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A505C);
void func_801A4F78(void *a0) {
extern void (*D_801A73B4[])(void);
D_801A73B4[*(u16 *)((s32)a0 + 0x2)]();
}
// @stuck: none — MATCH (42 ins), iteration 1, rtu_match clean.
// Saturating add of a 3-byte RGB triple by a signed delta.
// Idioms: (1) `s8` by-value param => entry `sll/sra 24` for the sign test only;
// combine folds the extension back out of `~a1`/`-a1`/`a0[i]+a1` because every
// consumer is 8-bit (andi 0xFF / sb), so $a1 is used RAW after the test.
// (2) branch sense read off the target `sltu` operand ORDER (§3-T4): positive arm
// `sltu lim,p[i]` => store when `p[i] <= lim`; negative arm `sltu p[i],lim`
// => store when `p[i] >= lim`.
// (3) the third `if` written out in BOTH arms; jump.c cross-jumps the identical
// tails into the shared `j .L8018C344` (§5a) — do not hoist it after the if/else.
void func_801A4FB4(u8 *a0, s8 a1) {
u8 lim;
if (a1 == 0) {
return;
}
if (a1 > 0) {
lim = ~a1;
if (a0[0] <= lim) {
a0[0] = a0[0] + a1;
}
if (a0[1] <= lim) {
a0[1] = a0[1] + a1;
}
if (a0[2] <= lim) {
a0[2] = a0[2] + a1;
}
} else {
lim = -a1;
if (a0[0] >= lim) {
a0[0] = a0[0] + a1;
}
if (a0[1] >= lim) {
a0[1] = a0[1] + a1;
}
if (a0[2] >= lim) {
a0[2] = a0[2] + a1;
}
}
}
void func_801A505C(void *a0) {
extern void (*D_801A73BC[])(void);
D_801A73BC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5098);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A50D4);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A50FC);
extern void func_8012AD44(s32 *a0, s16 a1);
void func_801A50D4(void * arg0) {
*(s8 *)((char *)arg0 + 0xfc) = 0x8;
((void (*)(s32, s32))func_8012AD44)((int)arg0, 0x2);
}
void func_801A50FC(void *a0) {
extern void (*D_801A73C4[])(void);
D_801A73C4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5138);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A52DC);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5638);
void func_801A5638(void *a0) {
extern void (*D_801A73F4[])(void);
D_801A73F4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5674);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5860);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A589C);
void func_801A5860(void *a0) {
extern void (*D_801A73FC[])(void);
D_801A73FC[*(u16 *)((s32)a0 + 0x2)]();
}
void func_801A589C(void *a0) {
extern void (*D_801A7414[])(void);
D_801A7414[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A58D8);
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A59D4);
void func_801A59D4(void *a0) {
extern void (*D_801A743C[])(void);
D_801A743C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_003/nonmatchings/md_SC07_003", func_801A5A10);
+401 -40
View File
@@ -52,15 +52,26 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2310);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2330);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2350);
s32 func_801A2350(s32 arg0) {
return *(u16*)(arg0 + 0x34) == 0x6;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2364);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2400);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C4C);
s32 func_801A2C4C(void) {
return 0;
}
s32 func_801A2C54(s32 arg0) {
return *(u16*)(arg0 + 0x34) == 0x7;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C54);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A2C68);
@@ -88,11 +99,48 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A34FC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3594);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A3624);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90_801A3624;
void func_801A3624(s32 target, u16 *cur, s32 step)
{
s32 t;
s32 diff;
s32 mag;
t = (target - *cur) & 0xFFF;
if (t < 0x800) {
diff = t;
} else {
diff = t | 0xF000;
}
mag = diff;
if ((s16)diff < 0) {
mag = -diff;
}
__asm__ __volatile__("" : "=r"(diff) : "0"(diff) : "memory");
if ((s16)mag > (u16)step) {
if ((s16)diff < 0) {
*cur = *cur - step;
} else {
*cur = *cur + step;
}
} else {
*cur = target;
}
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A36A8);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A36F0);
void func_801A36F0(void *a0) {
s32 v0 = *(u16 *)((s32)a0 + 0xA);
s32 v1 = *(u16 *)((s32)a0 + 0x52);
*(u16 *)((s32)a0 + 0x52) = 0;
*(u16 *)((s32)a0 + 0x108) = 0;
*(u16 *)((s32)a0 + 0xA) = v0 + v1;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A370C);
@@ -126,7 +174,17 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4060);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A40CC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A417C);
extern s32 func_8012C658(s32 arg0, s32 arg1, s32 arg2);
void func_801A417C(s32 arg0) {
s32 i;
for (i = 0; i < 15; i++) {
func_8012C658(0x31f, i, arg0);
}
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A41CC);
@@ -136,7 +194,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4328);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A43EC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4420);
void func_801A4420(void *a0) {
extern void (*D_801AFF34[])(void);
D_801AFF34[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A445C);
@@ -158,7 +223,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4AAC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4ACC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4E80);
void func_801A4E80(void *a0) {
extern void (*D_801B014C[])(void);
D_801B014C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A4EBC);
@@ -168,13 +240,27 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5094);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5194);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A53B8);
void func_801A53B8(void *a0) {
extern void (*D_801B0160[])(void);
D_801B0160[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A53F4);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5414);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5470);
void func_801A5470(void *a0) {
extern void (*D_801B0168[])(void);
D_801B0168[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A54AC);
@@ -196,7 +282,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5AE0);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B00);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B20);
void func_801A5B20(void *a0) {
extern void (*D_801B02C8[])(void);
D_801B02C8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A5B5C);
@@ -212,9 +305,33 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6184);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6330);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A63A8);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A63EC);
/* func_801A63A8 — guard-then-free tail (cookbook §71 sibling shape:
* src/ov_SC02_011/ov_SC02_011_jr_8017AE2C.c func_80144458 tail, and
* src/ov_SC03_099/ov_SC03_099_jr_80140608.c:2432 func_80016714(x, 0x38)). */
extern void func_80016714(void *a0, s32 a1);
extern void func_8012C218(void *a0);
void func_801A63A8(void *arg0) {
void *temp_a0;
temp_a0 = *(void **)((char *)arg0 + 0xCC);
if (temp_a0 != NULL) {
func_80016714(temp_a0, 0x38);
}
func_8012C218(arg0);
}
void func_801A63EC(void *a0) {
extern void (*D_801B0338[])(void);
D_801B0338[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6428);
@@ -232,7 +349,11 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A67F8);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6908);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6A18);
extern void func_801A1E94(void);
void func_801A6A18(void) {
func_801A1E94();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A6A38);
@@ -266,7 +387,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7358);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7604);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A77CC);
void func_801A77CC(void *a0) {
extern void (*D_801B0378[])(void);
D_801B0378[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7808);
@@ -284,7 +412,12 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7C34);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7C58);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7CC8);
void func_801A7CC8(void *a0) {
*(s32 *)((char *)a0 + 0x1c) = 0x4;
*(s16 *)((char *)a0 + 0x2) = 0x4;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A7CDC);
@@ -304,7 +437,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8228);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8294);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8404);
void func_801A8404(void *a0) {
extern void (*D_801B038C[])(void);
D_801B038C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8440);
@@ -332,17 +472,38 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A87C4);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A881C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8884);
extern void func_8012AD44(s32 *a0, s16 a1);
void func_801A8884(s32 *a0) {
a0[7] = 0x3;
func_8012AD44(a0, 2);
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A88AC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8954);
void func_801A8954(void *a0) {
extern void (*D_801B03B8[])(void);
D_801B03B8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8990);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8A64);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8B28);
void func_801A8B28(void *a0) {
extern void (*D_801B0400[])(void);
D_801B0400[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A8B64);
@@ -362,11 +523,25 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9270);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A930C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A933C);
void func_801A933C(void *a0) {
extern void (*D_801B0494[])(void);
D_801B0494[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9378);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A93B8);
void func_801A93B8(void *a0) {
extern void (*D_801B05FC[])(void);
D_801B05FC[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A93F4);
@@ -378,7 +553,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9674);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9810);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A98CC);
void func_801A98CC(void *a0) {
extern void (*D_801B072C[])(void);
D_801B072C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9908);
@@ -390,7 +572,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9AAC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9ADC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9B04);
void func_801A9B04(void *a0) {
extern void (*D_801B0768[])(void);
D_801B0768[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9B40);
@@ -406,7 +595,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9F5C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9FA8);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801A9FC8);
void func_801A9FC8(void *a0) {
extern void (*D_801B0780[])(void);
D_801B0780[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA004);
@@ -430,11 +626,32 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA584);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA60C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA730);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA76C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA7A8);
void func_801AA730(void *a0) {
extern void (*D_801B07C0[])(void);
D_801B07C0[*(u16 *)((s32)a0 + 0x2)]();
}
void func_801AA76C(void *a0) {
extern void (*D_801B07C8[])(void);
D_801B07C8[*(u16 *)((s32)a0 + 0x2)]();
}
void func_801AA7A8(void *a0) {
extern void (*D_801B07D0[])(void);
D_801B07D0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AA7E4);
@@ -454,7 +671,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAF34);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AAF8C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB178);
extern void func_801AB1A8(void);
void func_801AB178(s32 *param) {
if (*(u16 *)((char *)param + 0x2) == 0) {
((void (*)(void))func_801AB1A8)();
}
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AB1A8);
@@ -524,21 +748,49 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACB2C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACC24);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACD10);
void func_801ACD10(void *a0) {
extern void (*D_801B07D8[])(void);
D_801B07D8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACD4C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACDC8);
void func_801ACDC8(void *a0) {
extern void (*D_801B07E0[])(void);
D_801B07E0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE04);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE20);
void func_801ACE20(void *a0) {
extern void (*D_801B07E8[])(void);
D_801B07E8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ACE5C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD068);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD1E4);
void func_801AD1E4(void *a0) {
extern void (*D_801B07F4[])(void);
D_801B07F4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD220);
@@ -552,11 +804,23 @@ INCLUDE_RODATA("asm/md_SC07_004/nonmatchings/md_SC07_004", D_801A0220);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD31C);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD4C0);
void func_801AD4C0(void *a0) {
*(s32 *)((char *)a0 + 0x1c) = 0x10;
*(s16 *)((char *)a0 + 0x2) = 0x1;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD4D4);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD520);
void func_801AD520(void *a0) {
extern void (*D_801B081C[])(void);
D_801B081C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD55C);
@@ -564,7 +828,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD5B4);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD640);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD6C4);
void func_801AD6C4(void *a0) {
extern void (*D_801B0830[])(void);
D_801B0830[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD700);
@@ -572,7 +843,14 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD7EC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD914);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AD9D4);
void func_801AD9D4(void *a0) {
extern void (*D_801B0884[])(void);
D_801B0884[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801ADA10);
@@ -618,7 +896,20 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AE990);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEA40);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEAAC);
s32 func_801AEAAC(void) {
extern u8 D_801F8EB8[];
s32 a0;
s32 v1;
v1 = (s32)D_801F8EB8;
for (a0 = 0; a0 < 0x20; a0++, v1 += 0x24) {
if (*(u16 *)v1 == 0) {
return v1;
}
}
return 0;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEAE4);
@@ -628,13 +919,83 @@ INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEB94);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AEC38);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF1EC);
extern void func_801AF2EC(void *a0);
extern void func_801AF368(void *a0);
extern void func_8012931C(struct vec *a0);
extern void func_801292C8(u8 *a0);
void func_801AF1EC(void *a0) {
if (*(u16 *)((s32)a0 + 0x2) == 0) {
func_801AF2EC(a0);
return;
}
if (*(s32 *)((s32)a0 + 0x1C) != 0) {
*(s32 *)((s32)a0 + 0x1C) -= 1;
func_8012931C((struct vec *)a0);
if (*(s16 *)((s32)a0 + 0x32) == 0) {
u16 t = *(u16 *)((s32)a0 + 0xA) + 0x1000;
if (t >= 0x1001) {
func_801292C8((u8 *)a0);
return;
}
}
} else {
func_801292C8((u8 *)a0);
return;
}
*(s32 *)((s32)a0 + 0x14) += *(s32 *)((s32)a0 + 0x34);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x14) += *(u16 *)((s32)a0 + 0x30);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0x8) = *(u16 *)((s32)a0 + 0x6);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0xA) = *(u16 *)((s32)a0 + 0xA);
*(u16 *)(*(s32 *)((s32)a0 + 0x20) + 0xC) = *(u16 *)((s32)a0 + 0xE);
func_801AF368((void *)*(s32 *)((s32)a0 + 0x20));
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF2EC);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF368);
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF808);
// @class: loose-typing
// @stuck: none — MATCH (99 ins). short* for param_2/param_3: gcc emits lh where sign is live (<<1 for signed div), lhu where truncated to short (arith result / direct copy)
extern int rand(void);
extern int func_801AF9C8(short *pos, int a1, int a2);
void func_801AF808(unsigned short *param_1, short *param_2, short *param_3,
unsigned int param_4, int param_5)
{
int r;
int d;
short buf[4];
int p;
if ((*param_1 & (short)((1 << param_4) - 1)) == 0) {
r = rand();
d = param_3[0] << 1;
buf[0] = (param_2[0] + (r % d)) - param_3[0];
r = rand();
d = param_3[1] << 1;
buf[1] = (param_2[1] + (r % d)) - param_3[1];
r = rand();
d = param_3[2] << 1;
buf[2] = (param_2[2] + (r % d)) - param_3[2];
buf[3] = param_3[3];
p = func_801AF9C8(buf, 0, param_5);
if (p != 0) {
*(short *)(*(int *)(p + 0x20) + 0x18) = param_2[3];
}
}
*param_1 = *param_1 + 1;
}
INCLUDE_ASM("asm/md_SC07_004/nonmatchings/md_SC07_004", func_801AF994);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -80,6 +80,12 @@ _INCLUDE_ASM_CAND = re.compile(r'^(?![ \t]*(?://|\*|/\*)).*INCLUDE_ASM\s*\(')
_INCLUDE_ASM = re.compile(r'INCLUDE_ASM\(\s*"([^"]+)"\s*,\s*([A-Za-z_]\w*)\s*\)')
_SYM_LINE = re.compile(r'^\s*(\w+)\s*=\s*0x([0-9A-Fa-f]+)')
_INS = re.compile(r'/\* [0-9A-Fa-f]+ [0-9A-Fa-f]{8} [0-9A-Fa-f]{8} \*/')
# Data-directive lines carry the same /* off addr word */ comment shape as instructions — a
# module-class .s can legitimately hold its function's HEADER-region jump table (the paired
# .rodata migration, S45: `dlabel jtbl_*` + `.word .L*` lines ride inside func_*.s so the local
# labels resolve). Those are DATA, not instructions; counting them mis-read 24 correct module
# slices as TRUNCATED. The audit compares CODE extents — exclude directive lines.
_DATA_DIRECTIVE = re.compile(r'\*/\s*\.(word|short|byte|ascii|asciz|float|double)\b')
_FUNC_NAME = re.compile(r'^func_([0-9A-Fa-f]{6,8})$')
Stub = namedtuple("Stub", "addr symbol path region asm_dir asm_path")
@@ -356,7 +362,8 @@ def audit(binary):
continue
p = os.path.join(REPO, s.asm_path)
if os.path.exists(p):
n = len(_INS.findall(open(p, errors="replace").read()))
n = sum(1 for ln in open(p, errors="replace")
if _INS.search(ln) and not _DATA_DIRECTIVE.search(ln))
if n != row["nins"]:
truncated.append((s, n, row["nins"]))
return {"binary": binary, "stubs": len(st), "matched": len(matched(binary)),
+7
View File
@@ -571,6 +571,13 @@ def classify():
stubs.append(fn)
i += 1; continue
if s.startswith('INCLUDE_RODATA'):
# Bucket the symbol as a data BLOB rather than skipping it unbucketed: the module
# class (S45) emits header rodata (the §154 id word, orphan jtbl carriers) as
# per-symbol .s files in nonmatchings/, so they enter _S_INDEX and an unbucketed
# skip reads as an R32 COVERAGE DEFECT. Rodata is data by construction.
m = re.match(r'INCLUDE_RODATA\("[^"]+",\s*(\w+)\)', s)
if m:
blobs.append(m.group(1))
i += 1; continue
fm = SIG.match(lines[i])
if fm and '(' in lines[i]: