chore: audio-chain xrefs, PACE-stub pattern, SpectralProcessor vftable id
This commit is contained in:
+1
-1
@@ -10,7 +10,7 @@ public class ListFuns extends GhidraScript {
|
|||||||
FunctionIterator it = currentProgram.getFunctionManager().getFunctions(true);
|
FunctionIterator it = currentProgram.getFunctionManager().getFunctions(true);
|
||||||
PrintWriter pw = new PrintWriter(new java.io.BufferedWriter(
|
PrintWriter pw = new PrintWriter(new java.io.BufferedWriter(
|
||||||
new java.io.FileWriter("/home/m/re-tools/funs_range.txt")));
|
new java.io.FileWriter("/home/m/re-tools/funs_range.txt")));
|
||||||
long lo = 0x180500000L, hi = 0x180530000L;
|
long lo = 0x180520000L, hi = 0x180620000L;
|
||||||
while (it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
Function f = it.next();
|
Function f = it.next();
|
||||||
long off = f.getEntryPoint().getOffset();
|
long off = f.getEntryPoint().getOffset();
|
||||||
|
|||||||
+2
-2
@@ -8,7 +8,7 @@ import java.io.PrintWriter;
|
|||||||
public class SearchRefs extends GhidraScript {
|
public class SearchRefs extends GhidraScript {
|
||||||
@Override
|
@Override
|
||||||
public void run() throws Exception {
|
public void run() throws Exception {
|
||||||
String[] targets = {"180008140","180039b00","18003a2a0","18003b6c0","180034280","18003f1a0","18003f600","1800356f0","18052e130","18052df60"};
|
String[] targets = {"18052e260","180536300","180535880","180536f90","18052da00"};
|
||||||
AddressSpace as = currentProgram.getAddressFactory().getDefaultAddressSpace();
|
AddressSpace as = currentProgram.getAddressFactory().getDefaultAddressSpace();
|
||||||
PrintWriter pw = new PrintWriter(new java.io.BufferedWriter(
|
PrintWriter pw = new PrintWriter(new java.io.BufferedWriter(
|
||||||
new java.io.FileWriter("/home/m/re-tools/xrefs.txt")));
|
new java.io.FileWriter("/home/m/re-tools/xrefs.txt")));
|
||||||
@@ -18,7 +18,7 @@ public class SearchRefs extends GhidraScript {
|
|||||||
pw.println("### TARGET " + ts);
|
pw.println("### TARGET " + ts);
|
||||||
ReferenceIterator it = currentProgram.getReferenceManager().getReferencesTo(t);
|
ReferenceIterator it = currentProgram.getReferenceManager().getReferencesTo(t);
|
||||||
int n=0;
|
int n=0;
|
||||||
while (it.hasNext() && n<300) {
|
while (it.hasNext() && n<200) {
|
||||||
Reference r = it.next();
|
Reference r = it.next();
|
||||||
pw.println(" from " + r.getFromAddress() + " type=" + r.getReferenceType());
|
pw.println(" from " + r.getFromAddress() + " type=" + r.getReferenceType());
|
||||||
n++;
|
n++;
|
||||||
|
|||||||
@@ -0,0 +1,822 @@
|
|||||||
|
############ FUN_ 180541f20 size=5019 ############
|
||||||
|
|
||||||
|
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
|
||||||
|
/* WARNING: Type propagation algorithm not settling */
|
||||||
|
|
||||||
|
void FUN_180541f20(undefined8 *param_1,undefined8 param_2)
|
||||||
|
|
||||||
|
{
|
||||||
|
longlong ***ppplVar1;
|
||||||
|
char cVar2;
|
||||||
|
short sVar3;
|
||||||
|
short sVar4;
|
||||||
|
int iVar5;
|
||||||
|
uint uVar6;
|
||||||
|
undefined4 uVar7;
|
||||||
|
int iVar8;
|
||||||
|
undefined4 uVar9;
|
||||||
|
undefined4 uVar10;
|
||||||
|
longlong lVar11;
|
||||||
|
longlong lVar12;
|
||||||
|
longlong lVar13;
|
||||||
|
undefined8 uVar14;
|
||||||
|
ulonglong uVar15;
|
||||||
|
undefined8 *puVar16;
|
||||||
|
undefined8 uVar17;
|
||||||
|
void *pvVar18;
|
||||||
|
ulonglong uVar19;
|
||||||
|
uint uVar20;
|
||||||
|
uint *puVar21;
|
||||||
|
longlong ***_Memory;
|
||||||
|
longlong ***ppplVar22;
|
||||||
|
undefined1 *puVar23;
|
||||||
|
undefined8 *puVar24;
|
||||||
|
undefined1 auStack_338 [32];
|
||||||
|
undefined8 *local_318;
|
||||||
|
longlong local_310;
|
||||||
|
ulonglong local_308;
|
||||||
|
longlong local_300;
|
||||||
|
int local_2f8;
|
||||||
|
int local_2f4;
|
||||||
|
longlong ***local_2f0;
|
||||||
|
undefined2 local_2e8;
|
||||||
|
undefined2 local_2e6;
|
||||||
|
undefined2 local_2e4;
|
||||||
|
int local_2e0;
|
||||||
|
undefined2 local_2dc;
|
||||||
|
undefined8 *local_2d8;
|
||||||
|
uint local_2d0;
|
||||||
|
longlong ***local_2c8;
|
||||||
|
undefined1 *local_2c0;
|
||||||
|
undefined1 *local_2b8;
|
||||||
|
ulonglong local_2b0;
|
||||||
|
longlong local_2a8;
|
||||||
|
longlong local_2a0;
|
||||||
|
longlong local_298;
|
||||||
|
longlong local_290;
|
||||||
|
longlong local_288;
|
||||||
|
longlong local_280;
|
||||||
|
longlong local_278;
|
||||||
|
longlong local_270;
|
||||||
|
longlong local_268;
|
||||||
|
longlong local_260;
|
||||||
|
longlong local_258;
|
||||||
|
undefined8 local_250;
|
||||||
|
longlong local_248;
|
||||||
|
undefined8 local_240;
|
||||||
|
longlong local_238;
|
||||||
|
undefined8 local_230;
|
||||||
|
longlong local_228;
|
||||||
|
longlong local_220;
|
||||||
|
longlong ***local_218;
|
||||||
|
undefined8 local_210;
|
||||||
|
undefined8 local_208;
|
||||||
|
undefined8 local_200;
|
||||||
|
undefined8 local_1f8;
|
||||||
|
undefined8 local_1f0;
|
||||||
|
undefined8 local_1e8;
|
||||||
|
undefined8 ****local_1e0;
|
||||||
|
void *local_1d8;
|
||||||
|
undefined8 local_1d0;
|
||||||
|
void *local_1c8;
|
||||||
|
undefined8 local_1c0;
|
||||||
|
void *local_1b8;
|
||||||
|
undefined8 local_1b0;
|
||||||
|
void *local_1a8;
|
||||||
|
undefined8 local_1a0;
|
||||||
|
longlong local_198;
|
||||||
|
longlong local_190;
|
||||||
|
longlong local_188;
|
||||||
|
longlong local_180;
|
||||||
|
longlong local_178;
|
||||||
|
undefined8 local_170;
|
||||||
|
undefined8 local_168;
|
||||||
|
undefined8 local_160;
|
||||||
|
undefined8 local_158;
|
||||||
|
longlong local_150;
|
||||||
|
longlong local_148;
|
||||||
|
longlong local_140;
|
||||||
|
undefined8 local_138;
|
||||||
|
undefined8 local_130;
|
||||||
|
undefined8 local_128;
|
||||||
|
undefined8 local_120;
|
||||||
|
undefined8 local_118 [2];
|
||||||
|
longlong local_108 [6];
|
||||||
|
undefined8 local_d8;
|
||||||
|
undefined8 *local_d0;
|
||||||
|
undefined8 local_c8;
|
||||||
|
void *local_a0 [7];
|
||||||
|
undefined1 local_68 [16];
|
||||||
|
undefined1 local_58 [31];
|
||||||
|
undefined1 local_39;
|
||||||
|
ulonglong local_38 [2];
|
||||||
|
|
||||||
|
local_d8 = 0xfffffffffffffffe;
|
||||||
|
local_38[0] = DAT_182615970 ^ (ulonglong)auStack_338;
|
||||||
|
local_318 = param_1;
|
||||||
|
local_d0 = param_1;
|
||||||
|
FUN_18049c4e0(&local_150,"WAV file");
|
||||||
|
*param_1 = juce::AudioFormatReader::vftable;
|
||||||
|
uVar19 = 0;
|
||||||
|
param_1[1] = 0;
|
||||||
|
*(undefined4 *)(param_1 + 2) = 0;
|
||||||
|
param_1[3] = 0;
|
||||||
|
*(undefined4 *)(param_1 + 4) = 0;
|
||||||
|
*(undefined1 *)((longlong)param_1 + 0x24) = 0;
|
||||||
|
puVar24 = param_1 + 5;
|
||||||
|
*puVar24 = 0;
|
||||||
|
param_1[6] = 0;
|
||||||
|
param_1[7] = 0;
|
||||||
|
param_1[8] = 0;
|
||||||
|
*(undefined1 *)(param_1 + 9) = 1;
|
||||||
|
param_1[10] = param_2;
|
||||||
|
param_1[0xb] = local_150;
|
||||||
|
puVar21 = (uint *)(local_150 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*puVar21 = *puVar21 + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
local_2d8 = puVar24;
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*param_1 = juce::WavAudioFormatReader::vftable;
|
||||||
|
param_1[0xc] = 0;
|
||||||
|
param_1[0xd] = 0;
|
||||||
|
param_1[0xe] = 0;
|
||||||
|
param_1[0xf] = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x10) = 0;
|
||||||
|
*(undefined2 *)((longlong)param_1 + 0x84) = 0;
|
||||||
|
param_1[0x11] = 0;
|
||||||
|
param_1[0x14] = 4;
|
||||||
|
*(undefined4 *)(param_1 + 0x15) = 0xffffffff;
|
||||||
|
*(undefined1 *)((longlong)param_1 + 0xac) = 0;
|
||||||
|
param_1[0x12] = 0;
|
||||||
|
param_1[0x13] = 0;
|
||||||
|
local_2b0 = 0;
|
||||||
|
local_2f4 = 0;
|
||||||
|
local_2f8 = 0;
|
||||||
|
local_2e0 = 0;
|
||||||
|
local_130 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
if (iVar5 == 0x34364652) {
|
||||||
|
(**(code **)(*(longlong *)param_1[10] + 0xb8))((longlong *)param_1[10],4);
|
||||||
|
*(undefined1 *)((longlong)param_1 + 0x84) = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (iVar5 != 0x46464952) {
|
||||||
|
}
|
||||||
|
uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
uVar19 = (ulonglong)uVar6 + lVar11;
|
||||||
|
local_2b0 = uVar19;
|
||||||
|
}
|
||||||
|
lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
if (iVar5 == 0x45564157) {
|
||||||
|
if ((*(char *)((longlong)param_1 + 0x84) != '\0') &&
|
||||||
|
(iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))(), iVar5 == 0x34367364)) {
|
||||||
|
uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
if (uVar6 < 0x1c) {
|
||||||
|
}
|
||||||
|
lVar12 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
lVar13 = (**(code **)(*(longlong *)param_1[10] + 0x50))();
|
||||||
|
uVar19 = lVar11 + lVar13;
|
||||||
|
local_2b0 = uVar19;
|
||||||
|
uVar14 = (**(code **)(*(longlong *)param_1[10] + 0x50))();
|
||||||
|
param_1[0xf] = uVar14;
|
||||||
|
(**(code **)(*(longlong *)param_1[10] + 0xb0))
|
||||||
|
((longlong *)param_1[10],(ulonglong)(uVar6 & 1) + lVar12 + (ulonglong)uVar6);
|
||||||
|
}
|
||||||
|
uVar15 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
if (uVar15 < uVar19) {
|
||||||
|
do {
|
||||||
|
cVar2 = (**(code **)(*(longlong *)param_1[10] + 0x10))();
|
||||||
|
if (cVar2 != '\0') break;
|
||||||
|
iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
uVar19 = (ulonglong)uVar6;
|
||||||
|
lVar11 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
|
||||||
|
param_1 = local_318;
|
||||||
|
local_310 = (ulonglong)(uVar6 & 1) + lVar11 + (ulonglong)uVar6;
|
||||||
|
if (iVar5 == 0x20746d66) {
|
||||||
|
sVar3 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
sVar4 = (**(code **)(*(longlong *)param_1[10] + 0x30))();
|
||||||
|
*(int *)(param_1 + 4) = (int)sVar4;
|
||||||
|
iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
param_1[1] = (double)iVar5;
|
||||||
|
iVar5 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xb8))((longlong *)local_318[10],2);
|
||||||
|
sVar4 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
puVar24 = local_318;
|
||||||
|
uVar20 = (uint)sVar4;
|
||||||
|
*(uint *)(local_318 + 2) = uVar20;
|
||||||
|
if (uVar20 < 0x41) {
|
||||||
|
*(uint *)(local_318 + 0x10) = *(int *)(local_318 + 4) * uVar20 >> 3;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*(int *)(local_318 + 0x10) = iVar5 / (int)(double)local_318[1];
|
||||||
|
*(uint *)(local_318 + 2) =
|
||||||
|
(uint)((iVar5 / (int)(double)local_318[1]) * 8) / *(uint *)(local_318 + 4);
|
||||||
|
}
|
||||||
|
param_1 = local_318;
|
||||||
|
if (sVar3 == 3) {
|
||||||
|
*(undefined1 *)((longlong)local_318 + 0x24) = 1;
|
||||||
|
}
|
||||||
|
else if (sVar3 == -2) {
|
||||||
|
if (0x27 < uVar6) {
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xb8))((longlong *)local_318[10],4);
|
||||||
|
uVar7 = (**(code **)(*(longlong *)puVar24[10] + 0x40))();
|
||||||
|
FUN_18049c4e0(&local_2a0,"ChannelMask");
|
||||||
|
lVar11 = FUN_181233e10(local_38,uVar7);
|
||||||
|
FUN_180495150(&local_2a8,lVar11,&local_39 + -lVar11);
|
||||||
|
FUN_18122c880(puVar24 + 5,&local_2a0,&local_2a8);
|
||||||
|
puVar21 = (uint *)(local_2a8 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_2a0 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar16 = (undefined8 *)FUN_180543b30(local_a0,uVar7,*(undefined4 *)(puVar24 + 4));
|
||||||
|
local_c8 = puVar24[0x11];
|
||||||
|
puVar24[0x11] = *puVar16;
|
||||||
|
*puVar16 = local_c8;
|
||||||
|
uVar14 = puVar16[2];
|
||||||
|
puVar24[0x12] = puVar16[1];
|
||||||
|
puVar24[0x13] = uVar14;
|
||||||
|
puVar24[0x14] = puVar16[3];
|
||||||
|
*(undefined4 *)(puVar24 + 0x15) = *(undefined4 *)(puVar16 + 4);
|
||||||
|
*(undefined1 *)((longlong)puVar24 + 0xac) = *(undefined1 *)((longlong)puVar16 + 0x24);
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(local_a0[0]);
|
||||||
|
}
|
||||||
|
*(undefined4 *)(local_318 + 0x10) = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (((ushort)(sVar3 + 0x98b1U) < 3) || ((ushort)(sVar3 + 0x9891U) < 3)) {
|
||||||
|
*(undefined1 *)((longlong)local_318 + 0x85) = 1;
|
||||||
|
local_318[1] = 0;
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xb0))((longlong *)local_318[10],local_130);
|
||||||
|
}
|
||||||
|
if (sVar3 != 1) {
|
||||||
|
*(undefined4 *)(local_318 + 0x10) = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (iVar5 == 0x61746164) {
|
||||||
|
if (*(char *)((longlong)local_318 + 0x84) == '\0') {
|
||||||
|
local_318[0xf] = uVar19;
|
||||||
|
}
|
||||||
|
else if (0 < (longlong)local_318[0xf]) {
|
||||||
|
lVar11 = local_318[0xf];
|
||||||
|
lVar12 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
|
||||||
|
local_310 = (ulonglong)((uint)lVar11 & 1) + lVar12 + lVar11;
|
||||||
|
}
|
||||||
|
uVar14 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
param_1[0xe] = uVar14;
|
||||||
|
if (*(int *)(param_1 + 0x10) < 1) {
|
||||||
|
param_1[3] = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
param_1[3] = (longlong)param_1[0xf] / (longlong)*(int *)(param_1 + 0x10);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (iVar5 == 0x74786562) {
|
||||||
|
uVar14 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
|
||||||
|
param_1[0xc] = uVar14;
|
||||||
|
param_1[0xd] = uVar19;
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free((void *)0x0);
|
||||||
|
}
|
||||||
|
if (iVar5 == 0x6c706d73) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free((void *)0x0);
|
||||||
|
}
|
||||||
|
if ((iVar5 == 0x74736e69) || (iVar5 == 0x54534e49)) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free((void *)0x0);
|
||||||
|
}
|
||||||
|
if (iVar5 == 0x20657563) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free((void *)0x0);
|
||||||
|
}
|
||||||
|
if (iVar5 == 0x6c6d7861) {
|
||||||
|
local_1d8 = (void *)0x0;
|
||||||
|
local_1d0 = 0;
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xa0))
|
||||||
|
((longlong *)local_318[10],&local_1d8,uVar19);
|
||||||
|
if (local_1d8 != (void *)0x0) {
|
||||||
|
iVar5 = (int)local_1d0;
|
||||||
|
if (iVar5 < 0) {
|
||||||
|
FUN_18049c9e0(&local_2c0);
|
||||||
|
goto LAB_1805427be;
|
||||||
|
}
|
||||||
|
if (0 < iVar5) {
|
||||||
|
FUN_18124a8a0(&local_2c0,local_1d8,(longlong)iVar5 + (longlong)local_1d8);
|
||||||
|
goto LAB_1805427be;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
local_2c0 = &DAT_1821dbf98;
|
||||||
|
LAB_1805427be:
|
||||||
|
FUN_18136dab0(param_1 + 5,&local_2c0);
|
||||||
|
puVar21 = (uint *)(local_2c0 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(local_1d8);
|
||||||
|
}
|
||||||
|
if (iVar5 == 0x5453494c) {
|
||||||
|
iVar5 = (**(code **)(*(longlong *)local_318[10] + 0x40))();
|
||||||
|
if ((iVar5 == 0x6f666e69) || (iVar5 == 0x4f464e49)) {
|
||||||
|
FUN_18136e1e0(param_1 + 5,param_1[10],local_310);
|
||||||
|
}
|
||||||
|
else if ((iVar5 == 0x6c746461) &&
|
||||||
|
(lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))(), lVar11 < local_310))
|
||||||
|
{
|
||||||
|
do {
|
||||||
|
iVar8 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
uVar6 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
local_2d0 = uVar6;
|
||||||
|
local_140 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
iVar5 = local_2e0;
|
||||||
|
local_140 = local_140 + (ulonglong)((uVar6 & 1) + uVar6);
|
||||||
|
if ((iVar8 == 0x6c62616c) || (iVar8 == 0x65746f6e)) {
|
||||||
|
ppplVar22 = (longlong ***)&DAT_1821dbf98;
|
||||||
|
local_2f0 = (longlong ***)&DAT_1821dbf98;
|
||||||
|
if (iVar8 == 0x6c62616c) {
|
||||||
|
lVar11 = -1;
|
||||||
|
do {
|
||||||
|
lVar12 = lVar11;
|
||||||
|
lVar11 = lVar12 + 1;
|
||||||
|
} while ((&DAT_1821dbf99)[lVar12] != '\0');
|
||||||
|
FUN_1812342b0(&local_2f0,lVar12 + 9);
|
||||||
|
ppplVar22 = local_2f0;
|
||||||
|
puVar23 = (undefined1 *)((longlong)(int)(lVar12 + 1) + (longlong)local_2f0);
|
||||||
|
memcpy(puVar23,"CueLabel",8);
|
||||||
|
puVar23[8] = 0;
|
||||||
|
pvVar18 = (void *)FUN_181233e10(local_68,local_2f8);
|
||||||
|
uVar6 = (int)local_68 - (int)pvVar18;
|
||||||
|
local_308 = (ulonglong)uVar6;
|
||||||
|
if (0 < (int)uVar6) {
|
||||||
|
lVar11 = -1;
|
||||||
|
do {
|
||||||
|
lVar11 = lVar11 + 1;
|
||||||
|
} while (*(char *)((longlong)ppplVar22 + lVar11) != '\0');
|
||||||
|
FUN_1812342b0(&local_2f0,(int)uVar6 + lVar11);
|
||||||
|
ppplVar22 = local_2f0;
|
||||||
|
puVar23 = (undefined1 *)((longlong)(int)lVar11 + (longlong)local_2f0);
|
||||||
|
memcpy(puVar23,pvVar18,(longlong)(int)local_308);
|
||||||
|
puVar23[(int)local_308] = 0;
|
||||||
|
}
|
||||||
|
local_2f8 = local_2f8 + 1;
|
||||||
|
param_1 = local_318;
|
||||||
|
}
|
||||||
|
else if (iVar8 == 0x65746f6e) {
|
||||||
|
lVar11 = -1;
|
||||||
|
do {
|
||||||
|
lVar12 = lVar11;
|
||||||
|
lVar11 = lVar12 + 1;
|
||||||
|
} while ((&DAT_1821dbf99)[lVar12] != '\0');
|
||||||
|
FUN_1812342b0(&local_2f0,lVar12 + 8);
|
||||||
|
ppplVar22 = local_2f0;
|
||||||
|
puVar23 = (undefined1 *)((longlong)(int)(lVar12 + 1) + (longlong)local_2f0);
|
||||||
|
memcpy(puVar23,"CueNote",7);
|
||||||
|
puVar23[7] = 0;
|
||||||
|
pvVar18 = (void *)FUN_181233e10(local_58,local_2f4);
|
||||||
|
uVar6 = (int)local_58 - (int)pvVar18;
|
||||||
|
local_308 = (ulonglong)uVar6;
|
||||||
|
if (0 < (int)uVar6) {
|
||||||
|
lVar11 = -1;
|
||||||
|
do {
|
||||||
|
lVar11 = lVar11 + 1;
|
||||||
|
} while (*(char *)((longlong)ppplVar22 + lVar11) != '\0');
|
||||||
|
FUN_1812342b0(&local_2f0,(int)uVar6 + lVar11);
|
||||||
|
ppplVar22 = local_2f0;
|
||||||
|
puVar23 = (undefined1 *)((longlong)(int)lVar11 + (longlong)local_2f0);
|
||||||
|
memcpy(puVar23,pvVar18,(longlong)(int)local_308);
|
||||||
|
puVar23[(int)local_308] = 0;
|
||||||
|
}
|
||||||
|
local_2f4 = local_2f4 + 1;
|
||||||
|
param_1 = local_318;
|
||||||
|
}
|
||||||
|
uVar7 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
local_1c8 = (void *)0x0;
|
||||||
|
local_1c0 = 0;
|
||||||
|
(**(code **)(*(longlong *)param_1[10] + 0xa0))
|
||||||
|
((longlong *)param_1[10],&local_1c8,(longlong)(int)(local_2d0 - 4));
|
||||||
|
FUN_181211fd0(&local_220,uVar7);
|
||||||
|
ppplVar1 = ppplVar22 + -2;
|
||||||
|
if (((ulonglong)*ppplVar1 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(uint *)ppplVar1 = *(uint *)ppplVar1 + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
local_1e0 = &local_2c8;
|
||||||
|
local_2c8 = ppplVar22;
|
||||||
|
FUN_181232e20(&local_2c8,"Identifier","");
|
||||||
|
local_1e0 = (undefined8 ****)local_2c8;
|
||||||
|
ppplVar22 = local_2c8 + -2;
|
||||||
|
if (((ulonglong)*ppplVar22 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(uint *)ppplVar22 = *(uint *)ppplVar22 + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
_Memory = local_2c8 + -2;
|
||||||
|
if (((ulonglong)*_Memory & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *(uint *)_Memory;
|
||||||
|
*(uint *)_Memory = *(uint *)_Memory - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(_Memory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_18122c880(param_1 + 5,&local_1e0,&local_220);
|
||||||
|
if (((ulonglong)*ppplVar22 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *(uint *)ppplVar22;
|
||||||
|
*(uint *)ppplVar22 = *(uint *)ppplVar22 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(ppplVar22);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_220 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (local_1c8 != (void *)0x0) {
|
||||||
|
iVar5 = (int)local_1c0;
|
||||||
|
if (iVar5 < 0) {
|
||||||
|
FUN_18049c9e0(&local_2b8);
|
||||||
|
goto LAB_180543133;
|
||||||
|
}
|
||||||
|
if (0 < iVar5) {
|
||||||
|
FUN_18124a8a0(&local_2b8,local_1c8,(longlong)iVar5 + (longlong)local_1c8);
|
||||||
|
goto LAB_180543133;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
local_2b8 = &DAT_1821dbf98;
|
||||||
|
LAB_180543133:
|
||||||
|
local_218 = local_2f0;
|
||||||
|
if (((ulonglong)*ppplVar1 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(uint *)ppplVar1 = *(uint *)ppplVar1 + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_148,&local_218,&DAT_1824acc88);
|
||||||
|
FUN_18122c880(param_1 + 5,uVar14,&local_2b8);
|
||||||
|
puVar21 = (uint *)(local_148 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_2b8 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(local_1c8);
|
||||||
|
}
|
||||||
|
if (iVar8 == 0x7478746c) {
|
||||||
|
uVar14 = FUN_18124a960(local_108,local_2e0);
|
||||||
|
FUN_181246550(&local_300,"CueRegion",uVar14);
|
||||||
|
local_2e0 = iVar5 + 1;
|
||||||
|
puVar21 = (uint *)(local_108[0] + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
uVar7 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
uVar9 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
uVar10 = (**(code **)(*(longlong *)param_1[10] + 0x40))();
|
||||||
|
local_2dc = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
local_2e8 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
local_2e6 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
local_2e4 = (**(code **)(*(longlong *)local_318[10] + 0x30))();
|
||||||
|
local_1b8 = (void *)0x0;
|
||||||
|
local_1b0 = 0;
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xa0))
|
||||||
|
((longlong *)local_318[10],&local_1b8,(longlong)(int)(local_2d0 - 0x14))
|
||||||
|
;
|
||||||
|
FUN_181211fd0(&local_290,uVar7);
|
||||||
|
lVar11 = local_300;
|
||||||
|
local_298 = local_300;
|
||||||
|
if ((*(uint *)(local_300 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(local_300 + -0x10) = *(int *)(local_300 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_198,&local_298,"Identifier");
|
||||||
|
FUN_18122c880(local_2d8,uVar14,&local_290);
|
||||||
|
puVar21 = (uint *)(local_198 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_290 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_181211fd0(&local_280,uVar9);
|
||||||
|
local_288 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_190,&local_288,"SampleLength");
|
||||||
|
puVar24 = local_2d8;
|
||||||
|
FUN_18122c880(local_2d8,uVar14,&local_280);
|
||||||
|
puVar21 = (uint *)(local_190 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_280 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_181211fd0(&local_270,uVar10);
|
||||||
|
local_278 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_188,&local_278,"Purpose");
|
||||||
|
FUN_18122c880(puVar24,uVar14,&local_270);
|
||||||
|
puVar21 = (uint *)(local_188 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_270 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_181211fd0(&local_260,local_2dc);
|
||||||
|
local_268 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_180,&local_268,"Country");
|
||||||
|
FUN_18122c880(puVar24,uVar14,&local_260);
|
||||||
|
puVar21 = (uint *)(local_180 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
puVar21 = (uint *)(local_260 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_181211fd0(&local_250,local_2e8);
|
||||||
|
local_258 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_178,&local_258,"Language");
|
||||||
|
FUN_18122c880(puVar24,uVar14,&local_250);
|
||||||
|
puVar21 = (uint *)(local_178 + -0x10);
|
||||||
|
if ((*puVar21 & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
uVar6 = *puVar21;
|
||||||
|
*puVar21 = *puVar21 - 1;
|
||||||
|
UNLOCK();
|
||||||
|
if (uVar6 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(puVar21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FUN_180495200(local_250);
|
||||||
|
FUN_181211fd0(&local_240,local_2e6);
|
||||||
|
local_248 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_170,&local_248,"Dialect");
|
||||||
|
FUN_18122c880(puVar24,uVar14,&local_240);
|
||||||
|
FUN_180495200(local_170);
|
||||||
|
FUN_180495200(local_240);
|
||||||
|
FUN_181211fd0(&local_230,local_2e4);
|
||||||
|
local_238 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar14 = FUN_1812465e0(&local_168,&local_238,"CodePage");
|
||||||
|
FUN_18122c880(puVar24,uVar14,&local_230);
|
||||||
|
FUN_180495200(local_168);
|
||||||
|
FUN_180495200(local_230);
|
||||||
|
uVar14 = FUN_18123a690(&local_1b8,&local_158);
|
||||||
|
local_228 = local_300;
|
||||||
|
if ((*(uint *)(lVar11 + -0x10) & 0x30000000) == 0) {
|
||||||
|
LOCK();
|
||||||
|
*(int *)(lVar11 + -0x10) = *(int *)(lVar11 + -0x10) + 1;
|
||||||
|
UNLOCK();
|
||||||
|
}
|
||||||
|
uVar17 = FUN_1812465e0(&local_160,&local_228,&DAT_1824acc88);
|
||||||
|
FUN_18122c880(local_2d8,uVar17,uVar14);
|
||||||
|
FUN_180495200(local_160);
|
||||||
|
FUN_180495200(local_158);
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(local_1b8);
|
||||||
|
}
|
||||||
|
(**(code **)(*(longlong *)param_1[10] + 0xb0))((longlong *)param_1[10],local_140);
|
||||||
|
lVar11 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
} while (lVar11 < local_310);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (iVar5 == 0x64696361) {
|
||||||
|
local_108[1] = 0;
|
||||||
|
local_108[2] = 0;
|
||||||
|
local_108[3] = 0;
|
||||||
|
uVar20 = 0x18;
|
||||||
|
if (uVar19 < 0x18) {
|
||||||
|
uVar20 = uVar6;
|
||||||
|
}
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0x18))
|
||||||
|
((longlong *)local_318[10],local_108 + 1,uVar20);
|
||||||
|
FUN_180541960(local_108 + 1,param_1 + 5);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (iVar5 == 0x6e6b7254) {
|
||||||
|
local_1a8 = (void *)0x0;
|
||||||
|
local_1a0 = 0;
|
||||||
|
(**(code **)(*(longlong *)local_318[10] + 0xa0))
|
||||||
|
((longlong *)local_318[10],&local_1a8,uVar19);
|
||||||
|
FUN_18049c4e0(&local_210,"tracktion loop info");
|
||||||
|
uVar14 = FUN_18123a690(&local_1a8,&local_138);
|
||||||
|
FUN_18122c880(param_1 + 5,&local_210,uVar14);
|
||||||
|
FUN_180495200(local_138);
|
||||||
|
FUN_180495200(local_210);
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
free(local_1a8);
|
||||||
|
}
|
||||||
|
lVar11 = (**(code **)(*(longlong *)local_318[10] + 0xa8))();
|
||||||
|
if (local_310 <= lVar11) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
(**(code **)(*(longlong *)param_1[10] + 0xb0))((longlong *)param_1[10],local_310);
|
||||||
|
uVar19 = (**(code **)(*(longlong *)param_1[10] + 0xa8))();
|
||||||
|
} while (uVar19 < local_2b0);
|
||||||
|
iVar5 = local_2f8;
|
||||||
|
if (0 < local_2f8) {
|
||||||
|
FUN_18049c4e0(&local_208,"NumCueLabels");
|
||||||
|
uVar14 = FUN_18124a960(&local_128,iVar5);
|
||||||
|
FUN_18122c880(param_1 + 5,&local_208,uVar14);
|
||||||
|
FUN_180495200(local_128);
|
||||||
|
FUN_180495200(local_208);
|
||||||
|
}
|
||||||
|
iVar5 = local_2f4;
|
||||||
|
puVar24 = param_1 + 5;
|
||||||
|
if (0 < local_2f4) {
|
||||||
|
FUN_18049c4e0(&local_200,"NumCueNotes");
|
||||||
|
uVar14 = FUN_18124a960(&local_120,iVar5);
|
||||||
|
FUN_18122c880(puVar24,&local_200,uVar14);
|
||||||
|
FUN_180495200(local_120);
|
||||||
|
FUN_180495200(local_200);
|
||||||
|
}
|
||||||
|
iVar5 = local_2e0;
|
||||||
|
if (0 < local_2e0) {
|
||||||
|
FUN_18049c4e0(&local_1f8,"NumCueRegions");
|
||||||
|
uVar14 = FUN_18124a960(local_118,iVar5);
|
||||||
|
FUN_18122c880(puVar24,&local_1f8,uVar14);
|
||||||
|
FUN_180495200(local_118[0]);
|
||||||
|
FUN_180495200(local_1f8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (0 < *(int *)((longlong)puVar24 + 0xc)) {
|
||||||
|
FUN_18049c4e0(&local_1e8,&DAT_1824acfe4);
|
||||||
|
FUN_18049c4e0(&local_1f0,"MetaDataSource");
|
||||||
|
FUN_18122c880(puVar24,&local_1f0,&local_1e8);
|
||||||
|
FUN_180495200(local_1f0);
|
||||||
|
FUN_180495200(local_1e8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 18054f390 size=3435 ############
|
||||||
+195
-74
@@ -1,3 +1,113 @@
|
|||||||
|
############ FUN_ 18052da00 size=85 ############
|
||||||
|
|
||||||
|
void FUN_18052da00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)
|
||||||
|
|
||||||
|
{
|
||||||
|
int iVar1;
|
||||||
|
|
||||||
|
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
||||||
|
if (iVar1 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(param_2,param_3);
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 18052db50 size=104 ############
|
||||||
|
|
||||||
|
void FUN_18052db50(undefined8 param_1,undefined8 param_2,undefined4 param_3)
|
||||||
|
|
||||||
|
{
|
||||||
|
int iVar1;
|
||||||
|
|
||||||
|
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
||||||
|
if (iVar1 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(param_2);
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0((double)(float)param_2,param_1,param_3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 18052d990 size=97 ############
|
||||||
|
|
||||||
|
void FUN_18052d990(undefined8 param_1,undefined8 param_2,undefined4 param_3)
|
||||||
|
|
||||||
|
{
|
||||||
|
int iVar1;
|
||||||
|
|
||||||
|
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
||||||
|
if (iVar1 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0();
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(param_2,param_1,param_3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 18052dbc0 size=97 ############
|
||||||
|
|
||||||
|
void FUN_18052dbc0(undefined8 param_1,undefined8 param_2,undefined4 param_3)
|
||||||
|
|
||||||
|
{
|
||||||
|
int iVar1;
|
||||||
|
|
||||||
|
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
||||||
|
if (iVar1 == 0) {
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0();
|
||||||
|
}
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(param_2,param_1,param_3);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 180535880 size=283 ############
|
||||||
|
|
||||||
|
/* WARNING: Removing unreachable block (ram,0x000180535987) */
|
||||||
|
/* WARNING: Removing unreachable block (ram,0x0001805359d3) */
|
||||||
|
/* WARNING: Removing unreachable block (ram,0x00018053598d) */
|
||||||
|
|
||||||
|
void FUN_180535880(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
|
||||||
|
undefined4 param_5)
|
||||||
|
|
||||||
|
{
|
||||||
|
double *pdVar1;
|
||||||
|
double *pdVar2;
|
||||||
|
undefined1 auStack_c8 [32];
|
||||||
|
undefined8 local_a8;
|
||||||
|
float local_a0;
|
||||||
|
float local_9c;
|
||||||
|
float local_98;
|
||||||
|
float local_90;
|
||||||
|
float local_8c;
|
||||||
|
float local_88;
|
||||||
|
ulonglong local_80;
|
||||||
|
|
||||||
|
local_80 = DAT_182615970 ^ (ulonglong)auStack_c8;
|
||||||
|
pdVar1 = (double *)*param_3;
|
||||||
|
pdVar2 = (double *)param_3[1];
|
||||||
|
local_8c = (float)pdVar2[1];
|
||||||
|
local_9c = (float)pdVar1[1];
|
||||||
|
local_88 = (float)pdVar2[2];
|
||||||
|
local_a0 = (float)*pdVar1;
|
||||||
|
local_90 = (float)*pdVar2;
|
||||||
|
local_98 = (float)pdVar1[2];
|
||||||
|
local_a8 = param_4;
|
||||||
|
/* WARNING: Subroutine does not return */
|
||||||
|
thunk_FUN_181ba94b0(local_a0,param_2,param_5);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
############ FUN_ 180536f90 size=249 ############
|
############ FUN_ 180536f90 size=249 ############
|
||||||
|
|
||||||
/* WARNING: Removing unreachable block (ram,0x000180537079) */
|
/* WARNING: Removing unreachable block (ram,0x000180537079) */
|
||||||
@@ -48,80 +158,6 @@ void FUN_180536f90(undefined8 param_1,undefined8 param_2,undefined8 *param_3,und
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
############ FUN_ 180535880 size=283 ############
|
|
||||||
|
|
||||||
/* WARNING: Removing unreachable block (ram,0x000180535987) */
|
|
||||||
/* WARNING: Removing unreachable block (ram,0x0001805359d3) */
|
|
||||||
/* WARNING: Removing unreachable block (ram,0x00018053598d) */
|
|
||||||
|
|
||||||
void FUN_180535880(undefined8 param_1,undefined8 param_2,undefined8 *param_3,undefined8 param_4,
|
|
||||||
undefined4 param_5)
|
|
||||||
|
|
||||||
{
|
|
||||||
double *pdVar1;
|
|
||||||
double *pdVar2;
|
|
||||||
undefined1 auStack_c8 [32];
|
|
||||||
undefined8 local_a8;
|
|
||||||
float local_a0;
|
|
||||||
float local_9c;
|
|
||||||
float local_98;
|
|
||||||
float local_90;
|
|
||||||
float local_8c;
|
|
||||||
float local_88;
|
|
||||||
ulonglong local_80;
|
|
||||||
|
|
||||||
local_80 = DAT_182615970 ^ (ulonglong)auStack_c8;
|
|
||||||
pdVar1 = (double *)*param_3;
|
|
||||||
pdVar2 = (double *)param_3[1];
|
|
||||||
local_8c = (float)pdVar2[1];
|
|
||||||
local_9c = (float)pdVar1[1];
|
|
||||||
local_88 = (float)pdVar2[2];
|
|
||||||
local_a0 = (float)*pdVar1;
|
|
||||||
local_90 = (float)*pdVar2;
|
|
||||||
local_98 = (float)pdVar1[2];
|
|
||||||
local_a8 = param_4;
|
|
||||||
/* WARNING: Subroutine does not return */
|
|
||||||
thunk_FUN_181ba94b0(local_a0,param_2,param_5);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
############ FUN_ 18052da00 size=85 ############
|
|
||||||
|
|
||||||
void FUN_18052da00(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)
|
|
||||||
|
|
||||||
{
|
|
||||||
int iVar1;
|
|
||||||
|
|
||||||
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
|
||||||
if (iVar1 == 0) {
|
|
||||||
/* WARNING: Subroutine does not return */
|
|
||||||
thunk_FUN_181ba94b0(param_2,param_3);
|
|
||||||
}
|
|
||||||
/* WARNING: Subroutine does not return */
|
|
||||||
thunk_FUN_181ba94b0(param_2,(double)(float)param_3,param_1,param_4);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
############ FUN_ 18052d990 size=97 ############
|
|
||||||
|
|
||||||
void FUN_18052d990(undefined8 param_1,undefined8 param_2,undefined4 param_3)
|
|
||||||
|
|
||||||
{
|
|
||||||
int iVar1;
|
|
||||||
|
|
||||||
iVar1 = __std_type_info_compare(0x182650db8,0x182650db8);
|
|
||||||
if (iVar1 == 0) {
|
|
||||||
/* WARNING: Subroutine does not return */
|
|
||||||
thunk_FUN_181ba94b0();
|
|
||||||
}
|
|
||||||
/* WARNING: Subroutine does not return */
|
|
||||||
thunk_FUN_181ba94b0(param_2,param_1,param_3);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
############ FUN_ 18052da70 size=78 ############
|
############ FUN_ 18052da70 size=78 ############
|
||||||
|
|
||||||
void FUN_18052da70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)
|
void FUN_18052da70(undefined8 param_1,undefined8 param_2,undefined8 param_3,undefined4 param_4)
|
||||||
@@ -140,3 +176,88 @@ void FUN_18052da70(undefined8 param_1,undefined8 param_2,undefined8 param_3,unde
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
############ FUN_ 18052dd30 size=555 ############
|
||||||
|
|
||||||
|
void FUN_18052dd30(longlong param_1)
|
||||||
|
|
||||||
|
{
|
||||||
|
if ((0 < *(int *)(param_1 + 0x130)) && (*(longlong *)(param_1 + 0x128) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x128) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x130) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x120)) && (*(longlong *)(param_1 + 0x118) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x118) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x120) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x110)) && (*(longlong *)(param_1 + 0x108) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x108) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x110) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x100)) && (*(longlong *)(param_1 + 0xf8) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0xf8) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x100) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xf0)) && (*(longlong *)(param_1 + 0xe8) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0xe8) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xf0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xe0)) && (*(longlong *)(param_1 + 0xd8) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0xd8) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xe0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xd0)) && (*(longlong *)(param_1 + 200) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 200) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xd0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xc0)) && (*(longlong *)(param_1 + 0xb8) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0xb8) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xc0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xb0)) && (*(longlong *)(param_1 + 0xa8) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0xa8) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xb0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0xa0)) && (*(longlong *)(param_1 + 0x98) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x98) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0xa0) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x90)) && (*(longlong *)(param_1 + 0x88) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x88) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x90) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x80)) && (*(longlong *)(param_1 + 0x78) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x78) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x80) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x70)) && (*(longlong *)(param_1 + 0x68) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x68) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x70) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x60)) && (*(longlong *)(param_1 + 0x58) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x58) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x60) = 0;
|
||||||
|
if ((0 < *(int *)(param_1 + 0x50)) && (*(longlong *)(param_1 + 0x48) != 0)) {
|
||||||
|
FUN_1800010c0();
|
||||||
|
}
|
||||||
|
*(undefined8 *)(param_1 + 0x48) = 0;
|
||||||
|
*(undefined4 *)(param_1 + 0x50) = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
180536f90,180535880,18052da00,18052d990,18052da70
|
18052da00,18052db50,18052d990,18052dbc0,180535880,180536f90,18052da70,18052dd30
|
||||||
|
|||||||
+3769
-456
File diff suppressed because it is too large
Load Diff
+11
@@ -147,3 +147,14 @@
|
|||||||
- `FUN_180536300` (475): normalize `DAT_1824c4248/(freq)`, FUN_18052da00/db50/d990/dbc0 (smoothing),
|
- `FUN_180536300` (475): normalize `DAT_1824c4248/(freq)`, FUN_18052da00/db50/d990/dbc0 (smoothing),
|
||||||
FUN_180535880, FUN_180536f90 (249, detector update via dispatch).
|
FUN_180535880, FUN_180536f90 (249, detector update via dispatch).
|
||||||
- Param setup fns: FUN_18052e9b0 (3167), FUN_180529fe0 (2051) — float math on params (DAT_18262b700 block-sizes etc.).
|
- Param setup fns: FUN_18052e9b0 (3167), FUN_180529fe0 (2051) — float math on params (DAT_18262b700 block-sizes etc.).
|
||||||
|
|
||||||
|
### Audio chain (xrefs confirmed)
|
||||||
|
- Soothe2Module::processBlock (`0x18052b??` call at 18052b99c) -> **FUN_18052e260** (reads, calls block proc)
|
||||||
|
- -> **FUN_180536300(param_1+0x3d8, in, out, det, n)** (also called from 0x18058e3df)
|
||||||
|
- which calls: FUN_18052da00(normalize), FUN_18052db50(fill/0), **FUN_180535880**, **FUN_180536f90**,
|
||||||
|
FUN_18052d990, FUN_18052dbc0 (smoothed combine), FUN_18052db50.
|
||||||
|
- All small DSP ops = PACE stubs `__std_type_info_compare` + `thunk_FUN_181ba94b0` (dispatch).
|
||||||
|
- vftable SpectralProcessor = `PTR_FUN_182615990`; methods listed in rtti_dsp.json (many are ModuleDecryptor/PACE slots, NOT dsp).
|
||||||
|
- Param/curve generators (exp/log/pow/tan based, DAT_1824c4xxx): FUN_1805316e0 (6238), FUN_180529fe0 (2051), FUN_18052e9b0 (3167).
|
||||||
|
- Dispatch index global `DAT_1826159a0` written only in PACE wrappers 18000101b/180001046.
|
||||||
|
- big spectral-area functions are mostly param/memory/PACE; the real dsp sticks are dispatch kernels (245 targets).
|
||||||
|
|||||||
@@ -1,42 +1,21 @@
|
|||||||
### TARGET 180008140
|
### TARGET 18052e260
|
||||||
from 18267c6d8 type=DATA
|
from 18269df60 type=DATA
|
||||||
from 182615ef0 type=DATA
|
from 182532028 type=DATA
|
||||||
### TARGET 180039b00
|
from 182532084 type=DATA
|
||||||
from 18267d680 type=DATA
|
from 182532094 type=DATA
|
||||||
from 18258be04 type=DATA
|
from 18052b99c type=UNCONDITIONAL_CALL
|
||||||
from 18258be14 type=DATA
|
### TARGET 180536300
|
||||||
from 18000832e type=UNCONDITIONAL_CALL
|
from 18269e434 type=DATA
|
||||||
### TARGET 18003a2a0
|
from 182532b78 type=DATA
|
||||||
from 18267d6a4 type=DATA
|
from 182532b88 type=DATA
|
||||||
from 180008363 type=UNCONDITIONAL_CALL
|
from 18052e349 type=UNCONDITIONAL_CALL
|
||||||
from 18003b730 type=UNCONDITIONAL_CALL
|
from 18058e3df type=UNCONDITIONAL_CALL
|
||||||
from 18003f165 type=UNCONDITIONAL_CALL
|
### TARGET 180535880
|
||||||
### TARGET 18003b6c0
|
from 18269e3ec type=DATA
|
||||||
from 18267d6d4 type=DATA
|
from 180536446 type=UNCONDITIONAL_CALL
|
||||||
from 18000839b type=UNCONDITIONAL_CALL
|
### TARGET 180536f90
|
||||||
### TARGET 180034280
|
from 18269e458 type=DATA
|
||||||
from 18000804e type=UNCONDITIONAL_CALL
|
from 18053644d type=UNCONDITIONAL_CALL
|
||||||
from 180035787 type=UNCONDITIONAL_CALL
|
### TARGET 18052da00
|
||||||
from 18000834e type=UNCONDITIONAL_CALL
|
from 18269dec4 type=DATA
|
||||||
from 18003b707 type=UNCONDITIONAL_CALL
|
from 1805363ae type=UNCONDITIONAL_CALL
|
||||||
from 1800145f2 type=UNCONDITIONAL_CALL
|
|
||||||
from 1800682a7 type=UNCONDITIONAL_CALL
|
|
||||||
from 1800148f2 type=UNCONDITIONAL_CALL
|
|
||||||
from 18006ee67 type=UNCONDITIONAL_CALL
|
|
||||||
### TARGET 18003f1a0
|
|
||||||
from 18267d6ec type=DATA
|
|
||||||
from 1800083b1 type=UNCONDITIONAL_CALL
|
|
||||||
### TARGET 18003f600
|
|
||||||
from 18267d6f8 type=DATA
|
|
||||||
from 1800083c7 type=UNCONDITIONAL_CALL
|
|
||||||
### TARGET 1800356f0
|
|
||||||
from 18267d62c type=DATA
|
|
||||||
from 18258bdc8 type=DATA
|
|
||||||
from 180034370 type=CONDITIONAL_JUMP
|
|
||||||
### TARGET 18052e130
|
|
||||||
from 18269df3c type=DATA
|
|
||||||
from 18052970d type=UNCONDITIONAL_CALL
|
|
||||||
from 180530828 type=UNCONDITIONAL_CALL
|
|
||||||
### TARGET 18052df60
|
|
||||||
from 18269df30 type=DATA
|
|
||||||
from 180529a01 type=UNCONDITIONAL_CALL
|
|
||||||
|
|||||||
Reference in New Issue
Block a user