Files
BFM-decomp/.run/giants/wave2_func_8014FFDC.c
T
Drew T 514383de6a chore(phase-29 crack-wave): log wave2+fable+type-lift outcome (fleet 74.6% instr) + preserve drafts
Session-total 72.1->74.6% instr (+2.5pp). 8 exemplars + ~815 members banked; 3 Fable source-read cracks
(cse.c address-CSE, post-reload sched, reorg j-slot). Follow-ups: 801670e4/8016cbc0 per-sibling decl-norm,
8013d53c caller-thread, 801412a8 §29 wall, 4 permuter near-misses. All drafts preserved (R20).
2026-07-18 12:33:39 -06:00

41 lines
1.1 KiB
C

#include "common.h"
extern u8 D_801202A0[];
extern u8 D_80126720[];
extern u8 D_801152A8[];
extern s32 func_80135D20(s32 a0, s32 a1, void *a2);
typedef struct { s16 unk0, unk2, unk4, unk6; } Vec8;
s32 func_8014FFDC(s32 e, void *a1, void *a2) {
Vec8 save;
Vec8 test;
s32 found;
u8 *p;
found = 0;
__builtin_memcpy(&save, a1, 8);
*(s16 *)((s32)a1 + 2) = 0x7fff;
p = D_801202A0;
if (p < p + 0x6480) {
do {
if (*(u16 *)p != 0) {
if ((*(u16 *)(p + 0x5C) & 0x400) != 0) {
if (*(s32 *)(p + 0x58) != 0) {
test = save;
if (func_80135D20(*(s32 *)(p + 0x20), *(s32 *)(p + 0x58), &test) != 0) {
found = 1;
if (test.unk2 < *(s16 *)((s32)a1 + 2)) {
__builtin_memcpy(a1, &test, 8);
__builtin_memcpy(a2, D_801152A8, 8);
}
}
}
}
}
p += 0x10C;
} while (p < D_80126720);
}
return found;
}