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