Private Function InitializeCRC32_little_endian()
Dim vararray As Variant, i As Integer
'polynomial: 0xEDB88320
On Local Error Resume Next
vararray = Array(&H0, &H77073096, &HEE0E612C, &H990951BA, &H76DC419, &H706AF48F, &HE963A535, &H9E6495A3, &HEDB8832, &H79DCB8A4, &HE0D5E91E, &H97D2D988, _
&H9B64C2B, &H7EB17CBD, &HE7B82D07, &H90BF1D91, &H1DB71064, &H6AB020F2, &HF3B97148, &H84BE41DE, &H1ADAD47D, &H6DDDE4EB, &HF4D4B551, &H83D385C7, _
&H136C9856, &H646BA8C0, &HFD62F97A, &H8A65C9EC, &H14015C4F, &H63066CD9, &HFA0F3D63, &H8D080DF5, &H3B6E20C8, &H4C69105E, &HD56041E4, &HA2677172, _
&H3C03E4D1, &H4B04D447, &HD20D85FD, &HA50AB56B, &H35B5A8FA, &H42B2986C, &HDBBBC9D6, &HACBCF940, &H32D86CE3, &H45DF5C75, &HDCD60DCF, &HABD13D59, _
&H26D930AC, &H51DE003A, &HC8D75180, &HBFD06116, &H21B4F4B5, &H56B3C423, &HCFBA9599, &HB8BDA50F, &H2802B89E, &H5F058808, &HC60CD9B2, &HB10BE924, _
&H2F6F7C87, &H58684C11, &HC1611DAB, &HB6662D3D, &H76DC4190, &H1DB7106, &H98D220BC, &HEFD5102A, &H71B18589, &H6B6B51F, &H9FBFE4A5, &HE8B8D433, _
&H7807C9A2, &HF00F934, &H9609A88E, &HE10E9818, &H7F6A0DBB, &H86D3D2D, &H91646C97, &HE6635C01, &H6B6B51F4, &H1C6C6162, &H856530D8, &HF262004E, _
&H6C0695ED, &H1B01A57B, &H8208F4C1, &HF50FC457, &H65B0D9C6, &H12B7E950, &H8BBEB8EA, &HFCB9887C, &H62DD1DDF, &H15DA2D49, &H8CD37CF3, &HFBD44C65, _
&H4DB26158, &H3AB551CE, &HA3BC0074, &HD4BB30E2, &H4ADFA541, &H3DD895D7, &HA4D1C46D, &HD3D6F4FB, &H4369E96A, &H346ED9FC, &HAD678846, &HDA60B8D0, _
&H44042D73, &H33031DE5, &HAA0A4C5F, &HDD0D7CC9, &H5005713C, &H270241AA, &HBE0B1010, &HC90C2086, &H5768B525, &H206F85B3, &HB966D409, &HCE61E49F, _
&H5EDEF90E, &H29D9C998, &HB0D09822, &HC7D7A8B4, &H59B33D17, &H2EB40D81, &HB7BD5C3B, &HC0BA6CAD, &HEDB88320, &H9ABFB3B6, &H3B6E20C, &H74B1D29A, _
&HEAD54739, &H9DD277AF, &H4DB2615, &H73DC1683, &HE3630B12, &H94643B84, &HD6D6A3E, &H7A6A5AA8, &HE40ECF0B, &H9309FF9D, &HA00AE27, &H7D079EB1, _
&HF00F9344, &H8708A3D2, &H1E01F268, &H6906C2FE, &HF762575D, &H806567CB, &H196C3671, &H6E6B06E7, &HFED41B76, &H89D32BE0, &H10DA7A5A, &H67DD4ACC, _
&HF9B9DF6F, &H8EBEEFF9, &H17B7BE43, &H60B08ED5, &HD6D6A3E8, &HA1D1937E, &H38D8C2C4, &H4FDFF252, &HD1BB67F1, &HA6BC5767, &H3FB506DD, &H48B2364B, _
&HD80D2BDA, &HAF0A1B4C, &H36034AF6, &H41047A60, &HDF60EFC3, &HA867DF55, &H316E8EEF, &H4669BE79, &HCB61B38C, &HBC66831A, &H256FD2A0, &H5268E236, _
&HCC0C7795, &HBB0B4703, &H220216B9, &H5505262F, &HC5BA3BBE, &HB2BD0B28, &H2BB45A92, &H5CB36A04, &HC2D7FFA7, &HB5D0CF31, &H2CD99E8B, &H5BDEAE1D, _
&H9B64C2B0, &HEC63F226, &H756AA39C, &H26D930A, &H9C0906A9, &HEB0E363F, &H72076785, &H5005713, &H95BF4A82, &HE2B87A14, &H7BB12BAE, &HCB61B38, _
&H92D28E9B, &HE5D5BE0D, &H7CDCEFB7, &HBDBDF21, &H86D3D2D4, &HF1D4E242, &H68DDB3F8, &H1FDA836E, &H81BE16CD, &HF6B9265B, &H6FB077E1, &H18B74777, _
&H88085AE6, &HFF0F6A70, &H66063BCA, &H11010B5C, &H8F659EFF, &HF862AE69, &H616BFFD3, &H166CCF45, &HA00AE278, &HD70DD2EE, &H4E048354, &H3903B3C2, _
&HA7672661, &HD06016F7, &H4969474D, &H3E6E77DB, &HAED16A4A, &HD9D65ADC, &H40DF0B66, &H37D83BF0, &HA9BCAE53, &HDEBB9EC5, &H47B2CF7F, &H30B5FFE9, _
&HBDBDF21C, &HCABAC28A, &H53B39330, &H24B4A3A6, &HBAD03605, &HCDD70693, &H54DE5729, &H23D967BF, &HB3667A2E, &HC4614AB8, &H5D681B02, &H2A6F2B94, _
&HB40BBE37, &HC30C8EA1, &H5A05DF1B, &H2D02EF8D)
For i = 0 To 255
crc32table(i) = vararray(i)
Next
End Function
Private Sub InitializeCRC32_big_endian()
Dim vararray As Variant, i As Integer
'polynomial: 0x04C11DB7
On Local Error Resume Next
vararray = Array(&H0, &H4C11DB7, &H9823B6E, &HD4326D9, &H130476DC, &H17C56B6B, &H1A864DB2, &H1E475005, &H2608EDB8, &H22C9F00F, &H2F8AD6D6, _
&H2B4BCB61, &H350C9B64, &H31CD86D3, &H3C8EA00A, &H384FBDBD, &H4C11DB70, &H48D0C6C7, &H4593E01E, &H4152FDA9, &H5F15ADAC, &H5BD4B01B, &H569796C2, &H52568B75, &H6A1936C8, &H6ED82B7F, &H639B0DA6, &H675A1011, &H791D4014, &H7DDC5DA3, &H709F7B7A, _
&H745E66CD, &H9823B6E0, &H9CE2AB57, &H91A18D8E, &H95609039, &H8B27C03C, &H8FE6DD8B, &H82A5FB52, &H8664E6E5, &HBE2B5B58, &HBAEA46EF, &HB7A96036, &HB3687D81, &HAD2F2D84, &HA9EE3033, &HA4AD16EA, &HA06C0B5D, &HD4326D90, &HD0F37027, &HDDB056FE, _
&HD9714B49, &HC7361B4C, &HC3F706FB, &HCEB42022, &HCA753D95, &HF23A8028, &HF6FB9D9F, &HFBB8BB46, &HFF79A6F1, &HE13EF6F4, &HE5FFEB43, &HE8BCCD9A, &HEC7DD02D, &H34867077, &H30476DC0, &H3D044B19, &H39C556AE, &H278206AB, &H23431B1C, &H2E003DC5, _
&H2AC12072, &H128E9DCF, &H164F8078, &H1B0CA6A1, &H1FCDBB16, &H18AEB13, &H54BF6A4, &H808D07D, &HCC9CDCA, &H7897AB07, &H7C56B6B0, &H71159069, &H75D48DDE, &H6B93DDDB, &H6F52C06C, &H6211E6B5, &H66D0FB02, &H5E9F46BF, &H5A5E5B08, &H571D7DD1, _
&H53DC6066, &H4D9B3063, &H495A2DD4, &H44190B0D, &H40D816BA, &HACA5C697, &HA864DB20, &HA527FDF9, &HA1E6E04E, &HBFA1B04B, &HBB60ADFC, &HB6238B25, &HB2E29692, &H8AAD2B2F, &H8E6C3698, &H832F1041, &H87EE0DF6, &H99A95DF3, &H9D684044, &H902B669D, _
&H94EA7B2A, &HE0B41DE7, &HE4750050, &HE9362689, &HEDF73B3E, &HF3B06B3B, &HF771768C, &HFA325055, &HFEF34DE2, &HC6BCF05F, &HC27DEDE8, &HCF3ECB31, &HCBFFD686, &HD5B88683, &HD1799B34, &HDC3ABDED, &HD8FBA05A, &H690CE0EE, &H6DCDFD59, &H608EDB80, _
&H644FC637, &H7A089632, &H7EC98B85, &H738AAD5C, &H774BB0EB, &H4F040D56, &H4BC510E1, &H46863638, &H42472B8F, &H5C007B8A, &H58C1663D, &H558240E4, &H51435D53, &H251D3B9E, &H21DC2629, &H2C9F00F0, &H285E1D47, &H36194D42, &H32D850F5, &H3F9B762C, _
&H3B5A6B9B, &H315D626, &H7D4CB91, &HA97ED48, &HE56F0FF, &H1011A0FA, &H14D0BD4D, &H19939B94, &H1D528623, &HF12F560E, &HF5EE4BB9, &HF8AD6D60, &HFC6C70D7, &HE22B20D2, &HE6EA3D65, &HEBA91BBC, &HEF68060B, &HD727BBB6, &HD3E6A601, &HDEA580D8, _
&HDA649D6F, &HC423CD6A, &HC0E2D0DD, &HCDA1F604, &HC960EBB3, &HBD3E8D7E, &HB9FF90C9, &HB4BCB610, &HB07DABA7, &HAE3AFBA2, &HAAFBE615, &HA7B8C0CC, &HA379DD7B, &H9B3660C6, &H9FF77D71, &H92B45BA8, &H9675461F, &H8832161A, &H8CF30BAD, &H81B02D74, _
&H857130C3, &H5D8A9099, &H594B8D2E, &H5408ABF7, &H50C9B640, &H4E8EE645, &H4A4FFBF2, &H470CDD2B, &H43CDC09C, &H7B827D21, &H7F436096, &H7200464F, &H76C15BF8, &H68860BFD, &H6C47164A, &H61043093, &H65C52D24, &H119B4BE9, &H155A565E, &H18197087, _
&H1CD86D30, &H29F3D35, &H65E2082, &HB1D065B, &HFDC1BEC, &H3793A651, &H3352BBE6, &H3E119D3F, &H3AD08088, &H2497D08D, &H2056CD3A, &H2D15EBE3, &H29D4F654, &HC5A92679, &HC1683BCE, &HCC2B1D17, &HC8EA00A0, &HD6AD50A5, &HD26C4D12, &HDF2F6BCB, _
&HDBEE767C, &HE3A1CBC1, &HE760D676, &HEA23F0AF, &HEEE2ED18, &HF0A5BD1D, &HF464A0AA, &HF9278673, &HFDE69BC4, &H89B8FD09, &H8D79E0BE, &H803AC667, &H84FBDBD0, &H9ABC8BD5, &H9E7D9662, &H933EB0BB, &H97FFAD0C, &HAFB010B1, &HAB710D06, &HA6322BDF, _
&HA2F33668, &HBCB4666D, &HB8757BDA, &HB5365D03, &HB1F740B4)
For i = 0 To 255
crc32table(i) = vararray(i)
Next
End Sub