wdg_base32/include/decode/
decode.rs1pub fn b32_decode_1(ptr_input:*const u8,len_input:usize,ptr_alphabet:*const u8,ptr_output:*mut u8,len_pads:usize){
2 let mut ptr_data=ptr_input;
3 let mut len_data=len_input;
4 let mut ptr_out=ptr_output;
5 unsafe{
6 while len_data>8{
7 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
8 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
9 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6|
10 *ptr_alphabet.offset(*ptr_data.offset(2) as isize)<<1|
11 *ptr_alphabet.offset(*ptr_data.offset(3) as isize)>>4;
12 *ptr_out.offset(2)=*ptr_alphabet.offset(*ptr_data.offset(3) as isize)<<4|
13 *ptr_alphabet.offset(*ptr_data.offset(4) as isize)>>1;
14 *ptr_out.offset(3)=*ptr_alphabet.offset(*ptr_data.offset(4) as isize)<<7|
15 *ptr_alphabet.offset(*ptr_data.offset(5) as isize)<<2|
16 *ptr_alphabet.offset(*ptr_data.offset(6) as isize)>>3;
17 *ptr_out.offset(4)=*ptr_alphabet.offset(*ptr_data.offset(6) as isize)<<5|
18 *ptr_alphabet.offset(*ptr_data.offset(7) as isize)<<0;
19 ptr_out=ptr_out.offset(5);
20 ptr_data=ptr_data.offset(8);
21 len_data-=8;
22 }
23 if len_data==8{
24 if len_pads>0{
25 if len_pads>3{
26 if len_pads>5{
27 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
28 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
29 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6;
30 }else{
31 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
32 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
33 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6|
34 *ptr_alphabet.offset(*ptr_data.offset(2) as isize)<<1|
35 *ptr_alphabet.offset(*ptr_data.offset(3) as isize)>>4;
36 *ptr_out.offset(2)=*ptr_alphabet.offset(*ptr_data.offset(3) as isize)<<4;
37 }
38 }else{
39 if len_pads>2{
40 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
41 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
42 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6|
43 *ptr_alphabet.offset(*ptr_data.offset(2) as isize)<<1|
44 *ptr_alphabet.offset(*ptr_data.offset(3) as isize)>>4;
45 *ptr_out.offset(2)=*ptr_alphabet.offset(*ptr_data.offset(3) as isize)<<4|
46 *ptr_alphabet.offset(*ptr_data.offset(4) as isize)>>1;
47 *ptr_out.offset(3)=*ptr_alphabet.offset(*ptr_data.offset(4) as isize)<<7;
48 }else{
49 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
50 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
51 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6|
52 *ptr_alphabet.offset(*ptr_data.offset(2) as isize)<<1|
53 *ptr_alphabet.offset(*ptr_data.offset(3) as isize)>>4;
54 *ptr_out.offset(2)=*ptr_alphabet.offset(*ptr_data.offset(3) as isize)<<4|
55 *ptr_alphabet.offset(*ptr_data.offset(4) as isize)>>1;
56 *ptr_out.offset(3)=*ptr_alphabet.offset(*ptr_data.offset(4) as isize)<<7|
57 *ptr_alphabet.offset(*ptr_data.offset(5) as isize)<<2|
58 *ptr_alphabet.offset(*ptr_data.offset(6) as isize)>>3;
59 *ptr_out.offset(4)=*ptr_alphabet.offset(*ptr_data.offset(6) as isize)<<5;
60 }
61 }
62 }else{
63 *ptr_out.offset(0)=*ptr_alphabet.offset(*ptr_data.offset(0) as isize)<<3|
64 *ptr_alphabet.offset(*ptr_data.offset(1) as isize)>>2;
65 *ptr_out.offset(1)=*ptr_alphabet.offset(*ptr_data.offset(1) as isize)<<6|
66 *ptr_alphabet.offset(*ptr_data.offset(2) as isize)<<1|
67 *ptr_alphabet.offset(*ptr_data.offset(3) as isize)>>4;
68 *ptr_out.offset(2)=*ptr_alphabet.offset(*ptr_data.offset(3) as isize)<<4|
69 *ptr_alphabet.offset(*ptr_data.offset(4) as isize)>>1;
70 *ptr_out.offset(3)=*ptr_alphabet.offset(*ptr_data.offset(4) as isize)<<7|
71 *ptr_alphabet.offset(*ptr_data.offset(5) as isize)<<2|
72 *ptr_alphabet.offset(*ptr_data.offset(6) as isize)>>3;
73 *ptr_out.offset(4)=*ptr_alphabet.offset(*ptr_data.offset(6) as isize)<<5|
74 *ptr_alphabet.offset(*ptr_data.offset(7) as isize)<<0;
75 }
76 }
77 }
78}
79
80pub fn b32_decode_2(ptr_input:*const u8,len_input:usize,ptr_alphabet:*const u8,ptr_output:*mut u16,len_pads:usize){
81 let mut ptr_data=ptr_input;
82 let mut len_data=len_input;
83 let mut ptr_out=ptr_output;
84 unsafe{
85 while len_data > 16 {
86 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
87 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
88 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
89 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
90 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)<<12|
91 (*ptr_alphabet.offset(*ptr_data.offset(4) as isize) as u16)<<07|
92 (*ptr_alphabet.offset(*ptr_data.offset(5) as isize) as u16)<<02|
93 (*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)>>03;
94 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)<<13|
95 (*ptr_alphabet.offset(*ptr_data.offset(7) as isize) as u16)<<08|
96 (*ptr_alphabet.offset(*ptr_data.offset(8) as isize) as u16)<<03|
97 (*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)>>02;
98 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)<<14|
99 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u16)<<09|
100 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u16)<<04|
101 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u16)>>01;
102 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u16)<<15|
103 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u16)<<10|
104 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u16)<<05|
105 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u16)>>00;
106 ptr_out=ptr_out.offset(5);
107 ptr_data=ptr_data.offset(16);
108 len_data-=16;
109 }
110 if len_pads > 0 {
111 if len_pads > 3 {
112 if len_pads == 4 {
113 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
114 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
115 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
116 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
117 }else{
118 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
119 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
120 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
121 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
122 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)<<12|
123 (*ptr_alphabet.offset(*ptr_data.offset(4) as isize) as u16)<<07|
124 (*ptr_alphabet.offset(*ptr_data.offset(5) as isize) as u16)<<02|
125 (*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)>>03;
126 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)<<13|
127 (*ptr_alphabet.offset(*ptr_data.offset(7) as isize) as u16)<<08|
128 (*ptr_alphabet.offset(*ptr_data.offset(8) as isize) as u16)<<03|
129 (*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)>>02;
130 }
131 }else{
132 if len_pads == 1 {
133 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
134 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
135 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
136 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
137 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)<<12|
138 (*ptr_alphabet.offset(*ptr_data.offset(4) as isize) as u16)<<07|
139 (*ptr_alphabet.offset(*ptr_data.offset(5) as isize) as u16)<<02|
140 (*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)>>03;
141 }else{
142 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
143 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
144 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
145 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
146 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)<<12|
147 (*ptr_alphabet.offset(*ptr_data.offset(4) as isize) as u16)<<07|
148 (*ptr_alphabet.offset(*ptr_data.offset(5) as isize) as u16)<<02|
149 (*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)>>03;
150 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)<<13|
151 (*ptr_alphabet.offset(*ptr_data.offset(7) as isize) as u16)<<08|
152 (*ptr_alphabet.offset(*ptr_data.offset(8) as isize) as u16)<<03|
153 (*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)>>02;
154 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)<<14|
155 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u16)<<09|
156 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u16)<<04|
157 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u16)>>01;
158 }
159 }
160 }else{
161 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(0) as isize) as u16)<<11|
162 (*ptr_alphabet.offset(*ptr_data.offset(1) as isize) as u16)<<06|
163 (*ptr_alphabet.offset(*ptr_data.offset(2) as isize) as u16)<<01|
164 (*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)>>04;
165 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(3) as isize) as u16)<<12|
166 (*ptr_alphabet.offset(*ptr_data.offset(4) as isize) as u16)<<07|
167 (*ptr_alphabet.offset(*ptr_data.offset(5) as isize) as u16)<<02|
168 (*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)>>03;
169 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(6) as isize) as u16)<<13|
170 (*ptr_alphabet.offset(*ptr_data.offset(7) as isize) as u16)<<08|
171 (*ptr_alphabet.offset(*ptr_data.offset(8) as isize) as u16)<<03|
172 (*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)>>02;
173 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(9) as isize) as u16)<<14|
174 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u16)<<09|
175 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u16)<<04|
176 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u16)>>01;
177 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u16)<<15|
178 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u16)<<10|
179 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u16)<<05|
180 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u16)>>00;
181 }
182 }
183}
184
185pub fn b32_decode_4(ptr_input:*const u8,len_input:usize,ptr_alphabet:*const u8,ptr_output:*mut u32,len_pads:usize){
186 let mut ptr_data=ptr_input;
187 let mut len_data=len_input;
188 let mut ptr_out=ptr_output;
189 unsafe{
190 while len_data>32{
191 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
192 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
193 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
194 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
195 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
196 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
197 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
198 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)<<29|
199 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u32)<<24|
200 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u32)<<19|
201 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u32)<<14|
202 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u32)<<09|
203 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u32)<<04|
204 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)>>01;
205 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)<<31|
206 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u32)<<26|
207 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u32)<<21|
208 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u32)<<16|
209 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u32)<<11|
210 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u32)<<06|
211 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u32)<<01|
212 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)>>04;
213 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)<<28|
214 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u32)<<23|
215 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u32)<<18|
216 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u32)<<13|
217 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u32)<<08|
218 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u32)<<03|
219 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u32)>>02;
220 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u32)<<30|
221 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u32)<<25|
222 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u32)<<20|
223 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u32)<<15|
224 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u32)<<10|
225 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u32)<<05|
226 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u32)>>00;
227 len_data-=32;
228 ptr_data=ptr_data.offset(32);
229 ptr_out=ptr_out.offset(5);
230 }
231 if len_pads > 0 {
232 if len_pads > 3 {
233 if len_pads == 4 {
234 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
235 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
236 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
237 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
238 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
239 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
240 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
241 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)<<29|
242 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u32)<<24|
243 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u32)<<19|
244 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u32)<<14|
245 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u32)<<09|
246 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u32)<<04|
247 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)>>01;
248 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)<<31|
249 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u32)<<26|
250 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u32)<<21|
251 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u32)<<16|
252 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u32)<<11|
253 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u32)<<06|
254 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u32)<<01|
255 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)>>04;
256 }else{
257 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
258 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
259 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
260 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
261 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
262 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
263 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
264 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)<<29|
265 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u32)<<24|
266 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u32)<<19|
267 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u32)<<14|
268 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u32)<<09|
269 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u32)<<04|
270 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)>>01;
271 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)<<31|
272 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u32)<<26|
273 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u32)<<21|
274 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u32)<<16|
275 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u32)<<11|
276 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u32)<<06|
277 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u32)<<01|
278 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)>>04;
279 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)<<28|
280 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u32)<<23|
281 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u32)<<18|
282 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u32)<<13|
283 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u32)<<08|
284 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u32)<<03|
285 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u32)>>02;
286 }
287 }else{
288 if len_pads == 1 {
289 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
290 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
291 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
292 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
293 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
294 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
295 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
296
297 }else{
298 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
299 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
300 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
301 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
302 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
303 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
304 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
305 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)<<29|
306 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u32)<<24|
307 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u32)<<19|
308 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u32)<<14|
309 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u32)<<09|
310 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u32)<<04|
311 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)>>01;
312 }
313 }
314 }else{
315 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u32)<<27|
316 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u32)<<22|
317 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u32)<<17|
318 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u32)<<12|
319 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u32)<<07|
320 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u32)<<02|
321 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)>>03;
322 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u32)<<29|
323 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u32)<<24|
324 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u32)<<19|
325 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u32)<<14|
326 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u32)<<09|
327 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u32)<<04|
328 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)>>01;
329 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u32)<<31|
330 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u32)<<26|
331 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u32)<<21|
332 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u32)<<16|
333 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u32)<<11|
334 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u32)<<06|
335 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u32)<<01|
336 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)>>04;
337 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u32)<<28|
338 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u32)<<23|
339 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u32)<<18|
340 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u32)<<13|
341 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u32)<<08|
342 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u32)<<03|
343 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u32)>>02;
344 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u32)<<30|
345 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u32)<<25|
346 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u32)<<20|
347 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u32)<<15|
348 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u32)<<10|
349 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u32)<<05|
350 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u32)>>00;
351 }
352 }
353}
354
355pub fn b32_decode_8(ptr_input:*const u8,len_input:usize,ptr_alphabet:*const u8,ptr_output:*mut u64,len_pads:usize){
356 let mut ptr_data=ptr_input;
357 let mut len_data=len_input;
358 let mut ptr_out=ptr_output;
359 unsafe{
360 while len_data>64{
361 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
362 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
363 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
364 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
365 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
366 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
367 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
368 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
369 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
370 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
371 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
372 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
373 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
374 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)<<63|
375 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u64)<<58|
376 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u64)<<53|
377 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u64)<<48|
378 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u64)<<43|
379 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u64)<<38|
380 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u64)<<33|
381 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u64)<<28|
382 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u64)<<23|
383 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u64)<<18|
384 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u64)<<13|
385 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u64)<<08|
386 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u64)<<03|
387 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)>>02;
388 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)<<62|
389 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u64)<<57|
390 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u64)<<52|
391 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u64)<<47|
392 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u64)<<42|
393 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u64)<<37|
394 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u64)<<32|
395 (*ptr_alphabet.offset(*ptr_data.offset(32) as isize) as u64)<<27|
396 (*ptr_alphabet.offset(*ptr_data.offset(33) as isize) as u64)<<22|
397 (*ptr_alphabet.offset(*ptr_data.offset(34) as isize) as u64)<<17|
398 (*ptr_alphabet.offset(*ptr_data.offset(35) as isize) as u64)<<12|
399 (*ptr_alphabet.offset(*ptr_data.offset(36) as isize) as u64)<<07|
400 (*ptr_alphabet.offset(*ptr_data.offset(37) as isize) as u64)<<02|
401 (*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)>>03;
402 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)<<61|
403 (*ptr_alphabet.offset(*ptr_data.offset(39) as isize) as u64)<<56|
404 (*ptr_alphabet.offset(*ptr_data.offset(40) as isize) as u64)<<51|
405 (*ptr_alphabet.offset(*ptr_data.offset(41) as isize) as u64)<<46|
406 (*ptr_alphabet.offset(*ptr_data.offset(42) as isize) as u64)<<41|
407 (*ptr_alphabet.offset(*ptr_data.offset(43) as isize) as u64)<<36|
408 (*ptr_alphabet.offset(*ptr_data.offset(44) as isize) as u64)<<31|
409 (*ptr_alphabet.offset(*ptr_data.offset(45) as isize) as u64)<<26|
410 (*ptr_alphabet.offset(*ptr_data.offset(46) as isize) as u64)<<21|
411 (*ptr_alphabet.offset(*ptr_data.offset(47) as isize) as u64)<<16|
412 (*ptr_alphabet.offset(*ptr_data.offset(48) as isize) as u64)<<11|
413 (*ptr_alphabet.offset(*ptr_data.offset(49) as isize) as u64)<<06|
414 (*ptr_alphabet.offset(*ptr_data.offset(50) as isize) as u64)<<01|
415 (*ptr_alphabet.offset(*ptr_data.offset(51) as isize) as u64)>>04;
416 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(51) as isize) as u64)<<60|
417 (*ptr_alphabet.offset(*ptr_data.offset(52) as isize) as u64)<<55|
418 (*ptr_alphabet.offset(*ptr_data.offset(53) as isize) as u64)<<50|
419 (*ptr_alphabet.offset(*ptr_data.offset(54) as isize) as u64)<<45|
420 (*ptr_alphabet.offset(*ptr_data.offset(55) as isize) as u64)<<40|
421 (*ptr_alphabet.offset(*ptr_data.offset(56) as isize) as u64)<<35|
422 (*ptr_alphabet.offset(*ptr_data.offset(57) as isize) as u64)<<30|
423 (*ptr_alphabet.offset(*ptr_data.offset(58) as isize) as u64)<<25|
424 (*ptr_alphabet.offset(*ptr_data.offset(59) as isize) as u64)<<20|
425 (*ptr_alphabet.offset(*ptr_data.offset(60) as isize) as u64)<<15|
426 (*ptr_alphabet.offset(*ptr_data.offset(61) as isize) as u64)<<10|
427 (*ptr_alphabet.offset(*ptr_data.offset(62) as isize) as u64)<<05|
428 (*ptr_alphabet.offset(*ptr_data.offset(63) as isize) as u64)<<00;
429 len_data-=64;
430 ptr_data=ptr_data.offset(64);
431 ptr_out=ptr_out.offset(5);
432 }
433 if len_pads > 0 {
434 if len_pads > 3 {
435 if len_pads == 4 {
436 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
437 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
438 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
439 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
440 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
441 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
442 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
443 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
444 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
445 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
446 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
447 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
448 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
449 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)<<63|
450 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u64)<<58|
451 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u64)<<53|
452 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u64)<<48|
453 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u64)<<43|
454 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u64)<<38|
455 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u64)<<33|
456 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u64)<<28|
457 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u64)<<23|
458 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u64)<<18|
459 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u64)<<13|
460 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u64)<<08|
461 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u64)<<03|
462 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)>>02;
463 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)<<62|
464 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u64)<<57|
465 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u64)<<52|
466 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u64)<<47|
467 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u64)<<42|
468 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u64)<<37|
469 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u64)<<32|
470 (*ptr_alphabet.offset(*ptr_data.offset(32) as isize) as u64)<<27|
471 (*ptr_alphabet.offset(*ptr_data.offset(33) as isize) as u64)<<22|
472 (*ptr_alphabet.offset(*ptr_data.offset(34) as isize) as u64)<<17|
473 (*ptr_alphabet.offset(*ptr_data.offset(35) as isize) as u64)<<12|
474 (*ptr_alphabet.offset(*ptr_data.offset(36) as isize) as u64)<<07|
475 (*ptr_alphabet.offset(*ptr_data.offset(37) as isize) as u64)<<02|
476 (*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)>>03;
477 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)<<61|
478 (*ptr_alphabet.offset(*ptr_data.offset(39) as isize) as u64)<<56|
479 (*ptr_alphabet.offset(*ptr_data.offset(40) as isize) as u64)<<51|
480 (*ptr_alphabet.offset(*ptr_data.offset(41) as isize) as u64)<<46|
481 (*ptr_alphabet.offset(*ptr_data.offset(42) as isize) as u64)<<41|
482 (*ptr_alphabet.offset(*ptr_data.offset(43) as isize) as u64)<<36|
483 (*ptr_alphabet.offset(*ptr_data.offset(44) as isize) as u64)<<31|
484 (*ptr_alphabet.offset(*ptr_data.offset(45) as isize) as u64)<<26|
485 (*ptr_alphabet.offset(*ptr_data.offset(46) as isize) as u64)<<21|
486 (*ptr_alphabet.offset(*ptr_data.offset(47) as isize) as u64)<<16|
487 (*ptr_alphabet.offset(*ptr_data.offset(48) as isize) as u64)<<11|
488 (*ptr_alphabet.offset(*ptr_data.offset(49) as isize) as u64)<<06|
489 (*ptr_alphabet.offset(*ptr_data.offset(50) as isize) as u64)<<01|
490 (*ptr_alphabet.offset(*ptr_data.offset(51) as isize) as u64)>>04;
491 }else{
492 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
493 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
494 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
495 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
496 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
497 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
498 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
499 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
500 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
501 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
502 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
503 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
504 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
505 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)<<63|
506 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u64)<<58|
507 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u64)<<53|
508 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u64)<<48|
509 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u64)<<43|
510 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u64)<<38|
511 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u64)<<33|
512 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u64)<<28|
513 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u64)<<23|
514 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u64)<<18|
515 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u64)<<13|
516 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u64)<<08|
517 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u64)<<03|
518 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)>>02;
519 }
520 }else{
521 if len_pads == 1 {
522 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
523 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
524 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
525 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
526 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
527 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
528 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
529 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
530 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
531 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
532 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
533 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
534 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
535 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)<<63|
536 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u64)<<58|
537 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u64)<<53|
538 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u64)<<48|
539 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u64)<<43|
540 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u64)<<38|
541 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u64)<<33|
542 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u64)<<28|
543 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u64)<<23|
544 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u64)<<18|
545 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u64)<<13|
546 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u64)<<08|
547 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u64)<<03|
548 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)>>02;
549 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)<<62|
550 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u64)<<57|
551 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u64)<<52|
552 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u64)<<47|
553 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u64)<<42|
554 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u64)<<37|
555 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u64)<<32|
556 (*ptr_alphabet.offset(*ptr_data.offset(32) as isize) as u64)<<27|
557 (*ptr_alphabet.offset(*ptr_data.offset(33) as isize) as u64)<<22|
558 (*ptr_alphabet.offset(*ptr_data.offset(34) as isize) as u64)<<17|
559 (*ptr_alphabet.offset(*ptr_data.offset(35) as isize) as u64)<<12|
560 (*ptr_alphabet.offset(*ptr_data.offset(36) as isize) as u64)<<07|
561 (*ptr_alphabet.offset(*ptr_data.offset(37) as isize) as u64)<<02|
562 (*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)>>03;
563 }else{
564 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
565 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
566 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
567 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
568 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
569 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
570 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
571 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
572 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
573 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
574 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
575 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
576 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
577 }
578 }
579 }else{
580 *ptr_out.offset(0)=(*ptr_alphabet.offset(*ptr_data.offset(00) as isize) as u64)<<59|
581 (*ptr_alphabet.offset(*ptr_data.offset(01) as isize) as u64)<<54|
582 (*ptr_alphabet.offset(*ptr_data.offset(02) as isize) as u64)<<49|
583 (*ptr_alphabet.offset(*ptr_data.offset(03) as isize) as u64)<<44|
584 (*ptr_alphabet.offset(*ptr_data.offset(04) as isize) as u64)<<39|
585 (*ptr_alphabet.offset(*ptr_data.offset(05) as isize) as u64)<<34|
586 (*ptr_alphabet.offset(*ptr_data.offset(06) as isize) as u64)<<29|
587 (*ptr_alphabet.offset(*ptr_data.offset(07) as isize) as u64)<<24|
588 (*ptr_alphabet.offset(*ptr_data.offset(08) as isize) as u64)<<19|
589 (*ptr_alphabet.offset(*ptr_data.offset(09) as isize) as u64)<<14|
590 (*ptr_alphabet.offset(*ptr_data.offset(10) as isize) as u64)<<09|
591 (*ptr_alphabet.offset(*ptr_data.offset(11) as isize) as u64)<<04|
592 (*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)>>01;
593 *ptr_out.offset(1)=(*ptr_alphabet.offset(*ptr_data.offset(12) as isize) as u64)<<63|
594 (*ptr_alphabet.offset(*ptr_data.offset(13) as isize) as u64)<<58|
595 (*ptr_alphabet.offset(*ptr_data.offset(14) as isize) as u64)<<53|
596 (*ptr_alphabet.offset(*ptr_data.offset(15) as isize) as u64)<<48|
597 (*ptr_alphabet.offset(*ptr_data.offset(16) as isize) as u64)<<43|
598 (*ptr_alphabet.offset(*ptr_data.offset(17) as isize) as u64)<<38|
599 (*ptr_alphabet.offset(*ptr_data.offset(18) as isize) as u64)<<33|
600 (*ptr_alphabet.offset(*ptr_data.offset(19) as isize) as u64)<<28|
601 (*ptr_alphabet.offset(*ptr_data.offset(20) as isize) as u64)<<23|
602 (*ptr_alphabet.offset(*ptr_data.offset(21) as isize) as u64)<<18|
603 (*ptr_alphabet.offset(*ptr_data.offset(22) as isize) as u64)<<13|
604 (*ptr_alphabet.offset(*ptr_data.offset(23) as isize) as u64)<<08|
605 (*ptr_alphabet.offset(*ptr_data.offset(24) as isize) as u64)<<03|
606 (*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)>>02;
607 *ptr_out.offset(2)=(*ptr_alphabet.offset(*ptr_data.offset(25) as isize) as u64)<<62|
608 (*ptr_alphabet.offset(*ptr_data.offset(26) as isize) as u64)<<57|
609 (*ptr_alphabet.offset(*ptr_data.offset(27) as isize) as u64)<<52|
610 (*ptr_alphabet.offset(*ptr_data.offset(28) as isize) as u64)<<47|
611 (*ptr_alphabet.offset(*ptr_data.offset(29) as isize) as u64)<<42|
612 (*ptr_alphabet.offset(*ptr_data.offset(30) as isize) as u64)<<37|
613 (*ptr_alphabet.offset(*ptr_data.offset(31) as isize) as u64)<<32|
614 (*ptr_alphabet.offset(*ptr_data.offset(32) as isize) as u64)<<27|
615 (*ptr_alphabet.offset(*ptr_data.offset(33) as isize) as u64)<<22|
616 (*ptr_alphabet.offset(*ptr_data.offset(34) as isize) as u64)<<17|
617 (*ptr_alphabet.offset(*ptr_data.offset(35) as isize) as u64)<<12|
618 (*ptr_alphabet.offset(*ptr_data.offset(36) as isize) as u64)<<07|
619 (*ptr_alphabet.offset(*ptr_data.offset(37) as isize) as u64)<<02|
620 (*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)>>03;
621 *ptr_out.offset(3)=(*ptr_alphabet.offset(*ptr_data.offset(38) as isize) as u64)<<61|
622 (*ptr_alphabet.offset(*ptr_data.offset(39) as isize) as u64)<<56|
623 (*ptr_alphabet.offset(*ptr_data.offset(40) as isize) as u64)<<51|
624 (*ptr_alphabet.offset(*ptr_data.offset(41) as isize) as u64)<<46|
625 (*ptr_alphabet.offset(*ptr_data.offset(42) as isize) as u64)<<41|
626 (*ptr_alphabet.offset(*ptr_data.offset(43) as isize) as u64)<<36|
627 (*ptr_alphabet.offset(*ptr_data.offset(44) as isize) as u64)<<31|
628 (*ptr_alphabet.offset(*ptr_data.offset(45) as isize) as u64)<<26|
629 (*ptr_alphabet.offset(*ptr_data.offset(46) as isize) as u64)<<21|
630 (*ptr_alphabet.offset(*ptr_data.offset(47) as isize) as u64)<<16|
631 (*ptr_alphabet.offset(*ptr_data.offset(48) as isize) as u64)<<11|
632 (*ptr_alphabet.offset(*ptr_data.offset(49) as isize) as u64)<<06|
633 (*ptr_alphabet.offset(*ptr_data.offset(50) as isize) as u64)<<01|
634 (*ptr_alphabet.offset(*ptr_data.offset(51) as isize) as u64)>>04;
635 *ptr_out.offset(4)=(*ptr_alphabet.offset(*ptr_data.offset(51) as isize) as u64)<<60|
636 (*ptr_alphabet.offset(*ptr_data.offset(52) as isize) as u64)<<55|
637 (*ptr_alphabet.offset(*ptr_data.offset(53) as isize) as u64)<<50|
638 (*ptr_alphabet.offset(*ptr_data.offset(54) as isize) as u64)<<45|
639 (*ptr_alphabet.offset(*ptr_data.offset(55) as isize) as u64)<<40|
640 (*ptr_alphabet.offset(*ptr_data.offset(56) as isize) as u64)<<35|
641 (*ptr_alphabet.offset(*ptr_data.offset(57) as isize) as u64)<<30|
642 (*ptr_alphabet.offset(*ptr_data.offset(58) as isize) as u64)<<25|
643 (*ptr_alphabet.offset(*ptr_data.offset(59) as isize) as u64)<<20|
644 (*ptr_alphabet.offset(*ptr_data.offset(60) as isize) as u64)<<15|
645 (*ptr_alphabet.offset(*ptr_data.offset(61) as isize) as u64)<<10|
646 (*ptr_alphabet.offset(*ptr_data.offset(62) as isize) as u64)<<05|
647 (*ptr_alphabet.offset(*ptr_data.offset(63) as isize) as u64)<<00;
648 }
649 }
650}