// // FMOD::SystemI::validate from 0x1800e89b0 to 0x1800e8a3f (143 bytes) // // 94 xrefs: // > FMOD::System::attachChannelGroupToPort @ 0x1800ab8eb // > FMOD::System::attachFileSystem @ 0x1800aba88 // > FMOD::System::close @ 0x1800abc35 // > FMOD::System::createChannelGroup @ 0x1800abd15 // > FMOD::System::createDSP @ 0x1800abe55 // > FMOD::System::createDSPByPlugin @ 0x1800abf94 // > FMOD::System::createDSPByType @ 0x1800ac0c4 // > FMOD::System::createGeometry @ 0x1800ac1fb // > FMOD::System::createReverb3D @ 0x1800ac36d // > FMOD::System::createSound @ 0x1800ac43e // > FMOD::System::createSoundGroup @ 0x1800ac525 // > FMOD::System::createStream @ 0x1800ac65e // > FMOD::System::detachChannelGroupFromPort @ 0x1800ac73d // > FMOD::System::get3DListenerAttributes @ 0x1800ac833 // > FMOD::System::get3DNumListeners @ 0x1800aca2d // > FMOD::System::get3DSettings @ 0x1800acb0c // > FMOD::System::getAdvancedSettings @ 0x1800acc7d // > FMOD::System::getCPUUsage @ 0x1800acd42 // > FMOD::System::getChannel @ 0x1800ace14 // > FMOD::System::getChannelsPlaying @ 0x1800acf30 // > FMOD::System::getDSPBufferSize @ 0x1800ad045 // > FMOD::System::getDSPInfoByPlugin @ 0x1800ad184 // > FMOD::System::getDSPInfoByType @ 0x1800ad2b4 // > FMOD::System::getDefaultMixMatrix @ 0x1800ad3de // > FMOD::System::getDriver @ 0x1800ad4ad // > FMOD::System::getDriverInfo @ 0x1800ad5a6 // > FMOD::System::getFileUsage @ 0x1800ad6a5 // > FMOD::System::getGeometryOcclusion @ 0x1800ad808 // > FMOD::System::getGeometrySettings @ 0x1800ad9bd // > FMOD::System::getMasterChannelGroup @ 0x1800ada82 // > FMOD::System::getMasterSoundGroup @ 0x1800adb4d // > FMOD::System::getNestedPlugin @ 0x1800adc2b // > FMOD::System::getNetworkProxy @ 0x1800adda5 // > FMOD::System::getNetworkTimeout @ 0x1800adedd // > FMOD::System::getNumDrivers @ 0x1800adfad // > FMOD::System::getNumNestedPlugins @ 0x1800ae084 // > FMOD::System::getNumPlugins @ 0x1800ae1b4 // > FMOD::System::getOutput @ 0x1800ae2dd // > FMOD::System::getOutputByPlugin @ 0x1800ae3ad // > FMOD::System::getOutputHandle @ 0x1800ae47d // > FMOD::System::getPluginHandle @ 0x1800ae55b // > FMOD::System::getPluginInfo @ 0x1800ae6eb // > FMOD::System::getRecordDriverInfo @ 0x1800ae923 // > FMOD::System::getRecordNumDrivers @ 0x1800aea45 // > FMOD::System::getRecordPosition @ 0x1800aeb84 // > FMOD::System::getReverbProperties @ 0x1800aecb4 // > FMOD::System::getSoftwareChannels @ 0x1800aeddd // > FMOD::System::getSoftwareFormat @ 0x1800aeebc // > FMOD::System::getSpeakerModeChannels @ 0x1800af04c // > FMOD::System::getSpeakerPosition @ 0x1800af137 // > FMOD::System::getStreamBufferSize @ 0x1800af2f5 // > FMOD::System::getUserData @ 0x1800af422 // > FMOD::System::getVersion @ 0x1800af4ed // > FMOD::System::init @ 0x1800af5b4 // > FMOD::System::isRecording @ 0x1800af704 // > FMOD::System::loadGeometry @ 0x1800af83c // > FMOD::System::loadPlugin @ 0x1800af9bc // > FMOD::System::lockDSP @ 0x1800afb1a // > FMOD::System::mixerResume @ 0x1800afbc5 // > FMOD::System::mixerSuspend @ 0x1800afc85 // > FMOD::System::playDSP @ 0x1800afd69 // > FMOD::System::playSound @ 0x1800aff39 // > FMOD::System::recordStart @ 0x1800b00fc // > FMOD::System::recordStop @ 0x1800b026c // > FMOD::System::registerCodec @ 0x1800b034c // > FMOD::System::registerDSP @ 0x1800b04c5 // > FMOD::System::registerOutput @ 0x1800b0605 // > FMOD::System::release @ 0x1800b0735 // > FMOD::System::set3DListenerAttributes @ 0x1800b0833 // > FMOD::System::set3DNumListeners @ 0x1800b0a2c // > FMOD::System::set3DRolloffCallback @ 0x1800b0afd // > FMOD::System::set3DSettings @ 0x1800b0be0 // > FMOD::System::setAdvancedSettings @ 0x1800b0d6d // > FMOD::System::setCallback @ 0x1800b0e45 // > FMOD::System::setDSPBufferSize @ 0x1800b0f84 // > FMOD::System::setDriver @ 0x1800b10ac // > FMOD::System::setFileSystem @ 0x1800b119f // > FMOD::System::setGeometrySettings @ 0x1800b12c0 // > FMOD::System::setNetworkProxy @ 0x1800b139d // > FMOD::System::setNetworkTimeout @ 0x1800b146c // > FMOD::System::setOutput @ 0x1800b153c // > FMOD::System::setOutputByPlugin @ 0x1800b160c // > FMOD::System::setPluginPath @ 0x1800b16dd // > FMOD::System::setReverbProperties @ 0x1800b17b4 // > FMOD::System::setSoftwareChannels @ 0x1800b18dc // > FMOD::System::setSoftwareFormat @ 0x1800b19bb // > FMOD::System::setSpeakerPosition @ 0x1800b1b41 // > FMOD::System::setStreamBufferSize @ 0x1800b1d04 // > FMOD::System::setUserData @ 0x1800b1e22 // > FMOD::System::unloadPlugin @ 0x1800b1eec // > FMOD::System::unlockDSP @ 0x1800b1faa // > FMOD::System::update @ 0x1800b2055 // > @ 0x180194348 // > @ 0x1801fffa8 // // 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::SystemI::validate(__int64 a1, _QWORD *a2, _QWORD *a3) { __int64 v3; // r9 _QWORD *i; // rax __int64 result; // rax v3 = 0; *a2 = 0; for ( i = (_QWORD *)((char *)off_1801AED20 + 352); a1 != *i; ++i ) { if ( ++v3 >= 8 ) return 30; } *a2 = a1; if ( !a1 ) return 30; if ( !a3 ) return 0; if ( *a3 ) return 28; result = sub_1801021E0(a1); if ( !(_DWORD)result ) { *a3 = a1; return 0; } return result; }