public int decodeStream(uint chns)
{
int rs = 0;
float* mdata0_0 = stackalloc float[0x800];
float* mdata0_1 = stackalloc float[0x800];
float** mdata0_table = stackalloc float*[2];
mdata0_table[0] = mdata0_0;
mdata0_table[1] = mdata0_1;
{
MAPCDDF_initMDataTable(chn_info, mdata0_table, chns);//
if (true)
{
for (int a00 = 0; a00 < chns; a00++)
{
float** l2080 = stackalloc float*[0x10];
float* l2048 = stackalloc float[0x800];
for (int a0 = 0; a0 < 0x800; a0++) l2048[a0] = 0.0f;
for (int a0 = 0; a0 < 0x10; a0++)
{
l2080[a0] = &l2048[a0 * 0x80];
}
for (int a0 = 0; a0 < chn_info[0].joint_chn_info.num_band_declared; a0++)
{
chn_info[a00].acc_data_now.table[a0].acc_now =
chn_info[a00].acc_data_now.acc.data[a0];
}
{
float* l512 = stackalloc float[0x100];
float* l256 = stackalloc float[0x100];
for (int a0 = 0; a0 < chn_info[0].joint_chn_info.num_band_declared; a0++)
{
ManagedPointer<float> table_shita = null;
if ( chn_info[a00].acc_data_old.table[a0].acc_now
== 0)
{
if ( chn_info[a00].acc_data_now.table[a0].acc_now
== 0)
{
table_shita = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_1.GetPointer(0x000);
}
else
{
table_shita = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_1.GetPointer(0x100);
}
}
else
{
if ( chn_info[a00].acc_data_now.table[a0].acc_now
== 0)
{
table_shita = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_1.GetPointer(0x200);
}
else
{
table_shita = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_1.GetPointer(0x300);
}
}
{
float* stmp40 = stackalloc float[0x80];
for (uint a1 = 0; a1 < 0x40; a1++)
{
if ((a0 & 1) != 0)
{
stmp40[a1 * 2] = mdata0_table[a00][0x80 * a0 + a1 * 2] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin0[a1]
+ mdata0_table[a00][0x80 * a0 + 0x80 - a1 * 2 - 1] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos0[a1];
stmp40[a1 * 2 + 1] = mdata0_table[a00][0x80 * a0 + 0x80 - a1 * 2 - 1] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin0[a1]
- mdata0_table[a00][0x80 * a0 + a1 * 2] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos0[a1];
}
else
{
stmp40[a1 * 2] = mdata0_table[a00][0x80 * a0 + 0x80 - a1 * 2 - 1] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin0[a1]
+ mdata0_table[a00][0x80 * a0 + a1 * 2] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos0[a1];
stmp40[a1 * 2 + 1] = mdata0_table[a00][0x80 * a0 + a1 * 2] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin0[a1]
- mdata0_table[a00][0x80 * a0 + 0x80 - a1 * 2 - 1] * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos0[a1];
}
}
for (uint a2 = 0; a2 < 6; a2++)
{
for (uint a3 = 0; a3 < (1 << (int)a2); a3++)
{
uint base0 = (uint)((0x40 >> (int)a2));
uint base1 = (uint)((0x80 >> (int)a2) * a3);
for (uint a1 = 0; a1 < (0x20 >> (int)a2); a1++)
{
float ftmp0 = stmp40[base1 + a1 * 2 + 1] + stmp40[base1 + a1 * 2 + 1 + base0];
float ftmp1 = stmp40[base1 + a1 * 2] - stmp40[base1 + a1 * 2 + base0];
float ftmp2 = stmp40[base1 + a1 * 2 + 1] - stmp40[base1 + a1 * 2 + 1 + base0];
float ftmp3 = stmp40[base1 + a1 * 2] + stmp40[base1 + a1 * 2 + base0];
stmp40[base1 + a1 * 2] = ftmp3;
stmp40[base1 + a1 * 2 + 1] = ftmp0;
stmp40[base1 + a1 * 2 + base0] = ftmp2 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin1[a2 * 0x20 + a1]
+ ftmp1 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos1[a2 * 0x20 + a1];
stmp40[base1 + a1 * 2 + 1 + base0] = ftmp1 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_sin1[a2 * 0x20 + a1]
- ftmp2 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_cos1[a2 * 0x20 + a1];
}
}
}
for (uint a1 = 0; a1 < 0x40; a1++)
{
l512[a1] = stmp40[search_table_tmp0[a1]] * table_shita[a1];
l512[0xC0 + a1] = (-1.0f) * stmp40[search_table_tmp1[a1]] * table_shita[0xc0 + a1];
}
for (uint a1 = 0; a1 < 0x80; a1++)
{
l512[0x40 + a1] = (-1.0f) * stmp40[search_table_tmp2[0x80 - a1 - 1]] * table_shita[0x40 + a1];
}
}
if ( (chn_info[a00].acc_data_old.table[a0].num_acc != 0) || (chn_info[a00].acc_data_now.table[a0].num_acc != 0) )
{
int rt_3 = 0;
{
int* l63 = stackalloc int[0x40];
for (int a1 = 0; a1 < 0x40; a1++) l63[a1] = 0;
int dtmp0 = 0;
for (int a1 = 0; a1 < chn_info[a00].acc_data_now.table[a0].num_acc; a1++)
{
if (dtmp0 <= 0x20 +
chn_info[a00].acc_data_now.table[a0].data0[a1] )
{
for (int a2 = dtmp0; a2 < 0x20 + 0x1 +
chn_info[a00].acc_data_now.table[a0].data0[a1];
a2++)
{
l63[dtmp0++] = table_tmp4[chn_info[a00].acc_data_now.table[a0].data1[a1]];
}
}
}
int atmp5 = 0;
for (int a1 = 0; a1 < chn_info[a00].acc_data_old.table[a0].num_acc; a1++)
{
for (int a2 = atmp5; a2 < 0x1 +
chn_info[a00].acc_data_old.table[a0].data0[a1];
a2++)
{
l63[atmp5++] += table_tmp4[chn_info[a00].acc_data_old.table[a0].data1[a1]];
}
}
float l64 = 0.0f;
int ctmp1 = 0 - l63[0x3F];
if (ctmp1 >= 0)
{
l64 = (float)(1 << ctmp1);
}
else
{
l64 = 1.0f / (1 << l63[0x3F]);
}
int itmp1 = 0;
int dtmp1 = 0xFF;
int atmp1 = 0x100;
for (int a1 = 0x3f; a1 >= 0; a1--)
{
if (l63[a1] == itmp1)
{
l256[dtmp1--] = l64;
l256[dtmp1--] = l64;
l256[dtmp1--] = l64;
}
else
{
l64 = 0.0f;
if (atmp1 == 0x100)
{
atmp1 = dtmp1;
}
if (l63[a1] < itmp1)
{
int ctmp2 = 0 - l63[a1];
int itmp2 = itmp1 - l63[a1] - 1;
if (ctmp2 >= 0)
{
l64 = (float)(1 << ctmp2);
}
else
{
l64 = 1.0f / (1 << l63[a1]);
}
itmp2 *= 3;
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[itmp2];
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[itmp2 + 1];
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[itmp2 + 2];
}
else
{
int ctmp2 = 0 - itmp1;
int btmp_2 = l63[a1] - itmp1 - 1;
if (ctmp2 >= 0)
{
l64 = (float)(1 << ctmp2);
}
else
{
l64 = 1.0f / (1 << itmp1);
}
btmp_2 *= 3;
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[btmp_2 + 2];
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[btmp_2 + 1];
l256[dtmp1--] = l64 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_2[btmp_2];
ctmp2 = 0 - l63[a1];
if (ctmp2 >= 0)
{
l64 = (float)(1 << ctmp2);
}
else
{
l64 = 1.0f / (1 << l63[a1]);
}
}
itmp1 = l63[a1];
}
l256[dtmp1--] = l64;
}
rt_3 = atmp1;
if (rt_3 == 0x100) rt_3 = 0xFF;
}
for (int a1 = 0x80; a1 <= rt_3; a1++)
{
l512[a1] *= l256[a1];
}
for (int a1 = 0; a1 < 0x80; a1++)
{
l2080[a0][a1] = kyou_buf[a00][a0 * 0x80 + a1] + l512[a1] * l256[a1];
}
}
else
{
{
for (int a1 = 0; a1 < 0x80; a1++)
{
l2080[a0][a1] = kyou_buf[a00][a0 * 0x80 + a1] + l512[a1];
}
}
}
for (int a1 = 0; a1 < 0x80; a1++)
{
kyou_buf[a00][a0 * 0x80 + a1] = l512[0x80 + a1];
}
}
for (int a0 = (int)chn_info[0].joint_chn_info.num_band_declared; a0 < 0x10; a0++)
{
for (int a1 = 0; a1 < 0x80; a1++)
{
kyou_buf[a00][a0 * 0x80 + a1] = 0.0f;
}
}
}
{
if ( (chn_info[a00].acc_table_old.inner.unk0 != 0) || (chn_info[a00].acc_table_now.inner.unk0 != 0) )
{
for (int a0 = 0; a0 < 0x10; a0++)
{
{
if ( (chn_info[a00].acc_table_now.table[a0].unk[4] != 0) &&
( (chn_info[a00].acc_table_now.table[a0].unk[6])
< (chn_info[a00].acc_table_now.table[a0].unk[7]) )
)
{
chn_info[a00].acc_table_now.table[a0].unk[2] =
chn_info[a00].acc_table_now.table[a0].unk[6]
* 4
+ 0x80;
chn_info[a00].acc_table_now.table[a0].unk[0] = 1;
}
else
{
if ((chn_info[a00].acc_table_old.table[a0].unk[4]) == 0)
{
chn_info[a00].acc_table_now.table[a0].unk[2] = 0;
chn_info[a00].acc_table_now.table[a0].unk[0] = 0;
}
else
{
chn_info[a00].acc_table_now.table[a0].unk[2] =
chn_info[a00].acc_table_old.table[a0].unk[6]
* 4;
chn_info[a00].acc_table_now.table[a0].unk[0] = 1;
}
}
if ( (chn_info[a00].acc_table_old.table[a0].unk[5] != 0) && (
(chn_info[a00].acc_table_now.table[a0].unk[2]) <= (4 * (chn_info[a00].acc_table_old.table[a0].unk[7]) )
) )
{
chn_info[a00].acc_table_now.table[a0].unk[3] =
4 * (chn_info[a00].acc_table_old.table[a0].unk[7]);
chn_info[a00].acc_table_now.table[a0].unk[1] = 1;
}
else
{
if (chn_info[a00].acc_table_now.table[a0].unk[5] != 0)
{
chn_info[a00].acc_table_now.table[a0].unk[3] =
chn_info[a00].acc_table_now.table[a0].unk[7]
* 4
+ 0x80;
chn_info[a00].acc_table_now.table[a0].unk[1] = 1;
}
else
{
chn_info[a00].acc_table_now.table[a0].unk[3] = 0x100;
chn_info[a00].acc_table_now.table[a0].unk[1] = 0;
}
}
chn_info[a00].acc_table_now.table[a0].unk[3] += 4;
if ( (chn_info[a00].acc_table_now.table[a0].unk[3])
> 0x100)
{
chn_info[a00].acc_table_now.table[a0].unk[3] =
0x100;
}
}
if ( (chn_info[a00].acc_table_now.table[a0].num_uk != 0) || (chn_info[a00].acc_table_old.table[a0].num_uk != 0) )
{
float* l128 = stackalloc float[0x80];
{
MAPCDDF_makeL128(
chn_info[a00].acc_table_old.table[a0],
chn_info[a00].acc_table_old.inner.unk1,
chn_info[a00].acc_table_old.inner.table_unk1.data[a0],
chn_info[a00].acc_table_now.table[a0],
chn_info[a00].acc_table_now.inner.unk1,
chn_info[a00].acc_table_now.inner.table_unk1.data[a0],
l128,
a00
);
}
{
for (int a1 = 0; a1 < 0x80; a1++)
{
l2080[a0][a1] += l128[a1];
}
}
}
}
}
}
{
if (chn_info[0].joint_chn_info.var94 != 0)
{
float tmpf0 = (float)(1 << chn_info[0].joint_chn_info.var98);
for (int a0 = 0; a0 < 0x10; a0++)
{
for (int a1 = 0; a1 < 0x80; a1++)
{
// @TODO: Check
int index1 = table_59e660[chn_info[0].joint_chn_info.var9c];
//int index1 = table_59e660[chn_info[0].joint_chn_info.var9c % table_59e660.Length];
l2080[a0][a1] += MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_0[index1 + a1] * tmpf0;
}
chn_info[0].joint_chn_info.var9c++;
}
}
}
{
float[] buf_ctmp1 = syn_buf[a00];
float[] dst0 = dst_buf[a00];
for (int a0 = 0; a0 < 0x800; a0++) dst0[a0] = 0.0f;
for (int a0 = 0; a0 < 0x80; a0++)
{
float* stmp140 = stackalloc float[0x10];
float* stmp30 = stackalloc float[0x100];
ulong atmp0 = 0x55555556;
atmp0 *= (ulong)(a0 + c900);
uint atmp1 = (uint)(atmp0 >> 32);
atmp1 = (atmp1 >> 0x1F) + atmp1;
atmp1 *= 3;
uint mtmp0 = (uint)(c900 - atmp1 + a0);
for (int a1 = 0; a1 < 0x10; a1++)
{
stmp140[a1] = l2080[a1][a0] * table_626a90[a1];
}
for (int a1 = 0; a1 < 4; a1++)
{
stmp30[a1] = stmp140[a1] + stmp140[0x7 - a1] + stmp140[0x8 + a1] + stmp140[0xF - a1];
}
for (int a1 = 0; a1 < 4; a1++)
{
stmp30[0x4 + a1] = stmp140[a1] + stmp140[0xF - a1] - stmp140[0x7 - a1] - stmp140[0x8 + a1];
stmp30[0x4 + a1] *= table_626af0[a1];
}
for (int a1 = 0; a1 < 4; a1++)
{
stmp30[0xC + a1] = stmp140[0x7 - a1] - stmp140[0x8 + a1];
stmp30[0xC + a1] *= table_626ae0[3 - a1];
stmp30[0xC + a1] = (stmp140[a1] - stmp140[0xF - a1]) * table_626ad0[a1] - stmp30[0xC + a1];
stmp30[0xC + a1] *= table_626af0[a1];
}
for (int a1 = 0; a1 < 4; a1++)
{
stmp30[0x8 + a1] = stmp140[0x7 - a1] - stmp140[0x8 + a1];
stmp30[0x8 + a1] *= table_626ae0[3 - a1];
stmp30[0x8 + a1] = (stmp140[a1] - stmp140[0xF - a1]) * table_626ad0[a1] + stmp30[0x8 + a1];
}
float* locals = stackalloc float[0x100];
locals[72] = stmp30[0] + stmp30[1] + stmp30[2] + stmp30[3];
locals[72] *= 0.5f;
float* calc_buf = stackalloc float[0x100];
int calc_n = 0;
calc_buf[++calc_n] = stmp30[0] - stmp30[1] - stmp30[2] + stmp30[3];
calc_buf[calc_n] *= 0.7071068f;
calc_buf[++calc_n] = stmp30[0] - stmp30[3];
calc_buf[calc_n] *= 1.847759f;
calc_buf[++calc_n] = stmp30[1] - stmp30[2];
calc_buf[calc_n] *= 0.7653669f;
calc_buf[++calc_n] = 0.2071068f;
calc_buf[calc_n] *= calc_buf[calc_n - 2];
calc_buf[++calc_n] = 1.207107f;
calc_buf[calc_n] *= calc_buf[calc_n - 2];
calc_buf[calc_n - 1] -= calc_buf[calc_n];
calc_n--;
locals[20] = calc_buf[calc_n--];
calc_buf[++calc_n] = stmp30[4] - stmp30[7];
calc_buf[calc_n] *= 1.847759f;
calc_buf[++calc_n] = stmp30[5] - stmp30[6];
calc_buf[calc_n] *= 0.7653669f;
locals[30] = stmp30[4] + stmp30[5] + stmp30[6] + stmp30[7];
locals[30] *= 0.5f;
locals[26] = calc_buf[calc_n] + calc_buf[calc_n - 1];
locals[26] *= 0.5f;
locals[26] -= locals[30];
locals[22] = stmp30[4] - stmp30[5] - stmp30[6] + stmp30[7];
locals[22] *= 0.7071068f;
locals[22] -= locals[26];
calc_buf[calc_n] = calc_buf[calc_n - 1] * 0.2071068f - calc_buf[calc_n] * 1.207107f;
calc_buf[calc_n] -= locals[22];
locals[18] = calc_buf[calc_n--];
calc_n--;
calc_buf[++calc_n] = stmp30[8] + stmp30[9] + stmp30[10] + stmp30[11];
calc_buf[calc_n] *= 0.5f;
locals[71] = calc_buf[calc_n] - locals[72];
locals[70] = locals[30] - locals[71];
locals[36] = stmp30[8] - stmp30[9] - stmp30[10] + stmp30[11];
locals[36] *= 0.7071068f;
calc_buf[++calc_n] = stmp30[8] - stmp30[11];
calc_buf[calc_n] *= 1.847759f;
calc_buf[++calc_n] = stmp30[9] - stmp30[10];
calc_buf[calc_n] *= 0.7653669f;
calc_buf[++calc_n] = 0.2071068f;
calc_buf[calc_n] *= calc_buf[calc_n - 2];
calc_buf[++calc_n] = 1.207107f;
calc_buf[calc_n] *= calc_buf[calc_n - 2];
calc_buf[calc_n - 1] -= calc_buf[calc_n];
calc_n--;
locals[34] = calc_buf[calc_n--];
calc_buf[++calc_n] = stmp30[12] + stmp30[13] + stmp30[14] + stmp30[15];
calc_buf[calc_n] *= 0.5f;
calc_buf[calc_n] -= calc_buf[calc_n - 3];
locals[69] = calc_buf[calc_n] - locals[70];
locals[27] = (calc_buf[calc_n - 1] + calc_buf[calc_n - 2]) * 0.5f - calc_buf[calc_n];
calc_n -= 4;
locals[68] = (calc_buf[calc_n] + calc_buf[calc_n - 1]) * 0.5f - locals[69];
calc_n -= 2;
calc_buf[++calc_n] = stmp30[12] - stmp30[15];
calc_buf[calc_n] *= 1.847759f;
locals[67] = locals[27] - locals[68];
calc_buf[++calc_n] = stmp30[13] - stmp30[14];
calc_buf[calc_n] *= 0.7653669f;
locals[66] = locals[26] - locals[67];
locals[37] = calc_buf[calc_n] + calc_buf[calc_n - 1] - stmp30[12] - stmp30[13] - stmp30[14] - stmp30[15];
locals[37] *= 0.5f;
locals[35] = stmp30[12] - stmp30[13] - stmp30[14] + stmp30[15];
locals[35] *= 0.7071068f;
locals[35] -= locals[37];
calc_buf[calc_n - 1] *= 0.2071068f;
calc_buf[calc_n] *= 1.207107f;
calc_buf[calc_n - 1] -= calc_buf[calc_n];
calc_n--;
calc_buf[calc_n] -= locals[35];
calc_buf[++calc_n] = locals[37] - locals[27];
locals[65] = calc_buf[calc_n] - locals[66];
calc_buf[calc_n + 1] = calc_buf[calc_n];
calc_buf[calc_n] = calc_buf[calc_n - 2];
calc_buf[calc_n - 2] =calc_buf[calc_n + 1];
locals[64] = calc_buf[calc_n] - locals[65];
calc_n--;
calc_buf[calc_n - 1] = locals[36] - calc_buf[calc_n - 1];
locals[63] = calc_buf[calc_n - 1] - locals[64];
locals[62] = locals[22] - locals[63];
calc_buf[calc_n - 1] = locals[35] - calc_buf[calc_n - 1];
locals[61] = calc_buf[calc_n - 1] - locals[62];
locals[60] = locals[20] - locals[61];
calc_buf[calc_n - 1] = locals[34] - calc_buf[calc_n - 1];
locals[59] = calc_buf[calc_n - 1] - locals[60];
locals[58] = locals[18] - locals[59];
calc_buf[calc_n] -= calc_buf[calc_n - 1];
locals[57] = calc_buf[calc_n] - locals[58];
calc_n -= 2;
uint atmp2 = table_5b4050[mtmp0 + 0xF];
for (int a2 = 0; a2 < 0x10; a2++)
{
buf_ctmp1[atmp2 - 0xF + a2] = locals[57 + a2];
}
for (int a2 = 0; a2 < 4; a2++)
{
buf_ctmp1[table_5b4050[mtmp0] + 0x30 + a2] = buf_ctmp1[table_5b4050[mtmp0 + 0x12] + 0x4 + 3 - a2] * table_5b3ed0[a2] + table_5b3d50[a2] * buf_ctmp1[table_5b4050[mtmp0 + 3] + a2];
}
for (int a2 = 0; a2 < 4; a2++)
{
buf_ctmp1[table_5b4050[mtmp0 + 3] + 0x30 + a2] = buf_ctmp1[table_5b4050[mtmp0 + 0xF] - 3 + 3 - a2] * table_5b3ee0[3 - a2] - buf_ctmp1[table_5b4050[mtmp0 + 0x12] + a2] * table_5b3d60[3 - a2];
}
for (int a2 = 0; a2 < 4; a2++)
{
buf_ctmp1[table_5b4050[mtmp0] + 0x34 + a2] = buf_ctmp1[table_5b4050[mtmp0 + 0x12] + 3 - a2] * table_5b3ee0[a2] + buf_ctmp1[table_5b4050[mtmp0 + 3] + 4 + a2] * table_5b3d60[a2];
}
for (int a2 = 0; a2 < 4; a2++)
{
buf_ctmp1[table_5b4050[mtmp0 + 3] + 0x34 + a2] = buf_ctmp1[table_5b4050[mtmp0 + 0xF] - 7 + 3 - a2] * table_5b3ed0[3 - a2] - buf_ctmp1[table_5b4050[mtmp0 + 0x12] + 4 + a2] * table_5b3d50[3 - a2];
}
var table_5b4050_mtmp0_0 = table_5b4050[mtmp0 + 0x0];
var table_5b4050_mtmp0_3 = table_5b4050[mtmp0 + 0x3];
var table_5b4050_mtmp0_6 = table_5b4050[mtmp0 + 0x6];
var table_5b4050_mtmp0_9 = table_5b4050[mtmp0 + 0x9];
var table_5b4050_mtmp0_c = table_5b4050[mtmp0 + 0xC];
fixed (float* table_6 = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_6)
fixed (float* buf_ctmp1_ptr = buf_ctmp1)
fixed (float* dst0_ptr = dst0)
{
for (int a3 = 0; a3 < 10; a3++)
{
var a3_0x8 = a3 * 0x8;
var a3_0x30 = a3 * 0x30;
int a3_0x30_0x60 = 0x60 + a3_0x30;
// @TODO: VERY SLOW
for (int a2 = 0; a2 < 4; a2++)
{
buf_ctmp1_ptr[table_5b4050_mtmp0_0 + a3_0x30_0x60 + 0 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_0 + 0x60 + 0 + 0 + a3_0x30 - 0x30 + a2] + table_6[0 + 0 + a3_0x8 + a2] * buf_ctmp1_ptr[table_5b4050_mtmp0_c + 0x29 + 4 + 3 + a3_0x30 - a2];
buf_ctmp1_ptr[table_5b4050_mtmp0_3 + a3_0x30_0x60 + 0 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_9 + 0x29 + 4 + 3 + a3_0x30 - 0x00 - a2] * table_6[3 + 4 + a3_0x8 - a2] - buf_ctmp1_ptr[table_5b4050_mtmp0_6 + 0x30 + 0 + 0 + a3_0x30 + a2];
buf_ctmp1_ptr[table_5b4050_mtmp0_0 + a3_0x30_0x60 + 4 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_0 + 0x60 + 0 + 0 + a3_0x30 - 0x2C + a2] + table_6[0 + 4 + a3_0x8 + a2] * buf_ctmp1_ptr[table_5b4050_mtmp0_c + 0x29 + 0 + 3 + a3_0x30 - a2];
buf_ctmp1_ptr[table_5b4050_mtmp0_3 + a3_0x30_0x60 + 4 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_9 + 0x29 + 0 + 3 + a3_0x30 - 0x00 - a2] * table_6[3 + 0 + a3_0x8 - a2] - buf_ctmp1_ptr[table_5b4050_mtmp0_6 + 0x30 + 0 + 4 + a3_0x30 + a2];
}
}
// @TODO: SLOW
for (int a2 = 0; a2 < 4; a2++)
{
dst0_ptr[a0 * 0x10 + 0x0 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_c + 0x20D - 0 + 3 - a2] * table_6[0x50 + 0 + a2] + buf_ctmp1_ptr[table_5b4050_mtmp0_0 + 0x210 + 0 + a2];
dst0_ptr[a0 * 0x10 + 0x8 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_9 + 0x20D - 0 + 3 - a2] * table_6[0x54 + 3 - a2] - buf_ctmp1_ptr[table_5b4050_mtmp0_6 + 0x210 + 0 + a2];
dst0_ptr[a0 * 0x10 + 0x4 + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_c + 0x20D - 4 + 3 - a2] * table_6[0x54 + 0 + a2] + buf_ctmp1_ptr[table_5b4050_mtmp0_0 + 0x210 + 4 + a2];
dst0_ptr[a0 * 0x10 + 0xC + a2] = buf_ctmp1_ptr[table_5b4050_mtmp0_9 + 0x20D - 4 + 3 - a2] * table_6[0x50 + 3 - a2] - buf_ctmp1_ptr[table_5b4050_mtmp0_6 + 0x210 + 4 + a2];
}
}
}
}
}
}
}
c900--;
if (0 == c900) c900 = 3;
for (int a0 = 0; a0 < chns; a0++)
{
MaiAT3PlusCoreDecoderChnACCData ad0 = chn_info[a0].acc_data_now;
chn_info[a0].acc_data_now = chn_info[a0].acc_data_old;
chn_info[a0].acc_data_old = ad0;
MaiAT3PlusCoreDecoderChnACCTable at0 = chn_info[a0].acc_table_now;
chn_info[a0].acc_table_now = chn_info[a0].acc_table_old;
chn_info[a0].acc_table_old = at0;
}
return rs;
}