Initial commit: soothe2 RE workspace + roadmap

- Инфраструктура: RTTI-дампы (rtti_dsp/full.json), декомпиляции DSP-классов (decomp_*.txt),
  Ghidra-скрипты (Dump*.java, ImportRtti*.java, Diag.java), depthcurve/curve_fits LUT.
- Поведенческая модель sim_v5.py + sim.py (RMSE ~0.3dB), утилиты (measure, tt_sweep, patchparam,
  sweep, harness_*, verify_sim).
- summary.md + roadmap.md (контракт из manual M1-M12, топология пайплайна из OCR, фазы A-C).
- pipeline_ocr.txt: OCR диаграммы Appendix A (mid/side ручка, trim/mix/bypass порядок).
This commit is contained in:
2026-08-16 18:54:40 +03:00
parent 45a13dcebd
commit 25cf786c54
44 changed files with 18208 additions and 0 deletions
+392
View File
@@ -0,0 +1,392 @@
==================== 0x180536f70 vtbl_.?AVSoothe2AudioProcessor@@ size=22 refs=2 ====
undefined8 *
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1,undefined8 *param_2)
{
*param_2 = std::_Func_impl_no_alloc<<lambda_98f7f914cf7ea0a1749f276be9d3c260>,juce::String,float>
::vftable;
param_2[1] = *(undefined8 *)(param_1 + 8);
return param_2;
}
==================== 0x180537160 vtbl_.?AVSoothe2AudioProcessor@@ size=122 refs=2 ====
undefined8
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__
(longlong param_1,undefined8 param_2,undefined4 *param_3)
{
undefined4 uVar1;
undefined8 uVar2;
longlong lVar3;
uVar1 = *param_3;
uVar2 = FUN_18113e800(param_1,0xff547ddd,&DAT_1824aba30,0xb);
lVar3 = FUN_18119aa60(*(undefined8 *)(param_1 + 8),uVar2);
FUN_18141a8b0(param_2,uVar1,0.0 < *(float *)(lVar3 + 0x188));
return param_2;
}
==================== 0x180536f60 vtbl_.?AVSoothe2AudioProcessor@@ size=8 refs=1 ====
TypeDescriptor * .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(void)
{
return &<lambda_98f7f914cf7ea0a1749f276be9d3c260>::RTTI_Type_Descriptor;
}
==================== 0x180536670 vtbl_.?AVSoothe2AudioProcessor@@ size=22 refs=2 ====
undefined8 *
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1,undefined8 *param_2)
{
*param_2 = std::_Func_impl_no_alloc<<lambda_ecbeee6575be61b12745f0f1713120e9>,void,float>::vftable
;
param_2[1] = *(undefined8 *)(param_1 + 8);
return param_2;
}
==================== 0x180536660 vtbl_.?AVSoothe2AudioProcessor@@ size=8 refs=1 ====
TypeDescriptor * .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(void)
{
return &<lambda_ecbeee6575be61b12745f0f1713120e9>::RTTI_Type_Descriptor;
}
==================== 0x180536cc0 vtbl_.?AVSoothe2AudioProcessor@@ size=22 refs=2 ====
undefined8 *
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1,undefined8 *param_2)
{
*param_2 = std::_Func_impl_no_alloc<<lambda_de997d66c89a5ac0466663dd9df945b7>,void,float>::vftable
;
param_2[1] = *(undefined8 *)(param_1 + 8);
return param_2;
}
==================== 0x180537720 vtbl_.?AVSoothe2AudioProcessor@@ size=24 refs=1 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__
(longlong param_1,undefined4 *param_2)
{
/* WARNING: Could not recover jumptable at 0x000180537731. Too many branches */
/* WARNING: Treating indirect jump as call */
(**(code **)(*(longlong *)**(undefined8 **)(param_1 + 8) + 0xc0))
((longlong *)**(undefined8 **)(param_1 + 8),*param_2,0);
return;
}
==================== 0x180536cb0 vtbl_.?AVSoothe2AudioProcessor@@ size=8 refs=1 ====
TypeDescriptor * .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(void)
{
return &<lambda_de997d66c89a5ac0466663dd9df945b7>::RTTI_Type_Descriptor;
}
==================== 0x180536b90 vtbl_.?AVSoothe2AudioProcessor@@ size=22 refs=2 ====
undefined8 *
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1,undefined8 *param_2)
{
undefined8 uVar1;
*param_2 = std::_Func_impl_no_alloc<<lambda_5a69e3fa1ed5b6db915c3c1c90fd9482>,void,float>::vftable
;
uVar1 = *(undefined8 *)(param_1 + 0x10);
param_2[1] = *(undefined8 *)(param_1 + 8);
param_2[2] = uVar1;
return param_2;
}
==================== 0x180537930 vtbl_.?AVSoothe2AudioProcessor@@ size=104 refs=1 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__
(longlong param_1,undefined4 *param_2)
{
uint uVar1;
longlong lVar2;
longlong lVar3;
longlong lVar4;
uVar1 = *(uint *)(param_1 + 8);
lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x10) + 0x168);
lVar3 = lVar2 + 0x3d8;
if (uVar1 < *(uint *)(lVar2 + 0x444)) {
lVar4 = *(longlong *)(*(longlong *)(lVar2 + 0x438) + (longlong)(int)uVar1 * 8);
}
else {
lVar4 = 0;
}
*(undefined4 *)(lVar4 + 0x808) = *param_2;
if ((int)uVar1 < 0) {
*(undefined4 *)(lVar2 + 0x240467) = 0x1010101;
*(undefined4 *)(lVar2 + 0x24046b) = 0x1010101;
FUN_18052fc30(lVar3);
return;
}
*(undefined1 *)((longlong)(int)uVar1 + 0x24008f + lVar3) = 1;
FUN_18052fc30(lVar3);
return;
}
==================== 0x180536b80 vtbl_.?AVSoothe2AudioProcessor@@ size=8 refs=1 ====
TypeDescriptor * .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(void)
{
return &<lambda_5a69e3fa1ed5b6db915c3c1c90fd9482>::RTTI_Type_Descriptor;
}
==================== 0x180536c60 vtbl_.?AVSoothe2AudioProcessor@@ size=22 refs=2 ====
undefined8 *
.?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1,undefined8 *param_2)
{
*param_2 = std::_Func_impl_no_alloc<<lambda_4a5d3203691b7e65cdc50015b0597c78>,void,float>::vftable
;
param_2[1] = *(undefined8 *)(param_1 + 8);
return param_2;
}
==================== 0x1813658a0 vtbl_.?AVSoothe2AudioProcessor@@ size=1221 refs=2 ====
/* WARNING: Function: _alloca_probe replaced with injection: alloca_probe */
/* WARNING: Removing unreachable block (ram,0x000181365a33) */
/* WARNING: Removing unreachable block (ram,0x000181365a1a) */
/* WARNING: Removing unreachable block (ram,0x0001813659cb) */
/* WARNING: Removing unreachable block (ram,0x000181365a49) */
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1)
{
undefined8 uVar1;
ulonglong uVar2;
uint uVar3;
int iVar4;
undefined8 uVar5;
undefined8 uVar6;
undefined8 in_R11;
int unaff_retaddr;
undefined1 auStack_3ae8 [112];
longlong local_3a78;
longlong local_3a60;
longlong local_3a00;
longlong local_39e8;
undefined4 local_3980;
uint local_397c;
undefined4 local_3978;
undefined8 local_3288;
undefined1 local_568 [24];
undefined1 local_550 [64];
undefined1 local_510 [64];
undefined1 local_4d0 [72];
undefined1 local_488 [24];
undefined1 local_470 [64];
undefined1 local_430 [64];
undefined1 local_3f0 [832];
ulonglong local_b0;
local_3288 = 0xfffffffffffffffe;
local_b0 = DAT_182615970 ^ (ulonglong)auStack_3ae8;
local_3980 = 0xf40;
uVar5 = 0;
uVar6 = 0x23d7;
uVar3 = (uint)&stack0x00000000 & 0x33f;
iVar4 = (uVar3 + 2) * (uVar3 + 1) * uVar3;
local_397c = 0x2877U - (((iVar4 >> 1) - (iVar4 >> 3)) + iVar4 * 0x55555555 >> 0x1e) ^ 0x23d7;
local_3a00 = param_1;
uVar1 = FUN_180529410(local_568,DAT_1824c442c,DAT_1824c45e0,DAT_1824c3ea4);
local_3a60 = param_1 + 0x5c0;
FUN_1805291a0(local_3a60,uVar1);
FUN_180473170(local_4d0);
FUN_180473170(local_510);
FUN_180473170(local_550);
uVar2 = FUN_180487470(local_488,DAT_1824c4724,DAT_1824c4408);
local_3a78 = param_1 + 0x698;
FUN_1805291a0(local_3a78,uVar2);
FUN_180473170(local_3f0);
FUN_180473170(local_430);
FUN_180473170(local_470);
do {
local_3978 = 0x26d2ef6;
uVar3 = (unaff_retaddr + 1) * unaff_retaddr & 0x80000001;
if ((int)uVar3 < 0) {
uVar3 = (uVar3 - 1 | 0xfffffffe) + 1;
}
} while (uVar3 != 0);
local_39e8 = param_1 + 0x30;
FUN_1813c975b(0,((~(~uVar2 + 1) + 1 ^ 0xffffffffffffffff) + 1 ^ 0xffffffffffffffff) + 1,uVar5,
uVar6,&LAB_1813cf09f,&DAT_181365dbb,0x905206f8,in_R11,0x7bf54441);
return;
}
==================== 0x18052c7e0 vtbl_.?AVSoothe2AudioProcessor@@ size=12 refs=2 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1)
{
FUN_18115fa70(param_1 + 0x2b8);
return;
}
==================== 0x18053846c vtbl_.?AVSoothe2AudioProcessor@@ size=12 refs=1 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1)
{
.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____(param_1 + -0x148);
return;
}
=== 0x1852000000 : NOT A FUNCTION ===
==================== 0x18052c7e0 vtbl_.?AVSoothe2AudioProcessor@@ size=12 refs=2 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1)
{
FUN_18115fa70(param_1 + 0x2b8);
return;
}
==================== 0x180538484 vtbl_.?AVSoothe2AudioProcessor@@ size=12 refs=1 ====
void .?AVSoothe2AudioProcessor@@::vtbl___AVSoothe2AudioProcessor__(longlong param_1)
{
.?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__(param_1 + -0x148);
return;
}
==================== 0x180536b60 vtbl_.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@ size=22 refs=2 ====
undefined8 *
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
(longlong param_1,undefined8 *param_2)
{
undefined8 uVar1;
*param_2 = std::_Func_impl_no_alloc<<lambda_31112e0b8380e26aebb588356a79bbf7>,void,float>::vftable
;
uVar1 = *(undefined8 *)(param_1 + 0x10);
param_2[1] = *(undefined8 *)(param_1 + 8);
param_2[2] = uVar1;
return param_2;
}
==================== 0x1805379a0 vtbl_.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@ size=104 refs=1 ====
void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
(longlong param_1,undefined4 *param_2)
{
uint uVar1;
longlong lVar2;
longlong lVar3;
longlong lVar4;
uVar1 = *(uint *)(param_1 + 8);
lVar2 = *(longlong *)(*(longlong *)(param_1 + 0x10) + 0x168);
lVar3 = lVar2 + 0x3d8;
if (uVar1 < *(uint *)(lVar2 + 0x444)) {
lVar4 = *(longlong *)(*(longlong *)(lVar2 + 0x438) + (longlong)(int)uVar1 * 8);
}
else {
lVar4 = 0;
}
*(undefined4 *)(lVar4 + 0x80c) = *param_2;
if ((int)uVar1 < 0) {
*(undefined4 *)(lVar2 + 0x240467) = 0x1010101;
*(undefined4 *)(lVar2 + 0x24046b) = 0x1010101;
FUN_18052fc30(lVar3);
return;
}
*(undefined1 *)((longlong)(int)uVar1 + 0x24008f + lVar3) = 1;
FUN_18052fc30(lVar3);
return;
}
==================== 0x180536b50 vtbl_.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@ size=8 refs=1 ====
TypeDescriptor *
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
(void)
{
return &<lambda_31112e0b8380e26aebb588356a79bbf7>::RTTI_Type_Descriptor;
}
==================== 0x180536850 vtbl_.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@ size=22 refs=2 ====
undefined8 *
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
::
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
(longlong param_1,undefined8 *param_2)
{
*param_2 = std::_Func_impl_no_alloc<<lambda_9e6d435da2f4f474e078479ad72b1896>,void,float>::vftable
;
param_2[1] = *(undefined8 *)(param_1 + 8);
return param_2;
}