int MAPCDDF_initMDataTable(MaiAT3PlusCoreDecoderChnInfo[] chn_infos, float** pptablef0, uint chns)
{
fixed (uint* _table_tmp0 = table_tmp0_o)
fixed (uint* _table_tmp1 = table_tmp1_o)
fixed (uint* table_search0 = table_search0_o)
fixed (uint* table_search1 = table_search1_o)
{
var table_tmp0 = (float*)_table_tmp0;
var table_tmp1 = (float*)_table_tmp1;
int rs = 0;
short* l136 = stackalloc short[0x10];
{
short l0 = 0;
for (uint a00 = 0; a00 < chns; a00++)
{
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_splited_used; a0++)
{
l0 += (short)chn_infos[a00].table1[a0];
}
}
l0 &= 0x3fc;
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_used; a0++)
{
l136[a0] = l0;
l0 += 0x80;
l0 &= 0x3fc;
}
}
if (chns == 2)
{
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_splited_used; a0++)
{
if (chn_infos[1].table0[a0] == 0)
{
if (chn_infos[0].table0[a0] != 0)
{
for (uint a1 = 0; a1 < table_search1[a0]; a1++)
{
chn_infos[1].table3[table_search0[a0] + a1] =
chn_infos[0].table3[table_search0[a0] + a1];
}
chn_infos[1].table0[a0] = chn_infos[0].table0[a0];
}
}
}
}
for (int a00 = 0; a00 < chns; a00++)
{
var chn_infos_a00 = chn_infos[a00];
var pptablef0_a00 = pptablef0[a00];
fixed (uint* chn_infos_a00_table0 = chn_infos_a00.table0)
fixed (uint* chn_infos_a00_table1 = chn_infos_a00.table1)
fixed (short* chn_infos_a00_table3 = chn_infos_a00.table3)
{
for (uint a0 = 0; a0 < 0x800; a0++) pptablef0_a00[a0] = 0.0f;
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_splited_used; a0++)
{
if (chn_infos_a00_table0[a0] > 0)
{
for (uint a1 = 0; a1 < table_search1[a0]; a1++)
{
pptablef0_a00[table_search0[a0] + a1] = chn_infos_a00_table3[table_search0[a0] + a1] * table_tmp0[chn_infos_a00_table0[a0]] * table_tmp1[chn_infos_a00_table1[a0]];
}
}
}
}
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_used; a0++)
{
{
uint[] mtmp0;
MaiAT3PlusCoreDecoderChnACCData acc_data1;
MaiAT3PlusCoreDecoderChnACCData acc_data2;
if ((chn_infos[0].joint_chn_info.chns != 2) || (0 == chn_infos[0].joint_chn_info.table48.data[a0]))
{
mtmp0 = chn_infos[a00].table4;
acc_data1 = chn_infos[a00].acc_data_old;
acc_data2 = chn_infos[a00].acc_data_now;
}
else
{
if (a00 == 0)
{
mtmp0 = chn_infos[1].table4;
acc_data1 = chn_infos[1].acc_data_old;
acc_data2 = chn_infos[1].acc_data_now;//
}
else
{
mtmp0 = chn_infos[0].table4;
acc_data1 = chn_infos[0].acc_data_old;
acc_data2 = chn_infos[0].acc_data_now;//
}
}
if (table_tmp3[mtmp0[table_tmp2[a0]]] > 0.0f)
{
float* l127 = stackalloc float[0x80];
int arg3_1 = l136[a0];
for (uint a1 = 0; a1 < 0x80; a1++)
{
uint tmp0 = 0x38000000;
l127[a1] = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_0[arg3_1 & 0x3FF] * (*(float*)&tmp0);
arg3_1++;
}
int rt0 = 0;
{
int dl_0;
if (acc_data2.table[a0].num_acc <= 0) dl_0 = 0;
else dl_0 = 0 - MAPCDDF_initMDataTable_table_tmp4[acc_data2.table[a0].data1[0]];
int al_0 = 0;
for (int a1 = 0; a1 < acc_data1.table[a0].num_acc; a1++)
{
if (al_0 < (dl_0 - MAPCDDF_initMDataTable_table_tmp4[acc_data1.table[a0].data1[a1]]))
{
al_0 = (dl_0 - MAPCDDF_initMDataTable_table_tmp4[acc_data1.table[a0].data1[a1]]);
}
}
for (int a1 = 0; a1 < acc_data2.table[a0].num_acc; a1++)
{
if (al_0 < (0 - MAPCDDF_initMDataTable_table_tmp4[acc_data2.table[a0].data1[a1]]))
{
al_0 = (0 - MAPCDDF_initMDataTable_table_tmp4[acc_data2.table[a0].data1[a1]]);
}
}
rt0 = al_0;
}
int dtmp1 = (rt0 < 0) ? 0 : (1 << rt0);
float l128 = table_tmp3[mtmp0[table_tmp2[a0]]] / dtmp1;
for (uint a1 = MAPCDDF_initMDataTable_table_tmp5[a0]; a1 < MAPCDDF_initMDataTable_table_tmp6[a0]; a1++)
{
if (chn_infos[a00].table0[a1] > 0)
{
float l129 = table_tmp0[chn_infos[a00].table0[a1]]
* table_tmp1[chn_infos[a00].table1[a1]]
* l128
/ (1 << (int)chn_infos[a00].table0[a1]);
for (int a2 = (int)table_search0[a1], a3 = 0;
a2 < table_search0[a1 + 1];
a2++, a3++)
{
pptablef0[a00][a2] += l129 * l127[a3];
}
}
}
}
}
}
}
if (chns == 2)
{
for (uint a0 = 0; a0 < chn_infos[0].joint_chn_info.num_band_used; a0++)
{
if (chn_infos[0].joint_chn_info.table48.data[a0] == 1)
{
float* l128 = stackalloc float[0x80];
for (uint a1 = 0; a1 < 0x80; a1++) l128[a1] = pptablef0[0][a0 * 0x80 + a1];
for (uint a1 = 0; a1 < 0x80; a1++) pptablef0[0][a0 * 0x80 + a1] = pptablef0[1][a0 * 0x80 + a1];
for (uint a1 = 0; a1 < 0x80; a1++) pptablef0[1][a0 * 0x80 + a1] = l128[a1];
}
if (chn_infos[0].joint_chn_info.table00.data[a0] == 1)
{
for (uint a1 = MAPCDDF_initMDataTable_table_tmp7[a0]; a1 < MAPCDDF_initMDataTable_table_tmp7[a0 + 1]; a1++)
{
for (int a2 = (int)table_search0[a1]; a2 < table_search0[a1 + 1]; a2++)
{
pptablef0[1][a2] *= (-1.0f);
}
}
}
}
}
if (chn_infos[0].joint_chn_info.var118 == 1)
{
for (uint a0 = 0; a0 < 0x800; a0++) pptablef0[0][a0] = 0.0f;
for (uint a0 = 0; a0 < 0x800; a0++) pptablef0[1][a0] = 0.0f;
}
return rs;
}
}