Listing 8:  the optimized Assembly blitter for the explosion bitmap:


explode1_13_:   push    ECX
                mov     ECX,EDX
                shl     ECX,08H
                shl     EDX,06H
                add     EBX,ECX
                add     EDX,EBX
                add     EAX,EDX
                mov     word ptr +0x3c8[EAX],0x3f11H
                mov     byte ptr +0x3cf[EAX],0x11H
                mov     dword ptr +0x507[EAX],0x3f313115H
                mov     byte ptr +0x50d[EAX],0x15H
                mov     word ptr +0x50f[EAX],0x113fH
                mov     byte ptr +0x511[EAX],0x11H
                mov     byte ptr +0x51e[EAX],0x11H
                mov     dword ptr +0x647[EAX],0x31313133H
                mov     dword ptr +0x64b[EAX],0x3115113fH
                mov     word ptr +0x64f[EAX],0x3131H
                mov     byte ptr +0x651[EAX],0x31H
                mov     byte ptr +0x653[EAX],0x11H
                mov     word ptr +0x65b[EAX],0x153fH
                mov     dword ptr +0x787[EAX],0x15313133H
                mov     dword ptr +0x78b[EAX],0x33111131H
                mov     dword ptr +0x78f[EAX],0x31321a33H
                mov     byte ptr +0x793[EAX],0x31H
                mov     byte ptr +0x799[EAX],0x15H
                mov     word ptr +0x79b[EAX],0x153fH
                mov     byte ptr +0x7a5[EAX],0x15H
                mov     byte ptr +0x7a7[EAX],0x3fH
                mov     dword ptr +0x8c7[EAX],0x31313115H
                mov     dword ptr +0x8cb[EAX],0x32111131H
                mov     dword ptr +0x8cf[EAX],0x34343434H
                mov     word ptr +0x8d3[EAX],0x1532H
                mov     byte ptr +0x8d5[EAX],0x3fH
                mov     dword ptr +0x8d7[EAX],0x11311115H
                mov     word ptr +0x8db[EAX],0x3131H
                mov     word ptr +0x8e2[EAX],0x3f11H
                mov     byte ptr +0x8e5[EAX],0x15H
                mov     word ptr +0xa07[EAX],0x3115H
                mov     dword ptr +0xa0a[EAX],0x33153115H
                mov     dword ptr +0xa0e[EAX],0x34353434H
                mov     dword ptr +0xa12[EAX],0x3333343cH
                mov     dword ptr +0xa16[EAX],0x33333331H
                mov     dword ptr +0xa1a[EAX],0x11153133H
                mov     dword ptr +0xa1e[EAX],0x153f1111H
                mov     word ptr +0xa23[EAX],0x153fH
                mov     byte ptr +0xa25[EAX],0x11H
                mov     dword ptr +0xb45[EAX],0x31113f11H
                mov     dword ptr +0xb49[EAX],0x33313131H
                mov     dword ptr +0xb4d[EAX],0x3c34351aH
                mov     dword ptr +0xb51[EAX],0x33343537H
                mov     dword ptr +0xb55[EAX],0x33333133H
                mov     dword ptr +0xb59[EAX],0x33323233H
                mov     dword ptr +0xb5d[EAX],0x31313133H
                mov     word ptr +0xb61[EAX],0x3f15H
                mov     byte ptr +0xb64[EAX],0x15H
                mov     word ptr +0xc84[EAX],0x3f15H
                mov     dword ptr +0xc87[EAX],0x33313111H
                mov     dword ptr +0xc8b[EAX],0x35343231H
                mov     dword ptr +0xc8f[EAX],0x34363734H
                mov     dword ptr +0xc93[EAX],0x31153034H
                mov     dword ptr +0xc97[EAX],0x34323132H
                mov     dword ptr +0xc9b[EAX],0x31321a1aH
                mov     word ptr +0xc9f[EAX],0x1531H
                mov     byte ptr +0xca1[EAX],0x31H
                mov     byte ptr +0xca5[EAX],0x11H
                mov     word ptr +0xdc4[EAX],0x3f15H
                mov     dword ptr +0xdc7[EAX],0x33331511H
                mov     dword ptr +0xdcb[EAX],0x3c343333H
                mov     dword ptr +0xdcf[EAX],0x341b3234H
                mov     dword ptr +0xdd3[EAX],0x31333234H
                mov     dword ptr +0xdd7[EAX],0x34333333H
                mov     dword ptr +0xddb[EAX],0x31343434H
                mov     word ptr +0xddf[EAX],0x1531H
                mov     byte ptr +0xde6[EAX],0x3fH
                mov     word ptr +0xde8[EAX],0x1111H
                mov     dword ptr +0xf08[EAX],0x33343215H
                mov     dword ptr +0xf0c[EAX],0x31343233H
                mov     dword ptr +0xf10[EAX],0x35343331H
                mov     dword ptr +0xf14[EAX],0x33323434H
                mov     dword ptr +0xf18[EAX],0x32323333H
                mov     dword ptr +0xf1c[EAX],0x33331a32H
                mov     byte ptr +0xf20[EAX],0x11H
                mov     byte ptr +0xf26[EAX],0x11H
                mov     dword ptr +0x1047[EAX],0x34301511H
                mov     dword ptr +0x104b[EAX],0x33323234H
                mov     dword ptr +0x104f[EAX],0x34331531H
                mov     dword ptr +0x1053[EAX],0x34353536H
                mov     dword ptr +0x1057[EAX],0x31333232H
                mov     dword ptr +0x105b[EAX],0x31333333H
                mov     byte ptr +0x105f[EAX],0x15H
                mov     dword ptr +0x1187[EAX],0x34323115H
                mov     dword ptr +0x118b[EAX],0x33323435H
                mov     dword ptr +0x118f[EAX],0x341a3331H
                mov     dword ptr +0x1193[EAX],0x35383635H
                mov     dword ptr +0x1197[EAX],0x31333234H
                mov     dword ptr +0x119b[EAX],0x31333333H
                mov     dword ptr +0x12c7[EAX],0x34343215H
                mov     dword ptr +0x12cb[EAX],0x34343434H
                mov     dword ptr +0x12cf[EAX],0x34343432H
                mov     dword ptr +0x12d3[EAX],0x35363835H
                mov     dword ptr +0x12d7[EAX],0x32323434H
                mov     dword ptr +0x12db[EAX],0x31333333H
                mov     dword ptr +0x12df[EAX],0x3f15113fH
                mov     dword ptr +0x1407[EAX],0x34343311H
                mov     dword ptr +0x140b[EAX],0x35343434H
                mov     dword ptr +0x140f[EAX],0x38353434H
                mov     dword ptr +0x1413[EAX],0x35363836H
                mov     dword ptr +0x1417[EAX],0x33323234H
                mov     dword ptr +0x141b[EAX],0x3f313333H
                mov     dword ptr +0x141f[EAX],0x31331511H
                mov     byte ptr +0x1423[EAX],0x31H
                mov     dword ptr +0x1546[EAX],0x1a333f15H
                mov     dword ptr +0x154a[EAX],0x34343434H
                mov     dword ptr +0x154e[EAX],0x35343434H
                mov     dword ptr +0x1552[EAX],0x38363838H
                mov     dword ptr +0x1556[EAX],0x32333435H
                mov     dword ptr +0x155a[EAX],0x31313131H
                mov     dword ptr +0x155f[EAX],0x31311111H
                mov     word ptr +0x1563[EAX],0x1133H
                mov     dword ptr +0x1686[EAX],0x33313115H
                mov     dword ptr +0x168a[EAX],0x34343432H
                mov     dword ptr +0x168e[EAX],0x34343434H
                mov     dword ptr +0x1692[EAX],0x38363836H
                mov     dword ptr +0x1696[EAX],0x33323436H
                mov     byte ptr +0x169a[EAX],0x15H
                mov     word ptr +0x169c[EAX],0x113fH
                mov     byte ptr +0x169e[EAX],0x11H
                mov     dword ptr +0x16a1[EAX],0x31313115H
                mov     dword ptr +0x17c6[EAX],0x33311511H
                mov     dword ptr +0x17ca[EAX],0x32333332H
                mov     dword ptr +0x17ce[EAX],0x32333232H
                mov     dword ptr +0x17d2[EAX],0x36353434H
                mov     dword ptr +0x17d6[EAX],0x15323438H
                mov     dword ptr +0x17de[EAX],0x31113f15H
                mov     word ptr +0x17e2[EAX],0x3133H
                mov     byte ptr +0x17e4[EAX],0x15H
                mov     dword ptr +0x1907[EAX],0x31153115H
                mov     dword ptr +0x190b[EAX],0x31311531H
                mov     dword ptr +0x190f[EAX],0x33311531H
                mov     dword ptr +0x1913[EAX],0x38353433H
                mov     word ptr +0x1917[EAX],0x3234H
                mov     byte ptr +0x1919[EAX],0x11H
                mov     dword ptr +0x191e[EAX],0x31313115H
                mov     word ptr +0x1922[EAX],0x3331H
                mov     byte ptr +0x1924[EAX],0x11H
                mov     dword ptr +0x1a46[EAX],0x31313311H
                mov     dword ptr +0x1a4a[EAX],0x31111131H
                mov     byte ptr +0x1a4e[EAX],0x11H
                mov     dword ptr +0x1a50[EAX],0x31313f15H
                mov     dword ptr +0x1a54[EAX],0x34353434H
                mov     byte ptr +0x1a58[EAX],0x32H
                mov     dword ptr +0x1a5f[EAX],0x31313115H
                mov     byte ptr +0x1a63[EAX],0x15H
                mov     dword ptr +0x1b86[EAX],0x31333115H
                mov     dword ptr +0x1b8a[EAX],0x31111131H
                mov     byte ptr +0x1b8e[EAX],0x15H
                mov     dword ptr +0x1b91[EAX],0x34321511H
                mov     dword ptr +0x1b95[EAX],0x31333334H
                mov     byte ptr +0x1b9f[EAX],0x15H
                mov     byte ptr +0x1ba2[EAX],0x3fH
                mov     dword ptr +0x1cc6[EAX],0x18323115H
                mov     dword ptr +0x1cca[EAX],0x11313133H
                mov     word ptr +0x1cce[EAX],0x3f15H
                mov     dword ptr +0x1cd1[EAX],0x33333111H
                mov     word ptr +0x1cd5[EAX],0x1133H
                mov     byte ptr +0x1cd7[EAX],0x15H
                mov     byte ptr +0x1cdb[EAX],0x3fH
                mov     dword ptr +0x1e06[EAX],0x33323115H
                mov     dword ptr +0x1e0a[EAX],0x11313133H
                mov     dword ptr +0x1e0e[EAX],0x31153115H
                mov     dword ptr +0x1e12[EAX],0x15313331H
                mov     byte ptr +0x1e18[EAX],0x3fH
                mov     byte ptr +0x1e1e[EAX],0x11H
                mov     dword ptr +0x1f47[EAX],0x31113f11H
                mov     dword ptr +0x1f4b[EAX],0x15111131H
                mov     dword ptr +0x1f4f[EAX],0x31323331H
                mov     word ptr +0x1f53[EAX],0x1515H
                mov     byte ptr +0x1f56[EAX],0x3fH
                mov     word ptr +0x2089[EAX],0x1111H
                mov     byte ptr +0x208b[EAX],0x3fH
                mov     dword ptr +0x208d[EAX],0x33333115H
                mov     dword ptr +0x2091[EAX],0x15153133H
                mov     dword ptr +0x21cd[EAX],0x33333f15H
                mov     dword ptr +0x21d1[EAX],0x11153f33H
                mov     dword ptr +0x230d[EAX],0x32333115H
                mov     byte ptr +0x2311[EAX],0x15H
                mov     dword ptr +0x244a[EAX],0x32311111H
                mov     dword ptr +0x244e[EAX],0x18333332H
                mov     byte ptr +0x2453[EAX],0x3fH
                mov     dword ptr +0x2589[EAX],0x32153115H
                mov     dword ptr +0x258d[EAX],0x31313334H
                mov     byte ptr +0x2591[EAX],0x15H
                mov     word ptr +0x2599[EAX],0x3f15H
                mov     dword ptr +0x26c9[EAX],0x32333115H
                mov     dword ptr +0x26cd[EAX],0x15313333H
                mov     word ptr +0x26d6[EAX],0x3f15H
                mov     word ptr +0x26d9[EAX],0x3115H
                mov     byte ptr +0x26db[EAX],0x11H
                mov     dword ptr +0x2808[EAX],0x153f1111H
                mov     dword ptr +0x280c[EAX],0x11313133H
                mov     byte ptr +0x2810[EAX],0x15H
                mov     word ptr +0x2815[EAX],0x153fH
                mov     dword ptr +0x2819[EAX],0x11113f15H
                mov     word ptr +0x2948[EAX],0x1111H
                mov     byte ptr +0x294a[EAX],0x3fH
                mov     dword ptr +0x294c[EAX],0x11153115H
                mov     byte ptr +0x2950[EAX],0x3fH
                mov     byte ptr +0x2959[EAX],0x15H
                mov     byte ptr +0x2a8a[EAX],0x11H
                mov     word ptr +0x2a8c[EAX],0x3f3fH
                mov     byte ptr +0x2a8f[EAX],0x11H
                pop     ECX
                ret
                nop