gnFilteredGameListCount (0x00798cc8) is a signed int: tested with JLE and bounds the loop with JL
Ghidra v1846 · 4ca0e98
The count of filtered games is undefined4 (emitted as uint32_t), but OOGMENU_RefreshGameListDisplay treats it as signed both times it uses it: 00442cbd MOV EDX,[0x00798cc8]; 00442cc6 CMP EDX,EDI (EDI = 0); 00442cc8 JLE skips the list when the count is not above zero, and the row loop runs while the index is below it, 00442d22 CMP EDI,EDX / 00442d24 JL. An unsigned count compiles to JBE and JB there. Recompiled with VC8 SP1 (oracle, tree 3dba660), both jumps come out as the original's and OOGMENU_RefreshGameListDisplay goes from 0.505 to 0.513; no function lost.
Changes 1, applied together
Retype global
win 0x00798cc8typeundefined4 (4 bytes)→int