feat(phase-22): bank 4 fns from cheap-tier A/B experiment (byte-verified, fleet 63.66->63.67)

Whole-binary SHA gate (gate_stage) banked 4 of 15 match_one-proxy matches:
func_80138BE0 func_8012F828 func_8012E9C0 (ov_SC01_077_a) + func_80141100 (main).
The other 11 are self-match-but-gate-rejected (TU declaration plumbing); logged to
the backlog as recovery fuel. ov_SC01_077 stays byte-identical (d19c9580).
This commit is contained in:
Drew T
2026-06-29 12:51:40 -06:00
parent cac25bd74b
commit 6d5fe3dfde
2 changed files with 108 additions and 4 deletions
+43 -1
View File
@@ -714,7 +714,49 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_80140E6C);
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_80140F00);
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_80141100);
// @class: other
// @stuck: none — MATCH
extern short D_80115128;
extern unsigned short D_80115172;
extern unsigned short D_8018797A;
extern unsigned short D_8018797E;
extern unsigned short D_80187982;
extern unsigned short D_80187986;
extern s32 func_8002A1B4(void);
extern short func_8002A28C(void);
extern short func_8002A27C(void);
extern s32 func_8002A400(void);
extern short func_8002A4D8(void);
extern short func_8002A4C8(void);
extern s32 func_8002A8E0(void);
extern short func_8002A9B8(void);
extern short func_8002A9A8(void);
extern s32 func_8002A670(void);
extern short func_8002A748(void);
extern short func_8002A738(void);
extern int func_801412A8(int, int, int, int, int, int);
int func_80141100(int param_1)
{
short sVar1;
int iVar7;
if (D_80115128 == 0) {
iVar7 = D_80115172 + 0x31;
sVar1 = D_8018797A;
param_1 = func_801412A8(param_1, ((short (*)(void))func_8002A1B4)(), func_8002A28C(), func_8002A27C(), (short)iVar7, (int)sVar1);
sVar1 = D_8018797E;
param_1 = func_801412A8(param_1, ((short (*)(void))func_8002A400)(), func_8002A4D8(), func_8002A4C8(), (short)iVar7, (int)sVar1);
sVar1 = D_80187982;
param_1 = func_801412A8(param_1, ((short (*)(void))func_8002A8E0)(), func_8002A9B8(), func_8002A9A8(), (short)iVar7, (int)sVar1);
sVar1 = D_80187986;
param_1 = func_801412A8(param_1, ((short (*)(void))func_8002A670)(), func_8002A748(), func_8002A738(), (short)iVar7, (int)sVar1);
}
return param_1;
}
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077", func_801412A8);
+65 -3
View File
@@ -1075,7 +1075,43 @@ DEFINE_func_8012E8C4() /* dedup: shared engine-core @0x8012E8C4 (src/shared) */
DEFINE_func_8012E8E0() /* dedup: shared engine-core @0x8012E8E0 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_a", func_8012E9C0);
// @class: other
// @stuck: none — MATCH (branch-polarity invert: `0x78 != 0` puts compute block as fall-through)
extern void func_8016AA50(int, int);
extern void func_8016B428(int);
extern void func_80019064(void *);
extern int D_80186E70;
void func_8012E9C0(int param_1)
{
int iVar1;
if (*(short *)(param_1 + 0x60) != 0) {
if (*(unsigned char *)(param_1 + 0x5e) == 0x1d) {
*(short *)(param_1 + 0x82) = 0;
*(short *)(param_1 + 0x7c) = *(unsigned short *)(param_1 + 6);
*(short *)(param_1 + 0x7e) = *(unsigned short *)(param_1 + 0xa);
*(short *)(param_1 + 0x80) = *(unsigned short *)(param_1 + 0xe);
}
if (*(int *)(param_1 + 0x78) != 0) {
iVar1 = *(short *)(param_1 + 0x60) *
*(short *)(*(int *)(param_1 + 0x78) + 0x30) >> 0xc;
if (iVar1 < 1) {
iVar1 = 1;
}
} else {
iVar1 = *(short *)(param_1 + 0x60);
}
func_8016AA50(param_1, iVar1);
if ((*(unsigned short *)(param_1 + 0x82) & 1) != 0) {
func_8016B428(param_1);
func_80019064(&D_80186E70);
}
}
return;
}
// @class: regalloc-order
// @stuck: none — MATCH (93 ins)
@@ -1216,7 +1252,21 @@ void func_8012F75C(s32 a0) {
DEFINE_func_8012F7B4() /* dedup: shared engine-core @0x8012F7B4 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_a", func_8012F828);
// @class: plumbing
// @stuck: none — MATCH (pending gate)
extern void func_80131170();
extern void func_80131CA8();
extern unsigned char D_80186E8C[];
void func_8012F828(int param_1)
{
*(unsigned char *)(param_1 + 0xC1) = 4;
if (*(unsigned int *)(param_1 + 0xB4) & 8) {
func_80131170(param_1, D_80186E8C, 0xB);
}
func_80131CA8(param_1, 9);
}
DEFINE_func_8012F87C() /* dedup: shared engine-core @0x8012F87C (src/shared) */
@@ -1653,7 +1703,19 @@ DEFINE_func_80138AB4() /* dedup: shared engine-core @0x80138AB4 (src/shared) */
DEFINE_func_80138B88() /* dedup: shared engine-core @0x80138B88 (src/shared) */
INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_a", func_80138BE0);
// @class: struct
// @stuck: none — MATCH (match_one: MATCH 20 ins)
extern void (*D_80187120[])(void);
void func_80138BE0(int p)
{
if (*(unsigned short *)(p + 0xe) != 0) {
*(unsigned short *)(p + 0xe) -= 1;
}
D_80187120[*(short *)(p + 4)]();
}
DEFINE_func_80138C30() /* dedup: shared engine-core @0x80138C30 (src/shared) */