feat(phase-31): worker gate — +2 fns x0 propagated (fleet 95.3%)

This commit is contained in:
Drew T
2026-08-14 21:34:18 -06:00
parent 01dd3799e9
commit 0896b1122e
+44 -2
View File
@@ -6517,9 +6517,51 @@ void func_801837B0(s32 a0)
}
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8017BEBC", func_80183AE8);
extern void (*D_801AD390[])(void);
extern u8 D_801AD1B8[];
extern void func_80183D78(s32 a0, void *a1, s32 a2);
void func_80183AE8(void *a0) {
D_801AD390[*(u16 *)((s32)a0 + 0x2)]();
if (*(u16 *)a0 != 0) {
func_80183D78((s32)a0, (void *)&D_801AD1B8, 0);
}
}
extern void func_8012C1B8(void);
extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, void *a1);
extern void func_8012B2CC(s32 a0);
extern void D_801AF904;
void func_80183B50(s32 *s0)
{
s32 iVar2;
s32 *v1;
u16 uVar1;
u16 uVar2;
iVar2 = ((s32 (*)(void))func_8012C1B8)();
*(s32 *)((u8 *)s0 + 0x20) = iVar2;
if (iVar2 == 0) {
func_8012CAE4(s0);
}
else {
func_8001C214(iVar2, &D_801AF904);
v1 = *(s32 **)((u8 *)s0 + 0x20);
uVar1 = *(u16 *)((u8 *)s0 + 0xFC);
*(u16 *)((u8 *)v1 + 0x12) = uVar1;
func_8012B2CC(s0);
uVar2 = *(u16 *)((u8 *)s0 + 0x2);
*(s32 *)((u8 *)s0 + 0xE8) = 0xFFE00000;
uVar2 = uVar2 + 1;
*(u16 *)((u8 *)s0 + 0x2) = uVar2;
}
}
INCLUDE_ASM("asm/ov_SC02_041/nonmatchings/ov_SC02_041_jr_8017BEBC", func_80183B50);