Rev 131 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 131 | Rev 3013 | ||
---|---|---|---|
Line 560... | Line 560... | ||
560 | ret |
560 | ret |
Line 561... | Line 561... | ||
561 | 561 | ||
562 | UCRC: |
562 | UCRC: |
563 | ; in: esi - data to calculate CRC |
563 | ; in: esi - data to calculate CRC |
564 | ; ecx - its length |
564 | ; ecx - its length |
565 | ; [CRC32] - previous CRC32 |
565 | ; [_CRC32_] - previous CRC32 |
566 | ; out: [CRC32]- partial CRC32 (no pre- & post-conditioning!) |
566 | ; out: [_CRC32_]- partial CRC32 (no pre- & post-conditioning!) |
567 | pusha |
567 | pusha |
568 | cmp dword[CRC32table+4],0x77073096 |
568 | cmp dword[CRC32table+4],0x77073096 |
569 | je .tbl_rdy |
569 | je .tbl_rdy |
570 | call makeCRC |
570 | call makeCRC |
571 | .tbl_rdy: |
571 | .tbl_rdy: |
572 | mov eax,[CRC32] |
572 | mov eax,[_CRC32_] |
573 | not eax |
573 | not eax |
574 | .m1: |
574 | .m1: |
575 | movzx ebx,al |
575 | movzx ebx,al |
576 | shr eax,8 |
576 | shr eax,8 |
577 | xor bl,[esi] |
577 | xor bl,[esi] |
578 | xor eax,[CRC32table+ebx*4] |
578 | xor eax,[CRC32table+ebx*4] |
579 | inc esi |
579 | inc esi |
580 | loop .m1 |
580 | loop .m1 |
581 | not eax |
581 | not eax |
582 | mov [CRC32],eax |
582 | mov [_CRC32_],eax |
583 | popa |
583 | popa |
Line 584... | Line 584... | ||
584 | ret |
584 | ret |
585 | 585 |