static int makeSL128(MaiAT3PlusCoreDecoderChnACCTableTable acc, float* lo, int num0, int num1, int acc_4, int acc_360, int chn)
{
fixed (byte* table_tmp0_o = _makeSL128_table_tmp0_o)
fixed (byte* table_tmp1_o = _makeSL128_table_tmp1_o)
{
float* table_tmp0 = (float*)table_tmp0_o;
float* table_tmp1 = (float*)table_tmp1_o;
for (int a0 = 0; a0 < num1; a0++) lo[a0] = 0.0f;
if (acc_4 == 0)
{
for (int a0 = 0; a0 < acc.num_uk; a0++)
{
float l259 = table_tmp0[acc.ptr0[a0].unk0]
* table_tmp1[acc.ptr0[a0].unk1];
int atmp0 = acc.ptr0[a0].unk2;
atmp0 &= 0x1F;
atmp0 <<= 6;
int ctmp0 = num0 - 0x80;
ctmp0 *= acc.ptr0[a0].unk3;
ctmp0 += atmp0;
ctmp0 &= 0x7FF;
for (int a1 = 0; a1 < num1; a1++)
{
lo[a1] += l259 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_3[ctmp0];
ctmp0 += acc.ptr0[a0].unk3;
ctmp0 &= 0x7FF;
}
}
}
else
{
for (int a0 = 0; a0 < acc.num_uk; a0++)
{
float l259 = table_tmp0[acc.ptr0[a0].unk0];
int atmp0 = acc.ptr0[a0].unk2;
atmp0 &= 0x1F;
atmp0 <<= 6;
int ctmp0 = num0 - 0x80;
ctmp0 *= acc.ptr0[a0].unk3;
ctmp0 += atmp0;
ctmp0 &= 0x7FF;
for (int a1 = 0; a1 < num1; a1++)
{
lo[a1] += l259 * MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_table_static_3[ctmp0];
ctmp0 += acc.ptr0[a0].unk3;
ctmp0 &= 0x7FF;
}
}
}
if ((chn != 0) && (acc_360 != 0))
{
for (int a1 = 0; a1 < num1; a1++)
{
lo[a1] *= -1.0f;
}
}
float* l256 = stackalloc float[0x100];
{
for (int a0 = 0; a0 < 0x100; a0++) l256[a0] = 1.0f;
if (acc.unk[0] != 0)
{
for (int a0 = 0; a0 < acc.unk[2]; a0++) l256[a0] = 0.0f;
l256[acc.unk[2]] = 0.0f;
l256[acc.unk[2] + 1] = 0.1464233f;
l256[acc.unk[2] + 2] = 0.5f;
l256[acc.unk[2] + 3] = 0.8535767f;
}
if (acc.unk[1] != 0)
{
l256[acc.unk[3] - 4] = 0.8535767f;
l256[acc.unk[3] - 3] = 0.5f;
l256[acc.unk[3] - 2] = 0.1464233f;
l256[acc.unk[3] - 1] = 0.0f;
for (int a0 = acc.unk[3]; a0 < 0x100; a0++) l256[a0] = 0.0f;
}
}
for (int a1 = 0; a1 < num1; a1++)
{
lo[a1] *= l256[num0 + a1];
}
return 0;
}
}