5 tDUMMY_BUFF = array[0..PRED(655350)] of Byte;
7 function Scan(var buf; skip,size: Longint; str: String): Longint;
8 function SensitiveScan(var buf; skip,size: Longint; str: String): Longint;
9 function Compare(var buf1,buf2; size: Longint): Boolean;
10 function Empty(var buf; size: Longint): Boolean;
11 function CountLines(var buf; size: Longint): Longint;
12 function Update16(var buf; size: Longint; crc: Word): Word;
13 function Update32(var buf; size: Longint; crc: Longint): Longint;
18 CRC16_table: array[BYTE] of Word;
19 CRC32_table: array[BYTE] of Longint;
21 function Scan(var buf; skip,size: Longint; str: String): Longint; assembler;
88 function SensitiveScan(var buf; skip,size: Longint; str: String): Longint; assembler;
132 sub eax,dword ptr buf
136 function Compare(var buf1,buf2; size: Longint): Boolean; assembler;
172 function Empty(var buf; size: Longint): Boolean; assembler;
206 function CountLines(var buf; size: Longint): Longint; assembler;
217 cmp byte ptr [edi],0ah
226 function Update16(var buf; size: Longint; crc: Word): Word; assembler;
229 lea edi,[CRC16_table]
247 function Update32(var buf; size: Longint; crc: Longint): Longint; assembler;
250 lea edi,[CRC32_table]
268 procedure make_table_16bit;
275 For index := 0 to 255 do
279 If Odd(crc) then crc := crc SHR 1 XOR $0a001
280 else crc := crc SHR 1;
281 CRC16_table[index] := crc;
285 procedure make_table_32bit;
292 For index := 0 to 255 do
296 If Odd(crc) then crc := crc SHR 1 XOR $0edb88320
297 else crc := crc SHR 1;
298 CRC32_table[index] := crc;