// // FMOD_Memory_Initialize from 0x5003c to 0x50144 (264 bytes) // // 4 xrefs: // > .FMOD_Memory_Initialize @ 0x10816c // > @ 0x58d8 // > .FMOD_Memory_Initialize @ 0x108164 // > @ 0x110978 // // 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, int a2, __int64 a3, __int64 a4, __int64 a5, int a6) { __int64 v8; // x10 void *v9; // x9 __int64 v10; // x12 __int64 result; // x0 _QWORD *v12; // x8 _QWORD *v13; // x8 _QWORD *v14; // x8 v8 = 0; v9 = off_114000; while ( v8 != 64 ) { v10 = *(_QWORD *)((char *)off_114000 + v8 + 368); v8 += 8; if ( v10 ) return 27; } if ( (_BYTE)a2 ) return 31; *(_DWORD *)((char *)&word_34 + (_QWORD)off_114000) = a6; if ( a1 && a2 ) { result = 31; if ( a2 >= 256 && !a3 && !a4 && !a5 ) { result = sub_E308C(*(__int64 *)((char *)&qword_1B0 + (_QWORD)v9), a1, (unsigned int)a2, 4); if ( !(_DWORD)result ) { v12 = *(_QWORD **)((char *)&qword_1B0 + (_QWORD)off_114000); v12[10] = 0; v12[11] = 0; v12[12] = 0; } } } else { result = 31; if ( !a1 && !a2 ) { if ( a3 && a5 ) { v13 = *(_QWORD **)((char *)&qword_1B0 + (_QWORD)v9); v13[10] = a3; v13[11] = a4; v13[12] = a5; return 0; } else { result = 31; if ( !a3 && !a4 && !a5 ) { v14 = *(_QWORD **)((char *)&qword_1B0 + (_QWORD)v9); v14[10] = sub_E2E84; v14[11] = sub_E2E88; v14[12] = j_j__free; return 0; } } } } return result; }