phase12: match func_8007759C (705 bodies / 714 regions)

This commit is contained in:
Christopher Williams
2026-09-25 00:27:48 -04:00
parent c74cd4100d
commit d50965d0f6
3 changed files with 866 additions and 839 deletions
+838 -839
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -370,6 +370,7 @@
0x800734A4 0x800734DC src/func_800734A4.c
0x80073F78 0x8007405C src/func_80073F78.c
0x80074C00 0x80074C74 src/func_80074C00.c
0x8007759C 0x800775E4 src/func_8007759C.c
0x80077D04 0x80077D7C src/func_80077D04.c
0x8007A2AC 0x8007A324 src/func_8007A2AC.c
0x8007A404 0x8007A428 src/func_8007A404.c
1 # Code-region registry: one C region per matched function.
370 0x800734A4
371 0x80073F78
372 0x80074C00
373 0x8007759C
374 0x80077D04
375 0x8007A2AC
376 0x8007A404
+27
View File
@@ -0,0 +1,27 @@
/*
* func_8007759C — 72 bytes at 0x8007759C..0x800775E4
*
* Reads an index byte at input+41 and a sub-index byte at input+59, then calls
* func_80010750 with the indexed table entry at D_80122544 + index*96 + 12,
* input+56, and sub-index+1.
*
* The table symbol is gp-marked because the target loads its pointer value from
* a gp-relative word before applying the 96-byte stride. The byte loads, +56
* pointer argument, +1 sub-index, +12 table displacement, and call argument order
* are byte evidence.
*
* LIMITS: the input record and table entry meanings are not inferred. The gp table
* address, byte offsets 41/59, stride 96, displacement 12, pointer offset 56,
* increment, call target, and frame are byte evidence.
*/
extern int *D_80122544;
extern void func_80010750(int *, void *, int);
void func_8007759C(unsigned char *a0)
{
int index = a0[41];
int sub = a0[59] + 1;
func_80010750((int *)((char *)D_80122544 + index * 96 + 12), a0 + 56, sub);
}