feat(decomp): bulk_harvest — +35 fns across 21 binaries, 0 propagated (fleet 64.58%)

This commit is contained in:
Drew T
2026-07-01 13:28:40 -06:00
parent d53b6ae56a
commit 34ef8ad960
21 changed files with 246 additions and 35 deletions
+18 -3
View File
@@ -4793,7 +4793,11 @@ extern void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017BEE8);
extern void func_8017BF14(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
void func_8017BEE8(void *a0, void *a1, s32 a2, s32 a3) {
((void (*)(void *, void *, s32, s32))func_8017BF14)(a0, a1, (s16)a2, (s16)a3);
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8017BF14);
@@ -5380,7 +5384,13 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_801869E0);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186A04);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186ADC);
extern s32 D_801961B8;
extern s32 D_801961E0;
void func_80186ADC(s32 arg0) {
*(s32 *)(*(s32 *)(arg0 + 0x20) + 0x80) = &D_801961B8;
*(s32 *)(*(s32 *)(*(s32 *)(arg0 + 0xcc) + 0x20) + 0x80) = &D_801961E0;
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_80186B08);
@@ -5755,7 +5765,12 @@ INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BF88);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BFBC);
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018BFDC);
extern void func_8012AD44(s32 *a0, s16 a1);
void func_8018BFDC(u8 *a0) {
*(u16 *)(a0 + 0x102) |= 0x1;
((void (*)(void *, s32))func_8012AD44)(a0, 0x5);
}
INCLUDE_ASM("asm/ov_SC02_005/nonmatchings/ov_SC02_005", func_8018C008);
+13 -2
View File
@@ -5533,7 +5533,12 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187CE8);
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187D90);
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187DDC);
extern s32 func_8012AD50(void *a0);
void func_80187DDC(u8 *a0) {
*(u16 *)(a0 + 0x72) |= 0x1000;
((void (*)(void))func_8012AD50)();
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80187E08);
@@ -5967,7 +5972,13 @@ INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_80190298);
void func_801902C0(void) {
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801902C8);
extern void func_80178CBC(s32 a0, s32 a1);
extern short D_801E8604;
void func_801902C8(void * arg0) {
*(short *)((char *)arg0 + 0x2) = 4;
func_80178CBC((int)arg0, (int)&D_801E8604);
}
INCLUDE_ASM("asm/ov_SC02_011/nonmatchings/ov_SC02_011", func_801902F4);
+18 -2
View File
@@ -4958,7 +4958,15 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FBC4);
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FC00);
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FD5C);
extern s32 D_801915FC;
extern s32 D_801EEAE8;
extern void func_8017F1F0(s32 arg0, s32 arg1);
void func_8017FD5C(void) {
D_801EEAE8 = &D_801915FC;
func_8017F1F0(0x474, 0x4B0);
}
extern s32 D_80191634;
extern s32 D_801EEAE8;
@@ -4992,7 +5000,15 @@ INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8017FFF0);
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", listCdBuffer);
INCLUDE_ASM("asm/ov_SC03_001/nonmatchings/ov_SC03_001", func_8018003C);
extern s32 D_80191894;
extern s32 D_801EEAE8;
extern void func_8017F1F0(s32 arg0, s32 arg1);
void func_8018003C(void) {
D_801EEAE8 = &D_80191894;
func_8017F1F0(0x564, 0x1A4);
}
s32 func_80180070(void) {
return -1;
+6 -1
View File
@@ -5237,7 +5237,12 @@ INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183550);
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183718);
INCLUDE_ASM("asm/ov_SC03_002/nonmatchings/ov_SC03_002", func_80183760);
extern void (*D_801A84C4[])(void);
void func_80183760(void *a0) {
D_801A84C4[*(u16 *)((s32)a0 + 0x2)]();
}
void func_8018379C(void) {
}
+14 -2
View File
@@ -5003,7 +5003,12 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_801818D8);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181A14);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181ACC);
extern void (*D_801908B4[])(void);
void func_80181ACC(void *a0) {
D_801908B4[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_80181B08);
@@ -5594,7 +5599,14 @@ INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B4A4);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B5E0);
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B64C);
extern s32 func_8012BEE8(s32 arg);
extern void func_8018B224(s32 arg);
void func_8018B64C(void *a0) {
if (func_8012BEE8((s32)a0)) {
((void (*)(s32))func_8018B224)((s32)a0);
}
}
INCLUDE_ASM("asm/ov_SC03_006/nonmatchings/ov_SC03_006", func_8018B684);
+14 -2
View File
@@ -4881,7 +4881,12 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017F4C8);
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017F8BC);
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017FA3C);
extern void (*D_8018AED8[])(void);
void func_8017FA3C(void *a0) {
D_8018AED8[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_8017FA78);
@@ -5002,7 +5007,14 @@ INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80180944);
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_80180980);
INCLUDE_ASM("asm/ov_SC03_024/nonmatchings/ov_SC03_024", func_801809B8);
extern void func_80171A1C(u8 *a0);
extern s32 func_80174650(s32 a0);
void func_801809B8(u8 * arg0) {
*(s16 *)(*(s32 *)((s32)arg0 + 0x20) + 0x10) = 0;
((void (*)(void))func_80171A1C)();
((void (*)(s32))func_80174650)((s32)arg0);
}
void func_801809F0(void) {
}
+9 -1
View File
@@ -5278,7 +5278,15 @@ INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A728);
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A800);
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A868);
extern s32 func_80153BD8(s32 arg);
extern s32 func_80153BF0(s32 a0);
void func_8018A868(u8 *a0) {
*(s16 *)(a0 + 0xfe) = 0;
if (func_80153BD8((s32)a0)) {
((void (*)(void *))func_80153BF0)(a0);
}
}
INCLUDE_ASM("asm/ov_SC03_091/nonmatchings/ov_SC03_091", func_8018A8A4);
+9 -1
View File
@@ -5008,7 +5008,15 @@ extern void func_8012AD44(s32 *a0, s16 a1);
}
INCLUDE_ASM("asm/ov_SC03_104/nonmatchings/ov_SC03_104", func_80183BF4);
extern void func_80178B18(s32 a0, s32 a1);
extern void func_8012AD44(s32 *a0, s16 a1);
extern s32 D_8019C9F8;
void func_80183BF4(void * arg0) {
func_80178B18((s32)arg0, (s32)&D_8019C9F8);
((void (*)(s32, s32))func_8012AD44)(arg0, 5);
}
extern void func_8012AD44(s32 *a0, s16 a1);
void func_80183C30(void *arg0) {
+13 -2
View File
@@ -5063,7 +5063,12 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801806C8);
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_801806E0);
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180704);
extern void func_800D1724(s32 a0);
extern s32 D_8018E894;
void func_80180704(void) {
((void (*)(void *))func_800D1724)(&D_8018E894);
}
void func_8018072C(void) {
}
@@ -5082,7 +5087,13 @@ INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_8018095C);
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A24);
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A60);
extern void func_8012E8E0(s32 a0, s32 a1);
extern s32 D_8018FE14;
void func_80180A60(void * arg0) {
func_8012E8E0((s32)arg0, (s32)&D_8018FE14);
}
INCLUDE_ASM("asm/ov_SC03_124/nonmatchings/ov_SC03_124", func_80180A88);
+6 -1
View File
@@ -4911,7 +4911,12 @@ INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017F98C);
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FC8C);
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FCC8);
extern void (*D_8019977C[])(void);
void func_8017FCC8(void *a0) {
D_8019977C[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC04_000/nonmatchings/ov_SC04_000", func_8017FD04);
+14 -2
View File
@@ -4909,7 +4909,13 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FC88);
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FCA8);
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FCDC);
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
extern char D_801942C0[];
void func_8017FCDC(void) {
((void (*)(void *, s32))func_8016EE40)(&D_801942C0, 0x1000000);
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FD04);
@@ -4919,7 +4925,13 @@ INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FD68);
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FDF0);
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FE44);
extern s32 D_801942DC;
extern void func_8016EE40(s32 a0, s32 a1, s32 a2);
void func_8017FE44(void) {
((void (*)(s32, s32))func_8016EE40)((s32)&D_801942DC, 0x1000000);
}
INCLUDE_ASM("asm/ov_SC04_011/nonmatchings/ov_SC04_011", func_8017FE6C);
+7 -1
View File
@@ -5403,7 +5403,13 @@ INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_801848DC);
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184960);
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184A90);
extern s32 func_80184960(s32 arg);
extern void func_80184AC4(void *a0);
void func_80184A90(u8 *a0) {
*(s32 *)(a0 + 0xe0) = func_80184960((s32)a0);
func_80184AC4(a0);
}
INCLUDE_ASM("asm/ov_SC04_019/nonmatchings/ov_SC04_019", func_80184AC4);
+8 -1
View File
@@ -5015,7 +5015,14 @@ extern s32 func_8012AD50(void *a0);
INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180830);
INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_80180884);
extern s32 func_80182334(void);
extern void func_8012C098(void);
void func_80180884(s32 param_1) {
if (func_80182334() == 0) {
((void (*)(s32))func_8012C098)(param_1);
}
}
INCLUDE_ASM("asm/ov_SC05_008/nonmatchings/ov_SC05_008", func_801808BC);
+15 -2
View File
@@ -5168,7 +5168,13 @@ INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80182750);
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801827E4);
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_80182874);
extern void func_801849B8(s32 *a0, s32 a1);
extern short D_80191C44;
void func_80182874(short *param_1) {
*(short *)((char *)param_1 + 2) = 1;
((void (*)(int, int))func_801849B8)((int)param_1, &D_80191C44);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_801828A0);
@@ -5683,7 +5689,14 @@ extern s32 func_8014CB1C(void);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018BC08);
extern void func_8014B2A8(void);
extern void func_8002D4C8(s32 a0, s32 a1);
void func_8018BC08(void) {
func_8014B2A8();
((s32 (*)(s32, s32))func_8002D4C8)(0x464, 0);
}
INCLUDE_ASM("asm/ov_SC05_017/nonmatchings/ov_SC05_017", func_8018BC34);
+14 -2
View File
@@ -5026,7 +5026,13 @@ INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_801816AC);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80181774);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_8018183C);
extern void func_8012A568(void (*a0)(void));
extern s32 func_80181864(s32 a0);
s32 func_8018183C(void)
{
((void (*)(void *))func_8012A568)((void *)func_80181864);
}
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80181864);
@@ -5369,7 +5375,13 @@ void func_80185E44(void) {
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185E4C);
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185E88);
extern s32 func_8012AD50(void *a0);
void func_80185E88(u8 *a0) {
*(s16 *)(a0 + 0xFC) = 0;
*(u16 *)(a0 + 0x72) |= 0x1000;
((void (*)(void))func_8012AD50)();
}
INCLUDE_ASM("asm/ov_SC06_000/nonmatchings/ov_SC06_000", func_80185EB4);
+12 -2
View File
@@ -5064,7 +5064,12 @@ extern void func_8012B370(int a0);
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801860A8);
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801861C4);
extern void (*D_801AEF60[])(void);
void func_801861C4(void *a0) {
D_801AEF60[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186200);
@@ -5097,7 +5102,12 @@ INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186630);
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_80186654);
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801866B8);
extern void (*D_801AEF88[])(void);
void func_801866B8(void *a0) {
D_801AEF88[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC06_010/nonmatchings/ov_SC06_010", func_801866F4);
+6 -1
View File
@@ -4761,7 +4761,12 @@ INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CF50);
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CF94);
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CFB8);
extern void (*D_80190DE4[])(void);
void func_8017CFB8(void *a0) {
D_80190DE4[*(u8 *)((s32)a0 + 0x15)]();
}
INCLUDE_ASM("asm/ov_SC06_022/nonmatchings/ov_SC06_022", func_8017CFF4);
+7 -1
View File
@@ -5393,7 +5393,13 @@ INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018EF1C);
INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018EF68);
INCLUDE_ASM("asm/ov_SC06_024/nonmatchings/ov_SC06_024", func_8018F054);
extern void func_8018DEC0(void);
void func_8018F054(s32 *a0) {
*(s32 *)((char *)a0 + 0x10) = *(s32 *)((char *)a0 + 0x10) >> 1;
*(s32 *)((char *)a0 + 0x18) = *(s32 *)((char *)a0 + 0x18) >> 1;
((void (*)(void))func_8018DEC0)();
}
extern void func_8018DEC0(void);
void func_8018F088(u8 *param_1) {
+20 -3
View File
@@ -5135,9 +5135,21 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186B6C);
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186BD4);
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186BEC);
extern s32 D_801DFF78;
extern void func_8012E88C(u8 *a0);
void func_80186BEC(void) {
((void (*)(s32))func_8012E88C)(*(s32 *)&D_801DFF78);
}
extern s32 D_801DFF78;
extern void func_8012E8A8(u8 *a0);
void func_80186C14(void) {
((void (*)(s32))func_8012E8A8)(D_801DFF78);
}
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186C14);
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80186C3C);
@@ -5263,7 +5275,12 @@ INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_801888A8);
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188904);
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188960);
extern void func_8012A018(s32 a, s32 b);
extern void func_80188BB0();
void func_80188960(void) {
((void (*)(void *, s32))func_8012A018)((void *)func_80188BB0, 0x2);
}
INCLUDE_ASM("asm/ov_SC06_029/nonmatchings/ov_SC06_029", func_80188988);
+12 -2
View File
@@ -5111,7 +5111,12 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186574);
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186858);
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186B10);
extern void (*D_801AFD70[])(void);
void func_80186B10(void *a0) {
D_801AFD70[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80186B4C);
@@ -5175,7 +5180,12 @@ INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801887EC);
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_801888E8);
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80188A54);
extern void (*D_801AFDD0[])(void);
void func_80188A54(void *a0) {
D_801AFDD0[*(u16 *)((s32)a0 + 0x2)]();
}
INCLUDE_ASM("asm/ov_SC06_033/nonmatchings/ov_SC06_033", func_80188A90);
+11 -1
View File
@@ -4827,7 +4827,17 @@ INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EEB8);
INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EEF8);
INCLUDE_ASM("asm/ov_SC07_002/nonmatchings/ov_SC07_002", func_8017EF74);
extern s32 func_80016978(s32 arg);
extern void func_80029240(void);
s32 func_8017EF74(void) {
if ((func_80016978(4) & 0xFFFF) == 0) {
return 0;
}
func_80029240();
return 1;
}
void func_8017EFAC(void) {
}