算法分为两部分:
1 表的构建
00401520 . 81EC 00040000 sub esp,0x400 ;给表0x400字节的空间
00401526 . 33C9 xor ecx,ecx
00401528 . 8D5424 00 lea edx,dword ptr ss:[esp] ;edx保存当前栈顶
0040152C . 56 push esi
0040152D > 8BC1 mov eax,ecx ;eax初始化为0
0040152F . BE 08000000 mov esi,0x8
00401534 > A8 01 test al,0x1
00401536 . 74 09 je Xanti-Bru.00401541 ;al与1为0时跳转
00401538 . D1E8 shr eax,1
0040153A . 35 2083B8ED xor eax,0xEDB88320
0040153F . EB 02 jmp Xanti-Bru.00401543
00401541 > D1E8 shr eax,1
00401543 > 4E dec esi
00401544 .^ 75 EE jnz Xanti-Bru.00401534 ;循环次数为8次
00401546 . 8902 mov dword ptr ds:[edx],eax ;将8轮循环下来的值存入表中
00401548 . 41 inc ecx
00401549 . 83C2 04 add edx,0x4 ;一个表项为32位,4字节
0040154C . 81F9 00010000 cmp ecx,0x100 ;循环次数为表的条目0