static int MAPCDSF_decodeTable2_Route4(MaiBitReader mbr0, MaiAT3PlusCoreDecoderChnInfo chn_info)
{
int rs = 0;
uint read_counter = chn_info.joint_chn_info.num_band_splited_used;
if (mbr0.getWithI32Buffer(1) != 0)
{
read_counter = (uint)mbr0.getWithI32Buffer(5);
}
for (uint a0 = 0; a0 < read_counter; a0++)
{
if (chn_info.check_table0[a0] == 1)
{
chn_info.table2[a0] = MAPCDSF_getHuffValue(MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table2_2[chn_info.joint_chn_info.var90], mbr0); //tmp4
chn_info.table2[a0] += chn_info.chn_ref.table2[a0];
chn_info.table2[a0] &= MaiAT3PlusCoreDecoder_StaticData.MAPCDSD_huff_table2_2[chn_info.joint_chn_info.var90].mask;
}
else if (chn_info.check_table0[a0] == 0) chn_info.table2[a0] = 0;
else if (chn_info.check_table0[a0] == 2) chn_info.table2[a0] = (uint)mbr0.getWithI32Buffer(1);
else
{
rs = -17;
break;
}
}
return rs;
}