Guest User

Untitled

a guest
Apr 23rd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. private int decode2 (ubyte[] input, ubyte* output)
  2. {
  3. uint fourbyte, i;
  4. auto t = _decodeTable.ptr;
  5. auto dst = output;
  6.  
  7. for (ubyte* p=input.ptr, e=p+input.length; p < e; ++p)
  8. {
  9. uint v = cast(uint) t[*p];
  10. if (v || *p == 'A')
  11. {
  12. fourbyte = (fourbyte << 8) | v;
  13. if ((++i & 0x03) is 0)
  14. {
  15. dst[0] = ((fourbyte << 2) & 0xff) | ((fourbyte >> 12) & 0x0f);
  16. dst[1] = ((fourbyte >> 4) & 0xf0) | ((fourbyte >> 18) & 0x3f);
  17. dst[2] = ((fourbyte >> 18) & 0xc0) | (fourbyte >> 24);
  18. fourbyte = 0;
  19. dst += 3;
  20. }
  21. }
  22. }
  23. return dst - output;
  24. }
Add Comment
Please, Sign In to add comment