static int MAPCDSF_decodeTable1_Route3(MaiBitReader mbr0, MaiAT3PlusCoreDecoderChnInfo chn_info)
{
int rs = 0;
int tmp3 = mbr0.getWithI32Buffer(2);
uint huff_table_type2 = (uint)mbr0.getWithI32Buffer(2);
if (tmp3 == 3)
{
chn_info.uk1c718 = mbr0.getWithI32Buffer(6);
chn_info.uk1c714 = mbr0.getWithI32Buffer(6);
MAPCDSF_initTable1(chn_info);
uint* table_tmp2x = stackalloc uint[0x40];
table_tmp2x[0] = (uint)mbr0.getWithI32Buffer(4);
table_tmp2x[0] -= 8;
table_tmp2x[0] &= 0x3F;
MaiAT3PlusCoreDecoderSearchTableDes huff_table_now = MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table1_2[huff_table_type2];
for (uint a0 = 1; a0 < chn_info.joint_chn_info.num_band_splited_used; a0++)
{
uint value_tmp = (uint)MAPCDSF_getHuffValue(huff_table_now, mbr0);
if ((value_tmp & 0x8) != 0) value_tmp |= 0xFFFFFFF0;
else value_tmp &= 0xF;
table_tmp2x[a0] = table_tmp2x[a0 - 1] + value_tmp;
table_tmp2x[a0] &= 0x3F;
}
for (uint a0 = 0; a0 < chn_info.joint_chn_info.num_band_splited_used; a0++)
{
chn_info.table1[a0] += table_tmp2x[a0];
chn_info.table1[a0] &= 0x3F;
}
}
else
{
chn_info.table1[0] = (uint)mbr0.getWithI32Buffer(6);
for (uint a0 = 1; a0 < chn_info.joint_chn_info.num_band_splited_used; a0++)
{
chn_info.table1[a0] = chn_info.table1[a0 - 1] + MAPCDSF_getHuffValue(MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table1[huff_table_type2], mbr0);
chn_info.table1[a0] &= 0x3F;
}
if (tmp3 != 0)
{
for (uint a0 = 0; a0 < chn_info.joint_chn_info.num_band_splited_used; a0++)
{
chn_info.table1[a0] -= MAPCDSF_decodeTable1_Route3_table_tmpx[(tmp3 - 1) * 0x20 + a0];
}
}
}
return rs;
}