Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private int decode2 (ubyte[] input, ubyte* output)
- {
- uint fourbyte, i;
- auto t = _decodeTable.ptr;
- auto dst = output;
- for (ubyte* p=input.ptr, e=p+input.length; p < e; ++p)
- {
- uint v = cast(uint) t[*p];
- if (v || *p == 'A')
- {
- fourbyte = (fourbyte << 8) | v;
- if ((++i & 0x03) is 0)
- {
- dst[0] = ((fourbyte << 2) & 0xff) | ((fourbyte >> 12) & 0x0f);
- dst[1] = ((fourbyte >> 4) & 0xf0) | ((fourbyte >> 18) & 0x3f);
- dst[2] = ((fourbyte >> 18) & 0xc0) | (fourbyte >> 24);
- fourbyte = 0;
- dst += 3;
- }
- }
- }
- return dst - output;
- }
Add Comment
Please, Sign In to add comment