// // FMOD_System_Create from 0x1800c6860 to 0x1800c6987 (295 bytes) // // 7 xrefs: // > FMOD5_System_Create @ 0x1800f4950 // > @ 0x18018abd8 // > @ 0x18018abf0 // > @ 0x18018ac08 // > @ 0x18018ac18 // > @ 0x180194348 // > @ 0x1801fe01c // // 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_System_Create(__int64 *a1, int a2) { __int64 result; // rax int v4; // ebx void *v5; // rax __int64 v6; // rax __int64 v7; // rdx __int64 v8; // r8 _DWORD *v9; // rsi __int64 v10; // r9 _QWORD *v11; // rax if ( (unsigned int)(a2 - 131584) > 0xFF ) return 20; if ( !a1 ) return 31; v4 = 0; v5 = sub_1800B6880( *((_QWORD *)off_1801AED20 + 52), 74224, "C:\\buildagent1\\work\\570ad728b1678096\\core_api\\src\\fmod.cpp", 145, 0); if ( !v5 ) { *a1 = 0; return 38; } v6 = sub_1800E14F0(v5); *a1 = v6; v9 = (_DWORD *)v6; if ( !v6 ) return 38; v10 = 0; v11 = (_QWORD *)((char *)off_1801AED20 + 352); do { if ( !*v11 ) break; ++v4; ++v10; ++v11; } while ( v10 < 8 ); if ( v4 >= 8 ) { sub_1800B6AA0(*((_QWORD *)off_1801AED20 + 52), v9); return 38; } result = sub_1800D45C0(off_1801AED20, v7, v8, v10); if ( !(_DWORD)result ) { *((_QWORD *)off_1801AED20 + v4 + 44) = v9; v9[17452] = v4; return 0; } return result; }