// // FMOD_Memory_Initialize from 0x1800c61d0 to 0x1800c6336 (358 bytes) // // 3 xrefs: // > FMOD5_Memory_Initialize @ 0x1800f44c0 // > @ 0x180194348 // > @ 0x1801fdff8 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // __int64 __fastcall FMOD_Memory_Initialize(__int64 a1, signed int a2, __int64 a3, __int64 a4, __int64 a5, int a6) { __int64 v6; // r10 _QWORD *v7; // rax __int64 result; // rax _QWORD *v9; // rdx _QWORD *v10; // rcx _QWORD *v11; // rcx v6 = 0; v7 = (_QWORD *)((char *)off_1801AED20 + 352); do { if ( *v7 ) return 27; ++v6; ++v7; } while ( v6 < 8 ); if ( a2 % 256 ) return 31; *((_DWORD *)off_1801AED20 + 9) = a6; if ( !a2 ) { if ( !a1 ) { if ( a3 ) { if ( a5 ) { v10 = *((_QWORD **)off_1801AED20 + 52); v10[10] = a3; v10[11] = a4; v10[12] = a5; return 0; } } else if ( !a4 && !a5 ) { v11 = *((_QWORD **)off_1801AED20 + 52); v11[10] = sub_1800B6410; v11[11] = sub_1800B6420; v11[12] = j_j_free; return 0; } } return 31; } if ( !a1 || a3 || a4 || a5 || a2 < 256 ) return 31; result = sub_1800B6C70(*((_QWORD *)off_1801AED20 + 52), a1, a2, 4, 0); if ( !(_DWORD)result ) { v9 = *((_QWORD **)off_1801AED20 + 52); v9[10] = 0; v9[11] = 0; v9[12] = 0; } return result; }