// // FMOD::DSPI::validate from 0x18009c800 to 0x18009c88b (139 bytes) // // 46 xrefs: // > FMOD::DSP::addInput @ 0x1800a12af // > FMOD::DSP::disconnectAll @ 0x1800a1416 // > FMOD::DSP::disconnectFrom @ 0x1800a1555 // > FMOD::DSP::getActive @ 0x1800a168d // > FMOD::DSP::getBypass @ 0x1800a176d // > FMOD::DSP::getCPUUsage @ 0x1800a1855 // > FMOD::DSP::getChannelFormat @ 0x1800a199c // > FMOD::DSP::getDataParameterIndex @ 0x1800a1aff // > FMOD::DSP::getIdle @ 0x1800a1c0d // > FMOD::DSP::getInfo @ 0x1800a1ce9 // > FMOD::DSP::getInput @ 0x1800a1ebb // > FMOD::DSP::getMeteringEnabled @ 0x1800a2045 // > FMOD::DSP::getMeteringInfo @ 0x1800a2185 // > FMOD::DSP::getNumInputs @ 0x1800a22bd // > FMOD::DSP::getNumOutputs @ 0x1800a239d // > FMOD::DSP::getNumParameters @ 0x1800a2472 // > FMOD::DSP::getOutput @ 0x1800a254b // > FMOD::DSP::getOutputChannelFormat @ 0x1800a26fd // > FMOD::DSP::getParameterBool @ 0x1800a2926 // > FMOD::DSP::getParameterData @ 0x1800a2ac0 // > FMOD::DSP::getParameterFloat @ 0x1800a2c86 // > FMOD::DSP::getParameterInfo @ 0x1800a2e0f // > FMOD::DSP::getParameterInt @ 0x1800a2f16 // > FMOD::DSP::getSystemObject @ 0x1800a30a2 // > FMOD::DSP::getType @ 0x1800a316d // > FMOD::DSP::getUserData @ 0x1800a3232 // > FMOD::DSP::getWetDryMix @ 0x1800a330c // > FMOD::DSP::release @ 0x1800a3475 // > FMOD::DSP::reset @ 0x1800a3535 // > FMOD::DSP::setActive @ 0x1800a35fd // > FMOD::DSP::setBypass @ 0x1800a36dd // > FMOD::DSP::setCallback @ 0x1800a37bd // > FMOD::DSP::setChannelFormat @ 0x1800a389b // > FMOD::DSP::setMeteringEnabled @ 0x1800a3a16 // > FMOD::DSP::setParameterBool @ 0x1800a3b40 // > FMOD::DSP::setParameterData @ 0x1800a3c44 // > FMOD::DSP::setParameterFloat @ 0x1800a3d85 // > FMOD::DSP::setParameterInt @ 0x1800a3e8f // > FMOD::DSP::setUserData @ 0x1800a3f92 // > FMOD::DSP::setWetDryMix @ 0x1800a4070 // > FMOD::DSP::showConfigDialog @ 0x1800a4206 // > @ 0x1801852ac // > @ 0x1801852c0 // > @ 0x1801852d0 // > @ 0x180194348 // > @ 0x1801faca4 // // 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::DSPI::validate(__int64 a1, _QWORD *a2, _QWORD *a3) { __int64 result; // rax __int64 v5; // rbx if ( !a2 ) return 31; *a2 = a1; if ( !a1 || (a1 & 3) != 0 || (*(_DWORD *)(a1 + 100) & 0x400) != 0 || *(_DWORD *)(a1 + 92) != -1395763731 ) return 30; if ( !a3 ) return 0; if ( *a3 ) return 28; v5 = *(_QWORD *)(a1 + 168); if ( !v5 ) return 28; result = sub_1801021E0(*(_QWORD *)(a1 + 168)); if ( !(_DWORD)result ) { *a3 = v5; return 0; } return result; }