1;hq3x filter
2;16bpp output
3;----------------------------------------------------------
4;Copyright (C) 2003 MaxSt ( maxst@hiend3d.com )
5;
6;This program is free software; you can redistribute it and/or
7;modify it under the terms of the GNU General Public License
8;as published by the Free Software Foundation; either
9;version 2 of the License, or (at your option) any later
10;version.
11;
12;This program is distributed in the hope that it will be useful,
13;but WITHOUT ANY WARRANTY; without even the implied warranty of
14;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15;GNU General Public License for more details.
16;
17;You should have received a copy of the GNU General Public License
18;along with this program; if not, write to the Free Software
19;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21GLOBAL _hq3x_16
22
23EXTERN _RGBtoYUV
24EXTERN _hqx_highbits
25EXTERN _hqx_lowbits
26EXTERN _hqx_low2bits
27EXTERN _hqx_low3bits
28EXTERN _hqx_greenMask
29EXTERN _hqx_redBlueMask
30EXTERN _hqx_green_redBlue_Mask
31
32SECTION .bss
33linesleft resd 1
34xcounter  resd 1
35cross     resd 1
36nextline  resd 1
37prevline  resd 1
38w1        resd 1
39w2        resd 1
40w3        resd 1
41w4        resd 1
42w5        resd 1
43w6        resd 1
44w7        resd 1
45w8        resd 1
46w9        resd 1
47
48tmpData        resd 1
49
50SECTION .data
51
52reg_blank    dd  0,0
53const7       dd  0x00070007,0x00000007
54threshold    dd  0x00300706,0x00000000
55moduloSrc    dd  0
56moduloDst    dd  0
57
58SECTION .text
59
60%macro TestDiff 2
61    xor     ecx,ecx
62    mov     edx,[%1]
63    cmp     edx,[%2]
64    je      %%fin
65    mov     ecx,[_RGBtoYUV]
66    movd    mm1,[ecx+edx*4]
67    movq    mm5,mm1
68    mov     edx,[%2]
69    movd    mm2,[ecx+edx*4]
70    psubusb mm1,mm2
71    psubusb mm2,mm5
72    por     mm1,mm2
73    psubusb mm1,[threshold]
74    movd    ecx,mm1
75%%fin:
76%endmacro
77
78%macro DiffOrNot 4
79   TestDiff %1,%2
80   test ecx,ecx
81   jz   %%same
82   %3
83   jmp %%fin
84%%same:
85   %4
86%%fin:
87%endmacro
88
89%macro DiffOrNot 6
90   TestDiff %1,%2
91   test ecx,ecx
92   jz   %%same
93   %3
94   %4
95   jmp %%fin
96%%same:
97   %5
98   %6
99%%fin:
100%endmacro
101
102%macro DiffOrNot 8
103   TestDiff %1,%2
104   test ecx,ecx
105   jz   %%same
106   %3
107   %4
108   %5
109   jmp %%fin
110%%same:
111   %6
112   %7
113   %8
114%%fin:
115%endmacro
116
117%macro DiffOrNot 10
118   TestDiff %1,%2
119   test ecx,ecx
120   jz %%same
121   %3
122   %4
123   %5
124   %6
125   jmp %%fin
126%%same:
127   %7
128   %8
129   %9
130   %10
131%%fin:
132%endmacro
133
134; interpolate16_3_1
135; Mix two pixels with weight 3 and 1, respectively: (c1*3+c2)/4;
136%macro Interp1 3
137    mov edx,%2
138    mov ecx,%3
139    and edx,[_hqx_highbits]
140    and ecx,[_hqx_highbits]
141    add ecx,edx
142    shr ecx,1
143    add ecx,[_hqx_lowbits]
144    and ecx,[_hqx_highbits]
145    add edx,ecx
146    shr edx,1
147    mov %1,dx
148%endmacro
149
150; interpolate16_2_1_1
151; Mix three pixels with weight 2, 1, and 1, respectively: (c1*2+c2+c3)/4;
152%macro Interp2 4
153    mov edx,%3
154    mov ecx,%4
155    and edx,[_hqx_highbits]
156    and ecx,[_hqx_highbits]
157    add ecx,edx
158    shr ecx,1
159    add ecx,[_hqx_lowbits]
160    mov edx,%2
161    and ecx,[_hqx_highbits]
162    and edx,[_hqx_highbits]
163    add edx,ecx
164    shr edx,1
165    mov %1,dx
166%endmacro
167
168; interpolate16_7_1
169; Mix two pixels with weight 7 and 1, respectively: (c1*7+c2)/8;
170%macro Interp3 2
171	; ((c1&kLowBitsMask)<<2)
172	mov ecx,eax
173	and ecx,[_hqx_lowbits]
174	shl ecx,2
175
176	; + ((c1&kLow2Bits)<<1)
177	mov edx,eax
178	and edx,[_hqx_low2bits]
179	lea ecx, [ecx + 2*edx]
180
181	; + (c1&kLow3Bits)
182	mov edx,eax
183	and edx,[_hqx_low3bits]
184	add ecx,edx
185
186	; + (c2&kLow3Bits)
187	mov edx,%2
188	and edx,[_hqx_low3bits]
189	add ecx,edx
190
191	; & kLow3Bits  -> ecx
192	and ecx,[_hqx_low3bits]
193
194	; compute ((c1*7+c2) - ecx) >> 3;
195	lea edx,[8*eax]
196	add ecx,eax
197	sub edx,ecx
198	mov ecx,%2
199	add edx,ecx
200	shr edx,3
201
202    mov %1,dx
203%endmacro
204
205; interpolate16_2_7_7
206; Mix three pixels with weight 2, 7, and 7, respectively: (c1*2+(c2+c3)*7)/16;
207%macro Interp4 3
208	; unpack c2 to edx
209	mov edx, %2
210	shl edx, 16
211	or  edx, %2
212	and edx, [_hqx_green_redBlue_Mask]
213
214	; unpack c3 to ecx
215	mov ecx, %3
216	shl ecx, 16
217	or  ecx, %3
218	and ecx, [_hqx_green_redBlue_Mask]
219
220	; sum c2 and c3 -> store in ecx
221	add ecx, edx
222
223	; multiply (c2+c3) by 7 -> store in edx
224	lea edx, [ecx*8]
225	sub edx, ecx
226
227	; unpack c1
228	mov ecx, eax
229	shl ecx, 16
230	or  ecx, eax
231	and ecx, [_hqx_green_redBlue_Mask]
232
233	; sum 2*c1 + 7*(c2+c3), divide by 16, mask the result
234	lea edx, [edx + 2*ecx]
235	shr edx, 4
236	and edx, [_hqx_green_redBlue_Mask]
237
238	; finally, repack the mixed pixel
239	mov ecx, edx
240	shr ecx, 16
241	or  edx, ecx
242
243    mov %1,  dx
244%endmacro
245
246; interpolate16_1_1
247; Mix two pixels with weight 1 and 1, respectively: (c1+c2)/2;
248%macro Interp5 3
249    mov edx,%2
250    mov ecx,%3
251
252    xor edx,ecx       ; xor pixels
253    mov [tmpData],edx ; store tmp result
254    xor edx,ecx       ; restore original value of edx (avoids a reload)
255    add edx,ecx       ; sum pixels
256    mov ecx,[tmpData]
257    and ecx,[_hqx_lowbits]
258    sub edx,ecx
259    shr edx,1
260    mov %1,dx
261%endmacro
262
263%macro PIXEL00_1M 0
264    Interp1 [edi],eax,[w1]
265%endmacro
266
267%macro PIXEL00_1U 0
268    Interp1 [edi],eax,[w2]
269%endmacro
270
271%macro PIXEL00_1L 0
272    Interp1 [edi],eax,[w4]
273%endmacro
274
275%macro PIXEL00_2 0
276    Interp2 [edi],eax,[w4],[w2]
277%endmacro
278
279%macro PIXEL00_4 0
280    Interp4 [edi],[w4],[w2]
281%endmacro
282
283%macro PIXEL00_5 0
284    Interp5 [edi],[w4],[w2]
285%endmacro
286
287%macro PIXEL00_C 0
288    mov [edi],ax
289%endmacro
290
291%macro PIXEL01_1 0
292    Interp1 [edi+2],eax,[w2]
293%endmacro
294
295%macro PIXEL01_3 0
296    Interp3 [edi+2],[w2]
297%endmacro
298
299%macro PIXEL01_6 0
300    Interp1 [edi+2],[w2],eax
301%endmacro
302
303%macro PIXEL01_C 0
304    mov [edi+2],ax
305%endmacro
306
307%macro PIXEL02_1M 0
308    Interp1 [edi+4],eax,[w3]
309%endmacro
310
311%macro PIXEL02_1U 0
312    Interp1 [edi+4],eax,[w2]
313%endmacro
314
315%macro PIXEL02_1R 0
316    Interp1 [edi+4],eax,[w6]
317%endmacro
318
319%macro PIXEL02_2 0
320    Interp2 [edi+4],eax,[w2],[w6]
321%endmacro
322
323%macro PIXEL02_4 0
324    Interp4 [edi+4],[w2],[w6]
325%endmacro
326
327%macro PIXEL02_5 0
328    Interp5 [edi+4],[w2],[w6]
329%endmacro
330
331%macro PIXEL02_C 0
332    mov [edi+4],ax
333%endmacro
334
335%macro PIXEL10_1 0
336    Interp1 [edi+ebx],eax,[w4]
337%endmacro
338
339%macro PIXEL10_3 0
340    Interp3 [edi+ebx],[w4]
341%endmacro
342
343%macro PIXEL10_6 0
344    Interp1 [edi+ebx],[w4],eax
345%endmacro
346
347%macro PIXEL10_C 0
348    mov [edi+ebx],ax
349%endmacro
350
351%macro PIXEL11 0
352    mov [edi+ebx+2],ax
353%endmacro
354
355%macro PIXEL12_1 0
356    Interp1 [edi+ebx+4],eax,[w6]
357%endmacro
358
359%macro PIXEL12_3 0
360    Interp3 [edi+ebx+4],[w6]
361%endmacro
362
363%macro PIXEL12_6 0
364    Interp1 [edi+ebx+4],[w6],eax
365%endmacro
366
367%macro PIXEL12_C 0
368    mov [edi+ebx+4],ax
369%endmacro
370
371%macro PIXEL20_1M 0
372    Interp1 [edi+ebx*2],eax,[w7]
373%endmacro
374
375%macro PIXEL20_1D 0
376    Interp1 [edi+ebx*2],eax,[w8]
377%endmacro
378
379%macro PIXEL20_1L 0
380    Interp1 [edi+ebx*2],eax,[w4]
381%endmacro
382
383%macro PIXEL20_2 0
384    Interp2 [edi+ebx*2],eax,[w8],[w4]
385%endmacro
386
387%macro PIXEL20_4 0
388    Interp4 [edi+ebx*2],[w8],[w4]
389%endmacro
390
391%macro PIXEL20_5 0
392    Interp5 [edi+ebx*2],[w8],[w4]
393%endmacro
394
395%macro PIXEL20_C 0
396    mov [edi+ebx*2],ax
397%endmacro
398
399%macro PIXEL21_1 0
400    Interp1 [edi+ebx*2+2],eax,[w8]
401%endmacro
402
403%macro PIXEL21_3 0
404    Interp3 [edi+ebx*2+2],[w8]
405%endmacro
406
407%macro PIXEL21_6 0
408    Interp1 [edi+ebx*2+2],[w8],eax
409%endmacro
410
411%macro PIXEL21_C 0
412    mov [edi+ebx*2+2],ax
413%endmacro
414
415%macro PIXEL22_1M 0
416    Interp1 [edi+ebx*2+4],eax,[w9]
417%endmacro
418
419%macro PIXEL22_1D 0
420    Interp1 [edi+ebx*2+4],eax,[w8]
421%endmacro
422
423%macro PIXEL22_1R 0
424    Interp1 [edi+ebx*2+4],eax,[w6]
425%endmacro
426
427%macro PIXEL22_2 0
428    Interp2 [edi+ebx*2+4],eax,[w6],[w8]
429%endmacro
430
431%macro PIXEL22_4 0
432    Interp4 [edi+ebx*2+4],[w6],[w8]
433%endmacro
434
435%macro PIXEL22_5 0
436    Interp5 [edi+ebx*2+4],[w6],[w8]
437%endmacro
438
439%macro PIXEL22_C 0
440    mov [edi+ebx*2+4],ax
441%endmacro
442
443inbuffer     equ 8
444outbuffer    equ 12
445Xres         equ 16
446Yres         equ 20
447srcPitch     equ 24
448dstPitch     equ 28
449
450_hq3x_16:
451    push ebp
452    mov ebp,esp
453    pushad
454
455    mov     esi,[ebp+inbuffer]
456    mov     edi,[ebp+outbuffer]
457    mov     edx,[ebp+Yres]
458    mov     [linesleft],edx
459    mov     ecx,[ebp+Xres]
460    shl     ecx,1
461    mov     ebx,[ebp+dstPitch]
462    mov     dword[moduloDst],ebx
463    sub     dword[moduloDst],ecx
464    mov     ecx,dword[moduloDst]
465    shl     dword[moduloDst],1
466    add     dword[moduloDst],ecx
467    mov     ecx,[ebp+Xres]
468    shl     ecx,1
469    mov     ebx,[ebp+srcPitch]
470    mov     dword[nextline],ebx
471    mov     dword[moduloSrc],ebx
472    sub     dword[moduloSrc],ecx
473    neg     ebx
474    mov     dword[prevline],ebx
475.loopy:
476    mov     ecx,[ebp+Xres]
477    mov     dword[xcounter],ecx
478.loopx:
479    mov     ebx,[prevline]
480    movq    mm5,[esi+ebx-2]
481    movq    mm6,[esi-2]
482    mov     ebx,[nextline]
483    movq    mm7,[esi+ebx-2]
484    movd    eax,mm5
485    movzx   edx,ax
486    mov     [w1],edx
487    shr     eax,16
488    mov     [w2],eax
489    psrlq   mm5,32
490    movd    eax,mm5
491    movzx   edx,ax
492    mov     [w3],edx
493    movd    eax,mm6
494    movzx   edx,ax
495    mov     [w4],edx
496    shr     eax,16
497    mov     [w5],eax
498    psrlq   mm6,32
499    movd    eax,mm6
500    movzx   edx,ax
501    mov     [w6],edx
502    movd    eax,mm7
503    movzx   edx,ax
504    mov     [w7],edx
505    shr     eax,16
506    mov     [w8],eax
507    psrlq   mm7,32
508    movd    eax,mm7
509    movzx   edx,ax
510    mov     [w9],edx
511.flags:
512    mov     ebx,[_RGBtoYUV]
513    mov     eax,[w5]
514    xor     ecx,ecx
515    movd    mm5,[ebx+eax*4]
516    mov     dword[cross],0
517
518    mov     edx,[w2]
519    cmp     eax,edx
520    je      .noflag2
521    or      dword[cross],1
522    movq    mm1,mm5
523    movd    mm2,[ebx+edx*4]
524    psubusb mm1,mm2
525    psubusb mm2,mm5
526    por     mm1,mm2
527    psubusb mm1,[threshold]
528    movd    edx,mm1
529    test    edx,edx
530    jz      .noflag2
531    or      ecx,2
532.noflag2:
533    mov     edx,[w4]
534    cmp     eax,edx
535    je      .noflag4
536    or      dword[cross],2
537    movq    mm1,mm5
538    movd    mm2,[ebx+edx*4]
539    psubusb mm1,mm2
540    psubusb mm2,mm5
541    por     mm1,mm2
542    psubusb mm1,[threshold]
543    movd    edx,mm1
544    test    edx,edx
545    jz      .noflag4
546    or      ecx,8
547.noflag4:
548    mov     edx,[w6]
549    cmp     eax,edx
550    je      .noflag6
551    or      dword[cross],4
552    movq    mm1,mm5
553    movd    mm2,[ebx+edx*4]
554    psubusb mm1,mm2
555    psubusb mm2,mm5
556    por     mm1,mm2
557    psubusb mm1,[threshold]
558    movd    edx,mm1
559    test    edx,edx
560    jz      .noflag6
561    or      ecx,16
562.noflag6:
563    mov     edx,[w8]
564    cmp     eax,edx
565    je      .noflag8
566    or      dword[cross],8
567    movq    mm1,mm5
568    movd    mm2,[ebx+edx*4]
569    psubusb mm1,mm2
570    psubusb mm2,mm5
571    por     mm1,mm2
572    psubusb mm1,[threshold]
573    movd    edx,mm1
574    test    edx,edx
575    jz      .noflag8
576    or      ecx,64
577.noflag8:
578    test    ecx,ecx
579    jnz     .testflag1
580    mov     ecx,[cross]
581    mov     ebx,[ebp+dstPitch]
582    jmp     [FuncTable2+ecx*4]
583.testflag1:
584    mov     edx,[w1]
585    cmp     eax,edx
586    je      .noflag1
587    movq    mm1,mm5
588    movd    mm2,[ebx+edx*4]
589    psubusb mm1,mm2
590    psubusb mm2,mm5
591    por     mm1,mm2
592    psubusb mm1,[threshold]
593    movd    edx,mm1
594    test    edx,edx
595    jz      .noflag1
596    or      ecx,1
597.noflag1:
598    mov     edx,[w3]
599    cmp     eax,edx
600    je      .noflag3
601    movq    mm1,mm5
602    movd    mm2,[ebx+edx*4]
603    psubusb mm1,mm2
604    psubusb mm2,mm5
605    por     mm1,mm2
606    psubusb mm1,[threshold]
607    movd    edx,mm1
608    test    edx,edx
609    jz      .noflag3
610    or      ecx,4
611.noflag3:
612    mov     edx,[w7]
613    cmp     eax,edx
614    je      .noflag7
615    movq    mm1,mm5
616    movd    mm2,[ebx+edx*4]
617    psubusb mm1,mm2
618    psubusb mm2,mm5
619    por     mm1,mm2
620    psubusb mm1,[threshold]
621    movd    edx,mm1
622    test    edx,edx
623    jz      .noflag7
624    or      ecx,32
625.noflag7:
626    mov     edx,[w9]
627    cmp     eax,edx
628    je      .noflag9
629    movq    mm1,mm5
630    movd    mm2,[ebx+edx*4]
631    psubusb mm1,mm2
632    psubusb mm2,mm5
633    por     mm1,mm2
634    psubusb mm1,[threshold]
635    movd    edx,mm1
636    test    edx,edx
637    jz      .noflag9
638    or      ecx,128
639.noflag9:
640    mov  ebx,[ebp+dstPitch]
641    jmp  [FuncTable+ecx*4]
642
643..@flag0:
644..@flag1:
645..@flag4:
646..@flag32:
647..@flag128:
648..@flag5:
649..@flag132:
650..@flag160:
651..@flag33:
652..@flag129:
653..@flag36:
654..@flag133:
655..@flag164:
656..@flag161:
657..@flag37:
658..@flag165:
659    PIXEL00_2
660    PIXEL01_1
661    PIXEL02_2
662    PIXEL10_1
663    PIXEL11
664    PIXEL12_1
665    PIXEL20_2
666    PIXEL21_1
667    PIXEL22_2
668    jmp .loopx_end
669..@flag2:
670..@flag34:
671..@flag130:
672..@flag162:
673    PIXEL00_1M
674    PIXEL01_C
675    PIXEL02_1M
676    PIXEL10_1
677    PIXEL11
678    PIXEL12_1
679    PIXEL20_2
680    PIXEL21_1
681    PIXEL22_2
682    jmp .loopx_end
683..@flag16:
684..@flag17:
685..@flag48:
686..@flag49:
687    PIXEL00_2
688    PIXEL01_1
689    PIXEL02_1M
690    PIXEL10_1
691    PIXEL11
692    PIXEL12_C
693    PIXEL20_2
694    PIXEL21_1
695    PIXEL22_1M
696    jmp .loopx_end
697..@flag64:
698..@flag65:
699..@flag68:
700..@flag69:
701    PIXEL00_2
702    PIXEL01_1
703    PIXEL02_2
704    PIXEL10_1
705    PIXEL11
706    PIXEL12_1
707    PIXEL20_1M
708    PIXEL21_C
709    PIXEL22_1M
710    jmp .loopx_end
711..@flag8:
712..@flag12:
713..@flag136:
714..@flag140:
715    PIXEL00_1M
716    PIXEL01_1
717    PIXEL02_2
718    PIXEL10_C
719    PIXEL11
720    PIXEL12_1
721    PIXEL20_1M
722    PIXEL21_1
723    PIXEL22_2
724    jmp .loopx_end
725..@flag3:
726..@flag35:
727..@flag131:
728..@flag163:
729    PIXEL00_1L
730    PIXEL01_C
731    PIXEL02_1M
732    PIXEL10_1
733    PIXEL11
734    PIXEL12_1
735    PIXEL20_2
736    PIXEL21_1
737    PIXEL22_2
738    jmp .loopx_end
739..@flag6:
740..@flag38:
741..@flag134:
742..@flag166:
743    PIXEL00_1M
744    PIXEL01_C
745    PIXEL02_1R
746    PIXEL10_1
747    PIXEL11
748    PIXEL12_1
749    PIXEL20_2
750    PIXEL21_1
751    PIXEL22_2
752    jmp .loopx_end
753..@flag20:
754..@flag21:
755..@flag52:
756..@flag53:
757    PIXEL00_2
758    PIXEL01_1
759    PIXEL02_1U
760    PIXEL10_1
761    PIXEL11
762    PIXEL12_C
763    PIXEL20_2
764    PIXEL21_1
765    PIXEL22_1M
766    jmp .loopx_end
767..@flag144:
768..@flag145:
769..@flag176:
770..@flag177:
771    PIXEL00_2
772    PIXEL01_1
773    PIXEL02_1M
774    PIXEL10_1
775    PIXEL11
776    PIXEL12_C
777    PIXEL20_2
778    PIXEL21_1
779    PIXEL22_1D
780    jmp .loopx_end
781..@flag192:
782..@flag193:
783..@flag196:
784..@flag197:
785    PIXEL00_2
786    PIXEL01_1
787    PIXEL02_2
788    PIXEL10_1
789    PIXEL11
790    PIXEL12_1
791    PIXEL20_1M
792    PIXEL21_C
793    PIXEL22_1R
794    jmp .loopx_end
795..@flag96:
796..@flag97:
797..@flag100:
798..@flag101:
799    PIXEL00_2
800    PIXEL01_1
801    PIXEL02_2
802    PIXEL10_1
803    PIXEL11
804    PIXEL12_1
805    PIXEL20_1L
806    PIXEL21_C
807    PIXEL22_1M
808    jmp .loopx_end
809..@flag40:
810..@flag44:
811..@flag168:
812..@flag172:
813    PIXEL00_1M
814    PIXEL01_1
815    PIXEL02_2
816    PIXEL10_C
817    PIXEL11
818    PIXEL12_1
819    PIXEL20_1D
820    PIXEL21_1
821    PIXEL22_2
822    jmp .loopx_end
823..@flag9:
824..@flag13:
825..@flag137:
826..@flag141:
827    PIXEL00_1U
828    PIXEL01_1
829    PIXEL02_2
830    PIXEL10_C
831    PIXEL11
832    PIXEL12_1
833    PIXEL20_1M
834    PIXEL21_1
835    PIXEL22_2
836    jmp .loopx_end
837..@flag18:
838..@flag50:
839    PIXEL00_1M
840    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
841    PIXEL10_1
842    PIXEL11
843    PIXEL20_2
844    PIXEL21_1
845    PIXEL22_1M
846    jmp .loopx_end
847..@flag80:
848..@flag81:
849    PIXEL00_2
850    PIXEL01_1
851    PIXEL02_1M
852    PIXEL10_1
853    PIXEL11
854    PIXEL20_1M
855    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL12_3,PIXEL21_3,PIXEL22_4
856    jmp .loopx_end
857..@flag72:
858..@flag76:
859    PIXEL00_1M
860    PIXEL01_1
861    PIXEL02_2
862    PIXEL11
863    PIXEL12_1
864    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
865    PIXEL22_1M
866    jmp .loopx_end
867..@flag10:
868..@flag138:
869    DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
870    PIXEL02_1M
871    PIXEL11
872    PIXEL12_1
873    PIXEL20_1M
874    PIXEL21_1
875    PIXEL22_2
876    jmp .loopx_end
877..@flag66:
878    PIXEL00_1M
879    PIXEL01_C
880    PIXEL02_1M
881    PIXEL10_1
882    PIXEL11
883    PIXEL12_1
884    PIXEL20_1M
885    PIXEL21_C
886    PIXEL22_1M
887    jmp .loopx_end
888..@flag24:
889    PIXEL00_1M
890    PIXEL01_1
891    PIXEL02_1M
892    PIXEL10_C
893    PIXEL11
894    PIXEL12_C
895    PIXEL20_1M
896    PIXEL21_1
897    PIXEL22_1M
898    jmp .loopx_end
899..@flag7:
900..@flag39:
901..@flag135:
902    PIXEL00_1L
903    PIXEL01_C
904    PIXEL02_1R
905    PIXEL10_1
906    PIXEL11
907    PIXEL12_1
908    PIXEL20_2
909    PIXEL21_1
910    PIXEL22_2
911    jmp .loopx_end
912..@flag148:
913..@flag149:
914..@flag180:
915    PIXEL00_2
916    PIXEL01_1
917    PIXEL02_1U
918    PIXEL10_1
919    PIXEL11
920    PIXEL12_C
921    PIXEL20_2
922    PIXEL21_1
923    PIXEL22_1D
924    jmp .loopx_end
925..@flag224:
926..@flag228:
927..@flag225:
928    PIXEL00_2
929    PIXEL01_1
930    PIXEL02_2
931    PIXEL10_1
932    PIXEL11
933    PIXEL12_1
934    PIXEL20_1L
935    PIXEL21_C
936    PIXEL22_1R
937    jmp .loopx_end
938..@flag41:
939..@flag169:
940..@flag45:
941    PIXEL00_1U
942    PIXEL01_1
943    PIXEL02_2
944    PIXEL10_C
945    PIXEL11
946    PIXEL12_1
947    PIXEL20_1D
948    PIXEL21_1
949    PIXEL22_2
950    jmp .loopx_end
951..@flag22:
952..@flag54:
953    PIXEL00_1M
954    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
955    PIXEL10_1
956    PIXEL11
957    PIXEL20_2
958    PIXEL21_1
959    PIXEL22_1M
960    jmp .loopx_end
961..@flag208:
962..@flag209:
963    PIXEL00_2
964    PIXEL01_1
965    PIXEL02_1M
966    PIXEL10_1
967    PIXEL11
968    PIXEL20_1M
969    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
970    jmp .loopx_end
971..@flag104:
972..@flag108:
973    PIXEL00_1M
974    PIXEL01_1
975    PIXEL02_2
976    PIXEL11
977    PIXEL12_1
978    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
979    PIXEL22_1M
980    jmp .loopx_end
981..@flag11:
982..@flag139:
983    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
984    PIXEL02_1M
985    PIXEL11
986    PIXEL12_1
987    PIXEL20_1M
988    PIXEL21_1
989    PIXEL22_2
990    jmp .loopx_end
991..@flag19:
992..@flag51:
993    DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
994    PIXEL10_1
995    PIXEL11
996    PIXEL20_2
997    PIXEL21_1
998    PIXEL22_1M
999    jmp .loopx_end
1000..@flag146:
1001..@flag178:
1002    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_1M,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
1003    PIXEL00_1M
1004    PIXEL10_1
1005    PIXEL11
1006    PIXEL20_2
1007    PIXEL21_1
1008    jmp .loopx_end
1009..@flag84:
1010..@flag85:
1011    DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_1M,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
1012    PIXEL00_2
1013    PIXEL01_1
1014    PIXEL10_1
1015    PIXEL11
1016    PIXEL20_1M
1017    jmp .loopx_end
1018..@flag112:
1019..@flag113:
1020    DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_1M,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
1021    PIXEL00_2
1022    PIXEL01_1
1023    PIXEL02_1M
1024    PIXEL10_1
1025    PIXEL11
1026    jmp .loopx_end
1027..@flag200:
1028..@flag204:
1029    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
1030    PIXEL00_1M
1031    PIXEL01_1
1032    PIXEL02_2
1033    PIXEL11
1034    PIXEL12_1
1035    jmp .loopx_end
1036..@flag73:
1037..@flag77:
1038    DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_1M,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
1039    PIXEL01_1
1040    PIXEL02_2
1041    PIXEL11
1042    PIXEL12_1
1043    PIXEL22_1M
1044    jmp .loopx_end
1045..@flag42:
1046..@flag170:
1047    DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
1048    PIXEL02_1M
1049    PIXEL11
1050    PIXEL12_1
1051    PIXEL21_1
1052    PIXEL22_2
1053    jmp .loopx_end
1054..@flag14:
1055..@flag142:
1056    DiffOrNot w4,w2,PIXEL00_1M,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
1057    PIXEL11
1058    PIXEL12_1
1059    PIXEL20_1M
1060    PIXEL21_1
1061    PIXEL22_2
1062    jmp .loopx_end
1063..@flag67:
1064    PIXEL00_1L
1065    PIXEL01_C
1066    PIXEL02_1M
1067    PIXEL10_1
1068    PIXEL11
1069    PIXEL12_1
1070    PIXEL20_1M
1071    PIXEL21_C
1072    PIXEL22_1M
1073    jmp .loopx_end
1074..@flag70:
1075    PIXEL00_1M
1076    PIXEL01_C
1077    PIXEL02_1R
1078    PIXEL10_1
1079    PIXEL11
1080    PIXEL12_1
1081    PIXEL20_1M
1082    PIXEL21_C
1083    PIXEL22_1M
1084    jmp .loopx_end
1085..@flag28:
1086    PIXEL00_1M
1087    PIXEL01_1
1088    PIXEL02_1U
1089    PIXEL10_C
1090    PIXEL11
1091    PIXEL12_C
1092    PIXEL20_1M
1093    PIXEL21_1
1094    PIXEL22_1M
1095    jmp .loopx_end
1096..@flag152:
1097    PIXEL00_1M
1098    PIXEL01_1
1099    PIXEL02_1M
1100    PIXEL10_C
1101    PIXEL11
1102    PIXEL12_C
1103    PIXEL20_1M
1104    PIXEL21_1
1105    PIXEL22_1D
1106    jmp .loopx_end
1107..@flag194:
1108    PIXEL00_1M
1109    PIXEL01_C
1110    PIXEL02_1M
1111    PIXEL10_1
1112    PIXEL11
1113    PIXEL12_1
1114    PIXEL20_1M
1115    PIXEL21_C
1116    PIXEL22_1R
1117    jmp .loopx_end
1118..@flag98:
1119    PIXEL00_1M
1120    PIXEL01_C
1121    PIXEL02_1M
1122    PIXEL10_1
1123    PIXEL11
1124    PIXEL12_1
1125    PIXEL20_1L
1126    PIXEL21_C
1127    PIXEL22_1M
1128    jmp .loopx_end
1129..@flag56:
1130    PIXEL00_1M
1131    PIXEL01_1
1132    PIXEL02_1M
1133    PIXEL10_C
1134    PIXEL11
1135    PIXEL12_C
1136    PIXEL20_1D
1137    PIXEL21_1
1138    PIXEL22_1M
1139    jmp .loopx_end
1140..@flag25:
1141    PIXEL00_1U
1142    PIXEL01_1
1143    PIXEL02_1M
1144    PIXEL10_C
1145    PIXEL11
1146    PIXEL12_C
1147    PIXEL20_1M
1148    PIXEL21_1
1149    PIXEL22_1M
1150    jmp .loopx_end
1151..@flag26:
1152..@flag31:
1153    DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
1154    PIXEL01_C
1155    DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
1156    PIXEL11
1157    PIXEL20_1M
1158    PIXEL21_1
1159    PIXEL22_1M
1160    jmp .loopx_end
1161..@flag82:
1162..@flag214:
1163    PIXEL00_1M
1164    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
1165    PIXEL10_1
1166    PIXEL11
1167    PIXEL12_C
1168    PIXEL20_1M
1169    DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
1170    jmp .loopx_end
1171..@flag88:
1172..@flag248:
1173    PIXEL00_1M
1174    PIXEL01_1
1175    PIXEL02_1M
1176    PIXEL11
1177    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
1178    PIXEL21_C
1179    DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
1180    jmp .loopx_end
1181..@flag74:
1182..@flag107:
1183    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
1184    PIXEL02_1M
1185    PIXEL10_C
1186    PIXEL11
1187    PIXEL12_1
1188    DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
1189    PIXEL22_1M
1190    jmp .loopx_end
1191..@flag27:
1192    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1193    PIXEL02_1M
1194    PIXEL11
1195    PIXEL12_C
1196    PIXEL20_1M
1197    PIXEL21_1
1198    PIXEL22_1M
1199    jmp .loopx_end
1200..@flag86:
1201    PIXEL00_1M
1202    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1203    PIXEL10_1
1204    PIXEL11
1205    PIXEL20_1M
1206    PIXEL21_C
1207    PIXEL22_1M
1208    jmp .loopx_end
1209..@flag216:
1210    PIXEL00_1M
1211    PIXEL01_1
1212    PIXEL02_1M
1213    PIXEL10_C
1214    PIXEL11
1215    PIXEL20_1M
1216    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1217    jmp .loopx_end
1218..@flag106:
1219    PIXEL00_1M
1220    PIXEL01_C
1221    PIXEL02_1M
1222    PIXEL11
1223    PIXEL12_1
1224    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1225    PIXEL22_1M
1226    jmp .loopx_end
1227..@flag30:
1228    PIXEL00_1M
1229    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1230    PIXEL10_C
1231    PIXEL11
1232    PIXEL20_1M
1233    PIXEL21_1
1234    PIXEL22_1M
1235    jmp .loopx_end
1236..@flag210:
1237    PIXEL00_1M
1238    PIXEL01_C
1239    PIXEL02_1M
1240    PIXEL10_1
1241    PIXEL11
1242    PIXEL20_1M
1243    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1244    jmp .loopx_end
1245..@flag120:
1246    PIXEL00_1M
1247    PIXEL01_1
1248    PIXEL02_1M
1249    PIXEL11
1250    PIXEL12_C
1251    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1252    PIXEL22_1M
1253    jmp .loopx_end
1254..@flag75:
1255    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1256    PIXEL02_1M
1257    PIXEL11
1258    PIXEL12_1
1259    PIXEL20_1M
1260    PIXEL21_C
1261    PIXEL22_1M
1262    jmp .loopx_end
1263..@flag29:
1264    PIXEL00_1U
1265    PIXEL01_1
1266    PIXEL02_1U
1267    PIXEL10_C
1268    PIXEL11
1269    PIXEL12_C
1270    PIXEL20_1M
1271    PIXEL21_1
1272    PIXEL22_1M
1273    jmp .loopx_end
1274..@flag198:
1275    PIXEL00_1M
1276    PIXEL01_C
1277    PIXEL02_1R
1278    PIXEL10_1
1279    PIXEL11
1280    PIXEL12_1
1281    PIXEL20_1M
1282    PIXEL21_C
1283    PIXEL22_1R
1284    jmp .loopx_end
1285..@flag184:
1286    PIXEL00_1M
1287    PIXEL01_1
1288    PIXEL02_1M
1289    PIXEL10_C
1290    PIXEL11
1291    PIXEL12_C
1292    PIXEL20_1D
1293    PIXEL21_1
1294    PIXEL22_1D
1295    jmp .loopx_end
1296..@flag99:
1297    PIXEL00_1L
1298    PIXEL01_C
1299    PIXEL02_1M
1300    PIXEL10_1
1301    PIXEL11
1302    PIXEL12_1
1303    PIXEL20_1L
1304    PIXEL21_C
1305    PIXEL22_1M
1306    jmp .loopx_end
1307..@flag57:
1308    PIXEL00_1U
1309    PIXEL01_1
1310    PIXEL02_1M
1311    PIXEL10_C
1312    PIXEL11
1313    PIXEL12_C
1314    PIXEL20_1D
1315    PIXEL21_1
1316    PIXEL22_1M
1317    jmp .loopx_end
1318..@flag71:
1319    PIXEL00_1L
1320    PIXEL01_C
1321    PIXEL02_1R
1322    PIXEL10_1
1323    PIXEL11
1324    PIXEL12_1
1325    PIXEL20_1M
1326    PIXEL21_C
1327    PIXEL22_1M
1328    jmp .loopx_end
1329..@flag156:
1330    PIXEL00_1M
1331    PIXEL01_1
1332    PIXEL02_1U
1333    PIXEL10_C
1334    PIXEL11
1335    PIXEL12_C
1336    PIXEL20_1M
1337    PIXEL21_1
1338    PIXEL22_1D
1339    jmp .loopx_end
1340..@flag226:
1341    PIXEL00_1M
1342    PIXEL01_C
1343    PIXEL02_1M
1344    PIXEL10_1
1345    PIXEL11
1346    PIXEL12_1
1347    PIXEL20_1L
1348    PIXEL21_C
1349    PIXEL22_1R
1350    jmp .loopx_end
1351..@flag60:
1352    PIXEL00_1M
1353    PIXEL01_1
1354    PIXEL02_1U
1355    PIXEL10_C
1356    PIXEL11
1357    PIXEL12_C
1358    PIXEL20_1D
1359    PIXEL21_1
1360    PIXEL22_1M
1361    jmp .loopx_end
1362..@flag195:
1363    PIXEL00_1L
1364    PIXEL01_C
1365    PIXEL02_1M
1366    PIXEL10_1
1367    PIXEL11
1368    PIXEL12_1
1369    PIXEL20_1M
1370    PIXEL21_C
1371    PIXEL22_1R
1372    jmp .loopx_end
1373..@flag102:
1374    PIXEL00_1M
1375    PIXEL01_C
1376    PIXEL02_1R
1377    PIXEL10_1
1378    PIXEL11
1379    PIXEL12_1
1380    PIXEL20_1L
1381    PIXEL21_C
1382    PIXEL22_1M
1383    jmp .loopx_end
1384..@flag153:
1385    PIXEL00_1U
1386    PIXEL01_1
1387    PIXEL02_1M
1388    PIXEL10_C
1389    PIXEL11
1390    PIXEL12_C
1391    PIXEL20_1M
1392    PIXEL21_1
1393    PIXEL22_1D
1394    jmp .loopx_end
1395..@flag58:
1396    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1397    PIXEL01_C
1398    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1399    PIXEL10_C
1400    PIXEL11
1401    PIXEL12_C
1402    PIXEL20_1D
1403    PIXEL21_1
1404    PIXEL22_1M
1405    jmp .loopx_end
1406..@flag83:
1407    PIXEL00_1L
1408    PIXEL01_C
1409    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1410    PIXEL10_1
1411    PIXEL11
1412    PIXEL12_C
1413    PIXEL20_1M
1414    PIXEL21_C
1415    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1416    jmp .loopx_end
1417..@flag92:
1418    PIXEL00_1M
1419    PIXEL01_1
1420    PIXEL02_1U
1421    PIXEL10_C
1422    PIXEL11
1423    PIXEL12_C
1424    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1425    PIXEL21_C
1426    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1427    jmp .loopx_end
1428..@flag202:
1429    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1430    PIXEL01_C
1431    PIXEL02_1M
1432    PIXEL10_C
1433    PIXEL11
1434    PIXEL12_1
1435    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1436    PIXEL21_C
1437    PIXEL22_1R
1438    jmp .loopx_end
1439..@flag78:
1440    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1441    PIXEL01_C
1442    PIXEL02_1R
1443    PIXEL10_C
1444    PIXEL11
1445    PIXEL12_1
1446    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1447    PIXEL21_C
1448    PIXEL22_1M
1449    jmp .loopx_end
1450..@flag154:
1451    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1452    PIXEL01_C
1453    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1454    PIXEL10_C
1455    PIXEL11
1456    PIXEL12_C
1457    PIXEL20_1M
1458    PIXEL21_1
1459    PIXEL22_1D
1460    jmp .loopx_end
1461..@flag114:
1462    PIXEL00_1M
1463    PIXEL01_C
1464    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1465    PIXEL10_1
1466    PIXEL11
1467    PIXEL12_C
1468    PIXEL20_1L
1469    PIXEL21_C
1470    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1471    jmp .loopx_end
1472..@flag89:
1473    PIXEL00_1U
1474    PIXEL01_1
1475    PIXEL02_1M
1476    PIXEL10_C
1477    PIXEL11
1478    PIXEL12_C
1479    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1480    PIXEL21_C
1481    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1482    jmp .loopx_end
1483..@flag90:
1484    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1485    PIXEL01_C
1486    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1487    PIXEL10_C
1488    PIXEL11
1489    PIXEL12_C
1490    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1491    PIXEL21_C
1492    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1493    jmp .loopx_end
1494..@flag55:
1495..@flag23:
1496    DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
1497    PIXEL10_1
1498    PIXEL11
1499    PIXEL20_2
1500    PIXEL21_1
1501    PIXEL22_1M
1502    jmp .loopx_end
1503..@flag182:
1504..@flag150:
1505    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
1506    PIXEL00_1M
1507    PIXEL10_1
1508    PIXEL11
1509    PIXEL20_2
1510    PIXEL21_1
1511    jmp .loopx_end
1512..@flag213:
1513..@flag212:
1514    DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
1515    PIXEL00_2
1516    PIXEL01_1
1517    PIXEL10_1
1518    PIXEL11
1519    PIXEL20_1M
1520    jmp .loopx_end
1521..@flag241:
1522..@flag240:
1523    DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
1524    PIXEL00_2
1525    PIXEL01_1
1526    PIXEL02_1M
1527    PIXEL10_1
1528    PIXEL11
1529    jmp .loopx_end
1530..@flag236:
1531..@flag232:
1532    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
1533    PIXEL00_1M
1534    PIXEL01_1
1535    PIXEL02_2
1536    PIXEL11
1537    PIXEL12_1
1538    jmp .loopx_end
1539..@flag109:
1540..@flag105:
1541    DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
1542    PIXEL01_1
1543    PIXEL02_2
1544    PIXEL11
1545    PIXEL12_1
1546    PIXEL22_1M
1547    jmp .loopx_end
1548..@flag171:
1549..@flag43:
1550    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
1551    PIXEL02_1M
1552    PIXEL11
1553    PIXEL12_1
1554    PIXEL21_1
1555    PIXEL22_2
1556    jmp .loopx_end
1557..@flag143:
1558..@flag15:
1559    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
1560    PIXEL11
1561    PIXEL12_1
1562    PIXEL20_1M
1563    PIXEL21_1
1564    PIXEL22_2
1565    jmp .loopx_end
1566..@flag124:
1567    PIXEL00_1M
1568    PIXEL01_1
1569    PIXEL02_1U
1570    PIXEL11
1571    PIXEL12_C
1572    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1573    PIXEL22_1M
1574    jmp .loopx_end
1575..@flag203:
1576    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1577    PIXEL02_1M
1578    PIXEL11
1579    PIXEL12_1
1580    PIXEL20_1M
1581    PIXEL21_C
1582    PIXEL22_1R
1583    jmp .loopx_end
1584..@flag62:
1585    PIXEL00_1M
1586    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1587    PIXEL10_C
1588    PIXEL11
1589    PIXEL20_1D
1590    PIXEL21_1
1591    PIXEL22_1M
1592    jmp .loopx_end
1593..@flag211:
1594    PIXEL00_1L
1595    PIXEL01_C
1596    PIXEL02_1M
1597    PIXEL10_1
1598    PIXEL11
1599    PIXEL20_1M
1600    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1601    jmp .loopx_end
1602..@flag118:
1603    PIXEL00_1M
1604    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1605    PIXEL10_1
1606    PIXEL11
1607    PIXEL20_1L
1608    PIXEL21_C
1609    PIXEL22_1M
1610    jmp .loopx_end
1611..@flag217:
1612    PIXEL00_1U
1613    PIXEL01_1
1614    PIXEL02_1M
1615    PIXEL10_C
1616    PIXEL11
1617    PIXEL20_1M
1618    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1619    jmp .loopx_end
1620..@flag110:
1621    PIXEL00_1M
1622    PIXEL01_C
1623    PIXEL02_1R
1624    PIXEL11
1625    PIXEL12_1
1626    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1627    PIXEL22_1M
1628    jmp .loopx_end
1629..@flag155:
1630    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1631    PIXEL02_1M
1632    PIXEL11
1633    PIXEL12_C
1634    PIXEL20_1M
1635    PIXEL21_1
1636    PIXEL22_1D
1637    jmp .loopx_end
1638..@flag188:
1639    PIXEL00_1M
1640    PIXEL01_1
1641    PIXEL02_1U
1642    PIXEL10_C
1643    PIXEL11
1644    PIXEL12_C
1645    PIXEL20_1D
1646    PIXEL21_1
1647    PIXEL22_1D
1648    jmp .loopx_end
1649..@flag185:
1650    PIXEL00_1U
1651    PIXEL01_1
1652    PIXEL02_1M
1653    PIXEL10_C
1654    PIXEL11
1655    PIXEL12_C
1656    PIXEL20_1D
1657    PIXEL21_1
1658    PIXEL22_1D
1659    jmp .loopx_end
1660..@flag61:
1661    PIXEL00_1U
1662    PIXEL01_1
1663    PIXEL02_1U
1664    PIXEL10_C
1665    PIXEL11
1666    PIXEL12_C
1667    PIXEL20_1D
1668    PIXEL21_1
1669    PIXEL22_1M
1670    jmp .loopx_end
1671..@flag157:
1672    PIXEL00_1U
1673    PIXEL01_1
1674    PIXEL02_1U
1675    PIXEL10_C
1676    PIXEL11
1677    PIXEL12_C
1678    PIXEL20_1M
1679    PIXEL21_1
1680    PIXEL22_1D
1681    jmp .loopx_end
1682..@flag103:
1683    PIXEL00_1L
1684    PIXEL01_C
1685    PIXEL02_1R
1686    PIXEL10_1
1687    PIXEL11
1688    PIXEL12_1
1689    PIXEL20_1L
1690    PIXEL21_C
1691    PIXEL22_1M
1692    jmp .loopx_end
1693..@flag227:
1694    PIXEL00_1L
1695    PIXEL01_C
1696    PIXEL02_1M
1697    PIXEL10_1
1698    PIXEL11
1699    PIXEL12_1
1700    PIXEL20_1L
1701    PIXEL21_C
1702    PIXEL22_1R
1703    jmp .loopx_end
1704..@flag230:
1705    PIXEL00_1M
1706    PIXEL01_C
1707    PIXEL02_1R
1708    PIXEL10_1
1709    PIXEL11
1710    PIXEL12_1
1711    PIXEL20_1L
1712    PIXEL21_C
1713    PIXEL22_1R
1714    jmp .loopx_end
1715..@flag199:
1716    PIXEL00_1L
1717    PIXEL01_C
1718    PIXEL02_1R
1719    PIXEL10_1
1720    PIXEL11
1721    PIXEL12_1
1722    PIXEL20_1M
1723    PIXEL21_C
1724    PIXEL22_1R
1725    jmp .loopx_end
1726..@flag220:
1727    PIXEL00_1M
1728    PIXEL01_1
1729    PIXEL02_1U
1730    PIXEL10_C
1731    PIXEL11
1732    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1733    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1734    jmp .loopx_end
1735..@flag158:
1736    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1737    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1738    PIXEL10_C
1739    PIXEL11
1740    PIXEL20_1M
1741    PIXEL21_1
1742    PIXEL22_1D
1743    jmp .loopx_end
1744..@flag234:
1745    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1746    PIXEL01_C
1747    PIXEL02_1M
1748    PIXEL11
1749    PIXEL12_1
1750    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1751    PIXEL22_1R
1752    jmp .loopx_end
1753..@flag242:
1754    PIXEL00_1M
1755    PIXEL01_C
1756    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1757    PIXEL10_1
1758    PIXEL11
1759    PIXEL20_1L
1760    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1761    jmp .loopx_end
1762..@flag59:
1763    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1764    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1765    PIXEL11
1766    PIXEL12_C
1767    PIXEL20_1D
1768    PIXEL21_1
1769    PIXEL22_1M
1770    jmp .loopx_end
1771..@flag121:
1772    PIXEL00_1U
1773    PIXEL01_1
1774    PIXEL02_1M
1775    PIXEL11
1776    PIXEL12_C
1777    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1778    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1779    jmp .loopx_end
1780..@flag87:
1781    PIXEL00_1L
1782    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1783    PIXEL10_1
1784    PIXEL11
1785    PIXEL20_1M
1786    PIXEL21_C
1787    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1788    jmp .loopx_end
1789..@flag79:
1790    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1791    PIXEL02_1R
1792    PIXEL11
1793    PIXEL12_1
1794    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1795    PIXEL21_C
1796    PIXEL22_1M
1797    jmp .loopx_end
1798..@flag122:
1799    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1800    PIXEL01_C
1801    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1802    PIXEL11
1803    PIXEL12_C
1804    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1805    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1806    jmp .loopx_end
1807..@flag94:
1808    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1809    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1810    PIXEL10_C
1811    PIXEL11
1812    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1813    PIXEL21_C
1814    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1815    jmp .loopx_end
1816..@flag218:
1817    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1818    PIXEL01_C
1819    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1820    PIXEL10_C
1821    PIXEL11
1822    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1823    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
1824    jmp .loopx_end
1825..@flag91:
1826    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
1827    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1828    PIXEL11
1829    PIXEL12_C
1830    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1831    PIXEL21_C
1832    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1833    jmp .loopx_end
1834..@flag229:
1835    PIXEL00_2
1836    PIXEL01_1
1837    PIXEL02_2
1838    PIXEL10_1
1839    PIXEL11
1840    PIXEL12_1
1841    PIXEL20_1L
1842    PIXEL21_C
1843    PIXEL22_1R
1844    jmp .loopx_end
1845..@flag167:
1846    PIXEL00_1L
1847    PIXEL01_C
1848    PIXEL02_1R
1849    PIXEL10_1
1850    PIXEL11
1851    PIXEL12_1
1852    PIXEL20_2
1853    PIXEL21_1
1854    PIXEL22_2
1855    jmp .loopx_end
1856..@flag173:
1857    PIXEL00_1U
1858    PIXEL01_1
1859    PIXEL02_2
1860    PIXEL10_C
1861    PIXEL11
1862    PIXEL12_1
1863    PIXEL20_1D
1864    PIXEL21_1
1865    PIXEL22_2
1866    jmp .loopx_end
1867..@flag181:
1868    PIXEL00_2
1869    PIXEL01_1
1870    PIXEL02_1U
1871    PIXEL10_1
1872    PIXEL11
1873    PIXEL12_C
1874    PIXEL20_2
1875    PIXEL21_1
1876    PIXEL22_1D
1877    jmp .loopx_end
1878..@flag186:
1879    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1880    PIXEL01_C
1881    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1882    PIXEL10_C
1883    PIXEL11
1884    PIXEL12_C
1885    PIXEL20_1D
1886    PIXEL21_1
1887    PIXEL22_1D
1888    jmp .loopx_end
1889..@flag115:
1890    PIXEL00_1L
1891    PIXEL01_C
1892    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1893    PIXEL10_1
1894    PIXEL11
1895    PIXEL12_C
1896    PIXEL20_1L
1897    PIXEL21_C
1898    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1899    jmp .loopx_end
1900..@flag93:
1901    PIXEL00_1U
1902    PIXEL01_1
1903    PIXEL02_1U
1904    PIXEL10_C
1905    PIXEL11
1906    PIXEL12_C
1907    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1908    PIXEL21_C
1909    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1910    jmp .loopx_end
1911..@flag206:
1912    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1913    PIXEL01_C
1914    PIXEL02_1R
1915    PIXEL10_C
1916    PIXEL11
1917    PIXEL12_1
1918    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1919    PIXEL21_C
1920    PIXEL22_1R
1921    jmp .loopx_end
1922..@flag205:
1923..@flag201:
1924    PIXEL00_1U
1925    PIXEL01_1
1926    PIXEL02_2
1927    PIXEL10_C
1928    PIXEL11
1929    PIXEL12_1
1930    DiffOrNot w8,w4,PIXEL20_1M,PIXEL20_2
1931    PIXEL21_C
1932    PIXEL22_1R
1933    jmp .loopx_end
1934..@flag174:
1935..@flag46:
1936    DiffOrNot w4,w2,PIXEL00_1M,PIXEL00_2
1937    PIXEL01_C
1938    PIXEL02_1R
1939    PIXEL10_C
1940    PIXEL11
1941    PIXEL12_1
1942    PIXEL20_1D
1943    PIXEL21_1
1944    PIXEL22_2
1945    jmp .loopx_end
1946..@flag179:
1947..@flag147:
1948    PIXEL00_1L
1949    PIXEL01_C
1950    DiffOrNot w2,w6,PIXEL02_1M,PIXEL02_2
1951    PIXEL10_1
1952    PIXEL11
1953    PIXEL12_C
1954    PIXEL20_2
1955    PIXEL21_1
1956    PIXEL22_1D
1957    jmp .loopx_end
1958..@flag117:
1959..@flag116:
1960    PIXEL00_2
1961    PIXEL01_1
1962    PIXEL02_1U
1963    PIXEL10_1
1964    PIXEL11
1965    PIXEL12_C
1966    PIXEL20_1L
1967    PIXEL21_C
1968    DiffOrNot w6,w8,PIXEL22_1M,PIXEL22_2
1969    jmp .loopx_end
1970..@flag189:
1971    PIXEL00_1U
1972    PIXEL01_1
1973    PIXEL02_1U
1974    PIXEL10_C
1975    PIXEL11
1976    PIXEL12_C
1977    PIXEL20_1D
1978    PIXEL21_1
1979    PIXEL22_1D
1980    jmp .loopx_end
1981..@flag231:
1982    PIXEL00_1L
1983    PIXEL01_C
1984    PIXEL02_1R
1985    PIXEL10_1
1986    PIXEL11
1987    PIXEL12_1
1988    PIXEL20_1L
1989    PIXEL21_C
1990    PIXEL22_1R
1991    jmp .loopx_end
1992..@flag126:
1993    PIXEL00_1M
1994    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_4,PIXEL12_3
1995    PIXEL11
1996    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_4,PIXEL21_3
1997    PIXEL22_1M
1998    jmp .loopx_end
1999..@flag219:
2000    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_4,PIXEL01_3,PIXEL10_3
2001    PIXEL02_1M
2002    PIXEL11
2003    PIXEL20_1M
2004    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_4
2005    jmp .loopx_end
2006..@flag125:
2007    DiffOrNot w8,w4,PIXEL00_1U,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL00_2,PIXEL10_6,PIXEL20_5,PIXEL21_1
2008    PIXEL01_1
2009    PIXEL02_1U
2010    PIXEL11
2011    PIXEL12_C
2012    PIXEL22_1M
2013    jmp .loopx_end
2014..@flag221:
2015    DiffOrNot w6,w8,PIXEL02_1U,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL02_2,PIXEL12_6,PIXEL21_1,PIXEL22_5
2016    PIXEL00_1U
2017    PIXEL01_1
2018    PIXEL10_C
2019    PIXEL11
2020    PIXEL20_1M
2021    jmp .loopx_end
2022..@flag207:
2023    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL02_1R,PIXEL10_C,PIXEL00_5,PIXEL01_6,PIXEL02_2,PIXEL10_1
2024    PIXEL11
2025    PIXEL12_1
2026    PIXEL20_1M
2027    PIXEL21_C
2028    PIXEL22_1R
2029    jmp .loopx_end
2030..@flag238:
2031    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL22_1R,PIXEL10_1,PIXEL20_5,PIXEL21_6,PIXEL22_2
2032    PIXEL00_1M
2033    PIXEL01_C
2034    PIXEL02_1R
2035    PIXEL11
2036    PIXEL12_1
2037    jmp .loopx_end
2038..@flag190:
2039    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL22_1D,PIXEL01_1,PIXEL02_5,PIXEL12_6,PIXEL22_2
2040    PIXEL00_1M
2041    PIXEL10_C
2042    PIXEL11
2043    PIXEL20_1D
2044    PIXEL21_1
2045    jmp .loopx_end
2046..@flag187:
2047    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL20_1D,PIXEL00_5,PIXEL01_1,PIXEL10_6,PIXEL20_2
2048    PIXEL02_1M
2049    PIXEL11
2050    PIXEL12_C
2051    PIXEL21_1
2052    PIXEL22_1D
2053    jmp .loopx_end
2054..@flag243:
2055    DiffOrNot w6,w8,PIXEL12_C,PIXEL20_1L,PIXEL21_C,PIXEL22_C,PIXEL12_1,PIXEL20_2,PIXEL21_6,PIXEL22_5
2056    PIXEL00_1L
2057    PIXEL01_C
2058    PIXEL02_1M
2059    PIXEL10_1
2060    PIXEL11
2061    jmp .loopx_end
2062..@flag119:
2063    DiffOrNot w2,w6,PIXEL00_1L,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL00_2,PIXEL01_6,PIXEL02_5,PIXEL12_1
2064    PIXEL10_1
2065    PIXEL11
2066    PIXEL20_1L
2067    PIXEL21_C
2068    PIXEL22_1M
2069    jmp .loopx_end
2070..@flag237:
2071..@flag233:
2072    PIXEL00_1U
2073    PIXEL01_1
2074    PIXEL02_2
2075    PIXEL10_C
2076    PIXEL11
2077    PIXEL12_1
2078    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2079    PIXEL21_C
2080    PIXEL22_1R
2081    jmp .loopx_end
2082..@flag175:
2083..@flag47:
2084    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2085    PIXEL01_C
2086    PIXEL02_1R
2087    PIXEL10_C
2088    PIXEL11
2089    PIXEL12_1
2090    PIXEL20_1D
2091    PIXEL21_1
2092    PIXEL22_2
2093    jmp .loopx_end
2094..@flag183:
2095..@flag151:
2096    PIXEL00_1L
2097    PIXEL01_C
2098    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2099    PIXEL10_1
2100    PIXEL11
2101    PIXEL12_C
2102    PIXEL20_2
2103    PIXEL21_1
2104    PIXEL22_1D
2105    jmp .loopx_end
2106..@flag245:
2107..@flag244:
2108    PIXEL00_2
2109    PIXEL01_1
2110    PIXEL02_1U
2111    PIXEL10_1
2112    PIXEL11
2113    PIXEL12_C
2114    PIXEL20_1L
2115    PIXEL21_C
2116    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2117    jmp .loopx_end
2118..@flag250:
2119    PIXEL00_1M
2120    PIXEL01_C
2121    PIXEL02_1M
2122    PIXEL11
2123    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
2124    PIXEL21_C
2125    DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
2126    jmp .loopx_end
2127..@flag123:
2128    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
2129    PIXEL02_1M
2130    PIXEL10_C
2131    PIXEL11
2132    PIXEL12_C
2133    DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
2134    PIXEL22_1M
2135    jmp .loopx_end
2136..@flag95:
2137    DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
2138    PIXEL01_C
2139    DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
2140    PIXEL11
2141    PIXEL20_1M
2142    PIXEL21_C
2143    PIXEL22_1M
2144    jmp .loopx_end
2145..@flag222:
2146    PIXEL00_1M
2147    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
2148    PIXEL10_C
2149    PIXEL11
2150    PIXEL12_C
2151    PIXEL20_1M
2152    DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
2153    jmp .loopx_end
2154..@flag252:
2155    PIXEL00_1M
2156    PIXEL01_1
2157    PIXEL02_1U
2158    PIXEL11
2159    PIXEL12_C
2160    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
2161    PIXEL21_C
2162    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2163    jmp .loopx_end
2164..@flag249:
2165    PIXEL00_1U
2166    PIXEL01_1
2167    PIXEL02_1M
2168    PIXEL10_C
2169    PIXEL11
2170    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2171    PIXEL21_C
2172    DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
2173    jmp .loopx_end
2174..@flag235:
2175    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
2176    PIXEL02_1M
2177    PIXEL10_C
2178    PIXEL11
2179    PIXEL12_1
2180    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2181    PIXEL21_C
2182    PIXEL22_1R
2183    jmp .loopx_end
2184..@flag111:
2185    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2186    PIXEL01_C
2187    PIXEL02_1R
2188    PIXEL10_C
2189    PIXEL11
2190    PIXEL12_1
2191    DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
2192    PIXEL22_1M
2193    jmp .loopx_end
2194..@flag63:
2195    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2196    PIXEL01_C
2197    DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
2198    PIXEL10_C
2199    PIXEL11
2200    PIXEL20_1D
2201    PIXEL21_1
2202    PIXEL22_1M
2203    jmp .loopx_end
2204..@flag159:
2205    DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
2206    PIXEL01_C
2207    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2208    PIXEL11
2209    PIXEL12_C
2210    PIXEL20_1M
2211    PIXEL21_1
2212    PIXEL22_1D
2213    jmp .loopx_end
2214..@flag215:
2215    PIXEL00_1L
2216    PIXEL01_C
2217    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2218    PIXEL10_1
2219    PIXEL11
2220    PIXEL12_C
2221    PIXEL20_1M
2222    DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
2223    jmp .loopx_end
2224..@flag246:
2225    PIXEL00_1M
2226    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
2227    PIXEL10_1
2228    PIXEL11
2229    PIXEL12_C
2230    PIXEL20_1L
2231    PIXEL21_C
2232    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2233    jmp .loopx_end
2234..@flag254:
2235    PIXEL00_1M
2236    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL01_3,PIXEL02_4
2237    PIXEL11
2238    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL10_3,PIXEL20_4
2239    DiffOrNot w6,w8,PIXEL12_C,PIXEL21_C,PIXEL22_C,PIXEL12_3,PIXEL21_3,PIXEL22_2
2240    jmp .loopx_end
2241..@flag253:
2242    PIXEL00_1U
2243    PIXEL01_1
2244    PIXEL02_1U
2245    PIXEL10_C
2246    PIXEL11
2247    PIXEL12_C
2248    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2249    PIXEL21_C
2250    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2251    jmp .loopx_end
2252..@flag251:
2253    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL00_4,PIXEL01_3
2254    PIXEL02_1M
2255    PIXEL11
2256    DiffOrNot w8,w4,PIXEL10_C,PIXEL20_C,PIXEL21_C,PIXEL10_3,PIXEL20_2,PIXEL21_3
2257    DiffOrNot w6,w8,PIXEL12_C,PIXEL22_C,PIXEL12_3,PIXEL22_4
2258    jmp .loopx_end
2259..@flag239:
2260    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2261    PIXEL01_C
2262    PIXEL02_1R
2263    PIXEL10_C
2264    PIXEL11
2265    PIXEL12_1
2266    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2267    PIXEL21_C
2268    PIXEL22_1R
2269    jmp .loopx_end
2270..@flag127:
2271    DiffOrNot w4,w2,PIXEL00_C,PIXEL01_C,PIXEL10_C,PIXEL00_2,PIXEL01_3,PIXEL10_3
2272    DiffOrNot w2,w6,PIXEL02_C,PIXEL12_C,PIXEL02_4,PIXEL12_3
2273    PIXEL11
2274    DiffOrNot w8,w4,PIXEL20_C,PIXEL21_C,PIXEL20_4,PIXEL21_3
2275    PIXEL22_1M
2276    jmp .loopx_end
2277..@flag191:
2278    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2279    PIXEL01_C
2280    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2281    PIXEL10_C
2282    PIXEL11
2283    PIXEL12_C
2284    PIXEL20_1D
2285    PIXEL21_1
2286    PIXEL22_1D
2287    jmp .loopx_end
2288..@flag223:
2289    DiffOrNot w4,w2,PIXEL00_C,PIXEL10_C,PIXEL00_4,PIXEL10_3
2290    DiffOrNot w2,w6,PIXEL01_C,PIXEL02_C,PIXEL12_C,PIXEL01_3,PIXEL02_2,PIXEL12_3
2291    PIXEL11
2292    PIXEL20_1M
2293    DiffOrNot w6,w8,PIXEL21_C,PIXEL22_C,PIXEL21_3,PIXEL22_4
2294    jmp .loopx_end
2295..@flag247:
2296    PIXEL00_1L
2297    PIXEL01_C
2298    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2299    PIXEL10_1
2300    PIXEL11
2301    PIXEL12_C
2302    PIXEL20_1L
2303    PIXEL21_C
2304    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2305    jmp .loopx_end
2306..@flag255:
2307    DiffOrNot w4,w2,PIXEL00_C,PIXEL00_2
2308    PIXEL01_C
2309    DiffOrNot w2,w6,PIXEL02_C,PIXEL02_2
2310    PIXEL10_C
2311    PIXEL11
2312    PIXEL12_C
2313    DiffOrNot w8,w4,PIXEL20_C,PIXEL20_2
2314    PIXEL21_C
2315    DiffOrNot w6,w8,PIXEL22_C,PIXEL22_2
2316    jmp .loopx_end
2317
2318..@cross0:
2319    mov edx,eax
2320    shl eax,16
2321    or  eax,edx
2322    mov [edi],eax
2323    mov [edi+4],ax
2324    mov [edi+ebx],eax
2325    mov [edi+ebx+4],ax
2326    mov [edi+ebx*2],eax
2327    mov [edi+ebx*2+4],ax
2328    jmp .loopx_end
2329..@cross1:
2330    mov edx,eax
2331    shl eax,16
2332    or  eax,edx
2333    mov ecx,[w2]
2334    and edx,[_hqx_highbits]
2335    and ecx,[_hqx_highbits]
2336    add ecx,edx
2337    shr ecx,1
2338    add ecx,[_hqx_lowbits]
2339    and ecx,[_hqx_highbits]
2340    add edx,ecx
2341    shr edx,1
2342    mov [edi],dx
2343    mov [edi+2],dx
2344    mov [edi+4],dx
2345    mov [edi+ebx],eax
2346    mov [edi+ebx+4],ax
2347    mov [edi+ebx*2],eax
2348    mov [edi+ebx*2+4],ax
2349    jmp .loopx_end
2350..@cross2:
2351    mov edx,eax
2352    shl eax,16
2353    or  eax,edx
2354    mov ecx,[w4]
2355    and edx,[_hqx_highbits]
2356    and ecx,[_hqx_highbits]
2357    add ecx,edx
2358    shr ecx,1
2359    add ecx,[_hqx_lowbits]
2360    and ecx,[_hqx_highbits]
2361    add edx,ecx
2362    shr edx,1
2363    mov [edi],dx
2364    mov [edi+2],eax
2365    mov [edi+ebx],dx
2366    mov [edi+ebx+2],eax
2367    mov [edi+ebx*2],dx
2368    mov [edi+ebx*2+2],eax
2369    jmp .loopx_end
2370..@cross4:
2371    mov edx,eax
2372    shl eax,16
2373    or  eax,edx
2374    mov ecx,[w6]
2375    and edx,[_hqx_highbits]
2376    and ecx,[_hqx_highbits]
2377    add ecx,edx
2378    shr ecx,1
2379    add ecx,[_hqx_lowbits]
2380    and ecx,[_hqx_highbits]
2381    add edx,ecx
2382    shr edx,1
2383    mov [edi],eax
2384    mov [edi+4],dx
2385    mov [edi+ebx],eax
2386    mov [edi+ebx+4],dx
2387    mov [edi+ebx*2],eax
2388    mov [edi+ebx*2+4],dx
2389    jmp .loopx_end
2390..@cross8:
2391    mov edx,eax
2392    shl eax,16
2393    or  eax,edx
2394    mov ecx,[w8]
2395    and edx,[_hqx_highbits]
2396    and ecx,[_hqx_highbits]
2397    add ecx,edx
2398    shr ecx,1
2399    add ecx,[_hqx_lowbits]
2400    and ecx,[_hqx_highbits]
2401    add edx,ecx
2402    shr edx,1
2403    mov [edi],eax
2404    mov [edi+4],ax
2405    mov [edi+ebx],eax
2406    mov [edi+ebx+4],ax
2407    mov [edi+ebx*2],dx
2408    mov [edi+ebx*2+2],dx
2409    mov [edi+ebx*2+4],dx
2410    jmp     .loopx_end
2411
2412.loopx_end:
2413    add     esi,2
2414    add     edi,6
2415    dec     dword[xcounter]
2416    jz      .nexty
2417    jmp     .loopx
2418.nexty:
2419    add     esi,dword[moduloSrc]
2420    add     edi,dword[moduloDst]
2421    dec     dword[linesleft]
2422    jz      .fin
2423    mov     ebx,[ebp+srcPitch]
2424    mov     dword[nextline],ebx
2425    neg     ebx
2426    mov     dword[prevline],ebx
2427    jmp     .loopy
2428.fin:
2429    emms
2430    popad
2431    mov esp,ebp
2432    pop ebp
2433    ret
2434
2435SECTION .data
2436FuncTable:
2437    dd ..@flag0, ..@flag1, ..@flag2, ..@flag3, ..@flag4, ..@flag5, ..@flag6, ..@flag7
2438    dd ..@flag8, ..@flag9, ..@flag10, ..@flag11, ..@flag12, ..@flag13, ..@flag14, ..@flag15
2439    dd ..@flag16, ..@flag17, ..@flag18, ..@flag19, ..@flag20, ..@flag21, ..@flag22, ..@flag23
2440    dd ..@flag24, ..@flag25, ..@flag26, ..@flag27, ..@flag28, ..@flag29, ..@flag30, ..@flag31
2441    dd ..@flag32, ..@flag33, ..@flag34, ..@flag35, ..@flag36, ..@flag37, ..@flag38, ..@flag39
2442    dd ..@flag40, ..@flag41, ..@flag42, ..@flag43, ..@flag44, ..@flag45, ..@flag46, ..@flag47
2443    dd ..@flag48, ..@flag49, ..@flag50, ..@flag51, ..@flag52, ..@flag53, ..@flag54, ..@flag55
2444    dd ..@flag56, ..@flag57, ..@flag58, ..@flag59, ..@flag60, ..@flag61, ..@flag62, ..@flag63
2445    dd ..@flag64, ..@flag65, ..@flag66, ..@flag67, ..@flag68, ..@flag69, ..@flag70, ..@flag71
2446    dd ..@flag72, ..@flag73, ..@flag74, ..@flag75, ..@flag76, ..@flag77, ..@flag78, ..@flag79
2447    dd ..@flag80, ..@flag81, ..@flag82, ..@flag83, ..@flag84, ..@flag85, ..@flag86, ..@flag87
2448    dd ..@flag88, ..@flag89, ..@flag90, ..@flag91, ..@flag92, ..@flag93, ..@flag94, ..@flag95
2449    dd ..@flag96, ..@flag97, ..@flag98, ..@flag99, ..@flag100, ..@flag101, ..@flag102, ..@flag103
2450    dd ..@flag104, ..@flag105, ..@flag106, ..@flag107, ..@flag108, ..@flag109, ..@flag110, ..@flag111
2451    dd ..@flag112, ..@flag113, ..@flag114, ..@flag115, ..@flag116, ..@flag117, ..@flag118, ..@flag119
2452    dd ..@flag120, ..@flag121, ..@flag122, ..@flag123, ..@flag124, ..@flag125, ..@flag126, ..@flag127
2453    dd ..@flag128, ..@flag129, ..@flag130, ..@flag131, ..@flag132, ..@flag133, ..@flag134, ..@flag135
2454    dd ..@flag136, ..@flag137, ..@flag138, ..@flag139, ..@flag140, ..@flag141, ..@flag142, ..@flag143
2455    dd ..@flag144, ..@flag145, ..@flag146, ..@flag147, ..@flag148, ..@flag149, ..@flag150, ..@flag151
2456    dd ..@flag152, ..@flag153, ..@flag154, ..@flag155, ..@flag156, ..@flag157, ..@flag158, ..@flag159
2457    dd ..@flag160, ..@flag161, ..@flag162, ..@flag163, ..@flag164, ..@flag165, ..@flag166, ..@flag167
2458    dd ..@flag168, ..@flag169, ..@flag170, ..@flag171, ..@flag172, ..@flag173, ..@flag174, ..@flag175
2459    dd ..@flag176, ..@flag177, ..@flag178, ..@flag179, ..@flag180, ..@flag181, ..@flag182, ..@flag183
2460    dd ..@flag184, ..@flag185, ..@flag186, ..@flag187, ..@flag188, ..@flag189, ..@flag190, ..@flag191
2461    dd ..@flag192, ..@flag193, ..@flag194, ..@flag195, ..@flag196, ..@flag197, ..@flag198, ..@flag199
2462    dd ..@flag200, ..@flag201, ..@flag202, ..@flag203, ..@flag204, ..@flag205, ..@flag206, ..@flag207
2463    dd ..@flag208, ..@flag209, ..@flag210, ..@flag211, ..@flag212, ..@flag213, ..@flag214, ..@flag215
2464    dd ..@flag216, ..@flag217, ..@flag218, ..@flag219, ..@flag220, ..@flag221, ..@flag222, ..@flag223
2465    dd ..@flag224, ..@flag225, ..@flag226, ..@flag227, ..@flag228, ..@flag229, ..@flag230, ..@flag231
2466    dd ..@flag232, ..@flag233, ..@flag234, ..@flag235, ..@flag236, ..@flag237, ..@flag238, ..@flag239
2467    dd ..@flag240, ..@flag241, ..@flag242, ..@flag243, ..@flag244, ..@flag245, ..@flag246, ..@flag247
2468    dd ..@flag248, ..@flag249, ..@flag250, ..@flag251, ..@flag252, ..@flag253, ..@flag254, ..@flag255
2469
2470FuncTable2:
2471    dd ..@cross0, ..@cross1, ..@cross2, ..@flag0,
2472    dd ..@cross4, ..@flag0,  ..@flag0,  ..@flag0,
2473    dd ..@cross8, ..@flag0,  ..@flag0,  ..@flag0,
2474    dd ..@flag0,  ..@flag0,  ..@flag0,  ..@flag0
2475
2476
2477%ifidn __OUTPUT_FORMAT__,elf
2478section .note.GNU-stack noalloc noexec nowrite progbits
2479%endif
2480