- Инфраструктура: 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 порядок).
2117 lines
58 KiB
Plaintext
2117 lines
58 KiB
Plaintext
############ VTABLE 0x1824abb90 (64 slots) ############
|
|
[0] 0x18052d390 size=52
|
|
--- C ---
|
|
|
|
void * .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(void *param_1,ulonglong param_2)
|
|
|
|
{
|
|
FUN_180529aa0();
|
|
if ((param_2 & 1) != 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(param_1);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
[1] 0x18052cfb0 size=61
|
|
--- C ---
|
|
|
|
void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__(longlong param_1)
|
|
|
|
{
|
|
FUN_1812b4430(param_1 + 0x14,0,2);
|
|
*(float *)(param_1 + 0x58) = (float)(DAT_1824c4230 / (double)*(float *)(param_1 + 0x24));
|
|
return;
|
|
}
|
|
|
|
|
|
[2] 0x180529550 size=191
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
|
|
(longlong *param_1,undefined4 param_2,undefined4 *param_3,int param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
longlong lVar2;
|
|
uint *puVar3;
|
|
|
|
lVar2 = (longlong)param_4;
|
|
puVar3 = (uint *)(param_1 + (lVar2 + 9) * 8);
|
|
*(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = *param_3;
|
|
*puVar3 = puVar3[2] - 1 & *puVar3 + 1;
|
|
puVar3 = (uint *)(param_1 + (lVar2 + 7) * 8);
|
|
*(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = param_2;
|
|
*puVar3 = puVar3[2] - 1 & *puVar3 + 1;
|
|
piVar1 = (int *)((longlong)param_1 + lVar2 * 4 + 0x3c0);
|
|
*piVar1 = *piVar1 + 1;
|
|
if ((*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79] / 2) && (param_4 == 0))
|
|
{
|
|
(**(code **)(*param_1 + 0x38))(param_1);
|
|
}
|
|
if (*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79]) {
|
|
*(undefined4 *)((longlong)param_1 + lVar2 * 4 + 0x3c0) = 0;
|
|
FUN_1805300f0(param_1,param_4);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[3] 0x1804714b0 size=3
|
|
[4] 0x180529610 size=1154
|
|
--- C ---
|
|
|
|
void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(longlong *param_1,longlong *param_2,ulonglong param_3)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
ulonglong uVar4;
|
|
uint uVar5;
|
|
int iVar6;
|
|
ulonglong uVar7;
|
|
ulonglong uVar8;
|
|
ulonglong uVar9;
|
|
longlong *plVar10;
|
|
longlong *plVar11;
|
|
code *pcVar12;
|
|
|
|
uVar4 = 0;
|
|
uVar9 = uVar4;
|
|
if (0 < (int)param_1[6]) {
|
|
param_2 = param_1 + 0x3b;
|
|
do {
|
|
param_2[-3] = 0;
|
|
uVar8 = uVar4;
|
|
uVar7 = uVar4;
|
|
if (0 < (int)*param_2) {
|
|
do {
|
|
*(undefined4 *)(uVar7 + param_2[-1]) = 0;
|
|
uVar5 = (int)uVar8 + 1;
|
|
uVar8 = (ulonglong)uVar5;
|
|
uVar7 = uVar7 + 4;
|
|
} while ((int)uVar5 < (int)*param_2);
|
|
}
|
|
param_2[1] = param_2[-1];
|
|
param_2[0xd] = 0;
|
|
uVar8 = uVar4;
|
|
uVar7 = uVar4;
|
|
if (0 < (int)param_2[0x10]) {
|
|
do {
|
|
*(undefined4 *)(uVar8 + param_2[0xf]) = 0;
|
|
uVar5 = (int)uVar7 + 1;
|
|
uVar8 = uVar8 + 4;
|
|
uVar7 = (ulonglong)uVar5;
|
|
} while ((int)uVar5 < (int)param_2[0x10]);
|
|
}
|
|
param_2[0x11] = param_2[0xf];
|
|
param_2[0x1d] = 0;
|
|
uVar8 = uVar4;
|
|
param_3 = uVar4;
|
|
if (0 < (int)param_2[0x20]) {
|
|
do {
|
|
*(undefined4 *)(uVar8 + param_2[0x1f]) = 0;
|
|
uVar5 = (int)param_3 + 1;
|
|
param_3 = (ulonglong)uVar5;
|
|
uVar8 = uVar8 + 4;
|
|
} while ((int)uVar5 < (int)param_2[0x20]);
|
|
}
|
|
param_2[0x21] = param_2[0x1f];
|
|
uVar5 = (int)uVar9 + 1;
|
|
uVar9 = (ulonglong)uVar5;
|
|
param_2 = param_2 + 8;
|
|
} while ((int)uVar5 < (int)param_1[6]);
|
|
}
|
|
FUN_18052e130(param_1,param_2,param_3,uVar9,0xfffffffffffffffe);
|
|
iVar1 = (int)param_1[0x34];
|
|
uVar9 = (longlong)iVar1 % (longlong)*(int *)((longlong)param_1 + 0x1ac) & 0xffffffff;
|
|
*(int *)(param_1 + 0x79) = iVar1 / *(int *)((longlong)param_1 + 0x1ac);
|
|
*(int *)(param_1 + 0x35) = (int)param_1[0x36] * iVar1;
|
|
if (0 < (int)param_1[6]) {
|
|
plVar10 = param_1 + 0x3b;
|
|
uVar8 = uVar4;
|
|
do {
|
|
iVar2 = FUN_1813bbf80(0x10000,uVar9);
|
|
if ((int)plVar10[-2] != iVar2) {
|
|
FUN_18052e190(plVar10 + -1,iVar2,0);
|
|
}
|
|
*(int *)(plVar10 + -2) = iVar2;
|
|
plVar10[-3] = 0;
|
|
uVar9 = uVar4;
|
|
uVar7 = uVar4;
|
|
if (0 < (int)*plVar10) {
|
|
do {
|
|
*(undefined4 *)(uVar9 + plVar10[-1]) = 0;
|
|
uVar5 = (int)uVar7 + 1;
|
|
uVar9 = uVar9 + 4;
|
|
uVar7 = (ulonglong)uVar5;
|
|
} while ((int)uVar5 < (int)*plVar10);
|
|
}
|
|
plVar10[1] = plVar10[-1];
|
|
uVar5 = (int)param_1[0x34] + (int)plVar10[-3] & (int)plVar10[-2] - 1U;
|
|
if ((int)uVar5 < 0) {
|
|
uVar5 = uVar5 + (int)plVar10[-2];
|
|
}
|
|
*(uint *)(plVar10 + -3) = uVar5;
|
|
iVar2 = FUN_1813bbf80(0x10000);
|
|
if ((int)plVar10[0xe] != iVar2) {
|
|
FUN_18052e190(plVar10 + 0xf,iVar2,0);
|
|
}
|
|
*(int *)(plVar10 + 0xe) = iVar2;
|
|
plVar10[0xd] = 0;
|
|
uVar9 = uVar4;
|
|
uVar7 = uVar4;
|
|
if (0 < (int)plVar10[0x10]) {
|
|
do {
|
|
*(undefined4 *)(uVar9 + plVar10[0xf]) = 0;
|
|
uVar5 = (int)uVar7 + 1;
|
|
uVar9 = uVar9 + 4;
|
|
uVar7 = (ulonglong)uVar5;
|
|
} while ((int)uVar5 < (int)plVar10[0x10]);
|
|
}
|
|
plVar10[0x11] = plVar10[0xf];
|
|
uVar5 = (int)param_1[0x34] + (int)plVar10[0xd] & (int)plVar10[0xe] - 1U;
|
|
if ((int)uVar5 < 0) {
|
|
uVar5 = uVar5 + (int)plVar10[0xe];
|
|
}
|
|
*(uint *)(plVar10 + 0xd) = uVar5;
|
|
iVar2 = FUN_1813bbf80(0x10000);
|
|
if ((int)plVar10[0x1e] != iVar2) {
|
|
FUN_18052e190(plVar10 + 0x1f,iVar2,0);
|
|
}
|
|
*(int *)(plVar10 + 0x1e) = iVar2;
|
|
plVar10[0x1d] = 0;
|
|
uVar7 = uVar4;
|
|
uVar9 = uVar4;
|
|
if (0 < (int)plVar10[0x20]) {
|
|
do {
|
|
*(undefined4 *)(uVar7 + plVar10[0x1f]) = 0;
|
|
uVar5 = (int)uVar9 + 1;
|
|
uVar9 = (ulonglong)uVar5;
|
|
uVar7 = uVar7 + 4;
|
|
} while ((int)uVar5 < (int)plVar10[0x20]);
|
|
}
|
|
plVar10[0x21] = plVar10[0x1f];
|
|
uVar5 = (int)uVar8 + 1;
|
|
uVar8 = (ulonglong)uVar5;
|
|
plVar10 = plVar10 + 8;
|
|
} while ((int)uVar5 < (int)param_1[6]);
|
|
}
|
|
if (0 < (int)param_1[6]) {
|
|
iVar2 = iVar1 * 0x10;
|
|
plVar10 = param_1 + 0x6c;
|
|
uVar9 = uVar4;
|
|
do {
|
|
if ((int)plVar10[1] == iVar2) {
|
|
LAB_18052990b:
|
|
uVar8 = uVar4;
|
|
uVar7 = uVar4;
|
|
if (0 < (int)plVar10[1]) {
|
|
do {
|
|
*(undefined4 *)(uVar8 + *plVar10) = 0;
|
|
uVar5 = (int)uVar7 + 1;
|
|
uVar8 = uVar8 + 4;
|
|
uVar7 = (ulonglong)uVar5;
|
|
} while ((int)uVar5 < (int)plVar10[1]);
|
|
}
|
|
}
|
|
else {
|
|
if ((0 < (int)plVar10[1]) && (*plVar10 != 0)) {
|
|
FUN_1800010c0();
|
|
}
|
|
*plVar10 = 0;
|
|
iVar6 = iVar2;
|
|
if (iVar2 < 0) {
|
|
iVar6 = 0;
|
|
}
|
|
*(int *)(plVar10 + 1) = iVar6;
|
|
if (iVar6 != 0) {
|
|
lVar3 = FUN_180001080(iVar6 * 4);
|
|
*plVar10 = lVar3;
|
|
goto LAB_18052990b;
|
|
}
|
|
}
|
|
uVar5 = (int)uVar9 + 1;
|
|
uVar9 = (ulonglong)uVar5;
|
|
plVar10 = plVar10 + 2;
|
|
} while ((int)uVar5 < (int)param_1[6]);
|
|
}
|
|
if (0 < (int)param_1[6]) {
|
|
plVar11 = param_1 + 0x70;
|
|
plVar10 = param_1 + 0x6c;
|
|
uVar9 = uVar4;
|
|
do {
|
|
*plVar11 = *plVar10;
|
|
uVar5 = (int)uVar9 + 1;
|
|
uVar9 = (ulonglong)uVar5;
|
|
plVar10 = plVar10 + 2;
|
|
plVar11 = plVar11 + 1;
|
|
} while ((int)uVar5 < (int)param_1[6]);
|
|
}
|
|
FUN_18052e190(param_1 + 0x72,iVar1 * 0x10,0);
|
|
FUN_18052dc30(param_1 + 0xc,(int)param_1[0x35],iVar1 * 8);
|
|
FUN_18052e190(param_1 + 0x74,(int)param_1[0x34],0);
|
|
uVar9 = uVar4;
|
|
uVar8 = uVar4;
|
|
if (0 < (int)param_1[0x75]) {
|
|
do {
|
|
*(undefined4 *)(uVar9 + param_1[0x74]) = 0;
|
|
uVar5 = (int)uVar8 + 1;
|
|
uVar9 = uVar9 + 4;
|
|
uVar8 = (ulonglong)uVar5;
|
|
} while ((int)uVar5 < (int)param_1[0x75]);
|
|
}
|
|
if (0 < (int)param_1[6]) {
|
|
plVar10 = param_1 + 0x78;
|
|
do {
|
|
*(undefined4 *)plVar10 = 0;
|
|
uVar5 = (int)uVar4 + 1;
|
|
uVar4 = (ulonglong)uVar5;
|
|
plVar10 = (longlong *)((longlong)plVar10 + 4);
|
|
} while ((int)uVar5 < (int)param_1[6]);
|
|
}
|
|
FUN_18052df60(param_1);
|
|
if (*(char *)((longlong)param_1 + 0x1b6) == '\0') {
|
|
if (*(char *)((longlong)param_1 + 0x1b7) == '\0') {
|
|
if ((char)param_1[0x37] == '\0') goto LAB_180529a6a;
|
|
*(undefined1 *)(param_1 + 0x37) = 0;
|
|
pcVar12 = *(code **)(*param_1 + 0x48);
|
|
}
|
|
else {
|
|
*(undefined1 *)((longlong)param_1 + 0x1b7) = 0;
|
|
pcVar12 = *(code **)(*param_1 + 0x58);
|
|
}
|
|
}
|
|
else {
|
|
*(undefined1 *)((longlong)param_1 + 0x1b6) = 0;
|
|
pcVar12 = *(code **)(*param_1 + 0x50);
|
|
}
|
|
if (pcVar12 != _guard_check_icall) {
|
|
(*pcVar12)(param_1);
|
|
}
|
|
LAB_180529a6a:
|
|
*(undefined1 *)((longlong)param_1 + 0x3cc) = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
[5] 0x18113285a size=6
|
|
[6] 0x1804714b0 size=3
|
|
[7] 0x1804714b0 size=3
|
|
[8] 0x1804727a0 size=3
|
|
[9] 0x1804714b0 size=3
|
|
[10] 0x1804714b0 size=3
|
|
[11] 0x1804714b0 size=3
|
|
[12] 0xb5729575b468 (invalid/enc)
|
|
[13] 0xc2c6f9033f31 (invalid/enc)
|
|
[14] 0xdb60f3c4de (invalid/enc)
|
|
[15] 0xab1cb574b45de2 (invalid/enc)
|
|
[16] 0xd2f04c4cd2f35643 (invalid/enc)
|
|
[17] 0x5e (invalid/enc)
|
|
[18] 0x182505548 size=0
|
|
[19] 0x18052d3d0 size=52
|
|
--- C ---
|
|
|
|
void * .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(void *param_1,ulonglong param_2)
|
|
|
|
{
|
|
FUN_18052c910();
|
|
if ((param_2 & 1) != 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(param_1);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
[20] 0x18052c8f0 size=26
|
|
[21] 0x1812c1fb0 size=92
|
|
--- C ---
|
|
|
|
undefined8 *
|
|
.?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
|
|
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
|
|
(longlong *param_1,undefined8 *param_2)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined8 uVar2;
|
|
uint *_Memory;
|
|
undefined8 *local_res10 [3];
|
|
|
|
local_res10[0] = param_2;
|
|
uVar2 = (**(code **)(*param_1 + 8))(param_1,local_res10);
|
|
*param_2 = 0;
|
|
param_2[1] = 0;
|
|
FUN_18049b000(param_2,uVar2);
|
|
_Memory = (uint *)(local_res10[0] + -2);
|
|
if ((*_Memory & 0x30000000) == 0) {
|
|
LOCK();
|
|
uVar1 = *_Memory;
|
|
*_Memory = *_Memory - 1;
|
|
UNLOCK();
|
|
if (uVar1 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(_Memory);
|
|
}
|
|
}
|
|
return param_2;
|
|
}
|
|
|
|
|
|
[22] 0x18052c4a0 size=794
|
|
--- C ---
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
|
|
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
|
|
(longlong *param_1,double param_2,undefined4 param_3)
|
|
|
|
{
|
|
uint *puVar1;
|
|
int iVar2;
|
|
undefined8 *puVar3;
|
|
undefined8 *puVar4;
|
|
undefined8 *puVar5;
|
|
char cVar6;
|
|
uint uVar7;
|
|
undefined8 *puVar8;
|
|
code *pcVar9;
|
|
int iVar10;
|
|
longlong *plVar11;
|
|
ulonglong uVar12;
|
|
ulonglong uVar13;
|
|
ulonglong uVar14;
|
|
ulonglong uVar15;
|
|
ulonglong uVar16;
|
|
undefined1 auStack_e8 [32];
|
|
code *local_c8;
|
|
undefined4 uStack_c0;
|
|
undefined4 uStack_bc;
|
|
undefined8 local_b8;
|
|
uint *local_b0;
|
|
undefined1 local_a8 [16];
|
|
undefined1 local_98 [16];
|
|
undefined **local_88;
|
|
undefined4 local_80;
|
|
undefined4 uStack_7c;
|
|
undefined4 uStack_78;
|
|
undefined4 uStack_74;
|
|
longlong *local_70;
|
|
undefined ***local_50;
|
|
ulonglong local_48;
|
|
|
|
local_b8 = 0xfffffffffffffffe;
|
|
local_48 = DAT_182615970 ^ (ulonglong)auStack_e8;
|
|
puVar1 = (uint *)(param_1 + 0xab);
|
|
do {
|
|
LOCK();
|
|
uVar7 = *puVar1;
|
|
*puVar1 = *puVar1 | 1;
|
|
UNLOCK();
|
|
} while ((uVar7 & 1) != 0);
|
|
local_b0 = puVar1;
|
|
if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
|
|
plVar11 = (longlong *)(param_1[0xb7] + 0x70);
|
|
(**(code **)(*plVar11 + 8))(plVar11,param_3,SUB84(param_2,0));
|
|
}
|
|
uVar14 = 0;
|
|
if ((double)param_1[0x2b] != param_2) {
|
|
param_1[0xbb] = 0;
|
|
}
|
|
param_1[0x2b] = (longlong)param_2;
|
|
*(undefined4 *)(param_1 + 0x2c) = param_3;
|
|
cVar6 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))();
|
|
uVar7 = 0;
|
|
if (cVar6 != '\0') {
|
|
local_c8 = FUN_18052f680;
|
|
uStack_c0 = 0;
|
|
local_88 = std::
|
|
_Func_impl_no_alloc<std::_Binder<std::_Unforced,void_(__cdecl_CloudyAudioProcessor<Soothe2ModuleBase<float,2>,Soothe2ModuleDecryptor,ParameterStates,float>::*)(void)___ptr64,CloudyAudioProcessor<class_Soothe2ModuleBase<float,2>,class_Soothe2ModuleDecryptor,class_ParameterStates,float>*___ptr64>,void>
|
|
::vftable;
|
|
local_80 = 0x8052f680;
|
|
uStack_7c = 1;
|
|
uStack_78 = 0;
|
|
uStack_74 = uStack_bc;
|
|
local_50 = &local_88;
|
|
local_70 = param_1;
|
|
FUN_18113eab0();
|
|
FUN_18114b490(&local_88);
|
|
if (local_50 != (undefined ***)0x0) {
|
|
(*(code *)(*local_50)[4])(local_50,local_50 != &local_88);
|
|
}
|
|
}
|
|
puVar8 = (undefined8 *)FUN_1812c37c0(param_1,local_a8);
|
|
if (*(int *)((longlong)puVar8 + 0xc) != 0) {
|
|
uVar7 = FUN_18123d3f0(*puVar8);
|
|
}
|
|
FUN_18047c500(local_98);
|
|
FUN_18047c500(local_a8);
|
|
if (uVar7 != *(uint *)((longlong)param_1 + 0x56c)) {
|
|
plVar11 = param_1 + 0xac;
|
|
FUN_180531620(plVar11);
|
|
if ((int)param_1[0xad] != 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free((void *)*plVar11);
|
|
}
|
|
*(undefined4 *)(param_1 + 0xad) = 0;
|
|
if (0 < (int)uVar7) {
|
|
uVar13 = (ulonglong)uVar7;
|
|
do {
|
|
pcVar9 = (code *)FUN_1811316e0(0x28);
|
|
*(undefined8 *)pcVar9 = 0;
|
|
*(undefined4 *)(pcVar9 + 8) = 0;
|
|
*(undefined8 *)(pcVar9 + 0x10) = 0;
|
|
*(undefined4 *)(pcVar9 + 0x18) = 0;
|
|
*(undefined8 *)(pcVar9 + 0x20) = 0;
|
|
local_c8 = pcVar9;
|
|
FUN_18052bc40(pcVar9,0x10000);
|
|
iVar2 = *(int *)((longlong)param_1 + 0x56c);
|
|
iVar10 = iVar2 + 1;
|
|
if ((int)param_1[0xad] < iVar10) {
|
|
if (iVar10 < 0) {
|
|
iVar10 = iVar2 + 2;
|
|
}
|
|
FUN_18047cb30(plVar11,iVar2 + 9 + (iVar10 >> 1) & 0xfffffff8);
|
|
}
|
|
iVar10 = *(int *)((longlong)param_1 + 0x56c);
|
|
*(int *)((longlong)param_1 + 0x56c) = iVar10 + 1;
|
|
*(code **)(*plVar11 + (longlong)iVar10 * 8) = pcVar9;
|
|
uVar13 = uVar13 - 1;
|
|
} while (uVar13 != 0);
|
|
}
|
|
}
|
|
(**(code **)(*param_1 + 0x220))(param_1,param_1[0x2b],(int)param_1[0x2c]);
|
|
puVar8 = (undefined8 *)param_1[0x36];
|
|
puVar3 = (undefined8 *)*puVar8;
|
|
while (puVar3 != puVar8) {
|
|
FUN_1811c4880(puVar3[5]);
|
|
puVar4 = (undefined8 *)puVar3[2];
|
|
if (*(char *)((longlong)puVar4 + 0x19) == '\0') {
|
|
cVar6 = *(char *)((longlong)*puVar4 + 0x19);
|
|
puVar3 = puVar4;
|
|
puVar4 = (undefined8 *)*puVar4;
|
|
while (cVar6 == '\0') {
|
|
cVar6 = *(char *)((longlong)*puVar4 + 0x19);
|
|
puVar3 = puVar4;
|
|
puVar4 = (undefined8 *)*puVar4;
|
|
}
|
|
}
|
|
else {
|
|
cVar6 = *(char *)((longlong)puVar3[1] + 0x19);
|
|
puVar5 = (undefined8 *)puVar3[1];
|
|
puVar4 = puVar3;
|
|
while ((puVar3 = puVar5, cVar6 == '\0' && (puVar4 == (undefined8 *)puVar3[2]))) {
|
|
cVar6 = *(char *)((longlong)puVar3[1] + 0x19);
|
|
puVar5 = (undefined8 *)puVar3[1];
|
|
puVar4 = puVar3;
|
|
}
|
|
}
|
|
}
|
|
FUN_1812a77d0(param_1 + 0x60,0x10);
|
|
puVar8 = (undefined8 *)param_1[0xac];
|
|
uVar13 = (ulonglong)
|
|
((longlong)(puVar8 + *(int *)((longlong)param_1 + 0x56c)) + (7 - (longlong)puVar8)) >> 3;
|
|
if (puVar8 + *(int *)((longlong)param_1 + 0x56c) < puVar8) {
|
|
uVar13 = uVar14;
|
|
}
|
|
uVar16 = uVar14;
|
|
if (uVar13 != 0) {
|
|
do {
|
|
puVar3 = (undefined8 *)*puVar8;
|
|
*puVar3 = 0;
|
|
uVar12 = uVar14;
|
|
uVar15 = uVar14;
|
|
if (0 < *(int *)(puVar3 + 3)) {
|
|
do {
|
|
*(undefined4 *)(uVar12 + puVar3[2]) = 0;
|
|
uVar7 = (int)uVar15 + 1;
|
|
uVar12 = uVar12 + 4;
|
|
uVar15 = (ulonglong)uVar7;
|
|
} while ((int)uVar7 < *(int *)(puVar3 + 3));
|
|
}
|
|
puVar3[4] = puVar3[2];
|
|
puVar8 = puVar8 + 1;
|
|
uVar16 = uVar16 + 1;
|
|
} while (uVar16 != uVar13);
|
|
}
|
|
LOCK();
|
|
*puVar1 = 0;
|
|
UNLOCK();
|
|
}
|
|
|
|
|
|
[23] 0x1804714b0 size=3
|
|
[24] 0x1804714b0 size=3
|
|
[25] 0x1812c0b50 size=3
|
|
[26] 0x18052bfa0 size=870
|
|
--- C ---
|
|
|
|
void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
|
|
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
|
|
(longlong *param_1,longlong param_2,undefined8 param_3)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
longlong lVar2;
|
|
char cVar3;
|
|
int iVar4;
|
|
uint uVar5;
|
|
int iVar6;
|
|
longlong lVar7;
|
|
uint *puVar8;
|
|
longlong lVar9;
|
|
uint *puVar10;
|
|
uint *puVar11;
|
|
uint *puVar12;
|
|
bool bVar13;
|
|
int local_b0;
|
|
int local_ac;
|
|
undefined4 local_a8;
|
|
undefined8 local_a0;
|
|
int local_94;
|
|
undefined1 local_90 [16];
|
|
longlong local_80;
|
|
ulonglong local_78;
|
|
longlong local_70;
|
|
undefined4 local_68;
|
|
undefined4 local_64;
|
|
uint *local_60;
|
|
char local_58;
|
|
undefined8 local_50;
|
|
|
|
local_50 = 0xfffffffffffffffe;
|
|
local_60 = (uint *)(param_1 + 0xab);
|
|
LOCK();
|
|
bVar13 = (*local_60 & 1) == 0;
|
|
*local_60 = *local_60 | 1;
|
|
UNLOCK();
|
|
puVar12 = (uint *)0x0;
|
|
iVar4 = 0;
|
|
if ((((DAT_1826216ff == '\0') || (DAT_18262170c == '\0')) || (DAT_18262170d == '\0')) ||
|
|
((DAT_1826216fd == '\0' || (iVar6 = 1, DAT_1826216fe == '\0')))) {
|
|
iVar6 = iVar4;
|
|
}
|
|
local_58 = bVar13;
|
|
if (((char)iVar6 == '\0') ||
|
|
(cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))(), cVar3 == '\0')) {
|
|
if (((DAT_1826216ff == '\0') ||
|
|
(((DAT_18262170c == '\0' || (DAT_18262170d == '\0')) || (DAT_1826216fd == '\0')))) ||
|
|
(iVar6 = 1, DAT_1826216fe == '\0')) {
|
|
iVar6 = iVar4;
|
|
}
|
|
if (((char)iVar6 != '\0') ||
|
|
(cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))(), cVar3 != '\0'))
|
|
goto LAB_18052c0bb;
|
|
}
|
|
if (bVar13) {
|
|
FUN_18052f850(param_1);
|
|
}
|
|
LAB_18052c0bb:
|
|
uVar5 = MXCSR;
|
|
local_78 = (ulonglong)MXCSR;
|
|
MXCSR = MXCSR | 0x8040;
|
|
if ((char)param_1[0xb6] != *(char *)((longlong)param_1 + 0x41)) {
|
|
*(char *)(param_1 + 0xb6) = *(char *)((longlong)param_1 + 0x41);
|
|
(**(code **)(*param_1 + 0x230))(param_1);
|
|
}
|
|
local_78._0_4_ = uVar5;
|
|
if (bVar13) {
|
|
cVar3 = (**(code **)(*(longlong *)param_1[0x2d] + 0xe8))();
|
|
if (cVar3 == '\0') {
|
|
LOCK();
|
|
*(undefined1 *)((longlong)param_1 + 0x164) = 0;
|
|
UNLOCK();
|
|
FUN_181198f30(param_1 + 0x2f,0);
|
|
if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
|
|
local_68 = 0;
|
|
local_64 = *(undefined4 *)(param_2 + 4);
|
|
plVar1 = (longlong *)(param_1[0xb7] + 0x70);
|
|
local_70 = param_2;
|
|
(**(code **)(*plVar1 + 0x18))(plVar1,&local_70);
|
|
}
|
|
FUN_1812c37c0(param_1,&local_a0);
|
|
if (local_94 != 0) {
|
|
iVar4 = FUN_18123d3f0(local_a0);
|
|
}
|
|
iVar6 = *(int *)(param_2 + 4);
|
|
local_80 = (longlong)iVar4;
|
|
if (0 < local_80) {
|
|
puVar8 = puVar12;
|
|
puVar10 = puVar12;
|
|
do {
|
|
lVar2 = *(longlong *)(*(longlong *)(param_2 + 0x10) + (longlong)puVar8 * 8);
|
|
puVar11 = puVar12;
|
|
if ((uint)puVar10 < *(uint *)((longlong)param_1 + 0x56c)) {
|
|
puVar11 = *(uint **)(param_1[0xac] + (longlong)puVar8 * 8);
|
|
}
|
|
lVar9 = lVar2;
|
|
FUN_18052f640(puVar11,&local_b0,iVar6,0,1);
|
|
lVar7 = (longlong)local_ac;
|
|
FUN_18052dbc0(*(longlong *)(puVar11 + 8) + (longlong)local_b0 * 4,lVar9,local_ac);
|
|
FUN_18052dbc0(*(undefined8 *)(puVar11 + 8),lVar2 + lVar7 * 4,local_a8);
|
|
uVar5 = *puVar11 + iVar6 & puVar11[2] - 1;
|
|
if ((int)uVar5 < 0) {
|
|
uVar5 = uVar5 + puVar11[2];
|
|
}
|
|
*puVar11 = uVar5;
|
|
puVar10 = (uint *)(ulonglong)((uint)puVar10 + 1);
|
|
puVar8 = (uint *)((longlong)puVar8 + 1);
|
|
} while ((longlong)puVar8 < local_80);
|
|
}
|
|
FUN_18047c500(local_90);
|
|
FUN_18047c500(&local_a0);
|
|
(**(code **)(*param_1 + 0x228))(param_1,param_2,param_3);
|
|
if ((*(char *)((longlong)param_1 + 0x554) != '\0') && (param_1[0xb7] != 0)) {
|
|
FUN_18052fc90(param_2,*(undefined4 *)(param_1[0xb7] + 0x48));
|
|
}
|
|
param_1[0xbb] = param_1[0xbb] + (longlong)*(int *)(param_2 + 4);
|
|
}
|
|
else {
|
|
(**(code **)(*param_1 + 0x48))(param_1,param_2,param_3);
|
|
FUN_18052fc90(param_2,0);
|
|
local_58 = bVar13;
|
|
}
|
|
}
|
|
else {
|
|
(**(code **)(*param_1 + 0x48))(param_1,param_2,param_3);
|
|
local_58 = bVar13;
|
|
}
|
|
MXCSR = (uint)local_78;
|
|
if (local_58 != '\0') {
|
|
LOCK();
|
|
*local_60 = 0;
|
|
UNLOCK();
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[27] 0x1812c0b60 size=152
|
|
--- C ---
|
|
|
|
void .?AV?$ModuleDecryptor@VSoothe2_DynamicCryptoManager@eden@pace@@@@::
|
|
vtbl___AV__ModuleDecryptor_VSoothe2_DynamicCryptoManager_eden_pace____
|
|
(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
longlong lVar2;
|
|
|
|
if ((*(int *)(param_1 + 0xdc) == 0) || (**(longlong **)(param_1 + 0xd0) == 0)) {
|
|
iVar1 = 0;
|
|
}
|
|
else {
|
|
iVar1 = *(int *)(**(longlong **)(param_1 + 0xd0) + 0x8c);
|
|
}
|
|
if (iVar1 < *(int *)(param_1 + 0x104)) {
|
|
lVar2 = (longlong)iVar1 * 8;
|
|
do {
|
|
if (*(char *)(param_2 + 0x120) == '\0') {
|
|
memset(*(void **)(*(longlong *)(param_2 + 0x10) + lVar2),0,
|
|
(longlong)*(int *)(param_2 + 4) << 3);
|
|
}
|
|
iVar1 = iVar1 + 1;
|
|
lVar2 = lVar2 + 8;
|
|
} while (iVar1 < *(int *)(param_1 + 0x104));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[28] 0x18052bdf0 size=432
|
|
--- C ---
|
|
|
|
void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
int iVar2;
|
|
longlong lVar3;
|
|
int iVar4;
|
|
uint uVar5;
|
|
uint *puVar6;
|
|
longlong lVar7;
|
|
longlong lVar8;
|
|
uint uVar9;
|
|
longlong lVar10;
|
|
int local_78;
|
|
int local_74;
|
|
undefined4 local_70;
|
|
int local_68;
|
|
int local_64;
|
|
undefined4 local_60;
|
|
undefined8 local_58;
|
|
int local_4c;
|
|
undefined1 local_48 [16];
|
|
|
|
LOCK();
|
|
*(undefined1 *)(param_1 + 0x164) = 1;
|
|
UNLOCK();
|
|
FUN_1812c37c0(param_1,&local_58);
|
|
if (local_4c == 0) {
|
|
iVar4 = 0;
|
|
}
|
|
else {
|
|
iVar4 = FUN_18123d3f0(local_58);
|
|
}
|
|
iVar1 = *(int *)(param_1 + 0x3c);
|
|
uVar9 = 0;
|
|
iVar2 = *(int *)(param_2 + 4);
|
|
lVar10 = 0;
|
|
if (0 < (longlong)iVar4) {
|
|
do {
|
|
LOCK();
|
|
*(undefined1 *)(param_2 + 0x120) = 0;
|
|
UNLOCK();
|
|
lVar3 = *(longlong *)(*(longlong *)(param_2 + 0x10) + lVar10 * 8);
|
|
if (uVar9 < *(uint *)(param_1 + 0x56c)) {
|
|
puVar6 = *(uint **)(*(longlong *)(param_1 + 0x560) + lVar10 * 8);
|
|
}
|
|
else {
|
|
puVar6 = (uint *)0x0;
|
|
}
|
|
FUN_18052f640(puVar6,&local_78,iVar2,0,1);
|
|
lVar7 = (longlong)local_74;
|
|
FUN_18052dbc0(*(longlong *)(puVar6 + 8) + (longlong)local_78 * 4,lVar3,local_74);
|
|
FUN_18052dbc0(*(undefined8 *)(puVar6 + 8),lVar3 + lVar7 * 4,local_70);
|
|
uVar5 = *puVar6 + iVar2 & puVar6[2] - 1;
|
|
if ((int)uVar5 < 0) {
|
|
uVar5 = uVar5 + puVar6[2];
|
|
}
|
|
*puVar6 = uVar5;
|
|
if (uVar9 < *(uint *)(param_1 + 0x56c)) {
|
|
lVar7 = *(longlong *)(*(longlong *)(param_1 + 0x560) + lVar10 * 8);
|
|
}
|
|
else {
|
|
lVar7 = 0;
|
|
}
|
|
FUN_18052f640(lVar7,&local_68,iVar2,-(iVar1 + iVar2),1);
|
|
lVar8 = (longlong)local_64;
|
|
FUN_18052dbc0(lVar3,*(longlong *)(lVar7 + 0x20) + (longlong)local_68 * 4,local_64);
|
|
FUN_18052dbc0(lVar3 + lVar8 * 4,*(undefined8 *)(lVar7 + 0x20),local_60);
|
|
uVar9 = uVar9 + 1;
|
|
lVar10 = lVar10 + 1;
|
|
} while (lVar10 < iVar4);
|
|
}
|
|
FUN_18047c500(local_48);
|
|
FUN_18047c500(&local_58);
|
|
return;
|
|
}
|
|
|
|
|
|
[29] 0x1804731c0 size=3
|
|
[30] 0x1804731c0 size=3
|
|
[31] 0x1812c0b40 size=3
|
|
[32] 0x18113285a size=6
|
|
[33] 0x1804731c0 size=3
|
|
[34] 0x1804731c0 size=3
|
|
[35] 0x1804731c0 size=3
|
|
[36] 0x1804731c0 size=3
|
|
[37] 0x1812c0ca0 size=3
|
|
[38] 0x1804727a0 size=3
|
|
[39] 0x1812c0df0 size=4
|
|
[40] 0x18113285a size=6
|
|
[41] 0x180484870 size=3
|
|
[42] 0x1812c0cc0 size=3
|
|
[43] 0x18052c8d0 size=18
|
|
[44] 0x18052c8c0 size=16
|
|
[45] 0x18052c880 size=49
|
|
--- C ---
|
|
|
|
void .?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(longlong param_1,uint param_2)
|
|
|
|
{
|
|
if (*(int *)(param_1 + 8) != 3) {
|
|
return;
|
|
}
|
|
if (param_2 < *(uint *)(param_1 + 0x444)) {
|
|
FUN_18115d300(param_1 + 0x400,
|
|
*(undefined8 *)(*(longlong *)(param_1 + 0x438) + (longlong)(int)param_2 * 8));
|
|
return;
|
|
}
|
|
FUN_18115d300(param_1 + 0x400,0);
|
|
return;
|
|
}
|
|
|
|
|
|
[46] 0x18052c7f0 size=141
|
|
--- C ---
|
|
|
|
undefined8 *
|
|
.?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__
|
|
(longlong param_1,undefined8 *param_2,uint param_3)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
undefined8 *puVar2;
|
|
longlong local_res8 [4];
|
|
|
|
if ((*(int *)(param_1 + 8) == 3) && (param_3 < *(uint *)(param_1 + 0x444))) {
|
|
plVar1 = *(longlong **)(*(longlong *)(param_1 + 0x438) + (longlong)(int)param_3 * 8);
|
|
if (plVar1 != (longlong *)0x0) {
|
|
if ((undefined **)*plVar1 == Preset::vftable) {
|
|
local_res8[0] = plVar1[2];
|
|
FUN_18049c9e0(param_2,local_res8[0]);
|
|
return param_2;
|
|
}
|
|
puVar2 = (undefined8 *)(*(code *)((undefined **)*plVar1)[4])(plVar1,local_res8);
|
|
FUN_18049c9e0(param_2,*puVar2);
|
|
return param_2;
|
|
}
|
|
}
|
|
*param_2 = &DAT_1821dbf98;
|
|
return param_2;
|
|
}
|
|
|
|
|
|
[47] 0x1804714b0 size=3
|
|
[48] 0x18052bde0 size=15
|
|
[49] 0x1812bfff0 size=10
|
|
[50] 0x18052bdd0 size=15
|
|
[51] 0x1812bffb0 size=55
|
|
--- C ---
|
|
|
|
void FUN_1812bffb0(longlong *param_1,undefined8 param_2,int param_3)
|
|
|
|
{
|
|
if (*(code **)(*param_1 + 0xf8) == FUN_18052bdd0) {
|
|
FUN_1811fc760(param_1 + 0x67,param_2,(longlong)param_3);
|
|
return;
|
|
}
|
|
(**(code **)(*param_1 + 0xf8))();
|
|
return;
|
|
}
|
|
|
|
|
|
[52] 0x1812c0e20 size=3
|
|
[53] 0x1812c0e10 size=3
|
|
[54] 0x18052c490 size=14
|
|
[55] 0x1812c1130 size=139
|
|
--- C ---
|
|
|
|
void FUN_1812c1130(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
int iVar2;
|
|
longlong *plVar3;
|
|
|
|
EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
|
|
plVar3 = *(longlong **)(param_1 + 0x18);
|
|
iVar2 = *(int *)(param_1 + 0x24);
|
|
plVar1 = plVar3 + iVar2;
|
|
for (; plVar3 != plVar1; plVar3 = plVar3 + 1) {
|
|
if (param_2 == *plVar3) goto LAB_1812c11a1;
|
|
}
|
|
if (*(int *)(param_1 + 0x20) < iVar2 + 1) {
|
|
FUN_18047cb30(param_1 + 0x18,iVar2 + 9 + (iVar2 + 1) / 2 & 0xfffffff8);
|
|
}
|
|
iVar2 = *(int *)(param_1 + 0x24);
|
|
*(int *)(param_1 + 0x24) = iVar2 + 1;
|
|
*(longlong *)(*(longlong *)(param_1 + 0x18) + (longlong)iVar2 * 8) = param_2;
|
|
LAB_1812c11a1:
|
|
/* WARNING: Could not recover jumptable at 0x0001812c11b4. Too many branches */
|
|
/* WARNING: Treating indirect jump as call */
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
|
|
return;
|
|
}
|
|
|
|
|
|
[56] 0x1812c1070 size=180
|
|
--- C ---
|
|
|
|
void FUN_1812c1070(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
void *_Dst;
|
|
int iVar1;
|
|
longlong lVar2;
|
|
int iVar3;
|
|
|
|
EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
|
|
iVar1 = *(int *)(param_1 + 0x24);
|
|
iVar3 = 0;
|
|
lVar2 = 0;
|
|
if (0 < iVar1) {
|
|
do {
|
|
if (param_2 == *(longlong *)(*(longlong *)(param_1 + 0x18) + lVar2 * 8)) {
|
|
_Dst = (void *)(*(longlong *)(param_1 + 0x18) + (longlong)iVar3 * 8);
|
|
memmove(_Dst,(void *)((longlong)_Dst + 8),(longlong)((iVar1 - iVar3) + -1) << 3);
|
|
*(int *)(param_1 + 0x24) = *(int *)(param_1 + 0x24) + -1;
|
|
iVar1 = *(int *)(param_1 + 0x24);
|
|
iVar3 = 0;
|
|
if (0 < iVar1 * 2) {
|
|
iVar3 = iVar1 * 2;
|
|
}
|
|
if (iVar3 < *(int *)(param_1 + 0x20)) {
|
|
if (iVar1 < 8) {
|
|
iVar1 = 8;
|
|
}
|
|
if (iVar1 < *(int *)(param_1 + 0x20)) {
|
|
FUN_18047cb30(param_1 + 0x18);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
iVar3 = iVar3 + 1;
|
|
lVar2 = lVar2 + 1;
|
|
} while (lVar2 < iVar1);
|
|
}
|
|
/* WARNING: Could not recover jumptable at 0x0001812c111d. Too many branches */
|
|
/* WARNING: Treating indirect jump as call */
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 0x74));
|
|
return;
|
|
}
|
|
|
|
|
|
[57] 0x1812c11d0 size=5
|
|
[58] 0x1812bf000 size=137
|
|
--- C ---
|
|
|
|
void FUN_1812bf000(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined1 param_4)
|
|
|
|
{
|
|
undefined1 auStack_b8 [32];
|
|
undefined1 local_98;
|
|
void *local_68;
|
|
undefined8 local_60;
|
|
undefined8 local_58;
|
|
undefined8 local_50;
|
|
undefined8 local_48;
|
|
ulonglong local_40;
|
|
|
|
local_40 = DAT_182615970 ^ (ulonglong)auStack_b8;
|
|
local_50 = 4;
|
|
local_48 = 0xffffffff;
|
|
local_68 = (void *)0x0;
|
|
local_60 = 0;
|
|
local_58 = 0;
|
|
local_98 = param_4;
|
|
FUN_18123c5f0(param_2,&local_68);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_68);
|
|
}
|
|
|
|
|
|
[59] 0x1804d7000 size=33
|
|
[60] 0x1812bffa0 size=3
|
|
[61] 0x18052c310 size=339
|
|
--- C ---
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c3fa) */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c3ff) */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c40a) */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c40f) */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c413) */
|
|
/* WARNING: Removing unreachable block (ram,0x00018052c3d6) */
|
|
|
|
void FUN_18052c310(undefined8 param_1,longlong param_2)
|
|
|
|
{
|
|
int iVar1;
|
|
undefined1 auStack_d8 [32];
|
|
undefined4 local_b8;
|
|
void *local_b0 [5];
|
|
undefined1 local_88 [40];
|
|
void *local_60 [5];
|
|
void *local_38 [5];
|
|
ulonglong local_10;
|
|
|
|
local_10 = DAT_182615970 ^ (ulonglong)auStack_d8;
|
|
local_b8 = 0;
|
|
FUN_18124a040(local_88,8);
|
|
FUN_1804db6f0(param_2 + 0x10,local_b0,0);
|
|
iVar1 = FUN_18123c5f0(local_b0,local_88);
|
|
if (iVar1 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_b0[0]);
|
|
}
|
|
FUN_18124a040(local_38,6);
|
|
FUN_1804db6f0(param_2 + 0x10,local_60,0);
|
|
FUN_18123c5f0(local_60,local_38);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_60[0]);
|
|
}
|
|
|
|
|
|
[62] 0x1804d7030 size=10
|
|
[63] 0x1812c0230 size=525
|
|
--- C ---
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void FUN_1812c0230(longlong param_1,longlong param_2)
|
|
|
|
{
|
|
bool bVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
longlong lVar4;
|
|
undefined8 uVar5;
|
|
undefined1 auStack_98 [32];
|
|
int local_78;
|
|
int local_74;
|
|
int local_70;
|
|
void *local_68 [2];
|
|
undefined1 local_58 [24];
|
|
ulonglong local_40;
|
|
|
|
local_40 = DAT_182615970 ^ (ulonglong)auStack_98;
|
|
lVar4 = FUN_1812c37c0(param_1,local_68);
|
|
cVar2 = FUN_1804df970(param_2,lVar4);
|
|
if ((cVar2 == '\0') || (cVar2 = FUN_1804df970(param_2 + 0x10,lVar4 + 0x10), cVar2 == '\0')) {
|
|
bVar1 = false;
|
|
}
|
|
else {
|
|
bVar1 = true;
|
|
}
|
|
FUN_18047c500(local_58);
|
|
FUN_18047c500(local_68);
|
|
if (!bVar1) {
|
|
local_74 = *(int *)(param_1 + 0x100);
|
|
local_78 = *(int *)(param_1 + 0xec);
|
|
local_70 = *(int *)(param_1 + 0x104);
|
|
if ((*(int *)(param_2 + 0xc) == *(int *)(param_1 + 0xdc)) &&
|
|
(*(int *)(param_2 + 0x1c) == local_78)) {
|
|
if (0 < *(int *)(param_1 + 0xdc)) {
|
|
if (*(int *)(param_1 + 0xdc) == 0) {
|
|
lVar4 = 0;
|
|
}
|
|
else {
|
|
lVar4 = **(longlong **)(param_1 + 0xd0);
|
|
}
|
|
FUN_1804db6f0(param_2,local_68,0);
|
|
FUN_18123d980(lVar4 + 0x10,local_68);
|
|
iVar3 = FUN_18123d3f0(local_68);
|
|
if (iVar3 != 0) {
|
|
FUN_18123d980(lVar4 + 0x60,local_68);
|
|
}
|
|
FUN_18123d3f0(local_68);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_68[0]);
|
|
}
|
|
if (0 < local_78) {
|
|
if (*(int *)(param_1 + 0xec) == 0) {
|
|
lVar4 = 0;
|
|
}
|
|
else {
|
|
lVar4 = **(longlong **)(param_1 + 0xe0);
|
|
}
|
|
FUN_1804db6f0(param_2 + 0x10,local_68,0);
|
|
FUN_18123d980(lVar4 + 0x10,local_68);
|
|
iVar3 = FUN_18123d3f0(local_68);
|
|
if (iVar3 != 0) {
|
|
FUN_18123d980(lVar4 + 0x60,local_68);
|
|
}
|
|
FUN_18123d3f0(local_68);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_68[0]);
|
|
}
|
|
if ((local_74 == 0) && (local_70 == 0)) {
|
|
uVar5 = 0;
|
|
}
|
|
else {
|
|
uVar5 = 1;
|
|
}
|
|
FUN_1812c0000(param_1,0,uVar5);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
############ VTABLE 0x1824ac7a8 (64 slots) ############
|
|
[0] 0x18052fd40 size=38
|
|
[1] 0x18052cfb0 size=61
|
|
--- C ---
|
|
|
|
void .?AV?$AudioProcessingModule@M$01@@::vtbl___AV__AudioProcessingModule_M_01__(longlong param_1)
|
|
|
|
{
|
|
FUN_1812b4430(param_1 + 0x14,0,2);
|
|
*(float *)(param_1 + 0x58) = (float)(DAT_1824c4230 / (double)*(float *)(param_1 + 0x24));
|
|
return;
|
|
}
|
|
|
|
|
|
[2] 0x180529550 size=191
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2Module@M$01@@::vtbl___AV__Soothe2Module_M_01__
|
|
(longlong *param_1,undefined4 param_2,undefined4 *param_3,int param_4)
|
|
|
|
{
|
|
int *piVar1;
|
|
longlong lVar2;
|
|
uint *puVar3;
|
|
|
|
lVar2 = (longlong)param_4;
|
|
puVar3 = (uint *)(param_1 + (lVar2 + 9) * 8);
|
|
*(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = *param_3;
|
|
*puVar3 = puVar3[2] - 1 & *puVar3 + 1;
|
|
puVar3 = (uint *)(param_1 + (lVar2 + 7) * 8);
|
|
*(undefined4 *)(*(longlong *)(puVar3 + 8) + (longlong)(int)*puVar3 * 4) = param_2;
|
|
*puVar3 = puVar3[2] - 1 & *puVar3 + 1;
|
|
piVar1 = (int *)((longlong)param_1 + lVar2 * 4 + 0x3c0);
|
|
*piVar1 = *piVar1 + 1;
|
|
if ((*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79] / 2) && (param_4 == 0))
|
|
{
|
|
(**(code **)(*param_1 + 0x38))(param_1);
|
|
}
|
|
if (*(int *)((longlong)param_1 + lVar2 * 4 + 0x3c0) == (int)param_1[0x79]) {
|
|
*(undefined4 *)((longlong)param_1 + lVar2 * 4 + 0x3c0) = 0;
|
|
FUN_1805300f0(param_1,param_4);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[3] 0x1804714b0 size=3
|
|
[4] 0x18052ce00 size=98
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)
|
|
|
|
{
|
|
float fVar1;
|
|
|
|
.?AV?$SpectralProcessor@M$07$01@@::vtbl___AV__SpectralProcessor_M_07_01__();
|
|
fVar1 = *(float *)(param_1 + 0x3fc);
|
|
*(float *)(param_1 + 0x3fc) = *(float *)(param_1 + 0x24);
|
|
if (fVar1 != *(float *)(param_1 + 0x24)) {
|
|
(**(code **)(*(longlong *)(param_1 + 0x3d8) + 0x20))((longlong *)(param_1 + 0x3d8));
|
|
}
|
|
*(undefined4 *)(param_1 + 0x240458) = 4;
|
|
*(undefined4 *)(param_1 + 0x240467) = 0x1010101;
|
|
*(undefined4 *)(param_1 + 0x24046b) = 0x1010101;
|
|
return;
|
|
}
|
|
|
|
|
|
[5] 0x1804714b0 size=3
|
|
[6] 0x1804714b0 size=3
|
|
[7] 0x1804714b0 size=3
|
|
[8] 0x1804727a0 size=3
|
|
[9] 0x1804714b0 size=3
|
|
[10] 0x1804714b0 size=3
|
|
[11] 0x1804714b0 size=3
|
|
[12] 0x1804714b0 size=3
|
|
[13] 0x1804714b0 size=3
|
|
[14] 0x1804714b0 size=3
|
|
[15] 0x1804714b0 size=3
|
|
[16] 0x1804714b0 size=3
|
|
[17] 0x1804714b0 size=3
|
|
[18] 0x1804714b0 size=3
|
|
[19] 0x1804714b0 size=3
|
|
[20] 0x1804714b0 size=3
|
|
[21] 0x1804714b0 size=3
|
|
[22] 0x1804714b0 size=3
|
|
[23] 0x1804714b0 size=3
|
|
[24] 0x18052cec0 size=88
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)
|
|
|
|
{
|
|
int iVar1;
|
|
|
|
iVar1 = *(int *)(param_1 + 0x2404cc);
|
|
while( true ) {
|
|
if (iVar1 < 1) {
|
|
return;
|
|
}
|
|
iVar1 = iVar1 + -1;
|
|
if ((*(int *)(param_1 + 0x2404cc) <= iVar1) &&
|
|
(iVar1 = *(int *)(param_1 + 0x2404cc) + -1, iVar1 < 0)) break;
|
|
FUN_180492ef8(*(undefined8 *)(*(longlong *)(param_1 + 0x2404c0) + (longlong)iVar1 * 8));
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[25] 0x18052ce90 size=48
|
|
--- C ---
|
|
|
|
undefined1 .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__(longlong param_1)
|
|
|
|
{
|
|
if ((*(char *)(param_1 + 0x240464) != '\0') && (*(char *)(param_1 + 0x240464) != '\0')) {
|
|
*(undefined1 *)(param_1 + 0x240464) = 0;
|
|
FUN_18052fbd0();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
[26] 0x18052ce80 size=14
|
|
[27] 0x1804727a0 size=3
|
|
[28] 0x18052ce70 size=9
|
|
[29] 0x180484870 size=3
|
|
[30] 0x1804714b0 size=3
|
|
[31] 0x1804714b0 size=3
|
|
[32] 0x44cfb42858ddbe60 (invalid/enc)
|
|
[33] 0x7955c8b128 (invalid/enc)
|
|
[34] 0x182507b08 size=0
|
|
[35] 0x180546620 size=62
|
|
--- C ---
|
|
|
|
undefined8 *
|
|
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
|
|
(undefined8 *param_1,ulonglong param_2)
|
|
|
|
{
|
|
*param_1 = juce::WindowsMediaAudioFormat::vftable;
|
|
FUN_1813affa0();
|
|
if ((param_2 & 1) != 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(param_1);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
[36] 0x1813afeb0 size=43
|
|
--- C ---
|
|
|
|
undefined8 *
|
|
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
|
|
(longlong param_1,undefined8 *param_2)
|
|
|
|
{
|
|
*param_2 = 0;
|
|
param_2[1] = 0;
|
|
FUN_18048c4c0(param_2,*(undefined8 *)(param_1 + 0x10),*(undefined4 *)(param_1 + 0x1c));
|
|
return param_2;
|
|
}
|
|
|
|
|
|
[37] 0x1813afef0 size=130
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
|
|
(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
char cVar2;
|
|
undefined8 *puVar3;
|
|
undefined8 *local_20;
|
|
int local_14;
|
|
|
|
(**(code **)(*param_1 + 8))(param_1,&local_20,param_3,param_4,0xfffffffffffffffe);
|
|
puVar1 = local_20 + local_14;
|
|
puVar3 = local_20;
|
|
while( true ) {
|
|
if (puVar3 == puVar1) {
|
|
FUN_180488c50(&local_20);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_20);
|
|
}
|
|
cVar2 = FUN_18123fe10(param_2,*puVar3);
|
|
if (cVar2 != '\0') break;
|
|
puVar3 = puVar3 + 1;
|
|
}
|
|
FUN_180488c50(&local_20);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_20);
|
|
}
|
|
|
|
|
|
[38] 0x18136cc80 size=13
|
|
[39] 0x18136cc60 size=13
|
|
[40] 0x18136cc50 size=3
|
|
[41] 0x18136cc40 size=3
|
|
[42] 0x18136cc30 size=3
|
|
[43] 0x1813afd80 size=80
|
|
--- C ---
|
|
|
|
void .?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
|
|
(undefined8 param_1,undefined8 param_2)
|
|
|
|
{
|
|
undefined1 auStack_58 [32];
|
|
void *local_38 [5];
|
|
ulonglong local_10;
|
|
|
|
local_10 = DAT_182615970 ^ (ulonglong)auStack_58;
|
|
FUN_18124a040(local_38,8);
|
|
FUN_18123c5f0(param_2,local_38);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_38[0]);
|
|
}
|
|
|
|
|
|
[44] 0x1813afe80 size=13
|
|
[45] 0x18136cbb0 size=108
|
|
--- C ---
|
|
|
|
undefined8 *
|
|
.?AV?$Soothe2ModuleBase@M$01@@::vtbl___AV__Soothe2ModuleBase_M_01__
|
|
(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4)
|
|
|
|
{
|
|
undefined8 uVar1;
|
|
undefined8 *puVar2;
|
|
|
|
uVar1 = FUN_1811316e0(0x90,param_2,param_3,param_4,0xfffffffffffffffe);
|
|
puVar2 = (undefined8 *)FUN_180545be0(uVar1,param_2);
|
|
if ((double)puVar2[1] <= 0.0) {
|
|
if ((char)param_3 == '\0') {
|
|
puVar2[10] = 0;
|
|
}
|
|
(**(code **)*puVar2)(puVar2,1);
|
|
puVar2 = (undefined8 *)0x0;
|
|
}
|
|
return puVar2;
|
|
}
|
|
|
|
|
|
[46] 0x1813afe40 size=32
|
|
[47] 0x1813afe70 size=3
|
|
[48] 0x1813afcf0 size=132
|
|
--- C ---
|
|
|
|
undefined8
|
|
FUN_1813afcf0(longlong *param_1,undefined8 param_2,undefined4 param_3,undefined8 param_4,
|
|
undefined4 param_5,undefined8 param_6,undefined4 param_7)
|
|
|
|
{
|
|
char cVar1;
|
|
undefined4 uVar2;
|
|
undefined8 uVar3;
|
|
|
|
cVar1 = (**(code **)(*param_1 + 0x40))(param_1,param_4);
|
|
if (cVar1 == '\0') {
|
|
uVar3 = 0;
|
|
}
|
|
else {
|
|
uVar2 = FUN_18123d3f0(param_4);
|
|
uVar3 = (**(code **)(*param_1 + 0x70))(param_1,param_2,param_3,uVar2,param_5,param_6,param_7);
|
|
}
|
|
return uVar3;
|
|
}
|
|
|
|
|
|
[49] 0x18136cba0 size=3
|
|
[50] 0x1825080a8 size=0
|
|
[51] 0x18053e010 size=47
|
|
--- C ---
|
|
|
|
void FUN_18053e010(undefined8 *param_1)
|
|
|
|
{
|
|
*param_1 = juce::OggReader::vftable;
|
|
FUN_181371350(param_1 + 0xc);
|
|
/* WARNING: Subroutine does not return */
|
|
free((void *)param_1[0x7c]);
|
|
}
|
|
|
|
|
|
[52] 0x1813af190 size=138
|
|
--- C ---
|
|
|
|
void FUN_1813af190(longlong *param_1,undefined8 param_2,undefined8 param_3,undefined4 *param_4,
|
|
undefined4 *param_5,undefined4 *param_6,undefined4 *param_7)
|
|
|
|
{
|
|
if (*(uint *)(param_1 + 4) < 2) {
|
|
(**(code **)(*param_1 + 0x10))();
|
|
}
|
|
else {
|
|
(**(code **)(*param_1 + 0x10))();
|
|
}
|
|
*param_4 = 0;
|
|
*param_5 = 0;
|
|
*param_6 = 0;
|
|
*param_7 = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
[53] 0x1813af220 size=771
|
|
--- C ---
|
|
|
|
void FUN_1813af220(longlong *param_1,longlong param_2,ulonglong param_3,longlong param_4,int param_5
|
|
)
|
|
|
|
{
|
|
float fVar1;
|
|
int iVar2;
|
|
ulonglong uVar3;
|
|
bool bVar4;
|
|
int iVar5;
|
|
float fVar6;
|
|
char cVar7;
|
|
longlong lVar8;
|
|
float *pfVar9;
|
|
int iVar10;
|
|
longlong lVar11;
|
|
longlong lVar12;
|
|
int iVar13;
|
|
int iVar14;
|
|
int *piVar15;
|
|
undefined8 *puVar16;
|
|
longlong lVar17;
|
|
undefined8 *puVar18;
|
|
float fVar19;
|
|
float fVar20;
|
|
float local_1c4;
|
|
float local_1c0;
|
|
float local_1bc;
|
|
float local_1b8;
|
|
float local_1b4;
|
|
float fStack_1b0;
|
|
undefined8 *local_1a8;
|
|
longlong local_1a0;
|
|
ulonglong local_198;
|
|
undefined8 local_190;
|
|
undefined1 local_188 [16];
|
|
undefined8 *local_178;
|
|
void *local_170;
|
|
undefined1 local_68;
|
|
|
|
local_190 = 0xfffffffffffffffe;
|
|
lVar11 = (longlong)param_5;
|
|
if ((longlong)param_3 < 1) {
|
|
lVar8 = 0;
|
|
if (0 < param_5) {
|
|
do {
|
|
*(undefined8 *)(param_4 + lVar8 * 8) = 0;
|
|
lVar8 = lVar8 + 1;
|
|
} while (lVar8 < lVar11);
|
|
}
|
|
return;
|
|
}
|
|
iVar10 = (int)param_3;
|
|
if (0x1000 < (longlong)param_3) {
|
|
iVar10 = 0x1000;
|
|
}
|
|
local_1a0 = lVar11;
|
|
FUN_180535db0(local_188,lVar11,iVar10);
|
|
fVar6 = DAT_1824c3c28;
|
|
LOCK();
|
|
local_68 = 0;
|
|
UNLOCK();
|
|
local_1a8 = local_178;
|
|
bVar4 = true;
|
|
local_198 = (ulonglong)iVar10;
|
|
puVar16 = local_178;
|
|
do {
|
|
uVar3 = param_3;
|
|
if ((longlong)local_198 < (longlong)param_3) {
|
|
uVar3 = local_198;
|
|
}
|
|
iVar13 = (int)uVar3;
|
|
lVar17 = (longlong)iVar13;
|
|
lVar8 = param_2;
|
|
iVar10 = iVar13;
|
|
iVar14 = 0;
|
|
if (param_2 < 0) {
|
|
lVar8 = lVar11;
|
|
iVar14 = (int)-param_2;
|
|
if (lVar17 < -param_2) {
|
|
iVar14 = iVar13;
|
|
}
|
|
while (lVar8 = lVar8 + -1, -1 < lVar8) {
|
|
if ((void *)puVar16[lVar8] != (void *)0x0) {
|
|
memset((void *)puVar16[lVar8],0,(longlong)iVar14 << 2);
|
|
}
|
|
}
|
|
iVar10 = iVar13 - iVar14;
|
|
lVar8 = 0;
|
|
}
|
|
if (0 < iVar10) {
|
|
iVar5 = (int)param_1[4];
|
|
if (param_5 < (int)param_1[4]) {
|
|
iVar5 = param_5;
|
|
}
|
|
cVar7 = (**(code **)(*param_1 + 0x20))(param_1,puVar16,iVar5,iVar14,lVar8,iVar10);
|
|
if (cVar7 == '\0') break;
|
|
lVar8 = (longlong)(int)param_1[4];
|
|
if ((int)param_1[4] < param_5) {
|
|
for (; lVar8 < lVar11; lVar8 = lVar8 + 1) {
|
|
if ((void *)puVar16[lVar8] != (void *)0x0) {
|
|
memset((void *)puVar16[lVar8],0,lVar17 * 4);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
puVar18 = puVar16;
|
|
lVar8 = lVar11;
|
|
if (0 < lVar11) {
|
|
lVar12 = param_4 - (longlong)puVar16;
|
|
do {
|
|
if (*(char *)((longlong)param_1 + 0x24) == '\0') {
|
|
piVar15 = (int *)*puVar16;
|
|
if (iVar13 < 1) {
|
|
iVar10 = 0;
|
|
iVar14 = 0;
|
|
}
|
|
else {
|
|
iVar10 = *piVar15;
|
|
iVar14 = iVar10;
|
|
iVar5 = iVar13;
|
|
while (iVar5 = iVar5 + -1, 0 < iVar5) {
|
|
piVar15 = piVar15 + 1;
|
|
iVar2 = *piVar15;
|
|
if (iVar10 < iVar2) {
|
|
iVar10 = iVar2;
|
|
}
|
|
if (iVar2 < iVar14) {
|
|
iVar14 = iVar2;
|
|
}
|
|
}
|
|
}
|
|
fVar20 = (float)iVar10 * fVar6;
|
|
fVar19 = (float)iVar14 * fVar6;
|
|
if (fVar20 <= fVar19) {
|
|
fVar20 = fVar19;
|
|
}
|
|
}
|
|
else {
|
|
FUN_1804d5400(&local_1bc,*puVar16,uVar3 & 0xffffffff);
|
|
fVar19 = local_1bc;
|
|
fVar20 = local_1b8;
|
|
}
|
|
if (bVar4) {
|
|
local_1b4 = fVar19;
|
|
fStack_1b0 = fVar20;
|
|
pfVar9 = &local_1b4;
|
|
}
|
|
else {
|
|
fVar1 = *(float *)(lVar12 + 4 + (longlong)puVar16);
|
|
if (fVar20 <= fVar1) {
|
|
fVar20 = fVar1;
|
|
}
|
|
if (*(float *)(lVar12 + (longlong)puVar16) <= fVar19) {
|
|
fVar19 = *(float *)(lVar12 + (longlong)puVar16);
|
|
}
|
|
local_1c4 = fVar19;
|
|
if (fVar20 <= fVar19) {
|
|
local_1c0 = fVar19;
|
|
}
|
|
else {
|
|
local_1c0 = fVar20;
|
|
}
|
|
pfVar9 = &local_1c4;
|
|
}
|
|
*(undefined8 *)(lVar12 + (longlong)puVar16) = *(undefined8 *)pfVar9;
|
|
puVar16 = puVar16 + 1;
|
|
lVar11 = lVar11 + -1;
|
|
puVar18 = local_1a8;
|
|
lVar8 = local_1a0;
|
|
} while (lVar11 != 0);
|
|
}
|
|
bVar4 = false;
|
|
param_3 = param_3 - lVar17;
|
|
param_2 = param_2 + lVar17;
|
|
puVar16 = puVar18;
|
|
lVar11 = lVar8;
|
|
} while (0 < (longlong)param_3);
|
|
/* WARNING: Subroutine does not return */
|
|
free(local_170);
|
|
}
|
|
|
|
|
|
[54] 0x1813af160 size=29
|
|
[55] 0x18053dba0 size=990
|
|
--- C ---
|
|
|
|
undefined8
|
|
FUN_18053dba0(longlong param_1,longlong param_2,int param_3,int param_4,longlong param_5,int param_6
|
|
)
|
|
|
|
{
|
|
undefined4 uVar1;
|
|
int iVar2;
|
|
int iVar3;
|
|
int iVar4;
|
|
longlong lVar5;
|
|
longlong lVar6;
|
|
int iVar7;
|
|
int iVar8;
|
|
int local_res20;
|
|
longlong local_48;
|
|
|
|
iVar4 = param_6;
|
|
local_res20 = param_4;
|
|
if (param_6 < 1) {
|
|
return 1;
|
|
}
|
|
do {
|
|
iVar2 = (*(int *)(param_1 + 0x4f4) - (int)param_5) + *(int *)(param_1 + 0x4f0);
|
|
if ((*(int *)(param_1 + 0x4f0) <= param_5) && (0 < iVar2)) {
|
|
iVar8 = iVar4;
|
|
if (iVar2 < iVar4) {
|
|
iVar8 = iVar2;
|
|
}
|
|
iVar2 = param_3;
|
|
if (*(int *)(param_1 + 0x3c8) < param_3) {
|
|
iVar2 = *(int *)(param_1 + 0x3c8);
|
|
}
|
|
iVar2 = iVar2 + -1;
|
|
if (-1 < iVar2) {
|
|
lVar5 = (longlong)iVar2 * 8;
|
|
do {
|
|
if (*(longlong *)(lVar5 + param_2) != 0) {
|
|
memcpy((void *)(*(longlong *)(lVar5 + param_2) + (longlong)local_res20 * 4),
|
|
(void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5) +
|
|
(longlong)((int)param_5 - *(int *)(param_1 + 0x4f0)) * 4),
|
|
(longlong)iVar8 << 2);
|
|
}
|
|
lVar5 = lVar5 + -8;
|
|
iVar2 = iVar2 + -1;
|
|
iVar4 = param_6;
|
|
} while (-1 < iVar2);
|
|
}
|
|
iVar4 = iVar4 - iVar8;
|
|
param_5 = param_5 + iVar8;
|
|
local_res20 = local_res20 + iVar8;
|
|
param_6 = iVar4;
|
|
if (iVar4 == 0) {
|
|
return 1;
|
|
}
|
|
}
|
|
if ((param_5 < *(int *)(param_1 + 0x4f0)) ||
|
|
((longlong)(*(int *)(param_1 + 0x4f0) + *(int *)(param_1 + 0x4f4)) < iVar4 + param_5)) {
|
|
*(undefined4 *)(param_1 + 0x4f4) = *(undefined4 *)(param_1 + 0x3cc);
|
|
iVar2 = -0x83;
|
|
iVar8 = 0;
|
|
if (0 < (int)param_5) {
|
|
iVar8 = (int)param_5;
|
|
}
|
|
*(int *)(param_1 + 0x4f0) = iVar8;
|
|
if (1 < *(int *)(param_1 + 0xe0)) {
|
|
iVar2 = (int)*(undefined8 *)(param_1 + 0xd8);
|
|
}
|
|
if (iVar8 != iVar2) {
|
|
FUN_18136fc00(param_1 + 0x60);
|
|
}
|
|
iVar8 = 0;
|
|
for (iVar2 = *(int *)(param_1 + 0x4f4); 0 < iVar2; iVar2 = iVar2 - iVar7) {
|
|
local_48 = 0;
|
|
iVar4 = param_6;
|
|
if (*(int *)(param_1 + 0xe0) < 2) {
|
|
LAB_18053deb3:
|
|
if ((0 < iVar2) && (*(char *)(param_1 + 0x4e8) == '\0')) {
|
|
if ((iVar8 == 0) && (iVar2 == *(int *)(param_1 + 0x3cc))) {
|
|
LOCK();
|
|
*(undefined1 *)(param_1 + 0x4e8) = 1;
|
|
UNLOCK();
|
|
}
|
|
iVar7 = 0;
|
|
if (0 < *(int *)(param_1 + 0x3c8)) {
|
|
lVar5 = 0;
|
|
do {
|
|
memset((void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5) +
|
|
(longlong)iVar8 * 4),0,(longlong)iVar2 << 2);
|
|
iVar7 = iVar7 + 1;
|
|
lVar5 = lVar5 + 8;
|
|
} while (iVar7 < *(int *)(param_1 + 0x3c8));
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
do {
|
|
if (*(int *)(param_1 + 0xe0) == 4) {
|
|
lVar5 = *(longlong *)(param_1 + 0x280);
|
|
if ((-1 < *(int *)(param_1 + 0x2a0)) &&
|
|
(*(int *)(param_1 + 0x2a0) < *(int *)(param_1 + 0x29c))) {
|
|
iVar7 = 0;
|
|
if (0 < *(int *)(lVar5 + 4)) {
|
|
lVar6 = 0;
|
|
do {
|
|
iVar7 = iVar7 + 1;
|
|
*(longlong *)(lVar6 + *(longlong *)(param_1 + 0x290)) =
|
|
*(longlong *)(*(longlong *)(param_1 + 0x288) + -8 + lVar6 + 8) +
|
|
(longlong)*(int *)(param_1 + 0x2a0) * 4;
|
|
lVar6 = lVar6 + 8;
|
|
} while (iVar7 < *(int *)(lVar5 + 4));
|
|
}
|
|
iVar7 = *(int *)(param_1 + 0x29c) - *(int *)(param_1 + 0x2a0);
|
|
if (iVar7 != 0) {
|
|
if (iVar2 < iVar7) {
|
|
iVar7 = iVar2;
|
|
}
|
|
uVar1 = *(undefined4 *)(*(longlong *)(*(longlong *)(param_1 + 200) + 0x20) + 0x1668)
|
|
;
|
|
if ((iVar7 == 0) || (*(int *)(param_1 + 0x2a0) + iVar7 <= *(int *)(param_1 + 0x29c))
|
|
) {
|
|
*(int *)(param_1 + 0x2a0) = *(int *)(param_1 + 0x2a0) + iVar7;
|
|
}
|
|
*(longlong *)(param_1 + 0xd8) =
|
|
*(longlong *)(param_1 + 0xd8) + (longlong)(iVar7 << ((byte)uVar1 & 0x1f));
|
|
local_48 = *(longlong *)(param_1 + 0x290);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
iVar7 = FUN_181371870(param_1 + 0x60);
|
|
if (iVar7 == -2) goto LAB_18053deb3;
|
|
} while (0 < iVar7);
|
|
if (iVar7 < 1) goto LAB_18053deb3;
|
|
iVar3 = *(int *)(param_1 + 0x20);
|
|
if (*(int *)(param_1 + 0x3c8) < *(int *)(param_1 + 0x20)) {
|
|
iVar3 = *(int *)(param_1 + 0x3c8);
|
|
}
|
|
lVar5 = (longlong)(iVar3 + -1);
|
|
if (-1 < iVar3 + -1) {
|
|
do {
|
|
LOCK();
|
|
*(undefined1 *)(param_1 + 0x4e8) = 0;
|
|
UNLOCK();
|
|
memcpy((void *)(*(longlong *)(*(longlong *)(param_1 + 0x3d8) + lVar5 * 8) +
|
|
(longlong)iVar8 * 4),*(void **)(local_48 + lVar5 * 8),
|
|
(longlong)iVar7 << 2);
|
|
lVar5 = lVar5 + -1;
|
|
} while (-1 < lVar5);
|
|
}
|
|
iVar8 = iVar8 + iVar7;
|
|
}
|
|
}
|
|
if (iVar4 < 1) {
|
|
return 1;
|
|
}
|
|
} while( true );
|
|
}
|
|
|
|
|
|
[56] 0x182507300 size=0
|
|
[57] 0x1805386e0 size=120
|
|
--- C ---
|
|
|
|
undefined8 * FUN_1805386e0(undefined8 *param_1,uint param_2)
|
|
|
|
{
|
|
undefined8 *puVar1;
|
|
|
|
*param_1 = juce::AudioFormatReaderSource::vftable;
|
|
if (*(char *)(param_1 + 2) == '\0') {
|
|
param_1[1] = 0;
|
|
}
|
|
else {
|
|
puVar1 = (undefined8 *)param_1[1];
|
|
param_1[1] = 0;
|
|
if (puVar1 == (undefined8 *)0x0) goto LAB_180538737;
|
|
(**(code **)*puVar1)(puVar1,1);
|
|
}
|
|
puVar1 = (undefined8 *)param_1[1];
|
|
if (puVar1 != (undefined8 *)0x0) {
|
|
(**(code **)*puVar1)(puVar1,1);
|
|
}
|
|
LAB_180538737:
|
|
if ((param_2 & 1) != 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(param_1);
|
|
}
|
|
return param_1;
|
|
}
|
|
|
|
|
|
[58] 0x1813aed50 size=3
|
|
[59] 0x1813aed40 size=3
|
|
[60] 0x1813aec40 size=242
|
|
--- C ---
|
|
|
|
void FUN_1813aec40(longlong param_1,undefined8 *param_2)
|
|
|
|
{
|
|
longlong lVar1;
|
|
longlong lVar2;
|
|
longlong lVar3;
|
|
longlong lVar4;
|
|
ulonglong uVar5;
|
|
int iVar6;
|
|
|
|
iVar6 = *(int *)((longlong)param_2 + 0xc);
|
|
if (0 < iVar6) {
|
|
lVar1 = *(longlong *)(param_1 + 0x18);
|
|
lVar2 = *(longlong *)(param_1 + 8);
|
|
if (*(char *)(param_1 + 0x20) != '\0') {
|
|
lVar3 = *(longlong *)(lVar2 + 0x18);
|
|
lVar4 = lVar1 % lVar3;
|
|
uVar5 = (lVar1 + iVar6) % lVar3;
|
|
if (lVar4 < (longlong)uVar5) {
|
|
FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),(int)uVar5 - (int)lVar4,lVar4);
|
|
*(ulonglong *)(param_1 + 0x18) = uVar5;
|
|
return;
|
|
}
|
|
iVar6 = (int)lVar3 - (int)lVar4;
|
|
FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),iVar6,lVar4);
|
|
FUN_1813af530(*(undefined8 *)(param_1 + 8),*param_2,*(int *)(param_2 + 1) + iVar6,
|
|
uVar5 & 0xffffffff,0);
|
|
*(ulonglong *)(param_1 + 0x18) = uVar5;
|
|
return;
|
|
}
|
|
FUN_1813af530(lVar2,*param_2,*(undefined4 *)(param_2 + 1),(longlong)iVar6,lVar1);
|
|
*(longlong *)(param_1 + 0x18) =
|
|
*(longlong *)(param_1 + 0x18) + (longlong)*(int *)((longlong)param_2 + 0xc);
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
[61] 0x1813aed90 size=5
|
|
[62] 0x1813aed60 size=24
|
|
[63] 0x1813aeda0 size=9
|
|
############ VTABLE 0x1824ab7c0 (64 slots) ############
|
|
[0] 0x1805384a8 size=12
|
|
[1] 0x18052bd00 size=189
|
|
--- C ---
|
|
|
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
|
|
|
void .?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 *param_3)
|
|
|
|
{
|
|
uint *_Memory;
|
|
uint uVar1;
|
|
undefined1 uVar2;
|
|
int iVar3;
|
|
undefined1 auStack_58 [32];
|
|
longlong local_38;
|
|
undefined8 local_30;
|
|
undefined8 *local_28;
|
|
ulonglong local_20;
|
|
|
|
local_30 = 0xfffffffffffffffe;
|
|
local_20 = DAT_182615970 ^ (ulonglong)auStack_58;
|
|
local_38 = *(longlong *)(param_1 + 0x478);
|
|
_Memory = (uint *)(local_38 + -0x10);
|
|
if ((*_Memory & 0x30000000) == 0) {
|
|
LOCK();
|
|
*_Memory = *_Memory + 1;
|
|
UNLOCK();
|
|
}
|
|
local_28 = param_3;
|
|
iVar3 = FUN_18048cbc0(param_2,local_38);
|
|
if ((*_Memory & 0x30000000) == 0) {
|
|
LOCK();
|
|
uVar1 = *_Memory;
|
|
*_Memory = *_Memory - 1;
|
|
UNLOCK();
|
|
if (uVar1 == 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
free(_Memory);
|
|
}
|
|
}
|
|
if (iVar3 == 0) {
|
|
uVar2 = FUN_180528b30(param_1 + 0x470);
|
|
*(undefined1 *)(param_1 + 0x404) = uVar2;
|
|
}
|
|
(**(code **)(*(longlong *)*param_3 + 0xb0))((longlong *)*param_3,param_3 + 1);
|
|
}
|
|
|
|
|
|
[2] 0x182507040 size=0
|
|
[3] 0x180536b60 size=22
|
|
[4] 0x180536b60 size=22
|
|
[5] 0x1805379a0 size=104
|
|
--- C ---
|
|
|
|
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;
|
|
}
|
|
|
|
|
|
[6] 0x180536b50 size=8
|
|
[7] 0x18048dc80 size=15
|
|
[8] 0x180481210 size=5
|
|
[9] 0x891a (invalid/enc)
|
|
[10] 0x182505588 size=0
|
|
[11] 0x180536850 size=22
|
|
[12] 0x180536850 size=22
|
|
[13] 0x180537e90 size=150
|
|
--- C ---
|
|
|
|
void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
|
|
::
|
|
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
|
|
(longlong param_1,float *param_2)
|
|
|
|
{
|
|
longlong lVar1;
|
|
char cVar2;
|
|
int iVar3;
|
|
|
|
iVar3 = (int)*param_2;
|
|
if ((*(char *)(*(longlong *)(param_1 + 8) + 0x41) != '\0') &&
|
|
(cVar2 = FUN_180528d50(), cVar2 != '\0')) {
|
|
return;
|
|
}
|
|
lVar1 = *(longlong *)(*(longlong *)(param_1 + 8) + 0x168);
|
|
*(undefined1 *)(lVar1 + 0x3cc) = 1;
|
|
*(undefined1 *)(lVar1 + 0x1b6) = 1;
|
|
if (iVar3 == 1) {
|
|
*(undefined4 *)(lVar1 + 0x1ac) = 4;
|
|
}
|
|
else if (iVar3 == 2) {
|
|
*(undefined4 *)(lVar1 + 0x1ac) = 8;
|
|
}
|
|
else if (iVar3 == 3) {
|
|
*(undefined4 *)(lVar1 + 0x1ac) = 0x10;
|
|
}
|
|
else {
|
|
*(undefined4 *)(lVar1 + 0x1ac) = 2;
|
|
}
|
|
(**(code **)(**(longlong **)(*(longlong *)(param_1 + 8) + 0x168) + 0x20))();
|
|
return;
|
|
}
|
|
|
|
|
|
[14] 0x180536840 size=8
|
|
[15] 0x18048db00 size=15
|
|
[16] 0x180481210 size=5
|
|
[17] 0x182506590 size=0
|
|
[18] 0x180536f20 size=14
|
|
[19] 0x180536f20 size=14
|
|
[20] 0x180537290 size=41
|
|
--- C ---
|
|
|
|
undefined8
|
|
.?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
|
|
::
|
|
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
|
|
(undefined8 param_1,undefined8 param_2,float *param_3)
|
|
|
|
{
|
|
FUN_1812339a0(param_2,(double)*param_3,1);
|
|
return param_2;
|
|
}
|
|
|
|
|
|
[21] 0x180536f10 size=8
|
|
[22] 0x18048db00 size=15
|
|
[23] 0x180481210 size=5
|
|
[24] 0x182505910 size=0
|
|
[25] 0x180536610 size=30
|
|
[26] 0x180536610 size=30
|
|
[27] 0x1805380e0 size=35
|
|
[28] 0x180536600 size=8
|
|
[29] 0x1805365f0 size=15
|
|
[30] 0x180481210 size=5
|
|
[31] 0x182504cd0 size=0
|
|
[32] 0x180536d60 size=22
|
|
[33] 0x180536d60 size=22
|
|
[34] 0x1805375e0 size=73
|
|
--- C ---
|
|
|
|
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)
|
|
|
|
{
|
|
longlong lVar1;
|
|
|
|
lVar1 = **(longlong **)(param_1 + 8);
|
|
if (*(int *)(lVar1 + 0x444) != 0) {
|
|
*(undefined4 *)(**(longlong **)(lVar1 + 0x438) + 0x80c) = *param_2;
|
|
*(undefined1 *)(lVar1 + 0x240467) = 1;
|
|
FUN_18052fc30();
|
|
return;
|
|
}
|
|
uRam000000000000080c = *param_2;
|
|
*(undefined1 *)(lVar1 + 0x240467) = 1;
|
|
FUN_18052fc30();
|
|
return;
|
|
}
|
|
|
|
|
|
[35] 0x180536d50 size=8
|
|
[36] 0x18048db00 size=15
|
|
[37] 0x180481210 size=5
|
|
[38] 0x182506f18 size=0
|
|
[39] 0x180536dc0 size=22
|
|
[40] 0x180536dc0 size=22
|
|
[41] 0x1805374e0 size=163
|
|
--- C ---
|
|
|
|
void .?AV?$CloudyAudioProcessor@V?$Soothe2ModuleBase@M$01@@VSoothe2ModuleDecryptor@@VParameterStates@@M@@
|
|
::
|
|
vtbl___AV__CloudyAudioProcessor_V__Soothe2ModuleBase_M_01__VSoothe2ModuleDecryptor__VParameterStates__M__
|
|
(longlong param_1,float *param_2)
|
|
|
|
{
|
|
longlong *plVar1;
|
|
longlong lVar2;
|
|
float fVar3;
|
|
float fVar4;
|
|
float fVar5;
|
|
|
|
fVar3 = logf(DAT_1824c43e8);
|
|
plVar1 = *(longlong **)(*(longlong *)(param_1 + 8) + 0x168);
|
|
lVar2 = *plVar1;
|
|
fVar4 = powf(*param_2 * DAT_1824c3cb8,DAT_1824c3ef8);
|
|
fVar5 = logf(DAT_1824c45e4);
|
|
fVar3 = expf(fVar4 * (fVar5 - fVar3) + fVar3);
|
|
/* WARNING: Could not recover jumptable at 0x000180537580. Too many branches */
|
|
/* WARNING: Treating indirect jump as call */
|
|
(**(code **)(lVar2 + 0x80))(plVar1,fVar3);
|
|
return;
|
|
}
|
|
|
|
|
|
[42] 0x180536db0 size=8
|
|
[43] 0x18048db00 size=15
|
|
[44] 0x180481210 size=5
|
|
[45] 0x182506090 size=0
|
|
[46] 0x1805367f0 size=22
|
|
[47] 0x1805367f0 size=22
|
|
[48] 0x180537f60 size=25
|
|
[49] 0x1805367e0 size=8
|
|
[50] 0x18048db00 size=15
|
|
[51] 0x180481210 size=5
|
|
[52] 0x90f8daaa9ae9 (invalid/enc)
|
|
[53] 0x182506948 size=0
|
|
[54] 0x1805366d0 size=22
|
|
[55] 0x1805366d0 size=22
|
|
[56] 0x180538010 size=25
|
|
[57] 0x1805366c0 size=8
|
|
[58] 0x18048db00 size=15
|
|
[59] 0x180481210 size=5
|
|
[60] 0x6a5500ee6cd5 (invalid/enc)
|
|
[61] 0x1b39b7231a23 (invalid/enc)
|
|
[62] 0x1825061b8 size=0
|
|
[63] 0x180536a30 size=14
|