- r2 = fn_598b4(r10_data, 0x04);
- r7 = r2 + 1;
- r6 = 0;
- while (r6 <= r7) {
- r2 = r6 + r11;
- r2 = r2 << 22;
- r2 = r2 >> 22;
- r4 = arr_59b64[r2];
- fn_5980c(r4, data_out);
- arr_59b64[r5] = r4;
- r2 = r5 + 1;
- r2 = r2 << 22;
- r2 = r2 >> 22;
- r5 = r2;
- r6++;
+ num = get_next_bits(data_in, 0x04) + 1;
+ for (i = 0; i <= num; i++) {
+ byte = buf[(offset + i) & 0x3ff];
+ write_byte(byte, data_out);
+ buf[pos] = byte;
+ pos = (pos + 1) & 0x3ff;